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