+###########################################################################
+# Library Locations:
+# These variables describe various library locations:
+#
+# DEST* = Location of where libraries that are built will be placed.
+# LLVM* = Location of LLVM libraries used for linking.
+# PROJ* = Location of previously built libraries used for linking.
+###########################################################################
+
+# Libraries that are being built
+DESTLIBDEBUG := $(BUILD_OBJ_ROOT)/lib/Debug
+DESTLIBRELEASE := $(BUILD_OBJ_ROOT)/lib/Release
+DESTLIBPROFILE := $(BUILD_OBJ_ROOT)/lib/Profile
+DESTLIBBYTECODE := $(BUILD_OBJ_ROOT)/lib/Bytecode
+DESTLIBCURRENT := $(BUILD_OBJ_ROOT)/lib/$(CONFIGURATION)
+
+# LLVM libraries used for linking
+LLVMLIBDEBUGSOURCE := $(LLVM_OBJ_ROOT)/lib/Debug
+LLVMLIBRELEASESOURCE := $(LLVM_OBJ_ROOT)/lib/Release
+LLVMLIBPROFILESOURCE := $(LLVM_OBJ_ROOT)/lib/Profile
+LLVMLIBCURRENTSOURCE := $(LLVM_OBJ_ROOT)/lib/$(CONFIGURATION)
+
+# Libraries that were built that will now be used for linking
+PROJLIBDEBUGSOURCE := $(BUILD_OBJ_ROOT)/lib/Debug
+PROJLIBRELEASESOURCE := $(BUILD_OBJ_ROOT)/lib/Release
+PROJLIBPROFILESOURCE := $(BUILD_OBJ_ROOT)/lib/Profile
+PROJLIBCURRENTSOURCE := $(BUILD_OBJ_ROOT)/lib/$(CONFIGURATION)
+
+###########################################################################
+# Tool Locations
+# These variables describe various tool locations:
+#
+# DEST* = Location of where tools that are built will be placed.
+# LLVM* = Location of LLVM tools used for building.
+# PROJ* = Location of previously built tools used for linking.
+###########################################################################
+
+DESTTOOLDEBUG := $(BUILD_OBJ_ROOT)/tools/Debug
+DESTTOOLRELEASE := $(BUILD_OBJ_ROOT)/tools/Release
+DESTTOOLPROFILE := $(BUILD_OBJ_ROOT)/tools/Profile
+DESTTOOLCURRENT := $(BUILD_OBJ_ROOT)/tools/$(CONFIGURATION)
+
+LLVMTOOLDEBUG := $(LLVM_OBJ_ROOT)/tools/Debug
+LLVMTOOLRELEASE := $(LLVM_OBJ_ROOT)/tools/Release
+LLVMTOOLPROFILE := $(LLVM_OBJ_ROOT)/tools/Profile
+LLVMTOOLCURRENT := $(LLVM_OBJ_ROOT)/tools/$(CONFIGURATION)
+
+PROJTOOLDEBUG := $(BUILD_OBJ_ROOT)/tools/Debug
+PROJTOOLRELEASE := $(BUILD_OBJ_ROOT)/tools/Release
+PROJTOOLPROFILE := $(BUILD_OBJ_ROOT)/tools/Profile
+PROJTOOLCURRENT := $(BUILD_OBJ_ROOT)/tools/$(CONFIGURATION)
+
+#
+# Libtool is found in the current directory.
+#
+LIBTOOL := $(LLVM_SRC_ROOT)/mklib
+
+#
+# If we're not building a shared library, use the disable-shared tag with
+# libtool. This will disable the building of objects for shared libraries and
+# only generate static library objects.
+#
+# For dynamic libraries, we'll take the performance hit for now, since we
+# almost never build them.
+#
+# This should speed up compilation and require no modifications to future
+# versions of libtool.
+#
+ifndef SHARED_LIBRARY
+LIBTOOL += --tag=disable-shared
+endif