make - Regeln

Die Regeln dürfen "rekursiv" sein:

rot: rot.c gruen bunt.h
    mache_rot

gruen: gruen.c bunt.h
    mache_gruen


führt bei Änderungen an gruen.c erst mache_gruen aus und dann (falls gruen geändert wurde) mache_rot. Falls sich nur rot.c geändert hat, wird jedoch nur mache_rot ausgeführt.

Ringförmige Abhängigkeiten werden von make erkannt und mit einer Fehlermeldung belohnt. Außerdem wird eine der Abhängigkeiten ignoriert.
make: Circular rot <- gruen dependency dropped.

Das erste Target in der makefile ist default (außer das Target begint mit einem Punkt), wenn kein anderes Target auf der Kommandozeile angegeben wird. Also wird oft all: alles was kompiliert werden soll als erste Regel verwendet.

all:, clean: und install: sollten normalerweise vorhanden sein.

Theoretische könnte es eine Datei clean geben, die das Ausführen der clean-Regel verhindern würde.
Um das zu umgehen verwendet man zusätzlich:
.PHONY: clean

Aufbau