]> code.delx.au - gnu-emacs/commitdiff
Require GNU make to build Emacs
authorGlenn Morris <rgm@gnu.org>
Thu, 27 Mar 2014 19:41:57 +0000 (15:41 -0400)
committerGlenn Morris <rgm@gnu.org>
Thu, 27 Mar 2014 19:41:57 +0000 (15:41 -0400)
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.

ChangeLog
INSTALL
Makefile.in
configure.ac
etc/NEWS
etc/PROBLEMS

index d019c1e48938d7e01e7ccafbd2134b58f1b893e8..b19428baa99fb97970edd9a8659fcc87da4ce313 100644 (file)
--- 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 e35d036809d48cf042f043303dba655d9c024b53..496c6c8c376a0b20fdc19931e9b5c26e8209d0a4 100644 (file)
--- 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
index be68df1fd6d67983143740c6272e30a78a326a85..b2887472dd44b55bc4874b614f0abb095a7e49dc 100644 (file)
@@ -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.
index a4a6125051c0c051c65f14493b7fd958a6fc0cde..73b385f28ca57c25e2b529ba59eaeecca23550c6 100644 (file)
@@ -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.
index 7019619ee9bc5558ba7182f5f7cb70d210d5afac..2ddcf845b786f103de4220073554ff7355bb9e35 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -24,6 +24,9 @@ otherwise leave it unmarked.
 \f
 * Installation Changes in Emacs 24.5
 
++++
+** Building Emacs now requires GNU make.
+
 \f
 * Startup Changes in Emacs 24.5
 
index 6978d79c636bfa6c3c4217c0eb6d9c4859e75538..58c2ceaf68c9dffdfedbd0ca6b27c085a85e7931 100644 (file)
@@ -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.