SrcMakefiles := $(filter %Makefile %Makefile.tests,\
$(wildcard $(BUILD_SRC_DIR)/Makefile*))
ObjMakefiles := $(subst $(BUILD_SRC_DIR),$(BUILD_OBJ_DIR),$(SrcMakefiles))
-ConfigureScript := $(LLVM_SRC_ROOT)/configure
-ConfigStatusScript := $(LLVM_OBJ_ROOT)/config.status
+ConfigureScript := $(BUILD_SRC_ROOT)/configure
+ConfigStatusScript := $(BUILD_OBJ_ROOT)/config.status
+LConfigStatusScript:= $(LLVM_OBJ_ROOT)/config.status
MakefileConfigIn := $(LLVM_SRC_ROOT)/Makefile.config.in
MakefileConfig := $(LLVM_OBJ_ROOT)/Makefile.config
PreConditions := $(ConfigStatusScript) $(MakefileConfig) $(ObjMakefiles)
reconfigure:
$(Echo) Reconfiguring $(BUILD_OBJ_ROOT)
$(Verb) cd $(BUILD_OBJ_ROOT) && \
+ if test -w $(BUILD_OBJ_ROOT)/config.cache ; then \
+ $(RM) $(BUILD_OBJ_ROOT)/config.cache ; \
+ fi ; \
$(ConfigStatusScript) --recheck $(ConfigureScriptFLAGS) && \
$(ConfigStatusScript)
$(ConfigStatusScript): $(ConfigureScript)
$(Echo) Reconfiguring with $<
$(Verb) cd $(BUILD_OBJ_ROOT) && \
+ if test -w $(BUILD_OBJ_ROOT)/config.cache ; then \
+ $(RM) $(BUILD_OBJ_ROOT)/config.cache ; \
+ fi ; \
$(ConfigStatusScript) --recheck $(ConfigureScriptFLAGS) && \
$(ConfigStatusScript)
#------------------------------------------------------------------------
# Make sure the configuration makefile is up to date
#------------------------------------------------------------------------
-$(MakefileConfig): $(MakefileConfigIn) $(ConfigStatusScript)
+$(MakefileConfig): $(MakefileConfigIn) $(LConfigStatusScript)
$(Echo) Regenerating $@
- $(Verb) cd $(LLVM_OBJ_ROOT) ; $(ConfigStatusScript) Makefile.config
+ $(Verb) cd $(LLVM_OBJ_ROOT) ; $(LConfigStatusScript) Makefile.config
#------------------------------------------------------------------------
# If the Makefile in the source tree has been updated, copy it over into the
# Variables derived from configuration we are building
#--------------------------------------------------------------------
+
ifdef ENABLE_PROFILING
BuildMode := Profile
CXX.Flags := -O3 -DNDEBUG -felide-constructors -finline-functions -pg
else
ifdef ENABLE_OPTIMIZED
BuildMode := Release
- CXX.Flags := -O3 -DNDEBUG -finline-functions \
- -felide-constructors -fomit-frame-pointer
- C.Flags := -O3 -DNDEBUG -fomit-frame-pointer
+ # Don't use -fomit-frame-pointer on FreeBSD
+ ifneq ($(OS),FreeBSD)
+ OmitFramePointer := -fomit-frame-pointer
+ endif
+ CXX.Flags := -O3 -DNDEBUG -finline-functions -felide-constructors \
+ $(OmitFramePointer)
+ C.Flags := -O3 -DNDEBUG $(OmitFramePointer)
LD.Flags := -O3 -DNDEBUG
else
BuildMode := Debug
ExmplDir := $(BUILD_OBJ_ROOT)/$(BuildMode)/examples
LLVMLibDir := $(LLVM_OBJ_ROOT)/$(BuildMode)/lib
LLVMToolDir := $(LLVM_OBJ_ROOT)/$(BuildMode)/bin
-LExmplDir := $(LLVM_OBJ_ROOT)/$(BuildMode)/examples
+LLVMExmplDir:= $(LLVM_OBJ_ROOT)/$(BuildMode)/examples
+CFERuntimeLibDir := $(LLVMGCCDIR)/lib
#--------------------------------------------------------------------
# Full Paths To Compiled Tools and Utilities
ifndef GCCLD
GCCLD := $(LLVMToolDir)/gccld$(EXEEXT)
endif
-ifndef LLVMGCC
-LLVMGCC := PATH=$(LLVMToolDir):$(PATH) $(LLVMGCCDIR)/bin/gcc
-endif
-ifndef LLVMGXX
-LLVMGXX := PATH=$(LLVMToolDir):$(PATH) $(LLVMGCCDIR)/bin/g++
-endif
ifndef LDIS
LLVMDIS := $(LLVMToolDir)/llvm-dis$(EXEEXT)
endif
ifndef LOPT
LOPT := $(LLVMToolDir)/opt$(EXEEXT)
endif
+LLVMGCCWITHPATH := PATH="$(LLVMToolDir):$(PATH)" $(LLVMGCC)
+LLVMGXXWITHPATH := PATH="$(LLVMToolDir):$(PATH)" $(LLVMGXX)
#--------------------------------------------------------------------
# Adjust to user's request
Compile.C = $(CC) $(CPP.Flags) $(CompileCommonOpts) -c $(C.Flags)
LTCompile.C = $(LIBTOOL) $(LibTool.Flags) --mode=compile $(Compile.C)
-BCCompile.C = $(LLVMGCC) $(CPP.Flags) $(CompileCommonOpts) $(C.Flags) -c
+BCCompile.C = $(LLVMGCCWITHPATH) $(CPP.Flags) $(CompileCommonOpts) \
+ $(C.Flags) -c
Compile.CXX = $(CXX) $(CPP.Flags) $(CompileCommonOpts) $(CXX.Flags) -c
LTCompile.CXX = $(LIBTOOL) $(LibTool.Flags) --mode=compile $(Compile.CXX)
-BCCompile.CXX = $(LLVMGXX) $(CPP.Flags) $(CompileCommonOpts) $(CXX.Flags) -c
+BCCompile.CXX = $(LLVMGXXWITHPATH) $(CPP.Flags) $(CompileCommonOpts) \
+ $(CXX.Flags) -c
Link = $(LIBTOOL) $(LibTool.Flags) --mode=link $(CXX) $(CPP.Flags) \
$(CompileCommonOpts) $(LD.Flags) $(Strip)
Relink = $(LIBTOOL) $(LibTool.Flags) --mode=link $(CXX) $(CPP.Flags) \
ifdef MODULE_NAME
Module := $(LibDir)/$(MODULE_NAME).bc
-LinkModule := $(LLVMGCC) -shared -nostdlib
+LinkModule := $(LLVMGCCWITHPATH) -shared -nostdlib
ifdef EXPORTED_SYMBOL_FILE
LinkMOdule += -Xlinker -internalize-public-api-file=$(EXPORTED_SYMBOL_FILE)
all-local:: $(LibName.BCA)
ifdef EXPORTED_SYMBOL_FILE
-BCLinkLib = $(LLVMGCC) -shared -nostdlib -Xlinker \
+BCLinkLib = $(LLVMGCCWITHPATH) -shared -nostdlib -Xlinker \
-internalize-public-api-file=$(EXPORTED_SYMBOL_FILE)
$(LibName.BCA): $(ObjectsBC) $(LibDir)/.dir $(GCCLD) \
# What the X86 JIT requires
ifdef ENABLE_X86_JIT
- JIT_LIBS += LLVMX86
+ JIT_LIBS += LLVMX86 LLVMSelectionDAG
endif
# You can enable the SparcV9 JIT on a non-SparcV9 host by setting the flag
gunzip -c $(DistTarGZip) | $(TAR) xf - && \
cd build && \
../$(DistName)/configure --prefix="$(DistCheckDir)/install" \
- --srcdir=../$(DistName) --with-llvmgccdir="$(LLVMGCCDIR)" && \
+ --srcdir=../$(DistName) && \
$(MAKE) all && \
$(MAKE) check && \
$(MAKE) install && \