automake-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Automake-commit] [SCM] GNU Automake branch, ng/master, updated. v1.11-2


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, ng/master, updated. v1.11-2033-g01797e0
Date: Tue, 21 Feb 2012 14:47:35 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=01797e0cf1e633d76e4cdf6015f185164590898d

The branch, ng/master has been updated
       via  01797e0cf1e633d76e4cdf6015f185164590898d (commit)
       via  f50c47007f45b32e67bbdf2289875f02f255e8bc (commit)
       via  a537fbe62988ac551714b8d852dc8e03f1af4f1c (commit)
       via  7488050293d0547cdf67df81e6844e15a3140076 (commit)
       via  c93cb22ead78766bafdf323d52c2ee25a8dcba25 (commit)
       via  deb7773835c02531a7cccc8a7bc7f80959b31872 (commit)
       via  82616f0bc3340449ebb7d5e1e40cca40644e8b74 (commit)
       via  101216cad25855e236e29c73c7d8781c5a94f598 (commit)
       via  86deab4df2aabc9fb23125cff2dd68af7ef963b4 (commit)
       via  72cae0a53cde58c5f5ac1020555a675498191b85 (commit)
       via  0194d5e1e31861fa362b77c5e2dab74cd3e7ecea (commit)
       via  ec94d5945575c6664110cb76e0ff317491c44ec1 (commit)
       via  e1606b320367120dbd9353913bb6f5bf3260c14e (commit)
       via  21af8bfd077dad5411ba07bd2208b6d216ad686f (commit)
       via  0402db9837e0a482a01d0485a5c1c500d26ac6c3 (commit)
       via  8010df5d0a3fd4b93c5aa74ef735128ebff4604e (commit)
       via  c11924b585cd5f626034cfbcb728d43df7e070a5 (commit)
       via  a7cc454dc97c663d03d6abde99724606bc2878ef (commit)
       via  229f7712d48ef7b5f7324dbe66695b88c4f637b8 (commit)
       via  03493884de0181f4a5019885267bde4f215098d8 (commit)
       via  a98e58ffff35f13a61359f3c0aa214ebc6d15922 (commit)
       via  44737ebc42660ec28f8555607ae51d2d355e927a (commit)
       via  b5788178cedf5f6c78d34ff1f3f3c223c41e579d (commit)
       via  4df475a2d5ee114d1709884ec57698d34c5493cb (commit)
       via  622a348efd03f4fe39194f80ef8373cb6686111a (commit)
       via  0f858eabaed9377bb4c0cf62fec44237528f9728 (commit)
       via  e5da4fbf4a1fad91b3b25e1b86b563bfa793ab0e (commit)
       via  22729165f6bb902daeb8a4d8e7cb06982390f327 (commit)
       via  72b68766c275fab8917fba09f90481a96c7a05f6 (commit)
       via  d74d525cfb421ccc8a75cfbc9cc91090a08d1f31 (commit)
       via  a3756f96a3e92ec3e20f6666abfa2e8923ea483c (commit)
       via  3b369e6bbe0fb6d7359398935706c87dd9375cb6 (commit)
      from  268492330184c069d404aaad55a8ecb66458f576 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 01797e0cf1e633d76e4cdf6015f185164590898d
Merge: f50c470 a537fbe
Author: Stefano Lattarini <address@hidden>
Date:   Tue Feb 21 15:42:17 2012 +0100

    Merge branch 'master' into ng/master
    
    * master: (28 commits)
      tests: "make installcheck" shouldn't run the testsuite twice
      news: minor fixlets and reorganization
      cosmetics: few typofixes
      automake: new option 'serial-tests'
      tests: fix a timestamp issue, and other minor buglets
      automake: new option to print location of scripts and data files
      docs: prefer the awk+sh TAP driver over the perl one
      tests: be stricter in determining whether "make -jN" works
      tests: don't trust exit status of "make -k"
      tests: fix race condition in 'self-check-dir.tap'
      parallel-tests: fix another BSD parallel make issue
      tests: avoid FreeBSD make VPATH issues in more tests (see bug#7884)
      cosmetics: remove extra trailing whitespace in configure.ac
      tests: avoid spurious failure with FreeBSD make
      tests: fix broken quoting in the generated yacc grammar
      fixup: always use correct path for automake/aclocal wrappers
      tests: fix spurious failure in VPATH build
      tests: fix many spurious failures in VPATH builds
      tests: relax a test to cater to NetBSD make
      dryrun: $(am__dry_run) not confused by metachars in $(MAKEFLAGS)
      ...

commit f50c47007f45b32e67bbdf2289875f02f255e8bc
Author: Stefano Lattarini <address@hidden>
Date:   Tue Feb 21 15:23:28 2012 +0100

    [ng] fixup: version downgrade in 'm4/amversion.m4' as well
    
    * m4/amversion.m4 (AM_SET_CURRENT_AUTOMAKE_VERSION,
    AM_AUTOMAKE_VERSION): Downgrade Automake-NG version from 2.0a
    to 0.5a.  This should have been done in previous commit
    'v1.11-2001-g2684923' of17-02-2012, but we forgot to check in
    this part of the change.

-----------------------------------------------------------------------

Summary of changes:
 .git-log-fix                              |   13 ++
 .gitignore                                |    4 +-
 ChangeLog.09                              |    2 +-
 ChangeLog.11                              |    2 +-
 Makefile.am                               |    9 +-
 NEWS                                      |  204 +++++++++++++++++------------
 THANKS                                    |    1 +
 automake.in                               |    4 +-
 configure.ac                              |   11 +-
 contrib/multilib/config-ml.in             |    2 +-
 doc/Makefile.am                           |    5 +-
 doc/automake.texi                         |   58 +++++---
 lib/Automake/Options.pm                   |   11 ++-
 lib/am/check2.am                          |   33 ++++-
 lib/am/header-vars.am                     |   26 +++--
 m4/amversion.m4                           |    6 +-
 syntax-checks.mk                          |   28 ----
 tests/Makefile.am                         |    4 +-
 tests/{ => ax}/is                         |    0
 tests/conffile-leading-dot.test           |   15 +-
 tests/defs                                |    2 +-
 tests/defs-static.in                      |    6 +-
 tests/get-sysconf.test                    |    4 +-
 tests/lex-lib-external.test               |    2 +-
 tests/lex-libobj.test                     |    2 +-
 tests/lex-noyywrap.test                   |    2 +-
 tests/lisp3.test                          |    2 +-
 tests/lisp4.test                          |    2 +-
 tests/lisp5.test                          |    2 +-
 tests/lisp6.test                          |    2 +-
 tests/lisp7.test                          |    2 +-
 tests/lisp8.test                          |    2 +-
 tests/lispdry.test                        |    2 +-
 tests/list-of-tests.mk                    |    4 +-
 tests/make-dryrun.tap                     |  125 ++++++++++++++++++
 tests/make-dryrun.test                    |   61 ---------
 tests/man6.test                           |    4 +
 tests/man8.test                           |    4 +
 tests/parallel-tests-empty-testlogs.test  |   11 ++-
 tests/parallel-tests-extra-programs.test  |   14 ++-
 tests/parallel-tests-subdir.test          |    2 +
 tests/parallel-tests3.test                |   54 ++++++--
 tests/{symlink.test => print-libdir.test} |   28 +++--
 tests/self-check-dir.tap                  |    5 +-
 tests/serial-tests.test                   |   86 ++++++++++++
 tests/suffix10.tap                        |    2 +-
 tests/tap-doc2.test                       |   11 +-
 tests/tap-functions.sh                    |   17 ++-
 tests/{ => wrap}/aclocal.in               |    0
 tests/{ => wrap}/automake.in              |    0
 50 files changed, 604 insertions(+), 294 deletions(-)
 create mode 100644 .git-log-fix
 rename tests/{ => ax}/is (100%)
 create mode 100755 tests/make-dryrun.tap
 delete mode 100755 tests/make-dryrun.test
 copy tests/{symlink.test => print-libdir.test} (59%)
 create mode 100755 tests/serial-tests.test
 rename tests/{ => wrap}/aclocal.in (100%)
 rename tests/{ => wrap}/automake.in (100%)

diff --git a/.git-log-fix b/.git-log-fix
new file mode 100644
index 0000000..d87a0ec
--- /dev/null
+++ b/.git-log-fix
@@ -0,0 +1,13 @@
+# This file is expected to be used via gitlog-to-changelog's --amend=FILE
+# option.  It specifies what changes to make to each given SHA1's commit
+# log and metadata, using Perl-eval'able expressions.
+
+3b369e6bbe0fb6d7359398935706c87dd9375cb6
+# Date:   Thu Feb 16 22:29:32 2012 +0100
+# Fix a typo.
+s| bur | bug |
+
+22729165f6bb902daeb8a4d8e7cb06982390f327
+# Date:   Fri Feb 17 10:13:15 2012 +0100
+# Fix a typo.
+s|.fix-git-log|.git-log-fix|
diff --git a/.gitignore b/.gitignore
index 59e80ab..6ee3708 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,8 +47,8 @@ Makefile
 /doc/amhello/install-sh
 /doc/amhello/missing
 /lib/Automake/Config.pm
-/tests/aclocal-1.*
-/tests/automake-1.*
+/tests/wrap/aclocal-1.*
+/tests/wrap/automake-1.*
 /tests/defs-static
 /tests/testsuite-part.am
 /tests/*-w.tap
diff --git a/ChangeLog.09 b/ChangeLog.09
index 2238005..02a1e33 100644
--- a/ChangeLog.09
+++ b/ChangeLog.09
@@ -4088,7 +4088,7 @@
        * automake.in (%_macro_for_cond): New variable.
        (cond_stack_if): Use it for better error message about
        missing dependency tracking conditionals.
-       * tests/asm2.test: New test, modeled after asm.test.
+       * tests/asm2.test: New test, modelled after asm.test.
        * tests/Makefile.am: Adjust.
        Report by Ralf Corsepius.
 
diff --git a/ChangeLog.11 b/ChangeLog.11
index a5c3a95..ce9d2b8 100644
--- a/ChangeLog.11
+++ b/ChangeLog.11
@@ -12842,7 +12842,7 @@
 
        Make test `aclocal3.test' stricter.
        * tests/aclocal3.test: Add call to `set -e'.  Fail if $ACLOCAL
-       succeds unexpectedly.
+       succeeds unexpectedly.
 
        Add tests checking that symlinks are resolved by `make dist'.
        * tests/distlinks.test: New test.
diff --git a/Makefile.am b/Makefile.am
index 2befc91..43a61a3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -45,6 +45,7 @@ EXTRA_DIST = \
   ChangeLog.09 \
   ChangeLog.11 \
   bootstrap \
+  $(gitlog_to_changelog_fixes) \
   $(AUTOMAKESOURCES)
 
 ## Make versioned links.  We only run the transform on the root name;
@@ -102,10 +103,6 @@ automake aclocal: Makefile
 INSTALL: lib/INSTALL
        $(AM_V_GEN)cp $(srcdir)/lib/INSTALL $@
 
-# Run the testsuite with the installed aclocal and automake.
-installcheck-local:
-       am_running_installcheck=yes $(MAKE) check
-
 # Convenience proxy target for the test suites.
 recheck:
        $(am__cd) tests && $(MAKE) $@
@@ -118,7 +115,9 @@ recheck:
 ##
 
 gitlog_to_changelog_command = $(PERL) $(srcdir)/lib/gitlog-to-changelog
-gitlog_to_changelog_options = --since='2011-12-28 00:00:00' \
+gitlog_to_changelog_fixes = $(srcdir)/.git-log-fix
+gitlog_to_changelog_options = --amend=$(gitlog_to_changelog_fixes) \
+                              --since='2011-12-28 00:00:00' \
                               --no-cluster --format '%s%n%n%b'
 
 # Automatic generation of the ChangeLog from git history.
diff --git a/NEWS b/NEWS
index 252fcf7..53a2f46 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,14 @@
+* WARNING: Future backward-incompatibilities!
+
+  - The '--acdir' option of aclocal is deprecated, and will probably
+    be removed in the next major Automake release (1.13).  You should
+    use the options '--automake-acdir' and '--system-acdir' instead
+    (which have been introduced in Automake 1.11.2).
+
+  - 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.13).
+
 New in 1.11a:
 
 * Obsolete features removed:
@@ -13,23 +24,28 @@ New in 1.11a:
     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 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.
+  - The long-deprecated options '--output-dir', '--Werror' and
+    '--Wno-error' have been removed.
 
   - The chapter on the history of Automake has been moved out of the
     reference manual, into a new dedicated Texinfo file.
 
 * New targets:
 
-  - New `cscope' target to build a cscope database for the source tree.
+  - New 'cscope' target to build a cscope database for the source tree.
 
 * Changes to Automake-generated testsuite harnesses:
 
+  - The new automake option 'serial-tests' has been introduced.  It can
+    be used to explicitly instruct automake to use the older serial
+    testsuite harness.  This is still the default at the moment, but it
+    might change in future versions.
+
   - 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
@@ -46,13 +62,13 @@ New in 1.11a:
 
   - 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
+    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
+    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
+    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
@@ -87,13 +103,13 @@ New in 1.11a:
   - 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'.
+    special makefile variables 'LOG_DRIVER' and '<ext>_LOG_DRIVER'.
 
-  - A new developer-reserved variable `AM_TESTS_FD_REDIRECT' can be used
+  - 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'
+  - 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.
 
@@ -112,20 +128,23 @@ New in 1.11a:
     sources.  For example, yacc files named "foo.y++" and "bar.yy" will
     produce header files named "foo.h++" and "bar.hh" respectively, where
     they would have previously produced header files named simply "foo.h"
-    and "bar.h".  This change offers better compatibility with `bison -o'.
+    and "bar.h".  This change offers better compatibility with 'bison -o'.
 
 * Miscellaneous changes:
 
-  - The `dist' and `dist-all' targets now can run compressors in parallel.
+  - Automake has a new option '--print-libdir' that prints the path of the
+    directory containing the Automake-provided scripts and data files.
+
+  - The 'dist' and 'dist-all' targets now can run compressors in parallel.
 
   - Automake can now generate silenced rules for texinfo outputs.
 
   - Some auxiliary files that are automatically distributed by Automake
-    (e.g., `install-sh', or the `depcomp' script for packages compiling
+    (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.
 
-  - Messages of types warning or error from `automake' and `aclocal'
+  - Messages of types warning or error from 'automake' and 'aclocal'
     are now prefixed with the respective type, and presence of -Werror
     is noted.
 
@@ -141,19 +160,25 @@ New in 1.11a:
     overwriting the foo_DEPENDENCIES variable, which is normally computed
     by automake.
 
-  - The warnings in the category `extra-portability' are now enabled by
-    `-Wall'.  In previous versions, one has to use `-Wextra-portability'
+  - 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.
+  - Various minor bugfixes for recent or long-standing bugs.
 
 * 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.
 
+  - The automake-provided parallel testsuite harness does not fail anymore
+    with BSD make used in parallel mode when there are test scripts in a
+    subdirectory, like in:
+
+      TESTS = sub/foo.test sub/bar.test
+
 * Long-standing bugs:
 
   - Automake's own build system finally have a real "installcheck" target.
@@ -162,26 +187,27 @@ Bugs fixed in 1.11a:
     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
+  - 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
+  - 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
+    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.
+    will cause the warnings in category 'portability' to be enabled, even
+    if those warnings are by default disabled in 'foreign' strictness.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-
-New in 1.11.2a:
+New in 1.11.3:
 
 * WARNING: Future backward-incompatibilities!
 
@@ -191,13 +217,6 @@ New in 1.11.2a:
   - 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:
 
   - Automake's own build system is more silent by default, making use of
@@ -227,7 +246,7 @@ New in 1.11.2a:
   - The last relics of Python 1.5 support have been removed from the
     AM_PATH_PYTHON macro.
 
-Bugs fixed in 1.11.2a:
+Bugs fixed in 1.11.3:
 
 * Long-standing bugs:
 
@@ -244,7 +263,8 @@ Bugs fixed in 1.11.2a:
 
   - Vala support now works better in VPATH setups.
 
-
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 New in 1.11.2:
 
 * Changes to aclocal:
@@ -375,7 +395,9 @@ Bugs fixed in 1.11.2:
     `install-info' program is from Debian or from GNU, and adaptively
     change its behaviour; this has proven to be frail and easy to
     regress.
-
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 Bugs fixed in 1.11.1:
 
   - Lots of minor bugfixes.
@@ -403,7 +425,9 @@ Bugs fixed in 1.11.1:
     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.
-
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 New in 1.11:
 
 * Version requirements:
@@ -640,7 +664,9 @@ Bugs fixed in 1.11:
 
   - Fix order of standard includes to again be `-I. -I$(srcdir)',
     followed by directories containing config headers.
-
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 New in 1.10:
 
 * Version requirements:
@@ -808,7 +834,9 @@ New in 1.10:
   - Automake installs a "Hello World!" example package in $(docdir).
     This example is used throughout the new "Autotools Introduction"
     chapter of the manual.
-
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 New in 1.9:
 
 * Makefile.in bloat reduction:
@@ -904,7 +932,9 @@ New in 1.9:
 
   - The manual tells more about SUBDIRS vs. DIST_SUBDIRS.
     It also gives an example of nested packages using AC_CONFIG_SUBDIRS.
-
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 Bugs fixed in 1.8.5:
 
 * Long-standing bugs:
@@ -917,7 +947,9 @@ Bugs fixed in 1.8.5:
   - Fix many rules to please FreeBSD make, which runs commands with `sh -e'.
 
   - Polish diagnostic when no input file is found.
-
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 Bugs fixed in 1.8.4:
 
 * Long-standing bugs:
@@ -944,7 +976,9 @@ Bugs fixed in 1.8.4:
     not defined in the same conditions as the _LDADD that uses it.
 
   - Do not warn when JAVAROOT is overridden, this is legitimate.
-
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 Bugs fixed in 1.8.3:
 
 * Long-standing bugs:
@@ -1012,7 +1046,9 @@ Bugs fixed in 1.8.3:
   - Third-Party Makefiles: how to interface third party Makefiles.
   - Upgrading: upgrading packages to newer Automake versions.
   - Multiple Outputs: handling tools that produce many outputs.
-
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 Bug fixed in 1.8.2:
 
 * A (well known) portability bug slipped in the changes made to
@@ -1021,7 +1057,9 @@ Bug fixed in 1.8.2:
 
 * Fix install rules for conditionally built python files.  (This never
   really worked.)
-
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 Bug fixed in 1.8.1:
 
 * Bugs introduced by 1.8:
@@ -1130,7 +1168,9 @@ Bug fixed in 1.8.1:
   - tests/aclocal6.test: fix failure if autom4te.cache is disabled.
   - tests/txinfo24.test, tests/txinfo25.test, tests/txinfo28.test:
     fix failures with old Texinfo versions.
-
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 New in 1.8:
 
 * Meta-News
@@ -1414,19 +1454,21 @@ New in 1.8:
   - CONFIGURE_DEPENDENCIES and CONFIG_STATUS_DEPENDENCIES are now
     documented.  (The is not a new feature, these variables have
     been there since at least Automake 1.4.)
-
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 Bugs fixed in 1.7.9:
 * Fix install-strip to work with nobase_ binaries.
 * Fix renaming of #line directives in ylwrap.
 * Rebuild with Autoconf 2.59.  (1.7.8 was not installable with pdksh.)
-
+
 Bugs fixed in 1.7.8:
 * Remove spurious blank lines in cleaning rules introduced in 1.7.7.
 * Fix detection of Debian's install-info, broken since version 1.5.
   (Debian bug #213524).
 * Honor -module if it appears in AM_LDFLAGS (i.e., relax name checking)
   This was only done for libfoo_LDFLAGS and LDFLAGS in previous versions.
-
+
 Bugs fixed in 1.7.7:
 * The implementation of automake's --no-force option is unreliable,
   so this option is ignored in this version.  A real fix will appear in
@@ -1443,7 +1485,7 @@ Bugs fixed in 1.7.7:
   - Extending aclocal: how to write m4 macros that won't trigger warnings
     with Automake 1.8.
   - A Shared Library: Rewrite and split into subsections.
-
+
 Bugs fixed in 1.7.6:
 * Fix depcomp's icc mode for ICC 7.1.
 * Diagnose calls to AC_CONFIG_FILES and friends with not enough arguments.
@@ -1452,7 +1494,7 @@ Bugs fixed in 1.7.6:
 * Fix the location reported in some diagnostics related to AUTOMAKE_OPTIONS.
 * Remove Latin-1 characters from elisp-comp.
 * Update the manual's @dircategory to match the Free Software Directory.
-
+
 Bugs fixed in 1.7.5:
 * Update install-sh's license to remove an advertising clause.
   (Debian bug #191717)
@@ -1460,7 +1502,7 @@ Bugs fixed in 1.7.5:
   that caused invalid Makefile.ins to be generated.
 * Make sure AM_MAKE_INCLUDE doesn't fail when a `doit' file exists.
 * New FAQ entry: renamed objects.
-
+
 Bugs fixed in 1.7.4:
 * Tweak the TAGS rule to support Exuberant Ctags (in addition to
   the Emacs implementation)
@@ -1476,7 +1518,7 @@ Bugs fixed in 1.7.4:
   Makefiles. (PR/389)
 * `make install' will build `BUILT_SOURCES' first.
 * Minor documentation fixes.
-
+
 Bugs fixed in 1.7.3:
 * Fix stamp files numbering (when using multiple AC_CONFIG_HEADERS).
 * Query distutils for `pythondir' and `pythonexecdir', instead of
@@ -1508,7 +1550,7 @@ Bugs fixed in 1.7.3:
   - Document how AC_CONFIG_AUX_DIR interacts with missing files.
     (Debian Bug #39542)
   - Document `AM_YFLAGS = -d'.  (PR/382)
-
+
 Bugs fixed in 1.7.2:
 * Fix installation and uninstallation of Info files built in subdirectories.
 * Do not run `./configure --with-included-gettext' during `make distcheck'
@@ -1518,7 +1560,7 @@ Bugs fixed in 1.7.2:
   and augmented in another condition.
 * Fix ansi2knr rules for LIBOBJS sources.
 * Clean all known Texinfo index files, not only those which appear to
-  be used, because we cannot know wich indexes are used in included files.
+  be used, because we cannot know which indexes are used in included files.
   (PR/375, Debian Bug #168671)
 * Honor only the first @setfilename seen in a Texinfo file.
 * Treat "required file X not found" diagnostics as errors (exit status 1).
@@ -1538,7 +1580,7 @@ Bugs fixed in 1.7.2:
 * Noteworthy manual updates:
   - Augment the section about BUILT_SOURCES.
   - Mention that AM_PROG_CC_STDC is a relic that is better avoided today.
-
+
 Bugs fixed in 1.7.1:
 * Honor `ansi2knr' for files built in subdirectories, or using per-targets
   flags.
@@ -1564,7 +1606,7 @@ Bugs fixed in 1.7.1:
 * Fix distribution of included Makefile fragment, so we don't create
   spurious directories in the distribution. (PR/366)
 * Don't complain that a target lacks `.$(EXEEXT)' when it has it.
-
+
 New in 1.7:
 * Autoconf 2.54 is required.
 * `aclocal' and `automake' will no longer warn about obsolete
@@ -1600,7 +1642,7 @@ New in 1.7:
   removes all installed files has been moved in a separate target,
   distuninstallcheck, so it can be overridden easily.
 * Many bug fixes.
-
+
 New in 1.6.3:
 * Support for AM_INIT_GETTEXT([external])
 * Bug fixes, including:
@@ -1608,7 +1650,7 @@ New in 1.6.3:
   - nobase_ programs and scripts honor --program-transform correctly.
   - Erase configure.lineno during `make distclean'.
   - Erase YACC and LEX outputs during `make maintainer-clean'.
-
+
 New in 1.6.2:
 * Many bug fixes, including:
   - Requiring the current version works.
@@ -1618,7 +1660,7 @@ New in 1.6.2:
   - Don't compute dependencies in background to avoid races with libtool.
   - Fix handling of _OBJECTS variables for targets sharing source variables.
   - Check dependency mode for Java when AM_PROG_GCJ is used.
-
+
 New in 1.6.1:
 * automake --output-dir is deprecated
 * Many bug fixes, including:
@@ -1627,7 +1669,7 @@ New in 1.6.1:
   - Allow configure variables with reserved suffix and unknown prefix
     (e.g. AC_SUBST(mumble_LDFLAGS) when 'mumble' is not a target).
   - Fix the definition of AUTOMAKE and ACLOCAL in configure.
-
+
 New in 1.6:
 * Autoconf 2.52 is required.
 * automake no longer run libtoolize.
@@ -1665,7 +1707,7 @@ New in 1.6:
   appended, and some of the install directory names have changed.
   This lets you have multiple versions installed simultaneously.
 * Support for parsers and lexers in subdirectories.
-
+
 New in 1.5:
 * Support for `configure.ac'.
 * Support for `else COND', `endif COND' and negated conditions `!COND'.
@@ -1683,7 +1725,7 @@ New in 1.5:
 * Compiled Java support
 * Support for per-executable and per-library compilation flags
 * Many bug fixes
-
+
 New in 1.4:
 * Added support for the Fortran 77 programming language.
 * Re-indexed the Automake Texinfo manual.
@@ -1695,7 +1737,7 @@ New in 1.4:
 * Dependency tracking no long susceptible to deleted header file problem
 * Maintainer mode now a conditional.  @MAINT@ is now an anachronism.
 * Bug fixes
-
+
 New in 1.3:
 * Bug fixes
 * Better Cygwin32 support
@@ -1711,7 +1753,7 @@ New in 1.3:
 * Preliminary support for Java
 * DESTDIR support at "make install" time
 * Improved ansi2knr support; you must use the latest ansi2knr.c (included)
-
+
 New in 1.2:
 * Bug fixes
 * Better DejaGnu support
@@ -1746,12 +1788,12 @@ New in 1.2:
 * Added `missing' support
 * Cygwin32 support
 * Conditionals in Makefile.am, from Ian Taylor
-
+
 New in 1.0:
 * Bug fixes
 * distcheck target runs install and installcheck targets
 * Added preliminary support for DejaGnu.
-
+
 New in 0.33:
 * More bug fixes
 * More checking
@@ -1760,7 +1802,7 @@ New in 0.33:
 * Added support for jm_MAINTAINER_MODE
 * dist-zip support
 * New "distcheck" target
-
+
 New in 0.32:
 * Many bug fixes
 * mkinstalldirs and mdate-sh now appear in directory specified by
@@ -1772,7 +1814,7 @@ New in 0.32:
 * Preliminary (unfinished) support for libtool
 * Added short option names.
 * Better "dist" support when gluing together multiple packages
-
+
 New in 0.31:
 * Bug fixes
 * Documentation updates (many from François Pinard)
@@ -1786,7 +1828,7 @@ New in 0.31:
 * Better error messages in many cases
 * Program names are canonicalized
 * Added "check" prefix; from Gord Matzigkeit
-
+
 New in 0.30:
 * Bug fixes
 * configure.in scanner knows about AC_PATH_XTRA, AC_OUTPUT ":" syntax
@@ -1802,7 +1844,7 @@ New in 0.30:
 * Required macros now distributed in aclocal.m4
 * New documentation
 * --strictness=gnu is default
-
+
 New in 0.29:
 * Many bug fixes
 * More sophisticated configure.in scanning; now understands ALLOCA and
@@ -1815,7 +1857,7 @@ New in 0.29:
   foo_SOURCES variable.
 * Automake automatically rebuilds files listed in AC_OUTPUT.  The
   corresponding ".in" files are included in the distribution.
-
+
 New in 0.28:
 * Added --gnu and --gnits options
 * More standards checking
@@ -1823,10 +1865,10 @@ New in 0.28:
 * Cleaned up 'dist' targets
 * Added AUTOMAKE_OPTIONS variable and several options
 * Now scans configure.in to get some information (preliminary)
-
+
 New in 0.27:
 * Works with Perl 4 again
-
+
 New in 0.26:
 * Added --install-missing option.
 * Pretty-prints generated macros and rules
@@ -1834,11 +1876,11 @@ New in 0.26:
 * Generates .PHONY target
 * Rule or macro in Makefile.am now overrides contents of Automake file
 * Substantial cleanups from François Pinard
-
+
 New in 0.25:
 * Bug fixes.
 * Works with Perl 4 again.
-
+
 New in 0.24:
 * New uniform naming scheme.
 * --strictness option
@@ -1846,23 +1888,23 @@ New in 0.24:
 * '.c' files corresponding to '.y' or '.l' files are automatically
   distributed.
 * Many bug fixes and cleanups
-
+
 New in 0.23:
 * Allow objects to be conditionally included in libraries via lib_LIBADD.
-
+
 New in 0.22:
 * Bug fixes in 'clean' code.
 * Now generates 'installdirs' target.
 * man page installation reworked.
 * 'make dist' no longer re-creates all Makefile.in's.
-
+
 New in 0.21:
 * Reimplemented in Perl
 * Added --amdir option (for debugging)
 * Texinfo support cleaned up.
 * Automatic de-ANSI-fication cleaned up.
 * Cleaned up 'clean' targets.
-
+
 New in 0.20:
 * Automatic dependency tracking
 * More documentation
diff --git a/THANKS b/THANKS
index 3d1f75a..36f8f4b 100644
--- a/THANKS
+++ b/THANKS
@@ -267,6 +267,7 @@ Olivier Louchart-Fletcher address@hidden
 Olly Betts             address@hidden
 Oren Ben-Kiki          address@hidden
 Owen Taylor            address@hidden
+Panther Martin         address@hidden
 Patrick Welche         address@hidden
 Patrik Weiskircher     address@hidden
 Paul Berrevoets                address@hidden
diff --git a/automake.in b/automake.in
index 35766e1..849abca 100644
--- a/automake.in
+++ b/automake.in
@@ -8181,7 +8181,8 @@ Flavors:
 
 Library files:
   -a, --add-missing      add missing standard files to package
-      --libdir=DIR       directory storing library files
+      --libdir=DIR       set directory storing library files
+      --print-libdir     print directory storing library files
   -c, --copy             with -a, copy missing files (default is symlink)
   -f, --force-missing    force update of standard files
 
@@ -8240,6 +8241,7 @@ sub parse_arguments ()
      'version' => \&version,
      'help'    => \&usage,
      'libdir=s'        => \$libdir,
+     'print-libdir'     => sub { print "$libdir\n"; exit 0; },
      'gnu'             => sub { $strict = 'gnu'; },
      'gnits'           => sub { $strict = 'gnits'; },
      'foreign'         => sub { $strict = 'foreign'; },
diff --git a/configure.ac b/configure.ac
index 62e44c1..f05f6cb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -342,11 +342,12 @@ AC_CONFIG_FILES([
 ])
 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}],
+AC_CONFIG_FILES([tests/wrap/aclocal-${APIVERSION}:tests/wrap/aclocal.in],
+                [chmod +x tests/wrap/aclocal-${APIVERSION}],
+               [APIVERSION=$APIVERSION])
+AC_CONFIG_FILES([tests/wrap/automake-${APIVERSION}:tests/wrap/automake.in],
+                [chmod +x tests/wrap/automake-${APIVERSION}],
                [APIVERSION=$APIVERSION])
-AC_CONFIG_FILES([tests/automake-${APIVERSION}:tests/automake.in],
-                [chmod +x tests/automake-${APIVERSION}])
 
 AC_OUTPUT
 
@@ -370,7 +371,7 @@ WARNING: You are about to use a $am_release_type of 
Automake-NG.
 WARNING: It might easily suffer from new bugs or regressions.
 WARNING: You are strongly advised not to use it in production code.
 
-Please report bugs, problems and feedback to <address@hidden>.
+Please report bugs, problems and feedback to <AC_PACKAGE_BUGREPORT>.
 EOF
 
 AS_EXIT([0])
diff --git a/contrib/multilib/config-ml.in b/contrib/multilib/config-ml.in
index a68a005..0734a95 100644
--- a/contrib/multilib/config-ml.in
+++ b/contrib/multilib/config-ml.in
@@ -50,7 +50,7 @@
 # To implement this, a symlink tree is built for each library and for each
 # multilib subdir.
 #
-# The build tree is layed out as
+# The build tree is laid out as
 #
 # ./
 #   newlib
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 24766db..86259db 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -26,7 +26,8 @@ dist_man1_MANS = \
   $(srcdir)/automake-$(APIVERSION).1
 MAINTAINERCLEANFILES = $(dist_man1_MANS)
 update_mans = \
-  $(AM_V_GEN)PATH="`pwd`/../tests$(PATH_SEPARATOR)$$PATH" && \
+  $(AM_V_GEN): && \
+  PATH="$(abs_top_builddir)/tests/wrap$(PATH_SEPARATOR)$$PATH" && \
   export PATH && \
   $(HELP2MAN) --output=$@
 $(dist_man1_MANS): $(top_srcdir)/configure.ac
@@ -70,7 +71,7 @@ dist_doc_DATA = $(srcdir)/amhello-1.0.tar.gz
 # configure in tests/.
 $(srcdir)/amhello-1.0.tar.gz: $(amhello_sources) $(top_srcdir)/configure.ac
        $(AM_V_GEN): && \
-       PATH="$(abs_top_builddir)/tests$(PATH_SEPARATOR)$$PATH" && \
+       PATH="$(abs_top_builddir)/tests/wrap$(PATH_SEPARATOR)$$PATH" && \
        export PATH && \
        $(am__cd) $(srcdir)/amhello && \
        ACLOCAL=aclocal-$(APIVERSION) && export ACLOCAL && \
diff --git a/doc/automake.texi b/doc/automake.texi
index ae06ab1..b664a88 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -2593,6 +2593,12 @@ for more information.
 Look for Automake data files in directory @var{dir} instead of in the
 installation directory.  This is typically used for debugging.
 
address@hidden --print-libdir
address@hidden --print-libdir
+Print the path of the installation directory containing Automake-provided
+scripts and data files (like e.g., @file{texinfo.texi} and
address@hidden).
+
 @item -c
 @opindex -c
 @itemx --copy
@@ -8916,15 +8922,18 @@ by the tests, not the tests themselves.  Of course you 
can set
 
 @node Serial Test Harness
 @subsection Serial Test Harness
address@hidden @option{serial-tests}, Using
 
 @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.
+obsolescent, and kept mostly for backward-compatibility reasons.  The user
+is advised to use the parallel test harness instead (@pxref{Parallel Test
+Harness}).  Be warned that future Automake versions might switch to use
+that more modern and feature-rich harness by default.
+
+The serial test harness is enabled by the Automake option
address@hidden It 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}
@@ -9547,19 +9556,18 @@ 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
address@hidden to search a perl interpreter and to define the
address@hidden(PERL)} variable accordingly, and use the Automake support
-for third-party test drivers to instruct the harness to use the
address@hidden to run your TAP-producing tests.  See the example
+Currently, the TAP driver that comes with Automake requires some by-hand
+steps on the developer's part (this situation should hopefully be improved
+in future Automake versions).  You'll have grab the @file{tap-driver.sh}
+script from the Automake distribution by hand, copy it in your source tree,
+add a call to @code{AC_PROG_AWK} in @file{configure.ac} to search for a
+proper awk program, and use the Automake support for third-party test
+drivers to instruct the harness to use the @file{tap-driver.sh} script
+and that awk program 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}
+(@pxref{Command-line arguments for test drivers}), the @file{tap-driver.sh}
 supports the following options, whose names are chosen for enhanced
 compatibility with the @command{prove} utility.
 
@@ -9609,14 +9617,13 @@ 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_REQUIRE_AUX_FILE([tap-driver.sh])
+AC_PROG_AWK
 AC_OUTPUT
 
 % @kbd{cat Makefile.am}
-TEST_LOG_DRIVER = $(PERL) $(srcdir)/build-aux/tap-driver.pl
+TEST_LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) \
+                  $(top_srcdir)/build-aux/tap-driver.sh
 TESTS = foo.test bar.test baz.test
 EXTRA_DIST = $(TESTS)
 
@@ -10123,6 +10130,13 @@ this directory.
 Enable test suite harness for @code{TESTS} that can run tests in parallel
 (@pxref{Parallel Test Harness}, for more information).
 
address@hidden @option{serial-tests}
address@hidden Option, @option{serial-tests}
address@hidden serial-tests
+Enable the older serial test suite harness for @code{TESTS} (@pxref{Serial
+Test Harness}, for more information).  This is still the default for the
+moment.
+
 @item @option{readme-alpha}
 @cindex Option, @option{readme-alpha}
 @opindex readme-alpha
diff --git a/lib/Automake/Options.pm b/lib/Automake/Options.pm
index 642f337..eee76db 100644
--- a/lib/Automake/Options.pm
+++ b/lib/Automake/Options.pm
@@ -276,6 +276,15 @@ sub _process_option_list (\%@)
           error ($where, "support for lzma-compressed distribution " .
                          "archives has been removed");
         }
+      elsif ($_ eq 'parallel-tests')
+        {
+          # Just recognize it explicitly.
+        }
+      elsif ($_ eq 'serial-tests')
+        {
+          # This is a little of an hack, but good enough for the moment.
+         delete $options->{'parallel-tests'};
+        }
       elsif ($_ eq 'no-installman' || $_ eq 'no-installinfo'
             || $_ eq 'dist-shar' || $_ eq 'dist-zip'
             || $_ eq 'dist-tarZ' || $_ eq 'dist-bzip2'
@@ -286,7 +295,7 @@ sub _process_option_list (\%@)
             || $_ eq 'subdir-objects' || $_ eq 'nostdinc'
             || $_ eq 'no-exeext' || $_ eq 'no-define'
             || $_ eq 'std-options'
-            || $_ eq 'color-tests' || $_ eq 'parallel-tests'
+            || $_ eq 'color-tests' 
             || $_ eq 'cygnus' || $_ eq 'no-dependencies')
        {
          # Explicitly recognize these.
diff --git a/lib/am/check2.am b/lib/am/check2.am
index a14e775..9847a44 100644
--- a/lib/am/check2.am
+++ b/lib/am/check2.am
@@ -14,11 +14,32 @@
 ## You should have received a copy of the GNU General Public License
 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+if %?FIRST%
+## When BSD make is run in parallel mode, it apparently strips any
+## leading directory component from the automatic variable '$*' (of
+## course, against what POSIX mandates).  Try to detect and work
+## around this incompatibility.
+am__set_b = \
+  case '$@' in \
+    */*) \
+      case '$*' in \
+        */*) b='$*';; \
+          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+       esac;; \
+    *) \
+      b='$*';; \
+  esac
+endif %?FIRST%
+
 ## From a test file to a .log and .trs file.
 ?GENERIC?%EXT%.log:
 ?!GENERIC?%OBJ%: %SOURCE%
-       @p='%SOURCE%'; $(am__check_pre) %DRIVER% --test-name "$$f" \
-       --log-file '%BASE%.log' --trs-file '%BASE%.trs' \
+       @p='%SOURCE%'; \
+## Another hack to support BSD make in parallel mode.
+?!GENERIC?     b='%BASE%'; \
+?GENERIC?      $(am__set_b); \
+       $(am__check_pre) %DRIVER% --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) %DRIVER_FLAGS% -- %COMPILE% \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
 
@@ -28,8 +49,12 @@
 ## conflict with the previous one.
 if %am__EXEEXT%
 ?GENERIC?%EXT%$(EXEEXT).log:
-       @p='%SOURCE%'; $(am__check_pre) %DRIVER% --test-name "$$f" \
-       --log-file '%BASE%.log' --trs-file '%BASE%.trs' \
+       @p='%SOURCE%'; \
+       ## Another hack to support BSD make in parallel mode.
+?!GENERIC?     b='%BASE%'; \
+?GENERIC?      $(am__set_b); \
+       $(am__check_pre) %DRIVER% --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) %DRIVER_FLAGS% -- %COMPILE% \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
 endif %am__EXEEXT%
diff --git a/lib/am/header-vars.am b/lib/am/header-vars.am
index ee4aa46..f6ae460 100644
--- a/lib/am/header-vars.am
+++ b/lib/am/header-vars.am
@@ -33,18 +33,26 @@ am__vpath_rewrite = \
 ## ("make -n") or not.  Useful in rules that invoke make recursively, and
 ## are thus executed also with "make -n" -- because, say, their recipes
 ## contain the "$(MAKE)" string or starts with the '+' modifier.
-## The case statement has [:] in order to not tickle makefile-deps.test
-## which greps for '^ *:'.
 am__make_dryrun = \
   { \
     am__dry=no; \
-    for am__flg in : $(MAKEFLAGS); do \
-      case $$am__flg in \
-        [:]) ;; \
-        *=*|--*) ;; \
-        *n*) am__dry=yes; break;; \
-      esac; \
-    done; \
+    case $$MAKEFLAGS in \
+## If we run "make TESTS='snooze nap'", GNU make will export MAKEFLAGS
+## to "TESTS=foo\ nap", so that the simpler loop below (on word-splitted
+## $$MAKEFLAGS) would see a "make flag" equal to "nap", and would wrongly
+## misinterpret that as and indication that make is running in dry mode.
+## This has already happened in practice.  So we need this hack.
+      *\\[\ \  ]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
     test $$am__dry = yes; \
   }
 
diff --git a/m4/amversion.m4 b/m4/amversion.m4
index c06ba4c..d9a07a7 100644
--- a/m4/amversion.m4
+++ b/m4/amversion.m4
@@ -14,10 +14,10 @@
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='2.0a'
+[am__api_version='0.5a'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [2.0a], [],
+m4_if([$1], [0.5a], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -33,7 +33,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([2.0a])dnl
+[AM_AUTOMAKE_VERSION([0.5a])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
diff --git a/syntax-checks.mk b/syntax-checks.mk
index 8c797ca..0b730d4 100644
--- a/syntax-checks.mk
+++ b/syntax-checks.mk
@@ -77,7 +77,6 @@ sc_tests_automake_fails \
 sc_tests_plain_aclocal \
 sc_tests_plain_perl \
 sc_tests_required_after_defs \
-sc_tests_tap_plan \
 sc_tests_plain_sleep \
 sc_tests_plain_egrep_fgrep \
 sc_tests_PATH_SEPARATOR \
@@ -533,33 +532,6 @@ sc_tests_required_after_defs:
          fi; \
        done
 
-## TAP-based test scripts should not forget to declare a TAP plan.  In
-## case it is not known in advance how many tests will be run, a "lazy"
-## plan can be used; but its use should be deliberate, explicitly declared
-## with a "plan_ later" call, rather than the result of an oversight.
-## This check helps to ensure this is indeed the case.
-sc_tests_tap_plan:
-       @with_plan=`grep -l '^ *plan_ ' $(srcdir)/tests/*.tap`; \
-        with_plan=`echo $$with_plan`; \
-        ok=:; \
-        for t in $(srcdir)/tests/*.tap; do \
-          case " $$with_plan " in *" $$t "*) continue;; esac; \
-          case $$t in \
-            *-w.tap) \
-              : it is ok for an *auto-generated* test sourcing an \
-              : hand-written one not to declare a TAP plan: that will \
-              : be done by the sourced test; \
-              t2=`echo $$t | sed -e 's|.*/||' -e 's/-w\.tap$$/.tap/'` \
-                && grep -E "^ *\\.  *[^        ]*/$$t2\\b" $$t >/dev/null \
-                && continue || : ;; \
-          esac; \
-          ok=false; echo $$t; \
-        done; \
-        $$ok || { \
-         echo 'The tests above do not declare a TAP plan.' 1>&2; \
-         exit 1; \
-        }
-
 ## Never use `sleep 1' to create files with different timestamps.
 ## Use `$sleep' instead.  Some filesystems (e.g., Windows') have only
 ## a 2sec resolution.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 5f72e25..da7a68d 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -28,7 +28,7 @@ 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
+EXTRA_DIST = ax/is ChangeLog-old
 
 TESTS = ## Will be updated later.
 
@@ -107,7 +107,7 @@ $(generated_TESTS) $(srcdir)/testsuite-part.am: \
   gen-testsuite-part list-of-tests.mk Makefile.am $(handwritten_TESTS)
 
 # Static dependencies valid for each test case.
-check_SCRIPTS = aclocal-$(APIVERSION) automake-$(APIVERSION)
+check_SCRIPTS = wrap/aclocal-$(APIVERSION) wrap/automake-$(APIVERSION)
 check_DATA = defs defs-static plain-functions.sh tap-functions.sh
 EXTRA_DIST += tap-functions.sh plain-functions.sh
 
diff --git a/tests/is b/tests/ax/is
similarity index 100%
rename from tests/is
rename to tests/ax/is
diff --git a/tests/conffile-leading-dot.test b/tests/conffile-leading-dot.test
index d382d7a..d9d299f 100755
--- a/tests/conffile-leading-dot.test
+++ b/tests/conffile-leading-dot.test
@@ -28,9 +28,7 @@ AC_CONFIG_FILES([./foo:a.in:b.in:c.in])
 AC_OUTPUT
 END
 
-echo foo = barbarbar > Makefile.am
-
-touch a.in b.in c.in
+touch a.in b.in c.in Makefile.am
 
 $ACLOCAL
 
@@ -43,16 +41,19 @@ grep "^configure\.in:4:.* omit leading '\\./'" stderr
 grep "^configure\.in:4:.*remake rules might be subtly broken" stderr
 
 # Check that our warning was actually justified.
+sed 's/^AM_INIT_AUTOMAKE/&([-Wall -Wno-unsupported])/' <configure.in >t
+mv -f t configure.in
+rm -rf autom4te*.cache
+$ACLOCAL
 $AUTOCONF
 $AUTOMAKE -Wall -Wno-unsupported
 ./configure
 $MAKE
-grep barbarbar Makefile
-# No need to sleep here, configure did that for us already.
-echo foo = bazbazbaz > Makefile.am
+$sleep
+touch Makefile.am
 # Check that remake rules do truly break -- otherwise automake is
 # giving a bogus warning.
-$MAKE 2>stderr && { cat stderr >&2 Exit 1; }
+$MAKE 2>stderr && { cat stderr >&2; Exit 1; }
 cat stderr >&2
 grep "config\\.status:.*invalid argument.*Makefile" stderr
 
diff --git a/tests/defs b/tests/defs
index 1b23006..f289e08 100644
--- a/tests/defs
+++ b/tests/defs
@@ -927,7 +927,7 @@ if test "$sh_errexit_works" = yes; then
     set +e
     cd "$testbuilddir"
     if test $am_using_tap = yes; then
-      if test $have_tap_plan_ != yes && test $exit_status -eq 0; then
+      if test "$planned_" = later && test $exit_status -eq 0; then
         plan_ "now"
       fi
       test $exit_status -eq 0 && test $tap_pass_count_ -eq $tap_count_ \
diff --git a/tests/defs-static.in b/tests/defs-static.in
index b2e884b..6a815c0 100644
--- a/tests/defs-static.in
+++ b/tests/defs-static.in
@@ -115,7 +115,7 @@ case ${am_running_installcheck:=no} in
   no)
     am_amdir=$top_testsrcdir/lib/am
     am_automake_acdir=$top_testsrcdir/m4
-    am_bindir=$testbuilddir
+    am_bindir=$testbuilddir/wrap
     am_datadir=$top_testsrcdir
     am_docdir=$top_testsrcdir/doc
     am_pkgvdatadir=$top_testsrcdir/lib
@@ -238,4 +238,8 @@ case $PATH in
   $am_bindir$PATH_SEPARATOR*) ;;
   *) PATH=$am_bindir$PATH_SEPARATOR$PATH;;
 esac
+
+# Make our helper script accessible by default.
+PATH=$testsrcdir/ax$PATH_SEPARATOR$PATH
+
 export PATH
diff --git a/tests/get-sysconf.test b/tests/get-sysconf.test
index 27d2b16..f37e1d2 100755
--- a/tests/get-sysconf.test
+++ b/tests/get-sysconf.test
@@ -42,8 +42,8 @@ $PERL -V || st=1
 $PERL -e 'use TAP::Parser; print $TAP::Parser::VERSION, "\n"' || :
 
 cat "$top_testbuilddir/config.log" || st=1
-cat "$testbuilddir/aclocal-$APIVERSION" || st=1
-cat "$testbuilddir/automake-$APIVERSION" || st=1
+cat "$testbuilddir/wrap/aclocal-$APIVERSION" || st=1
+cat "$testbuilddir/wrap/automake-$APIVERSION" || st=1
 
 if test $st -eq 0; then
   # This test SKIPs, so that all the information it has gathered and
diff --git a/tests/lex-lib-external.test b/tests/lex-lib-external.test
index d50ae39..47bee77 100755
--- a/tests/lex-lib-external.test
+++ b/tests/lex-lib-external.test
@@ -71,6 +71,6 @@ if cross_compiling; then :; else
   echo BAD | ./lexer && Exit 1
   : For shells with busted 'set -e'.
 fi
-$MAKE distcheck
+yl_distcheck
 
 :
diff --git a/tests/lex-libobj.test b/tests/lex-libobj.test
index 3bd4f8a..3837a0b 100755
--- a/tests/lex-libobj.test
+++ b/tests/lex-libobj.test
@@ -70,6 +70,6 @@ grep LIBOBJS Makefile # For debugging.
 grep '^LIBOBJS *=.*yywrap.*\.o' Makefile # Sanity check.
 $MAKE
 
-$MAKE distcheck
+yl_distcheck
 
 :
diff --git a/tests/lex-noyywrap.test b/tests/lex-noyywrap.test
index 5b002c8..a0eb731 100755
--- a/tests/lex-noyywrap.test
+++ b/tests/lex-noyywrap.test
@@ -67,6 +67,6 @@ if cross_compiling; then :; else
 fi
 
 # Sanity check on distribution.
-$MAKE distcheck DISTCHECK_CONFIGURE_FLAGS='LEXLIB="none needed"'
+yl_distcheck DISTCHECK_CONFIGURE_FLAGS='LEXLIB="none needed"'
 
 :
diff --git a/tests/lisp3.test b/tests/lisp3.test
index da00874..d80d6be 100755
--- a/tests/lisp3.test
+++ b/tests/lisp3.test
@@ -12,7 +12,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with GNU Automake; see the file COPYING.  If not, write to
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Test that compiling interdependent elisp files works.
 
diff --git a/tests/lisp4.test b/tests/lisp4.test
index 4fb1958..8f9310f 100755
--- a/tests/lisp4.test
+++ b/tests/lisp4.test
@@ -12,7 +12,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with GNU Automake; see the file COPYING.  If not, write to
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Make sure setting ELCFILES= disable byte-compilation as documented.
 # Report from Simon Josefsson.
diff --git a/tests/lisp5.test b/tests/lisp5.test
index 88629d1..572392e 100755
--- a/tests/lisp5.test
+++ b/tests/lisp5.test
@@ -12,7 +12,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with GNU Automake; see the file COPYING.  If not, write to
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Same as lisp4.test, but using the now-recommended way to install
 # non-bytecompiled *.el files.
diff --git a/tests/lisp6.test b/tests/lisp6.test
index b35143e..e2e839b 100755
--- a/tests/lisp6.test
+++ b/tests/lisp6.test
@@ -12,7 +12,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with GNU Automake; see the file COPYING.  If not, write to
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Test for conditional _LISP.
 
diff --git a/tests/lisp7.test b/tests/lisp7.test
index 81fa24d..c55f86c 100755
--- a/tests/lisp7.test
+++ b/tests/lisp7.test
@@ -12,7 +12,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with GNU Automake; see the file COPYING.  If not, write to
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Make sure that lisp_LISP also works when emacs is not installed.
 
diff --git a/tests/lisp8.test b/tests/lisp8.test
index 18c12ef..007bac0 100755
--- a/tests/lisp8.test
+++ b/tests/lisp8.test
@@ -12,7 +12,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with GNU Automake; see the file COPYING.  If not, write to
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Check the recover rule of lisp_LISP with parallel make.
 
diff --git a/tests/lispdry.test b/tests/lispdry.test
index 21b940c..03031e9 100755
--- a/tests/lispdry.test
+++ b/tests/lispdry.test
@@ -12,7 +12,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with GNU Automake; see the file COPYING.  If not, write to
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Check that `make -n' works with the lisp_LISP recover rule.
 
diff --git a/tests/list-of-tests.mk b/tests/list-of-tests.mk
index 48eaa45..d296671 100644
--- a/tests/list-of-tests.mk
+++ b/tests/list-of-tests.mk
@@ -609,7 +609,7 @@ makej.test \
 makej2.test \
 maken.test \
 maken3.test \
-make-dryrun.test \
+make-dryrun.tap \
 makevars.test \
 man.test \
 man2.test \
@@ -688,6 +688,7 @@ pattern-rules2.test \
 parallel-am.test \
 parallel-am2.test \
 parallel-am3.test \
+serial-tests.test \
 parallel-tests.test \
 parallel-tests2.test \
 parallel-tests3.test \
@@ -808,6 +809,7 @@ primary-prefix-invalid-couples.tap \
 primary-prefix-valid-couples.test \
 primary-prefix-couples-force-valid.test \
 primary-prefix-couples-documented-valid.test \
+print-libdir.test \
 proginst.test \
 programs-primary-rewritten.test \
 py-compile-basic.test \
diff --git a/tests/make-dryrun.tap b/tests/make-dryrun.tap
new file mode 100755
index 0000000..e54ae01
--- /dev/null
+++ b/tests/make-dryrun.tap
@@ -0,0 +1,125 @@
+#! /bin/sh
+# Copyright (C) 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/>.
+
+# Check that $(am__make_dryrun) works as expected.
+
+am_parallel_tests=yes # Avoid generation of a useless wrapper test.
+. ./defs || Exit 1
+
+plan_ 14
+
+if echo "all: ; @+printf %sbb%s aa cc" | $MAKE -n -f - | grep aabbcc; then
+  make_plus_silence () { return 0; }
+else
+  make_plus_silence () { return 1; }
+fi
+
+mkdir sub
+
+echo AC_OUTPUT >> configure.in
+
+cat > Makefile.am <<'END'
+all:
+       : Dummy, nothing to do.
+foo:
+       $(MAKE) all
+notdry:
+       @echo ":: $$MAKEFLAGS ::"; : For debugging.
+       $(am__make_dryrun) && exit 1; exit 0
+dry:
+       address@hidden ":: $$MAKEFLAGS ::"; : For debugging.
+       +$(am__make_dryrun) || exit 1; echo ok > from-dry-mode
+END
+
+$ACLOCAL    || fatal_ "aclocal failed"
+$AUTOCONF   || fatal_ "autoconf failed"
+$AUTOMAKE   || fatal_ "automake failed"
+./configure || fatal_ "configure failed"
+
+# ----------------------------------------------------------------------
+
+check_no_dryrun ()
+{
+  command_ok_ "dry-run ($cnt)" $MAKE notdry ${1+"$@"}
+  cnt=`expr $cnt + 1`
+}
+cnt=1
+
+check_no_dryrun
+
+# Test against a known regression.  This was especially heinous, since
+# make running in normal mode was sometimes mistaken for make running
+# in dry mode.
+check_no_dryrun TESTS="n1.test n2.test"
+check_no_dryrun TESTS="n1 n2" AM_MAKEFLAGS="TESTS='n1 n2'"
+check_no_dryrun TESTS="n1 n2" AM_MAKEFLAGS='TESTS="n1 n2"'
+check_no_dryrun FOOFLAGS="-n -n -knf2 n --none -n"
+check_no_dryrun MYFLAGS="-n --dryrun -n --dry-run -n"
+
+# ----------------------------------------------------------------------
+
+check_dryrun ()
+{
+  r=ok directive=
+  case $1 in
+    -C) condition=$2 reason=$3; shift; shift; shift;;
+     *) condition=: reason=;;
+  esac
+  if $condition; then
+    $MAKE dry ${1+"$@"}   || r='not ok'
+    test -f from-dry-mode || r='not ok'
+    rm -f from-dry-mode   || fatal_ "cleaning up"
+  else
+    directive=SKIP
+  fi
+  result_ "$r" -D "$directive" -r "$reason" "not dry-run ($cnt)"
+  unset r directive reason
+  cnt=`expr $cnt + 1`
+}
+cnt=1
+
+check_dryrun -C make_plus_silence 'recipe prefix "+" unsupported' -n
+check_dryrun -C using_gmake "\$MAKE is not GNU make" --dry-run -k
+
+# ----------------------------------------------------------------------
+
+# Test for when shell metacharacters or backslashes are in $(MAKEFLAGS).
+
+check_metachars ()
+{
+  r=ok
+  $MAKE notdry ${1+"$@"} || r='not ok'
+  if test -f bad; then
+    r='not ok'
+  else
+    rm -f bad || fatal_ "cleaning up"
+  fi
+  result_ "$r" "dry-run, with shell metachars ($cnt)"
+  unset r
+  cnt=`expr $cnt + 1`
+}
+cnt=1
+
+check_metachars MYFLAGS="-n \"n\" '-n' --none -n"
+check_metachars MYFLAGS='-knf2\ n\ \\n'
+check_metachars MYFLAGS="(&) | ; \" \` '"
+check_metachars MYFLAGS=" ' # ' "
+check_metachars MYFLAGS='$(foo)'
+check_metachars MYFLAGS='`touch bad`'
+
+# ----------------------------------------------------------------------
+
+:
diff --git a/tests/make-dryrun.test b/tests/make-dryrun.test
deleted file mode 100755
index ade314f..0000000
--- a/tests/make-dryrun.test
+++ /dev/null
@@ -1,61 +0,0 @@
-#! /bin/sh
-# Copyright (C) 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/>.
-
-# Check that $(am__make_dryrun) works as expected.
-
-. ./defs || Exit 1
-
-mkdir sub
-
-echo AC_OUTPUT >> configure.in
-
-cat > Makefile.am <<'END'
-all:
-       : Dummy, nothing to do.
-foo:
-       $(MAKE) all
-notdry:
-       @echo ":: $$MAKEFLAGS ::"; : For debugging.
-       $(am__make_dryrun) && exit 1; exit 0
-dry:
-       address@hidden ":: $$MAKEFLAGS ::"; : For debugging.
-       +$(am__make_dryrun) || exit 1; echo ok > from-dry-mode
-END
-
-$ACLOCAL
-$AUTOCONF
-$AUTOMAKE
-./configure
-
-$MAKE notdry
-
-# Test against a known regressions.  This was especially
-# heinous, since make running in normal mode was sometimes
-# mistaken for make running in dry mode.
-$MAKE notdry TESTS="n1.test n2.test"
-$MAKE notdry TESTS="n1 n2"
-$MAKE notdry TESTS="n1 n2"
-$MAKE notdry FOOFLAGS="-n -n -knf2 \\n --none -n"
-$MAKE notdry BARFLAGS="-n \"n\" '-n' --none -n"
-
-$MAKE -n dry
-test -f from-dry-mode
-rm -f from-dry-mode
-
-$MAKE --dry-run -k dry
-test -f from-dry-mode
-
-:
diff --git a/tests/man6.test b/tests/man6.test
index aa49049..daf0842 100755
--- a/tests/man6.test
+++ b/tests/man6.test
@@ -20,6 +20,10 @@
 required=help2man
 . ./defs || Exit 1
 
+# Avoid a spurious failure due to a known FreeBSD make incompatibility.
+useless_vpath_rebuild \
+  && skip_ "VPATH useless rebuild detected (see bug#7884)"
+
 cat > Makefile.am << 'END'
 dist_man_MANS = $(srcdir)/foobar.1 bazquux.1 zardoz.1
 dist_bin_SCRIPTS = foobar bazquux zardoz
diff --git a/tests/man8.test b/tests/man8.test
index e03341b..bdc0feb 100755
--- a/tests/man8.test
+++ b/tests/man8.test
@@ -18,6 +18,10 @@
 
 . ./defs || Exit 1
 
+# Avoid a spurious failure due to a known FreeBSD make incompatibility.
+useless_vpath_rebuild \
+  && skip_ "VPATH useless rebuild detected (see bug#7884)"
+
 cat > Makefile.am << 'END'
 dist_man_MANS = foo.1
 foo.1:
diff --git a/tests/parallel-tests-empty-testlogs.test 
b/tests/parallel-tests-empty-testlogs.test
index 9e27041..4e22e21 100755
--- a/tests/parallel-tests-empty-testlogs.test
+++ b/tests/parallel-tests-empty-testlogs.test
@@ -34,9 +34,18 @@ mkdir sub1 sub2
 
 cat > sub1/Makefile.am << 'END'
 TESTS =
-check-local:
+END
+
+# When $(TESTS) is empty, NetBSD 5.1 make ends up defining $(TESTS_LOGS)
+# to ".log" rather than to the empty string (as would be expected).
+# But our recipes are smart enough to work around such a botched-up
+# substitution, so let's not bother too much about it.
+if using_gmake; then
+  unindent >> sub1/Makefile.am << 'END'
+    check-local:
        echo $(TEST_LOGS) | grep . && exit 1; exit 0
 END
+fi
 
 cat > sub2/Makefile.am << 'END'
 TESTS = foo.test
diff --git a/tests/parallel-tests-extra-programs.test 
b/tests/parallel-tests-extra-programs.test
index 27942d8..15857f8 100755
--- a/tests/parallel-tests-extra-programs.test
+++ b/tests/parallel-tests-extra-programs.test
@@ -121,7 +121,13 @@ $MAKE -k check >stdout 2>stderr || st=$?
 cat stdout
 cat stderr >&2
 ls -l
-test $st -gt 0 || Exit 1
+if using_gmake; then
+  test $st -gt 0 || Exit 1
+else
+  # Don't trust exit status of "make -k" for non-GNU make.
+  $MAKE check && Exit 1
+  : For shells with busted 'set -e'.
+fi
 
 # Files that should have been created, with the expected content.
 cat bar.c
@@ -137,8 +143,10 @@ grep '^PASS: baz\.test$' stdout
 # $(EXEEXT).
 grep '^PASS: foo\.bin' stdout
 grep '^PASS: bar\.bin' stdout
-# Expected error messages from make.
-$EGREP 'none\.(bin|o|c)' stderr
+# Expected error messages from make.  Some make implementations (e.g.,
+# FreeBSD make) seem to print the error on stdout instead, so check for
+# it there as well.
+$EGREP 'none\.(bin|o|c)' stderr stdout
 
 # What we check now:
 #  1. if we make the last EXTRA_PROGRAM buildable, the failed tests
diff --git a/tests/parallel-tests-subdir.test b/tests/parallel-tests-subdir.test
index 81de2f0..7e7e031 100755
--- a/tests/parallel-tests-subdir.test
+++ b/tests/parallel-tests-subdir.test
@@ -44,6 +44,8 @@ $MAKE check
 find . # For debugging.
 test -f test-suite.log
 test -f dir1/foo.log
+test -f dir1/foo.trs
 test -f dir2/dir3/foo.log
+test -f dir2/dir3/foo.trs
 
 :
diff --git a/tests/parallel-tests3.test b/tests/parallel-tests3.test
index 443310a..b37cf0a 100755
--- a/tests/parallel-tests3.test
+++ b/tests/parallel-tests3.test
@@ -24,6 +24,27 @@ case $MAKE in
   *\ -j*) skip_ "\$MAKE contains \`-j'";;
 esac
 
+if using_gmake; then
+  j=-j
+else
+  unindent > Makefile <<END
+    all: one two
+    one:
+       $sleep && test -f two
+    two:
+       echo ok > \$@
+END
+  for j in "-j" "-j " NONE; do
+    if test x"$j" = xNONE; then
+      skip_ "can't run make in parallel mode"
+    fi
+    $MAKE ${j}2 all >output 2>&1 || continue
+    $EGREP -i "(warning|error):|-j[\"\'\` ]" output && continue
+    break
+  done
+  rm -f one output Makefile
+fi
+
 cat >> configure.in << 'END'
 AC_OUTPUT
 END
@@ -32,16 +53,25 @@ cat > Makefile.am << 'END'
 TESTS =
 END
 
-for i in 1 2 3 4 5 6 7 8; do
-  echo "TESTS += foo$i.test" >> Makefile.am
-  unindent >foo$i.test <<'END'
-    #! /bin/sh
-    echo "this is $0"
-    # Creative quoting below to please maintainer-check.
-    sleep '1'
-    exit 0
+cat > x <<'END'
+#! /bin/sh
+echo "this is $0"
+# Creative quoting below to please maintainer-check.
+sleep '1'
+exit 0
 END
-  chmod a+x foo$i.test
+chmod a+x ./x
+
+mkdir sub
+for i in 1 2 3; do
+  echo "TESTS += foo$i.test" >> Makefile.am
+  cp x foo$i.test
+  echo "TESTS += zap$i" >> Makefile.am
+  cp x zap$i
+  echo "TESTS += sub/bar$i.test" >> Makefile.am
+  cp x sub/bar$i.test
+  echo "TESTS += sub/mu$i" >> Makefile.am
+  cp x sub/mu$i
 done
 
 $ACLOCAL
@@ -57,20 +87,20 @@ for build in serial parallel; do
 done
 
 cd serial
-$MAKE -j1 check &
+$MAKE ${j}1 check &
 cd ../parallel
 $sleep
 # Use append mode here to avoid dropping output.
 # Yes, this actually happens.
 : >stdout
-$MAKE -j4 check >> stdout
+$MAKE ${j}4 check >> stdout
 cd ..
 # Ensure the tests are really being run in parallel mode: if this is
 # the case, the serial run of the dummy testsuite started above should
 # still be ongoing when the parallel one has terminated.
 kill -0 $!
 cat parallel/stdout
-test `grep -c '^PASS:' parallel/stdout` -eq 8
+test `grep -c '^PASS:' parallel/stdout` -eq 12
 
 # Wait long enough so that there are no open files any more when the
 # post-test cleanup runs.  But exit after we've waited for two minutes
diff --git a/tests/symlink.test b/tests/print-libdir.test
similarity index 59%
copy from tests/symlink.test
copy to tests/print-libdir.test
index 1936d07..f5764b3 100755
--- a/tests/symlink.test
+++ b/tests/print-libdir.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 1996-2012 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
@@ -14,27 +14,33 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Make sure we get an error if symlink creation fails.
-# Reported by Joerg-Martin Schwarz.
+# Test on automake options '--print-data-dir' and '--print-script-dir'.
 
 am_create_testdir=empty
 . ./defs || Exit 1
 
+libdir=`$AUTOMAKE --print-libdir` || Exit 1
+case $libdir in /*);; *) Exit 1;; esac
+test -d "$libdir"
+test "$libdir" = "$am_pkgvdatadir"
+test "$libdir" = "$am_scriptdir"
+
 : > Makefile.am
 
-cat > configure.in << 'END'
-AC_INIT([symlink], [1.0])
-AC_CONFIG_AUX_DIR([subdir])
+cat > configure.ac <<END
+AC_INIT([$me], [1.0])
+AC_CONFIG_AUX_DIR([.])
 AM_INIT_AUTOMAKE
 AC_CONFIG_FILES([Makefile])
 END
 
-$ACLOCAL
-AUTOMAKE_fails --add-missing
+touch ChangeLog README NEWS AUTHORS COPYING
 
-grep '^configure\.in:3: .*missing.*error while making link' stderr
-grep '^configure\.in:3: .*install-sh.*error while making link' stderr
+$ACLOCAL
+$AUTOMAKE --gnu --add-missing
+ls -l
 
-test `$FGREP -c 'error while making link' stderr` -eq 2
+diff missing "$libdir"/missing
+diff INSTALL "$libdir"/INSTALL
 
 :
diff --git a/tests/self-check-dir.tap b/tests/self-check-dir.tap
index 39bf38c..a934188 100755
--- a/tests/self-check-dir.tap
+++ b/tests/self-check-dir.tap
@@ -38,7 +38,8 @@ do_check ()
   command_ok_ "$1 [$2]" $SHELL -c "
     $2
     . ./defs || Exit 99
-    pwd; ls -l; # For debugging.
+    # Don't fail if 'ls -l' fails; avoids possible racy spurious failures.
+    pwd; ls -l || : # For debugging.
     $3
   " _self.test
 }
@@ -66,7 +67,7 @@ do_check 'do not create nor chdir in testdir' \
          'test ! -d _self.dir || Exit 1
           test ! -f _self.dir || Exit 1
           test ! -r _self.dir || Exit 1
-          test -f self-check-dir.tap || Exit 1
+          grep "self-check-dir\.tap" Makefile || Exit 1
           case `pwd` in '"$cwd"') : ;; *) Exit 1;; esac'
 
 :
diff --git a/tests/serial-tests.test b/tests/serial-tests.test
new file mode 100755
index 0000000..680513f
--- /dev/null
+++ b/tests/serial-tests.test
@@ -0,0 +1,86 @@
+#! /bin/sh
+# Copyright (C) 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/>.
+
+# Option 'serial-tests'.
+
+# To avoid useless generation of a sibling test.
+am_parallel_tests=yes
+am_create_testdir=empty
+. ./defs || Exit 1
+
+hasnt_parallel_tests ()
+{
+  $EGREP 'TEST_SUITE_LOG|TEST_LOGS|\.log.*:' $1 && Exit 1
+  grep 'recheck.*:' $1 && Exit 1
+  grep '^check-TESTS: \$(TESTS)$' $1
+}
+
+has_parallel_tests ()
+{
+  $EGREP '(^| )check-TESTS.*:' $1
+  $EGREP '(^| )recheck.*:' $1
+  grep '^\$(TEST_SUITE_LOG): \$(TEST_LOGS)$' $1
+  grep '^\.test\.log:$' $1
+}
+
+mkdir one two
+
+cat >> one/configure.ac <<END
+AC_INIT([$me], [1.0])
+AM_INIT_AUTOMAKE([serial-tests])
+AC_CONFIG_FILES([Makefile])
+END
+
+echo 'TESTS = foo.test bar.test' > one/Makefile.am
+
+cat >> two/configure.ac <<END
+AC_INIT([$me], [2.0])
+AC_CONFIG_AUX_DIR([config])
+AM_INIT_AUTOMAKE([parallel-tests])
+AC_CONFIG_FILES([aMakefile bMakefile])
+END
+
+cp one/Makefile.am two/aMakefile.am
+cat - one/Makefile.am > two/bMakefile.am <<END
+AUTOMAKE_OPTIONS = serial-tests
+END
+
+cd one
+touch missing install-sh
+$ACLOCAL
+$AUTOMAKE
+grep TEST Makefile.in # For debugging.
+hasnt_parallel_tests Makefile.in
+test ! -r test-driver
+cd ..
+
+cd two
+mkdir config
+$ACLOCAL
+$AUTOMAKE --add-missing
+grep TEST [ab]Makefile.in # For debugging.
+has_parallel_tests aMakefile.in
+hasnt_parallel_tests bMakefile.in
+mv aMakefile.in aMakefile.sav
+mv bMakefile.in bMakefile.sav
+test ! -r test-driver
+test -f config/test-driver
+$AUTOMAKE
+diff aMakefile.sav aMakefile.in
+diff bMakefile.sav bMakefile.in
+cd ..
+
+:
diff --git a/tests/suffix10.tap b/tests/suffix10.tap
index 2fef1c1..cde8f77 100755
--- a/tests/suffix10.tap
+++ b/tests/suffix10.tap
@@ -42,7 +42,7 @@ libfoo_la_SOURCES = foo.x_
          && echo 'void yyerror (char *s) {}' \
          && echo '%}' \
          && echo '%%' \
-         && echo 'foobar : 'f' 'o' 'o' 'b' 'a' 'r' {};' \
+         && echo "foobar : 'f' 'o' 'o' 'b' 'a' 'r' {};" \
          && echo '%%' \
          && cat $<; \
        } > address@hidden
diff --git a/tests/tap-doc2.test b/tests/tap-doc2.test
index c23f3f3..477aa50 100755
--- a/tests/tap-doc2.test
+++ b/tests/tap-doc2.test
@@ -23,7 +23,8 @@ am_parallel_tests=yes
 . ./defs || Exit 1
 
 cat > Makefile.am <<'END'
-TEST_LOG_DRIVER = $(PERL) $(srcdir)/build-aux/tap-driver.pl
+TEST_LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) \
+                  $(top_srcdir)/build-aux/tap-driver.sh
 TESTS = foo.test bar.test baz.test
 EXTRA_DIST = $(TESTS)
 END
@@ -33,10 +34,8 @@ AC_INIT([GNU Try Tap], [1.0], address@hidden)
 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_REQUIRE_AUX_FILE([tap-driver.sh])
+AC_PROG_AWK
 AC_OUTPUT
 END
 
@@ -72,7 +71,7 @@ chmod a+x *.test
 # Strip extra "informative" lines that could be printed by Solaris
 # Distributed Make.
 mkdir build-aux
-cp "$am_scriptdir"/tap-driver.pl build-aux \
+cp "$am_scriptdir"/tap-driver.sh build-aux \
   || framework_failure_ "fetching the perl TAP driver"
 
 (export AUTOMAKE ACLOCAL AUTOCONF && $AUTORECONF -vi) || Exit 1
diff --git a/tests/tap-functions.sh b/tests/tap-functions.sh
index 50abc70..700904b 100644
--- a/tests/tap-functions.sh
+++ b/tests/tap-functions.sh
@@ -64,19 +64,22 @@ plan_ ()
     bailout_ "plan_: missing argument"
   elif test $# -ge 2; then
     bailout_ "plan_: too many arguments"
+  elif test x"$planned_" != x"none" && test x"$planned_" != x"later"; then
+    bailout_ "plan_: called to many times"
   elif test x"$1" = x"unknown" || test x"$1" = x"later"; then
-    : No-op.
+    # This means we want to get back later to declaring the TAP plan.
+    planned_=later
+    return 0
   elif test x"$1" = x"lazy" || test x"$1" = x"now"; then
-    echo "1..$tap_count_" # Number of test results seen so far.
-    have_tap_plan_=yes
+    planned_=$tap_count_ # Number of test results seen so far.
   elif test $1 -ge 0; then
-    echo "1..$1"
-    have_tap_plan_=yes
+    planned_=$1
   else
     bailout_ "plan_: invalid argument '$1'"
   fi
+  echo "1..$planned_"
 }
-have_tap_plan_=no # Avoid interferences from the environment.
+planned_=none
 
 # diag_ [EXPLANATION]
 # ------------------
@@ -176,7 +179,7 @@ skip_row_ ()
 skip_all_ ()
 {
   echo "1..0 # SKIP" ${1+"$@"}
-  have_tap_plan_=yes
+  planned_=0
   Exit 0
 }
 
diff --git a/tests/aclocal.in b/tests/wrap/aclocal.in
similarity index 100%
rename from tests/aclocal.in
rename to tests/wrap/aclocal.in
diff --git a/tests/automake.in b/tests/wrap/automake.in
similarity index 100%
rename from tests/automake.in
rename to tests/wrap/automake.in


hooks/post-receive
-- 
GNU Automake



reply via email to

[Prev in Thread] Current Thread [Next in Thread]