diff options
author | Paul Eggert <[email protected]> | 2014-06-05 01:03:22 -0700 |
---|---|---|
committer | Paul Eggert <[email protected]> | 2014-06-05 01:03:22 -0700 |
commit | 4545be9dcbf7f10bce68db3cfba22f9cb1862dfc (patch) | |
tree | 8daa1ba95638c9cd01880f7d070ab7ef3f0baeaf /configure.ac | |
parent | ea633fff4c8e2e4a2b7f6117ba0a9d5a2685aecd (diff) |
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.
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 58 |
1 files changed, 44 insertions, 14 deletions
diff --git a/configure.ac b/configure.ac index f5485942bd..0beeedf47a 100644 --- a/configure.ac +++ b/configure.ac @@ -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'.]) |