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