[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 fgwprofilein 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 operationframepath 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) |