Merge branch 'yacc-work' into yl-work-for-master
authorStefano Lattarini <stefano.lattarini@gmail.com>
Sun, 12 Feb 2012 14:06:17 +0000 (15:06 +0100)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Sun, 12 Feb 2012 14:32:54 +0000 (15:32 +0100)
* yacc-work: (37 commits)
  fixup: list of yacc/lex tests was botched
  tests: work around bug#7884 in many yacc/lex tests
  yacc/lex tests: remove an unneeded workaround for bug#8485
  yacc/lex tests: avoid too much failures with FreeBSD make
  yacc-dist-nobuild.test: add reference to bug#7884
  yacc tests: fix bug in 'yacc-cxx.test'
  lex tests: fix spurious link errors on Solaris
  lex: "make clean" removes .c files from non-distributed .l
  lex tests: make test on Lex dependency tracking more "semantic"
  lex tests: remove erroneous check about ylwrap distribution
  yacc tests: "make clean" removes C++ files from non-distributed .y
  tests: add a workaround for automake bug#8485
  tests: add a couple of inter-tests reference
  lex tests: require just `lex' instead of `flex'
  fix typo in ChangeLog (2011-05-04)
  tests defs: use `skip_' for skipping yacc/lex related tests
  lex/yacc tests: remove redundant $distdir definition
  coverage: test lex-generated "#line" directives postprocessing
  tests: minor improvements to a couple of yacc tests
  tests: fix spurious failure in test 'yacc-d-cxx.test'
  ...

+ Extra non-trivial edits:

* tests/defs.in: Delete; the differences from maint has been
merged into 'tests/defs' and 'tests/defs-static.in'.
* tests/defs (yacc, lex): Use 'skip_all_', not 'skip_', to
skip the whole test case if yacc (resp. lex) is missing.
(bison): New, set up the environment so that 'bison -y' will
be used as the yacc program.
(useless_vpath_rebuild, yl_distcheck): Moved in from
'tests/defs.in'.
* tests/defs-static.in ($YACC, $LEX): Default to the values
determined at configure time, and allow them to be overridden
by the more namespace-safe variables '$AM_TESTSUITE_YACC' and
'$AM_TESTSUITE_LEX' respectively.
* tests/Makefile.am (do_subst): Also substitute '@YACC@' and
'@LEX@'.
* Several tests: Fix requirements declarations, by preferring
'lex' and 'yacc' over 'flex' and 'bison' whenever possible.

33 files changed:
1  2 
ChangeLog.11
NEWS
automake.in
configure.ac
doc/automake.texi
tests/Makefile.am
tests/cond35.test
tests/defs
tests/defs-static.in
tests/lex-depend-grep.test
tests/lex-subobj-nodep.test
tests/lex3.test
tests/lex5.test
tests/lexvpath.test
tests/list-of-tests.mk
tests/silent-many-gcc.test
tests/silent-many-generic.test
tests/subpkg-yacc.test
tests/subpkg.test
tests/yacc-basic.test
tests/yacc-clean.test
tests/yacc-d-basic.test
tests/yacc-d-vpath.test
tests/yacc-dist-nobuild-subdir.test
tests/yacc-dist-nobuild.test
tests/yacc-nodist.test
tests/yacc-pr204.test
tests/yacc4.test
tests/yacc8.test
tests/yaccdry.test
tests/yaccpp.test
tests/yaccvpath.test
tests/yflags-force-override.test

diff --combined ChangeLog.11
@@@ -1,5 -1,7 +1,5 @@@
  2011-12-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 -2011-12-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
 -
        tests: drop unnecessary requirement in 'subpkg.test'
        * tests/subpkg.test ($required): Drop "bison", it is not required
        anymore since commit `v1.11-502-g7e5ae80'.
  
  2011-12-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 +      regex: remove obsolete macro AM_WITH_REGEX
 +      Today, practically nobody uses the GNU rx library, which, according
 +      to its own website <http://www.gnu.org/software/rx/rx.html>, has
 +      been "decommissioned".  Consequently, the automake-provided macro
 +      AM_WITH_REGEX is not used nor required anymore.
 +      * m4/regex.m4: Delete.
 +      * m4/Makefile.am (dist_automake_ac_DATA): Do not list it anymore.
 +      * doc/automake.texi (Obsolete Macros): Remove description, and in
 +      fact any mention, of `AM_WITH_REGEX'.
 +      * tests/regex.test: Delete.
 +      * tests/help-regex.test: Likewise.
 +      * tests/regex-obsolete.test: Likewise.
 +      * tests/list-of-tests.mk: Do not list them anymore.
 +      * NEWS: Update.
 +      See also commits `v1.11-587-g5f335be' and `v1.11-433-g37b0aee',
 +      where that macro had been deprecated.
 +
 +2011-12-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      cosmetics: be more consistent in copyright notices in tests
 +      * tests/cond39.test: Update the heading copyright notice, to be
 +      consistent with the formulation used in the other files.
 +      * tests/cond40.test: Likewise.
 +      * tests/cond41.test: Likewise.
 +      * tests/cond42.test: Likewise.
 +      * tests/cond43.test: Likewise.
 +      * tests/conflnk4.test: Likewise.
 +      * tests/extra8.test: Likewise.
 +      * tests/extra9.test: Likewise.
 +      * tests/suffix13.test: Likewise.
 +      * tests/vala.test: Likewise.
 +      * tests/vala1.test: Likewise.
 +      * tests/vala2.test: Likewise.
 +      * tests/vala3.test: Likewise.
 +      * tests/vala4.test: Likewise.
 +      * tests/vala5.test: Likewise.
 +      * lib/Automake/tests/Condition.pl: Likewise.
 +      * lib/Automake/tests/Condition-t.pl: Likewise.
 +      * lib/Automake/tests/DisjConditions.pl: Likewise.
 +      * lib/Automake/tests/DisjConditions-t.pl: Likewise.
 +      * lib/Automake/tests/Version.pl: Likewise.
 +      * lib/Automake/tests/Wrap.pl: Likewise.
 +      * lib/Automake/tests/Cond2.pl: Add copyright notice.
 +      * lib/Automake/tests/Cond3.pl: Likewise.
 +      * lib/Automake/tests/DisjCon2.pl: Likewise.
 +      * lib/Automake/tests/DisjCon3.pl: Likewise.
 +      * lib/Automake/tests/Version2.pl: Likewise.
 +      * lib/Automake/tests/Version3.pl: Likewise.
 +
 +2011-12-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap/awk: "Bail out!" recognized also after leading whitespace
 +      Newer versions of TAP::Harness (e.g., 3.23 on Perl 5.14.1)
 +      recognize a "Bail out!" directive also when it is prepended by
 +      leading whitespace; this was not the case for older TAP:Harness
 +      versions, (e.g., for version 3.17 on Perl 5.12.4), and for our
 +      TAP driver implemented in awk.
 +      * lib/tap-driver.sh: Handle the "Bail out!" directive also when
 +      it is preceded by leading whitespace.
 +      * tests/tap-spurious.test: Remove the tests checking that a
 +      "Bail out!" string coming right after leading whitespace does
 +      not trigger a bailout action.
 +      * tests/tap-bailout-leading-space.test: New test.
 +      * tests/list-of-tests.mk: Add it.
 +      Problem reported by Jim Meyering in automake bug#10374.
 +
 +2011-12-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failure of cond29.test
 +      * tests/cond29.test: Limit the amount of virtual memory available
 +      to the automake process to ~ 150 MB, rather than only ~ 20 MB, to
 +      account for higher (but still acceptable) memory usages on some
 +      systems (in this case, a Fedora 16 distro on ppc64).  To be
 +      sure not to reduce coverage, increase the number of potential
 +      combinations of automake conditionals from 2**22 = 4194304 to
 +      2**24 = 16777216.
 +      We have actually verified that the new version of the test case
 +      catches the Automake 1.7 it is intended to check against, using
 +      the Automake 1.7.9 tarball downloaded from:
 +        <http://ftp.gnu.org/gnu/automake/automake-1.7.9.tar.gz>
 +      Reported by Jim Meyering in automake bug#10374.
 +
 +2011-12-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
        docs: "aclocal --install -I /abs/dir" actually copies files
  
        This change is for automake bug#8407.
        (extract_program_version):... this new function, and saved ...
        ($autopoint_version): ... in this new variable.
  
 +2011-12-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: automatically handle deps also for generated tests
 +      * tests/gen-testsuite-part: The test scripts are now scanned for
 +      automatic dependency generation *after* the auto-generated tests
 +      have been created, so they too will be scanned.  It is a little
 +      tricky to ensure that the freshly-generated tests are correctly
 +      scanned, and we do that with the help of ...
 +      (@generated_tests): ... this new variable.
 +      Other related minor changes and refactorings.
 +
 +2011-12-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: auto-generate deps for tests requiring libtool/gettext
 +      * tests/gen-testsuite-part: Tests requiring libtool (or related
 +      programs) will need libtool-provided m4 macros, so they should
 +      be run after `libtool-macros.test'.  Similarly for gettext tests.
 +      So, generate proper declarations of such dependencies.
 +      * tests/Makefile.am: Remove now-unneeded hand-written declaration
 +      of those dependencies.
 +
 +2011-12-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: remove FIXME comments from tricks to pacify syntax checks
 +      Originally, I myself had insisted on adding those "FIXME" comments
 +      near every unusual construct or use of "creative quoting" whose
 +      only purpose was to avoid false positive from out syntax checks.
 +      I did that with the expectation that we could have easily and soon
 +      added a whitelisting capability to our maintainer-specific syntax
 +      checks.  This hasn't been the case unfortunately, and now those
 +      "FIXME" in the comments are just distracting noise, making it more
 +      difficult to grep the test cases for stuff that could really use a
 +      fix or an improvement.  So just get rid of them.
 +      * tests/instdir-ltlib.test: Remove that extra "FIXME".
 +      * tests/instdir-prog.test: Likewise.
 +      * tests/parallel-tests3.test: Likewise.
 +      * tests/parallel-tests-dry-run.test: Likewise.
 +      * tests/parallel-tests-console-output.test: Likewise.
 +      * tests/parallel-tests-no-color-in-log.test: Likewise.
 +      * tests/tap-realtime.test: Likewise.
 +      * tests/test-trs-recover.test: Likewise.
 +      * tests/tap-deps.test: Likewise.
 +
 +2011-12-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: few minor fixlets, improvements and tweakings
 +      * tests/defs-static.in ($top_testbuilddir): New, for consistency
 +      and completeness.
 +      * tests/Makefile.am (do_subst): Substitute @abs_top_testbuilddir@
 +      as well.
 +      * tests/java-compile-run-mested.test: Prefer AM_TESTS_ENVIRONMENT
 +      over TESTS_ENVIRONMENT, now that the former has become available.
 +      * tests/java-compile-run-flat.test: Correct a botched "FIXME"
 +      comment.
 +      * tests/tap-realtime.test: Remove extra whitespace in comments.
 +      * tests/missing-tar.test: Use `get_shell_script' to bring in the
 +      `missing' script, to increase coverage.  Remove redundant call to
 +      `set -e'.  Fix a typo in comments.
 +      * tests/get-sysconf.test: Remove redundant definitions of
 +      `$top_testsrcdir', `testbuilddir' and `$top_testbuilddir'.
 +
 +2011-12-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: remove redundant uses of `set -e'
 +      * tests/deleted-am.test: Do not set the `errexit' shell flag, as
 +      it is already set by `tests/defs'.
 +      * tests/deleted-m4.test: Likewise.
 +      * tests/dist-missing-am.test: Likewise.
 +      * tests/dist-missing-am.test: Likewise.
 +      * tests/dist-missing-m4.test: Likewise.
 +      * tests/dist-missing-included-m4.test: Likewise.
 +      * tests/get-sysconf.test: Likewise.
 +      * tests/makefile-deps.test: Likewise.
 +      * tests/remake-m4-pr10111.test: Likewise.
 +      * tests/remake-am-pr10111.test: Likewise.
 +      * tests/remake-deleted-am.test: Likewise.
 +      * tests/remake-deleted-am2.test: Likewise.
 +      * tests/remake-deleted-am-subdir.test: Likewise.
 +      * tests/remake-renamed-am.test: Likewise.
 +
  2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        tests: fix failure due to debugging code forgotten into a test
  
  2011-12-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 +      Merge branch 'master' into testsuite-work
 +      * tests/gettext-macros.test: In the generated `get.sh' file,
 +      use `skip_all_', not `skip_'.
 +      * tests/libtool-macros.test: Likewise.
 +      * tests/list-of-tests.mk: Update.
 +
 +2011-12-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
        tests: avoid spurious failure of libtool and gettext tests
  
        On Solaris 10 (and presumably earlier), /bin/sh trips up on
  
  2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 +      Merge branch 'maint' into master.
 +      * m4/regex.m4: Bump serial number by some notches, for good
 +      measure.  Prefer the deprecation message from maint over that
 +      from master.
 +      * m4/python.m4: Bump serial number.
 +      * tests/Makefile.am (canon6.log): Depend on `libtool-macros.log'.
 +      (canon7.log): Likewise.
 +      (extradep2.log): Likewise.
 +      (ar-lib4.log): Likewise.
 +      (ar-lib6a.log): Likewise.
 +      (ar-lib6b.log): Likewise.
 +      (vartypo2): Likewise.
 +      (posixsubst-ltlibraries.log): Likewise.
 +      * tests/defs: Adjust the path of the included `get.sh' scripts
 +      generated by `libtool-macros.test' and `gettext-macros.test'.
 +      * aclocal.m4: Delete, it's auto-generated now.
 +      * configure: Likewise.
 +      * Makefile.in: Likewise.
 +      * doc/Makefile.in: Likewise.
 +      * m4/Makefile.in: Likewise.
 +      * tests/Makefile.in: Likewise.
 +      * lib/Makefile.in: Likewise.
 +      * lib/am/Makefile.in: Likewise.
 +      * lib/Automake/Makefile.in: Likewise.
 +      * lib/Automake/tests/Makefile.in: Likewise.
 +      * .gitignore: Correctly ignored the autogenerated files
 +      that are not committed anymore.
 +
 +2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
        hacking: distribute it, and mention it in the ChangeLog
        Not distributing the HACKING file might make it more difficult,
        for some random curious user, to get informed about or interested
        unistd.h to be present (it is not present when compiling with,
        e.g., MSVC 9).
  
 +2011-12-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failure on MSYS/MinGW and Cygwin
 +      * tests/primary-prefix-couples-force-valid.test (Makefile.am):
 +      Correctly append $(EXEEXT) to the path of built binaries.
 +
  2011-12-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        test defs: hack to support autoconf-wrapper programs
 -      * tests/defs.in ($AUTOCONF): Add a dummy `-B' option to the
 -      autoconf invocation, so that, when the Debian autoconf wrapper
 -      is involved, it will correctly dispatch an autoconf >= 2.50
 -      instead of defaulting to autoconf 2.13.
 +      * tests/defs-static.in ($AUTOCONF): Add a dummy `-B' option to the
 +      autoconf invocation, so that, when the Debian autoconf wrapper is
 +      involved, it will correctly dispatch an autoconf >= 2.50 instead of
 +      defaulting to autoconf 2.13.
        ($AUTOHEADER, $AUTORECONF): Likewise, but for autoheader and
        autoreconf respectively.
        Reported by Bruno Haible:
        * tests/remake-am-pr10111.test: Make executable.
        * tests/remake-m4-pr10111.test: Likewise.
  
+ 2011-12-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       yacc/lex tests: remove an unneeded workaround for bug#8485
+       * tests/yacc-d-cxx.test: Remove the workaround previously required
+       to avoid spurious failures due to automake bug#8485: that bug has
+       been solved with commit `v1.11-512-g40c3432'.
+ 2011-12-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       yacc/lex tests: avoid too much failures with FreeBSD make
+       In various Yacc/Lex tests, we used to run "make distcheck" commands
+       whose value was mostly dubious, and, even when it was there, was
+       very, very little.  The presence of these extra distchecks had two
+       disadvantages: it slowed down our already-too-slow testsuite even
+       more, and, much worse, caused a lot of extra failures with FreeBSD,
+       all due to automake bug#7884, which is already exposed by the test
+       case `yacc-dist-nobuild.test'.
+       We can improve this situation by simply removing "make distcheck"
+       calls from a few testcases, or making them conditional to the use
+       of GNU make.
+       * tests/lex-clean-cxx.test: Do not call "make distcheck".
+       * tests/lex-clean.test: Likewise.
+       * tests/yacc-clean-cxx.test: Likewise.
+       * tests/yacc-clean.test: Likewise.
+       * tests/yflags-force-override.test: Likewise.
+       * tests/yacc-nodist.test: Only run "make distcheck" if make
+       is GNU make.
+ 2011-12-15  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       Merge branch 'maint' into 'yacc-work'
+       * tests/silent-lex.test: Provide a dummy `yywrap()' function, to
+       avoid link errors on systems that doesn't provide a "lex library".
+       See also commit `v1.11-546-gca0ba5d'.
  2011-12-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        readme: reference webpages for automake mailing lists
        * HACKING (Release procedure): ... state here that "make check"
        and "make distcheck" should be run before calling "make git-dist".
  
 +2011-12-15  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failure in 'color2.test'
 +      * tests/color2.test: (expect-make): Add an "expect eof" directive,
 +      so that the collected output from the spawned make program will be
 +      displayed on stdout, as desired.
 +      Since we are at it, also correctly remove a temporary file which
 +      we was trying to delete using a wrong filename.
 +      Problem introduced in merge `v1.11-1579-g8d3466c', probably by a
 +      botched edit or conflict resolution.
 +
 +2011-12-15  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failure in 'lex3.test'
 +      * tests/lex3.test (foo.l): Remove duplicated definition of
 +      `yywrap'.  Problem introduced in merge `v1.11-1579-g8d3466c'.
 +
  2011-12-09  Jim Meyering  <meyering@redhat.com>
            Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        since that induced inordinately large virtual memory usage when
        merely decompressing.  Instead, use its XZ_OPT envvar, defaulting
        to -e if not defined.  Suggested by Lasse Collin.
 -      (dist, dist-all) [?XZ?]: Likewise
        (dist-bzip2): Similarly, do not hard-code -9, but do continue to
        use -9 by default.  Honor the BZIP2 envvar.
 -      (dist, dist-all) [?BZIP2?]: Likewise
        * NEWS: Update.
        * doc/automake.texi (The Types of Distributions): Describe the
        newly enabled environment variables.
        * tests/uninstall-fail.test: Always use `$rm_f_is_silent_on_error'
        instead of the bogus `$rm_f_is_silent_on_failure'.
  
 +2011-11-19  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * lib/install-sh: Spelling fix in comment.
 +
  2011-11-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        tests: avoid a spurious failure of 'ltinit.test' MinGW
        Yikes.  Cater to this incompatibility, by relaxing the test when
        a faulty `rm' is detected.
  
 +2011-11-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: various minor tweakings, mostly related to AM_PROG_AR
 +      * tests/alloca2.test: Ensure we don't experience a spurious failure
 +      due to a missing `AM_PROG_AR' macro or a missing `ar-lib' auxiliary
 +      script.
 +      * tests/libtool4.test: Likewise.
 +      * tests/ldadd.test: Likewise.  Since we are at it, make grepping of
 +      automake stderr stricter.
 +      * tests/reqd2.test: Likewise.
 +      * tests/pr211.test: Ensure automake fails also with `-Wnone', since
 +      the error we are testing for is an hard error, not a mere warning.
 +      * tests/syntax.test: Likewise, and ensure we don't fail to other
 +      errors by removing use of `lib_LTLIBRARIES' in Makefile.am.  Since
 +      we are at it, make grepping of automake stderr stricter.
 +
 +2011-11-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      ar-lib: fix configure output for "unrecognized archiver interface"
 +      * m4/ar-lib.m4: Ensure that, even when an error is hit while trying
 +      to determine the archiver interface kind, the "checking archiver
 +      interface" message from configure is properly terminated before
 +      an error message is printed, to avoid slightly garbled output.
 +      * tests/ar4.test: Enhance.
 +      * tests/ar5.test: Likewise.
 +
 +2011-11-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      warnings: fix buglets for portability warnings
 +      * lib/Automake/ChannelDefs.pm (switch_warning): Ensure the
 +      correct implications and inter-dependencies between warnings
 +      in the categories `portability', `extra-portability' and
 +      `recursive-portability' are respected.  Also add detailed
 +      explicative comments, and references to the relevant tests.
 +      * tests/dollarvar2.test: Update and extend.  Also, remove
 +      some unnecessary uses of `--force' option in automake calls.
 +      * tests/extra-portability3.test: New test.
 +      * tests/Makefile.am (TESTS): Add it.
 +
 +2011-11-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: extend tests on 'extra-portability' warning category
 +      * tests/extra-portability.test: Redefine `$AUTOMAKE' to ensure we
 +      have complete control over the automake options.  Extend by using
 +      also a setup where no `portability' warning is present (only an
 +      `extra-portability' warning is).  Other minor extensions.  Remove
 +      some redundant, verbose comments about the expected diagnostic.
 +
 +2011-11-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: various minor tweakings, mostly related to AM_PROG_AR
 +      * tests/alloca.test: Adjust to new portability requirements due
 +      to the new AM_PROG_AR macro.
 +      * tests/discover.test: Likewise.
 +      * tests/libobj3.test: Likewise.
 +      * tests/pluseq7.test: Likewise.  Also, make grepping of automake
 +      expected error message stricter.
 +      * tests/stdlib.test: Likewise, and extend the test a bit.
 +      * tests/parse.test (configure.in): Remove redundant call to
 +      AC_PROG_RANLIB.
 +      * tests/library2.test: Adjust to new portability requirements
 +      due to the new AM_PROG_AR macro.  Also ...
 +      (configure.in): ... add call to AC_PROG_CC, to ensure automake
 +      really fails for the expected reason.
 +
 +2011-11-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      ar-lib: fix configure output for "unrecognized archiver interface"
 +      * m4/ar-lib.m4: Ensure that, even when an error is hit while trying
 +      to determine the archiver interface kind, the "checking archiver
 +      interface" message from configure is properly terminated before
 +      an error message is printed, to avoid slightly garbled output.
 +      * tests/ar4.test: Enhance.
 +      * tests/ar5.test: Likewise.
 +
 +2011-11-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: more faithful 'installcheck' support in few tests
 +      * tests/ar-lib5a.test: Use the `$am_scriptdir' variable instead
 +      of "$testsrcdir/../lib" or "$top_testsrcdir/lib", to test more
 +      faithfully under "make installcheck".
 +      * tests/ar-lib5a.test: Likewise.
 +      * tests/libobj-basic.test: Likewise.
 +      * tests/libobj19.test: Likewise.
 +      * tests/suffix5.test: Likewise.
 +
 +2011-11-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: remove redundant settings of `errexit' shell flag
 +      * tests/aclocal-path-install-serial.test: Do not set the
 +      `errexit' shell flag, as it is already set by `tests/defs'.
 +      * tests/ar-lib2.test: Likewise.
 +      * tests/ar-lib3.test: Likewise.
 +      * tests/ar-lib4.test: Likewise.
 +      * tests/ar-lib5a.test: Likewise.
 +      * tests/ar-lib5b.test: Likewise.
 +      * tests/ar-lib6a.test: Likewise.
 +      * tests/ar-lib6b.test: Likewise.
 +      * tests/ar-lib7.test: Likewise.
 +      * tests/ar3.test: Likewise.
 +      * tests/ar4.test: Likewise.
 +      * tests/ar5.test: Likewise.
 +      * tests/extra-portability.test: Likewise.
 +      * tests/extra-portability2.test: Likewise.
 +      * tests/extra-portability3.test: Likewise.
 +      * tests/install-info-dir.test: Likewise.
 +      * tests/maintmode-configure-msg.test: Likewise.
 +
 +2011-11-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      generated tests: avoid extra "FIXME" comments
 +      * tests/gen-testsuite-part: Avoid putting too much "FIXME"
 +      comments in the generated test scripts, since they end up
 +      being just counter-productive noise when one has to grep
 +      the test scripts looking for real "FIXME" items.
 +
 +2011-09-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      cosmetics: fix typo in 'prove-runner' script
 +      * tests/prove-runner: Remove erroneously-repeated word.
 +      * THANKS: Update.
 +      Reported by Dave Hart.
 +
 +2011-11-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Merge branch 'master' into testsuite-work
 +      * tests/extra-portability.test: Use `$am_original_AUTOMAKE'
 +      instead of the obsolete `$original_AUTOMAKE'.
 +      * tests/extra-portability3.test: Likewise.
 +      * tests/list-of-tests.mk: Update.
 +
 +2011-11-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Merge branch 'msvc' into master
 +      * tests/extra-portability3.test: Use `$original_AUTOMAKE' instead
 +      of hackishly extracting the first component of `$AUTOMAKE'.
 +      * tests/extra-portability.test: Likewise.  Also, since we are at
 +      it, throw in a couple of small extensions and tweakings (suggested
 +      by the minor merge conflicts).
 +
 +2011-11-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      warnings: fix buglets for portability warnings
 +      * lib/Automake/ChannelDefs.pm (switch_warning): Ensure the
 +      correct implications and inter-dependencies between warnings
 +      in the categories `portability', `extra-portability' and
 +      `recursive-portability' are respected.  Also add detailed
 +      explicative comments, and references to the relevant tests.
 +      * tests/dollarvar2.test: Update and extend.  Also, remove
 +      some unnecessary uses of `--force' option in automake calls.
 +      * tests/extra-portability3.test: New test.
 +      * tests/Makefile.am (TESTS): Add it.
 +
 +2011-11-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: extend tests on 'extra-portability' warning category
 +      * tests/extra-portability.test: Redefine `$AUTOMAKE' to ensure we
 +      have complete control over the automake options.  Extend by using
 +      also a setup where no `portability' warning is present (only an
 +      `extra-portability' warning is).  Other minor extensions.  Remove
 +      some redundant, verbose comments about the expected diagnostic.
 +
 +2011-11-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: new functions to analyze configure help screen
 +      * tests/defs (extract_configure_help, grep_configure_help): New
 +      functions.
 +      * tests/maintmode-configure-msg.test: Use them, reducing code
 +      duplication and test brittleness.
 +      * tests/help-depend.test: Likewise.
 +      * tests/help-depend2.test: Likewise.
 +      * tests/help-dmalloc.test: Likewise.
 +      * tests/help-lispdir.test: Likewise.
 +      * tests/help-multilib.test: Likewise.
 +      * tests/help-python.test: Likewise.
 +      * tests/help-regex.test: Likewise.
 +      * tests/help-silent.test: Likewise.
 +      * tests/help-upc.test: Likewise.
 +      * tests/help-init.test: Make grepping of configure help screen
 +      slightly stricter.
 +      * tests/self-check-configure-help.test: New self test.
 +      * tests/Makefile.am (TESTS): Add it.
 +      From a report by Jim Meyering.
 +
 +2011-11-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Merge branch 'master' into testsuite-work
 +
 +      * tests/instspc.tap: Adjust to new portability requirements
 +      due to the new AM_PROG_AR macro.
 +      * tests/lex-lib.test: Likewise.
 +      * tests/extra-portability2.test: Use `$am_original_AUTOMAKE'
 +      instead of the obsolete `$original_AUTOMAKE'.
 +      * tests/list-of-tests.mk: Update.
 +
 +2011-11-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: various minor tweakings, mostly related to AM_PROG_AR
 +      * tests/alloca.test: Adjust to new portability requirements due
 +      to the new AM_PROG_AR macro.
 +      * tests/discover.test: Likewise.
 +      * tests/libobj3.test: Likewise.
 +      * tests/pluseq7.test: Likewise.  Also, make grepping of automake
 +      expected error message stricter.
 +      * tests/stdlib.test: Likewise, and extend the test a bit.
 +      * tests/parse.test (configure.in): Remove redundant call to
 +      AC_PROG_RANLIB.
 +      * tests/library2.test: Adjust to new portability requirements
 +      due to the new AM_PROG_AR macro.  Also ...
 +      (configure.in): ... add call to AC_PROG_CC, to ensure automake
 +      really fails for the expected reason.
 +
 +2011-11-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Merge branch 'msvc' into master
 +
 +      * tests/instspc-tests.sh: Adjust to new portability requirements
 +      due to the new AM_PROG_AR macro.
 +      * tests/libobj-basic.test: Likewise.
 +      * tests/libobj2.test: Likewise.
 +      * tests/libobj15a.test: Likewise.
 +      * tests/libobj15b.test: Likewise.
 +      * tests/libobj15c.test: Likewise.
 +      * tests/libobj16a.test: Likewise.
 +      * tests/libobj16b.test: Likewise.
 +      * tests/libobj17.test: Likewise.
 +      * tests/libobj18.test: Likewise.
 +      * tests/libobj19.test: Likewise.
 +      * tests/libobj20a.test: Likewise.
 +      * tests/libobj20b.test: Likewise.
 +      * tests/libobj20c.test: Likewise.
 +      * tests/canon6.test: Likewise.
 +      * tests/canon6.test: Likewise.
 +      * tests/canon7.tests: Likewise.
 +      * tests/extra9.test: Likewise.
 +      * tests/extradep.test: Likewise.
 +      * tests/extradep2.test: Likewise.
 +      * tests/posixsubst-ldadd.test: Likewise.
 +      * tests/posixsubst-libraries.test: Likewise.
 +      * tests/posixsubst-ltlibraries.test: Likewise.
 +      * tests/python-virtualenv.test: Likewise.
 +      * tests/vartypos.test: Likewise.
 +      * tests/vartypo2.test: Likewise.
 +      * tests/suffix.test: Update to take into account previous
 +      master-only changes.
 +      * tests/suffix2.test: Likewise.
 +      * tests/libobj7.test: Call automake with the `--add-missing'
 +      option, instead of creating a dummy `ar-lib' file, since this
 +      test now also runs "./configure" and "make".
 +      * tests/suffix5.test: Copy the real `ar-lib' script file,
 +      instead of creating a dummy one, since this test now also
 +      runs "./configure" and "make".
 +      * tests/extra-portability2.test: Fix this test not to rely
 +      on the older, faulty semantics of "strictness specification
 +      always reset warning level", which has been fixed in commit
 +      v1.11-623-g1609491 (see also automake bug#7669 a.k.a. PR/547).
 +      Since we are at it, throw inf few other minor unrelated
 +      improvements.
 +      * tests/extra-portability.test: Explicitly pass `-Wall' to
 +      automake calls, for clarity.
 +
 +2011-10-21  Peter Rosin  <peda@lysator.liu.se>
 +
 +      warnings: new 'extra-portability' category, for AM_PROG_AR
 +      * lib/Automake/ChannelDefs.pm: Register new extra-portability
 +      warning channel.
 +      (switch_warning): Turn off extra-portability if portability is
 +      turned off, and turn on portability if extra-portability is
 +      turned on.
 +      (set_strictness): Silence extra-portability for --gnits, --gnu
 +      and --foreign.
 +      * tests/extra-portability2.test: New test, checking that the
 +      extra-portability channel is silenced by --gnits, --gnu and
 +      --foreign.
 +      * doc/automake.texi (Invoking Automake): Document the new warning
 +      category and its interaction with the portability category.
 +      * tests/extra-portability.test: New test, checking the interaction
 +      between the portability and extra-portability warning categories.
 +      * automake.in (handle_libraries, handle_ltlibraries): Move the
 +      AM_PROG_AR warnings to the new extra-portability channel.
 +      * tests/ar2.test: Adjust to the new warning channel.
 +      * tests/pr300-lib.test: Likewise.
 +      * tests/pr300-ltlib.test: Likewise.
 +      * tests/pr307.test: Likewise.
 +      * tests/pr401.test: Likewise.
 +      * tests/pr401b.test: Likewise.
 +      * tests/pr401c.test: Likewise.
 +      * tests/pr72.test: Likewise.
 +      * NEWS: Likewise.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-10-21  Peter Rosin  <peda@lysator.liu.se>
 +          Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +          Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Add new 'AM_PROG_AR' macro, triggering the 'ar-lib' script.
 +      * m4/ar-lib.m4: New macro AM_PROG_AR, which locates an
 +      archiver and triggers the auxiliary 'ar-lib' script if needed.
 +      * m4/Makefile.am (dist_m4data_DATA): Update.
 +      * automake.in ($seen_ar): New variable.
 +      (scan_autoconf_traces): Set it.
 +      (handle_libraries, handle_ltlibraries): Require AM_PROG_AR for
 +      portability.
 +      * doc/automake.texi (Public Macros): Mention the new
 +      'AM_PROG_AR' macro.
 +      (Subpackages): Add AM_PROG_AR to the example.
 +      (A Library): Adjust recommendations for AR given the new
 +      AM_PROG_AR macro.
 +      * All relevant tests: Adjust to new portability requirements due
 +      to the new AM_PROG_AR macro.
 +      * tests/ar-lib2.test: New test, checking that AM_PROG_AR triggers
 +      install of ar-lib.
 +      * tests/ar-lib3.test: New test, checking that lib_LIBRARIES
 +      requires AM_PROG_AR.
 +      * tests/ar-lib4.test: New test, checking that lib_LTLIBRARIES
 +      requires AM_PROG_AR.
 +      * tests/ar-lib5a.test: New test, checking that AM_PROG_AR triggers
 +      use of ar-lib when the archiver is Microsoft lib.
 +      * tests/ar-lib5b.test: New test, checking that AM_PROG_AR triggers
 +      use of ar-lib when the archiver is a faked lib.
 +      * tests/ar-lib6a.test: New test, checking the ordering of
 +      AM_PROG_AR and LT_INIT.
 +      * tests/ar-lib6b.test: New test, checking the ordering of
 +      AM_PROG_AR and AC_PROG_LIBTOOL.
 +      * tests/ar-lib7.test: New test, checking that automake warns
 +      if ar-lib is missing.
 +      * tests/ar3.test: New test, checking that AR and ARFLAGS may
 +      be overridden by the user even if AM_PROG_AR is used.
 +      * tests/ar4.test: New test, checking that AM_PROG_AR bails out
 +      if it cannot determine the archiver interface.
 +      * tests/ar5.test: New test, checking that AM_PROG_AR runs its
 +      optional argument if it cannot determine the archiver interface.
 +      * tests/defs.in: New required entry 'lib'.
 +      * tests/Makefile.am (TESTS): Update.
 +      * NEWS: Update.
 +
  2011-11-03  Zack Weinberg <zackw@panix.com>  (tiny change)
            Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        * THANKS: Likewise.
        Report by Jonathan Nieder.
  
 +2011-10-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: new function 'am_keeping_testdirs', for better APIs
 +
 +      This change is meant to make it easier for TAP-based test scripts
 +      to remove files left over by completed (sub)tests, while still
 +      honoring the user-provided `$keep_testdirs' setting.
 +
 +      * tests/defs (am_keeping_testdirs): New function, telling whether
 +      we should keep the test directories around, even in case of
 +      success (by default, we don't).
 +      (exit trap): Use it.
 +      * tests/depmod.tap: Likewise.
 +      * tests/instspc.tap: Likewise.  Also, fix some pre-existing
 +      "copy & paste" bugs, and a typo in comments.
 +
 +2011-10-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: remove redundant `set -e', and other minor improvements
 +      * tests/dejagnu-absolute-builddir.test: Do not set the `errexit'
 +      shell flag, as it is already set by `tests/defs'.
 +      * tests/dejagnu-relative-srcdir.test: Likewise.
 +      * tests/dejagnu-siteexp-append.test: Likewise.
 +      * tests/dejagnu-siteexp-useredit.test: Likewise, and fix a typo
 +      in comments.
 +      * tests/dejagnu-siteexp-extend.test: Likewise, and prefer the
 +      use of `$distdir' over hard-coded `$me-1.0'.  Also ...
 +      (write_check_for): ... use `unindent' when writing from an
 +      here-doc, for better code indentation.
 +
  2011-10-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        deps: partially revert commit `v1.11-512-geeee551'
        * tests/Makefile.am (XFAIL_TESTS): Add lex-subobj-nodep.test,
        remove yacc-dist-nobuild-subdir.test.
  
 +2011-10-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: few improvements to some `ar-lib' related tests
 +
 +      * tests/ar-lib5a.test (Makefile.am): Also check that the target
 +      library has truly been created.
 +      (ar-lib): Use the real `ar-lib' script (mildly patched) rather
 +      than a dummy one, to ensure better "real-life coverage".  Fix
 +      botched shebang line.
 +      * tests/ar-lib5b.test: Extend the PATH variable to make the dummy
 +      `lib' script accessible, instead of explicitly calling it by its
 +      relative/absolute path.
 +      (ar-lib): Fix botched shebang line.
 +      (bin/lib): Likewise.  Also, add explicative comments, and make
 +      slightly stricter.
 +
 +2011-10-24  Peter Rosin  <peda@lysator.liu.se>
 +
 +      Merge branch 'maint' into msvc
 +
 +      * tests/subpkg-yacc.test: Adjust to new portability requirements due
 +      to the new AM_PROG_AR macro.
 +
  2011-10-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        dejagnu: allow the package developer to extend site.exp
  
        * THANKS: Fix whitespace issue.
  
 +2011-10-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failures due to missing 'yywrap()' function
 +
 +      The AC_PROG_LEX Autoconf macro does not diagnose a failure to find
 +      the "lex library" expected to provide a `yywrap' function (function
 +      which is required to link most lex-generated programs).  On the
 +      contrary, when all the link attempts (i.e., with `-ll' and `-lfl')
 +      fail, configure declares that no lex library is needed, and simply
 +      proceeds with the configuration process -- only for the build to
 +      possibly fail later, at make time.
 +
 +      This behaviour is intended; the Autoconf manual reads:
 +       ``You are encouraged to use Flex in your sources, since it is
 +         both more pleasant to use than plain Lex and the C source it
 +         produces is portable.  In order to ensure portability, however,
 +         you must either provide a function `yywrap' or, if you don't use
 +         it (e.g., your scanner has no `#include'-like feature), simply
 +         include a `%noyywrap' statement in the scanner's source.''
 +
 +      This AC_PROG_LEX behaviour is causing some spurious failures of
 +      the Automake testsuite in environments which lack a proper library
 +      providing `yywrap' (this happens for example on Fedora-based
 +      systems).   The proper workaround is to simply provide a fall-back
 +      implementation of `yywrap' in our lexers.
 +
 +      See also partially-overlapping commit `v1.11-871-geb147a1' (from
 +      the 'testsuite-work' branch), which was motivated by similar
 +      spurious failures experienced when cross-compiling.
 +
 +      Reported by Jim Meyering:
 +      <http://lists.gnu.org/archive/html/automake-patches/2011-10/msg00092.html>
 +
 +      * tests/cond35.test: Provide a dummy `yywrap' function.
 +      * tests/lex3.test: Likewise.
 +      * tests/lexvpath.test: Likewise.
 +      * tests/silent-lex-generic.test: Likewise.
 +      * tests/silent-lex-gcc.test: Likewise.
 +
 +2011-10-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: more faithful 'installcheck' support in few tests
 +      * tests/test-driver-acsubst.test: Use the `$am_scriptdir'
 +      variable instead of `$testsrcdir/../lib', to test more
 +      faithfully under "make installcheck".
 +      * tests/test-driver-cond.test: Likewise.
 +      * tests/dist-auxfile.test: Likewise, and add one more use
 +      of `fatal_' to report hard errors.
 +      * tests/tests/dist-auxdir-many-subdirs.test: Likewise.
 +
 +2011-10-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: remove redundant settings of `errexit' shell flag
 +      * tests/aclocal-path-install-serial.test: Do not set the
 +      `errexit' shell flag, as it is already set by `tests/defs'.
 +      * tests/aclocal-path-install.test: Likewise.
 +      * tests/aclocal-path-nonexistent.test: Likewise.
 +      * tests/aclocal-path-precedence.test: Likewise.
 +      * tests/aclocal-path.test: Likewise.
 +      * tests/dist-auxfile-2.test: Likewise.
 +      * tests/dist-auxfile.test: Likewise.
 +      * tests/distcheck-pr9579.test: Likewise.
 +      * tests/javadir-undefined.test: Likewise.
 +      * tests/subpkg-yacc.test: Likewise.
 +      * tests/test-extensions-cond.test: Likewise.
 +      * tests/test-extensions.test: Likewise.
 +      * tests/uninstall-fail.test: Likewise.
 +      * tests/uninstall-pr9578.test: Likewise.
 +      * tests/distcheck-override-infodir.test: Likewise.  Also,
 +      fix typo in heading comments since we are at it.
 +
 +2011-10-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      fixup: add forgotten test scripts to $(TESTS)
 +      * tests/list-of-tests.mk: Add various test scripts that are in
 +      the git repository but weren't correctly listed in $(TESTS).
 +      The inconsistency had been caused by botched/incomplete merges,
 +      and revealed by the "maintainer-check-list-of-tests" target.
 +
  2011-10-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        tests: fix spurious failure with FreeBSD make and Yacc in VPATH
        which doesn't report the `cd' builtin anywhere.  Relax the grepping
        of the error message accordingly.
  
 +2011-10-20  Jim Meyering  <meyering@redhat.com>
 +
 +      tests: fix aclocal-print-acdir.test
 +      * tests/aclocal-print-acdir.test: Adjust to pass.
 +
  2011-10-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        tests: avoid spurious failure of 'uninstall-fail.test' on Cygwin
        * THANKS: Update.
        Reported by Дилян Палаузов.
  
 +2011-10-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      refactor: improve signature of 'check_directory' sub in automake
 +      * automake.in (check_directory): Take the relative directory
 +      the directory to be checked is expected to be found into as
 +      an optional parameter, rather than reading it from the global
 +      variable `$relative_dir'.
 +      (scan_autoconf_traces, check_directories_in_var): Adjust.
 +
 +2011-10-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      cosmetics: remove obsolete comment
 +      * automake.in (push_required_file): Remove "FIXME" comment stating
 +      that the special handling of `$config_aux_dir' breaks threaded
 +      automake: this is not true anymore after the recent commits (see
 +      in particular commit `v1.11-1225-gf672944').
 +
 +2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failure with Solaris /bin/sh
 +      * tests/dist-auxfile.test: Don't use redirected `:' in a loop,
 +      it hits a bug in Solaris 10 /bin/sh.
 +
 +2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      threaded-am: better serialization for required config files
 +      With this change, we make serialization/de-serialization of
 +      required config files installs more granular, and in the process
 +      fix the bug introduced by commit `v1.11-1219-g326ecba'.
 +      * automake.in ($required_conf_file_queue): Move its declaration
 +      earlier.
 +      (require_file_internal): Add a new argument telling whether the
 +      function should act immediately or queue its action for the master
 +      thread to handle.
 +      (queue_required_conf_file): Renamed ...
 +      (queue_required_file_check_or_copy): ... to this.
 +      (require_queued_conf_file): Renamed ...
 +      (require_queued_file_check_or_copy): ... to this, and make it call
 +      `required_file_check_or_copy' instead of `require_file_internal'.
 +      (require_conf_file, handle_makefiles_threaded): Adjust and simplify
 +      accordingly.
 +      * tests/Makefile.am (XFAIL_TESTS): Remove `parallel-am.test'.
 +
 +2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      automake: refactor, break up 'require_file_internal'
 +      This refactoring is only required in view of future changes.
 +      * automake.in (require_file_internal): Move the guts of this
 +      function ...
 +      (required_file_check_or_copy): ... into this new function.  This
 +      ensures that calls to `push_required_file' and code that copies
 +      required files are placed in separate functions; this will be
 +      very useful for reorganizing de-serialization of file installs
 +      in future changes.
 +
 +2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      dist: separate auxiliary file instantiation from DIST_COMMON update
 +      This change simplifies the automake internals dealing with the
 +      checking, copying and distributing of required auxiliary files.
 +      With this change, a required auxiliary file is *unconditionally*
 +      added to the contents of the DIST_COMMON variable in the generated
 +      Makefile.in, before checking whether it exists, or trying to copy
 +      it (if `--add-missing' is in use).  This shouldn't be a problem,
 +      since if the checking or copying of the file fails, automake will
 +      bail out, the Makefile.in won't be created, and thus its content
 +      will not matter.  OK, this is not completely true when threaded
 +      automake is in use, but then, such a situation was also possible
 +      before this patch, so no regression here, which is enough for us.
 +      This change is the first of a series of steps aimed at fixing
 +      the regression introduced in threaded automake usage by commit
 +      `v1.11-1219-g326ecba'.
 +      * automake.in (require_file_internal): Add the required file to
 +      DIST_COMMON unconditionally.
 +      * tests/missing-auxfile-stops-makefiles-creation.test: New test.
 +      * tests/Makefile.am (TESTS): Add it.
 +
 +2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      refactor: rename a subroutine to a more proper name
 +      * automake.in (maybe_push_require_file): Renamed ...
 +      (push_required_file): ... to this.
 +      All callers adjusted.
 +
 +2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      dist: truly always distribute files in AC_REQUIRE_AUX_FILE
 +      This change fixes automake bug#9651.
 +      * automake.in (handle_dist): Files whose distribution is required
 +      by configure.ac are now correctly distributed even if the build-aux
 +      directory coincides with the top-level directory.
 +      * tests/Makefile.am (XFAIL_TESTS): Remove `dist-auxfile.test'.
 +      * NEWS: Update.
 +
 +2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      dist: simplify automake code accordingly to the previous changes
 +      After the previous change `v1.11-1219-g326ecba', every Makefile.am
 +      requiring a file in the "config auxdir" will cause it to be listed
 +      in the DIST_COMMON variable of the corresponding generated
 +      Makefile.in, not only of the top-level Makefile.in.  Thus we don't
 +      need to worry anymore about trying to distribute files in the
 +      config auxdir from the top-level Makefile or the Makefile in
 +      config auxdir (if any).  This allows us to carry out some useful
 +      simplifications in the automake script.
 +      This will however cause some changes in the generated Makefile;
 +      for example, if the `PROGRAMS' primary is used only in a subdir
 +      Makefile.am, the `depcomp' script will be distributed only by
 +      `subdir/Makefile', not by the top-level Makefile.  This change
 +      can be seen as an internal detail though, and definitely warranted
 +      by the nice simplifications the current commit provides.
 +      * automake.in ($automake_will_process_aux_dir): Variable removed.
 +      (scan_autoconf_files): Adjust and simplify.
 +      (handle_makefiles_threaded): Likewise.
 +      (get_number_of_threads): Likewise.
 +      (require_file_internal): Likewise.
 +      (maybe_push_required_file): Its return value is not used anymore,
 +      so return nothing.  Add special handling for distributed files from
 +      `$config_libobj_dir'.  Also, catch "this can't happen" situations,
 +      and abort accordingly.  Fix function description to better fit its
 +      new role.
 +      * tests/libobj19.test: Extend to also check situations where the
 +      Makefile.am using $(LIBOBJS) is not the top-level one.
 +      * tests/distcom6.test: Delete, merged into ...
 +      * tests/distcom2.test: ... this test, which has been update to
 +      account for the changed automake semantics.
 +      * tests/Makefile.am (TESTS): Update.
 +      * NEWS: Update.
 +
 +2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      dist: auxiliary files can be distributed from subdir Makefiles
 +      With this change, we make it possible for a subdir Makefile.am
 +      to distribute files in the config auxdir; while this means that
 +      some files might be copied multiple times, it simplify some logic
 +      in the automake script, and fix at least one important bug.  In
 +      fact, before this change, the auxiliary script `test-driver' was
 +      not being distributed as expected when TESTS was defined only in
 +      a subdir Makefile (which is a pretty common setup indeed).  Now
 +      this does not happen anymore: so the present change fixes automake
 +      bug#9546.
 +      Another welcome collateral effect is that `dist-auxfile-2.test'
 +      now passes.
 +      OTOH, the present changes *breaks threaded automake*.  The reason
 +      is that automake needs to serialize file installations spawned
 +      by `--add-missing' (this isn't for cosmetic reasons, but is
 +      really needed to avoid possible race conditions and botched output
 +      files).  Currently the code that installs required files is
 +      intertwined with the code that declares the DIST_COMMON variables;
 +      so, upon de-serialization, the definition of DIST_COMMON might get
 +      emitted in the wrong Makefile.in.
 +      Some follow-up refactoring in automake will soon take care of
 +      remedying this situation.  For the moment, we just declare some
 +      "parallel-am" tests as xfailing.
 +      * automake.in (maybe_push_required_file): Add ad-hoc handling for
 +      the case where the directory part of the required file is different
 +      from the subdir where the current Makefile.am resides, but is equal
 +      to the "config-aux directory" ($config_auxdir).  This is needed to
 +      allow a construct in a non-top-level Makefile.am to require a file
 +      in the config-aux directory.
 +      * tests/test-driver-is-distributed.test: Extend and adjust.  This
 +      test now passes.
 +      * tests/java-compile-run-nested.test: Call automake with the `-a'
 +      option to ensure that the `test-driver' auxiliary script gets
 +      correctly installed.  This test now passes.
 +      * tests/distcom-subdir.test: New test.
 +      * tests/dist-readonly.test: Likewise.
 +      * tests/dist-repeated.test: Likewise.
 +      * tests/dist-auxdir-many-subdirs.test: Likewise.
 +      * tests/distcom7.test: Removed, it's obsolete now.
 +      * tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
 +
 +2011-10-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: conditional contents in LOG_DRIVER variables
 +      * tests/test-driver-cond.test: New test.
 +      * tests/Makefile.am (TESTS): Add it.
 +
 +2011-10-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: LOG_DRIVER variables can be defined through AC_SUBST
 +      * tests/test-driver-acsubst.test: New test.
 +      * tests/Makefile.am (TESTS): Add it.
 +
  2011-10-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        parallel-tests: warn on conditional TEST_EXTENSIONS definition
        (is_valid_test_extension): ... into this subroutine.  Don't allow
        generic @substitutions@ anymore (possibly making an exception for
        `@EXEEXT@' under the proper circumstances).
 -      * tests/test-extensions.test: Adjust and extend.
 +      * tests/test-extensions.test: Adjust and extend.  This test does
 +      not cause any internal error in automake anymore now.
  
  2011-10-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        complaints from the `sc_no_brace_variable_expansions' maintainer
        check.
  
+ 2011-10-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       * tests/yacc-dist-nobuild.test: Add reference to relevant bug#7884.
  2011-10-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 +      tests: fix spurious error in 'test-extensions.test'
 +      * tests/test-extensions.test: Call automake with the option
 +      `--add-missing', to ensure the required script `test-driver'
 +      gets installed.  Note that the test still fails due to an
 +      internal error in automake, though.
 +
 +2011-10-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: avoid few useless uses of the `-e' make option
 +      * tests/python12.test: Using `make -e' is not required to override
 +      the DESTDIR variable, since this variable shouldn't be defined in
 +      any automake-generated Makefile.in file.
 +      * tests/man2.test: Likewise.
 +      * tests/man5.test: Likewise.
 +
 +2011-10-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
        fix: make a test script executable
        * tests/nobase-nodist.test: Make executable.
  
  
  2011-09-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 +      tap/awk: improve comments about Korn shell signal handling issues
 +      * lib/tap-driver.sh: Link an Austin Group discussion about how
 +      shells are allowed, and even encouraged, to set the special
 +      variable `$?' to values greater than 256 to report termination
 +      of a child by a signal.  Improve and extend comments about our
 +      workarounds for unusual korn shell signals' propagation.
 +      Thanks to Eric Blake for the pointers.
 +
 +2011-09-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
        maintcheck: fix usage of `cd' instead of `$(am__cd)'
        * lib/am/inst-vars.am (am__uninstall_files_from_dir): Use
        `$(am__cd)', not plain `cd'.
  
 +2011-09-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap/awk: account for unusual korn shell signal handling behaviour
 +      This change has been motivated by a testsuite failure on Debian
 +      with the AT&T Korn Shell version 93u-1.
 +      * lib/tap-driver.sh: Temporarily ignore some common signals when
 +      waiting for the test command to complete, to avoid premature exit
 +      in Korn shells that propagate to themselves signals that have
 +      killed a child process.
 +      See also related commit `v1.11-1342-g6321ad3'.
 +
 +2011-09-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap/awk: handle exit statuses > 256 (seen on few korn shells)
 +      Some Korn shells, when a child process die due to signal number
 +      n, can leave in $? an exit status of 256+n instead of the more
 +      standard 128+n.  Apparently, both behaviours are allowed by
 +      POSIX, so be prepared to handle them both.
 +      This change has been motivated by a testsuite failure on Debian
 +      with the AT&T Korn Shell version 93u-1.
 +      * lib/tap-driver.sh (get_test_exit_message): Handle the described
 +      Korn Shell behaviour too.
 +      ($scriptversion): Update.
 +
 +2011-09-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: remove redundant workaround for Solaris /bin/sh
 +      After previous commit `v1.11-1424-g27a399a', some workarounds for
 +      Solaris 10 /bin/sh are no more required, and in fact they have
 +      started causing XPASS results on Solaris.
 +      * tests/tap-signal.tap: Remove unneeded workarounds for Solaris 10
 +      /bin/sh.  Some related minor code reorganizations.
 +
  2011-09-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        uninstall: "make uninstall" before "make install" works
        * tests/aclocal-path-precedence.test: Call `$ACLOCAL' with the
        proper overridden system acdir.
  
 +2011-09-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failures in tests on TAP + signals
 +      * tests/tap-signal.tap: Write the dummy test scripts as perl
 +      scripts, not as shell scripts, to work around unportabilities
 +      in the handling of signals.  In fact, even with bash, the older
 +      script were unable to properly deliver a SIGQUIT to themselves
 +      consistently.
 +
 +2011-09-26  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failure in test on ACLOCAL_PATH precedences
 +      * tests/aclocal-path-precedence.test: Do not merely append to
 +      `configure.in', it should be created from scratch.  Pass package
 +      name and version to AC_INIT as arguments, otherwise autoconf will
 +      complain.
 +
 +2011-09-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      docs: remove mention of deprecated option `--acdir'
 +      * doc/automake.texi (aclocal Options): Remove mention of
 +      deprecated `--acdir' option.
 +
 +2011-09-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      * NEWS: Cleanup after botched merges.
 +
  2011-09-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        * NEWS: Fix typo.
        * tests/Makefile.am (TESTS): Add it.
        * NEWS: Update.
  
 -2011-09-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +2011-09-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 -      cosmetics: fix various typos and grammaros
 -      * NEWS: Fix typos.
 +      parallel-tests: expose automake bug#9546
 +      * tests/test-driver-is-distributed.test: New test.
 +      * tests/Makefile.am (TESTS, XFAIL_TESTS): Add it.
 +
 +2011-09-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      py-compile tests: more faithful 'installcheck' support
 +      * tests/py-compile-basedir.test: Use the `$am_scriptsdir' variable
 +      instead of `$testsrcdir/../lib', to test more faithfully under
 +      "make installcheck".  More uses of the `fatal_' subroutine to
 +      diagnose hard errors.
        * tests/py-compile-basic.test: Likewise.
 -      * tests/py-compile-basedir.test: Fix botched wording in comments.
 -      * tests/py-compile-option-terminate.test: Fix typo and incomplete
 -      comment.
 -      Suggestions by Peter Rosin.
 +      * tests/py-compile-basic2.test: Likewise.
 +      * tests/py-compile-destdir.test: Likewise.
 +      * tests/py-compile-env.test: Likewise.
 +      * tests/py-compile-option-terminate.test: Likewise.
 +      * tests/py-compile-usage.test: Likewise.
 +
 +2011-09-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: remove redundant settings of `errexit' shell flag
 +      * tests/aclocal-acdir.test: Do not set the `errexit' shell
 +      flag, as it is already set by `tests/defs'.
 +      * tests/aclocal-print-acdir.test: Likewise.
 +      * tests/distcheck-missing-m4.test: Likewise.
 +      * tests/distcheck-outdated-m4.test: Likewise.
 +      * tests/java-clean.test: Likewise.
 +      * tests/java-compile-install.test: Likewise.
 +      * tests/java-compile-run-flat.test: Likewise.
 +      * tests/java-compile-run-nested.test: Likewise.
 +      * tests/java-mix.test: Likewise.
 +      * tests/java-no-duplicate.test: Likewise.
 +      * tests/java-nobase.test: Likewise.
 +      * tests/java-rebuild.test: Likewise.
 +      * tests/java-sources.test: Likewise.
 +      * tests/java-uninstall.test: Likewise.
 +      * tests/javaflags.test: Likewise.
 +      * tests/nobase-nodist.test: Likewise.
 +      * tests/py-compile-basedir.test: Likewise.
 +      * tests/py-compile-basic.test: Likewise.
 +      * tests/py-compile-basic2.test: Likewise.
 +      * tests/py-compile-destdir.test: Likewise.
 +      * tests/py-compile-env.test: Likewise.
 +      * tests/py-compile-option-terminate.test: Likewise.
 +      * tests/py-compile-usage.test: Likewise.  Since we are at it,
 +      add an extra blank line, for clarity.
 +
 +2011-09-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      automake: remove special handling of `ANSI2KNR' make variable
 +      * automake.in (define_configure_variable): Remove special-cased
 +      handling of `ANSI2KNR' variable.  Related minor simplifications.
  
  2011-09-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        of the `.java' files.  Correct other minor blunders.  Improve some
        comments.
  
 -2011-04-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +2011-09-15  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 -      java: allow both JAVA and nobase_JAVA in the same Makefile.am
 -      * automake.in (handle_java): Also strip `nobase_' from the given
 -      prefix, when needed.
 -      * tests/java-clean.test: Update and extend.
 -      * tests/java-compile-install.test: Likewise.
 -      * tests/java-no-duplicate.test: Likewise.
 -      * tests/java-sources.test: Likewise.
 -      * tests/java-noinst.test: Likewise.
 -      * tests/java-mix-dist-nodist.test: Renamed to ...
 -      * tests/java-mix.test: ... this, and extended.
 -      * tests/java-nobase.test: New test, still xfailing due to
 -      unrelated issues.
 -      * tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
 +      automake: remove code duplication in 'handle_tests'
 +      * automake.in (handle_tests): Factor out some code dealing with
 +      test extensions and rules for generation of `.log' files into ...
 +      (handle_per_suffix_test): ... this new subroutine.
 +      * tests/parallel-tests-exeext.test: New test.
 +      * tests/Makefile.am (TESTS): Update.
  
 -2011-04-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +2011-09-13  Peter Rosin  <peda@lysator.liu.se>
  
 -      java: allow both dist_JAVA and nodist_JAVA in the same Makefile.am
 -      Fixes automake bug#8434.
 -      * automake.in (handle_java): Strip `dist_' and `nodist_' from
 -      the given prefix.  Define a new internal Makefile variable
 -      `am__java_sources'.  Related adjustments.
 -      * lib/am/java.am (JAVAC, JAVAROOT, CLASSPATH_ENV): Define only the
 -      first time this am file is processed.
 -      (class%DIR%.stamp): Stamp file renamed ...
 -      (class%NDIR%.stamp): ... to this, so that the `dist_' and `nodist_'
 -      prefixes are stripped from the name of the stampfile.  Adjust
 -      declaration of dependencies by using the new automake-generated
 -      internal variable `$(am__java_sources)'.  In the rule, use `$@'
 -      as the name of the target, rather than hard-coding it.
 -      * tests/java.test: Update and extend.
 -      * tests/java-no-duplicate.test: New test.
 -      * tests/java-mix-dist-nodist.test: Likewise.
 -      * tests/java-compile-and-install.test: Likewise.
 -      * tests/java-clean.test: Likewise.
 -      * tests/java-sources.test: Likewise.
 -      * tests/Makefile.am (TESTS): Update.
 +      * tests/defs [$sh_errexit_works = yes]: Output 'SIGINT' for signal 2.
 +
 +2011-09-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      self tests: work around 'unset' spurious non-zero return value
 +      * tests/self-check-exit.tap ($init): Unset the possibly already
 +      unset variable `am_explicit_skips' when the `errexit' shell flag
 +      is not yet active, for the benefit of shell that return a non-zero
 +      status when unsetting an already-unset variable.
 +
 +2011-09-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: an explicative comment on signal-related woes
 +      * tests/self-check-exit.tap: Add pointer to a bug-autoconf
 +      discussion explaining why this test needs to temporarily block
 +      SIGINT.
 +
 +2011-09-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: also trap SIGQUIT; other fixes
 +      Some shells seems to just ignore SIGQUIT under some circumstances,
 +      even when it is not blocked; however, if the signal it trapped,
 +      the trap gets correctly executed.
 +      * tests/defs [$sh_errexit_works = yes]: Also trap SIGQUIT. Add
 +      extensive explanation of why we do so.
 +      * tests/self-check-cleanup.tap: Improve and fix to ensure that an
 +      earlier failure does not prevent the rest of the test to execute.
 +      Problem revealed by a failure in `self-check-cleanup.tap'.
 +
 +2011-09-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: work around weird ksh behaviour w.r.t. signal handling
 +      * tests/defs (is_blocked_signal): Use perl to determine whether a
 +      signal is trapped, since trying to do it portably within the shell
 +      means opening a nasty can of worms.
 +      For more information and background, see:
 +       <http://lists.gnu.org/archive/html/bug-autoconf/2011-09/msg00004.html>
 +       <http://mail.opensolaris.org/pipermail/ksh93-integration-discuss/2009-February/004121.html>
 +       <http://www.cons.org/cracauer/sigint.html>
 +
 +2011-09-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      cosmetics: fix various typos and grammaros
 +      * NEWS: Fix typos.
 +      * tests/py-compile-basic.test: Likewise.
 +      * tests/py-compile-basedir.test: Fix botched wording in comments.
 +      * tests/py-compile-option-terminate.test: Fix typo and incomplete
 +      comment.
 +      Suggestions by Peter Rosin.
 +
 +2011-09-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: remove redundant line from a test script
 +      * tests/test-log.test (fail.test): Remove extra `echo' command,
 +      probably due to a past copy&paste blunder.
 +
 +2011-09-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: convert another test to TAP
 +      * tests/primary-prefix-invalid-couples.test: Renamed ...
 +      * tests/primary-prefix-invalid-couples.tap: ... to this, and
 +      converted to the use of the TAP protocols (this requires only
 +      very minimal changes this time).
 +      * tests/list-of-tests.mk: Update.
  
  2011-09-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        invocations, and by always calling autoconf with the `--force'
        flag.
  
 +2011-09-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: minor optimizations/simplifications in some aclocal tests
 +      * acloca11.test: Instead of running ./configure and then grepping
 +      the file it has produced, directly grep configure.  Add trailing
 +      `:' command.
 +      * acloca12.test: Likewise.
 +      * acloca10.test: Likewise.  Also, remove the autom4te caches
 +      by hand, instead of sleeping to ensure they get outdated and
 +      ignored.
 +      * aclocal9.test: Likewise.
 +      * acloca18.test: Likewise.  Also, do not remove file `foo',
 +      which is not being created anymore.
 +      * acloca20.test: The test makes sense only if the system support
 +      real symlinks, so skip it if this is not the case.  This allows
 +      for various simplifications.
 +
 +2011-09-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      prove: avoid weird signal-related bug
 +      * tests/defs (trap): In the trap code dealing with SIGPIPE
 +      signal, ignore further signals of the same kind.
 +      See also Test::Harness issue [rt.cpan.org #70855], archived at
 +      <https://rt.cpan.org/Ticket/Display.html?id=70855>
 +
 +2011-09-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: allow use of `prove' to run automake testsuite
 +      * tests/prove-runner: New helper script; mostly it wraps
 +      our `*.test' test scripts to make them runnable by the
 +      `prove' utility.
 +      * tests/Makefile.am (EXTRA_DIST): Distribute it.
 +      (PROVE, AM_PROVEFLAGS, AM_PROVECMD): New variables.
 +      (prove, installprove): New targets, used run the automake
 +      testsuite through the `prove' utility.
 +      * tests/gen-testsuite-part: For any considered dependency,
 +      generate a variables that groups all the tests depending on
 +      it.  This is especially useful for use in the new `prove'
 +      and `installprove' targets, which cannot rely on make for
 +      inter-test dependencies, and have to handle them "by hand".
 +
 +2011-09-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests defs: more namespace-safeness
 +      ($using_tap): Renamed ...
 +      ($am_using_tap): ... to this.
 +      ($parallel_tests): Renamed ...
 +      ($am_parallel_tests): ... to this.
 +      ($test_prefer_config_shell): Renamed ...
 +      ($am_test_prefer_config_shell): ... to this.
 +      ($original_AUTOMAKE): Renamed ...
 +      ($am_original_AUTOMAKE): ... to this.
 +      ($original_ACLOCAL): Renamed ...
 +      ($am_original_ACLOCAL): ... to this.
 +      * tests/defs, tests/defs-static.in, tests/gen-testsuite-part,
 +      tests/README, and all callers: Adjusted.
 +      * tests/Makefile.am (AM_TESTS_ENVIRONMENT): Adjust, and rewrite
 +      to make future adjustments easier.
 +      * tests/defs (funcs_file_): Renamed ...
 +      (am_funcs_file): ... to this.
 +      * Makefile.am (sc_tests_obsolete_variables): New maintainer
 +      check.
 +      (syntax_check_rules): Add it.
 +
  2011-09-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        aclocal: better URL reference in error message
        definitions, reference the automake page at `www.gnu.org', not
        at `sources.redhat.com'.
  
 +2011-09-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: avoid creating useless files in some test directories
 +      * tests/aclocal.test: Define `$am_create_testdir' to "empty"
 +      before sourcing ./defs, to avoid bringing in unused auxiliary
 +      files.  Related adjustments.
 +      * tests/aclocal3.test: Likewise.
 +      * tests/aclocal8.test: Likewise.
 +      * tests/aclocal9.test: Likewise.
 +      * tests/acloca10.test: Likewise.
 +      * tests/acloca11.test: Likewise.
 +      * tests/acloca12.test: Likewise.
 +      * tests/acloca15.test: Likewise.
 +      * tests/acloca16.test: Likewise.
 +      * tests/acloca17.test: Likewise.
 +      * tests/acloca18.test: Likewise.
 +      * tests/acloca20.test: Likewise.
 +      * tests/acloca21.test: Likewise.
 +      * tests/acloca23.test: Likewise.
 +      * tests/aclocal-print-acdir.test: Likewise.
 +      * tests/ar-lib.test: Likewise.
 +      * tests/compile.test: Likewise.
 +      * tests/compile2.test: Likewise.
 +      * tests/compile3.test: Likewise.
 +      * tests/compile6.test: Likewise.
 +      * tests/instsh2.test: Likewise.
 +      * tests/instsh3.test: Likewise.
 +      * tests/mdate5.test: Likewise.
 +      * tests/mdate6.test: Likewise.
 +      * tests/missing3.test: Likewise.
 +      * tests/missing5.test: Likewise.
 +      * tests/mkinst3.test: Likewise.
 +      * tests/self-check-explicit-skips.test: Likewise.
 +      * tests/self-check-report.test: Likewise.
 +      * tests/self-check-sanity.test: Likewise.
 +      * tests/tap-driver-stderr.test: Likewise.
 +
 +2011-09-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: more environment cleanup
 +      * tests/defs: Also unset the XFAIL_TESTS, and various
 +      LOG_DRIVER, LOG_COMPILER variables (and corresponding
 +      flags variable).
 +
 +2011-09-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: allow depmod.tap to only run a subset of its tests
 +      * tests/depmod.tap: If command-line arguments are passed to the
 +      tests, they are now taken as the list of test names for which the
 +      checks are to be run.
 +
 +2011-09-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: allow instspc.tap to only run a subset of its tests
 +      * tests/instspc.tap: If command-line arguments are passed to the
 +      tests, they are now taken as the list of test names for which the
 +      checks are to be run.
 +
  2011-09-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        coverage: distcheck-hook to catch missing/outdated *.m4 files
        (EXTRA_DIST): Distribute it.
        (TESTS): Add the new tests.
  
 +2011-09-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: more granularity in variables for tools overriding
 +      Among the other things, this change makes it possible to use, at
 +      the same time, an autoconf version in the automake testsuite and
 +      another one in the automake build system; even more importantly, it
 +      makes it possible to use, say, a non-GNU make implementation in the
 +      test scripts, while at the same time using GNU make to drive the
 +      execution of the automake's test suite.
 +      * tests/defs-static.in (TEX, EGREP, FGREP, SHELL, PERL, MAKE,
 +      AUTOCONF, AUTOM4TE, AUTORECONF, AUTOHEADER, AUTOUPDATE,
 +      original_AUTOMAKE, original_ACLOCAL): Allow and prefer overriding
 +      through corresponding `AM_TESTSUITE_..' variables; for example,
 +      $GREP can now be overridden by an exported `$AM_TESTSUITE_GREP'
 +
 +2011-09-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: fix `skip_row_' subroutine in tap-functions.sh
 +      * tests/tap-functions.sh (skip_row_): Use `seq_', not `seq', to
 +      be portable to non-GNU systems.
 +      Bug revealed by a testsuite error on Solaris.
 +
 +2011-09-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      installcheck: support it in our own testsuite
 +      * NEWS: Update.
 +      * tests/defs-static.in ($am_running_installcheck): New variable.
 +      Initialize it to a default of "no", and sanity-check its value.
 +      ($am_datadir, $am_docdir, $am_automake_acdir, $am_system_acdir,
 +      $am_bindir, $am_scriptdir, $am_pkgvdir): New variables,
 +      initialized from AC_SUBST'ed values which are adaptively chosen
 +      depending on whether the testsuite is running in "simple" mode
 +      or in "installcheck" mode.
 +      ($MISSING): Remove, it's not really required by the testsuite.
 +      ($PATH): Update using `$am_bindir', not `$testbuilddir'.
 +      * Makefile.am (installcheck-local): New target.
 +      * lib/Automake/tests/Makefile.am (installcheck-local): New target.
 +      (AM_TESTS_ENVIRONMENT, AM_PL_LOG_FLAGS): Adaptively choose the
 +      `-I' flags for perl based on whether the tests are being run by
 +      "make check" or "make installcheck".
 +      * tests/Makefile.am (installcheck-local): New target.
 +      (defs-static): Generate it at make time, not at configure time,
 +      in order to correctly resolve all the indirections in the
 +      AC_SUBST'd variables; done with the help of ...
 +      (do_subst): ... this new macro.
 +      (EXTRA_DIST): Explicitly distribute `defs-static.in'.
 +      (CLEANFILES): Remove `defs-static'.
 +      * configure.ac (AC_CONFIG_FILES): Remove `tests/defs-static'.
 +      (AC_SUBST): Substitute also `automake_acdir', `system_acdir',
 +      `scriptdir' and `amdir' to proper values.
 +      * lib/Makefile.am (scriptdir):  Don't explicitly define anymore.
 +      * lib/am/Makefile.am (amdir): Likewise.
 +      * m4/acdir/dirlist: Remove, it's not needed anymore.  Instead
 +      use ...
 +      * m4/acdir/.placeholder: ... this file.
 +      * m4/Makefile.am (EXTRA_DIST): Update.
 +      (automake_acdir, system_acdir): Don't explicitly define anymore.
 +      * tests/aclocal-print-acdir.test: Use new `$am_...dir' variables,
 +      instead of hard-coding values with $testsrcdir and $testbuilddir,
 +      to test more faithfully under "make installcheck".
 +      * tests/amhello-binpkg.test: Likewise.
 +      * tests/amhello-cflags.test: Likewise.
 +      * tests/amhello-cross-compile.test: Likewise.
 +      * tests/ansi2knr-no-more.test: Likewise.
 +      * tests/autodist-stamp-vti.test: Likewise.
 +      * tests/auxdir.test: Likewise.
 +      * tests/check2.test: Likewise.
 +      * tests/copy.test: Likewise.
 +      * tests/multlib.test: Likewise.
 +      * tests/obsolete.test: Likewise.
 +      * tests/parallel-tests-interrupt.test: Likewise.
 +      * tests/repeated-options.test: Likewise.
 +      * tests/suffix5.test: Likewise.
 +      * tests/tap-doc2.test: Likewise.
 +      * tests/txinfo22.test: Likewise.
 +      * tests/vtexi3.test: Likewise.
 +      * tests/defs: Likewise.  Also, print the values of `$using_tap'
 +      and `$am_running_installcheck', to simplify debugging, and do
 +      some related code movings and tweakings.
 +      * tests/aclocal3.test: Update to avoid possible spurious failures
 +      when running under "make installcheck".
 +      * tests/warnings-unknown.test: Likewise.
 +      * tests/location.test: Likewise, and improve debugging input since
 +      we are at it.
 +      * tests/acloca10.test: Adapt and tweak to work also during a
 +      "make installcheck", and not to require a pre-populated `dirlist'
 +      file.
 +      * tests/acloca18.test: Likewise.
 +      * tests/dirlist2.test: Likewise.
 +      * tests/dirlist.test: Likewise, and remove an obsolete comment.
 +      * tests/README: Update.
 +      * tests/dirlist-abspath.test: New test.
 +      * tests/list-of-tests.mk: Update.
 +
 +2011-09-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      maintcheck: fix spurious failures
 +      * tests/gen-testsuite-part (write_wrapper_script): More uses of
 +      creative quoting in the generated tests, to avoid triggering
 +      failures in the `sc_tests_Exit_not_exit' maintcheck.
 +      * Makefile.am (sc_tests_tap_plan): It's OK for auto-generated
 +      TAP tests that sources an hand-written one not to declare a TAP
 +      plan: the sourced test will do so.
 +      * tests/Makefile.am (checked_test_extensions): Don't define
 +      anymore, the default value `$(TEST_EXTENSIONS)' is correct now.
 +      (expected_list_of_tests): Don't define anymore, the default
 +      value `$(TESTS)' is correct now.
 +
  2011-09-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        aclocal: more granularity in acdir overriding
        * NEWS, bootstrap: Update.
        * doc/automake.texi (aclocal Options, Macro Search Path): Update.
  
 +2011-09-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      cosmetic: rename gen-tests-deps -> gen-testsuite-part
 +      * tests/gen-tests-deps: Renamed ...
 +      * tests/gen-testsuite-part: ... to this.
 +      * bootstrap: Update.
 +      * tests/Makefile.am ($(srcdir)/tests-deps.am): Don't generate
 +      nor include this ...
 +      ($(srcdir)/testsuite-part.am): ... do with this instead.
 +      * tests/.gitignore (tests-deps.am): Don't ignore this ...
 +      (testsuite-part.am): ... ignore this instead.
 +
 +2011-09-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: revamp generation of autogenerated tests
 +      With this change, we make generated tests be real scripts again
 +      -- albeit only thin layers around the tests they wrap.  It turned
 +      out that the apparently clever tricks we played by having lots
 +      of custom (and auto-generated) `..._LOG_COMPILER' variables and
 +      by having the tests in $(wrap_TESTS) not being real on-file-system
 +      scripts caused more pain and confusion than expected, for only
 +      marginal gains.  Also, that previous setup didn't interact very
 +      well with "make check RECHECK_LOGS=", since the log files for
 +      the "wrappee" tests were always considered out-of-date (which in
 +      hindsight is natural, since these log files depended on wrappee
 +      tests that didn't exist -- and weren't created).  And finally, it
 +      wasn't possible to easily and naturally run the wrappee tests
 +      from the command line -- definitely harmful for debugging and
 +      sanity checking.
 +      * tests/gen-wrap-tests: Deleted, its role subsumed into ...
 +      * tests/gen-tests-deps: ... this script, with the help of
 +      (unindent, atomic_write, build_matcher, write_wrapper_script,
 +      %test_generators): ... these new functions and variables.
 +      Other few minor fixlets and improvements.
 +      * tests/wrap-tests.sh: Delete, not needed anymore.
 +      * tests/Makefile.am ($(srcdir)/wrap-tests.am): Don't generate
 +      nor include anymore.
 +      (EXTRA_DIST): Update.
 +      (wrap_TESTS): Renamed to ...
 +      (generated_TESTS): ... this.
 +      ($(generated_TESTS)): Must have the same dependencies of
 +      `$(srcdir)/tests-deps.am'.
 +      Other minor related reordering and adjustments.
 +      * bootstrap: Do not generate `wrap-tests.am' anymore.
 +      * tests/.gitignore (wrap-tests.am): Don't ignore anymore.
 +      (*-w.test, *-w.tap): Ignore.
 +      * tests/README: Update paragraph on automatically-generated
 +      tests.
 +
 +2011-09-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: automatize generation of dependencies for tests
 +      * tests/gen-test-deps: New script, automatically generates
 +      dependencies for the tests.
 +      * tests/Makefile.am (EXTRA_DIST): Distribute it.
 +      ($(srcdir)/tests-deps.am): New rule.
 +      (include $(srcdir)/tests-deps.am): New inclusion.
 +      Remove hand-written dependencies for tests.  Other related
 +      updates.
 +      * tests/list-of-tests (tap_with_common_setup_TESTS,
 +      tap_other_TESTS): Delete, their content merged back into ...
 +      (handwritten_TESTS): ... this.
 +      * tests/.gitignore (tests-deps.am): New ignored file.
 +      * bootstrap: Generate `tests/tests-deps.am'.
 +
 +2011-09-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: avoid spurious failure due to bug in older TAP::Parser
 +      Older TAP::Parser versions (e.g., 3.10) erroneously convert a test
 +      number `0' into `1'; do not let this bug cause a spurious failure
 +      in our testsuite.
 +      * tests/tap-test-number-0.test: Skip if the aforementioned
 +      TAP::Parser bug is detected.
 +
 +2011-09-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap/perl: be more portable to older perl versions
 +      * lib/tap-driver.pl (trap_perl_warnings_and_errors): Do not use
 +      the three-args version of the `open' builtin, it is not well
 +      supported by older perl versions (at least perl 5.6.2).
 +      (start): Add a no-op statement to pacify a "possible typo ... used
 +      only once" perl warning.
 +
 +2011-09-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap/perl: be more portable to older TAP::Parser versions
 +      * lib/tap-driver.pl (start): Do not call the `ignore_exit' method
 +      on our TAP parser: it is not supported in older TAP::Parser
 +      versions (e.g., 3.10), and is not really required by our usage of
 +      the parser object.
 +
 +2011-09-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious Cygwin failure of a test on TAP support
 +      * tests/tap-bad-prog.tap (noexec.test): Add forgotten `echo'.
 +      When trying to run it, redirect its output to /dev/null, to
 +      avoid confusing automake's testsuite own TAP driver.
 +
 +2011-09-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: fix glitch in TAP version of `warn_' function
 +      * tests/tap-functions.sh (warn_): Do not display the warning
 +      message two times.
 +
 +2011-09-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix another spurious failure due to ignored signals
 +      * tests/tap-signal.test: Renamed ...
 +      * tests/tap-signal.tap: ... to this, converted to the use of the
 +      TAP protocol, and improved not to try to use/trap signals that
 +      are ignored by the parent shell (they will be forcibly ignored
 +      by all the child processes too).  Extend the test a bit since we
 +      are at it.
 +      * tests/list-of-tests.mk: Update.
 +
 +2011-09-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix a spurious failure due to lacking Fortran compilers
 +      * tests/silent-many-generic.test (configure.in): Cause the test
 +      to be skipped if `configure' fails to find working C++, Fortran
 +      and Fortran 77 compilers.
 +
 +2011-09-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      self tests: more use of TAP
 +      * tests/self-check-reexec.test: Renamed ...
 +      * tests/self-check-reexec.tap: ... to this, converted to the
 +      use of TAP protocol, and extended a bit.
 +      * tests/self-check-seq.test: Renamed ...
 +      * tests/self-check-seq.tap: ... to this, and converted to the
 +      use of TAP protocol.
 +      * tests/list-of-tests.mk: Update.
 +
 +2011-09-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      self tests: fix spurious failures when /bin/ksh do not exists
 +      * tests/self-check-reexec.test: Ensure that the non-bash shells
 +      we look do really exists.  Since we are at it, also try the name
 +      `ash', non `dash', for the Almquist Shell, for Cygwin 1.5.
 +
 +2011-09-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: more use of TAP in our own testsuite
 +      * tests/parallel-tests-interrupt.test: Renamed ...
 +      * tests/parallel-tests-interrupt.tap: ... to this, and converted
 +      to the use of TAP protocol.
 +      * tests/self-check-cleanup.test: Renamed ...
 +      * tests/self-check-cleanup.tap: ... to this, and converted to the
 +      use of TAP protocol.
 +      * tests/self-check-dir.test: Renamed ...
 +      * tests/self-check-dir.tap: ... to this, and converted to the use
 +      of TAP protocol.
 +      * tests/self-check-is_newest.test: Renamed ...
 +      * tests/self-check-is_newest.tap: ... to this, and converted to
 +      the use of TAP protocol.
 +      * tests/self-check-unindent.test: Renamed ...
 +      * tests/self-check-unindent.tap: ... to this, and converted to
 +      the use of TAP protocol.
 +      * tests/list-of-tests.mk: Update.
 +
 +2011-09-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      self tests: sanity check on 'is_blocked_signal' function
 +      * tests/self-check-is-blocked-signal.tap: New test.
 +      * tests/list-of-tests.mk: Update.
 +
 +2011-09-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failures due to ignored signals
 +      * tests/defs (is_blocked_signal): New function.
 +      * tests/parallel-tests-interrupt.test: Do not try to use/trap
 +      signals that are ignored by the parent shell: they will be
 +      ignored by all the child processes too.
 +      * tests/self-check-exit.test: Likewise.
 +      * tests/self-check-cleanup.test: Likewise, and do few minor
 +      improvements and extensions since we are at it.
 +
  2011-09-05  Peter Rosin  <peda@lysator.liu.se>
  
        * tests/amhello-binpkg.test: Add missing $EXEEXT usage.
  
  2011-09-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 +      tests: remove redundant settings of `errexit' shell flag
 +      * doc-parsing-buglets-colneq-subst.test: Do not set the
 +      `errexit' shell flag, as it is already set by `tests/defs'.
 +      * doc-parsing-buglets-tabs.test: Likewise.
 +      * java-empty-classpath.test: Likewise.
 +      * vala-vpath.test: Likewise.
 +
 +2011-09-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: more uses of `$top_testsrcdir', in the `amhello' tests
 +      * tests/amhello-binpkg.test: Use `$top_testsrcdir' instead
 +      of `$testsrcdir/..'.
 +      * tests/amhello-cflags.test: Likewise.
 +      * tests/amhello-cross-compile.test: Likewise.
 +
 +2011-09-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: avoid creating useless files in the `amhello' tests
 +      * tests/amhello-binpkg.test: Define `$am_create_testdir' to
 +      "empty" before sourcing ./defs, to avoid bringing in unused
 +      auxiliary files.
 +      * tests/amhello-cflags.test: Likewise.
 +      * tests/amhello-cross-compile.test: Likewise.
 +
 +2011-09-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
        coverage: vala support failing for VPATH from-scratch builds
        * tests/vala-vpath.test: New test, xfailing.
        * tests/Makefile.am (TESTS): Update.
        * tests/doc-parsing-buglets-tabs.test: Likewise.
        * tests/Makefile.am (TESTS): Update.
  
 +2011-09-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      automake: fix regression due to de-ansification support removal
 +      The last change `v1.11-947-g136b489' removed code that automake
 +      was using to decide whether binary objects were built by the
 +      generated Makefile.in, so that it could avoid to emit unneeded
 +      code when this was not the case.  Re-introduce such code in a
 +      less-obfuscated form, and add a test to ensure we don't regress
 +      again.
 +      * automake.in ($must_handle_compiled_objects): New global
 +      variable, telling whether the generated Makefile has to build
 +      compiled objects.
 +      (initialize_per_input): Reset it.
 +      (handle_programs, handle_libraries, handle_ltlibraries): Set
 +      it to a true value when required.
 +      (handle_compile): Don't generate any code if the variable
 +      `$must_handle_compiled_objects' is not set to a true value.
 +      * tests/no-extra-makefile-code.test: New test.
 +      * tests/Makefile.am (TESTS): Add it.
 +
 +2011-08-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      automake: cleanups after de-ansification support removal (2)
 +      * automake.in ($get_object_extension_was_run): Remove, it's not
 +      really needed anymore.
 +      (&get_object_extension): Remove, it's a no-op now.
 +      All callers adjusted.
 +
 +2011-08-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      automake: cleanups after de-ansification support removal (1)
 +      * automake.in (lang_c_rewrite, handle_single_transform): Rename
 +      variable `$nonansi_obj' to `$obj'.
 +
 +2011-08-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      ansi: remove obsolete code/files for de-ANSI-fication support
 +      * lib/ansi2knr.1, lib/ansi2knr.c: Deleted.
 +      * lib/Makefile.am (dist_pkgvdata_DATA): Do not list them anymore.
 +      * lib/am/ansi2knr.am: Delete.
 +      * lib/am/Makefile.am (dist_am_DATA): Do not list it anymore.
 +      * lib/Automake/Variable.pm (%_am_macro_for_var): Remove entries for
 +      `ANSI2KNR' and `U'.
 +      * m4/depout.m4 (_AM_OUTPUT_DEPENDENCY_COMMANDS): Don't care anymore
 +      about possible definition of the `$U' variable.
 +      * automake.in (@common_files): Drop `ansi2knr.1' and `ansi2knr.c'.
 +      (struct): Remove scalar field `ansi'.
 +      All callers adjusted.
 +      (&lang_c_finish, %de_ansi_files): Remove, they're not required
 +      anymore.
 +      All callers adjusted.
 +      ($get_object_extension_was_run): Fix typo in comment.
 +      (&get_object_extension): Drop code dealing with de-ansification;
 +      this function basically a no-op now, but is required to properly
 +      initialize `$get_object_extension_was_run' variable.
 +      (&handle_languages, &handle_compile, &lang_c_rewrite): Drop code
 +      dealing with de-ansification.
 +
 +2011-08-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      ansi: reject attempts to use automatic de-ANSI-fication support
 +      * tests/protos.m4 (AM_C_PROTOTYPES): Error out whenever called.
 +      * lib/Automake/Options.pm (_process_option_list ): Error out
 +      with a proper error message when the `ansi2knr' option is used.
 +      Related updates to comments.
 +      * tests/depacl2.test: Update.
 +      * tests/ansi2knr-no-more.test: New test.
 +      * tests/Makefile.am (TESTS): Add it.
 +      * NEWS: Update.
 +
 +2011-08-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: remove tests about obsolete de-ANSI-fication support
 +      * tests/ansi.test: Delete.
 +      * tests/ansi10.test: Likewise.
 +      * tests/ansi2.test: Likewise.
 +      * tests/ansi2knr-deprecation.test: Likewise.
 +      * tests/ansi3.test: Likewise.
 +      * tests/ansi3b.test: Likewise.
 +      * tests/ansi4.test: Likewise.
 +      * tests/ansi5.test: Likewise.
 +      * tests/ansi6.test: Likewise.
 +      * tests/ansi7.test: Likewise.
 +      * tests/ansi8.test: Likewise.
 +      * tests/ansi9.test: Likewise.
 +      * tests/cxxansi.test: Likewise.
 +      * tests/libobj8.test: Likewise.
 +      * tests/subobj3.test: Likewise.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-08-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      docs: remove description of de-ANSI-fication support from manual
 +      * doc/automake.texi (Auxiliary Programs): Remove mention of
 +      `ansi2knr.c' and `ansi2knr.1'.
 +      (Obsolete Macros): Remove mention of `AM_C_PROTOTYPES'.  Do not
 +      index it nor variables `ANSI2KNR' and `U' anymore.
 +      (List of Automake options): Remove mention of `ansi2knr' option,
 +      and obsolete entries for concept and option indexes.
 +      (Optional): Remove entry about `AM_C_PROTOTYPES'.
 +      (@c LocalWords): Remove `ansi' and `knr'.
 +      (@menu, @detailmenu): Remove entries about de-ANSI-fication
 +      support.
 +
 +2011-08-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: better respect of TAP usage in wrapped tests
 +      * tests/gen-wrap-tests: Partial rewrite to take into account the
 +      possibility that the wrapped test uses the TAP protocol.  This
 +      complicates the code quite a bit, but is essential to ensure real
 +      correctness in all the wrapped scripts.
 +      * tests/wrap-tests.sh: Update, and add few more sanity checks.
 +
 +2011-08-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: use both perl and awk implementations for tests on TAP
 +      * tests/gen-wrap-tests (get_list_for_pltap): New function, gets
 +      the list of tests that check the Automake TAP support.
 +      ($defines_for_pltap): New variable.
 +      ($wrapper_type_list): Add "pltap".
 +      * tests/defs-static.in: Check that `$am_tap_implementation' is
 +      not exported in the environment.
 +      * tests/self-check-env-sanitize.tap: Update.
 +
 +2011-08-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: two single auxiliary scripts to run/generate wrapped tests
 +      * tests/config-shell-tests.sh, tests/parallel-tests.sh,
 +      tests/gen-config-shell-tests, tests/gen-parallel-tests: Deleted,
 +      their roles taken over by ...
 +      * tests/wrap-tests.sh, tests/gen-wrap-tests: ... these new more
 +      general scripts.
 +      * tests/Makefile.am (EXTRA_DIST): Distribute the new scripts, and
 +      do not distribute the obsolete ones anymore.
 +      ($(srcdir)/parallel-tests.am, $(srcdir)/config-shell-tests.am): Do
 +      not include nor generate anymore, they have been superseded by ...
 +      ($(srcdir)/wrap-tests.am): ... this new fragment, automatically
 +      generated by `gen-wrap-tests'.
 +      (PTEST_LOG_COMPILER, SHTST_LOG_COMPILER): Delete, they are now
 +      defined in the new `wrap-tests.am' makefile fragment.
 +      (TEST_EXTENSIONS): Do not append to it anymore, that is now done
 +      by the new `wrap-tests.am' makefile fragment above.
 +      ($(parallel_tests:.ptest=.log), $(config_shell_tests:.shtst=.log),
 +      $(parallel_tests), $(config_shell_tests): Remove this dependencies,
 +      superseded by ...
 +      ($(wrap_TESTS), $(wrap_LOGS)): ... these ones.
 +      (MAINTAINERCLEANFILES): Delete, it's not used anymore.
 +      (TESTS): Do not contain anymore `$(config_shell_tests)' nor
 +      `$(parallel_tests)', contain `$(wrap_TESTS)' instead, as defined
 +      by `$(srcdir)/wrap-tests.am'.
 +      Other related minor edits and reorderings.
 +      * bootstrap, tests/.gitignore, tests/README: Update.
 +
 +2011-08-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: list of tests placed in a separate Makefile fragment
 +      This change allows us to easily use make instead of by-hand (and
 +      more fragile) grepping to extract the list of hand-written tests
 +      from our Makefiles.
 +      * bootstrap (BOOTSTRAP_MAKE): New variable.
 +      Use it to run make in order to extract the list of hand-written
 +      tests from ...
 +      * tests/list-of-tests.mk: ... this new file, where they are
 +      listed in ...
 +      (handwritten_TESTS, tap_with_common_setup_TESTS, tap_other_TESTS):
 +      ... these variables, extracted respectively from ...
 +      * tests/Makefile.am (handwritten_tests, tap_other_tests,
 +      tap_with_common_setup_tests): ... these older variables, now
 +      removed.
 +      (EXTRA_DIST, expected_list_of_tests): Update w.r.t. the variable
 +      names' changes.
 +      (include $(srcdir)/list-of-tests.mk): New inclusion.
 +      Remove an overkill indirection, and with it ...
 +      (tap_with_common_setup_logs): ... this variable.
 +      ($(srcdir)/parallel-tests.am, $(srcdir)/config-shell-tests.am):
 +      Update to match the new interface of ...
 +      (gen-parallel-tests, gen-config-shell-tests): ... these scripts,
 +      that now read the list of tests from the standard input.
 +
 +2011-08-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: prefer AM_... variables to user-reserved ones in Makefile
 +      * tests/Makefile.am (TAP_LOG_DRIVER_FLAGS): Renamed ...
 +      (AM_TAP_LOG_DRIVER_FLAGS): ... to this.
 +
 +2011-08-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: some minor fixlets w.r.t. TAP-based tests
 +      The variable that is used by our test scripts to decide whether
 +      they are "plain" or TAP-based is `using_tap'; however, some
 +      peripheral sanity checks and sanitization code in our testsuite
 +      were erroneously using the `use_tap' variable instead.  Fix that.
 +      * tests/Makefile.am (AM_TESTS_ENVIRONMENT): Nullify `using_tap',
 +      not `use_tap'.
 +      * tests/defs-static.in: Check that `using_tap', not `use_tap',
 +      is not exported.
 +      * tests/self-check-env-sanitize.test: Update.
 +
 +2011-08-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: avoid re-running a test with the 'parallel-tests' option
 +      * tests/backcompat5.test (parallel_tests): Define to "no", to
 +      prevent the generation of a sibling test script that uses the
 +      'parallel-tests' driver.  That would be useless anyway, since
 +      we manually override the contents of configure.in, thus clobbering
 +      the `parallel-tests' option in AM_INIT_AUTOMAKE.
 +      Fix a typo in comments since we are at it.
 +
 +2011-08-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: defaults to awk+shell driver in tests on TAP support
 +      * tests/defs ($am_tap_implementation): Default to "shell", not
 +      to "perl".
 +
  2011-08-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        tests: list "forgotten" test script in TESTS
        * lib/ylwrap: Convert tabs to spaces.
        Reported by Karl Berry.
  
 +2011-08-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: different test scripts cannot share the same basename
 +      If two test scripts have the same basename, they will end up
 +      sharing the same log file, leading to all sort of undefined and
 +      undesired behaviours.  Add a Makefile check verifying that this
 +      is not the case.
 +      * tests/test-logs-repeated.test: New test, verifying previously
 +      unspecified semantics (in the definition of $(TEST_LOGS) from
 +      $(TESTS)) that we use in our new check.
 +      * tests/Makefile.am (TESTS): Update.
 +      (check-no-repeated-test-name): New .PHONY check.
 +      (check-local): Depend on it.
 +
 +2011-08-26  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failure for awk implementation of TAP driver
 +      * tests/tap-realtime.test: The awk+shell implementation of the TAP
 +      driver must "read ahead" of one line in order to catch the exit
 +      status of the test script it runs.  So, in the TAP-producer script
 +      here, be sure to echo one "dummy" line after each TAP result line
 +      in order not to cause false positives.
 +
 +2011-08-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap/awk: allow escaping of TAP directives
 +      * lib/tap-driver.sh (setup_result_obj): Handle escaping of TAP
 +      directives in a way tat is (mostly) compatible by what is done
 +      by the TAP::Parser module.
 +      With this change, the tests `tap-escape-directive.test' and
 +      `tap-escape-directive-2.test' now also pass with the shell/awk
 +      implementation of the TAP driver.
 +
 +2011-08-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: more about escaping of TAP directives
 +      * tests/tap-escape-directive.test: Make grepping of testsuite
 +      progress output slightly stricter.
 +      * tests/tap-escape-directive-2.test: New test (failing with the
 +      awk implementation of the TAP driver).
 +      * tests/Makefile.am (tap_with_common_setup_tests): Update.
 +
 +2011-08-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: improve syncing between awk+shell and perl implementations
 +      * lib/tap-driver.pl (stringify_test_result): Renamed ...
 +      (stringify_result_obj): ... to this.  Break up a clause in the
 +      long "if/elsif/.../else" construct to avoid unaesthetic line
 +      breaks and to be more synced with the sibling function in
 +      `tap-driver.sh'.  Rename the `$result', `$PASS' and `$FAIL'
 +      variables to respectively `$result_obj', `$COOKED_PASS' and
 +      `$COOKED_FAIL', for clarity and better syncing.
 +      (handle_tap_test): Renamed  ...
 +      (handle_tap_result): ... to this, and change the name of the
 +      `$test' local variable to `$result_obj'.
 +      (extract_comment): Reimplement using the simpler `index' and
 +      `substr' builtins, rather than with more advanced uses of
 +      regular expressions.
 +      (%test_results, @test_results): Renamed respectively ...
 +      (%test_results_seen, @test_results_list): ... to these, and
 +      related adjustments throughout the `TEST_RESULTS' block.
 +      (main, get_global_test_result): Refactor and do some cosmetic
 +      changes to make these functions clearer and better synced with
 +      sibling code in `tap-driver.sh'.
 +      Other minor cosmetic and typo fixes.
 +      * lib/tap-driver.sh (extract_tap_comment): Remove outdated
 +      "FIXME" comments.
 +      (get_global_test_result): Small reordering to make it better
 +      synced with its sibling function in `tap-driver.pl'.
 +      (stringify_result_obj): Consistently use `result_obj' as the
 +      parameter name.
 +      Other minor cosmetic and typo fixes.
 +
 +2011-08-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap/perl: don't redirect perl warnings/errors to log files
 +      With this change, the test `tap-driver-stderr.test' also passes
 +      with the perl implementation of the TAP driver.
 +      * lib/tap-driver.pl (start): Save the original stderr into the
 +      `OLDERR' file handle, and call ...
 +      (trap_perl_warnings_and_errors): ... this new function, trapping
 +      the `__WARN__' and `__DIE__' "pseudo-signals" to ensure that the
 +      warning and error messages goes to that original stderr stream.
 +      Since we are at it, be sure to prepend all possible "die" message
 +      with the name of the script as given by the `$ME' variable.
 +
 +2011-08-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap/perl: add copyright notice, version string, and emacs stuff
 +      * lib/tap-driver.pl: Add proper copyright notice and bug reporting
 +      address.  Remove obsolete heading comments.  Add trailing comments
 +      for emacs w.r.t. code-formatting rules and automatic updating of
 +      the date-based script version saved into the `$VERSION' variable.
 +      ($VERSION): Define to the current UTC date.
 +
 +2011-08-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap/awk: don't redirect awk stderr to log files
 +      * lib/tap-driver.sh: Handle the file descriptors redirections
 +      more smartly, to avoid sending error messages from awk (about
 +      e.g. syntax or I/O errors) to the log files instead that to the
 +      console.
 +      * tests/tap-driver-stderr.test: New test, verifying the improved
 +      driver behaviour.  Notice that this test still fails when using
 +      the perl implementation of the TAP driver.
 +      * tests/Makefile.am (tap_other_tests): Update.
 +
 +2011-08-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap/awk: remove obsolete "FIXME" comment
 +      * lib/tap-driver.sh: Remove obsolete "FIXME" comment about our
 +      driver losing the exit status of the tested program; this issue
 +      has been solved in precedent commit `v1.11-1052-gd630a0d'.  Fix
 +      an unrelated typo in comments since we are at it.
 +
 +2011-08-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: avoid spurious failure on Solaris
 +      * tests/tap-signal.test (signal_caught): Fix a regression from
 +      commit `v1.11-1052-gd630a0d' that was causing this test to fail
 +      spuriously on Solaris (due to an already worked-around Solaris
 +      /bin/sh bug, see commit `v1.11-981-g0ef3ef5').
 +
 +2011-08-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: use the new awk+shell TAP driver in our own testsuite
 +      * tests/Makefile.am (TAP_LOG_DRIVER): Redefine to use the new
 +      awk+shell tap driver, which should be complete enough for use in
 +      a "controlled" production environment.
 +
 +2011-08-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap/awk: handle non-zero exit status from the test command
 +      * lib/tap-driver.sh (get_test_exit_message): New function in the
 +      awk script, used to extract the exit status of the test program,
 +      or at least a good guess of it.
 +      (write_test_results): Use it, reporting an ERROR result if it
 +      detects that the test program exited with a non-zero status.
 +      * tests/tap-signal.test: Account for the differences in the
 +      error messages generated by the awk and perl TAP drivers.  Fix
 +      an unrelated typo in comments since we are at it.
 +
 +2011-08-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap/awk: prepare to fetch the exit status of the test command
 +      * lib/tap-driver.sh: Rewrite some logic in the main parsing loop,
 +      to make it possible to read the exit status of the test command
 +      from the last line of the input stream.
 +
 +2011-08-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap/awk: refactor for future changes
 +      * lib/tap-driver.sh: Rewrite the awk script so that the parsing
 +      of the input stream is implemented as a hand-rolled loop in the
 +      BEGIN block, using the `getline' builtin.
 +
 +2011-08-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: avoid spurious failure if rst2html program is missing
 +      * tests/tap-html.test ($required): Require `rst2html'.
 +
 +2011-08-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap/awk: support Solaris /usr/xpg4/bin/awk
 +      * lib/tap-driver.sh: Use `\t', not `\\t', to represent tabulation
 +      character in regexps, even when inside double-quoted strings; that
 +      seems to be more portable to Solaris 10 XPG4 awk.
 +
 +2011-08-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap/awk: support Solaris /usr/bin/nawk
 +      * lib/tap-driver.sh (close_or_die): Remove, the use of the `close'
 +      builtin in there was confusing /usr/bin/nawk from Solaris 10 into
 +      a syntax error.
 +      (write_test_results): Simply use `close' on the `*.trs' file, that
 +      should be enough.
 +
 +2011-08-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap/awk: correctly extract message from SKIP plans
 +      * lib/tap-driver.sh (/^1\.\.0+[ \t]*#/): Add a forgotten `?' to
 +      the regex used to extract the skip message from a "1..0" TAP plan.
 +      * tests/planskip.test: Check for the just-fixed bug.
 +      * tests/tap-planskip-unplanned-corner.test: Don't be too strict
 +      w.r.t. the formatting of the "skip whole test" message, to avoid
 +      failing due to bugs irrelevant for this test (like the one just
 +      fixed).
 +
 +2011-08-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap/awk: support colorized output
 +      * lib/tap-driver.sh: Pass definition of colors to the BEGIN block
 +      of the awk script, using ...
 +      ($init_colors): ... this new variable, which supersedes ...
 +      ($red, $grn, $lgn, $blu, $mgn, $std): ... these variables, which
 +      have been consequently removed.
 +      ($color_tests): We don't have to pass this anymore to the awk
 +      script, so do not convert it to a numeric boolean.
 +      (decorate_result): Implement for real.
 +      With this change, the test 'tap-color.test' now passes.
 +
 +2011-08-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: real (but still incomplete) awk implementation of TAP driver
 +      * lib/tap-driver.sh: Add an incomplete, but mostly working,
 +      implementation of a TAP parser and driver in awk.  It doesn't yet
 +      support colorized output, fetching of exit status from test
 +      programs, nor a way to escape TAP directives in TAP result lines,
 +      but passes all the tests of TAP support in the automake testsuite,
 +      apart from the following ones:
 +        - tap-color.test
 +        - tap-escape-directive.test
 +        - tap-exit.test
 +        - tap-missing-plan-and-bad-exit.test
 +        - tap-passthrough-exit.test
 +        - tap-planskip-badexit.test
 +        - tap-planskip-unplanned-corner.test
 +        - tap-signal.test
 +      Tested on Debian GNU/Linux with GNU awk 3.1.7 and 3.0.2, "original
 +      awk" 2010-05-23-1, and mawk 1.3.3-15 (with which also the test
 +      `tap-realtime.test' fails, in addition to those listed above).
 +
 +2011-08-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: fix spurious failure due to Solaris 'wc' incompatibility
 +      * tests/tap-number-wordboundary.test ($planned): Strip any extra
 +      whitespace from the output of `wc', to cater to Solaris 10.
 +
 +2011-08-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: keyword "SKIP" in TAP plan is case-insensitive
 +      * tests/tap-planskip-case-insensitive.test: New test.
 +      * tests/tap-planskip.test: Remove now-duplicated checks.
 +      * tests/Makefile.am (tap_with_common_setup_tests): Update.
 +
 +2011-08-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: ambiguous use of TAP "TODO"/"SKIP" directives
 +      * tests/tap-ambiguous-directive.test: New test.
 +      * tests/tap-todo-skip-together.test: Reference it in heading
 +      comments.
 +      * tests/Makefile.am (tap_with_common_setup_tests): Update.
 +
 +2011-08-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: non-directive comments in TAP results are preserved
 +      * tests/tap-result-comment.test: New test.
 +      * tests/Makefile.am (tap_with_common_setup_tests): Update.
 +
 +2011-08-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: TAP result number followed by non-whitespace word boundary
 +      * tests/tap-number-wordboundary.test: New test.
 +      * tests/Makefile.am (tap_with_common_setup_tests): Update.
 +
 +2011-08-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: a TAP result numbered "0" is always out-of-order
 +      * tests/tap-test-number-0.test: New, checks that a test result
 +      numbered as 0 is to be considered out-of-order; this is
 +      consistent with the behaviour of the `prove' utility.
 +      * tests/Makefile.am (tap_with_common_setup_tests): Update.
 +
 +2011-08-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      cosmetics: fix botched indentation in perl TAP driver
 +      * lib/tap-driver.pl (main, Getopt::Long::GetOptions): Fix
 +      improper or botched indentation.
 +
 +2011-08-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: some more tests on corner cases of TAP support
 +      * tests/tap-no-spurious.test: Extend checks verifying that a line
 +      matching, say, the regex "^ok[a-zA-Z0-9_]" is *not* considered a
 +      TAP result.
 +      * tests/tap-no-spurious-numbers.test: New test, checking that our
 +      TAP driver doesn't spuriously recognize as TAP result numbers what
 +      is not (even if it seems pretty close).
 +      * tests/tap-negative-numbers.test: New test, checking that our
 +      TAP driver doesn't spuriously recognize negative TAP result
 +      numbers, but correctly interprets them as test descriptions
 +      instead.
 +      * tests/tap-plan-leading-zero.test, tap-numbers-leading-zero.test:
 +      New tests, checking how our driver fares in recognizing numbers
 +      with leading zeroes in TAP results or TAP plans.
 +      * tests/tap-planskip-malformed.test: New test, checking that a
 +      malformed TAP plan is not recognized as a valid plan.
 +      * tests/tap-plan-whitespace.test: New test, checking that a TAP
 +      plan line with trailing whitespace is recognized and handled
 +      correctly.
 +      * tests/Makefile.am (tap_with_common_setup_tests): Update.
 +
 +2011-08-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: various fixlets and tweakings
 +      * tests/seenc.test: Make grepping of automake stderr stricter.
 +      Add a trailing `:' command.
 +      * tests/symlink.test: Likewise.  Also, define `$am_create_testdir'
 +      to "empty" to avoid bringing in unused auxiliary files (only to
 +      have to remove them right away), and use proper m4 quoting in
 +      `configure.in'.
 +      * tests/vpath.test: Make grepping of generated `Makefile.in'
 +      slightly stricter.  Prefer trailing `:' over trailing `Exit 0'.
 +      * tests/suffix6c.test: Unset OBJEXT to avoid interferences from
 +      the environment.
 +      * tests/suffix12.test: Do not whitespace-indent `##' comments
 +      when they are embedded in a makefile rule: having them indented
 +      is not part of the Automake API, and might cause failures with
 +      e.g., Tru64 make.
 +      * tests/syntax.test: Simplify the `Makefile.am' to ensure that
 +      automake doesn't fail for the wrong reasons.  Make grepping of
 +      automake stderr slightly stricter.
 +      * tests/test-harness-vpath-rewrite.test: Remove useless variable
 +      definition from `Makefile.am'.
 +      * tests/test-driver-custom-multitest.test: Fix typo in comments.
 +      * tests/self-check-me.tap: Fix minor typo in test description.
 +      * tests/vars3.test: Make grepping of automake stderr stricter
 +      and safer.
 +      * tests/version6.test: Add sanity check, verifying that the
 +      version number extracted from `automake --version' output seems
 +      legit.
 +      * tests/auxdir2.test: Renamed ...
 +      * tests/auxdir-compauted.tap: ... to this, and converted to the
 +      use of TAP.
 +      * tests/auxdir4.test: Renamed ...
 +      * tests/auxdir-unportable.tap: ... to this, and converted to the
 +      use of TAP.
 +      * tests/auxdir3.test: Renamed ...
 +      * tests/auxdir-misplaced.test: ... to this.
 +      * tests/auxdir5.test: Renamed ...
 +      * tests/auxdir-nonexistent.test: ... to this.
 +      * tests/auxdir9.test: Renamed ...
 +      * tests/auxdir-autodetect.test: ... to this.
 +      * tests/Makefile.am (TESTS): Update.
 +      (XFAIL_TESTS): Remove `auxdir2.test'.
 +
 +2011-08-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: fix some redundant autotools calls in tests on TAP
 +      * tests/tap-deps.test: Do not call autotools and configure; there
 +      is no need to, since this script sources `tap-setup.sh'.
 +      * tests/tap-empty-diagnostic.test: Likewise.
 +      * tests/tap-escape-directive.test: Likewise.
 +      * tests/tap-fancy2.test: Likewise.
 +      * tests/tap-no-spurious.test: Likewise.
 +      * tests/tap-out-of-order.test: Likewise.
 +
  2011-08-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        * THANKS (Daniel Richard G.): Update e-mail address.
        * HACKING ("Working in git"): Use autoconf and autom4te 2.68,
        not 2.67, in the examples.
  
 +2011-08-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: improve granularity for tests on problematic TAP messages
 +      * tests/tap-message-0.test: Break up into ...
 +      * tests/tap-msg0-result.test, tests/tap-msg0-directive.test,
 +      tests/tap-msg0-planskip.test, tests/tap-msg0-misc.test,
 +      tests/tap-msg0-bailout.test: ... these new tests, and extend
 +      a little.
 +      * tests/Makefile.am (tap_with_common_setup_tests): Update.
 +
 +2011-08-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: correctly handle string "0" in TAP messages
 +      * lib/tap-driver.pl (is_null_string): New function, can be used
 +      to determine whether a given string variable is empty or undefined.
 +      Useful to avoid pitfalls like:
 +        if ($message) { print "$message\n"; }
 +      which wouldn't print anything if $message is the literal "0".
 +      (handle_tap_test, handle_tap_plan, handle_tap_bailout): Use it,
 +      to avoid missing messages composed only by a literal "0" in TAP
 +      result descriptions and in skip, todo and bailout explanations.
 +      * tests/tap-message-0.test: Enhance.
 +      * tests/Makefile.am (XFAIL_TESTS): Remove it, it passes now.
 +
 +2011-08-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: a minor simplification in the perl TAP driver
 +      * lib/tap-driver.pl: The `--disable-hard-errors' option is a
 +      no-op, so just ignore it and its argument.
 +
 +2011-08-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      parallel-tests: fix help screen for test driver scripts
 +      * lib/tap-driver.pl ($USAGE): The `--trs-file' option is mandatory
 +      too.
 +      * lib/tap-driver.sh (print_usage): Likewise.
 +      * lib/test-driver (print_usage): Likewise.
 +      ($scriptversion): Update.
 +
 +2011-08-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: add a dummy TAP driver script implemented in shell + awk
 +      The user can also now decide which implementation of the TAP driver
 +      to use in the testsuite by defining the `$am_tap_implementation'
 +      variable to either "perl" or "shell".  Future enhancements will
 +      allow the testsuite to automatically run the test scripts on TAP
 +      support with both the TAP driver implementations, to improve
 +      coverage.
 +      * tests/defs (fetch_tap_driver): Honor the `$am_tap_implementation'
 +      variable to decide which implementation of the TAP driver to fetch.
 +      ($am_tap_implementation): Default to "perl".
 +      * tests/tap-common-setup.test: Do not fetch the TAP driver, the
 +      code in tap-setup.sh does that already (and respecting runtime
 +      overriding of `$am_tap_implementation').
 +      * lib/tap-driver: Renamed ...
 +      * lib/tap-driver.pl: ... to this, and ...
 +      ($ME): ... adjusted this.
 +      * doc/automake.texi: Adjust to the renaming.
 +      * tests/Makefile.am (TAP_LOG_DRIVER): Likewise.
 +      * tests/tap-doc2.test: Likewise.
 +      * lib/tap-driver.sh: New script, still mostly dummy.
 +      * lib/Makefile.am (dist_script_DATA): Update, and since we are at
 +      it, rewrite it to make it easier to add new entries in the future.
 +
 +2011-08-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: refactor tests on TAP support in view of future changes
 +      * tests/defs (fetch_tap_driver): New subroutine; it fetches the
 +      automake-provided TAP driver from the `lib/' directory into the
 +      current directory, and edits its shebang line so that it will be
 +      run with the perl interpreter determined at configure time.
 +      * tests/tap-setup.sh: Use it.
 +      * tests/tap-common-setup.test: There's no need to AC_SUBST `PERL'
 +      anymore, nor to use it in the Makefile to run the TAP driver.
 +      Also, use the `fetch_tap_driver' function instead of copying the
 +      `tap-driver' auxiliary script directly.
 +      * tests/tap-bad-prog.tap: Likewise.
 +      * tests/tap-diagnostic-custom.test: Likewise.
 +      * tests/tap-doc.test: Likewise.
 +      * tests/tap-merge-stdout-stderr.test: Likewise.
 +      * tests/tap-more.test: Likewise.
 +      * tests/tap-more2.test: Likewise.
 +      * tests/tap-recheck.test: Likewise.
 +      * tests/tap-summary-aux.sh: Likewise.
 +      * tests/tap-basic.test: Likewise, and fix a grammaro in comments
 +      since we are at it.
 +
 +2011-08-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: fix typo in comments
 +      * tests/defs (get_shell_script): Fix typo in the function
 +      description.
 +
 +2011-08-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: missing tap plan and non-zero exit status
 +      * tests/tap-missing-plan-and-bad-exit.test: New test.
 +      * tests/Makefile.am (tap_with_common_setup_tests): Update.
 +
 +2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: fix an unportable use of sed
 +      * tests/tap-todo-skip-whitespace.test: Alternation with "\|" in
 +      sed regular expressions is not portable to (at least) FreeBSD
 +      sed; do not use it.
 +
 +2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: avoid spurious failure if rst2html program is missing
 +      * tests/test-driver-custom-no-html.test: Account for the
 +      possibility of a lacking `rst2html' program in our final
 +      grepping of make output.
 +
 +2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: improve diagnosing and reporting of plan mismatches
 +      Problem exposed by a failure in the test 'tap-plan-errors.test'.
 +      * lib/tap-driver (NO_PLAN, EARLY_PLAN, LATE_PLAN): New constants.
 +      (Throughout the file): Use more complex semantics for `$plan_seen',
 +      which now also remember whether the plan that has been seen is an
 +      "early" or "late" plan; in turn, this makes ...
 +      ($tap_stopped): ... this variable redundant; remove it.
 +      (handle_tap_plan): Adjust to avoid producing spurious or confusing
 +      error messages about extra or mismatched "late" TAP plans.
 +      * tests/tap-plan-corned.test: Adjust and extend.
 +      * tests/tap-color.test: Likewise.
 +
 +2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: log all TAP stream, even after a "Bail out!"
 +      * lib/tap-driver ($bailed_out): New global boolean variable,
 +      telling whether a "Bail out!" directive has been seen or not.
 +      (handle_tap_bailout): This function does not anymore stop the
 +      reading from TAP stream; instead, it sets `$bailed_out' to a
 +      true value, so that only the subsequent parsing of the input
 +      TAP stream is stopped.
 +      (finish): Remove, no more needed, its contents inlined into ...
 +      (main): ... this function, with related adjustments in the code
 +      flow.
 +      (get_test_exit_message): Do not "flush" the input TAP stream
 +      to fetch the exit status of test script, it is not anymore
 +      required.  Add a sanity check.
 +      * tests/tap-bailout-and-logging.test: New test.
 +      * tests/Makefile.am (tap_with_common_setup_tests): Update.
 +
 +2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: TAP diagnostics after "Bail out!" aren't reported
 +      This is compatible with the behaviour of the `prove' utility.
 +      * tests/tap-bailout-suppress-later-diagnostic.test: New test.
 +      * tests/Makefile.am (tap_with_common_setup_tests): Update.
 +
 +2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: TAP errors after a "Bail out!" directive aren't reported
 +      This is compatible with the behaviour of the `prove' utility.
 +      * tests/tap-bailout-suppress-later-errors.test: New test.
 +      * tests/tap-bailout-badexit.test: Renamed ...
 +      * tests/tap-bailout-suppress-badexit.test: ... to this, for
 +      consistency.
 +      * tests/Makefile.am (tap_with_common_setup_tests): Update.
 +
 +2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: reorganize tests on TAP plans
 +      * tests/tap-skip-whole.test: Rename ...
 +      * tests/tap-planskip.test: ... to this
 +      * tests/tap-skip-whole-badexit.test: Rename ...
 +      * tests/tap-planskip-badexit.test: ... to this.
 +      * tests/tap-skip-whole-bailout.test: Rename ...
 +      * tests/tap-planskip-bailout.test: ... to this.
 +      * tests/tap-skip-whole-bailout.test: Rename ...
 +      * tests/tap-planskip-later-errors.test: ... to this.
 +      * tests/tap-skip-whole-unplanned.test: Rename ...
 +      * tests/tap-planskip-unplanned.test: ... to this.
 +      * tests/tap-skip-whole-whitespace.test: Rename ...
 +      * tests/tap-planskip-whitespace.test: ... to this.
 +      * tests/tap-skip-whole-continue.test: Rename ...
 +      * tests/tap-planskip-and-logging.test: ... to this, extend to try
 +      more cases, and fix heading comments.
 +      * tests/tap-skip-whole-lastline.test: Rename ...
 +      * tests/tap-planskip-late.test: ... to this, fix heading comments,
 +      and remove some checks that are just a duplication of those already
 +      performed in the previous script.
 +      * tests/tap-results-with-planskip.test: Rename to ...
 +      * tests/tap-planskip-unplanned-corner.test: ... this, and improve
 +      hading comments.
 +      * tests/tap-planskip-later-errors.test: New test.
 +      * tests/Makefile.am (tap_with_common_setup_tests): Update.
 +
 +2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: more TAP driver consistency w.r.t. 'prove'
 +      * tests/skip-results-with-planskip.test: New test, verifies that
 +      test results seen in a TAP stream that has a "plan with SKIP" are
 +      flagged as errors.
 +      * tests/Makefile.am (tap_with_common_setup_tests): Update.
 +
 +2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: improve some comments in the TAP driver
 +      * lib/tap-driver (handle_tap_plan): Improve comments describing
 +      possible errors in a "plan with SKIP" directive.
 +
 +2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: non-zero exit status after "Bail out!" should not be reported
 +      This new behaviour is more consistent with that of the `prove'
 +      utility.  Also, experience with the use of TAP in the Automake's
 +      own test suite has shown that reporting non-zero exit status from
 +      a script after it has issued a "Bail out!" directive is mostly
 +      redundant, more introducing noise rather than conveying useful
 +      information.
 +      * lib/tap-driver (finish): Inline the part of it that was getting
 +      the script exit status ...
 +      (main): ... in here.
 +      * tests/tap-bailout-badexit.test: New test.
 +      * tests/Makefile.am (tap_with_common_setup_tests): Update.
 +
 +2011-08-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: a "plan with SKIP" after test results is an error
 +      This new behaviour is both more natural and more consistent with
 +      that of the `prove' utility.
 +      * lib/tap-driver (handle_tap_plan): Do not stop TAP parsing when
 +      a "plan with SKIP" line (e.g., "1..0 # SKIP") is encountered, and
 +      do not print a "SKIP" line if some TAP result has already been
 +      seen.
 +      * tests/tap-skip-whole.test: Adapt.
 +      * tests/tap-skip-whole-lastline.test: Likewise.
 +      * tests/tap-global-result.test: Adapt and extend.
 +      * tests/tap-skip-plan-errors.test: Likewise, and fix an obsolete
 +      small part of a comment.
 +      * tests/tap-skip-whole-bailout.test: New test.
 +      * tests/tap-skip-whole-unplanned.test: Likewise.
 +      * tests/tap-skip-whole-continue.test: Likewise.
 +      * tests/Makefile.am (tap_with_common_setup_tests): Update.
 +
 +2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test harness: avoid possible fork bomb
 +      This fixes a regression w.r.t. the master branch, exposed by
 +      test 'parallel-tests-fork-bomb.test'.
 +      * lib/am/check.am (am--redo-logs): Detect possible infinite
 +      recursion due to a test log in $(TEST_LOGS) being the same
 +      as $(TEST_SUITE_LOG).
 +
 +2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: enhance test against infinite recursion in test harness
 +      * tests/parallel-tests-fork-bomb.test: Enhance and extend a
 +      little now, for soon-to-be-implemented more explicit and safer
 +      semantics.
 +
 +2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: possible infinite recursion in the test harness
 +      Motivated by a regression in the 'test-protocols' branch.
 +      * tests/parallel-tests-fork-bomb.test: New test, checking that
 +      if $(TEST_SUITE_LOG) is in $(TEST_LOGS), we obtain a diagnosed
 +      error rather than a make hang or a fork bomb.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: yet more environment cleanup
 +      * tests/defs: Also unset the TEST_SUITE_LOG variable.
 +
 +2011-08-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      self tests: some minor refactoring
 +      * tests/self-check-exit.tap: Disable the `errexit' shell flag;
 +      this allow to remove some boilerplate idioms and to make some
 +      code slightly less cumbersome.
 +      * tests/self-check-me.tap: Likewise.
 +
 +2011-08-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      maintcheck: look for TAP-based tests without TAP plan
 +      * Makefile.am (sc_tests_tap_plan): New maintainer check.
 +      (syntax_check_rules): Add it.
 +      * tests/suffix10.tap: Declare a TAP plan.
 +      * tests/add-missing.tap: Likewise.
 +
 +2011-08-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: avoid confusing SKIP messages for errored tests
 +      * tests/defs [$use_tap] (exit trap): Don't print the test plan
 +      in case the client script exited with a non-zero status.  This
 +      avoids the display of redundant "SKIP" messages for tests with
 +      lazy plans that error out before any test is run.
 +
 +2011-08-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: keep more debugging info around in 'add-missing.tap'
 +      * tests/add-missing.tap: Use a different directory for each test,
 +      so that in case of failure more information is kept around.
 +      Since we are at it, remove redundant TAP diagnostic, and define
 +      `$am_create_testdir' to "empty" to avoid bringing in unused
 +      auxiliary files.
 +
 +2011-08-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: more granular count of test results in our TAP library
 +      * tests/tap-functions.sh ($tap_bad_count_): Removed, superseded
 +      by ...
 +      ($tap_fail_count_, $tap_xpass_count_): ... these new variables,
 +      which keep more granular counts.
 +      ($tap_pass_count_: New variable.
 +      * tests/defs (exit trap): Adjust and simplify accordingly.
 +
 +2011-08-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: fixlets and improvements in two long TAP-based tests
 +      * tests/depmod.tap: Clean up the subdirectories used by tests that
 +      passed, to avoid ending up with a too big test directory.  This is
 +      especially important since, on each and every system, at least some
 +      tests in this script are expected to be skipped (which ones exactly
 +      depends on the system), thus causing the test directory not to be
 +      removed when the script terminates.
 +      * tests/instspc.tap: Likewise (with the difference that tests here
 +      are not expected to be skipped, but to xfail).  Give more explicit
 +      error message in case of setup failure.  Skip the proper number of
 +      tests when required, to avoid spurious errors due to mismatched
 +      plan.  Also, really avoid to run the unsupported test cases when
 +      the need to skip them is detected.
 +
 +2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test harness: recursive make invocations must use $(AM_MAKEFLAGS)
 +      * lib/am/check.am ($(TEST_SUITE_LOG)): Pass $(AM_MAKEFLAGS)
 +      to $(MAKE) when issuing a recursive make call.
 +      Problem detected by the `sc_tests_make_without_am_makeflags'
 +      maintainer check.
 +
 +2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failure in 'suffix-chain.tap'
 +      * tests/suffix-chain.test: Use more uncommon suffixes that
 +      don't trigger built-in recipes with FreeBSD make.
 +
 +2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: improvements to our shell TAP library and APIs
 +      These improvements impact only the Automake's own testsuite.
 +      * tests/tap-functions.sh (plan_): Allow new special arguments
 +      "unknown" a.k.a. "later" and "lazy" a.k.a. "now".  Perform
 +      sanity check the given arguments.  Adjust incorrect comments.
 +      (lazy_plan_): Removed, superseded by the new version of `plan_'.
 +      (not): New function, run a command and inverts its exit status.
 +      (ok_, not_ok_, skip_): These are just shorthands for common
 +      `result_' usages.
 +      (xfail_, xpass_, reset_test_count_): Removed, they are not used,
 +      nor does a legitimate use for them seem in sight.
 +      (not): New function, to run a command inverting its exit status.
 +      (command_not_ok_): Removed, superseded by `command_ok_' + `not'.
 +      (command_ok_): Extended to accept TAP directives.
 +      * tests/defs (trap): Don't use `late_plan_' anymore, use
 +      `plan_ "now"' instead.
 +      * tests/ac-output-old.tap: Update to take advantage of the new
 +      APIs.
 +      * tests/self-check-env-sanitize.tap: Likewise.
 +      * tests/suffix-chain.tap: Likewise.
 +      * tests/suffix10.tap: Likewise.
 +      * tests/suffix11.tap: Likewise.
 +      * tests/suffix3.tap: Likewise.
 +      * tests/suffix8.tap: Likewise.
 +      * tests/tap-bad-prog.tap: Likewise.
 +      * tests/self-check-exit.tap: Likewise, plus a small improvement
 +      in the name of a variable.
 +
 +2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: convert some `suffix*' tests to TAP
 +      This will allow us to explicitly declare some expected failures
 +      involving Solaris make as such, instead of partly papering over
 +      them with skips and partly letting them fail too loudly.
 +      * tests/suffix-chain.test: Rename ...
 +      * tests/suffix-chain.tap: ... to this, and convert to the use of
 +      TAP.  Also, fix some bugs since we are at it, and ...
 +      ($required): ... require `cc'.
 +      * tests/suffix3.test: Rename ...
 +      * tests/suffix3.tap: ... to this, and convert to the use of TAP.
 +      Also, since we are at it, throw in some formatting fixes.
 +      * tests/suffix8.test: Rename ...
 +      * tests/suffix8.tap: ... to this, and convert to the use of TAP.
 +      Also, since we are at it, throw in some formatting fixes.
 +      * tests/suffix10.test: Rename ...
 +      * tests/suffix10.tap: ... to this, and convert to the use of TAP.
 +      * tests/suffix11.test: Rename ...
 +      * tests/suffix11.tap: ... to this, and convert to the use of TAP.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: don't let a known Solaris make bug poison too many tests
 +      See automake bug#7670 and bug#7824.
 +      * tests/defs (make_can_chain_suffix_rules): New function, tell
 +      whether the make implementation in use can chain suffix rules
 +      automatically or not.
 +      * tests/suffix3.test: Use it to avoid issuing calls to make that
 +      are unportable to make implementations that are not smart enough
 +      to chain suffix rules automatically.
 +      * tests/suffix8.test: Use it to avoid issuing calls to make that
 +      * tests/suffix10.test: Use it to avoid issuing calls to make that
 +      * tests/suffix11.test: Use it to avoid issuing calls to make that
 +      * tests/suffix-chain.test: New test, exposes the limitation that
 +      we have papered over in the tests above.
 +
 +2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      gitignore: more use of anchors
 +      * .gitignore: Anchor files that are intended to be ignored only
 +      if found in the same directory of the `.gitignore' file, not also
 +      in its subdirectories.
 +      * doc/.gitignore, doc/amhello/.gitignore, lib/Automake/.gitignore,
 +      lib/Automake/tests/.gitignore, tests/.gitignore: Likewise.  Also,
 +      where needed, add new entries that were once implied by the
 +      non-anchored entries in the upper-level `.gitignore' files.
 +
 +2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      self tests: avoid spurious output on console, and related fixlets
 +      * tests/self-check-cleanup.test: Set `$stderr_fileno_' to `2'
 +      in the self tests, to avoid spurious diagnostic on console.
 +      * tests/self-check-exit.tap: Only unset `am_explicit_skips' and
 +      `$stderr_fileno_' in the self tests, not at the global level, it
 +      is more correct.
 +      ($init): New variable, to reduce code duplication.
 +      Some refactoring and adjustments to the name of the tests.
 +
 +2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: few more sanity checks
 +      * tests/defs: Catch some more (very unlikely) set-up or internal
 +      errors, and diagnose them explicitly.  This is intended mostly
 +      to be a theoretic-only improvement.
 +
 +2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: really make them "set -e" clean
 +      Motivated by a spurious failure of test `instsh3-w.shtst' on
 +      Solaris 10.
 +      * tests/defs: Make really "set -e" clean, to avoid spurious
 +      failures in case this file is sourced by a test script that has
 +      already set the `errexit' flag.  To be sure we don't regress,
 +      move the `set -e' call much earlier, and make the comment telling
 +      about the expected "set -e" cleanliness more loud and outstanding.
 +
 +2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      self tests: register an expected failures with Solaris /bin/sh
 +      Solaris 10 /bin/sh erroneously exit with success right away when
 +      the following three conditions are met at the same time:
 +       1. the `errexit' flag is active,
 +       2. an exit trap is installed, and
 +       3. a non-existing command is issued.
 +      * tests/self-exit.tap: When that bug is detected, issue an XFAIL
 +      rather than a FAIL.  Since we are at it, improve by avoiding
 +      creation of stray temporary files when testing for non-executable
 +      commands.
 +
 +2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      gitignore: update and improve for the testsuite files
 +      * tests/.gitignore: Don't ignore temporary partial log files,
 +      autogenerated tests and makefile fragments that are not used
 +      anymore.  Anchor all the remaining patterns.
 +
 +2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      self tests: some new uses of TAP, few extensions
 +      * tests/self-check-me.test: Renamed ...
 +      * tests/self-check-me.tap: .. to this, and converted to use TAP.
 +      * tests/self-check-exit.test: Renamed ...
 +      * tests/self-check-exit.tap: .. to this, and converted to use TAP.
 +      Set `$stderr_fileno_' to `2', to avoid spurious messages on the
 +      console.  Add a new test, and relax another one.
 +      * tests/self-check-env-sanitize.test: Renamed ...
 +      * tests/self-check-env-sanitize.tap: .. to this, and converted to
 +      the use TAP.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: test directory creation more configurable
 +      After this change, the individual tests will be able to tell
 +      `./defs' whether or not to create a temporary test directory
 +      for them, and if yes, whether or not to pre-populate it.
 +      * tests/defs: Only create the temporary test directory if the
 +      variable `$am_create_testdir' is not set to "no".  In this
 +      case, only pre-populate it if that variable is not set to
 +      `$empty'.
 +      * tests/defs-static.in: Check that `$am_create_testdir' is not
 +      exported in the environment.
 +      * tests/self-check-env-sanitize.test: Update.
 +      * tests/self-check-dir.test: Extend, and make deeper and more
 +      robust.
 +      * tests/README (Section "Writing test cases" subsection "Do"):
 +      Update.
 +      * tests/autodist.test: Set `$am_create_testdir' instead of
 +      removing by hand files created by ./defs.
 +      * tests/tap-doc2.test: Likewise.
 +
 +2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: more uses of the `seq_' function
 +      * tests/parallel-tests-exit-statuses.test: Use the `seq_' function
 +      from `tests/defs', instead of duplicating its semantics.
 +      * tests/testsuite-summary-count.test: Likewise.
 +
 +2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: drop redundant environment sanitization
 +      * tests/Makefile.am (TESTS_ENVIRONMENT): Don't remove `planned'
 +      from the environment.
 +      * tests/defs-static.in: Don't complain if `planned' is set in
 +      the environment.
 +      * tests/self-check-env-sanitize.test: Update.
 +
 +2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: fix bug in plain version of `skip_all_'
 +      * tests/plain-functions.sh (skip_all_): Call `skip_', not `skip'.
 +
 +2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: small cleanups and tweakings
 +      * tests/defs: Where possible, prefer `framework_failure_' or
 +      `fatal_' to `Exit 99'.  Try to catch more possible hard errors
 +      and setup failures.  Do not hide expected error messages.  Avoid
 +      a couple of forks when copying files from `$(top_srcdir)/lib'.
 +      ($signal): Remove, no more needed.
 +
 +2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: improve interface for giving early TAP plan
 +      Since commit `v1.11-976-g4740f56', an early TAP plan can also be
 +      specified after input lines have already been seen, as long as
 +      no one of them is a TAP result line.  We can now take advantage
 +      of this in our own testsuite, allowing the TAP-based scripts to
 +      specify their earlier plan after having included `./defs'.  In
 +      particular, this offers the benefit of allowing those scripts to
 +      issue a "skip all" plan (e.g., "1..0 # SKIP reason ...") after
 +      the inclusion of `./defs', which wasn't possible with the older
 +      interface (introduced in commit `v1.11-1114-g0286308').
 +      * tests/defs: Don't try to call `plan_' if `$planned' is defined,
 +      the calling scripts can do that directly now.
 +      * tests/ac-output-old.tap: Use `plan_' directly instead of
 +      setting `$planned' before including `./defs'.
 +      * tests/automake-cmdline.tap: Likewise.
 +      * tests/depmod.tap: Likewise.
 +      * tests/instspc.tap: Likewise.
 +      * tests/tap-bad-prog.tap: Likewise.
 +      * tests/add-missing.tap: Don't set `$planned'.
 +
 +2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: fix bug in TAP version of `skip_all_'
 +      * tests/tap-functions (skip_all_): Set `$have_tap_plan_' to "yes"
 +      when called, so that the exit trap won't write another TAP plan.
 +
 +2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: fix skip directives to work also with TAP-based tests
 +      * test/defs: Use `skip_all_', not `skip_', to issue a skip of the
 +      whole calling test script.
 +
  2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        test defs: more environment cleanup
 -      * tests/defs.in: Also unset variables AM_COLOR_TESTS and
 +      * tests/defs: Also unset variables AM_COLOR_TESTS and
        AM_TESTS_ENVIRONMENT.
  
  2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 +      test harness: more minor VPATH-rewrite issues
 +      * tests/am/check.am (am__set_TESTS_bases, $(TEST_SUITE_LOGS),
 +      am--redo-logs, recheck, recheck-html): Cosmetic fixlets to
 +      minimize the risk of unwanted VPATH rewrites.
 +      (check-TESTS): Likewise, and normalize trailing whitespace
 +      since we are at it.
 +      Bugs exposed by test cases `check6-p.test' and `check7-p.test'.
 +
 +2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test harness: "make -n check" works correctly with Solaris make
 +      To avoid some recipes being executed with "make -n", we used the
 +      trick of issuing recursive make calls not directly with $(MAKE),
 +      but with a simple indirection instead:
 +        ...
 +        am__stealth_MAKE = $(MAKE)
 +        ...
 +        target:
 +            ... $(am__stealth_MAKE) ...
 +        ...
 +      This hack worked with GNU make, but, unfortunately, not with
 +      Solaris make.  The present change removes the hack, and uses more
 +      proper idioms to avoid unwanted recipe executions with "make -n".
 +      Bug exposed by test case `parallel-tests-dry-run.test'.
 +      * lib/am/check.am (am__stealth_MAKE): Remove, no more used.
 +      (.log.trs): Break recipe in multiple shell invocations.
 +      ($(TEST_SUITE_LOG)): Likewise, and move some corner-case parts of
 +      the recipe to ...
 +      (am--redo-logs): ... this new internal helper .PHONY target.
 +
 +2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
        tests: fix spurious failure with Solaris make
        * tests/distcheck-configure-flags-am.test: Avoid using `+=' too
        liberally with AM_DISTCHECK_CONFIGURE_FLAGS, since the line breaks
        so introduced, in conjunction with single quotes, might confuse
        Solaris make.
  
 +2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test harness: fixlet in workaround for VPATH rewrite issue
 +      Fixes a minor in previous commit `v1.11-983-gfda3de5'.
 +      * lib/am/check.am (am__set_TESTS_bases): Add forgotten end-of-line
 +      anchor to sed expression.  In comments, add reference to ...
 +      * tests/test-trs-basic.test: ... this test, which has been adapted
 +      and tightened (and tweaked).
 +
 +2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test harness: work around a VPATH rewrite issue
 +      * lib/am/check.am (am__TEST_BASES): Removed, it's role taken
 +      over by ...
 +      (am__set_TESTS_bases): ... these new variable.
 +      ($(TEST_SUITE_LOG): Use it, to avoid VPATH rewrite issues.
 +      * automake.in (handle_tests): Update the code for the cleanup
 +      of the `.trs' file to use `$(TEST_LOGS)' instead of
 +      `$(am__TEST_BASES)'.
 +      * tests/test-harness-vpath-rewrite.test: New test, better
 +      exposing the problem fixed by this change
 +      * tests/Makefile.am (TESTS): Add it.
 +      * tests/test-trs-basic.test: Update and extend.
 +
 +2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      parallel-tests: work around Solaris XPG4 make segfault
 +      Issue exposed by test `posixsubst-tests-p.test', and similar to
 +      the problem solved by commit `v1.11-159-ge7aa360'.
 +      * lib/am/check.am [%?PARALLEL_TESTS%] (check-TESTS): Trim trailing
 +      whitespace from $list, to avoid triggering a nasty bug (potential
 +      segfault) on Solaris XPG4 make and Heirloom make.
 +
 +2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: fix weird spurious failure with Solaris /bin/sh
 +      Solaris /bin/sh, when killed with a SIGTERM or SIGINT signal, can
 +      apparently end up exiting with exit status 208, instead of leaving
 +      the correct wide exit status to the parent.  See:
 +       <http://dbaspot.com/shell/396118-bourne-shell-exit-code-term.html>
 +      Work around this incompatibility.
 +      * tap-signal.test: Look for the above Solaris bug.
 +      (signal_caught): Adapt to handle it.
 +
 +2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: fix another spurious failure on Solaris make
 +      * tests/parallel-tests-log-override-recheck.test: Filter make
 +      output before grepping it, for make implementations that, like
 +      Solaris' one, print the whole of the failed recipe on failure.
 +
 +2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: fix two spurious failures on Solaris make
 +      * tests/tests-environment-and-log-compiler.test: Do not fail if
 +      "make -n check" fails, as that is issued only for debugging, its
 +      semantics being tested in other test scripts.
 +      * tests/test-driver-strip-vpath.test: Likewise.
 +
 +2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap driver: refactor and remove dead code
 +      * lib/tap-driver (get_tap_line): Removed, ...
 +      (all callers): ... updated to use $parser->next directly instead.
 +      (peek_tap_line, unget_tap_line, @tap_lines): Remove, they're not
 +      used anymore.
 +      (TAP_PEEKING): Block deleted, all its subroutines and variables
 +      having been removed.
 +
 +2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: fix spurious failure in a test on TAP support
 +      * tests/tap-passthrough-exit.test: When the `--ignore-exit' flag
 +      of the TAP driver is used, don't look for a message reporting the
 +      non-zero exit statuses of tests in the log files; such message is
 +      not expected to be there anymore.  Related simplifications.
 +
 +2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: plan location is more liberal w.r.t. non-TAP lines
 +      With this change, only lines that are TAP results will matter
 +      w.r.t. the position of the TAP plan in the input; for example,
 +      this input:
 +        this is a non-TAP line
 +        # and this a TAP diagnostic line
 +        1..1
 +        ok 1
 +      was considered to be an error, diagnosed with a message "test
 +      plan in middle of output"; as effect of the current change, such
 +      input is now valid.  This is more consistent with the behaviour
 +      of the `prove' utility.
 +      * lib/tap-driver ($lineno): Removed, no more needed.
 +      ($tap_stopped): New global variable.
 +      (stringify_test_result): Return "ERROR" if a TAP result is found
 +      when `$tap_stopped' is set to true.
 +      (handle_tap_test): Diagnose TAP results that comes after a late
 +      plan.  Add a couple of blank lines, for clarity.
 +      (handle_tap_plan): Set `$tap_stopped' to true after a late plan
 +      is encountered.  Do not complain anymore for extra non-TAP lines
 +      preceding or following the plan.  Adjust comments.
 +      (main): Don't increment $lineno anymore.
 +      * tests/tap-plan.test: Extend a bit, and remove stale comment.
 +      * tests/tap-color.test: Adjust.
 +      * tests/tap-passthrough.test: Likewise.
 +      * tests/tap-plan-corner.test: Adjust and extend.
 +      * tests/tap-plan-errors.test: Likewise.
 +      * tests/tap-plan-middle.test: New test.
 +      * tests/tap-plan-corner2.test: Delete, it's obsolete now.
 +      * tests/Makefile.am (XFAIL_TESTS): Remove it.
 +      (tap_with_common_setup_tests): Likewise, and add
 +      `tap-plan-corner.test'.
 +
 +2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: remove now-passing test from XFAIL_TESTS
 +      * tests/Makefile.am (XFAIL_TESTS): Remove `tap-signal.test',
 +      which is passing since previous commit `v1.11-974-gc7fa872'.
 +
 +2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: get name of TAP-using tests correctly
 +      This change fixes the names of the temporary directories used
 +      by the TAP-based tests (e.g., test `foo.tap' now uses `foo.dir'
 +      rather than `foo.tap.dir'); more importantly, this make the
 +      variable `$destdir' defined in `tests/defs' usable also in the
 +      TAP tests.
 +      ($me): Also strip the any `.tap' suffix from the name of the
 +      test.
 +
 +2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: TAP tests properly decide when to remove tempdirs
 +      Before this change, the TAP tests in the Automake testsuite were
 +      removing the temporary test directory even when they failed or
 +      were skipped, thus making debugging more difficult.
 +      * tests/tap-functions.sh (incr_tap_count): Removed, superseded
 +      by ...
 +      (incr_): ... this function, which can increment the value of any
 +      variable passed to it.
 +      (result_):  Updated to use `incr_' instead of the now-removed
 +      `incr_tap_count_'.  Keep count of failures, xfailures, xpasses,
 +      and skips, using ...
 +      ($tap_skip_count_, $tap_bad_count, _$tap_xfail_count_): ...
 +      these new variables.
 +      * tests/defs (trap): Try to use their values to decide whether
 +      the temporary directory being used by the test script should be
 +      removed or not.  Other code reorganizations.  And move the code
 +      for the removal of the temporary directory out to ...
 +      (rm_rf_): ... this new subroutine.
 +      (Main code): Use that instead of duplicating the code.
 +
 +2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: improve and refactor our custom TAP shell library
 +      This change is mostly done in preparation for the next one.
 +      * tests/tap-functions.sh (result_with_directive_): Merge into ...
 +      (result_): ... this function, which has been greatly extended and
 +      improved in various ways.
 +      (ok_, not_ok_, skip_, xfail_, xpass_): Adjust.
 +      Adjust comments.  Remove an extra empty line.
 +      * tests/instspc.tap: Use the new improved interface of `result_'.
 +      * tests/tap-bad-prog.tap: Likewise.
 +
 +2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: update "user interface" description in tests/README
 +      * tests/README (Subsection "Interpretation"): Mention the "ERROR"
 +      outcome.
 +      (Subsection "Getting details from failures"): Don't tell that the
 +      test scripts can be run directly, this is not 100% true; anymore;
 +      instead ...
 +      (Subsection "About the tests"): ... use this new subsection to
 +      explain how to run the tests (either simple or TAP-based) by hand.
 +      (Subsection "Supported shells"): Extend to refer to TAP tests too.
 +
 +2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: TAP tests can have early plan now
 +      * tests/defs: When using TAP, allow the user to specify the number
 +      of tests through the `$planned' variable.
 +      (trap): Do not print the auto-generated plan if an explicit one
 +      has already been printed.
 +      * tests/defs-static.in: Complain and bail out if the `$planned'
 +      variable is exported in the environment.  Reformat the code to
 +      facilitate future additions.
 +      * tests/Makefile.am (TESTS_ENVIRONMENT): Neutralize `$planned'.
 +      * tests/self-check-env-sanitize.test: Update.
 +      * tests/ac-output-old.tap: Give an explicit TAP plan, by defining
 +      `$planned' just before including `./defs'.
 +      * tests/depmode.tap: Likewise.
 +      * tests/automake-cmdline.tap: Likewise.
 +      * tests/tap-bad-prog.tap: Likewise.
 +      * tests/instspc.tap: Likewise, and related adjustments.
 +      * tests/add-missing.tap: Make it explicit that we have no a-priori
 +      plan, and tell why.
 +
 +2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: run autogenerated tests with $(LOG_COMPILER) too
 +      This change enhances consistency in the testsuite.
 +      * tests/Makefile.am: Some cosmetic reordering, to keep the
 +      definition of FOO_LOG_COMPILER near to the place where `.foo'
 +      is added to $(TEST_EXTENSIONS).
 +      (PTEST_LOG_COMPILER): Run `$(srcdir)/parallel-tests.sh' with
 +      `$(LOG_COMPILER)', not with `$(SHELL)'.
 +      (SHTST_LOG_COMPILER): Likewise.
 +
 +2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: run TAP and "plain" tests with the same $(LOG_COMPILER)
 +      With this change, it will be easier to override, at make time, the
 +      shell used to run the tests.
 +      * tests/Makefile.am (LOG_COMPILER): Define to `$(SHELL)'.
 +      (TEST_LOG_COMPILER): Re-define to `$(LOG_COMPILER)'.
 +      (TAP_LOG_COMPILER): Likewise.
 +
 +2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: run TAP-based tests explicitly with $(SHELL)
 +      * tests/Makefile.am (TAP_LOG_COMPILER): Define to `$(SHELL)'.
 +
 +2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap driver: handle signals received by the tests being run
 +      * lib/tap-driver (get_test_exit_message): Also deal with signals,
 +      by using the `wait' method of the TAP::Parser object instead of
 +      the `exit' method.  This required the use of the standard perl
 +      module `POSIX'.
 +      * doc/automake.texi (Use TAP with the Automake test harness):
 +      Document that `--ignore-exit' has effect also on terminating
 +      signals.  Add a "synchronizing" comment that references the tests
 +      'tap-exit.test' and 'tap-signal.test'.
 +      * tests/tap-signal.test: Extend and adjust.
 +
 +2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test driver: a preparatory refactoring (2)
 +      * lib/tap-driver (finish): Move code to fetch the message about
 +      the exit status of the test being run to ...
 +      (get_test_exit_message): ... this new subroutine.
 +
 +2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap driver: a preparatory refactoring (1)
 +      * lib/tap-driver (finish): Do not flush the TAP stream nor
 +      fetch the exit status of the TAP producer if running with
 +      the `--ignore-exit' option.  Obviously, don't try to write
 +      such exit status in the test log anymore.
 +
 +2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      cosmetics: typofix in the name of a function in the TAP driver
 +      * lib/tap-driver (testuite_error): Renamed ...
 +      (testsuite_error): ... to this, and minor related reformatting.
 +
 +2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: scripts with a SKIP plan but with exit status != 0 must error
 +      This change has been motivated by Automake's own testsuite.  Some
 +      TAP tests there were erroring out (due to unexpected, unhandled
 +      failures) before having encountered TAP result, so that the
 +      simple-minded shell library implementing TAP generation ended up
 +      printing a "1..0" trailing test plan; this caused the script to be
 +      reported as a SKIP rather than an ERROR -- a nasty false negative.
 +      * lib/tap-driver: Add prototypes for each subroutine, to free up
 +      the order in which they can be defined and called.
 +      (main): Move the code checking for a bad exit status of the TAP
 +      producer ...
 +      (finish): ... here, and flush the TAP stream to ensure that the
 +      parser always obtains the producer's exit status.
 +      * tests/tap-skip-whole-badexit.test: New test.
 +      * tests/Makefile.am (tap_with_common_setup_tests): Add it.
 +
 +2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: fix whitespace munging of diagnostic messages
 +      * lib/tap-driver (extract_tap_comment): Pass the `g' flag to the
 +      substitution operator, to strip also trailing whitespaces.  Fixes
 +      a failure in test `tap-whitespace-normalization.test'.
 +
 +2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: refactor and cleanup 'instspc.tap'
 +      * tests/instspc.tap (is_in_list): New helper subroutine.
 +      (expected_to_fail): Re-implement using it.
 +      (define_problematic_string): Likewise.  Also, rename the special
 +      arguments `build-fail' and 'install-fail' to respectively
 +      `builddir-fail' and `destdir-fail', and other related changes.
 +      (Test data definition): Adapt.
 +      ($instspc_xfail_builds_list): Renamed ...
 +      ($builddir_xfails): ... to this.
 +      ($instspc_xfail_installs_list): Renamed ...
 +      ($destdir_xfails): ... to this.
 +      ($instspc_names_list): Renamed ...
 +      ($test_names_list): ... to this.
 +      ($instspc_test_string): Renamed ...
 +      ($test_string): ... to this.
 +      Add some explicative and "FIXME" comments.
 +
 +2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: use TAP for `depmod*' tests, related simplifications
 +      * tests/depmod-tests.sh: Delete this complex and multifarious
 +      script, moving all it checks it used to perform into ...
 +      * tests/depmod.tap: ... this TAP-based test script.  And extend
 +      it quite a bit, since the new form of the test was papering over
 +      some pre-existing failures (this was due to the fact that the
 +      values used for the VPATH were shorter in the new test script).
 +      * tests/depmod-data.test: Deleted.
 +      * tests/Makefile.am ($(srcdir)/depmod-tests.am): Don't include
 +      nor generate it anymore.
 +      (EXTRA_DIST): Don't distribute depmod-tests.sh anymore.
 +      (TEST_EXTENSIONS): Remove '.depmod'.
 +      (DEPMOD_LOG_COMPILER): Deleted.
 +      (depmod-data.log, $(depmod_tests:.depmod=.log)): Delete
 +      dependencies for these files, which are not used anymore.
 +      ($(depmod_tests)): Delete this dummy dependency declaration.
 +      (TESTS): Remove $(depmod_tests).
 +      (handwritten_tests): Remove depmod-data.test, add depmod.tap.
 +      * bootstrap: Don't generate tests/depmod-tests.am anymore.
 +
 +2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: use TAP for `instspc*' tests, related simplifications
 +      * tests/instspc-tests.sh: Delete this complex and multifarious
 +      script, moving all it checks it used to perform into ...
 +      * tests/instspc.tap: ... this TAP-based test script.
 +      * tests/instspc-data.test: Deleted.
 +      * tests/Makefile.am ($(srcdir)/instspc-tests.am): Don't include
 +      nor generate it anymore.
 +      (EXTRA_DIST): Don't distribute instspc-tests.sh anymore.
 +      (TEST_EXTENSIONS): Remove '.instspc'.
 +      (INSTSPC_LOG_COMPILER): Deleted.
 +      (XFAIL_TESTS): Remove $(instspc_xfail_tests).
 +      (instspc-data.log, $(instspc_tests:.instspc=.log)): Delete
 +      dependencies for these files, which are not used anymore.
 +      ($(instspc_tests)): Delete this dummy dependency declaration.
 +      (TESTS): Remove $(instspc_tests).
 +      (handwritten_tests): Remove instspc-data.test, add instspc.tap.
 +      * bootstrap: Don't generate tests/instspc-tests.am anymore.
 +
 +2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: do fd redirections with $(AM_TESTS_FD_REDIRECT)
 +      * tests/Makefile.am: The redirections of file descriptors needed
 +      by our test scripts is now done using the $(AM_TESTS_FD_REDIRECT)
 +      variable (the new blessed way since commit `v1.11-906-gb9e9d54'),
 +      not using an hack involving $(AM_TESTS_ENVIRONMENT).  This has
 +      the further benefit of allowing the use of $(TESTS_ENVIRONMENT)
 +      again on part of the users.
 +      * tests/Makefile.am (AM_TESTS_ENVIRONMENT): Remove redirection of
 +      file descriptors.
 +      (AM_TESTS_FD_REDIRECT): Redirect file descriptor 9 to original
 +      stderr.
 +      Comments adjusted.
 +      * tests/plain-functions.sh ($stderr_fileno_): Update comment.
 +
 +2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: use custom TAP diagnostic in our own tests
 +      This change allow us to easily and transparently avoid spurious
 +      TAP diagnostic in our own testsuite, with the help of the new
 +      `--diagnostic-string' option of our TAP test driver.
 +      * tests/Makefile.am (TAP_LOG_DRIVER_FLAGS): Also pass option
 +      `--diagnostic-string' with value `#%#' (necessarily obtained
 +      through some shell indirections).
 +      * tests/tap-functions.sh (diag_): Assume that the string denoting
 +      TAP diagnostic is stored in the `$diag_string_' variable.  Update
 +      comments.
 +      ($diag_string_): Initialize to "#".
 +      * tests/defs ($diag_string_): Re-define to "#%#".
 +      (show_): Remove, it's obsolete now.
 +      * add-missing.tap: Don't use `show_' anymore to avoid spurious
 +      TAP diagnostic; `cat' should suffice now.
 +
 +2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: fix typo in TAP driver version message
 +      * lib/tap-driver (anonymous subroutine printing the script version
 +      message): Add missing trailing newline to the version message.
 +
 +2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap docs: we don't support pragma or version directives (yet)
 +      * doc/automake.texi (Incompatibilities with other TAP parsers
 +      and drivers): Document that limitation.  Normalize an unrelated
 +      "TODO" item.
 +
 +2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: new option to change the string designating TAP diagnostic
 +      Here we introduce a new option `--diagnostic-string' in our TAP
 +      test driver, that allows the user to specify which string should
 +      denote the beginning of a TAP diagnostic line.  This change is
 +      not gratuitous, nor result if over-engineering: it is motivated
 +      by real issues that have emerged during the use of TAP in the
 +      Automake's own testsuite (see the commit `v1.11-1082-g9b967c2'
 +      "testsuite: yet more use of TAP, and related extensions").
 +      * doc/automake.texi (Use TAP with Automake test harness): Document
 +      the new option.
 +      (Incompatibilities with other TAP parsers and drivers): Report it
 +      as a potential source of incompatibility.
 +      * lib/tap-driver ($diag_string): New global variable, defaulting
 +      to "#", and whose value can be changed ...
 +      (Getopt::Long::GetOptions): ... by the newly recognized option
 +      `--diagnostic-string'.
 +      (handle_tap_comment): Subroutine removed, some of its simple logic
 +      inlined ...
 +      (main): ... in here, where now ...
 +      (extract_tap_comment): ... this new subroutine is used.
 +      ($USAGE): Adjust.
 +      * tests/tap-diagnostic.test: Make one check slightly stricter.
 +      * tests/tap-diag-custom.test: New test.
 +      * tests/Makefile.am (tap_other_tests): Add it.
 +
 +2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      check: add small "synchronization" comment to `test-driver'
 +      * lib/test-driver: Add comment to the code initializing ANSI color
 +      escapes, telling to keep it in sync with the similar initialization
 +      in `lib/am/check.am'.
 +
 +2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      maintcheck: fix spurious failure w.r.t. use of bare "exit"
 +      * tests/check12.test: Cosmetic changes to avoid triggering a
 +      spurious failure of the `sc_tests_Exit_not_exit' maintainer
 +      check.
 +
 +2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      check: update comments to reflect recent heavy changes
 +      * lib/am/check.am [%?PARALLEL_TESTS%]: Update the comments to
 +      reflect the recent changes.  Remove quite many comments that
 +      were merely duplicating excerpts from the Automake manual.
 +
 +2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      check: small cleanups and refactorings in test harness and drivers
 +      * lib/tap-driver (yn): New subroutine, converts a boolean value to
 +      a "yes" or "no" string.
 +      (write_test_results): Use it, and related reformatting.
 +      * lib/test-driver (trap): Also remove the `.trs' file on signals,
 +      for extra safety.
 +      (fatal): Remove this function, it's never used.
 +      ($logfile, $trsfile): Renamed ...
 +      ($log_file, $trs_file): ... to these, for clarity, and in order to
 +      be more consistent with the `tap-driver' script.
 +      Improve a couple of comments.
 +      * automake.in (handle_tests): Don't define anymore the now-obsolete
 +      make macro `$(TEST_LOGS_TMP)', nor add it to the list of files to
 +      be removed upon "make mostlyclean".
 +      * lib/am/check.am ($(TEST_SUITE_LOG)): New shell function `f_ok',
 +      tells whether a path refers to an existing, regular, readable file.
 +      Use it throughout.
 +      (recheck): Be safer w.r.t. make implementation that run recipes
 +      with `errexit' shell flag active.
 +
 +2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: use AM_TESTS_FD_REDIRECT where appropriate
 +      * parallel-tests-interrupt.test: Use AM_TESTS_FD_REDIRECT, not
 +      AM_TESTS_ENVIRONMENT, to define file descriptors' redirection
 +      for "make check".  Fix botched comment.
 +
 +2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      docs: some fixlets in documentation on testsuites support
 +      * doc/automake.texi (Script-based Testsuites): Rename node ...
 +      (Scripts-based Testsuites): ... to this.  Break overly long lines
 +      in an example (were causing problems with PDF output).
 +      (Parallel Test Harness): Don't intend paragraphs that come after
 +      examples or bulleted list.
 +      (Overview of Custom Test Drivers Support): Fix typo s/the the/the/.
 +      (Declaring Custom Test Drivers): When giving an aside, prefer comma
 +      to parentheses, as it disrupts the reading flow less.
 +      (API for Custom Test Drivers): Remove a sentence that was basically
 +      duplicated from the previous subsection.
 +      (Command-line arguments for test drivers): Don't intend paragraph
 +      coming after an itemized list.  Clarify wording and fix grammaros.
 +      Add a couple of cross-references to earlier explanations of `.log'
 +      and `.trs' files.
 +      (Links and external resources): Node renamed ...
 +      (Links and external resources on TAP): ... to this, for clarity.
 +      Slightly extend and clarify introductory sentence.
 +
 +2011-08-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test harness: be aware of more metadata, simplify test drivers
 +      * lib/am/check.am ($(TEST_SUITE_LOG)):  When producing the
 +      global test log, take into account the new metadata field
 +      `:global-test-result:, to write nicely formatted RST section
 +      titles, instead of leaving this chore to the individual test
 +      drivers.
 +      (am_rst_section): Re-introduce this variable, as removed in
 +      commit `v1.11-870-ga27c9c4'.
 +      * lib/test-driver, lib/tap-driver: Write the global test result
 +      as metadata in the `.trs' file, not as (part of) a formatted RST
 +      subsection title in the `.log' file.  Related simplifications;
 +      in particular, get rid of temporary files usage.
 +      * doc/automake.texi (Log files generation and test results
 +      recording): Document the new metadata.
 +      * tests/check12.test: Update.
 +      * tests/parallel-tests-harderror.test: Likewise.
 +      * tests/parallel-tests-interrupt.test: Likewise.
 +      * tests/parallel-tests-log-override-2.test: Likewise.
 +      * tests/parallel-tests-log-override-recheck.test: Likewise.
 +      * tests/parallel-tests-unreadable.test: Likewise.
 +      * tests/tap-global-result.test: Likewise.
 +      * tests/test-metadata-results.test: Likewise.
 +      * tests/test-log.test: Likewise, and another minor unrelated fix.
 +      * tests/test-metadata-global-result.test: New test.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-08-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: check that also a trailing TAP plan can hold a skip directive
 +      * tests/tap-skip-whole-lastline.test: New test.
 +      * tests/Makefile.am (tap_with_common_setup_tests): Add it.
 +
 +2011-08-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: more correct names for a couple of tests
 +      * tests/parallel-tests-ext-driver.test: Rename ...
 +      * tests/parallel-tests-log-compiler-1.test: ... to this, and
 +      adjust heading comments.
 +      * tests/parallel-tests-ext-driver-prog.test: Rename ...
 +      * tests/parallel-tests-log-compiler-2.test: ... to this, and
 +      adjust heading comments.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-08-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: fix another spurious failure
 +      * tests/parallel-tests-ext-driver.test: Name out custom/dummy
 +      log compilers as `foo-compiler' rather `foo-driver'; not only
 +      this is less confusing, it also avoids errors due to the dummy
 +      log compiler `test-driver' overriding the `test-driver' helper
 +      script installed by Automake.
 +      * tests/parallel-tests-ext-driver-prog.test: Adjust heading
 +      comments.
 +
 +2011-08-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: fix a spurious failure
 +      * tests/parallel-tests-ext-driver.test: Exporting of environment
 +      variables directly from $(LOG_COMPILER) variables is not allowed
 +      anymore.  Adjust to this.
 +
 +2011-08-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: yet more use of TAP, and related extensions
 +      * tests/defs (show_): New function, display the contents of one or
 +      more files on stdout, with bells & whistles (both for cosmetic and
 +      practical reasons, the latter aimed at avoiding spurious TAP
 +      diagnostic).
 +      (AUTOMAKE_run): Extend and adapt to make it compatible with TAP
 +      based tests.  Since we are at it, make its implementation more
 +      namespace-safe, and improve its command-line interface.
 +      (AUTOMAKE_fails): Adapt to the new command-line interface of
 +      `AUTOMAKE_run'.
 +      * tests/add-missing.test: Renamed ...
 +      * tests/add-missing.tap: ... to this, and converted to the use
 +      of the TAP protocol, and of the new `show_' function.
 +      * tests/automake.test: Renamed ...
 +      * tests/automake-cmdline.tap: ... to this, and converted to the
 +      use of the TAP protocol.
 +      * tests/getopt.test:  Adapt to the new command-line interface
 +      of `AUTOMAKE_run'.
 +      * tests/cond44.test: Likewise.
 +      * tests/cond45.test: Likewise.
 +      * tests/configure.test: Likewise.
 +      * tests/license2.test: Likewise.
 +      * tests/parallel-am.test: Likewise.
 +      * tests/parallel-am3.test: Likewise.
 +      * tests/tags2.test: Likewise.
 +      * tests/werror3.test: Likewise.
 +      * tests/werror4.test: Likewise.
 +      * tests/amopts-variable-expansion.test: Likewise.
 +      * tests/warnings-win-over-strictness.test: Likewise.
 +      * tests/Makefile.am (TESTS): Update.
 +      (TAP_LOG_DRIVER_FLAGS): Add `--merge', so that TAP diagnostic is
 +      reported in the testsuite progress output.
 +
 +2011-08-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      maintcheck: fix more maintainer-check failures
 +      * tests/test-driver-custom-no-html.test (no-rst): Use `EOF',
 +      not `EoL', as the here-document delimiter.
 +      * tests/test-trs-basic.test: Use `cat + here-doc' rather
 +      than `echo' when creating the dummy test scripts, to please
 +      maintainer-check.
 +      * tests/test-trs-recover.test: Use creative quoting where
 +      needed, to please maintainer-check.
 +      * tests/parallel-tests-no-color-in-log.test: Likewise.
 +      * tests/parallel-tests-dry-run.test: Likewise.
 +
  2011-08-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        maintcheck: fix maintainer-check failures, both real and spurious
        standard output, and with Heirloom tar it can output lines like
        "a ./usr/bin/hello 15 tape blocks" on standard error.
  
 +2011-07-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: function 'is_newest' now works also with directories
 +      * tests/defs (is_newest): Call `find' with the `-prune' option,
 +      so that it won't descend in the directories (which could cause
 +      spurious results).
 +      * tests/self-check-is_newest: Extend accordingly.
 +      From a report by Jim Meyering, see automake bug#9147.
 +
  2011-07-15  Benoit Sigoure  <tsunanet@gmail.com>
  
        docs: add references between the 2 sections on java support
        in the manual.
        * tests/output11.test:Likewise.
        * tests/txinfo21.test:Likewise.
 -      * tests/interp.test: Likewise.  Since we are at it, and enable
 -      the `errexit' shell flag, do related changes, and add trailing
 -      `:'command.
 +      * tests/interp.test: Likewise.
        * tests/amhello-cflags.test: New test.
        * tests/amhello-cross-compile.test: Likewise.
        * tests/amhello-binpkg.test: Likewise.
        * tests/parallel-tests-log-compiler-example.test: Likewise.
        * tests/Makefile.am (TESTS): Update.
  
 +2011-06-30   Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: new test on parallel-tests TESTS runtime overriding
 +      * tests/parallel-tests-cmdline-override.test: New test, check that
 +      we can use indirections when overriding TESTS and TEST_LOGS from
 +      the command line.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-08-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      gitignore: ignore `*.trs' files in lib/Automake/tests
 +      * lib/Automake/tests/.gitignore: Add `*.trs' pattern.
 +
 +2011-08-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: list another "forgotten" test script in Makefile.am
 +      * tests/Makefile.am (TESTS): Also list test script
 +      `test-driver-trs-suffix-registered.test'; it had been introduced
 +      in commit `v1.11-910-g0c81b43', but by mistake it wasn't added
 +      to the list of tests in the Makefile back then.
 +
 +2011-08-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: list "forgotten" test script in Makefile.am
 +      * tests/Makefile.am (TESTS): Also list the test script
 +      `parallel-tests-no-color-in-log.test'; it had been introduced in
 +      commit `v1.11-899-geaac33f', but by mistake it wasn't added to
 +      the list of tests in the Makefile back then.
 +
 +2011-08-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: remove duplicated mention of a test in Makefile.am
 +      * tests/Makefile.am (tap_other_tests): Remove `tap-empty.test',
 +      it is already listed in `$(tap_with_common_setup_tests)'.
 +
 +2011-08-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: one more use of TAP in our own tests
 +      * tests/tap-bad-prog.test, tests/tap-bad-prog2.test: Merged
 +      into ...
 +      * tests/tap-bad-prog.tap: ... this TAP-generating test.
 +      * tests/Makefile.am (tap_other_tests): Remove plan-bad-prog.test
 +      and plan-bad-prog2.test.
 +      (XFAIL_TESTS): Remove plan-bad-prog2.test.
 +      (plan-bad-prog2.log): Remove.
 +
 +2011-08-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: scaffolding to allow use of TAP in our own tests
 +      Now that Automake has initial support for the TAP test protocol,
 +      we can start "eating our own dog food" and rewrite some tests to
 +      use TAP; this should allow for better granularity, especially in
 +      the control of skips and expected failures.  With this change, we
 +      set up the initial scaffolding required by the planned TAP tests,
 +      and convert few older tests to use TAP, mostly in order to verify
 +      that there are no obvious errors.  The tests in our testsuite that
 +      use the TAP protocol will be marked by the new `.tap' extension.
 +      * tests/plain-functions.sh: New file containing definition of
 +      helper shell functions used by the "protocol-less" tests of the
 +      Automake testsuite.
 +      * tests/tap-functions.sh:  New file containing definition of
 +      helper shell functions used by the TAP-producing tests of the
 +      Automake testsuite.
 +      * tests/defs: Remove definitions of some functions that are
 +      now defined in `plain-functions.sh'.  Instead, source one of
 +      `plain-functions.sh' or `tap-functions.sh', depending on whether
 +      `$use_tap' is set to "no" or "yes".
 +      (exit trap): Call `late_plan_' if `$use_tap' is true.  Also,
 +      unset shell traces before issuing the latest commands, to avoid
 +      confusing the tap driver with spurious output.
 +      * tests/defs-static.in ($use_tap): New variable, by default set
 +      to "yes" if the calling test script has a `.tap' suffix, and to
 +      "no" otherwise.  The individual scripts can override it though.
 +      In code sanity-checking the environment, verify that `$use_tap'
 +      is not exported.
 +      * tests/self-check-env-sanitize.test: Update, and small related
 +      reformatting.
 +      * tests/self-check-tap.test: New very minimal self test.
 +      * tests/acoutbs.test, tests/acoutbs2.test, tests/acoutnoq.test,
 +      tests/acoutpt.test, tests/acoutpt2.test, tests/acoutqnl.test:
 +      Removed, merged into ...
 +      * tests/ac-output-old.tap: ... this new test, that uses TAP.
 +      * tests/Makefile.am (TAP_LOG_DRIVER): Define to invoke our own
 +      `tap-driver' script.
 +      (TAP_LOG_DRIVER_FLAGS): Define to `--merge', so that the stdout
 +      and stderr of the test scripts remains synced.
 +      (TEST_EXTENSIONS): Define, to add the `.tap' suffix; also list
 +      the `.test' suffix explicitly.
 +      (EXTRA_DIST): Distribute the new files `plain-functions.sh' and
 +      `tap-functions.sh'.
 +      ($(TEST_LOGS)): Depends on them.
 +      (AM_TESTS_ENVIRONMENT): Ensure that `use_tap' is not exported in
 +      the environment of the tests.
 +      (TESTS): Update.
 +
 +2011-08-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      * NEWS: Fix typo, and related reformatting.
 +
 +2011-08-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      * NEWS: add mention of new experimental TAP support
 +
 +2011-08-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: rename some test scripts
 +      * tests/parallel-tests-am_tests_environment.test: Renamed ...
 +      * tests/am-tests-environment.test: ... to this.
 +      * tests/check-tests_environment.test: Renamed ...
 +      * tests/tests-environment.test: ... to this.
 +      * tests/parallel-test-driver-install.test: Renamed ...
 +      * tests/parallel-tests-driver-install.test: ... to this.
 +      * tests/parallel-tests-make-n.test: Renamed ...
 +      * tests/parallel-tests-dry-run.test: ... to this.
 +      * tests/Makefile.am (TESTS): Updated.
 +
 +2011-08-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: parallel-tests and lazy dependencies on EXTRA_PROGRAMS
 +      * tests/parallel-tests-extra-programs.test: New test.
 +      * tests/Makefile.am (TESTS): Update.
 +      * doc/automake.texi (Parallel Test Harness): Add a comment
 +      pointing to the new test.
 +
 +2011-08-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      docs: improve, extend and fix documentation on TAP support
 +      * doc/automake.texi ("Using the TAP test protocol"): Divide this
 +      section into ...
 +      ("Introduction to TAP", "Use TAP with the Automake test harness",
 +      "Incompatibilities with other TAP parsers and drivers", "Links
 +      and external resources"): ... these subsections, extend them by
 +      adding more information and examples, and improve them by removing
 +      incomplete and/or temporary wordings and TODO items.
 +      ("Script-based Testsuites", "Parallel Test Harness"): Add a couple
 +      of anchors to improve the granularity of cross-references.
 +      * tests/tap-doc2.test: New test, verifying the correctness of the
 +      new examples given in the manual.
 +      * tests/Makefile.am (tap_other_tests): Add the new test.
 +
 +2011-08-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: separate the only failing check of an xfailing test
 +      * tests/plan-bad-prog.test: Move the only failing check of this
 +      test (i.e., the one about the total number of "ERROR" outcomes)
 +      into ...
 +      * tests/plan-bad-prog2.test: ... this new test.
 +      * tests/Makefile.am (XFAIL_TESTS): Remove `plan-bad-prog.test',
 +      add `plan-bad-prog2.test'.
 +      (tap_other_tests): Add `plan-bad-prog2.test'.
 +      (plan-bad-prog2.log): Depend on `plan-bad-prog.test'.
 +
 +2011-08-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: fix spurious errors in an xfailing test on TAP support
 +      * tests/plan-bad-prog.test: Fix typo in the name of the test
 +      being made unreadable.  Correct the wording of the potential
 +      skip message, and simplify the condition under which the test
 +      is to be skipped.  Escape literal dots in grep regexps.
 +
 +2011-08-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: better granularity in a couple of tests on TAP support
 +      * tests/tap-summary-aux.sh: New auxiliary script, filled with code
 +      moved out from ...
 +      * tests/tap-summary.test: ... this test, from which the checks on
 +      colored testsuite have further been moved into ...
 +      * tests/tap-summary-color.test: ... this new test, which in turn
 +      * tests/Makefile.am (tap_other_tests): Add `tap-summary-color.test'.
 +      (EXTRA_DIST): Distribute `tap-summary-aux.sh'
 +      (tap-summary.log): Depend on `tap-summary-aux.sh'.
 +      (tap-summary-color.log): Likewise.
 +
 +2011-08-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: optimize tests on TAP for speed and against duplication
 +      The creation and configuration of common files and data used by
 +      many tests on TAP is, with this change, factored out into a new
 +      dedicated auxiliary test, from which those tests will depend upon.
 +      This reduces code duplication in tests and, more importantly,
 +      offers a noticeable speedup in the involved tests (30-40%).
 +      * tests/tap-common-setup.test: New test, setting up the common
 +      files and data used by various tests on TAP support.
 +      * tests/tap-setup.sh: New file, to be sourced by tests wanting to
 +      bring in data generated by `tap-common-setup.test'.
 +      * tests/tap-autonumber.test: Update to use the pre-computed data
 +      files.
 +      * tests/tap-bailout.test: Likewise.
 +      * tests/tap-color.test: Likewise.
 +      * tests/tap-deps.test: Likewise.
 +      * tests/tap-diagnostic.test: Likewise.
 +      * tests/tap-empty-diagnostic.test: Likewise.
 +      * tests/tap-empty.test: Likewise.
 +      * tests/tap-escape-directive.test: Likewise.
 +      * tests/tap-exit.test: Likewise.
 +      * tests/tap-signal.test: Likewise.
 +      * tests/tap-fancy.test: Likewise.
 +      * tests/tap-fancy2.test: Likewise.
 +      * tests/tap-global-log.test: Likewise.
 +      * tests/tap-global-result.test: Likewise.
 +      * tests/tap-html.test: Likewise.
 +      * tests/tap-log.test: Likewise.
 +      * tests/tap-merge-stdout-stderr.test: Likewise.
 +      * tests/tap-no-merge-stdout-stderr.test: Likewise.
 +      * tests/tap-message-0.test: Likewise.
 +      * tests/tap-no-disable-hard-error.test: Likewise.
 +      * tests/tap-no-spurious-summary.test: Likewise.
 +      * tests/tap-no-spurious.test: Likewise.
 +      * tests/tap-not-ok-skip.test: Likewise.
 +      * tests/tap-numeric-description.test: Likewise.
 +      * tests/tap-out-of-order.test: Likewise.
 +      * tests/tap-passthrough.test: Likewise.
 +      * tests/tap-passthrough-exit.test: Likewise.
 +      * tests/tap-plan.test: Likewise.
 +      * tests/tap-plan-corner.test: Likewise.
 +      * tests/tap-plan-corner2.test: Likewise.
 +      * tests/tap-plan-errors.test: Likewise.
 +      * tests/tap-realtime.test: Likewise.
 +      * tests/tap-recheck-logs.test: Likewise.
 +      * tests/tap-skip-whole.test: Likewise.
 +      * tests/tap-todo-skip-together.test: Likewise.
 +      * tests/tap-todo-skip-whitespace.test: Likewise.
 +      * tests/tap-todo-skip.test: Likewise.
 +      * tests/tap-unplanned.test: Likewise.
 +      * tests/tap-with-and-without-number.test: Likewise.
 +      * tests/tap-xfail-tests.test: Likewise.
 +      * tests/tap-skip-whole-whitespace.test: Likewise, and remove
 +      redundant definitions of `$sp' and `$tab' (they are already
 +      defined in `tests/defs').
 +      * tests/tap-whitespace-normalization.test: Likewise.
 +      * tests/Makefile.am (TESTS): Update.
 +      (EXTRA_DIST): Distribute `tap-setup.sh'.
 +      (tap_with_common_setup_tests, tap_with_common_setup_logs)): New
 +      variables, holding respectively the list of tests using the files
 +      pre-computed by `tap-common-setup.test', and the list of their
 +      corresponding log files.
 +      (tap_other_tests): New variable, holding the list of other tests
 +      on TAP support.
 +      ($(tap_with_common_setup_logs)): Depend on `tap-common-setup.log'
 +      and `tap-setup.sh'.
 +
 +2011-08-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test harness: use new `.trs' files to hold test metadata
 +      With this change, the test harness will keep test metadata in
 +      dedicated `.trs' files, instead of having them embedded into the
 +      `.log' files.  This allows for easier forward-compatibility and
 +      extension of test metadata, and for more flexibility in the
 +      format of the `.log' files.  Note that this change makes the
 +      `:end-metadata:' field obsolete.
 +      * doc/automake.texi (Parallel Test Harness, Log files generation
 +      and test results recording): Document the new APIs and behaviour;
 +      some related minor rewordings and fixlets.
 +      * NEWS: Update.
 +      * automake.in (handle_tests): When bringing in the content of
 +      `check2.am', substitute %BASE% with the basename of the `.log'
 +      file being created by a rule.  Add the generated `.trs' files
 +      to the list of files to be cleaned by "make mostlyclean".
 +      * lib/am/check.am (am__test_driver_flags): Rename ...
 +      (am__common_driver_flags): ... to this, and remove the flags
 +      `--test-name' and `--log-file' from it: they are now define in
 +      the proper rules in `check2.am'.
 +      (am__TEST_BASES): New internal variable, holding the names of
 +      the tests, with any registered extension removed.
 +      (am__stealth_MAKE): New internal variable, can be used instead of
 +      $(MAKE) in recipes requiring a recursive call to make, but which
 +      are not intended to be executed by "make -n".
 +      (.log.trs): New suffix rule, to recover from deletion of `.trs'
 +      files.
 +      ($(TEST_SUITE_LOG)): Almost completely rewritten to follow the
 +      new API of "test logs in `.log' files, test metadata in `.trs'
 +      files".  It goes to some length to work correctly in face of
 +      unreadable or missing `.log' and `.trs' files, and to error out
 +      with proper error messages when this is not possible.
 +      [%?PARALLEL_TESTS%] (check-TESTS): Also remove relevant "stale"
 +      `.trs' files (in addition to `.log files) before remaking the
 +      $(TEST_SUITE_LOG).
 +      (recheck, recheck-html): Look for the `:recheck:' field in the
 +      `.trs' files, not in the `.log' files.
 +      * lib/am/check2.am (?GENERIC?%EXT%.log, ?!GENERIC?%OBJ%): Adjust
 +      the call to the test driver, in particularly passing the new
 +      option `--trs-file'.
 +      [%am__EXEEXT%] (?GENERIC?%EXT%$(EXEEXT).log): Likewise.
 +      * lib/tap-driver ($USAGE): Adjust the help screen.
 +      (Getopt::Long::GetOptions): Handle the `--trs-file' option,
 +      through the use of ...
 +      ($trs_file): ... this new global variable.
 +      (finish): Write metadata for the test run to `$trs_file' rather
 +      then to `$log_file', through the use of ...
 +      (write_test_results): ... this new function.
 +      * lib/test-driver (print_usage): Update the help screen.
 +      (Option parsing): Handle the `--trs-file' option, through the
 +      use of ...
 +      ($resfile): ... this new global variable.
 +      (Main code): Write metadata for the test run to `$trsfile' rather
 +      than to `$logfile'.
 +      Minor related adjustments to comments.
 +      * tests/.gitignore: Ignore `*.trs' files.
 +      * tests/parallel-tests-unreadable-log.test: Moved ...
 +      * tests/parallel-tests-unreadable.test: ... to this, and extended
 +      to also check the semantics for unreadable `.trs' files.
 +      * tests/test-driver-end-metadata.test: Deleted as obsolete.
 +      * tests/test-driver-metadata-no-leading-space.test: Likewise.
 +      * tests/test-driver-global-log.test: Renamed ...
 +      * tests/test-metadata-global-log.test: ... to this, and modified
 +      as to verify the new APIs and semantics.
 +      * tests/test-driver-recheck: Renamed ...
 +      * tests/test-metadata-recheck.test: ... to this, and modified
 +      likewise.
 +      * tests/parallel-tests-once.test: New test.
 +      * tests/parallel-tests-make-n.test: Likewise.
 +      * test-metadata-results.test: Likewise.
 +      * test-missing.test: Likewise.
 +      * test-missing2.test: Likewise.
 +      * test-trs-basic.test: Likewise.
 +      * test-trs-recover.test: Likewise.
 +      * test-trs-recover2.test: Likewise.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-07-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test harness: allow more metadata in log files
 +      This change reworks and improves the parallel test harness to use
 +      more specialized reStructuredText fields in the log files (instead
 +      of relying on specially-placed of "magic lines" and more indirect
 +      semantical formatting); the new fields are the following:
 +       - ":recheck:": tell whether the associated test will have to be
 +         re-run by "make recheck";
 +       - ":copy-in-global-log:": tell whether the content of the log
 +         file should be copied in the "global log" `test-suite.log';
 +       - ":end-metadata:", which inhibits the scanning of the rest of
 +         the log file (for what concerns test metadata).
 +      Also, the special `:test-result:' value "END" has been removed,
 +      superseded by the new `:end-metadata:' field.
 +      * doc/automake.texi (Log files generation and test results
 +      recording): Document the new API and semantics.  Remove or fix
 +      some obsolete comments.
 +      * lib/am/check.am ($(TEST_SUITE_LOG), recheck, recheck-html):
 +      Adjust comments and code.
 +      * lib/tap-driver (finish): Adjust, with the help of ...
 +      (must_recheck, copy_in_global_log): ... these new functions.
 +      * lib/test-driver (Main code): Adjust, with the help of ...
 +      ($recheck, $gcopy): ... these new variables.
 +      * tests/trivial-test-driver: Update to obey the new APIs.
 +      * tests/test-driver-recheck.test: Likewise.
 +      * tests/test-driver-global-log.test: Likewise.
 +      * tests/tap-passthrough.test: Relax the test, avoiding to check
 +      what is written in `test-suite.log'; such check has been moved ...
 +      * tests/tap-global-log.test: ... in this new test, and extended.
 +      * tests/test-driver-metadata-no-leading-space.test: New test.
 +      * tests/test-driver-end-test-results.test: Removed, it checked
 +      the old APIs; superseded by ...
 +      * tests/test-driver-end-metadata.test: ... this new test.
 +      * tests/tap-log.test: Improve syncing with ...
 +      * tests/test-log.test: ... this new test.
 +      * tests/parallel-tests.test: Remove some duplication w.r.t. this
 +      last new test.  Updated heading comments.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-07-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: fix a spurious failure with non-bash shells
 +      * tests/tap-fancy2.test: Remove an unportable use of backslashes
 +      with the `echo' builtin, which was causing some shells (among them
 +      bash and Debian /bin/ksh) to print a `\\' string, while other
 +      shells (among them zsh, dash, and Solaris /bin/sh and /bin/ksh)
 +      were unexpectedly printing a single `\' character.  Since we are
 +      at it, add a sanity check to ensure that this issue does not
 +      resurface.
 +
 +2011-07-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: fix spurious failures with Solaris /bin/sh
 +      * tests/tap-more.test: Use `echo > file', not `: > file', to
 +      create empty files in the "for" loops; this is required since,
 +      as documented in the autoconf manual, Solaris 10 /bin/sh
 +      "optimizes" away the `:' command after the first iteration,
 +      even if it is redirected.
 +      * tests/test-driver-custom-multitest-recheck2.test: Likewise.
 +      * tests/tap-numeric-description.test: Partial rewrite to avoid
 +      using positional parameters from the 10th onward, which are
 +      unportable to Solaris /bin/sh (using `${10}' causes the shell
 +      to die with "bad substitution").
 +
 +2011-07-31  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      simple tests: support developer-defined fd redirections
 +      Motivated by coreutils bug#8846, and related discussions:
 +       <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8846>
 +       <http://lists.gnu.org/archive/html/bug-autoconf/2011-06/msg00002.html>
 +      In those threads it has been shown how problematic it can be to do
 +      portable file descriptor redirections in the testsuite when using
 +      the Automake testsuite harness.  This change should remedy to that
 +      situation.
 +      * lib/am/check2.am (?GENERIC?%EXT%$(EXEEXT).log,
 +      ?GENERIC?%EXT%.log, ?!GENERIC?%OBJ%): Append redirection defined
 +      in $(AM_TESTS_FD_REDIRECT) to the command-line invocations of the
 +      test scripts.
 +      * lib/am/check.am [!%?PARALLEL_TESTS%] $(check-TESTS): Likewise.
 +      * NEWS: Update.
 +      * doc/automake.texi (Script-based Testsuites): Document the new
 +      feature.
 +      * tests/check-fd-redirect.test: New test.
 +      * tests/parallel-tests-fd-redirect.test: Likewise.
 +      * tests/parallel-tests-am_tests_environment.test: Remove checks
 +      about the use of redirections in AM_TESTS_ENVIRONMENT: they would
 +      check deprecated (if not undefined) behaviour now.  Strengthen a
 +      couple of still valid checks, to keep the test more in sync with
 +      the documentation.  Improve debugging information.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-07-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      docs: rework and extend documentation on testsuites support
 +      * doc/automake.texi (Generalities about Testing): New section.
 +      (Simple Tests using parallel-tests): Section removed, merged
 +      into ...
 +      (Simple Tests): ... this one, which on the other hand has been
 +      subdivided into ...
 +      (Script-based Testsuites, Serial Test Harness, Parallel Test
 +      Harness): ... these new subsection.
 +      (DejaGnu Tests): Minor adjustments.
 +      Other related typofixes and rewordings throughout the manual;
 +      in particular, avoid to use the term "test driver" for three
 +      different concepts (and use instead "test harness" and "test
 +      runner" where appropriate).
 +      * tests/tap-doc.test: New test.
 +      * tests/tap-no-disable-hard-error.test: Likewise.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-07-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: support colorization of testsuite progress output
 +      * lib/tap-driver (%COLORS): New variable (definition extracted
 +      from `lib/am/check.am:$(am__tty_colors)', with some obvious
 +      adjustments.
 +      (report): Adjust to colorize console output when required,
 +      using ...
 +      (decorate_result): ... this new function.
 +      (colored): New function, used by the one above.
 +      * tests/tap-summary.test: Also run the checks when `color-tests'
 +      is in use.
 +      * tests/Makefile.am (XFAIL_TESTS): Remove `tap-color.test'.
 +
 +2011-07-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: some preparatory refactoring (2)
 +      This is a follow-up simplification.
 +      * lib/tap-driver (console_output): Renamed ...
 +      (report): ... to this, and extended to appropriately register
 +      the test results when needed.
 +      (testsuite_error, handle_tap_comment, handle_tap_test,
 +      handle_tap_plan): Adjusted accordingly.
 +
 +2011-07-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: some preparatory refactoring (1)
 +      This refactoring is aimed at simplifying the introduction of
 +      colored console output for the TAP driver.
 +      * lib/tap-driver (console_output): Now accept two arguments, the
 +      first one indicating which kind of thing is to be displayed (for
 +      now only a test result or a diagnostic comment), and the second
 +      one (if present) the message associated to it.
 +      (handle_tap_test, handle_tap_comment, handle_tap_plan,
 +      testsuite_error): Adapt to the new `console_output' interface.
 +
 +2011-07-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tap: add experimental TAP-aware driver
 +      * doc/automake.texi (Using the TAP test protocol): New section.
 +      (Overview of Custom Test Drivers Support): Minor updates.
 +      * lib/tap-driver: New script, TAP-aware test driver for Automake;
 +      implemented in perl and based on TAP::Parser.
 +      * lib/Makefile.am (dist_script_DATA): Add it.
 +      * tests/tap-autonumber.test: New test.
 +      * tests/tap-bailout.test: Likewise.
 +      * tests/tap-basic.test: Likewise.
 +      * tests/tap-deps.test: Likewise.
 +      * tests/tap-diagnostic.test: Likewise.
 +      * tests/tap-empty.test: Likewise.
 +      * tests/tap-empty-diagnostic.test: Likewise.
 +      * tests/tap-escape-directive.test: Likewise.
 +      * tests/tap-exit.test: Likewise.
 +      * tests/tap-fancy.test: Likewise.
 +      * tests/tap-fancy2.test: Likewise.
 +      * tests/tap-global-result.test: Likewise.
 +      * tests/tap-html.test: Likewise.
 +      * tests/tap-log.test: Likewise.
 +      * tests/tap-merge-stdout-stderr.test: Likewise.
 +      * tests/tap-more.test: Likewise.
 +      * tests/tap-more2.test: Likewise.
 +      * tests/tap-no-merge-stdout-stderr.test: Likewise.
 +      * tests/tap-no-spurious-summary.test: Likewise.
 +      * tests/tap-no-spurious.test: Likewise.
 +      * tests/tap-not-ok-skip.test: Likewise.
 +      * tests/tap-numeric-description.test: Likewise.
 +      * tests/tap-out-of-order.test: Likewise.
 +      * tests/tap-passthrough.test: Likewise.
 +      * tests/tap-plan.test: Likewise.
 +      * tests/tap-plan-errors.test: Likewise.
 +      * tests/tap-plan-corner.test: Likewise.
 +      * tests/tap-realtime.test: Likewise.
 +      * tests/tap-recheck-logs.test: Likewise.
 +      * tests/tap-recheck.test: Likewise.
 +      * tests/tap-skip-whole.test: Likewise.
 +      * tests/tap-summary.test: Likewise.
 +      * tests/tap-todo-skip.test: Likewise.
 +      * tests/tap-todo-skip-together.test: Likewise.
 +      * tests/tap-todo-skip-whitespace.test: Likewise.
 +      * tests/tap-skipall-whitespace.test: Likewise.
 +      * tests/tap-unplanned.test: Likewise.
 +      * tests/tap-whitespace-normalization.test: Likewise.
 +      * tests/tap-with-and-without-number.test: Likewise.
 +      * tests/tap-xfail-tests.test: Likewise.
 +      * tests/tap-bad-prog.test: New xfailing test.
 +      * tests/tap-color.test: Likewise.
 +      * tests/tap-plan-corner2.test: Likewise.
 +      * tests/tap-message-0.test: Likewise.
 +      * tests/tap-signal.test: Likewise.
 +      * tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
 +
 +2011-07-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: new auxiliary function 'count_test_results'
 +      * tests/defs (count_test_results): New function.
 +      * tests/check11.test: Use it.
 +      * tests/test-driver-custom-multitest.test: Likewise.
 +      * tests/test-driver-custom-multitest-recheck.test: Likewise.
 +      * tests/test-driver-custom-multitest-recheck2.test: Likewise.
 +      * tests/parallel-tests-log-override-recheck.test: Likewise.
 +      * tests/parallel-tests-log-override-recheck.test: Likewise.
 +      * tests/parallel-tests-no-spurious-summary.test: Likewise, and
 +      slightly improve debugging output.
 +      * tests/parallel-tests.test: Make use of `count_test_results'.
 +      Also, make grepping of "make check" output slightly stricter
 +      * tests/parallel-tests9.test: Likewise.
 +      * tests/parallel-tests-log-override-2.test: Likewise, and throw
 +      in a small optimization.
 +
 +2011-07-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      parallel-tests: simplify testsuite summary
 +      Prefer a more deterministic, "tabular" format for the testsuite
 +      summary, always listing the numbers of passed, failed, xfailed,
 +      xpassed, skipped and errored tests, even when these numbers are
 +      zero.  This simplify the logic of testsuite summary creation,
 +      makes it more easily machine-parseable, and will probably allow
 +      for easier addition of new kinds of test results in the future.
 +      * lib/am/check.am (am__tty_colors_dummy): New make variable, to
 +      reduce code duplication.  Extracted from previous versions of
 +      $(am__tty_colors), and extended by defining two new variables
 +      `$mgn' and `$brg'.
 +      [%?COLOR%, %!?COLOR%] (am__tty_colors): Use that new variable.
 +      (am__text_box): Delete, is not needed anymore.
 +      ($(TEST_SUITE_LOG)): Rewrite associated rules to implement the
 +      new testsuite summary format.
 +      * NEWS: Update.
 +      * tests/check10.test: Don't run with the parallel-tests harness
 +      too, that makes no sense anymore.
 +      * tests/color.test: Update and adjust.
 +      * tests/color2.test: Likewise.
 +      * tests/parallel-tests.test: Likewise.
 +      * tests/parallel-tests3.test: Likewise.
 +      * tests/parallel-tests6.test: Likewise.
 +      * tests/parallel-tests9.test: Likewise.
 +      * tests/parallel-tests-unreadable-log.test: Likewise.
 +      * tests/parallel-tests-empty-testlogs.test: Likewise.
 +      * tests/parallel-tests-log-override-recheck.test: Likewise.
 +      * tests/parallel-tests-no-spurious-summary.test: Likewise.
 +      * tests/test-driver-custom-multitest.test: Likewise.
 +      * tests/test-driver-end-test-results.test: Likewise.
 +      * tests/parallel-tests-no-color-in-log.test: New test.
 +      * tests/testsuite-summary-color.test: Likewise.
 +      * tests/testsuite-summary-count.test: Likewise.
 +      * tests/testsuite-summary-count-many.test: Likewise.
 +      * tests/testsuite-summary-reference-log.test: Likewise.
 +      * tests/testsuite-summary-checks.sh: New auxiliary script, used
 +      by the new tests above.
 +      * tests/extract-testsuite-summary: Likewise.
 +      * tests/trivial-test-driver: Optimize for speed when there are
 +      lots of of tests.
 +      * tests/Makefile.am (EXTRA_DIST): Distribute them.
 +      (testsuite-summary-color.log, testsuite-summary-count.log): Depend
 +      on them.
 +      (testsuite-summary-count-many.log): Depend on the auxiliary scripts
 +      'trivial-test-driver' and 'extract-testsuite-summary'.
 +      (TESTS): Update.
 +
 +2011-07-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      parallel-tests: new recognized test result 'ERROR'
 +      * lib/am/check.am ($(TEST_SUITE_LOG)): Recognize a new test result
 +      `ERROR'.  Use it when encountering unreadable test logs (previously
 +      a simple `FAIL' was used in this situations).
 +      * lib/test-driver: Set the global test result to `ERROR' when the
 +      test exit status is 99.  When doing colorized output, color `ERROR'
 +      results in magenta.
 +      * doc/automake.texi (Log files generation and test results
 +      recording): Update by listing `ERROR' too among the list of valid
 +      `:test-results:' arguments.
 +      * NEWS: Update.
 +      * tests/trivial-test-driver: Update.
 +      * tests/parallel-tests.test: Likewise.
 +      * tests/parallel-tests-harderror.test: Likewise.
 +      * tests/parallel-tests-no-spurious-summary.test: Likewise.
 +      * tests/test-driver-global-log.test: Likewise.
 +      * tests/test-driver-recheck.test: Likewise.
 +      * tests/test-driver-custom-multitest-recheck.test: Likewise.
 +      * tests/test-driver-custom-multitest-recheck2.test: Likewise.
 +      * tests/test-driver-custom-multitest.test: Likewise.
 +      * tests/test-driver-custom-no-html.test: Likewise.
 +      * tests/test-driver-end-test-results.test: Likewise.
 +      * tests/color.test: Likewise.  Also, make stricter, and also test
 +      from VPATH.
 +      * tests/color2.test: Likewise, and improve syncing with color.test.
 +      * tests/parallel-tests-exit-statuses.test: New test.
 +      * tests/parallel-tests-console-output.test: Likewise.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-07-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      parallel-tests: make parsing of test results safer
 +      The new code for parsing the testsuite-generated `.log' files,
 +      as introduced in commit `v1.11-872-gc96b881', considers each
 +      `:test-result:' field anywhere in a `.log' file as a declaration
 +      of a test result, and accounts for it as such in the testsuite
 +      summary.  Unfortunately this could easily cause spurious test
 +      failures being reported in the testsuite summary.  This happened
 +      in practice with the Automake's own testsuite; for example:
 +        $ make check TESTS='check12-p.test'; echo exit: $?
 +        ...
 +        PASS: check12-p.test
 +        =====================================
 +        4 of 5 tests failed
 +        See tests/test-suite.log
 +        Please report to bug-automake@gnu.org
 +        =====================================
 +        make[2]: *** [test-suite.log] Error 1
 +        make: *** [check-am] Error 2
 +        exit: 2
 +      This change introduces a new special `:test-result:' "END", that,
 +      when seen, prevents the rest of the log file from being parsed.
 +      For more information, refer to the thread:
 +      <http://lists.gnu.org/archive/html/automake-patches/2011-06/msg00199.html>
 +      * lib/am/check.am ($(TEST_SUITE_LOG)): Stop the parsing of a log
 +      file as soon as the special ":test-result:END" directive is seen.
 +      Related changes and enhancements.
 +      * lib/test-driver: Protect the rest of the log after the result
 +      lined with a ":test-result:END" directive.
 +      * doc/automake.texi (Log files generation and test results
 +      recording): Update, and related improvements.
 +      * tests/parallel-tests-no-spurious-summary.test: New test.
 +      * tests/test-driver-end-test-results.test: Likewise.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-06-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      docs: document custom test drivers and protocols
 +      * doc/automake.texi (Simple Tests): Note that the TESTS_ENVIRONMENT
 +      use suggested here is not portable to 'parallel-tests'.
 +      (Simple Tests using parallel-tests): Document new restrictions on
 +      the uses of TESTS_ENVIRONMENT and AM_TESTS_ENVIRONMENT.
 +      (Custom Test Drivers): New section and node.
 +      (Overview of Custom Test Drivers Support): New subsection.
 +      (Declaring Custom Test Drivers in @file{Makefile.am}): Likewise.
 +      (APIs for Custom Test Drivers): Likewise.
 +      (Options): Update description of color-tests.
 +      * lib/am/check ($(TEST_SUITE_LOG)): Remove comments that have been
 +      moved into the manual.
 +      (recheck, recheck-html): Minor adjustments to better conform to the
 +      documentation (this should cause no semantic changes w.r.t. the
 +      former behaviour); minor improvements and extensions to existing
 +      comments.
 +      * tests/test-driver-create-log-dir.test: New test.
 +      * tests/test-driver-strip-vpath.test: Likewise.
 +      * tests/test-driver-global-log.test: Likewise.
 +      * tests/test-driver-recheck.test: Likewise.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-07-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: small enhancement to 'primary3.test'
 +      * tests/primary3.test: Also test that the program named `foo.la'
 +      has been effectively created.
 +
 +2011-07-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: a small simplification in 'pr8365-remake-timing.test'
 +      * tests/pr8365-remake-timing.test: Avoid redundant definition
 +      and use of `$save_AUTOCONF' variable.
 +
 +2011-07-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: remove an extra leading blank line
 +      * tests/override-conditional-1.test: Remove extra blank line
 +      placed before the shebang line.
 +
 +2011-07-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix typos, grammaros and other blunders in comments
 +      All affected files changed.
 +
 +2011-07-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: new subroutine 'seq_', simulating GNU seq(1)
 +      * tests/defs (seq_): New subroutine.
 +      * tests/instmany.test: Use it.
 +      * tests/instmany-mans.test: Likewise.
 +      * tests/instmany-python.test: Likewise.
 +      * tests/self-check-seq.test: New self test.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-07-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: remove duplication about testing of config.* aux files
 +      * tests/add-missing.test: Also check that the `AC_CANONICAL_SYSTEM'
 +      autoconf macro causes the `config.sub' and `config.guess' scripts
 +      to be installed by `automake --add-missing'.  Since we are at it,
 +      fix minor buglets and cosmetic issues in the `check_' function.
 +      * tests/hosts.test: Removed, completely subsumed by the previous
 +      test now.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-07-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: more uses of the 'unindent' subroutine
 +      * tests/backcompat.test: Prefer `unindent' over plain `cat' for
 +      here documents created from within a loop of if/else body.
 +      * tests/backcompat2.test: Likewise.
 +      * tests/backcompat4.test: Likewise.
 +      * tests/init.test: Likewise.
 +      * tests/instmany.test: Likewise.
 +      * tests/instmany-mans.test: Likewise.
 +      * tests/instmany-python.test: Likewise.
 +      * tests/missing5.test: Likewise.
 +      * tests/parallel-am2.test : Likewise.
 +      * tests/parallel-am3.test : Likewise.
 +      * tests/pr307.test: Likewise.
 +      * tests/depend4.test: Likewise.  Since we are at it, normalize
 +      other code formatting.
 +      * tests/instfail-java.test: Prefer `echo' over `cat' + here-doc
 +      inside a for loop.
 +
 +2011-07-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: avoid '##'-style comments inside recipe commands
 +      * tests/autodist.test: Do not whitespace-indent `##' comments when
 +      they are embedded in a makefile rule: having them indented is not
 +      part of the Automake API, and might cause failures with e.g., Tru64
 +      make.
 +      * tests/autodist-subdir.test: Likewise.
 +      * tests/backcompat.test: Likewise.
 +      * tests/backcompat6.test: Likewise.
 +      * tests/colon7.test: Likewise.
 +      * tests/posixsubst-scripts.test: Likewise.
 +      * tests/posixsubst-sources.test: Likewise.
 +
 +2011-07-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: tweak, improve and extend tests on lisp support
 +      * tests/lisp2.test: Prettify, and improve debugging output.  Make
 +      grepping of automake stderr stricter.
 +      * tests/lisp7.test: Ensure verbose printing of captured make
 +      output.  Add trailing `:' command.
 +      * tests/lisp8.test: Likewise.
 +      * tests/lisp3.test: Likewise.  Also, check that `.el' files and
 +      compiled `.elc' files get installed by "make install", and
 +      uninstalled by "make uninstall".
 +      * tests/lisp4.test: Ensure installed `.el' files gets removed by
 +      "make uninstall".  Related changes.  Add trailing `:' command.
 +      * tests/lisp5.test: Likewise.
 +      * tests/lisp6.test: Use proper m4 quoting in configure.in.  Fix
 +      use of blank lines, to improve clarity and symmetry.  Fix typo in
 +      comment.  Add trailing `:' command.
 +
 +2011-07-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: drop useless requirement in 'license.test'
 +      * tests/license.test: Drop  useless requirement "makeinfo".  Add
 +      an extra blank line, for clarity.
 +
 +2011-07-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests defs: more uses of $top_testsrcdir
 +      * tests/autodist-stamp-vti.test: Use `$top_testsrcdir' instead
 +      of `$testsrcdir/..'.
 +      * tests/repeated-options.test: Likewise.
 +      * tests/suffix5.test: Likewise.
 +      * tests/vtexi3.test: Likewise.
 +
 +2011-07-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      self tests: fix typo in comment
 +      * tests/self-check-exit.test: Fix typo in heading comments.
 +
 +2011-07-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: remove redundant settings of `errexit' shell flag
 +      * tests/amhello-binpkg.test: Do not set the `errexit' shell
 +      flag, as it is already set by `tests/defs'.
 +      * tests/amhello-cflags.test: Likewise.
 +      * tests/amhello-cross-compile.test: Likewise.
 +      * tests/ansi2knr-deprecation.test: Likewise.
 +      * tests/autodist-no-duplicate.test: Likewise.
 +      * tests/distcheck-configure-flags-am.test: Likewise.
 +      * tests/distcheck-configure-flags-subpkg.test: Likewise.
 +      * tests/distcheck-configure-flags.test: Likewise.
 +      * tests/distcheck-hook.test: Likewise.
 +      * tests/distcheck-hook2.test: Likewise.
 +      * tests/parallel-tests-am_tests_environment.test: Likewise.
 +      * tests/parallel-tests-harderror.test: Likewise.
 +      * tests/parallel-tests-log-compiler-example.test: Likewise.
 +      * tests/parallel-tests-log-override-1.test: Likewise.
 +      * tests/parallel-tests-log-override-2.test: Likewise.
 +      * tests/parallel-tests-log-override-recheck.test: Likewise.
 +      * tests/primary-prefix-couples-documented-valid.test: Likewise.
 +      * tests/primary-prefix-couples-force-valid.test: Likewise.
 +      * tests/primary-prefix-invalid-couples.test: Likewise.
 +      * tests/primary-prefix-valid-couples.test: Likewise.
 +      * tests/remake-subdir-from-subdir.test: Likewise.
 +      * tests/remake-subdir-gnu.test: Likewise.
 +      * tests/remake-subdir-long-time.test: Likewise.
 +      * tests/remake-subdir.test: Likewise.
 +      * tests/remake-subdir2.test: Likewise.
 +      * tests/silent-configsite.test: Likewise.
 +      * tests/tests-environment-backcompat.test: Likewise.
 +
 +2011-06-29   Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      docs: explain why AM_TESTS_ENVIRONMENT must be semicolon-terminated
 +      * doc/automake.texi (Simple Tests using parallel-tests): Ditto, and
 +      related adjustments.
 +      Suggestion by Ralf Wildenhues.
 +
 +2011-06-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      docs: fix unportable example of AM_TESTS_ENVIRONMENT usage
 +      * doc/automake.texi (Simple Tests using parallel-tests): The
 +      old example on AM_TESTS_ENVIRONMENT relied on unportable shell
 +      features, and in particular didn't work with various Korn
 +      Shells (see also commit `v1.11-925-g29ca903').  Give another
 +      example, simpler this time, but still inspired to real-world
 +      usage (the GNU coreutils testsuite).
 +
+ 2011-06-28   Stefano Lattarini  <stefano.lattarini@gmail.com>
+       yacc tests: fix bug in 'yacc-cxx.test'
+       * tests/yacc-cxx.test: Enable `errexit' shell flag (the lack of
+       which was masking the bug).
+       (bar.cxx): Rename to ...
+       (bar2.cxx): ... this, otherwise automake will (correctly) complain
+       that object `bar.o' is created by both `bar.cxx' and `bar.c++'.
+       (Makefile.am): Adjust.
+ 2011-06-28   Stefano Lattarini  <stefano.lattarini@gmail.com>
+       lex tests: fix spurious link errors on Solaris
+       On Solaris 10, linking of lex-generated programs was failing in a
+       couple of lex tests with errors like this:
+         g++ -g -O2 -o joe joe.o -ll
+         Undefined symbol     first referenced in file
+         yywrap()             joe.o
+         ld: fatal: Symbol referencing errors. No output written to joe
+         collect2: ld returned 1 exit status
+       This change fixes it, also fixing at once potential problems for
+       systems that don't have a "lex library" (this happens for example
+       when cross-compiling from GNU/Linux to MinGW).
+       * tests/lex-depend-cxx.test (joe.ll, moe.l++): Define a dummy
+       `yywrap()' function.
+       * tests/lex-clean-cxx.test (mainfoo.cc, mainbar.cpp, mainbaz.c++,
+       mainqux.cxx): Likewise.
  2011-06-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        docs: avoid a footnote, some related rewordings and improvements
  
  2011-06-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 +      parallel-tests: allow each test to have multiple results
 +      With this change, we improve the code creating the `test-suite.log'
 +      global log and the console testsuite summary to make it able to
 +      grasp multiple results per test script.  This is required in order
 +      to introduce the planned support for test protocols, like TAP and
 +      SubUnit, which can indeed run multiple tests per test script, each
 +      with its individual result.
 +      The implementation makes use of a custom reStructuredText field
 +      `:test-result:'.
 +      Note that no new documentation is added by this change; that is
 +      be left for follow-up changes.
 +      * lib/check.am ($(TEST_SUITE_LOG)): When processing .log files,
 +      recognize a report of a test's result only if it is declared with
 +      the custom `:test-result:' reStructuredText field placed at the
 +      beginning of a line.  Extend and add explanatory comments.
 +      (recheck, recheck-html): Add explanatory comments.
 +      * lib/test-driver: Write an appropriate reStructuredText field
 +      `:test-result:' in the generated log file.  Use a reStructuredText
 +      transition to better separate the test outcome report from the
 +      test script's registered output.  Improve comments.
 +      * tests/test-driver-custom-xfail-tests.test: Adjust.
 +      * tests/parallel-tests7.test: Adjust.
 +      * tests/parallel-tests-empty-testlogs.test: New test.
 +      * tests/parallel-tests-recheck-override.test: Likewise.
 +      * tests/parallel-tests2.test: Extend and keep more in-sync with ...
 +      * tests/test-driver-custom-html.test: ... this new related test.
 +      * tests/test-driver-custom-no-html.test: New test.
 +      * tests/test-driver-custom-multitest.test: Likewise.
 +      * tests/test-driver-custom-multitest-recheck.test: Likewise.
 +      * tests/test-driver-custom-multitest-recheck2.test: Likewise.
 +      * tests/trivial-test-driver: New file, used by the last four tests
 +      above.
 +      * tests/Makefile.am (TESTS): Update.
 +      (EXTRA_DIST): Distribute `trivial-test-driver'.
 +      (test-driver-custom-multitest.log): Depend on `trivial-test-driver'.
 +      (test-driver-custom-multitest-recheck.log): Likewise.
 +      (test-driver-custom-multitest-recheck2.log): Likewise.
 +      (test-driver-custom-html.log): Likewise.
 +
 +2011-06-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      parallel-tests: allow custom driver scripts
 +      Allow suffix-based definition of custom "driver script" for the
 +      test scripts.  These driver scripts will be responsible of
 +      launching the tests (or their corresponding $(LOG_COMPILER), if
 +      they have an associated one), interpreting and displaying the
 +      test results, and writing the `.log' files.
 +      This new API should allow easy and flexible use of different
 +      test protocols in the future; in particular, we plan to use it
 +      to implement TAP and SubUnit harnesses.
 +      Note that no new documentation is added by this change; that is
 +      be left for follow-up changes.
 +      * automake.in (handle_tests): Define default for $(LOG_DRIVER),
 +      and, for any registered test extension `<ext>', define defaults
 +      for $(<ext>_LOG_DRIVER).  Substitute %DRIVER% using these new
 +      variables, instead of the old internal $(am__test_driver).  When
 +      processing check2.am, also substitute %DRIVER_FLAGS%.
 +      Require auxiliary script `test-driver' only if no driver has been
 +      explicitly defined for the test script kinds.
 +      * am/check2.am (?GENERIC?%EXT%$(EXEEXT).log, ?GENERIC?%EXT%.log,
 +      ?!GENERIC?%OBJ%): Pass the %DRIVER_FLAGS% to the %DRIVER% call.
 +      * tests/parallel-tests-no-extra-driver.test: New test.
 +      * tests/test-driver-custom.test: Likewise.
 +      * tests/test-driver-custom-xfail-tests.test: Likewise.
 +      * tests/test-driver-fail.test: Likewise.
 +      * tests/Makefile.am: Update.
 +      * NEWS: Update.
 +
 +2011-06-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      parallel-tests: add auxiliary script 'test-driver', refactor
 +      This refactoring should cause no API of functionality change,
 +      and is meant only to simplify the future implementation of TAP
 +      and SubUnit testsuite drivers.  More precisely, our roadmap is
 +      to move most of the "testsuite driving" features out of the
 +      Automake-generated Makefiles, and into external scripts with
 +      well-defined interfaces.  This will allow the user to define
 +      its own personalized testsuite drivers, and will also offer us
 +      a framework upon which to implement our new TAP and SubUnit
 +      drivers, all in a very unobtrusive way and retaining an high
 +      degree of code reuse and backward-compatibility.
 +      * lib/test-driver: New auxiliary script.
 +      * lib/Makefile.am (dist_SCRIPT_DATA): Add it.
 +      * automake.in (handle_tests): Require the new auxiliary script
 +      `test-driver', and define a new internal makefile variable
 +      `$(am__test_driver)', used to call it.  Perform new substitution
 +      on `DRIVER' when processing the `check2.am' file.
 +      * lib/check.am (am__tty_colors): Define new shell variable
 +      `$am__color_tests'.
 +      (am__rst_section): Removed, its role taken over by the new
 +      `test-driver' script.
 +      (am__test_driver_flags): New variable, contains the command
 +      line options passed to `test-driver'.
 +      (am__check_pre): Do not deal with temporary files and exit
 +      traps anymore, as the `test-driver' script takes care of that
 +      now.  Define shell variable `$am__enable_hard_errors', used by
 +      `$(am__test_driver_flags)'.  Reorder so that we don't need to
 +      save and restore the value of the `TERM' environment variable
 +      anymore.
 +      Other related adjustments.
 +      (am__check_post): Remove, as its role has been completely taken
 +      over by the `test-driver' script.
 +      * am/check2.am (?GENERIC?%EXT%$(EXEEXT).log, ?GENERIC?%EXT%.log,
 +      ?!GENERIC?%OBJ%): Call the test script through the Automake
 +      substituted `%DRIVER%', and honor the command-line options
 +      in `$(am__test_driver_flags)'.  Do not call the obsoleted
 +      `$(am__check_post)' anymore.
 +      * doc/automake.texi (Auxiliary Programs): Mention the new
 +      `test-driver' script.
 +      (Optional): Mention `test-driver' in AC_CONFIG_AUX_DIR.
 +      Since we are at it, break the list of auxiliary scripts by
 +      placing one per line, to simplify potential future additions
 +      of new scripts.
 +      * tests/check.test: Adjust.
 +      * tests/check2.test : Likewise.
 +      * tests/check3.test : Likewise.
 +      * tests/check4.test : Likewise.
 +      * tests/check10.test: Likewise.
 +      * tests/color.test: Likewise.
 +      * tests/color2.test: Likewise.
 +      * tests/comment9.test: Likewise.
 +      * tests/dejagnu.test: Likewise.
 +      * tests/exeext4.test: Likewise.
 +      * tests/maken3.test: Likewise.
 +      * tests/maken4.test: Likewise.
 +      * tests/parallel-tests-interrupt.test: Likewise.
 +      * tests/posixsubst-tests.test: Likewise.
 +      * tests/repeated-options.test: Likewise.
 +      * tests/check-no-test-driver.test: New test.
 +      * tests/parallel-test-driver-install.test: Likewise.
 +      * tests/Makefile.am (TESTS): Update.
 +      * NEWS: Update.
 +
 +2011-06-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
        maintcheck: extend 'sc_tests_plain_*' checks
        * Makefile.am (sc_tests_plain_autom4te): New check.
        (sc_tests_plain_autoreconf): Likewise.
        (sc_tests_plain_autoheader): Likewise.
        (syntax_check_rules): Update.
  
 +2011-06-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: interactions between TESTS_ENVIRONMENT and LOG_COMPILER
 +      * tests/tests-environment-and-log-compiler.test: New test,
 +      checking that we can use variables and functions set by
 +      TESTS_ENVIRONMENT and AM_TESTS_ENVIRONMENT in LOG_COMPILER
 +      and LOG_FLAGS (for tests both with and without registered
 +      extensions).
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-06-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: make 'subst-no-trailing-empty-line.test' more robust
 +      * tests/subst-no-trailing-empty-line.test: Strengthen existing
 +      checks, to try more scenarios and be slightly stricter in some
 +      grepping checks.
 +
 +2011-06-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix an incomplete comment
 +      * tests/subst-no-trailing-empty-line.test: Fix an incomplete
 +      comment, and move it to a more proper place.  Minor cosmetic
 +      fixes to other comments.
 +
 +2011-06-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      maintcheck: avoid few more spurious failures
 +      * tests/depmod-data.test: Use creative quoting to avoid
 +      spuriously triggering the `sc_tests_Exit_not_exit' maintainer
 +      check.  Commit `v1.11-900-g3453b8e' attempted to fix it, but
 +      succeeded only partially.
 +      * tests/cond33.test: Fix header comments, not to reference
 +      obsolescent make variable `$(mkdir_p)'.
 +      * tests/cond4.test: Rewrite "$MAKE exp=..." as "exp=.. $MAKE -e",
 +      to please `sc_tests_overriding_macros_on_cmdline'
 +      * tests/cond19.test: Likewise.
 +      * tests/cond32.test: Likewise.
 +      * tests/add-missing.test: Use "AUTOMAKE_fails" instead of
 +      "$AUTOMAKE ... && Exit 1", to please `sc_tests_automake_fails'.
 +
  2011-06-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        maintcheck: avoid few spurious failures
        * doc/automake.texi (Program Sources): Do not index obsolete
        pkglib_PROGRAMS here.  Do index pkglibexec_PROGRAMS.
  
 +2011-06-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: more checks on portable fd redirection in TESTS_ENVIRONMENT
 +      * tests/tests-environment-fd-redirect.test: Extend by also using
 +      a perl script among the tests.  Run the test shell script with
 +      the `errexit' flag active.  Export `VERBOSE' to yes when running
 +      "make check", to give more debugging information in case of
 +      failures.  Look for a Korn Shell also in `/usr/bin', not on only
 +      in `/bin'.
 +
  2011-06-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        tests: optimize tests on primary/prefix mismatch for speed
        * NEWS: Updated.
        From a report by Eric Blake.
  
 +2011-06-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: check portable fd redirection in TESTS_ENVIRONMENT
 +      * tests/tests-environment-fd-redirect.test: New test.
 +      * tests/Makefile.am (TESTS): Update.
 +      Motivated by coreutils bug#8846:
 +       <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8846>
 +      See also following CC:ed thread on bug-autoconf list:
 +       <http://lists.gnu.org/archive/html/bug-autoconf/2011-06/msg00002.html>
 +
 +2011-06-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: make test 'self-check-reexec.test' more portable
 +      * tests/self-check-reexec.test: Rewrite not to require a Korn
 +      Shell able to grok variable expansions such as `${.sh.version}';
 +      Solaris 10 /bin/ksh fails on this for example.  Instead, just
 +      require bash and a shell that is not bash.
 +
 +2011-06-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +          Jim Meyering  <meyering@redhat.com>
 +
 +      test defs: fix ksh-related portability bug in warning messages
 +      Running "make check" normally prints a diagnostic to the outermost
 +      stderr (usually a tty) to explain why a test is skipped, thus
 +      giving better and faster feedback to the user.  It used to do
 +      so by redirecting file descriptor 9 to stderr (via "exec 9>&2")
 +      before invoking the test scripts, which then would write any skip
 +      explanation to file descriptor 9 via the `skip_' function defined
 +      in `tests/defs'.
 +      However, various Korn Shells (at least Solaris 10's /bin/ksh and
 +      Debian GNU/Linux's /bin/ksh) and the HP-UX's /bin/sh close open
 +      file descriptors > 2 upon an `exec' system call; thus the effects
 +      of "exec 9>&2" are cancelled upon fork-and-exec, so we would get
 +      a "Bad file number" diagnostic and no skip explanation with those
 +      shells.
 +      The present change remedies this situation.
 +      * tests/Makefile.am (AM_TESTS_ENVIRONMENT): Redirect more portably,
 +      via a trailing "9>&2", rather than the prior "exec 9>&2; ...".  Add
 +      explanatory comments.
 +      * tests/defs (stderr_fileno_): Update the advice in comments.
 +      Based on commit v8.12-82-g6b68745 "tests: accommodate HP-UX and
 +      ksh-derived shells" in GNU coreutils.
 +      Further references, with lots of discussion:
 +       <http://lists.gnu.org/archive/html/bug-autoconf/2011-06/msg00002.html>
 +       <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/22488>
 +       <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8846>
 +
 +2011-06-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: remove 'test_prefer_config_shell' from the environment
 +      Since commit `v1.11-910-g7df1a9b', the once user-overridable
 +      variable `$test_prefer_config_shell' has become an internal
 +      detail, and the test scripts now complain and bail out if it is
 +      set in the environment.
 +      * tests/Makefile.am (AM_TESTS_ENVIRONMENT): Unset the variable
 +      `test_prefer_config_shell' if it is set in the environment.
 +
 +2011-06-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: autogenerate list of wrapped tests for `lib/' shell scripts
 +      * tests/gen-config-shell-tests: New script, generates distributed
 +      makefile snippet `tests/config-shell-tests.am' to list all tests
 +      that use the `get_shell_script' function, with names mangled to
 +      use suffix `-w.shtst', in ...
 +      * tests/Makefile.am (config_shell_tests): ... this macro, whose
 +      definition has been consequently removed from Makefile.am.
 +      (EXTRA_DIST): Distribute the new script.
 +      ($(srcdir)/config-shell-tests.am): Generate using the new script.
 +      (include): Include the `config-shell-tests.am' fragment.
 +      * bootstrap: Invoke `tests/gen-config-shell-tests' to generate
 +      `tests/config-shell-tests.am'.
 +      * tests/.gitignore: Ignore `config-shell-tests.am'.
 +      * tests/gen-parallel-tests: Fixlet in heading comments.
 +
 +2011-06-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: test mdate-sh with /bin/sh too
 +      * tests/mdate5.test: Fetch the `mdate-sh' script using the
 +      `get_shell_script' function, and run it directly instead of
 +      using `$SHELL'.
 +      * tests/mdate6.test: Likewise.  Since we are at it, make checks
 +      on the `mdate-sh' output stricter, remove now unneeded calls to
 +      aclocal and automake and creation/extension of `configure.in',
 +      `Makefile.am' and `textutils.tex' files, and add a trailing `:'
 +      command.
 +      * tests/Makefile.am (config_shell_tests): Add `mdate5-w.shtst'
 +      and `mdate6-w.shtst'.
 +
 +2011-06-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: extend tests on `--add-missing' and `--copy' a bit
 +      * tests/add-missing.test: Fix typo in heading comments.  Try with
 +      another testcase that install many (but not all) the auxiliary
 +      scripts at once, and uses non-standard (but valid and documented)
 +      setups (e.g., defining YACC in Makefile.am instead of calling
 +      AC_PROG_YACC from configure.in).
 +      * tests/copy.test: Reference `add-missing.test' in heading
 +      comments.  Try few more test scenarios.
 +
 +2011-06-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: few fixlets and improvements
 +      * tests/cond31.test ($required): Remove `cc', it's not really
 +      needed.
 +      * tests/confh.test: Call autoheader too.  The lack of this call
 +      wasn't causing spurious failures because the automatic remake
 +      rules were somehow invoking it on our behalf (at make time).
 +      * tests/fn99subdir.test: Use $subdirname throughout, instead of
 +      ${subdirname}, for consistency with the rest of the testsuite.
 +      Avoid an unnecessary subshell, which could also cause spurious
 +      passes, being guarded by a trailing `|| Exit 1', which neutralize
 +      the `errexit' flag.  Remove an unnecessary `|| Exit 1' guard.
 +      * tests/insh2.test: Rewrite to avoid hackish Makefile.in munging,
 +      and to also run configure and make.
 +
 +2011-06-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: don't hard-code test name in txinfo21.test
 +      * tests/txinfo21.test: Use `$me' instead of hard-coding the
 +      current testcase name "txinfo21".  Add a trailing `:' command
 +      since we are at it.
 +
 +2011-06-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: new test dedicated to `--add-missing' and `--copy'
 +      * tests/add-missing.test: New test.
 +      * tests/Makefile.am (TESTS): Update.
 +      Suggested by Peter Rosin.
 +
 +2011-06-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: use 'fatal_' and 'framework_failure_' for hard errors
 +      * tests/defs (require_xsi): Use `fatal_', not `framework_failure',
 +      to report an invalid usage.
 +      * tests/remake-gnulib-remove-header.test: Prefer using `fatal_'
 +      with a proper error message over a direct call to `Exit 99'.
 +      * tests/pr8365-remake-timing.test: Likewise.
 +      * tests/cygnus-imply-foreign.test: Likewise.
 +      * tests/missing6.test: Likewise.
 +      * tests/cond8.test: Likewise.
 +      * tests/cond33.test: Likewise.
 +      * tests/python-virtualenv.test: Prefer using `framework_failure_'
 +      with a proper error message over a direct call to `Exit 99'.
 +      * tests/instspc-tests.sh: Prefer using `framework_failure_' and
 +      `fatal_' over direct calls to `Exit 99'.
 +      (fatal_): Define this (which is a simplified version of the one
 +      in `tests/defs') for early uses (i.e., before `tests/defs'
 +      gets sourced).
 +      * tests/depmode-tests.sh: Likewise.  Also, simplify the
 +      'get_depmodes' function and calls to it accordingly.
 +
 +2011-06-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      self tests: check new 'fatal_' function
 +      * tests/self-check-exit.test: Also check the new 'fatal_'
 +      function.
 +
  2011-06-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        test defs: new function 'fatal_', for hard errors
        other reasons.  The best way to fix this inconsistency is to
        introduce a new function with a more general error message.
        Inspired by a recent similar change to Gnulib's tests/init.sh.
 -      * tests/defs.in (fatal_): New function.
 +      * tests/defs (fatal_): New function.
        * tests/README (Section "Writing test cases" subsection "Do"):
        Suggest the use of `fatal_', not of `framework_failure_', for
        generic hard errors.  The latter should be reserved for "real"
        long lines.
        (am__py_compile): New variable, to reduce code duplication.
  
 +
 +2011-06-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: `lib/' shell scripts transparently tested also with $SHELL
 +      With the previous commit, the user could prefer the use of $SHELL
 +      over /bin/sh in some tests checking the Automake-provided shell
 +      scripts by manually exporting `test_prefer_config_shell' to "yes"
 +      in the environment.  With this commit, we ensure that such tests
 +      *always* and *transparently* run using both $SHELL and /bin/sh
 +      to execute the checked scripts.  The `test_prefer_config_shell'
 +      variable becomes an internal detail, and is no more meant to be
 +      manually defined or overridden.
 +      * tests/defs-static.in: Check that `test_prefer_config_shell' is
 +      not exported in the environment.  Error out if this is the case.
 +      * tests/config-shell-tests.sh: New file, driver script to run
 +      checks on the shell scripts in `lib/' using the $SHELL determined
 +      at configure time instead of the default system shell /bin/sh.
 +      * Makefile.am (TESTS_EXTENSIONS): Add `.shtst'.
 +      (SHTST_LOG_COMPILER): Define, it calls `config-shell-tests.sh'.
 +      (config_shell_tests): Define to a list of tests that wraps other
 +      `*.test' tests using `config-shell-tests.sh'.
 +      ($(config_shell_tests)): Dummy dependency declaration required
 +      in order to have make actually produce expected log files from
 +      the `.shtst.log' suffix rule.
 +      (EXTRA_DIST): Distribute `config-shell-tests.sh'.
 +      (TESTS): Add `$(config_shell_tests)'.
 +      * tests/self-check-env-sanitize.test: Update, by checking that
 +      `test_prefer_config_shell' isn't exported in the environment.
 +
 +2011-06-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: can use also $SHELL to check shell scripts from `lib/'
 +      * tests/ar-lib.test: If the variable `$test_prefer_config_shell'
 +      is set to "yes", run the script under test with configure-time
 +      determined $SHELL, rather than with /bin/sh.
 +      The `$test_prefer_config_shell' variable defaults to empty, but
 +      can be overridden at runtime by the user, thus allowing more
 +      coverage.
 +      * tests/compile.test: Likewise.
 +      * tests/compile2.test: Likewise.
 +      * tests/compile3.test: Likewise.
 +      * tests/compile4.test: Likewise.
 +      * tests/compile5.test: Likewise.
 +      * tests/compile6.test: Likewise.
 +      * tests/instsh2.test: Likewise.
 +      * tests/instsh3.test: Likewise.
 +      * tests/mkinst3.test: Likewise.
 +      * tests/missing.test: Likewise.
 +      * tests/missing2.test: Likewise.
 +      * tests/missing3.test: Likewise.
 +      * tests/missing5.test: Likewise.
 +      * tests/defs (get_shell_script): New subroutine, factoring out
 +      code common to the tests above.
 +      (xsi-lib-shell): If `$test_prefer_config_shell' is set to "yes",
 +      check that $SHELL, not /bin/sh, supports XSI constructs, as we
 +      expect the test will use $SHELL and not /bin/sh to run the
 +      script being tested.
 +
 +2011-06-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests defs: better requirements for XSI shells
 +      This change avoids potential spurious failures with tests using
 +      the requirement 'xsi-shell' to mean that they want */bin/sh* (not
 +      $SHELL) to be XSI-conforming.  This idiom used to work before
 +      commit `v1.11-874-g1321be7' (as back then the test scripts were
 +      unconditionally run with /bin/sh), but has become inconsistent
 +      now that the test scripts re-execute themselves with configure
 +      determined $SHELL.
 +      The described spurious failures have already occurred in practice,
 +      for examples on Solaris systems which also had GNU Bash installed.
 +      From a suggestion by Peter Rosin.  See discussion at:
 +      <http://lists.gnu.org/archive/html/automake-patches/2011-06/msg00016.html>
 +      * tests/defs (xsi-shell): Now check that $SHELL, rather than the
 +      shell currently running the test script, is an XSI shell.
 +      (xsi-bin-sh): New requirement, checking that /bin/sh (which can
 +      differ from $SHELL) is an XSI shell.
 +      (xsi-lib-shell): New requirement, checking that the shell that
 +      should be used to test the Automake-provided scripts from `lib/'
 +      is an XSI shell.  For the moment, this is just an alias for
 +      `xsi-bin-sh'.
 +      (require_xsi): New subroutine, used to factor out code common to
 +      the requirements above.
 +      ($xsi_shell_code): New variable, contains shell code supposed to
 +      work only with XSI shells.  Used by the new subroutine above.
 +      * tests/ar-lib.test ($required): Require 'xsi-lib-shell' instead
 +      of 'xsi-shell', since the script we test here is run with /bin/sh,
 +      not with $SHELL.
 +      * tests/compile3.test: Likewise.
 +      * tests/compile6.test: Likewise.
 +
 +2011-06-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix typo-related error in auxdir2.test
 +      * tests/auxdir2.test (configure.in):  Close m4 quoting in the
 +      argument to AC_CONFIG_AUX_DIR.  Without this, aclocal fails with
 +      "ERROR: end of file in string".  This problem hasn't been exposed
 +      by the testsuite before because this test is in XFAIL_TESTS, so
 +      its failure went unnoticed, even if it was due to a wrong cause.
 +      Bug introduced in commit v1.11-249-g49ac3de.
 +
 +2011-06-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      self tests: check that `$me' can be overridden
 +      * tests/self-check-me.test: Check that `$me' can be overridden
 +      before sourcing ./defs, with or without sourcing ./defs-static
 +      beforehand, and that this override is honored.  Update heading
 +      comments.
 +
 +2011-06-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      self tests: fix another spurious failure
 +      Our ad-hoc usage of `tests/defs' in the testsuite's self tests
 +      stopped working properly when we made the test scripts re-execute
 +      themselves with the configure-time $SHELL.  Fix this.
 +      Fixes a regression introduced by commit 'v1.11-874-g1321be7'.
 +      * tests/self-check-exit.test: Export `AM_TESTS_REEXEC' to "no"
 +      before running the self tests.  This fixes a spurious failure
 +      present only when the test was run by hand.
 +
 +2011-06-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      silent-rules tests: fix spurious failures with Sun Studio C++
 +      * tests/silentcxx.test: The C++ compiler from Sun Studio is named
 +      `CC'.  Account for this in our grepping checks on the make output.
 +      Since we are at it, throw in a couple of improvements to comments
 +      and formatting.
 +      * tests/silent-many-generic.test: The C++ compiler from Sun Studio
 +      is named `CC', and this can cause spurious failures in our grepping
 +      of the make output.  Work around this by using a wrapper script
 +      around the C++ compiler (generated on the fly), since filtering the
 +      make output proved to be too fragile.
 +
 +2011-06-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failure in backcompat2.test on NetBSD
 +      * tests/backcompat2.test: Add trailing `:' in the body of a `for'
 +      loop, in case the last command there might have an exit status
 +      different 0.  This work around `set -e' issues in some BSD shells,
 +      e.g., NetBSD /bin/ksh.
 +
 +2011-06-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failure in autohdr3.test
 +      * tests/autohder3.test (Makefile.am): Let `test' depend on `all',
 +      so that config.h header is truly remade.
 +      Remove now useless call to `$MAKE' when non-GNU make is in use.
 +      Failure introduced by commit `v1.11-895-g5e62b96'.
 +
 +2011-06-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failure of cond29.test on NetBSD
 +      * tests/cond29.test: Skip if we cannot safely limit the maximal
 +      size of used virtual memory to 20K.  This fixes a spurious failure
 +      on NetBSD.
 +      Bug introduced in commit `v1.11-885-g908d335'.
 +
 +2011-06-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      maintcheck: fix again few more failures
 +      * tests/cond29.test: To please the `sc_tests_Exit_not_exit'
 +      maintainer check, avoid using `sh -c "exit 0"' where a simple
 +      `sh -c :' will do.
 +      * tests/depmod-data.test: Use creative quoting to avoid
 +      spuriously triggering the `sc_tests_Exit_not_exit' maintainer
 +      check.
 +
 +2011-06-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      maintcheck: fix some more failures
 +      * tests/instdir-ltlib.test: Use creative quoting to avoid
 +      spuriously triggering the `sc_rm_minus_f' maintainer check.
 +      * tests/instdir-prog.test: Likewise.
 +      * tests/instspc-data.test: Use creative quoting to avoid
 +      spuriously triggering the `sc_tests_Exit_not_exit' maintainer
 +      check.
 +
  2011-06-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        maintcheck: fix some failures, extend some checks
        check.
        * tests/depcomp8b.test: Likewise.
  
 +2011-06-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: don't require GNU make where it's not strictly needed
 +      * tests/autohdr3.test: Rewrite to be stricter when make is GNU
 +      make.  Drop the requirement of GNU make.
 +      * tests/aclocal5.test: Drop GNU make requirement, it's not truly
 +      needed.  Add reference to similar tests `remake-subdir*.test'.
 +      * remake-subdir-gnu.test, remake-subdir-from-subdir.test,
 +      remake-subdir.test, remake-subdir2.test: Add reference to
 +      each other, and to related test `aclocal5.test'.
 +      * tests/aclocal6.test: Drop GNU make requirement, it's not
 +      truly needed.
 +      * tests/confh6.test: Likewise.
 +      * tests/lex3.test: Likewise.
 +      * tests/remake11.test: Likewise.
 +      * tests/subdir5.test: Likewise.
 +      * tests/subdir8.test: Likewise.
 +      * tests/werror2.test: Likewise.
 +      * tests/conff.test: Likewise, and ensure verbose printing of
 +      captured make output.
 +      * tests/lex5.test: Tweak so that GNU make is no more required.
 +      * tests/version7.test: Likewise.
 +      * tests/maken2.test: Add explicative comment for why this test
 +      requires GNU make.
 +      * tests/maken4.test: Let it run also with BSD makes supporting
 +      the `.MAKE' special target.
 +      * tests/output6.test: Use proper m4 quoting in configure.in.
 +      Expand make macros with one-character name using `$(x)', not
 +      `$x', for portability.  Move checks in the makefiles, rather
 +      than relying on grepping the output from make.  Drop the now
 +      unneeded GNU make requirement.
 +
  2011-05-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        remake: behave better with non-GNU make in subdirectories
        make implementations, the command must be issued from the
        top-level directory.  This patch removes such limitation.
        * lib/am/configure.am (am--refresh): Depend on `%MAKEFILE%'.
 -      * tests/defs.in (using_gmake): New function, backported from the
 -      `master' branch (and simplified).
        * tests/remake-subdir.test: New test.
        * tests/remake-subdir2.test: Likewise.
        * tests/remake-subdir-gnu.test: Likewise.
        * tests/remake-subdir-from-subdir.test: Likewise.
        * tests/Makefile.am (TESTS): Update.
  
 +2011-06-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      lex tests: fix spurious failures with Solaris lex
 +      * tests/lex-lib.test (foo.l): Avoid empty "rules section", which
 +      can confuse Solaris lex.
 +      * tests/lex-libobj.test (foo.l): Likewise.
 +
 +2011-06-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      lex tests: do not force the use of flex unconditionally
 +      * tests/defs (lex): Act more similarly to what the `yacc'
 +      requirement does, i.e., only force the use of flex if the
 +      $LEX variable is left unset by the user.
 +      (flex): Use `skip_' to skip the test if flex is not found.
 +
 +2011-06-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      lex tests: avoid possible hang; fix and extend
 +      * tests/lex3.test (foo.l:yywrap): Return 1, not 0, to avoid hangs.
 +      Bug introduced in commit 'v1.11-871-geb147a1'.
 +      (Makefile.am): Do not add `@LEXLIB@' to `$(LDADD)', as we define
 +      our own `yywrap' function.
 +      * tests/lex.test (tscan.l): In `yywrap', return 1, not 0, for
 +      consistency with the default flex implementation.
 +      * tests/lex-libobj.test (yywrap.c): Likewise.
 +      * tests/lex-subobj-nodep.test (s1.l): Likewise.
 +      * tests/lexvpath.test (foo.c): Likewise.
 +      * tests/silent-lex-gcc (foo.l): Likewise.
 +      * tests/silent-lex-generic (foo.l): Likewise.
 +      * tests/silent-many-gcc (foo5.l): Likewise.
 +      * tests/silent-many-generic (foo5.l): Likewise.
 +      * tests/lex-lib.test (mu.c): Likewise.
 +      Update heading comments, to refer to ...
 +      * tests/lex-lib-external.test: ... this new test, which checks
 +      that we can get use the `yywrap' function from a system-wide
 +      library, if that's available.
 +
 +2011-06-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: prefer `skip_' over `echo ...; Exit 77'
 +      * tests/self-check-cleanup.test: When the test must be skipped,
 +      use `skip_ REASON' instead of `echo REASON; Exit 77'.  Also,
 +      make the skip message shorter and clearer.
 +
 +2011-06-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failures in self tests
 +      Our ad-hoc usage of `tests/defs' in the testsuite's self tests
 +      stopped working properly when we made the test scripts re-execute
 +      themselves with the configure-time $SHELL.  Fix this.
 +      Fixes a bug introduced by commit 'v1.11-874-g1321be7'.
 +      * tests/defs: Only check that we can find the client test script
 +      when we must re-execute it.
 +      * tests/self-check-cleanup.test: Export `AM_TESTS_REEXEC' to "no"
 +      before running the self tests.
 +      * tests/self-check-dir.test: Likewise.
 +      * tests/self-check-explicit-skips.test: Likewise.
 +      * tests/self-check-me.test: Likewise.
 +      * tests/self-check-sanity.test: Likewise.
 +      * tests/self-check-reexec.test: New test.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-06-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: prefer ulimit over timeout in test on a memory-hogging bug
 +      * tests/cond29.test: Use 'ulimit' instead of 'timeout' to ensure
 +      that automake does not uses up too much resources.  This is really
 +      and improvement because the bug tested by this script wasn't just
 +      a "it hangs" or "it runs too slow" bug, but rather a memory-hogging
 +      bug (due to combinatorial explosion when many Automake conditionals
 +      had to be handled) which could easily crash the whole system, which
 +      is unacceptable.  The requirement of a proper and working 'ulimit'
 +      builtin might cause the test to be skipped on more systems, but
 +      that shouldn't be a problem since the bug isn't about a portability
 +      issue, but is rather an automake internal implementation problem.
 +      I've verified that the test as updated by this patch still passes
 +      with automake 1.8.5, automake 1.10.2, and obviously the development
 +      version of automake, and that it fails with automake 1.7.9.
 +
 +2011-06-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: avoid generating `*-p.test' tests, use a wrapper script
 +      The generated `*-p.test' tests had already become just thin layers
 +      around the corresponding test scripts.  This change makes the final
 +      step, converting to the use of a generic wrapper script and thus
 +      avoiding the extra test generation (similarly to what is done for
 +      the `*.instspc' and `*.depmod' tests).
 +      * tests/parallel-tests.sh: New file, driver script to run checks
 +      the on the `parallel-tests' semantics by wrapping tests that use
 +      the generic "Simple Tests" driver.
 +      * tests/gen-parallel-tests: Update, mostly to reflect the new
 +      `.ptest' extensions used for tests in $(parallel_tests).
 +      * Makefile.am (TESTS_EXTENSIONS): Add `.ptest'.
 +      (PTEST_LOG_COMPILER): Define, it calls `parallel-tests.sh'.
 +      ($(parallel_tests)): Do not really generate `*-p.test' tests
 +      anymore; this is now just a dummy dependency declaration required
 +      in order to have make actually produce expected log files from
 +      the `.ptest.log' suffix rule.
 +      (EXTRA_DIST): Distribute `parallel-tests.sh'.
 +      (MAINTAINERCLEANFILES): Don't remove the `$(parallel_tests)', it
 +      is not necessary anymore.
 +      (generated_tests): Variable definition removed.
 +      (TESTS): Update, by listing `$(parallel_tests)' directly instead
 +      of `$(generated_tests)'
 +      (expected_list_of_tests): Remove `$(generated_tests)'.
 +      (maintainer-check-list-of-tests): No need to explicitly depend on
 +      `$(expected_list_of_tests)' anymore.
 +
  2011-05-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        automake, aclocal: honour configure-time AUTOCONF and AUTOM4TE
        ($AUTORECONF): New variable, defaulting to `@am_AUTORECONF@'.
        * doc/Makefile.am ($(srcdir)/amhello-1.0.tar.gz): Update.
  
 +2011-05-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      parallel-tests: stricter checks on DISABLE_HARD_ERRORS support
 +      * tests/parallel-tests-harderror.test: New test, doing more
 +      in-depth checks on DISABLE_HARD_ERRORS.
 +      * tests/parallel-tests.test: Remove tests on DISABLE_HARD_ERRORS,
 +      now redundant.
 +      * tests/Makefile.am (TESTS): Update.
 +
  2011-05-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
            Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        the `DESTDIR' variable, is poorly chosen, if not downright wrong.
        Rewrite it to use `prefix' as the overridden variable instead.
  
 -2011-05-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +2011-05-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 -      parallel-tests: stricter checks on DISABLE_HARD_ERRORS support
 -      * tests/parallel-tests-harderror.test: New test, doing more
 -      in-depth checks on DISABLE_HARD_ERRORS.
 -      * tests/parallel-tests.test: Remove tests on DISABLE_HARD_ERRORS,
 -      now redundant.
 +      tests: don't require gfortran if any fortran compiler is enough
 +      * tests/silentf90.test ($required): Require `fortran', not
 +      `gfortran'.
 +      * tests/silentf77.test ($required): Require `fortran77', not
 +      `gfortran'.
 +      * tests/silent-many-generic.test ($required): Require `fortran'
 +      and `fortran77' rather than `gfortran'.
 +
 +2011-05-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: improve `ccnoco*.test', better cross-compiling support
 +      * tests/ccnoco3.test (Mycomp): Use the `$CC' chosen by `tests/defs'
 +      instead of forcing `gcc' unconditionally.  This ensures better
 +      coverage in case of cross-compiling, when GCC can be named e.g.,
 +      `i586-mingw32msvc-gcc', instead of simply `gcc'.
 +      * tests/ccnoco.test: Likewise.  Remove redundant checks.  Modernize
 +      the created `configure.in'.  Run tests both in-tree and in VPATH.
 +      Export `CC' to the overridden value only once.
 +      * tests/ccnoco2.test: Slightly stricter grepping of automake
 +      stderr.  Add trailing `:' command.
 +
 +2011-05-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: each test case depends on `defs-static'
 +      * tests/Makefile.am ($(TEST_LOGS)): Depends on `defs-static' too.
 +      Simplify comments.
 +
 +2011-05-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: use $SHELL to run tests which are shell scripts
 +      * tests/Makefile.am (TEST_LOG_COMPILER): Define so that the
 +      configure-time $SHELL is used to run the tests.
 +      * tests/defs: Add code to re-execute by default the running
 +      test script with configure-time $SHELL.  Updated comments.
 +      * configure.ac: Check that `set -e' is working for $SHELL,
 +      not for /bin/sh.
 +      * tests/defs-static.in: Update comments.
 +      * tests/README (Supported shells): Updated.
 +      (Getting details from failures): Don't tell that tests are
 +      run by /bin/sh by default.
 +
 +2011-05-26  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: split 'subst2.test' to improve modularity and coverage
 +      * tests/subst2.test: Test removed, split into ...
 +      * tests/programs-primary-rewritten.test: ... this test ...
 +      * tests/subst-no-trailing-empty-line.test: ... and this one ...
 +      * tests/extra-programs-empty.test: ... and this one.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-05-26  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: tweak and improve tests on Automake conditionals
 +      The "avoid the requirement of a working compiler" we refer about
 +      below is obtained by disabling automatic dependency tracking and
 +      defining `CC' (and `EXEEXT', `OBJEXT', `CXX', etc., if needed) to
 +      dummy values, either directly in the `Makefile.am', or by AC_SUBST
 +      in `configure.in'.
 +      The "cosmetic changes" we refer about below consists in, e.g.,
 +      adding a trailing `:' command to a script, using proper m4 quoting
 +      in `configure.in' files, adding commands that offer more debugging
 +      output, explicitly declaring phony targets as such in Makefiles,
 +      making use of idioms more consistent with those employed in other
 +      tests, following the GNU formatting standards more closely, etc.
 +      * tests/cond.test: Cosmetic changes.
 +      * tests/cond3.test: Likewise.
 +      * tests/cond10.test: Likewise.
 +      * tests/cond14.test: Likewise.
 +      * tests/cond15.test: Likewise.
 +      * tests/cond17.test: Likewise.
 +      * tests/cond40.test: Likewise.
 +      * tests/cond13.test: Likewise, and make grepping of the generated
 +      `Makefile.in' slightly stricter.
 +      * tests/cond6.test: Extend by also running ./configure, make and
 +      "make install".  Few cosmetic changes.
 +      * tests/cond8.test: Likewise.
 +      * tests/cond2.test: Do few cosmetic changes.  Make grepping of
 +      automake stderr stricter.
 +      * tests/cond20.test: Likewise.
 +      * tests/cond23.test: Likewise.
 +      * tests/cond24.test: Likewise.
 +      * tests/cond42.test: Likewise.
 +      * tests/cond46.test: Likewise.
 +      * tests/cond9.test: Move more checks in the `Makefile.am' instead
 +      of grepping make's output.
 +      * tests/cond38.test: Likewise.
 +      * tests/cond11.test: Likewise.  Avoid the requirement of a working
 +      C compiler.
 +      * tests/cond16.test: Likewise.
 +      * tests/cond22.test: Likewise.
 +      * tests/cond30.test: Likewise.
 +      * tests/cond31.test: Likewise.
 +      * tests/cond4.test: Likewise, and drop the now-useless GNU make
 +      requirement as well.
 +      * tests/cond18.test: Likewise.
 +      * tests/cond19.test: Likewise.
 +      * tests/cond22.test: Likewise.
 +      * tests/cond25.test: Add trailing `:' command.
 +      * tests/cond26.test: Likewise.
 +      * tests/cond27.test: Likewise.
 +      * tests/cond28.test: Likewise.
 +      * tests/cond29.test: Use `unindent' function for better formatting.
 +      Other minor cosmetic changes.  Use a `timeout' program (if it's
 +      available) to determine whether the script takes too long, instead
 +      of just hoping that the user will notice an abnormally long test
 +      execution time.
 +      * tests/cond33.test: Extend a bit.  Fix heading comments.  Few more
 +      cosmetic changes.
 +      * tests/cond37.test: Ensure verbose printing of captured make
 +      output.  Minor cosmetic changes.
 +      * tests/cond34.test: Likewise.  Avoid the requirement of a working
 +      C compiler.  Make grepping of make output slightly stricter.
 +      * tests/cond35.test: Quote literal dots in grep regexp.  Add extra
 +      debugging output.  Minor cosmetic changes.
 +      * tests/cond36.test: Likewise.
 +      * tests/cond41.test: Do not simply check that aclocal fails, but
 +      also grep its stderr for the expected error message.
 +      * tests/cond43.test: Likewise (but the program being automake).
 +      Few cosmetic changes.
 +      * tests/condd.test: Avoid the requirement of a working C compiler.
 +      * tests/condman3.test: Extend by using more man pages and more
 +      manpage sections.
 +      * tests/condman.test: Removed, it's completely superseded by
 +      `condman3.test'.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-05-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      lex tests: avoid spurious failures when LEXLIB isn't found
 +      The AC_PROG_LEX Autoconf macro does not diagnose a failure to find
 +      the "lex library" expected to provide a `yywrap' function (function
 +      which is required to link most lex-generated programs).  On the
 +      contrary, when all the link attempts (i.e., with `-ll' and `-lfl')
 +      fail, configure declares that no lex library is needed, and simply
 +      proceeds with the configuration process -- only for the build to
 +      possibly fail later, at make time.
 +      This behaviour might be (partly) intended; the Autoconf manual
 +      reads:
 +       ``You are encouraged to use Flex in your sources, since it is
 +         both more pleasant to use than plain Lex and the C source
 +         it produces is portable.  In order to ensure portability,
 +         however, you must either provide a function `yywrap' or, if
 +         you don't use it (e.g., your scanner has no `#include'-like
 +         feature), simply include a `%noyywrap' statement in the
 +         scanner's source.''
 +      This AC_PROG_LEX behaviour is causing some spurious failures of the
 +      Automake testsuite in environments which lack a proper library
 +      providing `yywrap' (this happens for example in Linux->MinGW cross
 +      compilations).  But at this point is clear that a proper workaround
 +      is to simply provide a fall-back implementation of `yywrap' in our
 +      lexers.
 +      * tests/cond35.test: Provide a dummy `yywrap' function.
 +      * tests/lex3.test: Likewise.
 +      * tests/lexvpath.test: Likewise.
 +      * tests/silent-many-gcc.test: Likewise.
 +      * tests/silent-many-generic.test: Likewise.
 +      * tests/silent-lex-gcc.test: Likewise, and a dummy `main' too.
 +      * tests/silent-lex-generic.test: Likewise.
 +      * tests/lex-lib.test: New test.
 +      * tests/lex-libobj.test: New test.
 +      * tests/lex-nowrap.test: New test.
 +      * tests/Makefile.am (TESTS): Update.
 +      * THANKS: Update.
 +      Thanks to Russ Allbery for the suggestion.
 +
 +2011-05-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: require C++ compiler explicitly in tests needing it
 +      The list of the test scripts which needed a C++ compiler but
 +      failed to require it explicitly has been found by running:
 +        $ tests=`grep -lE 'CXX|\.c(c|\+\+|xx|pp)' *.test | tr '\n' ' '`
 +        $ am_explicit_skips=yes CXX=false make check TESTS="$tests"
 +      and looking for tests that reported FAIL instead of SKIP.
 +      After the present change, all those previously failing tests
 +      either pass or get correctly skipped.
 +      * tests/subobj9.test: Require `c++', instead of explicitly
 +      skipping on configure failure.  Add excerpts and/or details from
 +      the original bug report that prompted this tests to be written.
 +      * tests/silentcxx-gcc.test: Require g++.
 +      * tests/silentcxx.test: Require c++.
 +      * tests/suffix3.test: Likewise.
 +
 +2011-05-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: don't require g++ where any C++ compiler is enough
 +      * tests/specflg10.test ($required): Use `c++', not g++.
 +      * tests/silent-many-generic.test: Likewise.
 +
 +2011-05-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: require C compiler explicitly in tests needing it
 +      The list of the test scripts which needed a C compiler but
 +      failed to require it explicitly has been found by running:
 +        $ am_explicit_skips=yes CC=false make check
 +      and looking for tests that reported FAIL instead of SKIP.
 +      After the present change, all those previously failing tests
 +      either pass or get correctly skipped.
 +      * tests/aclocal4.test ($required): Add `cc'.
 +      * tests/ansi.test: Likewise.
 +      * tests/ansi10.test: Likewise.
 +      * tests/ansi3.test: Likewise.
 +      * tests/ansi3b.test: Likewise.
 +      * tests/ansi5.test: Likewise.
 +      * tests/ansi6.test: Likewise.
 +      * tests/ansi7.test: Likewise.
 +      * tests/ansi9.test: Likewise.
 +      * tests/backcompat6.test: Likewise.
 +      * tests/canon7.test: Likewise.
 +      * tests/check5.test: Likewise.
 +      * tests/check7.test: Likewise.
 +      * tests/check8.test: Likewise.
 +      * tests/cond4.test: Likewise.
 +      * tests/cond11.test: Likewise.
 +      * tests/cond16.test: Likewise.
 +      * tests/cond18.test: Likewise.
 +      * tests/cond19.test: Likewise.
 +      * tests/cond22.test: Likewise.
 +      * tests/cond30.test: Likewise.
 +      * tests/cond31.test: Likewise.
 +      * tests/cond32.test: Likewise.
 +      * tests/cond34.test: Likewise.
 +      * tests/cond35.test: Likewise.
 +      * tests/cond39.test: Likewise.
 +      * tests/condd.test: Likewise.
 +      * tests/cygnus-dependency-tracking.test: Likewise.
 +      * tests/depcomp2.test: Likewise.
 +      * tests/depcomp6.test: Likewise.
 +      * tests/depcomp7.test: Likewise.
 +      * tests/depcomp8a.test: Likewise.
 +      * tests/depcomp8b.test: Likewise.
 +      * tests/depdist.test: Likewise.
 +      * tests/depend2.test: Likewise.
 +      * tests/depend5.test: Likewise.
 +      * tests/distcleancheck.test: Likewise.
 +      * tests/distname.test: Likewise.
 +      * tests/exeext.test: Likewise.
 +      * tests/exeext4.test: Likewise.
 +      * tests/extradep.test: Likewise.
 +      * tests/extradep2.test: Likewise.
 +      * tests/gnits2.test: Likewise.
 +      * tests/gnits3.test: Likewise.
 +      * tests/instdir-ltlib.test: Likewise.
 +      * tests/instdir-prog.test: Likewise.
 +      * tests/instfail.test: Likewise.
 +      * tests/instfail-libtool.test: Likewise.
 +      * tests/lex3.test: Likewise.
 +      * tests/lex5.test: Likewise.
 +      * tests/lexvpath.test: Likewise.
 +      * tests/lex-subobj-nodep.test: Likewise.
 +      * tests/lflags.test: Likewise.
 +      * tests/libobj-basic.test: Likewise.
 +      * tests/libobj2.test: Likewise.
 +      * tests/libobj7.test: Likewise.
 +      * tests/libobj10.test: Likewise.
 +      * tests/libobj16a.test: Likewise.
 +      * tests/libobj16b.test: Likewise.
 +      * tests/libobj17.test: Likewise.
 +      * tests/libobj19.test: Likewise.
 +      * tests/libtool2.test: Likewise.
 +      * tests/libtool3.test: Likewise.
 +      * tests/libtool7.test: Likewise.
 +      * tests/libtool9.test: Likewise.
 +      * tests/libtoo10.test: Likewise.
 +      * tests/libtoo11.test: Likewise.
 +      * tests/ltcond.test: Likewise.
 +      * tests/ltcond2.test: Likewise.
 +      * tests/ltconv.test: Likewise.
 +      * tests/ltinit.test: Likewise.
 +      * tests/ltlibsrc.test: Likewise.
 +      * tests/ltorder.test: Likewise.
 +      * tests/nobase.test: Likewise.
 +      * tests/nobase-libtool.test: Likewise.
 +      * tests/mmodely.test: Likewise.
 +      * tests/parallel-tests5.test: Likewise.
 +      * tests/parallel-tests-suffix-prog.test: Likewise.
 +      * tests/parallel-tests-ext-driver-prog.test: Likewise.
 +      * tests/posixsubst-ldadd.test: Likewise.
 +      * tests/posixsubst-libraries.test: Likewise.
 +      * tests/posixsubst-ltlibraries.test: Likewise.
 +      * tests/posixsubst-programs.test: Likewise.
 +      * tests/posixsubst-sources.test: Likewise.
 +      * tests/pr87.test: Likewise.
 +      * tests/pr204.test: Likewise.
 +      * tests/pr224.test: Likewise.
 +      * tests/pr300-lib.test: Likewise.
 +      * tests/pr300-ltlib.test: Likewise.
 +      * tests/pr300-prog.test: Likewise.
 +      * tests/pr401.test: Likewise.
 +      * tests/pr401b.test: Likewise.
 +      * tests/pr401c.test: Likewise.
 +      * tests/remake-gnulib-add-acsubst.test: Likewise.
 +      * tests/remake-gnulib-add-header.test: Likewise.
 +      * tests/regex.test: Likewise.
 +      * tests/repeated-options.test: Likewise.
 +      * tests/silent.test: Likewise.
 +      * tests/silent3.test: Likewise.
 +      * tests/silent9.test: Likewise.
 +      * tests/silent-lex-generic.test: Likewise.
 +      * tests/silent-many-generic.test: Likewise.
 +      * tests/silent-yacc-generic.test: Likewise.
 +      * tests/specflg7.test: Likewise.
 +      * tests/specflg9.test: Likewise.
 +      * tests/specflg10.test: Likewise.
 +      * tests/stdinc.test: Likewise.
 +      * tests/strip.test: Likewise.
 +      * tests/strip2.test: Likewise.
 +      * tests/strip3.test: Likewise.
 +      * tests/subdirbuiltsources.test: Likewise.
 +      * tests/subobj3.test: Likewise.
 +      * tests/subobj6.test: Likewise.
 +      * tests/subobj11a.test: Likewise.
 +      * tests/subpkg.test: Likewise.
 +      * tests/subst2.test: Likewise.
 +      * tests/subst3.test: Likewise.
 +      * tests/substref.test: Likewise.
 +      * tests/substre2.test: Likewise.
 +      * tests/suffix5.test: Likewise.
 +      * tests/suffix8.test: Likewise.
 +      * tests/suffix10.test: Likewise.
 +      * tests/suffix11.test: Likewise.
 +      * tests/suffix12.test: Likewise.
 +      * tests/suffix13.test: Likewise.
 +      * tests/target-cflags.test: Likewise.
 +      * tests/transform.test: Likewise.
 +      * tests/transform2.test: Likewise.
 +      * tests/yacc-basic.test: Likewise.
 +      * tests/yacc-d-basic.test: Likewise.
 +      * tests/yacc-clean.test: Likewise.
 +      * tests/yacc-dist-nobuild.test: Likewise.
 +      * tests/yacc-nodist.test: Likewise.
 +      * tests/yaccvpath.test: Likewise.
 +      * tests/yacc-d-vpath.test: Likewise.
 +      * tests/yacc4.test: Likewise.
 +      * tests/yacc7.test: Likewise.
 +      * tests/yacc8.test: Likewise.
 +      * tests/yaccdry.test: Likewise.
 +      * tests/yflags-cmdline-override.test: Likewise.
 +      * tests/yflags-force-override.test: Likewise.
 +      * tests/python-virtualenv.test: Likewise.  Also, improve skip
 +      messages.
 +      * tests/subobj5.test ($required): Add `cc'.
 +      (Makefile.am): Set `AUTOMAKE_OPTIONS' to `subdir-objects', and
 +      add new checking rules `test-build' and `test-distdir'.
 +      Extend the test by building and examining the distdir, the
 +      program, and the object files.
 +      * tests/postproc.test ($required): Add `cc'.
 +      Avoid the explicit `|| Exit $?' after call to configure, which
 +      is now either redundant (e.g., when `am_explicit_skips' is
 +      unset), or counter-productive (e.g., when `am_explicit_skips'
 +      is set to "yes").
 +      * tests/pr243.test: Likewise.
 +      * tests/pr266.test: Likewise.
 +      * tests/pr220.test: Simplify so that it doesn't require a
 +      C compiler anymore.
 +      * tests/subdir5.test: Likewise.
 +      * tests/subdir8.test: Likewise.
 +      * tests/lflags.test: Likewise.
 +      * tests/yflags.test: Likewise.
 +      * tests/yflags-force-conditional.test: Likewise.
 +      * tests/lflags2.test: Simplify so that it doesn't require a
 +      C++ compiler anymore.
 +      * tests/yflags2.test: Likewise.
 +      * tests/autohdrdry.test (configure.in): Remove unneeded call
 +      to `AC_PROG_CC'.
 +      * tests/pr287.test: Likewise.
 +      * tests/check6.test: Likewise.
 +      * tests/cond21.test: Likewise, plus some cosmetic adjustments.
 +      * tests/upc.test: Skip if configure fails with status `77'.
 +      * tests/upc3.test: Likewise.
 +      * tests/vala4.test: Likewise.
 +      * tests/nostdinc.test: Likewise.  Also, make grepping checks
 +      on `Makefile.in'.  Update heading comments.
 +      * tests/compile5.test: When we must skip, skip explicitly,
 +      and with a meaningful message.
 +      * tests/instspc-tests.sh: When running in "test-build" or
 +      "test-install" mode (as determined by the value of variable
 +      `$instspc_action'), require `cc'.  Adjust comments.
 +      * tests/depmod-tests.sh: Likewise.
 +
 +2011-05-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: allow user to ask for stricter skip semantics
 +      Given how the Automake testsuite is currently structured, if a
 +      command in a test script fails with status `77', the global test
 +      outcome is considered a SKIP, because the value of `77' for `$?'
 +      is passed to the exit trap.  Indeed, this happens in practice, as
 +      an autoconf-generated configure script can exit with status `77'
 +      if it fails to find, e.g., a required compiler.
 +      While this behaviour is quite useful for avoiding spurious test
 +      failures in the wild, it can also sometimes prevent the Automake
 +      developers to easily see and declare the requirements of their
 +      tests.
 +      This change introduces a new variable `am_explicit_skips', meant to
 +      be user-overridable, and which, when set to a "true" value (i.e.,
 +      `yes' or `1'), require a direct call to `Exit 77' in order to make
 +      the test outcome be considered a SKIP.
 +      * tests/defs.in ($am__test_skipped): New variable, initialized
 +      to `no'.
 +      (Exit): Set `$am__test_skipped' to `yes' if passed an exit status
 +      of 77.
 +      (trap '...' 0): When `$am_explicit_skips' is set to a "true" value,
 +      reset an exit status of `77' to `78' if $am__test_skipped is not
 +      set to `yes'.
 +      * tests/self-check-exit.test: Adjust: unset `am_explicit_skips'.
 +      * tests/self-check-explicit-skips.test: New test.
        * tests/Makefile.am (TESTS): Update.
  
 +2011-05-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: user can force skipping of compiler-requiring tests
 +      * tests/defs (cc, c++, fortran, fortran77): Skip the test if
 +      the relevant compiler is disabled by having the corresponding
 +      variable (CC, CXX, FC and F77, respectively) set to "false".
 +      (yacc): For consistency, skip the test when the YACC variable
 +      is set to "false", not when it's set to "no".  Since we are at
 +      it, fix the skip message to be shorter and more consistent.
 +
 +2011-05-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: tweak and improve tests on "Simple Tests" driver
 +      * tests/check.test: Make grepping of generated Makefile.in
 +      slightly stricter.  Add trailing `:' command.
 +      * tests/check2.test: Ensure verbose printing of captured make
 +      output.  Make grepping of generated Makefile.in and of make
 +      output stricter.  Add trailing `:' command.
 +      * tests/check3.test: Likewise.  Also, fix minor error in a
 +      comment.
 +      * tests/check4.test: Stricter grepping of make output.  Use
 +      `using_gmake' subroutine instead of copy&paste from defs.in
 +      to determine whether $MAKE is GNU make.  Add a trailing `:'
 +      command.
 +      * tests/check6.test: Add trailing `:' command.
 +      * tests/check10.test: Prefer redirection `>' over `>>' when
 +      creating new files.  Ensure verbose printing of captured make
 +      output.
 +      * tests/check11.test: Likewise.
 +      * tests/check7.test: Likewise.  Make grepping of make output
 +      stricter.  Prefer "make distcheck" over a simple "make check"
 +      in a VPATH build. Add trailing `:' command.
 +      (a.c): Format following GNU coding standards.
 +      (Makefile.am): Explicitly declare target `print-xfail-tests'
 +      as PHONY.  Distribute $(check_SCRIPTS), for distcheck.
 +      * tests/parallel-tests.test: Prefer redirection `>' over `>>'
 +      when creating new files.
 +      * tests/parallel-tests2.test: Likewise.
 +      * tests/parallel-tests9.test: Likewise.
 +      * tests/parallel-tests8.test: Likewise.  Make grepping of
 +      automake stderr stricter.
 +      * tests/check8.test: Likewise.  Make formatting of created
 +      *.c files more consistent with GNU Coding Standards.
 +      * tests/check-subst-prog.test (configure.in): Break overly
 +      long lines.
 +      (pass-prog.c, xfail-prog.c): Format them more consistently
 +      with GNU Coding Standards.
 +      * tests/parallel-tests3.test: Use a shorter and clearer skip
 +      message.  Use the `unindent' subroutine to improve readability
 +      of indented loop bodies.  Simplify the hack used to please
 +      maintainer-check.
 +      * tests/parallel-tests5.test: Make formatting of created *.c
 +      files more consistent with GNU Coding Standards.  Use the
 +      `unindent' subroutine to improve readability of indented loop
 +      bodies.
 +      * tests/parallel-tests10.test: Add blank line, for clarity.
 +      Prefer trailing `:' over trailing `Exit 0', for consistency
 +      with other tests.
 +
 +2011-05-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests/README: small consistency improvement
 +      * tests/README (Section "User interface" subsection "Running the
 +      tests"): In examples, be more consistent w.r.t. the differences
 +      between GNU and non-GNU make.
 +
 +2011-05-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests/README: suggest how to run tests in cross-compile mode
 +      * tests/README (Section "User interface" subsection "Running the
 +      tests"): Briefly explain how to override 'host_alias' at runtime
 +      to force the use of cross-compilers by the testsuite.  Give an
 +      example.
 +
 +2011-05-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: better detection of cross-compile mode
 +      * configure.ac (AC_CANONICAL_HOST): New, probably not strictly
 +      necessary, but useful to complements AC_CANONICAL_BUILD.
 +      * tests/defs-static.in ($host_alias, $build_alias): New variables,
 +      exported, user-overridable, defaults AC_SUBST'd by configure.
 +      * tests/defs (cross_compiling): Consider cross-compilation mode
 +      active only if `$host_alias' is not empty *and* it differs from
 +      `$build_alias'.  This is more faithful to the way configure
 +      determines whether it is cross-compiling, but still allows the
 +      user to easily force cross-compilation by overriding `host_alias'
 +      and `build_alias' at runtime.
 +      From a report by Ralf Wildenhues.
 +
  2011-05-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        testsuite: avoid re-running few tests with 'parallel-tests' option
        driver.
        * tests/pr401b.test: Likewise.
        * tests/pr401c.test: Likewise.
 +      * tests/java-flat.test: Likewise, and properly update heading
 +      comments.
 +      * tests/java-nested.test: Likewise, but defining `parallel_tests'
 +      to "yes" instead, for improved coverage in conjunction with the
 +      sister test `java-flat.test'.
  
  2011-05-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        and 'ANSI2KNR' in the example; instead, use the more common
        and typical `DESTDIR'.
  
 +2011-05-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: avoid spurious failures in cross-compile mode
 +      * tests/depcomp2.test: Ensure verbose printing of captured stderr
 +      from configure.
 +      * tests/ansi3.test ($required): Add 'native', as the ansi2knr
 +      functionality is not meant to work with a cross-compiler.
 +      * tests/ansi3b.test: Likewise.
 +      * tests/ansi5.test: Likewise.
 +      * tests/ansi6.test: Likewise.
 +      * tests/ansi7.test: Likewise.
 +      * tests/ansi8.test: Likewise.
 +      * tests/ansi10.test: Likewise.
 +      * tests/subobj3.test: Likewise.
 +      * tests/check8.test ($required): Add 'native', as this test is
 +      not meant to work with a cross-compiler.
 +      * tests/gnits2.test: Likewise.
 +      * tests/ltconv.test: Likewise.
 +      * tests/ltcond2.test: Likewise.
 +      * tests/parallel-tests5.test: Likewise.
 +      * tests/specflg7.test: Likewise.
 +      * tests/specflg8.test: Likewise.
 +      * tests/check5.test: Likewise.  Also, ensure verbose printing of
 +      captured make output, and thrown in few cosmetic and consistency
 +      improvements.
 +      * tests/ltinit.test: Be laxer in grepping configure output, to
 +      avoid spurious failures on systems which lack POSIX dynamic
 +      linking (e.g., MinGW), or when cross-compiling for such systems.
 +      * tests/ansi9.test: Skip parts of the test that would require a
 +      native compiler.
 +      * tests/backcompat6.test: Likewise.
 +      * tests/depcomp8a.test: Likewise.
 +      * tests/pr401.test: Likewise.
 +      * tests/pr401b.test: Likewise.
 +      * tests/pr401c.test: Likewise.
 +      * tests/target-cflags.test: Likewise.
 +      * tests/lex3.test: Likewise.
 +      * tests/yacc-basic.test: Likewise.
 +      * tests/autohdr4.test: Likewise.  Also, extend the test to ensure
 +      more coverage in cross-compile mode.
 +      * tests/canon7.test: Likewise.
 +      * tests/check9.test: Removed, split into two new tests ...
 +      * tests/check-subst-prog.test: ... this one, which requires a
 +      native C compiler ...
 +      * tests/check-subst.test: ... and this one, which doesn't require
 +      any compiler.
 +      * tests/parallel-tests4.test: Removed, split into two new tests ...
 +      * tests/parallel-tests-suffix-prog.test: ... this one, which
 +      requires a native C compiler ...
 +      * tests/parallel-tests-suffix.test: ... and this one, which
 +      doesn't require any compiler.
 +      * tests/parallel-tests7.test: Removed, split into two new tests ...
 +      * tests/parallel-tests-ext-driver-prog.test: ... this one, which
 +      requires a native C compiler ...
 +      * tests/parallel-tests-ext-driver.test: ... and this one, which
 +      doesn't require any compiler.
 +      * tests/Makefile.am (TESTS): Update.
 +
  2011-05-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        test defs: rename requirement 'non-cross' -> 'native'
        when cross compiling.
        (gfortran, g77, non-cross): New requirements.
  
 +2011-05-15  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix portability issues in 'repeated-options.test'
 +      * tests/repeated-options.test: Do not assume that object files
 +      have `.o' suffix and executables have no default suffix; instead,
 +      use `$(OBJEXT)' and `$(EXEEXT)'.
 +
  2011-05-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        check: document and test $(TEST_SUITE_LOG) overriding
  
  2011-05-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 -      tests: fix spurious failure of txinfo21.test on FreeBSD
 -      * tests/txinfo21.test: Use the `is_newest' subroutine instead of
 -      the `ls -t' hack to to determine whether a file has been updated.
 -      This is required because at least FreeBSD `ls' do not sort files
 -      with the same timestamp in alphabetical order when using the `-t'
 -      option.
 +      tests: fix spurious failure of extradep.test on FreeBSD
 +      * tests/extradep.test: When using `ls -t' to determine whether a
 +      file has been updated, make sure to use as reference a file whose
 +      timestamp is expected to be *strictly* older that that of the file
 +      being checked.  This is required because at least FreeBSD `ls' do
 +      not sort files with the same timestamp in alphabetical order when
 +      using the `-t' option.
 +      * tests/extradep2.test: Likewise.
 +
 +2011-05-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failure of txinfo21.test on FreeBSD
 +      * tests/txinfo21.test: Use the `is_newest' subroutine instead of
 +      the `ls -t' hack to to determine whether a file has been updated.
 +      This is required because at least FreeBSD `ls' do not sort files
 +      with the same timestamp in alphabetical order when using the `-t'
 +      option.
 +
 +2011-05-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix syntax error in 'silentcxx-gcc.test'
 +      * tests/silentcxx-gcc.test (for config_args in ...): Remove extra
 +      trailing backslash from the list of looped-on items.
 +
 +2011-05-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      depmod tests: fix bug in depmodes list extraction
 +      * tests/depmod-tests.sh (get_depmodes): Use `echo $all_depmodes'
 +      instead of `... | tr "$nl" "$sp"' to strip extra whitespaces and
 +      newlines from `$all_depmodes'.  The latter idiom with `tr' is
 +      wrong since it gets run before `./defs' is sourced, and thus `$nl'
 +      and `$sp' are undefined.
 +      Bug revealad by FreeBSD tr(1) implementation, which doesn't accept
 +      empty strings as arguments.
 +
 +2011-05-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests defs: use `skip_' for skipping java-related tests
 +      * tests/defs.in (java, javac): Use `skip_' to signal test
 +      skipping.
 +
 +2011-05-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: add excerpts from few original bug reports, for clarity.
 +      * tests/comment6.test: Add excerpts and/or details from the
 +      original bug report that prompted this tests to be added and/or
 +      extended.
 +      * tests/dejagnu4.test: Likewise.
 +      * tests/installdir.test: Likewise.
  
+ 2011-05-13   Stefano Lattarini  <stefano.lattarini@gmail.com>
+       lex: "make clean" removes .c files from non-distributed .l
+       Previously, while automake did *not* distribute C source and header
+       files derived from non-distributed Lex sources, it still caused
+       them to be removed only by "make maintainer-clean" only, and not by
+       simply "make clean" or "make distclean".
+       This caused "make distcheck" to fail, unless the developer put
+       those generated .c files in CLEANFILES or in DISTCLEANFILES by
+       hand.
+       This change fixes this issue, by making non-distributed `.c' files
+       generated by non-distributed Lex sources cleaned by "make clean".
+       A similar problem for Yacc support had been fixed with the commit
+       v1.11-263-ged2c8bc.
+       * tests/automake.in (lang_lex_target_hook): Make C source files
+       derived from non-distributed Lex files cleaned by "make clean",
+       not only by "make maintainer-clean".
+       * tests/lex-clean.test: New test.
+       * tests/lex-clean-cxx.test: Likewise.
+       * tests/lex-nodist.test: Likewise.
+       * tests/lex-pr204.test: Likewise.
+       * tests/pr204.test: For consistency, renamed ...
+       * tests/yacc-pr204.test: ... to this, and updated to keep it
+       more in sync with 'lex-pr204.test'.
+       * tests/yacc-nodist.test: Updated to keep it more in sync with
+       'lex-nodist.test'.
+       * tests/Makefile.am (TESTS): Update.
+       * NEWS: Update.
+ 2011-05-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       lex tests: make test on Lex dependency tracking more "semantic"
+       * tests/lex4.test: Renamed ...
+       * tests/lex-depend-grep.test: ... to this, and extended.
+       * tests/lex-depend.test, tests/lex-depend-cxx.test: ... these
+       new tests.
+       * tests/Makefile.am (TESTS): Update.
+ 2011-05-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       lex tests: remove erroneous check about ylwrap distribution
+       * tests/lex5.test: Do not check that the ylwrap script is *not*
+       distributed when there is only one lexer, as ylwrap is in fact
+       expected to distributed unconditionally (at least starting from
+       commit `Release-1-9-323-gc5881cc' of 19-08-2006).  Note that this
+       bogus check wasn't triggering any failure because it was done at
+       the wrong time (i.e. from the VPATH build directory), so that it
+       could never fail anyway.
+       Instead, check that ylwrap is distributed even when there is only
+       one lexer.
+       Since we are at it, add a couple of `ls -l' calls, to get better
+       debugging info.
+ 2011-05-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       yacc tests: "make clean" removes C++ files from non-distributed .y
+       * tests/yacc-clean-cxx.test: New test, sister of `yacc-clean.test'.
+       * tests/yacc-clean.test: Update heading comment to reference the
+       new sister test.
+       * tests/Makefile.am (TESTS): Update.
+ 2011-05-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: add a workaround for automake bug#8485
+       * tests/yacc-d-cxx.test (Makefile.am): Add temporary workaround
+       for automake bug#8485.  The bug is still exposed by the testcase
+       'yacc-dist-nobuild-subdir.test'.
+ 2011-05-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: add a couple of inter-tests reference
+       * tests/yacc-nodist.test, tests/pr204.test: These tests are
+       related, so add references to each other in heading comments.
+ 2011-05-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       lex tests: require just `lex' instead of `flex'
+       * tests/lex-subobj-nodep.test ($required): Require `lex',
+       not `flex', as this test is expected to work with any lex
+       implementation.
+       * tests/silent-lex.test: Likewise.
+ 2011-05-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests defs: use `skip_' for skipping yacc/lex related tests
+       * tests/defs.in (lex, bison): Use `skip_' to signal test skipping.
+ 2011-05-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests defs: merge cleanup
+       * tests/defs.in (flex, bison): Requirements removed, we have real
+       `lex' and `yacc' requirements now.
  2011-05-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        tests defs: allow requirements for compilers (mostly dummy)
        (lex): New requirement, alias for `flex'.  A more appropriate
        implementation, looking for a generic `lex' program, will follow
        in the future.
 -      (yacc): New requirement, alias for `bison'.  A more appropriate
 -      implementation, looking for a generic `yacc' program, will follow
 -      in the future.
 +
 +2011-05-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: 'silent-many-gcc.test' improved and made more robust
 +      * tests/silent-many-gcc.test:  Also force "fast" gcc depmode
 +      for C++ compilations.  Add sanity checks verifying that the
 +      cache variables we force are really used by configure.  Fix
 +      typo in comments.
 +
 +2011-05-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: drop useless requirements of 'g++'
 +      * tests/lflags2.test ($required): Remove 'g++', as any working
 +      C++ compiler should be enough, and ./configure will cause the
 +      test to skip if no working C++ compiler is found.
 +      * tests/yflags2.test: Likewise.
 +      * tests/subobj9.test: Likewise.
 +      * tests/silentcxx.test: Likewise.  Also, do not force depmodes
 +      that could cause non-GNU C++ compilers to fail.
 +      * tests/silentcxx-gcc.test: New test, like `silentcxx.test',
 +      but forcing "fast" gcc depmode (and thus requiring the GNU C++
 +      compiler).
 +      * tests/specflg10.test: Add proper "fixme" comment telling that
 +      we should make this test work with a generic C++ compiler.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-05-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests defs: one more environment sanitization (corner case)
 +      * tests/defs (am__using_gmake): Initialize.  The `using_gmake'
 +      subroutine was using this variable for caching, but wasn't
 +      initializing it, which could cause problems in the (admittedly
 +      very unlikely) case in which it was pre-existent in the
 +      environment.
 +
 +2011-05-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: add forgotten test scripts to $(TESTS)
 +      * tests/Makefile.am (TESTS): Added test scripts  man[678].test,
 +      which have been present on the filesystem and in the repository,
 +      but which had erroneously been left out from $(TESTS).
 +
 +2011-05-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: ensure verbose printing of captured make output
 +      * tests/libtool7.test: Ensure verbose printing of captured
 +      make output.
 +      * tests/libtool9.test: Likewise.
 +
 +2011-05-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      maintcheck: consistency of list of test scripts
 +      * CheckListOfTests.am: New file.
 +      (maintainer-check-list-of-tests): New target,
 +      check for consistency between list of tests defined in the
 +      including Makefile and list of tests on the filesystem.
 +      (clean-maintcheck-testslist-tmp): New rule, to clean up the
 +      temporary files that might be left around by the rules associated
 +      with the previous target.
 +      (clean-local): Depend on it.
 +      * lib/Automake/tests/Makefile.am: Include `CheckListOfTests.am'.
 +      (maintainer-check): Added dependency from the new target
 +      `maintainer-check-list-of-tests'.
 +      * tests/Makefile.am: Likewise.  Also ...
 +      (checked_test_extensions): Define to `.test'.
 +      (expected_test_list): Define properly.
 +      * Makefile.am (maintainer-check-list-of-test): New target,
 +      calling recursively into `tests/' and `lib/Automake/tests/',
 +      using ...
 +      (TEST_SUBDIRS): ... this new variable.
 +
 +2011-05-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: drop useless requirements of gcc (plus testsuite tweakings)
 +      * tests/libobj14.test ($required): Remove 'gcc', as we never run
 +      the C compiler.
 +      * tests/targetclash.test: Likewise.
 +      * tests/ansi6.test ($required): Remove 'gcc', as any working
 +      C compiler should be enough.
 +      * tests/ansi7.test: Likewise.
 +      * tests/ansi9.test: Likewise.
 +      * tests/ansi10.test: Likewise.
 +      * tests/lex5.test: Likewise.
 +      * tests/lexvpath.test: Likewise.
 +      * tests/mmodely.test: Likewise.
 +      * tests/pr204.test: Likewise.
 +      * tests/pr300-lib.test: Likewise.
 +      * tests/pr300-prog.test: Likewise.
 +      * tests/primary3.test: Likewise.
 +      * tests/specflg7.test: Likewise.
 +      * tests/specflg8.test: Likewise.
 +      * tests/subdir5.test: Likewise.
 +      * tests/subdir8.test: Likewise.
 +      * tests/subobj6.test: Likewise.
 +      * tests/subst3.test: Likewise.
 +      * tests/substre2.test: Likewise.
 +      * tests/yacc6.test: Likewise.
 +      * tests/yacc8.test: Likewise.
 +      * tests/depcomp2.test: Likewise.  Also, avoid clobbering user-set
 +      CFLAGS.
 +      * tests/lex3.test: Likewise.
 +      * tests/ansi3.test: Likewise.  Also, avoid 'CC=gcc' in configure.
 +      * tests/ansi3b.test: Likewise.
 +      * tests/ansi5.test: Likewise.
 +      * tests/autohdr4.test ($required): Remove 'gcc', as any working
 +      C compiler should be enough.
 +      Also, do not reject slow dependency extractors (which we might
 +      be forced to use now that $CC is not necessarily gcc anymore).
 +      * tests/cond16.test ($required): Remove 'gcc', as any working
 +      C compiler should be enough.
 +      Since we are at it, throw in few minor tweakings (mostly cosmetic,
 +      stylistic, or consistency-related).
 +      * tests/cond18.test: Likewise.
 +      * tests/cond35.test: Likewise.
 +      * tests/gnits2.test: Likewise.
 +      * tests/libtool3.test: Likewise.
 +      * tests/libtool7.test: Likewise.
 +      * tests/libtool9.test: Likewise.
 +      * tests/ltcond.test: Likewise.
 +      * tests/ltcond2.test: Likewise.
 +      * tests/ltconv.test: Likewise.
 +      * tests/ltlibsrc.test: Likewise.
 +      * tests/nobase.test: Likewise.
 +      * tests/nobase-libtool.test: Likewise.
 +      * tests/pr220.test: Likewise.
 +      * tests/pr224.test: Likewise.
 +      * tests/pr300-ltlib.test: Likewise.
 +      * tests/pr401.test: Likewise.
 +      * tests/pr401b.test: Likewise.
 +      * tests/pr401c.test: Likewise.
 +      * tests/subpkg.test: Likewise.
 +      * tests/target-cflags.test: Likewise.
 +      * tests/transform.test: Likewise.
 +      * tests/yacc4.test: Likewise.
 +      * tests/cond19.test: Likewise.  Also, avoid clobbering user-set
 +      CFLAGS.
 +      * tests/cond4.test: Likewise.
 +      * tests/depend2.test: Likewise.
 +      * tests/pr87.test: Likewise.
 +      * tests/subobj3.test: Likewise.
 +      * tests/substref.test: Likewise.
 +
 +2011-05-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: increase coverage w.r.t. GNU make
 +      * tests/defs (GNUmake): Instead of just skipping the tests
 +      requiring GNU make if $MAKE is not GNU make, try to look for
 +      it and, if found, redefine $MAKE accordingly.  This will help
 +      to transparently increase coverage on non-GNU systems which
 +      have GNU make available in PATH.
 +
 +2011-05-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: improve few inter-tests references
 +      * tests/acloca22.test: Improve and extend the heading comments.
 +      Add reference to related tests 'remake-deleted-m4-file.test' and
 +      'remake-renamed-m4-macro-and-file.test'.  Since we are at it,
 +      add trailing `:' command, and few blank lines for readability.
 +      * tests/remake-renamed-m4-macro-and-file.test: In the heading
 +      comments, add reference to the related test 'acloca22.test'.
 +
 +2011-05-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failure in 'color2.test'
 +      * tests/color2.test: If $MAKE contains command-line arguments (as
 +      in e.g., "make -j2"), expect's directive "spawn $env(MAKE)" fails
 +      spuriously, because it tries to run "$MAKE" as a single command.
 +      Fix this with proper uses of the TCL `eval' builtin.
 +
 +2011-05-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: few more checks on automatic remake support
 +      * tests/remake-all-1.test: New test, check that the "all" target
 +      triggers rebuilt of outdated Makefiles.
 +      * tests/remake-all-2.test: Likewise, but for when the makefiles
 +      are not named `Makefile'.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-05-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: check some remake features with non-GNU make too
 +      * tests/acloca14.test ($required): Drop "GNUmake".  This test
 +      works as-is with non-GNU make implementations.
 +      * tests/remake1a.test: Likewise.
 +      * tests/aclocal4.test ($required): Drop "GNUmake".
 +      Modify the test to have it work also with non-GNU make.
 +      * tests/remake5.test: Likewise.
 +      * tests/remake8a.test: Likewise.
 +      * tests/remake8b.test: Likewise.
 +      * tests/remake9a.test: Likewise.
 +      * tests/remake9b.test: Likewise.
 +      * tests/remake9c.test: Likewise.
 +      * tests/remake9d.test: Likewise.
 +      * tests/remake10a.test: Likewise.
 +      * tests/remake10b.test: Likewise.
 +      * tests/remake10c.test: Likewise.
 +      * tests/remake12.test: ($required): Drop "GNUmake".
 +      Adapt the test to make it work also with non-GNU make (if
 +      it supports an "include" directive).
 +
 +2011-05-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: extend tests on dependency tracking with VPATH
 +      * tests/depmod-tests.sh: New script, fulfilling a threefold role:
 +      1. it is called to generate a Makefile.am snippet, containing the
 +         definition of proper lists of tests;
 +      2. it is called to set up a directory containing some common data
 +         files and autotools-generated files used by the aforementioned
 +         tests (this is done for speed reasons only); and
 +      3. it is called to properly run those tests, one at a time.
 +      * tests/depcomp9.test: Delete, it's obsolete now.
 +      * tests/depcomp10.test: Likewise.
 +      * tests/Makefile.am ($(srcdir)/depmod-tests.am): Include this
 +      snippet, which defines ...
 +      (depmode_tests): ... this new macro, containing the list of the
 +      newly generated `*.depmod' tests.
 +      (TESTS_EXTENSIONS): Add `.depmod'.
 +      (DEPMOD_LOG_COMPILER): Define.  It calls `depmod-tests.sh', so that
 +      the "depmode tests" will be executed by passing that driver script
 +      a proper parameter.
 +      ($(depmod_tests)): New dependency declaration (dummy, but required
 +      in order to have make actually produce expected log files from the
 +      `.depmod.log' suffix rule).
 +      (TESTS): Add $(depmod_tests).
 +      (EXTRA_DIST): Distribute depmod-tests.sh.
 +      Other minor cosmetic changes and reorderings.
 +      * bootstrap: Generate depmod-tests.am.
 +      * tests/.gitignore: Updated.
 +
 +2011-05-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: avoid extra test generation (for `instspc' tests)
 +      We don't really need to generate tons and tons of wrapper test
 +      scripts (presently, ~ 90) just to run what is basically a single
 +      test (specifically, `instspc-tests.sh') with different parameters.
 +      In fact, the possibility of running a single driver script with
 +      multiple files/configurations/parameters is one of the major
 +      selling points of the 'parallel-tests' testsuite driver of
 +      automake.  So why not use ourselves more extensively the best
 +      features we provide?
 +      * tests/instspc-tests.sh: Update heading comments.  Expect
 +      to be executed, not sourced.  Update handling of command-line
 +      arguments.  Adjust to reflect the renaming of "instspc tests"
 +      from `instspc-*.test' to `*.instspc'.
 +      * tests/instspc-data.test: Update heading comments.  Execute
 +      driver script `instspc-tests.sh', instead of sourcing it.
 +      Give more informative messages in case of internal errors.
 +      * tests/Makefile.am (TESTS_EXTENSIONS): Define explicitly (to
 +      `.test' and `.instspc').
 +      (TESTS): Add `$(instspc_tests)'.
 +      (generated_tests): Remove `$(instspc_tests)'.
 +      (INSTSPC_LOG_COMPILER): Define.  Calls `instspc-tests.sh', so
 +      that the "instspc tests" will be now executed by passing that
 +      driver script a proper parameter.
 +      ($(instspc_tests)): Remove, we don't need anymore to generate
 +      this tests.
 +      ($(instspc_tests:.test=.log)): Remove, substituted by ...
 +      ($(instspc_tests:.instspc=.log)): ... this.
 +      ($(instspc_tests)): New dependency declaration (dummy, but
 +      required in order to have make actually produce expected log
 +      files from the `.instspc.log' suffix rule).
 +      (MAINTAINERCLEANFILES, generated_tests): Don't extend with
 +      $(instspc_tests) anymore.
 +      Update comments.
 +
 +2011-05-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      build: improve the definition of the list of testcases
 +      * tests/Makefile.am (handwritten_tests): New variable.
 +      (generated_tests): Likewise.
 +      (TESTS): Redefine as the union of the above.
 +      (EXTRA_DIST): Extend using $(handwritten_tests) and
 +      $(generated_tests) rather than $(TESTS).
 +      * tests/gen-parallel-tests: Update accordingly, and
 +      make more robust.
 +
 +2011-05-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests skips: shorter and clearer messages
 +      * tests/defs: Use shorter messages when giving reasons for test
 +      skipping; it turns out these shorter messages are also clearer.
 +      If more info might be useful, send them to the log file only.
 +
 +2011-05-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix self check spurious failure with older bash versions
 +      * tests/self-check-cleanup.test: Add trailing `:' to the test code
 +      passed to $SHELL, otherwise older versions of bash (at least 2.05
 +      and 3.2.39) fail to correctly remove the temporary directory in
 +      the exit trap.
 +
 +2011-05-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: add sanity check to 'self-check-cleanup.test'
 +      * tests/self-check-cleanup.test: Check that the "hacked" file
 +      `defs-static' used by the test differs from the "vanilla" one
 +      in builddir.  This also offers a little more debugging output.
 +
 +2011-05-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: display reasons for skips to the console
 +      * tests/Makefile.am (AM_TESTS_ENVIRONMENT): Open file descriptor
 +      `9' to the original stderr; define `stderr_fileno_' to `9', and
 +      export it.
 +      * tests/self-check-report.test: Prevent new spurious failures by
 +      removing from the environment any definition of `stderr_fileno_'.
 +
 +2011-05-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: use `skip_' for skipping of tests
 +      * tests/defs: Use the `skip_' subroutine for test skipping.  Also
 +      give sometimes more detailed messages about the reasons for the
 +      skipping.
 +      * tests/canon7.test: Likewise.
 +      * tests/color.test: Likewise.
 +      * tests/color2.test: Likewise.
 +      * tests/compile2.test: Likewise.
 +      * tests/dejagnu7.test: Likewise.
 +      * tests/depcomp6.test: Likewise.
 +      * tests/depcomp9.test: Likewise.
 +      * tests/depcomp10.test: Likewise.
 +      * tests/distlinks.test: Likewise.
 +      * tests/distlinksbrk.test: Likewise.
 +      * tests/fn99.test: Likewise.
 +      * tests/fn99subdir.test: Likewise.
 +      * tests/forcemiss2.test: Likewise.
 +      * tests/fort5.test: Likewise.
 +      * tests/gettext3.test: Likewise.
 +      * tests/install2.test: Likewise.
 +      * tests/instfail-info.test: Likewise.
 +      * tests/instfail-java.test: Likewise.
 +      * tests/instfail-libtool.test: Likewise.
 +      * tests/instfail.test: Likewise.
 +      * tests/instmany-mans.test: Likewise.
 +      * tests/instmany-python.test: Likewise.
 +      * tests/instmany.test: Likewise.
 +      * tests/instsh3.test: Likewise.
 +      * tests/ltinit.test: Likewise.
 +      * tests/makej2.test: Likewise.
 +      * tests/mdate6.test: Likewise.
 +      * tests/mkinst3.test: Likewise.
 +      * tests/parallel-tests3.test: Likewise.
 +      * tests/parallel-tests-reset-term.test: Likewise.
 +      * tests/parallel-tests-unreadable-log.test: Likewise,
 +      * tests/python-virtualenv.test: Likewise.
 +      * tests/remake-gnulib-remove-header.test: Likewise.
 +      * tests/subobj9.test: Likewise.
 +      * tests/symlink2.test: Likewise.
 +      * tests/tar.test: Likewise.
 +      * tests/tar2.test: Likewise.
 +      * tests/txinfo26.test: Likewise.
 +      * tests/vala2.test: Likewise.
 +      * tests/vala3.test: Likewise.
 +      * tests/vala5.test: Likewise.
 +      * tests/vtexi4.test: Likewise.
 +      * tests/instdir-texi.test: Likewise.
 +      * tests/txinfo21.test: Likewise.
 +
 +2011-04-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      testsuite: more environment sanitization
 +      * tests/defs: Move the checks verifying that the variables `me',
 +      `parallel_tests' and `required' aren't set in the environment ...
 +      * tests/defs-static.in: ... in here, with some optimizations to
 +      avoid useless forks.  Also, do the same checks for the variables
 +      `original_AUTOMAKE' and `original_ACLOCAL' too.
 +      * tests/self-check-env-sanitize.test: Update.
 +      * tests/Makefile.am (TESTS_ENVIRONMENT): Unset also variables
 +      `original_AUTOMAKE' and `original_ACLOCAL'.
 +
 +2011-04-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failure (non-renamed AM_TESTS_SETUP usage)
 +      * tests/parallel-tests-reset-term.test: Use AM_TESTS_ENVIRONMENT
 +      instead of AM_TESTS_SETUP (which has been removed in commit
 +      v1.11-349-g12f48fa).
 +      Fix spurious failure introduced by merge `v1.11-781-gfeed175'.
  
  2011-04-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        not present in the displayed test name, since the simple-tests
        driver do not try to strip them.
  
 +2011-04-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failure in self-check-env-sanitize.test
 +      * tests/self-check-env-sanitize.test: Open file descriptor `5'
 +      to stdout.
 +      Fix spurious failure introduced by merge `v1.11-788-g3b0c8d5'.
 +
  2011-04-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        test: self check subroutines for skipping/failing of tests
        superseded by the much more complete `maintclean.test'.
        * tests/Makefile.am (TESTS): Update.
  
 +2011-05-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      java tests: use $PATH_SEPARATOR where appropriate
 +      * tests/java-compile-run-nested.test: Use `$PATH_SEPARATOR', not
 +      `:', to separate entries of extended PATH and CLASSPATH variables.
 +      * tests/java-compile-run-flat.test: Likewise.
 +
 +2011-04-26  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      java coverage: test JAVACFLAGS and AM_JAVACFLAGS
 +      * tests/javaflags.test: New test.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-04-26  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      java coverage: test rebuild rules for java
 +      * tests/java-rebuild.test: New test.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-04-26  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      java coverage: try to build and run a java program
 +      * tests/java-compile-run-flat.test: New test, try to build and run
 +      a "UNIX-style" java program (complete with wrapper shell script
 +      and the like) with a "flat" source-tree setup (i.e., everything in
 +      the top-level directory).
 +      * tests/java-compile-nested.test: Likewise, but using a more
 +      typical "nested" source-tree setup.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-04-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      test defs: new requirement for the default java interpreter
 +      * tests/defs.in (for tool in $required): New requirement 'java'.
 +
 +2011-04-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      java tests: tweak and make stricter a couple of tests
 +      * tests/javasubst.test: Use proper m4 quoting.  Add trailing `:'
 +      command.  Enable `errexit' shell flag, and related changes.
 +      Prefer cat + here-doc over echo to append to configure.in.
 +      Make grepping of Makefile.in stricter.  Add debugging output.
 +      Improve heading comments.
 +      * tests/javaprim.test: Likewise.
 +
 +2011-04-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      java coverage: add test on uninstall with JAVA primary
 +      * tests/java-uninstall.test: New test.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-04-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      java tests: require java compiler more properly
 +      * tests/java-extra.test: Use "required=javac" instead of ad-hoc
 +      configure check.
 +      * tests/java-noinst.test: Likewise.
 +
 +2011-04-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      java: allow both JAVA and nobase_JAVA in the same Makefile.am
 +      * automake.in (handle_java): Also strip `nobase_' from the given
 +      prefix, when needed.
 +      * tests/java-clean.test: Update and extend.
 +      * tests/java-compile-install.test: Likewise.
 +      * tests/java-no-duplicate.test: Likewise.
 +      * tests/java-sources.test: Likewise.
 +      * tests/java-noinst.test: Likewise.
 +      * tests/java-mix-dist-nodist.test: Renamed to ...
 +      * tests/java-mix.test: ... this, and extended.
 +      * tests/java-nobase.test: New test, still xfailing due to
 +      unrelated issues.
 +      * tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
 +
  2011-04-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        testsuite: more environment sanitization
        (TESTS_ENVIRONMENT): Unset variables `parallel_tests' and
        `required'.  Adjust comments.
  
 +2011-04-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: in self-checks, use $SHELL, not /bin/sh
 +      * tests/self-check-me-in-env.test: Include `./defs-static' to get
 +      the definition of `$SHELL'.  Use `$SHELL' instead of `/bin/sh' to
 +      execute the tests.
 +
 +2011-04-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: prefer AM_TESTS_ENVIRONMENT to TESTS_ENVIRONMENT
 +      * tests/Makefile.am (TESTS_ENVIRONMENT): Renamed to ...
 +      (AM_TESTS_ENVIRONMENT): ... this.
 +
  2011-04-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        tests: don't allow `$me' to be overridden from the environment
        (TESTS): Update.
        Suggestion by Ralf Wildenhues.
  
 +2011-04-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      check: rename AM_TESTS_SETUP -> AM_TESTS_ENVIRONMENT
 +      The AM_TESTS_SETUP naming was not a good one after all.  It may
 +      be technically more correct than AM_TESTS_ENVIRONMENT, but the
 +      latter is a better one simply because it is easier to remember,
 +      and even if you've never heard of it and only know the semantics
 +      of TESTS_ENVIRONMENT, you can have a straightforward way to
 +      figure out how AM_TESTS_ENVIRONMENT would work.
 +      * tests/check.am (am__check_pre): Update.
 +      * doc/automake.in (Simple Tests using parallel-tests): Update.
 +      * tests/parallel-tests-am_tests_setup.test: Renamed ...
 +      * tests/parallel-tests-am_tests_environment.test: ... to this,
 +      and updated.
 +      * tests/Makefile.am (TESTS): Update.
 +      Suggestion and motivation by Ralf Wildenhues.
 +
  2011-04-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        test defs: allow overriding of `$me'
  
  2011-04-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 +      coverage: more tests on the parallel-tests driver
 +      * tests/parallel-tests-interrupt.test: New test.
 +      * tests/parallel-tests-reset-term.test: Likewise.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-04-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      check: new developer-reserved AM_TESTS_SETUP variable
 +      For reference, see the discussion at:
 +      <http://lists.gnu.org/archive/html/automake-patches/2011-01/msg00213.html>
 +      * lib/am/check.am [%?PARALLEL_TESTS%] (am__check_pre): Pass also
 +      $(AM_TESTS_SETUP).  Comments updated, and some typos fixed.
 +      * doc/automake.texi (Simple Tests using parallel-tests): Document
 +      AM_TESTS_SETUP.  Reorder some of the existing documentation a bit.
 +      * tests/parallel-tests-am_tests_setup.test: New test.
 +      From a suggestion by Ralf Wildenhues.
 +
 +2011-04-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
        depcomp tests: don't reject slower dependency extractors
        * tests/depcomp8b.test: Add the `--enable-dependency-tracking'
        option to `configure' invocations, so that slower dependency
  2011-04-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        m4: add missing serial numbers to a few files
 -      Related to automake bug#8483.
 +      Fixes automake bug#8483.
        * m4/amversion.in: Add serial number.
        * m4/auxdir.m4: Likewise.
        * m4/gcj.m4: Likewise.
        * m4/strip.m4: Likewise.
        * m4/upc.m4: Likewise.
  
 +2011-04-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix few bugs in self checks
 +      Related to automake bug#8508.
 +      * tests/self-check-cleanup.test: Be laxer when grepping output
 +      from `ls -l', to account for ACLs and SELinux-only files.
 +      * tests/self-check-dir.test: Source `defs-static' to read in the
 +      correct definition for $SHELL.
 +      * tests/self-check-me.test: Likewise, and extend a bit.
 +      Report from Jim Meyering.
 +
  2011-04-16  Jim Meyering  <meyering@redhat.com>
  
        depcomp: correct invalid sed invocation
        character in double-quoted string.  Fix a bug in which the rule
        emitted an erroneously empty substring in its error message.
  
 +2011-04-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix typo in python5b.test
 +      * tests/python5b.test: Remove extra `:' from $PATH redefinition.
 +
  2011-04-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
-       coverage: test for automake bug#8485 (known regression)
-       * tests/yacc-dist-nobuild-subdir.test: New test.
-       * tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
+       lex/yacc tests: remove redundant $distdir definition
+       * tests/lex3.test ($distdir): Remove definition, that's already
+       done in `tests/defs'.
+       * tests/lexvpath.test: Likewise.
+       * tests/yacc-basic.test: Likewise.
+       * tests/yacc-cxx.test: Likewise.
+       * tests/yacc-d-basic.test: Likewise.
+       * tests/yacc-d-cxx.test: Likewise.
+       * tests/yacc-d-vpath.test: Likewise.
+       * tests/yacc-dist-nobuild-subdir.test: Likewise.
+       * tests/yacc-dist-nobuild.test: Likewise.
+       * tests/yacc-mix-c-cxx.test: Likewise.
+       * tests/yaccvpath.test: Likewise.
  
 +2011-04-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: remove redundant settings of `errexit' shell flag
 +      * tests/autodist-acconfig.test: Do not set the `errexit'
 +      shell flag, as it is already set by `tests/defs'.
 +      * tests/autodist-acconfig-no-subdir.test: Likewise.
 +      * tests/autodist-aclocal-m4.test: Likewise.
 +      * tests/autodist-config-headers.test: Likewise.
 +      * tests/autodist-configure-no-subdir.test: Likewise.
 +      * tests/autodist-stamp-vti.test: Likewise.
 +      * tests/autodist-subdir.test: Likewise.
 +      * tests/autodist.test: Likewise.
 +      * tests/check-exported-srcdir.test: Likewise.
 +      * tests/check-tests-in-builddir.test: Likewise.
 +      * tests/check-tests_environment.test: Likewise.
 +      * tests/help-python.test: Likewise.
 +      * tests/java-check.test: Likewise.
 +      * tests/java-extra.test: Likewise.
 +      * tests/java-noinst.test: Likewise.
 +      * tests/lex-subobj-nodep.test: Likewise.
 +      * tests/ltinit.test: Likewise.
 +      * tests/m4-inclusion.test: Likewise.
 +      * tests/maintclean-vpath.test: Likewise.
 +      * tests/parallel-tests-subdir.test: Likewise.
 +      * tests/pr8365-remake-timing.test: Likewise.
 +      * tests/python-dist.test: Likewise.
 +      * tests/python-vars.test: Likewise.
 +      * tests/python-virtualenv.test: Likewise.
 +      * tests/python5b.test: Likewise.
 +      * tests/specflg-dummy.test: Likewise.
 +      * tests/yacc-dist-nobuild-subdir.test: Likewise.
 +
  2011-04-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        test defs: define default $distdir (help reducing duplication)
 -      * tests/defs.in ($distdir): New variable, might be used in
 +      * tests/defs ($distdir): New variable, might be used in
        testcases checking distribution-related features.
        * tests/pr9.test: Use it.
        * tests/subdir9.test: Likewise.
 +      * tests/lex3.test: Likewise.
 +      * tests/lexvpath.test: Likewise.
 +      * tests/remake-moved-m4-file.test: Likewise.
 +      * tests/remake-renamed-m4-file.test: Likewise.
 +      * tests/remake-renamed-m4-macro-and-file.test: Likewise.
 +      * tests/yacc-basic.test: Likewise.
 +      * tests/yacc-d-basic.test: Likewise.
 +      * tests/yacc-d-vpath.test: Likewise.
 +      * tests/yacc-dist-nobuild.test: Likewise.
        * tests/vtexi3.test: Add comment explaining why we redefine
        $distdir in this test.
  
+ 2011-04-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       coverage: test lex-generated "#line" directives postprocessing
+       * tests/yacc-line.test: In heading comments, add reference to new
+       sister test `lex-line.test'.
+       * tests/lex-line.test: New test.
+       * tests/Makefile.am (TESTS): Update.
+ 2011-04-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: minor improvements to a couple of yacc tests
+       * tests/yacc-auxdir.test: Avoid running autoconf, it's not
+       needed.
+       * tests/yacc-line.test: Also check that the yacc-generated C
+       and header files do not contain "#line" directives referencing
+       `y.tab.c' or `y.tab.h'.  Add a couple of explicative comments.
+ 2011-04-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: split yacc6.test, for better separation and coverage
+       * tests/yacc6.test: Test removed, its content extended and split
+       into ...
+       * tests/yacc-auxdir.test, tests/yacc-depend.test,
+       tests/yacc-line.test: ... these new tests.
+       * tests/yacc-depend2.test: New test, exposes the failure that
+       FreeBSD used to encounter in yacc6.test.
+       * tests/Makefile.am (TESTS): Update.
+ 2011-04-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: do not uselessly require GNU make or gcc in a few tests
+       * tests/lex3.test: Remove gcc from requirements, as any working C
+       compiler should be ok.  Consequently, do not clobber user CFLAGS.
+       Also, remove GNUmake from requirements; it was added (see commit
+       `Release-1-8-103-g0d2f592') because this test fails with FreeBSD
+       make due to VPATH issues -- but so do many other yacc-related and
+       lex-related tests currently, and requiring GNU make in all of
+       them would unacceptably reduce coverage.
+       * tests/lexvpath.test: Remove gcc from requirements, as any
+       working C compiler should be ok.
+       * tests/yacc4.test: Likewise.
+       * tests/yacc8.test: Likewise.
+       * tests/lex5.test: Likewise.  Also, do not require anymore GNU
+       make; to compensate, explicitly call "$MAKE Makefile" to update
+       the out-of-date Makefile if $MAKE is not GNU make.
+ 2011-04-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: fix spurious failure in test 'yacc-d-cxx.test'
+       * tests/yacc-d-cxx.test: Create ylwrap script before calling
+       automake for the first time, so that the script gets correctly
+       distributed.  Add checks verifying it indeed is.
+ 2011-04-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests cosmetics: remove redundant definitions of variable $tab
+       * tests/yacc-d-basic.test ($tab): Remove definition: it's already
+       defined in `tests/defs'.
+       * tests/yacc-d-cxx.test: Likewise.
+ 2011-04-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       yacc: add some tests on bison support (still xfailing)
+       Related to automake bug#7648 and PR automake/491.
+       * tests/bison-skeleton-cxx.test: New test.
+       * tests/bison-skeleton.test: New test.
+       * tests/Makefile.am (TESTS, XFAIL_TESTS): Updated.
+ 2011-04-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       coverage: test for automake bug#8485 (known regression)
+       * tests/yacc-dist-nobuild-subdir.test: New test.
+       * tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
+ 2011-04-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       coverage: test mixed C/C++ yacc-generated parsers in the same dir
+       * tests/yacc-mix-c-cxx.test: New test.
+       * tests/Makefile.am (TESTS): Update.
+ 2011-04-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       cosmetics: fix typos and wording in some yacc tests
+       * tests/yacc-cxx.test (foo.cc): Clarify comment about the content
+       of this file being valid C++ but invalid C.
+       (parse1.yy): Likewise.  Also, remove redundant parentheses in a
+       `return' statement.
+       * tests/yacc-d-cxx.test (write_parse): Clarify comment about the
+       content of the generated files being valid C++ but invalid C.
+       (write_main): Likewise.
+       * tests/yacc-basic.test: Remove redundant parentheses in a
+       `return' statement.
+       * tests/yacc-d-vpath.test: Adjust spacing around curly brackets.
+       * tests/yaccvpath.test: Likewise.
+       * tests/yaccdry.test: Likewise.
+       * tests/yacc8.test: Likewise.
+       * tests/yacc4.test: Likewise.
+       Suggested by Ralf Wildenhues.
+ 2011-04-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       yacc: update NEWS and docs about yacc-generated headers extensions
+       * doc/automake.texi (Yacc and Lex): Document explicitly that
+       extensions of yacc-generated headers are modelled after the
+       extension of the corresponding sources.
+       * NEWS: Update.
+ 2011-01-28   Stefano Lattarini  <stefano.lattarini@gmail.com>
+       yacc: extension of headers modelled after extension of sources
+       With this change, if '-d' is in *YFLAGS, a yacc input file named
+       foo.y++ will cause a foo.h++ header to be generated, instead of a
+       foo.h header.  Similarly for foo.ypp, foo.yxx and foo.yy.
+       This way, the name of the files generated by an automake-created
+       `ylwrap' invocation should be consistent with those generated by
+       a `bison -o' call.
+       Related to automake bug#7648 and PR automake/491.
+       * lib/am/yacc.am (am__yacc_c2h): New internal variable.
+       (?GENERIC?%EXT%%DERIVED-EXT%, ?!GENERIC?%OBJ%): Get the name of
+       the header dynamically at make runtime, so that its extension is
+       modelled after the extension of the source.
+       * automake.in (lang_yacc_target_hook): Adjust the calculation of
+       `$header' accordingly.
+       * tests/yacc-cxx.test: New test.
+       * tests/yacc-d-cxx.test: Likewise.
+       * tests/yacc-weirdnames.test: Likewise.
+       * tests/yacc-basic.test: Update comments.
+       * tests/yacc-d-basic.test: Likewise.
+       * tests/yaccpp.test: Updated and extended.
+       * tests/Makefile.am (TESTS): Update.
+ 2011-01-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: don't define YACC and LEX in the Makefiles
+       We don't want YACC and LEX defined as make variables, otherwise
+       the values determined at configure time will override those from
+       the environment, even in the make-spawned testcases.  For example,
+       before this change, with the following usage:
+         $ ./configure YACC=yacc
+         $ export YACC='bison -y'
+         $ make check
+       the testsuite would have ended up, very counterintuitively, with
+       YACC defined to 'yacc' in the testcases' environment.
+       * configure.ac: Call `AM_SUBST_NOTMAKE' on YACC and LEX.
+ 2011-01-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: fix spurious failures in lflags*.test
+       * tests/lflags.test: Remove 'LEX' from the environment, so
+       that it won't be erroneously picked up by `make -e'.
+       * tests/lflags2.test: Likewise.
+ 2011-01-29   Stefano Lattarini  <stefano.lattarini@gmail.com>
+       coverage: more on 'yacc -d' and recovery from deleted headers
+       * tests/yacc-deleted-headers.test: New test.
+       * tests/Makefile.am (TESTS): Update.
+ 2011-01-29   Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: remove redundancy from silent lex/yacc tests
+       * tests/silent-yacc-gcc.test, tests/silent-yacc-generic.test: Merge
+       these two testcases into ...
+       * tests/silent-yacc.test: ... this new one, which doesn't fiddle
+       which dependency tracking, as that shouldn't impact on generation
+       of yacc-derived C source and header files (and, for what concerns
+       compilation of C files, is already tested in other testcases).
+       * tests/silent-lex-gcc.test, tests/silent-lex-generic.test: Merge
+       these two testcases into ...
+       * tests/silent-lex.test: ... this new test, for similar reasons.
+       * tests/Makefile.am (TESTS): Update.
+ 2011-01-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
+           Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+       tests init: better messages for 'yacc' and 'lex' requirements
+       * tests/defs.in: Give better diagnostic messages when a test must
+       be skipped to the unavailability of yacc or lex program.  Also,
+       improve syncing between code for requiring yacc and lex.
+ 2011-01-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       configure: look for a lex program to be used by the testsuite
+       This will allow the testcases requiring a 'lex' program to run also
+       with vendor/legacy lex implementations, not only with 'flex'.
+       * configure.ac: Look for a lex program, using AC_CHECK_PROGS.
+       * tests/defs.in: New required entry 'lex'.
+       ($LEX): Let the user override the lex program to be used by the
+       testsuite.
+       * tests/cond35.test ($required): Require 'lex', not 'flex'.
+       * tests/cond36.test: Likewise.
+       * tests/lexv3.test: Likewise.
+       * tests/lexv3.test: Likewise.
+       * tests/silent-lex-gcc.test: Likewise.
+       * tests/silent-lex-generic.test: Likewise.
+       * tests/silent-many-gcc.test: Likewise.
+       * tests/silent-many-generic.test:likewise.
+       * tests/lexvpath.test: Likewise, and fix typo in comments.
+ 2011-01-22   Stefano Lattarini  <stefano.lattarini@gmail.com>
+       configure: look for a yacc program to be used by the testsuite
+       Instead of forcing the user to manually export 'YACC' in the
+       testsuite to use a non-bison yacc, we now look for a yacc program
+       at configure time, and use that as the default in the testsuite.
+       * configure.ac: Look for a yacc program, using AC_CHECK_PROGS.
+       * tests/defs.in: Updated to use the value of $YACC precomputed by
+       configure, unless the user overrides that in the environment.
+ 2011-01-22   Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: more coverage on yacc/lex silent-rules, plus minor cleanups
+       * tests/silent-yacc-gcc.test: Add sanity checks verifying that the
+       generated Makefile.in files really contains the non-generic rules
+       we expect.  Do not redundantly manually remove files we know to be
+       already removed "make maintainer-clean".
+       (Makefile.am): Ensure we cover also non-generic yacc rules, by
+       setting target-specific YFLAGS.
+       (sub/Makefile.am): Likewise.
+       * tests/silent-yacc-generic.test: Likewise.
+       * tests/silent-lex-gcc.test: Likewise, but with LFLAGS instead of
+       YFLAGS.
+       * tests/silent-lex-generic.test: Likewise.
+       * tests/silent-many-gcc.test: Likewise, but with both LFLAGS and
+       YFLAGS.  Also ...
+       (do_and_check_verbose_build): Remove redundant blank line.
+       * tests/silent-many-generic.test: Likewise.
+       * tests/silent-yacc-headers.test: New test.
+       * tests/Makefile.am (TESTS): Update.
+ 2011-01-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: fix spurious failures in yflags*.test
+       * tests/yflags.test: Remove 'YACC' from the environment, so
+       that it won't be erroneously picked up by `make -e'.
+       * tests/yflags2.test: Likewise.
+ 2011-01-22   Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: cover yacc target-specific flags, and `-v' flag handling
+       * tests/yacc-basic.test: Also try to build a parser having `-v'
+       as target-specific flags.  Add a couple of `ls -l' commands, for
+       debugging.  Update and extend comments.  Escape literal dots in
+       grep regular expressions.
+ 2011-01-12   Stefano Lattarini  <stefano.lattarini@gmail.com>
+       docs: clustered '-d' not recognized in YFLAGS
+       This change fixes automake bug#7828.
+       * doc/automake.texi (Yacc and Lex): Document that automake
+       recognizes '-d' in AM_YFLAGS only if it's not clustered with
+       other options.
+       From a report by Юрий Пухальский.
+ 2011-01-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: do not force yacc-requiring tests to use bison
+       * tests/defs.in: New required entry 'yacc'.  Remove old
+       required entry 'bison'.
+       * tests/cond35.test ($required): Require yacc, not bison.
+       * tests/cond36.test: Likewise.
+       * tests/pr204.test: Likewise.
+       * tests/silent-many-gcc.test: Likewise.
+       * tests/silent-many-generic.test: Likewise.
+       * tests/silent-yacc-gcc.test: Likewise.
+       * tests/silent-yacc-generic.test: Likewise.
+       * tests/subpkg.test: Likewise.
+       * tests/suffix10.test: Likewise.
+       * tests/yacc-basic.test: Likewise.
+       * tests/yacc-clean.test: Likewise.
+       * tests/yacc-d-basic.test: Likewise.
+       * tests/yacc-d-vpath.test: Likewise.
+       * tests/yacc-dist-nobuild.test: Likewise.
+       * tests/yacc-nodist.test: Likewise.
+       * tests/yacc4.test: Likewise.
+       * tests/yacc6.test: Likewise.
+       * tests/yacc7.test: Likewise.
+       * tests/yacc8.test: Likewise.
+       * tests/yaccdry.test: Likewise.
+       * tests/yaccvpath.test: Likewise.
+ 2011-01-10   Stefano Lattarini  <stefano.lattarini@gmail.com>
+       yacc: warn about conditional content in *YFLAGS variables
+       This change fixes automake bug#7804.
+       * automake.in (lang_yacc_target_hook): Warn if any of the relevant
+       *YFLAGS variables has conditional contents (not only a conditional
+       definition).  Related refactoring.
+       * NEWS: Updated.
+       * tests/yflags-conditional.test: Updated and extended.
+       * tests/yflags-conditional-force.test: New test.
+       * tests/Makefile.am (TESTS): Updated.
+ 2011-01-08   Stefano Lattarini  <stefano.lattarini@gmail.com>
+       yacc: support variable expansions in *YFLAGS definition.
+       This change fixes automake bug#7800.
+       * automake.in (lang_yacc_target_hook): Use 'value_as_list_recursive'
+       instead of 'variable_value' to get the value of *YFLAGS variables.
+       Related changes.
+       ($DASH_D_PATTERN): Removed.
+       * tests/Makefile.am (XFAIL_TESTS): Remove yflags-var-expand.test.
+       * tests/yacc-clean.test: Remove workaround for now-fixed bug.
+       * NEWS: Update.
+ 2011-01-08   Stefano Lattarini  <stefano.lattarini@gmail.com>
+       yacc: more tests on *YFLAGS support
+       * tests/yflags-var-expand.test: New test, still xfailing.  It
+       exposes automake bug#7800 -- "automake fails to honor `-d' in
+       AM_YFLAGS when variable expansions are involved".
+       * tests/yflags-d-false-positive.test: New test, checking that
+       automake do not spuriously see `-d' in *YFLAGS when that isn't
+       really there.
+       * tests/yflags-force-override.test: New test, checking that
+       automake can cope with definition of the YFLAGS variable in
+       Makefile.am (even if that is an extremely bad practice, as that
+       variable is user-reserved).
+       * tests/yflags-cmdline-override.test: New test, checking that
+       automake can cope with user-redefinition of YFLAGS at configure
+       time and/or at make time.
+       * tests/yflags-conditional.test: New test, checks that automake
+       warns on conditionally-defined *YFLAGS variables.
+       * tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
+ 2011-01-08   Stefano Lattarini  <stefano.lattarini@gmail.com>
+       yacc: extend and improve tests
+       * tests/yacc-basic.test: Also check that the intermediate C file
+       is mentioned in the generated Makefile.in, and that it is created
+       by the first make invocation.
+       * tests/yacc3.test: Test removed, superseded by ...
+       * tests/yacc-d-basic.test: ... this new test.
+       * tests/yacc2.test: Add reference to that new test in the heading
+       comments.
+       * tests/yacc-d-vpath.test: New test.
+       * tests/yaccvpath.test: Updated heading comments.  Do not require
+       gcc anymore, as any working C compiler should be enough.  Remove
+       redundant comments.
+       * tests/yacc-nodist.test: New test.
+       * tests/yacc-dist-nobuild.test: New test.
+       * tests/Makefile.am (TESTS): Update.
+ 2010-12-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       Extend, fix and improve tests on Lex and Yacc support.
+       * tests/lexcpp.test: New test script, on support for Lex + C++.
+       * tests/lexvpath.test: New test script, test build and rebuild
+       rules for lexers in VPATH setup.
+       * tests/yacc-basic.test: New test script, run simple "semantic"
+       checks on basic Yacc support (similarly to what lex3.test does
+       for Lex support).
+       * tests/lex.test: Don't create useless dummy source file joe.l.
+       Remove extra blank lines.
+       * tests/lex4.test: Add trailing `:' command.  Do not create dummy
+       useless lex source file.
+       * tests/lex2.test: Likewise.  Call automake with the `-a' option,
+       so that it doesn't fail for the absence of `ylwrap' script.  Make
+       grepping of automake stderr stricter.
+       * tests/yacc7.test: Add trailing `:' command.  Enable `errexit'
+       shell flag earlier (just after having sourced ./defs).
+       * tests/yacc4.test: Likewise.  Also ...
+       (configure.in): Use pre-populated skeleton set up by ./defs,
+       instead of writing one from scratch.
+       Other minor cosmetic changes.
+       * tests/yacc5.test: Likewise.
+       * tests/yaccvpath.test: Likewise. Also ...
+       ($distdir): New variable.
+       Use it throughout.
+       * tests/lex5.test: Likewise.
+       * tests/lex3.test: Likewise.  Check the distdir, rather than
+       grepping the distribution tarball.  Extend the test on the
+       created binary, and be sure to avoid hangs.  Add some comments.
+       * tests/yacc.test: Use stricter grepping.  Add trailing `:'.
+       * tests/yacc6.test: Likewise.
+       * tests/yacc3.test: Likewise.  Do not create the unused file
+       `Makefile.sed'.  Remove useless rules from Makefile.am.  Other
+       minor cosmetic changes.
+       * tests/yacc2.test: Make grepping of generated `Makefile.in' and
+       of automake error messages stricter.  Do not redirect output of
+       grep to /dev/null.  Move call to aclocal earlier.  Reduce the
+       number of empty blank lines.  Fix a typo in comments.
+       * tests/yacc8.test: Fixed bugs that reduced the completeness of
+       the tests.  Added trailing `:' command.
+       (configure.in): Use pre-populated skeleton set up by ./defs,
+       instead of writing one from scratch.
+       * tests/yaccpp.test: Test also extensions `.y++', `.ypp', and
+       `.yxx', rather than only `.yy'.
+       * tests/Makefile.am (TESTS): Update.
+ 2011-01-07   Stefano Lattarini  <stefano.lattarini@gmail.com>
+       yacc: "make clean" removes .c and .h files from non-distributed .y
+       Previously, while automake did *not* distribute C source and header
+       files derived from non-distributed Yacc sources, it still caused
+       them to be removed only by "make maintainer-clean" only, and not by
+       simply "make clean" or "make distclean".
+       This caused "make distcheck" to fail, unless the developer put
+       those generated .c and .h files in CLEANFILES or in DISTCLEANFILES
+       by hand.
+       This change fixes this issue, by making non-distributed `.c' and
+       `.h' files generated by non-distributed Yacc sources cleaned by
+       "make clean".
+       * tests/automake.in (lang_yacc_target_hook): Make C source and
+       header files derived from non-distributed Yacc files cleaned by
+       "make clean", not only by "make maintainer-clean".
+       * tests/yacc-clean.test: New test.
+       * tests/Makefile.am (TESTS): Update.
+       * NEWS: Update.
  2011-04-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        depcomp: fix bugs in tests and in the depcomp script
        * NEWS: Update.
        Report by Bruno Haible.
  
 +2011-04-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      java: allow both dist_JAVA and nodist_JAVA in the same Makefile.am
 +      Fixes automake bug#8434.
 +      * automake.in (handle_java): Strip `dist_' and `nodist_' from
 +      the given prefix.  Define a new internal Makefile variable
 +      `am__java_sources'.  Related adjustments.
 +      * lib/am/java.am (JAVAC, JAVAROOT, CLASSPATH_ENV): Define only the
 +      first time this am file is processed.
 +      (class%DIR%.stamp): Stamp file renamed ...
 +      (class%NDIR%.stamp): ... to this, so that the `dist_' and `nodist_'
 +      prefixes are stripped from the name of the stampfile.  Adjust
 +      declaration of dependencies by using the new automake-generated
 +      internal variable `$(am__java_sources)'.  In the rule, use `$@'
 +      as the name of the target, rather than hard-coding it.
 +      * tests/java.test: Update and extend.
 +      * tests/java-no-duplicate.test: New test.
 +      * tests/java-mix-dist-nodist.test: Likewise.
 +      * tests/java-compile-and-install.test: Likewise.
 +      * tests/java-clean.test: Likewise.
 +      * tests/java-sources.test: Likewise.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-04-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: more on java support EXTRA_ and noinst_ prefixes
 +      * tests/java-extra.test: New test, checking support for the
 +      prefix `EXTRA_' with the JAVA primary.
 +      * tests/java-noinst.test: New test, checking support for the
 +      prefix `noinst_' with the JAVA primary.
 +      * tests/Makefile.am (TESTS): Update.
 +
  2011-04-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        test defs: fix 'javac' requirement for older JDK versions
        * tests/defs.in (for tool in $required): New requirement 'javac'.
        * tests/java.test: Use it instead of ad-hoc configure check.
        * tests/java-check.test: Likewise.
 +      * tests/java-extra.test: Likewise.
 +      * tests/java-noinst.test: Likewise.
        * tests/instfail-java.test: Likewise.
        * tests/instdir-java.test: Likewise.
  
        * THANKS: Update.
        Report from Petteri Räty.
  
 +2011-04-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +          Bruno Haible  <bruno@clisp.org>
 +
 +      coverage: add tests on remake rules in more complex situations
 +      * tests/defs (using_gmake): New function.
 +      (for tool in $required): Use it when $tool is 'GNUmake'.
 +      * tests/remake-moved-m4-file.test: New test.
 +      * tests/remake-deleted-m4-file.test: Likewise.
 +      * tests/remake-renamed-m4-file.test: Likewise.
 +      * tests/remake-renamed-m4-macro-and-file.test: Likewise.
 +      * tests/remake-renamed-m4-macro.test: Likewise.
 +      * tests/remake-add-acsubst-gnulib.test: Likewise.
 +      * tests/remake-add-header-gnulib.test: Likewise.
 +      * tests/remake-remove-header-gnulib.test: Likewise.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-04-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      typofix in 'tests/defs'
 +      * tests/defs: Fix typo (`itslef' instead of `itself') in
 +      comments.
 +
  2011-04-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
        Clarify regex code in depcomp.
        primary is used").
        From a report by Patrick Welche.
  
 +2011-03-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      cosmetics: better use of m4 quoting and m4sugar macros
 +      * m4/dmalloc.m4: Better use of m4 quoting.  Bump serial number.
 +      * m4/gcj.m4: Likewise.
 +      * m4/init.m4: Likewise.
 +      * m4/install-sh.m4: Likewise.
 +      * m4/lex.m4: Likewise.
 +      * m4/multi.m4: Likewise.
 +      * m4/option.m4: Likewise.
 +      * m4/python.m4: Likewise.
 +      * m4/sanity.m4: Likewise.
 +      * m4/cond.m4: Likewise.  Also, prefer the m4sugar macro 'm4_if'
 +      over the plain m4 macro 'ifelse'.
 +      * m4/depend.m4: Likewise.
 +
 +2011-03-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: add test about deprecated use of AC_INIT
 +      * tests/deprecated-acinit.test: New test, check that automake
 +      and autoconf complain about an old-style AC_INIT call used with
 +      a new-style AM_AUTOMAKE_INIT call.
 +      * tests/Makefile.am (TESTS): Update.
 +
  2011-03-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        tests: fix bug (comments-in-var-defn.test + autoconf 2.62)
        * NEWS: Likewise.
        * TODO: Likewise.
  
 +2011-03-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: extend checks on the 'unindent' shell function
 +      * tests/self-check-unindent.test: Also check that multiple
 +      instances of 'unindent' can run in parallel (this was not
 +      the case when that function used temporary files).
 +
  2011-03-01  Peter Rosin  <peda@lysator.liu.se>
  
        test defs: unindent without temporary file
        support works with LT_INIT-based interface.
        Thanks to Jack Kelly for the suggestion.
  
 +2011-02-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: add testcases sanity-checking the testsuite
 +      Helper subroutines, variables and other pieces of code defined
 +      in the `tests/defs' and used by many testcases are non-obvious,
 +      and tricky to get to work portably; but until now, they weren't
 +      tested at all in a clear and self-contained way.
 +      This change should remedy to the situation.
 +      * tests/self-check-cleanup.test: New test, check removal of
 +      temporary test working directory by `./defs'.
 +      * tests/self-check-dir.test: New test, check that tests using
 +      `./defs' create a proper temporary directory, and run in it.
 +      * tests/self-check-exit.test: New test, check that, in case of
 +      failing commands, the correct exit status is passed to the exit
 +      trap installed by the `./defs' script.
 +      * tests/self-check-is_newest.test: New test, checking the
 +      `is_newest' subroutine.
 +      * tests/self-check-me.test: New test, checking that $me gets
 +      defined automatically by `tests/defs' if not set, and that it
 +      can be overridden from either the shell or the environment.
 +      * tests/self-check-sanity.test: New test, check that the sanity
 +      checks performed by the `tests/defs' script works correctly.
 +      * tests/self-check-unindent.test: New test, checking the
 +      `unindent' subroutine.
 +      * tests/Makefile.am (TESTS): Update.
 +
  2011-02-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        tests: tempdirs with restrictive permissions are cleaned correctly
  
        test defs: add subroutine for input unindenting
        * tests/defs.in (unindent): New subroutine.
 +      * tests/instspc-tests.sh: Use it.
  
  2011-02-15  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        from environment won't interfere with the testcases.
        Suggestion by Ralf Wildenhues.
  
 +2011-02-15  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: `instspc-*.test': do not create useless source file
 +      * tests/instspc-tests.sh (create_input_data): Do not create
 +      unused source file `source2.c'.
 +
 +2011-02-15  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: optimize `instspc-*.test' for speed
 +      After the split of `instspc.test' into various generated tests,
 +      the running time of the testsuite has noticeably increased, since
 +      all these new generated tests must run aclocal, autoconf and
 +      automake, whereas previously they were run only once (at the
 +      beginning of `instspc.test').  But luckily, since the new tests
 +      share the same input files for the autotools, this situation can
 +      be easily worked around (at the expenses of a slight increase of
 +      complexity for the testsuite scaffolding).
 +      * tests/instspc-data.test: New helper test, properly calling
 +      the `instspc-tests.sh' script to generate input data for the
 +      others `instspc-*.test' tests.
 +      * tests/Makefile.am (TESTS): Add `instspc-data.test'.
 +      ($(instspc_tests:.test=.log)): Depend on its log file.
 +      (instspc-data.log): Depend on `instspc-tests.sh'.
 +      * tests/instspc-tests.sh: Recognize new action `generate-data',
 +      and use it to create hand-written and autotools-generated static
 +      files shared by all the `instspc-*.test' tests.
 +      When sourced by the `instspc-*.test' tests, use those previously
 +      created files instead of recreating them from scratch.
 +      (unindent, create_input_data): New subroutines.
 +      Some other related changes and refactorings.
 +      From a suggestion by Ralf Wildenhues.
 +
 +2011-02-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      python: fix spurious failure in tests
 +      * tests/python-vars.test: Ignore cached values from config.site
 +      by exporting CONFIG_SITE=/dev/null.  Be laxer in matching the
 +      expected values of output variables `pythondir' and `pyexecdir',
 +      since they can change quite unpredictably among different python
 +      installations.  Also, avoid "hyping" debugging output, thus
 +      offering smaller trace output and more informative diff.
 +      Report and suggestions by Ralf Wildenhues.
 +      * tests/python-virtualenv.test: Require python, since we call it
 +      even after the virtualenv has been deactivated.  Ignore cached
 +      values from config.site by exporting CONFIG_SITE=/dev/null.
 +
  2011-02-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        tests: tweak few tests on simple and parallel test drivers
        environment won't risk to interfere with the test.
        Suggestions by Ralf Wildenhues.
  
 +2011-02-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      python: extend and improve tests, fix minor glitches
 +      * m4/python.m4 (AM_PATH_PYTHON): Ensure the "checking ..." messages
 +      from configure are always complete, even in case of failure.  Tiny
 +      cosmetic improvement in info/error messages.
 +      * tests/python.test: Also check that automake complains if the
 +      PYTHON primary is used but the `py-compile' script is not present.
 +      Make grepping of generated Makefile.in laxer w.r.t. whitespace.
 +      Add trailing `:' command.
 +      * tests/python2.test: Remove repeated calls aclocal: they are
 +      useless because configure.in is never modified.  Make grepping
 +      of automake stderr more comprehensive.  Remove the pre-existing
 +      `py-compile' file before trying to install it with `--add-missing'.
 +      Add trailing `:' command.
 +      * tests/python3.test: Add trailing `:' command.
 +      * tests/python11.test: Likewise.
 +      * tests/python4.test: Likewise.  Also, try to pass PYTHON config
 +      variable to configure from the environment, rather than only from
 +      the command line.
 +      * tests/python5.test: Ensure that the "checking ..." messages from
 +      configure are always complete.  Use proper m4 quoting.  Add a
 +      trailing `:' command.
 +      * tests/python6.test: Simplify test logic, by checking for files
 +      created by configure rather then grepping its output.
 +      * tests/python7.test: Likewise.
 +      * tests/python8.test: Also check that `$PYTHON' is meaningfully
 +      set in the ACTION-IF-TRUE argument of AM_PATH_PYTHON.
 +      * tests/python9.test: Likewise.
 +      * tests/python10.test: Add trailing `:' command.
 +      (Makefile.am): Declare `disttest' target as `.PHONY', and add
 +      an `ls -l' to its recipe, for debugging.
 +      * tests/nobase-python.test: In testing "make uninstall" and
 +      "make install" results, prefer idioms that make verbose logs
 +      more helpful.  Remove a couple of lines of dead code.  Add a
 +      trailing `:' command.
 +      * tests/python5b.test: New test, checking that configure performs
 +      the check on the python version even when the choice of the python
 +      interpreter is forced by the user.
 +      * tests/python-dist.test: New test, checking the distribution of
 +      *_PYTHON files.
 +      * tests/python-vars.test: New test, checking that AM_PATH_PYTHON
 +      correctly set all the output variables advertised in the manual.
 +      * tests/python-virtualenv.test: New test, checking that python
 +      support offered by automake works well with "virtual python
 +      environments" created by the `virtualenv' program.
 +      * tests/instdir-prog.test: Also check `$(pyexecdir)'.  Existing
 +      checks made slightly stricter.
 +      * tests/instdir-prog.test: Also check `$(pyexecdir)'.  Existing
 +      * tests/instdir-ltlib.test: Likewise.
 +      * tests/Makefile.am (TESTS): Update.
 +
  2011-02-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        coverage: more tests on simple and parallel test drivers
        thus causing colored test output not to be automatically
        activated when it should.
  
 -2011-01-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 -
 -      tests: avoid instspc.test failures due to make's whitespace trimming
 -      * tests/instspc.test: Prepend './' when passing the test
 -      characters, to avoid leading whitespace characters to be trimmed
 -      from macros set from environment variables.  Fixes testsuite
 -      failures with HP-UX, IRIX, and Tru64/OSF make.
 -
  2011-01-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        coverage: test semantics of "dummy" per-target flags
  2011-01-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        tests defs: sanitize IFS
 -      * tests/defs.in ($IFS): Define to <space>, <tab>, <newline>.
 +      * tests/defs ($IFS): Define to <space>, <tab>, <newline>.
        ($sp): New variable, holding a single whitespace character.
        ($tab): New variable, holding a tabulation character.
        ($nl): New variable, holding a newline character.
  
 +2011-01-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      tests: avoid instspc* failures due to make's whitespace trimming
 +      * tests/instspc-tests.sh: Prepend './' when passing the test
 +      characters, to avoid leading whitespace characters to be trimmed
 +      from macros set from environment variables.  Fixes testsuite
 +      failures with HP-UX and Tru64/OSF make.
 +
  2011-01-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
        tests: fix VPATH auto-expansion workarounds.
 +      * tests/suffix10.test, tests/suffix11.test, tests/suffix12.test,
 +      tests/suffix3.test, tests/suffix5.test, tests/suffix8.test:
 +      Ensure $< is not surrounded by white space, to prevent Solaris
 +      make from applying automatic VPATH text expansion.
 +
 +      tests: fix VPATH auto-expansion workarounds.
        * tests/parallel-tests8.test, tests/suffix13.test:
        Ensure $< is not surrounded by white space, to prevent Solaris
        make from applying automatic VPATH text expansion.
        TESTS_ENVIRONMENT for the perl driver.  Instead, point to the
        parallel-tests driver.
  
 +2011-01-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      tests: check for presence of cscope with redirected input.
 +      * tests/defs: Add required test for cscope.
 +      Fixes cscope3.test hang with Sun C 5.9 cscope.
 +
 +      tests: avoid false failure in cygnus-dependency-tracking.test.
 +      * tests/cygnus-dependency-tracking.test: Be less restrictive
 +      when grepping the compiler error message, GCC 3.4.6 on FreeBSD
 +      does not mention an undefined symbol.
 +
 +2011-01-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      tests: revert not turning off errexit in instspc-test.sh
 +      * tests/instspc-tests.sh: Turn off errexit while sourcing defs,
 +      the scripts might still not be clean.
 +
 +2011-01-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      tests: work around Tru64 sh -e issues for instspc*.test.
 +      Apparently, Tru64 sh does not like turning off errexit mode,
 +      and gets confused.
 +      * tests/defs: Document 'errexit' cleanliness requirement.
 +      * tests/defs-static.in: Likewise.  Avoid error from command
 +      substitution to abort instspc*.test with Tru64/OSF 5.1 sh.
 +      * tests/instspc-tests.sh: Drop now-unneeded temporary errexit
 +      dropping.  Add strategic '|| Exit' to let tests work on Tru64.
 +
  2011-01-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
        Allow _AM_DEPENDENCIES to be used later in configure.
        do not want to depend on are strictly older than the target.
        Also test with a target out of date wrt. more than one rule.
  
 +2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      Avoid local $_ perl variable, for Perl before 5.9.1.
 +      * lib/Automake/Options.pm (_process_option_list): Do not
 +      lexically localize $_.  Fixes bootstrap on AIX 5.1.
 +      Bug introduced in commit `v1.11-622-gf90a06c'.
 +
  2011-01-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        tests: remove useless requirements from cond36.test
        Since we are at it, add a trailing `:' command.
  
  2011-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      tests: avoid failing command substitution in errexit mode.
 +      * tests/vartypo2.test, tests/vartypos.test: Rewrite to not use
 +      a command substitution with a nonzero exit status, that causes
 +      IRIX and Tru64/OSF sh to fail the whole test.
 +
 +2011-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
            Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        parallel-tests: work around Tru64/OSF 5.1 sh read bugs.
  
  2011-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
 -      * NEWS, README: Update copyright years.
 -
 +      * NEWS, README: Update copyright years.
 +
 +2011-01-15  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: hard error in case of internal failures or signal caught
 +      * tests/defs: Exit with status 99 (hard error) rather than
 +      1 (failure) on unexpected/internal errors, or when a signal
 +      is caught by the client script.
 +
 +      Tests defs: don't let useless variables leak in test scripts.
 +      * tests/defs ($priv_check_temp, $overwrite_status, $ro_dir_temp,
 +      $create_status, $r2h, $libtool_found, $gettext_found, $aclocaldir,
 +      $extra_includes): Unset once they've served their purpose.
 +
 +2011-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
        Fix parallel-tests.test failure with HP-UX make.
        * tests/parallel-tests.test: Sleep inside inner tests, so logs
        are newer than logs of tests they depend on, for HP-UX make.
        to build it.
        Found by NixOS Hydra, reported by Ralf Wildenhues.
  
 +2011-01-15  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Update docs w.r.t. warning and strictness options.
 +      * doc/automake.texi (Strictness): Document that some warnings are
 +      turned off by default in `foreign' strictness.
 +      (Options): Divide into new sections "Options generalities" and
 +      "List of Automake options".  Fix typo (colon instead of full
 +      stop).  Document option precedence (AUTOMAKE_OPTIONS wins over
 +      AM_INIT_AUTOMAKE which wins over command line).  Also document
 +      interactions between options specifying strictness and those
 +      specifying warnings.
 +
 +      More tests on warnings/strictness precedence.
 +      * tests/warning-groups-win-over-strictness.test: New test, similar
 +      to `warnings-win-over-strictness.test', but checking the explicit
 +      catch-all warning flags (like `-Wall' and `-Wnone').
 +      * tests/Makefile.am (TESTS): Update.
 +
 +      Update NEWS about the warnings-over-strictness precedence.
 +      * NEWS: Automake explicit warning levels always take precedence
 +      over the implicit warning levels implied by Automake strictness.
 +
 +      For PR automake/547:
 +      Warnings win over strictness in AUTOMAKE_OPTIONS.
 +      Ensure that, for what concerns the options specified in
 +      AUTOMAKE_OPTIONS, explicitly-defined warnings always take
 +      precedence over implicit strictness-implied warnings.
 +      This finally fixes Automake bug#7669 a.k.a. PR/547.
 +      * automake.in (handle_options): Call 'process_option_list'
 +      only once per set of options.
 +      * lib/Automake/Options.pm (process_global_option_list,
 +      process_option_list): Add sanity checks.
 +      ($_options_processed, $_global_options_processed): New
 +      internal variables, used by the sanity checks above.
 +      * tests/warnings-win-over-strictness.test: Extend.
 +
 +      For PR automake/547:
 +      Change signature of 'Automake::Options::_process_option_list()'.
 +      This only modifies internal details in the automake implementation,
 +      bearing no externally visible effect, but preparing the way for the
 +      final fix of Automake bug#7669 a.k.a. PR/547.
 +      * lib/Automake/Options.pm (_process_option_list): Accept as
 +      arguments a list of hash references with keys 'option' and 'where',
 +      where 'option' is an option as might occur in AUTOMAKE_OPTIONS or
 +      AM_INIT_AUTOMAKE, and 'where' is the location where it occurred.
 +      (process_option_list, process_global_option_list): Updated.
 +      * automake.in (handle_options, scan_autoconf_traces): Update.
 +
 +      Add more tests about AUTOMAKE_OPTIONS.
 +      In view of soon-to-follow refactorings (still in the pursuit of a
 +      fix for Automake bug#7669 a.k.a. PR/547), add some more tests on
 +      AUTOMAKE_OPTIONS support, to prevent obvious regressions.
 +      * tests/amopts-variable-expansion.test: New test.
 +      * tests/amopts-location.test: Likewise.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +      For PR automake/547:
 +      Warnings win over strictness in AM_INIT_AUTOMAKE.
 +      This change ensures that, for what concerns the options specified
 +      in AM_INIT_AUTOMAKE,  explicitly-defined warnings always take
 +      precedence over implicit strictness-implied warnings.  Related to
 +      Automake bug#7669 a.k.a. PR/547.
 +      * lib/Automake/Options.pm (_process_option_list): Parse explicit
 +      warnings only after the strictness level has been set.  Fix POD
 +      documentation.
 +      * tests/warnings-win-over-strictness.test: Extend.
 +
 +      For PR automake/547:
 +      Warnings win over strictness on command line.
 +      Ensure that, on the command line at least, explicitly defined
 +      warnings always take precedence over implicit strictness-implied
 +      warnings.  Related to Automake bug#7669 a.k.a. PR/547.
 +      * automake.in (parse_arguments): Parse warnings only after the
 +      strictness level has been processed.
 +      * tests/gnuwarn.test: Update, plus miscellaneous improvements.
 +      * tests/warnings-win-over-strictness.test: New test.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +      More tests on warnings and strictness.
 +      * tests/warnings-strictness-interactions.test: New test.
 +      * tests/warnings-unknown.test: Likewise.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +      New test on silent-rules mode and portability warnings.
 +      * tests/silent-nowarn.test: New test.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +      Add new tests on strictness and warnings precedence and overriding.
 +      * tests/strictness-override.test: New test.
 +      * tests/strictness-precedence.test: New test.
 +      * tests/warnings-override.test: New test.
 +      * tests/warnings-precedence.test: New test.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2011-01-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      Fix remake rule-induced test failures with HP-UX make.
 +      * tests/remake1a.test: Require GNU make.
 +
 +2011-01-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      Fix remake rule-induced test failures with HP-UX make.
 +      * tests/colon6.test: Update timestamp of subdir Makefile, so we
 +      do not spuriously invoke the nonexistent toplevel am--refresh
 +      rule.
 +
 +      tests: fix typos in colon6.test
 +      * tests/colon6.test: Fix typos.
 +
 +2011-01-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +          Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: explain MSYS setup failure issue, improve test.
 +      * tests/defs: Add comment and failure message, improve fail
 +      logic.
 +
 +2011-01-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      Fix libobj2.test failure with non-GNU make: define $(AR).
 +      * tests/libobj2.test: Ensure $(AR) is suitably defined.
 +
 +2011-01-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      tests: avoid spurious failures due to fork failure in test setup
 +      * tests/defs: Ensure $me is always nonempty, to avoid spurious
 +      failures on MinGW/MSYS in case the preceding sed command could
 +      not be spawned.
 +
 +      Avoid configure warnings from wait about reused PIDs.
 +      * m4/sanity.m4 (AM_SANITY_CHECK): Hide wait stderr output.
 +      Fixes spurious failure of depcomp2.test.
 +
  2011-01-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
        Avoid testsuite failures due to Autoconf Fortran change.
  
  2011-01-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 +      tests: do not force yacc-requiring tests to use bison
 +      * tests/defs.in: New required entry 'yacc'.  Remove old
 +      required entry 'bison'.
 +      * tests/cond35.test ($required): Require yacc, not bison.
 +      * tests/cond36.test: Likewise.
 +      * tests/pr204.test: Likewise.
 +      * tests/silent-many-gcc.test: Likewise.
 +      * tests/silent-many-generic.test: Likewise.
 +      * tests/silent-yacc-gcc.test: Likewise.
 +      * tests/silent-yacc-generic.test: Likewise.
 +      * tests/subpkg.test: Likewise.
 +      * tests/suffix10.test: Likewise.
 +      * tests/yacc-basic.test: Likewise.
 +      * tests/yacc-clean.test: Likewise.
 +      * tests/yacc-d-basic.test: Likewise.
 +      * tests/yacc-d-vpath.test: Likewise.
 +      * tests/yacc-dist-nobuild.test: Likewise.
 +      * tests/yacc-nodist.test: Likewise.
 +      * tests/yacc4.test: Likewise.
 +      * tests/yacc6.test: Likewise.
 +      * tests/yacc7.test: Likewise.
 +      * tests/yacc8.test: Likewise.
 +      * tests/yaccdry.test: Likewise.
 +      * tests/yaccvpath.test: Likewise.
 +
 +2011-01-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: more consistent checks about invalid options
 +      * tests/aclocal.test: Grepping of automake stderr for messages
 +      reporting invalid options made stricter.
 +      * tests/no-outdir-option.test: Likewise.  Also, create a dummy
 +      `Makefile.am', to ensure that the automake failures are really
 +      caused only by unrecognized options.
 +      * tests/automake.test: Added trailing `:' command.  Removed
 +      redundant checks on `--help' and `--version' option (already
 +      performed in the test `help*.test').
 +
 +2011-01-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: enable 'errexit' shell flag by default.
 +      * tests/defs: Enable `errexit' shell flag (near the end).
 +      Removed redundant comment about the enabling of shell traces.
 +      * tests/README (Writing test cases): Update, and use nicer
 +      formatting in a couple of places.
 +      * All tests: Adjusted by removing now-redundant calls to
 +      'set -e'.
 +
 +2011-01-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
        tests: work around a texi+cygnus bug causing a spurious XFAIL
        * tests/txinfo5b.test: New test, like txinfo5.test but calling
        automake with the `-Wno-override' option to work around a bug
        Fix another typo in Rule.pm comment.
        * lib/Automake/Rule.pm: Fix typo.
  
 +2011-01-09  Peter Rosin  <peda@lysator.liu.se>
 +
 +      Fix another typo in Rule.pm comment.
 +      * lib/Automake/Rule.pm: Fix typo.
 +
  2011-01-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 +      tests: texinfo unrecognized extensions
 +      * tests/txinfo-unrecognized-extension.test: New test.
 +      * tests/Makefile.am (TESTS): Update.
 +
        Improve, extend and tweak tests on Texinfo support.
        * tests/instdir-texi.test: Add a call to `ls -l' after that to
        `make', for debugging.  When looking for required tools, do not
        * tests/vtexi4.test: Likewise.
        * tests/Makefile.am (TESTS): Updated.
  
 -2011-01-09  Peter Rosin  <peda@lysator.liu.se>
 +2011-01-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 -      Fix another typo in Rule.pm comment.
 -      * lib/Automake/Rule.pm: Fix typo.
 +      tests: fix spurious failure in 'tests/yflags-conditional.test'
 +      * tests/yflags-conditional.test: Filter out message "warnings are
 +      treated as errors" from automake stderr, to avoid a false positive
 +      when grepping for extraneous warning messages.
 +
 +2011-01-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      yacc: warn about conditional content in *YFLAGS variables
 +      This change fixes automake bug#7804.
 +      * automake.in (lang_yacc_target_hook): Warn if any of the relevant
 +      *YFLAGS variables has conditional contents (not only a conditional
 +      definition).  Related refactoring.
 +      * NEWS: Updated.
 +      * tests/yflags-conditional.test: Updated and extended.
 +      * tests/yflags-conditional-force.test: New test.
 +      * tests/Makefile.am (TESTS): Updated.
 +
 +2011-01-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      yacc: support variable expansions in *YFLAGS definition.
 +      This change fixes automake bug#7800.
 +      * automake.in (lang_yacc_target_hook): Use 'value_as_list_recursive'
 +      instead of 'variable_value' to get the value of *YFLAGS variables.
 +      Related changes.
 +      ($DASH_D_PATTERN): Removed.
 +      * tests/Makefile.am (XFAIL_TESTS): Remove yflags-var-expand.test.
 +      * tests/yacc-clean.test: Remove workaround for now-fixed bug.
 +      * NEWS: Update.
 +
 +2011-01-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      yacc: more tests on *YFLAGS support
 +      * tests/yflags-var-expand.test: New test, still xfailing.  It
 +      exposes automake bug#7800 -- "automake fails to honor `-d' in
 +      AM_YFLAGS when variable expansions are involved".
 +      * tests/yflags-d-false-positive.test: New test, checking that
 +      automake do not spuriously see `-d' in *YFLAGS when that isn't
 +      really there.
 +      * tests/yflags-force-override.test: New test, checking that
 +      automake can cope with definition of the YFLAGS variable in
 +      Makefile.am (even if that is an extremely bad practice, as that
 +      variable is user-reserved).
 +      * tests/yflags-cmdline-override.test: New test, checking that
 +      automake can cope with user-redefinition of YFLAGS at configure
 +      time and/or at make time.
 +      * tests/yflags-conditional.test: New test, checks that automake
 +      warns on conditionally-defined *YFLAGS variables.
 +      * tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
 +
 +2011-01-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      yacc: extend and improve tests
 +      * tests/yacc-basic.test: Also check that the intermediate C file
 +      is mentioned in the generated Makefile.in, and that it is created
 +      by the first make invocation.
 +      * tests/yacc3.test: Test removed, superseded by ...
 +      * tests/yacc-d-basic.test: ... this new test.
 +      * tests/yacc2.test: Add reference to that new test in the heading
 +      comments.
 +      * tests/yacc-d-vpath.test: New test.
 +      * tests/yaccvpath.test: Updated heading comments.  Do not require
 +      gcc anymore, as any working C compiler should be enough.  Remove
 +      redundant comments.
 +      * tests/yacc-nodist.test: New test.
 +      * tests/yacc-dist-nobuild.test: New test.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2010-12-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Extend, fix and improve tests on Lex and Yacc support.
 +      * tests/lexcpp.test: New test script, on support for Lex + C++.
 +      * tests/lexvpath.test: New test script, test build and rebuild
 +      rules for lexers in VPATH setup.
 +      * tests/yacc-basic.test: New test script, run simple "semantic"
 +      checks on basic Yacc support (similarly to what lex3.test does
 +      for Lex support).
 +      * tests/lex.test: Don't create useless dummy source file joe.l.
 +      Remove extra blank lines.
 +      * tests/lex4.test: Add trailing `:' command.  Do not create dummy
 +      useless lex source file.
 +      * tests/lex2.test: Likewise.  Call automake with the `-a' option,
 +      so that it doesn't fail for the absence of `ylwrap' script.  Make
 +      grepping of automake stderr stricter.
 +      * tests/yacc7.test: Add trailing `:' command.  Enable `errexit'
 +      shell flag earlier (just after having sourced ./defs).
 +      * tests/yacc4.test: Likewise.  Also ...
 +      (configure.in): Use pre-populated skeleton set up by ./defs,
 +      instead of writing one from scratch.
 +      Other minor cosmetic changes.
 +      * tests/yacc5.test: Likewise.
 +      * tests/yaccvpath.test: Likewise. Also ...
 +      ($distdir): New variable.
 +      Use it throughout.
 +      * tests/lex5.test: Likewise.
 +      * tests/lex3.test: Likewise.  Check the distdir, rather than
 +      grepping the distribution tarball.  Extend the test on the
 +      created binary, and be sure to avoid hangs.  Add some comments.
 +      * tests/yacc.test: Use stricter grepping.  Add trailing `:'.
 +      * tests/yacc6.test: Likewise.
 +      * tests/yacc3.test: Likewise.  Do not create the unused file
 +      `Makefile.sed'.  Remove useless rules from Makefile.am.  Other
 +      minor cosmetic changes.
 +      * tests/yacc2.test: Make grepping of generated `Makefile.in' and
 +      of automake error messages stricter.  Do not redirect output of
 +      grep to /dev/null.  Move call to aclocal earlier.  Reduce the
 +      number of empty blank lines.  Fix a typo in comments.
 +      * tests/yacc8.test: Fixed bugs that reduced the completeness of
 +      the tests.  Added trailing `:' command.
 +      (configure.in): Use pre-populated skeleton set up by ./defs,
 +      instead of writing one from scratch.
 +      * tests/yaccpp.test: Test also extensions `.y++', `.ypp', and
 +      `.yxx', rather than only `.yy'.
 +      * tests/Makefile.am (TESTS): Update.
  
  2011-01-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        * tests/cond14.test: Likewise.
        * tests/fort4.test: Likewise.
        * tests/fort5.test: Likewise.
 +      * tests/libobj17.test: Likewise.
        * tests/suffix7.test: Likewise.
        * tests/vtexi2.test: Likewise.
  
        manual for how to convert directory values into macros.
        (Optional): Fix grammar nit.
  
 +2011-01-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      yacc: "make clean" removes .c and .h files from non-distributed .y
 +      Previously, while automake did *not* distribute C source and header
 +      files derived from non-distributed Yacc sources, it still caused
 +      them to be removed only by "make maintainer-clean" only, and not by
 +      simply "make clean" or "make distclean".
 +      This caused "make distcheck" to fail, unless the developer put
 +      those generated .c and .h files in CLEANFILES or in DISTCLEANFILES
 +      by hand.
 +      This change fixes this issue, by making non-distributed `.c' and
 +      `.h' files generated by non-distributed Yacc sources cleaned by
 +      "make clean".
 +      * tests/automake.in (lang_yacc_target_hook): Make C source and
 +      header files derived from non-distributed Yacc files cleaned by
 +      "make clean", not only by "make maintainer-clean".
 +      * tests/yacc-clean.test: New test.
 +      * tests/Makefile.am (TESTS): Update.
 +      * NEWS: Update.
 +
  2011-01-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        * NEWS: Fix typo (forgotten word).
        be used to work around automake checks on invalid primary/directory
        couples (such as `lib_PROGRAMS' or `doc_LIBRARIES').
  
 +2010-01-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Tests: normalize use of the 'errexit' shell flag.
 +      * tests/maken3.test (check_targets): Remove redundant call to
 +      'set -e'.
 +      * tests/maken4.test: Likewise.
 +      * tests/ansi5.test: Call 'set -e' just after './defs' has been
 +      sourced.
 +      * tests/ansi6.test: Likewise.
 +      * tests/ansi7.test: Likewise.
 +      * tests/cond16.test: Likewise.
 +      * tests/cond17.test: Likewise.
 +      * tests/cond18.test: Likewise.
 +      * tests/cond19.test: Likewise.
 +      * tests/cond20.test: Likewise.
 +      * tests/cond21.test: Likewise.
 +      * tests/instdat2.test: Likewise.
 +      * tests/instdir-texi.test: Likewise.
 +      * tests/parallel-tests3.test: Likewise.
 +      * tests/remake1a.test: Likewise.
 +      * tests/ccnoco.test: Likewise, and add trailing `:' command.
 +      * tests/comment4.test: Likewise.
 +      * tests/gcj4.test: Likewise.
 +      * tests/nodist2.test: Likewise.
 +      * tests/nodist3.test: Enable 'errexit' shell flag (this should
 +      have been done in commit v1.11-248-g317e17b, but the relevant
 +      hunk has been forgotten somehow).
 +      * tests/output.test: Likewise.
 +      * tests/gnits2.test: Likewise, and display captured stderr to
 +      script's stderr, not to script's stdout.
 +      * tests/gnits3.test: Likewise.  Also, prefer 'cat' over 'echo'
 +      to append to Makefile.am, and really check that the exit status
 +      of "make installcheck" indicates failure.
 +
  2011-01-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
        Sync auxiliary files from upstream.
        * lib/config.guess, lib/config.sub, lib/texinfo.tex:
        Sync from upstream.
  
 +      Avoid caching bug in cygnus mode test.
 +      * tests/cygnus-requires-maintainer-mode.test: Remove
 +      autom4te.cache directory before rerunning aclocal, to
 +      remove trace caches.
 +
        Fix maintainer-check regression.
        * tests/subobj11a.test: Pass DISTCHECK_CONFIGURE_FLAGS in the
        environment.
        * automake.in (gen_copyright, version): Likewise.
        * doc/automake.texi: Likewise.
  
 +2010-12-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      * NEWS: Add missing blank line between two entries.
 +
 +2010-12-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Improve and extend tests `suffix*.test'.
 +      * tests/suffix.test: Check that suffix rules for C compilation are
 +      only included once.  Try also with a static library.
 +      * tests/suffix2.test: Add a new grep to help potential debugging.
 +      Do not run automake with the `--add-missing' options, since we
 +      already create all the needed auxiliary files.  Try also *without*
 +      the `no-dependencies' automake option.
 +      * tests/suffix4.test: Make grepping of Makefile.in stricter.
 +      * tests/suffix3.test: Rewritten to run also autoconf, ./configure
 +      and make.
 +      * tests/suffix5.test: Likewise.
 +      * tests/suffix6.test: Fix botched recipe indentation (eight spaces
 +      were used instead of a tabulation character).  Extend to check
 +      that `.obj' is handled like `.$(OBJEXT)' (as is done for `.o').
 +      Improved parsing & grepping of generated Makefile.in.  Other minor
 +      fixes and improvements.
 +      * tests/suffix10.test: Move some checks in Makefile.am.  Also run
 +      "make all".
 +      * tests/suffix12.test: Likewise, and account for VPATH issues in
 +      weaker make implementations.
 +      * tests/suffix11.test: Likewise.  Also, run "make distcheck", for
 +      completeness, and related changes.
 +      * tests/suffix8.test: Likewise.  Also, do not put `gcc' anymore
 +      in $required.
 +      * tests/suffix13.test: Do not use the `--force-missing' automake
 +      option unnecessarily.
 +      * tests/suffix6b.test: New test, semantic sister of `suffix6.test'.
 +      * tests/suffix6c.test: Likewise.
 +      * tests/Makefile.am (TESTS): Updated.
 +
  2010-12-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
            Stefano Lattarini  <stefano.lattarini@gmail.com>
  
  
  2010-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 +      Add some tests on 'cygnus' mode.
 +      * tests/clean2.test: Extend.
 +      * tests/cygnus-check-without-all.test: New test.
 +      * tests/cygnus-dependency-tracking.test: Likewise.
 +      * tests/cygnus-distclean.test: Likewise.
 +      * tests/cygnus-imply-foreign.test: Likewise.
 +      * tests/cygnus-no-dist.test: Likewise.
 +      * tests/cygnus-no-installinfo.test: Likewise.
 +      * tests/cygnus-requires-maintainer-mode.test: Likewise.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2010-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Fix parallel testsuite run with Zsh.
 +      This change deals with a Zsh incompatibility in the handling
 +      of the special shell variable `$0' in sourced files; this
 +      incompatibility used to cause utter breakage when the
 +      Automake testsuite was run in parallel mode with Zsh as
 +      the $(TEST_LOG_COMPILER).
 +      For more information, please refer to the thread "Fix parallel
 +      testsuite run with zsh" on automake-patches, dated 2010-12-22:
 +       <http://lists.gnu.org/archive/html/automake-patches/2010-12/msg00135.html>
 +      This change works around the problems described above for Zsh 4.3
 +      or later, and offers better error messages (instead of random
 +      failures) for earlier Zsh version.
 +      * tests/README (Supported shells): When describing the manual
 +      workaround about the Zsh incompatibility in the handling of `$0',
 +      tell that it is now needed only with Zsh versions preceding 4.3.
 +      Done also some minor rewordings.
 +      * tests/defs-static.in ($argv0): New variable, offers a workaround
 +      for the Zsh incompatibility in the handling of `$0'.
 +      Abort if that variable cannot be correctly set (can happen only
 +      in older Zsh version).
 +      * tests/defs ($me): Define using `$argv0', not `$0'.
 +
 +2010-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Tests defs: keep track of original $AUTOMAKE and $ACLOCAL values.
 +      This is especially useful for tests which might want to run
 +      automake and aclocal without additional flags and warnings.
 +      * tests/defs-static.in ($original_ACLOCAL): New variable.
 +      ($original_AUTOMAKE): Likewise.
 +      * tests/help.test: Use them.
 +      * tests/help2.test: Likewise.
 +      * tests/help3.test: Likewise.
 +      * tests/help4.test: Likewise.
 +      From a suggestion by Ralf Wildenhues.
 +
 +2010-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
        distlinksbrk.test: Work around botched "make -k".
        * tests/distlinksbrk.test: Run "make" multiple times and grep
        its output each time for a single error message, rather than
  
  2010-12-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 +      Minor improvements to test 'amopts.test'.
 +      * tests/amopts.test: Remove botched comment.  Make grepping of
 +      automake stderr slighty stricter.  Add trailing `:' command.
 +
 +2010-12-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      backcompat6.test: avoid comments inside recipe commands.
 +      * tests/backcompat6.test: Remove shell comments from makefile rule
 +      commands, as they are not portable to (at least) Tru64 make.
 +
 +2010-12-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      man8.test: avoid comments inside recipe commands.
 +      * tests/man8.test: Remove shell comments from makefile rule
 +      commands, as they are not portable to (at least) Tru64 make.
 +
 +2010-12-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
        Fix sed-related buglet in test "subdir5.test"
        * tests/subdir5.test: Always terminate text passed to the
        `i' sed command with a newline, to work around limitations
        in e.g. older OpenBSD sed.
  
 +2010-12-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Fix spurious failures in tests on AC_CONFIG_AUX_DIR.
 +      * tests/auxdir7.test: Do not try to needlessly overwrite the files
 +      `install-sh' and `missing'.  This avoid spurious failures in "make
 +      distcheck", when those files might be copied as read-only from the
 +      `lib' directory.
 +      * tests/auxdir8.test: Likewise.
 +
 +2010-12-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Make test 'posixsubst-script' portable to MinGW/MSYS.
 +      * tests/posixsubst-script.test: Ensure that the generated dummy
 +      scripts really start with a shebang line, to work around a
 +      limitation of 'test -x' on MinGW/MSYS.
 +      Reported by Ralf Wildenhues.
 +
 +      Improve comments in tests `posixsubst*.test'.
 +      * tests/posixsubst-data.test: Improve comment explaining why we
 +      try also empty match suffix.
 +      * tests/posixsubst-extradist.test: Likewise.
 +      * tests/posixsubst-ldadd.test: Likewise.
 +      * tests/posixsubst-libraries.test: Likewise.
 +      * tests/posixsubst-ltlibraries.test: Likewise.
 +      * tests/posixsubst-programs.test: Likewise.
 +      * tests/posixsubst-scripts.test: Likewise.
 +      * tests/posixsubst-sources.test: Likewise.
 +      * tests/posixsubst-tests.test: Likewise.
 +      Suggested by Ralf Wildenhues.
 +
  2010-12-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        docs: fix blunder in example about python extension modules
        not `quaternion_SOURCES', to declare the sources of python
        extension module `quaternion.la'.
  
 -2010-12-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +2010-12-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      docs: list LTLIBRARIES among Automake primaries
 +      * doc/automake.texi (Uniform): List `LTLIBRARIES' among
 +      the Automake primaries.
 +
 +2010-12-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +          Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      Tests defs: requirement 'xsi-shell' must be synced with libtool.
 +      * tests/defs (xsi-shell): Add comment telling to keep the
 +      XSI-conformance checks in sync with libtool.
 +
 +2010-12-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Minor cleanups in canon7.test.
 +      * tests/canon7.test (_foo_bar_SOURCES): Remove libs.c.
 +      (configure.in): Remove AC_PROG_CXX.
 +
 +2010-12-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      Avoid false positive in sc_tests_plain_make maintainer-check.
 +      * Makefile.am (sc_tests_plain_make): Ensure to only match full
 +      `make' words.  Avoid false positive with remake11.test.
 +
 +2010-12-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      Fix canon7.test failure.
 +      * tests/canon7.test (_foo_bar_SOURCES): Add foobar.c.
 +      (lib.h, libd.c, libs.c): Use const for constant strings.
 +
 +2010-12-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      Fix typos in test comments.
 +      * tests/posixsubst-data.test, tests/posixsubst-extradist.test,
 +      tests/posixsubst-ldadd.test, tests/posixsubst-libraries.test,
 +      tests/posixsubst-ltlibraries.test, tests/posixsubst-programs.test,
 +      tests/posixsubst-scripts.test, tests/posixsubst-sources.test,
 +      tests/posixsubst-tests.test: Fix typos.
  
 -      docs: list LTLIBRARIES among Automake primaries
 -      * doc/automake.texi (Uniform): List `LTLIBRARIES' among
 -      the Automake primaries.
 +2010-12-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      More uses of AS_HELP_STRING in automake macros.
 +      * m4/depend.m4 (AM_DEP_TRACK): Use `AS_HELP_STRING' to format
 +      the help message added to the generated configure.
 +      * m4/dmalloc.m4 (AM_WITH_DMALLOC): Likewise.
 +      * m4/lispdir.m4 (AM_PATH_LISPDIR): Likewise.
 +      * m4/maintainer.m4 (AM_MAINTAINER_MODE): Likewise.
 +      * m4/multi.m4 (AM_ENABLE_MULTILIB): Likewise.
 +      Also, bumped all serial numbers of the modified m4 files.
  
  2010-12-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        * tests/help-init.test: Grepping of configure help screen
        tightened.
  
 +2010-12-15  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Extended tests on AC_CONFIG_AUX_DIR.
 +      * tests/auxdir.test: Enable `errexit' shell flag.  Prefer `$me'
 +      over hard-coded test name.  Use proper m4 quoting.  Add trailing
 +      `:' command.
 +      * tests/auxdir2.test: Likewise.  Try to call automake also with
 +      the `-a' option, so that it will not fail for spurious reasons.
 +      * tests/auxdir3.test: Add an explanatory comment and a trailing
 +      `:' command.
 +      * tests/auxdir4.test: Prefer `$me' over hard-coded test name.
 +      Make grepping of automake stderr slightly stricter.  Also, now
 +      this test just checks about Automake's reaction to unportable
 +      auxiliary directory names (and it has been extended in this
 +      respect).  Moved the checks about non-existent auxiliary
 +      directories to ...
 +      * tests/auxdir5.test: ... this new test.
 +      * tests/auxdir6.test: New test.
 +      * tests/auxdir7.test: Likewise.
 +      * tests/auxdir8.test: Likewise.
 +      * tests/auxdir9.test: Likewise.
 +      * tests/Makefile.am (TESTS): Updated.
 +
 +2010-12-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Tests: extend checks on remake rules.
 +      This adds proper semantical tests (i.e. run make to check the
 +      rebuild rules are correctly triggered) in addition to tentative
 +      grepping of the generated Makefile.in(s).
 +      * tests/remake.test: Enable `errexit' shell flag, and related
 +      changes.  Modernize `configure.in'.  Add trailing `:' command.
 +      Improve heading comments, and add a reference to new sister test
 +      remake1a.test.
 +      * tests/remake3.test: Likewise (but with sister test being
 +      remake3a.test).
 +      * tests/remake2.test: Improve heading comments.  Enable `errexit'
 +      shell flag, and related changes.  Modernize `configure.in'.  Make
 +      grepping of `Makefile.in' slightly stricter.  Add trailing `:'
 +      command.
 +      * tests/remake5.test: Also run the `distcheck' target.  Add
 +      trailing `:' command.  Use proper m4 quoting in configure.in.
 +      * tests/remake4.test: Prefer `$me' over hard-coded test name.
 +      * tests/remake7.test: Use the `configure.in' stub created by
 +      ./defs, rather than writing it from scratch.
 +      * tests/remake6.test: Likewise.  Also, add trailing `:' command,
 +      and ensure verbose printing of captured make output.
 +      * tests/remake1a.test: New test, sister of remake.test.
 +      * tests/remake3a.test: New test, sister of remake3.test.
 +      * tests/remake8a.test: New test.
 +      * tests/remake8b.test: Likewise.
 +      * tests/remake9a.test: Likewise.
 +      * tests/remake9b.test: Likewise.
 +      * tests/remake9c.test: Likewise.
 +      * tests/remake9d.test: Likewise.
 +      * tests/remake10a.test: Likewise.
 +      * tests/remake10b.test: Likewise.
 +      * tests/remake10c.test: Likewise.
 +      * tests/remake11.test: Likewise.
 +      * tests/remake12.test: Likewise.
 +      * tests/Makefile.am (TESTS): Updated.
 +
 +2010-12-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Improve and extend tests on canonicalization.
 +      * tests/canon-name.test: Add trailing `:' command.  When writing
 +      configure.in, prefer to use $me instead of hard-coding the test
 +      name.
 +      * tests/canon3.test: Prefer trailing `:' over trailing `Exit 0'.
 +      * tests/canon4.test: Likewise.  Make grepping of Makefile.in
 +      stricter.  Improve heading comment, and add reference to ...
 +      * tests/canon6.test: ... this new test (sister test of the
 +      previous one).
 +      * tests/canon.test: Prefer cat + here-doc over echo to append
 +      text to configure.in.  Extend grepping of Automake stderr.  Add
 +      trailing `:' command.
 +      * tests/canon5.test: Likewise.
 +      * tests/canon7.test: New file, stress test on canonicalization.
 +      * tests/canon8.test: New test, for better coverage (check that
 +      the `@' character is not transliterated in canonicalizations).
 +      * tests/Makefile.am: Updated.
 +
 +2010-12-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Libobj tests: refer to automake bug tracker for limitations.
 +      * tests/libobj15b.test (configure.in): In the comment explaining
 +      why an apparently redundant AC_OUTPUT is indeed needed, refer
 +      to the relevant entry in the Automake bug tracker rather than
 +      describing the bug in detail with a FIXME-style comment.
 +      * tests/libobj15c.test: Likewise.
 +      * tests/libobj20b.test: Likewise.
 +
 +      Libobj tests: do not use `##' automake comments in-line.
 +      * tests/libobj19.test (Makefile.am): Do not use inline `##'
 +      comments in the definition of AUTOMAKE_OPTIONS.
 +      * tests/libobj20c.test: Likewise.
 +      Report by Ralf Wildenhues.
 +
 +2010-12-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Tests defs: more uses of $top_testsrcdir.
 +      * tests/compile6.test: Use `$top_testsrcdir' instead of
 +      `$testsrcdir/..'.
 +
 +2010-11-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Tests required tools: also try `-v' option for GNU compilers.
 +      * tests/defs.in: In the loop on "$required" tools, for gcc
 +      and g++, also run "gcc -v" (resp. "g++ -v"), to get more
 +      information, and for consistency with gcj.
 +
 +2010-11-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +          Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      Tests defs: avoid some useless subshells.
 +      * tests/defs: In the loop on "$required" tools: avoid subshells
 +      where not needed.
 +
 +2010-12-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Extend tests on AC_LIBOBJ and friends.
 +      * tests/aclibobj.test: Removed, superseded by ...
 +      * tests/libobj-basic.test: ... this new test, which runs autoconf,
 +      ./configure and make, to ensure everything really works.
 +      * tests/libobj3.test: Add trailing `:' command.  Escape literal
 +      dot in grep regexp.
 +      * tests/libobj4.test: Enable `errexit' shell flag, and related
 +      changes.  Add trailing `:' command.  Use proper m4 quoting.
 +      * tests/ltlibobjs.test: Likewise.
 +      * tests/libobj5.test: Enable `errexit' shell flag, and related
 +      changes.  Add trailing `:' command.  Make more robust by using
 +      longer filenames to be grepped.
 +      * tests/libobj8.test: Enable `errexit' shell flag, and related
 +      changes.  Add trailing `:' command.  Use the configure.in
 +      stub provided by ./defs, rather than writing it from scratch.
 +      * tests/libobj2.test: Likewise.  Also, add calls to autoconf,
 +      ./configure and make, to ensure everything really works.
 +      * tests/libobj7.test: Likewise, and ensure that at least one
 +      function listed in AC_REPLACE_FUNCTIONS is truly replaced.
 +      * tests/libobj13.test: Make grepping of Automake stderr slightly
 +      stricter.  Add trailing `:' command.
 +      * tests/libobj12.test: Likewise.  Also, prefer "cat + here-doc"
 +      over "echo" to append to Makefile.am, and some cosmetic changes
 +      in spacing.
 +      * tests/libobj14.test: Call `Exit 1' if sourcing of ./defs fails.
 +      Slighty improve m4 quoting.  Add trailing `:' command.
 +      * tests/libobj10.test: Add calls to autoconf, ./configure and
 +      make, to ensure everything really works.  Also, remove tests that
 +      nonexistent source for AC_LIBOBJ cause an Automake failure: this
 +      is already checked by ...
 +      * tests/libobj15a.test: ... this new test.
 +      * tests/libobj15b.test: New test, sister test of libobj15a.test,
 +      checks AC_LIBSOURCE instead of AC_LIBOBJ.
 +      * tests/libobj15c.test: New test, sister test of libobj15a.test,
 +      checks AC_LIBSOURCES instead of AC_LIBOBJ.
 +      * tests/libobj11.test: Removed, superseded by ...
 +      * tests/libobj16a.test: ... this new test.
 +      * tests/libobj16b.test: New test, sister test of libobj16a.test,
 +      but using oldish/deprecated idioms.
 +      * tests/libobj17.test: New test.
 +      * tests/libobj18.test: Likewise.
 +      * tests/libobj19.test: Likewise.
 +      * tests/libobj20a.test: Likewise.
 +      * tests/libobj20b.test: Likewise.
 +      * tests/libobj20c.test: Likewise.
 +      * tests/Makefile.am (TESTS): Updated.
 +
 +2010-12-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Test `$(var:suf=rpl)' expansion in special automake variables.
 +      * tests/posixsubst-data.test: New test.
 +      * tests/posixsubst-extradist.test: Likewise.
 +      * tests/posixsubst-ldadd.test: Likewise.
 +      * tests/posixsubst-libraries.test: Likewise.
 +      * tests/posixsubst-ltlibraries.test: Likewise.
 +      * tests/posixsubst-programs.test: Likewise.
 +      * tests/posixsubst-scripts.test: Likewise.
 +      * tests/posixsubst-sources.test: Likewise.
 +      * tests/posixsubst-tests.test: Likewise.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2010-12-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Make tests `colon*.test' more "semantic".
 +      Prefer running configure and make over grepping the generated
 +      files; this is both more correct and less fragile.
 +      * tests/colon.test: Made more "semantic", as described above.
 +      * tests/colon5.test: Likewise.
 +      * tests/colon6.test: Likewise.
 +      * tests/colon7.test: Likewise.
 +      * tests/colon2.test: Likewise, and improve syncing with sister
 +      test `colon3.test'.
 +      * tests/colon3.test: Likewise (but with the sister test being
 +      `colon2.test' here).
 +
  2010-12-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
        Avoid running installed automake from 'libtool --help'.
        Together with fixed Libtool, this fixes check-coverage to not
        invoke installed automake.
  
 +2010-12-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Separate checks on target overriding into multiple test scripts.
 +      * tests/overrid.test: Deleted, its contents separated into ...
 +      * tests/override-suggest-local.test: ... this new test ...
 +      * tests/override-html.test: ... and this new test ...
 +      * tests/override-conditional-1.test: ... and this new test ...
 +      * tests/override-conditional-2.test: ... and this new test (still
 +      xfailing).
 +      * tests/Makefile.am (TESTS, XFAIL_TESTS): Updated.
 +
 +      Enable `set -e' in more tests (plus some tweakings).
 +      * tests/implicit.test: Enable `errexit' shell flag, and related
 +      changes.  Add trailing `:' command.
 +      * tests/insh2.test: Likewise.
 +      * tests/instman2.test: Likewise.
 +      * tests/interp.test: Likewise.
 +      * tests/interp2.test: Likewise.
 +      * tests/library.test: Likewise.
 +      * tests/mclean.test: Likewise.
 +      * tests/info.test: Enable `errexit' shell flag, and related
 +      changes.  Add trailing `:' command.  Remove useless chaff from
 +      generated Makefile.am.  Add a "FIXME" comment.
 +      * tests/include.test: Enable `errexit' shell flag, and related
 +      changes.  Add trailing `:' command.  Prefer cat + here-doc over
 +      echo to append to configure.in.  Make tests more robust by using
 +      longer and less common names to grep.  Remove an useless call to
 +      echo.  Remove an useless subshell.
 +      * tests/header.test: Enable `errexit' shell flag, and related
 +      changes.  Use proper m4 quoting.  Add excerpts from the original
 +      report of the bug tested for by this script.
 +      * tests/gcj.test: Enable `errexit' shell flag, and related
 +      changes.  Use proper m4 quoting.  Add trailing `:' command.
 +      * tests/gcj3.test: Likewise.
 +      * tests/ldflags.test: Likewise.
 +      * tests/libtool.test: Likewise.
 +      * tests/listval.test: Likewise.
 +      * tests/javaprim.test: Likewise, and prefer cat + here-doc over
 +      echo to append to configure.in.
 +      * tests/javasubst.test: Likewise.
 +      * tests/discorver.test: Enable `errexit' shell flag.  Prefer
 +      trailing `:' over trailing `Exit 0'.
 +      * tests/instdat.test: Enable `errexit' shell flag, and related
 +      changes.  Use proper m4 quoting.  Avoid useless subshell.  Prefer
 +      cat + here-doc over echo to append to configure.in.
 +      * tests/libtool2.test: Enable `errexit' shell flag, and related
 +      changes.  Add trailing `:' command.  Use the configure.in
 +      stub provided by ./defs, rather than writing it from scratch.
 +
 +      Modernize, improve and/or tweak some test scripts.
 +      * tests/maintclean.test: Use proper m4 quoting.  Add trailing `:'
 +      command.
 +      * tests/sinclude.test: Likewise, and add a couple of blank lines,
 +      for clarity.
 +      * tests/make.test: Move setting of `errexit' shell flag earlier in
 +      the script (just after inclusion of ./defs).  Use the configure.in
 +      stub created by ./defs, rather than writing it from scratch.  Some
 +      cosmetic changes in spacing.  Ensure we wait enough time before
 +      touching configure.in to trigger the rebuild rules.
 +      * tests/makej.test: Use `$me' instead of hard-coding the test
 +      name.  Add trailing `:' command.
 +      * tests/version7.test: Likewise.
 +      * tests/space.test: Enable `errexit' shell flag, and related
 +      changes.
 +      * tests/makevars.test: Likewise.  Also, prefer trailing `:' over
 +      trailing `Exit 0', and be more tolerant of white spaces when
 +      grepping Makefile.in.
 +
 +2010-12-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      * tests/silent8.test: Use "|| Exit 1" after ". ./defs".
 +
 +      Enable `set -e' in more tests (plus some tweakings).
 +      * tests/mkinstall.test: Enable `errexit' shell flag, and related
 +      changes.  Add a trailing `:' command, if needed.
 +      * tests/mdate2.test: Likewise.
 +      * tests/objc.test: Likewise.
 +      * tests/noinst.test: Likewise.
 +      * tests/outdir.test: Likewise.
 +      * tests/number.test: Likewise.
 +      * tests/pluseq.test: Likewise.
 +      * tests/req.test: Likewise.
 +      * tests/rulepat.test: Likewise.
 +      * tests/specflg6.test: Likewise.
 +      * tests/spell3.test: Likewise.
 +      * tests/parse.test: Likewise, and ...
 +      (configure.in): Use the stub created by ./defs, rather than
 +      writing it from scratch.  Remove useless calls to AC_PROG_RANLIB
 +      and AC_OUTPUT.
 +      * tests/mdate4.test: Likewise.
 +      * tests/mkinstall.test: Likewise, and ...
 +      (configure.in): ... drop useless call to `AC_OUTPUT'.
 +      * tests/output.test: Enable `errexit' shell flag, and related
 +      changes.  Add a trailing `:' command.
 +      (configure.in): Modernize.
 +      * tests/output2.test: Likewise.
 +      * tests/output3.test: Likewise.
 +      * tests/output4.test: Likewise.
 +      * tests/mdate3.test: Enable `errexit' shell flag, and related
 +      changes.  Prefer `$me' over hard-coded test name.  Do not move
 +      non-existent or useless files in the build auxiliary directory.
 +      * tests/nodistdir.test: Enable `errexit' shell flag, and related
 +      changes.  Prefer trailing `:' over trailing `Exit 0'.
 +      * tests/nodist.test: Likewise.  Also, prefer cat + here-doc over
 +      echo to create input test files, and do not create useless dummy
 +      C source files.
 +      * tests/nodist2.test: Likewise.
 +      * tests/ppf77.test: Enable `errexit' shell flag, with related
 +      changes.  Add a trailing `:' command.  Do not create useless
 +      dummy source files.
 +      * tests/spelling.test: Enable `errexit' shell flag, with related
 +      changes.  Add a trailing `:' command.  Also, grep Automake error
 +      message.
 +      * tests/specflg3.test: Enable `errexit' shell flag, with related
 +      changes.  Avoid unportable use of `-e' option of fgrep.  Prefer
 +      trailing `:' over trailing `Exit 0'.  Remove extra empty lines,
 +      and cosmetic changes to whitespaces.
 +      * tests/obsolete.test: Enable `errexit' shell flag, with related
 +      changes.  Improve verbosity.  Other miscellaneous changes.
 +
 +2010-11-30  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Improve and extend tests on `:=' variable assignments.
 +      * tests/colneq.test: Avoid redundant use of variable assignments
 +      in Makefile.am.  Use command-line automake options instead of
 +      editing AUTOMAKE_OPTIONS in Makefile.am.  Make grepping of the
 +      generated Makefile.in slightly stricter.  Add a trailing `:'
 +      command.
 +      * tests/colneq2.test: Do not create unneeded dummy files.  Run
 +      also autoconf, ./configure and make.  Add trailing `:' command.
 +      * tests/colneq3.test: New test, similar to colneq.test, but
 +      running also autoconf, ./configure and make.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2010-11-26  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Remove long-deprecated options --Werror and --Wno-error.
 +      These options has been deprecated at least since commit
 +      "Release-1-6-1b-35-gc037f20", dated 2002-07-06.
 +      * automake.in (parse_arguments): Do not recognize anymore options
 +      `--Werror' and `--Wno-error' as synonyms of respectively `-Werror'
 +      and `-Wno-error'.
 +      * tests/werror.test: Update: use `-Werror' instead of `--Werror'.
 +      * NEWS: Update.
 +
  2010-11-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        Fix spurious failures in `silent*.test' for $CC != gcc
        * config-ml.in: Add Go support: treat GOC and GOCFLAGS like other
        compiler/flag environment variables.
  
 +2010-11-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      release-stats: account for more generated tests.
 +      * Makefile.am (release-stats): Be sure to take into account all
 +      the generated tests, by grepping the test scripts to decide which
 +      ones of them are automatically generated.
 +
 +2010-11-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Code cleanup after removal of option `--output-directory'.
 +      * automake.in ($output_directory): Remove, it's unconditionally
 +      defined to `.' and used only ...
 +      (generate_makefile): ... in this subroutine, which now has been
 +      edited and simplified accordingly.
 +
 +      Remove obsolete automake option `--output-directory'.
 +      This option has been deprecated since version 1.7 (2002/2003).
 +      * automake.in ($output_directory): Define to `.' unconditionally.
 +      (parse_arguments): Remove handling of equivalent options `-o' and
 +      `--output-directory'.
 +      * tests/outdir.test: Removed.
 +      * tests/no-outdir-option.test: New test.
 +      * tests/Makefile.am (TESTS): Updated.
 +      * NEWS: Updated.
 +
  2010-11-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        Automake::Config: remove extra trailing semicolon.
        `aclocal --help' work with configure.in and acinclude.m4 both
        broken.
  
 +2010-11-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      New test on repeated automake options.
 +      * tests/repeated-options.test: New test, check that automake
 +      does not complain on repeated options, nor generate broken or
 +      incorrect makefiles.
 +      * tests/Makefile.am (TESTS): Updated.
 +
  2010-11-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        Fix spurious failures of silent-rules tests with Sun Fortran.
  
  2010-11-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
 +      backcompat5.test: avoid '##'-style comments inside recipe commands.
 +      * tests/backcompat5.test: Remove double-hash comments
 +      from makefile rule commands, they are not part of the
 +      Automake API.  Fixes testsuite failure with Tru64 make.
 +
        tests: avoid '##'-style comments inside recipe commands.
        * tests/confh.test, tests/confh8.test: Remove
        double-hash comments from makefile rule commands, they
        * tests/color.test, tests/color2.test: Quote variable in case
        pattern, to avoid skipping tests with dash 0.5.5.1.
  
 +2010-11-16  Peter Rosin  <peda@lysator.liu.se>
 +
 +      Skip MSVC oriented tests if the shell is not capable.
 +      * tests/defs: New required entry 'xsi-shell'.
 +      * tests/ar-lib.test, tests/compile3.test, tests/compile6.test:
 +      Require a XSI capable shell.
 +      Reported by Ralf Wildenhues.
 +
 +2010-11-15  Peter Rosin  <peda@lysator.liu.se>
 +
 +      compile: clear the `eat' variable earlier.
 +      * lib/compile: Clear the `eat' variable earlier.
 +      ($scriptversion): Update.
 +      * tests/compile3.test: Prevent regressions.
 +
 +2010-11-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      More stable configure output from sanity check.
 +      * m4/sanity.m4 (AM_SANITY_CHECK): Always print check line
 +      about ensuring newer files, even if we don't actually need
 +      to wait any more.
 +
  2010-11-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
        Rebuild menus in the manual.
        * tests/yaccdry.test: Require bison.
        Found by NixOS Hydra.
  
 +2010-11-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Fix bug in test `backcompat6.test' (MSYS portability).
 +      * tests/backcompat6.test (Makefile.am): Grep the output from the
 +      test program, rather than diffing it, to avoid spurious failures
 +      on MinGW/MSYS due to LF vs. CRLF line endings.
 +      Reported by Ralf Wildenhues.
 +
 +2010-11-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Deprecate obsolete macro AM_WITH_REGEX.
 +      * m4/regex.m4: Document the `AM_WITH_REGEX' macro as obsolete,
 +      and state that it should be removed two years from now.
 +      (AM_WITH_REGEX): Raise an m4-time warning of the "obsolete"
 +      category when this macro is used.
 +      * doc/automake.texi (Public Macros): Move description of
 +      `AM_WITH_REGEX' from here ...
 +      (Obsolete Macros): ... to here, and declare it as obsolete
 +      and "to be removed in a future version".
 +      * tests/regex-obsolete.test: New test.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +2010-11-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Improve and extend tests on man pages support.
 +      * tests/man.test: Enable `errexit' shell flag, and related changes.
 +      Make grepping of generated Makefile.in slightly stricter.
 +      * tests/man3.test:  Add trailing `:' command.
 +      * tests/man5.test: Prefer cat + here-doc over echo to append to
 +      configure.in.
 +      * tests/man2.test: Likewise, and add trailing `:' command.
 +      * tests/man4.test: More thorough and consistent checking of make
 +      error messages.  Place fake `help2man' program in a new `bin'
 +      directory rather than in `.'.  Move the checks using the real
 +      `help2man' program to ...
 +      * tests/man6.test: ... this new test, and extend them.  This test
 +      passes with GNU make and Solaris make, still fails with BSD make.
 +      * tests/man7.test: New test, extracted from old man4.test, which
 +      checks for a bug in maintainer-clean w.r.t. generated manpages.
 +      * tests/man8.test: New test, extracted from old man4.test, which
 +      checks for a bug in distcheck w.r.t. generated manpages.  Passes
 +      with GNU make and Solaris make, still fails with BSD make.
 +
 +2010-11-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Minor improvements and extensions to various tests.
 +      * tests/defun.test: Also run autoconf and grep the generated
 +      configure to make sure that aclocal truly picks up all the
 +      required macros.
 +      * tests/compile_f_c_cxx.test: Prefer trailing `:' over trailing
 +      `Exit 0'.  Do not create useless dummy source files.  Do not set
 +      useless `$(foo_LDADD)' variable in `Makefile.am'.  Do not call
 +      useless macro `AC_F77_LIBRARY_LDFLAGS' in `configure.in'.
 +      * tests/compile_f90_c_cxx.test: Likewise.
 +      * tests/suffix10.test: Slightly stricter grepping of make output.
 +      * tests/compile.test: Add trailing `:' command.
 +      * tests/defun2.test: Likewise.
 +      * tests/vars3.test: Likewise.
 +      * tests/vartar.test: Likewise.
 +      * tests/vars.test: Likewise.  Also, extend test by checking
 +      that the definition of `MY_FLAGS*' variables is preserved in
 +      the generated `Makefile.in'.
 +      * tests/stamph2.test: Prefer trailing `:' over trailing `Exit 0'.
 +      Use proper m4 quoting in `configure.in'.
 +
 +2010-11-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Tests defs: improve messages for skipped tests.
 +      * tests/defs: Give meaningful messages about the reasons of a
 +      test skip; this is especially useful as this file is run without
 +      verbose xtraces on.  Related reorderings in the code and new
 +      comments.
 +
 +2010-11-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Tests defs: move static definitions in a new file `defs-static'.
 +      The new file is meant to be idempotent w.r.t. multiple inclusions.
 +      * tests/defs.in: Removed, its contents split among ...
 +      * tests/defs-static.in: ... this new file ...
 +      * tests/defs: ... and this new file, including the former.
 +      * configure.ac (AC_CONFIG_FILES): Remove `tests/defs', add
 +      `tests/defs-static'.
 +      (AC_CONFIG_LINKS): Add `tests/defs'.
 +      * tests/Makefile.am ($(parallel_tests)): Update.
 +      ($(instspc_tests)): Likewise.
 +      * tests/.gitignore: Update.
 +
 +      Tests defs: $testsbuilddir is now AC_SUBST'ed.
 +      * tests/defs.in ($testsbuilddir): Substitute from @abs_builddir@.
 +      Add sanity check on $testsbuilddir, similar to those on
 +      $testsrcdir and $top_testsrcdir.
 +
 +      Tests defs: do not print message "Running test $0" anymore.
 +      * tests/defs.in: Printing the message "=== Running test $0" at
 +      the beginning of each tests made sense when Automake used the old
 +      test-driver, which sent all the output directly to stdout/stderr.
 +      Now that the parallel test-driver is used, which saves output of
 +      each test in its corresponding log file, that old message is just
 +      useless noise.
 +
 +      Tests defs: rename $curdir -> $testbuilddir
 +      * tests/defs.in: Rename $curdir to $testbuildir, for clarity and
 +      consistency with $testsrcdir and $top_testsrcdir.
 +
 +      Tests defs: prefer "$curdir" over "`pwd`".
 +      * tests/defs.in: We already save the value of `pwd` in $curdir
 +      early in the file, so there no need to recalculate it later, when
 +      the current working directory is not changed.
 +
 +      Tests defs: use `$me' in more error messages.
 +      * tests/defs.in: Also use `$me' in error messages referring to
 +      missing `defs' or `defs.in', since that variable is now defined
 +      before those checks.
 +
 +      Tests defs: do not use `Exit' where plain `exit' suffices.
 +      * tests/defs.in: Use "exit 77" rather than "Exit 77" to skip the
 +      test when required libtool/gettext macros are not found, since
 +      such skips would take place before the exit trap is installed.
 +
 +      Tests defs: improve and extends comments.
 +      * tests/defs.in: Improve and extends some comments, especially in
 +      relation with the changes introduced by the previous reordering.
 +
 +      Tests defs: various reorderings.
 +      * tests/defs.in: Reordered various snippets of code in a
 +      clearer way.
 +
 +2010-11-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Fix bug in test `backcompat4.test' (stale autom4te cache).
 +      * tests/backcompat4.test: Remove stale autom4te cache directory
 +      before re-running aclocal and automake.  Also, since we are at
 +      it, be more verbose in displaying contents of generated files,
 +      to ease debuggability.
 +      Reported by Ralf Wildenhues.
 +
  2010-11-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        Fix a bug in variable concatenation with `+='.
        * tests/Makefile.am (TESTS): Update.
        Reported by Andy Wingo.
  
 +2010-11-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Modernize, improve and/or tweak various test scripts.
 +      * tests/stamph2.test: Improve m4 quoting in `configure.in', and
 +      prefer trailing `:' over trailing `Exit 0'.
 +      * tests/syntax.test: Escape literal dots in grep regexps.
 +      * tests/copy.test: Enable `errexit' shell flag.  Extend test by
 +      checking with `test' utility that the script `install-sh' is
 +      copied, but not symlinked.
 +      * tests/depdist.test: Move setting of `errexit' shell flag earlier
 +      in the script (just after inclusion of ./defs).  Avoid obsoleted
 +      constructs in generated `configure.in'.  Prefer to do our checks
 +      by running configure and make over grepping Makefile.in.
 +      * tests/target-cflags: Move setting of `errexit' shell flag
 +      earlier in the script (just after inclusion of ./defs). Use the
 +      `configure.in' stub created by `./defs', rather than writing it
 +      from scratch.
 +      * tests/target-clash: Do not uselessly run autoconf.
 +      * tests/ctarget1.test: Renamed ...
 +      * tests/cond-basic.test: ... to this.  Use the `configure.in' stub
 +      created by `./defs', rather than writing it from scratch.
 +      Move setting of `errexit' shell flag earlier in the script (just
 +      after inclusion of ./defs).  Other minor cosmetic changes.
 +      * tests/Makefile.am (TESTS): Updated.
 +
 +2010-11-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      New tests on obsoleted usages of automake/autoconf macros (such
 +      as AC_INIT, AM_INIT_AUTOMAKE and AC_OUTPUT).
 +      * tests/backcompat.test: New test script.
 +      * tests/backcompat2.test: Likewise.
 +      * tests/backcompat3.test: Likewise.
 +      * tests/backcompat4.test: Likewise.
 +      * tests/backcompat5.test: Likewise.
 +      * tests/backcompat6.test: Likewise.
 +      * tests/init.test: Extended and improved, esp. by trying more
 +      combinations of calls to AC_INIT and AM_INIT_AUTOMAKE with few
 +      arguments.
 +      * tests/Makefile.am (TESTS): Updated.
 +
  2010-11-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        Fix bug in rules for creating vala vapi/header files.
        New tests.
        * tests/Makefile.am (TESTS): Update.
  
 +2010-11-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Fix potential bug in generated tests `instpc-*.test'.
 +      This bug is due to the changes introduced by the recently-merged
 +      "tests-init" branch.  In that branch, `tests/defs' didn't define
 +      anymore `$srcdir', instead defining directly `$testsrcdir'; but
 +      the generated tests were using `$srcdir', hence the bug.
 +      Luckily, since the Automake parallel test driver automatically
 +      exports `srcdir' to a proper value, that prevented the bug from
 +      manifesting itself.
 +      * tests/Makefile.am ($(instspc_tests)): In the generated test
 +      scripts, use `$testsrcdir', not `$srcdir'.
 +
 +2010-11-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Overhauled and modularized tests in `instspc.test'.
 +      The test `instspc.test' was way too big and fragile.  Its running
 +      time was very long.  It also produced a log that was nearly
 +      unreadable due to its length, making it very difficult to find
 +      out the reason for failures.
 +      Also, it was too much monolithic, with a single (maybe spurious)
 +      failure in a corner case causing the whole test to fail (even if
 +      everything worked as expected in the other 99% of cases).
 +      The present change should solve these problems, by separating
 +      `instspc.test' into many smaller, self-contained, auto-generated
 +      tests.
 +      * tests/instspc.test: Removed.
 +      * tests/instspc-tests.sh: New script, fulfilling a double role:
 +      1. it generates a Makefile.am snippet `tests/instspc-tests.am',
 +      containing the definition of a list of new tests which will take
 +      over the older `instspc.test', and
 +      2. it is sourced by said generated tests with proper parameters
 +      pre-set, to run the "meat" of the checks.
 +      This apparent abuse is indeed required because the test generation
 +      code and test execution code are inevitably intertwined.
 +      * tests/Makefile.am ($(srcdir)/instspc-tests.am): Include this
 +      snippet, which (among the other things) defines ...
 +      (instspc_tests): ... this new macro, containing the list of the
 +      newly generated `instspc*.test' tests, and ...
 +      (instspc_xfail_tests): ... this new macro, containing the list
 +      of the `instspc*.test' tests expected to fail.
 +      ($(instspc_tests)): New rule, generates the `instspc*.test' tests.
 +      ($(instspc_tests:.test=.log)): New rule, registers the dependency
 +      of all `instspc*.test' tests on the `instspc-tests.sh' script.
 +      (TESTS): Add `$(instspc_tests)', remove `instspc.test'.
 +      (XFAIL_TESTS): Add `$(xfail_instspc_tests)'.
 +      (EXTRA_DIST): Distribute instspc-tests.sh.
 +      (MAINTAINERCLEANFILES): Added $(instspc_tests).
 +      Other minor cosmetic changes.
 +      * bootstrap: Generate instspc-tests.am.
 +      * tests/.gitignore: Updated.
 +
  2010-11-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
        Add FAQ entry for bug reporting instructions.
        * doc/automake.texi (Reporting Bugs): New section.
        (Introduction): Refer to it.
  
 +2010-10-07  Peter Rosin  <peda@lysator.liu.se>
 +
 +      depcomp: add new one-pass depmode for MSVC 7 and later.
 +      * lib/depcomp: Add new depmodes 'msvc7' and 'msvc7msys' which
 +      make use of the -showIncludes option added in MSVC 7.
 +      * m4/depend.m4 (_AM_DEPENDENCIES): Handle the new depmodes
 +      similarly to 'msvisualcpp' and 'msvcmsys' as MSVC does not
 +      support the -o option.
 +
  2010-10-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        Add support for newer python versions.
  
  2010-10-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
 +      tests: fix ar-lib.test for echo that interprets backslashes.
 +      * tests/ar-lib.test: Use printf instead of echo.  Avoid test -a.
 +      More robust quoting.
 +
 +2010-10-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      maintainer-check coverage for variables before rules.
 +      * Makefile.am (sc_ensure_testsuite_has_run): Suggest keeping
 +      around the test directories.
 +      (sc_tests_makefile_variable_order): New rule with a heuristic to
 +      catch ordering violations.
 +
        Document and fix expansion of variables before rules.
        * doc/automake.texi (General Operation): Document that variables
        are expanded before rules.
  
  2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
 +      Coverage and minor fixes for variable typo detection.
 +      * automake.in (check_typos): Remove `EXTRA_' prefix when
 +      computing canonical name.
 +      * tests/vartypo2.test, tests/vartypos.test: New tests.
 +      * tests/Makefile.am (TESTS): Update.
 +
 +      Implement EXTRA_maude_DEPENDENCIES for programs and libraries.
 +      * automake.in (handle_programs, handle_libraries)
 +      (handle_ltlibraries): Mark EXTRA_*_DEPENDENCIES as recognized.
 +      * doc/automake.texi (Linking, Program and Library Variables)
 +      (LIBOBJS): Document EXTRA_*_DEPENDENCIES.
 +      * lib/am/library.am (%LIBRARY%): Also depend on
 +      $(EXTRA_%XLIBRARY%_DEPENDENCIES).
 +      * lib/am/ltlibrary.am (%LTLIBRARY%): Also depend on
 +      (%XLTLIBRARY%_DEPENDENCIES).
 +      * lib/am/program.am (%PROGRAM%%EXEEXT%): Also depend on
 +      $(EXTRA_%XPROGRAM%_DEPENDENCIES).
 +      * tests/extradep.test, tests/extradep2.test: New tests.
 +      * tests/Makefile.am (TESTS): Update.
 +      * NEWS: Update.
 +      Suggested by Eric Blake.
 +
 +      tests: avoid running into timing issues due to sanity change.
 +      * tests/acloca10.test, tests/acloca18.test, tests/aclocal9.test:
 +      Insert strategic sleep before aclocal reruns, to ensure files
 +      are newer.
 +      * tests/python11.test: Use --force for repeated autotools runs.
 +      Reports from the NixOS Hydra build daemon via Ludovic Courtès.
 +
 +      Fix timestamp issues by ensuring configure takes at least a second.
 +      * m4/sanity.m4 (AM_SANITY_CHECK): If we didn't sleep here,
 +      start a sleep in the background and wait for it to finish
 +      before creating config.status, hopefully fixing all spurious
 +      testsuite failures involving botched time stamps.
 +      * NEWS: Update.
 +      Reports by Ludovic Courtès, Peter Breitenlohner, and others.
 +
 +2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
        Revert "parallel-tests: avoid command-line length limit issue."
        This reverts commit 24e3b4ee2f8cb9f72dd94a05a893f3d4e88b7835,
        because it re-opened the bug fixed by v1.11-10-g218e678.
        seems to have been removed, substituted by multiple release
        tarballs now).
  
 +2010-09-21  Peter Rosin  <peda@lysator.liu.se>
 +
 +      compile: implement library search to support MSVC static linking
 +      * lib/compile (func_cl_wrapper): Implement library search and
 +      -static option so that the user can select whether to prefer
 +      dll import libraries or static libraries.  This enables MSVC to
 +      link against dlls generated by libtool without requiring libtool
 +      or workarounds such as -lfoo.dll etc.  Makes the tests/static.at
 +      test case in libtool pass.
 +      * tests/compile3.test: Don't trip up if there happens to exist
 +      a "foo" library in the library search path.
 +      * tests/compile6.test: New test, verifying the library search.
 +      * tests/Makefile.am (TESTS): Update.
 +
  2010-09-17  Eric Blake  <eblake@redhat.com>
  
        Avoid triple-space after period.
  
        * HACKING: Hint at old commits with `git describe' output.
  
 +2010-09-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Prefer `$(am__cd)' to plain `cd' in our Makefiles.
 +      * Makefile.am (recheck, dist-hook, git-dist, path-check, fetch)
 +      (release-stats): Use `$(am__cd)' rather than plain `cd'.
 +      * tests/Makefile.am ($(srcdir)/parallel-tests.am): Likewise.
 +
  2010-09-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        Fix regression in test `colon4.test'.
        * tests/pr9.test: Likewise.
        From a suggestion by Ralf Wildenhues.
  
 +2010-09-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Use AS_HELP_STRING in AM_SILENT_RULES.
 +      * m4/silent.m4 (AM_SILENT_RULES): Use `AS_HELP_STRING' to format
 +      help message regarding configure options `--enable-silent-rules'
 +      and `--disable-silent-rules'.  Also throw in a couple of cosmetic
 +      changes in the related `case' statement (indentation, balancing
 +      of parentheses).
 +      * THANKS: Update.
 +      From a report by Jeff A. Daily.
 +
 +2010-09-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
        Make some `confh*.test' tests more "semantic" (plus tweakings).
        * tests/confh.test: Run "autoconf", "configure" and "make check",
        instead of munging/grepping the generated `Makefile.in'.
        * tests/Makefile.am (TESTS): Updated.
        Prompted by a report from Ralf Wildenhues.
  
 +2010-09-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
        Remove useless whitespace padding in XFAIL_TESTS definition.
        * tests/Makefile.am (XFAIL_TESTS): Remove whitespace padding.
  
        Posix 2008 requires make to set errexit.
        * lib/am/check.am: Update comment.
  
 +2010-09-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Tests defs: remove variable $testaclocaldir.
 +      * tests/defs.in ($testaclocaldir): Removed.
 +      * tests/aclocal.test: Use `$top_testsrcdir/m4' directly, not
 +      `$testaclocaldir'.
 +
 +      Tests defs: $srcdir and $top_srcdir renaming.
 +      * tests/defs.in ($srcdir): Remove, define $testsrcdir directly.
 +      * tests/Makefile.am ($(parallel_tests)): Generation of derived
 +      tests updated.
 +
 +      Tests defs: new variable $top_testsrcdir.
 +      * tests/defs.in ($top_testsrcdir): Define unconditionally
 +      to @abs_top_srcdir@.  Use it throughout.
 +      * tests/ar-lib.test: Use `$top_testsrcdir' instead of
 +      `$testsrcdir/..'.
 +      * tests/auxdir.test: Likewise.
 +      * tests/compile.test: Likewise.
 +      * tests/compile2.test: Likewise.
 +      * tests/compile3.test: Likewise.
 +      * tests/compile5.test: Likewise.
 +      * tests/mdate6.test: Likewise.
 +      * tests/mkinst3.test: Likewise.
 +      * tests/multlib.test: Likewise.
 +      * tests/txinfo22.test: Likewise.
 +
 +      Tests defs: $srcdir is unconditionally substituted.
 +      * tests/defs.in ($srcdir): Define unconditionally to @abs_srcdir@.
 +      Remove code for $srcdir normalization, which is now useless.
 +
 +2010-09-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Tests defs: make spacing more consistent.
 +      * tests/defs.in: Make spacing more consistent in indentation.
 +      Especially, indent using only spaces, not tabs.  Also, move
 +      a comment to a better position.
 +
 +      Improve code for requiring libtool and gettext in tests.
 +      * tests/defs.in: Stricter (and more correct) detection of wheter
 +      libtool, libtoolize and/or gettext are in $required.
 +
 +
  2010-08-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        Fix bug in test missing6.test.
        that do not support $LINENO.  Also throw in a couple of cosmetic
        changes.
  
 +2010-09-02  Peter Rosin  <peda@lysator.liu.se>
 +
 +      Make ar-lib support backslashed files in archives.
 +      * lib/ar-lib: If an archive member contains a backslash, make sure
 +      it is escaped when the archive member is extracted.
 +      * tests/ar-lib.test: Test the above.
 +
 +2010-08-31  Peter Rosin  <peda@lysator.liu.se>
 +
 +      Do file name conversion for object files in the compile wrapper.
 +      * lib/compile (func_cl_wrapper): Do file name conversion for object
 +      files (i.e. extensions .obj, .OBJ, .o and .O) if needed.
 +      * tests/compile4.test: Test the above.
 +
  2010-08-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
 +      Speed up removal of auxiliary linker output files for ltlibraries.
 +      * lib/am/ltlib.am (clean-%DIR%LTLIBRARIES): Rewrite using just
 +      one `rm' invocation.
 +      Report by Bob Friesenhahn.
 +
        Improve robustness of mdate-sh script.
        * lib/mdate-sh: Sanitize zsh behavior on startup, to ensure
        $ls_command is word-split properly upon invocation.
        Don't hide the table of contents.
        * doc/automake.texi: Move the table of contents to the beginning.
  
 +2010-08-16  Peter Rosin  <peda@lysator.liu.se>
 +
 +      Optimize compile script on MSYS.
 +      * lib/compile (func_file_conv): Add new argument 'lazy' which
 +      takes an optional list of conversion types where the requested
 +      conversion isn't needed.
 +      (func_cl_wrapper): Take advantage of the above for cases where
 +      MSYS is doing the conversion for us.
 +      Suggested by Ralf Wildenhues.
 +
 +2010-08-16  Peter Rosin  <peda@lysator.liu.se>
 +
 +      Support more C++ file extensions for MSVC in the compile script.
 +      * lib/compile (func_cl_wrapper): MSVC only recognizes the .cpp
 +      file extension as C++, unless it's given a hint. So hint about
 +      .cc, .CC, .cxx, .CXX, c++ and C++. Also do path conversion on
 +      .c, .cpp, .CPP, .lib, .LIB and .Lib files.
 +      * tests/compile3.test: Test the C++ hinting.
 +
 +2010-08-12  Peter Rosin  <peda@lysator.liu.se>
 +
 +      Enable the use of "link -lib" as the wrapped archiver.
 +      * lib/ar-lib: Enable the use of "link -lib" as the wrapped
 +      archiver, as well as allowing some other options to be passed
 +      through to the wrapped archiver.
 +      * tests/ar-lib.test: Test the above.
 +
  2010-08-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        Tweak and/or extend some `acloca*.test' tests.
        changes.  Cosmetic changes to spacing, add trailing `:' command,
        and add a "FIXME" comment.
        * tests/pr266.test: Likewise, and add explicit command line switch
 -      `--enable-dependecy-tracking' to the ./configure call.
 +      `--enable-dependency-tracking' to the ./configure call.
        * tests/pr279.test: Avoid obsolescent constructs in the generated
        `configure.in'; also, use the `configure.in' stub created by
        ./defs, rather than writing it from scratch.  Enable `errexit'
        Minor improvements and fixes in tests `depcomp*.test'.
        * tests/depcomp.test: Do not create useless dummy source files.
        Add a trailing `:' command.
 -      * tests/depcomp2.test: Use `unset' on the CFLAG variable to ensure
 +      * tests/depcomp2.test: Use `unset' on the CFLAGS variable to ensure
        it's not in in the environment, rather than exporting it with an
        empty value.  Do not pass CC=gcc to configure, as that's already
        done in ./defs since we have gcc in $required.  Ensure verbose
        * tests/ar2.test: Likewise, and make grepping of generated
        Makefile.in stricter.
  
 +2010-08-06  Peter Rosin  <peda@lysator.liu.se>
 +
 +      Add new auxiliary 'ar-lib' script, wrapping Microsoft lib.
 +      * lib/ar-lib: New auxiliary script.
 +      * lib/Makefile.am: Add above.
 +      * tests/ar-lib.test: New test.
 +      * tests/Makefile.am: Add above.
 +      * automake.in (@common_files): Distribute the 'ar-lib' script.
 +      * doc/automake.texi (Auxiliary Programs): Mention the new
 +      'ar-lib' script.
 +      (Optional): Mention 'ar-lib' in AC_CONFIG_AUX_DIR.
 +      * NEWS: Update.
 +
 +2010-08-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      Fix shell pattern negation in compile script.
 +      * lib/compile (func_file_conv): Use `!' not `^' for pattern
 +      negation.
 +
  2010-08-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
        Fix maintainer-check failure.
        * tests/cond5.test: Add delay before the first kill attempt to
        cater for problems with MSYS bash.
  
 +2010-08-01  Peter Rosin  <peda@lysator.liu.se>
 +
 +      Wrap some MSVC options in the compile script.
 +      * lib/compile: MSVC supports naming the output file, the option
 +      is just not called -o, so transform -o into the appropriate form
 +      for MSVC. Also wrap some other options while at it (-L, -l, -Wl,
 +      -Xlinker and -I) and convert file names to windows form where
 +      needed for those options to make MSVC more usable in an
 +      autotooled environment.
 +      * doc/automake.texi (Auxiliary Programs): Document the above
 +      extension of the compile script.
 +      * NEWS: Updated.
 +      * tests/defs.in: New required entry 'cl'.
 +      * tests/compile3.test: New test.
 +      * tests/compile4.test: New test.
 +      * tests/compile5.test: New test.
 +      * tests/Makefile.am: Update.
 +
  2010-07-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
        Add example git work flow; discuss merge --log in HACKING.
        * tests/ext.test: Add a comment explaining why an apparently
        useless `if' statement is indeed required.
  
 +2010-06-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
        Add useful comment in test script obsolete.test.
        * tests/obsolete.test: Add a comment explaining why we need
        an indirection in adding $AUTOUPDATE to $required.
        * tests/Makefile.am (TESTS): Use only spaces, not tabs, in the
        definition of this variable.
  
 +      Parallel tests generation: improve comments (tiny change).
 +      * tests/Makefile.am ($(parallel_tests)): Added useful comment to
 +      generated tests.
 +
 +      Tests defs: truly get rid of `$am_defs_included' (unused variable)
 +       * tests/defs.in ($am_defs_included): Remove, its now unused.  It
 +      should have been removed in a previous changeset, but the removal
 +      was done only partially (oversight).
 +
  2010-06-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
        Remove a couple of unneeded conditionals from tests.
        * tests/pluseq9.test: Slightly extended w.r.t. the grepping of
        Automake stderr.  Some unrelated cosmetic changes.
  
 +2010-06-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      cscope.test: ensure verbose printing of captured stderr.
 +      * tests/cscope.test: Print captured stderr before failing.
 +
 +2010-06-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
        Testsuite: ensure verbose printing of captured stderr.
        * tests/acloca18.test: Print captured stderr before either failing
        or grepping it.  Be sure to send captured stderr to stderr, not to
        Enable `errexit' shell flag.
  
  2010-06-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +          Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      Fix error in generation of parallel tests.
 +      * tests/defs.in ($am_skip_defs): New variable, to be used when
 +      ./defs must be sourced multiple times.  If set, unset it and
 +      only define $srcdir; otherwise, also go through the rest of
 +      the script.
 +      ($am_defs_included): Remove, no more needed.
 +      * tests/Makefile.am ($(parallel_tests)): Update accordingly,
 +      using only $srcdir from defs.
 +      Fixes potential test failures of tests that use $required.
 +
 +2010-06-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        Enable `errexit' shell flag in some test scripts.
        * tests/subcond.test: Enabled `errexit' shell flag, and related
        * tests/version2.test: Likewise, and avoid deprecated constructs
        in the generated `configure.in'.
  
 +2010-06-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +          Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      Improve declaration of dependencies in the testsuite.
 +      * tests/Makefile.am (check_SCRIPTS): Remove.  Instead, let ...
 +      ($(TEST_LOGS)): ... all test logs depend on the scripts.
 +      * test/gen-parallel-tests: For each parallel test foo-p.test,
 +      let `foo-p.log' also depend on `foo.test', since it is sourced.
 +
 +2010-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      Coverage for TAGS_DEPENDENCIES warning.
 +      * tests/tags2.test: New test.
 +      * tests/Makefile.am: Update.
 +
 +      Coverage for use of anachronistic variables.
 +      * tests/oldvars.test: New test.
 +      * tests/Makefile.am: Update.
 +
 +      Testsuite coverage for bogus macro file serial numbers.
 +      * tests/acloca18.test: Also test ill-formed serial numbers
 +      and serial numbers after macro definitions.
 +
 +      Coverage for aclocal diagnosing underquoted macros.
 +      * tests/acloca23.test: New test.
 +      * tests/Makefile.am: Update.
 +
  2010-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
        Prefer AUTOMAKE_fails over `$AUTOMAKE | grep' in tests.
        * tests/mdate.test: Likewise.
        Prompted by Stefano Lattarini's change to discover.test.
  
 +2010-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      More minor message fixes.
 +      * aclocal.in (scan_file): Fix recommended info command line.
 +      * automake.in (handle_lib_objects): No need to prepend function
 +      name to prog_error message.
 +      (handle_tags): Add missing word and missing space in error
 +      message.
 +      (handle_dist): Add missing closing single quote in message.
 +      Line-wrap one long message for readability.
 +
 +2010-06-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +          Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      Fix distcheck failure with distributed generated parallel tests.
 +      * tests/Makefile.am ($(parallel_tests)): Cope with $(srcdir)
 +      being different from the value at developer `make dist' time.
 +      * tests/defs.in: Protect against multiple inclusion, by using ...
 +      ($am_defs_included): ... this new variable.
 +      ($srcdir): Do not compute, but simply define to `@abs_srcdir@'
 +      as substituted by configure.
 +      Report, suggestions and first fix by Ralf Wildenhues, final
 +      patch by Stefano Lattarini.
 +
  2010-06-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        Improve tests link*.test (enable `errexit' shell flag).
  
  2010-06-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
 +      Tiny fix in silent8.test (display output of `make' command).
 +      * tests/silent8.test: Make sure that the captured output of `make'
 +      command is always displayed.
 +
        Make tests on user extensibility of silent-rules mode stricter.
        * tests/silent6.test: Made stricter w.r.t. the grepping of the
        output produced by `make'.
        * tests/silent5.test: Likewise.
        * tests/silent9.test: Likewise.
  
 -2010-01-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 -
 -      Fix silent-rules output for disabled dependency tracking.
 -      * lib/am/depend2.am [!%FASTDEP%]: Rework silent-rules variable
 -      expansion code to also work in the case where %AMDEP% expands
 -      to FALSE at config.status time, using new substitution string
 -      %VERBOSE-NODEP%.
 -      * automake.in (verbose_nodep_flag): New function, appending
 -      `@am__nodep@' to the verbose-variable name.
 -      (handle_languages): If dependencies are not disabled, use it to
 -      set %VERBOSE-NODEP%.
 -      * m4/depend.m4: Substitute am__nodep as '_no', so the second
 -      verbose-variable will always expand to an empty string, if
 -      dependencies are enabled.
 -      * tests/silent5.test: Also test --disable-dependency-tracking;
 -      also test per-target flags for non-C language files.
 -      * tests/silent9.test: New test, like silent4.test but disable
 -      dependency tracking.
 -      * tests/Makefile.am: Adjust.
 -      * NEWS, THANKS: Update.
 -      Report by Dmitry V. Levin <ldv@altlinux.org>.
 -
  2010-05-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        Extend test on `nostdinc' automake option.
  
  2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
 +      Fix truncated comment in Makefile.am.
 +      * Makefile.am (sc_tests_logs_duplicate_prefixes): Fix unfinished
 +      sentence in comment.
 +      Report by Stefano Lattarini.
 +
 +      Relax silent8.test for NetBSD make.
 +      * tests/silent8.test: Accept ./foo.info in output as well.
 +
        Fix unportable sed script in maintainer-check test.
        * Makefile.am (sc_tests_Exit_not_exit): Rewrite sed script to
        not contain semicolon after 'b' or brace commands, for NetBSD.
  
  2010-04-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
 +      Warning and error message formatting cleanups.
 +      * aclocal.in (parse_arguments, main): Remove trailing period or
 +      newline in error or warning messages, avoid capitalization of
 +      the first word of a message.
 +      * automake.in (check_user_variables, handle_languages)
 +      (handle_ltlibraries, scan_aclocal_m4, scan_autoconf_config_files)
 +      (scan_autoconf_files, cond_stack_if, require_file_internal)
 +      (usage, generate_makefile, parse_arguments): Likewise.
 +      * lib/Automake/ChannelDefs.pm (set_strictness): Likewise.
 +      * lib/Automake/Configure_ac.pm (find_configure_ac): Likewise.
 +      * lib/Automake/Options.pm (set_strictness): Likewise.
 +      * lib/Automake/Rule.pm (define): Likewise.
 +      * lib/Automake/Variable.pm (define, variables_dump): Likewise.
 +      * tests/ltinstloc.test, tests/suffix11.test: Adjust expected
 +      error message.
 +      * lib/Automake/Channels.pm (setup_channel): Reword error message
 +      to be the same as in msg.
 +
 +      Fix placing of ellipses in English text and synopses.
 +      * Makefile.am: Be sure to add a space before `...' in natural
 +      language text.
 +      * automake.in (scan_autoconf_traces): Likewise.
 +      * lib/Automake/Rule.pm (define): Likewise.
 +      * lib/Automake/Variable.pm (define): Likewise.
 +      * lib/am/dejagnu.am: Likewise.
 +      * lib/am/progs.am: Likewise.
 +      * lib/gnupload (dprint, upload): Likewise.
 +      * tests/confdeps.test: Likewise.
 +      * tests/location.test: Adjust expected output.
 +      * automake.in (usage): In synopsis, use singular for OPTION,
 +      * remove space before ellipsis.
 +      * aclocal.in (usage): Likewise.  Also, fix indentation.
 +
 +      Fix more duplicate message prefixes.
 +      * lib/Automake/XFile.pm (seek): Do not prepend $me.
 +      ($me): Remove now-unused package-global.
 +      * aclocal.in (check_acinclude): Remove duplicate 'warning: '
 +      prefix.
 +
        Fix typo in manual.
        * doc/automake.texi (Simple Tests using parallel-tests): Add
        missing closing parenthesis.
        * automake.in (read_main_am_file): Call variables_dump, not
        macros_dump.  Print actual error before list of variables.
  
 -2010-04-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +2010-04-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        Minor improvements in comments of test `silent3.test'.
        * tests/silent3.test: Tell to keep it in sync with `silent9.test'
  
  2010-04-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
 +      Print 'warnings are treated as errors' note if needed.
 +      * lib/Automake/Channels.pm: Fix typo in comment.
 +      (_print_message): If -Werror is enabled, print a 'warnings are
 +      treated as errors' note before the first such warning.
 +      * tests/warnopts.test: Adjust comment to mention expected warning.
 +      Adjust code to ignore 'warnings are treated as errors' note.
 +      * tests/location.test: Adjust expected output with -Werror.
 +      * tests/werror4.test: New test.
 +      * tests/Makefile.am: Update.
 +      * NEWS: Update.
 +
 +      Ensure we don't print 'warning:' or 'error:' twice.
 +      * Makefile.am (sc_ensure_testsuite_has_run): New helper rule.
 +      (sc_tests_logs_duplicate_prefixes): New rule, to check for
 +      wrong-looking warning and error messages in the test suite logs.
 +      * aclocal.in (scan_configure_dep, scan_file): Remove duplicate
 +      `warning: ' prefix.
 +      * tests/vars3.test: Rename variable to avoid false positive.
 +
 +      Prepend type to warning, error, and fatal messages.
 +      For the first part of messages of types `error' or `fatal',
 +      prepend `error: ' to the message.  Prepend `warning: ' to
 +      warning messages, whatever the setting of -Werror.
 +      * lib/Automake/Channels.pm (partial): Move up definition.
 +      (_format_message): Emit `header' and `footer' strings only with
 +      the first resp. last part of a set of partial messages.
 +      * lib/Automake/ChannelDefs.pm: Add missing '1;' statement at the
 +      end of the module.
 +      (Automake::ChannelDefs): Setup warning channels with header
 +      `warning: ', error and fatal messages with header `error: '.
 +      * tests/condinc2.test, tests/ltinstloc.test: Adjust expected
 +      error messages.
 +      * tests/comment5.test: Likewise.  Also, include stack notes
 +      should not start with `error:'.
 +      * tests/location.test: Likewise.  Also, try both -Werror and
 +      -Wno-error.
 +      * NEWS: Update.
 +      Report by Bruno Haible.
 +
 +      Fix capitalization of error messages, reword one message.
 +      * lib/Automake/Variable.pm (define): Do not capitalize the first
 +      word in the error message.
 +      * automake.in (require_file_internal): Likewise.  Also, reword
 +      and line-wrap for better readability.
 +      * tests/distcom7.test, tests/pluseq5.test, tests/pluseq9.test:
 +      Adjust tests.
 +
 +      Fix connected warnings about obsolete exeext override.
 +      * lib/Automake/Rule.pm (define): Merge two warnings that belong
 +      together, by setting the 'partial' flag for the first one.
 +
        Fix per-Makefile.am setting of -Werror.
        Before this patch, 'AUTOMAKE_OPTIONS = -Werror' in one
        Makefile.am would carry over to other Makefile.am files
        * NEWS, THANKS: Update.
        Report by Pavel Sanda.
  
 +2010-04-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Avoid possible false negatives in cond46.test.
 +      * tests/cond46.test: Enable shell `errexit' flag (and bumped
 +      copyright years).  Due to this change, the testcase should now
 +      fail on unexpected failures in calls to $ACLOCAL/$AUTOMAKE (whose
 +      outcomes were previously unchecked), and on failures in grepping
 +      the expected diagnostic in Automake stderr.
 +
 +2010-04-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      Generated tests are now just a thin layer around other tests.
 +      * tests/Makefile.am: Rewrite the rule to generate the `*-p.test'
 +      test scripts so that any of them simply includes the corresponding
 +      `*.test' script (after setting `$parallel_tests' to `yes').
 +      * tests/.gitignore: Add wildcard for temporary files used in the
 +      generation of `*-p.test' tests.
 +
  2010-03-30  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        Avoid an unportable use of `$status' shell variable.
        * tests/parallel-tests6.test: Likewise.
        * tests/parallel-tests7.test: Likewise.
  
 +2010-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      Fix cscope test on systems without working Fortran compiler.
 +      * tests/cscope.test: Skip remainder of test if `$MAKE all' fails.
 +      * THANKS: Update.
 +      Report by Peter Johansson.
 +
 +2010-02-24  Antonio Diaz Diaz  <ant_diaz@teleline.es>  (tiny change)
 +          Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      Add lzip compression support.
 +      * automake.in (handle_dist): Recognize dist-lzip.
 +      (make_paragraphs): Map LZIP to dist-lzip.
 +      * doc/automake.texi (Dist): Add dist-lzip.
 +      (Options): Likewise.
 +      * lib/Automake/Options.pm (_process_option_list): Add dist-lzip.
 +      * lib/am/distdir.am
 +      (dist dist-all): Add command to create an lzip-compressed tarball.
 +      (distcheck): Handle lzip-compressed tarballs just like the others.
 +      * tests/defs.in: Test for lzip, too.
 +      * tests/lzip.test: New file, based on nogzip.test.
 +      * tests/Makefile.am (TESTS): Add lzip.test.
 +      * NEWS: Update.
 +
  2010-02-22  Karl Berry  <karl@gnu.org>
  
        Improve help message of mdate-sh.
        Fix some typos in the manual
        * doc/automake.texi (Nested Packages, Rebuilding): Fix typos.
  
 +2010-01-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      Fix silent-rules output for disabled dependency tracking.
 +      * lib/am/depend2.am [!%FASTDEP%]: Rework silent-rules variable
 +      expansion code to also work in the case where %AMDEP% expands
 +      to FALSE at config.status time, using new substitution string
 +      %VERBOSE-NODEP%.
 +      * automake.in (verbose_nodep_flag): New function, appending
 +      `@am__nodep@' to the verbose-variable name.
 +      (handle_languages): If dependencies are not disabled, use it to
 +      set %VERBOSE-NODEP%.
 +      * m4/depend.m4: Substitute am__nodep as '_no', so the second
 +      verbose-variable will always expand to an empty string, if
 +      dependencies are enabled.
 +      * tests/silent5.test: Also test --disable-dependency-tracking;
 +      also test per-target flags for non-C language files.
 +      * tests/silent9.test: New test, like silent4.test but disable
 +      dependency tracking.
 +      * tests/Makefile.am: Adjust.
 +      * NEWS, THANKS: Update.
 +      Report by Dmitry V. Levin <ldv@altlinux.org>.
 +
  2010-01-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        Slighty improve tests acoutbs.test and acoutbs2.test.
diff --combined NEWS
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
 -New in 1.11.0a:
 +New in 1.11a:
 +
 +* Obsolete features removed:
 +
 +  - Support for automatic de-ANSI-fication has been removed.
 +
 +  - The support for the "obscure" multilib feature has been removed
 +    from Automake core (but remains available in the 'contrib/'
 +    directory of the Automake distribution).
 +
 +  - Support for ".log -> .html" conversion and the check-html and
 +    recheck-html targets has been removed from Automake core (but
 +    remains available in the 'contrib/' directory of the Automake
 +    distribution).
 +
 +  - The deprecated `lzma' compression format for distribution archives
 +    has been removed, in favor of `xz' and `lzip'.
 +
 +  - The obsolete AM_WITH_REGEX macro has been removed.
 +
 +  - The deprecated options `--output-dir', `--Werror' and `--Wno-error'
 +    have been removed.
 +
 +* New targets:
 +
 +  - New `cscope' target to build a cscope database for the source tree.
 +
 +* Changes to Automake-generated testsuite harnesses:
 +
 +  - Test scripts that exit with status 99 to signal an "hard error" (e.g.,
 +    and unexpected or internal error, or a failure to set up the test case
 +    scenario) have their outcome reported as an 'ERROR' now.  Previous
 +    versions of automake reported such an outcome as a 'FAIL' (the only
 +    difference with normal failures being that hard errors were counted
 +    as failures even when the test originating them was listed in
 +    XFAIL_TESTS).
 +
 +  - The testsuite summary displayed by the parallel-test harness has a
 +    completely new format, that always list the numbers of passed, failed,
 +    xfailed, xpassed, skipped and errored tests, even when these numbers
 +    are zero (but using smart coloring when the color-tests option is in
 +    effect).
 +
 +  - The default testsuite driver offered by the 'parallel-tests' option is
 +    now implemented (partly at least) with the help of automake-provided
 +    auxiliary scripts (e.g., `test-driver'), instead of relying entirely
 +    on code in the generated Makefile.in.
 +    This has two noteworthy implications.  The first one is that projects
 +    using the `parallel-tests' option should now either run automake with
 +    the `--add-missing' option, or manually copy the `test-driver' script
 +    into their tree.  The second, and more important, implication is that
 +    now, when the `parallel-tests' option is in use, TESTS_ENVIRONMENT can
 +    not be used anymore to define a test runner, and the command specified
 +    in LOG_COMPILER (and <ext>_LOG_COMPILER) must be a *real* executable
 +    program or script.  For example, this is still a valid usage (albeit
 +    a little contorted):
 +
 +      TESTS_ENVIRONMENT = \
 +        if test -n '$(STRICT_TESTS)'; then \
 +          maybe_errexit='-e'; \
 +        else \
 +          maybe_errexit=''; \
 +        fi;
 +      LOG_COMPILER = $(SHELL) $$maybe_errexit
 +
 +    while this is not anymore:
 +
 +      TESTS_ENVIRONMENT = \
 +        $(SHELL) `test -n '$(STRICT_TESTS_CHECKING)' && echo ' -e'`
 +
 +    neither is this:
 +
 +      TESTS_ENVIRONMENT = \
 +        run_with_perl_or_shell () \
 +        { \
 +          if grep -q '^#!.*perl' $$1; then
 +            $(PERL) $$1; \
 +          else \
 +            $(SHELL) $$1; \
 +          fi; \
 +        }
 +      LOG_COMPILER = run_with_per_or_shell
 +
 +  - The package authors can now use customary testsuite drivers within
 +    the framework provided by the 'parallel-tests' testsuite harness.
 +    Consistently with the existing syntax, this can be done by defining
 +    special makefile variables `LOG_DRIVER' and `<ext>_LOG_DRIVER'.
 +
 +  - A new developer-reserved variable `AM_TESTS_FD_REDIRECT' can be used
 +    to redirect/define file descriptors used by the test scripts.
 +
 +  - The parallel-tests harness generates now, in addition the `.log' files
 +    holding the output produced by the test scripts, a new set of `.trs'
 +    files, holding "metadata" derived by the execution of the test scripts;
 +    among such metadata are the outcomes of the test cases run by a script.
 +
 +  - Initial and still experimental support for the TAP test protocol is
 +    now provided.
 +
++* Changes to Yacc and Lex support:
 -* WARNING: Future backward-incompatibilities!
++  - C source and header files derived from non-distributed Yacc and/or
++    Lex sources are now removed by a simple "make clean" (while they were
++    previously removed only "make maintainer-clean").
 -  - The support for the "obscure" multilib feature has been deprecated,
 -    and will be moved out of the automake core in the next major Automake
 -    release (1.12).
++  - Slightly backward-incompatible change, relevant only for use of Yacc
++    with C++: the extensions of the header files produced by the Yacc
++    rules are now modelled after extension of the sources corresponding
++    sources.  For example, yacc files named "foo.y++" and "bar.yy" will
++    produce header files named respectively "foo.h++" and "bar.hh", where
++    they would have previously produced header files named simply "foo.h"
++    and "bar.h".  This change offers better compatibility with `bison -o'.
 -  - The support for ".log -> .html" conversion and the check-html and
 -    recheck-html targets will be removed in the next major Automake
 -    release (1.12).
++  - C source and header files derived from non-distributed Yacc sources
++    are now removed by "make clean", not only by "make maintainer-clean".
 -  - The `lzma' compression format for distribution archives has been
 -    deprecated in favor of `xz' and `lzip', and will be removed in the
 -    next major Automake release (1.12).
 +* Miscellaneous changes:
  
 -  - The Automake support for automatic de-ANSI-fication will be removed in
 -    the next major Automake release (1.12).
 +  - The `dist' and `dist-all' targets now can run compressors in parallel.
  
 -  - The `--acdir' option of aclocal is deprecated, and will probably be
 -    removed in the next major Automake release (1.12).
 +  - Automake can now generate silenced rules for texinfo outputs.
  
 -  - The exact order in which the directories in the aclocal macro
 -    search path are looked up is probably going to be changed in the
 -    next Automake release (1.12).
 +  - Some auxiliary files that are automatically distributed by Automake
 +    (e.g., `install-sh', or the `depcomp' script for packages compiling
 +    C sources) might now be listed in the DIST_COMMON variable in many
 +    Makefile.in files, rather than in the top-level one.
  
 -  - The obsolescent AM_WITH_REGEX  macro has been deprecated (since the
 -    GNU rx library has been decommissioned), and will be removed in the
 -    next major Automake release (1.12).
 +  - Messages of types warning or error from `automake' and `aclocal'
 +    are now prefixed with the respective type, and presence of -Werror
 +    is noted.
  
 -* Changes to aclocal:
 +  - Automake's early configure-time sanity check now tries to avoid
 +    sleeping for a second, which slowed down cached configure runs
 +    noticeably.  In that case, it will check back at the end of the
 +    configure script to ensure that at least one second has passed, to
 +    avoid time stamp issues with makefile rules rerunning autotools
 +    programs.
  
 -  - The `--acdir' option is deprecated.  Now you should use the new options
 -    `--automake-acdir' and `--system-acdir' instead.
 +  - For programs and libraries, automake now detect EXTRA_foo_DEPENDENCIES
 +    and adds them to the normal list of dependencies, but without
 +    overwriting the foo_DEPENDENCIES variable, which is normally computed
 +    by automake.
  
-   - C source and header files derived from non-distributed Yacc sources
-     are now removed by "make clean", not only by "make maintainer-clean".
 -  - The `ACLOCAL_PATH' environment variable is now interpreted as a
 -    colon-separated list of additional directories to search after the
 -    automake internal acdir (by default ${prefix}/share/aclocal-APIVERSION)
 -    and before the system acdir (by default ${prefix}/share/aclocal).
 +  - The warnings in the category `extra-portability' are now enabled by
 +    `-Wall'.  In previous versions, one has to use `-Wextra-portability'
 +    to enable them.
 +
 +Bugs fixed in 1.11a:
 +
 +  - Various minor bugfixes.
 +
 +* Bugs introduced by 1.11:
 +
 +  - The AM_COND_IF macro also works if the shell expression for the
 +    conditional is no longer valid for the condition.
 +
 +* Long-standing bugs:
 +
 +  - Automake's own build system finally have a real "installcheck" target.
 +
 +  - Files listed with the AC_REQUIRE_AUX_FILE macro in configure.ac are
 +    now automatically distributed also if the directory of the auxiliary
 +    files coincides with the top-level directory.
 +
 +  - Automake now detects the presence of the `-d' flag in the various
 +    `*YFLAGS' variables even when their definitions involve indirections
 +    through other variables, such as in:
 +      foo_opts = -d
 +      AM_YFLAGS = $(foo_opts)
 +
 +  - Automake now complains if a `*YFLAGS' variable has any conditional
 +    content, not only a conditional definition.
 +
 +  - Explicit enabling and/or disabling of Automake warning categories
 +    through the `-W...' options now always takes precedence over the
 +    implicit warning level implied by Automake strictness (foreign, gnu
 +    or gnits), regardless of the order in which such strictness and
 +    warning flags appear.  For example, a setting like:
 +      AUTOMAKE_OPTIONS = -Wall --foreign
 +    will cause the warnings in category `portability' to be enabled, even
 +    if those warnings are by default disabled in `foreign' strictness.
 +
 +\f
 +New in 1.11.2a:
 +
 +* WARNING: Future backward-incompatibilities!
 +
 +  - The obsolescent AM_WITH_REGEX  macro has been deprecated, since the
 +    GNU rx library has been decommissioned.
 +
 +  - The `lzma' compression format for distribution archives has been
 +    deprecated in favor of `xz' and `lzip'.
 +
 +  - The `--acdir' option of aclocal is deprecated, and will probably be
 +    removed in the next major Automake release (1.12). [FIXME]
 +
 +  - The exact order in which the directories in the aclocal macro
 +    search path are looked up is probably going to be changed in the
 +    next Automake release (1.12). [FIXME]
  
  * Miscellaneous changes:
  
    - The last relics of Python 1.5 support have been removed from the
      AM_PATH_PYTHON macro.
  
 +Bugs fixed in 1.11.2a:
 +
 +* Long-standing bugs:
 +
 +  - The "deleted header file problem" for *.am files is avoided by stub
 +    rules.  This allows `make' to trigger a rerun of `automake' also if
 +    some previously needed `.am' file has been removed.
 +
 +  - The `silent-rules' option now generates working makefiles even
 +    for the uncommon `make' implementations that do not support the
 +    nested-variables extension to POSIX 2008.  For such `make'
 +    implementations, whether a build is silent is determined at
 +    configure time, and cannot be overridden at make time with
 +    `make V=0' or `make V=1'.
 +
 +  - Vala support now works better in VPATH setups.
 +
 +\f
 +New in 1.11.2:
 +
 +* Changes to aclocal:
 +
 +  - The `--acdir' option is deprecated.  Now you should use the new options
 +    `--automake-acdir' and `--system-acdir' instead.
 +
 +  - The `ACLOCAL_PATH' environment variable is now interpreted as a
 +    colon-separated list of additional directories to search after the
 +    automake internal acdir (by default ${prefix}/share/aclocal-APIVERSION)
 +    and before the system acdir (by default ${prefix}/share/aclocal).
 +
 +* Miscellaneous changes:
 +
 +  - The Automake support for automatic de-ANSI-fication has been
 +    deprecated.
 +
    - The `lzma' compression scheme and associated automake option `dist-lzma'
      is obsoleted by `xz' and `dist-xz' due to upstream changes.
  
      specify a different level via the XZ_OPT and BZIP2 envvars respectively.
      E.g., "make dist-xz XZ_OPT=-7" or "make dist-bzip2 BZIP2=-5"
  
 +  - The `compile' script now converts some options for MSVC for a better
 +    user experience.  Similarly, the new `ar-lib' script wraps Microsoft lib.
 +
    - The py-compile script now accepts empty arguments passed to the options
      `--destdir' and `--basedir', and complains about unrecognized options.
      Moreover, a non-option argument or a special `--' argument terminates
      user; still, the old Makefile.am files that used to define it will
      still continue to work as before.
  
 +  - New macro AM_PROG_AR that looks for an archiver and wraps it in the new
 +    'ar-lib' auxiliary script if the selected archiver is Microsoft lib.
 +    This new macro is required for LIBRARIES and LTLIBRARIES when automake
 +    is run with -Wextra-portability and -Werror.
 +
    - When using DejaGnu-based testsuites, the user can extend the `site.exp'
      file generated by automake-provided rules by defining the special make
      variable `$(EXTRA_DEJAGNU_SITE_CONFIG)'.
      the `${infodir}/dir' file, by exporting the new environment variable
      `AM_UPDATE_INFO_DIR' to the value "no".
  
 -  - For programs and libraries, automake now detects EXTRA_foo_DEPENDENCIES
 -    and adds them to the normal list of dependencies, but without
 -    overwriting the foo_DEPENDENCIES variable, which is normally computed
 -    by automake.
 -
 -* Changes to Yacc support:
 -
 -  - C source and header files derived from non-distributed Yacc and/or
 -    Lex sources are now removed by a simple "make clean" (while they were
 -    previously removed only "make maintainer-clean").
 -
 -  - Slightly backward-incompatible change, relevant only for use of Yacc
 -    with C++: the extensions of the header files produced by the Yacc
 -    rules are now modelled after extension of the sources corresponding
 -    sources.  For example, yacc files named "foo.y++" and "bar.yy" will
 -    produce header files named respectively "foo.h++" and "bar.hh", where
 -    they would have previously produced header files named simply "foo.h"
 -    and "bar.h".  This change offers better compatibility with `bison -o'.
 -
 -Bugs fixed in 1.11.0a:
 +Bugs fixed in 1.11.2:
  
  * Bugs introduced by 1.11.2:
  
  
  * Bugs introduced by 1.11:
  
 -  - The parallel-tests harness doesn't trip anymore on sed implementations
 -    with stricter limits on the length of input lines (problem seen at
 -    least on Solaris 8).
 +  - The parallel-tests driver no longer produces erroneous results with
 +    Tru64/OSF 5.1 sh upon unreadable log files.
  
 -  - The `parallel-tests' test driver works around a GNU make 3.80 bug with
 -    trailing white space in the test list (`TESTS = foo $(EMPTY)'), and
 -    does not report spurious successes when used with concurrent FreeBSD
 -    make (e.g., "make check -j3").
 +  - The `parallel-tests' test driver does not report spurious successes
 +    when used with concurrent FreeBSD make (e.g., "make check -j3").
  
    - When the parallel-tests driver is in use, automake now explicitly
      rejects invalid entries and conditional contents in TEST_EXTENSIONS,
      not used, `make' output no longer contains spurious backslash-only
      lines, thus once again matching what Automake did before 1.11.
  
 -  - The `silent-rules' option now generates working makefiles even for
 -    the uncommon `make' implementations that do not support the
 -    nested-variables extension to POSIX 2008.  For such `make'
 -    implementations, whether a build is silent is determined at
 -    configure time, and cannot be overridden at make time with
 -    `make V=0' or `make V=1'.
 -
 -  - The AM_COND_IF macro also works if the shell expression for the conditional
 -    is no longer valid for the condition.
 +  - The AM_COND_IF macro also works if the shell expression for the
 +    conditional is no longer valid for the condition.
  
  * Long-standing bugs:
  
 -  - Vala support now works better in VPATH setups.
 -
 -  - The "deleted header file problem" for *.am files is avoided by stub
 -    rules.  This allows `make' to trigger a rerun of `automake' also if
 -    some previously needed `.am' file has been removed.
 +  - The order of Yacc and Lex flags is fixed to be consistent with other
 +    languages: $(AM_YFLAGS) comes before $(YFLAGS), and $(AM_LFLAGS) before
 +    $(LFLAGS), so that the user variables override the developer variables.
  
    - "make distcheck" now correctly complains also when "make uninstall"
      leaves one and only one file installed in $(prefix).
    - Automake now warns about more primary/directory invalid combinations,
      such as "doc_LIBRARIES" or "pkglib_PROGRAMS".
  
 -  - On Darwin 9, `pythondir' and `pyexecdir' pointed below `/Library/Python'
 -    even if the `--prefix' argument pointed outside of a system directory.
 -    AM_PATH_PYTHON has been fixed to ignore the value returned from python's
 -    `get_python_lib' function if it points outside the configured prefix,
 -    unless the `--prefix' argument was either `/usr' or below `/System'.
 -
 -  - The testsuite does not try to change the mode of `ltmain.sh' files from
 -    a Libtool installation (symlinked to test directories) any more.
 -
 -  - AM_PROG_GCJ uses AC_CHECK_TOOLS to look for `gcj' now, so that prefixed
 -    tools are preferred in a cross-compile setup.
 +  - Rules generated by Automake now try harder to not change any files when
 +    `make -n' is invoked.  Fixes include compilation of Emacs Lisp, Vala, or
 +    Yacc source files and the rule to update config.h.
  
    - Several scripts and the parallel-tests testsuite driver now exit with
      the right exit status upon receiving a signal.
    - A per-Makefile.am setting of -Werror does not erroneously carry over
      to the handling of other Makefile.am files.
  
 -  - The order of Yacc and Lex flags is now consistent with that of other
 -    languages: $(AM_YFLAGS) comes before $(YFLAGS), and $(AM_LFLAGS) before
 -    $(LFLAGS), so that the user variables override the developer variables.
 -
 -  - Rules generated by Automake now try harder not to change any files when
 -    `make -n' is invoked.  Fixes include compilation of Emacs Lisp, Vala, or
 -    Yacc source files and the rule to update config.h.
 -
    - The code for automatic dependency tracking works around a Solaris
      make bug triggered by sources containing repeated slashes when the
      `subdir-objects' option was used.
  
 -  - The parallel-tests driver no longer produces erroneous results with
 -    Tru64/OSF 5.1 sh upon unreadable log files.
 -
    - The makedepend and hp depmodes now work better with VPATH builds.
  
    - Java sources specified with check_JAVA are no longer compiled for
      "make all", but only for "make check".
  
 -  - Automake now detects the presence of the `-d' flag in the various
 -    `*YFLAGS' variables even when their definitions involve indirections
 -    through other variables, such as in:
 -      foo_opts = -d
 -      AM_YFLAGS = $(foo_opts)
 -
 -  - Automake now complains if a `*YFLAGS' variable has any conditional
 -    content, not only a conditional definition.
 -
    - An usage like "java_JAVA = foo.java" will now cause Automake to warn
      and error out if `javadir' is undefined, instead of silently producing
      a broken Makefile.in.
      change its behaviour; this has proven to be frail and easy to
      regress.
  \f
 +Bugs fixed in 1.11.1:
 +
 +  - Lots of minor bugfixes.
 +
 +* Bugs introduced by 1.11:
 +
 +  - The `parallel-tests' test driver works around a GNU make 3.80 bug with
 +    trailing white space in the test list (`TESTS = foo $(EMPTY)').
 +
 +* Long standing bugs:
 +
 +  - On Darwin 9, `pythondir' and `pyexecdir' pointed below `/Library/Python'
 +    even if the `--prefix' argument pointed outside of a system directory.
 +    AM_PATH_PYTHON has been fixed to ignore the value returned from python's
 +    `get_python_lib' function if it points outside the configured prefix,
 +    unless the `--prefix' argument was either `/usr' or below `/System'.
 +
 +  - The testsuite does not try to change the mode of `ltmain.sh' files from
 +    a Libtool installation (symlinked to test directories) any more.
 +
 +  - AM_PROG_GCJ uses AC_CHECK_TOOLS to look for `gcj' now, so that prefixed
 +    tools are preferred in a cross-compile setup.
 +
 +  - The distribution is tarred up with mode 755 now by the `dist*' targets.
 +    This fixes a race condition where untrusted users could modify files
 +    in the $(PACKAGE)-$(VERSION) distdir before packing if the toplevel
 +    build directory was world-searchable.  This is CVE-2009-4029.
 +\f
  New in 1.11:
  
  * Version requirements:
diff --combined automake.in
@@@ -53,6 -53,7 +53,6 @@@ struct (# Short name of the language (c
        # List of configure variables which must be defined.
        'config_vars' => '@',
  
 -      'ansi'    => "\$",
        # `pure' is `1' or `'.  A `pure' language is one where, if
        # all the files in a directory are of that language, then we
        # do not require the C compiler or any code to call it.
@@@ -232,9 -233,9 +232,9 @@@ my @libtool_sometimes = qw(ltconfig ltc
  my @common_files =
      (qw(ABOUT-GNU ABOUT-NLS AUTHORS BACKLOG COPYING COPYING.DOC COPYING.LIB
        COPYING.LESSER ChangeLog INSTALL NEWS README THANKS TODO
 -      ansi2knr.1 ansi2knr.c compile config.guess config.rpath config.sub
 -      depcomp elisp-comp install-sh libversion.in mdate-sh missing
 -      mkinstalldirs py-compile texinfo.tex ylwrap),
 +      ar-lib compile config.guess config.rpath
 +      config.sub depcomp elisp-comp install-sh libversion.in mdate-sh
 +      missing mkinstalldirs py-compile texinfo.tex ylwrap),
       @libtool_files, @libtool_sometimes);
  
  # Commonly used files we auto-include, but only sometimes.  This list
@@@ -327,6 -328,10 +327,6 @@@ my @config_headers = ()
  # Names used in AC_CONFIG_LINKS call.
  my @config_links = ();
  
 -# Directory where output files go.  Actually, output files are
 -# relative to this directory.
 -my $output_directory;
 -
  # List of Makefile.am's to process, and their corresponding outputs.
  my @input_files = ();
  my %output_files = ();
@@@ -386,8 -391,8 +386,8 @@@ my $package_version = ''
  # Where version is defined.
  my $package_version_location;
  
 -# TRUE if we've seen AM_ENABLE_MULTILIB.
 -my $seen_multilib = 0;
 +# TRUE if we've seen AM_PROG_AR
 +my $seen_ar = 0;
  
  # TRUE if we've seen AM_PROG_CC_C_O
  my $seen_cc_c_o = 0;
@@@ -470,8 -475,9 +470,8 @@@ my %required_targets 
     'install-man' => 1,
    );
  
 -# Set to 1 if this run will create the Makefile.in that distributes
 -# the files in config_aux_dir.
 -my $automake_will_process_aux_dir = 0;
 +# Queue to push require_conf_file requirements to.
 +my $required_conf_file_queue;
  
  # The name of the Makefile currently being processed.
  my $am_file = 'BUG';
@@@ -566,6 -572,12 +566,6 @@@ my @dist_targets
  my %known_programs;
  my %known_libraries;
  
 -# Keys in this hash are the basenames of files which must depend on
 -# ansi2knr.  Values are either the empty string, or the directory in
 -# which the ANSI source file appears; the directory must have a
 -# trailing `/'.
 -my %de_ansi_files;
 -
  # This keeps track of which extensions we've seen (that we care
  # about).
  my %extension_seen;
@@@ -589,9 -601,9 +589,9 @@@ my %linkers_used
  # True if we need `LINK' defined.  This is a hack.
  my $need_link;
  
 -# Was get_object_extension run?
 -# FIXME: This is a hack. a better switch should be found.
 -my $get_object_extension_was_run;
 +# Does the generated Makefile have to build some compiled object
 +# (for binary programs, or plain or libtool libraries)?
 +my $must_handle_compiled_objects;
  
  # Record each file processed by make_paragraphs.
  my %transformed_files;
@@@ -691,6 -703,8 +691,6 @@@ sub initialize_per_input (
      %known_programs = ();
      %known_libraries= ();
  
 -    %de_ansi_files = ();
 -
      %extension_seen = ();
  
      %language_scratch = ();
  
      $need_link = 0;
  
 -    $get_object_extension_was_run = 0;
 +    $must_handle_compiled_objects = 0;
  
      %transformed_files = ();
  }
  register_language ('name' => 'c',
                   'Name' => 'C',
                   'config_vars' => ['CC'],
 -                 'ansi' => 1,
                   'autodep' => '',
                   'flags' => ['CFLAGS', 'CPPFLAGS'],
                   'ccer' => 'CC',
                   'link' => '$(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@',
                   'compile_flag' => '-c',
                   'libtool_tag' => 'CC',
 -                 'extensions' => ['.c'],
 -                 '_finish' => \&lang_c_finish);
 +                 'extensions' => ['.c']);
  
  # C++.
  register_language ('name' => 'cxx',
@@@ -883,7 -899,10 +883,7 @@@ register_language ('name' => 'asm'
                   'compiler' => 'CCASCOMPILE',
                   'compile_flag' => '-c',
                   'output_flag' => '-o',
 -                 'extensions' => ['.s'],
 -
 -                 # With assembly we still use the C linker.
 -                 '_finish' => \&lang_c_finish);
 +                 'extensions' => ['.s']);
  
  # Preprocessed Assembler.
  register_language ('name' => 'cppasm',
                   'compiler' => 'CPPASCOMPILE',
                   'compile_flag' => '-c',
                   'output_flag' => '-o',
 -                 'extensions' => ['.S', '.sx'],
 -
 -                 # With assembly we still use the C linker.
 -                 '_finish' => \&lang_c_finish);
 +                 'extensions' => ['.S', '.sx']);
  
  # Fortran 77
  register_language ('name' => 'f77',
@@@ -1186,25 -1208,11 +1186,25 @@@ sub define_verbose_tagvar ($
      my ($name) = @_;
      if (option 'silent-rules')
        {
 -      define_verbose_var ($name, '@echo "  '. $name . ' ' x (6 - length ($name)) . '" $@;');
 +      define_verbose_var ($name, '@echo "  '. $name . ' ' x (8 - length ($name)) . '" $@;');
        define_verbose_var ('at', '@');
        }
  }
  
 +# define_verbose_texinfo
 +# ----------------------
 +# Engage the needed `silent-rules' machinery for assorted texinfo commands.
 +sub define_verbose_texinfo ()
 +{
 +  my @tagvars = ('DVIPS', 'MAKEINFO', 'INFOHTML', 'TEXI2DVI', 'TEXI2PDF');
 +  foreach my $tag (@tagvars)
 +    {
 +      define_verbose_tagvar($tag);
 +    }
 +  define_verbose_var('texinfo', '-q');
 +  define_verbose_var('texidevnull', '> /dev/null');
 +}
 +
  # define_verbose_libtool
  # ----------------------
  # Engage the needed `silent-rules' machinery for `libtool --silent'.
@@@ -1229,10 -1237,12 +1229,10 @@@ sub handle_option
          msg_var ('unsupported', $var,
                   "`AUTOMAKE_OPTIONS' cannot have conditional contents");
        }
 -      foreach my $locvals ($var->value_as_list_recursive (cond_filter => TRUE,
 -                                                        location => 1))
 -      {
 -        my ($loc, $value) = @$locvals;
 -        return 1 if (process_option_list ($loc, $value))
 -      }
 +      my @options = map { { option => $_->[1], where => $_->[0] } }
 +                      $var->value_as_list_recursive (cond_filter => TRUE,
 +                                                     location => 1);
 +      return 1 if process_option_list (@options);
      }
  
    # Override portability-recursive warning.
@@@ -1269,6 -1279,22 +1269,6 @@@ sub shadow_unconditionally ($$
    return "\$($varname)"
  }
  
 -# get_object_extension ($EXTENSION)
 -# ---------------------------------
 -# Prefix $EXTENSION with $U if ansi2knr is in use.
 -sub get_object_extension ($)
 -{
 -    my ($extension) = @_;
 -
 -    # Check for automatic de-ANSI-fication.
 -    $extension = '$U' . $extension
 -      if option 'ansi2knr';
 -
 -    $get_object_extension_was_run = 1;
 -
 -    return $extension;
 -}
 -
  # check_user_variables (@LIST)
  # ----------------------------
  # Make sure each variable VAR in @LIST does not exist, suggest using AM_VAR
@@@ -1288,7 -1314,7 +1288,7 @@@ sub check_user_variables (@
                  msg_cond_var ('gnu', $cond, $flag,
                                "`$flag' is a user variable, "
                                . "you should not override it;\n"
 -                              . "use `AM_$flag' instead.");
 +                              . "use `AM_$flag' instead");
                }
            }
        }
@@@ -1493,6 -1519,97 +1493,6 @@@ sub handle_language
                unless $depbase eq '';
            $depbase .= '$(DEPDIR)/' . basename ($obj);
  
 -          # Support for deansified files in subdirectories is ugly
 -          # enough to deserve an explanation.
 -          #
 -          # A Note about normal ansi2knr processing first.  On
 -          #
 -          #   AUTOMAKE_OPTIONS = ansi2knr
 -          #   bin_PROGRAMS = foo
 -          #   foo_SOURCES = foo.c
 -          #
 -          # we generate rules similar to:
 -          #
 -          #   foo: foo$U.o; link ...
 -          #   foo$U.o: foo$U.c; compile ...
 -          #   foo_.c: foo.c; ansi2knr ...
 -          #
 -          # this is fairly compact, and will call ansi2knr depending
 -          # on the value of $U (`' or `_').
 -          #
 -          # It's harder with subdir sources. On
 -          #
 -          #   AUTOMAKE_OPTIONS = ansi2knr
 -          #   bin_PROGRAMS = foo
 -          #   foo_SOURCES = sub/foo.c
 -          #
 -          # we have to create foo_.c in the current directory.
 -          # (Unless the user asks 'subdir-objects'.)  This is important
 -          # in case the same file (`foo.c') is compiled from other
 -          # directories with different cpp options: foo_.c would
 -          # be preprocessed for only one set of options if it were
 -          # put in the subdirectory.
 -          #
 -          # Because foo$U.o must be built from either foo_.c or
 -          # sub/foo.c we can't be as concise as in the first example.
 -          # Instead we output
 -          #
 -          #   foo: foo$U.o; link ...
 -          #   foo_.o: foo_.c; compile ...
 -          #   foo.o: sub/foo.c; compile ...
 -          #   foo_.c: foo.c; ansi2knr ...
 -          #
 -          # This is why we'll now transform $rule_file twice
 -          # if we detect this case.
 -          # A first time we output the compile rule with `$U'
 -          # replaced by `_' and the source directory removed,
 -          # and another time we simply remove `$U'.
 -          #
 -          # Note that at this point $source (as computed by
 -          # &handle_single_transform) is `sub/foo$U.c'.
 -          # This can be confusing: it can be used as-is when
 -          # subdir-objects is set, otherwise you have to know
 -          # it really means `foo_.c' or `sub/foo.c'.
 -          my $objdir = dirname ($obj);
 -          my $srcdir = dirname ($source);
 -          if ($lang->ansi && $obj =~ /\$U/)
 -            {
 -              prog_error "`$obj' contains \$U, but `$source' doesn't."
 -                if $source !~ /\$U/;
 -
 -              (my $source_ = $source) =~ s/\$U/_/g;
 -              # Output an additional rule if _.c and .c are not in
 -              # the same directory.  (_.c is always in $objdir.)
 -              if ($objdir ne $srcdir)
 -                {
 -                  (my $obj_ = $obj) =~ s/\$U/_/g;
 -                  (my $depbase_ = $depbase) =~ s/\$U/_/g;
 -                  $source_ = basename ($source_);
 -
 -                  $output_rules .=
 -                    file_contents ($rule_file,
 -                                   new Automake::Location,
 -                                   %transform,
 -                                   GENERIC   => 0,
 -
 -                                   DEPBASE   => $depbase_,
 -                                   BASE      => $obj_,
 -                                   SOURCE    => $source_,
 -                                   SOURCEFLAG => $sourceflags{$srcext} || '',
 -                                   OBJ       => "$obj_$myext",
 -                                   OBJOBJ    => "$obj_.obj",
 -                                   LTOBJ     => "$obj_.lo",
 -
 -                                   COMPILE   => $obj_compile,
 -                                   LTCOMPILE => $obj_ltcompile,
 -                                   -o        => $output_flag,
 -                                   %file_transform);
 -                  $obj =~ s/\$U//g;
 -                  $depbase =~ s/\$U//g;
 -                  $source =~ s/\$U//g;
 -                }
 -            }
 -
            $output_rules .=
              file_contents ($rule_file,
                             new Automake::Location,
@@@ -1648,7 -1765,7 +1648,7 @@@ sub check_libobjs_source
  #   $VAR is the name of the variable that the source filenames come from
  #   $TOPPARENT is the name of the _SOURCES variable which is being processed
  #   $DERIVED is the name of resulting executable or library
 -#   $OBJ is the object extension (e.g., `$U.lo')
 +#   $OBJ is the object extension (e.g., `.lo')
  #   $FILE the source file to transform
  #   %TRANSFORM contains extras arguments to pass to file_contents
  #     when producing explicit rules
@@@ -1659,6 -1776,8 +1659,6 @@@ sub handle_single_transform ($$$$$%
      my ($var, $topparent, $derived, $obj, $_file, %transform) = @_;
      my @files = ($_file);
      my @result = ();
 -    my $nonansi_obj = $obj;
 -    $nonansi_obj =~ s/\$U//g;
  
      # Turn sources into objects.  We use a while loop like this
      # because we might add to @files in the loop.
        # language function.
        my $aggregate = 'AM';
  
 -      $extension = &derive_suffix ($extension, $nonansi_obj);
 +      $extension = &derive_suffix ($extension, $obj);
        my $lang;
        if ($extension_map{$extension} &&
            ($lang = $languages{$extension_map{$extension}}))
            # Do we have per-executable flags for this executable?
            my $have_per_exec_flags = 0;
            my @peflags = @{$lang->flags};
 -          push @peflags, 'LIBTOOLFLAGS' if $nonansi_obj eq '.lo';
 +          push @peflags, 'LIBTOOLFLAGS' if $obj eq '.lo';
            foreach my $flag (@peflags)
              {
                if (set_seen ("${derived}_$flag"))
            my $subr = \&{'lang_' . $lang->name . '_rewrite'};
            my ($r, $source_extension)
                = &$subr ($directory, $base, $extension,
 -                        $nonansi_obj, $have_per_exec_flags, $var);
 +                        $obj, $have_per_exec_flags, $var);
            # Skip this entry if we were asked not to process it.
            next if $r == LANG_IGNORE;
  
                $this_obj_ext = $source_extension;
                $derived_source = 1;
            }
 -          elsif ($lang->ansi)
 -          {
 -              $this_obj_ext = $obj;
 -          }
            else
            {
 -              $this_obj_ext = $nonansi_obj;
 +              $this_obj_ext = $obj;
            }
            $object = $base . $this_obj_ext;
  
                        $full_ansi = $base . $extension;
                  }
  
 -              if ($lang->ansi && option 'ansi2knr')
 -                {
 -                  $full_ansi =~ s/$KNOWN_EXTENSIONS_PATTERN$/\$U$&/;
 -                  $obj_sans_ext .= '$U';
 -                }
 -
                my @specifics = ($full_ansi, $obj_sans_ext,
                                 # Only use $this_obj_ext in the derived
                                 # source case because in the other case we
                      [@specifics, %transform]);
            }
        }
 -      elsif ($extension eq $nonansi_obj)
 +      elsif ($extension eq $obj)
        {
            # This is probably the result of a direct suffix rule.
            # In this case we just accept the rewrite.
@@@ -2185,9 -2314,9 +2185,9 @@@ sub handle_lib_object
    my ($xname, $varname) = @_;
  
    my $var = var ($varname);
 -  prog_error "handle_lib_objects: `$varname' undefined"
 +  prog_error "`$varname' undefined"
      unless $var;
 -  prog_error "handle_lib_objects: unexpected variable name `$varname'"
 +  prog_error "unexpected variable name `$varname'"
      unless $varname =~ /^(.*)(?:LIB|LD)ADD$/;
    my $prefix = $1 || 'AM_';
  
               # FIXME: should display a stack of nested variables
               # as context when $var != $subvar.
               err_var ($var, "linker flags such as `$val' belong in "
 -                      . "`${prefix}LDFLAGS");
 +                      . "`${prefix}LDFLAGS'");
             }
           return ();
         }
@@@ -2380,7 -2509,8 +2380,7 @@@ sub check_canonical_spellin
  # Set up the compile suite.
  sub handle_compile ()
  {
 -    return
 -      unless $get_object_extension_was_run;
 +   return if ! $must_handle_compiled_objects;
  
      # Boilerplate.
      my $default_includes = '';
                                'DISTRMS' => join ("\n", @dist_rms)));
      $output_vars .= $vars;
      $output_rules .= "$coms$rules";
 -
 -    # Check for automatic de-ANSI-fication.
 -    if (option 'ansi2knr')
 -      {
 -      my ($ansi2knr_filename, $ansi2knr_where) = @{option 'ansi2knr'};
 -      my $ansi2knr_dir = '';
 -
 -      require_variables ($ansi2knr_where, "option `ansi2knr' is used",
 -                         TRUE, "ANSI2KNR", "U");
 -
 -      # topdir is where ansi2knr should be.
 -      if ($ansi2knr_filename eq 'ansi2knr')
 -        {
 -          # Only require ansi2knr files if they should appear in
 -          # this directory.
 -          require_file ($ansi2knr_where, FOREIGN,
 -                        'ansi2knr.c', 'ansi2knr.1');
 -
 -          # ansi2knr needs to be built before subdirs, so unshift it
 -          # rather then pushing it.
 -          unshift (@all, '$(ANSI2KNR)');
 -        }
 -      else
 -        {
 -          $ansi2knr_dir = dirname ($ansi2knr_filename);
 -        }
 -
 -      $output_rules .= &file_contents ('ansi2knr',
 -                                       new Automake::Location,
 -                                       'ANSI2KNR-DIR' => $ansi2knr_dir);
 -
 -    }
  }
  
  # handle_libtool ()
@@@ -2469,7 -2631,6 +2469,7 @@@ sub handle_program
                                  'bin', 'sbin', 'libexec', 'pkglibexec',
                                  'noinst', 'check');
    return if ! @proglist;
 +  $must_handle_compiled_objects = 1;
  
    my $seen_global_libobjs =
      var ('LDADD') && &handle_lib_objects ('', 'LDADD');
        my ($where, $one_file) = @$pair;
  
        my $seen_libobjs = 0;
 -      my $obj = get_object_extension '.$(OBJEXT)';
 +      my $obj = '.$(OBJEXT)';
  
        $known_programs{$one_file} = $where;
  
@@@ -2560,7 -2721,6 +2560,7 @@@ sub handle_librarie
    my @liblist = &am_install_var ('libs', 'LIBRARIES',
                                 'lib', 'pkglib', 'noinst', 'check');
    return if ! @liblist;
 +  $must_handle_compiled_objects = 1;
  
    my @prefix = am_primary_prefixes ('LIBRARIES', 0, 'lib', 'pkglib',
                                    'noinst', 'check');
        $where->push_context ("while processing library `$onelib'");
        $where->set (INTERNAL->get);
  
 -      my $obj = get_object_extension '.$(OBJEXT)';
 +      my $obj = '.$(OBJEXT)';
  
        # Canonicalize names and check for misspellings.
        my $xlib = &check_canonical_spelling ($onelib, '_LIBADD', '_SOURCES',
              &check_libobjs_sources ($xlib, $xlib . '_LIBADD');
            }
        }
 +
 +      if (! $seen_ar)
 +      {
 +        msg ('extra-portability', $where,
 +             "`$onelib': linking libraries using a non-POSIX\n"
 +             . "archiver requires `AM_PROG_AR' in `$configure_ac'")
 +      }
      }
  }
  
@@@ -2673,7 -2826,6 +2673,7 @@@ sub handle_ltlibrarie
    my @liblist = &am_install_var ('ltlib', 'LTLIBRARIES',
                                 'noinst', 'lib', 'pkglib', 'check');
    return if ! @liblist;
 +  $must_handle_compiled_objects = 1;
  
    my @prefix = am_primary_prefixes ('LTLIBRARIES', 0, 'lib', 'pkglib',
                                    'noinst', 'check');
  
                   my $onlyone = ($dir ne $adir) ?
                     ("\nLibtool libraries can be built for only one "
 -                    . "destination.") : "";
 +                    . "destination") : "";
  
                   error ($liblocations{$val}{$acond},
                          "... and should also be $adirtxt$adircond.$onlyone");
        my ($where, $onelib) = @$pair;
  
        my $seen_libobjs = 0;
 -      my $obj = get_object_extension '.lo';
 +      my $obj = '.lo';
  
        # Canonicalize names and check for misspellings.
        my $xlib = &check_canonical_spelling ($onelib, '_LIBADD', '_LDFLAGS',
              &check_libobjs_sources ($xlib, $xlib . '_LIBADD');
            }
        }
 +
 +      if (! $seen_ar)
 +      {
 +        msg ('extra-portability', $where,
 +             "`$onelib': linking libtool libraries using a non-POSIX\n"
 +             . "archiver requires `AM_PROG_AR' in `$configure_ac'")
 +      }
      }
  }
  
@@@ -2926,7 -3071,7 +2926,7 @@@ sub check_typos (
  
          for my $cond ($var->conditions->conds)
            {
 -            $varname =~ /^(?:nobase_)?(?:dist_|nodist_)?(.*)_[[:alnum:]]+$/;
 +            $varname =~ /^(?:EXTRA_)?(?:nobase_)?(?:dist_|nodist_)?(.*)_[[:alnum:]]+$/;
              msg_var ('syntax', $var, "variable `$varname' is defined but no"
                       . " program or\nlibrary has `$1' as canonical name"
                       . " (possible typo)")
@@@ -3115,9 -3260,6 +3115,9 @@@ sub output_texinfo_build_rules ($$$@
  
    $output_rules .= file_contents ('texibuild',
                                  new Automake::Location,
 +                                  AM_V_MAKEINFO    => verbose_flag('MAKEINFO'),
 +                                  AM_V_TEXI2DVI    => verbose_flag('TEXI2DVI'),
 +                                  AM_V_TEXI2PDF    => verbose_flag('TEXI2PDF'),
                                  DEPS             => "@deps",
                                  DEST_PREFIX      => $dpfx,
                                  DEST_INFO_PREFIX => $dipfx,
                                  GENERIC_INFO     => $generic_info,
                                  INSRC            => $insrc,
                                  MAKEINFOFLAGS    => $makeinfoflags,
 +                                  SILENT           => silent_flag(),
                                  SOURCE           => ($generic
                                                       ? '$<' : $source),
                                  SOURCE_INFO      => ($generic_info
                                                       ? '$<' : $source),
                                  SOURCE_REAL      => $source,
                                  SOURCE_SUFFIX    => $ssfx,
 +                                  TEXIQUIET        => verbose_flag('texinfo'),
 +                                  TEXIDEVNULL      => verbose_flag('texidevnull'),
                                  );
    return ($dirstamp, "$dpfx.dvi", "$dpfx.pdf", "$dpfx.ps", "$dpfx.html");
  }
@@@ -3444,7 -3583,6 +3444,7 @@@ sub handle_texinfo (
    my ($mostlyclean, $clean, $maintclean) = ('', '', '');
    if ($info_texinfos)
      {
 +      define_verbose_texinfo;
        ($mostlyclean, $clean, $maintclean) = handle_texinfo_helper ($info_texinfos);
        chomp $mostlyclean;
        chomp $clean;
  
    $output_rules .=  file_contents ('texinfos',
                                   new Automake::Location,
 +                                   AM_V_DVIPS    => verbose_flag('DVIPS'),
                                   MOSTLYCLEAN   => $mostlyclean,
                                   TEXICLEAN     => $clean,
                                   MAINTCLEAN    => $maintclean,
 -                                 'LOCAL-TEXIS' => !!$info_texinfos);
 +                                 'LOCAL-TEXIS' => !!$info_texinfos,
 +                                   TEXIQUIET     => verbose_flag('texinfo'));
  }
  
  
@@@ -3615,7 -3751,6 +3615,7 @@@ sub handle_tag
  {
      my @tag_deps = ();
      my @ctag_deps = ();
 +    my @cscope_deps = ();
      if (var ('SUBDIRS'))
      {
        $output_rules .= ("tags-recursive:\n"
        push (@ctag_deps, 'ctags-recursive');
        &depend ('.PHONY', 'ctags-recursive');
        &depend ('.MAKE', 'ctags-recursive');
 +
 +      $output_rules .= ("cscopelist-recursive:\n"
 +                        . "\tlist=\'\$(SUBDIRS)\'; for subdir in \$\$list; do \\\n"
 +                        # Never fail here if a subdir fails; it
 +                        # isn't important.
 +                        . "\t  test \"\$\$subdir\" = . || (\$(am__cd) \$\$subdir"
 +                        . " && \$(MAKE) \$(AM_MAKEFLAGS) cscopelist); \\\n"
 +                        . "\tdone\n");
 +      push (@cscope_deps, 'cscopelist-recursive');
 +      &depend ('.PHONY', 'cscopelist-recursive');
 +      &depend ('.MAKE', 'cscopelist-recursive');
      }
  
      if (&saw_sources_p (1)
                                         new Automake::Location,
                                         CONFIG    => "@config",
                                         TAGSDIRS  => "@tag_deps",
 -                                       CTAGSDIRS => "@ctag_deps");
 +                                       CTAGSDIRS => "@ctag_deps",
 +                                       CSCOPEDIRS => "@cscope_deps");
  
        set_seen 'TAGS_DEPENDENCIES';
      }
      elsif (reject_var ('TAGS_DEPENDENCIES',
 -                     "doesn't make sense to define `TAGS_DEPENDENCIES'"
 -                     . "without\nsources or `ETAGS_ARGS'"))
 +                     "it doesn't make sense to define `TAGS_DEPENDENCIES'"
 +                     . " without\nsources or `ETAGS_ARGS'"))
      {
      }
      else
        # Otherwise, it would be possible for a top-level "make TAGS"
        # to fail because some subdirectory failed.
        $output_rules .= "tags: TAGS\nTAGS:\n\n";
 -      # Ditto ctags.
 +      # Ditto ctags and cscope.
        $output_rules .= "ctags: CTAGS\nCTAGS:\n\n";
 -    }
 -}
 -
 -# Handle multilib support.
 -sub handle_multilib
 -{
 -  if ($seen_multilib && $relative_dir eq '.')
 -    {
 -      $output_rules .= &file_contents ('multilib', new Automake::Location);
 -      push (@all, 'all-multi');
 +      $output_rules .= "cscope cscopelist:\n\n";
      }
  }
  
@@@ -3792,7 -3924,7 +3792,7 @@@ sub handle_dist (
        $archive_defined ||=
        grep { option "dist-$_" } qw(shar zip tarZ bzip2 lzip lzma xz);
        error (option 'no-dist-gzip',
 -           "no-dist-gzip specified but no dist-* specified, "
 +           "no-dist-gzip specified but no dist-* specified,\n"
             . "at least one archive format must be enabled")
        unless $archive_defined;
      }
    # directory, we would have discovered it already, so we don't
    # check that.  But if the file is in a subdir without a Makefile,
    # we want to distribute it here if we are doing `.'.  Ugly!
 +  # Also, in some corner cases, it's possible that the following code
 +  # will cause the same file to appear in the $(DIST_COMMON) variables
 +  # of two distinct Makefiles; but this is not a problem, since the
 +  # `distdir' target in `lib/am/distdir.am' can deal with the same
 +  # file being distributed multiple times.
 +  # See also automake bug#9651.
    if ($relative_dir eq '.')
      {
        foreach my $file (split (' ' , $configure_dist_common))
        {
 +        my $dir = dirname ($file);
          push_dist_common ($file)
 -          unless is_make_dir (dirname ($file));
 +          if ($dir eq '.' || ! is_make_dir ($dir));
        }
      }
  
  }
  
  
 -# check_directory ($NAME, $WHERE)
 -# -------------------------------
 -# Ensure $NAME is a directory, and that it uses a sane name.
 -# Use $WHERE as a location in the diagnostic, if any.
 -sub check_directory ($$)
 +# check_directory ($NAME, $WHERE [, $RELATIVE_DIR = "."])
 +# -------------------------------------------------------
 +# Ensure $NAME is a directory (in $RELATIVE_DIR), and that it uses a sane
 +# name.  Use $WHERE as a location in the diagnostic, if any.
 +sub check_directory ($$;$)
  {
 -  my ($dir, $where) = @_;
 +  my ($dir, $where, $reldir) = @_;
 +  $reldir = '.' unless defined $reldir;
  
 -  error $where, "required directory $relative_dir/$dir does not exist"
 -    unless -d "$relative_dir/$dir";
 +  error $where, "required directory $reldir/$dir does not exist"
 +    unless -d "$reldir/$dir";
  
    # If an `obj/' directory exists, BSD make will enter it before
    # reading `Makefile'.  Hence the `Makefile' in the current directory
@@@ -3933,7 -4057,7 +3933,7 @@@ sub check_directories_in_var ($
      (sub
       {
         my ($var, $val, $cond, $full_cond) = @_;
 -       check_directory ($val, $var->rdef ($cond)->location);
 +       check_directory ($val, $var->rdef ($cond)->location, $relative_dir);
         return ();
       },
       undef,
@@@ -3987,7 -4111,7 +3987,7 @@@ sub scan_aclocal_m4 (
        push (@ac_deps, '$(ACLOCAL_M4_SOURCES)');
        msg_var ('obsolete', 'ACLOCAL_M4_SOURCES',
               "`ACLOCAL_M4_SOURCES' is obsolete.\n"
 -             . "It should be safe to simply remove it.");
 +             . "It should be safe to simply remove it");
      }
  
    # Note that it might be possible that aclocal.m4 doesn't exist but
@@@ -4799,58 -4923,6 +4799,58 @@@ sub handle_tests_dejagn
      $output_rules .= file_contents ('dejagnu', new Automake::Location);
  }
  
 +sub handle_per_suffix_test
 +{
 +  my ($test_suffix, %transform) = @_;
 +  my ($pfx, $generic, $parallel_tests_option, $am_exeext);
 +  prog_error ("called with 'parallel-tests' option not set")
 +    unless $parallel_tests_option = option 'parallel-tests';
 +  if ($test_suffix eq '')
 +    {
 +      $pfx = '';
 +      $generic = 0;
 +      $am_exeext = 'FALSE';
 +    }
 +  else
 +    {
 +      prog_error ("test suffix `$test_suffix' lacks leading dot")
 +        unless $test_suffix =~ m/^\.(.*)/;
 +      $pfx = uc ($1) . '_';
 +      $generic = 1;
 +      $am_exeext = exists $configure_vars{'EXEEXT'} ? 'am__EXEEXT'
 +                                                    : 'FALSE';
 +    }
 +  # The "test driver" program, deputed to handle tests protocol used by
 +  # test scripts.  By default, it's assumed that no protocol is used,
 +  # so we fall back to the old "parallel-tests" behaviour, implemented
 +  # by the `test-driver' auxiliary script.
 +  if (! var "${pfx}LOG_DRIVER")
 +    {
 +      require_conf_file ($parallel_tests_option->{position}, FOREIGN,
 +                        'test-driver');
 +      define_variable ("${pfx}LOG_DRIVER",
 +                       "\$(SHELL) $am_config_aux_dir/test-driver",
 +                       INTERNAL);
 +    }
 +  my $driver = '$(' . $pfx . 'LOG_DRIVER)';
 +  my $driver_flags = '$(AM_' . $pfx . 'LOG_DRIVER_FLAGS)'
 +                       . ' $(' . $pfx . 'LOG_DRIVER_FLAGS)';
 +  my $compile = "${pfx}LOG_COMPILE";
 +  define_variable ($compile,
 +                   '$(' . $pfx . 'LOG_COMPILER)'
 +                      . ' $(AM_' .  $pfx . 'LOG_FLAGS)'
 +                      . ' $(' . $pfx . 'LOG_FLAGS)',
 +                     INTERNAL);
 +  $output_rules .= file_contents ('check2', new Automake::Location,
 +                                   GENERIC => $generic,
 +                                   DRIVER => $driver,
 +                                   DRIVER_FLAGS => $driver_flags,
 +                                   COMPILE => '$(' . $compile . ')',
 +                                   EXT => $test_suffix,
 +                                   am__EXEEXT => $am_exeext,
 +                                   %transform);
 +}
 +
  # is_valid_test_extension ($EXT)
  # ------------------------------
  # Return true if $EXT can appear in $(TEST_EXTENSIONS), return false
@@@ -4896,7 -4968,7 +4896,7 @@@ sub handle_test
        append_exeext { exists $known_programs{$_[0]} } 'XFAIL_TESTS'
        if (var ('XFAIL_TESTS'));
  
 -      if (option 'parallel-tests')
 +      if (my $parallel_tests = option 'parallel-tests')
          {
          define_variable ('TEST_SUITE_LOG', 'test-suite.log', INTERNAL);
          my $suff = '.test';
                    return substr ($obj, 0, length ($obj) - length ($test_suffix)) . '.log'
                      if substr ($obj, - length ($test_suffix)) eq $test_suffix;
                  }
 +              my $base = $obj;
                $obj .= '.log';
 -              my $compile = 'LOG_COMPILE';
 -              define_variable ($compile,
 -                               '$(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)', INTERNAL);
 -              $output_rules .= file_contents ('check2', new Automake::Location,
 -                                              GENERIC => 0,
 -                                              OBJ => $obj,
 -                                              SOURCE => $val,
 -                                              COMPILE =>'$(' . $compile . ')',
 -                                              EXT => '',
 -                                              am__EXEEXT => 'FALSE');
 +                handle_per_suffix_test ('',
 +                                        OBJ => $obj,
 +                                        BASE => $base,
 +                                        SOURCE => $val);
                return $obj;
              });
  
              $nhelper++;
              if ($test_suffix ne $at_exeext && $test_suffix ne '')
                {
 -                (my $ext = $test_suffix) =~ s/^\.//;
 -                $ext = uc $ext;
 -                my $compile = $ext . '_LOG_COMPILE';
 -                define_variable ($compile,
 -                                 '$(' . $ext . '_LOG_COMPILER) $(AM_' .  $ext . '_LOG_FLAGS)'
 -                                 . ' $(' . $ext . '_LOG_FLAGS)', INTERNAL);
 -                my $am_exeext = $handle_exeext ? 'am__EXEEXT' : 'FALSE';
 -                $output_rules .= file_contents ('check2', new Automake::Location,
 -                                                GENERIC => 1,
 -                                                OBJ => '',
 -                                                SOURCE => '$<',
 -                                                COMPILE => '$(' . $compile . ')',
 -                                                EXT => $test_suffix,
 -                                                am__EXEEXT => $am_exeext);
 +                  handle_per_suffix_test ($test_suffix,
 +                                          OBJ => '',
 +                                          BASE => '$*',
 +                                          SOURCE => '$<');
                }
            }
 -
 -        define_variable ('TEST_LOGS_TMP', '$(TEST_LOGS:.log=.log-t)', INTERNAL);
 -
 -        $clean_files{'$(TEST_LOGS_TMP)'} = MOSTLY_CLEAN;
          $clean_files{'$(TEST_LOGS)'} = MOSTLY_CLEAN;
 +        $clean_files{'$(TEST_LOGS:.log=.trs)'} = MOSTLY_CLEAN;
          $clean_files{'$(TEST_SUITE_LOG)'} = MOSTLY_CLEAN;
        }
      }
@@@ -5212,11 -5302,11 +5212,11 @@@ sub scan_autoconf_traces ($
                AC_SUBST_TRACE => 1,
                AM_AUTOMAKE_VERSION => 1,
                AM_CONDITIONAL => 2,
 -              AM_ENABLE_MULTILIB => 0,
                AM_GNU_GETTEXT => 0,
                AM_GNU_GETTEXT_INTL_SUBDIR => 0,
                AM_INIT_AUTOMAKE => 0,
                AM_MAINTAINER_MODE => 0,
 +              AM_PROG_AR => 0,
                AM_PROG_CC_C_O => 0,
                AM_SILENT_RULES => 0,
                _AM_SUBST_NOTMAKE => 1,
          if ($seen_init_automake)
            {
              error ($where, "AC_CONFIG_AUX_DIR must be called before "
 -                   . "AM_INIT_AUTOMAKE...", partial => 1);
 +                   . "AM_INIT_AUTOMAKE ...", partial => 1);
              error ($seen_init_automake, "... AM_INIT_AUTOMAKE called here");
            }
          $config_aux_dir = $args[1];
          $config_aux_dir_set_in_configure_ac = 1;
 -        $relative_dir = '.';
          check_directory ($config_aux_dir, $where);
        }
        elsif ($macro eq 'AC_CONFIG_FILES')
        elsif ($macro eq 'AC_CONFIG_LIBOBJ_DIR')
        {
          $config_libobj_dir = $args[1];
 -        $relative_dir = '.';
          check_directory ($config_libobj_dir, $where);
        }
        elsif ($macro eq 'AC_CONFIG_LINKS')
        {
          $configure_cond{$args[1]} = $where;
        }
 -      elsif ($macro eq 'AM_ENABLE_MULTILIB')
 -      {
 -        $seen_multilib = $where;
 -      }
        elsif ($macro eq 'AM_GNU_GETTEXT')
        {
          $seen_gettext = $where;
            }
          elsif (defined $args[1])
            {
 -            exit $exit_code
 -              if (process_global_option_list ($where,
 -                                              split (' ', $args[1])));
 +            my @opts = split (' ', $args[1]);
 +            @opts = map { { option => $_, where => $where } } @opts;
 +            exit $exit_code if process_global_option_list (@opts);
            }
        }
        elsif ($macro eq 'AM_MAINTAINER_MODE')
        {
          $seen_maint_mode = $where;
        }
 +      elsif ($macro eq 'AM_PROG_AR')
 +      {
 +        $seen_ar = $where;
 +      }
        elsif ($macro eq 'AM_PROG_CC_C_O')
        {
          $seen_cc_c_o = $where;
@@@ -5522,7 -5614,7 +5522,7 @@@ sub scan_autoconf_files (
              . "should verify that $configure_ac invokes AM_INIT_AUTOMAKE,"
              . "\nthat aclocal.m4 is present in the top-level directory,\n"
              . "and that aclocal.m4 was recently regenerated "
 -            . "(using aclocal).");
 +            . "(using aclocal)");
      }
    else
      {
              error ($seen_init_automake,
                     "your implementation of AM_INIT_AUTOMAKE comes from " .
                     "an\nold Automake version.  You should recreate " .
 -                   "aclocal.m4\nwith aclocal and run automake again.\n",
 +                   "aclocal.m4\nwith aclocal and run automake again",
                     # $? = 63 is used to indicate version mismatch to missing.
                     exit_code => 63);
            }
            {
              error ($seen_init_automake,
                     "no proper implementation of AM_INIT_AUTOMAKE was " .
 -                   "found,\nprobably because aclocal.m4 is missing...\n" .
 +                   "found,\nprobably because aclocal.m4 is missing.\n" .
                     "You should run aclocal to create this file, then\n" .
 -                   "run automake again.\n");
 +                   "run automake again");
            }
        }
      }
  
    locate_aux_dir ();
  
 -  # Reorder @input_files so that the Makefile that distributes aux
 -  # files is processed last.  This is important because each directory
 -  # can require auxiliary scripts and we should wait until they have
 -  # been installed before distributing them.
 -
 -  # The Makefile.in that distribute the aux files is the one in
 -  # $config_aux_dir or the top-level Makefile.
 -  my $auxdirdist = is_make_dir ($config_aux_dir) ? $config_aux_dir : '.';
 -  my @new_input_files = ();
 -  while (@input_files)
 -    {
 -      my $in = pop @input_files;
 -      my @ins = split (/:/, $output_files{$in});
 -      if (dirname ($ins[0]) eq $auxdirdist)
 -      {
 -        push @new_input_files, $in;
 -        $automake_will_process_aux_dir = 1;
 -      }
 -      else
 -      {
 -        unshift @new_input_files, $in;
 -      }
 -    }
 -  @input_files = @new_input_files;
 -
 -  # If neither the auxdir/Makefile nor the ./Makefile are generated
 -  # by Automake, we won't distribute the aux files anyway.  Assume
 -  # the user know what (s)he does, and pretend we will distribute
 -  # them to disable the error in require_file_internal.
 -  $automake_will_process_aux_dir = 1 if ! is_make_dir ($auxdirdist);
 -
    # Look for some files we need.  Always check for these.  This
    # check must be done for every run, even those where we are only
    # looking at a subdir Makefile.  We must set relative_dir for
 -  # maybe_push_required_file to work.
 +  # push_required_file to work.
    # Sort the files for stable verbose output.
    $relative_dir = '.';
    foreach my $file (sort keys %required_aux_file)
@@@ -5652,7 -5775,13 +5652,7 @@@ sub lang_sub_ob
  # Rewrite a single C source file.
  sub lang_c_rewrite
  {
 -  my ($directory, $base, $ext, $nonansi_obj, $have_per_exec_flags, $var) = @_;
 -
 -  if (option 'ansi2knr' && $base =~ /_$/)
 -    {
 -      # FIXME: include line number in error.
 -      err_am "C source file `$base.c' would be deleted by ansi2knr rules";
 -    }
 +  my ($directory, $base, $ext, $obj, $have_per_exec_flags, $var) = @_;
  
    my $r = LANG_PROCESS;
    if (option 'subdir-objects')
                   . "`AM_PROG_CC_C_O' in `$configure_ac'",
                   uniq_scope => US_GLOBAL,
                   uniq_part => 'AM_PROG_CC_C_O subdir')
 -          unless $seen_cc_c_o || $nonansi_obj eq '.lo';
 +          unless $seen_cc_c_o || $obj eq '.lo';
        }
 -
 -      # In this case we already have the directory information, so
 -      # don't add it again.
 -      $de_ansi_files{$base} = '';
 -    }
 -  else
 -    {
 -      $de_ansi_files{$base} = (($directory eq '.' || $directory eq '')
 -                             ? ''
 -                             : "$directory/");
      }
  
    if (! $seen_cc_c_o
        && $have_per_exec_flags
        && ! option 'subdir-objects'
 -      && $nonansi_obj ne '.lo')
 +      && $obj ne '.lo')
      {
        msg_var ('portability',
               $var, "compiling `$base.c' with per-target flags requires "
@@@ -5815,6 -5954,59 +5815,6 @@@ sub lang_java_rewrit
  # language, etc.  A finish function is only called if a source file of
  # the appropriate type has been seen.
  
 -sub lang_c_finish
 -{
 -    # Push all libobjs files onto de_ansi_files.  We actually only
 -    # push files which exist in the current directory, and which are
 -    # genuine source files.
 -    foreach my $file (keys %libsources)
 -    {
 -      if ($file =~ /^(.*)\.[cly]$/ && -f "$relative_dir/$file")
 -      {
 -          $de_ansi_files{$1} = ''
 -      }
 -    }
 -
 -    if (option 'ansi2knr' && keys %de_ansi_files)
 -    {
 -      # Make all _.c files depend on their corresponding .c files.
 -      my @objects;
 -      foreach my $base (sort keys %de_ansi_files)
 -      {
 -          # Each _.c file must depend on ansi2knr; otherwise it
 -          # might be used in a parallel build before it is built.
 -          # We need to support files in the srcdir and in the build
 -          # dir (because these files might be auto-generated.  But
 -          # we can't use $< -- some makes only define $< during a
 -          # suffix rule.
 -          my $ansfile = $de_ansi_files{$base} . $base . '.c';
 -          $output_rules .= ($base . "_.c: $ansfile \$(ANSI2KNR)\n\t"
 -                            . '$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) '
 -                            . '`if test -f $(srcdir)/' . $ansfile
 -                            . '; then echo $(srcdir)/' . $ansfile
 -                            . '; else echo ' . $ansfile . '; fi` '
 -                            . "| sed 's/^# \\([0-9]\\)/#line \\1/' "
 -                            . '| $(ANSI2KNR) > $@'
 -                            # If ansi2knr fails then we shouldn't
 -                            # create the _.c file
 -                            . " || rm -f \$\@\n");
 -          push (@objects, $base . '_.$(OBJEXT)');
 -          push (@objects, $base . '_.lo')
 -            if var ('LIBTOOL');
 -
 -          # Explicitly clean the _.c files if they are in a
 -          # subdirectory. (In the current directory they get erased
 -          # by a `rm -f *_.c' rule.)
 -          $clean_files{$base . '_.c'} = MOSTLY_CLEAN
 -            if dirname ($base) ne '.';
 -      }
 -
 -      # Make all _.o (and _.lo) files depend on ansi2knr.
 -      # Use a sneaky little hack to make it print nicely.
 -      &pretty_print_rule ('', '', @objects, ':', '$(ANSI2KNR)');
 -    }
 -}
 -
  sub lang_vala_finish_target ($$)
  {
    my ($self, $name) = @_;
@@@ -5956,12 -6148,26 +5956,26 @@@ sub lang_yacc_target_hoo
  
      if ($yflags_contains_minus_d)
        {
-       (my $output_base = $output) =~ s/$KNOWN_EXTENSIONS_PATTERN$//;
-       my $header = $output_base . '.h';
        # Found a `-d' that applies to the compilation of this file.
        # Add a dependency for the generated header file, and arrange
        # for that file to be included in the distribution.
+       # The extension of the output file (e.g., `.c' or `.cxx').
+       # We'll need it to compute the name of the generated header file.
+       (my $output_ext = basename ($output)) =~ s/.*(\.[^.]+)$/$1/;
+       # We know that a yacc input should be turned into either a C or
+       # C++ output file.  We depend on this fact (here and in yacc.am),
+       # so check that it really holds.
+       my $lang = $languages{$extension_map{$output_ext}};
+       prog_error "invalid output name `$output' for yacc file `$input'"
+         if (!$lang || ($lang->name ne 'c' && $lang->name ne 'cxx'));
+       (my $header_ext = $output_ext) =~ s/c/h/g;
+         # Quote $output_ext in the regexp, so that dots in it are taken
+         # as literal dots, not as metacharacters.
+       (my $header = $output) =~ s/\Q$output_ext\E$/$header_ext/;
        foreach my $cond (Automake::Rule::define (${header}, 'internal',
                                                  RULE_AUTOMAKE, TRUE,
                                                  INTERNAL))
  # compile a lex file.
  sub lang_lex_target_hook
  {
-     my ($self, $aggregate, $output, $input) = @_;
-     # If the files are built in the build directory, then we want to
-     # remove them with `make clean'.  If they are in srcdir they
-     # shouldn't be touched.  However, we can't determine this
-     # statically, and the GNU rules say that yacc/lex output files
-     # should be removed by maintainer-clean.  So that's what we do.
-     $clean_files{$output} = MAINTAINER_CLEAN;
+     my ($self, $aggregate, $output, $input, %transform) = @_;
+     # The GNU rules say that yacc/lex output files should be removed
+     # by maintainer-clean.  However, if the files are not distributed,
+     # then we want to remove them with "make clean"; otherwise,
+     # "make distcheck" will fail.
+     $clean_files{$output} = $transform{'DIST_SOURCE'} ? MAINTAINER_CLEAN : CLEAN;
  }
  
  # This is a helper for both lex and yacc.
@@@ -6131,6 -6336,8 +6144,6 @@@ sub register_language (%
    my (%option) = @_;
  
    # Set the defaults.
 -  $option{'ansi'} = 0
 -    unless defined $option{'ansi'};
    $option{'autodep'} = 'no'
      unless defined $option{'autodep'};
    $option{'linker'} = ''
@@@ -6255,7 -6462,7 +6268,7 @@@ sub cond_stack_if ($$$
          my $mac = $_am_macro_for_cond{$cond};
          $text .= "\n  The usual way to define `$cond' is to add ";
          $text .= ($mac =~ / /) ? $mac : "`$mac'";
 -        $text .= "\n  to `$configure_ac' and run `aclocal' and `autoconf' again.";
 +        $text .= "\n  to `$configure_ac' and run `aclocal' and `autoconf' again";
          # These warnings appear in Automake files (depend2.am),
          # so there is no need to display them more than once:
          $scope = US_GLOBAL;
@@@ -6387,11 -6594,22 +6400,11 @@@ sub define_files_variable ($\@$$
  sub define_configure_variable ($)
  {
    my ($var) = @_;
 -
 -  my $pretty = VAR_ASIS;
 -  my $owner = VAR_CONFIGURE;
 -
    # Some variables we do not want to output.  For instance it
    # would be a bad idea to output `U = @U@` when `@U@` can be
    # substituted as `\`.
 -  $pretty = VAR_SILENT if exists $ignored_configure_vars{$var};
 -
 -  # ANSI2KNR is a variable that Automake wants to redefine, so
 -  # it must be owned by Automake.  (It is also used as a proof
 -  # that AM_C_PROTOTYPES has been run, that's why we do not simply
 -  # omit the AC_SUBST.)
 -  $owner = VAR_AUTOMAKE if $var eq 'ANSI2KNR';
 -
 -  Automake::Variable::define ($var, $owner, '', TRUE, subst $var,
 +  my $pretty = exists $ignored_configure_vars{$var} ? VAR_SILENT : VAR_ASIS;
 +  Automake::Variable::define ($var, VAR_CONFIGURE, '', TRUE, subst $var,
                              '', $configure_vars{$var}, $pretty);
  }
  
@@@ -7587,42 -7805,18 +7600,42 @@@ sub locate_aux_dir (
  }
  
  
 -# &maybe_push_required_file ($DIR, $FILE, $FULLFILE)
 +# &push_required_file ($DIR, $FILE, $FULLFILE)
  # --------------------------------------------------
 -# See if we want to push this file onto dist_common.  This function
 -# encodes the rules for deciding when to do so.
 -sub maybe_push_required_file
 +# Push the given file onto DIST_COMMON.
 +sub push_required_file
  {
    my ($dir, $file, $fullfile) = @_;
  
 +  # If the file to be distributed is in the same directory of the
 +  # currently processed Makefile.am, then we want to distribute it
 +  # from this same Makefile.am.
    if ($dir eq $relative_dir)
      {
        push_dist_common ($file);
 -      return 1;
 +    }
 +  # This is needed to allow a construct in a non-top-level Makefile.am
 +  # to require a file in the build-aux directory (see at least the test
 +  # script `test-driver-is-distributed.test').  This is related to the
 +  # automake bug#9546.  Note that the use of $config_aux_dir instead
 +  # of $am_config_aux_dir here is deliberate and necessary.
 +  elsif ($dir eq $config_aux_dir)
 +    {
 +      push_dist_common ("$am_config_aux_dir/$file");
 +    }
 +  # FIXME: another spacial case, for AC_LIBOBJ/AC_LIBSOURCE support.
 +  # We probably need some refactoring of this function and its callers,
 +  # to have a more explicit and systematic handling of all the special
 +  # cases; but, since there are only two of them, this is low-priority
 +  # ATM.
 +  elsif ($config_libobj_dir && $dir eq $config_libobj_dir)
 +    {
 +      # Avoid unsightly '/.'s.
 +      my $am_config_libobj_dir =
 +        '$(top_srcdir)' .
 +        ($config_libobj_dir eq '.' ? "" : "/$config_libobj_dir");
 +      $am_config_libobj_dir =~ s|/*$||;
 +      push_dist_common ("$am_config_libobj_dir/$file");
      }
    elsif ($relative_dir eq '.' && ! &is_make_dir ($dir))
      {
        if $dir =~ m,^\.\.(?:$|/),;
  
        push_dist_common ($fullfile);
 -      return 1;
      }
 -  return 0;
 +  else
 +    {
 +      prog_error "a Makefile in relative directory $relative_dir " .
 +                 "can't add files in directory $dir to DIST_COMMON";
 +    }
  }
  
  
  # than once.
  my %required_file_not_found = ();
  
 -# &require_file_internal ($WHERE, $MYSTRICT, $DIRECTORY, @FILES)
 -# --------------------------------------------------------------
 +# &required_file_check_or_copy ($WHERE, $DIRECTORY, $FILE)
 +# --------------------------------------------------------
  # Verify that the file must exist in $DIRECTORY, or install it.
 -# $MYSTRICT is the strictness level at which this file becomes required.
 -sub require_file_internal ($$$@)
 +sub required_file_check_or_copy ($$$)
  {
 -  my ($where, $mystrict, $dir, @files) = @_;
 +  my ($where, $dir, $file) = @_;
  
 -  foreach my $file (@files)
 +  my $fullfile = "$dir/$file";
 +  my $found_it = 0;
 +  my $dangling_sym = 0;
 +
 +  if (-l $fullfile && ! -f $fullfile)
 +    {
 +      $dangling_sym = 1;
 +    }
 +  elsif (dir_has_case_matching_file ($dir, $file))
      {
 -      my $fullfile = "$dir/$file";
 -      my $found_it = 0;
 -      my $dangling_sym = 0;
 +      $found_it = 1;
 +    }
  
 -      if (-l $fullfile && ! -f $fullfile)
 -      {
 -        $dangling_sym = 1;
 -      }
 -      elsif (dir_has_case_matching_file ($dir, $file))
 -      {
 -        $found_it = 1;
 -        maybe_push_required_file ($dir, $file, $fullfile);
 -      }
 +  # `--force-missing' only has an effect if `--add-missing' is
 +  # specified.
 +  return
 +    if $found_it && (! $add_missing || ! $force_missing);
  
 -      # `--force-missing' only has an effect if `--add-missing' is
 -      # specified.
 -      if ($found_it && (! $add_missing || ! $force_missing))
 -      {
 -        next;
 -      }
 -      else
 -      {
 -        # If we've already looked for it, we're done.  You might
 -        # wonder why we don't do this before searching for the
 -        # file.  If we do that, then something like
 -        # AC_OUTPUT(subdir/foo foo) will fail to put foo.in into
 -        # DIST_COMMON.
 -        if (! $found_it)
 -          {
 -            next if defined $required_file_not_found{$fullfile};
 -            $required_file_not_found{$fullfile} = 1;
 -          }
 +  # If we've already looked for it, we're done.  You might
 +  # wonder why we don't do this before searching for the
 +  # file.  If we do that, then something like
 +  # AC_OUTPUT(subdir/foo foo) will fail to put foo.in into
 +  # DIST_COMMON.
 +  if (! $found_it)
 +    {
 +      return if defined $required_file_not_found{$fullfile};
 +      $required_file_not_found{$fullfile} = 1;
 +    }
 +  if ($dangling_sym && $add_missing)
 +    {
 +      unlink ($fullfile);
 +    }
  
 -        if ($strictness >= $mystrict)
 -          {
 -            if ($dangling_sym && $add_missing)
 -              {
 -                unlink ($fullfile);
 -              }
 +  my $trailer = '';
 +  my $trailer2 = '';
 +  my $suppress = 0;
  
 -            my $trailer = '';
 -            my $trailer2 = '';
 -            my $suppress = 0;
 +  # Only install missing files according to our desired
 +  # strictness level.
 +  my $message = "required file `$fullfile' not found";
 +  if ($add_missing)
 +    {
 +      if (-f "$libdir/$file")
 +        {
 +          $suppress = 1;
  
 -            # Only install missing files according to our desired
 -            # strictness level.
 -            my $message = "required file `$fullfile' not found";
 -            if ($add_missing)
 -              {
 -                if (-f "$libdir/$file")
 -                  {
 -                    $suppress = 1;
 -
 -                    # Install the missing file.  Symlink if we
 -                    # can, copy if we must.  Note: delete the file
 -                    # first, in case it is a dangling symlink.
 -                    $message = "installing `$fullfile'";
 -
 -                    # The license file should not be volatile.
 -                    if ($file eq "COPYING")
 -                      {
 -                        $message .= " using GNU General Public License v3 file";
 -                        $trailer2 = "\n    Consider adding the COPYING file"
 -                                  . " to the version control system"
 -                                  . "\n    for your code, to avoid questions"
 -                                  . " about which license your project uses.";
 -                      }
 +          # Install the missing file.  Symlink if we
 +          # can, copy if we must.  Note: delete the file
 +          # first, in case it is a dangling symlink.
 +          $message = "installing `$fullfile'";
  
 -                    # Windows Perl will hang if we try to delete a
 -                    # file that doesn't exist.
 -                    unlink ($fullfile) if -f $fullfile;
 -                    if ($symlink_exists && ! $copy_missing)
 -                      {
 -                        if (! symlink ("$libdir/$file", $fullfile)
 -                            || ! -e $fullfile)
 -                          {
 -                            $suppress = 0;
 -                            $trailer = "; error while making link: $!";
 -                          }
 -                      }
 -                    elsif (system ('cp', "$libdir/$file", $fullfile))
 -                      {
 -                        $suppress = 0;
 -                        $trailer = "\n    error while copying";
 -                      }
 -                    set_dir_cache_file ($dir, $file);
 -                  }
 +          # The license file should not be volatile.
 +          if ($file eq "COPYING")
 +            {
 +              $message .= " using GNU General Public License v3 file";
 +              $trailer2 = "\n    Consider adding the COPYING file"
 +                        . " to the version control system"
 +                        . "\n    for your code, to avoid questions"
 +                        . " about which license your project uses";
 +            }
  
 -                if (! maybe_push_required_file (dirname ($fullfile),
 -                                                $file, $fullfile))
 -                  {
 -                    if (! $found_it && ! $automake_will_process_aux_dir)
 -                      {
 -                        # We have added the file but could not push it
 -                        # into DIST_COMMON, probably because this is
 -                        # an auxiliary file and we are not processing
 -                        # the top level Makefile.  Furthermore Automake
 -                        # hasn't been asked to create the Makefile.in
 -                        # that distributes the aux dir files.
 -                        error ($where, 'Please make a full run of automake'
 -                               . " so $fullfile gets distributed.");
 -                      }
 -                  }
 -              }
 -            else
 -              {
 -                $trailer = "\n  `automake --add-missing' can install `$file'"
 -                  if -f "$libdir/$file";
 -              }
 +          # Windows Perl will hang if we try to delete a
 +          # file that doesn't exist.
 +          unlink ($fullfile) if -f $fullfile;
 +          if ($symlink_exists && ! $copy_missing)
 +            {
 +              if (! symlink ("$libdir/$file", $fullfile)
 +                  || ! -e $fullfile)
 +                {
 +                  $suppress = 0;
 +                  $trailer = "; error while making link: $!";
 +                }
 +            }
 +          elsif (system ('cp', "$libdir/$file", $fullfile))
 +            {
 +              $suppress = 0;
 +              $trailer = "\n    error while copying";
 +            }
 +          set_dir_cache_file ($dir, $file);
 +        }
 +    }
 +  else
 +    {
 +      $trailer = "\n  `automake --add-missing' can install `$file'"
 +        if -f "$libdir/$file";
 +    }
  
 -            # If --force-missing was specified, and we have
 -            # actually found the file, then do nothing.
 -            next
 -              if $found_it && $force_missing;
 +  # If --force-missing was specified, and we have
 +  # actually found the file, then do nothing.
 +  return
 +    if $found_it && $force_missing;
  
 -            # If we couldn't install the file, but it is a target in
 -            # the Makefile, don't print anything.  This allows files
 -            # like README, AUTHORS, or THANKS to be generated.
 -            next
 -              if !$suppress && rule $file;
 +  # If we couldn't install the file, but it is a target in
 +  # the Makefile, don't print anything.  This allows files
 +  # like README, AUTHORS, or THANKS to be generated.
 +  return
 +    if !$suppress && rule $file;
  
 -            msg ($suppress ? 'note' : 'error', $where, "$message$trailer$trailer2");
 -          }
 -      }
 +  msg ($suppress ? 'note' : 'error', $where, "$message$trailer$trailer2");
 +}
 +
 +
 +# &require_file_internal ($WHERE, $MYSTRICT, $DIRECTORY, $QUEUE, @FILES)
 +# ----------------------------------------------------------------------
 +# Verify that the file must exist in $DIRECTORY, or install it.
 +# $MYSTRICT is the strictness level at which this file becomes required.
 +# Worker threads may queue up the action to be serialized by the master,
 +# if $QUEUE is true
 +sub require_file_internal ($$$@)
 +{
 +  my ($where, $mystrict, $dir, $queue, @files) = @_;
 +
 +  return
 +    unless $strictness >= $mystrict;
 +
 +  foreach my $file (@files)
 +    {
 +      push_required_file ($dir, $file, "$dir/$file");
 +      if ($queue)
 +        {
 +          queue_required_file_check_or_copy ($required_conf_file_queue,
 +                                             QUEUE_CONF_FILE, $relative_dir,
 +                                             $where, $mystrict, @files);
 +        }
 +      else
 +        {
 +          required_file_check_or_copy ($where, $dir, $file);
 +        }
      }
  }
  
  sub require_file ($$@)
  {
      my ($where, $mystrict, @files) = @_;
 -    require_file_internal ($where, $mystrict, $relative_dir, @files);
 +    require_file_internal ($where, $mystrict, $relative_dir, 0, @files);
  }
  
  # &require_file_with_macro ($COND, $MACRO, $MYSTRICT, @FILES)
@@@ -7840,7 -8030,7 +7853,7 @@@ sub require_libsource_with_macro ($$$@
      if ($config_libobj_dir)
        {
        require_file_internal ($macro->rdef ($cond)->location, $mystrict,
 -                             $config_libobj_dir, @files);
 +                             $config_libobj_dir, 0, @files);
        }
      else
        {
        }
  }
  
 -# Queue to push require_conf_file requirements to.
 -my $required_conf_file_queue;
 -
 -# &queue_required_conf_file ($QUEUE, $KEY, $DIR, $WHERE, $MYSTRICT, @FILES)
 -# -------------------------------------------------------------------------
 -sub queue_required_conf_file ($$$$@)
 +# &queue_required_file_check_or_copy ($QUEUE, $KEY, $DIR, $WHERE,
 +#                                     $MYSTRICT, @FILES)
 +# ---------------------------------------------------------------
 +sub queue_required_file_check_or_copy ($$$$@)
  {
      my ($queue, $key, $dir, $where, $mystrict, @files) = @_;
      my @serial_loc;
      $queue->enqueue ($key, $dir, @serial_loc, $mystrict, 0 + @files, @files);
  }
  
 -# &require_queued_conf_file ($QUEUE)
 -# ----------------------------------
 -sub require_queued_conf_file ($)
 +# &require_queued_file_check_or_copy ($QUEUE)
 +# -------------------------------------------
 +sub require_queued_file_check_or_copy ($)
  {
      my ($queue) = @_;
      my $where;
      my @files;
      push @files, $queue->dequeue ()
        foreach (1 .. $nfiles);
 -
 -    # Dequeuing happens outside of per-makefile context, so we have to
 -    # set the variables used by require_file_internal and the functions
 -    # it calls.  Gross!
 -    $relative_dir = $dir;
 -    require_file_internal ($where, $mystrict, $config_aux_dir, @files);
 +    return
 +      unless $strictness >= $mystrict;
 +    foreach my $file (@files)
 +      {
 +        required_file_check_or_copy ($where, $config_aux_dir, $file);
 +      }
  }
  
  # &require_conf_file ($WHERE, $MYSTRICT, @FILES)
  # ----------------------------------------------
 -# Looks in configuration path, as specified by AC_CONFIG_AUX_DIR;
 -# worker threads may queue up the action to be serialized by the master.
 -#
 -# FIXME: this seriously relies on the semantics of require_file_internal
 -# and maybe_push_required_file, in that we exploit the fact that only the
 -# contents of the last handled output file may be impacted (which in turn
 -# is dealt with by the master thread).
 +# Looks in configuration path, as specified by AC_CONFIG_AUX_DIR.
  sub require_conf_file ($$@)
  {
      my ($where, $mystrict, @files) = @_;
 -    if (defined $required_conf_file_queue)
 -      {
 -      queue_required_conf_file ($required_conf_file_queue, QUEUE_CONF_FILE,
 -                                $relative_dir, $where, $mystrict, @files);
 -      }
 -    else
 -      {
 -      require_file_internal ($where, $mystrict, $config_aux_dir, @files);
 -      }
 +    my $queue = defined $required_conf_file_queue ? 1 : 0;
 +    require_file_internal ($where, $mystrict, $config_aux_dir,
 +                           $queue, @files);
  }
  
  
@@@ -8093,6 -8297,7 +8106,6 @@@ sub generate_makefile ($$
        define_pretty_variable ('DIST_SOURCES', TRUE, INTERNAL, @dist_sources);
      }
  
 -  handle_multilib;
    handle_texinfo;
    handle_emacs_lisp;
    handle_python;
  
    check_typos;
  
 -  my ($out_file) = $output_directory . '/' . $makefile_in;
 -
    if ($exit_code != 0)
      {
 -      verb "not writing $out_file because of earlier errors";
 +      verb "not writing $makefile_in because of earlier errors";
        return;
      }
  
 -  if (! -d ($output_directory . '/' . $am_relative_dir))
 -    {
 -      mkdir ($output_directory . '/' . $am_relative_dir, 0755);
 -    }
 +  mkdir ($am_relative_dir, 0755) if ! -d $am_relative_dir;
  
    # We make sure that `all:' is the first target.
    my $output =
    #  * other dependencies, specific to the Makefile.am being processed
    #    (such as the Makefile.am itself, or any Makefile fragment
    #    it includes).
 -  my $timestamp = mtime $out_file;
 +  my $timestamp = mtime $makefile_in;
    if (! $force_generation
        && $configure_deps_greatest_timestamp < $timestamp
        && $output_deps_greatest_timestamp < $timestamp
 -      && $output eq contents ($out_file))
 +      && $output eq contents ($makefile_in))
      {
 -      verb "$out_file unchanged";
 +      verb "$makefile_in unchanged";
        # No need to update.
        return;
      }
  
 -  if (-e $out_file)
 +  if (-e $makefile_in)
      {
 -      unlink ($out_file)
 -      or fatal "cannot remove $out_file: $!\n";
 +      unlink ($makefile_in)
 +      or fatal "cannot remove $makefile_in: $!";
      }
  
 -  my $gm_file = new Automake::XFile "> $out_file";
 -  verb "creating $out_file";
 +  my $gm_file = new Automake::XFile "> $makefile_in";
 +  verb "creating $makefile_in";
    print $gm_file $output;
  }
  
@@@ -8234,7 -8444,7 +8247,7 @@@ sub print_autodist_files (@
  # Print usage information.
  sub usage ()
  {
 -    print "Usage: $0 [OPTION] ... [Makefile]...
 +    print "Usage: $0 [OPTION]... [Makefile]...
  
  Generate Makefile.in for configure from Makefile.am.
  
  # Parse command line.
  sub parse_arguments ()
  {
 -  # Start off as gnu.
 -  set_strictness ('gnu');
 +  my $strict = 'gnu';
 +  my $cygnus = 0;
 +  my $ignore_deps = 0;
 +  my @warnings = ();
  
 -  my $cli_where = new Automake::Location;
    my %cli_options =
      (
       'version' => \&version,
       'help'    => \&usage,
       'libdir=s'       => \$libdir,
 -     'gnu'            => sub { set_strictness ('gnu'); },
 -     'gnits'          => sub { set_strictness ('gnits'); },
 -     'cygnus'         => sub { set_global_option ('cygnus', $cli_where); },
 -     'foreign'          => sub { set_strictness ('foreign'); },
 -     'include-deps'   => sub { unset_global_option ('no-dependencies'); },
 -     'i|ignore-deps'  => sub { set_global_option ('no-dependencies',
 -                                                  $cli_where); },
 +     'gnu'            => sub { $strict = 'gnu'; },
 +     'gnits'          => sub { $strict = 'gnits'; },
 +     'foreign'                => sub { $strict = 'foreign'; },
 +     'cygnus'         => \$cygnus,
 +     'include-deps'   => sub { $ignore_deps = 0; },
 +     'i|ignore-deps'  => sub { $ignore_deps = 1; },
       'no-force'       => sub { $force_generation = 0; },
       'f|force-missing'  => \$force_missing,
 -     'o|output-dir=s' => \$output_directory,
       'a|add-missing'  => \$add_missing,
       'c|copy'         => \$copy_missing,
       'v|verbose'      => sub { setup_channel 'verb', silent => 0; },
 -     'W|warnings=s'     => \&parse_warnings,
 -     # These long options (--Werror and --Wno-error) for backward
 -     # compatibility.  Use -Werror and -Wno-error today.
 -     'Werror'           => sub { parse_warnings 'W', 'error'; },
 -     'Wno-error'        => sub { parse_warnings 'W', 'no-error'; },
 +     'W|warnings=s'     => \@warnings,
       );
  
    use Automake::Getopt ();
    Automake::Getopt::parse_options %cli_options;
  
 -  if (defined $output_directory)
 -    {
 -      msg 'obsolete', "`--output-dir' is deprecated\n";
 -    }
 -  else
 +  set_strictness ($strict);
 +  my $cli_where = new Automake::Location;
 +  set_global_option ('cygnus', $cli_where) if $cygnus;
 +  set_global_option ('no-dependencies', $cli_where) if $ignore_deps;
 +  for my $warning (@warnings)
      {
 -      # In the next release we'll remove this entirely.
 -      $output_directory = '.';
 +      &parse_warnings ('-W', $warning);
      }
  
    return unless @ARGV;
    my $errspec = 0;
    foreach my $arg (@ARGV)
      {
 -      fatal ("empty argument\nTry `$0 --help' for more information.")
 +      fatal ("empty argument\nTry `$0 --help' for more information")
        if ($arg eq '');
  
        # Handle $local:$input syntax.
@@@ -8417,6 -8633,11 +8430,6 @@@ sub get_number_of_thread
    # It doesn't make sense to use more threads than makefiles,
    my $max_threads = @input_files;
  
 -  # but a single worker thread is helpful for exposing bugs.
 -  if ($automake_will_process_aux_dir && $max_threads > 1)
 -    {
 -      $max_threads--;
 -    }
    if ($nthreads > $max_threads)
      {
        $nthreads = $max_threads;
@@@ -8440,11 -8661,18 +8453,11 @@@ sub handle_makefiles_threaded ($
  {
    my ($nthreads) = @_;
  
 -  my @queued_input_files = @input_files;
 -  my $last_input_file = undef;
 -  if ($automake_will_process_aux_dir)
 -    {
 -      $last_input_file = pop @queued_input_files;
 -    }
 -
    # The file queue distributes all makefiles, the message queues
    # collect all serializations needed for respective files.
    my $file_queue = Thread::Queue->new;
    my %msg_queues;
 -  foreach my $file (@queued_input_files)
 +  foreach my $file (@input_files)
      {
        $msg_queues{$file} = Thread::Queue->new;
      }
        });
      }
  
 -  # Queue all normal makefiles.
 -  verb "queuing " . @queued_input_files . " input files";
 -  $file_queue->enqueue (@queued_input_files, (undef) x @threads);
 +  # Queue all makefiles.
 +  verb "queuing " . @input_files . " input files";
 +  $file_queue->enqueue (@input_files, (undef) x @threads);
  
    # Collect and process serializations.
 -  foreach my $file (@queued_input_files)
 +  foreach my $file (@input_files)
      {
        verb "dequeuing messages for " . $file;
        reset_local_duplicates ();
            }
          elsif ($key eq QUEUE_CONF_FILE)
            {
 -            require_queued_conf_file ($queue);
 +            require_queued_file_check_or_copy ($queue);
            }
          else
            {
        $exit_code = $exit_thread[0]
        if ($exit_thread[0] > $exit_code);
      }
 -
 -  # The master processes the last file.
 -  if ($automake_will_process_aux_dir)
 -    {
 -      verb "processing last input file";
 -      handle_makefile ($last_input_file);
 -    }
  }
  
  ################################################################
diff --combined configure.ac
  # along with this program.  If not, see <http://www.gnu.org/licenses/>.
  
  AC_PREREQ([2.68])
 -AC_INIT([GNU Automake], [1.11.0a], [bug-automake@gnu.org])
 +AC_INIT([GNU Automake], [1.11a], [bug-automake@gnu.org])
  
  AC_CONFIG_SRCDIR([automake.in])
  AC_CONFIG_AUX_DIR([lib])
  
  AM_SILENT_RULES([yes])
  
 +AC_CANONICAL_HOST
  AC_CANONICAL_BUILD
  
  # Save the AUTOCONF setting before AM_INIT_AUTOMAKE overrides it; this
@@@ -38,11 -37,7 +38,11 @@@ AC_SUBST([am_AUTORECONF], ["${AUTORECON
  AC_SUBST([am_AUTOHEADER], ["${AUTOHEADER-autoheader}"])
  AC_SUBST([am_AUTOUPDATE], ["${AUTOUPDATE-autoupdate}"])
  
 -AM_INIT_AUTOMAKE([1.10a dist-xz filename-length-max=99 color-tests parallel-tests])
 +dnl We call AC_PROG_CC in an unusual way, and only for use in our
 +dnl testsuite, so also use `no-dependencies' and `no-define' among
 +dnl the automake options to avoid bloating and potential problems.
 +AM_INIT_AUTOMAKE([1.10a dist-xz filename-length-max=99 color-tests
 +                parallel-tests silent-rules no-define no-dependencies])
  
  # The API version is the base version.  We must guarantee
  # compatibility for all releases with the same API version.
  APIVERSION=`echo "$VERSION" | sed -e 's/^\([[0-9]]*\.[[0-9]]*[[a-z]]*\).*$/\1/'`
  AC_SUBST([APIVERSION])
  
 -# A versioned directory, defined here for convenience.
  AC_SUBST([pkgvdatadir], ["\${datadir}/$PACKAGE-$APIVERSION"])
 +AC_SUBST([scriptdir], ["\${pkgvdatadir}"])
 +AC_SUBST([amdir], ["\${pkgvdatadir}/am"])
 +AC_SUBST([automake_acdir], ["\${datadir}/aclocal-$APIVERSION"])
 +AC_SUBST([system_acdir], ["\${datadir}/aclocal"])
  
  # $AUTOMAKE and $ACLOCAL are always run after a `cd $top_srcdir',
  # hence `.' is really what we want for perllibdir, libdir, and acdir.
@@@ -111,6 -103,25 +111,25 @@@ AC_CHECK_PROG([TEX], [tex], [tex]
  # Redirect input from /dev/null, as TeX might otherwise hang waiting
  # for input from the terminal.
  AM_RUN_LOG([$TEX --version </dev/null])
+ # The test suite will skip some tests if no lex or yacc program is
+ # available.
+ # We don't use AC_PROG_LEX nor AC_PROG_YACC here because:
+ #  1. we don't want flex (resp. bison) to be preferred to system lex
+ #     (resp. system yacc);
+ #  2. we don't want $LEX (resp. $YACC) to be defined to ':' (resp. 'yacc')
+ #     by default;
+ #  3. we prefer not to have the variables YFLAGS, LEX_OUTPUT_ROOT and
+ #     LEXLIB to be calculated and/or AC_SUBST'd;
+ #  4. we prefer that the YACC and LEX variables are not reported in the
+ #     configure help screen.
+ AC_CHECK_PROGS([YACC], [yacc byacc 'bison -y'], [false])
+ AC_CHECK_PROGS([LEX], [lex flex], [false])
+ # We don't want YACC and LEX defined as make variables, otherwise the
+ # values determined at configure time will override those from the
+ # environment, even in the make-spawned testcases.
+ AM_SUBST_NOTMAKE([YACC])
+ AM_SUBST_NOTMAKE([LEX])
  
  # Generate man pages.
  AM_MISSING_PROG([HELP2MAN], [help2man])
@@@ -195,9 -206,9 +214,9 @@@ AC_SUBST([MODIFICATION_DELAY]
  AC_PROG_EGREP
  AC_PROG_FGREP
  
 -AC_CACHE_CHECK([whether /bin/sh has working 'set -e' with exit trap],
 +AC_CACHE_CHECK([whether $SHELL has working 'set -e' with exit trap],
  [am_cv_sh_errexit_works],
 -[if /bin/sh -ec "trap 'exit \$?' 0; (exit 77); exit 77"; test $? = 77
 +[if $SHELL -ec "trap 'exit \$?' 0; (exit 77); exit 77"; test $? = 77
  then
    am_cv_sh_errexit_works=yes
  else
@@@ -212,112 -223,6 +231,112 @@@ if test $am_cv_sh_errexit_works = no; t
  fi
  AC_SUBST([sh_errexit_works], [$am_cv_sh_errexit_works])
  
 +
 +###########################################################################
 +
 +# Look for C, C++ and fortran compilers to be used in the testsuite.
 +
 +dnl We don't want to abort our configuration script if no C compiler is
 +dnl available, as such a compiler is only required to run part of the
 +dnl testsuite, not to build or install Automake.  Ditto for C++, Fortran
 +dnl and Fortran 77 compilers.  Unfortunately, autoconf does not offer an
 +dnl easy way to obtain this behaviour, so we'll need a few hacks.
 +
 +dnl We want the body of this macro to expand as a single shell statement,
 +dnl thus we wrap it into { ... } brackets.
 +AC_DEFUN([_AM_WRAP_MSG_ERROR], [ {
 +  AC_MSG_WARN([$1])
 +  am__failed=yes
 +  break
 +} ])
 +
 +AC_DEFUN([_AM_COMPILER_CAN_FAIL], [
 +  m4_pushdef([AC_MSG_FAILURE], m4_defn([_AM_WRAP_MSG_ERROR]))
 +  m4_pushdef([AC_MSG_ERROR],   m4_defn([_AM_WRAP_MSG_ERROR]))
 +  am__failed=no
 +  while :; do
 +     $1
 +     break
 +  done
 +  AS_IF([test $am__failed = yes], [$2])
 +  # We have to clear these cache variables, so that future checks on
 +  # compilers for different languages won't be confused.
 +  unset ac_cv_objext ac_cv_exeext
 +  # We also need to meddle with the autoconf internals to ensure that
 +  # checks to find object and executable extensions will be run anew.
 +  # FIXME: In the long run, the better thing to do would be to fix
 +  # FIXME: autoconf instead ...
 +  m4_undefine([m4_provide(_AC_COMPILER_OBJEXT)])
 +  m4_undefine([m4_provide(_AC_COMPILER_EXEEXT)])
 +  m4_popdef([AC_MSG_FAILURE])
 +  m4_popdef([AC_MSG_ERROR])
 +])
 +
 +# Prefer generic compilers to GNU ones when possible.  This will ensure
 +# more testsuite coverage "in the wild".
 +# Note that we don't look for the MSVC C/C++ compiler here.  This is
 +# deliberate; for more discussion an rationale, see:
 +# <http://lists.gnu.org/archive/html/automake-patches/2012-01/msg00130.html>
 +
 +# C compiler.
 +_AM_COMPILER_CAN_FAIL([AC_PROG_CC([cc gcc])], [CC=false])
 +AS_IF([test x"$GCC" = x"yes"], [am_CC_is_GNU=yes], [am_CC_is_GNU=no])
 +
 +# The list of C++ compilers here has been copied, pasted and edited
 +# from `lib/autoconf/c.m4:AC_PROG_CXX' in the Autoconf distribution.
 +# Keep it in sync, or better again, find out a way to avoid this code
 +# duplication.
 +_AM_COMPILER_CAN_FAIL([AC_PROG_CXX(dnl
 +  [aCC CC FCC KCC RCC xlC_r xlC c++ cxx cc++ gpp g++])],
 +  [CXX=false])
 +AS_IF([test x"$GXX" = x"yes"], [am_CXX_is_GNU=yes], [am_CXX_is_GNU=no])
 +
 +# The lists of Fortran compilers here has been copied, pasted and edited
 +# from file `lib/autoconf/fortran.m4' in the Autoconf distribution.
 +# Keep it in sync, or better again, find out a way to avoid this code
 +# duplication.
 +
 +_AM_COMPILER_CAN_FAIL([AC_PROG_FC(dnl
 +  [xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn nagfor] dnl
 +  [xlf90 f90 pgf90 pghpf epcf90 g95 gfortran])],
 +  [FC=false])
 +# FIXME this won't work as expected until we can assume autoconf 2.69 :-(
 +AS_IF([test x"$GFC" = x"yes"], [am_FC_is_GNU=yes], [am_FC_is_GNU=no])
 +
 +_AM_COMPILER_CAN_FAIL([AC_PROG_F77(dnl
 +  [xlf f77 frt pgf77 cf77 fort77 fl32 af77 g77 gfortran])],
 +  [F77=false])
 +AS_IF([test x"$G77" = x"yes"], [am_F77_is_GNU=yes], [am_F77_is_GNU=no])
 +
 +# Some tests will need the GNU compilers.  Searching for them here would
 +# be overkill, since our testsuite already handles their search and setup
 +# pretty well.  However, in case the compilers detected above at configure
 +# time are not the GNU ones, we cannot use the values of CFLAGS, CXXFLAGS,
 +# FCFLAGS and FFLAGS detected for them with the GNU compilers too, since
 +# it's likely they won't be compatible.  So we allow the user to define
 +# variants of this variables for the GNU compilers separately.
 +
 +test $am_CC_is_GNU = yes && GNU_CFLAGS=${GNU_CFLAGS-$CFLAGS}
 +AC_ARG_VAR([GNU_CFLAGS], [GNU C compiler flags])
 +
 +test $am_CXX_is_GNU = yes && GNU_CXXFLAGS=${GNU_CXXFLAGS-$CXXFLAGS}
 +AC_ARG_VAR([GNU_CXXFLAGS], [GNU C++ compiler flags])
 +
 +test $am_F77_is_GNU = yes && GNU_FCFLAGS=${GNU_FCFLAGS-$FCFLAGS}
 +AC_ARG_VAR([GNU_FCFLAGS], [GNU Fortran compiler flags])
 +
 +test $am_FC_is_GNU = yes && GNU_FFLAGS=${GNU_FFLAGS-$FFLAGS}
 +AC_ARG_VAR([GNU_FFLAGS], [GNU Fortran 77 compiler flags])
 +
 +# If we have been able to find at least a working compiler above, we
 +# know what the object and executable extensions for this platform are.
 +OBJEXT=${ac_cv_objext-UNKNOWN}
 +EXEEXT=${ac_cv_exeext-UNKNOWN}
 +AC_SUBST([OBJEXT])
 +AC_SUBST([EXEEXT])
 +
 +###########################################################################
 +
  AC_CONFIG_FILES([
    Makefile
    contrib/Makefile
    lib/am/Makefile
    m4/Makefile
    tests/Makefile
 -  tests/defs
  ])
 +AC_CONFIG_LINKS([GNUmakefile:GNUmakefile])
 +AC_CONFIG_LINKS([tests/defs:tests/defs])
  AC_CONFIG_FILES([tests/aclocal-${APIVERSION}:tests/aclocal.in],
                  [chmod +x tests/aclocal-${APIVERSION}],
                [APIVERSION=$APIVERSION])
diff --combined doc/automake.texi
@@@ -230,6 -230,7 +230,6 @@@ Building Programs and Librarie
  * Java Support with gcj::       Compiling Java sources using gcj
  * Vala Support::                Compiling Vala sources
  * Support for Other Languages::  Compiling other languages
 -* ANSI::                        Automatic de-ANSI-fication (deprecated, soon to be removed)
  * Dependencies::                Automatic dependency tracking
  * EXEEXT::                      Support for executable extensions
  
@@@ -313,47 -314,16 +313,47 @@@ What Goes in a Distributio
  
  Support for test suites
  
 -* Simple Tests::                Listing programs and scripts in @code{TESTS}
 -* Simple Tests using parallel-tests::  More powerful test driver
 -* DejaGnu Tests::               Interfacing with the external testing framework
 +* Generalities about Testing::  Generic concepts and terminology about testing
 +* Simple Tests::                Listing test scripts in @code{TESTS}
 +* Custom Test Drivers::         Writing and using custom test drivers
 +* Using the TAP test protocol:: Integrating test scripts that use the TAP protocol
 +* DejaGnu Tests::               Interfacing with the @command{dejagnu} testing framework
  * Install Tests::               Running tests on installed packages
  
 +Simple Tests
 +
 +* Scripts-based Testsuites::    Automake-specific concepts and terminology
 +* Serial Test Harness::         Older (and obsolescent) serial test harness
 +* Parallel Test Harness::       Generic concurrent test harness
 +
 +Using the TAP test protocol
 +
 +* Introduction to TAP::
 +* Use TAP with the Automake test harness::
 +* Incompatibilities with other TAP parsers and drivers::
 +* Links and external resources on TAP::
 +
 +Custom Test Drivers
 +
 +* Overview of Custom Test Drivers Support::
 +* Declaring Custom Test Drivers::
 +* API for Custom Test Drivers::
 +
 +API for Custom Test Drivers
 +
 +* Command-line arguments for test drivers::
 +* Log files generation and test results recording::
 +* Testsuite progress output::
 +
 +Changing Automake's Behavior
 +
 +* Options generalities::        Semantics of Automake option
 +* List of Automake options::    A comprehensive list of Automake options
 +
  Miscellaneous Rules
  
 -* Tags::                        Interfacing to etags and mkid
 +* Tags::                        Interfacing to cscope, etags and mkid
  * Suffixes::                    Handling new file extensions
 -* Multilibs::                   Support for multilibs (deprecated, soon to be removed).
  
  Conditionals
  
@@@ -1954,9 -1924,7 +1954,9 @@@ The valid strictness levels are
  Automake will check for only those things that are absolutely
  required for proper operations.  For instance, whereas GNU standards
  dictate the existence of a @file{NEWS} file, it will not be required in
 -this mode.  The name comes from the fact that Automake is intended to be
 +this mode.  This strictness will also turn off some warnings by default
 +(among them, portability warnings).
 +The name comes from the fact that Automake is intended to be
  used for GNU programs; these relaxed rules are not the standard mode of
  operation.
  
@@@ -2278,18 -2246,16 +2278,18 @@@ copies are updated before each release
  source in case you need more recent versions.
  
  @table @code
 -@item ansi2knr.c
 -@itemx ansi2knr.1
 -These two files are used for de-ANSI-fication support (they are
 -deprecated now, and @emph{will be removed} in the next major Automake
 -release; @pxref{ANSI}).
 +@item ar-lib
 +This is a wrapper primarily for the Microsoft lib archiver, to make
 +it more POSIX-like.
  
  @item compile
  This is a wrapper for compilers that do not accept options @option{-c}
  and @option{-o} at the same time.  It is only used when absolutely
 -required.  Such compilers are rare.
 +required.  Such compilers are rare, with the Microsoft C/C++ Compiler
 +as the most notable exception. This wrapper also makes the following
 +common options available for that compiler, while performing file name
 +translation where needed: @option{-I}, @option{-L}, @option{-l},
 +@option{-Wl,} and @option{-Xlinker}.
  
  @item config.guess
  @itemx config.sub
@@@ -2302,6 -2268,14 +2302,6 @@@ you are encouraged to fetch the latest 
  @url{http://savannah.gnu.org/git/?group=config} before making a
  release.
  
 -@item config-ml.in
 -This file is not a program, it is a @file{configure} fragment used for
 -multilib support (@pxref{Multilibs}).  Since the Automake multilib
 -support has been @emph{deprecated} and targeted for removal, this
 -file is going to be @emph{removed from the Automake core} in the next
 -major release.  The master copy of this file is maintained in the GCC
 -tree at @url{http://gcc.gnu.org/svn.html}.
 -
  @item depcomp
  This program understands how to run a compiler so that it will
  generate not only the desired output but also dependency information
@@@ -2338,9 -2312,14 +2338,9 @@@ longer installed automatically, and it 
  @item py-compile
  This is used to byte-compile Python scripts.
  
 -@item symlink-tree
 -This program duplicates a tree of directories, using symbolic links
 -instead of copying files.  Such an operation is performed when building
 -multilibs (@pxref{Multilibs}).  Since the Automake multilib support has
 -been @emph{deprecated} and targeted for removal, this file is going to
 -be @emph{removed from the Automake core} in the next major release.
 -The master copy of this file is maintained in the GCC tree at
 -@url{http://gcc.gnu.org/svn.html}.
 +@item test-driver
 +This implements the default test driver offered by the parallel
 +testsuite harness.
  
  @item texinfo.tex
  Not a program, this file is required for @samp{make dvi}, @samp{make
@@@ -2700,9 -2679,6 +2700,9 @@@ user redefinitions of Automake rules o
  @item portability
  portability issues (e.g., use of @command{make} features that are
  known to be not portable)
 +@item extra-portability
 +extra portability issues related to obscure tools.  One example of such
 +a tool is the Microsoft @command{lib} archiver.
  @item syntax
  weird syntax, unused variables, typos
  @item unsupported
@@@ -2725,12 -2701,6 +2725,12 @@@ are enabled in @option{--gnu} and @opti
  On the other hand, the @option{silent-rules} options (@pxref{Options})
  turns off portability warnings about recursive variable expansions.
  
 +@c Checked by extra-portability.test
 +Turning off @samp{portability} will also turn off @samp{extra-portability},
 +and similarly turning on @samp{extra-portability} will also turn on
 +@samp{portability}.  However, turning on @samp{portability} or turning
 +off @samp{extra-portability} will not affect the other category.
 +
  @vindex WARNINGS
  The environment variable @env{WARNINGS} can contain a comma separated
  list of categories to enable.  It will be taken into account before the
@@@ -2951,25 -2921,13 +2951,25 @@@ The Autoconf Manual}
  @item AC_CONFIG_AUX_DIR
  Automake will look for various helper scripts, such as
  @file{install-sh}, in the directory named in this macro invocation.
 -@c This list is accurate relative to version 1.8
 -(The full list of scripts is: @file{config.guess}, @file{config.sub},
 -@file{depcomp}, @file{elisp-comp}, @file{compile}, @file{install-sh},
 -@file{ltmain.sh}, @file{mdate-sh}, @file{missing}, @file{mkinstalldirs},
 -@file{py-compile}, @file{texinfo.tex}, and @file{ylwrap}.)  Not all
 -scripts are always searched for; some scripts will only be sought if the
 -generated @file{Makefile.in} requires them.
 +@c This list is accurate relative to version 1.11
 +(The full list of scripts is:
 +@file{ar-lib},
 +@file{config.guess},
 +@file{config.sub},
 +@file{depcomp},
 +@file{elisp-comp},
 +@file{compile},
 +@file{install-sh},
 +@file{ltmain.sh},
 +@file{mdate-sh},
 +@file{missing},
 +@file{mkinstalldirs},
 +@file{py-compile},
 +@file{test-driver},
 +@file{texinfo.tex},
 +@file{ylwrap}.)
 +Not all scripts are always searched for; some scripts
 +will only be sought if the generated @file{Makefile.in} requires them.
  
  If @code{AC_CONFIG_AUX_DIR} is not given, the scripts are looked for in
  their standard locations.  For @file{mdate-sh},
@@@ -3097,6 -3055,11 +3097,6 @@@ this way, e.g., @code{AC_PATH_XTRA} def
  @code{$(X_CFLAGS)} and @code{$(X_LIBS)} in any @file{Makefile.am}
  if @code{AC_PATH_XTRA} is called.
  
 -@item AM_C_PROTOTYPES
 -This is required when using the deprecated de-ANSI-fication feature;
 -@pxref{ANSI}.  @emph{It will be removed} in the next major Automake
 -release.
 -
  @item AM_CONDITIONAL
  This introduces an Automake conditional (@pxref{Conditionals}).
  
@@@ -3244,6 -3207,11 +3244,6 @@@ Look for the system-wide third-party ma
  @file{dirlist} file) in @var{dir} instead of in the installation
  directory.  This is typically used for debugging.
  
 -@item --acdir=@var{dir}
 -@opindex --acdir
 -@emph{Deprecated} shorthand for ``@option{--automake-acdir=@var{dir}
 ---system-acdir=@var{dir}}''.  Will be removed in future aclocal versions.
 -
  @item --diff[=@var{command}]
  @opindex --diff
  Run @var{command} on M4 file that would be installed or overwritten
@@@ -3940,6 -3908,21 +3940,6 @@@ Automake ships with several Autoconf ma
  
  @table @code
  
 -@item AM_ENABLE_MULTILIB
 -@acindex AM_ENABLE_MULTILIB
 -
 -This is used when a ``multilib'' library is being built.  Please be
 -aware that multilib support @emph{will be removed} from the Automake
 -core in the next major release, and then @emph{this macro will go away
 -as well} (even if a ``frozen'' version of will remain available in the
 -@file{contrib/} directory of the Automake distribution).
 -
 -The first optional argument is the name of the @file{Makefile} being
 -generated; it defaults to @samp{Makefile}.  The second optional argument
 -is used to find the top source directory; it defaults to the empty
 -string (generally this should not be used unless you are familiar with
 -the internals).  @xref{Multilibs}.
 -
  @item AM_INIT_AUTOMAKE([OPTIONS])
  @itemx AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
  @acindex AM_INIT_AUTOMAKE
@@@ -4017,15 -4000,6 +4017,15 @@@ environment, or use the @option{--with-
  @command{configure} to explicitly set the correct path (if you're sure
  you have an @command{emacs} that supports Emacs Lisp).
  
 +@item AM_PROG_AR(@ovar{act-if-fail})
 +@acindex AM_PROG_AR
 +@vindex AR
 +You must use this macro when you use the archiver in your project, if
 +you want support for unusual archivers such as Microsoft @command{lib}.
 +The content of the optional argument is executed if the archiver
 +interface is not recognized; the default action is to abort configure
 +with an error message.
 +
  @item AM_PROG_AS
  @acindex AM_PROG_AS
  @vindex CCAS
@@@ -4097,6 -4071,17 +4097,6 @@@ automatically (@pxref{autoupdate Invoca
  Autoconf Manual}).
  
  @table @code
 -@item AM_C_PROTOTYPES
 -@acindex AM_C_PROTOTYPES
 -@vindex ANSI2KNR
 -@vindex U
 -Check to see if function prototypes are understood by the compiler.  If
 -so, define @samp{PROTOTYPES} and set the output variables @code{U} and
 -@code{ANSI2KNR} to the empty string.  Otherwise, set @code{U} to
 -@samp{_} and @code{ANSI2KNR} to @samp{./ansi2knr}.  Automake used these
 -values to implement the deprecated de-ANSI-fication feature; however,
 -support for @emph{that feature will be removed} in the next major Automake
 -release, and then @emph{these macros and variables will go away as well}.
  
  @item AM_CONFIG_HEADER
  @acindex AM_CONFIG_HEADER
@@@ -4147,6 -4132,21 +4147,6 @@@ system.  If so, set the shell variable 
  @samp{yes}.  If not, set the variable to @samp{no}.  This macro is obsolete,
  you should use Autoconf's @code{AC_SYS_POSIX_TERMIOS} instead.
  
 -@item AM_WITH_REGEX
 -@acindex AM_WITH_REGEX
 -@vindex WITH_REGEX
 -@opindex --with-regex
 -@cindex regex package
 -@cindex rx package
 -Adds @option{--with-regex} to the @command{configure} command line.  If
 -specified (the default), then the @samp{regex} regular expression
 -library is used, @file{regex.o} is put into @code{LIBOBJS}, and
 -@code{WITH_REGEX} is defined.  If @option{--without-regex} is given, then
 -the @samp{rx} regular expression library is used, and @file{rx.o} is put
 -into @code{LIBOBJS}.  This macro is obsolete now (since @samp{rx} doesn't
 -seem to be maintained), and @emph{will be removed the next major version
 -of Automake}.  Consider using gnulib if you need regex functionality.
 -
  @end table
  
  
@@@ -4625,7 -4625,6 +4625,7 @@@ AC_INIT([hand], [1.2]
  AC_CONFIG_AUX_DIR([.])
  AM_INIT_AUTOMAKE
  AC_PROG_CC
 +AM_PROG_AR
  AC_PROG_RANLIB
  AC_CONFIG_FILES([Makefile])
  AC_OUTPUT
@@@ -4694,6 -4693,7 +4694,6 @@@ to build programs and libraries
  * Java Support with gcj::       Compiling Java sources using gcj
  * Vala Support::                Compiling Vala sources
  * Support for Other Languages::  Compiling other languages
 -* ANSI::                        Automatic de-ANSI-fication (deprecated, soon to be removed)
  * Dependencies::                Automatic dependency tracking
  * EXEEXT::                      Support for executable extensions
  @end menu
@@@ -5070,14 -5070,12 +5070,14 @@@ by invoking @samp{$(AR) $(ARFLAGS)} fol
  library and the list of objects, and finally by calling
  @samp{$(RANLIB)} on that library.  You should call
  @code{AC_PROG_RANLIB} from your @file{configure.ac} to define
 -@code{RANLIB} (Automake will complain otherwise).  @code{AR} and
 -@code{ARFLAGS} default to @code{ar} and @code{cru} respectively; you
 -can override these two variables my setting them in your
 -@file{Makefile.am}, by @code{AC_SUBST}ing them from your
 -@file{configure.ac}, or by defining a per-library @code{maude_AR}
 -variable (@pxref{Program and Library Variables}).
 +@code{RANLIB} (Automake will complain otherwise).  You should also
 +call @code{AM_PROG_AR} to define @code{AR}, in order to support unusual
 +archivers such as Microsoft lib.  @code{ARFLAGS} will default to
 +@code{cru}; you can override this variable by setting it in your
 +@file{Makefile.am} or by @code{AC_SUBST}ing it from your
 +@file{configure.ac}.  You can override the @code{AR} variable by
 +defining a per-library @code{maude_AR} variable (@pxref{Program and
 +Library Variables}).
  
  @cindex Empty libraries
  Be careful when selecting library components conditionally.  Because
@@@ -6188,12 -6186,16 +6188,16 @@@ cause the intermediate file to be name
  @file{y.tab.c}, which is more traditional).
  
  The extension of a yacc source file is used to determine the extension
- of the resulting C or C++ file.  Files with the extension @file{.y}
- will be turned into @file{.c} files; likewise, @file{.yy} will become
- @file{.cc}; @file{.y++}, @file{c++}; @file{.yxx}, @file{.cxx}; and
- @file{.ypp}, @file{.cpp}.
- Likewise, lex source files can be used to generate C or C++; the
+ of the resulting C or C++ source and header files.  Note that header
+ files are generated only when the @option{-d} Yacc option is used; see
+ below for more information about this flag, and how to specify it.
+ Files with the extension @file{.y} will thus be turned into @file{.c}
+ sources and @file{.h} headers; likewise, @file{.yy} will become
+ @file{.cc} and @file{.hh}, @file{.y++} will become @file{c++} and
+ @file{h++}, @file{.yxx} will become @file{.cxx} and @file{.hxx},
+ and @file{.ypp} will become @file{.cpp} and @file{.hpp}.
+ Similarly, lex source files can be used to generate C or C++; the
  extensions @file{.l}, @file{.ll}, @file{.l++}, @file{.lxx}, and
  @file{.lpp} are recognized.
  
@@@ -6877,6 -6879,85 +6881,6 @@@ on user demand
  Some limited support for adding your own languages is available via the
  suffix rule handling (@pxref{Suffixes}).
  
 -
 -@node ANSI
 -@section Automatic de-ANSI-fication (deprecated, soon to be removed)
 -
 -@cindex de-ANSI-fication, defined
 -
 -@emph{The features described in this section are deprecated; you must
 -not use any of them in new code, and remove their use from older but
 -still maintained code: they will be withdrawn in the next major
 -Automake release.}
 -
 -When the C language was standardized in 1989, there was a long
 -transition period where package developers needed to worry about
 -porting to older systems that did not support ANSI C by default.
 -These older systems are no longer in practical use and are no longer
 -supported by their original suppliers, so developers need not worry
 -about this problem any more.
 -
 -Automake allows you to write packages that are portable to K&R C by
 -@dfn{de-ANSI-fying} each source file before the actual compilation takes
 -place.
 -
 -@vindex AUTOMAKE_OPTIONS
 -@opindex ansi2knr
 -
 -If the @file{Makefile.am} variable @code{AUTOMAKE_OPTIONS}
 -(@pxref{Options}) contains the option @option{ansi2knr} then code to
 -handle de-ANSI-fication is inserted into the generated
 -@file{Makefile.in}.
 -
 -This causes each C source file in the directory to be treated as ANSI C@.
 -If an ANSI C compiler is available, it is used.  If no ANSI C compiler
 -is available, the @command{ansi2knr} program is used to convert the source
 -files into K&R C, which is then compiled.
 -
 -The @command{ansi2knr} program is simple-minded.  It assumes the source
 -code will be formatted in a particular way; see the @command{ansi2knr} man
 -page for details.
 -
 -@acindex AM_C_PROTOTYPES
 -Support for the obsolete de-ANSI-fication feature
 -requires the source files @file{ansi2knr.c}
 -and @file{ansi2knr.1} to be in the same package as the ANSI C source;
 -these files are distributed with Automake.  Also, the package
 -@file{configure.ac} must call the macro @code{AM_C_PROTOTYPES}
 -(@pxref{Macros}).
 -
 -Automake also handles finding the @command{ansi2knr} support files in some
 -other directory in the current package.  This is done by prepending the
 -relative path to the appropriate directory to the @command{ansi2knr}
 -option.  For instance, suppose the package has ANSI C code in the
 -@file{src} and @file{lib} subdirectories.  The files @file{ansi2knr.c} and
 -@file{ansi2knr.1} appear in @file{lib}.  Then this could appear in
 -@file{src/Makefile.am}:
 -
 -@example
 -AUTOMAKE_OPTIONS = ../lib/ansi2knr
 -@end example
 -
 -If no directory prefix is given, the files are assumed to be in the
 -current directory.
 -
 -Note that automatic de-ANSI-fication will not work when the package is
 -being built for a different host architecture.  That is because
 -@command{automake} currently has no way to build @command{ansi2knr}
 -for the build machine.
 -
 -@c FIXME: this paragraph might be better moved to an `upgrading' section.
 -@cindex @code{LTLIBOBJS} and @code{ansi2knr}
 -@cindex @code{LIBOBJS} and @code{ansi2knr}
 -@cindex @code{ansi2knr} and @code{LTLIBOBJS}
 -@cindex @code{ansi2knr} and @code{LIBOBJS}
 -Using @code{LIBOBJS} with source de-ANSI-fication used to require
 -hand-crafted code in @file{configure} to append @samp{$U} to basenames
 -in @code{LIBOBJS}.  This is no longer true today.  Starting with version
 -2.54, Autoconf takes care of rewriting @code{LIBOBJS} and
 -@code{LTLIBOBJS}.  (@pxref{AC_LIBOBJ vs LIBOBJS, , @code{AC_LIBOBJ}
 -vs.@: @code{LIBOBJS}, autoconf, The Autoconf Manual})
 -
  @node Dependencies
  @section Automatic dependency tracking
  
@@@ -8604,9 -8685,9 +8608,9 @@@ distributions in various formats.  Thei
  @item @code{dist-bzip2}
  Generate a bzip2 tar archive of the distribution.  bzip2 archives are
  frequently smaller than gzipped archives.
 -By default, this rule makes @samp{bzip2} use a compression option of
 -@option{-9}.  To make it use a different one, set the @env{BZIP2}
 -environment variable.  For example, @samp{make dist-bzip2 BZIP2=-7}.
 +By default, this rule makes @samp{bzip2} use a compression option of @option{-9}.
 +To make it use a different one, set the @env{BZIP2} environment variable.
 +For example, @samp{make dist-bzip2 BZIP2=-7}.
  @trindex dist-bzip2
  
  @item @code{dist-gzip}
@@@ -8614,7 -8695,7 +8618,7 @@@ Generate a gzip tar archive of the dist
  @trindex dist-gzip
  
  @item @code{dist-lzip}
 -Generate a @samp{lzip} tar archive of the distribution.  @command{lzip}
 +Generate an @samp{lzip} tar archive of the distribution.  @command{lzip}
  archives are frequently smaller than @command{bzip2}-compressed archives.
  @trindex dist-lzip
  
@@@ -8663,265 -8744,92 +8667,265 @@@ default, only the @code{dist-gzip} targ
  @cindex @code{make check}
  @trindex check
  
 -Automake supports three forms of test suites, the first two of which
 -are very similar.
 +Automake can generate code to handle two kinds of test suites.  One is
 +based on integration with the @command{dejagnu} framework.  The other
 +(and most used) form is based on the use of generic test scripts, and
 +its activation is triggered by the definition of the special @code{TESTS}
 +variable.  This second form allows for various degrees of sophistication
 +and customization; in particular, it allows for concurrent execution
 +of test scripts, use of established test protocols such as TAP, and
 +definition of custom test drivers and test runners.
 +
 +@noindent
 +In either case, the testsuite is invoked via @samp{make check}.
  
  @menu
 -* Simple Tests::                Listing programs and scripts in @code{TESTS}
 -* Simple Tests using parallel-tests::  More powerful test driver
 -* DejaGnu Tests::               Interfacing with the external testing framework
 +* Generalities about Testing::  Concepts and terminology about testing
 +* Simple Tests::                Listing test scripts in @code{TESTS}
 +* Custom Test Drivers::         Writing and using custom test drivers
 +* Using the TAP test protocol:: Integrating test scripts that use the TAP protocol
 +* DejaGnu Tests::               Interfacing with the @command{dejagnu} testing framework
  * Install Tests::               Running tests on installed packages
  @end menu
  
 +@node Generalities about Testing
 +@section Generalities about Testing
 +
 +The purpose of testing is to determine whether a program or system behaves
 +as expected (e.g., known inputs produce the expected outputs, error
 +conditions are correctly handled or reported, and older bugs do not
 +resurface).
 +
 +@cindex test case
 +The minimal unit of testing is usually called @emph{test case}, or simply
 +@emph{test}.  How a test case is defined or delimited, and even what
 +exactly @emph{constitutes} a test case, depends heavily on the testing
 +paradigm and/or framework in use, so we won't attempt any more precise
 +definition.  The set of the test cases for a given program or system
 +constitutes its @emph{testsuite}.
 +
 +@cindex test harness
 +@cindex testsuite harness
 +A @emph{test harness} (also @emph{testsuite harness}) is a program or
 +software component that executes all (or part of) the defined test cases,
 +analyzes their outcomes, and report or register these outcomes
 +appropriately.  Again, the details of how this is accomplished (and how
 +the developer and user can influence it or interface with it) varies
 +wildly, and we'll attempt no precise definition.
 +
 +@cindex test pass
 +@cindex test failure
 +A test is said to @emph{pass} when it can determine that the condition or
 +behaviour it means to verify holds, and is said to @emph{fail} when it can
 +determine that such condition of behaviour does @emph{not} hold.
 +
 +@cindex test skip
 +Sometimes, tests can rely on non-portable tools or prerequisites, or
 +simply make no sense on a given system (for example, a test checking a
 +Windows-specific feature makes no sense on a GNU/Linux system).  In this
 +case, accordingly to the definition above, the tests can neither be
 +considered passed nor failed; instead, they are @emph{skipped} -- i.e.,
 +they are not run, or their result is anyway ignored for what concerns
 +the count of failures an successes.  Skips are usually explicitly
 +reported though, so that the user will be aware that not all of the
 +testsuite has really run.
 +
 +@cindex xfail
 +@cindex expected failure
 +@cindex expected test failure
 +@cindex xpass
 +@cindex unexpected pass
 +@cindex unexpected test pass
 +It's not uncommon, especially during early development stages, that some
 +tests fail for known reasons, and that the developer doesn't want to
 +tackle these failures immediately (this is especially true when the
 +failing tests deal with corner cases).  In this situation, the better
 +policy is to declare that each of those failures is an @emph{expected
 +failure} (or @emph{xfail}).  In case a test that is expected to fail ends
 +up passing instead, many testing environments will flag the result as a
 +special kind of failure called @emph{unexpected pass} (or @emph{xpass}).
 +
 +@cindex hard error
 +@cindex Distinction between errors and failures in testsuites
 +Many testing environments and frameworks distinguish between test failures
 +and hard errors.  As we've seen, a test failure happens when some invariant
 +or expected behaviour of the software under test is not met.  An @emph{hard
 +error} happens when e.g., the set-up of a test case scenario fails, or when
 +some other unexpected or highly undesirable condition is encountered (for
 +example, the program under test experiences a segmentation fault).
 +
 +@emph{TODO}: Links to other test harnesses (esp. those sharing our
 +terminology)?
 +
  @node Simple Tests
  @section Simple Tests
  
 -If the variable @code{TESTS} is defined, its value is taken to be a
 -list of programs or scripts to run in order to do the testing.
 -Programs needing data files should look for them in @code{srcdir}
 -(which is both an environment variable and a make variable) so they
 -work when building in a separate directory (@pxref{Build Directories,
 -, Build Directories , autoconf, The Autoconf Manual}), and in
 -particular for the @code{distcheck} rule (@pxref{Checking the
 -Distribution}).
 -
 -For each of the @code{TESTS}, the result of execution is printed along
 -with the test name, where @code{PASS} denotes a successful test,
 -@code{FAIL} denotes a failed test, @code{XFAIL} an expected failure,
 -@code{XPASS} an unexpected pass for a test that is supposed to fail,
 -and @code{SKIP} denotes a skipped test.
 +@menu
 +* Scripts-based Testsuites::    Automake-specific concepts and terminology
 +* Serial Test Harness::         Older (and obsolescent) serial test harness
 +* Parallel Test Harness::       Generic concurrent test harness
 +@end menu
 +
 +@node Scripts-based Testsuites
 +@subsection Scripts-based Testsuites
 +
 +If the special variable @code{TESTS} is defined, its value is taken to be
 +a list of programs or scripts to run in order to do the testing.  Under
 +the appropriate circumstances, it's possible for @code{TESTS} to list
 +also data files to be passed to one or more test scripts defined by
 +different means (the so-called ``log compilers'', @pxref{Parallel Test
 +Harness}).
 +
 +Test scripts can be executed serially or concurrently.  Automake
 +supports both these kinds of test execution, with the serial test harness
 +being the default (for backward-compatibility reasons only, as its use
 +is nowadays discouraged).  The concurrent test harness relies on the
 +concurrence capabilities (if any) offered by the underlying @command{make}
 +implementation, and can thus only be as good as those are.
 +
 +By default, only the exit statuses of the test scripts are considered when
 +determining the testsuite outcome.  But Automake allows also the use of
 +more complex test protocols, either standard (@pxref{Using the TAP test
 +protocol}) or custom (@pxref{Custom Test Drivers}).  Note that you can
 +enable such protocols only when the parallel harness is used: they won't
 +work with the serial test harness.  In the rest of this section we are
 +going to concentrate mostly on protocol-less tests, since  we'll have later
 +a whole section devoted to the use of test protocols (again, @pxref{Custom
 +Test Drivers}).
  
  @cindex Exit status 77, special interpretation
 +@cindex Exit status 99, special interpretation
 +When no test protocol is in use, an exit status of 0 from a test script will
 +denote a success, an exit status of 77 a skipped test, an exit status of 99
 +an hard error, and any other exit status will denote a failure.
  
 -The number of failures will be printed at the end of the run.  If a
 -given test program exits with a status of 77, then its result is ignored
 -in the final count.  This feature allows non-portable tests to be
 -ignored in environments where they don't make sense.
 +@cindex Tests, expected failure
 +@cindex Expected test failure
 +@vindex XFAIL_TESTS
 +@vindex DISABLE_HARD_ERRORS
 +@cindex Disabling hard errors
 +You may define the variable @code{XFAIL_TESTS} to a list of tests
 +(usually a subset of @code{TESTS}) that are expected to fail; this will
 +effectively reverse the result of those tests (with the provision that
 +skips and hard errors remain untouched).  You may also instruct the
 +testsuite harness to treat hard errors like simple failures, by defining
 +the @code{DISABLE_HARD_ERRORS} make variable to a nonempty value.
 +
 +Note however that, for tests based on more complex test protocols,
 +the exact effects of @code{XFAIL_TESTS} and @code{DISABLE_HARD_ERRORS}
 +might change, or they might even have no effect at all (for example,
 +@c Keep this in sync with tap-no-disable-hard-errors.test.
 +in tests using TAP, there is not way to disable hard errors, and the
 +@code{DISABLE_HARD_ERRORS} variable has no effect on them).
 +
 +@anchor{Testsuite progress on console}
 +@cindex Testsuite progress on console
 +The result of each test case run by the scripts in @code{TESTS} will be
 +printed on standard output, along with the test name.  For test protocols
 +that allow more test cases per test script (such as TAP), a number,
 +identifier and/or brief description specific for the single test case is
 +expected to be printed in addition to the name of the test script.  The
 +possible results (whose meanings should be clear from the previous
 +@ref{Generalities about Testing}) are @code{PASS}, @code{FAIL},
 +@code{SKIP}, @code{XFAIL}, @code{XPASS} and @code{ERROR}.  Here is an
 +example of output from an hypothetical testsuite that uses both plain
 +and TAP tests:
 +@c Keep in sync with tap-doc.test.
 +@example
 +PASS: foo.sh
 +PASS: zardoz.tap 1 - Daemon started
 +PASS: zardoz.tap 2 - Daemon responding
 +SKIP: zardoz.tap 3 - Daemon uses /proc # SKIP /proc is not mounted
 +PASS: zardoz.tap 4 - Daemon stopped
 +SKIP: bar.sh
 +PASS: mu.tap 1
 +XFAIL: mu.tap 2 # TODO frobnication not yet implemented
 +@end example
  
 +@noindent
 +A testsuite summary (expected to report at least the number of run,
 +skipped and failed tests) will be printed at the end of the testsuite
 +run.
 +
 +@anchor{Simple tests and color-tests}
  @vindex AM_COLOR_TESTS
 +@cindex Colorized testsuite output
  If the Automake option @code{color-tests} is used (@pxref{Options})
  and standard output is connected to a capable terminal, then the test
  results and the summary are colored appropriately.  The user can disable
  colored output by setting the @command{make} variable
  @samp{AM_COLOR_TESTS=no}, or force colored output even without a connecting
 -terminal with @samp{AM_COLOR_TESTS=always}.
 -
 -Note that the semantics of some @command{make} implementations when used
 -in parallel mode (@pxref{Parallel make,,, autoconf, The Autoconf Manual})
 -can cause the automatic detection of a connection to a capable terminal
 -to fail.  In that case, you can still resort to the use of
 -@samp{AM_COLOR_TESTS=always}.
 +terminal with @samp{AM_COLOR_TESTS=always}.  It's also worth noting that
 +some @command{make} implementations, when used in parallel mode, have
 +slightly different semantics (@pxref{Parallel make,,, autoconf,
 +The Autoconf Manual}), which can break the automatic detection of a
 +connection to a capable terminal.  If this is the case, you'll have to
 +resort to the use of @samp{AM_COLOR_TESTS=always} in order to have the
 +testsuite output colorized.
 +
 +Test programs that need data files should look for them in @code{srcdir}
 +(which is both a make variable and an environment variable made available
 +to the tests), so that they work when building in a separate directory
 +(@pxref{Build Directories, , Build Directories , autoconf,
 +The Autoconf Manual}), and in particular for the @code{distcheck} rule
 +(@pxref{Checking the Distribution}).
  
  @vindex TESTS
  @vindex TESTS_ENVIRONMENT
 -The variable @code{TESTS_ENVIRONMENT} can be used to set environment
 -variables for the test run; the environment variable @env{srcdir} is
 -set in the rule.  If all your test programs are scripts, you can also
 -set @code{TESTS_ENVIRONMENT} to an invocation of the shell (e.g.
 -@samp{$(SHELL) -x} can be useful for debugging the tests), or any other
 -interpreter.  For instance, the following setup may be used to run tests
 -with Perl:
 +@vindex AM_TESTS_ENVIRONMENT
 +The @code{AM_TESTS_ENVIRONMENT} and @code{TESTS_ENVIRONMENT} variables can
 +be used to run initialization code and set environment variables for the
 +test scripts.  The former variable is developer-reserved, and can be
 +defined in the @file{Makefile.am}, while the latter is reserved for the
 +user, which can employ it to extend or override the settings in the
 +former; for this to work portably, however, the contents of a non-empty
 +@code{AM_TESTS_ENVIRONMENT} @emph{must} be terminated by a semicolon.
 +
 +@vindex AM_TESTS_FD_REDIRECT
 +The @code{AM_TESTS_FD_REDIRECT} variable can be used to define file
 +descriptor redirections for the test scripts.  One might think that
 +@code{AM_TESTS_ENVIRONMENT} could be used for this purpose, but experience
 +has shown that doing so portably is practically impossible.  The main
 +hurdle is constituted by Korn shells, which usually set the close-on-exec
 +flag on file descriptors opened with the @command{exec} builtin, thus
 +rendering an idiom like @code{AM_TESTS_ENVIRONMENT = exec 9>&2;}
 +ineffectual.  This issue also affects some Bourne shells, such as the
 +HP-UX's @command{/bin/sh},
 +@c FIXME: should we offer a link to the relevant discussions on the
 +@c bug-autoconf list?
  
  @c Keep in sync with tests-environment-backcompat.test.
  @example
 -TESTS_ENVIRONMENT = $(PERL) -Mstrict -w
 -TESTS = foo.pl bar.pl baz.pl
 +AM_TESTS_ENVIRONMENT = \
 +## Some environment initializations are kept in a separate shell
 +## file `tests-env.sh', which can make it easier to also run tests
 +## from the command line.
 +  . $(srcdir)/tests-env.sh; \
 +## On Solaris, prefer more POSIX-compliant versions of the standard
 +## tools by default.
 +  if test -d /usr/xpg4/bin; then \
 +    PATH=/usr/xpg4/bin:$$PATH; export PATH; \
 +  fi;
 +@c $$ restore font-lock
 +## With this, the test scripts will be able to print diagnostic
 +## messages to the original standard error stream, even if the test
 +## driver redirects the stderr of the test scripts to a log file
 +## before executing them.
 +AM_TESTS_FD_REDIRECT = 9>&2
  @end example
  
 -Note that the @option{parallel-tests} driver provides a more elegant
 -way to achieve the same effect, freeing the @code{TESTS_ENVIRONMENT}
 -variable for the user to override (@pxref{Simple Tests using
 -parallel-tests}).
 -
 -
 -@cindex Tests, expected failure
 -@cindex Expected test failure
 -
 -@vindex XFAIL_TESTS
 -You may define the variable @code{XFAIL_TESTS} to a list of tests
 -(usually a subset of @code{TESTS}) that are expected to fail.  This will
 -reverse the result of those tests.
 +@noindent
 +Note however that @code{AM_TESTS_ENVIRONMENT} is, for historical and
 +implementation reasons, @emph{not} supported by the serial harness
 +(@pxref{Serial Test Harness}).
  
  Automake ensures that each file listed in @code{TESTS} is built before
 -any tests are run; you can list both source and derived programs (or
 -scripts) in @code{TESTS}; the generated rule will look both in
 -@code{srcdir} and @file{.}.  For instance, you might want to run a C
 -program as a test.  To do this you would list its name in @code{TESTS}
 -and also in @code{check_PROGRAMS}, and then specify it as you would
 -any other program.
 +it is run; you can list both source and derived programs (or scripts)
 +in @code{TESTS}; the generated rule will look both in @code{srcdir} and
 +@file{.}.  For instance, you might want to run a C program as a test.
 +To do this you would list its name in @code{TESTS} and also in
 +@code{check_PROGRAMS}, and then specify it as you would any other
 +program.
  
  Programs listed in @code{check_PROGRAMS} (and @code{check_LIBRARIES},
  @code{check_LTLIBRARIES}...) are only built during @code{make check},
@@@ -8932,106 -8840,47 +8936,106 @@@ that @code{check_PROGRAMS} are @emph{no
  by the tests, not the tests themselves.  Of course you can set
  @code{TESTS = $(check_PROGRAMS)} if all your programs are test cases.
  
 +@node Serial Test Harness
 +@subsection Serial Test Harness
 +
 +@emph{NOTE:} This harness, while still being the default one, is
 +obsolescent, and kept mostly for backward-compatibility reasons.
 +The user is advised to use the parallel test harness instead
 +(@pxref{Parallel Test Harness}).
 +
 +The serial harness operates by simply running the tests serially, one at
 +the time, without any I/O redirection.  It's up to the user to implement
 +logging of tests' output, if that's requited or desired.
 +@c TODO: give an example of how this can be done.
 +
 +For historical and implementation reasons, the @code{AM_TESTS_ENVIRONMENT}
 +variable is @emph{not} supported by this harness (it will be silently
 +ignored if defined); only @code{TESTS_ENVIRONMENT} is, and it is to be
 +considered a developer-reserved variable.  This is done so that, when
 +using the serial harness, @code{TESTS_ENVIRONMENT} can be defined to an
 +invocation of an interpreter through which the tests are to be run.
 +For instance, the following setup may be used to run tests with Perl:
  
 -@node Simple Tests using parallel-tests
 -@section Simple Tests using @samp{parallel-tests}
 +@example
 +TESTS_ENVIRONMENT = $(PERL) -Mstrict -w
 +TESTS = foo.pl bar.pl baz.pl
 +@end example
 +
 +@noindent
 +It's important to note that the use of @code{TESTS_ENVIRONMENT} endorsed
 +here would be @emph{invalid} with the parallel harness.  That harness
 +provides a more elegant way to achieve the same effect, with the further
 +benefit of freeing the @code{TESTS_ENVIRONMENT} variable for the user
 +(@pxref{Parallel Test Harness}).
 +
 +Another, less serious limit of the serial harness is that it doesn't
 +really distinguish between simple failures and hard errors; this is
 +due to historical reasons only, and might be fixed in future Automake
 +versions.
 +
 +@node Parallel Test Harness
 +@subsection Parallel Test Harness
  @cindex @option{parallel-tests}, Using
  
 -The option @option{parallel-tests} (@pxref{Options}) enables a test suite
 -driver that is mostly compatible to the simple test driver described in
 -the previous section, but provides a few more features and slightly
 -different semantics.  It features concurrent execution of tests with
 -@code{make -j} and automatic collection of the test scripts output and
 -summary thereof in @file{.log} files, and allows to specify inter-test
 -dependencies, lazy reruns of tests that have not completed in a prior
 -run, and hard errors for exceptional failures.  Similar to the simple
 -test driver, @code{TESTS_ENVIRONMENT}, @code{AM_COLOR_TESTS},
 -@code{XFAIL_TESTS}, and the @code{check_*} variables are honored,
 -and the environment variable @env{srcdir} is set during test execution.
 -
 -This test driver is still experimental and may undergo changes in order
 -to satisfy additional portability requirements.
 +The parallel (or concurrent) test harness is enabled by the Automake option
 +@option{parallel-tests}.  It features automatic collection of the test
 +scripts output in @file{.log} files, concurrent execution of tests with
 +@code{make -j}, specification of inter-test dependencies, lazy reruns of
 +tests that have not completed in a prior run, and hard errors for exceptional
 +failures.
 +
 +This harness is still somewhat experimental and may undergo changes in
 +order to satisfy additional portability requirements.
  
 +@anchor{Basics of test metadata}
  @vindex TEST_SUITE_LOG
  @vindex TESTS
 -The driver operates by defining a set of @command{make} rules to create
 -a summary log file, @code{TEST_SUITE_LOG}, which defaults to
 -@file{test-suite.log} and requires a @file{.log} suffix.  This file
 -depends upon log files created for each single test program listed in
 -@code{TESTS}, which in turn contain all output produced by the
 -corresponding tests.
 +@cindex @file{.log} files
 +@cindex @file{.trs} files
 +@cindex test metadata
 +The parallel test harness operates by defining a set of @command{make}
 +rules that run the test scripts listed in @code{TESTS}, and, for each
 +such script, save its output in a corresponding @file{.log} file and
 +its results (and other ``metadata'', @pxref{API for Custom Test Drivers})
 +in a corresponding @file{.trs} (as in @b{T}est @b{R}e@b{S}ults) file.
 +@c We choose the `.trs' extension also because, at the time of writing,
 +@c it isn't already used for other significant purposes; see e.g.:
 +@c   - http://filext.com/file-extension/trs
 +@c   - http://www.file-extensions.org/search/?searchstring=trs
 +The @file{.log} file will contain all the output emitted by the test on
 +its standard output and its standard error.  The @file{.trs} file will
 +contain, among the other things, the results of the test cases run by
 +the script.
 +
 +The parallel test harness will also create a summary log file,
 +@code{TEST_SUITE_LOG}, which defaults to @file{test-suite.log} and requires
 +a @file{.log} suffix.  This file depends upon all the @file{.log} and
 +@file{.trs} files created for the test scripts listed in @code{TESTS}.
 +
 +@vindex VERBOSE
 +As with the serial harness above, by default one status line is printed
 +per completed test, and a short summary after the suite has completed.
 +However, standard output and standard error of the test are redirected
 +to a per-test log file, so that parallel execution does not produce
 +intermingled output.  The output from failed tests is collected in the
 +@file{test-suite.log} file.  If the variable @samp{VERBOSE} is set, this
 +file is output after the summary.
 +@c FIXME: we should be clearer about what we mean exactly here ...
 +For best results, the tests should be verbose by default now.
  
  @vindex TEST_EXTENSIONS
  @vindex TEST_LOGS
 -Each log file is created when the corresponding test has completed.
 -The set of log files is listed in the read-only variable
 -@code{TEST_LOGS}, and defaults to @code{TESTS}, with the executable
 -extension if any (@pxref{EXEEXT}), as well as any suffix listed in
 -@code{TEST_EXTENSIONS} removed, and @file{.log} appended.  Results
 -are undefined if a test file name ends in several concatenated suffixes.
 -@code{TEST_EXTENSIONS} defaults to @file{.test}; it can be overridden by
 -the user, in which case any extension listed in it must be constituted
 -by a dot, followed by a non-digit alphabetic character, followed by any
 -number of alphabetic characters.
 +Each couple of @file{.log} and @file{.trs} files is created when the
 +corresponding test has completed.  The set of log files is listed in
 +the read-only variable @code{TEST_LOGS}, and defaults to @code{TESTS},
 +with the executable extension if any (@pxref{EXEEXT}), as well as any
 +suffix listed in @code{TEST_EXTENSIONS} removed, and @file{.log} appended.
 +Results are undefined if a test file name ends in several concatenated
 +suffixes.  @code{TEST_EXTENSIONS} defaults to @file{.test}; it can be
 +overridden by the user, in which case any extension listed in it must be
 +constituted by a dot, followed by a non-digit alphabetic character,
 +followed by any number of alphabetic characters.
  @c Keep in sync with test-extensions.test.
  For example, @samp{.sh}, @samp{.T} and @samp{.t1} are valid extensions,
  while @samp{.x-y}, @samp{.6c} and @samp{.t.1} are not.
  @vindex AM_@var{ext}_LOG_FLAGS
  @vindex AM_LOG_FLAGS
  For tests that match an extension @code{.@var{ext}} listed in
 -@code{TEST_EXTENSIONS}, you can provide a test driver using the variable
 -@code{@var{ext}_LOG_COMPILER} (note the upper-case extension) and pass
 -options in @code{AM_@var{ext}_LOG_FLAGS} and allow the user to pass
 -options in @code{@var{ext}_LOG_FLAGS}.  It will cause all tests with
 -this extension to be called with this driver.  For all tests without a
 -registered extension, the variables @code{LOG_COMPILER},
 +@code{TEST_EXTENSIONS}, you can provide a custom ``test runner'' using
 +the variable @code{@var{ext}_LOG_COMPILER} (note the upper-case
 +extension) and pass options in @code{AM_@var{ext}_LOG_FLAGS} and allow
 +the user to pass options in @code{@var{ext}_LOG_FLAGS}.  It will cause
 +all tests with this extension to be called with this runner.  For all
 +tests without a registered extension, the variables @code{LOG_COMPILER},
  @code{AM_LOG_FLAGS}, and @code{LOG_FLAGS} may be used.  For example,
  
  @c Keep in sync with parallel-tests-log-compiler-example.test.
@@@ -9071,36 -8920,50 +9075,36 @@@ AM_LOG_FLAGS = -
  @noindent
  will invoke @samp{$(PERL) -w foo.pl}, @samp{$(PYTHON) -v bar.py},
  and @samp{./wrapper-script -d baz} to produce @file{foo.log},
 -@file{bar.log}, and @file{baz.log}, respectively.  The
 -@samp{TESTS_ENVIRONMENT} variable is still expanded before the driver,
 -but should be reserved for the user.
 +@file{bar.log}, and @file{baz.log}, respectively.  The @file{foo.trs},
 +@file{bar.trs} and @file{baz.trs} files will be automatically produced
 +as a side-effect.
  
 -@vindex VERBOSE
 -As with the simple driver above, by default one status line is printed
 -per completed test, and a short summary after the suite has completed.
 -However, standard output and standard error of the test are redirected
 -to a per-test log file, so that parallel execution does not produce
 -intermingled output.  The output from failed tests is collected in the
 -@file{test-suite.log} file.  If the variable @samp{VERBOSE} is set, this
 -file is output after the summary.  For best results, the tests should be
 -verbose by default now.
 +It's important to note that, differently from what we've seen for the
 +serial test harness (@pxref{Parallel Test Harness}), the
 +@code{AM_TESTS_ENVIRONMENT} and @code{TESTS_ENVIRONMENT} variables
 +@emph{cannot} be use to define a custom test runner; the
 +@code{LOG_COMPILER} and @code{LOG_FLAGS} (or their extension-specific
 +counterparts) should be used instead:
  
 -@trindex check-html
 -@vindex RST2HTML
 -@vindex TEST_SUITE_HTML
 -Previous versions of automake used to provide a @code{check-html} target
 -to convert the log files to HTML.  This feature is now deprecated, and
 -@emph{will be removed} in the next major Automake release, so don't rely
 -on it anymore.
 +@example
 +## This is WRONG!
 +AM_TESTS_ENVIRONMENT = PERL5LIB='$(srcdir)/lib' $(PERL) -Mstrict -w
 +@end example
  
 -@vindex DISABLE_HARD_ERRORS
 -@cindex Exit status 99, special interpretation
 -@cindex hard error
 -Even in the presence of expected failures (see @code{XFAIL_TESTS}), there
 -may be conditions under which a test outcome needs attention.  For
 -example, with test-driven development, you may write tests for features
 -that you have not implemented yet, and thus mark these tests as expected
 -to fail.  However, you may still be interested in exceptional conditions,
 -for example, tests that fail due to a segmentation violation or another
 -error that is independent of the feature awaiting implementation.
 -Tests can exit with an exit status of 99 to signal such a @emph{hard
 -error}.  Unless the variable @code{DISABLE_HARD_ERRORS} is set to a
 -nonempty value, such tests will be counted as failed.
 -
 -By default, the test suite driver will run all tests, but there are
 +@example
 +## Do this instead.
 +AM_TESTS_ENVIRONMENT = PERL5LIB='$(srcdir)/lib'; export PERL5LIB;
 +LOG_COMPILER = $(PERL)
 +AM_LOG_FLAGS = -Mstrict -w
 +@end example
 +
 +By default, the test suite harness will run all tests, but there are
  several ways to limit the set of tests that are run:
  
  @itemize @bullet
  @item
 -You can set the @code{TESTS} variable, similarly to how you can with
 -the simple test driver from the previous section.  For example, you can
 -use a command like this to run only a subset of the tests:
 +You can set the @code{TESTS} variable.  For example, you can use a
 +command like this to run only a subset of the tests:
  
  @example
  env TESTS="foo.test bar.test" make -e check
@@@ -9137,15 -9000,14 +9141,15 @@@ here too
  @item
  @vindex RECHECK_LOGS
  @cindex lazy test execution
 -By default, the test driver removes all old per-test log files before it
 -starts running tests to regenerate them.  The variable
 -@code{RECHECK_LOGS} contains the set of log files which are removed.
 -@code{RECHECK_LOGS} defaults to @code{TEST_LOGS}, which means all tests
 -need to be rechecked.  By overriding this variable, you can choose which
 -tests need to be reconsidered.  For example, you can lazily rerun only
 -those tests which are outdated, i.e., older than their prerequisite test
 -files, by setting this variable to the empty value:
 +By default, the test harness removes all old per-test @file{.log} and
 +@file{.trs} files before it starts running tests to regenerate them.  The
 +variable @code{RECHECK_LOGS} contains the set of @file{.log} (and, by
 +implication, @file{.trs}) files which are removed.  @code{RECHECK_LOGS}
 +defaults to @code{TEST_LOGS}, which means all tests need to be rechecked.
 +By overriding this variable, you can choose which tests need to be
 +reconsidered.  For example, you can lazily rerun only those tests which
 +are outdated, i.e., older than their prerequisite test files, by setting
 +this variable to the empty value:
  
  @example
  env RECHECK_LOGS= make -e check
  You can ensure that all tests are rerun which have failed or passed
  unexpectedly, by running @code{make recheck} in the test directory.
  This convenience target will set @code{RECHECK_LOGS} appropriately
 -before invoking the main test driver.
 +before invoking the main test harness.
  @end itemize
  
 +@noindent
  In order to guarantee an ordering between tests even with @code{make
 --j@var{N}}, dependencies between the corresponding log files may be
 -specified through usual @command{make} dependencies.  For example, the
 -following snippet lets the test named @file{foo-execute.test} depend
 +-j@var{N}}, dependencies between the corresponding @file{.log} files
 +may be specified through usual @command{make} dependencies.  For example,
 +the following snippet lets the test named @file{foo-execute.test} depend
  upon completion of the test @file{foo-compile.test}:
  
  @example
@@@ -9183,7 -9044,6 +9187,7 @@@ parallel @command{make -j@var{N}}, so b
  concurrent execution.
  
  @cindex Unit tests
 +@c Keep in sync with 'parallel-tests-extra-programs.test'.
  The combination of lazy test execution and correct dependencies between
  tests and their sources may be exploited for efficient unit testing
  during development.  To further speed up the edit-compile-test cycle, it
@@@ -9211,562 -9071,6 +9215,562 @@@ semantics of FreeBSD and OpenBSD @comma
  In case of doubt you may want to require to use GNU @command{make},
  or work around the issue with inference rules to generate the tests.
  
 +@node Custom Test Drivers
 +@section Custom Test Drivers
 +
 +@menu
 +* Overview of Custom Test Drivers Support::
 +* Declaring Custom Test Drivers::
 +* API for Custom Test Drivers::
 +@end menu
 +
 +@node Overview of Custom Test Drivers Support
 +@subsection Overview of Custom Test Drivers Support
 +
 +Starting from Automake version 1.12, the parallel test harness allows
 +the package authors to use third-party custom test drivers, in case the
 +default ones are inadequate for their purposes, or do not support their
 +testing protocol of choice.
 +
 +A custom test driver is expected to properly run the test programs passed
 +to it (including the command-line arguments passed to those programs, if
 +any), to analyze their execution and outcome, to create the @file{.log}
 +and @file{.trs} files associated to these test runs, and to display the test
 +results on the console. It is responsibility of the author of the test
 +driver to ensure that it implements all the above steps meaningfully and
 +correctly; Automake isn't and can't be of any help here.  On the other
 +hand, the Automake-provided code for testsuite summary generation offers
 +support for test drivers allowing several test results per test script,
 +if they take care to register such results properly (@pxref{Log files
 +generation and test results recording}).
 +
 +The exact details of how test scripts' results are to be determined and
 +analyzed is left to the individual drivers.  Some drivers might only
 +consider the test script exit status (this is done for example by the
 +default test driver used by the parallel test harness, described
 +in the previous section).  Other drivers might implement more complex and
 +advanced test protocols, which might require them to parse and interpreter
 +the output emitted by the test script they're running (examples of such
 +protocols are TAP and SubUnit).
 +
 +It's very important to note that, even when using custom test drivers,
 +most of the infrastructure described in the previous section about the
 +parallel harness remains in place; this includes:
 +
 +@itemize
 +@item
 +list of test scripts defined in @code{TESTS}, and overridable at
 +runtime through the redefinition of @code{TESTS} or @code{TEST_LOGS};
 +@item
 +concurrency through the use of @command{make}'s option @option{-j};
 +@item
 +per-test @file{.log} and @file{.trs} files, and generation of a summary
 +@file{.log} file from them;
 +@item
 +@code{recheck} target, @code{RECHECK_LOGS} variable, and lazy reruns
 +of tests;
 +@item
 +inter-test dependencies;
 +@item
 +support for @code{check_*} variables (@code{check_PROGRAMS},
 +@code{check_LIBRARIES}, ...);
 +@item
 +use of @code{VERBOSE} environment variable to get verbose output on
 +testsuite failures;
 +@item
 +definition and honoring of @code{TESTS_ENVIRONMENT},
 +@code{AM_TESTS_ENVIRONMENT} and @code{AM_TESTS_FD_REDIRECT}
 +variables;
 +@item
 +definition of generic and extension-specific @code{LOG_COMPILER} and
 +@code{LOG_FLAGS} variables.
 +@end itemize
 +
 +@noindent
 +On the other hand, the exact semantics of how (and if)
 +@option{color-tests}, @code{XFAIL_TESTS}, and hard errors are supported
 +and handled is left to the individual test drivers.
 +
 +@c TODO: We should really add a working example in the doc/ directory,
 +@c TODO: and reference if from here.
 +
 +@node Declaring Custom Test Drivers
 +@subsection Declaring Custom Test Drivers
 +
 +@vindex _LOG_DRIVER
 +@vindex _LOG_DRIVER_FLAGS
 +@vindex LOG_DRIVER
 +@vindex LOG_DRIVER_FLAGS
 +@vindex @var{ext}_LOG_DRIVER
 +@vindex @var{ext}_LOG_DRIVER_FLAGS
 +@vindex AM_@var{ext}_LOG_DRIVER_FLAGS
 +@vindex AM_LOG_DRIVER_FLAGS
 +Custom testsuite drivers are declared by defining the make variables
 +@code{LOG_DRIVER} or @code{@var{ext}_LOG_DRIVER} (where @var{ext} must
 +be declared in @code{TEST_EXTENSIONS}).  They must be defined to
 +programs or scripts that will be used to drive the execution, logging,
 +and outcome report of the tests with corresponding extensions (or of
 +those with no registered extension in the case of @code{LOG_DRIVER}).
 +Clearly, multiple distinct test drivers can be declared in the same
 +@file{Makefile.am}.  Note moreover that the @code{LOG_DRIVER} variables
 +are @emph{not} a substitute for the @code{LOG_COMPILER} variables: the
 +two sets of variables can, and often do, usefully and legitimately
 +coexist.
 +
 +@c TODO: We should really be able to point to a clarifying example here!
 +
 +The developer-reserved variable @code{AM_LOG_DRIVER_FLAGS} and the
 +user-reserved variable @code{LOG_DRIVER_FLAGS} can be used to define
 +flags that will be passed to each invocation of @code{LOG_DRIVER},
 +with the user-defined flags obviously taking precedence over the
 +developer-reserved ones.  Similarly, for each extension @var{ext}
 +declared in @code{TEST_EXTENSIONS}, flags listed in
 +@code{AM_@var{ext}_LOG_DRIVER_FLAGS} and
 +@code{@var{ext}_LOG_DRIVER_FLAGS} will be passed to
 +invocations of @code{@var{ext}_LOG_DRIVER}.
 +
 +@node API for Custom Test Drivers
 +@subsection API for Custom Test Drivers
 +
 +Note that @emph{the APIs described here are still highly experimental},
 +and will very likely undergo tightenings and likely also extensive changes
 +in the future, to accommodate for new features or to satisfy additional
 +portability requirements.
 +
 +The main characteristic of these APIs is that they are designed to share
 +as much infrastructure, semantics, and implementation details as possible
 +with the parallel test harness and its default driver.
 +
 +@menu
 +* Command-line arguments for test drivers::
 +* Log files generation and test results recording::
 +* Testsuite progress output::
 +@end menu
 +
 +@node Command-line arguments for test drivers
 +@subsubsection Command-line arguments for test drivers
 +
 +A custom driver can rely on various command-line options and arguments
 +being passed to it automatically by the Automake's @option{parallel-tests}
 +harness.  It is @emph{mandatory} that it understands all of them (even
 +if the exact interpretation of the associated semantics can legitimately
 +change between a test driver and another, and even be a no-op in some
 +drivers).
 +
 +@noindent
 +Here is the list of options:
 +
 +@table @option
 +@item --test-name=@var{NAME}
 +The name of the test, with VPATH prefix (if any) removed.  This can have a
 +suffix and a directory component (as in e.g., @file{sub/foo.test}), and is
 +mostly meant to be used in console reports about testsuite advancements and
 +results (@pxref{Testsuite progress output}).
 +@item --log-file=@file{@var{PATH}.log}
 +The @file{.log} file the test driver must create (@pxref{Basics of
 +test metadata}).  If it has a directory component (as in e.g.,
 +@file{sub/foo.log}), the test harness will ensure that such directory
 +exists @emph{before} the test driver is called.
 +@item --trs-file=@file{@var{PATH}.trs}
 +The @file{.trs} file the test driver must create (@pxref{Basics of
 +test metadata}).  If it has a directory component (as in e.g.,
 +@file{sub/foo.trs}), the test harness will ensure that such directory
 +exists @emph{before} the test driver is called.
 +@item --color-tests=@{yes|no@}
 +Whether the console output should be colorized or not (@pxref{Simple
 +tests and color-tests}, to learn when this option gets activated and
 +when it doesn't).
 +@item --expect-failure=@{yes|no@}
 +Whether the tested program is expected to fail.
 +@item --enable-hard-errors=@{yes|no@}
 +Whether ``hard errors'' in the tested program should be treated differently
 +from normal failures or not (the default should be @code{yes}).  The exact
 +meaning of ``hard error'' is highly dependent from the test protocols or
 +conventions in use.
 +@item --
 +Explicitly terminate the list of options.
 +@end table
 +
 +@noindent
 +The first non-option argument passed to the test driver is the program to
 +be run, and all the following ones are command-line options and arguments
 +for this program.
 +
 +Note that the exact semantics attached to the @option{--color-tests},
 +@option{--expect-failure} and @option{--enable-hard-errors} options are
 +left up to the individual test drivers.  Still, having a behaviour
 +compatible or at least similar to that provided by the default
 +@option{parallel-tests} driver is advised, as that would offer a better
 +consistency and a more pleasant user experience.
 +
 +@node Log files generation and test results recording
 +@subsubsection Log files generation and test results recording
 +
 +The test driver must correctly generate the files specified by the
 +@option{--log-file} and @option{--trs-file} option (even when the tested
 +program fails or crashes).
 +
 +The @file{.log} file should ideally contain all the output produced by the
 +tested program, plus optionally other information that might facilitate
 +debugging or analysis of bug reports.  Apart from that, its format is
 +basically free.
 +
 +The @file{.trs} file is used to register some metadata through the use
 +of custom reStructuredText fields.  This metadata is expected to be
 +employed in various ways by the parallel test harness; for example, to
 +count the test results when printing the testsuite summary, or to decide
 +which tests to re-run upon @command{make reheck}.  Unrecognized metadata
 +in a @file{.trs} file is currently ignored by the harness, but this might
 +change in the future. The list of currently recognized metadata follows.
 +
 +@table @code
 +
 +@item :test-result:
 +@cindex Register test result
 +@cindex Register test case result
 +@cindex Test result, registering
 +@cindex Test case result, registering
 +@cindex @code{:test-result:}
 +@cindex reStructuredText field, @code{:test-result:}
 +The test driver must use this field to register the results of @emph{each}
 +test case run by a test script file.  Several @code{:test-result:} fields
 +can be present in the same @file{.trs} file; this is done in order to
 +support test protocols that allow a single test script to run more test
 +cases.
 +
 +@c Keep this in sync with lib/am/check-am:$(TEST_SUITE_LOG).
 +The only recognized test results are currently @code{PASS}, @code{XFAIL},
 +@code{SKIP}, @code{FAIL}, @code{XPASS} and @code{ERROR}.  These results,
 +when declared with @code{:test-result:}, can be optionally followed by
 +text holding the name and/or a brief description of the corresponding
 +test; the @option{parallel-tests} harness will ignore such extra text when
 +generating @file{test-suite.log} and preparing the testsuite summary.
 +
 +@c Keep in sync with 'test-metadata-recheck.test'.
 +@item @code{:recheck:}
 +@cindex :recheck:
 +@cindex reStructuredText field, @code{:recheck:}
 +If this field is present and defined to @code{no}, then the corresponding
 +test script will @emph{not} be run upon a @command{make recheck}.  What
 +happens when two or more @code{:recheck:} fields are present in the same
 +@file{.trs} file is undefined behaviour.
 +
 +@c Keep in sync with 'test-metadata-global-log.test'.
 +@item @code{:copy-in-global-log:}
 +@cindex :copy-in-global-log:
 +@cindex reStructuredText field, @code{:copy-in-global-log:}
 +If this field is present and defined to @code{no}, then the content
 +of the @file{.log} file will @emph{not} be copied into the global
 +@file{test-suite.log}.  We allow to forsake such copying because, while
 +it can be useful in debugging and analysis of bug report, it can also be
 +just a waste of space in normal situations, e.g., when a test script is
 +successful.  What happens when two or more @code{:copy-in-global-log:}
 +fields are present in the same @file{.trs} file is undefined behaviour.
 +
 +@c Keep in sync with 'test-metadata-global-result.test'.
 +@item @code{:test-global-result:}
 +@cindex :test-global-result:
 +@cindex reStructuredText field, @code{:test-global-result:}
 +This is used to declare the "global result" of the script.  Currently,
 +the value of this field is needed only to be reported (more or less
 +verbatim) in the generated global log file @code{$(TEST_SUITE_LOG)},
 +so it's quite free-form.  For example, a test script which run 10 test
 +cases, 6 of which pass and 4 of which are skipped, could reasonably have
 +a @code{PASS/SKIP} value for this field, while a test script which run
 +19 successful tests and one failed test could have an @code{ALMOST
 +PASSED} value.  What happens when two or more @code{:test-global-result:}
 +fields are present in the same @file{.trs} file is undefined behaviour.
 +@end table
 +
 +@noindent
 +Let's see a small example.  Assume a @file{.trs} file contains the
 +following lines:
 +
 +@example
 +:test-result: PASS server starts
 +:global-log-copy: no
 +:test-result: PASS HTTP/1.1 request
 +:test-result: FAIL HTTP/1.0 request
 +:recheck: yes
 +:test-result: SKIP HTTPS request (TLS library wasn't available)
 +:test-result: PASS server stops
 +@end example
 +
 +@noindent
 +Then the corresponding test script will be re-run by @command{make check},
 +will contribute with @emph{five} test results to the testsuite summary
 +(three of these tests being successful, one failed, and one skipped), and
 +the content of the corresponding @file{.log} file will @emph{not} be
 +copied in the global log file @file{test-suite.log}.
 +
 +@node Testsuite progress output
 +@subsubsection Testsuite progress output
 +
 +A custom test driver also has the task of displaying, on the standard
 +output, the test results as soon as they become available.  Depending on
 +the protocol in use, it can also display the reasons for failures and
 +skips, and, more generally, any useful diagnostic output (but remember
 +that each line on the screen is precious, so that cluttering the screen
 +with overly verbose information is bad idea).  The exact format of this
 +progress output is left up to the test driver; in fact, a custom test
 +driver might @emph{theoretically} even decide not to do any such report,
 +leaving it all to the testsuite summary (that would be a very lousy idea,
 +of course, and serves only to illustrate the flexibility that is
 +granted here).
 +
 +Remember that consistency is good; so, if possible, try to be consistent
 +with the output of the built-in Automake test drivers, providing a similar
 +``look & feel''.  In particular, the testsuite progress output should be
 +colorized when the @option{--color-tests} is passed to the driver.  On the
 +other end, if you are using a known and widespread test protocol with
 +well-established implementations, being consistent with those
 +implementations' output might be a good idea too.
 +
 +@c TODO: Give an example, maybe inspired to py.test-style output.
 +@c TODO: That is a good idea because it shows a test driver that allows
 +@c TODO: for different levels of verbosity in the progress output (could
 +@c TODO: be implemented either using a driver cmdline flag, or an
 +@c TODO: environment variable, or both).
 +
 +@node Using the TAP test protocol
 +@section Using the TAP test protocol
 +
 +@menu
 +* Introduction to TAP::
 +* Use TAP with the Automake test harness::
 +* Incompatibilities with other TAP parsers and drivers::
 +* Links and external resources on TAP::
 +@end menu
 +
 +@node Introduction to TAP
 +@subsection Introduction to TAP
 +
 +TAP, the Test Anything Protocol, is a simple text-based interface between
 +testing modules or programs and a test harness.  The tests (also called
 +``TAP producers'' in this context) write test results in a simple format
 +on standard output; a test harness (also called ``TAP consumer'') will
 +parse and interpret these results, and properly present them to the user,
 +and/or register them for later analysis.  The exact details of how this
 +is accomplished can vary among different test harnesses.  The Automake
 +parallel harness will present the results on the console in the usual
 +fashion (@pxref{Testsuite progress on console}), and will use the
 +@file{.trs} files (@pxref{Basics of test metadata}) to store the test
 +results and related metadata.  Apart from that, it will try to remain
 +as much compatible as possible with pre-existing and widespread utilities,
 +such as the @uref{http://search.cpan.org/~andya/Test-Harness/bin/prove,
 +@command{prove} utility}, at least for the simpler usages.
 +
 +TAP started its life as part of the test harness for Perl, but today
 +it has been (mostly) standardized, and has various independent
 +implementations in different languages; among them, C, C++, Perl,
 +Python, PHP, and Java.  For a semi-official specification of the
 +TAP protocol, please refer to the documentation of
 +@uref{http://search.cpan.org/~petdance/Test-Harness/lib/Test/Harness/TAP.pod,
 +      @samp{Test::Harness::TAP}}.
 +
 +The most relevant real-world usages of TAP are obviously in the testsuites
 +of @command{perl} and of many perl modules.  Still, also other important
 +third-party packages, such as @uref{http://git-scm.com/, @command{git}},
 +use TAP in their testsuite.
 +
 +@node Use TAP with the Automake test harness
 +@subsection Use TAP with the Automake test harness
 +
 +Currently, the TAP driver that comes with Automake requires a perl
 +interpreter to work, and requires various by-hand steps on the
 +developer's part (this should be fixed in future Automake versions).
 +You'll have grab the @file{tap-driver.pl} script from the Automake
 +distribution by hand, copy it in your source tree, add code to
 +@file{configure.ac} to search a perl interpreter and to define the
 +@code{$(PERL)} variable accordingly, and use the Automake support
 +for third-party test drivers to instruct the harness to use the
 +@file{tap-driver.pl} to run your TAP-producing tests.  See the example
 +below for clarification.
 +
 +Apart from the options common to all the Automake test drivers
 +(@pxref{Command-line arguments for test drivers}), the @file{tap-driver.pl}
 +supports the following options, whose names are chosen for enhanced
 +compatibility with the @command{prove} utility.
 +
 +@table @option
 +@c Keep in sync with 'tap-exit.test' and 'tap-signal.test'.
 +@item --ignore-exit
 +Causes the test driver to ignore the exit status of the test scripts;
 +by default, the driver will report an error if the script exit with a
 +non-zero status.  This option has effect also
 +@item --comments
 +Instruct the test driver to display TAP diagnostic (i.e., lines beginning
 +with the @samp{#} character) in the testsuite progress output too; by
 +default, TAP diagnostic is only copied in the @file{.log} file.
 +@item --no-comments
 +Revert the effects of @option{--comments}.
 +@item --merge
 +Instruct the test driver to merge the test scripts' standard error into
 +their standard output.  This is necessary if you want to ensure that
 +diagnostics from the test scripts are displayed in the correct order
 +relative to test results; this can be of great help in debugging
 +(especially if your test scripts are shell scripts run with shell
 +tracing active).  As a downside, this option might cause the test
 +harness to get confused if anything that appears on standard error
 +looks like a test result.
 +@item --no-merge
 +Revert the effects of @option{--merge}.
 +@item --diagnostic-string=@var{STRING}
 +Change the string that introduces TAP diagnostic from the default value
 +of ``@code{#}'' to @code{@var{STRING}}.  This can be useful if your
 +TAP-based test scripts produce verbose output on which they have limited
 +control (because, say, the output comes by other tools invoked in the
 +scripts), and it might contain text that gets spuriously interpreted as
 +TAP diagnostic: such an issue can be solved by redefining the string that
 +activates TAP diagnostic to a value you know won't appear by chance in
 +the tests' output.  Note however that this feature is non-standard, as
 +the ``official'' TAP protocol does not allow for such a customization; so
 +don't use it if you can avoid it.
 +@end table
 +
 +@noindent
 +Here is an example of how the TAP driver can be set up and used.
 +
 +@c Keep in sync with tap-doc2.test.
 +@example
 +% @kbd{cat configure.ac}
 +AC_INIT([GNU Try Tap], [1.0], [bug-automake@@gnu.org])
 +AC_CONFIG_AUX_DIR([build-aux])
 +AM_INIT_AUTOMAKE([foreign parallel-tests -Wall -Werror])
 +AC_CONFIG_FILES([Makefile])
 +AC_REQUIRE_AUX_FILE([tap-driver.pl])
 +AC_PATH_PROG([PERL], [perl])
 +test -n "$PERL" || AC_MSG_ERROR([perl not found])
 +$PERL -MTAP::Parser -e 1 || AC_MSG_ERROR([TAP::Parser not found])
 +AC_OUTPUT
 +
 +% @kbd{cat Makefile.am}
 +TEST_LOG_DRIVER = $(PERL) $(srcdir)/build-aux/tap-driver.pl
 +TESTS = foo.test bar.test baz.test
 +EXTRA_DIST = $(TESTS)
 +
 +% @kbd{cat foo.test}
 +#!/bin/sh
 +echo 1..4 # Number of tests to be executed.
 +echo 'ok 1 - Swallows fly'
 +echo 'not ok 2 - Caterpillars fly # TODO metamorphosis in progress'
 +echo 'ok 3 - Pigs fly # SKIP not enough acid'
 +echo '# I just love word plays ...'
 +echo 'ok 4 - Flies fly too :-)'
 +
 +% @kbd{cat bar.test}
 +#!/bin/sh
 +echo 1..3
 +echo 'not ok 1 - Bummer, this test has failed.'
 +echo 'ok 2 - This passed though.'
 +echo 'Bail out! Ennui kicking in, sorry...'
 +echo 'ok 3 - This will not be seen.'
 +
 +% @kbd{cat baz.test}
 +#!/bin/sh
 +echo 1..1
 +echo ok 1
 +# Exit with error, even if all the test case has been successful.
 +exit 7
 +
 +% @kbd{cp @var{PREFIX}/share/automake-@var{APIVERSION}/tap-driver.pl .}
 +% @kbd{autoreconf -vi && ./configure && make check}
 +...
 +PASS: foo.test 1 - Swallows fly
 +XFAIL: foo.test 2 - Caterpillars fly # TODO metamorphosis in progress
 +SKIP: foo.test 3 - Pigs fly # SKIP not enough acid
 +PASS: foo.test 4 - Flies fly too :-)
 +FAIL: bar.test 1 - Bummer, this test has failed.
 +PASS: bar.test 2 - This passed though.
 +ERROR: bar.test - Bail out! Ennui kicking in, sorry...
 +PASS: baz.test 1
 +ERROR: baz.test - exited with status 7
 +...
 +Please report to bug-automake@@gnu.org
 +...
 +% @kbd{echo exit status: $?}
 +exit status: 1
 +
 +@c Keep the "skewed" indentation below, it produces pretty PDF output.
 +% @kbd{env TEST_LOG_DRIVER_FLAGS='--comments --ignore-exit' \
 +      TESTS='foo.test baz.test' make -e check}
 +...
 +PASS: foo.test 1 - Swallows fly
 +XFAIL: foo.test 2 - Caterpillars fly # TODO metamorphosis in progress
 +SKIP: foo.test 3 - Pigs fly # SKIP not enough acid
 +# foo.test: I just love word plays...
 +PASS: foo.test 4 - Flies fly too :-)
 +PASS: baz.test 1
 +...
 +% @kbd{echo exit status: $?}
 +exit status: 0
 +@end example
 +
 +@node Incompatibilities with other TAP parsers and drivers
 +@subsection Incompatibilities with other TAP parsers and drivers
 +
 +For implementation or historical reasons, the TAP driver and harness as
 +implemented by Automake have some minors incompatibilities with the
 +mainstream versions, which you should be aware of.
 +
 +@itemize @bullet
 +@item
 +A @code{Bail out!} directive doesn't stop the whole testsuite, but only
 +the test script it occurs into.  This doesn't follows TAP specifications,
 +but on the other hand it maximizes compatibility (and code sharing) with
 +the ``hard error'' concept of the default @option{parallel-tests} driver.
 +@item
 +The @code{version} and @code{pragma} directives are not supported.
 +@item
 +The @option{--diagnostic-string} option of out driver allows to modify
 +the string that introduces TAP diagnostic from the default value
 +of ``@code{#}''.  The standard TAP protocol has currently no way to
 +allow this, so if you use it your diagnostic will be lost to more
 +compliant tools like @command{prove} and @code{Test::Harness}
 +@item
 +And there are probably some other small and yet undiscovered
 +incompatibilities, especially in corner cases or with rare usages.
 +@end itemize
 +
 +@node Links and external resources on TAP
 +@subsection Links and external resources on TAP
 +
 +@noindent
 +Here are some links to more extensive official or third-party
 +documentation and resources about the TAP protocol and related
 +tools and libraries.
 +@itemize @bullet
 +@item
 +@uref{http://search.cpan.org/~petdance/Test-Harness/lib/Test/Harness/TAP.pod,
 +      @samp{Test::Harness::TAP}},
 +the (mostly) official documentation about the TAP format and protocol.
 +@item
 +@uref{http://search.cpan.org/~andya/Test-Harness/bin/prove,
 +      @command{prove}},
 +the most famous command-line TAP test driver, included in the distribution
 +of @command{perl} and
 +@uref{http://search.cpan.org/~andya/Test-Harness/lib/Test/Harness.pm,
 +      @samp{Test::Harness}}.
 +@item
 +The @uref{http://testanything.org/wiki/index.php/Main_Page,TAP wiki}.
 +@item
 +A ``gentle introduction'' to testing for perl coders:
 +@uref{http://search.cpan.org/dist/Test-Simple/lib/Test/Tutorial.pod,
 +      @samp{Test::Tutorial}}.
 +@item
 +@uref{http://search.cpan.org/~mschwern/Test-Simple/lib/Test/Simple.pm,
 +      @samp{Test::Simple}}
 +and
 +@uref{http://search.cpan.org/~mschwern/Test-Simple/lib/Test/More.pm,
 +      @samp{Test::More}},
 +the standard perl testing libraries, which are based on TAP.
 +@item
 +@uref{http://www.eyrie.org/~eagle/software/c-tap-harness/,C TAP Harness},
 +a C-based project implementing both a TAP producer and a TAP consumer.
 +@item
 +@uref{http://www.tap4j.org/,tap4j},
 +a Java-based project implementing both a TAP producer and a TAP consumer.
 +@end itemize
  
  @node DejaGnu Tests
  @section DejaGnu Tests
@@@ -9819,6 -9123,8 +9823,6 @@@ appear in @code{EXTRA_DEJAGNU_SITE_CONF
  For more information regarding DejaGnu test suites, see @ref{Top, , ,
  dejagnu, The DejaGnu Manual}.
  
 -In either case, the testing is done via @samp{make check}.
 -
  @node Install Tests
  @section Install Tests
  
@@@ -9931,16 -9237,8 +9935,16 @@@ will now be rerun each time the versio
  @node Options
  @chapter Changing Automake's Behavior
  
 +@menu
 +* Options generalities::        Semantics of Automake option
 +* List of Automake options::    A comprehensive list of Automake options
 +@end menu
 +
 +@node Options generalities
 +@section Options generalities
 +
  Various features of Automake can be controlled by options.  Except where
 -noted otherwise, options can be specified in one of several ways: Most
 +noted otherwise, options can be specified in one of several ways Most
  options can be applied on a per-@file{Makefile} basis when listed in a
  special @file{Makefile} variable named @code{AUTOMAKE_OPTIONS}.  Some
  of these options only make sense when specified in the toplevel
  require changes to the @command{configure} script can only be specified
  there.  These are annotated below.
  
 -Currently understood options are:
 +As a general rule, options specified in @code{AUTOMAKE_OPTIONS} take
 +precedence over those specified in @code{AM_INIT_AUTOMAKE}, which in
 +turn take precedence over those specified on the command line.
 +
 +Also, some care must be taken about the interactions among strictness
 +level and warning categories.  As a general rule, strictness-implied
 +warnings are overridden by those specified by explicit options.  For
 +example, even if @samp{portability} warnings are disabled by default
 +in @option{foreign} strictness, an usage like this will end up enabling
 +them:
 +
 +@example
 +AUTOMAKE_OPTIONS = -Wportability foreign
 +@end example
 +
 +However, a strictness level specified in a higher-priority context
 +will override all the explicit warnings specified in a lower-priority
 +context.  For example, if @file{configure.ac} contains:
 +
 +@example
 +AM_INIT_AUTOMAKE([-Wportability])
 +@end example
 +
 +@noindent
 +and @file{Makefile.am} contains:
 +
 +@example
 +AUTOMAKE_OPTIONS = foreign
 +@end example
 +
 +@noindent
 +then @samp{portability} warnings will be @emph{disabled} in
 +@file{Makefile.am}.
 +
 +@node List of Automake options
 +@section List of Automake options
 +
  @vindex AUTOMAKE_OPTIONS
  
  @table @asis
  Set the strictness as appropriate.  The @option{gnits} option also
  implies options @option{readme-alpha} and @option{check-news}.
  
 -@item @option{ansi2knr}
 -@itemx @option{@var{path}/ansi2knr}
 -@cindex Option, @option{ansi2knr}
 -@opindex ansi2knr
 -Turn on the deprecated de-ANSI-fication feature (@pxref{ANSI}).  Note
 -that that feature and this option @emph{will be removed} in the next
 -major Automake release.
 -
 -If preceded by a
 -path, the generated @file{Makefile.in} will look in the specified
 -directory to find the @file{ansi2knr} program.  The path should be a
 -relative path to another directory in the same distribution (Automake
 -does not check this).
 -
  @item @option{check-news}
  @cindex Option, @option{check-news}
  @opindex check-news
@@@ -10015,9 -9291,8 +10019,9 @@@ in the first few lines of the @file{NEW
  @item @option{color-tests}
  @cindex Option, @option{color-tests}
  @opindex color-tests
 -Cause output of the simple test suite (@pxref{Simple Tests}) to be
 -colorized on capable terminals.
 +Cause output of the serial and parallel test harnesses (see @ref{Simple
 +Tests}) and of properly-written custom test drivers (@pxref{Custom Test
 +Drivers}) to be colorized on capable terminals.
  
  @item @option{dejagnu}
  @cindex Option, @option{dejagnu}
@@@ -10145,8 -9420,8 +10149,8 @@@ this directory
  @item @option{parallel-tests}
  @cindex Option, @option{parallel-tests}
  @opindex parallel-tests
 -Enable test suite driver for @code{TESTS} that can run tests in parallel
 -(@pxref{Simple Tests using parallel-tests}, for more information).
 +Enable test suite harness for @code{TESTS} that can run tests in parallel
 +(@pxref{Parallel Test Harness}, for more information).
  
  @item @option{readme-alpha}
  @cindex Option, @option{readme-alpha}
@@@ -10195,7 -9470,7 +10199,7 @@@ test.  For instance, @command{false} (f
  successful, even for @option{--help} or @option{--version}.  You can list
  such programs in the variable @code{AM_INSTALLCHECK_STD_OPTIONS_EXEMPT}.
  Programs (not scripts) listed in this variable should be suffixed by
 -@samp{$(EXEEXT)} for the sake of Win32 or OS/2.  For instance, suppose we
 +@samp{$(EXEEXT)} for the sake of Windows or OS/2.  For instance, suppose we
  build @file{false} as a program but @file{true.sh} as a script, and that
  neither of them support @option{--help} or @option{--version}:
  
@@@ -10309,8 -9584,9 +10313,8 @@@ the @code{AM_INIT_AUTOMAKE} macro in @f
  There are a few rules and variables that didn't fit anywhere else.
  
  @menu
 -* Tags::        Interfacing to etags and mkid
 -* Suffixes::    Handling new file extensions
 -* Multilibs::   Support for multilibs (deprecated, soon to be removed).
 +* Tags::                        Interfacing to cscope, etags and mkid
 +* Suffixes::                    Handling new file extensions
  @end menu
  
  
@@@ -10370,14 -9646,6 +10374,14 @@@ Automake will also generate an @code{ID
  directory-by-directory basis.
  @trindex id
  
 +Similarly, the @code{cscope} rule will create a list of all the source
 +files in the tree and run @command{cscope} to build an inverted index
 +database.  The variable @code{CSCOPE} is the name of the program to invoke
 +(by default @command{cscope}); @code{CSCOPEFLAGS} and
 +@code{CSCOPE_ARGS} can be used by the user to pass additional flags and
 +file names respectively, while @code{AM_CSCOPEFLAGS} can be used by the
 +@file{Makefile.am}.
 +
  Finally, Automake also emits rules to support the
  @uref{http://www.gnu.org/software/global/, GNU Global Tags program}.
  The @code{GTAGS} rule runs Global Tags and puts the
@@@ -10438,6 -9706,22 +10442,6 @@@ Automake generate the suffix list for @
  @code{SUFFIXES} go at the start of the generated suffixes list, followed
  by Automake generated suffixes not already in the list.
  
 -@node Multilibs
 -@section Support for Multilibs (deprecated, soon to be removed).
 -
 -Automake used to support an obscure feature called multilibs.  @emph{This
 -feature is now deprecated, and will be removed in the next major Automake
 -version}.  Still, its implementation will remain available in the
 -@file{contrib/} directory of the Automake distribution, so it should be
 -very easy for motivated users to continue to use it in their projects,
 -if they really need to.
 -
 -A @dfn{multilib} is a library that is built for multiple different ABIs
 -at a single time; each time the library is built with a different target
 -flag combination.  This is only useful when the library is intended to
 -be cross-compiled, and it is almost exclusively used for compiler
 -support libraries.
 -
  @node Include
  @chapter Include
  
@@@ -12374,7 -11658,7 +12378,7 @@@ user counterpart
  has neither @code{AM_} nor per-target cousin.
  
  Finally you should not think that the existence of a per-target
 -variable implies the existance of an @code{AM_} variable or of a user
 +variable implies the existence of an @code{AM_} variable or of a user
  variable.  For instance, the @code{mumble_LDADD} per-target variable
  overrides the makefile-wide @code{LDADD} variable (which is not a user
  variable), and @code{mumble_LIBADD} exists only as a per-target
@@@ -14226,7 -13510,7 +14230,7 @@@ parentheses is the number of generated 
  @c  LocalWords:  xs emph FIXME ref vindex pkglibdir pkgincludedir pkgdatadir mt
  @c  LocalWords:  pkg libdir cpio bindir sbindir rmt pax sbin zar zardir acindex
  @c  LocalWords:  HTML htmldir html noinst TEXINFOS nodist nobase strudel CFLAGS
 -@c  LocalWords:  libmumble CC YFLAGS ansi knr itemx de fication config url comp
 +@c  LocalWords:  libmumble CC YFLAGS itemx de fication config url comp
  @c  LocalWords:  depcomp elisp sh mdate mkinstalldirs mkdir py tex dvi ps pdf
  @c  LocalWords:  ylwrap zardoz INIT gettext acinclude mv FUNCS LIBOBJS LDADD fr
  @c  LocalWords:  uref featureful dnl src LINGUAS es ko nl pl sl sv PROG ISC doc
  @c  LocalWords:  AUX var symlink deps Wno Wnone package's aclocal's distclean
  @c  LocalWords:  ltmain xref LIBSOURCE LIBSOURCES LIBOBJ MEMCMP vs RANLIB CXX
  @c  LocalWords:  LDFLAGS LIBTOOL libtool XTRA LIBS gettext's acdir APIVERSION
 -@c  LocalWords:  dirlist noindent usr MULTILIB multilib Multilibs TIOCGWINSZ sc
 +@c  LocalWords:  dirlist noindent usr TIOCGWINSZ sc
  @c  LocalWords:  GWINSZ termios SRCDIR tarball bzip LISPDIR lispdir XEmacs CCAS
  @c  LocalWords:  emacsen MicroEmacs CCASFLAGS UX GCJ gcj GCJFLAGS posix DMALLOC
 -@c  LocalWords:  dmalloc ldmalloc REGEX regex rx DEPDIR DEP DEFUN aclocaldir fi
 +@c  LocalWords:  dmalloc ldmalloc REGEX regex DEPDIR DEP DEFUN aclocaldir fi
  @c  LocalWords:  mymacro myothermacro AMFLAGS autopoint autogen libtoolize yum
  @c  LocalWords:  autoheader README MAKEFLAGS subdir Inetutils sync COND endif
  @c  LocalWords:  Miller's installable includedir inc pkgdata EXEEXT libexec bsd
  @c  LocalWords:  distdir distcheck distcleancheck listfiles distuninstallcheck
  @c  LocalWords:  VPATH tarfile stdout XFAIL DejaGnu dejagnu DEJATOOL runtest ln
  @c  LocalWords:  RUNTESTDEFAULTFLAGS toolchain RUNTESTFLAGS asis readme DVIPS
 -@c  LocalWords:  installcheck gzipped tarZ std utils etags mkid multilibbing cd
 +@c  LocalWords:  installcheck gzipped tarZ std utils etags mkid cd
  @c  LocalWords:  ARGS taggable ETAGSFLAGS lang ctags CTAGSFLAGS GTAGS gtags idl
  @c  LocalWords:  foocc doit idlC multilibs ABIs cmindex defmac ARG enableval FC
  @c  LocalWords:  MSG xtrue DBG pathchk CYGWIN afile proglink versioned CVS's TE
  @c  LocalWords:  LTALLOCA MALLOC malloc memcmp strdup alloca libcompat xyz DFOO
  @c  LocalWords:  unprefixed buildable preprocessed DBAZ DDATADIR WARNINGCFLAGS
  @c  LocalWords:  LIBFOOCFLAGS LIBFOOLDFLAGS ftable testSubDir obj LIBTOOLFLAGS
 -@c  LocalWords:  barexec Pinard's automatize initialize lzip lzma xz
 +@c  LocalWords:  barexec Pinard's automatize initialize lzip lzma xz cscope
diff --combined tests/Makefile.am
  # You should have received a copy of the GNU General Public License
  # along with this program.  If not, see <http://www.gnu.org/licenses/>.
  
 +# Run the tests with the shell detected at configure time.
 +LOG_COMPILER = $(SHELL)
 +
 +TEST_EXTENSIONS = .pl .test .tap
 +TEST_LOG_COMPILER = $(LOG_COMPILER)
 +TAP_LOG_COMPILER = $(LOG_COMPILER)
 +PL_LOG_COMPILER = $(PERL)
 +AM_PL_LOG_FLAGS = -Mstrict -I $(top_builddir)/lib -I $(top_srcdir)/lib -w
 +
 +TAP_LOG_DRIVER = AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/lib/tap-driver.sh
 +
 +AM_TAP_LOG_DRIVER_FLAGS = --merge
 +
 +EXTRA_DIST = is ChangeLog-old
 +
 +TESTS = ## Will be updated later.
 +
  XFAIL_TESTS = \
  all.test \
 -auxdir2.test \
+ yacc-bison-skeleton-cxx.test \
+ yacc-bison-skeleton.test \
  cond17.test \
 -dist-auxfile.test \
 -dist-auxfile-2.test \
  gcj6.test \
 +override-conditional-2.test \
  java-nobase.test \
  objext-pr10128.test \
  pr8365-remake-timing.test \
  lex-subobj-nodep.test \
  remake-am-pr10111.test \
  remake-m4-pr10111.test \
 -txinfo5.test
 +txinfo5.test \
 +## FIXME: this "expected failures" are in truth an hack used to
 +## FIXME: to verify that some incorrect usages of our perl: libraries
 +## FIXME: raise an error.  We should find a cleaner way to check that.
 +pm/Cond2.pl \
 +pm/Cond3.pl \
 +pm/DisjCon2.pl \
 +pm/DisjCon3.pl \
 +pm/Version2.pl \
 +pm/Version3.pl
  
 -include $(srcdir)/parallel-tests.am
 +# Some testsuite-influential variables should be overridable from the
 +# test scripts, but not from the environment.
 +AM_TESTS_ENVIRONMENT = \
 +  for v in \
 +    me \
 +    required \
 +    am_using_tap \
 +    am_parallel_tests \
 +    am_test_prefer_config_shell \
 +    am_original_AUTOMAKE \
 +    am_original_ACLOCAL \
 +  ; do \
 +    eval test x"\$${$$v}" = x || unset $$v; \
 +  done;
 +# The `AM_TESTS_REEXEC=no' setting tells the tests not to needlessly
 +# re-execute themselves with the shell detected at configure time, since
 +# we are already running them under it explicitly in our setup (see e.g.
 +# the definition of TEST_LOG_COMPILER above).
 +AM_TESTS_ENVIRONMENT += AM_TESTS_REEXEC=no; export AM_TESTS_REEXEC;
 +# We want warning messages and explanations for skipped tests to go to
 +# the console if possible, so set up `stderr_fileno_' properly.
 +AM_TESTS_FD_REDIRECT = 9>&2
 +AM_TESTS_ENVIRONMENT += stderr_fileno_=9; export stderr_fileno_;
  
 -$(srcdir)/parallel-tests.am: gen-parallel-tests Makefile.am
 -      $(AM_V_GEN)(cd $(srcdir) && $(SHELL) ./gen-parallel-tests) >$@
 +# Hand-written tests.
  
 -$(parallel_tests): $(parallel_tests:-p.test=.test) Makefile.am
 -      $(AM_V_GEN)input=`echo $@ | sed 's,.*/,,; s,-p.test$$,.test,'` \
 -        && sed 's|^\. \./defs.*|parallel_tests=yes; &|' \
 -             < $(srcdir)/$$input >$@ \
 -        && chmod a+rx $@
 +include $(srcdir)/list-of-tests.mk
  
 -MAINTAINERCLEANFILES = $(parallel_tests)
 +TESTS += $(handwritten_TESTS)
 +EXTRA_DIST += $(handwritten_TESTS)
  
 -# Some testsuite-influential variables should be overridable from the
 -# test scripts, but not from the environment.
 -TESTS_ENVIRONMENT = \
 -  test x"$$me" = x || unset me; \
 -  test x"$$required" = x || unset required; \
 -  test x"$$parallel_tests" = x || unset parallel_tests;
 +# Automatically-generated tests wrapping hand-written ones.
 +# Also, automatically-computed dependencies for tests.
  
 -TEST_EXTENSIONS = .pl .test
 +include $(srcdir)/testsuite-part.am
  
 -PL_LOG_COMPILER = $(PERL)
 -AM_PL_LOG_FLAGS = -Mstrict -I $(top_builddir)/lib -I $(top_srcdir)/lib -w
 +TESTS += $(generated_TESTS)
 +EXTRA_DIST += $(generated_TESTS)
  
 -include $(srcdir)/list-of-tests.mk
 +$(srcdir)/testsuite-part.am:
 +      $(AM_V_at)rm -f testsuite-part.tmp $@
 +      $(AM_V_GEN)$(PERL) $(srcdir)/gen-testsuite-part \
 +        --srcdir $(srcdir) > testsuite-part.tmp
 +      $(AM_V_at)chmod a-w testsuite-part.tmp
 +      $(AM_V_at)mv -f testsuite-part.tmp $@
 +EXTRA_DIST += gen-testsuite-part
 +
 +$(generated_TESTS) $(srcdir)/testsuite-part.am: \
 +  gen-testsuite-part list-of-tests.mk Makefile.am $(handwritten_TESTS)
  
 -TESTS = $(handwritten_TESTS) $(parallel_tests)
 -
 -# FIXME: make these automatically computed once we are merged into
 -# FIXME: the `testsuite-work' branch.
 -depcomp4.log: libtool-macros.log
 -depcomp7.log: libtool-macros.log
 -depcomp8b.log: libtool-macros.log
 -extradep2.log: libtool-macros.log
 -fort5.log: libtool-macros.log
 -instdir-ltlib.log: libtool-macros.log
 -instfail-libtool.log: libtool-macros.log
 -ldadd.log: libtool-macros.log
 -ldflags.log: libtool-macros.log
 -libobj13.log: libtool-macros.log
 -libtoo10.log: libtool-macros.log
 -libtoo11.log: libtool-macros.log
 -libtool.log: libtool-macros.log
 -libtool2.log: libtool-macros.log
 -libtool3.log: libtool-macros.log
 -libtool5.log: libtool-macros.log
 -libtool6.log: libtool-macros.log
 -libtool7.log: libtool-macros.log
 -libtool8.log: libtool-macros.log
 -libtool9.log: libtool-macros.log
 -listval.log: libtool-macros.log
 -ltcond.log: libtool-macros.log
 -ltcond2.log: libtool-macros.log
 -ltconv.log: libtool-macros.log
 -ltdeps.log: libtool-macros.log
 -ltinit.log: libtool-macros.log
 -ltinstloc.log: libtool-macros.log
 -ltlibobjs.log: libtool-macros.log
 -ltlibsrc.log: libtool-macros.log
 -ltorder.log: libtool-macros.log
 -nobase-libtool.log: libtool-macros.log
 -pr211.log: libtool-macros.log
 -pr300-ltlib.log: libtool-macros.log
 -pr307.log: libtool-macros.log
 -pr401b.log: libtool-macros.log
 -pr72.log: libtool-macros.log
 -reqd2.log: libtool-macros.log
 -silent3.log: libtool-macros.log
 -silent4.log: libtool-macros.log
 -silent9.log: libtool-macros.log
 -stdlib2.log: libtool-macros.log
 -strip3.log: libtool-macros.log
 -subobj9.log: libtool-macros.log
 -suffix10.log: libtool-macros.log
 -suffix2.log: libtool-macros.log
 -suffix5.log: libtool-macros.log
 -suffix8.log: libtool-macros.log
 -vala.log: libtool-macros.log
 -vala1.log: libtool-macros.log
 -vala2.log: libtool-macros.log
 -vala3.log: libtool-macros.log
 -vala4.log: libtool-macros.log
 -vala5.log: libtool-macros.log
 -
 -# FIXME: make these automatically computed once we are merged into
 -# FIXME: the `testsuite-work' branch.
 -gettext.log: gettext-macros.log
 -gettext2.log: gettext-macros.log
 -gettext3.log: gettext-macros.log
 -subcond.log: gettext-macros.log
 -
 -EXTRA_DIST = ChangeLog-old gen-parallel-tests $(TESTS)
 +# Static dependencies valid for each test case.
 +check_SCRIPTS = aclocal-$(APIVERSION) automake-$(APIVERSION)
 +check_DATA = defs defs-static plain-functions.sh tap-functions.sh
 +EXTRA_DIST += tap-functions.sh plain-functions.sh
  
 +# Few more static dependencies.
  distcheck-missing-m4.log distcheck-outdated-m4.log: distcheck-hook-m4.am
  EXTRA_DIST += distcheck-hook-m4.am
  
 -# Each test case depends on defs, aclocal, and automake.
 -check_SCRIPTS = defs aclocal-$(APIVERSION) automake-$(APIVERSION)
 +# Keep in sync with AC_SUBST'd stuff in defs-static.in.
 +do_subst = sed \
 +  -e 's|@abs_srcdir[@]|$(abs_srcdir)|g' \
 +  -e 's|@abs_top_srcdir[@]|$(abs_top_srcdir)|g' \
 +  -e 's|@abs_builddir[@]|$(abs_builddir)|g' \
 +  -e 's|@abs_top_builddir[@]|$(abs_top_builddir)|g' \
 +  -e 's|@prefix[@]|$(prefix)|g' \
 +  -e 's|@amdir[@]|$(amdir)|g' \
 +  -e 's|@bindir[@]|$(bindir)|g' \
 +  -e 's|@datadir[@]|$(datadir)|g' \
 +  -e 's|@docdir[@]|$(docdir)|g' \
 +  -e 's|@automake_acdir[@]|$(automake_acdir)|g' \
 +  -e 's|@system_acdir[@]|$(system_acdir)|g' \
 +  -e 's|@scriptdir[@]|$(scriptdir)|g' \
 +  -e 's|@pkgvdatadir[@]|$(pkgvdatadir)|g' \
 +  -e 's|@host_alias[@]|$(host_alias)|g' \
 +  -e 's|@build_alias[@]|$(build_alias)|g' \
 +  -e 's|@APIVERSION[@]|$(APIVERSION)|g' \
 +  -e 's|@PATH_SEPARATOR[@]|$(PATH_SEPARATOR)|g' \
 +  -e 's|@SHELL[@]|$(SHELL)|g' \
 +  -e 's|@PERL[@]|$(PERL)|g' \
 +  -e 's|@EGREP[@]|$(EGREP)|g' \
 +  -e 's|@FGREP[@]|$(FGREP)|g' \
 +  -e 's|@CPPFLAGS[@]|$(CPPFLAGS)|g' \
 +  -e 's|@CC[@]|$(CC)|g' \
 +  -e 's|@CFLAGS[@]|$(CFLAGS)|g' \
 +  -e 's|@CXX[@]|$(CXX)|g' \
 +  -e 's|@CXXFLAGS[@]|$(CXXFLAGS)|g' \
 +  -e 's|@F77[@]|$(F77)|g' \
 +  -e 's|@FFLAGS[@]|$(FFLAGS)|g' \
 +  -e 's|@FC[@]|$(FC)|g' \
 +  -e 's|@FCFLAGS[@]|$(FCFLAGS)|g' \
 +  -e 's|@GNU_CFLAGS[@]|$(GNU_CFLAGS)|g' \
 +  -e 's|@GNU_CXXFLAGS[@]|$(GNU_CXXFLAGS)|g' \
 +  -e 's|@GNU_FFLAGS[@]|$(GNU_FFLAGS)|g' \
 +  -e 's|@GNU_FCFLAGS[@]|$(GNU_FCFLAGS)|g' \
++  -e 's|@YACC[@]|$(YACC)|g' \
++  -e 's|@LEX[@]|$(LEX)|g' \
 +  -e 's|@TEX[@]|$(TEX)|g' \
 +  -e 's|@MODIFICATION_DELAY[@]|$(MODIFICATION_DELAY)|g' \
 +  -e 's|@am_AUTOCONF[@]|$(am_AUTOCONF)|g' \
 +  -e 's|@am_AUTOM4TE[@]|$(am_AUTOM4TE)|g' \
 +  -e 's|@am_AUTORECONF[@]|$(am_AUTORECONF)|g' \
 +  -e 's|@am_AUTOHEADER[@]|$(am_AUTOHEADER)|g' \
 +  -e 's|@am_AUTOUPDATE[@]|$(am_AUTOUPDATE)|g' \
 +  -e 's|@sh_errexit_works[@]|$(sh_errexit_works)|g' \
 +  -e 's|@configure_input[@]|Generated from $@.in.  DO NOT EDIT BY HAND!|'
 +
 +defs-static: defs-static.in
 +      $(AM_V_at)rm -f $@ $@-t
 +      $(AM_V_GEN)$(do_subst) $(srcdir)/defs-static.in >$@-t
 +      $(AM_V_at) : Sanity check on the substitutions; \
 +      if LC_ALL=C grep '@[a-zA-Z0-9_][a-zA-Z0-9_]*@' $@-t; then \
 +        echo "$@ contains unexpanded substitution (see lines above)"; \
 +        exit 1; \
 +      fi
 +      $(AM_V_at)chmod a-w $@-t && mv -f $@-t $@
 +EXTRA_DIST += defs-static.in
 +CLEANFILES = defs-static
 +
 +# If two test scripts have the same basename, they will end up sharing
 +# the same log file, leading to all sort of undefined and undesired
 +# behaviours.
 +check-no-repeated-test-name:
 +      @LC_ALL=C; export LC_ALL; \
 +       lst='$(TEST_LOGS)'; for log in $$lst; do echo $$log; done \
 +         | sort | uniq -c | awk '($$1 > 1) { print }' \
 +         | sed 's/\.log$$//' | grep . >&2 \
 +         && { \
 +           echo $@: test names listed above are duplicated >&2; \
 +           exit 1; \
 +         }; :
 +check-local: check-no-repeated-test-name
 +.PHONY: check-no-repeated-test-name
  
  ## Checking the list of tests.
  test_subdirs = . pm
  include $(srcdir)/CheckListOfTests.am
 -maintainer-check-list-of-tests: $(parallel_tests)
 +
 +# Run the testsuite with the installed aclocal and automake.
 +installcheck-local:
 +      am_running_installcheck=yes $(MAKE) $(AM_MAKEFLAGS) check
  
  clean-local: clean-local-check
  .PHONY: clean-local-check
@@@ -206,86 -149,3 +210,86 @@@ clean-local-check
           find "$$@" -type d ! -perm -700 -exec chmod u+rwx {} ';'; \
           rm -rf "$$@"; \
         fi;
 +
 +## Run the testsuite through the `prove' utility.  Mostly for maintainers,
 +## and to find out possible incompatibilities between `prove' and the
 +## Automake own TAP driver.
 +
 +PROVE = prove
 +AM_PROVEFLAGS = --timer
 +AM_PROVECMD = \
 +  test -z "$$tests" || \
 +    { \
 +      $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) \
 +      $(PROVE) $(AM_PROVEFLAGS) -e $(srcdir)/prove-runner $(PROVEFLAGS) \
 +      $$tests $(AM_TESTS_FD_REDIRECT); \
 +    }
 +
 +EXTRA_DIST += prove-runner
 +
 +.PHONY: prove installprove
 +prove installprove: $(TESTS) prove-runner defs-static
 +      @exit_status=0; \
 +## The testsuite can be run either using the automake build tree or
 +## the already-installed automake package.
 +      case '$@' in \
 +        install*) am_running_installcheck=yes;; \
 +        *) am_running_installcheck=no;; \
 +      esac; \
 +      export am_running_installcheck; \
 +## XXX Our poor-man way to handle inter-tests dependencies without the
 +## XXX help of make.  This is obviously fragile and doesn't scale,
 +## XXX but for now it's good enough since we have only one possible
 +## XXX inter-tests dependency at the moment.
 +      need_tap_common_setup=no; \
 +      lst=' $(TESTS) '; for t in $$lst; do \
 +        case ' $(on_tap_with_common_setup_TESTS) ' in \
 +          *" $$t "*) need_tap_common_setup=yes; break;; \
 +        esac; \
 +      done; \
 +## For VPATH builds.
 +      if test $$need_tap_common_setup = yes; then \
 +        t=tap-common-setup.test; \
 +        if test -f ./$$t; then \
 +          tests=./$$t; \
 +        else \
 +          tests=$(srcdir)/$$t; \
 +        fi; \
 +## Do not stop if there's a failure here, we want to run the following
 +## tests anyway.
 +        echo "$@: running pre-requisite tests ..."; \
 +        $(AM_PROVECMD) || exits_status=$$?; \
 +        echo "$@: done.  We'll shortly run the main testsuite."; \
 +      fi; \
 +## Handle VPATH builds, and ensure that the tests have a properly
 +## qualified path.
 +      tests=`\
 +        for t in $(TESTS); do \
 +## XXX In next line, another hack for inter-tests dependencies: this
 +## XXX can't run concurrently to the tests that use the data files it
 +## XXX generates.
 +          case "$$need_tap_common_setup,/$$t" in \
 +            yes,*/tap-common-setup.test) continue;; \
 +          esac; \
 +          if test -f ./$$t; then \
 +            echo ./$$t; \
 +          else \
 +            echo $(srcdir)/$$t; \
 +          fi; \
 +        done`; \
 +## Extra environment, mostly for use by `prove-runner'.
 +## XFAIL_TESTS gets normalized to play nicer with VPATH builds.
 +      XFAIL_TESTS=`\
 +        for t in $(XFAIL_TESTS); do \
 +          echo $$t; echo ./$$t; echo $(srcdir)/$$t; \
 +        done | LC_ALL=C sort | uniq`; \
 +      XFAIL_TESTS=`echo $$XFAIL_TESTS`; \
 +      TAP_RUNNER='$(TAP_LOG_COMPILE)' \
 +      TEST_RUNER='$(TEST_LOG_COMPILE)' \
 +      export XFAIL_TESTS TAP_RUNNER TEST_RUNNER; \
 +## For consistency with the Automake testsuite harness, that exports
 +## this unconditionally in the test scripts' environment.
 +      srcdir='$(srcdir)'; export srcdir; \
 +## Here we go.
 +      $(AM_PROVECMD) || exit_status=$$?; \
 +      exit $$exit_status;
diff --combined tests/cond35.test
  # Check rules output for parser defined conditionally.
  # Report from Roman Fietze.
  
- required='cc flex yacc'
 -required='lex yacc gcc'
++required='cc lex yacc'
  . ./defs || Exit 1
  
 -set -e
 -
  cat >>configure.in <<'EOF'
 -AM_CONDITIONAL([CASE_A], test -z "$case_B")
 +AM_CONDITIONAL([CASE_A], [test -z "$case_B"])
  AC_PROG_CC
  AM_PROG_LEX
  AC_PROG_YACC
  AC_OUTPUT
  EOF
  
 -cat >>Makefile.am <<'EOF'
 +cat > Makefile.am <<'EOF'
  AM_YFLAGS               =       -d
  
  BUILT_SOURCES           =       tparse.h
@@@ -54,8 -56,7 +54,8 @@@ $ACLOCA
  $AUTOCONF
  $AUTOMAKE --add-missing
  
 -test `grep tparse.h: Makefile.in | wc -l` = 1
 +$FGREP 'tparse.h' Makefile.in # For debugging.
 +test `$FGREP -c 'tparse.h:' Makefile.in` = 1
  
  cat > tscan.l << 'END'
  %%
@@@ -77,8 -78,8 +77,8 @@@ void yyerror (char *s) {
  foobar : 'f' 'o' 'o' 'b' 'a' 'r' EOF {};
  END
  
 -cat >ta.c <<'END'
 -int main()
 +cat > ta.c << 'END'
 +int main (void)
  {
    return 0;
  }
@@@ -93,5 -94,3 +93,5 @@@ $MAKE test-t
  ./configure case_B=yes
  $MAKE
  $MAKE test-tb
 +
 +:
diff --combined tests/defs
index 03766ea,0000000..93c72b7
mode 100644,000000..100644
--- /dev/null
@@@ -1,1122 -1,0 +1,1153 @@@
-     flex)
-       # Since flex is required, we pick LEX for ./configure.
-       LEX=flex
 +# -*- shell-script -*-
 +#
 +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 +# 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software
 +# Foundation, Inc.
 +#
 +# This program is free software; you can redistribute it and/or modify
 +# it under the terms of the GNU General Public License as published by
 +# the Free Software Foundation; either version 2, or (at your option)
 +# any later version.
 +#
 +# This program is distributed in the hope that it will be useful,
 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +# GNU General Public License for more details.
 +#
 +# You should have received a copy of the GNU General Public License
 +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 +
 +########################################################
 +###  IMPORTANT NOTE: keep this file 'set -e' clean.  ###
 +########################################################
 +
 +# NOTE: This file should execute correctly with any system's /bin/sh
 +# shell, and not only with configure-time detected $CONFIG_SHELL,
 +# *until differently and explicitly specified*.
 +
 +## -------------------------------------------------------- ##
 +##  Source static setup and definitions for the testsuite.  ##
 +## -------------------------------------------------------- ##
 +
 +# Ensure we are running from the right directory.
 +test -f ./defs-static || {
 +   echo "$0: ./defs-static: not found in current directory" >&2
 +   exit 99
 +}
 +
 +# Source the shell sanitization and variables' definitions.
 +. ./defs-static || exit 99
 +
 +# Enable the errexit shell flag early.
 +set -e
 +
 +# The name of the current test (without the `.test' suffix).
 +# Test scripts can override it if they need to (but this should
 +# be done carefully, and *before* including ./defs).
 +if test -z "$me"; then
 +  # Guard against failure to spawn sed (seen on MSYS), or empty $argv0.
 +  me=`echo "$argv0" | sed -e 's,.*[\\/],,;s/\.test$//;s/\.tap$//;'` \
 +    && test -n "$me" \
 +    || { echo "$argv0: failed to define \$me" >&2; exit 99; }
 +fi
 +
 +## ---------------------- ##
 +##  Early sanity checks.  ##
 +## ---------------------- ##
 +
 +# A single whitespace character.
 +sp=' '
 +# A tabulation character.
 +tab=' '
 +# A newline character.
 +nl='
 +'
 +
 +# As autoconf-generated configure scripts do, ensure that IFS
 +# is defined initially, so that saving and restoring $IFS works.
 +IFS=$sp$tab$nl
 +
 +# Ensure $testsrcdir is set correctly.
 +test -f "$testsrcdir/defs-static.in" || {
 +   echo "$me: $testsrcdir/defs-static.in not found, check \$testsrcdir" >&2
 +   exit 99
 +}
 +
 +# Ensure $testbuilddir is set correctly.
 +test -f "$testbuilddir/defs-static" || {
 +   echo "$me: $testbuilddir/defs-static not found, check \$testbuilddir" >&2
 +   exit 99
 +}
 +
 +
 +## ------------------------------------ ##
 +##  Ensure we run with a proper shell.  ##
 +## ------------------------------------ ##
 +
 +# Make sure we run with the shell detected at configure time (unless
 +# the user forbids it).
 +case ${AM_TESTS_REEXEC-yes} in
 +  n|no|false|0)
 +    ;;
 +  *)
 +    # Ensure we can find ourselves.
 +    if test ! -f "$0"; then
 +      echo "$me: unable to find myself: $0" >&2
 +      exit 99
 +    fi
 +    AM_TESTS_REEXEC=no; export AM_TESTS_REEXEC
 +    # Cannot simply do `opts=$-', since the content of $- is not
 +    # portable among different shells.  So try to propagate only
 +    # the portable and interesting options.
 +    case $- in
 +      *x*v*|*v*x) opts=-vx;;
 +      *v*) opts=-v;;
 +      *x*) opts=-x;;
 +      *) opts=;;
 +    esac
 +    echo $me: exec $SHELL $opts "$0" "$*"
 +    exec $SHELL $opts "$0" ${1+"$@"} || {
 +      echo "$me: failed to re-execute with $SHELL" >&2
 +      exit 99
 +    }
 +    ;;
 +esac
 +
 +# NOTE: From this point on, we can assume this file is being executed
 +# by the configure-time detected $CONFIG_SHELL.
 +
 +
 +## ----------------------- ##
 +##  Early debugging info.  ##
 +## ----------------------- ##
 +
 +echo "Running from installcheck: $am_running_installcheck"
 +echo "Using TAP: $am_using_tap"
 +echo "PATH = $PATH"
 +
 +
 +## ---------------------- ##
 +##  Environment cleanup.  ##
 +## ---------------------- ##
 +
 +# Temporarily disable this, since some shells (e.g., older version
 +# of Bash) can return a non-zero exit status upon the when a non-set
 +# variable is unset.
 +set +e
 +
 +# Unset some make-related variables that may cause $MAKE to act like
 +# a recursively invoked sub-make.  Any $MAKE invocation in a test is
 +# conceptually an independent invocation, not part of the main
 +# 'automake' build.
 +unset MFLAGS MAKEFLAGS AM_MAKEFLAGS MAKELEVEL
 +unset __MKLVL__ MAKE_JOBS_FIFO                     # For BSD make.
 +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.
 +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 DISTCHECK_CONFIGURE_FLAGS AM_DISTCHECK_CONFIGURE_FLAGS
 +# The tests call `make -e' but we do not want $srcdir from the environment
 +# to override the definition from the Makefile.
 +unset srcdir
 +# Also unset variables that control our test driver.  While not
 +# conceptually independent, they cause some changed semantics we
 +# need to control (and test for) in some of the tests to ensure
 +# backward-compatible behavior.
 +unset TESTS_ENVIRONMENT AM_TESTS_ENVIRONMENT
 +unset DISABLE_HARD_ERRORS
 +unset AM_COLOR_TESTS
 +unset TESTS
 +unset XFAIL_TESTS
 +unset TEST_LOGS
 +unset TEST_SUITE_LOG
 +unset RECHECK_LOGS
 +unset VERBOSE
 +for pfx in TEST_ TAP_ ''; do
 +  unset ${pfx}LOG_COMPILER
 +  unset ${pfx}LOG_COMPILE # Not a typo!
 +  unset ${pfx}LOG_FLAGS
 +  unset AM_${pfx}LOG_FLAGS
 +  unset ${pfx}LOG_DRIVER
 +  unset ${pfx}LOG_DRIVER_FLAGS
 +  unset AM_${pfx}LOG_DRIVER_FLAGS
 +done
 +unset pfx
 +
 +# Re-enable, it had been temporarily disabled above.
 +set -e
 +
 +## ---------------------------- ##
 +##  Auxiliary shell functions.  ##
 +## ---------------------------- ##
 +
 +# Tell whether we should keep the test directories around, even in
 +# case of success.  By default, we don't.
 +am_keeping_testdirs ()
 +{
 +  case $keep_testdirs in
 +     ""|n|no|NO) return 1;;
 +              *) return 0;;
 +  esac
 +}
 +
 +# This is used in `Exit' and in the exit trap.  See comments in the latter
 +# for more information,
 +am__test_skipped=no
 +
 +# We use a trap below for cleanup.  This requires us to go through
 +# hoops to get the right exit status transported through the signal.
 +# So use `Exit STATUS' instead of `exit STATUS' inside of the tests.
 +# Turn off errexit here so that we don't trip the bug with OSF1/Tru64
 +# sh inside this function.
 +Exit ()
 +{
 +  set +e
 +  # See comments in the exit trap for the reason we do this.
 +  test 77 = $1 && am__test_skipped=yes
 +  (exit $1); exit $1
 +}
 +
 +if test $am_using_tap = yes; then
 +  am_funcs_file=tap-functions.sh
 +else
 +  am_funcs_file=plain-functions.sh
 +fi
 +
 +if test -f "$testsrcdir/$am_funcs_file"; then
 +  . "$testsrcdir/$am_funcs_file" || {
 +    echo "$me: error sourcing $testsrcdir/$am_funcs_file" >&2
 +    Exit 99
 +  }
 +else
 +  echo "$me: $testsrcdir/$am_funcs_file not found, check \$testsrcdir" >&2
 +  Exit 99
 +fi
 +unset am_funcs_file
 +
 +# cross_compiling
 +# ---------------
 +# Tell whether we are cross-compiling.  This is especially useful to skip
 +# tests (or portions of them) that requires a native compiler.
 +cross_compiling ()
 +{
 +  # Quoting from the autoconf manual:
 +  #   ... [$host_alias and $build both] default to the result of running
 +  #   config.guess, unless you specify either --build or --host.  In
 +  #   this case, the default becomes the system type you specified.
 +  #   If you specify both, *and they're different*, configure enters
 +  #   cross compilation mode (so it doesn't run any tests that require
 +  #   execution).
 +  test x"$host_alias" != x && test x"$build_alias" != x"$host_alias"
 +}
 +
 +# is_newest FILE FILES
 +# --------------------
 +# Return false if any file in FILES is newer than FILE.
 +# Resolve ties in favor of FILE.
 +is_newest ()
 +{
 +  is_newest_files=`find "$@" -prune -newer "$1"`
 +  test -z "$is_newest_files"
 +}
 +
 +# is_blocked_signal SIGNAL-NUMBER
 +# --------------------------------
 +# Return success if the given signal number is blocked in the shell,
 +# return a non-zero exit status and print a proper diagnostic otherwise.
 +is_blocked_signal ()
 +{
 +  # Use perl, since trying to do this portably in the shell can be
 +  # very tricky, if not downright impossible.  For reference, see:
 +  # <http://lists.gnu.org/archive/html/bug-autoconf/2011-09/msg00004.html>
 +  if $PERL -w -e '
 +    use strict;
 +    use warnings FATAL => "all";
 +    use POSIX;
 +    my %oldsigaction = ();
 +    sigaction('"$1"', 0, \%oldsigaction);
 +    exit ($oldsigaction{"HANDLER"} eq "IGNORE" ? 0 : 77);
 +  '; then
 +    return 0
 +  elif test $? -eq 77; then
 +    return 1
 +  else
 +    fatal_ "couldn't determine whether signal $1 is blocked"
 +  fi
 +}
 +
 +# AUTOMAKE_run [-e STATUS] [-d DESCRIPTION] [--] [AUTOMAKE-ARGS...]
 +# -----------------------------------------------------------------
 +# Run automake with AUTOMAKE-ARGS, and fail if it doesn't exit with
 +# STATUS.  Should be polymorphic for TAP and "plain" tests.  The
 +# DESCRIPTION, when provided, is used for console reporting, only if
 +# the TAP protocol is in use in the current test script.
 +AUTOMAKE_run ()
 +{
 +  am__desc=
 +  am__exp_rc=0
 +  while test $# -gt 0; do
 +    case $1 in
 +      -d) am__desc=$2; shift;;
 +      -e) am__exp_rc=$2; shift;;
 +      --) shift; break;;
 +       # Don't fail on unknown option: assume they (and the rest of the
 +       # command line) are to be passed verbatim to automake (so stop our
 +       # own option parsing).
 +       *) break;;
 +    esac
 +    shift
 +  done
 +  am__got_rc=0
 +  $AUTOMAKE ${1+"$@"} >stdout 2>stderr || am__got_rc=$?
 +  cat stderr >&2
 +  cat stdout
 +  if test $am_using_tap != yes; then
 +    test $am__got_rc -eq $am__exp_rc || Exit 1
 +    return
 +  fi
 +  if test -z "$am__desc"; then
 +    if test $am__got_rc -eq $am__exp_rc; then
 +      am__desc="automake exited $am__got_rc"
 +    else
 +      am__desc="automake exited $am__got_rc, expecting $am__exp_rc"
 +    fi
 +  fi
 +  command_ok_ "$am__desc" test $am__got_rc -eq $am__exp_rc
 +}
 +
 +# AUTOMAKE_fails [-d DESCRIPTION] [OPTIONS...]
 +# --------------------------------------------
 +# Run automake with OPTIONS, and fail if doesn't exit with status `1'.
 +# Should be polymorphic for TAP and "plain" tests.  The DESCRIPTION,
 +# when provided, is used for console reporting, only if the TAP
 +# protocol is in use in the current test script.
 +AUTOMAKE_fails ()
 +{
 +  AUTOMAKE_run -e 1 ${1+"$@"}
 +}
 +
 +# extract_configure_help { --OPTION | VARIABLE-NAME } [FILES]
 +# -----------------------------------------------------------
 +# Use this to extract from the output of `./configure --help' (or similar)
 +# the description or help message associated to the given --OPTION or
 +# VARIABLE-NAME.
 +extract_configure_help ()
 +{
 +  am__opt_re='' am__var_re=''
 +  case $1 in
 +    --*'=')   am__opt_re="^  $1";;
 +    --*'[=]') am__opt_re='^  '`printf '%s\n' "$1" | sed 's/...$//'`'\[=';;
 +    --*)      am__opt_re="^  $1( .*|$)";;
 +      *)      am__var_re="^  $1( .*|$)";;
 +  esac
 +  shift
 +  if test x"$am__opt_re" != x; then
 +    LC_ALL=C awk '
 +      /'"$am__opt_re"'/        { print; do_print = 1; next; }
 +      /^$/                     { do_print = 0; next }
 +      /^  --/                  { do_print = 0; next }
 +      (do_print == 1)          { print }
 +    ' ${1+"$@"}
 +  else
 +    LC_ALL=C awk '
 +      /'"$am__var_re"'/        { print; do_print = 1; next; }
 +      /^$/                     { do_print = 0; next }
 +      /^  [A-Z][A-Z0-9_]* /    { do_print = 0; next }
 +      /^  [A-Z][A-Z0-9_]*$/    { do_print = 0; next }
 +      (do_print == 1)          { print }
 +    ' ${1+"$@"}
 +  fi
 +}
 +
 +# grep_configure_help { --OPTION | VARIABLE-NAME } REGEXP
 +# -------------------------------------------------------
 +# Grep the section of `./configure --help' output associated with either
 +# --OPTION or VARIABLE-NAME for the given *extended* regular expression.
 +grep_configure_help ()
 +{
 +  ./configure --help > am--all-help \
 +    || { cat am--all-help; Exit 1; }
 +  cat am--all-help
 +  extract_configure_help "$1" am--all-help > am--our-help \
 +    || { cat am--our-help; Exit 1; }
 +  cat am--our-help
 +  $EGREP "$2" am--our-help || Exit 1
 +}
 +
 +# using_gmake
 +# -----------
 +# Return success if $MAKE is GNU make, return failure otherwise.
 +# Caches the result for speed reasons.
 +using_gmake ()
 +{
 +  case $am__using_gmake in
 +    yes)
 +      return 0;;
 +    no)
 +      return 1;;
 +    '')
 +      # Use --version AND -v, because SGI Make doesn't fail on --version.
 +      # Also grep for GNU because newer versions of FreeBSD make do
 +      # not complain about `--version' (they seem to silently ignore it).
 +      if $MAKE --version -v | grep GNU; then
 +        am__using_gmake=yes
 +        return 0
 +      else
 +        am__using_gmake=no
 +        return 1
 +      fi;;
 +    *)
 +      fatal_ "invalid value for \$am__using_gmake: '$am__using_gmake'";;
 +  esac
 +}
 +am__using_gmake="" # Avoid interferences from the environment.
 +
 +# make_can_chain_suffix_rules
 +# ---------------------------
 +# Return 0 if $MAKE is a make implementation that can chain suffix rules
 +# automatically, return 1 otherwise.  Caches the result for speed reasons.
 +make_can_chain_suffix_rules ()
 +{
 +  if test -z "$am__can_chain_suffix_rules"; then
 +    if using_gmake; then
 +      am__can_chain_suffix_rules=yes
 +      return 0
 +    else
 +      mkdir am__chain.dir$$
 +      cd am__chain.dir$$
 +      unindent > Makefile << 'END'
 +        .SUFFIXES: .u .v .w
 +        .u.v: ; cp $< $@
 +        .v.w: ; cp $< $@
 +END
 +      echo make can chain suffix rules > foo.u
 +      if $MAKE foo.w && diff foo.u foo.w; then
 +        am__can_chain_suffix_rules=yes
 +      else
 +        am__can_chain_suffix_rules=no
 +      fi
 +      cd ..
 +      rm -rf am__chain.dir$$
 +    fi
 +  fi
 +  case $am__can_chain_suffix_rules in
 +    yes) return 0;;
 +     no) return 1;;
 +      *) fatal_ "make_can_chain_suffix_rules: internal error";;
 +  esac
 +}
 +am__can_chain_suffix_rules="" # Avoid interferences from the environment.
 +
++# useless_vpath_rebuild
++# ---------------------
++# Tell whether $MAKE suffers of the bug triggering automake bug#7884.
++# For example, this happens with FreeBSD make, since in a VPATH build
++# it tends to rebuilt files for which there is an explicit or even just
++# a suffix rule, even if said files are already available in the VPATH
++# directory.
++useless_vpath_rebuild ()
++{
++  case $am__useless_vpath_rebuild in
++    yes) return 0;;
++     no) return 1;;
++     "") ;;
++      *) fatal_ "no_useless_builddir_remake: internal error";;
++  esac
++  if using_gmake; then
++    am__useless_vpath_rebuild=no
++    return 1
++  else
++    mkdir am__vpath.dir$$
++    cd am__vpath.dir$$
++    touch foo.a foo.b bar baz
++    mkdir build
++    cd build
++    unindent > Makefile << 'END'
++        .SUFFIXES: .a .b
++        VPATH = ..
++        all: foo.b baz
++        .PHONY: all
++        .a.b: ; cp $< $@
++        baz: bar ; cp ../baz bar
++END
++    if $MAKE all && test ! -f foo.b && test ! -f bar; then
++      am__useless_vpath_rebuild=no
++    else
++      am__useless_vpath_rebuild=yes
++    fi
++    cd ../..
++    rm -rf am__vpath.dir$$
++  fi
++}
++
++yl_distcheck () { useless_vpath_rebuild || $MAKE distcheck ${1+"$@"}; }
++
 +# seq_ - print a sequence of numbers
 +# ----------------------------------
 +# This function simulates GNU seq(1) portably.  Valid usages:
 +#  - seq LAST
 +#  - seq FIRST LAST
 +#  - seq FIRST INCREMENT LAST
 +seq_ ()
 +{
 +  case $# in
 +    0) fatal_ "seq_: missing argument";;
 +    1) seq_first=1  seq_incr=1  seq_last=$1;;
 +    2) seq_first=$1 seq_incr=1  seq_last=$2;;
 +    3) seq_first=$1 seq_incr=$2 seq_last=$3;;
 +    *) fatal_ "seq_: too many arguments";;
 +  esac
 +  # Try to avoid forks if possible.
 +  case "$BASH_VERSION" in
 +    ""|[12].*)
 +      : Not bash, or a too old bash version. ;;
 +    *)
 +      # Use eval to protect dumber shells from parsing errors.
 +      eval 'for ((i = seq_first; i <= seq_last; i += seq_incr)); do
 +              echo $i
 +            done'
 +      return 0;;
 +  esac
 +  # Else, use GNU seq if available.
 +  seq "$@" && return 0
 +  # Otherwise revert to a slower loop using expr(1).
 +  i=$seq_first
 +  while test $i -le $seq_last; do
 +    echo $i
 +    i=`expr $i + $seq_incr`
 +  done
 +}
 +
 +# rm_rf_ [FILES OR DIRECTORIES ...]
 +# ---------------------------------
 +# Recursively remove the given files or directory, also handling the case
 +# of non-writable subdirectories.
 +rm_rf_ ()
 +{
 +  test $# -gt 0 || return 0
 +  # Ignore failures in find, we are only interested in failures of the
 +  # final rm.
 +  find "$@" -type d ! -perm -700 -exec chmod u+rwx {} \; || :
 +  rm -rf "$@"
 +}
 +
 +# 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
 +# had the specified numbers of test results (specified by kind).
 +# This function assumes that the output of "make check" or "make recheck"
 +# has been saved in the `stdout' file in the current directory, and its
 +# log in the `test-suite.log' file.
 +count_test_results ()
 +{
 +  # Use a subshell so that we won't pollute the script namespace.
 +  (
 +    # TODO: Do proper checks on the arguments?
 +    total=ERR pass=ERR fail=ERR xpass=ERR xfail=ERR skip=ERR error=ERR
 +    eval "$@"
 +    # For debugging.
 +    $EGREP -i '(total|x?pass|x?fail|skip|error)' stdout || :
 +    rc=0
 +    # Avoid spurious failures with shells with "overly sensible"
 +    # `errexit' shell flag, such as e.g., Solaris /bin/sh.
 +    set +e
 +    test `grep -c '^PASS:'  stdout` -eq $pass  || rc=1
 +    test `grep -c '^XFAIL:' stdout` -eq $xfail || rc=1
 +    test `grep -c '^SKIP:'  stdout` -eq $skip  || rc=1
 +    test `grep -c '^FAIL:'  stdout` -eq $fail  || rc=1
 +    test `grep -c '^XPASS:' stdout` -eq $xpass || rc=1
 +    test `grep -c '^ERROR:' stdout` -eq $error || rc=1
 +    grep "^# TOTAL:  *$total$" stdout || rc=1
 +    grep "^# PASS:  *$pass$"   stdout || rc=1
 +    grep "^# XFAIL:  *$xfail$" stdout || rc=1
 +    grep "^# SKIP:  *$skip$"   stdout || rc=1
 +    grep "^# FAIL:  *$fail$"   stdout || rc=1
 +    grep "^# XPASS:  *$xpass$" stdout || rc=1
 +    grep "^# ERROR:  *$error$" stdout || rc=1
 +    test $rc -eq 0
 +  )
 +}
 +
 +commented_sed_unindent_prog='
 +  /^$/b                    # Nothing to do for empty lines.
 +  x                        # Get x<indent> into pattern space.
 +  /^$/{                    # No prior x<indent>, go prepare it.
 +    g                      # Copy this 1st non-blank line into pattern space.
 +    s/^\(['"$tab"' ]*\).*/x\1/   # Prepare x<indent> in pattern space.
 +  }                        # Now: x<indent> in pattern and <line> in hold.
 +  G                        # Build x<indent>\n<line> in pattern space, and
 +  h                        # duplicate it into hold space.
 +  s/\n.*$//                # Restore x<indent> in pattern space, and
 +  x                        # exchange with the above duplicate in hold space.
 +  s/^x\(.*\)\n\1//         # Remove leading <indent> from <line>.
 +  s/^x.*\n//               # Restore <line> when there is no leading <indent>.
 +'
 +
 +# unindent [input files...]
 +# -------------------------
 +# Remove the "proper" amount of leading whitespace from the given files,
 +# and output the result on stdout.  That amount is determined by looking
 +# at the leading whitespace of the first non-blank line in the input
 +# files.  If no input file is specified, standard input is implied.
 +unindent ()
 +{
 +  if test x"$sed_unindent_prog" = x; then
 +    sed_unindent_prog=`printf '%s\n' "$commented_sed_unindent_prog" | sed -e "s/  *# .*//"`
 +  fi
 +  sed "$sed_unindent_prog" ${1+"$@"}
 +}
 +sed_unindent_prog="" # Avoid interferences from the environment.
 +
 +# get_shell_script SCRIPT-NAME
 +# -----------------------------
 +# Fetch an Automake-provided shell script from the `lib/' directory into
 +# the current directory, and, if the `$am_test_prefer_config_shell'
 +# variable is set to "yes", modify its shebang line to use $SHELL instead
 +# of /bin/sh.
 +get_shell_script ()
 +{
 +  if test x"$am_test_prefer_config_shell" = x"yes"; then
 +    sed "1s|#!.*|#! $SHELL|" "$am_scriptdir/$1" > "$1"
 +    chmod a+x "$1"
 +  else
 +    cp "$am_scriptdir/$1" .
 +  fi
 +  sed 10q "$1" # For debugging.
 +}
 +
 +# require_xsi SHELL
 +# -----------------
 +# Skip the test if the given shell fails to support common XSI constructs.
 +require_xsi ()
 +{
 +  test $# -eq 1 || fatal_ "require_xsi needs exactly one argument"
 +  echo "$me: trying some XSI constructs with $1"
 +  $1 -c "$xsi_shell_code" || skip_all_ "$1 lacks XSI features"
 +}
 +# Shell code supposed to work only with XSI shells.  Keep this in sync
 +# with libtool.m4:_LT_CHECK_SHELL_FEATURES.
 +xsi_shell_code='
 +  _lt_dummy="a/b/c"
 +  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
 +      = c,a/b,b/c, \
 +    && eval '\''test $(( 1 + 1 )) -eq 2 \
 +    && test "${#_lt_dummy}" -eq 5'\'
 +
 +# fetch_tap_driver
 +# ----------------
 +# Fetch the Automake-provided TAP driver from the `lib/' directory into
 +# the current directory, and edit its shebang line so that it will be
 +# run with the perl interpreter determined at configure time.
 +fetch_tap_driver ()
 +{
 +  # TODO: we should devise a way to make the shell TAP driver tested also
 +  # TODO: with /bin/sh, for better coverage.
 +  case $am_tap_implementation in
 +    perl)
 +      $PERL -MTAP::Parser -e 1 \
 +        || skip_all_ "cannot import TAP::Parser perl module"
 +      sed "1s|#!.*|#! $PERL -w|" "$am_scriptdir"/tap-driver.pl >tap-driver
 +      ;;
 +    shell)
 +      sed "1s|#!.*|#! $SHELL|" "$am_scriptdir"/tap-driver.sh >tap-driver
 +      ;;
 +    *)
 +      fatal_ "invalid \$am_tap_implementation '$am_tap_implementation'" ;;
 +  esac \
 +    && chmod a+x tap-driver \
 +    || framework_failure_ "couldn't fetch $am_tap_implementation TAP driver"
 +  sed 10q tap-driver # For debugging.
 +}
 +# The shell/awk implementation of the TAP driver is still mostly dummy, so
 +# use the perl implementation by default for the moment.
 +am_tap_implementation=${am_tap_implementation-shell}
 +
 +# Usage: require_compiler_ {cc|c++|fortran|fortran77}
 +require_compiler_ ()
 +{
 +  case $# in
 +    0) fatal_ "require_compiler_: missing argument";;
 +    1) ;;
 +    *) fatal_ "require_compiler_: too many arguments";;
 +  esac
 +  case $1 in
 +    cc)
 +      am__comp_lang="C"
 +      am__comp_var=CC
 +      am__comp_flag_vars='CFLAGS CPPFLAGS'
 +      ;;
 +    c++)
 +      am__comp_lang="C++"
 +      am__comp_var=CXX
 +      am__comp_flag_vars='CXXFLAGS CPPFLAGS'
 +      ;;
 +    fortran)
 +      am__comp_lang="Fortran"
 +      am__comp_var=FC
 +      am__comp_flag_vars='FCFLAGS'
 +      ;;
 +    fortran77)
 +      am__comp_lang="Fortran 77"
 +      am__comp_var=F77
 +      am__comp_flag_vars='FFLAGS'
 +      ;;
 +  esac
 +  shift
 +  eval "am__comp_prog=\${$am__comp_var}" \
 +    || fatal_ "expanding \${$am__comp_var} in require_compiler_"
 +  case $am__comp_prog in
 +    "")
 +      fatal_ "botched configuration: \$$am__comp_var is empty";;
 +    false)
 +      skip_all_ "no $am__comp_lang compiler available";;
 +    autodetect|autodetected)
 +      # Let the ./configure commands in the test script try to determine
 +      # these automatically.
 +      unset $am__comp_var $am__comp_flag_vars;;
 +    *)
 +      # Pre-set these for the ./configure commands in the test script.
 +      export $am__comp_var $am__comp_flag_vars;;
 +  esac
 +  # Delete private variables.
 +  unset am__comp_lang am__comp_prog am__comp_var am__comp_flag_vars
 +}
 +
 +## ----------------------------------------------------------- ##
 +##  Checks for required tools, and additional setups (if any)  ##
 +##  required by them.                                          ##
 +## ----------------------------------------------------------- ##
 +
 +# So that we can force the use of correct gcc, g++ etc., consistently
 +# with cross-compilation settings.
 +if cross_compiling; then
 +  am__tool_prefix="$host_alias-"
 +else
 +  am__tool_prefix=
 +fi
 +
 +# Look for (and maybe set up) required tools and/or system features; skip
 +# the current test if they are not found.
 +for tool in : $required
 +do
 +  # Check that each required tool is present.
 +  case $tool in
 +    :) ;;
 +    cc|c++|fortran|fortran77)
 +      require_compiler_ $tool;;
 +    xsi-shell)
 +      require_xsi "$SHELL";;
 +    xsi-bin-sh)
 +      require_xsi "/bin/sh";;
 +    xsi-lib-shell)
 +      if test x"$am_test_prefer_config_shell" = x"yes"; then
 +        require_xsi "$SHELL"
 +      else
 +        require_xsi "/bin/sh"
 +      fi
 +      ;;
 +    bzip2)
 +      # Do not use --version, bzip2 still tries to compress stdin.
 +      echo "$me: running bzip2 --help"
 +      bzip2 --help \
 +        || skip_all_ "required program \`bzip2' not available"
 +      ;;
 +    cl)
 +      CC=cl
 +      # Don't export CFLAGS, as that could have been initialized to only
 +      # work with the C compiler detected at configure time.  If the user
 +      # wants CFLAGS to also influence `cl', he can still export CFLAGS
 +      # in the environment "by hand" before calling the testsuite.
 +      export CC CPPFLAGS
 +      echo "$me: running $CC -?"
 +      $CC -? || skip_all_ "Microsoft C compiler \`$CC' not available"
 +      ;;
 +    cscope)
 +      # Sun cscope is interactive without redirection.
 +      echo "$me: running cscope --version </dev/null"
 +      cscope --version </dev/null \
 +        || skip_all_ "required program \`cscope' not available"
 +      ;;
 +    cygpath)
 +      echo "$me: running cygpath --version"
 +      cygpath --version || skip_all_ "cygpath not available"
 +      ;;
 +    etags)
 +      # Exuberant Ctags will create a TAGS file even
 +      # when asked for --help or --version.  (Emacs's etags
 +      # does not have such problem.)  Use -o /dev/null
 +      # to make sure we do not pollute the tests/ directory.
 +      echo "$me: running etags --version -o /dev/null"
 +      etags --version -o /dev/null \
 +        || skip_all_ "required program \`etags' not available"
 +      ;;
 +    GNUmake)
 +      for make_ in "$MAKE" gmake gnumake :; do
 +        MAKE=$make_ am__using_gmake=''
 +        test "$MAKE" =  : && break
 +        echo "$me: determine whether $MAKE is GNU make"
 +        # Don't use "&&" here, or a bug of 'set -e' present in some
 +        # versions of the BSD shell will be triggered.  We add the
 +        # dummy "else" branch for extra safety.
 +        if using_gmake; then break; else :; fi
 +      done
 +      test "$MAKE" = : && skip_all_ "this test requires GNU make"
 +      export MAKE
 +      unset make_
 +      ;;
 +    gcc)
 +      # When gcc is required, export `CC=gcc' so that ./configure
 +      # always use it.  This is important only when the user
 +      # has defined CC in his environment, otherwise ./configure will
 +      # prefer gcc to other compilers.
 +      CC=${am__tool_prefix}gcc
 +      CFLAGS=$GNU_CFLAGS
 +      export CC CFLAGS CPPFLAGS
 +      echo "$me: running $CC --version"
 +      $CC --version || skip_all_ "GNU C compiler not available"
 +      echo "$me: running $CC -v"
 +      $CC -v || skip_all_ "botched installation for GNU C compiler"
 +      ;;
 +    gcj)
 +      GCJ=${am__tool_prefix}gcj
 +      export GCJ
 +      echo "$me: running $GCJ --version"
 +      $GCJ --version || skip_all_ "GNU Java compiler not available"
 +      echo "$me: running $GCJ -v"
 +      $GCJ -v || skip_all_ "botched installation for GNU Java compiler"
 +      ;;
 +    g++)
 +      CXX=${am__tool_prefix}g++
 +      CXXFLAGS=$GNU_CXXFLAGS
 +      export CXX CXXFLAGS CPPFLAGS
 +      echo "$me: running $CXX --version"
 +      $CXX --version || skip_all_ "GNU C++ compiler not available"
 +      echo "$me: running $CXX -v"
 +      $CXX -v || skip_all_ "botched installation for GNU C++ compiler"
 +      ;;
 +    gfortran)
 +      FC=${am__tool_prefix}gfortran
 +      FCFLAGS=$GNU_FCFLAGS
 +      export FC FCFLAGS
 +      echo "$me: running $FC --version"
 +      $FC --version || skip_all_ "GNU Fortran compiler not available"
 +      echo "$me: running $FC -v"
 +      $FC -v || skip_all_ "botched installation for GNU Fortran compiler"
 +      case " $required " in
 +        *\ g77\ *) ;;
 +        *) F77=$FC FFLAGS=$FCFLAGS; export F77 FFLAGS;;
 +      esac
 +      ;;
 +    g77)
 +      F77=${am__tool_prefix}g77
 +      FFLAGS=$GNU_FFLAGS
 +      export F77 FFLAGS
 +      echo "$me: running $F77 --version"
 +      $F77 --version || skip_all_ "GNU Fortran 77 compiler not available"
 +      echo "$me: running $F77 -v"
 +      $F77 -v || skip_all_ "botched installation for GNU Fortran 77 compiler"
 +      case " $required " in
 +        *\ gfortran\ *) ;;
 +        *) FC=$F77 FCFLAGS=$FFLAGS; export FC FCFLAGS;;
 +      esac
 +      ;;
 +    icc)
 +      CC=icc
 +      export CC CPPFLAGS # But not CFLAGS (see comments for `cl' above).
 +      # There is no way to ask *only* the compiler's version.
 +      # This tool always wants to do something (by default
 +      # it will try link *nothing* and complain it cannot find
 +      # main(); funny).  Use -help so it does not try linking anything.
 +      echo "$me: running $CC -V -help"
 +      $CC -V -help || skip_all_ "Intel C compiler \`$CC' not available"
 +      ;;
 +    javac)
 +      # The Java compiler from JDK 1.5 (and presumably earlier versions)
 +      # cannot handle the `-version' option by itself: it bails out
 +      # telling that source files are missing.  Adding also the `-help'
 +      # option seems to solve the problem.
 +      echo "$me: running javac -version -help"
 +      javac -version -help || skip_all_ "Sun Java compiler not available"
 +      ;;
 +    java)
 +      # See the comments above about `javac' for why we use also `-help'.
 +      echo "$me: running java -version -help"
 +      java -version -help || skip_all_ "Sun Java interpreter not found"
 +      ;;
 +    lib)
 +      AR=lib
 +      export AR
 +      # Attempting to create an empty archive will actually not
 +      # create the archive, but lib will output its version.
 +      echo "$me: running $AR -out:defstest.lib"
 +      $AR -out:defstest.lib \
 +        || skip_all_ "Microsoft \`lib' utility not available"
 +      ;;
 +    makedepend)
 +      echo "$me: running makedepend -f-"
 +      makedepend -f- \
 +        || skip_all_ "required program \`makedepend' not available"
 +      ;;
 +    makeinfo-html)
 +      # Make sure we have makeinfo, and it understands `--html'.
 +      echo "$me: running makeinfo --html --version"
 +      makeinfo --html --version \
 +        || skip_all_ "cannot find a makeinfo program that groks the" \
 +                 "\`--html' option"
 +      ;;
 +    mingw)
 +      uname_s=`uname -s || echo UNKNOWN`
 +      echo "$me: system name: $uname_s"
 +      case $uname_s in
 +        MINGW*) ;;
 +        *) skip_all_ "this test requires MSYS in MinGW mode" ;;
 +      esac
 +      ;;
 +    non-root)
 +      # Skip this test case if the user is root.
 +      # We try to append to a read-only file to detect this.
 +      priv_check_temp=priv-check.$$
 +      touch $priv_check_temp && chmod a-w $priv_check_temp \
 +        || framework_failure_ "creating unwritable file $priv_check_temp"
 +      # Not a useless use of subshell: lesser shells like Solaris /bin/sh
 +      # can exit if a builtin fails.
 +      overwrite_status=0
 +      (echo foo >> $priv_check_temp) || overwrite_status=$?
 +      rm -f $priv_check_temp
 +      if test $overwrite_status -eq 0; then
 +        skip_all_ "cannot drop file write permissions"
 +      fi
 +      unset priv_check_temp overwrite_status
 +      ;;
 +    perl-threads)
 +      if test "$WANT_NO_THREADS" = "yes"; then
 +        skip_all_ "Devel::Cover cannot cope with threads"
 +      fi
 +      ;;
 +    native)
 +      # Don't use "&&" here, to avoid a bug of 'set -e' present in
 +      # some (even relatively recent) versions of the BSD shell.
 +      # We add the dummy "else" branch for extra safety.
 +      if cross_compiling; then
 +        skip_all_ "doesn't work in cross-compile mode"
 +      else :; fi
 +      ;;
 +    python)
 +      # Python doesn't support --version, it has -V
 +      echo "$me: running python -V"
 +      python -V || skip_all_ "python interpreter not available"
 +      ;;
 +    ro-dir)
 +      # Skip this test case if read-only directories aren't supported
 +      # (e.g., under DOS.)
 +      ro_dir_temp=ro_dir.$$
 +      mkdir $ro_dir_temp && chmod a-w $ro_dir_temp \
 +        || framework_failure_ "creating unwritable directory $ro_dir_temp"
 +      # Not a useless use of subshell: lesser shells like Solaris /bin/sh
 +      # can exit if a builtin fails.
 +      create_status=0
 +      (: > $ro_dir_temp/probe) || create_status=$?
 +      rm -rf $ro_dir_temp
 +      if test $create_status -eq 0; then
 +        skip_all_ "cannot drop directory write permissions"
 +      fi
 +      unset ro_dir_temp create_status
 +      ;;
 +    runtest)
 +      # DejaGnu's runtest program. We rely on being able to specify
 +      # the program on the runtest command-line. This requires
 +      # DejaGnu 1.4.3 or later.
 +      echo "$me: running runtest SOMEPROGRAM=someprogram --version"
 +      runtest SOMEPROGRAM=someprogram --version \
 +        || skip_all_ "DejaGnu is not available"
 +      ;;
 +    tex)
 +      # No all versions of Tex support `--version', so we use
 +      # a configure check.
 +      if test -z "$TEX"; then
 +        skip_all_ "TeX is required, but it wasn't found by configure"
 +      fi
 +      ;;
 +    texi2dvi-o)
 +      # Texi2dvi supports `-o' since Texinfo 4.1.
 +      echo "$me: running texi2dvi -o /dev/null --version"
 +      texi2dvi -o /dev/null --version \
 +        || skip_all_ "required program \`texi2dvi' not available"
 +      ;;
-     lex)
-       test "$LEX" = false && skip_all_ "no Lex program available"
-       if test -z "$LEX"; then
-         # The user hasn't explicitly specified any lex program in the
-         # environment, so we try to use flex, skipping the test if it's
-         # not found.
-         LEX=flex
-         export LEX
-         echo "$me: running flex --version"
-         flex --version || skip_all_ "required program \`flex' not available"
-       fi
-       ;;
-     yacc)
-       test "$YACC" = false && skip_all_ "no Yacc program available"
-       if test -z "$YACC"; then
-         # The user hasn't explicitly specified any yacc program in the
-         # environment, so we try to use bison, skipping the test if it's
-         # not found.
-         YACC='bison -y'
-         export YACC
-         echo "$me: running bison --version"
-         bison --version || skip_all_ "required program \`bison' not available"
-       fi
++    lex)
++      test x"$LEX" = x"false" && skip_all_ "lex not found or disabled"
 +      export LEX
++      ;;
++    yacc)
++      test x"$YACC" = x"false" && skip_all_ "yacc not found or disabled"
++      export YACC
++      ;;
++    flex)
++      LEX=flex; export LEX
 +      echo "$me: running flex --version"
 +      flex --version || skip_all_ "required program \`flex' not available"
 +      ;;
++    bison)
++      YACC='bison -y'; export YACC
++      echo "$me: running bison --version"
++      bison --version || skip_all_ "required program \`bison' not available"
 +      ;;
 +    *)
 +      # Generic case: the tool must support --version.
 +      echo "$me: running $tool --version"
 +      # It is not likely but possible that $tool is a special builtin,
 +      # in which case the shell is allowed to exit after an error.
 +      # So, please leave the subshell here.
 +      ($tool --version) || skip_all_ "required program \`$tool' not available"
 +      ;;
 +  esac
 +done
 +
 +# Using just `$testbuilddir' for the check here is ok, since the
 +# further temporary subdirectory where the test will be run is
 +# ensured not to contain any whitespace character.
 +case $testbuilddir in
 +  *\ *|*\     *)
 +    case " $required " in
 +      *' libtool '* | *' libtoolize '* )
 +        skip_all_ "libtool has problems with spaces in builddir name";;
 +    esac
 +    ;;
 +esac
 +
 +# This test is necessary, although Automake's configure script bails out
 +# when $srcdir contains spaces.  This is because $testsrcdir is in not
 +# configure-time $srcdir, but is instead configure-time $abs_srcdir, and
 +# that is allowed to contain spaces.
 +case $testsrcdir in
 +  *\ * |*\    *)
 +    case " $required " in
 +      *' libtool '* | *' libtoolize '* | *' gettext '* )
 +        skip_all_ "spaces in srcdir name: libtool/gettext tests won't work";;
 +   esac
 +   ;;
 +esac
 +
 +# We might need extra macros, e.g., from Libtool or Gettext.
 +case " $required " in *\ libtool*) . ./libtool-macros.dir/get.sh;; esac
 +case " $required " in *\ gettext*) . ./gettext-macros.dir/get.sh;; esac
 +
 +
 +## ---------------------------------------------------------------- ##
 +##  Create and set up of the temporary directory used by the test.  ##
 +##  Set up of the exit trap for cleanup of said directory.          ##
 +## ---------------------------------------------------------------- ##
 +
 +# This might be used in testcases checking distribution-related features.
 +# Test scripts are free to override this if they need to.
 +distdir=$me-1.0
 +
 +# Set up the exit trap.
 +if test "$sh_errexit_works" = yes; then
 +  trap 'exit_status=$?
 +    set +e
 +    cd "$testbuilddir"
 +    if test $am_using_tap = yes; then
 +      if test $have_tap_plan_ != yes && test $exit_status -eq 0; then
 +        plan_ "now"
 +      fi
 +      test $exit_status -eq 0 && test $tap_pass_count_ -eq $tap_count_ \
 +        || keep_testdirs=yes
 +    else
 +      # This is to ensure that a test script does give a SKIP outcome just
 +      # because a command in it happens to exit with status 77.  This
 +      # behaviour, while from time to time useful to developers, is not
 +      # meant to be enabled by default, as it could cause spurious failures
 +      # in the wild.  Thus it will be enabled only when the variable
 +      # "am_explicit_skips" is set to a "true" value.
 +      case $am_explicit_skips in
 +        [yY]|[yY]es|1)
 +          if test $exit_status -eq 77 && test $am__test_skipped != yes; then
 +            echo "$me: implicit skip turned into failure"
 +            exit_status=78
 +          fi;;
 +      esac
 +      test $exit_status -eq 0 || keep_testdirs=yes
 +    fi
 +    am_keeping_testdirs || rm_rf_ $testSubDir
 +    set +x
 +    echo "$me: exit $exit_status"
 +    exit $exit_status
 +  ' 0
 +  trap "fatal_ 'caught signal SIGHUP'" 1
 +  trap "fatal_ 'caught signal SIGINT'" 2
 +  trap "fatal_ 'caught signal SIGTERM'" 15
 +  # Various shells seems to just ignore SIGQUIT under some circumstances,
 +  # even if the signal is not blocked; however, if the signal it trapped,
 +  # the trap gets correctly executed.  So we also trap SIGQUIT.
 +  # Here is a list of some shells that have been verified to exhibit the
 +  # problematic behavior with SIGQUIT:
 +  #  - zsh 4.3.12 on Debian GNU/Linux
 +  #  - /bin/ksh and /usr/xpg4/bin/sh on Solaris 10
 +  #  - Bash 3.2.51 on Solaris 10 and bash 4.1.5 on Debian GNU/Linux
 +  #  - AT&T ksh on Debian Gnu/Linux (deb package ksh, version 93u-1)
 +  # OTOH, at least these shells that do *not* exhibit that behaviour:
 +  #  - modern version of the Almquist Shell (at least 0.5.5.1), on
 +  #    both Solaris and GNU/Linux
 +  #  - Solaris 10 /bin/sh
 +  #  - public domain Korn Shell, version 5.2.14, on Debian GNU/Linux
 +  trap "fatal_ 'caught signal SIGQUIT'" 3
 +  # Ignore further SIGPIPE in the trap code.  This is required to avoid
 +  # a very weird issue with some shells, at least when the execution of
 +  # the automake testsuite is driven by the `prove' utility: if prove
 +  # (or the make process that has spawned it) gets interrupted with
 +  # Ctrl-C, the shell might go in a loop, continually getting a SIGPIPE,
 +  # sometimes finally dumping core, other times hanging indefinitely.
 +  # See also Test::Harness bug [rt.cpan.org #70855], archived at
 +  # <https://rt.cpan.org/Ticket/Display.html?id=70855>
 +  trap "trap '' 13; fatal_ 'caught signal SIGPIPE'" 13
 +fi
 +
 +# Create and populate the temporary directory, if and as required.
 +if test x"$am_create_testdir" = x"no"; then
 +  testSubDir=
 +else
 +  # The subdirectory where the current test script will run and write its
 +  # temporary/data files.  This will be created shortly, and will be removed
 +  # by the cleanup trap below if the test passes.  If the test doesn't pass,
 +  # this directory will be kept, to facilitate debugging.
 +  testSubDir=$me.dir
 +  test ! -d $testSubDir || rm_rf_ $testSubDir \
 +    || framework_failure_ "removing old test subdirectory"
 +  mkdir $testSubDir \
 +    || framework_failure_ "creating test subdirectory"
 +  cd ./$testSubDir \
 +    || framework_failure_ "cannot chdir into test subdirectory"
 +  if test x"$am_create_testdir" != x"empty"; then
 +    cp "$am_scriptdir"/install-sh "$am_scriptdir"/missing \
 +       "$am_scriptdir"/depcomp . \
 +      || framework_failure_ "fetching common files from $am_scriptdir"
 +    # Build appropriate environment in test directory.  E.g., create
 +    # configure.in, touch all necessary files, etc.  Don't use AC_OUTPUT,
 +    # but AC_CONFIG_FILES so that appending still produces a valid
 +    # configure.in.  But then, tests running config.status really need
 +    # to append AC_OUTPUT.
 +    {
 +      echo "AC_INIT([$me], [1.0])"
 +      if test x"$am_parallel_tests" = x"yes"; then
 +        echo "AM_INIT_AUTOMAKE([parallel-tests])"
 +      else
 +        echo "AM_INIT_AUTOMAKE"
 +      fi
 +      echo "AC_CONFIG_FILES([Makefile])"
 +    } >configure.in || framework_failure_ "creating configure.in skeleton"
 +  fi
 +fi
 +
 +
 +## ---------------- ##
 +##  Ready to go...  ##
 +## ---------------- ##
 +
 +set -x
 +pwd
diff --combined tests/defs-static.in
index 79484a9,0000000..826c08a
mode 100644,000000..100644
--- /dev/null
@@@ -1,241 -1,0 +1,243 @@@
 +# -*- shell-script -*-
 +# @configure_input@
 +#
 +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 +# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
 +# Inc.
 +#
 +# This program is free software; you can redistribute it and/or modify
 +# it under the terms of the GNU General Public License as published by
 +# the Free Software Foundation; either version 2, or (at your option)
 +# any later version.
 +#
 +# This program is distributed in the hope that it will be useful,
 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +# GNU General Public License for more details.
 +#
 +# You should have received a copy of the GNU General Public License
 +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 +
 +# Defines and minimal setup for Automake testing environment.
 +
 +# IMPORTANT NOTES AND REQUIREMENTS
 +#   - Multiple inclusions of this file should be idempotent.
 +#   - This code has to be 'set -e' clean.
 +#   - This file should execute correctly with any system's /bin/sh
 +#     shell, not only with configure-time detected $CONFIG_SHELL.
 +
 +# Be more Bourne compatible.
 +# (Snippet inspired to configure's initialization in Autoconf 2.64)
 +DUALCASE=1; export DUALCASE # for MKS sh
 +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
 +  emulate sh
 +  NULLCMD=:
 +  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
 +  # is contrary to our usage.  Disable this feature.
 +  alias -g '${1+"$@"}'='"$@"'
 +  setopt NO_GLOB_SUBST
 +  # If Zsh is not started directly in Bourne-compatibility mode, it has
 +  # some incompatibilities in the handling of `$0' that conflict with
 +  # our usage: i.e., `$0' inside a file sourced with the `.' builtin is
 +  # temporarily set to the name of the sourced file.
 +  # Work around this when possible, otherwise abort the script.
 +  # Note that a bug in some versions of Zsh prevents us from resetting $0
 +  # in a sourced script, so the use of $argv0.  For more info see:
 +  #  <http://www.zsh.org/mla/workers/2009/msg01140.html>
 +  # Note: the apparently useless 'eval' below are needed by at least
 +  # dash 0.5.2, to prevent it from bailing out with an error like
 +  # "Syntax error: Bad substitution"
 +  if eval '[[ "$0" = *."test" ]]'; then
 +    # Good, FUNCTION_ARGZERO option was already off when this file was
 +    # sourced.  Thus we've nothing to do.
 +    argv0=$0
 +  elif eval 'test -n "${functrace[-1]}"'; then
 +    # FUNCTION_ARGZERO option was on, but we have a easy workaround.
 +    eval 'argv0=${functrace[-1]%:*}'
 +  else
 +    # Give up.
 +    echo "$0: cannot determine the path of running test script" >&2
 +    echo "$0: test was running with Zsh version $ZSH_VERSION" >&2
 +    echo "$0: did you enable the NO_FUNCTION_ARGZERO option?" >&2
 +    exit 99
 +  fi
 +else
 +  argv0=$0
 +  # Avoid command substitution failure, for Tru64 sh -e and instspc*.test.
 +  case `(set -o) 2>/dev/null || :` in *posix*) set -o posix;; esac
 +fi
 +
 +# Check that the environment is properly sanitized.
 +# Having variables exported to the empty string is OK, since our code
 +# treats such variables as if they were unset.
 +for var in \
 +  me \
 +  required \
 +  am_using_tap \
 +  am_parallel_tests \
 +  am_create_testdir \
 +  am_tap_implementation \
 +  am_test_prefer_config_shell \
 +  am_original_AUTOMAKE \
 +  am_original_ACLOCAL \
 +; do
 +  if eval "test x\"\$$var\" != x" && env | grep "^$var=" >/dev/null; then
 +    echo "$argv0: variable \`$var' is set in the environment:" \
 +         "this is unsafe" >&2
 +    exit 99
 +  fi
 +done
 +unset var
 +
 +# See whether the current test script is expected to use TAP or not.
 +# Use a sensible default, while allowing the scripts to override this
 +# check.
 +if test -z "$am_using_tap"; then
 +  case $argv0 in *.tap) am_using_tap=yes;; *) am_using_tap=no;; esac
 +fi
 +
 +testsrcdir='@abs_srcdir@'
 +top_testsrcdir='@abs_top_srcdir@'
 +testbuilddir='@abs_builddir@'
 +top_testbuilddir='@abs_top_builddir@'
 +testprefix='@prefix@'
 +
 +# Support for the "installcheck" target.
 +case ${am_running_installcheck:=no} in
 +  yes)
 +    am_amdir='@amdir@'
 +    am_automake_acdir='@automake_acdir@'
 +    am_bindir='@bindir@'
 +    am_datadir='@datadir@'
 +    am_docdir='@docdir@'
 +    am_pkgvdatadir='@pkgvdatadir@'
 +    am_scriptdir='@scriptdir@'
 +    am_system_acdir='@system_acdir@'
 +    ;;
 +  no)
 +    am_amdir=$top_testsrcdir/lib/am
 +    am_automake_acdir=$top_testsrcdir/m4
 +    am_bindir=$testbuilddir
 +    am_datadir=$top_testsrcdir
 +    am_docdir=$top_testsrcdir/doc
 +    am_pkgvdatadir=$top_testsrcdir/lib
 +    am_scriptdir=$top_testsrcdir/lib
 +    am_system_acdir=$top_testsrcdir/m4/acdir
 +    ;;
 +  *)
 +    echo "$argv0: variable \`am_running_installcheck' has invalid"
 +         "value \`$am_running_installcheck'" >&2
 +    exit 99
 +    ;;
 +esac
 +
 +APIVERSION='@APIVERSION@'
 +PATH_SEPARATOR='@PATH_SEPARATOR@'
 +
 +host_alias=${host_alias-'@host_alias@'}; export host_alias
 +build_alias=${build_alias-'@build_alias@'}; export build_alias
 +
 +# Make sure we override the user shell.  And do not read the value of
 +# $SHELL from the environment (think to the non-uncommon situation where
 +# e.g., $SHELL=/bin/tcsh).
 +SHELL=${AM_TESTSUITE_SHELL-'@SHELL@'}; export SHELL
 +
 +# User can override various tools used.  Prefer overriding specific for
 +# that automake testsuite, if they are available.
 +PERL=${AM_TESTSUITE_PERL-${PERL-'@PERL@'}}
 +MAKE=${AM_TESTSUITE_MAKE-${MAKE-'make'}}
++YACC=${AM_TESTSUITE_YACC-${YACC-'@YACC@'}}
++LEX=${AM_TESTSUITE_LEX-${LEX-'@LEX@'}}
 +AUTOCONF=${AM_TESTSUITE_AUTOCONF-${AUTOCONF-'@am_AUTOCONF@'}}
 +AUTOM4TE=${AM_TESTSUITE_AUTOM4TE-${AUTOM4TE-'@am_AUTOM4TE@'}}
 +AUTORECONF=${AM_TESTSUITE_AUTORECONF-${AUTORECONF-'@am_AUTORECONF@'}}
 +AUTOHEADER=${AM_TESTSUITE_AUTOHEADER-${AUTOHEADER-'@am_AUTOHEADER@'}}
 +AUTOUPDATE=${AM_TESTSUITE_AUTOUPDATE-${AUTOUPDATE-'@am_AUTOUPDATE@'}}
 +
 +# Tests who want complete control over aclocal or automake command-line
 +# options should use $am_original_ACLOCAL or $am_original_AUTOMAKE.  The
 +# `test -z' tests take care not to re-initialize them if defs-static
 +# is re-sourced, as we want defs-static to remain really idempotent.
 +if test -z "$am_original_AUTOMAKE"; then
 +  am_original_AUTOMAKE=${AM_TESTSUITE_AUTOMAKE-${AUTOMAKE-"automake-$APIVERSION"}}
 +fi
 +if test -z "$am_original_ACLOCAL"; then
 +  am_original_ACLOCAL=${AM_TESTSUITE_ACLOCAL-${ACLOCAL-"aclocal-$APIVERSION"}}
 +fi
 +
 +# Use -Werror because this also turns some Perl warnings into error.
 +# Tests for which this is inappropriate should use -Wno-error.
 +# Tests who want complete control over aclocal command-line options
 +# should use $am_original_ACLOCAL instead.
 +ACLOCAL="$am_original_ACLOCAL -Werror"
 +
 +# See how Automake should be run.  We put --foreign as the default
 +# strictness to avoid having to create lots and lots of files.  A test
 +# can override this by specifying a different strictness.  Use -Wall
 +# -Werror by default.  Tests for which this is inappropriate (e.g. when
 +# testing that a warning is enabled by a specific switch) should use
 +# -Wnone or/and -Wno-error.
 +# Tests who want complete control over automake command-line options
 +# should use $am_original_AUTOMAKE instead.
 +AUTOMAKE="$am_original_AUTOMAKE --foreign -Werror -Wall"
 +
 +# This is a hack to seamlessly support the infamous "autoconf wrappers",
 +# that might dispatch different autoconf versions depending on the name
 +# of the input files and/or the command-line options used.  See:
 +# <http://lists.gnu.org/archive/html/automake/2011-12/msg00039.html>
 +# FIXME: in the long run, the better fix will be to convert our testsuite
 +# to use `configure.ac' instead of `configure.in' as autoconf input.
 +AUTOCONF="$AUTOCONF -B /no/such/dir"
 +AUTOM4TE="$AUTOM4TE -B /no/such/dir"
 +AUTORECONF="$AUTORECONF -B /no/such/dir"
 +
 +# POSIX no longer requires 'egrep' and 'fgrep',
 +# but some hosts lack 'grep -E' and 'grep -F'.
 +EGREP=${AM_TESTSUITE_EGREP-'@EGREP@'}
 +FGREP=${AM_TESTSUITE_FGREP-'@FGREP@'}
 +
 +# Compilers and their flags.  These can point to non-GNU compilers (and
 +# on non-Linux and non-BSD systems, they probably will).
 +CC=${AM_TESTSUITE_CC-${CC-'@CC@'}}
 +CXX=${AM_TESTSUITE_CXX-${CXX-'@CXX@'}}
 +F77=${AM_TESTSUITE_F77-${F77-'@F77@'}}
 +FC=${AM_TESTSUITE_FC-${FC-'@FC@'}}
 +CFLAGS=${AM_TESTSUITE_CFLAGS-${CFLAGS-'@CFLAGS@'}}
 +CXXFLAGS=${AM_TESTSUITE_CXXFLAGS-${CXXFLAGS-'@CXXFLAGS@'}}
 +FCFLAGS=${AM_TESTSUITE_FCFLAGS-${FCFLAGS-'@FCFLAGS@'}}
 +FFLAGS=${AM_TESTSUITE_FFLAGS-${FFLAGS-'@FFLAGS@'}}
 +CPPFLAGS=${AM_TESTSUITE_CPPFLAGS-${CPPFLAGS-'@CPPFLAGS@'}}
 +
 +# Flags for the GNU compilers.
 +GNU_FFLAGS=${AM_TESTSUITE_GNU_FFLAGS-${GNU_FFLAGS-'@GNU_FFLAGS@'}}
 +GNU_FCFLAGS=${AM_TESTSUITE_GNU_FCFLAGS-${GNU_FCFLAGS-'@GNU_FCFLAGS@'}}
 +GNU_CXXFLAGS=${AM_TESTSUITE_GNU_CXXFLAGS-${GNU_CXXFLAGS-'@GNU_CXXFLAGS@'}}
 +GNU_CFLAGS=${AM_TESTSUITE_GNU_CFLAGS-${GNU_CFLAGS-'@GNU_CFLAGS@'}}
 +
 +# No all versions of Tex support `--version', so we use a configure
 +# check to decide if tex is available.  This decision is embodied in
 +# this variable.
 +TEX=${AM_TESTSUITE_TEX-'@TEX@'}
 +
 +# Whether $SHELL has working 'set -e' with exit trap.
 +sh_errexit_works='@sh_errexit_works@'
 +
 +# The amount we should wait after modifying files depends on the platform.
 +# For instance, Windows '95, '98 and ME have 2-second granularity
 +# and can be up to 3 seconds in the future w.r.t. the system clock.
 +sleep='sleep @MODIFICATION_DELAY@'
 +
 +# An old timestamp that can be given to a file, in "touch -t" format.
 +# The time stamp should be portable to all file systems of interest.
 +# Just for fun, choose the exact time of the announcement of the GNU project
 +# in UTC; see <http://www.gnu.org/gnu/initial-announcement.html>.
 +old_timestamp=198309271735.59
 +
 +# Make our wrapper script (or installed scripts, if running under
 +# "installcheck") accessible by default.  And avoid to uselessly
 +# extend $PATH multiple times if this file is sourced multiple times.
 +case $PATH in
 +  $am_bindir$PATH_SEPARATOR*) ;;
 +  *) PATH=$am_bindir$PATH_SEPARATOR$PATH;;
 +esac
 +export PATH
@@@ -1,6 -1,6 +1,6 @@@
  #! /bin/sh
 -# Copyright (C) 1999, 2001, 2002, 2006, 2010 Free Software Foundation,
 -# Inc.
 +# Copyright (C) 1999, 2001, 2002, 2006, 2010, 2011 Free Software
 +# Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # You should have received a copy of the GNU General Public License
  # along with this program.  If not, see <http://www.gnu.org/licenses/>.
  
- # Test to make sure dependencies work with .ll files.
- # Test synthesized from PR automake/6.
+ # Test to make sure dependencies for Lex and C/C++ does not break
+ # in obvious ways.  See PR automake/6, and related semantic tests
+ # `lex-depend.test' and `lex-depend-cxx.test'.
  
  . ./defs || Exit 1
  
 -set -e
 -
  cat >> configure.in << 'END'
  AC_PROG_CC
  AC_PROG_CXX
@@@ -27,13 -30,20 +28,20 @@@ AM_PROG_LE
  END
  
  cat > Makefile.am << 'END'
- bin_PROGRAMS = zoo
+ bin_PROGRAMS = zoo foo
  zoo_SOURCES = joe.ll
+ foo_SOURCES = moe.l
+ noinst_PROGRAMS = zardoz
+ zardoz_SOURCES = _0.l _1.ll _2.lxx _3.l++ _4.lpp
  END
  
  $ACLOCAL
  $AUTOMAKE -a
  
- $FGREP joe.Po Makefile.in
+ $EGREP '([mj]oe|_[01234]|include|\.P)' Makefile.in # For debugging.
+ for x in joe moe _0 _1 _2 _3 _4; do
+   grep "include.*$x\.Po" Makefile.in
+ done
  
  :
@@@ -1,5 -1,5 +1,5 @@@
  #! /bin/sh
--# Copyright (C) 2011 Free Software Foundation, Inc.
++# Copyright (C) 2011, 2012 Free Software Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # Ensure subdirs for subdir scanners are generated when subdir-objects
  # are used, even when dependency tracking is disabled.
  
- required='cc flex'
 -required=lex
++required='cc lex'
  . ./defs || Exit 1
  
 -set -e
 -
  cat >>configure.in <<\END
  AC_PROG_CC
  AM_PROG_CC_C_O
@@@ -51,7 -53,7 +51,7 @@@ int main (void
  
  int yywrap(void)
  {
 -  return 0;
 +  return 1;
  }
  END
  
diff --combined tests/lex3.test
@@@ -1,6 -1,6 +1,6 @@@
  #! /bin/sh
 -# Copyright (C) 1999, 2001, 2002, 2003, 2004, 2010, 2011 Free Software
 -# Foundation, Inc.
 +# Copyright (C) 1999, 2001, 2002, 2003, 2004, 2010, 2011, 2012 Free
 +# Software Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # Test associated with PR 19.
  # From Matthew D. Langston.
  
- required='cc flex'
 -required=lex
++required='cc lex'
  . ./defs || Exit 1
  
 -set -e
 -
  cat >> configure.in << 'END'
  AC_PROG_CC
  AM_PROG_LEX
@@@ -29,8 -31,9 +29,8 @@@ AC_OUTPU
  END
  
  cat > Makefile.am << 'END'
 -LDADD             = @LEXLIB@
 -noinst_PROGRAMS   = foo
 -foo_SOURCES       = foo.l
 +noinst_PROGRAMS = foo
 +foo_SOURCES = foo.l
  END
  
  cat > foo.l << 'END'
@@@ -38,8 -41,8 +38,8 @@@
  "GOOD"   return EOF;
  .
  %%
 -int
 -main ()
 +
 +int main (void)
  {
    /* We don't use a 'while' loop here (like a real lexer would do)
       to avoid possible hangs. */
@@@ -64,25 -67,22 +64,25 @@@ $AUTOMAKE -
  
  # Program should build and run.
  $MAKE
 -echo GOOD | ./foo
 -echo BAD | ./foo && Exit 1
 +if cross_compiling; then :; else
 +  echo GOOD | ./foo
 +  echo BAD | ./foo && Exit 1
 +  : For shells with busted 'set -e'.
 +fi
  
  # The generated file `foo.c' must be shipped.
  $MAKE distdir
  test -f $distdir/foo.c
  
  # Sanity check on distribution.
$MAKE distcheck
yl_distcheck
  
  # While we are at it, make sure that foo.c is erased by
  # maintainer-clean, and not by distclean.
  test -f foo.c
  $MAKE distclean
  test -f foo.c
 -./configure # we must re-create `Makefile'
 +./configure # Re-create `Makefile'.
  $MAKE maintainer-clean
  test ! -f foo.c
  
diff --combined tests/lex5.test
  
  # Test for subdir lexers.
  
- required='cc flex'
 -required=lex
++required='cc lex'
  . ./defs || Exit 1
  
 -set -e
 -
  cat >> configure.in << 'END'
  AC_PROG_CC
  AM_PROG_CC_C_O
@@@ -56,15 -58,18 +56,18 @@@ $ACLOCA
  $AUTOCONF
  $AUTOMAKE -a
  
+ # We expect ylwrap to be used and distributed even if there is
+ # only one lexer.
+ test -f ylwrap
  mkdir sub
  cd sub
  ../configure
  $MAKE foo/foo.o
+ ls -l # For debugging.
  
  test -f foo/foo.c
  test -f foo/foo.o
- # ylwrap is not needed
- test ! -f ./ylwrap
  
  # Now, adds another lexer to test ylwrap.
  
@@@ -82,11 -87,11 +85,11 @@@ EN
  $sleep
  
  $AUTOMAKE -a --no-force
- test -f ./ylwrap
  
  cd sub
 -using_gnumake || $MAKE Makefile
 +using_gmake || $MAKE Makefile
  $MAKE foo/foo2.o
+ ls -l # For debugging.
  test -f foo/foo2.c
  test -f foo/foo2.o
  
diff --combined tests/lexvpath.test
  
  # Please keep this in sync with sister test `yaccvapth.test'.
  
- required='cc flex'
 -required=lex
++required='cc lex'
  . ./defs || Exit 1
  
 -set -e
 -
  cat > lexoutroot.in << 'END'
  LEX_OUTPUT_ROOT='@LEX_OUTPUT_ROOT@'
  END
@@@ -52,15 -54,7 +52,15 @@@ cat > lexer.l << 'END
  END
  
  cat > foo.c << 'END'
 -int main () { return 0; }
 +int main (void)
 +{
 +  return 0;
 +}
 +/* Avoid possible link errors. */
 +int yywrap (void)
 +{
 +  return 1;
 +}
  END
  
  $ACLOCAL
@@@ -73,10 -67,10 +73,10 @@@ mkdir su
  cd sub
  ../configure
  . ./lexoutroot
 -test -n "$LEX_OUTPUT_ROOT" # sanity check
 +test -n "$LEX_OUTPUT_ROOT" # Sanity check.
  cd ..
  
flex lexer.l
$LEX lexer.l
  mv "$LEX_OUTPUT_ROOT".c lexer.c
  
  cd sub
diff --combined tests/list-of-tests.mk
@@@ -2,7 -2,6 +2,7 @@@
  ## testsuite.  This fragment is meant to be included by the Makefile.am,
  ## but also to be executed directly by make when bootstrapping automake.
  
 +## Copyright (C) 2011 Free Software Foundation, Inc.
  ## Copyright (C) 2011, 2012 Free Software Foundation, Inc.
  ##
  ## This program is free software; you can redistribute it and/or modify
  ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
  
  perl_TESTS = \
 +pm/Cond2.pl \
 +pm/Cond3.pl \
  pm/Condition.pl \
  pm/Condition-t.pl \
 +pm/DisjCon2.pl \
 +pm/DisjCon3.pl \
  pm/DisjConditions.pl \
  pm/DisjConditions-t.pl \
  pm/Version.pl \
 +pm/Version2.pl \
 +pm/Version3.pl \
  pm/Wrap.pl
  
  # The order here is mostly alphabetical, with the deliberate exception
@@@ -39,7 -32,9 +39,7 @@@
  handwritten_TESTS = \
  get-sysconf.test \
  $(perl_TESTS) \
 -self-check-env-sanitize.test \
 -self-check-report.test \
 -aclibobj.test \
 +instspc.tap \
  aclocal.test \
  aclocal3.test \
  aclocal4.test \
@@@ -61,7 -56,6 +61,7 @@@ acloca19.test 
  acloca20.test \
  acloca21.test \
  acloca22.test \
 +acloca23.test \
  aclocal-acdir.test \
  aclocal-install-absdir.test \
  aclocal-print-acdir.test \
@@@ -70,11 -64,15 +70,11 @@@ aclocal-path-install.test 
  aclocal-path-install-serial.test \
  aclocal-path-nonexistent.test \
  aclocal-path-precedence.test \
 -acoutnoq.test \
 -acoutpt.test \
 -acoutpt2.test \
 -acoutqnl.test \
 -acoutbs.test \
 -acoutbs2.test \
 +ac-output-old.tap \
  acsilent.test \
  acsubst.test \
  acsubst2.test \
 +add-missing.tap \
  all.test \
  all2.test \
  alloca.test \
@@@ -87,24 -85,21 +87,24 @@@ amhello-binpkg.test 
  amassign.test \
  ammissing.test \
  amopt.test \
 +amopts-location.test \
 +amopts-variable-expansion.test \
  amsubst.test \
 -ansi2knr-deprecation.test \
 -ansi.test \
 -ansi2.test \
 -ansi3.test \
 -ansi3b.test \
 -ansi4.test \
 -ansi5.test \
 -ansi6.test \
 -ansi7.test \
 -ansi8.test \
 -ansi9.test \
 -ansi10.test \
 +ansi2knr-no-more.test \
 +ar-lib.test \
 +ar-lib2.test \
 +ar-lib3.test \
 +ar-lib4.test \
 +ar-lib5a.test \
 +ar-lib5b.test \
 +ar-lib6a.test \
 +ar-lib6b.test \
 +ar-lib7.test \
  ar.test \
  ar2.test \
 +ar3.test \
 +ar4.test \
 +ar5.test \
  asm.test \
  asm2.test \
  asm3.test \
@@@ -122,22 -117,11 +122,22 @@@ autohdr2.test 
  autohdr3.test \
  autohdr4.test \
  autohdrdry.test \
 -automake.test \
 +automake-cmdline.tap \
  auxdir.test \
 -auxdir2.test \
 -auxdir3.test \
 -auxdir4.test \
 +auxdir6.test \
 +auxdir7.test \
 +auxdir8.test \
 +auxdir-autodetect.test \
 +auxdir-computed.tap \
 +auxdir-misplaced.test \
 +auxdir-nonexistent.test \
 +auxdir-unportable.tap \
 +backcompat.test \
 +backcompat2.test \
 +backcompat3.test \
 +backcompat4.test \
 +backcompat5.test \
 +backcompat6.test \
  backsl.test \
  backsl2.test \
  backsl3.test \
@@@ -147,15 -131,11 +147,15 @@@ badopt.test 
  badprog.test \
  block.test \
  bsource.test \
 +candist.test \
  canon.test \
  canon2.test \
  canon3.test \
  canon4.test \
  canon5.test \
 +canon6.test \
 +canon7.test \
 +canon8.test \
  canon-name.test \
  ccnoco.test \
  ccnoco2.test \
@@@ -168,22 -148,20 +168,22 @@@ check5.test 
  check6.test \
  check7.test \
  check8.test \
 -check9.test \
  check10.test \
  check11.test \
  check12.test \
 +check-subst.test \
 +check-subst-prog.test \
  check-exported-srcdir.test \
 +check-fd-redirect.test \
  check-tests-in-builddir.test \
 -check-tests_environment.test \
 +check-no-test-driver.test \
  check-concurrency-bug9245.test \
 -tests-environment-backcompat.test \
  checkall.test \
  clean.test \
  clean2.test \
  colneq.test \
  colneq2.test \
 +colneq3.test \
  colon.test \
  colon2.test \
  colon3.test \
@@@ -207,13 -185,8 +207,13 @@@ commen11.test 
  comments-in-var-def.test \
  compile.test \
  compile2.test \
 +compile3.test \
 +compile4.test \
 +compile5.test \
 +compile6.test \
  compile_f90_c_cxx.test \
  compile_f_c_cxx.test \
 +cond-basic.test \
  cond.test \
  cond2.test \
  cond3.test \
@@@ -258,13 -231,13 +258,13 @@@ cond42.test 
  cond43.test \
  cond44.test \
  cond45.test \
 +cond46.test \
  condd.test \
  condhook.test \
  condhook2.test \
  condinc.test \
  condinc2.test \
  condlib.test \
 -condman.test \
  condman2.test \
  condman3.test \
  configure.test \
@@@ -287,22 -260,15 +287,22 @@@ confsub.test 
  confvar.test \
  confvar2.test \
  copy.test \
 -ctarget1.test \
 +cscope.test \
 +cscope2.test \
 +cscope3.test \
  cxx.test \
  cxx2.test \
 -cxxansi.test \
  cxxcpp.test \
  cxxlibobj.test \
  cxxlink.test \
  cxxnoc.test \
  cxxo.test \
 +cygnus-check-without-all.test \
 +cygnus-dependency-tracking.test \
 +cygnus-imply-foreign.test \
 +cygnus-no-dist.test \
 +cygnus-no-installinfo.test \
 +cygnus-requires-maintainer-mode.test \
  cygwin32.test \
  dash.test \
  defun.test \
@@@ -324,36 -290,39 +324,36 @@@ deleted-m4.test 
  depacl2.test \
  depcomp.test \
  depcomp2.test \
 -depcomp3.test \
 -depcomp4.test \
 -depcomp5.test \
 -depcomp6.test \
 -depcomp7.test \
  depcomp8a.test \
  depcomp8b.test \
 -depcomp9.test \
 -depcomp10.test \
  depdist.test \
  depend.test \
 -depend2.test \
  depend3.test \
  depend4.test \
  depend5.test \
  depend6.test \
 +deprecated-acinit.test \
  destdir.test \
  dirlist.test \
  dirlist2.test \
 +dirlist-abspath.test \
  discover.test \
 -dist-auxfile.test \
 +dist-formats.tap \
 +dist-auxdir-many-subdirs.test \
  dist-auxfile-2.test \
 +dist-auxfile.test \
  dist-included-parent-dir.test \
  dist-missing-am.test \
  dist-missing-included-m4.test \
  dist-missing-m4.test \
 +dist-readonly.test \
 +dist-repeated.test \
  distcleancheck.test \
  distcom2.test \
  distcom3.test \
  distcom4.test \
  distcom5.test \
 -distcom6.test \
 -distcom7.test \
 +distcom-subdir.test \
  distdir.test \
  distlinks.test \
  distlinksbrk.test \
@@@ -365,9 -334,9 +365,9 @@@ distcheck-hook.test 
  distcheck-hook2.test \
  distcheck-missing-m4.test \
  distcheck-outdated-m4.test \
 +distcheck-override-infodir.test \
  distcheck-pr9579.test \
  distcheck-pr10470.test \
 -distcheck-override-infodir.test \
  dmalloc.test \
  doc-parsing-buglets-colneq-subst.test \
  doc-parsing-buglets-tabs.test \
@@@ -391,7 -360,6 +391,7 @@@ exeext4.test 
  exsource.test \
  ext.test \
  ext2.test \
 +ext3.test \
  extra.test \
  extra2.test \
  extra3.test \
@@@ -400,14 -368,9 +400,14 @@@ extra5.test 
  extra6.test \
  extra7.test \
  extra8.test \
 +extra9.test \
  extra10.test \
  extra11.test \
  extra12.test \
 +extra-programs-empty.test \
 +extra-portability.test \
 +extra-portability2.test \
 +extra-portability3.test \
  extradep.test \
  extradep2.test \
  f90only.test \
@@@ -453,9 -416,11 +453,9 @@@ help-init.test 
  help-lispdir.test \
  help-multilib.test \
  help-python.test \
 -help-regex.test \
  help-silent.test \
  help-upc.test \
  hfs.test \
 -hosts.test \
  implicit.test \
  info.test \
  init.test \
@@@ -463,6 -428,7 +463,6 @@@ init2.test 
  insh2.test \
  install2.test \
  installdir.test \
 -install-info-dir.test \
  instsh.test \
  instsh2.test \
  instsh3.test \
@@@ -487,68 -453,54 +487,75 @@@ instman2.test 
  instmany.test \
  instmany-mans.test \
  instmany-python.test \
 -instspc.test \
 +install-info-dir.test \
  interp.test \
  interp2.test \
  java.test \
  java2.test \
  java3.test \
 +javadir-undefined.test \
 +javaflags.test \
  java-check.test \
 +java-clean.test \
 +java-compile-install.test \
 +java-compile-run-flat.test \
 +java-compile-run-nested.test \
  java-empty-classpath.test \
 -javadir-undefined.test \
  javaprim.test \
  javasubst.test \
 -java-clean.test \
 +java-extra.test \
 +java-mix.test \
 +java-no-duplicate.test \
  java-nobase.test \
 -java-compile-install.test \
 +java-noinst.test \
 +java-rebuild.test \
  java-sources.test \
 -java-no-duplicate.test \
 -java-mix.test \
 +java-uninstall.test \
  ldadd.test \
  ldflags.test \
  lex.test \
  lex2.test \
  lex3.test \
- lex4.test \
  lex5.test \
  lexcpp.test \
  lexvpath.test \
  lex-subobj-nodep.test \
 +lex-lib.test \
 +lex-lib-external.test \
 +lex-libobj.test \
 +lex-noyywrap.test \
+ lex-clean-cxx.test \
+ lex-clean.test \
+ lex-depend-cxx.test \
+ lex-depend-grep.test \
+ lex-depend.test \
+ lex-line.test \
+ lex-nodist.test \
+ lex-pr204.test \
  lflags.test \
  lflags2.test \
  libexec.test \
 +libobj-basic.test \
  libobj2.test \
  libobj3.test \
  libobj4.test \
  libobj5.test \
  libobj7.test \
 -libobj8.test \
  libobj10.test \
 -libobj11.test \
  libobj12.test \
  libobj13.test \
  libobj14.test \
 +libobj15a.test \
 +libobj15b.test \
 +libobj15c.test \
 +libobj16a.test \
 +libobj16b.test \
 +libobj17.test \
 +libobj18.test \
 +libobj19.test \
 +libobj20a.test \
 +libobj20b.test \
 +libobj20c.test \
  library.test \
  library2.test \
  library3.test \
@@@ -572,7 -524,6 +579,7 @@@ link_fc.test 
  link_fccxx.test \
  link_fcxx.test \
  link_f_only.test \
 +link_override.test \
  lisp2.test \
  lisp3.test \
  lisp4.test \
@@@ -594,6 -545,7 +601,6 @@@ ltinstloc.test 
  ltlibobjs.test \
  ltlibsrc.test \
  ltorder.test \
 -lzip.test \
  lzma.test \
  m4-inclusion.test \
  maintclean.test \
@@@ -605,16 -557,12 +612,16 @@@ makej.test 
  makej2.test \
  maken.test \
  maken3.test \
 +make-dryrun.test \
  makevars.test \
  man.test \
  man2.test \
  man3.test \
  man4.test \
  man5.test \
 +man6.test \
 +man7.test \
 +man8.test \
  mdate.test \
  mdate2.test \
  mdate3.test \
@@@ -627,15 -575,12 +634,15 @@@ missing3.test 
  missing4.test \
  missing5.test \
  missing6.test \
 +missing-auxfile-stops-makefiles-creation.test \
  mkinstall.test \
  mkinst2.test \
  mkinst3.test \
  mmode.test \
  mmodely.test \
  multlib.test \
 +no-extra-makefile-code.test \
 +no-outdir-option.test \
  nobase.test \
  nobase-libtool.test \
  nobase-python.test \
@@@ -648,6 -593,8 +655,6 @@@ nodepcomp.test 
  nodist.test \
  nodist2.test \
  nodist3.test \
 -nogzip.test \
 -nogzip2.test \
  noinst.test \
  noinstdir.test \
  nolink.test \
@@@ -658,8 -605,8 +665,8 @@@ objc.test 
  objc2.test \
  objext-pr10128.test \
  obsolete.test \
 +oldvars.test \
  order.test \
 -outdir.test \
  output.test \
  output2.test \
  output3.test \
@@@ -674,82 -621,28 +681,82 @@@ output11.test 
  output12.test \
  output13.test \
  output-order.test \
 -overrid.test \
 +override-conditional-1.test \
 +override-conditional-2.test \
 +override-html.test \
 +override-suggest-local.test \
  parallel-am.test \
  parallel-am2.test \
  parallel-am3.test \
  parallel-tests.test \
  parallel-tests2.test \
  parallel-tests3.test \
 -parallel-tests4.test \
  parallel-tests5.test \
  parallel-tests6.test \
 -parallel-tests7.test \
  parallel-tests8.test \
  parallel-tests9.test \
  parallel-tests10.test \
 -parallel-tests-dryrun.test \
 -parallel-tests-harderror.test \
 -parallel-tests-unreadable-log.test \
 +parallel-tests-exeext.test \
 +parallel-tests-suffix.test \
 +parallel-tests-suffix-prog.test \
 +parallel-tests-log-compiler-1.test \
 +parallel-tests-log-compiler-2.test \
 +parallel-tests-dry-run-1.test \
 +parallel-tests-dry-run-2.test \
 +parallel-tests-fd-redirect.test \
 +parallel-tests-fd-redirect-exeext.test \
 +parallel-tests-extra-programs.test \
 +parallel-tests-unreadable.test \
  parallel-tests-subdir.test \
 +parallel-tests-interrupt.tap \
 +parallel-tests-reset-term.test \
 +parallel-tests-harderror.test \
  parallel-tests-log-override-1.test \
  parallel-tests-log-override-2.test \
  parallel-tests-log-override-recheck.test \
  parallel-tests-log-compiler-example.test \
 +parallel-tests-cmdline-override.test \
 +parallel-tests-fork-bomb.test \
 +parallel-tests-empty-testlogs.test \
 +parallel-tests-driver-install.test \
 +parallel-tests-no-color-in-log.test \
 +parallel-tests-no-spurious-summary.test \
 +parallel-tests-exit-statuses.test \
 +parallel-tests-console-output.test \
 +parallel-tests-once.test \
 +parallel-tests-trailing-bslash.test \
 +tests-environment.test \
 +am-tests-environment.test \
 +tests-environment-backcompat.test \
 +testsuite-summary-color.test \
 +testsuite-summary-count.test \
 +testsuite-summary-count-many.test \
 +testsuite-summary-reference-log.test \
 +test-driver-acsubst.test \
 +test-driver-cond.test \
 +test-driver-custom-no-extra-driver.test \
 +test-driver-custom.test \
 +test-driver-custom-xfail-tests.test \
 +test-driver-custom-multitest.test \
 +test-driver-custom-multitest-recheck.test \
 +test-driver-custom-multitest-recheck2.test \
 +test-driver-create-log-dir.test \
 +test-driver-strip-vpath.test \
 +test-driver-trs-suffix-registered.test \
 +test-driver-fail.test \
 +test-driver-is-distributed.test \
 +test-harness-vpath-rewrite.test \
 +test-log.test \
 +test-logs-repeated.test \
 +test-metadata-global-log.test \
 +test-metadata-global-result.test \
 +test-metadata-recheck.test \
 +test-metadata-results.test \
 +test-missing.test \
 +test-missing2.test \
 +test-trs-basic.test \
 +test-trs-recover.test \
 +test-trs-recover2.test \
  test-extensions.test \
  test-extensions-cond.test \
  parse.test \
@@@ -767,22 -660,12 +774,21 @@@ pluseq8.test 
  pluseq9.test \
  pluseq10.test \
  pluseq11.test \
 +posixsubst-data.test \
 +posixsubst-extradist.test \
 +posixsubst-ldadd.test \
 +posixsubst-libraries.test \
 +posixsubst-ltlibraries.test \
 +posixsubst-programs.test \
 +posixsubst-scripts.test \
 +posixsubst-sources.test \
 +posixsubst-tests.test \
  postproc.test \
  ppf77.test \
  pr2.test \
  pr9.test \
  pr72.test \
  pr87.test \
- pr204.test \
  pr211.test \
  pr220.test \
  pr224.test \
@@@ -803,12 -686,11 +809,12 @@@ prefix.test 
  primary.test \
  primary2.test \
  primary3.test \
 -primary-prefix-invalid-couples.test \
 +primary-prefix-invalid-couples.tap \
  primary-prefix-valid-couples.test \
  primary-prefix-couples-force-valid.test \
  primary-prefix-couples-documented-valid.test \
  proginst.test \
 +programs-primary-rewritten.test \
  py-compile-basic.test \
  py-compile-basic2.test \
  py-compile-basedir.test \
@@@ -821,7 -703,6 +827,7 @@@ python2.test 
  python3.test \
  python4.test \
  python5.test \
 +python5b.test \
  python6.test \
  python7.test \
  python8.test \
@@@ -829,73 -710,33 +835,73 @@@ python9.test 
  python10.test \
  python11.test \
  python12.test \
 +python-dist.test \
 +python-vars.test \
 +python-virtualenv.test \
  recurs.test \
  recurs2.test \
  remake.test \
 +remake1a.test \
  remake2.test \
  remake3.test \
 +remake3a.test \
  remake4.test \
  remake5.test \
  remake6.test \
  remake7.test \
 +remake8a.test \
 +remake8b.test \
 +remake9a.test \
 +remake9b.test \
 +remake9c.test \
 +remake9d.test \
 +remake10a.test \
 +remake10b.test \
 +remake10c.test \
 +remake11.test \
 +remake12.test \
 +remake-all-1.test \
 +remake-all-2.test \
  remake-subdir-from-subdir.test \
  remake-subdir-gnu.test \
  remake-subdir.test \
  remake-subdir2.test \
  remake-subdir-long-time.test \
 +remake-gnulib-add-acsubst.test \
 +remake-gnulib-add-header.test \
 +remake-gnulib-remove-header.test \
 +remake-moved-m4-file.test \
 +remake-deleted-m4-file.test \
 +remake-renamed-m4-file.test \
 +remake-renamed-m4-macro-and-file.test \
 +remake-renamed-m4-macro.test \
  remake-am-pr10111.test \
  remake-m4-pr10111.test \
 -remake-deleted-am.test \
  remake-deleted-am-2.test \
  remake-deleted-am-subdir.test \
 +remake-deleted-am.test \
  remake-renamed-am.test \
  pr8365-remake-timing.test \
 -regex.test \
 -regex-obsolete.test \
  req.test \
  reqd.test \
  reqd2.test \
 +repeated-options.test \
  rulepat.test \
 +self-check-cleanup.tap \
 +self-check-configure-help.test \
 +self-check-dir.tap \
 +self-check-env-sanitize.tap \
 +self-check-exit.tap \
 +self-check-explicit-skips.test \
 +self-check-is_newest.tap \
 +self-check-me.tap \
 +self-check-reexec.tap \
 +self-check-report.test \
 +self-check-sanity.test \
 +self-check-seq.tap \
 +self-check-is-blocked-signal.tap \
 +self-check-tap.test \
 +self-check-unindent.tap \
  sanity.test \
  scripts.test \
  seenc.test \
@@@ -905,21 -746,17 +911,20 @@@ silent3.test 
  silent4.test \
  silent6.test \
  silent7.test \
 +silent8.test \
  silent9.test \
  silentcxx.test \
 +silentcxx-gcc.test \
  silentf77.test \
  silentf90.test \
  silent-many-gcc.test \
  silent-many-generic.test \
- silent-lex-gcc.test \
- silent-lex-generic.test \
- silent-yacc-gcc.test \
- silent-yacc-generic.test \
 -silent-lex.test \
 +silent-nowarn.test \
 +silent-configsite.test \
  silent-nested-vars.test \
 -silent-configsite.test \
++silent-lex.test \
+ silent-yacc.test \
+ silent-yacc-headers.test \
  srcsub.test \
  srcsub2.test \
  space.test \
@@@ -941,8 -778,6 +946,8 @@@ stdinc.test 
  stamph2.test \
  stdlib.test \
  stdlib2.test \
 +strictness-override.test \
 +strictness-precedence.test \
  strip.test \
  strip2.test \
  strip3.test \
@@@ -962,6 -797,7 +967,6 @@@ subcond2.test 
  subcond3.test \
  subobj.test \
  subobj2.test \
 -subobj3.test \
  subobj4.test \
  subobj5.test \
  subobj6.test \
@@@ -979,116 -815,29 +984,116 @@@ subpkg3.test 
  subpkg4.test \
  subpkg-yacc.test \
  subst.test \
 -subst2.test \
  subst3.test \
  subst4.test \
 +subst5.test \
 +subst-no-trailing-empty-line.test \
  substref.test \
  substre2.test \
  substtarg.test \
  suffix.test \
  suffix2.test \
 -suffix3.test \
 +suffix3.tap \
  suffix4.test \
  suffix5.test \
  suffix6.test \
 +suffix6b.test \
 +suffix6c.test \
  suffix7.test \
 -suffix8.test \
 +suffix8.tap \
  suffix9.test \
 -suffix10.test \
 -suffix11.test \
 +suffix10.tap \
 +suffix11.tap \
  suffix12.test \
  suffix13.test \
 +suffix-chain.tap \
  symlink.test \
  symlink2.test \
  syntax.test \
 +tap-ambiguous-directive.test \
 +tap-autonumber.test \
 +tap-bailout.test \
 +tap-bailout-leading-space.test \
 +tap-bailout-and-logging.test \
 +tap-bailout-suppress-badexit.test \
 +tap-bailout-suppress-later-diagnostic.test \
 +tap-bailout-suppress-later-errors.test \
 +tap-color.test \
 +tap-deps.test \
 +tap-diagnostic.test \
 +tap-empty-diagnostic.test \
 +tap-empty.test \
 +tap-escape-directive.test \
 +tap-escape-directive-2.test \
 +tap-exit.test \
 +tap-signal.tap \
 +tap-fancy.test \
 +tap-fancy2.test \
 +tap-global-log.test \
 +tap-global-result.test \
 +tap-log.test \
 +tap-msg0-result.test \
 +tap-msg0-directive.test \
 +tap-msg0-planskip.test \
 +tap-msg0-bailout.test \
 +tap-msg0-misc.test \
 +tap-merge-stdout-stderr.test \
 +tap-no-merge-stdout-stderr.test \
 +tap-no-disable-hard-error.test \
 +tap-no-spurious-summary.test \
 +tap-no-spurious-numbers.test \
 +tap-no-spurious.test \
 +tap-not-ok-skip.test \
 +tap-number-wordboundary.test \
 +tap-numeric-description.test \
 +tap-negative-numbers.test \
 +tap-numbers-leading-zero.test \
 +tap-out-of-order.test \
 +tap-passthrough.test \
 +tap-passthrough-exit.test \
 +tap-plan.test \
 +tap-plan-corner.test \
 +tap-plan-errors.test \
 +tap-plan-middle.test \
 +tap-plan-whitespace.test \
 +tap-plan-leading-zero.test \
 +tap-plan-malformed.test \
 +tap-missing-plan-and-bad-exit.test \
 +tap-planskip.test \
 +tap-planskip-late.test \
 +tap-planskip-and-logging.test \
 +tap-planskip-unplanned.test \
 +tap-planskip-unplanned-corner.test \
 +tap-planskip-case-insensitive.test \
 +tap-planskip-whitespace.test \
 +tap-planskip-badexit.test \
 +tap-planskip-bailout.test \
 +tap-planskip-later-errors.test \
 +tap-realtime.test \
 +tap-test-number-0.test \
 +tap-recheck-logs.test \
 +tap-result-comment.test \
 +tap-todo-skip-together.test \
 +tap-todo-skip-whitespace.test \
 +tap-todo-skip.test \
 +tap-unplanned.test \
 +tap-whitespace-normalization.test \
 +tap-with-and-without-number.test \
 +tap-xfail-tests.test \
 +tap-common-setup.test \
 +tap-bad-prog.tap \
 +tap-basic.test \
 +tap-diagnostic-custom.test \
 +tap-driver-stderr.test \
 +tap-doc.test \
 +tap-doc2.test \
 +tap-more.test \
 +tap-more2.test \
 +tap-recheck.test \
 +tap-summary.test \
 +tap-summary-color.test \
  tags.test \
 +tags2.test \
  tagsub.test \
  tar.test \
  tar2.test \
@@@ -1096,8 -845,6 +1101,8 @@@ tar3.test 
  tar-override.test \
  target-cflags.test \
  targetclash.test \
 +tests-environment-fd-redirect.test \
 +tests-environment-and-log-compiler.test \
  txinfo.test \
  txinfo2.test \
  txinfo3.test \
@@@ -1128,11 -875,10 +1133,11 @@@ txinfo30.test 
  txinfo31.test \
  txinfo32.test \
  txinfo33.test \
 +txinfo-unrecognized-extension.test \
  transform.test \
  transform2.test \
 -uninstall-pr9578.test \
  uninstall-fail.test \
 +uninstall-pr9578.test \
  unused.test \
  upc.test \
  upc2.test \
@@@ -1148,8 -894,6 +1153,8 @@@ vala-mix.test 
  vars.test \
  vars3.test \
  vartar.test \
 +vartypos.test \
 +vartypo2.test \
  version.test \
  version2.test \
  version3.test \
@@@ -1162,47 -906,49 +1167,59 @@@ vtexi.test 
  vtexi2.test \
  vtexi3.test \
  vtexi4.test \
 +warnings-override.test \
 +warnings-precedence.test \
 +warnings-strictness-interactions.test \
 +warnings-unknown.test \
  warnopts.test \
 +warnings-win-over-strictness.test \
 +warning-groups-win-over-strictness.test \
  werror.test \
  werror2.test \
  werror3.test \
 +werror4.test \
  whoami.test \
  xsource.test \
- yacc-basic.test \
- yacc-d-basic.test \
- yacc-clean.test \
 -xz.test \
  yacc.test \
  yacc2.test \
  yacc4.test \
  yacc5.test \
- yacc6.test \
  yacc7.test \
  yacc8.test \
  yaccdry.test \
- yacc-dist-nobuild.test \
- yacc-nodist.test \
  yaccpp.test \
  yaccvpath.test \
 -yacc-clean-cxx.test \
+ yacc-auxdir.test \
+ yacc-basic.test \
++yacc-cxx.test \
+ yacc-bison-skeleton-cxx.test \
+ yacc-bison-skeleton.test \
 -yacc-cxx.test \
+ yacc-clean.test \
++yacc-clean-cxx.test \
+ yacc-d-basic.test \
+ yacc-d-cxx.test \
  yacc-d-vpath.test \
+ yacc-deleted-headers.test \
+ yacc-depend.test \
+ yacc-depend2.test \
  yacc-dist-nobuild-subdir.test \
+ yacc-dist-nobuild.test \
+ yacc-line.test \
+ yacc-mix-c-cxx.test \
+ yacc-nodist.test \
+ yacc-pr204.test \
+ yacc-weirdnames.test \
  yflags.test \
  yflags2.test \
  yflags-cmdline-override.test \
  yflags-conditional.test \
  yflags-d-false-positives.test \
- yflags-force-override.test \
  yflags-force-conditional.test \
+ yflags-force-override.test \
  yflags-var-expand.test \
  libtool-macros.test \
  gettext-macros.test
 +
 +print-list-of-tests:
 +      @echo $(handwritten_TESTS)
 +.PHONY: print-list-of-tests
@@@ -1,5 -1,5 +1,5 @@@
  #!/bin/sh
--# Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
++# Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # This test requires the GNU compilers; keep it in sync with sister test
  # `silent-many-generic.test', which should work with generic compilers.
  
- required='gcc g++ gfortran flex yacc'
+ required='gcc g++ gfortran lex yacc'
  . ./defs || Exit 1
  
 -set -e
 -
  # Avoids too much code duplication.
  do_and_check_silent_build ()
  {
@@@ -71,7 -73,6 +71,6 @@@
  # Avoids too much code duplication.
  do_and_check_verbose_build ()
  {
    case $1 in
      --rebuild) rebuild=true;;
              *) rebuild=false;;
@@@ -116,6 -117,8 +115,8 @@@ fo2_SOURCES = $(foo_SOURCES
  fo2_CPPFLAGS = $(AM_CPPFLAGS)
  fo2_FFLAGS = $(AM_FFLAGS)
  fo2_FCFLAGS = $(AM_FCFLAGS)
+ fo2_YFLAGS = -v
+ fo2_LFLAGS = -n
  SUBDIRS = sub
  AM_YFLAGS = -d
  LDADD = $(LEXLIB)
@@@ -132,6 -135,8 +133,8 @@@ ba2_SOURCES = $(baz_SOURCES
  ba2_CPPFLAGS = $(AM_CPPFLAGS)
  ba2_FFLAGS = $(AM_FFLAGS)
  ba2_FCFLAGS = $(AM_FCFLAGS)
+ ba2_YFLAGS = -v
+ ba2_LFLAGS = -n
  AM_YFLAGS = -d
  LDADD = $(LEXLIB)
  BUILT_SOURCES = baz6.h
@@@ -185,18 -190,17 +188,23 @@@ $ACLOCA
  $AUTOMAKE --add-missing
  $AUTOCONF
  
 +# Sanity check: make sure the cache variables we force are really
 +# used by configure.
 +$FGREP am_cv_CC_dependencies_compiler_type configure
 +$FGREP am_cv_CXX_dependencies_compiler_type configure
+ # Ensure per-target rules are used, to ensure their coverage below.
+ # (We do not do an exhaustive check, that wouldn't be practical).
+ $FGREP 'bar-bar.o' Makefile.in
+ $FGREP 'fo2-foo5.c' Makefile.in
+ $FGREP 'fo2-foo6.c' Makefile.in
  
  # Force gcc ("fast") depmode.
 +depmodes="am_cv_CC_dependencies_compiler_type=gcc \
 +          am_cv_CXX_dependencies_compiler_type=gcc"
  # This apparently useless "for" loop is here to simplify the syncing
  # with sister test `silent-many-generic.test'.
  for config_args in \
 -  am_cv_CC_dependencies_compiler_type=gcc
 +  "$depmodes"
  do
  
    ./configure $config_args --enable-silent-rules
    $MAKE clean
    # This is required, since these files are not removed by `make clean'
    # (as dictated by the GNU Coding Standards).
-   rm -f foo5.c foo6.[ch] sub/baz5.c sub/baz6.[ch]
+   rm -f *foo5.c *foo6.[ch] sub/*baz5.c sub/*baz6.[ch]
  
    do_and_check_verbose_build
    # Cleaning and then rebuilding with the same V flag (and without
@@@ -1,5 -1,5 +1,5 @@@
  #!/bin/sh
--# Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
++# Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # sister test `silent-many-gcc.test', which requires the GNU compilers
  # and forces the use of gcc depmode.
  
- required='cc c++ fortran fortran77 flex yacc'
 -# FIXME: generic C++/Fortran compilers should suffice here
 -required='g++ gfortran lex yacc'
++required='cc c++ fortran fortran77 lex yacc'
  . ./defs || Exit 1
  
 -set -e
 -
  # Avoids too much code duplication.
  do_and_check_silent_build ()
  {
@@@ -72,7 -75,6 +72,6 @@@
  # Avoids too much code duplication.
  do_and_check_verbose_build ()
  {
    case $1 in
      --rebuild) rebuild=true;;
              *) rebuild=false;;
@@@ -99,33 -101,11 +98,33 @@@ mkdir su
  cat >>configure.in <<'EOF'
  AM_SILENT_RULES
  AM_PROG_CC_C_O
 -AC_PROG_CXX
  AC_PROG_F77
  AC_PROG_FC
  AC_PROG_LEX
  AC_PROG_YACC
 +AC_PROG_CXX
 +
 +# FIXME: remove this hack once the requirements c++, fortran and fortran77
 +# are implemented correctly.
 +test -n "`echo $CXX`" || AC_MSG_ERROR([C++ compiler not found], [77])
 +test -n "`echo $FC`"  || AC_MSG_ERROR([Fortran compiler not found], [77])
 +test -n "`echo $F77`" || AC_MSG_ERROR([Fortran 77 compiler not found], [77])
 +
 +# The SunStudio C++ compiler is unfortunately named `CC' (yuck!),
 +# and this can cause problems with our grepping checks on the
 +# output from make.  Avoid these problems by invoking a wrapper
 +# script, as filtering the make output proved too fragile.
 +case " $CXX " in
 +  *' CC '*|*'/CC '*)
 +    AC_MSG_WARN([the C++ compiler '$CXX' seems to be named 'CC'])
 +    AC_MSG_WARN([it will be wrapped with the custom script 'am--cxx'])
 +    echo '#!/bin/sh' > bin/am--cxx
 +    echo 'PATH=$saved_PATH; export PATH' >> bin/am--cxx
 +    echo "exec $CXX \${1+"\$@"}" >> bin/am--cxx
 +    chmod a+x bin/am--cxx
 +    CXX=am--cxx
 +esac
 +
  AC_CONFIG_FILES([sub/Makefile])
  AC_OUTPUT
  EOF
@@@ -139,6 -119,8 +138,8 @@@ fo2_SOURCES = $(foo_SOURCES
  fo2_CPPFLAGS = $(AM_CPPFLAGS)
  fo2_FFLAGS = $(AM_FFLAGS)
  fo2_FCFLAGS = $(AM_FCFLAGS)
+ fo2_YFLAGS = -v
+ fo2_LFLAGS = -n
  SUBDIRS = sub
  AM_YFLAGS = -d
  LDADD = $(LEXLIB)
@@@ -155,6 -137,8 +156,8 @@@ ba2_SOURCES = $(baz_SOURCES
  ba2_CPPFLAGS = $(AM_CPPFLAGS)
  ba2_FFLAGS = $(AM_FFLAGS)
  ba2_FCFLAGS = $(AM_FCFLAGS)
+ ba2_YFLAGS = -v
+ ba2_LFLAGS = -n
  AM_YFLAGS = -d
  LDADD = $(LEXLIB)
  BUILT_SOURCES = baz6.h
@@@ -204,14 -188,16 +207,20 @@@ cp foo3.f sub/baz3.
  cp foo5.l sub/baz5.l
  cp foo6.y sub/baz6.y
  
 +mkdir bin
 +saved_PATH=$PATH; export saved_PATH
 +PATH=`pwd`/bin$PATH_SEPARATOR$PATH; export PATH
 +
  $ACLOCAL
  $AUTOMAKE --add-missing
  $AUTOCONF
  
+ # Ensure per-target rules are used, to ensure their coverage below.
+ # (We do not do an exhaustive check, that wouldn't be practical).
+ $FGREP 'bar-bar.o' Makefile.in
+ $FGREP 'fo2-foo5.c' Makefile.in
+ $FGREP 'fo2-foo6.c' Makefile.in
  # Force dependency tracking explicitly, so that slow dependency
  # extractors are not rejected.  Try also with dependency tracking
  # explicitly disabled.
@@@ -232,7 -218,7 +241,7 @@@ d
    $MAKE clean
    # This is required, since these files are not removed by `make clean'
    # (as dictated by the GNU Coding Standards).
-   rm -f foo5.c foo6.[ch] sub/baz5.c sub/baz6.[ch]
+   rm -f *foo5.c *foo6.[ch] sub/*baz5.c sub/*baz6.[ch]
  
    do_and_check_verbose_build
    # Cleaning and then rebuilding with the same V flag (and without
diff --combined tests/subpkg-yacc.test
@@@ -21,6 -21,8 +21,6 @@@
  required='cc yacc'
  . ./defs || Exit 1
  
 -set -e
 -
  cat >>configure.in <<'END'
  AC_PROG_CC
  AC_CONFIG_SUBDIRS([lib])
@@@ -55,7 -57,6 +55,7 @@@ AC_PROG_RANLI
  AC_PROG_YACC
  dnl This comes after YACC and RANLIB checks, deliberately.
  AC_PROG_CC
 +AM_PROG_AR
  AC_CONFIG_HEADERS([config.h:config.hin])
  AC_CONFIG_FILES([Makefile])
  AC_OUTPUT
@@@ -116,34 -117,15 +116,15 @@@ $AUTOHEADE
  $AUTOMAKE -Wno-override --add-missing
  cd ..
  
- # Some checks here are slightly more tricky than we'd like, but we cannot
- # simply use "make distcheck", to avoid triggering a spurious failure due
- # to issues with FreeBSD make and VPATH builds (see automake bug#7884).
  ./configure
- $MAKE
- $MAKE dist
- test -f lib-dist-hook-has-run
- test -f subpack-1.tar.gz
- test ! -d subpack-1 # Make sure "dist" cleans up after itself.
  
- mkdir workdir
- cd workdir
- gzip -c -d ../subpack-1.tar.gz | tar xf -
- test -d subpack-1
- mkdir build
- cd build
- ../subpack-1/configure
- $MAKE
  $MAKE dist
  test -f lib-dist-hook-has-run
  test -f subpack-1.tar.gz
  test ! -d subpack-1 # Make sure "dist" cleans up after itself.
  
- # Don't trust non-GNU makes to do distcheck with a Yacc-using
- # package (see bug referenced above).
- if using_gmake; then
-   $MAKE distcheck || Exit 1
- fi
+ rm -f lib-dist-hook-has-run subpack-1.tar.gz
+ yl_distcheck
  
  :
diff --combined tests/subpkg.test
@@@ -1,6 -1,6 +1,6 @@@
  #! /bin/sh
--# Copyright (C) 2002, 2003, 2004, 2006, 2011 Free Software Foundation,
--# Inc.
++# Copyright (C) 2002, 2003, 2004, 2006, 2011, 2012 Free Software
++# Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  
  # Check subpackage handling.
  
 -required=gcc
 +required=cc
  . ./defs || Exit 1
  
 -set -e
 -
  mkdir m4
  
  cat >m4/foo.m4 <<'EOF'
@@@ -65,7 -67,6 +65,7 @@@ mkdir lib/sr
  cat >lib/configure.ac <<'EOF'
  AC_INIT([lib], [2.3])
  AM_INIT_AUTOMAKE
 +AM_PROG_AR
  AC_PROG_RANLIB
  AC_CONFIG_HEADERS([config.h:config.hin])
  AC_CONFIG_FILES([Makefile])
diff --combined tests/yacc-basic.test
@@@ -1,5 -1,5 +1,5 @@@
  #! /bin/sh
--# Copyright (C) 2010, 2011 Free Software Foundation, Inc.
++# Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # You should have received a copy of the GNU General Public License
  # along with this program.  If not, see <http://www.gnu.org/licenses/>.
  
- # Basic semantic checks on Yacc support.
+ # Basic semantic checks on Yacc support (without yacc-generated headers).
+ # Keep in sync with sister test `yacc-cxx.test'.
  
 -required=yacc
 +required='cc yacc'
  . ./defs || Exit 1
  
 -set -e
 -
  cat >> configure.in << 'END'
  AC_PROG_CC
  AC_PROG_YACC
@@@ -26,8 -29,10 +27,10 @@@ AC_OUTPU
  END
  
  cat > Makefile.am << 'END'
- bin_PROGRAMS = foo
+ bin_PROGRAMS = foo bar
  foo_SOURCES = parse.y foo.c
+ bar_SOURCES = $(foo_SOURCES)
+ bar_YFLAGS = -v
  
  .PHONY: echo-distcom
  echo-distcom:
@@@ -38,7 -43,7 +41,7 @@@ cat > parse.y << 'END
  %{
  #include <stdio.h>
  #include <stdlib.h>
- int yylex () { return (getchar ()); }
+ int yylex () { return getchar (); }
  void yyerror (char *s) {}
  %}
  %%
@@@ -55,33 -60,49 +58,52 @@@ $AUTOMAKE -
  
  ./configure
  $MAKE
- # The `parse.c' file must be created and not removed (i.e., not treated
- # like an "intermediate file" in the GNU make sense).
+ ls -l
+ # The Yacc-derived C sources must be created, and not removed once
+ # compiled (i.e., not treated like "intermediate files" in the GNU
+ # make sense).
  test -f parse.c
+ test -f bar-parse.c
+ # Check that per-object flags are honored.
+ test -f bar-parse.output
  
 -echo a | ./foo
 -echo b | ./foo && Exit 1
 +if cross_compiling; then :; else
 +  echo a | ./foo
 +  echo b | ./foo && Exit 1
 +  : For shells with busted 'set -e'.
 +fi
  
- # The generated file `parse.c' must be shipped.
+ echo a | ./bar
+ echo b | ./bar && Exit 1
+ # The Yacc-derived C sources must be shipped.
  $MAKE echo-distcom
- $MAKE -s echo-distcom | grep '[ /]parse.c '
+ $MAKE -s echo-distcom | grep '[ /]parse\.c '
+ $MAKE -s echo-distcom | grep '[ /]bar-parse\.c '
  $MAKE distdir
  ls -l $distdir
  test -f $distdir/parse.c
+ test -f $distdir/bar-parse.c
  
  # Sanity check on distribution.
- $MAKE distcheck
+ # Note that, for this to succeed, bar-parse.output must either not
+ # be distributed, or properly cleaned by automake-generated rules.
+ # We don't want to set the exact semantics yet, but want to ensure
+ # they are are consistent.
+ yl_distcheck
  
- # While we are at it, make sure that parse.c is erased by
+ # Make sure that the Yacc-derived C sources are erased by
  # maintainer-clean, and not by distclean.
  test -f parse.c
+ test -f bar-parse.c
  $MAKE distclean
+ ls -l
  test -f parse.c
- ./configure # Re-create `Makefile'.
+ test -f bar-parse.c
 -./configure # we must re-create `Makefile'
++./configure # We must re-create 'Makefile'.
  $MAKE maintainer-clean
+ ls -l
  test ! -f parse.c
+ test ! -f bar-parse.c
  
  :
diff --combined tests/yacc-clean.test
@@@ -1,5 -1,5 +1,5 @@@
  #! /bin/sh
--# Copyright (C) 2011 Free Software Foundation, Inc.
++# Copyright (C) 2011, 2012 Free Software Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # Check that .c and .h files derived from non-distributed .y sources
  # are cleaned by "make clean", while .c and .h files derived from
  # distributed .y sources are cleaned by "make maintainer-clean".
+ # See also sister test `yacc-cxx-clean.test'.
  
 -required=yacc
 +required='cc yacc'
  . ./defs || Exit 1
  
 -set -e
 -
  cat >> configure.in << 'END'
  AC_PROG_CC
  AC_PROG_YACC
@@@ -130,7 -133,7 +131,7 @@@ for target in clean distclean; d
  done
  
  cp config.sav config.status
 -./config.status # re-create Makefile
 +./config.status # Re-create `Makefile'.
  
  $MAKE maintainer-clean
  ls -l . sub1 sub2
@@@ -143,11 -146,4 +144,4 @@@ test ! -r sub2/parse.
  test ! -r sub2/bar-parse.c
  test ! -r sub2/bar-parse.h
  
- cp config.sav config.status
- ./config.status # Re-create `Makefile'.
- # The distribution must work correctly, assuming the user has
- # the proper tools to process yacc files.
- $MAKE distcheck
  :
diff --combined tests/yacc-d-basic.test
@@@ -1,5 -1,5 +1,5 @@@
  #! /bin/sh
--# Copyright (C) 2011 Free Software Foundation, Inc.
++# Copyright (C) 2011, 2012 Free Software Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # You should have received a copy of the GNU General Public License
  # along with this program.  If not, see <http://www.gnu.org/licenses/>.
  
- # Tests on basic Yacc support for when we have -d in YFLAGS, AM_YFLAGS
- # or maude_YFLAGS.
+ # Tests Yacc support with yacc-generated headers
+ # (i.e., '-d' in *YFLAGS).
+ # Keep in sync with sister test `yacc-d-cxx.test'.
  
 -required=yacc
 +required='cc yacc'
  . ./defs || Exit 1
  
- tab=' '
 -set -e
--
  cat >> configure.in << 'END'
  AC_PROG_CC
  AC_PROG_YACC
@@@ -108,7 -109,7 +107,7 @@@ test -f bar/parse.
  test -f baz/zardoz-parse.c
  test -f baz/zardoz-parse.h
  
- # The generated C and header files must be shipped.
+ # The generated C source and header files must be shipped.
  for dir in foo bar; do
    cd $dir
    $MAKE echo-distcom
@@@ -132,7 -133,7 +131,7 @@@ test -f $distdir/baz/zardoz-parse.
  test -f $distdir/baz/zardoz-parse.h
  
  # Sanity check the distribution.
$MAKE distcheck
yl_distcheck
  
  # While we are at it, make sure that `parse.c' and `parse.h' are erased
  # by maintainer-clean, and not by distclean.
diff --combined tests/yacc-d-vpath.test
@@@ -1,5 -1,5 +1,5 @@@
  #! /bin/sh
--# Copyright (C) 2011 Free Software Foundation, Inc.
++# Copyright (C) 2011, 2012 Free Software Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  
  # Please keep this in sync with sister test `yaccvpath.test'.
  
 -required=yacc
 +required='cc yacc'
  . ./defs || Exit 1
  
 -set -e
 -
  cat >> configure.in << 'END'
  AC_PROG_CC
  AC_PROG_YACC
@@@ -37,10 -39,10 +37,10 @@@ foo_SOURCES = parse.y foo.
  AM_YFLAGS = -d
  END
  
 -# Original parser, with `foobar'
 +# Original parser, with `foobar'.
  cat > parse.y << 'END'
  %{
- int yylex () {return 0;}
+ int yylex () { return 0; }
  void yyerror (char *s) {}
  %}
  %token FOOBAR
@@@ -70,10 -72,10 +70,10 @@@ cd su
  
  $sleep
  
 -# New parser, with `fubar'
 +# New parser, with `fubar'.
  cat > ../parse.y << 'END'
  %{
- int yylex () {return 0;}
+ int yylex () { return 0; }
  void yyerror (char *s) {}
  %}
  %token FUBAR
@@@ -90,10 -92,10 +90,10 @@@ $FGREP FUBAR $distdir/parse.
  
  $sleep
  
 -# New parser, with `maude'
 +# New parser, with `maude'.
  cat > ../parse.y << 'END'
  %{
- int yylex () {return 0;}
+ int yylex () { return 0; }
  void yyerror (char *s) {}
  %}
  %token MAUDE
@@@ -1,5 -1,5 +1,5 @@@
  #! /bin/sh
--# Copyright (C) 2011 Free Software Foundation, Inc.
++# Copyright (C) 2011, 2012 Free Software Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  required=yacc
  . ./defs || Exit 1
  
- distdir=$me-1.0
 -set -e
 -
+ # This test is bounded to fail for any implementation that
+ # triggers automake bug#7884.
+ useless_vpath_rebuild && skip_ "would trip on automake bug#7884"
  
  cat >> configure.in << 'END'
  AC_PROG_CC
@@@ -62,7 -66,7 +64,7 @@@ $AUTOMAKE -
  ./configure
  $MAKE distdir
  
 -# Yacc-derived C source and header files must be built and distributed
 +# Yacc-derived C source and header files must be built and distributed.
  
  test   -f sub/parse.c
  test   -f sub/parse.h
@@@ -1,5 -1,5 +1,5 @@@
  #! /bin/sh
--# Copyright (C) 2011 Free Software Foundation, Inc.
++# Copyright (C) 2011, 2012 Free Software Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  
  # Check that distributed Yacc-generated parsers are not uselessly
  # remade from an unpacked distributed tarball.
+ # See automake bug#7884.
  
 -required=yacc
 +required='cc yacc'
  . ./defs || Exit 1
  
 -set -e
 -
  cat >> configure.in << 'END'
  AC_PROG_CC
  AC_PROG_YACC
diff --combined tests/yacc-nodist.test
  # You should have received a copy of the GNU General Public License
  # along with this program.  If not, see <http://www.gnu.org/licenses/>.
  
- # Checks for .c and .h files derived from non-distributed .y sources.
+ # Checks for .c and .h files derived from non-distributed yacc sources.
+ # The test 'yacc-pr204.test' does similar check with AM_MAINTAINER_MODE
+ # enabled.
+ # The tests 'lex-nodist.test' and 'lex-pr204.test' does similar checks
+ # for lex-generated .c files.
  
 -required=yacc
 +required='cc yacc'
  . ./defs || Exit 1
  
 -set -e
 -
  cat >> configure.in << 'END'
  AC_PROG_CC
  AC_PROG_YACC
@@@ -28,7 -34,7 +32,7 @@@ EN
  
  cat > Makefile.am << 'END'
  SUBDIRS = sub1 sub2
- .PHONY: test
+ .PHONY: test-build test-dist
  test-build: all
        ls -l . sub1 sub2
        test -f sub1/parse.y
@@@ -60,8 -66,8 +64,8 @@@ parse.y
          && echo "%%" \
          && echo "maude : 'm' 'a' 'u' 'd' 'e' {}"; \
        } > $@-t
-       chmod a-w $@-t
-       mv -f $@-t $@
+       chmod a-w $@-t && mv -f $@-t $@
  bin_PROGRAMS = prog
  prog_SOURCES = main.c
  nodist_prog_SOURCES = parse.y
@@@ -93,7 -99,8 +97,8 @@@ $MAKE test-buil
  $MAKE test-dist
  
  # But the distribution must work correctly, assuming the user has
- # the proper tools to process yacc files.
- $MAKE distcheck
+ # the proper tools to process yacc files.  Do this check only with
+ # GNU make, to avoid tripping on automake bug#7884.
+ if using_gmake; then $MAKE distcheck; fi
  
  :
diff --combined tests/yacc-pr204.test
@@@ -1,5 -1,5 +1,6 @@@
  #! /bin/sh
--# Copyright (C) 2002, 2004, 2010, 2011 Free Software Foundation, Inc.
++# Copyright (C) 2002, 2004, 2010, 2011, 2012 Free Software Foundation,
++# Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # along with this program.  If not, see <http://www.gnu.org/licenses/>.
  
  # For PR 204.
- # Sources derived from nodist_ sources should not be distributed.
+ # C sources derived from nodist_ yacc sources should not be distributed.
+ # See also related test `yacc-nodist.test'.
+ # The tests 'lex-nodist.test' and 'lex-pr204.test' does similar checks
+ # for lex-generated C files.
  
 -required=yacc
 +required='cc yacc'
  . ./defs || Exit 1
  
 -set -e
 -
  cat >> configure.in <<'EOF'
  AM_MAINTAINER_MODE
  AC_PROG_CC
@@@ -71,9 -76,11 +75,11 @@@ test -f parse2.
  # Ensure the rebuild rule works despite AM_MAINTAINER_MODE, because
  # it's a nodist_ parser.
  $sleep
- touch parse.y
+ touch parse.y parse2.y
  $sleep
  $MAKE parse.c parse2.c
- test `ls -1t parse.c parse.y | sed 1q` = parse.c
+ stat parse.c parse.y parse2.c parse2.y || : # For debugging.
+ test `ls -t parse.c parse.y | sed 1q` = parse.c
+ test `ls -t parse2.c parse2.y | sed 1q` = parse2.c
  
  :
diff --combined tests/yacc4.test
@@@ -1,5 -1,5 +1,6 @@@
  #! /bin/sh
--# Copyright (C) 2001, 2002, 2010, 2011 Free Software Foundation, Inc.
++# Copyright (C) 2001, 2002, 2010, 2011, 2012 Free Software Foundation,
++# Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  
  # Some simple tests of ylwrap functionality.
  
 -required=yacc
 +required='cc yacc'
  . ./defs || Exit 1
  
 -set -e
 -
  cat >> configure.in << 'END'
  AC_PROG_CC
  AC_PROG_YACC
@@@ -34,7 -36,7 +35,7 @@@ EN
  # First parser.
  cat > parse.y << 'END'
  %{
- int yylex () {return 0;}
+ int yylex () { return 0; }
  void yyerror (char *s) {}
  %}
  %%
@@@ -52,10 -54,7 +53,10 @@@ fubar : 'f' 'o' 'o' 'b' 'a' 'r' {}
  END
  
  cat > foo.c << 'END'
 -int main () { return 0; }
 +int main (void)
 +{
 +  return 0;
 +}
  END
  
  $ACLOCAL
diff --combined tests/yacc8.test
@@@ -1,5 -1,5 +1,5 @@@
  #! /bin/sh
--# Copyright (C) 2002, 2003, 2004, 2006, 2010, 2011 Free Software
++# Copyright (C) 2002, 2003, 2004, 2006, 2010, 2011, 2012 Free Software
  # Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  
  # Test for subdir parsers.
  
 -required=yacc
 +required='cc yacc'
  
  . ./defs || Exit 1
  
 -set -e
 -
  cat >> configure.in << 'END'
  AC_PROG_CC
  AM_PROG_CC_C_O
@@@ -50,7 -52,7 +50,7 @@@ mkdir fo
  
  cat > foo/parse.y << 'END'
  %{
- int yylex () {return 0;}
+ int yylex () { return 0; }
  void yyerror (char *s) {}
  %}
  %%
@@@ -68,7 -70,7 +68,7 @@@ cd su
  $MAKE test1
  
  # Aside of the rest of this test, let's see if we can recover from
 -# parse.h removal
 +# parse.h removal.
  test -f foo/parse.h
  rm -f foo/parse.h
  $MAKE foo/parse.h
@@@ -103,7 -105,7 +103,7 @@@ $AUTOMAKE -
  test -f ./ylwrap
  
  cd sub
 -# Regenerate Makefile (automatic in GNU Make, but not in other Makes)
 +# Regenerate Makefile (automatic in GNU Make, but not in other Makes).
  ./config.status
  $MAKE test2
  
diff --combined tests/yaccdry.test
  
  # Removal recovery rules for headers should not remove files with `make -n'.
  
 -required=yacc
 +required='cc yacc'
  . ./defs || Exit 1
  
 -set -e
 -
  cat >> configure.in << 'END'
  AC_PROG_CC
  AC_PROG_YACC
@@@ -37,7 -39,7 +37,7 @@@ EN
  
  cat > parse.y << 'END'
  %{
- int yylex () {return 0;}
+ int yylex () { return 0; }
  void yyerror (char *s) {}
  %}
  %%
diff --combined tests/yaccpp.test
@@@ -1,6 -1,6 +1,6 @@@
  #! /bin/sh
 -# Copyright (C) 1997, 2001, 2002, 2006, 2010 Free Software Foundation,
 -# Inc.
 +# Copyright (C) 1997, 2001, 2002, 2006, 2010, 2011 Free Software
 +# Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # You should have received a copy of the GNU General Public License
  # along with this program.  If not, see <http://www.gnu.org/licenses/>.
  
- # Test to make sure Yacc + C++ is supported.
- # Please keep this is sync with sister test lexcpp.test.
+ # Test to make sure Yacc + C++ is not obviously broken.
+ # See also related tests `yacc-cxx.test' and `yacc-d-cxx.test',
+ # which does much more in-depth checks (but requires an actual
+ # Yacc program and a working C++ compiler).
  
  . ./defs || Exit 1
  
 -set -e
 -
  cat >> configure.in << 'END'
  AC_PROG_CXX
  AC_PROG_YACC
@@@ -36,10 -40,45 +38,45 @@@ EN
  $ACLOCAL
  $AUTOMAKE -a
  
+ $EGREP '(\.[ch]|foo|bar|baz|qux)' Makefile.in # For debugging.
+ $EGREP '(foo|bar|baz|qux)\.h' Makefile.in && Exit 1
  sed -e 's/^/ /' -e 's/$/ /' Makefile.in >mk
  $FGREP ' foo.c++ ' mk
  $FGREP ' bar.cpp ' mk
  $FGREP ' baz.cc '  mk
  $FGREP ' qux.cxx ' mk
  
+ cat >> Makefile.am <<END
+ AM_YFLAGS = -d
+ qux_YFLAGS = foo
+ END
+ $AUTOMAKE
+ $EGREP '(\.[ch]|foo|bar|baz|qux)' Makefile.in # For debugging.
+ sed -e 's/^/ /' -e 's/$/ /' Makefile.in >mk
+ $FGREP ' foo.c++ ' mk
+ $FGREP ' foo.h++ ' mk
+ $FGREP ' bar.cpp ' mk
+ $FGREP ' bar.hpp ' mk
+ $FGREP ' baz.cc '  mk
+ $FGREP ' baz.hh '  mk
+ $EGREP '(^| )foo\.h\+\+(:| .*:)' Makefile.in
+ $EGREP '(^| )bar\.hpp(:| .*:)'   Makefile.in
+ $EGREP '(^| )baz\.hh(:| .*:)'    Makefile.in
+ grep ' foo\.h[ :]' mk && Exit 1
+ grep ' bar\.h[ :]' mk && Exit 1
+ grep ' baz\.h[ :]' mk && Exit 1
+ $FGREP ' qux-qux.cxx ' mk
+ $EGREP '(^| )qux-qux\.cxx(:| .*:)' Makefile.in
+ grep 'qux\.h.*:' Makefile.in && Exit 1
  :
diff --combined tests/yaccvpath.test
@@@ -1,6 -1,6 +1,6 @@@
  #! /bin/sh
--# Copyright (C) 2001, 2002, 2003, 2010, 2011 Free Software Foundation,
--# Inc.
++# Copyright (C) 2001, 2002, 2003, 2010, 2011, 2012 Free Software
++# Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  
  # Please keep this in sync with sister test `yacc-d-vpath.test'.
  
 -required=yacc
 +required='cc yacc'
  . ./defs || Exit 1
  
- distdir=$me-1.0
 -set -e
--
  cat >> configure.in << 'END'
  AC_PROG_CC
  AC_PROG_YACC
@@@ -39,10 -39,10 +37,10 @@@ bin_PROGRAMS = fo
  foo_SOURCES = parse.y foo.c
  END
  
 -# Original parser, with `foobar'
 +# Original parser, with `foobar'.
  cat > parse.y << 'END'
  %{
- int yylex () {return 0;}
+ int yylex () { return 0; }
  void yyerror (char *s) {}
  %}
  %%
@@@ -66,10 -66,10 +64,10 @@@ cd su
  
  $sleep
  
 -# New parser, with `fubar'
 +# New parser, with `fubar'.
  cat > ../parse.y << 'END'
  %{
- int yylex () {return 0;}
+ int yylex () { return 0; }
  void yyerror (char *s) {}
  %}
  %%
@@@ -84,10 -84,10 +82,10 @@@ $FGREP fubar $distdir/parse.
  
  $sleep
  
 -# New parser, with `maude'
 +# New parser, with `maude'.
  cat > ../parse.y << 'END'
  %{
- int yylex () {return 0;}
+ int yylex () { return 0; }
  void yyerror (char *s) {}
  %}
  %%
  # in Makefile.am (even if that is extremely bad practice, because that
  # variable is user-reserved).
  
 -required=yacc
 +required='cc yacc'
  . ./defs || Exit 1
  
 -set -e
 -
  cat >> configure.in <<'END'
  AC_PROG_CC
  AC_PROG_YACC
@@@ -47,7 -49,7 +47,7 @@@ EN
  $ACLOCAL
  $AUTOMAKE -a -Wno-gnu
  
 -$EGREP '(foo|YFLAGS)' Makefile.in # for debugging
 +$EGREP '(foo|YFLAGS)' Makefile.in # For debugging.
  grep '^foo.h *:' Makefile.in
  
  $AUTOCONF
@@@ -59,6 -61,4 +59,4 @@@ test -f foo.
  test -f foo.h
  test -f foo.output
  
- $MAKE distcheck
  :