Hallo allerseits
ich möchte ein Makefile schreiben, welches sowohl unter Linux als auch
unter Windows gleich funktionert. Bisher habe ich für mein Problem nur
eine zufriedenstellende Linux-Lösung.
Und zwar liegen in mehreren Unterordnern kleinere Teilprojekte, welche
auch ihrerseits wieder ein Makefile besitzen. Das "Haupt"-Makefile,
welches ich nun schreiben möchte, soll alle Unterordner traversieren und
dort das jeweilige Makefile aufrufen. Sodass ich nur an einer Stelle ein
make aufrufen muss.
Unter Linux funktioniert folgendes:
1 | DIRECTORY = $(shell find ./* -maxdepth 1 -type d)
|
2 |
|
3 | all:
|
4 | @for dir in $(DIRECTORY); do $(MAKE) -C $$dir; done
|
unter Windows natürlich wieder mal nicht, weil find dort anders ist.
Selbst mit GnuWin32 oder den UnxUtils, welche find nachbilden, geht es
nicht, da die Befehlssyntax einfach anders ist als unter Linux.
Wie macht man mit make eine portable Rekursion?