summaryrefslogtreecommitdiff
path: root/Makefile.config.in
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile.config.in')
-rw-r--r--Makefile.config.in66
1 files changed, 65 insertions, 1 deletions
diff --git a/Makefile.config.in b/Makefile.config.in
index de4732d931..fcb1746e75 100644
--- a/Makefile.config.in
+++ b/Makefile.config.in
@@ -64,6 +64,7 @@ FLEX = @LEX@
#
# Paths to miscellaneous programs.
#
+RPWD = @RPWD@
SED = @SED@
RM = @RM@
ECHO = @ECHO@
@@ -84,7 +85,7 @@ LLVMGCCARCH := @target@/3.4-llvm
# object files.
#
#OBJ_ROOT = .
-OBJ_ROOT := @OBJROOT@
+OBJ_ROOT := .
# Path to location for LLVM front-end this should only be specified here if you
# want to override the value set in Makefile.$(uname)
@@ -169,3 +170,66 @@ PAPIDIR := @PAPIDIR@
#
@DISABLE_LLC_DIFFS@
+###########################################################################
+# Directory Configuration
+# This section of the Makefile determines what is where. To be
+# specific, there are several locations that need to be defined:
+#
+# o LLVM_SRC_ROOT : The root directory of the LLVM source code.
+# o LLVM_OBJ_ROOT : The root directory containing the built LLVM code.
+#
+# o BUILD_SRC_DIR : The directory containing the code to build.
+# o BUILD_SRC_ROOT : The root directory of the code to build.
+#
+# o BUILD_OBJ_DIR : The directory in which compiled code will be placed.
+# o BUILD_OBJ_ROOT : The root directory in which compiled code is placed.
+#
+###########################################################################
+
+#
+# Set the object build directory. By default, it is the current directory.
+#
+ifndef BUILD_OBJ_DIR
+BUILD_OBJ_DIR := $(subst //,/,$(shell $(RPWD)))
+endif
+
+#
+# Set the root of the object directory.
+#
+ifndef BUILD_OBJ_ROOT
+BUILD_OBJ_ROOT := $(subst //,/,$(shell cd $(BUILD_OBJ_DIR)/$(LEVEL); $(RPWD)))
+endif
+
+#
+# Set the source build directory. That is almost always the current directory.
+#
+ifndef BUILD_SRC_DIR
+BUILD_SRC_DIR := $(subst //,/,@abs_top_srcdir@/$(patsubst $(BUILD_OBJ_ROOT)%,%,$(BUILD_OBJ_DIR)))
+endif
+
+#
+# Set the source root directory.
+#
+ifndef BUILD_SRC_ROOT
+BUILD_SRC_ROOT := $(subst //,/,@abs_top_srcdir@)
+endif
+
+#
+# Set the LLVM object directory.
+#
+ifndef LLVM_OBJ_ROOT
+ifdef LLVM_SRC_ROOT
+LLVM_OBJ_ROOT := $(shell cd $(LLVM_SRC_ROOT); $(RPWD))
+else
+LLVM_OBJ_ROOT := $(BUILD_OBJ_ROOT)
+endif
+endif
+
+#
+# Set the LLVM source directory.
+# It is typically the root directory of what we're compiling now.
+#
+ifndef LLVM_SRC_ROOT
+LLVM_SRC_ROOT := $(BUILD_SRC_ROOT)
+endif
+