13.6 Make
Referenzen f�r Make:
Einfache automatische Variablen:
Regelsyntax:
Ziel: [ Voraussetzungen ... ]
[TAB] Kommando1
[TAB] -Kommando2 # ignoriere Fehler
[TAB] @Kommando3 # unterdr�cke Kommandozeilenausgabe
Hier ist [TAB] ein Tabulator. Jede Zeile wird von der Shell nach
einer Variablensubstitution interpretiert. Verwenden Sie \ am
Ende einer Zeile zur Fortsetzung des Skripts. Statt $ ist
$$ f�r Umgebungsvariablen zu schreiben.
Implizite Regeln f�r Ziel und
Voraussetzungen k�nnen beispielsweise wie folgt geschrieben werden:
%: %.c header.h
oder
%.o: %.c header.h
Hier enth�lt Ziel das Zeichen % (exakt einmal).
% passt auf jeden nicht leeren Teilstring in den aktuellen
Zieldateinamen. Voraussetzungen verwendet % �hnlich um
auszudr�cken, wie sich diese Namen zum aktuellen Ziel verhalten.
Suffixregeln sind der veraltete Weg zur
Definition impliziter Regeln f�r make
. Sie werden noch in
GNU-make
zur Kompatibilit�t unterst�tzt, aber man sollte
�quivalente Musterregeln wann immer m�glich verwenden:
alte Suffixregel --> neue Musterregel
.c: --> % : %.c
.c.o: --> %.o: %.c
Automatische Variablen f�r diese Regel:
foo.o: neu1.c neu2.c alt1.c neu3.c
$@ == foo.o (Ziel)
$< == neu1.c (erstes der neueren Objekte)
$? == neu1.c neu2.c neu3.c (alle neueren Objekte)
$^ == neu1.c neu2.c alt1.c neu3.c (alle)
$* == `%' aktuelles Ziel ohne Suffix.
Variablenreferenzen:
foo1 := bar # einmalige Expandierung
foo2 = bar # rekursive Expandierung
foo3 += bar # anh�ngen
SRCS := $(wildcard *.c)
OBJS := $(foo:c=o)
OBJS := $(foo:%.c=%.o)
OBJS := $(patsubst %.c,%.o,$(foo))
DIRS = $(dir directory/filename.ext) # Extracts "directory"
$(notdir NAMES...), $(basename NAMES...), $(suffix NAMES...) ...
Starten Sie make -p -f/dev/null, um alle internen automatischen
Regeln zu sehen.