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. 11FUSED_GTEST_DIR = output 12 13# Paths to the fused gtest files. 14FUSED_GTEST_H = $(FUSED_GTEST_DIR)/gtest/gtest.h 15FUSED_GTEST_ALL_CC = $(FUSED_GTEST_DIR)/gtest/gtest-all.cc 16 17# Where to find the sample test. 18SAMPLE_DIR = ../../samples 19 20# Where to find gtest_main.cc. 21GTEST_MAIN_CC = ../../src/gtest_main.cc 22 23# Flags passed to the preprocessor. 24CPPFLAGS += -I$(FUSED_GTEST_DIR) 25 26# Flags passed to the C++ compiler. 27CXXFLAGS += -g 28 29all : sample1_unittest 30 31check : all 32 ./sample1_unittest 33 34clean : 35 rm -rf $(FUSED_GTEST_DIR) sample1_unittest *.o 36 37$(FUSED_GTEST_H) : 38 ../fuse_gtest_files.py $(FUSED_GTEST_DIR) 39 40$(FUSED_GTEST_ALL_CC) : 41 ../fuse_gtest_files.py $(FUSED_GTEST_DIR) 42 43gtest-all.o : $(FUSED_GTEST_H) $(FUSED_GTEST_ALL_CC) 44 $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(FUSED_GTEST_DIR)/gtest/gtest-all.cc 45 46gtest_main.o : $(FUSED_GTEST_H) $(GTEST_MAIN_CC) 47 $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(GTEST_MAIN_CC) 48 49sample1.o : $(SAMPLE_DIR)/sample1.cc $(SAMPLE_DIR)/sample1.h 50 $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(SAMPLE_DIR)/sample1.cc 51 52sample1_unittest.o : $(SAMPLE_DIR)/sample1_unittest.cc \ 53 $(SAMPLE_DIR)/sample1.h $(FUSED_GTEST_H) 54 $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(SAMPLE_DIR)/sample1_unittest.cc 55 56sample1_unittest : sample1.o sample1_unittest.o gtest-all.o gtest_main.o 57 $(CXX) $(CPPFLAGS) $(CXXFLAGS) $^ -o $@ 58