Now that the directory class structure has been introduced we can mention
the cmk
script without hopelessly confusing the reader. cmk
takes two or more arguments. The first argument is the name of a directory
class (eg. script
, appgrp
etc). Subsequent arguments are
concatenated to form a command. cmk
then effectively runs mk
with that command only on directories whose class is the same as
the first argument from the current directory downwards. For example,
% cd $AST_ROOT % cmk scripts unbuildUnbuilds every scripts directory in ASTERIX. This is an extremely useful thing to be able to do. If you have to make a change to the way the script directory class is handled, you can unbuild all the script directories, change the
.base_config
and/or .make
files, reconstruct
the Makefiles
using mk makes
then rebuild.
Thus although the whole system is rather more fragmented then it used to
be, giving a finer degree of control of parts of the system, there is
also more opportunity for labour saving tricks.