@@ -38,6 +38,7 @@ CC= @CC@
3838CXX= @CXX@
3939MAINCC= @MAINCC@
4040LINKCC= @LINKCC@
41+ CC_NAME=@CC_NAME@
4142AR= @AR@
4243READELF= @READELF@
4344SOABI= @SOABI@
@@ -648,9 +649,20 @@ profile-opt: profile-run-stamp
648649 -rm -f profile-clean-stamp
649650 $(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="$(CFLAGS_NODIST) $(PGO_PROF_USE_FLAG)" LDFLAGS_NODIST="$(LDFLAGS_NODIST)"
650651
652+ .PHONY=coverage-report
653+ coverage-report:
654+ @if [ $(CC_NAME) = "gcc" ]; then \
655+ $(MAKE) coverage-report-lcov; \
656+ elif [ $(CC_NAME) = "clang" ]; then \
657+ $(MAKE) coverage-report-llvm; \
658+ else \
659+ echo "Coverage is not supported with the $(CC_NAME) compiler"; \
660+ exit 1; \
661+ fi
662+
651663# Compile and run with gcov
652- .PHONY=coverage coverage-lcov coverage-report
653- coverage:
664+ .PHONY=coverage-gcc coverage-lcov coverage-report-lcov
665+ coverage-gcc :
654666 @echo "Building with support for coverage checking:"
655667 $(MAKE) clean
656668 $(MAKE) @DEF_MAKE_RULE@ CFLAGS="$(CFLAGS) -O0 -pg --coverage" LDFLAGS="$(LDFLAGS) --coverage"
@@ -686,7 +698,7 @@ coverage-lcov:
686698 @echo
687699
688700# Force regeneration of parser and frozen modules
689- coverage-report: regen-token regen-frozen
701+ coverage-report-lcov : regen-token regen-frozen
690702 @ # build with coverage info
691703 $(MAKE) coverage
692704 @ # run tests, ignore failures
@@ -695,14 +707,9 @@ coverage-report: regen-token regen-frozen
695707 $(MAKE) coverage-lcov
696708
697709# Compile and calculate coverage with llvm-cov
698- .PHONY=check-clang coverage-llvm coverage-profdata coverage-report-llvm
699-
700- # Check whether the compiler is clang, and if not, error out.
701- check-clang:
702- ($(CC) --version | grep clang) || \
703- (echo "LLVM coverage only works with clang. Set CC=clang and CXX=clang++ and re-run ./configure"; exit 1)
710+ .PHONY=coverage-clang coverage-profdata coverage-report-llvm
704711
705- coverage-llvm: check-clang
712+ coverage-clang:
706713 @echo "Building with support for coverage checking:"
707714 $(MAKE) clean
708715 @ # Override CC rather than CFLAGS since these flags must come first
@@ -726,7 +733,7 @@ coverage-profdata:
726733# into temporary directories created by tests.
727734coverage-report-llvm: regen-token regen-importlib
728735 @ # build with coverage info
729- $(MAKE) coverage-llvm
736+ $(MAKE) coverage-clang
730737 @ # run tests, ignore failures
731738 LLVM_PROFILE_FILE=${PWD}/python%m.profraw $(TESTRUNNER) $(TESTOPTS) || true
732739 @ # build llvm-cov report
0 commit comments