diff --git a/Makefile.config.in b/Makefile.config.in index a4d641040f336..7af5d3c90200f 100644 --- a/Makefile.config.in +++ b/Makefile.config.in @@ -58,6 +58,22 @@ LLVM_OBJ_ROOT := $(call realpath, @abs_top_builddir@) PROJ_SRC_ROOT := $(LLVM_SRC_ROOT) PROJ_SRC_DIR := $(LLVM_SRC_ROOT)$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)) +# FIXME: This is temporary during the grace period where in-source builds are +# deprecated. Convert to a hard error when that period is up. +# +# See: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20150323/268067.html +ifeq ($(LLVM_SRC_ROOT), $(LLVM_OBJ_ROOT)) + $(warning ######################################################################################) + $(warning # #) + $(warning # WARNING #) + $(warning # #) + $(warning # In-source builds are deprecated. #) + $(warning # #) + $(warning # Please configure from a separate build directory! #) + $(warning # #) + $(warning ######################################################################################) +endif + ifneq ($(CLANG_SRC_ROOT),) CLANG_SRC_ROOT:= $(call realpath, $(CLANG_SRC_ROOT)) PROJ_SRC_DIR := $(patsubst $(LLVM_SRC_ROOT)/tools/clang%,$(CLANG_SRC_ROOT)%,$(PROJ_SRC_DIR)) diff --git a/autoconf/configure.ac b/autoconf/configure.ac index 39ce9f353ee30..586f3f26cb313 100644 --- a/autoconf/configure.ac +++ b/autoconf/configure.ac @@ -73,6 +73,19 @@ if test ${srcdir} != "." ; then fi fi +dnl Quit if it is an in-source build +if test ${srcdir} == "." ; then + AC_MSG_WARN([**************************************************************************************]) + AC_MSG_WARN([* *]) + AC_MSG_WARN([* WARNING *]) + AC_MSG_WARN([* *]) + AC_MSG_WARN([* In-source builds are deprecated. *]) + AC_MSG_WARN([* *]) + AC_MSG_WARN([* Please configure from a separate build directory! *]) + AC_MSG_WARN([* *]) + AC_MSG_WARN([**************************************************************************************]) +fi + dnl Default to empty (i.e. assigning the null string to) CFLAGS and CXXFLAGS, dnl instead of the autoconf default (for example, '-g -O2' for CC=gcc). : ${CFLAGS=} diff --git a/configure b/configure index f51617639b3f9..37f3d7d95ae66 100755 --- a/configure +++ b/configure @@ -2030,6 +2030,27 @@ echo "$as_me: error: Already configured in ${srcdir}" >&2;} fi fi +if test ${srcdir} == "." ; then + { echo "$as_me:$LINENO: WARNING: **************************************************************************************" >&5 +echo "$as_me: WARNING: **************************************************************************************" >&2;} + { echo "$as_me:$LINENO: WARNING: * *" >&5 +echo "$as_me: WARNING: * *" >&2;} + { echo "$as_me:$LINENO: WARNING: * WARNING *" >&5 +echo "$as_me: WARNING: * WARNING *" >&2;} + { echo "$as_me:$LINENO: WARNING: * *" >&5 +echo "$as_me: WARNING: * *" >&2;} + { echo "$as_me:$LINENO: WARNING: * In-source builds are deprecated. *" >&5 +echo "$as_me: WARNING: * In-source builds are deprecated. *" >&2;} + { echo "$as_me:$LINENO: WARNING: * *" >&5 +echo "$as_me: WARNING: * *" >&2;} + { echo "$as_me:$LINENO: WARNING: * Please configure from a separate build directory! *" >&5 +echo "$as_me: WARNING: * Please configure from a separate build directory! *" >&2;} + { echo "$as_me:$LINENO: WARNING: * *" >&5 +echo "$as_me: WARNING: * *" >&2;} + { echo "$as_me:$LINENO: WARNING: **************************************************************************************" >&5 +echo "$as_me: WARNING: **************************************************************************************" >&2;} +fi + : ${CFLAGS=} : ${CXXFLAGS=}