We don't need to build all the non-lib files (especially the unit tests)
using libtool, so save some CPU time there. Also, unbreak coverage builds.
MKDIR=mkdir
ifeq ($(COVERAGE),1)
MKDIR=mkdir
ifeq ($(COVERAGE),1)
-CXXFLAGS += -fprofile-arcs -ftest-coverage
+CXXFLAGS += -fprofile-arcs -ftest-coverage --coverage
LDFLAGS += -fprofile-arcs -ftest-coverage
LDFLAGS += -fprofile-arcs -ftest-coverage
# Unit tests.
$(TESTS): %: %.o $(TEST_OBJS) libmovit.la
# Unit tests.
$(TESTS): %: %.o $(TEST_OBJS) libmovit.la
- $(LIBTOOL) --mode=link $(CXX) -o $@ $^ $(LDFLAGS)
+ $(LIBTOOL) --mode=link $(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)
OBJS=$(DEMO_OBJS) $(LIB_OBJS) $(TEST_OBJS) $(TESTS:=.o)
# A small demo program.
demo: libmovit.la $(DEMO_OBJS)
OBJS=$(DEMO_OBJS) $(LIB_OBJS) $(TEST_OBJS) $(TESTS:=.o)
# A small demo program.
demo: libmovit.la $(DEMO_OBJS)
- $(LIBTOOL) --mode=link $(CXX) -o demo $(DEMO_OBJS) libmovit.la $(LDFLAGS) $(DEMO_LDFLAGS)
+ $(LIBTOOL) --mode=link $(CXX) $(LDFLAGS) -o demo $(DEMO_OBJS) libmovit.la $(LDLIBS) $(DEMO_LDLIBS)
-libmovit.la: $(LIB_OBJS)
- $(LIBTOOL) --mode=link $(CXX) -rpath $(libdir) -o $@ $(LIB_OBJS:.o=.lo)
+libmovit.la: $(LIB_OBJS:.o=.lo)
+ $(LIBTOOL) --mode=link $(CXX) $(LDFLAGS) -rpath $(libdir) -o $@ $^ $(LDLIBS)
$(LIBTOOL) --mode=compile $(CXX) -MMD -MP $(CPPFLAGS) $(CXXFLAGS) -o $@ -c $<
$(LIBTOOL) --mode=compile $(CXX) -MMD -MP $(CPPFLAGS) $(CXXFLAGS) -o $@ -c $<
+%.o: %.cpp
+ $(CXX) -MMD -MP $(CPPFLAGS) $(CXXFLAGS) -o $@ -c $<
DEPS=$(OBJS:.o=.d)
-include $(DEPS)
clean:
DEPS=$(OBJS:.o=.d)
-include $(DEPS)
clean:
- $(LIBTOOL) --mode=clean $(RM) demo $(TESTS) libmovit.la $(OBJS:.o=.lo)
+ $(LIBTOOL) --mode=clean $(RM) demo $(TESTS) libmovit.la $(OBJS) $(OBJS:.o=.lo)
$(RM) $(OBJS:.o=.gcno) $(OBJS:.o=.gcda) $(DEPS) step*.dot chain*.frag
$(RM) -r movit.info coverage/ .libs/
$(RM) $(OBJS:.o=.gcno) $(OBJS:.o=.gcda) $(DEPS) step*.dot chain*.frag
$(RM) -r movit.info coverage/ .libs/