1 # A Makefile for fusing Google Test and building a sample test against it.
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.
10 # Points to the root of fused Google Test, relative to where this file is.
11 FUSED_GTEST_DIR = output
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
17 # Where to find the sample test.
18 SAMPLE_DIR = ../../samples
20 # Where to find gtest_main.cc.
21 GTEST_MAIN_CC = ../../src/gtest_main.cc
23 # Flags passed to the preprocessor.
24 CPPFLAGS += -I$(FUSED_GTEST_DIR)
26 # Flags passed to the C++ compiler.
29 all : sample1_unittest
35 rm -rf $(FUSED_GTEST_DIR) sample1_unittest *.o
38 ../fuse_gtest_files.py $(FUSED_GTEST_DIR)
40 $(FUSED_GTEST_ALL_CC) :
41 ../fuse_gtest_files.py $(FUSED_GTEST_DIR)
43 gtest-all.o : $(FUSED_GTEST_H) $(FUSED_GTEST_ALL_CC)
44 $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(FUSED_GTEST_DIR)/gtest/gtest-all.cc
46 gtest_main.o : $(FUSED_GTEST_H) $(GTEST_MAIN_CC)
47 $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(GTEST_MAIN_CC)
49 sample1.o : $(SAMPLE_DIR)/sample1.cc $(SAMPLE_DIR)/sample1.h
50 $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(SAMPLE_DIR)/sample1.cc
52 sample1_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
56 sample1_unittest : sample1.o sample1_unittest.o gtest-all.o gtest_main.o
57 $(CXX) $(CPPFLAGS) $(CXXFLAGS) $^ -o $@