113481Sgiacomo.travaglini@arm.com# A sample Makefile for building Google Test and using it in user 213481Sgiacomo.travaglini@arm.com# tests. Please tweak it to suit your environment and project. You 313481Sgiacomo.travaglini@arm.com# may want to move it to your project's root directory. 413481Sgiacomo.travaglini@arm.com# 513481Sgiacomo.travaglini@arm.com# SYNOPSIS: 613481Sgiacomo.travaglini@arm.com# 713481Sgiacomo.travaglini@arm.com# make [all] - makes everything. 813481Sgiacomo.travaglini@arm.com# make TARGET - makes the given target. 913481Sgiacomo.travaglini@arm.com# make clean - removes all files generated by make. 1013481Sgiacomo.travaglini@arm.com 1113481Sgiacomo.travaglini@arm.com# Please tweak the following variable definitions as needed by your 1213481Sgiacomo.travaglini@arm.com# project, except GTEST_HEADERS, which you can use in your own targets 1313481Sgiacomo.travaglini@arm.com# but shouldn't modify. 1413481Sgiacomo.travaglini@arm.com 1513481Sgiacomo.travaglini@arm.com# Points to the root of Google Test, relative to where this file is. 1613481Sgiacomo.travaglini@arm.com# Remember to tweak this if you move this file. 1713481Sgiacomo.travaglini@arm.comGTEST_DIR = .. 1813481Sgiacomo.travaglini@arm.com 1913481Sgiacomo.travaglini@arm.com# Where to find user code. 2013481Sgiacomo.travaglini@arm.comUSER_DIR = ../samples 2113481Sgiacomo.travaglini@arm.com 2213481Sgiacomo.travaglini@arm.com# Flags passed to the preprocessor. 2313481Sgiacomo.travaglini@arm.com# Set Google Test's header directory as a system directory, such that 2413481Sgiacomo.travaglini@arm.com# the compiler doesn't generate warnings in Google Test headers. 2513481Sgiacomo.travaglini@arm.comCPPFLAGS += -isystem $(GTEST_DIR)/include 2613481Sgiacomo.travaglini@arm.com 2713481Sgiacomo.travaglini@arm.com# Flags passed to the C++ compiler. 2813481Sgiacomo.travaglini@arm.comCXXFLAGS += -g -Wall -Wextra -pthread 2913481Sgiacomo.travaglini@arm.com 3013481Sgiacomo.travaglini@arm.com# All tests produced by this Makefile. Remember to add new tests you 3113481Sgiacomo.travaglini@arm.com# created to the list. 3213481Sgiacomo.travaglini@arm.comTESTS = sample1_unittest 3313481Sgiacomo.travaglini@arm.com 3413481Sgiacomo.travaglini@arm.com# All Google Test headers. Usually you shouldn't change this 3513481Sgiacomo.travaglini@arm.com# definition. 3613481Sgiacomo.travaglini@arm.comGTEST_HEADERS = $(GTEST_DIR)/include/gtest/*.h \ 3713481Sgiacomo.travaglini@arm.com $(GTEST_DIR)/include/gtest/internal/*.h 3813481Sgiacomo.travaglini@arm.com 3913481Sgiacomo.travaglini@arm.com# House-keeping build targets. 4013481Sgiacomo.travaglini@arm.com 4113481Sgiacomo.travaglini@arm.comall : $(TESTS) 4213481Sgiacomo.travaglini@arm.com 4313481Sgiacomo.travaglini@arm.comclean : 4413481Sgiacomo.travaglini@arm.com rm -f $(TESTS) gtest.a gtest_main.a *.o 4513481Sgiacomo.travaglini@arm.com 4613481Sgiacomo.travaglini@arm.com# Builds gtest.a and gtest_main.a. 4713481Sgiacomo.travaglini@arm.com 4813481Sgiacomo.travaglini@arm.com# Usually you shouldn't tweak such internal variables, indicated by a 4913481Sgiacomo.travaglini@arm.com# trailing _. 5013481Sgiacomo.travaglini@arm.comGTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS) 5113481Sgiacomo.travaglini@arm.com 5213481Sgiacomo.travaglini@arm.com# For simplicity and to avoid depending on Google Test's 5313481Sgiacomo.travaglini@arm.com# implementation details, the dependencies specified below are 5413481Sgiacomo.travaglini@arm.com# conservative and not optimized. This is fine as Google Test 5513481Sgiacomo.travaglini@arm.com# compiles fast and for ordinary users its source rarely changes. 5613481Sgiacomo.travaglini@arm.comgtest-all.o : $(GTEST_SRCS_) 5713481Sgiacomo.travaglini@arm.com $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \ 5813481Sgiacomo.travaglini@arm.com $(GTEST_DIR)/src/gtest-all.cc 5913481Sgiacomo.travaglini@arm.com 6013481Sgiacomo.travaglini@arm.comgtest_main.o : $(GTEST_SRCS_) 6113481Sgiacomo.travaglini@arm.com $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \ 6213481Sgiacomo.travaglini@arm.com $(GTEST_DIR)/src/gtest_main.cc 6313481Sgiacomo.travaglini@arm.com 6413481Sgiacomo.travaglini@arm.comgtest.a : gtest-all.o 6513481Sgiacomo.travaglini@arm.com $(AR) $(ARFLAGS) $@ $^ 6613481Sgiacomo.travaglini@arm.com 6713481Sgiacomo.travaglini@arm.comgtest_main.a : gtest-all.o gtest_main.o 6813481Sgiacomo.travaglini@arm.com $(AR) $(ARFLAGS) $@ $^ 6913481Sgiacomo.travaglini@arm.com 7013481Sgiacomo.travaglini@arm.com# Builds a sample test. A test should link with either gtest.a or 7113481Sgiacomo.travaglini@arm.com# gtest_main.a, depending on whether it defines its own main() 7213481Sgiacomo.travaglini@arm.com# function. 7313481Sgiacomo.travaglini@arm.com 7413481Sgiacomo.travaglini@arm.comsample1.o : $(USER_DIR)/sample1.cc $(USER_DIR)/sample1.h $(GTEST_HEADERS) 7513481Sgiacomo.travaglini@arm.com $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(USER_DIR)/sample1.cc 7613481Sgiacomo.travaglini@arm.com 7713481Sgiacomo.travaglini@arm.comsample1_unittest.o : $(USER_DIR)/sample1_unittest.cc \ 7813481Sgiacomo.travaglini@arm.com $(USER_DIR)/sample1.h $(GTEST_HEADERS) 7913481Sgiacomo.travaglini@arm.com $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(USER_DIR)/sample1_unittest.cc 8013481Sgiacomo.travaglini@arm.com 8113481Sgiacomo.travaglini@arm.comsample1_unittest : sample1.o sample1_unittest.o gtest_main.a 8213481Sgiacomo.travaglini@arm.com $(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $@ 83