Home | History | Annotate | Download | only in test
      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