2 Make from Dependencies
(make ((target-expr (depend-expr ...) | command-expr ...) | ...) | argv-expr) |
|
Expands to
Performs a make according to spec and using argv as
command-line arguments selecting one or more targets.
Each element of the spec list is a target. A target element
that starts with a list of strings is the same as multiple elements,
one for each string. The second element of each target is a list of
dependencies, and the third element (if any) of a target is the
optional command thunk.
To make a target, make/proc is first called recursively on
each of the target’s dependencies. If a target is not in spec
and it exists as a file, then the target is considered made. If a
target’s modification date is older than any of its dependencies’
modification dates, the corresponding command thunk is called. If the
dependency has no command thunk then no action is taken; such a target
is useful for triggering the make of other targets (i.e., the
dependencies).
While running a command thunk, make/proc catches exceptions
and wraps them in an exn:fail:make structure, the raises the
resulting structure.}
The targets field is a list of strings naming the
target(s), and the orig-exn field is the original raised
value.
A parameter that controls whether
make/proc prints a message
when making a target. The default is
#t.
A parameter that controls whether
make/proc prints
“checking...” lines for dependencies that have no target in the
given k
spec. The default is
#f.
A parameter that controls whether
make/proc prints the reason
that a command thunk is called. The default is
#t.
2.1 Signature
Includes all of the names provided by make.
2.2 Unit
A unit that imports nothing and exports
make^.