github.com/jlmucb/cloudproxy@v0.0.0-20170830161738-b5aa0b619bc4/src/third_party/googlemock/gtest/make/Makefile (about)

     1  # A sample Makefile for building Google Test and using it in user
     2  # tests.  Please tweak it to suit your environment and project.  You
     3  # may want to move it to your project's root directory.
     4  #
     5  # SYNOPSIS:
     6  #
     7  #   make [all]  - makes everything.
     8  #   make TARGET - makes the given target.
     9  #   make clean  - removes all files generated by make.
    10  
    11  # Please tweak the following variable definitions as needed by your
    12  # project, except GTEST_HEADERS, which you can use in your own targets
    13  # but shouldn't modify.
    14  
    15  # Points to the root of Google Test, relative to where this file is.
    16  # Remember to tweak this if you move this file.
    17  GTEST_DIR = ..
    18  
    19  # Where to find user code.
    20  USER_DIR = ../samples
    21  
    22  # Flags passed to the preprocessor.
    23  # Set Google Test's header directory as a system directory, such that
    24  # the compiler doesn't generate warnings in Google Test headers.
    25  CPPFLAGS += -isystem $(GTEST_DIR)/include
    26  
    27  # Flags passed to the C++ compiler.
    28  CXXFLAGS += -g -Wall -Wextra -pthread
    29  
    30  # All tests produced by this Makefile.  Remember to add new tests you
    31  # created to the list.
    32  TESTS = sample1_unittest
    33  
    34  # All Google Test headers.  Usually you shouldn't change this
    35  # definition.
    36  GTEST_HEADERS = $(GTEST_DIR)/include/gtest/*.h \
    37                  $(GTEST_DIR)/include/gtest/internal/*.h
    38  
    39  # House-keeping build targets.
    40  
    41  all : $(TESTS)
    42  
    43  clean :
    44  	rm -f $(TESTS) gtest.a gtest_main.a *.o
    45  
    46  # Builds gtest.a and gtest_main.a.
    47  
    48  # Usually you shouldn't tweak such internal variables, indicated by a
    49  # trailing _.
    50  GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS)
    51  
    52  # For simplicity and to avoid depending on Google Test's
    53  # implementation details, the dependencies specified below are
    54  # conservative and not optimized.  This is fine as Google Test
    55  # compiles fast and for ordinary users its source rarely changes.
    56  gtest-all.o : $(GTEST_SRCS_)
    57  	$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \
    58              $(GTEST_DIR)/src/gtest-all.cc
    59  
    60  gtest_main.o : $(GTEST_SRCS_)
    61  	$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \
    62              $(GTEST_DIR)/src/gtest_main.cc
    63  
    64  gtest.a : gtest-all.o
    65  	$(AR) $(ARFLAGS) $@ $^
    66  
    67  gtest_main.a : gtest-all.o gtest_main.o
    68  	$(AR) $(ARFLAGS) $@ $^
    69  
    70  # Builds a sample test.  A test should link with either gtest.a or
    71  # gtest_main.a, depending on whether it defines its own main()
    72  # function.
    73  
    74  sample1.o : $(USER_DIR)/sample1.cc $(USER_DIR)/sample1.h $(GTEST_HEADERS)
    75  	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(USER_DIR)/sample1.cc
    76  
    77  sample1_unittest.o : $(USER_DIR)/sample1_unittest.cc \
    78                       $(USER_DIR)/sample1.h $(GTEST_HEADERS)
    79  	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(USER_DIR)/sample1_unittest.cc
    80  
    81  sample1_unittest : sample1.o sample1_unittest.o gtest_main.a
    82  	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $@