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