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
|
.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 "\-a, \-\-alleSummenErneuern"
refresh all checksums
.TP
.B "\-l, \-\-leise"
print nothing but error messages and (if \fB-A\fP omitted) commands
.TP
.B "\-u, \-\-unsicher"
accept running jobs outside of directory of \fIAusgabedatei\fP or \fIPrüfsummendatei\fP
.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. Regular expressions matching 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.
A single line containing the source regex must follow a set of target definition lines.
.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\fIn\fP%" (*)
file name of \fIn\fP-th source file without extension(s)
.TP
.B "%dirname\fIn1\fP,\fIn2\fP,\fIn3\fP%" (*)
components \fIn1\fP upto \fIn2\fP of path to \fIn3\fP-th source file.
Negative numbers \fIn1\fP or \fIn2\fP are counted from the back - e.g. \fB-1\fP is the last path component, etc.
If omitted, \fIn2\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
|