1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
# Build all the unit tests
# Should be run using mingw32-make on Windows
.SUFFIXES: .cxx
GTEST_DIR = ../../../../gtest-1.5.0
ifdef windir
DEL = del /q
# Find Google Test headers.
CPPFLAGS += -I$(GTEST_DIR)/include
GTEST_ALL = gtest-all.o
LINKFLAGS = $(CPPFLAGS) $(CXXFLAGS)
EXE = unitTest.exe
else
DEL = rm -f
CPPFLAGS = $(shell gtest-config --cppflags)
CXXFLAGS = $(shell gtest-config --cxxflags)
LINKFLAGS = $(shell gtest-config --ldflags --libs)
EXE = unitTest
# For coverage testing with gcov
#CPPFLAGS += -fprofile-arcs -ftest-coverage
#LINKFLAGS += -fprofile-arcs -ftest-coverage
endif
#vpath %.cxx ../src ../lexlib ../lexers
vpath %.cxx ../../src
INCLUDEDIRS = -I ../../include -I ../../src -I../../lexlib
# Find headers of test code.
CPPFLAGS += $(INCLUDEDIRS)
CXXFLAGS += -g -Wall -Wextra -Wno-unused-function
#~ CXXFLAGS += -g -Wall
CASES:=$(addsuffix .o,$(basename $(notdir $(wildcard test*.cxx))))
TESTEDOBJS=ContractionState.o RunStyles.o CharClassify.o
TESTS=$(EXE)
GTEST_HEADERS=$(GTEST_DIR)/include/gtest/*.h $(GTEST_DIR)/include/gtest/internal/*.h
all: $(TESTS)
clean:
$(DEL) $(TESTS) *.a *.o *.exe *.gcov *.gcda *.gcno
# Usually you shouldn't tweak such internal variables, indicated by a
# trailing _.
GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS)
gtest-all.o: $(GTEST_SRCS_)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -I$(GTEST_DIR) -c \
$(GTEST_DIR)/src/gtest-all.cc
.cxx.o:
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $<
$(EXE): $(CASES) $(TESTEDOBJS) unitTest.o $(GTEST_ALL)
$(CXX) $(LINKFLAGS) $^ -o $@
|