diff options
author | Arseny Kapoulkine <arseny.kapoulkine@gmail.com> | 2014-02-09 21:56:30 +0000 |
---|---|---|
committer | Arseny Kapoulkine <arseny.kapoulkine@gmail.com> | 2014-02-09 21:56:30 +0000 |
commit | 543fa8268d20c10d7208f62dc0be16a6dec487c9 (patch) | |
tree | a52210fbf933067498f9ba457f54e96f1c7e7152 | |
parent | 7b41dce85e8f8788027672845fd2867dd9e2b27a (diff) |
Add Makefile for building and running tests.
This expands and replaces the Travis-specific makefile by adding more options and correctly tracking header dependencies.
Also add wchar_t mode test to Travis configuration.
git-svn-id: http://pugixml.googlecode.com/svn/trunk@971 99668b35-9821-0410-8761-19e4c4f06640
-rw-r--r-- | .travis.yml | 5 | ||||
-rw-r--r-- | Makefile | 40 | ||||
-rw-r--r-- | tests/Makefile.travis | 24 |
3 files changed, 44 insertions, 25 deletions
diff --git a/.travis.yml b/.travis.yml index 95fa3e6..0f508bd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,4 +2,7 @@ language: cpp compiler: - clang - gcc -script: make -f tests/Makefile.travis test
\ No newline at end of file +env: + - DEFINES=standard + - DEFINES=PUGIXML_WCHAR_MODE +script: make test defines=$(DEFINES) -j2
\ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..eddd4f2 --- /dev/null +++ b/Makefile @@ -0,0 +1,40 @@ +config=debug +defines=standard + +BUILD=build/make-$(CXX)-$(config)-$(defines) + +SOURCES=src/pugixml.cpp $(wildcard tests/*.cpp) +EXECUTABLE=$(BUILD)/test + +CXXFLAGS=-c -g -Wall -Wextra -Werror -pedantic +LDFLAGS= + +ifeq ($(config),release) + CXXFLAGS+=-O3 -DNDEBUG +endif + +ifneq ($(defines),standard) + COMMA=, + CXXFLAGS+=-D $(subst $(COMMA), -D ,$(defines)) +endif + +OBJECTS=$(SOURCES:%=$(BUILD)/%.o) + +all: $(EXECUTABLE) + +test: $(EXECUTABLE) + ./$(EXECUTABLE) + +clean: + rm -rf $(BUILD) + +$(EXECUTABLE): $(OBJECTS) + $(CXX) $(OBJECTS) $(LDFLAGS) -o $@ + +$(BUILD)/%.o: % + @mkdir -p $(dir $@) + $(CXX) $< $(CXXFLAGS) -MMD -MP -o $@ + +-include $(OBJECTS:.o=.d) + +.PHONY: all test clean
\ No newline at end of file diff --git a/tests/Makefile.travis b/tests/Makefile.travis deleted file mode 100644 index 02f22e7..0000000 --- a/tests/Makefile.travis +++ /dev/null @@ -1,24 +0,0 @@ -CXXFLAGS=-c -Wall -Wextra -Werror -pedantic - -BUILD=build/travis - -SOURCES=src/pugixml.cpp $(wildcard tests/*.cpp) -OBJECTS=$(SOURCES:%=$(BUILD)/%.o) -EXECUTABLE=$(BUILD)/test - -all: $(EXECUTABLE) - -test: $(EXECUTABLE) - ./$(EXECUTABLE) - -$(EXECUTABLE): $(OBJECTS) - $(CXX) $(OBJECTS) $(LDFLAGS) -o $@ - -$(BUILD)/%.cpp.o: %.cpp - mkdir -p $(dir $@) - $(CXX) $(CXXFLAGS) $< -o $@ - -clean: - rm -rf $(BUILD) - -.PHONY: all test clean
\ No newline at end of file |