makefile: foreach "make-C" nennen

hier ist ein Teil meiner makefile:

PATH := $(shell pwd)
EDIR := impl
EFFECTS := $(filter-out $(EDIR), $(shell find $(EDIR) -maxdepth 1 -type d))
ALLMAKES := $(patsubst %, $(PATH)/%, $(EFFECTS))


all:
      $(foreach c,$(ALLMAKES),$(MAKE) -C $(c))

Also im Grunde genommen, möchte ich nennen, machen für alle Verzeichnisse im "impl" - Verzeichnis ohne "impl" selbst. Ich verstehe, dass stellen Sie erinnern sich an das Letzte Verzeichnis war es beim letzten Aufruf mit der Option-C argument, das ist, warum ich geben Sie den absoluten Pfad jedes mal. Was machen echos zu sein scheint, was ich will:

make -C <projectdir>/impl/thing1 make -C <projectdir>/impl/thing2 make -C <projectdir>/impl/thing3

Das Problem ist, dass stellen nicht erreichen, der Befehl und druckt einfach:

make: make: Command not found. 

Kann ich nennen "make-C <Pfad>" für jedes der Verzeichnisse einzeln außerhalb des makefile, aber es funktioniert nicht in der foreach-Aufruf. Ich habe versucht, das anstelle, aber es klappt nicht, entweder:

$(foreach c,$(ALLMAKES),$(shell make -C $(c)))

Irgendwelche Ideen?

  • Die person, die gepostet, der Kommentar aber gelöscht...es funktioniert nicht aufrufen, die genau die gleiche make-Befehl aus dem makefile als aus der Schale, so dass Sie hilfreich waren...
  • Ich löschte meinen Kommentar, weil ich dachte, ich war auf der falschen Spur. Ich arbeite auf eine bessere Antwort...
Schreibe einen Kommentar