1dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter# A Makefile for fusing Google Test and building a sample test against it.
2dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter#
3dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter# SYNOPSIS:
4dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter#
5dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter#   make [all]  - makes everything.
6dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter#   make TARGET - makes the given target.
7dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter#   make check  - makes everything and runs the built sample test.
8dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter#   make clean  - removes all files generated by make.
9dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter
10dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter# Points to the root of fused Google Test, relative to where this file is.
11dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken MixterFUSED_GTEST_DIR = output
12dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter
13dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter# Paths to the fused gtest files.
14dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken MixterFUSED_GTEST_H = $(FUSED_GTEST_DIR)/gtest/gtest.h
15dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken MixterFUSED_GTEST_ALL_CC = $(FUSED_GTEST_DIR)/gtest/gtest-all.cc
16dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter
17dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter# Where to find the sample test.
18dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken MixterSAMPLE_DIR = ../../samples
19dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter
20dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter# Where to find gtest_main.cc.
21dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken MixterGTEST_MAIN_CC = ../../src/gtest_main.cc
22dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter
23dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter# Flags passed to the preprocessor.
2446108a219a4b812dd8f36fee479a0340ea5963f5Ben Chan# We have no idea here whether pthreads is available in the system, so
2546108a219a4b812dd8f36fee479a0340ea5963f5Ben Chan# disable its use.
2646108a219a4b812dd8f36fee479a0340ea5963f5Ben ChanCPPFLAGS += -I$(FUSED_GTEST_DIR) -DGTEST_HAS_PTHREAD=0
27dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter
28dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter# Flags passed to the C++ compiler.
29dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken MixterCXXFLAGS += -g
30dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter
31dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixterall : sample1_unittest
32dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter
33dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixtercheck : all
34dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter	./sample1_unittest
35dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter
36dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixterclean :
37dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter	rm -rf $(FUSED_GTEST_DIR) sample1_unittest *.o
38dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter
39dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter$(FUSED_GTEST_H) :
40dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter	../fuse_gtest_files.py $(FUSED_GTEST_DIR)
41dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter
42dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter$(FUSED_GTEST_ALL_CC) :
43dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter	../fuse_gtest_files.py $(FUSED_GTEST_DIR)
44dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter
45dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixtergtest-all.o : $(FUSED_GTEST_H) $(FUSED_GTEST_ALL_CC)
46dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(FUSED_GTEST_DIR)/gtest/gtest-all.cc
47dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter
48dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixtergtest_main.o : $(FUSED_GTEST_H) $(GTEST_MAIN_CC)
49dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(GTEST_MAIN_CC)
50dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter
51dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixtersample1.o : $(SAMPLE_DIR)/sample1.cc $(SAMPLE_DIR)/sample1.h
52dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(SAMPLE_DIR)/sample1.cc
53dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter
54dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixtersample1_unittest.o : $(SAMPLE_DIR)/sample1_unittest.cc \
55dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter                     $(SAMPLE_DIR)/sample1.h $(FUSED_GTEST_H)
56dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(SAMPLE_DIR)/sample1_unittest.cc
57dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter
58dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixtersample1_unittest : sample1.o sample1_unittest.o gtest-all.o gtest_main.o
59dd1c93d5709e32713961cfd95fe30489a4ad2d26Ken Mixter	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $^ -o $@
60