aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.rules36
1 files changed, 25 insertions, 11 deletions
diff --git a/Makefile.rules b/Makefile.rules
index 886b095c06..b7992fdde4 100644
--- a/Makefile.rules
+++ b/Makefile.rules
@@ -282,6 +282,14 @@ ifndef REQUIRES_RTTI
# CXX.Flags += -fno-rtti
endif
+ifdef ENABLE_COVERAGE
+ BuildMode := $(BuildMode)+Coverage
+ # These only go to .NoRelink because otherwise we will end up
+ # linking -lgcov into the .o libraries that get built.
+ CXX.Flags.NoRelink += -ftest-coverage -fprofile-arcs
+ C.Flags.NoRelink += -ftest-coverage -fprofile-arcs
+endif
+
# If DISABLE_ASSERTIONS=1 is specified (make command line or configured),
# then disable assertions by defining the appropriate preprocessor symbols.
ifdef DISABLE_ASSERTIONS
@@ -550,20 +558,26 @@ CPP.Flags += $(sort -I$(PROJ_OBJ_DIR) -I$(PROJ_SRC_DIR) \
$(LLVM_OBJ_ROOT) $(LLVM_SRC_ROOT))) \
$(CPP.BaseFlags)
- ifeq ($(BUILD_COMPONENT), 1)
- Compile.C = $(BUILD_CC) $(CPP.Flags) $(C.Flags) $(CompileCommonOpts) -c
- Compile.CXX = $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) $(CompileCommonOpts) -c
- Preprocess.CXX= $(BUILD_CXX) $(CPP.Flags) $(CompileCommonOpts) $(CXX.Flags) -E
- Link = $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) $(CompileCommonOpts) \
- $(LD.Flags) $(Strip)
+ifeq ($(BUILD_COMPONENT), 1)
+ Compile.C = $(BUILD_CC) $(CPP.Flags) $(C.Flags) $(C.Flags.NoRelink) \
+ $(CompileCommonOpts) -c
+ Compile.CXX = $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) $(CXX.Flags.NoRelink) \
+ $(CompileCommonOpts) -c
+ Preprocess.CXX= $(BUILD_CXX) $(CPP.Flags) $(CompileCommonOpts) $(CXX.Flags) \
+ $(CXX.Flags.NoRelink) -E
+ Link = $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) $(CXX.Flags.NoRelink) \
+ $(CompileCommonOpts) $(LD.Flags) $(Strip)
Relink = $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) $(CompileCommonOpts) \
$(Relink.Flags)
else
- Compile.C = $(CC) $(CPP.Flags) $(C.Flags) $(CompileCommonOpts) -c
- Compile.CXX = $(CXX) $(CPP.Flags) $(CXX.Flags) $(CompileCommonOpts) -c
- Preprocess.CXX= $(CXX) $(CPP.Flags) $(CompileCommonOpts) $(CXX.Flags) -E
- Link = $(CXX) $(CPP.Flags) $(CXX.Flags) $(CompileCommonOpts) \
- $(LD.Flags) $(Strip)
+ Compile.C = $(CC) $(CPP.Flags) $(C.Flags) $(C.Flags.NoRelink) \
+ $(CompileCommonOpts) -c
+ Compile.CXX = $(CXX) $(CPP.Flags) $(CXX.Flags) $(CXX.Flags.NoRelink) \
+ $(CompileCommonOpts) -c
+ Preprocess.CXX= $(CXX) $(CPP.Flags) $(CompileCommonOpts) $(CXX.Flags) \
+ $(CXX.Flags.NoRelink) -E
+ Link = $(CXX) $(CPP.Flags) $(CXX.Flags) $(CXX.Flags.NoRelink) \
+ $(CompileCommonOpts) $(LD.Flags) $(Strip)
Relink = $(CXX) $(CPP.Flags) $(CXX.Flags) $(CompileCommonOpts) \
$(Relink.Flags)
endif