The skeleton is a framework program which incorporates a
dynamic linker and a dos extender. The programs `oxcc.exe',
`oxccb.exe', `oxccl.exe' and `bterp.exe' are all skeleton
programs stored under different names. The native skeleton
name is `cfrun.exe'. The action of the skeleton is to load
and dynamically link the real program from a .cff archive.
The complete c library is automatically loaded when the
skeleton runs. The linker can handle a.out and coff formats.
In addition to loading the program, the skeleton loads
some basic support modules from the file `oxbow.a'. Early
detection is used to pull in the proper support modules
depending upon the host system.
To get a new skeleton program, just copy an old one and give
it a new name, or if under a unix system, just symbolic link
a new name to an old existing file. Or to conserve space you
could write a batch file which contains something like:
The skeleton searches for files in `.' and `c:\oxbow' unless the
environment variable OXPATH or the -PATH switch is set. If it doesn't
find anything, it then searches through the directories in the PATH
If the name of an application is supplied to cfrun, e.g. cfrun myapp
Then if myapp.cff is found on the path it is searched for myapp.o and
symbols _main and _myapp. If myapp.cff is not found then if oxlib.cff
is found on the path it is searched for myapp.o, and finally for the
symbols _main and _myapp. If myapp.o is not found in oxlib.cff then
the path is searched for myapp.o.
If the object file name is supplied to cfrun, e.g. cfrun myapp.o
Then the path is searched for myapp.o before searching for myapp.cff
and oxlib.cff. This facilitates debugging modules not yet entered into
Usage: cfrun appname [-APP=][-LIB=][-PATH=][-TRACE=][-LBUFS=][appargs]
or: appname [-APP=][-LIB=][-PATH=][-TRACE=][-LBUFS=][appargs]
Switch -------- Meaning
-APP=filename Permanent object file/archive for the application.
-LIB=filename Additonal library or archive file.
-PATH=p1;p2;... Lookup path for files.
-LBUFS=n Allocate n kilobytes of database buffering.
-TRACE=n Set trace bits (hex,octal,decimal ok).
appargs Application args.
Trace bits cause verbose output from the dynamic linker and
multiple inheritance engine. Try 1,2,4,8,15 etc.
Output is to stdout.