From 543fa8268d20c10d7208f62dc0be16a6dec487c9 Mon Sep 17 00:00:00 2001 From: Arseny Kapoulkine Date: Sun, 9 Feb 2014 21:56:30 +0000 Subject: 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 --- Makefile | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Makefile (limited to 'Makefile') 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 -- cgit v1.2.3