2017-12-19 15:49:04 +00:00
|
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
# Copyright(c) 2010-2014 Intel Corporation
|
2012-09-04 12:54:00 +00:00
|
|
|
|
|
|
|
ifdef T
|
|
|
|
ifeq ("$(origin T)", "command line")
|
|
|
|
$(error "Cannot use T= with gcov target")
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq (,$(wildcard $(RTE_OUTPUT)/.config))
|
|
|
|
$(error "need a make config first")
|
|
|
|
else
|
|
|
|
include $(RTE_SDK)/mk/rte.vars.mk
|
|
|
|
endif
|
|
|
|
ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile))
|
|
|
|
$(error "need a make config first")
|
|
|
|
endif
|
|
|
|
|
|
|
|
INPUTDIR = $(RTE_OUTPUT)
|
|
|
|
OUTPUTDIR = $(RTE_OUTPUT)/gcov
|
|
|
|
|
|
|
|
.PHONY: gcovclean
|
|
|
|
gcovclean:
|
|
|
|
$(Q)find $(INPUTDIR)/build -name "*.gcno" -o -name "*.gcda" -exec rm {} \;
|
|
|
|
$(Q)rm -rf $(OUTPUTDIR)
|
|
|
|
|
|
|
|
.PHONY: gcov
|
|
|
|
gcov:
|
|
|
|
$(Q)for APP in test ; do \
|
|
|
|
mkdir -p $(OUTPUTDIR)/$$APP ; cd $(OUTPUTDIR)/$$APP ; \
|
|
|
|
for FIC in `strings $(RTE_OUTPUT)/app/$$APP | grep gcda | sed s,gcda,o,` ; do \
|
|
|
|
SUBDIR=`basename $$FIC`;\
|
|
|
|
mkdir $$SUBDIR ;\
|
|
|
|
cd $$SUBDIR ;\
|
|
|
|
$(GCOV) $(RTE_OUTPUT)/app/$$APP -o $$FIC > gcov.log; \
|
|
|
|
cd - >/dev/null;\
|
|
|
|
done ; \
|
|
|
|
cd - >/dev/null; \
|
|
|
|
done
|