diff options
author | tomsmeding <tom.smeding@gmail.com> | 2019-02-17 11:31:55 +0100 |
---|---|---|
committer | tomsmeding <tom.smeding@gmail.com> | 2019-02-17 11:31:55 +0100 |
commit | 2c5ec9426c0f55cf67a12b589a974ff64de061e4 (patch) | |
tree | 446faa5bb52cba454bc38f8e275dcdf150dd5e57 | |
parent | 9d0f4baa7d82d896b9660dfb2fe484129d5cfd13 (diff) |
More accurate dependency tracking in makefile
-rw-r--r-- | Makefile | 21 | ||||
-rw-r--r-- | main.cpp | 4 |
2 files changed, 15 insertions, 10 deletions
@@ -11,10 +11,17 @@ AI_ALL_LOWER := $(patsubst ai_%.cpp,%,$(AI_SOURCES)) MAIN_DEP_FILES := $(patsubst %,$(OBJDIR)/main_%.d,$(AI_ALL_LOWER)) -CXX_SOURCES := $(filter-out main.cpp,$(wildcard *.cpp)) +AI_CXX_SOURCES := $(wildcard ai_*.cpp) +AI_OBJ_FILES := $(patsubst %.cpp,$(OBJDIR)/%.o,$(AI_CXX_SOURCES)) +AI_DEP_FILES := $(patsubst %.cpp,$(OBJDIR)/%.d,$(AI_CXX_SOURCES)) + +CXX_SOURCES := $(filter-out main.cpp $(AI_CXX_SOURCES),$(wildcard *.cpp)) OBJ_FILES := $(patsubst %.cpp,$(OBJDIR)/%.o,$(CXX_SOURCES)) DEP_FILES := $(patsubst %.cpp,$(OBJDIR)/%.d,$(CXX_SOURCES)) +ALL_OBJ_FILES := $(OBJ_FILES) $(AI_OBJ_FILES) +ALL_DEP_FILES := $(DEP_FILES) $(AI_DEP_FILES) + TARGETS := $(patsubst %,ai%,$(AI_ALL_LOWER)) @@ -26,16 +33,16 @@ clean: rm -f $(TARGETS) rm -rf $(OBJDIR) -$(TARGETS): ai%: $(OBJ_FILES) $(OBJDIR)/main_%.o $(TERMIO_LIB) +$(TARGETS): ai%: $(OBJ_FILES) $(OBJDIR)/main_%.o $(OBJDIR)/ai_%.o $(TERMIO_LIB) @echo LD $@ @$(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -$(OBJ_FILES): $(OBJDIR)/%.o: %.cpp $(TERMIO_LIB) +$(ALL_OBJ_FILES): $(OBJDIR)/%.o: %.cpp $(TERMIO_LIB) @mkdir -p $(dir $@) @echo CXX $< @$(CXX) $(CXXFLAGS) -c -o $@ $< -$(DEP_FILES): $(OBJDIR)/%.d: %.cpp $(TERMIO_LIB) +$(ALL_DEP_FILES): $(OBJDIR)/%.d: %.cpp $(TERMIO_LIB) @mkdir -p $(dir $@) @echo DEP $< @$(CXX) -MT $(OBJDIR)/$*.o -MM $(CXXFLAGS) $< >$@ @@ -43,12 +50,12 @@ $(DEP_FILES): $(OBJDIR)/%.d: %.cpp $(TERMIO_LIB) $(OBJDIR)/main_%.o: main.cpp $(TERMIO_LIB) @mkdir -p $(dir $@) @echo CXX "$< -o $(notdir $@)" - @$(CXX) $(CXXFLAGS) -DAI=$(shell echo "$*" | tr a-z A-Z) -c -o $@ $< + @$(CXX) $(CXXFLAGS) -DAI=$(shell echo "$*" | tr a-z A-Z) -DAI_HEADER=\"ai_$*.h\" -c -o $@ $< $(OBJDIR)/main_%.d: main.cpp $(TERMIO_LIB) @mkdir -p $(dir $@) @echo DEP "$< -o $(notdir $@)" - @$(CXX) -MT $(OBJDIR)/$*.o -MM $(CXXFLAGS) -DAI=$(shell echo "$*" | tr a-z A-Z) $< >$@ + @$(CXX) -MT $(OBJDIR)/$*.o -MM $(CXXFLAGS) -DAI=$(shell echo "$*" | tr a-z A-Z) -DAI_HEADER=\"ai_$*.h\" $< >$@ termio/.git: git submodule update --init @@ -56,4 +63,4 @@ termio/.git: $(TERMIO_LIB): termio/.git $(wildcard termio/*.c termio/*.h) make -C termio --include $(DEP_FILES) $(MAIN_DEP_FILES) +-include $(ALL_DEP_FILES) $(MAIN_DEP_FILES) @@ -5,9 +5,7 @@ #include <unistd.h> #include <sys/time.h> #include "board.h" -#include "ai_mc.h" -#include "ai_mm.h" -#include "ai_rand.h" +#include AI_HEADER #include "ui.h" using namespace std; |