The function compile-system
compiles all the files in a system necessary to make a consistent set of object files.
A symbol representing the name of the system. The system must have been defined already using the defsystem macro.
If t
then all the files in the system are compiled regardless. (This argument was formerly called force-p. The old name is currently still accepted for compatibility.)
If nil
or not present then compile-system
works silently. Otherwise a plan of the actions which compile-system
intends to carry out is printed. What happens next depends on the value of simulate:
:ask
-- you are asked if you wish the plan to be carried out using y-or-n-p
.
:each
-- compile-system
displays each action in the plan one at a time, and asks you whether you want to carry out this particular action. The answer c
executes the rest of the plan without further prompting, returns from compile-system without further processing, and y
and n
work as expected.
:simulate
may be abbreviated as :sim
.
If t
then load-system is called after compile-system
has finished. If :no
then no files are loaded at all. The default is nil
.
Arguments to be passed directly to the compiler.
This must be a string representing a valid directory. It defaults to the :default-pathname
option to defsystem. This is the directory where the object files created are put. If the target-directory is given then dependency information expressed in the system rules is ignored. :target-directory
may be abbreviated as :t-dir
.
(compile-system 'blackboard :simulate :ask)
(compile-system 'tms :load t)
(compile-system 'packages :load :no
:target-directory "/usr/users/386i/")
If load is t
then load-system is called after the system has been compiled.
C source files, for example foo.c
, can be included in a system (see the use of :default-type
and :type
in defsystem). The corresponding object file name is foo.so
on Linux, and on Unix it is foo
n.o
where n is a platform-specific integer. On Mac OS X the object file name is foo.dylib
and on Windows the object file name is foo.dll
.
LispWorks User Guide and Reference Manual - 13 Feb 2015