make
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
make [2013/10/17 23:22] – [rekursives Make] olli | make [2023/06/03 08:40] (aktuell) – [rekursives Make] olli | ||
---|---|---|---|
Zeile 11: | Zeile 11: | ||
done | done | ||
</ | </ | ||
- | Diese Vorgehen ist aber nicht nicht empfehlenswert, | + | Diese Vorgehen ist aber nicht nicht empfehlenswert, |
Besser ist ein Vorgehen, bei dem jeden Unterverzeichnis ein extra Target ist: | Besser ist ein Vorgehen, bei dem jeden Unterverzeichnis ein extra Target ist: | ||
Zeile 26: | Zeile 26: | ||
foo: baz | foo: baz | ||
</ | </ | ||
- | Ein rekursives | + | Ein Clean-Target |
<code make> | <code make> | ||
SUBCLEAN = $(addsuffix .clean, | SUBCLEAN = $(addsuffix .clean, | ||
Zeile 39: | Zeile 39: | ||
Das Hinzufügen des Suffix .clean ist notwendig, da das clean-Target für ein Unterverzeichnis anders heißen muss, als das Target zum Bauen. Es wird durch die Abhängigkeit %.clean und das $* wieder entfernt. | Das Hinzufügen des Suffix .clean ist notwendig, da das clean-Target für ein Unterverzeichnis anders heißen muss, als das Target zum Bauen. Es wird durch die Abhängigkeit %.clean und das $* wieder entfernt. | ||
+ | ===== Häufige Fehler ===== | ||
+ | ==== makefile: | ||
+ | Die angegebene Zeile beginnt nicht mit eine Tab. | ||
+ | ==== /bin/sh: -c: line 0: syntax error near unexpected token `foo, | ||
+ | Der make-Befehl ifeq muss am Anfang der Zeile stehen und darf nicht durch Tabs oder Leerzeichen eingerückt sein: | ||
+ | <code make> | ||
+ | target: | ||
+ | ifeq (foo, bar) | ||
+ | ... | ||
+ | endif | ||
+ | </ | ||
+ | ===== Tipps und Tricks ===== | ||
+ | ==== Prüfen, ob Datei existiert ==== | ||
+ | So lässt sich prüfen, ob eine Datei existiert: | ||
+ | <code make> | ||
+ | ifeq ($(wildcard $(FileName)), | ||
+ | # do something when the file doesn' | ||
+ | else | ||
+ | # do something different when it does | ||
+ | endif | ||
+ | </ | ||
===== Links ===== | ===== Links ===== | ||
[[http:// | [[http:// | ||
make.1382044932.txt.gz · Zuletzt geändert: 2013/10/17 23:22 von olli