]> git.eshelyaron.com Git - emacs.git/commitdiff
Try harder to find GNU Make when configuring.
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 5 Jun 2014 08:03:22 +0000 (01:03 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 5 Jun 2014 08:03:22 +0000 (01:03 -0700)
* configure.ac (AC_PROG_MAKE_SET): Define a dummy.
(MAKE): Set it to GNU Make, if one can be found.
Search PATH for 'make', 'gmake', 'gnumake'.
This works better on platforms like AIX, where GNU Make
might be in /opt/freeware/bin/make, and reside
behind /usr/bin/make in the PATH.

ChangeLog
configure.ac

index 721ab3193b4ba89d58f49434fdea9b2d70ab74e5..52266b07e5322619169f2be37c73d9266ad7bd40 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2014-06-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Try harder to find GNU Make when configuring.
+       * configure.ac (AC_PROG_MAKE_SET): Define a dummy.
+       (MAKE): Set it to GNU Make, if one can be found.
+       Search PATH for 'make', 'gmake', 'gnumake'.
+       This works better on platforms like AIX, where GNU Make
+       might be in /opt/freeware/bin/make, and reside
+       behind /usr/bin/make in the PATH.
+
 2014-06-05  Dmitry Antipov  <dmantipov@yandex.ru>
 
        * configure.ac (POLL_FOR_INPUT): Define with HAVE_WINDOW_SYSTEM.
index f5485942bd868a60fcfc84420707a9ef2ea66221..0beeedf47aef5f2287090ad9b99e3a4ffdd4ad87 100644 (file)
@@ -92,7 +92,7 @@ AC_CHECK_PROGS(XCRUN, [xcrun])
 if test -n "$XCRUN"; then
   if test -z "$MAKE"; then
     dnl Call the variable MAKE_PROG, not MAKE, to avoid confusion with
-    dnl SET_MAKE and with the usual MAKE variable that 'make' itself uses.
+    dnl the usual MAKE variable that 'make' itself uses.
     AC_CHECK_PROG([MAKE_PROG], [make], [yes])
     if test -z "$MAKE_PROG"; then
       MAKE="$XCRUN MAKE"
@@ -102,6 +102,47 @@ if test -n "$XCRUN"; then
   fi
 fi
 
+dnl GNU Make is required, so don't test for its individual features.
+am_cv_make_support_nested_variables=yes
+AC_DEFUN([AC_PROG_MAKE_SET],
+  [SET_MAKE=
+   AC_SUBST([SET_MAKE])])
+
+dnl Check for GNU Make and possibly set MAKE before running AM_INIT_AUTOMAKE.
+AC_CACHE_CHECK([for GNU Make], [ac_cv_path_MAKE],
+  [ac_path_MAKE_found=false
+   if test -n "$MAKE"; then
+     emacs_makeout=`($MAKE --version) 2>/dev/null` &&
+     case $emacs_makeout in
+       'GNU Make '*)
+        ac_path_MAKE_found=:;;
+     esac
+     ac_cv_path_MAKE=$MAKE
+   else
+     emacs_tried_make=false
+     emacs_tried_gmake=false
+     emacs_tried_gnumake=false
+     AC_PATH_PROGS_FEATURE_CHECK([MAKE], [make gmake gnumake],
+       [[emacs_makeout=`($ac_path_MAKE --version) 2>/dev/null` &&
+        case $emacs_makeout in
+          'GNU Make '*)
+             # Use the fully-qualified program name only if the basename
+             # would not resolve to it.
+             if eval \$emacs_tried_$ac_prog; then
+               ac_cv_path_MAKE=$ac_path_MAKE
+             else
+               ac_cv_path_MAKE=$ac_prog
+             fi
+             ac_path_MAKE_found=:;;
+        esac
+        eval emacs_tried_$ac_prog=:]])
+   fi])
+$ac_path_MAKE_found || { AC_MSG_ERROR([[Building Emacs requires GNU Make.
+If you have it installed under another name, configure with 'MAKE=...'.
+For example, run '$0 MAKE=gnu-make'.]])
+}
+MAKE=$ac_cv_path_MAKE
+
 dnl Fairly arbitrary, older versions might work too.
 AM_INIT_AUTOMAKE(1.11)
 
@@ -659,18 +700,6 @@ 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 another name, configure with 'MAKE=...'.
-For example, run './configure MAKE=gmake'.])
-fi
-
-
 #### Choose a compiler.
 
 dnl Don't bother to test for C89.
@@ -1531,7 +1560,6 @@ dnl Check for endianness.
 dnl AC_C_BIGENDIAN is done by gnulib.
 
 dnl check for Make feature
-dnl AC_PROG_MAKE_SET is done by Automake.
 
 DEPFLAGS=
 MKDEPDIR=":"
@@ -5090,3 +5118,5 @@ fi
 ])
 
 AC_OUTPUT
+
+test "$MAKE" = make || AC_MSG_NOTICE([Now you can run '$MAKE'.])