diff --git a/Makefile b/Makefile index 4dca735..50b578d 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,7 @@ INCFS = $(shell find $(INCF) -type d) LOGF = ./thirdparty/Log/ LOGO = $(LOGF)Log.o +export LOG_USEMUTEX = 0 INCLUDES = -I$(LOGF) $(addprefix -I, $(INCFS)) LDFLAGS = @@ -29,7 +30,12 @@ DEPFILES = $(wildcard $(DEPF)*.d) SOURCEDIRS = $(shell find $(SRCF) -type d -printf "%p/\n") BUILDDIRS = $(patsubst $(SRCF)%, $(BUILDDIR)%, $(SOURCEDIRS)) -OBJFILESTEST = $(filter-out $(BUILDDIR)main.o, $(OBJFILES)) +BUILDDIRTEST = $(BUILDDIR)tests/ +TESTSRCFILES = $(wildcard $(TESTF)*.cpp) +TESTOBJFILES = $(patsubst $(TESTF)%, $(BUILDDIRTEST)%, $(patsubst %.cpp, %.o, $(TESTSRCFILES))) +OBJFILESTEST = $(filter-out $(BUILDDIR)main.o, $(OBJFILES)) $(TESTOBJFILES) + +BUILDDIRS += $(BUILDDIRTEST) INCLUDES += $(addprefix -I, $(SOURCEDIRS)) @@ -39,11 +45,18 @@ $(NAME): $(BUILDDIRS) $(DEPF) $(OBJFILES) @echo "Linking $@" @$(CXX) $(CFLAGS) -o $@ $(filter %.o, $^) $(LDFLAGS) +# normal cpp files $(BUILDDIR)%.o: $(SRCF)%.cpp @echo "Compiling: $@" @$(CXX) $(CFLAGS) $(INCLUDES) $< -MM -MT $@ > $(DEPF)$(subst /,_,$*).d @$(CXX) -c -o $@ $(CFLAGS) $(INCLUDES) $< +# test cpp files +$(BUILDDIRTEST)%.o: $(TESTF)%.cpp + @echo "Compiling: $@" + @$(CXX) $(CFLAGS) $(INCLUDES) $< -MM -MT $@ > $(DEPF)test_$(subst /,_,$*).d + @$(CXX) -c -o $@ $(CFLAGS) $(INCLUDES) $< + $(NAME)_strip: $(NAME) @echo "Strip $<" @strip -o $@ $< @@ -61,14 +74,17 @@ clean: $(RM) -r $(NAME) $(BUILDDIR) $(NAMETEST) $(NAME)_strip $(MAKE) -C $(LOGF) $@ -$(NAMETEST): $(BUILDDIRS) $(DEPF) $(TESTF)*.cpp $(OBJFILESTEST) - @echo "Compiling tests" - @$(CXX) -o $@ $(filter %.o, $^) $(filter %.cpp, $^) $(CFLAGS) -I$(SRCF) $(INCLUDES) $(LDFLAGS) +$(NAMETEST): $(BUILDDIRS) $(DEPF) $(OBJFILESTEST) + @echo "Linking tests" + @$(CXX) -o $@ $(filter %.o, $^) $(filter %.a, $^) $(CFLAGS) $(LDFLAGS) -runtest: $(NAMETEST) +runtest: $(BUILDDIR)testrun + +$(BUILDDIR)testrun: $(NAMETEST) @echo "Running tests" - ./$< + bash -c '. test.env 2> /dev/null; ./$<' + @touch $(BUILDDIR)testrun -.PHONY: clean all $(NAMETEST) clean-depends runtest +.PHONY: clean all clean-depends runtest include $(DEPFILES)