1 SPACE_DIRS := $(shell cd $(TOP) && find src -type d)
2 SPACE_SRCS := $(shell cd $(TOP) && find src -type f -name '*.cpp')
3 SPACE_DEPS = $(SPACE_SRCS:%.cpp=%.d)
4 SPACE_OBJS = $(SPACE_SRCS:%.cpp=%.o)
7 SPACE_TEST_DIRS := $(shell cd $(TOP) && find tests -type d)
8 SPACE_TEST_SRCS := $(shell cd $(TOP) && find tests -type f -name '*.cpp')
9 SPACE_TEST_DEPS := $(SPACE_TEST_SRCS:%.cpp=%.d)
10 SPACE_TEST_OBJS := $(SPACE_TEST_SRCS:%.cpp=%.o)
11 SPACE_TEST_EXES := test-all
13 SPACE_FLAGS = $(sort $(strip \
17 SPACE_LIBS = $(sort $(strip \
22 SPACE_TEST_FLAGS = $(SPACE_FLAGS) $(CPPUNIT_FLAGS)
23 SPACE_TEST_LIBS = $(SPACE_LIBS) $(CPPUNIT_LIBS)
25 -include $(SPACE_DEPS)
26 -include $(SPACE_TEST_DEPS)
28 $(SPACE_OBJS): %.o: $(TOP)/%.cpp
31 $(VERBOSE) $(CXX) -c -o "$@" -MMD -MP -MF"$*.d" -MT"$@" "$<" \
32 $(SPACE_FLAGS) $(CPPFLAGS) $(CXXFLAGS)
34 $(SPACE_EXES): $(SPACE_OBJS)
37 $(VERBOSE) $(CXX) -o "$@" $^ \
38 $(SPACE_FLAGS) $(SPACE_LIBS) $(LDFLAGS)
40 $(SPACE_TEST_OBJS): %.o: $(TOP)/%.cpp
43 $(VERBOSE) $(CXX) -c -o "$@" -MMD -MP -MF"$*.d" -MT"$@" "$<" \
44 $(SPACE_TEST_FLAGS) $(CPPFLAGS) $(CXXFLAGS)
46 $(SPACE_TEST_EXES): $(SPACE_TEST_OBJS) $(filter-out src/main.o, $(SPACE_OBJS))
49 $(VERBOSE) $(CXX) -o "$@" $^ \
50 $(SPACE_TEST_FLAGS) $(SPACE_TEST_LIBS) $(LDFLAGS)
52 space-all: $(SPACE_EXES)
55 $(VERBOSE) -$(RM) $(SPACE_DEPS)
56 $(VERBOSE) -$(RM) $(SPACE_OBJS)
57 $(VERBOSE) -$(RM) $(SPACE_EXES)
58 $(VERBOSE) -$(RM) $(SPACE_TEST_DEPS)
59 $(VERBOSE) -$(RM) $(SPACE_TEST_OBJS)
60 $(VERBOSE) -$(RM) $(SPACE_TEST_EXES)
61 $(VERBOSE) -$(RMDIR) $(SPACE_DIRS)
62 $(VERBOSE) -$(RMDIR) $(SPACE_TEST_DIRS)
64 space-tests: $(SPACE_TEST_EXES)
66 space-test-all: test-all
67 @echo "test: test-all"
75 .PHONY: space-all space-clean space-tests space-test-all
77 -include $(BUILD)space-local.mk