aboutsummaryrefslogtreecommitdiff
path: root/Makefile.config.in
diff options
context:
space:
mode:
authorJohn Criswell <criswell@uiuc.edu>2003-09-06 14:44:17 +0000
committerJohn Criswell <criswell@uiuc.edu>2003-09-06 14:44:17 +0000
commit7f33695eac684bac5e925cf2039c8f9b001ceb7f (patch)
tree09f85e01d09415fd81a6757cae2a924eba0c7493 /Makefile.config.in
parent103f0c3472da9a0608d5e030a9b98cfd0b008dc3 (diff)
Checkin of autoconf-style object root.
Moved Makefile.common to Makefile.rules. This makes project Makefiles easier to support, and allows for easier overriding of default configuration values that used to be in Makefile.common. Modified Makefile.config.in to determine paths for directories (like LLVM_SRC_ROOT) and to use the pwd binary as opposed to the shell builtin (this works better for symbolic links). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8377 91177308-0d34-0410-b5e6-96231b3b80d8
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
+