summaryrefslogtreecommitdiff
path: root/Make.1.in
blob: 228d7adb4ef20bdfe2b9d06ba5fa2048211cb14d (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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
.TH Make 1 "" "Make #VERSION#" ""
.SH NAME
Make \- somewhat more powerfull alternative to make
.SH SYNOPSIS
\fBMake [options]\fP
.SH DESCRIPTION
\fBMake\fP checks currentness of compiled files and generates commands for compilation of outdated files as specified by regex-aware rules.
.SH OPTIONS
.TP
.B "\-A, \-\-Ausgabe Ausgabedatei"
store commands in \fIAusgabedatei\fP.
If absent, commands are printed to stdout.
.TP
.B "\-D, \-\-Datei Machdatei"
read rules from \fIMachdatei\fP.
If absent, use \fIMachdatei\fP in current directory or first parent containing \fIMachdatei\fP.
.TP
.B "\-P, \-\-Prüfsummen Prüfsummendatei"
read/store checksums in \fIPrüfsummendatei\fP.
If absent, use \fI.summen\fP in same directory as \fIMachdatei\fP.
.TP
.B "\-l, \-\-leise"
print nothing but error messages and (if \fB-A\fP omitted) commands
.TP
.B "\-s, \-\-sicher"
always check for jobs running outside of directory of \fIAusgabedatei\fP or \fIPrüfsummendatei\fP
.TP
.B "\-u, \-\-unsicher"
never check for jobs running outside of directory of \fIAusgabedatei\fP or \fIPrüfsummendatei\fP
.TP
.B "\-w, \-\-warten"
wait for user input on error
.SH MACHDATEI SYNTAX
\fB#\fP starts comments, empty lines are ignored.
.PP
The file consists of four types of lines:
.TP
1. Definitions of files to watch.
.TP
2. Definitions of targets.
.TP
3. Definition of sources.
.TP
4. Commands to execute for compiling targets from sources.
.SH WATCH FILE DEFINITIONS
.TP
.B "/path/to/files"
add these files to currentness control
.TP
.B "-r /path/to/files"
recursively add these files and directories to currentness control
.TP
.B "! excludeRegex"
from now on do not add files matching the regular expression \fIexcludeRegex\fP to currentness control
.SH TARGET DEFINITIONS
These lines must end on \fB:\fP.
Substitutions marked with (*) are allowed in this type of line.
Multiple targets may be defined in one line if separated by spaces or in common bash syntax: \fB*\fP, \fB{one,two,three}\fP, \fB{1..3}\fP are expanded.
Alternatively multiple targets may be defined in multiple consecutive lines.
.SH SOURCE DEFINITIONS
A set of lines containing the source regexes or source names must follow a set of target definition lines.
These lines can either be a regex or a verbatim source file name.
Regexes must start with \fI^\fP and end with \fI$\fP.
Literal source lines must be quoted in \fI"\fP.
Substitutions marked with (*) are partially allowed in these types of lines:
The referenced source must appear before the line referencing it.
.SH COMMAND DEFINITIONS
Each of these lines must end on \fB;\fP.
Substitutions marked with (*) are allowed in this type of line.
Commands on one line are concatenated with \fB&&\fP instead of \fB;\fP \- to use a literal \fB;\fP in a command, one must write \fB;;\fP in the 
\fIMachdatei\fP.
.SH SUBSTITUTIONS
Some substitutions and macros are recognized.
Obviously, substitutions marked with \fB(*)\fP are only available in COMMAND- and TARGET-DEFINITION lines.
Number parameters may be omitted from back to front and default to \fI0\fP unless otherwise noted.
.TP
.B "%nurmit\fIn\fP'filePart'%" (*)
only execute command / generate target name from source file if name of \fIn\fP-th source file contains \fIfilePart\fP
.TP
.B "%nurohne\fIn\fP'filePart'%" (*)
opposite of \fB%nurmit'filePart'%\fP
.TP
.B "%in\fIn\fP%" (*)
file name and path of \fIn\fP-th source file
.TP
.B "%ifile\fIn\fP%" (*)
file name of \fIn\fP-th source file
.TP
.B "%basename\fIn1\fP,\fIn2\fP%" (*)
file name of \fIn1\fP-th source file without last n2 extension(s).
If \fIn2\fP is omitted, it defaults to removing all extensions.
.TP
.B "%dirname\fIn1\fP,\fIn2\fP,\fIn3\fP%" (*)
components \fIn2\fP upto \fIn3\fP of path to \fIn1\fP-th source file.
Negative numbers \fIn2\fP or \fIn3\fP are counted from the back - e.g. \fB-1\fP is the last path component, etc.
If omitted, \fIn3\fP defaults to \fI-1\fP.
.TP
.B "%DIRNAME%"
path to \fIMachdatei\fP
.TP
.B "%num'string'%"
last decimal number in \fIstring\fP.
E.g. \fB%num'abc123def456ghi'%\fP becomes \fB456\fP.
.SH AUTHOR
.nf
Erich Eckner <opensource at eckner dot net>
.fi