# Variables derived from configuration we are building
#--------------------------------------------------------------------
+# OPTIMIZE_OPTION - The optimization level option we want to build LLVM with
+# this can be overridden on the make command line.
+OPTIMIZE_OPTION := -O3
+
ifdef ENABLE_PROFILING
BuildMode := Profile
- CXX.Flags := -O3 -felide-constructors -finline-functions -pg
- C.Flags := -O3 -pg
- LD.Flags := -O3 -pg
+ CXX.Flags := $(OPTIMIZE_OPTION) -pg
+ C.Flags := $(OPTIMIZE_OPTION) -pg
+ LD.Flags := $(OPTIMIZE_OPTION) -pg
else
ifdef ENABLE_OPTIMIZED
BuildMode := Release
# Don't use -fomit-frame-pointer on FreeBSD
ifneq ($(OS),FreeBSD)
+ # Don't use -fomit-frame-pointer on Darwin, it breaks backtraces.
+ ifneq ($(OS),Darwin)
OmitFramePointer := -fomit-frame-pointer
endif
- CXX.Flags := -O3 -finline-functions -felide-constructors $(OmitFramePointer)
- C.Flags := -O3 $(OmitFramePointer)
- LD.Flags := -O3
+ endif
+ CXX.Flags := $(OPTIMIZE_OPTION) $(OmitFramePointer)
+ C.Flags := $(OPTIMIZE_OPTION) $(OmitFramePointer)
+ LD.Flags := $(OPTIMIZE_OPTION)
else
BuildMode := Debug
CXX.Flags := -g
# Options To Invoke Tools
#----------------------------------------------------------
-CompileCommonOpts := -Wall -W -Wwrite-strings -Wno-unused
+CompileCommonOpts := -Wall -W -Wwrite-strings -Wno-unused -Wno-long-long \
+ -pedantic
ifeq ($(OS),HP-UX)
CompileCommonOpts := -D_REENTRANT -D_HPUX_SOURCE
endif
-# If we are building a universal binary on Mac OS/X, pass extra options. This is
-# useful to people that want to link the LLVM libraries into their universal apps.
+# If we are building a universal binary on Mac OS/X, pass extra options. This
+# is useful to people that want to link the LLVM libraries into their universal
+# apps.
ifdef UNIVERSAL
CompileCommonOpts += \
-arch i386 -arch ppc -isysroot /Developer/SDKs/MACOSX10.4u.sdk/
DISABLE_AUTO_DEPENDENCIES=1
endif
-# Temporary workaround for a Mac OSX / x86 compatibility issue.
+# Temporary workaround for a Mac OSX compatibility issue.
ifeq ($(OS),Darwin)
-ifeq ($(ARCH),x86)
CXX.Flags += -fno-use-cxa-atexit
endif
-endif
LD.Flags += -L$(LibDir) -L$(LLVMLibDir)
CPP.BaseFlags += -D_GNU_SOURCE -D__STDC_LIMIT_MACROS
$(CXX.Flags)
Preprocess.CXX= $(CXX) $(CPP.Flags) $(CompileCommonOpts) $(CXX.Flags) -E
Link = $(LIBTOOL) $(LibTool.Flags) --mode=link $(CXX) $(CPP.Flags) \
- $(CompileCommonOpts) $(LD.Flags) $(Strip)
+ $(CXX.Flags) $(CompileCommonOpts) $(LD.Flags) $(Strip)
Relink = $(LIBTOOL) $(LibTool.Flags) --mode=link $(CXX) $(CPP.Flags) \
- $(CompileCommonOpts) $(Relink.Flags)
+ $(CXX.Flags) $(CompileCommonOpts) $(Relink.Flags)
LTInstall = $(LIBTOOL) $(LibTool.Flags) --mode=install $(INSTALL) \
$(Install.Flags)
ProgInstall = $(INSTALL) $(Install.StripFlag) -m 0755
$(MKDIR) $$dir; \
$(CP) $(PROJ_SRC_DIR)/$$dir/Makefile $$dir/Makefile; \
fi; \
- if [ ! -f $$dir/LLVM_DO_NOT_BUILD ]; then \
- ($(MAKE) -C $$dir $@ ) || exit 1; \
- fi ; \
+ ($(MAKE) -C $$dir $@ ) || exit 1; \
done
endif
$(MKDIR) $$dir; \
$(CP) $(PROJ_SRC_DIR)/$$dir/Makefile $$dir/Makefile; \
fi; \
- if [ ! -f $$dir/LLVM_DO_NOT_BUILD ]; then \
- ($(MAKE) -C $$dir $@ ) || exit 0; \
- fi ; \
+ ($(MAKE) -C $$dir $@ ) || exit 0; \
done
endif
$(MKDIR) $(@D); \
$(CP) $(PROJ_SRC_DIR)/$(@D)/Makefile $(@D)/Makefile; \
fi; \
- if [ ! -f $$dir/LLVM_DO_NOT_BUILD ]; then \
- $(MAKE) -C $(@D) $(subst $(@D)/.make,,$@) ; \
- fi
+ $(MAKE) -C $(@D) $(subst $(@D)/.make,,$@) ;
endif
#---------------------------------------------------------
$(MKDIR) $$dir; \
$(CP) $(PROJ_SRC_DIR)/$$dir/Makefile $$dir/Makefile; \
fi; \
- if [ ! -f $$dir/LLVM_DO_NOT_BUILD ]; then \
- ($(MAKE) -C$$dir $@ ) || exit 1; \
- fi ; \
+ ($(MAKE) -C$$dir $@ ) || exit 1; \
fi \
done
endif
endif
LLVMLIBS := $(JIT_LIBS) LLVMScalarOpts.a LLVMTransformUtils.a LLVMAnalysis.a \
- LLVMBCReader LLVMTarget.a LLVMCore LLVMSupport.a LLVMbzip2 \
+ LLVMBCReader.a LLVMTarget.a LLVMCore.a LLVMSupport.a LLVMbzip2.a \
LLVMSystem.a $(PLATFORMLIBDL)
endif
all-local:: $(LibName.BCA)
ifdef EXPORTED_SYMBOL_FILE
-BCLinkLib = $(GCCLD) -L$(CFERuntimeLibDir) -internalize-public-api-file=$(EXPORTED_SYMBOL_FILE)
+BCLinkLib = $(GCCLD) -L$(CFERuntimeLibDir) \
+ -internalize-public-api-file=$(EXPORTED_SYMBOL_FILE)
$(LibName.BCA): $(ObjectsBC) $(LibDir)/.dir $(GCCLD) \
$(LLVMToolDir)/llvm-ar