# AT_CHECK([[grep '[iI]nterrupt[ ]' stderr]], [1])
# Ditto with `make' in the loop.
- : "${MAKE=make}"
- unset MAKEFLAGS
- # Need to eliminate outer TESTSUITEFLAGS here.
- # Need to normalize exit status here: some make implementations
- # exit 1 (BSD make), some exit 2 (GNU make).
- AT_CHECK([$MAKE check TESTSUITEFLAGS=; ]dnl
- [case $? in 1|2) exit 1;; *) exit $?;; esac],
- [1], [ignore], [stderr])
+ # Explicitly setting TESTSUITEFLAGS to empty...
+ AT_CHECK_MAKE([TESTSUITEFLAGS=], [], [1], [ignore], [stderr])
AT_CHECK([grep 'bailing out' stderr], [], [ignore])
AT_CHECK([grep 'bailing out' micro-suite.log], [], [ignore])
- # Ditto, parallel case.
- AT_CHECK([$MAKE check TESTSUITEFLAGS=--jobs=3; ]dnl
- [case $? in 1|2) exit 1;; *) exit $?;; esac],
- [1], [ignore], [stderr])
+
+ # ... and explicitly requesting 3-fold parallelism.
+ AT_CHECK_MAKE([TESTSUITEFLAGS=--jobs=3], [], [1], [ignore], [stderr])
AT_CHECK([grep 'bailing out' stderr], [], [ignore])
AT_CHECK([grep 'bailing out' micro-suite.log], [], [ignore])
done
AT_CHECK_AUTOCONF
AT_CHECK_CONFIGURE
AT_CHECK([grep '^EXEEXT='\''.*'\' t/atconfig], [], [ignore])
-AT_CHECK([${MAKE-make}], [], [ignore])
+AT_CHECK_MAKE
AT_CHECK([cd t && $CONFIG_SHELL ./suite], [], [ignore])
AT_CHECK([grep 1.*successful t/suite.log], [], [ignore])
AT_CLEANUP
AT_CHECK_AUTOCONF
AT_CHECK_CONFIGURE
AT_CHECK([grep '^EXEEXT='\''.*'\' t/atconfig], [], [ignore])
-AT_CHECK([${MAKE-make}], [], [ignore])
+AT_CHECK_MAKE
AT_CHECK([cd t && $CONFIG_SHELL ./suite], [], [ignore])
AT_CHECK([grep 1.*successful t/suite.log], [], [ignore])
AT_CLEANUP
class foo foobar;
]])
-AT_CHECK([autoconf])
-AT_CHECK([autoheader])
-AT_CHECK([./configure $configure_options], [], [ignore], [ignore])
-AT_CHECK([${MAKE-make} cpp-works || exit 77], [], [ignore], [ignore])
-AT_CHECK([${MAKE-make}], [], [ignore], [ignore])
+AT_CHECK_AUTOCONF
+AT_CHECK_AUTOHEADER([], [restrict])
+AT_CHECK_CONFIGURE
+AT_CHECK_MAKE([cpp-works || exit 77])
+AT_CHECK_MAKE
AT_CLEANUP
}
]])
-: "${MAKE=make}"
-AT_CHECK([env ACLOCAL=true autoreconf -vi], [], [ignore], [ignore])
-AT_CHECK([./configure $configure_options], [], [ignore], [ignore])
-AT_CHECK([$MAKE], [], [ignore], [ignore])
+AT_CHECK_AUTOCONF
+AT_CHECK_CONFIGURE
+AT_CHECK_MAKE
AT_CLEANUP
}
]])
-: "${MAKE=make}"
-AT_CHECK([env ACLOCAL=true autoreconf -vi], [], [ignore], [ignore])
-AT_CHECK([./configure $configure_options], [], [ignore], [ignore])
-AT_CHECK([$MAKE], [], [ignore], [ignore])
+AT_CHECK_AUTOCONF
+AT_CHECK_CONFIGURE
+AT_CHECK_MAKE
AT_CLEANUP
: >file1
: >file2
chmod +x file1
-: "${MAKE=make}"
mkdir build-aux inst
instdir=`pwd`/inst
AT_CHECK_AUTOCONF
cp "$abs_top_srcdir/build-aux/install-sh" build-aux
AT_CHECK_CONFIGURE
-AT_CHECK([$MAKE copy-shtool], [], [ignore], [ignore],
- [AT_CHECK([: >build-aux/shtool])])
+AT_SKIP_IF([grep 'SHTOOL = false' Makefile > /dev/null 2>&1])
+
+AT_CHECK_MAKE([copy-shtool])
+AT_CHECK([test -s build-aux/shtool])
+
+# AC_PROG_INSTALL should pick up shtool from build-aux, even though
+# we're forcing AC_PATH_PROG not to find it on the host system.
rm -f build-aux/install-sh
AT_CHECK_CONFIGURE([--prefix="$instdir" ac_cv_path_SHTOOL=false])
AT_CHECK([grep '^ac_install_sh = .*shtool install -c' Makefile], [], [ignore])
-if test -s build-aux/shtool; then
- AT_CHECK([$MAKE install], [], [ignore], [ignore])
- AT_CHECK([test -f inst/file1 && test -f inst/file2 && test -x inst/file1])
-fi
+AT_CHECK_MAKE([install])
+AT_CHECK([test -f inst/file1 && test -f inst/file2 && test -x inst/file1])
AT_CLEANUP
end
]])
-: "${MAKE=make}"
AT_CHECK([env ACLOCAL=true autoreconf -vi], [], [ignore], [ignore])
AT_CHECK_CONFIGURE
-AT_CHECK([$MAKE], [], [ignore], [ignore])
+AT_CHECK_MAKE
AT_CLEANUP
end
]])
-: "${MAKE=make}"
AT_CHECK([env ACLOCAL=true autoreconf -vi], [], [ignore], [ignore])
AT_CHECK_CONFIGURE
-AT_CHECK([$MAKE], [], [ignore], [ignore])
+AT_CHECK_MAKE
AT_CLEANUP
FC_DUMMY_MAIN_EQ_F77
])
AT_CHECK_CONFIGURE
-: "${MAKE=make}"
-AT_CHECK([$MAKE], [], [ignore], [ignore])
-dnl AT_CHECK([./cprogram])
+AT_CHECK_MAKE
+AT_CHECK([./cprogram])
AT_CLEANUP
FC_FUNC_
])
AT_CHECK_CONFIGURE
-: "${MAKE=make}"
-AT_CHECK([$MAKE], [], [ignore], [ignore])
-dnl AT_CHECK([./cprogram])
+AT_CHECK_MAKE
+AT_CHECK([./cprogram])
AT_CLEANUP
FC_DUMMY_MAIN_EQ_F77
])
AT_CHECK_CONFIGURE
-: "${MAKE=make}"
-AT_CHECK([$MAKE], [], [ignore], [ignore])
-dnl AT_CHECK([./cprogram], [], [output from C main
-dnl some output from Fortran sources
-dnl more output from C main
-dnl ])
+AT_CHECK_MAKE
+AT_CHECK([./cprogram], [], [output from C main
+ some output from Fortran sources
+more output from C main
+])
AT_CLEANUP
FC_MAIN
])
AT_CHECK_CONFIGURE
-: "${MAKE=make}"
-AT_CHECK([$MAKE], [], [ignore], [ignore])
-dnl AT_CHECK([./cprogram], [], [output from C main
-dnl some output from Fortran sources
-dnl more output from C main
-dnl ])
+AT_CHECK_MAKE
+AT_CHECK([./cprogram], [], [output from C main
+ some output from Fortran sources
+more output from C main
+])
AT_CLEANUP
FC_DUMMY_MAIN_EQ_F77
])
AT_CHECK_CONFIGURE
-: "${MAKE=make}"
-AT_CHECK([$MAKE], [], [ignore], [ignore])
-dnl AT_CHECK([./cprogram])
+AT_CHECK_MAKE
+AT_CHECK([./cprogram])
AT_CLEANUP
FC_DUMMY_MAIN_EQ_F77
])
AT_CHECK_CONFIGURE
-: "${MAKE=make}"
-AT_CHECK([$MAKE], [], [ignore], [ignore])
-dnl AT_CHECK([./cprogram])
+AT_CHECK_MAKE
+AT_CHECK([./cprogram])
+
AT_CLEANUP
AT_CHECK_AUTOCONF
AT_CHECK_CONFIGURE
-: "${MAKE=make}"
-AT_CHECK([$MAKE], [], [ignore], [ignore])
+AT_CHECK_MAKE
AT_CLEANUP
AT_CHECK_AUTOCONF
AT_CHECK_CONFIGURE
-: "${MAKE=make}"
-AT_CHECK([$MAKE], [], [ignore], [ignore])
+AT_CHECK_MAKE
+AT_CHECK([./prog])
AT_CLEANUP
AT_CHECK_AUTOCONF
AT_CHECK_CONFIGURE
-: "${MAKE=make}"
-AT_CHECK([$MAKE], [], [ignore], [ignore])
-dnl AT_CHECK([./prog])
+AT_CHECK_MAKE
+AT_CHECK([./prog])
AT_CLEANUP
AT_CHECK_AUTOCONF
AT_CHECK_CONFIGURE
-: "${MAKE=make}"
-AT_CHECK([$MAKE], [], [ignore], [ignore])
-dnl AT_CHECK([./prog])
+AT_CHECK_MAKE
+AT_CHECK([./prog])
AT_CLEANUP
AT_CHECK_AUTOCONF
AT_CHECK_CONFIGURE
-: "${MAKE=make}"
-AT_CHECK([$MAKE], [], [ignore], [ignore])
-dnl AT_CHECK([./prog])
+AT_CHECK_MAKE
+AT_CHECK([./prog])
AT_CLEANUP
AT_CHECK_AUTOCONF
AT_CHECK_CONFIGURE
-: "${MAKE=make}"
-AT_CHECK([$MAKE], [], [ignore], [ignore])
-dnl AT_CHECK([./prog])
+AT_CHECK_MAKE
+AT_CHECK([./prog])
AT_CLEANUP
AT_CHECK_AUTOCONF
AT_CHECK_CONFIGURE
- : "${MAKE=make}"
- AT_CHECK([$MAKE], [], [ignore], [ignore])
- dnl AT_CHECK([./prog])
- AT_CHECK([$MAKE clean], [], [ignore], [ignore])
+ AT_CHECK_MAKE
+ AT_CHECK([./prog])
+ AT_CHECK_MAKE([clean])
done
done
AT_CHECK_AUTOCONF
AT_CHECK_CONFIGURE
-: "${MAKE=make}"
-AT_CHECK([$MAKE], [], [ignore], [ignore])
+AT_CHECK_MAKE
AT_CHECK([./prog || exit 1], [1], [ignore], [ignore])
-AT_CHECK([$MAKE clean], [], [ignore], [ignore])
+AT_CHECK_MAKE([clean])
AT_CLEANUP
AT_CHECK_AUTOCONF
AT_CHECK_CONFIGURE
-: "${MAKE=make}"
-AT_CHECK([$MAKE], [], [stdout], [stderr])
+AT_CHECK_MAKE([], [], [], [stdout], [stderr])
# Both the FCFLAGS setting from configure.ac, and the Makefile rule
# should add to the module search path.
AT_CHECK([grep 'sub .*sub ' stdout stderr], [], [ignore])
AT_CHECK([./prog], [], [ignore], [ignore])
-AT_CHECK([$MAKE clean], [], [ignore], [ignore])
+AT_CHECK_MAKE([clean])
AT_CLEANUP
])
+# AT_CHECK_MAKE(MAKEARGS, DIRECTORY, EXIT-STATUS,
+# [STDOUT = IGNORE], [STDERR = IGNORE])
+# ---------------------------------------------------------------
+# Run make in DIRECTORY (default `.'), passing MAKEARGS on the command
+# line. EXIT-STATUS, STDOUT, and STDERR are as for AT_CHECK.
+# The environment variable MAKE is honored if present.
+# The environment variable MAKEFLAGS is *cleared*.
+# If EXIT-STATUS is 1, an exit status of either 1 or 2 is considered
+# an acceptable result, because there are situations where BSD make will
+# exit with status 1 but GNU make will instead exit with status 2.
+m4_define([AT_CHECK_MAKE],
+[: "${MAKE=make}"
+export MAKE
+unset MAKEFLAGS
+AT_CHECK(
+ m4_if(m4_default([$2], [.]), [.], [],
+ [cd "$2" && ])[$][MAKE]m4_ifnblank([$1],[ $1])[]m4_if([$3], [1], [[
+dnl pacify editors that don't understand sh case: ((
+ case $? in 1|2) exit 1;; *) exit $?;; esac]]),
+ [$3],
+ m4_default([$4], [ignore]),
+ m4_default([$5], [ignore]))
+])
+
+
# _AT_CHECK_AC_MACRO(AC-BODY, PRE-TESTS)
# --------------------------------------
# Create a minimalist configure.ac running the macro named
AT_CHECK_AUTOCONF
-: "${MAKE=make}"
-
# In place.
AT_CHECK([./configure $configure_options], [], [ignore])
# Treat BSD make separately, afterwards, for maximal coverage.
dirs='at paren brace'
for dir in $dirs; do
- AT_CHECK([cd $dir && $MAKE], [], [ignore], [ignore])
+ AT_CHECK_MAKE([], [$dir])
done
rm -f config.status
# Relative name.
AT_CHECK([cd build && ../configure $configure_options], [], [ignore])
for dir in $dirs; do
- AT_CHECK([cd build/$dir && $MAKE], [], [ignore], [ignore])
+ AT_CHECK_MAKE([], [build/$dir])
done
# Absolute name.
at_here=`pwd`
AT_CHECK([cd absbuild && "$at_here/configure" $configure_options], [], [ignore])
for dir in $dirs; do
- AT_CHECK([cd absbuild/$dir && $MAKE], [], [ignore], [ignore])
+ AT_CHECK_MAKE([], [absbuild/$dir])
done
# These will not pass with BSD make.
-AT_CHECK([cd space && { $MAKE || exit 77; }], [], [ignore], [ignore])
-AT_CHECK([cd build/space && $MAKE], [], [ignore], [ignore])
-AT_CHECK([cd absbuild/space && $MAKE], [], [ignore], [ignore])
+AT_CHECK_MAKE([|| exit 77], [space])
+AT_CHECK_MAKE([], [build/space])
+AT_CHECK_MAKE([], [absbuild/space])
+
AT_CLEANUP