Make




Aufruf:


make target

sorgt dafür daß nur die unbedingt nötigen Programmteile neu compiliert werden.

sehr wichtig für umfangreiche Programme mit vielen Files sonst kein Überblick verlieren kann, was neu compiliert werden muss und was nicht.

Befehlsform

target: dependendcies
"TABULATOR" Kommando target aus Dependendcies

"TABULATOR": das Zeichen, das die TAB-Taste liefert.
Target heisst Ziel und Dependendcy heisst Abhängigkeit.


Ist bei der Ausführung von make das target (normalerweise ein file) älter als eines der Dependendcies (normalerweise files), wird das entsprechende Kommando ausgeführt.

Dependendcyfiles kommen aus dem Editor, oder sind targets in weiteren Befehlen

Bei mehreren targets wird das target der Kommandozeile hergestellt, gibt es keins, wird das erste target in File hergestellt.
Alle anderen Befehle legen fest was ausgeführt werden muss, damit die neueste Version des jeweiligen targets korrekt erstellt wird.

Beispiel für ein Makefile:
# linken
program: program1.o program2.o
	cc -o program program1.o program2.o

# compilieren program1
program1.o: program1.c program.h
	cc -c program1.c 

# compilieren program2
program2.o: program2.c program.h
	cc -c program2.c 




Ein wichtiger weiterer Befehle in make ist die Definition von eigenen Symbolen

SYMBOL= irgendwas anderes

Definition wird später als $(SYMBOL) benutzt

Make hat schon eine Fülle von vordefinieren Symbolen und Defaultbefehlen, so daß make meistens ohne weitere Befehle "weiss" wie ein File zu compileren ist.

Einige wichtigste vordefinieren Symbolen und Defaultbefehle sind: Liste der defaults bekommt man mit make -p