diff options
Diffstat (limited to 'tests/unit/Makefile')
-rw-r--r-- | tests/unit/Makefile | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/unit/Makefile b/tests/unit/Makefile new file mode 100644 index 00000000..9f1e5c99 --- /dev/null +++ b/tests/unit/Makefile @@ -0,0 +1,35 @@ +GTESTFLAG := -lgtest -lgtest_main +RPATH := -Wl,-rpath +EXTRAFLAGS := -lyosys -pthreads + +OBJTEST := objtest +BINTEST := bintest + +ALLTESTFILE := $(shell find -name '*Test.cc' -printf '%P ') +TESTDIRS := $(sort $(dir $(ALLTESTFILE))) +TESTS := $(addprefix $(BINTEST)/, $(basename $(ALLTESTFILE:%Test.cc=%Test.o))) + +# Prevent make from removing our .o files +.SECONDARY: + +all: prepare $(TESTS) run-tests + +$(BINTEST)/%: $(OBJTEST)/%.o + $(CXX) -L$(ROOTPATH) $(RPATH)=$(ROOTPATH) -o $@ $^ $(LDLIBS) \ + $(GTESTFLAG) $(EXTRAFLAGS) + +$(OBJTEST)/%.o: $(basename $(subst $(OBJTEST),.,%)).cc + $(CXX) -o $@ -c -I$(ROOTPATH) $(CPPFLAGS) $(CXXFLAGS) $^ + +.PHONY: prepare run-tests clean + +run-tests: $(TESTS) + $(subst Test ,Test; ,$^) + +prepare: + mkdir -p $(addprefix $(BINTEST)/,$(TESTDIRS)) + mkdir -p $(addprefix $(OBJTEST)/,$(TESTDIRS)) + +clean: + rm -rf $(OBJTEST) + rm -rf $(BINTEST) |