On the testdrive alphaev68-dec-osf5.1b, missing{,2,4}.test were failing (with native make). Again, this was fixable by adding some $sleep. But also it uncovered a buglet in the missing.test: required=GNUmake
was set only after `./defs' was sourced. I don't know for sure why missing.test and missing2.test should need GNU make -- but I haven't encountered any make implementations that genuinely fail those tests, so I assume they don't. OK to apply the following patch to add the sleep, remove the requirements, and make sure such misordering won't happen again? (The maintainer-check part isn't portable sed, but that isn't necessary AFAICS.) FWIW, I did not encounter this on a different Tru64 host. Cheers, Ralf * tests/missing.test, tests/missing2.test, tests/missing4.test: Add some $sleep, for Tru64 make on NFS. * tests/missing.test, tests/missing2.test: Do not require GNUmake. * Makefile.am (maintainer-check): Make sure `required=' does not follow `. ./defs' in the tests. Index: Makefile.am =================================================================== RCS file: /cvs/automake/automake/Makefile.am,v retrieving revision 1.242 diff -u -r1.242 Makefile.am --- Makefile.am 12 Jan 2006 20:11:48 -0000 1.242 +++ Makefile.am 8 May 2006 17:31:19 -0000 @@ -225,6 +225,13 @@ echo 'Do not run "perl" in the above tests. Use "$$PERL" instead.' 1>&2; \ exit 1; \ fi +## Setting `required' after sourcing `./defs' is a bug. + @for file in $(srcdir)/tests/*.test; do \ + if out=`sed -n '/defs/,$${/required=/p;}' $$file`; test -n "$$out"; then \ + echo 'Do not set "required" after sourcing "defs" in '"$$file: $$out" 1>&2; \ + exit 1; \ + fi; \ + done ## Overriding a Makefile macro on the command line is not portable when ## recursive targets are used. Better use an envvar. SHELL is an exception, ## POSIX says it can't come from the environment. Index: tests/missing.test =================================================================== RCS file: /cvs/automake/automake/tests/missing.test,v retrieving revision 1.3 diff -u -r1.3 missing.test --- tests/missing.test 14 May 2005 20:28:55 -0000 1.3 +++ tests/missing.test 8 May 2006 17:34:25 -0000 @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 2003, 2004 Free Software Foundation, Inc. +# Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc. # # This file is part of GNU Automake. # @@ -22,7 +22,6 @@ . ./defs || exit 1 -required=GNUmake set -e cat >>configure.in <<'EOF' @@ -46,6 +45,7 @@ $sleep # Hopefully the install version of Autoconf cannot compete with this one... echo 'AC_PREREQ(9999)' >> aclocal.m4 +$sleep $MAKE distdir # Run again, but without missing, to ensure that timestamps were updated. Index: tests/missing2.test =================================================================== RCS file: /cvs/automake/automake/tests/missing2.test,v retrieving revision 1.3 diff -u -r1.3 missing2.test --- tests/missing2.test 14 May 2005 20:28:55 -0000 1.3 +++ tests/missing2.test 8 May 2006 17:31:20 -0000 @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 2003, 2004 Free Software Foundation, Inc. +# Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc. # # This file is part of GNU Automake. # @@ -22,7 +22,6 @@ . ./defs || exit 1 -required=GNUmake set -e cat >>configure.in <<'EOF' @@ -48,6 +47,7 @@ $sleep # Hopefully the install version of Autoconf cannot compete with this one... echo 'AC_PREREQ(9999)' > v.m4 +$sleep $MAKE distdir # Run again, but without missing, to ensure that timestamps were updated. Index: tests/missing4.test =================================================================== RCS file: /cvs/automake/automake/tests/missing4.test,v retrieving revision 1.1 diff -u -r1.1 missing4.test --- tests/missing4.test 21 Apr 2006 19:02:29 -0000 1.1 +++ tests/missing4.test 8 May 2006 17:31:20 -0000 @@ -39,6 +39,7 @@ cmp aclocal.m4 aclocal.tmp && exit 1 mv aclocal.tmp aclocal.m4 +$sleep $MAKE 2>stderr cat stderr