next up previous contents
Next: 6.2 The testml script Up: 6. Scripts Previous: 6. Scripts   Contents

6.1 The makeml script

This script is used after a successful run of CMB.make (or CMB.make'). It links the compiler and its interactive system, forming a corresponding heap image. In addition to that, it prepares a new directory containing stable CM libraries to be used with the new image.

One way of thinking about this is to view makeml as a function mapping a bootfile directory $b$ to a pair consisting of a heap image $v$. arch- osname and a library directory $v$.lib. The strings $b$ and $v$ are optional parameters; the defaults are sml.boot. arch- os for $b$ and sml for $v$.

The script accepts a number of options as follows:

-o $v$
specifies a $v$ other than the default sml.
-boot $b$
specifies a $b$ other than the default sml.boot. arch- os.
instructs makeml to greatly reduce its diagnostic output. In particular, the names of files being linked are not shown. The default for this can be controlled via a boolean-valued environment variable MAKEML_VERBOSITY. If the variable is not set, then the default is true (meaning ``verbose'').
is the opposite of -quiet.
-rebuild $u$
puts makeml into a different mode: After loading the executable section of all binfiles and linking them, it will not read any static environments, will not initialize the usual interactive system and will not produce a heap image. Instead, it internally invokes the equivalent of CMB.make' (SOME "$u$"), thus recompiling everything again. When recompilation is complete, makeml stops; the newly-built system must be linked using a separate explicit invocation of makeml. Notice that $u$.boot. arch- os must be different from $b$.
-rebuildlight $u$
is the same as -rebuild $u$ except that the symbol LIGHT will be defined (using CMB.symval) for the duration of the compilation. The effect of this is that no cross-compilers will be built (which can save considerable time). Alternative names for -rebuildlight are -light and -lightrebuild.
causes makeml to build a reduced version of the system without the compilation manager CM included. This is useful for people who are interested in an interactive system only.
-run $r$
selects the executable for the SML/NJ runtime system. The default is ../../bin/.run/run. arch- osname.
-alloc $a$
specifies the size of the SML/NJ garbage-collector's allocation area. The default depends on the current machine architecture.

The most common usage is to simply say ./makeml without any arguments, taking advantage of the defaults as described above.

next up previous contents
Next: 6.2 The testml script Up: 6. Scripts Previous: 6. Scripts   Contents
Matthias Blume