[a]mdl[t].extwhere
a
, an application qualifier, is
i
for modules pertaining to interactive appso
to batch appsc
to boththe application qualifier is only used in 4gl c and text files, since form and help files are only used in interactive apps.
mdl
is a three letter code identifying the module, for instance
afi
application framework initializationdtb
many to many table scrollererr
error logging routinesfrm
form table maintenancelog
error log viewermdl
printer model table maintenancemnh
horizontal menusmnv
vertical menuspan
multiple pane supportptr
printer functionsshl
OS related functionssql
sql interpreter / viewerstb
single table maintenance scrollerstr
string manipulationted
text editortxt
text related routinesusr
user interactionand t
identifies the module type. for code it migth be something like
m
for menuss
for scrollersv
for viewersh
help pick listsi
for user input modulesr
for reportsl
for 4gl librariesc
for c librarieswhile forms use
f
for screen formsw
for window formsoptionally followed by another letter to distinguish otherwise equal file names. Text and help files have no type qualifier.
msg
and hlp
.txt
extension.sh
!) indicates an
include file of some kind.
<dirname>/source | source code |
<dirname>/c4gl | compiled 4gl specific source code |
<dirname>/rds | rds specific source code |
<dirname>/a4gl | Aubit 4gl specific source code |
<dirname>/<language> | forms, text and help files pertaining to a particular language (eng. ita, etc) |
<dirname>/objcode | .o files |
<dirname>/pcode | .4go files and .o files needed for the runner |
<dirname>/etc | shell scripts, release notes, sql files, etc |
The only exception to this scheme is ierrl.4gh
, a 4gl include
file that contains text constants related to error handling (I've preferred to
string error handling related text to the application, rather
than put it in a file loaded at run time, to be sure the user
gets meaningful info should text files be unavailable), which
is put (correctly) in the appropriate 4glworks/<language>/
directories.
mdl_methodname
format for public functions
and methodname_mdl
for private ones. I've tried to confine private functions
to the bottom of each file, but this is not always possible, due to
language limitations (eg cursor or prepared statements, which must be defined
before they can be used).code_<tablename>
for primary keys, desc_<tablename>
for descriptive fields, and
link_<linkedtable>
for foreign keys.i???h.4gl
), as well as the single
table maintenance scroller (istbs.4gl
) have been written to take advantage
of my own naming style, but they can be fed with any select statement.
readme | a copy of this documentation |
todo | all that didn't make it in the distribution |
fglpp.txt | brief documentation of fglpp |
sqsl.txt | documentation of the syntax and features offered by the sqsl scripting language interpreter |
cbuild [-v][-e|-r][-l language][-f framepath][-s sourcepath][-d destpath] projectwhere
project
is the name of the project to be remade-v
option forces verbose operation-r
option forces an application relink only-e
option forces a rebuild of the entire projectlanguage
is the language to be used for forms, etc (default eng
)framepath
is the directory where 4glworks resides (default 4glworks
)sourcepath
is the directory where the modules making up the project
reside (default .
)destpath
is the directory where executables, forms, etc will be
installed (default is /usr/local/<project>
)Cbuild makes use of a file named .cbuildrc
to store user preferences.
This is a list of def=value
entries, in which def
could be any of:
AWK | the location of awk |
INFORMIXC | self explanatory |
INFORMIXDIR | self explanatory |
destbase | base directory for cbuild output |
framepath | see above |
lang | see above |
sourcepath | see above |
All of the defs in uppercase can be overriden by defining a correspondently named environmental variable; those in lowercase by command line options, with the exception of destbase which rather than replacing the -d option, complements it: cbuild will install the files in <destbase>/<project name>.
Linked to cbuild are pbuild, ctest and ptest.
Depending on the name with which it has been invoked, cbuild will
cbuild expects to find a script named buildfile
in <sourcepath>/<project>
.
Buildfile
is used to
As of beta 2.0b6, buildfile
is no longer a shell script, but a
makefile-style dependency specification file, the main differences with makefiles
being that
(the above sums up to the fact that you have to name each and every target application)
rules have a target and dependencies, but no commands - everything is handled internally by cbuild
On the other hand, unlike make, it's perfectly fine to exploit pathname
or brace expansion when specifying dependencies.
In this respect, note that pathname expansion support is provided by the shell
in use, so please specify dependecies sensibly.
Cbuild also supports the use of include files, variables, some
automatic variables ($@
and $*
, target name and stem
respectively), as well as predefined
variables $(FW)
and $(TM)
which respectively
expand to the path of the applicationframework and the path of the package being
compiled, as specified from the command line.
Note that you don't have to specify source / target / pcode /object code
directories, nor object or target file extensions, as this is handled by
cbuild.
Cbuild will also look for an application wrapper named fgwprofile
in the etc
directories of all the modules specified in the buildfile
of the project, and
place it in the destination directory.
If none is found, it will use 4glworks/etc/fgwprofile
as a fallback.
Upon installation fgwprofile
will be renamed so as to match the
name of the project and linked (for historic and other practical reasons) to
.profile
Use to build a custom runner for 4glworks applications. The command line syntax is:
mkfgwgo [-v] [-f framepath] [-s sourcepath] [-llib...] [project list]where
project list
is a space separated list of 4glworks modules with
c functions-v option forces verbose operation
framepath
is the directory where 4glworks resides (default 4glworks)
sourcepath
is a base directory for all the modules
(default is .
)lib
is any extra library required to build the runnerMkfgwgo will need a function definition file for each of the modules to be
linked in the runner to build an appropriate fgiusr.c file. This file is named
cfuncs
and can either be located in <modulename>/source
or <modulename>/rds.
The format is simply a line with the function name and the number of parameters
accepted for each of the functions added to the runner.
Mkfgwgo will also access buildfile files in each module directory to determine
whether any library should be linked. At present this is done by searching for
definitions of a variable namede LIBS
.
The runner produced is installed in $INFORMIXDIR/bin/fgwgo
. Name
and output directory are not configurable.
A simple shell script to set a few bits and pieces in the source to match your tool (c4gl/rds) and version.
The following notes give a brief explanation of 4gwdemo usage.
Pull down menu "Second" is used for miscellaneous operation, like changing the display mode
for a viewer, enabling a printer, locking or unlocking the database.
Other commands will appear in the horizontal menu whenever meaningful to a particular viewer.
Use Ctrl-X to quit 4gwdemo.
For all the above viewers, use
Use
Use
If you have DBA privileges, you can also enter statements that alter or change the current DB. Execution of such statements is subject to confirmation.
Please address questions or comments to
marco greco (last updated Mon, 19 April 2004 21:36:43 BST) |