From 949d55d87ac6675023893b3ca5aa95a6cd277920 Mon Sep 17 00:00:00 2001 From: Jonathan Roelofs Date: Mon, 4 May 2015 02:04:54 +0000 Subject: [PATCH] Deprecate in-source autotools builds This is a followup from: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20150323/268067.html Upgrade instructions: $ mv llvm/include/llvm/Config/config.h ./config.h.BACKUP # copy the configure line from line 7 of llvm/config.log # (for example: `$ ./configure --no-create --no-recursion`) $ mkdir build $ cd build # run the configure line, but this time with '../llvm' at the beginning: $ ../llvm/configure --no-create --no-recursion These warnings will soon be turned into hard errors after a week. Speak up now if this is going to be a problem for you. llvm-svn: 236399 --- llvm/Makefile.config.in | 16 ++++++++++++++++ llvm/autoconf/configure.ac | 13 +++++++++++++ llvm/configure | 21 +++++++++++++++++++++ 3 files changed, 50 insertions(+) diff --git a/llvm/Makefile.config.in b/llvm/Makefile.config.in index a4d6410..7af5d3c 100644 --- a/llvm/Makefile.config.in +++ b/llvm/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/llvm/autoconf/configure.ac b/llvm/autoconf/configure.ac index 39ce9f3..586f3f2 100644 --- a/llvm/autoconf/configure.ac +++ b/llvm/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/llvm/configure b/llvm/configure index f516176..37f3d7d 100755 --- a/llvm/configure +++ b/llvm/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=} -- 2.7.4