From: Steve Youngs Date: Mon, 24 Aug 2015 08:14:59 +0000 (+1000) Subject: Disable "in-tree" builds. X-Git-Tag: v22.1.16~17 X-Git-Url: http://cgit.sxemacs.org/?p=sxemacs;a=commitdiff_plain;h=6a469751f4562ba7d6104a4db3c05e705801151e Disable "in-tree" builds. * m4/sxe-srctree.m4 (SXE_CHECK_SRCDIR_HEALTH): Error if $blddir = $srcdir. * INSTALL: Add some blurb about in-tree builds no longer being supported. Minimum texinfo version is now 5.2. Signed-off-by: Steve Youngs --- diff --git a/INSTALL b/INSTALL index 0f3f5f3..6935456 100644 --- a/INSTALL +++ b/INSTALL @@ -1,5 +1,17 @@ SXEmacs Installation Guide -Copyright (C) 2005 - 2012 Steve Youngs +Copyright (C) 2005 - 2015 Steve Youngs + + +,----[ In-Tree Builds Lead To Madness ] +| Please note that because of the complexity of SXEmacs and its build +| chain, we do not support building from within the source tree itself. +| +| So please, ALWAYS run `configure' and `make' from a separate directory, +| completely outside of the source tree. +| +| In the code examples below, "${SRCTREE}" refers to the path where +| you wish to build SXEmacs. +`---- Building from tarball release: @@ -11,7 +23,7 @@ In a nutshell: See ./configure --help for a description of all possible options, then - $ ./configure [options] + $ ${SRCTREE}/configure [options] $ make $ make check $ make install @@ -37,7 +49,7 @@ Please note that SXEmacs _CANNOT_ be built with a C++ compiler. Also, some configuration options may need external libraries that are not shipped with SXEmacs. SXEmacs will determine which libraries it -needs at configuration time (when you run `./configure'). +needs at configuration time (when you run `${SRCTREE}/configure'). If configure can't find a particular library and you _do_ have it installed, you can usually get configure to find it by adding to the @@ -132,17 +144,17 @@ install them and incorporate them into SXEmacs. If the optional libraries are in a non-standard location, use --with-site-prefixes option of configure. Ex: - ./configure --with-site-prefixes=/opt/local + ${SRCTREE}/configure --with-site-prefixes=/opt/local You can specify a list of paths with --with-site-prefixes: - ./configure --with-site-prefixes=/opt/local:/sw + ${SRCTREE}/configure --with-site-prefixes=/opt/local:/sw NOTE: Usage of --prefix does NOT imply that it is added to site prefixes, so if you may need to add --with-site-prefixes even with --prefix: - ./configure --prefix=/opt/local --with-site-prefixes=/opt/local + ${SRCTREE}/configure --prefix=/opt/local --with-site-prefixes=/opt/local @@ -359,14 +371,16 @@ tell you in much greater detail what they need and how you can get the files and information you need. -Building from git source: ------------------------- +Building from git source: +------------------------ This is identical to building from the tarball sources, with the addition of an extra step, and some extra requirements (that are most -likely already on your system). +likely already on your system). Remember that "in-tree" builds are +not supported, so configure and make from a directory outside the +tree. $ ./autogen.sh - $ ./configure [options] + $ ${SRCTREE}/configure [options] $ make $ make check $ make install @@ -381,7 +395,7 @@ You need at least... automake 1.9.4 autoconf 2.60 - texinfo 4.8 + texinfo 5.2 (preferably 6.0) Warnings from autogen.sh: ------------------------ diff --git a/m4/sxe-srctree.m4 b/m4/sxe-srctree.m4 index 019eeed..d8befbd 100644 --- a/m4/sxe-srctree.m4 +++ b/m4/sxe-srctree.m4 @@ -51,6 +51,9 @@ AC_DEFUN([SXE_CHECK_SRCDIR_HEALTH], [dnl -f "$sxe_blddir/sxemacs_version.m4"; then AC_MSG_RESULT([yes]) srcdir_equals_blddir_p=yes + AC_MSG_ERROR([Building "in-tree" is not supported] + [Please create a new directory completely outside of the] + [source tree, and run $progbasename from there.]) else AC_MSG_RESULT([no. Good Boy!]) srcdir_equals_blddir_p=no