Makefile: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 20: | Zeile 20: | ||
I Existiert aber eine Datei mit Namen clean funktioniert make | I Existiert aber eine Datei mit Namen clean funktioniert make | ||
clean nicht mehr | clean nicht mehr | ||
| − | I Um das das zu beheben | + | I Um das das zu beheben müssen solche unechten Regeln mit |
.PHONY gekennzeichnet werden: | .PHONY gekennzeichnet werden: | ||
.PHONY: clean | .PHONY: clean | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
Version vom 6. Mai 2022, 08:04 Uhr
Automatische Variablen
- $@ Name das Ziels
- $^ Name aller Voraussetzungen, getrennt durch Leerzeichen
- $< ist die erste Voraussetzung
Beispiele:
hello: main.o helper.o
$(CC) $(CC_OPTS) $^ -o $@
main.o: main.c $(HEADERS)
$(CC) $(CC_OPTS) -c $
Phony Targets
I Manchmal will man make nur benutzen um ein paar Befehle auszuführen, hier löscht make clean die auszuführbare Datei und alle Objektdateien: clean:
- rm -f hello
- rm -f *.o
I Hier erzeugt der Befehl aber keine Datei mit Namen clean I Existiert aber eine Datei mit Namen clean funktioniert make clean nicht mehr I Um das das zu beheben müssen solche unechten Regeln mit .PHONY gekennzeichnet werden: .PHONY: clean