Makefile: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 17: Zeile 17:
 
*rm -f hello
 
*rm -f hello
 
*rm -f *.o
 
*rm -f *.o
I Hier erzeugt der Befehl aber keine Datei mit Namen clean
+
Hier erzeugt der Befehl aber keine Datei mit Namen clean
I Existiert aber eine Datei mit Namen clean funktioniert make
+
Existiert aber eine Datei mit Namen clean funktioniert make
 
clean nicht mehr
 
clean nicht mehr
 
I Um das das zu beheben müssen solche unechten Regeln mit
 
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:05 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

Hier erzeugt der Befehl aber keine Datei mit Namen clean 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