CPP.Defines :=
# OPTIMIZE_OPTION - The optimization level option we want to build LLVM with
# this can be overridden on the make command line.
-ifneq ($(OS),MingW)
- OPTIMIZE_OPTION := -O3
-else
- OPTIMIZE_OPTION := -O2
+ifndef OPTIMIZE_OPTION
+ ifneq ($(OS),MingW)
+ OPTIMIZE_OPTION := -O3
+ else
+ OPTIMIZE_OPTION := -O2
+ endif
endif
-ifdef ENABLE_PROFILING
- BuildMode := Profile
- CXX.Flags += $(OPTIMIZE_OPTION) -pg -g
- C.Flags += $(OPTIMIZE_OPTION) -pg -g
- LD.Flags += $(OPTIMIZE_OPTION) -pg -g
- KEEP_SYMBOLS := 1
-else
- ifeq ($(ENABLE_OPTIMIZED),1)
- BuildMode := Release
- # Don't use -fomit-frame-pointer on Darwin or FreeBSD.
- ifneq ($(OS),FreeBSD)
- ifneq ($(OS),Darwin)
- OmitFramePointer := -fomit-frame-pointer
- endif
- endif
+ifeq ($(ENABLE_OPTIMIZED),1)
+ BuildMode := Release
+ # Don't use -fomit-frame-pointer on Darwin or FreeBSD.
+ ifneq ($(OS),FreeBSD)
+ ifneq ($(OS),Darwin)
+ OmitFramePointer := -fomit-frame-pointer
+ endif
+ endif
- # Darwin requires -fstrict-aliasing to be explicitly enabled.
- ifeq ($(OS),Darwin)
- EXTRA_OPTIONS += -fstrict-aliasing -Wstrict-aliasing
- endif
+ # Darwin requires -fstrict-aliasing to be explicitly enabled.
+ # Avoid -fstrict-aliasing on Darwin for now, there are unresolved issues
+ # with -fstrict-aliasing and ipa-type-escape radr://6756684
+ #ifeq ($(OS),Darwin)
+ # EXTRA_OPTIONS += -fstrict-aliasing -Wstrict-aliasing
+ #endif
+ CXX.Flags += $(OPTIMIZE_OPTION) $(OmitFramePointer)
+ C.Flags += $(OPTIMIZE_OPTION) $(OmitFramePointer)
+ LD.Flags += $(OPTIMIZE_OPTION)
+else
+ BuildMode := Debug
+ CXX.Flags += -g
+ C.Flags += -g
+ LD.Flags += -g
+ KEEP_SYMBOLS := 1
+endif
- CXX.Flags += $(OPTIMIZE_OPTION) $(OmitFramePointer)
- C.Flags += $(OPTIMIZE_OPTION) $(OmitFramePointer)
- LD.Flags += $(OPTIMIZE_OPTION)
- else
- BuildMode := Debug
- CXX.Flags += -g
- C.Flags += -g
- LD.Flags += -g
- KEEP_SYMBOLS := 1
- endif
+ifeq ($(ENABLE_PROFILING),1)
+ BuildMode := $(BuildMode)+Profile
+ CXX.Flags := $(filter-out -fomit-frame-pointer,$(CXX.Flags)) -pg -g
+ C.Flags := $(filter-out -fomit-frame-pointer,$(C.Flags)) -pg -g
+ LD.Flags := $(filter-out -fomit-frame-pointer,$(LD.Flags)) -pg -g
+ KEEP_SYMBOLS := 1
endif
#ifeq ($(ENABLE_VISIBILITY_INLINES_HIDDEN),1)
# If DISABLE_ASSERTIONS=1 is specified (make command line or configured),
# then disable assertions by defining the appropriate preprocessor symbols.
ifdef DISABLE_ASSERTIONS
+ # Indicate that assertions are turned off using a minus sign
BuildMode := $(BuildMode)-Asserts
CPP.Defines += -DNDEBUG
else
DARWIN_VERSION := $(shell echo $(DARWIN_VERSION)| sed -E 's/(10.[0-9]).*/\1/')
# Get "4" out of 10.4 for later pieces in the makefile.
DARWIN_MAJVERS := $(shell echo $(DARWIN_VERSION)| sed -E 's/10.([0-9]).*/\1/')
-
- SharedLinkOptions=-Wl,-flat_namespace -Wl,-undefined -Wl,suppress -bundle \
- -mmacosx-version-min=$(DARWIN_VERSION)
- CompileCommonOpts += -mmacosx-version-min=$(DARWIN_VERSION)
+
+ SharedLinkOptions=-Wl,-flat_namespace -Wl,-undefined -Wl,suppress \
+ -dynamiclib -mmacosx-version-min=$(DARWIN_VERSION)
+ TargetCommonOpts += -mmacosx-version-min=$(DARWIN_VERSION)
else
ifeq ($(OS),Cygwin)
SharedLinkOptions=-shared -nostdlib -Wl,--export-all-symbols \
else
ifeq ($(OS),Darwin)
ifeq ($(ARCH),x86_64)
- CompileCommonOpts += -m64
+ TargetCommonOpts = -m64
else
ifeq ($(ARCH),x86)
- CompileCommonOpts += -m32
+ TargetCommonOpts = -m32
endif
endif
endif
ifeq ($(BUILD_COMPONENT), 1)
Compile.C = $(BUILD_CC) $(CPP.Flags) $(C.Flags) $(C.Flags.NoRelink) \
- $(CompileCommonOpts) -c
+ $(TargetCommonOpts) $(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
+ $(TargetCommonOpts) $(CompileCommonOpts) -c
+ Preprocess.CXX= $(BUILD_CXX) $(CPP.Flags) $(TargetCommonOpts) \
+ $(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)
+ $(TargetCommonOpts) $(CompileCommonOpts) $(LD.Flags) $(Strip)
+ Relink = $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) $(TargetCommonOpts) \
+ $(CompileCommonOpts) $(Relink.Flags)
else
Compile.C = $(CC) $(CPP.Flags) $(C.Flags) $(C.Flags.NoRelink) \
- $(CompileCommonOpts) -c
+ $(TargetCommonOpts) $(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
+ $(TargetCommonOpts) $(CompileCommonOpts) -c
+ Preprocess.CXX= $(CXX) $(CPP.Flags) $(TargetCommonOpts) \
+ $(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)
+ $(TargetCommonOpts) $(CompileCommonOpts) $(LD.Flags) $(Strip)
+ Relink = $(CXX) $(CPP.Flags) $(CXX.Flags) $(TargetCommonOpts) \
+ $(CompileCommonOpts) $(Relink.Flags)
endif
-BCCompile.C = $(LLVMGCCWITHPATH) $(CPP.Flags) $(C.Flags) $(CompileCommonOpts)
-Preprocess.C = $(CC) $(CPP.Flags) $(C.Flags) $(CompileCommonOpts) -E
+BCCompile.C = $(LLVMGCCWITHPATH) $(CPP.Flags) $(C.Flags) \
+ $(TargetCommonOpts) $(CompileCommonOpts)
+Preprocess.C = $(CC) $(CPP.Flags) $(C.Flags) \
+ $(TargetCommonOpts) $(CompileCommonOpts) -E
BCCompile.CXX = $(LLVMGXXWITHPATH) $(CPP.Flags) $(CXX.Flags) \
- $(CompileCommonOpts)
+ $(TargetCommonOpts) $(CompileCommonOpts)
ProgInstall = $(INSTALL) $(Install.StripFlag) -m 0755
ScriptInstall = $(INSTALL) -m 0755
TABLEGEN_INC_FILES_COMMON = 1
endif
-ifdef CLANG_BUILD_DIAGNOSTICS_INC
-TABLEGEN_INC_FILES_COMMON = 1
-endif
-
ifdef TABLEGEN_INC_FILES_COMMON
INCFiles := $(filter %.inc,$(BUILT_SOURCES))
ifdef LLVMC_BUILD_AUTOGENERATED_INC
-LLVMCPluginSrc := $(strip $(wildcard $(PROJ_SRC_DIR)/*.td))
+LLVMCPluginSrc := $(sort $(strip $(wildcard $(PROJ_SRC_DIR)/*.td)) \
+ $(strip $(wildcard $(PROJ_OBJ_DIR)/*.td)))
TDFiles := $(LLVMCPluginSrc) \
$(strip $(wildcard $(LLVM_SRC_ROOT)/include/llvm/CompilerDriver/*.td))
endif # LLVMC_BUILD_AUTOGENERATED_INC
-ifdef CLANG_BUILD_DIAGNOSTICS_INC
-
-$(ObjDir)/Diagnostic%Kinds.inc.tmp : Diagnostic.td Diagnostic%Kinds.td $(TBLGEN)
- $(Echo) "Building Clang $(patsubst Diagnostic%Kinds.inc.tmp,%,$(@F)) diagnostic tables with tblgen"
- $(Verb) $(MKDIR) $(@D)
- $(Verb) $(TableGen) -gen-clang-diags-defs -clang-component=$(patsubst Diagnostic%Kinds.inc.tmp,%,$(@F)) -o $(call SYSPATH, $@) $<
-
-endif
-
###############################################################################
# OTHER RULES: Other rules needed
###############################################################################