Always pass the root node to ComplexPattern isel matching function.
[oota-llvm.git] / Makefile.config.in
index 03d62903375a0a5e066435019813524dbeb10123..2652db3bb9f629feaded1ef3f902a8165f6b8e20 100644 (file)
@@ -33,19 +33,20 @@ LLVM_CONFIGTIME   := @LLVM_CONFIGTIME@
 #
 ###########################################################################
 
+PWD := @BINPWD@
 # Set the project name to LLVM if its not defined
 ifndef PROJECT_NAME
-PROJECT_NAME := LLVM
+PROJECT_NAME := $(LLVMPackageName)
 endif
 
-PROJ_OBJ_DIR  := $(shell pwd)
-PROJ_OBJ_ROOT := $(subst //,/,$(shell cd $(PROJ_OBJ_DIR)/$(LEVEL); pwd))
+PROJ_OBJ_DIR  := $(shell $(PWD))
+PROJ_OBJ_ROOT := $(shell cd $(PROJ_OBJ_DIR)/$(LEVEL); $(PWD))
 
-ifeq ($(PROJECT_NAME),LLVM)
-LLVM_SRC_ROOT   := @abs_top_srcdir@
-LLVM_OBJ_ROOT   := @abs_top_builddir@
-PROJ_SRC_ROOT   := $(LLVM_SRC_ROOT)
-PROJ_SRC_DIR    := $(subst //,/,$(LLVM_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)))
+ifeq ($(PROJECT_NAME),llvm)
+LLVM_SRC_ROOT   := $(shell cd @abs_top_srcdir@; $(PWD))
+LLVM_OBJ_ROOT   := $(shell cd @abs_top_builddir@; $(PWD))
+PROJ_SRC_ROOT   := $(shell cd $(LLVM_SRC_ROOT); $(PWD))
+PROJ_SRC_DIR    := $(shell cd $(LLVM_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)); $(PWD))
 PROJ_prefix     := @prefix@
 PROJ_bindir     := @prefix@/bin
 PROJ_libdir     := @prefix@/lib
@@ -72,7 +73,7 @@ endif
 ifndef LLVM_OBJ_ROOT
 $(error Projects must define LLVM_OBJ_ROOT)
 endif
-PROJ_SRC_DIR := $(subst //,/,$(PROJ_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)))
+PROJ_SRC_DIR := $(shell cd $(PROJ_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)); $(PWD))
 PROJ_prefix     := $(PROJ_INSTALL_ROOT)
 PROJ_bindir     := $(PROJ_INSTALL_ROOT)/bin
 PROJ_libdir     := $(PROJ_INSTALL_ROOT)/lib
@@ -97,12 +98,22 @@ OS=@OS@
 # Target hardware architecture
 ARCH=@ARCH@
 
+# Indicates, whether we're cross-compiling LLVM or not
+LLVM_CROSS_COMPILING=@LLVM_CROSS_COMPILING@
+
+# Executable file extension for build platform (mainly for
+# tablegen call if we're cross-compiling).
+BUILD_EXEEXT=@BUILD_EXEEXT@
+
 # Target triple (cpu-vendor-os) for which we should generate code
 TARGET_TRIPLE=@target@
 
 # Targets that we should build
 TARGETS_TO_BUILD=@TARGETS_TO_BUILD@
 
+# Extra options to compile LLVM with
+EXTRA_OPTIONS=@EXTRA_OPTIONS@
+
 # Endian-ness of the target
 ENDIAN=@ENDIAN@
 
@@ -119,6 +130,9 @@ LDFLAGS+=@LDFLAGS@
 # Path to the library archiver program.
 AR_PATH = @AR@
 
+# Path to the nm program
+NM_PATH = @NM@
+
 # The pathnames of the programs we require to build
 BISON      := @BISON@
 CMP        := @CMP@
@@ -160,7 +174,11 @@ LIBS       := @LIBS@
 LLVMGCCDIR := @LLVMGCCDIR@
 
 # Determine the target for which LLVM should generate code.
+ifeq (@LLVMGCC_MAJVERS@,3)
 LLVMGCCARCH := @target@/3.4-llvm
+else
+LLVMGCCARCH := @target@/@LLVMGCC_VERSION@
+endif
 
 # Full pathnames of LLVM C/C++ front-end 'cc1' and 'cc1plus' binaries:
 LLVMGCC  := @LLVMGCC@
@@ -211,11 +229,22 @@ ENABLE_THREADS := @ENABLE_THREADS@
 # Enable JIT for this platform
 TARGET_HAS_JIT = @TARGET_HAS_JIT@
 
-# Shared library extension for this platform.
+# Shared library extension for host platform.
 SHLIBEXT = @SHLIBEXT@
 
-# Executable file extension for this platform.
+# Executable file extension for host platform.
 EXEEXT = @EXEEXT@
 
 # Things we just assume are "there"
 ECHO := echo
+
+# Get the options for causing archives to link all their content instead of
+# just missing symbols, and the inverse of that. This is used for certain LLVM
+# tools that permit loadable modules. It ensures that the LLVM symbols will be
+# available to those loadable modules.
+LINKALL := @LINKALL@
+NOLINKALL := @NOLINKALL@
+
+# Get the value of HUGE_VAL_SANITY which will be either "yes" or "no" depending
+# on the check.
+HUGE_VAL_SANITY = @HUGE_VAL_SANITY@