-L2E_DIRS := $(shell cd $(srcdir) && find * -type d)
-L2E_SRCS := $(shell cd $(srcdir)&& find * -type f -name '*.cpp')
+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) \
$(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: $(srcdir)/%.cpp
+$(L2E_OBJS): %.o: $(TOP)/%.cpp
-@$(MKDIR) "$(@D)"
@echo "compile: $@"
$(VERBOSE) $(CXX) -c -o "$@" -MMD -MP -MF"$*.d" -MT"$@" "$<" \
$(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
+.PHONY: l2e-all l2e-clean l2e-tests l2e-test-all
-include $(BUILD)l2e-local.mk