unset DMAKE_CHILD DMAKE_DEF_PRINTED DMAKE_MAX_JOBS # For Solaris dmake.
# Unset verbosity flag.
unset V
-# Also unset variables that will let "make -e install" divert
-# files into unwanted directories.
+# Also unset variables that might influence "make install".
unset DESTDIR
unset prefix exec_prefix bindir datarootdir datadir docdir dvidir
unset htmldir includedir infodir libdir libexecdir localedir mandir
unset oldincludedir pdfdir psdir sbindir sharedstatedir sysconfdir
-# Unset variables that might change the "make distcheck" behaviour.
+# Unset variables that might influence "make distcheck".
unset DISTCHECK_CONFIGURE_FLAGS AM_DISTCHECK_CONFIGURE_FLAGS
# Used by install rules for info files.
unset AM_UPDATE_INFO_DIR
-# The tests call "make -e" but we do not want $srcdir from the environment
-# to override the definition from the Makefile.
+# We don't want to use the $srcdir value exported by the test driver.
unset srcdir
# Also unset variables that control our test driver. While not
# conceptually independent, they cause some changed semantics we
return 0
}
-# run_make [-e STATUS] [--] [VAR=VAL ...] [MAKE-ARGS...]
-# ------------------------------------------------------
+# run_make [-e STATUS] [-O] [-E] [-M] [--] [VAR=VAL ...] [MAKE-ARGS...]
+# ---------------------------------------------------------------------
+#
# Run $MAKE with the given command-line, and fail if it doesn't exit with
# STATUS (default: 0). If STATUS is "FAIL", then any exit status > 0 is
# acceptable. If STATUS is "IGNORE", any exit value is acceptable.
+#
+# Other options:
+#
+# -O save the standard output from make on disk, in a regular file
+# named 'stdout'.
+#
+# -E save the standard error from make on disk, in a regular file
+# named 'stderr'.
+#
+# -M save both the standard output and standard error from make on
+# disk, in a regular file named 'output'. This option supersedes
+# both the '-O' and '-E' options.
+#
# This function also handle command-line override of variable definition
# in a smart way, using AM_MAKEFLAGS if a non-GNU make implementation
# is in use.
+#
run_make ()
{
- # Follow-up code might want to analyse these, so don't make them as
- # private, nor unset them later.
- am_make_rc_exp=0
- am_make_rc_got=0
+ am__make_redirect_stdout=no
+ am__make_redirect_stderr=no
+ am__make_redirect_stdall=no
+ am__make_flags=
+ am__make_rc_exp=0
+ # Follow-up code might want to analyse this, so mark is as
+ # publicly accessible (no double undesrscore).
+ am_make_rc=0
# Parse options for this function.
while test $# -gt 0; do
case $1 in
- -e) am_make_rc_exp=$2; shift;;
+ -e) am__make_rc_exp=$2; shift;;
+ -O) am__make_redirect_stdout=yes;;
+ -E) am__make_redirect_stderr=yes;;
+ -M) am__make_redirect_stdall=yes;;
--) shift; break;;
*) break;;
esac
shift
done
- am__make_flags=
+
+ # Use append mode here to avoid dropping output. See automake bug#11413
if using_gmake; then
# We can trust GNU make to correctly pass macro definitions given
# on the command line down to sub-make invocations, and this allow
done
unset am__x
fi
+
if test x"$am__make_flags" != x; then
- $MAKE AM_MAKEFLAGS="$am__make_flags" ${1+"$@"} || am_make_rc_got=$?
+ set AM_MAKEFLAGS="$am__make_flags" ${1+"$@"}
+ unset am__make_flags
+ fi
+
+ # In redirecting make output below, use append mode, to avoid
+ # dropping output. See automake bug#11413 for details.
+ # The exit status of 253 is a more-or-less random choice, to
+ # help us catch possible errors in redirections and error out
+ # accordingly.
+ (
+ : exec $MAKE ${1+"$@"} # Display traces for future command.
+ set +x # We need to remove them now, not to pollute redirected stderr.
+ if test $am__make_redirect_stdall = yes; then
+ : > output && exec 1>>output 2>&1 || exit 253
+ else
+ if test $am__make_redirect_stdout = yes; then
+ : > stdout && exec 1>>stdout || exit 253
+ fi
+ if test $am__make_redirect_stderr = yes; then
+ : > stderr && exec 2>>stderr || exit 253
+ fi
+ fi
+ exec $MAKE ${1+"$@"}
+ ) || am_make_rc=$?
+
+ if test $am_make_rc -eq 253; then
+ fatal_ "run_make: problems in redirecting make output"
+ fi
+
+ if test $am__make_redirect_stdall = yes; then
+ cat output || fatal_ "displaying make output"
else
- $MAKE ${1+"$@"} || am_make_rc_got=$?
+ if test $am__make_redirect_stdout = yes; then
+ cat stdout || fatal_ "displaying make output"
+ fi
+ if test $am__make_redirect_stderr = yes; then
+ cat stderr >&2 || fatal_ "displaying make output"
+ fi
fi
- unset am__make_flags
- case $am_make_rc_exp in
+
+ case $am__make_rc_exp in
IGNORE)
: Ignore exit status
;;
FAIL)
- test $am_make_rc_got -gt 0 || return 1
+ test $am_make_rc -gt 0 || return 1
;;
*)
- test $am_make_rc_exp -ge 0 && test $am_make_rc_exp -le 255 \
- || fatal_ "invalid expected exit status: '$am_make_rc_exp'"
- test $am_make_rc_exp -eq $am_make_rc_got || return 1
+ test $am__make_rc_exp -ge 0 && test $am__make_rc_exp -le 255 \
+ || fatal_ "invalid expected exit status: '$am__make_rc_exp'"
+ test $am_make_rc -eq $am__make_rc_exp || return 1
;;
esac
}
yl_distcheck () { useless_vpath_rebuild || run_make distcheck ${1+"$@"}; }
+null_install ()
+{
+ for am__v in nulldirs destdir instdir; do
+ if ! eval 'test -n "$'$am__v'"'; then
+ fatal_ "null_install() invoked with \$$am__v unset"
+ fi
+ done
+ unset am__v
+ case $#,$1 in
+ 0,)
+ am__inst='install';;
+ 1,-t|1,--texi)
+ am__inst='install install-html install-dvi install-ps install-pdf';;
+ *)
+ fatal_ "null_install(): invalid usage";;
+ esac
+ run_make $nulldirs $am__inst
+ test ! -e "$instdir"
+ run_make $nulldirs $am__inst DESTDIR="$destdir"
+ test ! -e "$instdir"
+ test ! -e "$destdir"
+ run_make -M $nulldirs uninstall
+ # Creative quoting below to please maintainer-check.
+ grep 'rm'' ' output && exit 1
+ run_make -M $nulldirs uninstall DESTDIR="$destdir"
+ # Creative quoting below to please maintainer-check.
+ grep 'rm'' ' output && exit 1
+ : # For 'set -e'.
+}
+
# count_test_results total=N pass=N fail=N xpass=N xfail=N skip=N error=N
# -----------------------------------------------------------------------
# Check that a testsuite run driven by the parallel-tests harness has