Ich habe ein Makefile, das Makefiles aus Unterverzeichnissen enthält. Allerdings möchte ich diese "Sub" -Makefiles auf der Basis eines ausgewählten Ziels enthalten.Include-Dateien abhängig von Ziel
Hintergrund ist, dass die Sub-Makefiles verschiedene Objektdateien definieren und abhängig von diesen Objektdateien die Ziel-Executable erstellt werden soll.
Unter makefile1 setzt würde die Variable
OBJECTS := foo.o foo1.o
Unter makefile2 setzt
OBJECTS := bar.o bar1.o
Und die allgemeine Regel sein Angenommen:
lib/%.so: $(OBJECTS) link $^ -o [email protected]
Die Ziele sind (zum Beispiel) :
foo: lib/foo.so
bar: lib/bar.so
während target foo das foo makefile enthalten sollte, targe bar das bar-makefile.
Irgendeine Idee, wie man mit dieser Situation umgeht?
Danke, Christian
Vielen Dank für Ihre Antwort! Eigentlich war mir nicht bewusst, dass ich die Voraussetzungen für die lib /% .so: -Regel nicht benötige oder dass sie tatsächlich von der lib/foo.so: -Regel weitergeleitet werden. Auch die Sache mit der statischen Musterregel ist neu für mich. Ihr Beispiel ist genau das, wonach ich gesucht habe. –