# makefile for cube code, using variables and implicit rules # # using in Linux/vagrant: execute # sudo apt-get install -y libgtest-dev lcov # and follow the exercise 1 directions for building GoogleTest libraries CC=g++ CPPFLAGS=-std=c++17 -Wall --coverage LDFLAGS=$(CPPFLAGS) all: cube cube_test cube.o: cube.h cube.cpp cube_test.o: cube.h cube_test.cpp main.o: cube.h main.cpp cube: cube.o main.o cube_test: cube.o cube_test.o $(CC) $(LDFLAGS) -pthread cube.o cube_test.o -lgtest_main -lgtest -lpthread -o cube_test coverage: cube_test mkdir -p code_coverage_report ./cube_test lcov --directory ./ --capture --output-file ./temp_code_coverage.info -rc lcov_branch_coverage=1 lcov -r ./temp_code_coverage.info '*/gtest.*' '/usr/include/*' '*/cube_test.cpp' -o code_coverage.info genhtml code_coverage.info --branch-coverage --output-directory ./code_coverage_report/ clean: rm -f *.o *.gcda *.gcno *.info cube cube_test rm -rf code_coverage_report