summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorTom Smeding <tom.smeding@gmail.com>2019-02-15 11:32:44 +0100
committerTom Smeding <tom.smeding@gmail.com>2019-02-15 11:32:44 +0100
commit3711c92f43eedbd698a9c477e3248fb87892fbd9 (patch)
tree7132c9f0396304acfbab612469d6386a9a2ab2a2 /Makefile
parent99f3ad9bc30815213af5c666150daa6080c509db (diff)
Multiple AI's (+RAND)
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile38
1 files changed, 32 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index c8bca05..c1a3ee7 100644
--- a/Makefile
+++ b/Makefile
@@ -2,20 +2,36 @@ CXX := g++
CXXFLAGS := -Wall -Wextra -std=c++11 -g -O2
LDFLAGS :=
-TARGET := ai
OBJDIR := .objs
-CXX_SOURCES := $(wildcard *.cpp)
-OBJ_FILES := $(patsubst %.cpp,$(OBJDIR)/%.o,$(CXX_SOURCES))
-DEP_FILES := $(patsubst %.cpp,$(OBJDIR)/%.d,$(CXX_SOURCES))
+ifneq ($(value AI),)
+ AI_UPPER := $(shell echo '$(value AI)' | tr a-z A-Z)
+ AI_LOWER := $(shell echo '$(value AI)' | tr A-Z a-z)
+else
+ AI_UPPER := MC
+ AI_LOWER := mc
+endif
+CXXFLAGS += -DAI=$(AI_UPPER)
-.PHONY: all clean
+MAIN_OBJ := $(OBJDIR)/main_$(AI_LOWER).o
+CXX_SOURCES := $(filter-out main.cpp ai_%.cpp,$(wildcard *.cpp)) ai_$(AI_LOWER).cpp
+OBJ_FILES := $(patsubst %.cpp,$(OBJDIR)/%.o,$(CXX_SOURCES)) $(MAIN_OBJ)
+DEP_FILES := $(patsubst %.cpp,$(OBJDIR)/%.d,$(CXX_SOURCES)) $(MAIN_OBJ:.o=.d)
+
+TARGET := ai$(AI_LOWER)
+
+AI_ALL_LOWER := $(patsubst ai_%.cpp,%,$(wildcard ai_*.cpp))
+
+TARGET_ALL := $(patsubst %,ai%,$(AI_ALL_LOWER))
+
+
+.PHONY: all clean debug
all: $(TARGET)
clean:
- rm -f $(TARGET)
+ rm -f $(TARGET_ALL)
rm -rf $(OBJDIR)
$(TARGET): $(OBJ_FILES) termio/libtermio.a
@@ -32,6 +48,16 @@ $(OBJDIR)/%.d: %.cpp termio/libtermio.a
@echo DEP $<
@$(CXX) -MT $(OBJDIR)/$*.o -MM $(CXXFLAGS) $< >$@
+$(OBJDIR)/main_$(AI_LOWER).o: main.cpp termio/libtermio.a
+ @mkdir -p $(dir $@)
+ @echo CXX "$< -o $(notdir $@)"
+ @$(CXX) $(CXXFLAGS) -c -o $@ $<
+
+$(OBJDIR)/main_$(AI_LOWER).d: main.cpp termio/libtermio.a
+ @mkdir -p $(dir $@)
+ @echo DEP "$< -o $(notdir $@)"
+ @$(CXX) -MT $(OBJDIR)/$*.o -MM $(CXXFLAGS) $< >$@
+
termio/.git:
git submodule update --init