L2E_DIRS := $(shell cd $(TOP) && find src -type d) L2E_SRCS := $(shell cd $(TOP) && find src -type f -name '*.cpp') L2E_DEPS = $(L2E_SRCS:%.cpp=%.d) L2E_OBJS = $(L2E_SRCS:%.cpp=%.o) L2E_EXES = l2e L2E_TEST_DIRS := $(shell cd $(TOP) && find tests -type d) L2E_TEST_SRCS := $(shell cd $(TOP) && find tests -type f -name '*.cpp') L2E_TEST_DEPS := $(L2E_TEST_SRCS:%.cpp=%.d) L2E_TEST_OBJS := $(L2E_TEST_SRCS:%.cpp=%.o) L2E_TEST_EXES := test-all L2E_FLAGS = $(sort $(strip \ $(SDL_FLAGS) \ $(SDL_IMG_FLAGS) \ )) L2E_LIBS = $(sort $(strip \ $(SDL_LIBS) \ $(SDL_IMG_LIBS) \ )) L2E_TEST_FLAGS = $(L2E_FLAGS) $(CPPUNIT_FLAGS) L2E_TEST_LIBS = $(L2E_LIBS) $(CPPUNIT_LIBS) -include $(L2E_DEPS) -include $(L2E_TEST_DEPS) $(L2E_OBJS): %.o: $(TOP)/%.cpp -@$(MKDIR) "$(@D)" @echo "compile: $@" $(VERBOSE) $(CXX) -c -o "$@" -MMD -MP -MF"$*.d" -MT"$@" "$<" \ $(L2E_FLAGS) $(CPPFLAGS) $(CXXFLAGS) $(L2E_EXES): $(L2E_OBJS) -@$(MKDIR) "$(@D)" @echo "link: $@" $(VERBOSE) $(CXX) -o "$@" $^ \ $(L2E_FLAGS) $(L2E_LIBS) $(LDFLAGS) $(L2E_TEST_OBJS): %.o: $(TOP)/%.cpp -@$(MKDIR) "$(@D)" @echo "compile: $@" $(VERBOSE) $(CXX) -c -o "$@" -MMD -MP -MF"$*.d" -MT"$@" "$<" \ $(L2E_TEST_FLAGS) $(CPPFLAGS) $(CXXFLAGS) $(L2E_TEST_EXES): $(L2E_TEST_OBJS) $(filter-out src/main.o, $(L2E_OBJS)) -@$(MKDIR) "$(@D)" @echo "link: $@" $(VERBOSE) $(CXX) -o "$@" $^ \ $(L2E_TEST_FLAGS) $(L2E_TEST_LIBS) $(LDFLAGS) l2e-all: $(L2E_EXES) l2e-clean: $(VERBOSE) -$(RM) $(L2E_DEPS) $(VERBOSE) -$(RM) $(L2E_OBJS) $(VERBOSE) -$(RM) $(L2E_EXES) $(VERBOSE) -$(RM) $(L2E_TEST_DEPS) $(VERBOSE) -$(RM) $(L2E_TEST_OBJS) $(VERBOSE) -$(RM) $(L2E_TEST_EXES) $(VERBOSE) -$(RMDIR) $(L2E_DIRS) $(VERBOSE) -$(RMDIR) $(L2E_TEST_DIRS) l2e-tests: $(L2E_TEST_EXES) l2e-test-all: test-all @echo "test: test-all" $(VERBOSE) ./test-all all: l2e-all clean: l2e-clean tests: l2e-tests test: l2e-test-all .PHONY: l2e-all l2e-clean l2e-tests l2e-test-all -include $(BUILD)l2e-local.mk