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.