make |
Werkzeug zum Erzeugen von Systemen
|
|
|
Regeln |
Abhängigkeiten zwischen Quellen und
zu erzeugenden Dateien (Zielen)
|
|
|
Syntax |
Ziel1 : Quelle11 Quelle12 ...
Kommando11
Kommando12
...
Ziel2 : Quelle21 Quelle22 ...
Kommando21
...
|
|
|
|
vor den Kommandos muss ein Tabulatorzeichen stehen !!!
|
|
|
Zeitstempel |
des letzten Schreibens steuern
die Anwendung der Regeln.
|
|
|
Aufruf |
|
|
|
.1 |
rekursiv für alle Quellen
|
|
|
|
|
2. |
mindestens eine Quelle neuer als das Ziel:
==>
Kommando(s) ausführen
|
|
|
neuer |
|
.a |
Ziel und Quelle existieren
==>
Zeitstempel des letzten Schreibens vergleichen
|
.b |
Ziel(datei) existiert nicht:
==>
Quelle neuer als das Ziel
|
.c |
Quelle existiert und keine Regel für die Quelle:
==>
fertig
|
.d |
Quelle existiert nicht und keine Regel für die Quelle:
==>
Fehler
|
|
|
Makros |
Text-Variablen zur Vermeidung von Codeverdopplung,
für Abkürzungen.
|
|
|
Syntax |
|
|
|
Definition |
|
|
|
Anwendung |
|
|
|
Umgebungs-
Variablen |
stehen als Makros zur Verfügung.
|
|
|
Kommandozeilen-
Parameter |
zum Setzen von Makros
|
|
|
|
|
vordefinierte Makros |
| $@ | aktuelles Ziel |
| $* | aktuelles Ziel ohne extension |
| $$ | $-Zeichen |
| $< | aktuelle Quelle |
| $(CC) | C-Compiler |
| $(CFLAGS) | C-Compiler Optionen |
| $(MAKE) | make Programm |
|
|
|
default-
Regeln |
Regeln für eine Klasse von Dateien
|
|
|
.-Regeln |
alte make-Variante: Etwas unflexibel
|
|
.c.o:
$(CC) $(CFLAGS) -c $<
.ppm.gif:
ppmtogif $< $@
.SUFFIXES : .o .c .ppm .gif
|
|
|
%-Regeln |
GNU make: flexibler
|
|
%.o : %.c
$(CC) $(CFLAGS) -c $<
%.gif : %.ppm
ppmtogif $< $@
|
|
|
|
Bilder konvertieren und erzeugen von Varianten mit convert
|
|
|
Optionen |
für make
|
|
| -n | Trockenkurs |
| -p | alle Makros und Regeln |
| -r | ohne default-Regeln |
| -f | explizite Makefile-Angabe |
|
|
|
GNU make |
Dokumentation
|