From 543fa8268d20c10d7208f62dc0be16a6dec487c9 Mon Sep 17 00:00:00 2001
From: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
Date: Sun, 9 Feb 2014 21:56:30 +0000
Subject: [PATCH] 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
---
 .travis.yml           |  5 ++++-
 Makefile              | 40 ++++++++++++++++++++++++++++++++++++++++
 tests/Makefile.travis | 24 ------------------------
 3 files changed, 44 insertions(+), 25 deletions(-)
 create mode 100644 Makefile
 delete mode 100644 tests/Makefile.travis

diff --git a/.travis.yml b/.travis.yml
index 95fa3e66..0f508bd0 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 00000000..eddd4f2e
--- /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 02f22e7c..00000000
--- 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
-- 
GitLab