makefiles pattern rules
-
Hallo...
verzweifel grad an diesen gnu makefiles.
ich möchte alle cpp files aus einem sourceverzeichnis+subdirs compilen und die objectfiles in einem separaten intermediate verzeichnis lagern.
makefiles bieten da die sogenannten pattern rules an.%.o = %.cpp $(CC) $(CFLAGS) $< -o $(BUILD_DIR)/$@
problem hier nun ist, dass in diesem targetcommand nur die reinen files landen (*.cpp) aber nicht deren kompletten pfade. also schlägt
g++ -c main.cpp -o build/main.o
fehl weil das main.cpp zum beispiel im verzeichnis src/foo/bla/main.cpp ein anderes source file in src/core/ liegt etc.
wie kann ich diese regel so anpassen, dass ich zu einem gescannten cpp file auch dessen pfad erhalte?
-
-
ok.. glaub ich habs auch so gefunden,...
$* ist wohl die zaubervariable...
.cpp.o: $(CC) $(CFLAGS) -c $*.cpp -o $(DIR_BUILD)/$(*F).o