aboutsummaryrefslogtreecommitdiff
path: root/build.1
blob: a722d1c633410ffc658a1cf33beedb06c2606727 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
.Dd $Mdocdate$
.Dt BUILD 1
.Os
.Sh NAME
.Nm build
.Nd follow embedded build instructions
.Sh SYNOPSIS
.Nm
.Op Fl d
.Op Fl d
.Op Fl d
.Ar file
.Op Ar ...
.Sh DESCRIPTION
.Pp
.Nm
is a program which follows simple build instructions
embedded in source files.
The number of
.Fl d
flags control the printing of debugging information.
.Pp
.Nm
is decidedly not a
.Xr make 1
replacement, except in trivial cases.
In such cases, however,
it is quite a nice and simple solution.
It is originally designed for generating
.Xr troff 1
documents,
but can be used with arbitrary source files.
.Pp
The first twenty lines of each
.Ar file
are scanned for build information.
Build information is encoded in two ways:
.Bl -tag -width indent
.It command line
[anything] <whitespace> "$ " <shell command> [">" <target>]
.It dependency line
[anything] <whitespace> "% " <files separated by whitespace>
.El
.Pp
There can be multiple command lines,
but only one dependency line.
.
.Sh EXAMPLES
.Pp
Assuming that the file
.Pa doc.t
starts with the following text,
.Bd -literal -offset indent
\&.\\" This document is built with the following shell commands:
\&.\\"   $ refer -p refs doc.t | troff -ms | dpost > doc.ps
\&.\\"   $ ps2pdf doc.ps > doc.pdf
\&.\\"   $ rm doc.ps
\&.
\&.\\" It depends on the following files:
\&.\\"   % refs x.tmac
.Ed
.Pp
the invocation
.Bd -literal -offset indent
$ build doc.t
.Ed
.Pp
will generate
.Pa doc.pdf
by running the given commands,
depending on the relative modification times of
.Pa doc.t ,
.Pa doc.pdf
and
.Pa x.tmac .
.\" .Sh DIAGNOSTICS
.\" .Sh SEE ALSO
.\" .Sh STANDARDS
.\" .Sh HISTORY
.Sh AUTHORS
.Nm
is written by John Ankarström
.Aq Mt "john (at) ankarstrom.se" .
.\" .Sh BUGS