SPACE_DIRS := $(shell cd $(TOP) && find src -type d) SPACE_SRCS := $(shell cd $(TOP) && find src -type f -name '*.cpp') SPACE_DEPS = $(SPACE_SRCS:%.cpp=%.d) SPACE_OBJS = $(SPACE_SRCS:%.cpp=%.o) SPACE_EXES = space SPACE_TEST_DIRS := $(shell cd $(TOP) && find tests -type d) SPACE_TEST_SRCS := $(shell cd $(TOP) && find tests -type f -name '*.cpp') SPACE_TEST_DEPS := $(SPACE_TEST_SRCS:%.cpp=%.d) SPACE_TEST_OBJS := $(SPACE_TEST_SRCS:%.cpp=%.o) SPACE_TEST_EXES := test-all SPACE_FLAGS = $(sort $(strip \ $(SDL_FLAGS) \ )) SPACE_LIBS = $(sort $(strip \ $(SDL_LIBS) \ )) SPACE_TEST_FLAGS = $(SPACE_FLAGS) $(CPPUNIT_FLAGS) SPACE_TEST_LIBS = $(SPACE_LIBS) $(CPPUNIT_LIBS) -include $(SPACE_DEPS) -include $(SPACE_TEST_DEPS) $(SPACE_OBJS): %.o: $(TOP)/%.cpp -@$(MKDIR) "$(@D)" @echo "compile: $@" $(VERBOSE) $(CXX) -c -o "$@" -MMD -MP -MF"$*.d" -MT"$@" "$<" \ $(SPACE_FLAGS) $(CPPFLAGS) $(CXXFLAGS) $(SPACE_EXES): $(SPACE_OBJS) -@$(MKDIR) "$(@D)" @echo "link: $@" $(VERBOSE) $(CXX) -o "$@" $^ \ $(SPACE_FLAGS) $(SPACE_LIBS) $(LDFLAGS) $(SPACE_TEST_OBJS): %.o: $(TOP)/%.cpp -@$(MKDIR) "$(@D)" @echo "compile: $@" $(VERBOSE) $(CXX) -c -o "$@" -MMD -MP -MF"$*.d" -MT"$@" "$<" \ $(SPACE_TEST_FLAGS) $(CPPFLAGS) $(CXXFLAGS) $(SPACE_TEST_EXES): $(SPACE_TEST_OBJS) $(filter-out src/main.o, $(SPACE_OBJS)) -@$(MKDIR) "$(@D)" @echo "link: $@" $(VERBOSE) $(CXX) -o "$@" $^ \ $(SPACE_TEST_FLAGS) $(SPACE_TEST_LIBS) $(LDFLAGS) space-all: $(SPACE_EXES) space-clean: $(VERBOSE) -$(RM) $(SPACE_DEPS) $(VERBOSE) -$(RM) $(SPACE_OBJS) $(VERBOSE) -$(RM) $(SPACE_EXES) $(VERBOSE) -$(RM) $(SPACE_TEST_DEPS) $(VERBOSE) -$(RM) $(SPACE_TEST_OBJS) $(VERBOSE) -$(RM) $(SPACE_TEST_EXES) $(VERBOSE) -$(RMDIR) $(SPACE_DIRS) $(VERBOSE) -$(RMDIR) $(SPACE_TEST_DIRS) space-tests: $(SPACE_TEST_EXES) space-test-all: test-all @echo "test: test-all" $(VERBOSE) ./test-all all: space-all clean: space-clean tests: space-tests test: space-test-all .PHONY: space-all space-clean space-tests space-test-all -include $(BUILD)space-local.mk