Makefiles steuern die Kompilierung anhand von Abhängigkeiten und Dateizeitstempeln, um nur geänderte Dateien neu zu bauen.
Grundsyntax: Regeln bestehen aus Targets, Prerequisites und Befehlen, die mit Tabs eingerückt werden müssen.
Automatische und implizite Regeln sowie Standard-Variablen (wie CC, CFLAGS) vereinfachen C/C++-Kompilierung ohne explizite Befehle.
Wildcards (*) und Platzhalter (%) sowie Pattern- und statische Pattern-Regeln ermöglichen flexible Zieldefinitionsmuster.
Automatische Variablen ($@, $<, $^, $?) liefern Informationen über aktuelle Ziele und Abhängigkeiten.
Variablen können rekursiv (=) oder einfach (:=) definiert, mit += ergänzt und mit ?= bedingt gesetzt werden.
Text- und Listenfunktionen (subst, patsubst, foreach, filter) sowie call- und shell-Funktionen erlauben komplexe Makrowerkzeuge.
Phony-Ziele (.PHONY), clean-Regeln und .DELETE_ON_ERROR schützen vor Dateikonflikten und bereinigen Ausgaben.
Rekursive Make-Aufrufe mit $(MAKE) und Variablexport (.EXPORT_ALL_VARIABLES) gewährleisten Konsistenz in Subprojekten.
Beispielhafte Makefile-Struktur für mittelgroße C/C++-Projekte mit automatischer Dependency-Generierung durch -MMD und -MP Flags.
Get notified when new stories are published for "🇩🇪 Hacker News Deutsch"