GCOVHTMLFILE              = $(PATH_BIN_NAME)/GcovHtmlFile

FILES_BASENAME_COVER      = $(notdir $(FILES_COVER))
FILES_BASENAME_C          = $(basename $(notdir $(wildcard $(PATH_TMP_NAME_OBJ)/*.fname_c)))
FILES_BASENAME_CPP        = $(basename $(notdir $(wildcard $(PATH_TMP_NAME_OBJ)/*.fname_cpp)))

FILES_COVER_C             = $(addsuffix .c,$(filter $(FILES_BASENAME_COVER), $(FILES_BASENAME_C)))
FILES_COVER_C___GCOV      = $(addsuffix .gcov,$(FILES_COVER_C))

FILES_COVER_CPP           = $(addsuffix .cpp,$(filter $(FILES_BASENAME_COVER), $(FILES_BASENAME_CPP)))
FILES_COVER_CPP_GCOV      = $(addsuffix .gcov,$(FILES_COVER_CPP))

FILES_COVER_ALL           = $(FILES_COVER_C)                                 \
                            $(FILES_COVER_CPP)

FILES_COVER_ALL_GCOV      = $(FILES_COVER_C___GCOV)                          \
                            $(FILES_COVER_CPP_GCOV)

GCOV_FLAGS                = --branch-probabilities --branch-counts -i -o $(PATH_TMP_NAME_OBJ)

GPROF_FLAGS               = --exec-counts                                    \
                            --static-call-graph                              \
                            --display-unused-functions

LCOV_FLAGS                = --capture --rc lcov_branch_coverage=1

GCOV_BATCH_FILE_ANALYSIS  = $(PATH_TMP_NAME_OBJ)/gcov_cover_analyze.sh

# ------------------------------------------------------------------------------
# Run GCOV and LCOV for code coverage and HTML report.
# Note: Here we are using the patched version
# of LCOV with AL_filepath_extension.
# ------------------------------------------------------------------------------

.PHONY: PostBuildCover

PostBuildCover:
	@$(GNUECHO) +++ Unix perform post-build cover events
	@$(GNUECHO)
	@$(GNUECHO) "+++ running application: $(FILE_BIN_NAME)"
	@$(GNUECHO) BuildSettings: $(TYP_ECU) $(TYP_OEM) $(TYP_PRJ)>               $(FILE_BIN_NAME)_ExecutionResult.txt
	@$(FILE_BIN_NAME)                                     >>                   $(FILE_BIN_NAME)_ExecutionResult.txt
	@$(GNUECHO)
	@$(GNUECHO) "+++ print application result:"
	@$(GNUECHO)
	@$(CAT) "$(FILE_BIN_NAME)_ExecutionResult.txt"
	@$(GNUECHO)
	@$(GNUECHO) "+++ GCOV Cover analysis create $(GCOV_BATCH_FILE_ANALYSIS) +++"
	@$(GNUECHO) cd $(PATH_TMP_NAME_OBJ)  >>                                                                $(GCOV_BATCH_FILE_ANALYSIS)
	@$(GNUECHO) echo "+++ running GCOV +++">>                                                              $(GCOV_BATCH_FILE_ANALYSIS)
	@$(GNUECHO) $(GCOV) $(FILES_COVER_ALL) $(GCOV_FLAGS)>>                                                 $(GCOV_BATCH_FILE_ANALYSIS)
	@$(GNUECHO) echo .>>                                                                                   $(GCOV_BATCH_FILE_ANALYSIS)
	@$(GNUECHO) echo "+++ coverage of instrumented files in application: $(FILE_BIN_NAME)"       >>        $(GCOV_BATCH_FILE_ANALYSIS)
	@$(GNUECHO) echo "+++ print LCOV version +++" >>                                                       $(GCOV_BATCH_FILE_ANALYSIS)
	@$(GNUECHO) $(LCOV) -v>>                                                                               $(GCOV_BATCH_FILE_ANALYSIS)
	@$(GNUECHO) echo .>>                                                                                   $(GCOV_BATCH_FILE_ANALYSIS)
	@$(GNUECHO) echo "+++ running LCOV +++">>                                                              $(GCOV_BATCH_FILE_ANALYSIS)
	@$(GNUECHO) $(LCOV) $(LCOV_FLAGS) --directory . --output-file Cln1.info >>                             $(GCOV_BATCH_FILE_ANALYSIS)
	@$(GNUECHO) echo .>>                                                                                   $(GCOV_BATCH_FILE_ANALYSIS)
	@$(GNUECHO) echo "+++ running GENHTML +++">>                                                           $(GCOV_BATCH_FILE_ANALYSIS)
	@$(GNUECHO) $(GENHTML) Cln1.info --branch-coverage --output-directory $(GCOVHTMLFILE) >>               $(GCOV_BATCH_FILE_ANALYSIS)
	@$(GNUECHO) echo "Created GCOV-Coverage Report: file://$(GCOVHTMLFILE)/index.html">>                   $(GCOV_BATCH_FILE_ANALYSIS)
	@$(GNUECHO) echo .>>                                                                                   $(GCOV_BATCH_FILE_ANALYSIS)
	@chmod +x $(GCOV_BATCH_FILE_ANALYSIS)
	@$(GNUECHO) echo "+++ Executing GCOV analysis +++"
	@$(GCOV_BATCH_FILE_ANALYSIS)
	@$(GNUECHO)
