2 Make from Dependencies

▼ |  | Make: Dependency Manager

1 | Overview
2 | Make from Dependencies
3 | Building Native-Code Extensions
4 | Making Collections

► | 2 | Make from Dependencies

2.1 | Signature
2.2 | Unit

On this page:

make
make/ proc
exn: fail: make
make-print-checking
make-print-dep-no-line
make-print-reasons
2.1`` Signature
make^
2.2`` Unit
make@

top ← prev up next →

### 2`` Make from Dependencies

(require make)

> > syntax
> > (make ((target-expr (depend-expr ...)
> > command-expr ...)
> > ...)
> > argv-expr)

Expands to

> (make/proc
> (list (list target-expr (list depend-expr ...)
> (lambda () command-expr ...))
> ...)
> argv-expr)

> procedure (make/proc spec argv) → void?
> | spec |  | : |  |
> (listof
> (cons/c (or/c path-string? (listof path-string?))
> (cons/c (listof path-string?)
> (or/c null?
> (list/c (-> any))))))
> argv : (or/c string? (vectorof string?) (listof string?))

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.}

> > struct
> > (struct |  | exn:fail:make exn:fail (targets orig-exn)
> > |  | #:extra-constructor-name make-exn:fail:make)
> targets : (listof path-string?)
> orig-exn : any/c

The targets field is a list of strings naming the target(s), and the orig-exn field is the original raised value.

> parameter (make-print-checking) → boolean?
> (make-print-checking on?) → void?
> on? : any/c

A parameter that controls whether make/proc prints a message when making a target. The default is #t.

> parameter (make-print-dep-no-line) → boolean?
> (make-print-dep-no-line on?) → void?
> on? : any/c

A parameter that controls whether make/proc prints “checking...” lines for dependencies that have no target in the given kspec. The default is #f.

> parameter (make-print-reasons) → boolean?
> (make-print-reasons on?) → void?
> on? : any/c

A parameter that controls whether make/proc prints the reason that a command thunk is called. The default is #t.

#### 2.1`` Signature

(require make/make-sig)

> signature make^ : signature

> Includes all of the names provided by make.

#### 2.2`` Unit

(require make/make-unit)

> value make@ : unit?

A unit that imports nothing and exports make^.
top ← prev up next →