make: hierarchische make-Datei

(Haftungsausschluss: Ich bin Scons gewohnt ... Ich bin etwas unerfahren mit make)

Kontext: Ich verwende Eclipse CDT, das Makefiles generiert.

Nehmen wir an, ich habe ein Projektverzeichnis 'lib' und 2 Build-Konfigurationen 'Debug' und 'Release'. Eclipse CDT generiert ordnungsgemäß ein Makefile für jede Build-Konfiguration. Die genannten Makefiles befinden sich in den Ordnern 'Debug' und 'Release'.

Nun möchte ich ein Makefile im Ordner 'lib' haben, welchesAnrufe die Makefiles 'Debug / Makefile' und 'Release / Makefile'.

Wie mache ich das?

Ich möchte in der Lage sein, 'make' im Ordner 'lib' zu starten und beide Konfigurationen würden mit den angegebenen Zielen aufgerufen.

Lösung Aufgrund all der großartigen Beiträge, die hier zusammengetragen wurden, habe ich Folgendes entwickelt:

MAKE=make
BUILDS=Release Debug
TARGETS=all clean

$(TARGETS):
    @for b in $(BUILDS) ; do $(MAKE) -C $b $@ ; done

$(BUILDS):
    @for t in $(TARGETS) ; do $(MAKE) -C $@ $t ; done

%:
    @for b in $(BUILDS) ; do $(MAKE) -C $b $@ ; done

Antworten auf die Frage(4)

Ihre Antwort auf die Frage