Benutzer-Werkzeuge

Webseiten-Werkzeuge


make

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
make [2013/10/17 23:35] – [rekursives Make] ollimake [2023/06/03 08:40] (aktuell) – [rekursives Make] olli
Zeile 11: Zeile 11:
 done done
 </code> </code>
-Diese Vorgehen ist aber nicht nicht empfehlenswert, da alle anderen Unterordner abgearbeitet werden, auch wenn ein Fehler in einem Unterordner aufgetreten ist. So lässt sich auch der make-Prozess nur schlecht parallelisieren. (vgl. [[http://www.gnu.org/software/make/manual/make.html#Phony-Targets|Make-Doku]])+Diese Vorgehen ist aber nicht nicht empfehlenswert, da alle anderen Unterordner abgearbeitet werden, auch wenn ein Fehler in einem Unterordner aufgetreten ist. So lässt sich auch der make-Prozess nur schlecht parallelisieren. (vgl. [[http://www.gnu.org/software/make/manual/make.html#Phony-Targets|Make-Doku]] und [[https://grosskurth.ca/bib/1997/miller.pdf|Recursive Make Considered Harmful]])
 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
 </code> </code>
-Ein rekursives Clean-Target lääst sich zum Beispiel so realiseren:+Ein Clean-Target für ein Projekt mit mehreren Unterordnern lässt sich zum Beispiel so realiseren:
 <code make> <code make>
 SUBCLEAN = $(addsuffix .clean,$(SUBDIRS)) SUBCLEAN = $(addsuffix .clean,$(SUBDIRS))
Zeile 49: Zeile 49:
 ifeq (foo, bar) ifeq (foo, bar)
     ...     ...
 +endif
 +</code>
 +
 +===== 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't exist
 +else
 +    # do something different when it does
 endif endif
 </code> </code>
make.1382045727.txt.gz · Zuletzt geändert: 2013/10/17 23:35 von olli