|
|
Recommendations for quick start
Set the environment variable CLIPROOT, something like
export CLIPROOT="/usr/local/clip"
All necessary files from distributives will be installed in this
directory. Also, while compiling and execution, necessary information
will be read from this directory.
The base program doing everything (preprocessor, compiler, translator
into c-files and po-files, linker) is CLIP, but it uses gcc as
an end compiler and linker.
To link a simple program, it's necessary to execute:
clip -e -s -M test.prg
-e - create executable file
-s - use shared library
-M - genereate MAIN procedure - this option should be used, if there is
no declaration of MAIN procedure in the program.
Programs may be linked:
- in share mode, using -s option.
In this case, the result binary file will be of minimal size, but it
will be dependent on $CLIPROOT/lib/libclip.so library.
- in static mode, it's necessary to designate clearly, what libraries should
be linked (clip -e test.prg $CLIPROOT/lib/other_libs.a).
In this case, the program becomes independent of external files, but it
will contain all object and library files, and the program size may be
of several megabytes.
For compiling any old source codes from DOS, file names must be in the
lower case (use lowname utility). We recommend you to include
set translate path on
into your programs to automatically
convert file names and libraries to the lower case while executing
the program.
The initialization procedure is in prg/sys/sys_init.prg.
If prg module includes a function or procedure with the same name, as the name
of prg file, compiling with "-n" option (module without a starting procedure)
is automatically set, therefore compiling may be executed by default,
i.e. without designating "-n", by a simple execution of "clip *prg"
or "clip -p *.prg".
During file operations on mounted file systems from other OS's
(Novell,Win,...) there may be problems with the support of locking and cashing
interfaces. In particular, Novell support library under freeBsd does not support
locking.
|