# 1. $ make dep
# 2. $ make
# 3. $ make report
# 4. browse report/index.html
# 5. $ make clean

CXX=g++
CC=$(CXX)
LDLIBS=-lboost_unit_test_framework -lm
override CXXFLAGS=-I../../src
override LDFLAGS=-fprofile-arcs

.PHONY: test all report clean dep

test: simlib-test run

all: simlib-test run report

simlib-test: simlib-test.o simlib.a

simlib.a:
	make -C ../../src clean
# Pokud se v ../../src/Makefile pouzije override, tak pouzit nasledujici:
#	make -C ../../src \
#	     CXXFLAGS="-ftest-coverage -fprofile-arcs" \
#	     LDFLAGS=-fprofile-arcs simlib.a
# Jinak:  
	make -C ../../src -f Makefile.Linux-x86_64.unittest simlib.a
	cp ../../src/simlib.a .
	lcov --directory ../../src --zerocounters

run: simlib-test
	@echo =============================================================
	./simlib-test
	@echo =============================================================

#GCOVFLAGS=--rc lcov_branch_coverage=1
report:
	geninfo $(GCOVFLAGS) ../../src
	mkdir -p report
	# BEGIN: odstraneni /usr/include/* souboru z reportu
	for info in ../../src/*.info; do \
		lcov $(GCOVFLAGS) -r $$info '/usr/include/*' -o $$info.r ; \
	done
	for info in ../../src/*.info.r; do mv $$info $${info%.r}; done
	genhtml $(GCOVFLAGS) -t SIMLIB -o report ../../src/*.info

clean:
	make -C ../../src clean
	-rm simlib.a \
		../../src/*.gcda \
		../../src/*.gcda.info \
		../../src/*.gcno \
		../../src/*.gcov
	-rm simlib-test simlib-test.o *.gcda *.gcda.info *.gcno *.gcov
	-rm report/src/* report/*
	-rmdir report/src
	-rmdir report

dep:
	$(CXX) $(CXXFLAGS) -MM *.cc >Makefile.dep

-include Makefile.dep
