Add support for truncating integer casts from long.
[oota-llvm.git] / Makefile.rules
index dd0d5c74409f08dbf362962471731c734528c0d7..d6ed2d531613a5234ce7a5ac6d023a6d63646449 100644 (file)
@@ -63,8 +63,9 @@ $(UserTargets)::
 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)
@@ -110,6 +111,9 @@ $(BUILT_SOURCES) : $(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)
 
@@ -117,15 +121,18 @@ reconfigure:
 $(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
@@ -173,6 +180,7 @@ install-bytecode:: install-bytecode-local
 # Variables derived from configuration we are building
 #--------------------------------------------------------------------
 
+
 ifdef ENABLE_PROFILING
   BuildMode := Profile
   CXX.Flags := -O3 -DNDEBUG -felide-constructors -finline-functions -pg
@@ -181,9 +189,13 @@ ifdef ENABLE_PROFILING
 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
@@ -210,7 +222,8 @@ ToolDir     := $(BUILD_OBJ_ROOT)/$(BuildMode)/bin
 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
@@ -235,12 +248,6 @@ endif
 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
@@ -250,6 +257,8 @@ endif
 ifndef LOPT
 LOPT     := $(LLVMToolDir)/opt$(EXEEXT)
 endif
+LLVMGCCWITHPATH  := PATH="$(LLVMToolDir):$(PATH)" $(LLVMGCC)
+LLVMGXXWITHPATH  := PATH="$(LLVMToolDir):$(PATH)" $(LLVMGXX)
 
 #--------------------------------------------------------------------
 # Adjust to user's request
@@ -311,10 +320,12 @@ CPP.Flags += -I$(BUILD_OBJ_DIR) \
 
 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) \
@@ -517,7 +528,7 @@ endif
 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)
@@ -615,7 +626,7 @@ BCCompile.CXX += -Wa,-strip-debug
 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) \
@@ -759,7 +770,7 @@ endif
 
 # 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
@@ -1269,7 +1280,7 @@ dist-check:: $(DistTarGZip)
          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 && \