diff options
Diffstat (limited to 'rules.mk')
-rw-r--r-- | rules.mk | 37 |
1 files changed, 21 insertions, 16 deletions
@@ -12,11 +12,11 @@ CXXFLAGS += -isysteminclude -I../lib -Drestrict=__restrict__ \ -Werror=shadow # Suffix rules +.SUFFIXES: .s .S .c .cpp .o %.a: @echo ' AR $@' @${AR} ${ARFLAGS} $@ $(filter %.o,$^) -.SUFFIXES: .s .S .c .o .s.o: @echo ' AS $^' @$(AS) $(ASFLAGS) -c -o $@ $^ @@ -33,28 +33,33 @@ CXXFLAGS += -isysteminclude -I../lib -Drestrict=__restrict__ \ @echo ' CXX $^' @$(CXX) $(CXXFLAGS) -c -o $@ $^ -# Test rules -TEST_CXX := c++ -GTEST := $(shell pkg-config --cflags --libs gtest gtest_main) -GMOCK := $(shell pkg-config --cflags --libs gmock) +%.elf: + @echo ' LD $@' + @${LD} ${LDFLAGS} -o $@ $^ + @echo -n ' B2b ' + @b2sum $@ | cut -d' ' -f1 +# test rules tst/test_%: tst/%.cc @echo ' CXX TEST $@' - @$(TEST_CXX) $< -o $@ $(GTEST) $(GMOCK) + @$(TEST_CXX) $(TEST_CXXFLAGS) $< -o $@ -.PHONY: test valgrind -test: $(TESTS) - $(foreach f,$^,./$f;) +.PHONY: test.base valgrind.base clean.base FORCE +test.base: $(TESTS) + @echo " -> Running tests in $(shell pwd | xargs basename)" + @$(foreach f,$^,echo " -> $f"; ./$f &&) echo "Done" -valgrind: $(TESTS) - $(foreach f,$^,valgrind --leak-check=full ./$f;) +valgrind.base: $(TESTS) + @echo " -> Running valgrind on tests in $(shell pwd | xargs basename)" + @$(foreach f,$^,echo " -> $f"; valgrind --leak-check=full ./$f;) - -# clean target -.PHONY: clean FORCE -clean: +clean.base: FORCE + @echo " -> Cleaning $(shell pwd | xargs basename)" @$(foreach V,$(filter %.OBJS, ${.VARIABLES}), rm -rf $($(V))) + @rm -rf *.a @rm -rf include @rm -rf tst/test_* -FORCE: +%: %.base ; + +FORCE: ; |