As stated before, CLIP compiler perceives not only options passed via command line, but these of them prescribed in .cliprc file in the current directory; or in the $HOME/.cliprc file; or in any file in the $CLIPROOT/cliprc directory. In the following examples it's assumed there are no (or empty) files, listed above.
Build a very simple application from one source file with no MAIN procedure. The result is a huge executable staticly linked with CLIP Run Time Library (RTL).
clip -eM test.prg
Build an application from three source files. The result is small executable dynamicly linked with CLIP RTL. app.prg contains MAIN procedure.
clip funcs1.prg clip funcs2.prg clip -es app.prg funcs1.o funcs2.o
Create a P-code module (.po file). Be silent.
clip -pv0 funcs.prg
Build a dynamic library from two source files and link an application with it. See clip_makeslib utility description. The result is small executable dynamicly linked with CLIP RTL, which is able to work only when libmylib.so is placed in the current working directory.
clip funcs1.prg clip funcs2.prg clip_makeslib libmylib funcs1.o funcs2.o clip -es app.prg ./libmylib.so
Build previous application so that it able to work when libmylib.so is placed in /home/rust/lib directory.
clip funcs1.prg clip funcs2.prg clip_makeslib libmylib funcs1.o funcs2.o cp libmylib.so /home/rust/lib clip -es app.prg /home/rust/lib/libmylib.so
See preprocessor output.
clip -P test.prg
Compile in C+P-code mode. Link dynamicly with CLIP RTL. Be more verbose. The result is an executable of the smallest size.
clip -elsv2 app.prg
Using C compiler option -l to link with shared library libclip-postgres.so (PostgreSQL driver for CLIP).
clip -els test.prg -lclip-postgres