Ich habe folgendes Problem. Ich brauche ein Makefile, welches eine Regel für Objekte enthält. Das Problem aber ist, dass das Projekt Unterprojekte hat. Die Sourcedateien haben dabei folgende Ordnerstruktur /src/*.cc /src/*/*.cc /src/<SubProject>/src/*.cc
Die Objektdateien sollen dabei in andere Unterordner erstellen, nämlich der Art, dass jedes "/src/" durch ein "/build/objs/" ersetzt werden soll /build/objs/.o /build/objs/*.o /build/objs/<SubProject>/build/objs/*.o
So sieht meine Regel der Zeit aus:
1 2 3 4 5 6 7 8 9 | $(BUILD_DIR_NAME)/$(OBJS_DIR_NAME)/%$(OBJ_SUFFIX): $(SRC_DIR_NAME)/%$(CC_SUFFIX) $(SRC_DIR_NAME)/%$(HH_SUFFIX) $(SRC_DIR_NAME)/*/%$(CC_SUFFIX) $(SRC_DIR_NAME)/*/%$(HH_SUFFIX) $(SRC_DIR_NAME)/*/*/%$(CC_SUFFIX) $(SRC_DIR_NAME)/*/*/%$(HH_SUFFIX) $(SRC_DIR_NAME)/*/*/*/%$(CC_SUFFIX) $(SRC_DIR_NAME)/*/*/*/%$(HH_SUFFIX) @mkdir -p $(BUILD_DIR_NAME)/$(OBJS_DIR_NAME) $(CC) -c $(CMD) $< $(EXECUTABLE): $(OBJECTS) @mkdir -p $(dir $(EXECUTABLE)) ccache -F 0 && ccache -M 0 $(CC) -o $@ $^ $(CMD) ccache -s |
Wie mache ich das?