ich eine Reihe von Unterverzeichnissen habe, mit Makefiles nach innen, und ich möchte einen „Master“ Makefile, die im Grunde Makefiles in diesen Verzeichnissen rufen:Makefile: Versand dynamisch an anderen Makefiles
Makefile
foo/Makefile
bar/Makefile
Damit make foo
in root eingeben Verzeichnis entspricht cd foo && make
. Ich kann einfache Makefile schreibe dies acieve:
foo:
cd foo && make
bar:
cd bar && make
Aber ich will nicht diese Unterverzeichnisse auflisten, so kann ich neues Verzeichnis mit Makefile hinzufügen, ohne „Master“ Makefile zu ändern.
In Ihrem zweiten Beispiel benötigen Sie eine 'all: $ (DIRS)' oder ähnliches vor der DIRS-Regel, sonst wird nur die erste erstellt. – MadScientist
@MadScientist die Frage speziell nach einem Weg gefragt, 'make foo' etwas zu tun. Es gab keine Notwendigkeit für ein Standardverhalten von "Build alles, wenn ich nur' make' "eingeben. Wenn überhaupt, könnte es sinnvoller sein, die Liste der verfügbaren Verzeichnisse ohne Angabe von Gründen zu erstellen. –
'make -j16 proj1 proj2' ist Grund genug, Shell-Skripte zu meiden. – bobbogo