Previous: Making scmlit, Up: GNU configure and make


2.2.2 Makefile targets

Each of the following four ‘make’ targets creates an executable named scm. Each target takes its build options from a file with an ‘.opt’ suffix. If that options file doesn't exist, making that target will create the file with the ‘-F’ features: cautious, bignums, arrays, inexact, engineering-notation, and dynamic-linking. Once that ‘.opt’ file exists, you can edit it to your taste and it will be preserved.

make scm4
Produces a R4RS executable named scm lacking hygienic macros (but with defmacro). The build options are taken from scm4.opt. If build or the executable fails, try removing ‘dynamic-linking’ from scm4.opt.
make scm5
R5RS; like ‘make scm4’ but with ‘-F macro’. The build options are taken from scm5.opt. If build or the executable fails, try removing ‘dynamic-linking’ from scm5.opt.
make dscm4
Produces a R4RS executable named udscm4, which it starts and dumps to a low startup latency executable named scm. The build options are taken from udscm4.opt.

If the build fails, then ‘build scm4’ instead. If the dumped executable fails to run, then send me a bug report (and use ‘build scm4 until the problem with dump is corrected).

make dscm5
Like ‘make dscm4’ but with ‘-F macro’. The build options are taken from udscm5.opt.

If the build fails, then ‘build scm5’ instead. If the dumped executable fails to run, then send me a bug report (and use ‘build scm5 until the problem with dump is corrected).

If the above builds fail because of ‘-F dynamic-linking, then (because they can't be dynamically linked) you will likely want to add some other features to the build's ‘.opt’ file. See the ‘-F’ build option in Build Options.

If dynamic-linking is working, then you will likely want to compile most of the modules as DLLs. The build options for compiling DLLs are in dlls.opt.

make x.so
The Xlib module; SCM Language X Interface.
make myturtle
Creates a DLL named turtlegr.so which is a simple graphics API.
make wbscm.so
The wb module; B-tree database implementation. Compiling this requires that wb source be in a peer directory to scm.
make dlls
Compiles all the distributed library modules, but not wbscm.so. Many of the module compiles are recursively invoked in such a way that failure of one (which could be due to a system library not being installed) doesn't cause the top-level ‘make dlls’ to fail. If ‘make dlls’ fails as a whole, it is time to submit a bug report (see Reporting Problems).