summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2014-03-27 15:41:57 -0400
committerGlenn Morris <rgm@gnu.org>2014-03-27 15:41:57 -0400
commitf6dce6c1d61bd1fd946f453c6fec30fa89e0181e (patch)
tree36fbc6945e87ef614475902c18358910e68f54ca
parent6730259fea22fcd4b7d28f3b57fef2d5776a2dad (diff)
downloademacs-f6dce6c1d61bd1fd946f453c6fec30fa89e0181e.tar.gz
Require GNU make to build Emacs
Ref: http://debbugs.gnu.org/16717#45 If no-one objects, we can then start getting rid of some of the convoluted Makefile hacks that exist to support non-GNU makes. * configure.ac: Require GNU make. (HAVE_GNU_MAKE): Remove. * INSTALL, etc/NEWS, etc/PROBLEMS: Update for this change. * Makefile.in: Comment.
-rw-r--r--ChangeLog5
-rw-r--r--INSTALL12
-rw-r--r--Makefile.in4
-rw-r--r--configure.ac44
-rw-r--r--etc/NEWS3
-rw-r--r--etc/PROBLEMS21
6 files changed, 37 insertions, 52 deletions
diff --git a/ChangeLog b/ChangeLog
index d019c1e4893..b19428baa99 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-03-27 Glenn Morris <rgm@gnu.org>
+
+ * configure.ac: Require GNU make.
+ (HAVE_GNU_MAKE): Remove.
+
2014-03-26 Paul Eggert <eggert@cs.ucla.edu>
Merge from gnulib, incorporating:
diff --git a/INSTALL b/INSTALL
index e35d036809d..496c6c8c376 100644
--- a/INSTALL
+++ b/INSTALL
@@ -24,6 +24,9 @@ find some things, or what options to use.
`src/config.h' file containing system-dependent definitions.
Running the `make' utility then builds the package for your system.
+Building Emacs requires GNU make, <http://www.gnu.org/software/make/>.
+On most systems that Emacs supports, this is the default `make' program.
+
Here's the procedure to build Emacs using `configure' on systems which
are supported by it. In some cases, if the simplified procedure fails,
you might need to use various non-default options, and maybe perform
@@ -49,7 +52,6 @@ sections if you need to.
SOURCE-DIR/configure
where SOURCE-DIR is the top-level Emacs source directory.
- This may not work unless you use GNU make.
3. When `configure' finishes, it prints several lines of details
about the system configuration. Read those details carefully
@@ -435,12 +437,8 @@ SOURCE-DIR refers to the top-level Emacs source directory which is
where Emacs's configure script is located. `configure' looks for the
Emacs source code in the directory that `configure' is in.
-To build in a separate directory, you must use a version of `make'
-that supports the `VPATH' variable, such as GNU `make'.
-
-(Do not try to build in a separate directory by creating many links
-to the real source directory--there is no need, and installation will
-fail.)
+(Do not try to build in a separate directory by creating many links to
+the real source directory--there is no need, and installation will fail.)
4) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs
Lisp code you want Emacs to load before it is dumped out. Use
diff --git a/Makefile.in b/Makefile.in
index be68df1fd6d..b2887472dd4 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -60,8 +60,8 @@
SHELL = @SHELL@
-# This may not work with certain non-GNU make's. It only matters when
-# inheriting a CDPATH not starting with the current directory.
+# This only matters when inheriting a CDPATH not starting with the
+# current directory.
CDPATH=
# If Make doesn't predefine MAKE, set it here.
diff --git a/configure.ac b/configure.ac
index a4a6125051c..73b385f28ca 100644
--- a/configure.ac
+++ b/configure.ac
@@ -441,8 +441,7 @@ AC_SUBST(PROFILING_CFLAGS)
AC_ARG_ENABLE(autodepend,
[AS_HELP_STRING([--enable-autodepend],
[automatically generate dependencies to .h-files.
- Requires GNU Make and Gcc. Enabled if GNU Make and Gcc is
- found])],
+ Requires gcc, enabled if found.])],
[ac_enable_autodepend="${enableval}"],[ac_enable_autodepend=yes])
AC_ARG_ENABLE(gtk-deprecation-warnings,
@@ -659,6 +658,18 @@ Check `etc/MACHINES' for recognized configuration names.])
fi
+AC_MSG_CHECKING([whether we are using GNU Make])
+testval=`${MAKE-make} --version 2>/dev/null | grep 'GNU Make'`
+if test "x$testval" != x; then
+ AC_MSG_RESULT([yes])
+else
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([Building Emacs requires GNU make.
+If you have it installed under a name other than 'make',
+set the MAKE environment variable, and try again.])
+fi
+
+
#### Choose a compiler.
dnl Sets GCC=yes if using gcc.
@@ -1526,27 +1537,16 @@ dnl AC_PROG_MAKE_SET is done by Automake.
DEPFLAGS=
MKDEPDIR=":"
deps_frag=deps.mk
-dnl check for GNU Make if we have GCC and autodepend is on.
+dnl check if we have GCC and autodepend is on.
if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
- AC_MSG_CHECKING([whether we are using GNU Make])
- HAVE_GNU_MAKE=no
- testval=`${MAKE-make} --version 2>/dev/null | grep 'GNU Make'`
- if test "x$testval" != x; then
- HAVE_GNU_MAKE=yes
- else
- ac_enable_autodepend=no
- fi
- AC_MSG_RESULT([$HAVE_GNU_MAKE])
- if test $HAVE_GNU_MAKE = yes; then
- AC_MSG_CHECKING([whether gcc understands -MMD -MF])
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -MMD -MF deps.d -MP"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], , ac_enable_autodepend=no)
- CFLAGS="$SAVE_CFLAGS"
- test -f deps.d || ac_enable_autodepend=no
- rm -rf deps.d
- AC_MSG_RESULT([$ac_enable_autodepend])
- fi
+ AC_MSG_CHECKING([whether gcc understands -MMD -MF])
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -MMD -MF deps.d -MP"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], , ac_enable_autodepend=no)
+ CFLAGS="$SAVE_CFLAGS"
+ test -f deps.d || ac_enable_autodepend=no
+ rm -rf deps.d
+ AC_MSG_RESULT([$ac_enable_autodepend])
if test $ac_enable_autodepend = yes; then
DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d -MP'
## MKDIR_P is documented (see AC_PROG_MKDIR_P) to be parallel-safe.
diff --git a/etc/NEWS b/etc/NEWS
index 7019619ee9b..2ddcf845b78 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -24,6 +24,9 @@ otherwise leave it unmarked.
* Installation Changes in Emacs 24.5
++++
+** Building Emacs now requires GNU make.
+
* Startup Changes in Emacs 24.5
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index 6978d79c636..58c2ceaf68c 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -2544,27 +2544,6 @@ occurring with older versions of GCC (e.g. 3.3.5).
This is due to a bug in the bcopy implementation in openSUSE 10.3.
It is/will be fixed in an openSUSE update.
-** Installation
-
-*** On Solaris, use GNU Make when installing an out-of-tree build
-
-The Emacs configuration process allows you to configure the
-build environment so that you can build emacs in a directory
-outside of the distribution tree. When installing Emacs from an
-out-of-tree build directory on Solaris, you may need to use GNU
-make. The make programs bundled with Solaris support the VPATH
-macro but use it differently from the way the VPATH macro is
-used by GNU make. The differences will cause the "make install"
-step to fail, leaving you with an incomplete emacs
-installation. GNU make is available in /usr/sfw/bin on Solaris
-10 and can be installed as /opt/sfw/bin/gmake from the Solaris 9
-Software Companion CDROM.
-
-The problems due to the VPATH processing differences affect only
-out of tree builds so, if you are on a Solaris installation
-without GNU make, you can install Emacs completely by installing
-from a build environment using the original emacs distribution tree.
-
** First execution
*** Emacs binary is not in executable format, and cannot be run.