automake-commit
[Top][All Lists]
Advanced

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

[Automake-commit] [SCM] GNU Automake branch, tests-init, updated. v1.11-


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, tests-init, updated. v1.11-410-gb191caa
Date: Sat, 06 Nov 2010 20:56:45 +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=b191caac0e3ddb749d552565e4804d93a36b470e

The branch, tests-init has been updated
       via  b191caac0e3ddb749d552565e4804d93a36b470e (commit)
       via  4555c818e5ae6a90a8116e9c5b5b1ff6a65929c0 (commit)
       via  f7adc0f46ecd072da071e5d6f166988e4288285e (commit)
       via  d3369343ca79dd1fd112c35eaa20f65bf43cdc02 (commit)
       via  6afea5000636292d3aa7e8933aa61a0d851fa5ad (commit)
       via  0c615cdc89beb544dedc7ee665e9e68e86f3468c (commit)
       via  bbfe77bf4eb6bfbc30f5a02b10f9c5494471803f (commit)
       via  c371d52f338cd511361e27347af7ff7678ecabc8 (commit)
       via  d7c1679b14c1ab691927f3243df1cb3cbb2360aa (commit)
       via  e1181261dfd80b3046f1219e8fcfbb99707288f5 (commit)
       via  d3134dcba601c678a932066a99d1c91a56fc190d (commit)
       via  a7ba28fd1f3c094aa878b779b883ea185dcaa10e (commit)
       via  86739cb38ddc8f0c30f51bd24ebf2c45c0584dff (commit)
       via  450bd4552836caf7a3f562532efddf9ac775833b (commit)
       via  17a7a6fc74a440b8bc5c02d0089ebdafe000ca62 (commit)
       via  6da46f316146c3c6c5ea1741a69e16ecd40620d0 (commit)
       via  98d4fcff80f6cee71067be96f19cafd30c0e005f (commit)
       via  2e5b3599df31bc4958f61cf22b9b0ad9d45b86e4 (commit)
       via  78e08c867007864ef740936c3af3fdd1238b9792 (commit)
       via  51e3b6841a474d129fc25077e42dea38ec181cd6 (commit)
       via  0498520e65fed0222d07190b6124d3de92c6044c (commit)
       via  99d9b7eab9d01b4585ddc03c8c99767bb73e061e (commit)
       via  c35a65c05d1cf4f8d95ce546ae4c7b2d6bd19ac5 (commit)
       via  145c2d0d024e2213a5c833427b4281fb55001709 (commit)
       via  f6b05bd1bce89168db265d8464464562c54fa72e (commit)
       via  b8c1325a9f839efbd7cbab203eca8d2a26e2ff66 (commit)
       via  f19b07647af068030866b7bc94710e930a6fccb9 (commit)
       via  6edafbb503ed5d81f963fb8eeec7595c8158d828 (commit)
       via  f133e575101d91b1160a40c1846ef7bd6d1a6bf2 (commit)
       via  3ec8321119d12023058cf6bb92d04c7e1a648676 (commit)
       via  319d2c66df5240c9231f75f40d77c89cda4df87d (commit)
       via  973c5463aa0f8f1eb27cfdb0f358989b704618bb (commit)
       via  333c18a898e9042938be0e5709ec46ff0ead0797 (commit)
       via  c3eab9af747bcb32d477fe242f6fd19d65fca323 (commit)
       via  9e126f15eef21b220cae7f1b3556c26ac19e29d0 (commit)
       via  614b643eca8361f9d5a5295d25482d07c34016af (commit)
       via  ea1a4174a8328f0bbd6afa0110ac4e9dfafc1b71 (commit)
       via  a82bc0d5cfea18fc96476c23a4fb2d458af09c89 (commit)
       via  a25c6733a0e78fd7aef28e560e027bcef9684e96 (commit)
       via  067455ce40bfa4c7234d46368ab64efb893ab808 (commit)
       via  6bc306097ad74dfafd445243f69a13bda2139505 (commit)
       via  20abe4e50f9beb3bf36a6b8796d7230caa92813a (commit)
       via  627f0a91fce4a715f871334342d4bdd877670dc2 (commit)
       via  c423cdb4bb1d9719376fb54b35e3da9ce422a816 (commit)
       via  7b0ff55f0ba84bbb4fad6e2af4d1c3bf03d6cfb8 (commit)
       via  0431dc4403e5c611bc1009f0cf47b20f26407994 (commit)
       via  580054fa204718b4cddab94b2364f2a52db789d0 (commit)
       via  3cf074bb74da6d54e83e0f2e0cf0de8907fe00fb (commit)
       via  35597a759c91a414460eb8d4f9e138a64f317944 (commit)
       via  978dfcf5d79630e656a6c1e99a7a8cf2a838688a (commit)
       via  27d06b631ca93d1fb9fc3a21013c8fd096270d9c (commit)
       via  e09f00c8aada78d19c199bb6f7743330dc086afa (commit)
       via  fd7d4da2cb4d4817776fd6b8637060f5351134e3 (commit)
       via  59db71ca887b2cc5b84eb05d1abeb588d3bfea47 (commit)
       via  452bfacee9fd543eb87d1bddd4af106142e12778 (commit)
       via  adf64b4bfdc8e58ff9d3f927ded85b2329cb6bb6 (commit)
       via  1584b61754dc50232be326972035102bf4c716c5 (commit)
       via  77dc6c1bf2dc893a2c393229c2b656668694120e (commit)
       via  1946eadee8f7a342a338048a89161c98e5353ff3 (commit)
       via  4e8b21e113d49633c55004217bd26dab8b5d7401 (commit)
       via  d76d91ae1b12c4730dc897cdb25a1d41af499ac0 (commit)
       via  a5413de9ad483b1094eab71636ce4b6fee3b0218 (commit)
       via  f94d28bca672bb877bcc7a6d4133a2ec765dd03d (commit)
       via  f0b4323ac83c8e2bb57ebece361905cf1bcaa07e (commit)
       via  6da812929950242d5647e6e8742653bbb6aaa781 (commit)
       via  e335d8bc66314034cfd8435572c23e781c6df922 (commit)
       via  f60e9ae2043125f1db170a5dd0e18546bd92303b (commit)
       via  24e3b4ee2f8cb9f72dd94a05a893f3d4e88b7835 (commit)
       via  ccb31f6a93cd6076067b5bf120b4478afdad31bf (commit)
       via  d6bb3cf28168727af9abb1546f3bbdc31debe534 (commit)
       via  0a99a243f943f02f97e9fc2df5020d33997a76d0 (commit)
       via  529421a033c9937a853ef0a315a57f230c3a3bc4 (commit)
      from  adba8e96113e4883ec568babd14709538fc696c6 (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 b191caac0e3ddb749d552565e4804d93a36b470e
Merge: adba8e9 4555c81
Author: Stefano Lattarini <address@hidden>
Date:   Sat Nov 6 21:48:49 2010 +0100

    Merge branch 'master' into tests-init

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

Summary of changes:
 .cvsignore                                |   14 -
 ChangeLog                                 |  470 ++++++++++++++++++++++++++++-
 ChangeLog.03                              |    2 +-
 HACKING                                   |   16 +-
 Makefile.am                               |   43 +++-
 Makefile.in                               |   42 ++-
 NEWS                                      |   19 ++
 THANKS                                    |    2 +
 aclocal.m4                                |    4 +-
 automake.in                               |   33 +-
 bootstrap                                 |    3 +-
 configure                                 |  145 ++++++----
 doc/.cvsignore                            |   14 -
 doc/automake.texi                         |  161 +++++++++--
 lib/.cvsignore                            |    1 -
 lib/Automake/.cvsignore                   |    2 -
 lib/Automake/ChannelDefs.pm               |    2 +-
 lib/Automake/Channels.pm                  |    4 +-
 lib/Automake/Configure_ac.pm              |    2 +-
 lib/Automake/FileUtils.pm                 |    2 +-
 lib/Automake/Rule.pm                      |    2 +-
 lib/Automake/Struct.pm                    |    4 +-
 lib/Automake/Variable.pm                  |    2 +-
 lib/Automake/Version.pm                   |    4 +-
 lib/Automake/XFile.pm                     |    2 +-
 lib/Automake/tests/.cvsignore             |    1 -
 lib/Automake/tests/Makefile.in            |   61 ++--
 lib/am/.cvsignore                         |    1 -
 lib/am/check.am                           |   16 +-
 lib/am/distdir.am                         |    6 +-
 lib/am/library.am                         |    4 +-
 lib/am/lisp.am                            |   25 +-
 lib/am/ltlibrary.am                       |    4 +-
 lib/am/program.am                         |    4 +-
 lib/am/remake-hdr.am                      |    8 +-
 lib/ar-lib                                |    4 +-
 lib/compile                               |   36 ++-
 lib/depcomp                               |   62 ++++-
 m4/.cvsignore                             |    1 -
 m4/depend.m4                              |    2 +-
 m4/dmalloc.m4                             |    7 +-
 m4/python.m4                              |    4 +-
 m4/sanity.m4                              |   26 ++-
 m4/silent.m4                              |   23 +-
 tests/.cvsignore                          |   10 -
 tests/.gitignore                          |    5 +-
 tests/Makefile.am                         |   89 +++++-
 tests/Makefile.in                         |  215 ++++++++++---
 tests/README                              |    7 +-
 tests/acloca10.test                       |    5 +-
 tests/acloca18.test                       |    6 +
 tests/aclocal9.test                       |    4 +-
 tests/ar-lib.test                         |   13 +-
 tests/{exdir3.test => autohdrdry.test}    |   26 +-
 tests/backcompat.test                     |   66 ++++
 tests/backcompat2.test                    |   67 ++++
 tests/backcompat3.test                    |  153 ++++++++++
 tests/backcompat4.test                    |   64 ++++
 tests/backcompat5.test                    |  119 ++++++++
 tests/backcompat6.test                    |  105 +++++++
 tests/colon4.test                         |   11 +-
 tests/compile2.test                       |    6 +-
 tests/compile3.test                       |    2 +-
 tests/compile6.test                       |   98 ++++++
 tests/confh.test                          |   35 ++-
 tests/confh4.test                         |    6 +-
 tests/confh6.test                         |    2 +
 tests/confh7.test                         |    1 +
 tests/{condman3.test => confh8.test}      |   63 ++--
 tests/defs.in                             |    9 +-
 tests/dmalloc.test                        |   61 ++++
 tests/extradep.test                       |  104 +++++++
 tests/extradep2.test                      |   86 ++++++
 tests/{tags2.test => help-depend.test}    |   29 +-
 tests/{colon2.test => help-depend2.test}  |   25 +-
 tests/{mdate6.test => help-dmalloc.test}  |   24 +-
 tests/{colon2.test => help-init.test}     |   22 +-
 tests/{tags2.test => help-lispdir.test}   |   28 +-
 tests/help-maintainer.test                |   58 ++++
 tests/{mdate6.test => help-multilib.test} |   23 +-
 tests/{mdate6.test => help-regex.test}    |   23 +-
 tests/{tags2.test => help-silent.test}    |   33 +-
 tests/{mdate6.test => help-upc.test}      |   23 +-
 tests/help.test                           |   28 +-
 tests/{help.test => help2.test}           |   32 +-
 tests/help3.test                          |   61 ++++
 tests/help4.test                          |   55 ++++
 tests/init.test                           |   29 ++-
 tests/install2.test                       |    5 +-
 tests/insthook.test                       |    4 +-
 tests/instmany-mans.test                  |    5 +-
 tests/instmany-python.test                |    4 +-
 tests/instmany.test                       |    4 +-
 tests/instspc-tests.sh                    |  301 ++++++++++++++++++
 tests/instspc.test                        |  187 ------------
 tests/lex3.test                           |    2 +-
 tests/{lisp7.test => lispdry.test}        |   24 +-
 tests/man4.test                           |    4 +-
 tests/missing6.test                       |    9 +-
 tests/mkinst3.test                        |    2 +-
 tests/mmode.test                          |    5 +-
 tests/mmodely.test                        |    5 +-
 tests/multlib.test                        |    2 +-
 tests/pr9.test                            |    1 -
 tests/python11.test                       |    6 +-
 tests/txinfo30.test                       |    4 +-
 tests/vartypo2.test                       |   71 +++++
 tests/vartypos.test                       |   90 ++++++
 tests/{condhook2.test => yaccdry.test}    |   42 ++-
 109 files changed, 3200 insertions(+), 798 deletions(-)
 delete mode 100644 .cvsignore
 delete mode 100644 doc/.cvsignore
 delete mode 100644 lib/.cvsignore
 delete mode 100644 lib/Automake/.cvsignore
 delete mode 100644 lib/Automake/tests/.cvsignore
 delete mode 100644 lib/am/.cvsignore
 delete mode 100644 m4/.cvsignore
 delete mode 100644 tests/.cvsignore
 copy tests/{exdir3.test => autohdrdry.test} (71%)
 create mode 100755 tests/backcompat.test
 create mode 100755 tests/backcompat2.test
 create mode 100755 tests/backcompat3.test
 create mode 100755 tests/backcompat4.test
 create mode 100755 tests/backcompat5.test
 create mode 100755 tests/backcompat6.test
 create mode 100755 tests/compile6.test
 copy tests/{condman3.test => confh8.test} (50%)
 create mode 100755 tests/dmalloc.test
 create mode 100755 tests/extradep.test
 create mode 100755 tests/extradep2.test
 copy tests/{tags2.test => help-depend.test} (61%)
 copy tests/{colon2.test => help-depend2.test} (59%)
 copy tests/{mdate6.test => help-dmalloc.test} (68%)
 copy tests/{colon2.test => help-init.test} (68%)
 copy tests/{tags2.test => help-lispdir.test} (64%)
 create mode 100755 tests/help-maintainer.test
 copy tests/{mdate6.test => help-multilib.test} (69%)
 copy tests/{mdate6.test => help-regex.test} (70%)
 copy tests/{tags2.test => help-silent.test} (56%)
 copy tests/{mdate6.test => help-upc.test} (67%)
 copy tests/{help.test => help2.test} (59%)
 create mode 100755 tests/help3.test
 create mode 100755 tests/help4.test
 create mode 100755 tests/instspc-tests.sh
 delete mode 100755 tests/instspc.test
 copy tests/{lisp7.test => lispdry.test} (78%)
 create mode 100755 tests/vartypo2.test
 create mode 100755 tests/vartypos.test
 copy tests/{condhook2.test => yaccdry.test} (63%)

diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index 0151972..0000000
--- a/.cvsignore
+++ /dev/null
@@ -1,14 +0,0 @@
-Makefile
-aclocal
-automake
-config.cache
-config.log
-config.status
-configure.scan
-*.log
-log
-diffs
-*.patch
-*.tar.*
-autom4te.cache
-Fetchdir
diff --git a/ChangeLog b/ChangeLog
index 42e97f6..657ea37 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,453 @@
+2010-11-06  Stefano Lattarini  <address@hidden>
+
+       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  <address@hidden>
+
+       Fix bug in rules for creating vala vapi/header files.
+       * automake.in (lang_vala_finish_target): Add forgotten "fi" in an
+       if control structure in a generated make rules.  Bug introduced
+       by previous commit `v1.11-221-gd7c1679', and revealed by failure
+       of test `vala2.test'.
+
+2010-11-01  Ralf Wildenhues  <address@hidden>
+
+       Fix and document rules to not touch the tree with `make -n'.
+       * doc/automake.texi (Multiple Outputs): Document the problem of
+       modifications during dry-run execution, propose solution.
+       * NEWS: Update.
+       * automake.in (lang_vala_finish_target): Split recipe so the
+       stamp file is not removed with GNU `make -n'.
+       (lang_yacc_target_hook): Separate removal of parser output file
+       and header remaking.
+       * lib/am/lisp.am ($(am__ELCFILES)): Determine whether -n was
+       passed to make, take care not to remove any files in that case.
+       * lib/am/remake-hdr.am (%CONFIG_H%): Separate removal of
+       %STAMP% file from induced remaking of config header.
+       * tests/autohdrdry.test, tests/lispdry.test, tests/yaccdry.test:
+       New tests.
+       * tests/Makefile.am (TESTS): Update.
+
+2010-11-05  Stefano Lattarini  <address@hidden>
+
+       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 defininig 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  <address@hidden>
+
+       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  <address@hidden>
+
+       Add FAQ entry for bug reporting instructions.
+       * doc/automake.texi (Reporting Bugs): New section.
+       (Introduction): Refer to it.
+
+2010-10-07  Peter Rosin  <address@hidden>
+
+       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-05  Jim Meyering  <address@hidden>
+
+       dist-xz, dist-bzip2: don't hard-code -9: honor envvar settings
+       * lib/am/distdir.am (dist-xz): Do not hard-code xz's -9: that
+       made it impossible to override.  Instead, use its XZ_OPT envvar,
+       defaulting to -9 if not defined.  Thus no change in behavior
+       when XZ_OPT is not set, and now, this rule honors the setting
+       of that envvar when it is set.  Suggested by Lasse Collin.
+       (dist-bzip2): Likewise for it's corresponding envvar: BZIP2.
+       * NEWS (Miscellaneous changes): Mention it.
+       * doc/automake.texi (The Types of Distributions): Describe the
+       newly enabled environment variables.
+
+2010-10-04  Stefano Lattarini  <address@hidden>
+
+       Add support for newer python versions.
+       * m4/python.m4 (AM_PATH_PYTHON): Add python2.7 and python3.2 to
+       _AM_PYTHON_INTERPRETER_LIST.  Since we are at it, break a long
+       line and fix indentation.
+       * THANKS: Updated.
+       From a report by Thomas Klausner.
+
+       Add test for `AM_WITH_DMALLOC' macro.
+       * tests/dmalloc.test: New test.
+       * tests/Makefile.am (TESTS): Update.
+
+       Fix nits and bugs in tests `help*.test'.
+       * tests/help4.test: Fix broken sed commands used to strip `-W...'
+       flags away from "$AUTOMAKE" and "$ACLOCAL".
+       * tests/help3.test: Likewise, and fix a botched comment.
+       * tests/help.test: Likewise.  Also, use "AUTOMAKE_fails ..."
+       instead of "$AUTOMAKE ... && Exit 1", for consistency and to
+       please maintainet-check.
+       * tests/help2.test: Likewise.
+
+2010-10-03  Stefano Lattarini  <address@hidden>
+           Ralf Wildenhues  <address@hidden>
+
+       Improve tests `help*.test' (also fixes maintcheck failures).
+       * tests/help.test: To run automake, use `$AUTOMAKE' with all `-W'
+       flags stripped away rather than hard-coded `automake-$APIVERSION',
+       to better honour user-overrides.  Similarly for aclocal.
+       * tests/help2.test: Likewise.
+       * tests/help3.test: Likewise.
+       * tests/help4.test: Likewise.
+
+2010-10-03  Ralf Wildenhues  <address@hidden>
+
+       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  <address@hidden>
+
+       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.
+       * lib/am/check.am (am__check_post): Reword a bit so it does not
+       get matched as a rule.
+       Suggestion by Ben Pfaff.
+
+2010-10-02  Ralf Wildenhues  <address@hidden>
+
+       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  <address@hidden>
+
+       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.
+
+       2010-09-07  Ralf Wildenhues  <address@hidden>
+
+       parallel-tests: avoid command-line length limit issue.
+       * automake.in (handle_tests): New argument $makefile, new
+       substitution %MAKEFILE%.
+       (generate_makefile): Adjust.
+       * lib/am/check.am [%?PARALLEL_TESTS%] (check-TESTS): Pass
+       sanitized TEST_LOGS value as makefile snippet on standard
+       input to $(MAKE), to avoid exceeding the command line limit on
+       w32 (MSYS).
+       * NEWS: Update.
+       Report by Bob Friesenhahn.
+
+2010-09-26  Stefano Lattarini  <address@hidden>
+
+       Extend tests on `--help' and `--version' options.
+       * tests/help.test: Create a new empty directory and chdir into
+       it, rather than removing already present files.  Run the aclocal
+       and automake wrapper scripts directly, instead of relying on
+       $AUTOMAKE and $ACLOCAL.  Be sure to correctly match literal dots
+       in aclocal's and automake's stderr.  Add a trailing `:' command.
+       * tests/help2.test: New test, checking that options `--help' and
+       `--version' works in directories with broken `configure.in'.
+       * tests/help3.test: New test, checking that options `--help' and
+       `--version' take precedence on the other options.
+       * tests/help4.test: New test, checking that the first among the
+       `--help' and `--version' options to be specified on the command
+       line wins.
+       * tests/Makefile.am (TESTS): Updated.
+
+2010-09-25  Stefano Lattarini  <address@hidden>
+
+       Testsuite: Use `$PATH_SEPARATOR', not `:', when extending PATH.
+       * tests/compile2.test: Do no uselessly (implicitly) repeat the
+       computation of PATH_SEPARATOR again.
+       * tests/instmany-mans.test: Use `$PATH_SEPARATOR', not `:', when
+       extending/redefining PATH.
+       * tests/instmany-python.test: Likewise.
+       * tests/instmany.test: Likewise.
+       * tests/man4.test: Likewise.
+       * tests/mkinst3.test: Likewise.
+       * tests/mmodely.test: Likewise.
+       * tests/multlib.test: Likewise.
+       * tests/txinfo30.test: Likewise.
+       * tests/README (Section "Writing test cases" subsection "Do"):
+       Updated.
+       * Makefile.am (sc_tests_PATH_SEPARATOR): New maintainer check.
+       (syntax_check_rules): Updated.
+
+       Testsuite: new variables `$PATH_SEPARATOR' and `$APIVERSION'.
+       * tests/defs.in ($APIVERSION):  New AC_SUBST'd variable.
+       ($ACLOCAL, $AUTOMAKE): Use it.
+       ($PATH_SEPARATOR):  New AC_SUBST'd variables.
+       ($PATH): Use it.
+
+2010-09-22  Stefano Lattarini  <address@hidden>
+
+       Manual: be more agnostic w.r.t. version control system used.
+       * doc/automake.texi (Basics of Distribution): Also refer to `.svn'
+       directories as a type of probably-unwanted files that are copied
+       regardless when adding directories to EXTRA_DIST.
+       (The dist Hook): Show a dist-hook example which removes Subversion
+       `.svn' private directories from distdir, rather than CVS private
+       directories.
+       (missing and AM_MAINTAINER_MODE): Try to be more agnostic w.r.t.
+       the version control system used.
+
+       Manual: index refer to target "git-dist", not "cvs-dist".
+       * doc/automake.texi (General Operation): Index the non-standard
+       example about "git-dist" under the "git-dist" label, not under
+       the "cvs-dist" one.
+
+       Perl modules: remove references to "Automake CVS repository".
+       * lib/Automake/Channels.pm: Update comments to refer to "Automke's
+       git repository" rather than to "Automake's CVS repository".
+       * lib/Automake/Configure_ac.pm: Likewise.
+       * lib/Automake/FileUtils.pm: Likewise.
+       * lib/Automake/Struct.pm: Likewise.
+       * lib/Automake/XFile.pm: Likewise.
+       * lib/Automake/Version.pm (=head1 DESCRIPTION): Refer to "git
+       branches" rather than "CVS branches".
+
+       Remove obsolete .cvsignore files.
+       * .cvsignore, doc/.cvsignore, lib/.cvsignore, lib/am/.cvsignore,
+       lib/Automake/.cvsignore, lib/Automake/tests/.cvsignore,
+       m4/.cvsignore, tests/.cvsignore: Files deleted.  Even when using
+       savannah's CVS readonly mirror there's no way to commit back to
+       the real repository, so this files are not worth maintaining or
+       keeping around.
+
+2010-09-21  Stefano Lattarini  <address@hidden>
+
+       * m4/dmalloc.m4: Bump serial number and copyright years.
+
+2010-09-20  Stefano Lattarini  <address@hidden>
+
+       Fix broken link in `AM_WITH_DMALLOC' help screen.
+       * m4/dmalloc.m4 (AM_WITH_DMALLOC): Refer only to the dmalloc site
+       `http://www.dmalloc.com', not to the dmalloc tarball there (which
+       seems to have been removed, substituted by multiple release
+       tarballs now).
+
+2010-09-21  Peter Rosin  <address@hidden>
+
+       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  <address@hidden>
+
+       Avoid triple-space after period.
+       * automake.in (handle_single_transform): Avoid 3 spaces at
+       sentence end.
+       * ChangeLog.03: Likewise.
+       * lib/Automake/ChannelDefs.pm: Likewise.
+       * lib/Automake/Channels.pm (_print_message): Likewise.
+       * lib/Automake/Rule.pm (rule): Likewise.
+       * lib/Automake/Variable.pm (var): Likewise.
+       * lib/am/distdir.am: Likewise.
+       * tests/insthook.test: Likewise.
+
+2010-09-15  Stefano Lattarini  <address@hidden>
+
+       Test automake-generated portions of configure help screen.
+       * tests/help-depend.test: New test.
+       * tests/help-depend2.test: Likewise.
+       * tests/help-dmalloc.test: Likewise.
+       * tests/help-init.test: Likewise.
+       * tests/help-lispdir.test: Likewise.
+       * tests/help-maintainer.test: Likewise.
+       * tests/help-multilib.test: Likewise.
+       * tests/help-regex.test: Likewise.
+       * tests/help-silent.test: Likewise.
+       * tests/help-upc.test: Likewise.
+       * tests/mmode.test: Remove tests on `configure --help' output,
+       they are supersed by tests in `help-maintainer.test'.
+       * tests/Makefile.am (TESTS): Update.
+
+2010-09-14  Stefano Lattarini  <address@hidden>
+
+       * tests/README: Don't put GCS mandated tools in $required.
+
+2010-09-13  Ralf Wildenhues  <address@hidden>
+
+       * HACKING: Hint at old commits with `git describe' output.
+
+2010-09-14  Stefano Lattarini  <address@hidden>
+
+       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  <address@hidden>
+
+       Fix regression in test `colon4.test'.
+       * tests/colon4.test: Fix botched editing to `configure.in'
+       that made the test useless.  Since we are at it, improve
+       comments and make grepping of generated Makefile.in slighty
+       stricter.
+       Regression introduced by change "Modernize, improve and/or
+       extend tests `colon*.test" (Stefano Lattarini, 2010-08-08).
+
+2010-09-08  Stefano Lattarini  <address@hidden>
+
+       Do not require "gzip" explicitly in tests.
+       The gzip utility is simply expected to be present on any decent
+       target system for Automake.  So it's pointless to put it in
+       $required.
+       * tests/install2.test ($required): Do not require "gzip".
+       * tests/lex3.test: Likewise.
+       * tests/pr9.test: Likewise.
+       From a suggestion by Ralf Wildenhues.
+
+2010-09-09  Stefano Lattarini  <address@hidden>
+
+       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  <address@hidden>
+
+       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/confh4.test: Relax the grepping of Makefile.in w.r.t.
+       white spaces.  Do not create usless dummy source file `foo.c'
+       and useless dummy header file `acconfig.h'.
+       (configure.in): Remove superfluous call to `AC_OUTPUT'.
+       * tests/confh6.test: Add trailing `:' command.
+       * tests/confh7.test: In comments, add reference to ...
+       * tests/confh8.test: ... this new test, "semantic" sister
+       of `confh7.test'.
+       * tests/Makefile.am (TESTS): Updated.
+       Prompted by a report from Ralf Wildenhues.
+
+2010-09-08  Stefano Lattarini  <address@hidden>
+
+       Remove useless whitespace padding in XFAIL_TESTS definition.
+       * tests/Makefile.am (XFAIL_TESTS): Remove whitespace padding.
+
+2010-09-07  Ralf Wildenhues  <address@hidden>
+
+       parallel-tests: avoid command-line length limit issue.
+       * automake.in (handle_tests): New argument $makefile, new
+       substitution %MAKEFILE%.
+       (generate_makefile): Adjust.
+       * lib/am/check.am [%?PARALLEL_TESTS%] (check-TESTS): Pass
+       sanitized TEST_LOGS value as makefile snippet on standard
+       input to $(MAKE), to avoid exceeding the command line limit on
+       w32 (MSYS).
+       * NEWS: Update.
+       Report by Bob Friesenhahn.
+
+       Posix 2008 requires make to set errexit.
+       * lib/am/check.am: Update comment.
+
 2010-09-06  Stefano Lattarini  <address@hidden>
 
        Tests defs: remove variable $testaclocaldir.
@@ -40,12 +490,28 @@
        * tests/defs.in: Stricter (and more correct) detection of wheter
        libtool, libtoolize and/or gettext are in $required.
 
+
+2010-08-27  Stefano Lattarini  <address@hidden>
+
+       Fix bug in test missing6.test.
+       * tests/missing6.test: Fix the hack used to edit `configure.in',
+       to avoid producing a configure script that breaks with shells
+       that do not support $LINENO.  Also throw in a couple of cosmetic
+       changes.
+
+2010-09-02  Peter Rosin  <address@hidden>
+
+       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  <address@hidden>
 
        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.
-       * lib/compile4.test: Test the above.
+       * tests/compile4.test: Test the above.
 
 2010-08-21  Ralf Wildenhues  <address@hidden>
 
@@ -104,7 +570,7 @@
        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.
-       * lib/compile3.test: Test the C++ hinting.
+       * tests/compile3.test: Test the C++ hinting.
 
 2010-08-12  Peter Rosin  <address@hidden>
 
diff --git a/ChangeLog.03 b/ChangeLog.03
index aa31380..eb5b251 100644
--- a/ChangeLog.03
+++ b/ChangeLog.03
@@ -1325,7 +1325,7 @@
        Makefile.am into DIST_COMMON here.
        * lib/am/configure.am (DIST_COMMON): Do it here, and use
        %MAKEFILE-AM% and %MAKEFILE-IN% so that items in DIST_COMMON
-       actually match the targets.   Prefix `configure' with `$(srcdir)/'
+       actually match the targets.  Prefix `configure' with `$(srcdir)/'
        to match the target.
        * tests/remake4.test: New file.
        * tests/Makefile.am (TESTS): Add remake4.test.
diff --git a/HACKING b/HACKING
index d5de1d4..dc727d3 100644
--- a/HACKING
+++ b/HACKING
@@ -33,16 +33,16 @@
   Most of them are updated before release with `make fetch'.
 
 * Changes other than bug fixes must be mentioned in NEWS.  Important
-  bug fixes should be mentioned in NES, too.
+  bug fixes should be mentioned in NEWS, too.
 
 ================================================================
 = Naming
 
 * We've adopted the convention that internal AC_SUBSTs should be
-  named with a leading `am__', and internally generated targets should
-  be named with a leading `am--'.  This convention is very new
-  (as of Feb 7 2001) and so it isn't yet universally used.  But all
-  new code should use it.
+  named with a leading `am__', and internally generated targets
+  should be named with a leading `am--'.  This convention, although
+  in place from at least February 2001, isn't yet universally used.
+  But all new code should use it.
 
   We used to use `_am_' as the prefix for an internal AC_SUBST.
   However, it turns out that NEWS-OS 4.2R complains if a Makefile
@@ -98,8 +98,8 @@
   not installed as "autoconf", pass it explicitly (along with the
   accompanying "autom4te") when calling `bootstrap' and `configure'.
   For example:
-    $ AUTOCONF=autoconf2.65 AUTOM4TE=autom4te2.65 ./bootstrap
-    $ ./configure AUTOCONF=autoconf2.65 AUTOM4TE=autom4te2.65
+    $ AUTOCONF=autoconf2.67 AUTOM4TE=autom4te2.67 ./bootstrap
+    $ ./configure AUTOCONF=autoconf2.67 AUTOM4TE=autom4te2.67
 
 * Dependent files aclocal.m4, configure and Makefile.in in all
   directories should be up to date in the git repository, so that
@@ -143,6 +143,8 @@
   the active branches descending from the buggy commit.  This offers a
   simple way to fix the bug consistently and effectively.
 
+* When referring to older commits, use 'git describe' output as pointer.
+
 * There may be a number of longer-lived feature branches for new developments.
   They should be based off of a common ancestor of all active branches to
   which the feature should be merged later.  The next branch may serve as
diff --git a/Makefile.am b/Makefile.am
index 3dd2a18..a5df109 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -111,7 +111,8 @@ recheck:
          esac; \
        done; \
        for subdir in $(TEST_SUBDIRS); do \
-         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@) || eval $$failcom; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@) \
+           || eval $$failcom; \
        done; \
        test -z "$$fail"
 
@@ -123,7 +124,7 @@ recheck:
 
 # Ensure tests are world-executable
 dist-hook:
-       cd $(distdir)/tests && chmod a+rx *.test
+       $(am__cd) $(distdir)/tests && chmod a+rx *.test
 
 
 # Perl coverage statistics.
@@ -192,7 +193,9 @@ sc_tests_required_after_defs \
 sc_tests_overriding_macros_on_cmdline \
 sc_tests_plain_sleep \
 sc_tests_plain_egrep_fgrep \
+sc_tests_PATH_SEPARATOR \
 sc_tests_logs_duplicate_prefixes \
+sc_tests_makefile_variable_order \
 sc_mkdir_p \
 sc_perl_at_substs \
 sc_unquoted_DESTDIR \
@@ -465,9 +468,10 @@ sc_tests_plain_egrep_fgrep:
 ## Rule to ensure that the testsuite has been run before.  We don't depend on 
`check'
 ## here, because that would be very wasteful in the common case.  We could run
 ## `make check RECHECK_LOGS=' and avoid toplevel races with 
AM_RECURSIVE_TARGETS.
+## Suggest keeping test directories around for greppability of the Makefile.in 
files.
 sc_ensure_testsuite_has_run:
        @if test ! -f tests/test-suite.log; then \
-         echo "Run \`make check' before \`maintainer-check'" >&2; \
+         echo "Run \`env keep_testdirs=yes make check' before 
\`maintainer-check'" >&2; \
          exit 1; \
        fi
 .PHONY: sc_ensure_testsuite_has_run
@@ -480,6 +484,31 @@ sc_tests_logs_duplicate_prefixes: 
sc_ensure_testsuite_has_run
          exit 1; \
        fi
 
+## Ensure variables are listed before rules in Makefile.in files we generate.
+sc_tests_makefile_variable_order: sc_ensure_testsuite_has_run
+       @for file in `find tests -name Makefile.in -print`; do \
+         latevars=`sed -n \
+           -e :x -e 's/#.*//' \
+           -e '/\\\\$$/{' -e N -e 'b x' -e '}' \
+## Literal TAB.
+           -e '1,/^    /d' \
+## Allow @ so we match conditionals.
+           -e '/^ address@hidden,\} *=/p' $$file`; \
+         if test -n "$$latevars"; then \
+           echo 'Ensure variables are expanded before rules' >&2; \
+           echo "Variables are expanded too late in $$file:" >&2; \
+           echo "$$latevars" | sed 's/^/  /' >&2; \
+           exit 1; \
+         fi; \
+       done
+
+## Using `:' as a PATH separator is not portable.
+sc_tests_PATH_SEPARATOR:
+       @if grep -E '\bPATH=.*:.*' $(srcdir)/tests/*.test ; then \
+         echo "Use \`$$PATH_SEPARATOR', not \`:', in PATH definitions above." 
1>&2; \
+         exit 1; \
+       fi
+
 sc_mkdir_p:
        @if grep 'mkdir_p' $(srcdir)/automake.in \
              $(srcdir)/lib/am/*.am $(srcdir)/tests/*.test; then \
@@ -530,7 +559,7 @@ git-dist: maintainer-check
 ## Finally, if anything was successful, commit the last changes and tag
 ## the release in the repository.  We don't use RCS keywords so it's OK
 ## to distribute the files before they were committed.
-       cd $(srcdir) && git commit -a -s && \
+       $(am__cd) $(srcdir) && git commit -a -s && \
           git tag -s "v$(VERSION)" -m "Release $(VERSION)"
 
 git-release: git-dist
@@ -552,7 +581,7 @@ git-diff:
 
 ## Check our path lengths.
 path-check: distdir
-       (cd $(distdir) && \
+       ($(am__cd) $(distdir) && \
 ## FIXME there's got to be a better way!  pathchk should take the list
 ## of files on stdin, at least.
          find . -print | xargs pathchk -p); \
@@ -584,7 +613,7 @@ fetch:
        rm -rf Fetchdir > /dev/null 2>&1
        mkdir Fetchdir
 ## If a get fails then that is a problem.
-       (cd Fetchdir && \
+       ($(am__cd) Fetchdir && \
        $(WGET_SV_GIT_CF)config.guess -O config.guess && \
        $(WGET_SV_GIT_CF)config.sub -O config.sub && \
        $(WGET_SV_CVS)texinfo/texinfo/doc/texinfo.tex -O texinfo.tex && \
@@ -621,7 +650,7 @@ release-stats: ps
        aml=`cat $$dot_am_files | wc -l` && \
        m4f=`ls -1 $(srcdir)/m4/*.m4 | wc -l` && \
        m4l=`cat $(srcdir)/m4/*.m4 | wc -l` && \
-       doc_text=`cd doc && LC_ALL=C pstops 0 automake.ps unused.ps 2>&1` && \
+       doc_text=`$(am__cd) doc && LC_ALL=C pstops 0 automake.ps unused.ps 
2>&1` && \
        echo "$$doc_text" && \
        rm -f doc/unused.ps && \
        doc=`echo "$$doc_text" | sed -n 's/.*Wrote \([1-9][0-9]*\) 
pages.*/\1/p'` && \
diff --git a/Makefile.in b/Makefile.in
index 3a89eba..d9cff86 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -314,7 +314,9 @@ sc_tests_required_after_defs \
 sc_tests_overriding_macros_on_cmdline \
 sc_tests_plain_sleep \
 sc_tests_plain_egrep_fgrep \
+sc_tests_PATH_SEPARATOR \
 sc_tests_logs_duplicate_prefixes \
+sc_tests_makefile_variable_order \
 sc_mkdir_p \
 sc_perl_at_substs \
 sc_unquoted_DESTDIR \
@@ -649,7 +651,7 @@ dist-gzip: distdir
        tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c 
>$(distdir).tar.gz
        $(am__post_remove_distdir)
 dist-bzip2: distdir
-       tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+       tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c 
>$(distdir).tar.bz2
        $(am__post_remove_distdir)
 
 dist-lzip: distdir
@@ -661,7 +663,7 @@ dist-lzma: distdir
        $(am__post_remove_distdir)
 
 dist-xz: distdir
-       tardir=$(distdir) && $(am__tar) | xz -9 -c >$(distdir).tar.xz
+       tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--9} xz -c 
>$(distdir).tar.xz
        $(am__post_remove_distdir)
 
 dist-tarZ: distdir
@@ -925,7 +927,8 @@ recheck:
          esac; \
        done; \
        for subdir in $(TEST_SUBDIRS); do \
-         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@) || eval $$failcom; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@) \
+           || eval $$failcom; \
        done; \
        test -z "$$fail"
 
@@ -933,7 +936,7 @@ recheck:
 
 # Ensure tests are world-executable
 dist-hook:
-       cd $(distdir)/tests && chmod a+rx *.test
+       $(am__cd) $(distdir)/tests && chmod a+rx *.test
 
 check-coverage-run recheck-coverage-run: all
        $(mkinstalldirs) $(PERL_COVERAGE_DB)
@@ -1186,7 +1189,7 @@ sc_tests_plain_egrep_fgrep:
 
 sc_ensure_testsuite_has_run:
        @if test ! -f tests/test-suite.log; then \
-         echo "Run \`make check' before \`maintainer-check'" >&2; \
+         echo "Run \`env keep_testdirs=yes make check' before 
\`maintainer-check'" >&2; \
          exit 1; \
        fi
 .PHONY: sc_ensure_testsuite_has_run
@@ -1197,6 +1200,27 @@ sc_tests_logs_duplicate_prefixes: 
sc_ensure_testsuite_has_run
          exit 1; \
        fi
 
+sc_tests_makefile_variable_order: sc_ensure_testsuite_has_run
+       @for file in `find tests -name Makefile.in -print`; do \
+         latevars=`sed -n \
+           -e :x -e 's/#.*//' \
+           -e '/\\\\$$/{' -e N -e 'b x' -e '}' \
+           -e '1,/^    /d' \
+           -e '/^ address@hidden,\} *=/p' $$file`; \
+         if test -n "$$latevars"; then \
+           echo 'Ensure variables are expanded before rules' >&2; \
+           echo "Variables are expanded too late in $$file:" >&2; \
+           echo "$$latevars" | sed 's/^/  /' >&2; \
+           exit 1; \
+         fi; \
+       done
+
+sc_tests_PATH_SEPARATOR:
+       @if grep -E '\bPATH=.*:.*' $(srcdir)/tests/*.test ; then \
+         echo "Use \`$$PATH_SEPARATOR', not \`:', in PATH definitions above." 
1>&2; \
+         exit 1; \
+       fi
+
 sc_mkdir_p:
        @if grep 'mkdir_p' $(srcdir)/automake.in \
              $(srcdir)/lib/am/*.am $(srcdir)/tests/*.test; then \
@@ -1239,7 +1263,7 @@ git-dist: maintainer-check
          exit 1;                               \
        fi
        $(MAKE) $(AM_MAKEFLAGS) distcheck
-       cd $(srcdir) && git commit -a -s && \
+       $(am__cd) $(srcdir) && git commit -a -s && \
           git tag -s "v$(VERSION)" -m "Release $(VERSION)"
 
 git-release: git-dist
@@ -1260,7 +1284,7 @@ git-diff:
            > $(PACKAGE)-$$prevno-$(VERSION).diff
 
 path-check: distdir
-       (cd $(distdir) && \
+       ($(am__cd) $(distdir) && \
          find . -print | xargs pathchk -p); \
          estatus=$$?; \
          find $(distdir) -type d '!' -perm -200 -exec chmod u+w {} ';'; \
@@ -1270,7 +1294,7 @@ path-check: distdir
 fetch:
        rm -rf Fetchdir > /dev/null 2>&1
        mkdir Fetchdir
-       (cd Fetchdir && \
+       ($(am__cd) Fetchdir && \
        $(WGET_SV_GIT_CF)config.guess -O config.guess && \
        $(WGET_SV_GIT_CF)config.sub -O config.sub && \
        $(WGET_SV_CVS)texinfo/texinfo/doc/texinfo.tex -O texinfo.tex && \
@@ -1302,7 +1326,7 @@ release-stats: ps
        aml=`cat $$dot_am_files | wc -l` && \
        m4f=`ls -1 $(srcdir)/m4/*.m4 | wc -l` && \
        m4l=`cat $(srcdir)/m4/*.m4 | wc -l` && \
-       doc_text=`cd doc && LC_ALL=C pstops 0 automake.ps unused.ps 2>&1` && \
+       doc_text=`$(am__cd) doc && LC_ALL=C pstops 0 automake.ps unused.ps 
2>&1` && \
        echo "$$doc_text" && \
        rm -f doc/unused.ps && \
        doc=`echo "$$doc_text" | sed -n 's/.*Wrote \([1-9][0-9]*\) 
pages.*/\1/p'` && \
diff --git a/NEWS b/NEWS
index c0f3ebd..0a824dd 100644
--- a/NEWS
+++ b/NEWS
@@ -17,12 +17,27 @@ New in 1.11a:
 
   - "make dist" can now create lzip-compressed tarballs.
 
+  - You may adjust the compression options used in dist-xz and dist-bzip2.
+    The default is still -9 for each, but you may specify a different
+    level via the XZ_OPT and BZIP2 envvars respectively.  E.g.,
+    "make dist-xz XZ_OPT=-7" or "make dist-xz BZIP2=-5"
+
   - Messages of types warning or error from `automake' and `aclocal' are now
     prefixed with the respective type, and presence of -Werror is noted.
 
   - The `compile' script now converts some options for MSVC for a better
     user experience.  Similarly, the new `ar-lib' script wraps Microsoft lib.
 
+  - 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.
+
+  - 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.
+
 Bugs fixed in 1.11a:
 
   - Lots of minor bugfixes.
@@ -70,6 +85,10 @@ Bugs fixed in 1.11a:
   - 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.
+
+  - 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.
 
 New in 1.11:
 
diff --git a/THANKS b/THANKS
index 810a700..f53e7ee 100644
--- a/THANKS
+++ b/THANKS
@@ -146,6 +146,7 @@ Jared Davis         address@hidden
 Jason Duell            address@hidden
 Jason Molenda          address@hidden
 Jeff Bailey            address@hidden
+Jeff A. Daily          address@hidden
 Jeff Garzik            address@hidden
 Jeff Squyres           address@hidden
 Jens Elkner            address@hidden
@@ -337,6 +338,7 @@ Theodoros V. Kalamatianos address@hidden
 Thien-Thi Nguyen       address@hidden
 Thomas Fitzsimmons     address@hidden
 Thomas Gagne           address@hidden
+Thomas Klausner                address@hidden
 Thomas Morgan          address@hidden
 Thomas Schwinge                address@hidden
 Thomas Tanner          address@hidden
diff --git a/aclocal.m4 b/aclocal.m4
index 6cbae15..c43a368 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -13,8 +13,8 @@
 
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],,
-[m4_warning([this file was generated for autoconf 2.67.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
+[m4_warning([this file was generated for autoconf 2.68.
 You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically 
`autoreconf'.])])
diff --git a/automake.in b/automake.in
index c0c5289..db45e52 100644
--- a/automake.in
+++ b/automake.in
@@ -2005,7 +2005,7 @@ sub handle_single_transform ($$$$$%)
 
                # Each item on this list is a reference to a list consisting
                # of four values followed by additional transform flags for
-               # file_contents.   The four values are the derived flag prefix
+               # file_contents.  The four values are the derived flag prefix
                # (e.g. for `foo_CFLAGS', it is `foo'), the name of the
                # source file, the base name of the output file, and
                # the extension for the object file.
@@ -2678,6 +2678,7 @@ sub handle_programs
                  "use `${xname}_LDADD', not `${xname}_LIBADD'");
 
       set_seen ($xname . '_DEPENDENCIES');
+      set_seen ('EXTRA_' . $xname . '_DEPENDENCIES');
       set_seen ($xname . '_LDFLAGS');
 
       # Determine program to use for link.
@@ -2789,6 +2790,7 @@ sub handle_libraries
 
       # Make sure we at look at this.
       set_seen ($xlib . '_DEPENDENCIES');
+      set_seen ('EXTRA_' . $xlib . '_DEPENDENCIES');
 
       &handle_source_transform ($xlib, $onelib, $obj, $where,
                                NONLIBTOOL => 1, LIBTOOL => 0);
@@ -2968,6 +2970,7 @@ sub handle_ltlibraries
       # Make sure we look at these.
       set_seen ($xlib . '_LDFLAGS');
       set_seen ($xlib . '_DEPENDENCIES');
+      set_seen ('EXTRA_' . $xlib . '_DEPENDENCIES');
 
       # Generate support for conditional object inclusion in
       # libraries.
@@ -3070,7 +3073,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)")
@@ -5991,11 +5994,11 @@ sub lang_vala_finish_target ($$)
     {
       foreach my $file ($var->value_as_list_recursive)
         {
-          $output_rules .= "\$(srcdir)/$file: 
\$(srcdir)/${derived}_vala.stamp\n".
-            "address@hidden test -f \$@; then :; else \\\n".
-            "\t  rm -f \$(srcdir)/${derived}_vala.stamp; \\\n".
-            "\t  \$(am__cd) \$(srcdir) && \$(MAKE) \$(AM_MAKEFLAGS) 
${derived}_vala.stamp; \\\n".
-            "\tfi\n"
+          $output_rules .= "\$(srcdir)/$file: 
\$(srcdir)/${derived}_vala.stamp\n"
+            . "address@hidden test -f \$@; then :; else rm -f 
\$(srcdir)/${derived}_vala.stamp; fi\n"
+            . "address@hidden test -f \$@; then :; else \\\n"
+            . "\t  \$(am__cd) \$(srcdir) && \$(MAKE) \$(AM_MAKEFLAGS) 
${derived}_vala.stamp; \\\n"
+           . "\tfi\n"
             if $file =~ s/(.*)\.vala$/$1.c/;
         }
     }
@@ -6011,11 +6014,11 @@ sub lang_vala_finish_target ($$)
                                  '--vapi', '--internal-vapi', '--gir')))
            {
              my $headerfile = $flag;
-             $output_rules .= "\$(srcdir)/$headerfile: 
\$(srcdir)/${derived}_vala.stamp\n".
-               "address@hidden test -f \$@; then :; else \\\n".
-               "\t  rm -f \$(srcdir)/${derived}_vala.stamp; \\\n".
-               "\t  \$(am__cd) \$(srcdir) && \$(MAKE) \$(AM_MAKEFLAGS) 
${derived}_vala.stamp; \\\n".
-               "\tfi\n";
+             $output_rules .= "\$(srcdir)/$headerfile: 
\$(srcdir)/${derived}_vala.stamp\n"
+               . "address@hidden test -f \$@; then :; else rm -f 
\$(srcdir)/${derived}_vala.stamp; fi\n"
+               . "address@hidden test -f \$@; then :; else \\\n"
+               . "\t  \$(am__cd) \$(srcdir) && \$(MAKE) \$(AM_MAKEFLAGS) 
${derived}_vala.stamp; \\\n"
+               . "\tfi\n";
 
              # valac is not used when building from dist tarballs
              # distribute the generated files
@@ -6110,10 +6113,8 @@ sub lang_yacc_target_hook
            $output_rules .=
              "$condstr${header}: $output\n"
              # Recover from removal of $header
-             . "address@hidden test ! -f \$@; then \\\n"
-             . "$condstr\t  rm -f $output; \\\n"
-             . "$condstr\t  \$(MAKE) \$(AM_MAKEFLAGS) $output; \\\n"
-             . "$condstr\telse :; fi\n";
+             . "address@hidden test ! -f \$@; then rm -f $output; else :; fi\n"
+             . "address@hidden test ! -f \$@; then \$(MAKE) \$(AM_MAKEFLAGS) 
$output; else :; fi\n";
          }
        # Distribute the generated file, unless its .y source was
        # listed in a nodist_ variable.  (&handle_source_transform
diff --git a/bootstrap b/bootstrap
index 9f1a8d8..41f1f4e 100755
--- a/bootstrap
+++ b/bootstrap
@@ -103,9 +103,10 @@ dosubst m4/amversion.in m4/amversion.m4
 # Create temporary replacement for automake.
 dosubst automake.in automake.tmp
 
-# Create tests/parallel-tests.am.
+# Create required makefile snippets.
 cd tests
 $BOOTSTRAP_SHELL ./gen-parallel-tests > parallel-tests.am
+$BOOTSTRAP_SHELL ./instspc-tests.sh --generate-makefile > instspc-tests.am
 cd ..
 
 # Run the autotools.
diff --git a/configure b/configure
index b7f3e9b..169d82d 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.67 for GNU Automake 1.11a.
+# Generated by GNU Autoconf 2.68 for GNU Automake 1.11a.
 #
 # Report bugs to <address@hidden>.
 #
@@ -91,6 +91,7 @@ fi
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
 case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -216,11 +217,18 @@ IFS=$as_save_IFS
   # We cannot yet assume a decent shell, so we have to provide a
        # neutralization value for shells without unset; and this also
        # works around shells that cannot unset nonexistent variables.
+       # Preserve -v and -x to the replacement shell.
        BASH_ENV=/dev/null
        ENV=/dev/null
        (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
        export CONFIG_SHELL
-       exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+       case $- in # ((((
+         *v*x* | *x*v* ) as_opts=-vx ;;
+         *v* ) as_opts=-v ;;
+         *x* ) as_opts=-x ;;
+         * ) as_opts= ;;
+       esac
+       exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
 fi
 
     if test x$as_have_required = xno; then :
@@ -1053,7 +1061,7 @@ Try \`$0 --help' for more information"
     $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} 
${target_alias=$ac_option}
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} 
${target_alias=$ac_option}"
     ;;
 
   esac
@@ -1268,8 +1276,8 @@ Optional Features:
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')
+  --enable-silent-rules   less verbose build output (undo: `make V=1')
+  --disable-silent-rules  verbose build output (undo: `make V=0')
 
 Report bugs to <address@hidden>.
 GNU Automake home page: <http://www.gnu.org/software/automake/>.
@@ -1337,7 +1345,7 @@ test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
 GNU Automake configure 1.11a
-generated by GNU Autoconf 2.67
+generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
@@ -1354,7 +1362,7 @@ This file contains any messages produced by compilers 
while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by GNU Automake $as_me 1.11a, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
+generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
 
@@ -1741,7 +1749,7 @@ $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
 $as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then :
+if ${ac_cv_build+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_build_alias=$build_alias
@@ -1801,7 +1809,7 @@ am__api_version='1.11a'
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible 
install" >&5
 $as_echo_n "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then :
+if ${ac_cv_path_install+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -1898,14 +1906,14 @@ esac
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
+   am_has_slept=no
    for am_try in 1 2; do
-     echo timestamp > conftest.file
+     echo "timestamp, slept: $am_has_slept" > conftest.file
      set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
      if test "$*" = "X"; then
        # -L didn't work.
        set X `ls -t "$srcdir/configure" conftest.file`
      fi
-     rm -f conftest.file
      if test "$*" != "X $srcdir/configure conftest.file" \
        && test "$*" != "X conftest.file $srcdir/configure"; then
 
@@ -1921,6 +1929,7 @@ if (
      fi
      # Just in case.
      sleep 1
+     am_has_slept=yes
    done
    test "$2" = conftest.file
    )
@@ -1933,6 +1942,16 @@ Check your system clock" "$LINENO" 5
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+
+fi
+rm -f conftest.file
+
 test "$program_prefix" != NONE &&
   program_transform_name="s&^&$program_prefix&;$program_transform_name"
 # Use a double $ so make ignores it.
@@ -1982,7 +2001,7 @@ if test "$cross_compiling" != no; then
 set dummy ${ac_tool_prefix}strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
+if ${ac_cv_prog_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
@@ -2022,7 +2041,7 @@ if test -z "$ac_cv_prog_STRIP"; then
 set dummy strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
@@ -2075,7 +2094,7 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" 
>&5
 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
 if test -z "$MKDIR_P"; then
-  if test "${ac_cv_path_mkdir+set}" = set; then :
+  if ${ac_cv_path_mkdir+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -2126,7 +2145,7 @@ do
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then :
+if ${ac_cv_prog_AWK+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AWK"; then
@@ -2166,7 +2185,7 @@ done
 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
@@ -2207,10 +2226,10 @@ if test "${enable_silent_rules+set}" = set; then :
   enableval=$enable_silent_rules;
 fi
 
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=1;;
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=1;;
 esac
 AM_BACKSLASH='\'
 
@@ -2300,7 +2319,7 @@ AUTOMAKE="perllibdir=\"`pwd`/lib$PATH_SEPARATOR./lib\" 
\"`pwd`/automake\" --libd
 set dummy perl; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PERL+set}" = set; then :
+if ${ac_cv_path_PERL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $PERL in
@@ -2349,7 +2368,7 @@ installed, select the one Automake should use using
 # We require ithreads support, and version 5.7.2 for CLONE.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PERL supports 
ithreads" >&5
 $as_echo_n "checking whether $PERL supports ithreads... " >&6; }
-if test "${am_cv_prog_PERL_ithreads+set}" = set; then :
+if ${am_cv_prog_PERL_ithreads+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if $PERL -e '
@@ -2384,7 +2403,7 @@ fi
 set dummy tex; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_TEX+set}" = set; then :
+if ${ac_cv_prog_TEX+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$TEX"; then
@@ -2432,7 +2451,7 @@ HELP2MAN=${HELP2MAN-"${am_missing_run}help2man"}
 required_autoconf_version=2.62
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether autoconf is 
installed" >&5
 $as_echo_n "checking whether autoconf is installed... " >&6; }
-if test "${am_cv_autoconf_installed+set}" = set; then :
+if ${am_cv_autoconf_installed+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if { echo "$as_me:$LINENO: eval $am_AUTOCONF --version" >&5
@@ -2455,7 +2474,7 @@ fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether autoconf works" >&5
 $as_echo_n "checking whether autoconf works... " >&6; }
-if test "${am_cv_autoconf_works+set}" = set; then :
+if ${am_cv_autoconf_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   mkdir conftest
@@ -2481,7 +2500,7 @@ fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether autoconf is recent 
enough" >&5
 $as_echo_n "checking whether autoconf is recent enough... " >&6; }
-if test "${am_cv_autoconf_version+set}" = set; then :
+if ${am_cv_autoconf_version+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   mkdir conftest
@@ -2507,7 +2526,7 @@ fi
 # Test for ln.  We need use it to install the versioned binaries.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln works" >&5
 $as_echo_n "checking whether ln works... " >&6; }
-if test "${am_cv_prog_ln+set}" = set; then :
+if ${am_cv_prog_ln+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -2542,7 +2561,7 @@ esac
 # Test for things needed by the test suite.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long 
lines and -e" >&5
 $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then :
+if ${ac_cv_path_GREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$GREP"; then
@@ -2605,7 +2624,7 @@ $as_echo "$ac_cv_path_GREP" >&6; }
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
 $as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then :
+if ${ac_cv_path_EGREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -2672,7 +2691,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; }
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
 $as_echo_n "checking for fgrep... " >&6; }
-if test "${ac_cv_path_FGREP+set}" = set; then :
+if ${ac_cv_path_FGREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
@@ -2740,7 +2759,7 @@ $as_echo "$ac_cv_path_FGREP" >&6; }
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether /bin/sh has working 
'set -e' with exit trap" >&5
 $as_echo_n "checking whether /bin/sh has working 'set -e' with exit trap... " 
>&6; }
-if test "${am_cv_sh_errexit_works+set}" = set; then :
+if ${am_cv_sh_errexit_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if /bin/sh -ec "trap 'exit \$?' 0; (exit 77); exit 77"; test $? = 77
@@ -2835,10 +2854,21 @@ $as_echo "$as_me: WARNING: cache variable $ac_var 
contains a newline" >&2;} ;;
      :end' >>confcache
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
-    test "x$cache_file" != "x/dev/null" &&
+    if test "x$cache_file" != "x/dev/null"; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
 $as_echo "$as_me: updating cache $cache_file" >&6;}
-    cat confcache >$cache_file
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+       cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+         mv -f confcache "$cache_file"$$ &&
+         mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+         mv -f confcache "$cache_file" ;;
+       esac
+      fi
+    fi
   else
     { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache 
$cache_file" >&5
 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
@@ -2905,9 +2935,16 @@ LIBOBJS=$ac_libobjs
 LTLIBOBJS=$ac_ltlibobjs
 
 
+if test -n "$am_sleep_pid"; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files 
are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+       wait $am_sleep_pid
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+     fi
 
 
-: ${CONFIG_STATUS=./config.status}
+: "${CONFIG_STATUS=./config.status}"
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
@@ -3008,6 +3045,7 @@ fi
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
 case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3315,7 +3353,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # values after options handling.
 ac_log="
 This file was extended by GNU Automake $as_me 1.11a, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
+generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -3370,7 +3408,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
 GNU Automake config.status 1.11a
-configured by $0, generated by GNU Autoconf 2.67,
+configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -3520,9 +3558,10 @@ fi
 # after its creation but before its name has been assigned to `$tmp'.
 $debug ||
 {
-  tmp=
+  tmp= ac_tmp=
   trap 'exit_status=$?
-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
 ' 0
   trap 'as_fn_exit 1' 1 2 13 15
 }
@@ -3530,12 +3569,13 @@ $debug ||
 
 {
   tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
+  test -d "$tmp"
 }  ||
 {
   tmp=./conf$$-$RANDOM
   (umask 077 && mkdir "$tmp")
 } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
 
 # Set up the scripts for CONFIG_FILES section.
 # No need to generate them if there are no CONFIG_FILES.
@@ -3557,7 +3597,7 @@ else
   ac_cs_awk_cr=$ac_cr
 fi
 
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
 _ACEOF
 
 
@@ -3585,7 +3625,7 @@ done
 rm -f conf$$subs.sh
 
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
 _ACEOF
 sed -n '
 h
@@ -3633,7 +3673,7 @@ t delim
 rm -f conf$$subs.awk
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
   for (key in S) S_is_set[key] = 1
   FS = ""
 
@@ -3665,7 +3705,7 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
   sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
 else
   cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
   || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
 _ACEOF
 
@@ -3724,7 +3764,7 @@ do
     for ac_f
     do
       case $ac_f in
-      -) ac_f="$tmp/stdin";;
+      -) ac_f="$ac_tmp/stdin";;
       *) # Look for the file first in the build tree, then in the source tree
         # (if the path is not absolute).  The absolute path cannot be 
DOS-style,
         # because $ac_f cannot contain `:'.
@@ -3759,7 +3799,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
     esac
 
     case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin" \
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
       || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
     esac
     ;;
@@ -3896,21 +3936,22 @@ s&@INSTALL@&$ac_INSTALL&;t t
 s&@MKDIR_P@&$ac_MKDIR_P&;t t
 $ac_datarootdir_hack
 "
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" 
>$tmp/out \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' "$tmp/out"`; test -z 
"$ac_out"; } &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a 
reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&5
 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable 
\`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&2;}
 
-  rm -f "$tmp/stdin"
+  rm -f "$ac_tmp/stdin"
   case $ac_file in
-  -) cat "$tmp/out" && rm -f "$tmp/out";;
-  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
   esac \
   || as_fn_error $? "could not create $ac_file" "$LINENO" 5
  ;;
diff --git a/doc/.cvsignore b/doc/.cvsignore
deleted file mode 100644
index a3ce790..0000000
--- a/doc/.cvsignore
+++ /dev/null
@@ -1,14 +0,0 @@
-Makefile
-automake.info*
-automake.dvi
-automake-[0-9].*
-*.log
-log
-diffs
-automake.vrs automake.cps automake.tr automake.op automake.cv
-automake.ov automake.toc automake.pg automake.ky automake.tp
-automake.vr automake.fn automake.cp automake.aux
-automake.cm automake.ps automake.html
-*.gz
-stamp-vti
-version.texi
diff --git a/doc/automake.texi b/doc/automake.texi
index 45d398f..5ae565c 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -343,6 +343,7 @@ Frequently Asked Questions about Automake
 * Multiple Outputs::            Writing rules for tools with many output files
 * Hard-Coded Install Paths::    Installing to hard-coded locations
 * Debugging Make Rules::        Strategies when things don't work as expected
+* Reporting Bugs::              Feedback on bugs and feature requests
 
 History of Automake
 
@@ -424,8 +425,7 @@ to be built.
 @cindex Reporting bugs
 @cindex E-mail, bug reports
 
-Mail suggestions and bug reports for Automake to
address@hidden@value{PACKAGE_BUGREPORT}}.
+For more information on bug reports, @xref{Reporting Bugs}.
 
 @node Autotools Introduction
 @chapter An Introduction to the Autotools
@@ -1759,12 +1759,12 @@ for instance, a @code{bin_PROGRAMS} variable definition 
will cause rules
 for compiling and linking programs to be generated.
 
 @cindex Non-standard targets
address@hidden @code{cvs-dist}, non-standard example
address@hidden cvs-dist
address@hidden @code{git-dist}, non-standard example
 @trindex git-dist
 
 The variable definitions and rules in the @file{Makefile.am} are
-copied verbatim into the generated file.  This allows you to add
+copied mostly verbatim into the generated file, with all variable
+definitions preceding all rules.  This allows you to add almost
 arbitrary code into the generated @file{Makefile.in}.  For instance,
 the Automake distribution includes a non-standard rule for the
 @code{git-dist} target, which the Automake maintainer uses to make
@@ -4699,11 +4699,12 @@ this purpose.
 
 @cindex @code{_DEPENDENCIES}, defined
 @vindex maude_DEPENDENCIES
address@hidden EXTRA_maude_DEPENDENCIES
 It is also occasionally useful to have a program depend on some other
 target that is not actually part of that program.  This can be done
-using the @address@hidden variable.  Each program
-depends on the contents of such a variable, but no further
-interpretation is done.
+using either the @address@hidden or the
address@hidden@var{prog}_DEPENDENCIES} variable.  Each program depends on
+the contents both variables, but no further interpretation is done.
 
 Since these dependencies are associated to the link rule used to
 create the programs they should normally list files used by the link
@@ -4726,6 +4727,10 @@ generated.
 @ref{Conditional Sources} shows a situation where @code{_DEPENDENCIES}
 may be used.
 
+The @address@hidden may be useful for cases where
+you merely want to augment the @command{automake}-generated
address@hidden@var{prog}_DEPENDENCIES} rather than replacing it.
+
 @cindex @code{LDADD} and @option{-l}
 @cindex @option{-l} and @code{LDADD}
 We recommend that you avoid using @option{-l} options in @code{LDADD}
@@ -5593,6 +5598,7 @@ option, so they should not be mode-specific options 
(those belong to
 the compiler or linker flags).  @xref{Libtool Flags}.
 
 @item maude_DEPENDENCIES
address@hidden EXTRA_maude_DEPENDENCIES
 It is also occasionally useful to have a target (program or library)
 depend on some other file that is not actually part of that target.
 This can be done using the @code{_DEPENDENCIES} variable.  Each
@@ -5623,6 +5629,10 @@ compilation using an @code{AC_SUBST} variable that 
contains a list of
 objects.  @xref{Conditional Sources}, and @ref{Conditional Libtool
 Sources}.
 
+The @code{EXTRA_*_DEPENDENCIES} variable may be useful for cases where
+you merely want to augment the @command{automake}-generated
address@hidden variable rather than replacing it.
+
 @item maude_LINK
 You can override the linker on a per-program basis.  By default the
 linker is chosen according to the languages used by the program.  For
@@ -5833,9 +5843,10 @@ However there is no need to list the corresponding 
sources in
 automatically adds @samp{$(LIBOBJS)} and @samp{$(ALLOCA)} to the
 dependencies, and it will discover the list of corresponding source
 files automatically (by tracing the invocations of the
address@hidden Autoconf macros).  However, if you have already
-defined @samp{*_DEPENDENCIES} explicitly for an unrelated reason, then
-you have to add these variables manually.
address@hidden Autoconf macros).  If you have already defined
address@hidden explicitly for an unrelated reason, then you
+either need to add these variables manually, or use
address@hidden instead of @samp{*_DEPENDENCIES}.
 
 These variables are usually used to build a portability library that
 is linked with all the programs of the project.  We now review a
@@ -8255,8 +8266,8 @@ subdirectories in @code{EXTRA_DIST}.
 You can also mention a directory in @code{EXTRA_DIST}; in this case the
 entire directory will be recursively copied into the distribution.
 Please note that this will also copy @emph{everything} in the directory,
-including CVS/RCS version control files.  We recommend against using
-this feature.
+including, e.g., Subversion's @file{.svn} private directories or CVS/RCS
+version control files.  We recommend against using this feature.
 
 @vindex SUBDIRS
 @vindex DIST_SUBDIRS
@@ -8317,7 +8328,7 @@ recursively included by specifying a directory in 
EXTRA_DIST:
 EXTRA_DIST = doc
 
 dist-hook:
-        rm -rf `find $(distdir)/doc -name CVS`
+        rm -rf `find $(distdir)/doc -type d -name .svn`
 @end example
 
 @vindex distdir
@@ -8447,9 +8458,13 @@ Automake generates rules to provide archives of the 
project for
 distributions in various formats.  Their targets are:
 
 @table @asis
address@hidden BZIP2
 @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}.
 @trindex dist-bzip2
 
 @item @code{dist-gzip}
@@ -8472,10 +8487,15 @@ instead.
 Generate a shar archive of the distribution.
 @trindex dist-shar
 
address@hidden XZ_OPT
 @item @code{dist-xz}
 Generate an @samp{xz} tar archive of the distribution.  @command{xz}
 archives are frequently smaller than @command{bzip2}-compressed archives.
 The @samp{xz} format displaces the obsolete @samp{lzma} format.
+By default, this rule makes @samp{xz} use a compression option of @option{-9}.
+To make it use a different one, set the @env{XZ_OPT} environment variable.
+For example, run this command to use the default compression ratio, but
+with a progress indicator: @samp{make dist-xz XZ_OPT=-7e}.
 @trindex dist-xz
 
 @item @code{dist-zip}
@@ -10379,6 +10399,7 @@ lists.
 * Multiple Outputs::            Writing rules for tools with many output files
 * Hard-Coded Install Paths::    Installing to hard-coded locations
 * Debugging Make Rules::        Strategies when things don't work as expected
+* Reporting Bugs::              Feedback on bugs and feature requests
 @end menu
 
 @node CVS
@@ -10563,9 +10584,10 @@ Besides the warning, when a tool is missing, 
@command{missing} will
 attempt to fix timestamps in a way that allows the build to continue.
 For instance, @command{missing} will touch @file{configure} if
 @command{autoconf} is not installed.  When all distributed files are
-kept under CVS, this feature of @command{missing} allows a user
address@hidden no maintainer tools} to build a package off CVS, bypassing
-any timestamp inconsistency implied by @samp{cvs update}.
+kept under version control, this feature of @command{missing} allows a
+user @emph{with no maintainer tools} to build a package off its version
+control repository, bypassing any timestamp inconsistency (implied by
+e.g.@: @samp{cvs update} or @samp{git clone}).
 
 If the required tool is installed, @command{missing} will run it and
 won't attempt to continue after failures.  This is correct during
@@ -10620,9 +10642,9 @@ swayed by Fran@,{c}ois's arguments, and got rid of
 @code{AM_MAINTAINER_MODE} in all of his packages.
 
 Still many people continue to use @code{AM_MAINTAINER_MODE}, because
-it helps them working on projects where all files are kept under CVS,
-and because @command{missing} isn't enough if you have the wrong
-version of the tools.
+it helps them working on projects where all files are kept under version
+control, and because @command{missing} isn't enough if you have the
+wrong version of the tools.
 
 
 @node Wildcards
@@ -11398,11 +11420,15 @@ data.h data.w data.x: data.c
         fi
 @end example
 
-However there are now two minor problems in this setup.  One is related
+However there are now three minor problems in this setup.  One is related
 to the timestamp ordering of @file{data.h}, @file{data.w},
address@hidden, and @file{data.c}.  The other one is a race condition
address@hidden, and @file{data.c}.  Another one is a race condition
 if a parallel @command{make} attempts to run multiple instances of the
-recover block at once.
+recover block at once.  Finally, the recursive rule breaks @samp{make -n}
+when run with GNU @command{make} (as well as some other @command{make}
+implementations), as it may remove @file{data.h} even when it should not
+(@pxref{MAKE Variable, , How the @code{MAKE} Variable Works, make,
+The GNU Make Manual}).
 
 Let us deal with the first problem.  @command{foo} outputs four files,
 but we do not know in which order these files are created.  Suppose
@@ -11510,8 +11536,8 @@ elc-stamp: $(ELFILES)
         @@mv -f elc-temp $@@
 
 $(ELCFILES): elc-stamp
-## Recover from the removal of $@@
         @@if test -f $@@; then :; else \
+## Recover from the removal of $@@
           trap 'rm -rf elc-lock elc-stamp' 1 2 13 15; \
           if mkdir elc-lock 2>/dev/null; then \
 ## This code is being executed by the first process.
@@ -11524,10 +11550,58 @@ $(ELCFILES): elc-stamp
             while test -d elc-lock; do sleep 1; done; \
 ## Succeed if and only if the first process succeeded.
             test -f elc-stamp; exit $$?; \
address@hidden $$
           fi; \
         fi
 @end example
+
+These solutions all still suffer from the third problem, namely that
+they break the promise that @samp{make -n} should not cause any actual
+changes to the tree.  For those solutions that do not create lock files,
+it is possible to split the recover rules into two separate recipe
+commands, one of which does all work but the recursion, and the
+other invokes the recursive @samp{$(MAKE)}.  The solutions involving
+locking could act upon the contents of the @samp{MAKEFLAGS} variable,
+but parsing that portably is not easy (@pxref{The Make Macro MAKEFLAGS,,,
+autoconf, The Autoconf Manual}).  Here is an example:
+
address@hidden
+ELFILES = one.el two.el three.el @dots{}
+ELCFILES = $(ELFILES:=c)
+
+elc-stamp: $(ELFILES)
+        @@rm -f elc-temp
+        @@touch elc-temp
+        $(elisp_comp) $(ELFILES)
+        @@mv -f elc-temp $@@
+
+$(ELCFILES): elc-stamp
+## Recover from the removal of $@@
+        @@dry=; for f in x $$MAKEFLAGS; do \
+          case $$f in \
+            *=*|--*);; \
+            *n*) dry=:;; \
+          esac; \
+        done; \
+        if test -f $@@; then :; else \
+          $$dry trap 'rm -rf elc-lock elc-stamp' 1 2 13 15; \
+          if $$dry mkdir elc-lock 2>/dev/null; then \
+## This code is being executed by the first process.
+            $$dry rm -f elc-stamp; \
+            $(MAKE) $(AM_MAKEFLAGS) elc-stamp; \
+            $$dry rmdir elc-lock; \
+          else \
+## This code is being executed by the follower processes.
+## Wait until the first process is done.
+            while test -d elc-lock && test -z "$$dry"; do \
 @c $$
+              sleep 1; \
+            done; \
+## Succeed if and only if the first process succeeded.
+            $$dry test -f elc-stamp; exit $$?; \
+          fi; \
+        fi
address@hidden example
 
 For completeness it should be noted that GNU @command{make} is able to
 express rules with multiple output files using pattern rules
@@ -11718,6 +11792,45 @@ a debugger.
 @end itemize
 
 
address@hidden Reporting Bugs
address@hidden Reporting Bugs
+
+Most nontrivial software has bugs.  Automake is no exception.  Although
+we cannot promise we can or will fix a bug, and we might not even agree
+that it is a bug, we want to hear about problems you encounter. Often we
+agree they are bugs and want to fix them.
+
+To make it possible for us to fix a bug, please report it. In order to
+do so effectively, it helps to know when and how to do it.
+
+Before reporting a bug, it is a good idea to see if it is already known.
+You can look at the @uref{http://debbugs.gnu.org/, GNU Bug Tracker}
+and the @uref{http://lists.gnu.org/@/archive/@/html/@/bug-automake/,
+bug-automake mailing list archives} for previous bug reports.  We
+previously used a
address@hidden://sourceware.org/@/cgi-bin/@/gnatsweb.pl?database=automake,
+Gnats database} for bug tracking, so some bugs might have been reported
+there already.  Please do not use it for new bug reports, however.
+
+If the bug is not already known, it should be reported.  It is very
+important to report bugs in a way that is useful and efficient.  For
+this, please familiarize yourself with
address@hidden://www.chiark.greenend.org.uk/@/~sgtatham/@/bugs.html, How to
+Report Bugs Effectively} and
address@hidden://catb.org/@/~esr/@/faqs/@/smart-questions.html, How to Ask
+Questions the Smart Way}.  This helps you and developers to save time
+which can then be spent on fixing more bugs and implementing more
+features.
+
+For a bug report, a feature request or other suggestions, please send
+email to @address@hidden  This will then open a new
+bug in the @uref{http://debbugs.gnu.org/@/automake, bug tracker}.  Be
+sure to include the versions of Autoconf and Automake that you use.
+Ideally, post a minimal @file{Makefile.am} and @file{configure.ac} that
+reproduces the problem you encounter.  If you have encountered test
+suite failures, please attach the @file{tests/test-suite.log} file.
+
+
 @node History
 @chapter History of Automake
 
diff --git a/lib/.cvsignore b/lib/.cvsignore
deleted file mode 100644
index f3c7a7c..0000000
--- a/lib/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/Automake/.cvsignore b/lib/Automake/.cvsignore
deleted file mode 100644
index bbad8cb..0000000
--- a/lib/Automake/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Config.pm
diff --git a/lib/Automake/ChannelDefs.pm b/lib/Automake/ChannelDefs.pm
index 57948bd..470e6c7 100644
--- a/lib/Automake/ChannelDefs.pm
+++ b/lib/Automake/ChannelDefs.pm
@@ -80,7 +80,7 @@ Fatal errors.  Use C<&fatal> to send messages over this 
channel.
 
 =item C<error>
 
-Common errors.   Use C<&error> to send messages over this channel.
+Common errors.  Use C<&error> to send messages over this channel.
 
 =item C<error-gnu>
 
diff --git a/lib/Automake/Channels.pm b/lib/Automake/Channels.pm
index aeed4db..06f0443 100644
--- a/lib/Automake/Channels.pm
+++ b/lib/Automake/Channels.pm
@@ -15,7 +15,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ###############################################################
-# The main copy of this file is in Automake's CVS repository. #
+# The main copy of this file is in Automake's git repository. #
 # Updates should be sent to address@hidden         #
 ###############################################################
 
@@ -503,7 +503,7 @@ sub _print_message ($$%)
   my $msg = _format_message ($location, $message, %opts);
   if ($opts{'partial'})
     {
-      # Incomplete message.   Store, don't print.
+      # Incomplete message.  Store, don't print.
       $partial .= $msg;
       return;
     }
diff --git a/lib/Automake/Configure_ac.pm b/lib/Automake/Configure_ac.pm
index 4f0e445..3574035 100644
--- a/lib/Automake/Configure_ac.pm
+++ b/lib/Automake/Configure_ac.pm
@@ -15,7 +15,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ###############################################################
-# The main copy of this file is in Automake's CVS repository. #
+# The main copy of this file is in Automake's git repository. #
 # Updates should be sent to address@hidden         #
 ###############################################################
 
diff --git a/lib/Automake/FileUtils.pm b/lib/Automake/FileUtils.pm
index e39750d..ba7afc0 100644
--- a/lib/Automake/FileUtils.pm
+++ b/lib/Automake/FileUtils.pm
@@ -15,7 +15,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ###############################################################
-# The main copy of this file is in Automake's CVS repository. #
+# The main copy of this file is in Automake's git repository. #
 # Updates should be sent to address@hidden         #
 ###############################################################
 
diff --git a/lib/Automake/Rule.pm b/lib/Automake/Rule.pm
index d9d9ae0..b603120 100644
--- a/lib/Automake/Rule.pm
+++ b/lib/Automake/Rule.pm
@@ -488,7 +488,7 @@ sub suffixes ()
 =item C<rule ($rulename)>
 
 Return the C<Automake::Rule> object for the rule
-named C<$rulename> if defined.   Return 0 otherwise.
+named C<$rulename> if defined.  Return 0 otherwise.
 
 =cut
 
diff --git a/lib/Automake/Struct.pm b/lib/Automake/Struct.pm
index 9745779..ae42db2 100644
--- a/lib/Automake/Struct.pm
+++ b/lib/Automake/Struct.pm
@@ -1,5 +1,5 @@
 # autoconf -- create `configure' using m4 macros
-# Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2006, 2010 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
@@ -21,7 +21,7 @@
 # we would have two packages defining the same symbols.  Boom.
 
 ###############################################################
-# The main copy of this file is in Automake's CVS repository. #
+# The main copy of this file is in Automake's git repository. #
 # Updates should be sent to address@hidden         #
 ###############################################################
 
diff --git a/lib/Automake/Variable.pm b/lib/Automake/Variable.pm
index f75ec10..9b2c838 100644
--- a/lib/Automake/Variable.pm
+++ b/lib/Automake/Variable.pm
@@ -354,7 +354,7 @@ sub reset ()
 =item C<var ($varname)>
 
 Return the C<Automake::Variable> object for the variable
-named C<$varname> if defined.   Return 0 otherwise.
+named C<$varname> if defined.  Return 0 otherwise.
 
 =cut
 
diff --git a/lib/Automake/Version.pm b/lib/Automake/Version.pm
index 8b2a7bc..347f8f6 100644
--- a/lib/Automake/Version.pm
+++ b/lib/Automake/Version.pm
@@ -1,4 +1,4 @@
-# Copyright (C) 2001, 2002, 2003  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2010 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
@@ -39,7 +39,7 @@ C<MICRO> are digits, C<ALPHA> is a character, and C<FORK> any
 alphanumeric word.
 
 Usually, C<ALPHA> is used to label alpha releases or intermediate
-snapshots, C<FORK> is used for CVS branches or patched releases, and
+snapshots, C<FORK> is used for git branches or patched releases, and
 C<MICRO> is used for bug fixes releases on the C<MAJOR.MINOR> branch.
 
 For the purpose of ordering, C<1.4> is the same as C<1.4.0>, but
diff --git a/lib/Automake/XFile.pm b/lib/Automake/XFile.pm
index 67298f9..4ba84ce 100644
--- a/lib/Automake/XFile.pm
+++ b/lib/Automake/XFile.pm
@@ -17,7 +17,7 @@
 # Written by Akim Demaille <address@hidden>.
 
 ###############################################################
-# The main copy of this file is in Automake's CVS repository. #
+# The main copy of this file is in Automake's git repository. #
 # Updates should be sent to address@hidden         #
 ###############################################################
 
diff --git a/lib/Automake/tests/.cvsignore b/lib/Automake/tests/.cvsignore
deleted file mode 100644
index f3c7a7c..0000000
--- a/lib/Automake/tests/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/Automake/tests/Makefile.in b/lib/Automake/tests/Makefile.in
index 34e58db..dd5b61b 100644
--- a/lib/Automake/tests/Makefile.in
+++ b/lib/Automake/tests/Makefile.in
@@ -122,7 +122,7 @@ am__text_box = $(AWK) '{                            \
   print line;                                          \
 }'
 # Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL).  This contradicts POSIX.  Work around the problem
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
 # by disabling -e (using the XSI extension "set +e") if it's set.
 am__sh_e_setup = case $$- in *e*) set +e;; esac
 # To be inserted before the command running the test.  Creates the
@@ -145,6 +145,35 @@ elif test -f "$$f"; then dir=;                             
\
 else dir="$(srcdir)/"; fi;                             \
 tst=$$dir$$f; log='$@'; __SAVED_TERM=$$TERM;           \
 $(TESTS_ENVIRONMENT)
+# To be appended to the command running the test.  Handle the stdout
+# and stderr redirection, and catch the exit status.
+am__check_post = \
+>address@hidden 2>&1;                                          \
+estatus=$$?;                                           \
+if test -n '$(DISABLE_HARD_ERRORS)'                    \
+   && test $$estatus -eq 99; then                      \
+  estatus=1;                                           \
+fi;                                                    \
+TERM=$$__SAVED_TERM; export TERM;                      \
+$(am__tty_colors);                                     \
+xfailed=PASS;                                          \
+case " $(XFAIL_TESTS) " in                             \
+  *[\ \        ]$$f[\ \        ]* | *[\ \      ]$$dir$$f[\ \   ]*) \
+    xfailed=XFAIL;;                                    \
+esac;                                                  \
+case $$estatus.$$xfailed in                            \
+    0.XFAIL) col=$$red; res=XPASS;;                    \
+    0.*)     col=$$grn; res=PASS ;;                    \
+    77.*)    col=$$blu; res=SKIP ;;                    \
+    99.*)    col=$$red; res=FAIL ;;                    \
+    *.XFAIL) col=$$lgn; res=XFAIL;;                    \
+    *.*)     col=$$red; res=FAIL ;;                    \
+esac;                                                  \
+echo "$${col}$$res$${std}: $$f";                       \
+echo "$$res: $$f (exit: $$estatus)" |                  \
+  $(am__rst_section) >$@;                              \
+cat address@hidden >>$@;                                               \
+rm -f address@hidden
 RECHECK_LOGS = $(TEST_LOGS)
 AM_RECURSIVE_TARGETS = check check-html recheck recheck-html
 TEST_SUITE_LOG = test-suite.log
@@ -314,36 +343,6 @@ CTAGS:
 cscope cscopelist:
 
 
-# To be appended to the command running the test.  Handle the stdout
-# and stderr redirection, and catch the exit status.
-am__check_post =                                       \
->address@hidden 2>&1;                                          \
-estatus=$$?;                                           \
-if test -n '$(DISABLE_HARD_ERRORS)'                    \
-   && test $$estatus -eq 99; then                      \
-  estatus=1;                                           \
-fi;                                                    \
-TERM=$$__SAVED_TERM; export TERM;                      \
-$(am__tty_colors);                                     \
-xfailed=PASS;                                          \
-case " $(XFAIL_TESTS) " in                             \
-  *[\ \        ]$$f[\ \        ]* | *[\ \      ]$$dir$$f[\ \   ]*) \
-    xfailed=XFAIL;;                                    \
-esac;                                                  \
-case $$estatus:$$xfailed in                            \
-    0:XFAIL) col=$$red; res=XPASS;;                    \
-    0:*)     col=$$grn; res=PASS ;;                    \
-    77:*)    col=$$blu; res=SKIP ;;                    \
-    99:*)    col=$$red; res=FAIL ;;                    \
-    *:XFAIL) col=$$lgn; res=XFAIL;;                    \
-    *:*)     col=$$red; res=FAIL ;;                    \
-esac;                                                  \
-echo "$${col}$$res$${std}: $$f";                       \
-echo "$$res: $$f (exit: $$estatus)" |                  \
-  $(am__rst_section) >$@;                              \
-cat address@hidden >>$@;                                               \
-rm -f address@hidden
-
 $(TEST_SUITE_LOG): $(TEST_LOGS)
        @$(am__sh_e_setup);                                             \
        list='$(TEST_LOGS)';                                            \
diff --git a/lib/am/.cvsignore b/lib/am/.cvsignore
deleted file mode 100644
index f3c7a7c..0000000
--- a/lib/am/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/lib/am/check.am b/lib/am/check.am
index e519391..c953be8 100644
--- a/lib/am/check.am
+++ b/lib/am/check.am
@@ -87,7 +87,7 @@ am__text_box = $(AWK) '{                              \
 }'
 
 # Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL).  This contradicts POSIX.  Work around the problem
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
 # by disabling -e (using the XSI extension "set +e") if it's set.
 am__sh_e_setup = case $$- in *e*) set +e;; esac
 
@@ -128,13 +128,13 @@ case " $(XFAIL_TESTS) " in                                
\
   *[\ \        ]$$f[\ \        ]* | *[\ \      ]$$dir$$f[\ \   ]*) \
     xfailed=XFAIL;;                                    \
 esac;                                                  \
-case $$estatus:$$xfailed in                            \
-    0:XFAIL) col=$$red; res=XPASS;;                    \
-    0:*)     col=$$grn; res=PASS ;;                    \
-    77:*)    col=$$blu; res=SKIP ;;                    \
-    99:*)    col=$$red; res=FAIL ;;                    \
-    *:XFAIL) col=$$lgn; res=XFAIL;;                    \
-    *:*)     col=$$red; res=FAIL ;;                    \
+case $$estatus.$$xfailed in                            \
+    0.XFAIL) col=$$red; res=XPASS;;                    \
+    0.*)     col=$$grn; res=PASS ;;                    \
+    77.*)    col=$$blu; res=SKIP ;;                    \
+    99.*)    col=$$red; res=FAIL ;;                    \
+    *.XFAIL) col=$$lgn; res=XFAIL;;                    \
+    *.*)     col=$$red; res=FAIL ;;                    \
 esac;                                                  \
 echo "$${col}$$res$${std}: $$f";                       \
 echo "$$res: $$f (exit: $$estatus)" |                  \
diff --git a/lib/am/distdir.am b/lib/am/distdir.am
index fd82838..185d34c 100644
--- a/lib/am/distdir.am
+++ b/lib/am/distdir.am
@@ -140,7 +140,7 @@ endif %?TOPDIR_P%
 ## we are not stripping a legitimate filename that starts with the
 ## same pattern as $(srcdir)?
 ## Well, it can't happen without the Makefile author distributing
-## something out of the distribution (which is bad).   As an example,
+## something out of the distribution (which is bad).  As an example,
 ## consider `EXTRA_DIST = ../bar'.  This is an issue if $srcdir is `..',
 ## however getting this value for srcdir is impossible: `EXTRA_DIST = ../bar'
 ## implies we are in a subdirectory (so `../bar' is within the package),
@@ -345,7 +345,7 @@ dist-gzip: distdir
 ?BZIP2?DIST_ARCHIVES += $(distdir).tar.bz2
 .PHONY: dist-bzip2
 dist-bzip2: distdir
-       tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+       tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c 
>$(distdir).tar.bz2
        $(am__post_remove_distdir)
 
 ?LZIP?DIST_ARCHIVES += $(distdir).tar.lz
@@ -363,7 +363,7 @@ dist-lzma: distdir
 ?XZ?DIST_ARCHIVES += $(distdir).tar.xz
 .PHONY: dist-xz
 dist-xz: distdir
-       tardir=$(distdir) && $(am__tar) | xz -9 -c >$(distdir).tar.xz
+       tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--9} xz -c 
>$(distdir).tar.xz
        $(am__post_remove_distdir)
 
 ?COMPRESS?DIST_ARCHIVES += $(distdir).tar.Z
diff --git a/lib/am/library.am b/lib/am/library.am
index ce94e5e..db096c7 100644
--- a/lib/am/library.am
+++ b/lib/am/library.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1999, 2003, 2009 Free Software
+## Copyright (C) 1994, 1995, 1996, 1999, 2003, 2009, 2010 Free Software
 ## Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
@@ -14,7 +14,7 @@
 
 ## You should have received a copy of the GNU General Public License
 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
-%LIBRARY%: $(%XLIBRARY%_OBJECTS) $(%XLIBRARY%_DEPENDENCIES) %DIRSTAMP%
+%LIBRARY%: $(%XLIBRARY%_OBJECTS) $(%XLIBRARY%_DEPENDENCIES) 
$(EXTRA_%XLIBRARY%_DEPENDENCIES) %DIRSTAMP%
        %SILENT%-rm -f %LIBRARY%
        %VERBOSE%$(%XLIBRARY%_AR) %LIBRARY% $(%XLIBRARY%_OBJECTS) 
$(%XLIBRARY%_LIBADD)
        %SILENT%$(RANLIB) %LIBRARY%
diff --git a/lib/am/lisp.am b/lib/am/lisp.am
index 3449d18..ab45b30 100644
--- a/lib/am/lisp.am
+++ b/lib/am/lisp.am
@@ -1,6 +1,6 @@
 ## automake - create Makefile.in from Makefile.am
 ## Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-## 2007, 2008, 2009 Free Software Foundation, Inc.
+## 2007, 2008, 2009, 2010 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
@@ -49,7 +49,16 @@ $(am__ELCFILES): elc-stamp
 ##
 ## Do not call `make elc-stamp' if emacs is not available, because it would
 ## be useless.
-       @if test "$(EMACS)" != no && test ! -f $@; then \
+##
+## If `make -n' is called, do not execute any command in the recipe that
+## changes the tree; however, invoke the recursive make for debuggability.
+       @dry=; for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=*|--*);; \
+           *n*) dry=:;; \
+         esac; \
+       done; \
+       if test "$(EMACS)" != no && test ! -f $@; then \
 ## If `make -j' is used and more than one file has been erased, several
 ## processes can execute this block.  We have to make sure that only
 ## the first one will run `$(MAKE) $(AM_MAKEFLAGS) elc-stamp', and the
@@ -58,18 +67,18 @@ $(am__ELCFILES): elc-stamp
 ## There is a race here if only one child of make receive a signal.
 ## In that case the build may fail.  We remove elc-stamp when we receive
 ## a signal so we are sure the build will succeed the next time.
-         trap 'rm -rf elc-lock elc-stamp' 1 2 13 15; \
-         if mkdir elc-lock 2>/dev/null; then \
+         $$dry trap 'rm -rf elc-lock elc-stamp' 1 2 13 15; \
+         if $$dry mkdir elc-lock 2>/dev/null; then \
 ## This code is being executed by the first process.
-           rm -f elc-stamp; \
+           $$dry rm -f elc-stamp; \
            $(MAKE) $(AM_MAKEFLAGS) elc-stamp; \
-           rmdir elc-lock; \
+           $$dry rmdir elc-lock; \
          else \
 ## This code is being executed by the follower processes.
 ## Wait until the first process is done.
-           while test -d elc-lock; do sleep 1; done; \
+           while test -d elc-lock && test -z "$$dry"; do sleep 1; done; \
 ## Succeed if and only if the first process succeeded.
-           test -f elc-stamp; exit $$?; \
+           $$dry test -f elc-stamp; exit $$?; \
          fi; \
        else : ; fi
 
diff --git a/lib/am/ltlibrary.am b/lib/am/ltlibrary.am
index 9455234..3cd2941 100644
--- a/lib/am/ltlibrary.am
+++ b/lib/am/ltlibrary.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 2003, 2005, 2008, 2009 Free Software
+## Copyright (C) 1994, 1995, 1996, 2003, 2005, 2008, 2009, 2010 Free Software
 ## Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
@@ -14,5 +14,5 @@
 
 ## You should have received a copy of the GNU General Public License
 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
-%LTLIBRARY%: $(%XLTLIBRARY%_OBJECTS) $(%XLTLIBRARY%_DEPENDENCIES) %DIRSTAMP%
+%LTLIBRARY%: $(%XLTLIBRARY%_OBJECTS) $(%XLTLIBRARY%_DEPENDENCIES) 
$(EXTRA_%XLTLIBRARY%_DEPENDENCIES) %DIRSTAMP%
        %VERBOSE%$(%XLINK%) %RPATH% $(%XLTLIBRARY%_OBJECTS) 
$(%XLTLIBRARY%_LIBADD) $(LIBS)
diff --git a/lib/am/program.am b/lib/am/program.am
index 7e568e7..c0e188f 100644
--- a/lib/am/program.am
+++ b/lib/am/program.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1997, 2001, 2003, 2005, 2009
+## Copyright (C) 1994, 1995, 1996, 1997, 2001, 2003, 2005, 2009, 2010
 ## Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
@@ -14,7 +14,7 @@
 
 ## You should have received a copy of the GNU General Public License
 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
-%PROGRAM%%EXEEXT%: $(%XPROGRAM%_OBJECTS) $(%XPROGRAM%_DEPENDENCIES) %DIRSTAMP%
+%PROGRAM%%EXEEXT%: $(%XPROGRAM%_OBJECTS) $(%XPROGRAM%_DEPENDENCIES) 
$(EXTRA_%XPROGRAM%_DEPENDENCIES) %DIRSTAMP%
 ## Remove program before linking.  Otherwise the link will fail if the
 ## program is running somewhere.  FIXME: this could be a loss if
 ## you're using an incremental linker.  Maybe we should think twice?
diff --git a/lib/am/remake-hdr.am b/lib/am/remake-hdr.am
index 5077be2..35f4a46 100644
--- a/lib/am/remake-hdr.am
+++ b/lib/am/remake-hdr.am
@@ -1,6 +1,6 @@
 ## automake - create Makefile.in from Makefile.am
 ## Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2003, 2004, 2005,
-## 2008, 2009 Free Software Foundation, Inc.
+## 2008, 2009, 2010 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
@@ -20,10 +20,8 @@
 
 %CONFIG_H%: %STAMP%
 ## Recover from removal of CONFIG_HEADER
-       @if test ! -f $@; then \
-         rm -f %STAMP%; \
-         $(MAKE) $(AM_MAKEFLAGS) %STAMP%; \
-       else :; fi
+       @if test ! -f $@; then rm -f %STAMP%; else :; fi
+       @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) %STAMP%; else :; fi
 
 
 %STAMP%: %CONFIG_H_DEPS% $(top_builddir)/config.status
diff --git a/lib/ar-lib b/lib/ar-lib
index ef03430..4883fef 100755
--- a/lib/ar-lib
+++ b/lib/ar-lib
@@ -2,7 +2,7 @@
 # Wrapper for Microsoft lib.exe
 
 me=ar-lib
-scriptversion=2010-08-12.16; # UTC
+scriptversion=2010-09-02.19; # UTC
 
 # Copyright (C) 2010 Free Software
 # Foundation, Inc.
@@ -219,7 +219,7 @@ elif test -n "$extract"; then
       esac
     done
   else
-    $AR -NOLOGO -LIST "$archive" | while read member
+    $AR -NOLOGO -LIST "$archive" | sed -e 's/\\/\\\\/g' | while read member
     do
       $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $?
     done
diff --git a/lib/compile b/lib/compile
index 77f8f31..46caccc 100755
--- a/lib/compile
+++ b/lib/compile
@@ -1,7 +1,7 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand `-c -o'.
 
-scriptversion=2010-08-31.19; # UTC
+scriptversion=2010-09-21.14; # UTC
 
 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010 Free Software
 # Foundation, Inc.
@@ -80,10 +80,12 @@ func_file_conv ()
 }
 
 # func_cl_wrapper cl arg...
-# Adjust compile command to suite cl
+# Adjust compile command to suit cl
 func_cl_wrapper ()
 {
   # Assume a capable shell
+  lib_path=
+  shared=:
   linker_opts=
   for arg
   do
@@ -113,13 +115,41 @@ func_cl_wrapper ()
          shift
          ;;
        -l*)
-         set x "$@" "${1#-l}.lib"
+         lib=${1#-l}
+         found=no
+         save_IFS=$IFS
+         IFS=';'
+         for dir in $lib_path $LIB
+         do
+           IFS=$save_IFS
+           if $shared && test -f "$dir/$lib.dll.lib"; then
+             found=yes
+             set x "$@" "$dir/$lib.dll.lib"
+             break
+           fi
+           if test -f "$dir/$lib.lib"; then
+             found=yes
+             set x "$@" "$dir/$lib.lib"
+             break
+           fi
+         done
+         IFS=$save_IFS
+
+         test "$found" != yes && set x "$@" "$lib.lib"
          shift
          ;;
        -L*)
          func_file_conv "${1#-L}"
+         if test -z "$lib_path"; then
+           lib_path=$file
+         else
+           lib_path="$lib_path;$file"
+         fi
          linker_opts="$linker_opts -LIBPATH:$file"
          ;;
+       -static)
+         shared=false
+         ;;
        -Wl,*)
          arg=${1#-Wl,}
          save_ifs="$IFS"; IFS=','
diff --git a/lib/depcomp b/lib/depcomp
index df8eea7..c3163be 100755
--- a/lib/depcomp
+++ b/lib/depcomp
@@ -1,10 +1,10 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2010-10-07.20; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
-# Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010
+# 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
@@ -90,10 +90,18 @@ if test "$depmode" = msvcmsys; then
    # This is just like msvisualcpp but w/o cygpath translation.
    # Just convert the backslash-escaped backslashes to single forward
    # slashes to satisfy depend.m4
-   cygpath_u="sed s,\\\\\\\\,/,g"
+   cygpath_u='sed s,\\\\,/,g'
    depmode=msvisualcpp
 fi
 
+if test "$depmode" = msvc7msys; then
+   # This is just like msvc7 but w/o cygpath translation.
+   # Just convert the backslash-escaped backslashes to single forward
+   # slashes to satisfy depend.m4
+   cygpath_u='sed s,\\\\,/,g'
+   depmode=msvc7
+fi
+
 case "$depmode" in
 gcc3)
 ## gcc 3 implements dependency tracking that does exactly what
@@ -405,6 +413,52 @@ tru64)
    rm -f "$tmpdepfile"
    ;;
 
+msvc7)
+  if test "$libtool" = yes; then
+    showIncludes=-Wc,-showIncludes
+  else
+    showIncludes=-showIncludes
+  fi
+  "$@" $showIncludes > "$tmpdepfile"
+  stat=$?
+  grep -v '^Note: including file: ' "$tmpdepfile"
+  if test "$stat" = 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  # The first sed program below extracts the file names and escapes
+  # backslashes for cygpath.  The second sed program outputs the file
+  # name when reading, but also accumulates all include files in the
+  # hold buffer in order to output them again at the end.  This only
+  # works with sed implementations that can handle large buffers.
+  sed < "$tmpdepfile" -n '
+/^Note: including file:  *\(.*\)/ {
+  s//\1/
+  s/\\/\\\\/g
+  p
+}' | $cygpath_u | sort -u | sed -n '
+s/ /\\ /g
+s/\(.*\)/      \1 \\/p
+s/.\(.*\) \\/\1:/
+H
+$ {
+  s/.*/        /
+  G
+  p
+}' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvc7msys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
 #nosideeffect)
   # This comment above is used by automake to tell side-effect
   # dependency tracking mechanisms from slower ones.
diff --git a/m4/.cvsignore b/m4/.cvsignore
deleted file mode 100644
index f3c7a7c..0000000
--- a/m4/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/m4/depend.m4 b/m4/depend.m4
index 8304180..652c4c0 100644
--- a/m4/depend.m4
+++ b/m4/depend.m4
@@ -110,7 +110,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
        break
       fi
       ;;
-    msvisualcpp | msvcmsys)
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
       # This compiler won't grok `-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
diff --git a/m4/dmalloc.m4 b/m4/dmalloc.m4
index 4499015..aea5f9d 100644
--- a/m4/dmalloc.m4
+++ b/m4/dmalloc.m4
@@ -3,20 +3,19 @@
 ## From Franc,ois Pinard               ##
 ## ----------------------------------- ##
 
-# Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2005
+# Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2010
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
+# serial 4
 
 AC_DEFUN([AM_WITH_DMALLOC],
 [AC_MSG_CHECKING([if malloc debugging is wanted])
 AC_ARG_WITH(dmalloc,
-[  --with-dmalloc          use dmalloc, as in
-                         http://www.dmalloc.com/dmalloc.tar.gz],
+[  --with-dmalloc          use dmalloc, as in http://www.dmalloc.com],
 [if test "$withval" = yes; then
   AC_MSG_RESULT(yes)
   AC_DEFINE(WITH_DMALLOC,1,
diff --git a/m4/python.m4 b/m4/python.m4
index 1dc3985..50e1538 100644
--- a/m4/python.m4
+++ b/m4/python.m4
@@ -37,8 +37,8 @@ AC_DEFUN([AM_PATH_PYTHON],
   dnl Find a Python interpreter.  Python versions prior to 2.0 are not
   dnl supported. (2.0 was released on October 16, 2000).
   m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
-                    [python python2 python3 python3.1 python3.0 python2.6 
python2.5 python2.4 python2.3 python2.2 dnl
-python2.1 python2.0])
+[python python2 python3 python3.2 python3.1 python3.0 python2.7 dnl
+ python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0])
 
   m4_if([$1],[],[
     dnl No version check is needed.
diff --git a/m4/sanity.m4 b/m4/sanity.m4
index db87c8b..94e1e51 100644
--- a/m4/sanity.m4
+++ b/m4/sanity.m4
@@ -1,13 +1,13 @@
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008, 2009
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008, 2009, 2010
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 6
+# serial 7
 
 # AM_SANITY_CHECK
 # ---------------
@@ -32,14 +32,14 @@ esac
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
+   am_has_slept=no
    for am_try in 1 2; do
-     echo timestamp > conftest.file
+     echo "timestamp, slept: $am_has_slept" > conftest.file
      set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
      if test "$[*]" = "X"; then
        # -L didn't work.
        set X `ls -t "$srcdir/configure" conftest.file`
      fi
-     rm -f conftest.file
      if test "$[*]" != "X $srcdir/configure conftest.file" \
        && test "$[*]" != "X conftest.file $srcdir/configure"; then
 
@@ -55,6 +55,7 @@ if (
      fi
      # Just in case.
      sleep 1
+     am_has_slept=yes
    done
    test "$[2]" = conftest.file
    )
@@ -65,4 +66,19 @@ else
    AC_MSG_ERROR([newly created file is older than distributed files!
 Check your system clock])
 fi
-AC_MSG_RESULT(yes)])
+AC_MSG_RESULT(yes)
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+  AC_CONFIG_COMMANDS_PRE(
+    [if test -n "$am_sleep_pid"; then
+       AC_MSG_CHECKING([that generated files are newer than configure])
+       wait $am_sleep_pid
+       AC_MSG_RESULT([done])
+     fi])
+fi
+rm -f conftest.file
+])
diff --git a/m4/silent.m4 b/m4/silent.m4
index 6d2a1a2..432dd45 100644
--- a/m4/silent.m4
+++ b/m4/silent.m4
@@ -1,24 +1,29 @@
 ##                                                          -*- Autoconf -*-
-# Copyright (C) 2009  Free Software Foundation, Inc.
+# Copyright (C) 2009, 2010 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
+# serial 2
 
 # AM_SILENT_RULES([DEFAULT])
 # --------------------------
 # Enable less verbose build rules; with the default set to DEFAULT
 # (`yes' being less verbose, `no' or empty being verbose).
 AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules],
-[  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')])
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+  [--enable-silent-rules],
+  [less verbose build output (undo: `make V=1')])
+AS_HELP_STRING(
+  [--disable-silent-rules],
+  [verbose build output (undo: `make V=0')])dnl
+])
+case $enable_silent_rules in @%:@ (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
 esac
 AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
 AM_BACKSLASH='\'
diff --git a/tests/.cvsignore b/tests/.cvsignore
deleted file mode 100644
index 69d3d43..0000000
--- a/tests/.cvsignore
+++ /dev/null
@@ -1,10 +0,0 @@
-*.log
-Makefile
-aclocal
-automake
-defs
-diffs
-log
-*.dir
-aclocal-*
-automake-*
diff --git a/tests/.gitignore b/tests/.gitignore
index 61b0783..ff89b40 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -1,9 +1,12 @@
 aclocal-*
 automake-*
 defs
+instspc-tests.am
 parallel-tests.am
 *.dir
 *.log
 *.log-t
 *-p.test
-*-p.test-t
+instspc-*-build.test
+instspc-*-install.test
+*.test-t
diff --git a/tests/Makefile.am b/tests/Makefile.am
index f4fba45..d5ae622 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -16,17 +16,21 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-XFAIL_TESTS =                                  \
-all.test                                       \
-auxdir2.test                                   \
-cond17.test                                    \
-gcj6.test                                      \
+MAINTAINERCLEANFILES =
+EXTRA_DIST = ChangeLog-old
+
+XFAIL_TESTS = \
+all.test \
+auxdir2.test \
+cond17.test \
+gcj6.test \
 txinfo5.test
 
+
 include $(srcdir)/parallel-tests.am
 
 $(srcdir)/parallel-tests.am: gen-parallel-tests Makefile.am
-       $(AM_V_GEN)(cd $(srcdir) && $(SHELL) ./gen-parallel-tests) >$@
+       $(AM_V_GEN)($(am__cd) $(srcdir) && $(SHELL) ./gen-parallel-tests) >$@
 
 $(parallel_tests): Makefile.am
        $(AM_V_at)rm -f $@ address@hidden
@@ -51,7 +55,44 @@ $(parallel_tests): Makefile.am
        } > address@hidden
        $(AM_V_at)chmod a+rx address@hidden && mv -f address@hidden $@
 
-MAINTAINERCLEANFILES = $(parallel_tests)
+MAINTAINERCLEANFILES += $(parallel_tests)
+EXTRA_DIST += gen-parallel-tests
+
+
+include $(srcdir)/instspc-tests.am
+
+$(srcdir)/instspc-tests.am: instspc-tests.sh Makefile.am
+       $(AM_V_GEN)($(am__cd) $(srcdir) \
+         && $(SHELL) ./instspc-tests.sh --generate-makefile) >$@
+
+$(instspc_tests): Makefile.am
+       $(AM_V_at)rm -f $@ address@hidden
+       $(AM_V_GEN) :; \
+         base=`expr 'x/$@' : 'x.*/instspc-\(.*\)\.test$$'`; \
+         name=`expr x"$$base" : x'\(.*\)-'`; \
+         action=`expr x"$$base" : x'.*-\(.*\)'`; \
+         { \
+           echo '#!/bin/sh'; \
+           echo '# DO NOT EDIT!  GENERATED AUTOMATICALLY!'; \
+           echo; \
+           echo '# Ensure proper definition of $$testsrcdir.'; \
+           echo 'am_skip_defs=yes'; \
+           echo '. ./defs || exit 99'; \
+           echo 'test -n "$$testsrcdir" || exit 99 # sanity check'; \
+           echo; \
+           echo "instspc_test_name='$$name'"; \
+           echo "instspc_action='test-$$action'"; \
+           echo ". \$$testsrcdir/instspc-tests.sh"; \
+         } > address@hidden
+       $(AM_V_at)chmod a+rx address@hidden && mv -f address@hidden $@
+
+# All instspc*.test tests work by sourcing the instspc-tests.sh script.
+$(instspc_tests:.test=.log): instspc-tests.sh
+
+MAINTAINERCLEANFILES += $(instspc_tests)
+EXTRA_DIST += instspc-tests.sh
+XFAIL_TESTS += $(instspc_xfail_tests)
+
 
 TESTS = \
 aclibobj.test \
@@ -117,11 +158,18 @@ autohdr.test \
 autohdr2.test \
 autohdr3.test \
 autohdr4.test \
+autohdrdry.test \
 automake.test \
 auxdir.test \
 auxdir2.test \
 auxdir3.test \
 auxdir4.test \
+backcompat.test \
+backcompat2.test \
+backcompat3.test \
+backcompat4.test \
+backcompat5.test \
+backcompat6.test \
 backsl.test \
 backsl2.test \
 backsl3.test \
@@ -182,6 +230,7 @@ compile2.test \
 compile3.test \
 compile4.test \
 compile5.test \
+compile6.test \
 compile_f90_c_cxx.test \
 compile_f_c_cxx.test \
 cond.test \
@@ -247,6 +296,7 @@ confh4.test \
 confh5.test \
 confh6.test \
 confh7.test \
+confh8.test \
 confincl.test \
 conflnk.test \
 conflnk2.test \
@@ -310,6 +360,7 @@ distdir.test \
 distlinks.test \
 distlinksbrk.test \
 distname.test \
+dmalloc.test \
 dollar.test \
 dollarvar.test \
 dollarvar2.test \
@@ -343,6 +394,8 @@ extra9.test \
 extra10.test \
 extra11.test \
 extra12.test \
+extradep.test \
+extradep2.test \
 f90only.test \
 flavor.test \
 flibs.test \
@@ -376,6 +429,19 @@ gnits2.test \
 gnits3.test \
 header.test \
 help.test \
+help2.test \
+help3.test \
+help4.test \
+help-depend.test \
+help-depend2.test \
+help-dmalloc.test \
+help-init.test \
+help-lispdir.test \
+help-maintainer.test \
+help-multilib.test \
+help-regex.test \
+help-silent.test \
+help-upc.test \
 hfs.test \
 hosts.test \
 implicit.test \
@@ -411,7 +477,7 @@ instman2.test \
 instmany.test \
 instmany-mans.test \
 instmany-python.test \
-instspc.test \
+$(instspc_tests) \
 interp.test \
 interp2.test \
 java.test \
@@ -471,6 +537,7 @@ lisp5.test \
 lisp6.test \
 lisp7.test \
 lisp8.test \
+lispdry.test \
 listval.test \
 location.test \
 longline.test \
@@ -783,6 +850,8 @@ vala5.test \
 vars.test \
 vars3.test \
 vartar.test \
+vartypos.test \
+vartypo2.test \
 version.test \
 version2.test \
 version3.test \
@@ -809,13 +878,15 @@ yacc5.test \
 yacc6.test \
 yacc7.test \
 yacc8.test \
+yaccdry.test \
 yaccpp.test \
 yaccvpath.test \
 yflags.test \
 yflags2.test \
 $(parallel_tests)
 
-EXTRA_DIST = ChangeLog-old gen-parallel-tests $(TESTS)
+EXTRA_DIST += $(TESTS)
+
 
 # Each test case depends on defs, aclocal, and automake.
 $(TEST_LOGS): defs aclocal-$(APIVERSION) automake-$(APIVERSION)
diff --git a/tests/Makefile.in b/tests/Makefile.in
index af80fdb..deab171 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -50,7 +50,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
        $(srcdir)/aclocal.in $(srcdir)/automake.in $(srcdir)/defs.in \
-       $(srcdir)/parallel-tests.am
+       $(srcdir)/instspc-tests.am $(srcdir)/parallel-tests.am
 subdir = tests
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/amversion.m4 \
@@ -125,7 +125,7 @@ am__text_box = $(AWK) '{                            \
   print line;                                          \
 }'
 # Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL).  This contradicts POSIX.  Work around the problem
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
 # by disabling -e (using the XSI extension "set +e") if it's set.
 am__sh_e_setup = case $$- in *e*) set +e;; esac
 # To be inserted before the command running the test.  Creates the
@@ -148,6 +148,35 @@ elif test -f "$$f"; then dir=;                             
\
 else dir="$(srcdir)/"; fi;                             \
 tst=$$dir$$f; log='$@'; __SAVED_TERM=$$TERM;           \
 $(TESTS_ENVIRONMENT)
+# To be appended to the command running the test.  Handle the stdout
+# and stderr redirection, and catch the exit status.
+am__check_post = \
+>address@hidden 2>&1;                                          \
+estatus=$$?;                                           \
+if test -n '$(DISABLE_HARD_ERRORS)'                    \
+   && test $$estatus -eq 99; then                      \
+  estatus=1;                                           \
+fi;                                                    \
+TERM=$$__SAVED_TERM; export TERM;                      \
+$(am__tty_colors);                                     \
+xfailed=PASS;                                          \
+case " $(XFAIL_TESTS) " in                             \
+  *[\ \        ]$$f[\ \        ]* | *[\ \      ]$$dir$$f[\ \   ]*) \
+    xfailed=XFAIL;;                                    \
+esac;                                                  \
+case $$estatus.$$xfailed in                            \
+    0.XFAIL) col=$$red; res=XPASS;;                    \
+    0.*)     col=$$grn; res=PASS ;;                    \
+    77.*)    col=$$blu; res=SKIP ;;                    \
+    99.*)    col=$$red; res=FAIL ;;                    \
+    *.XFAIL) col=$$lgn; res=XFAIL;;                    \
+    *.*)     col=$$red; res=FAIL ;;                    \
+esac;                                                  \
+echo "$${col}$$res$${std}: $$f";                       \
+echo "$$res: $$f (exit: $$estatus)" |                  \
+  $(am__rst_section) >$@;                              \
+cat address@hidden >>$@;                                               \
+rm -f address@hidden
 RECHECK_LOGS = $(TEST_LOGS)
 AM_RECURSIVE_TARGETS = check check-html recheck recheck-html
 TEST_SUITE_LOG = test-suite.log
@@ -250,20 +279,79 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-XFAIL_TESTS = \
-all.test                                       \
-auxdir2.test                                   \
-cond17.test                                    \
-gcj6.test                                      \
-txinfo5.test
-
-parallel_tests = check-p.test check10-p.test check11-p.test \
-       check2-p.test check3-p.test check4-p.test check5-p.test \
-       check6-p.test check7-p.test check8-p.test check9-p.test \
-       color-p.test color2-p.test comment9-p.test dejagnu-p.test \
-       exeext4-p.test maken3-p.test maken4-p.test pr401-p.test \
-       pr401b-p.test pr401c-p.test
-MAINTAINERCLEANFILES = $(parallel_tests)
+MAINTAINERCLEANFILES = $(parallel_tests) $(instspc_tests)
+EXTRA_DIST = ChangeLog-old gen-parallel-tests instspc-tests.sh \
+       $(TESTS)
+XFAIL_TESTS = all.test auxdir2.test cond17.test gcj6.test txinfo5.test \
+       $(instspc_xfail_tests)
+parallel_tests = backcompat5-p.test check-p.test check10-p.test \
+       check11-p.test check2-p.test check3-p.test check4-p.test \
+       check5-p.test check6-p.test check7-p.test check8-p.test \
+       check9-p.test color-p.test color2-p.test comment9-p.test \
+       dejagnu-p.test exeext4-p.test maken3-p.test maken4-p.test \
+       pr401-p.test pr401b-p.test pr401c-p.test
+instspc_tests = instspc-squote-build.test instspc-squote-install.test \
+       instspc-dquote-build.test instspc-dquote-install.test \
+       instspc-bquote-build.test instspc-bquote-install.test \
+       instspc-sharp-build.test instspc-sharp-install.test \
+       instspc-dollar-build.test instspc-dollar-install.test \
+       instspc-bang-build.test instspc-bang-install.test \
+       instspc-bslash-build.test instspc-bslash-install.test \
+       instspc-ampersand-build.test instspc-ampersand-install.test \
+       instspc-percent-build.test instspc-percent-install.test \
+       instspc-leftpar-build.test instspc-leftpar-install.test \
+       instspc-rightpar-build.test instspc-rightpar-install.test \
+       instspc-pipe-build.test instspc-pipe-install.test \
+       instspc-caret-build.test instspc-caret-install.test \
+       instspc-tilde-build.test instspc-tilde-install.test \
+       instspc-qmark-build.test instspc-qmark-install.test \
+       instspc-star-build.test instspc-star-install.test \
+       instspc-plus-build.test instspc-plus-install.test \
+       instspc-minus-build.test instspc-minus-install.test \
+       instspc-comma-build.test instspc-comma-install.test \
+       instspc-colon-build.test instspc-colon-install.test \
+       instspc-semicol-build.test instspc-semicol-install.test \
+       instspc-equal-build.test instspc-equal-install.test \
+       instspc-less-build.test instspc-less-install.test \
+       instspc-more-build.test instspc-more-install.test \
+       instspc-at-build.test instspc-at-install.test \
+       instspc-lqbrack-build.test instspc-lqbrack-install.test \
+       instspc-rqbrack-build.test instspc-rqbrack-install.test \
+       instspc-lcbrack-build.test instspc-lcbrack-install.test \
+       instspc-rcbrack-build.test instspc-rcbrack-install.test \
+       instspc-space-build.test instspc-space-install.test \
+       instspc-tab-build.test instspc-tab-install.test \
+       instspc-linefeed-build.test instspc-linefeed-install.test \
+       instspc-backspace-build.test instspc-backspace-install.test \
+       instspc-formfeed-build.test instspc-formfeed-install.test \
+       instspc-carriageret-build.test \
+       instspc-carriageret-install.test \
+       instspc-quadrigraph0-build.test \
+       instspc-quadrigraph0-install.test \
+       instspc-quadrigraph1-build.test \
+       instspc-quadrigraph1-install.test \
+       instspc-quadrigraph2-build.test \
+       instspc-quadrigraph2-install.test \
+       instspc-quadrigraph3-build.test \
+       instspc-quadrigraph3-install.test \
+       instspc-quadrigraph4-build.test \
+       instspc-quadrigraph4-install.test instspc-a_b-build.test \
+       instspc-a_b-install.test instspc-a__b-build.test \
+       instspc-a__b-install.test instspc-a_lf_b-build.test \
+       instspc-a_lf_b-install.test instspc-dotdotdot-build.test \
+       instspc-dotdotdot-install.test instspc-dosdrive-build.test \
+       instspc-dosdrive-install.test instspc-miscglob1-build.test \
+       instspc-miscglob1-install.test instspc-miscglob2-build.test \
+       instspc-miscglob2-install.test
+instspc_xfail_tests = instspc-squote-build.test \
+       instspc-dquote-build.test instspc-bquote-build.test \
+       instspc-sharp-build.test instspc-dollar-build.test \
+       instspc-bslash-build.test instspc-ampersand-build.test \
+       instspc-linefeed-build.test instspc-quadrigraph0-build.test \
+       instspc-a_lf_b-build.test instspc-squote-install.test \
+       instspc-dquote-install.test instspc-bquote-install.test \
+       instspc-sharp-install.test instspc-dollar-install.test \
+       instspc-linefeed-install.test instspc-a_lf_b-install.test
 TESTS = \
 aclibobj.test \
 aclocal.test \
@@ -328,11 +416,18 @@ autohdr.test \
 autohdr2.test \
 autohdr3.test \
 autohdr4.test \
+autohdrdry.test \
 automake.test \
 auxdir.test \
 auxdir2.test \
 auxdir3.test \
 auxdir4.test \
+backcompat.test \
+backcompat2.test \
+backcompat3.test \
+backcompat4.test \
+backcompat5.test \
+backcompat6.test \
 backsl.test \
 backsl2.test \
 backsl3.test \
@@ -393,6 +488,7 @@ compile2.test \
 compile3.test \
 compile4.test \
 compile5.test \
+compile6.test \
 compile_f90_c_cxx.test \
 compile_f_c_cxx.test \
 cond.test \
@@ -458,6 +554,7 @@ confh4.test \
 confh5.test \
 confh6.test \
 confh7.test \
+confh8.test \
 confincl.test \
 conflnk.test \
 conflnk2.test \
@@ -521,6 +618,7 @@ distdir.test \
 distlinks.test \
 distlinksbrk.test \
 distname.test \
+dmalloc.test \
 dollar.test \
 dollarvar.test \
 dollarvar2.test \
@@ -554,6 +652,8 @@ extra9.test \
 extra10.test \
 extra11.test \
 extra12.test \
+extradep.test \
+extradep2.test \
 f90only.test \
 flavor.test \
 flibs.test \
@@ -587,6 +687,19 @@ gnits2.test \
 gnits3.test \
 header.test \
 help.test \
+help2.test \
+help3.test \
+help4.test \
+help-depend.test \
+help-depend2.test \
+help-dmalloc.test \
+help-init.test \
+help-lispdir.test \
+help-maintainer.test \
+help-multilib.test \
+help-regex.test \
+help-silent.test \
+help-upc.test \
 hfs.test \
 hosts.test \
 implicit.test \
@@ -622,7 +735,7 @@ instman2.test \
 instmany.test \
 instmany-mans.test \
 instmany-python.test \
-instspc.test \
+$(instspc_tests) \
 interp.test \
 interp2.test \
 java.test \
@@ -682,6 +795,7 @@ lisp5.test \
 lisp6.test \
 lisp7.test \
 lisp8.test \
+lispdry.test \
 listval.test \
 location.test \
 longline.test \
@@ -994,6 +1108,8 @@ vala5.test \
 vars.test \
 vars3.test \
 vartar.test \
+vartypos.test \
+vartypo2.test \
 version.test \
 version2.test \
 version3.test \
@@ -1020,18 +1136,18 @@ yacc5.test \
 yacc6.test \
 yacc7.test \
 yacc8.test \
+yaccdry.test \
 yaccpp.test \
 yaccvpath.test \
 yflags.test \
 yflags2.test \
 $(parallel_tests)
 
-EXTRA_DIST = ChangeLog-old gen-parallel-tests $(TESTS)
 all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .html .log .test
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(srcdir)/parallel-tests.am 
$(am__configure_deps)
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(srcdir)/parallel-tests.am 
$(srcdir)/instspc-tests.am $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
@@ -1076,36 +1192,6 @@ CTAGS:
 cscope cscopelist:
 
 
-# To be appended to the command running the test.  Handle the stdout
-# and stderr redirection, and catch the exit status.
-am__check_post =                                       \
->address@hidden 2>&1;                                          \
-estatus=$$?;                                           \
-if test -n '$(DISABLE_HARD_ERRORS)'                    \
-   && test $$estatus -eq 99; then                      \
-  estatus=1;                                           \
-fi;                                                    \
-TERM=$$__SAVED_TERM; export TERM;                      \
-$(am__tty_colors);                                     \
-xfailed=PASS;                                          \
-case " $(XFAIL_TESTS) " in                             \
-  *[\ \        ]$$f[\ \        ]* | *[\ \      ]$$dir$$f[\ \   ]*) \
-    xfailed=XFAIL;;                                    \
-esac;                                                  \
-case $$estatus:$$xfailed in                            \
-    0:XFAIL) col=$$red; res=XPASS;;                    \
-    0:*)     col=$$grn; res=PASS ;;                    \
-    77:*)    col=$$blu; res=SKIP ;;                    \
-    99:*)    col=$$red; res=FAIL ;;                    \
-    *:XFAIL) col=$$lgn; res=XFAIL;;                    \
-    *:*)     col=$$red; res=FAIL ;;                    \
-esac;                                                  \
-echo "$${col}$$res$${std}: $$f";                       \
-echo "$$res: $$f (exit: $$estatus)" |                  \
-  $(am__rst_section) >$@;                              \
-cat address@hidden >>$@;                                               \
-rm -f address@hidden
-
 $(TEST_SUITE_LOG): $(TEST_LOGS)
        @$(am__sh_e_setup);                                             \
        list='$(TEST_LOGS)';                                            \
@@ -1377,6 +1463,7 @@ uninstall-am:
        maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
        pdf-am ps ps-am recheck recheck-html uninstall uninstall-am
 
+backcompat5-p.log: backcompat5.test
 check-p.log: check.test
 check10-p.log: check10.test
 check11-p.log: check11.test
@@ -1400,7 +1487,7 @@ pr401b-p.log: pr401b.test
 pr401c-p.log: pr401c.test
 
 $(srcdir)/parallel-tests.am: gen-parallel-tests Makefile.am
-       $(AM_V_GEN)(cd $(srcdir) && $(SHELL) ./gen-parallel-tests) >$@
+       $(AM_V_GEN)($(am__cd) $(srcdir) && $(SHELL) ./gen-parallel-tests) >$@
 
 $(parallel_tests): Makefile.am
        $(AM_V_at)rm -f $@ address@hidden
@@ -1425,6 +1512,34 @@ $(parallel_tests): Makefile.am
        } > address@hidden
        $(AM_V_at)chmod a+rx address@hidden && mv -f address@hidden $@
 
+$(srcdir)/instspc-tests.am: instspc-tests.sh Makefile.am
+       $(AM_V_GEN)($(am__cd) $(srcdir) \
+         && $(SHELL) ./instspc-tests.sh --generate-makefile) >$@
+
+$(instspc_tests): Makefile.am
+       $(AM_V_at)rm -f $@ address@hidden
+       $(AM_V_GEN) :; \
+         base=`expr 'x/$@' : 'x.*/instspc-\(.*\)\.test$$'`; \
+         name=`expr x"$$base" : x'\(.*\)-'`; \
+         action=`expr x"$$base" : x'.*-\(.*\)'`; \
+         { \
+           echo '#!/bin/sh'; \
+           echo '# DO NOT EDIT!  GENERATED AUTOMATICALLY!'; \
+           echo; \
+           echo '# Ensure proper definition of $$testsrcdir.'; \
+           echo 'am_skip_defs=yes'; \
+           echo '. ./defs || exit 99'; \
+           echo 'test -n "$$testsrcdir" || exit 99 # sanity check'; \
+           echo; \
+           echo "instspc_test_name='$$name'"; \
+           echo "instspc_action='test-$$action'"; \
+           echo ". \$$testsrcdir/instspc-tests.sh"; \
+         } > address@hidden
+       $(AM_V_at)chmod a+rx address@hidden && mv -f address@hidden $@
+
+# All instspc*.test tests work by sourcing the instspc-tests.sh script.
+$(instspc_tests:.test=.log): instspc-tests.sh
+
 # Each test case depends on defs, aclocal, and automake.
 $(TEST_LOGS): defs aclocal-$(APIVERSION) automake-$(APIVERSION)
 
diff --git a/tests/README b/tests/README
index 7037591..88da783 100644
--- a/tests/README
+++ b/tests/README
@@ -111,7 +111,9 @@ Do
   Cite the PR number (if any), and the original reporter (if any), so
   we can find or ask for information if needed.
 
-  Use `required=...' for required tools.
+  Use `required=...' for required tools.  Do not explicitly require
+  tools which can be taken for granted because they're listed in the
+  GNU Coding Standards (for example, `gzip').
 
   Include ./defs in every test script (see existing tests for examples
   of how to do this).
@@ -152,6 +154,9 @@ Do
 
   Use `Exit' rather than `exit' to abort a test.
 
+  Use `$PATH_SEPARATOR', not hard-coded `:', as the separator of
+  PATH's entries.
+
   It's more important to make sure that a feature works, than
   make sure that Automake's output looks correct.  It might look
   correct and still fail to work.  In other words, prefer
diff --git a/tests/acloca10.test b/tests/acloca10.test
index 7716f2a..c89e80c 100755
--- a/tests/acloca10.test
+++ b/tests/acloca10.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2003, 2005, 2010 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
@@ -55,6 +55,7 @@ grep MACRO3 aclocal.m4
 test ! -f m4_1/macro.m4
 test ! -f m4_2/macro.m4
 
+$sleep
 $ACLOCAL -I m4_2 -I m4_1
 $AUTOCONF
 ./configure
@@ -65,6 +66,7 @@ grep MACRO3 aclocal.m4
 test ! -f m4_1/macro.m4
 test ! -f m4_2/macro.m4
 
+$sleep
 ACLOCAL_TESTSUITE_FLAGS='-I m4_1 -I m4_2'
 $ACLOCAL --install
 $AUTOCONF
@@ -77,6 +79,7 @@ test -f m4_1/macro.m4
 test ! -f m4_2/macro.m4
 cp aclocal.m4 copy.m4
 
+$sleep
 echo '#GREPME' >>dirlist-test/macro.m4
 $ACLOCAL --install
 $AUTOCONF
diff --git a/tests/acloca18.test b/tests/acloca18.test
index 2599b2c..6756fb3 100755
--- a/tests/acloca18.test
+++ b/tests/acloca18.test
@@ -73,6 +73,7 @@ $AUTOCONF
 grep macro11 foo
 grep macro21 foo
 
+$sleep
 rm -f foo
 $ACLOCAL --install
 $AUTOCONF
@@ -80,6 +81,7 @@ $AUTOCONF
 grep macro12 foo
 grep macro23 foo
 
+$sleep
 ACLOCAL_TESTSUITE_FLAGS='-I 4 -I 1 -I 2 -I 3'
 rm -f foo
 $ACLOCAL --install --dry-run
@@ -88,6 +90,7 @@ $AUTOCONF
 grep macro12 foo
 grep macro23 foo
 
+$sleep
 rm -f foo
 $ACLOCAL --install
 $AUTOCONF
@@ -95,12 +98,14 @@ $AUTOCONF
 grep macro14 foo
 grep macro23 foo
 
+$sleep
 ACLOCAL_TESTSUITE_FLAGS='-I 4 -I 1 -I 2'
 rm -f foo
 $ACLOCAL --install 2>stderr && { cat stderr >&2; Exit 1; }
 cat stderr >&2
 grep 'macro.*AM_MACRO2.*not found' stderr
 
+$sleep
 ACLOCAL_TESTSUITE_FLAGS='-I 4 -I 1'
 rm -f foo
 $ACLOCAL --install
@@ -110,6 +115,7 @@ grep macro14 foo
 grep macro21 foo
 
 
+$sleep
 mkdir dirlist-test
 cat >dirlist-test/m1.m4 <<EOF
 #serial 456
diff --git a/tests/aclocal9.test b/tests/aclocal9.test
index 325f6ae..a9657fc 100755
--- a/tests/aclocal9.test
+++ b/tests/aclocal9.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2003  Free Software Foundation, Inc.
+# Copyright (C) 2003, 2010 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
@@ -42,6 +42,8 @@ $AUTOCONF
 grep macro11 foo
 grep macro21 foo
 
+$sleep
+
 $ACLOCAL -I m4_2 -I m4_1
 $AUTOCONF
 ./configure
diff --git a/tests/ar-lib.test b/tests/ar-lib.test
index d3f5f01..c788778 100755
--- a/tests/ar-lib.test
+++ b/tests/ar-lib.test
@@ -22,13 +22,15 @@ set -e
 
 cp "$top_testsrcdir/lib/ar-lib" .
 
-# Use a dummy lib, since lib isn't readily available on all systems
+# Use a dummy lib, since lib isn't readily available on all systems.
 cat >lib <<'END'
 #! /bin/sh
-if test x"$2" = x-LIST -a $3 = fake.lib; then
+if test x"$2" = x-LIST && test x"$3" = xfake.lib; then
   echo fake.obj
+elif test x"$2" = x-LIST && test x"$3" = xfake2.lib; then
+  printf "%s\n" "dir\\fake2.obj"
 else
-  echo "lib $@"
+  printf "%s\n" "lib $*"
 fi
 END
 
@@ -77,4 +79,9 @@ test x"$opts" = x"lib -NOLOGO -EXTRACT:foo.obj foo.lib"
 opts=`./ar-lib ./lib -lib -LTCG x foo.lib foo.obj`
 test x"$opts" = x"lib -lib -LTCG -NOLOGO -EXTRACT:foo.obj foo.lib"
 
+# Check if ar-lib can extract backslashed members
+touch fake2.lib
+opts=`./ar-lib ./lib x fake2.lib`
+test x"$opts" = x"lib -NOLOGO -EXTRACT:dir\\fake2.obj fake2.lib"
+
 :
diff --git a/tests/exdir3.test b/tests/autohdrdry.test
similarity index 71%
copy from tests/exdir3.test
copy to tests/autohdrdry.test
index d51bdf9..b501e76 100755
--- a/tests/exdir3.test
+++ b/tests/autohdrdry.test
@@ -1,5 +1,5 @@
-#! /bin/sh
-# Copyright (C) 2007  Free Software Foundation, Inc.
+#!/bin/sh
+# Copyright (C) 2010 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,24 +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/>.
 
-# Test to make sure pkgdatadir can be overridden via AC_SUBST.
+# Removal recovery rules for AC_CONFIG_HEADERS should not remove files
+# with `make -n'.
 
 . ./defs || Exit 1
 
 set -e
 
 cat >>configure.in <<'EOF'
-AC_SUBST([pkgdatadir], ["FOO"])
+AC_PROG_CC
+AC_CONFIG_HEADERS([config.h])
 AC_OUTPUT
 EOF
 
-cat > Makefile.am << 'EOF'
-showme:
-       @echo $(pkgdatadir)
-EOF
+: >Makefile.am
 
 $ACLOCAL
 $AUTOCONF
+$AUTOHEADER
 $AUTOMAKE
+
 ./configure
-$MAKE showme | grep FOO
+$MAKE
+
+rm -f config.h
+$MAKE -n
+test -f stamp-h1
+test ! -f config.h
+
+:
diff --git a/tests/backcompat.test b/tests/backcompat.test
new file mode 100755
index 0000000..3367db2
--- /dev/null
+++ b/tests/backcompat.test
@@ -0,0 +1,66 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Test usage of AM_INIT_AUTOMAKE with two ot three arguments, for
+# backward-compatibility.
+
+. ./defs || Exit 1
+
+set -e
+
+cat > Makefile.am <<'END'
+.PHONY: test display
+
+## Might be useful for debugging.
+display:
+       ## The following should be substituted by AM_INIT_AUTOMAKE.
+       @echo PACKAGE = $(PACKAGE)
+       @echo VERSION = $(VERSION)
+       ## The following should not be substituted, as we used the
+       ## old form of AC_INIT.
+       @echo PACKAGE_NAME = $(PACKAGE_NAME)
+       @echo PACKAGE_VERSION = $(PACKAGE_VERSION)
+       @echo PACKAGE_TARNAME = $(PACKAGE_TARNAME)
+       @echo PACKAGE_STRING = $(PACKAGE_STRING)
+
+test: display
+       test x'$(PACKAGE)' = x'FooBar'
+       test x'$(VERSION)' = x'0.7.1'
+       test x'$(PACKAGE_NAME)' = x
+       test x'$(PACKAGE_VERSION)' = x
+       test x'$(PACKAGE_TARNAME)' = x
+       test x'$(PACKAGE_STRING)' = x
+END
+
+for ac_init in 'AC_INIT' 'AC_INIT([Makefile.am])'; do
+  for am_extra_args in '' ', []' ', [:]' ', [false]'; do
+    rm -rf autom4te*.cache config* Makefile.in Makefile
+    cat > configure.in <<END
+$ac_init
+AM_INIT_AUTOMAKE([FooBar], [0.7.1]$am_extra_args)
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
+END
+    cat configure.in # might be useful for debugging
+    $ACLOCAL
+    $AUTOCONF
+    $AUTOMAKE
+    ./configure
+    $MAKE test
+  done
+done
+
+:
diff --git a/tests/backcompat2.test b/tests/backcompat2.test
new file mode 100755
index 0000000..0967720
--- /dev/null
+++ b/tests/backcompat2.test
@@ -0,0 +1,67 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Backward-compatibility test: check that AM_INIT_AUTOMAKE with two or
+# three arguments does AC_DEFINE the symbols PACKAGE and VERSION iff the
+# third argument is empty or non-existent.
+
+. ./defs || Exit 1
+
+set -e
+
+# A trick to make the test run muuuch faster, by avoiding repeated
+# runs of aclocal (one order of magnitude improvement in speed!).
+echo 'AC_INIT(x,0) AM_INIT_AUTOMAKE' > configure.in
+$ACLOCAL
+rm -rf configure.in autom4te.*
+
+cat > config.h.in <<'END'
+#undef PACKAGE
+#undef VERSION
+END
+
+for am_arg3 in ':' 'false' '#' ' '; do
+  cat > configure.in <<END
+AC_INIT
+AC_CONFIG_HEADERS([config.h])
+AM_INIT_AUTOMAKE([pkgname], [pkgversion], [$am_arg3])
+AC_OUTPUT
+END
+  cat configure.in # might be useful for debugging
+  $AUTOCONF
+  ./configure
+  cat config.h # might be useful for debugging
+  # The non-empty third argument should prevent PACKAGE and VERSION
+  # from being AC_DEFINE'd.
+  $EGREP 'pkg(name|version)' config.h && Exit 1
+done
+
+for am_extra_args in '' ',' ', []'; do
+  cat > configure.in <<END
+AC_INIT
+AC_CONFIG_HEADERS([config.h])
+AM_INIT_AUTOMAKE([pkgname], [pkgversion]$am_extra_args)
+AC_OUTPUT
+END
+  cat configure.in # might be useful for debugging
+  $AUTOCONF
+  ./configure
+  cat config.h # might be useful for debugging
+  grep '^ *# *define  *PACKAGE  *"pkgname" *$' config.h
+  grep '^ *# *define  *VERSION  *"pkgversion" *$' config.h
+done
+
+:
diff --git a/tests/backcompat3.test b/tests/backcompat3.test
new file mode 100755
index 0000000..f07eaff
--- /dev/null
+++ b/tests/backcompat3.test
@@ -0,0 +1,153 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Backward-compatibility test: check what happens when AC_INIT and
+# AM_INIT_AUTOMAKE are both given two or more arguments.
+
+. ./defs || Exit 1
+
+set -e
+
+empty=''
+
+cat > Makefile.am <<'END'
+## Leading `:;' here required to work around bugs of (at least) bash 3.2
+got: Makefile
+       @:; { \
+         echo 'PACKAGE = $(PACKAGE)'; \
+         echo 'VERSION = $(VERSION)'; \
+         echo 'PACKAGE_NAME = $(PACKAGE_NAME)'; \
+         echo 'PACKAGE_VERSION = $(PACKAGE_VERSION)'; \
+         echo 'PACKAGE_STRING = $(PACKAGE_STRING)'; \
+         echo 'PACKAGE_TARNAME = $(PACKAGE_TARNAME)'; \
+         echo 'PACKAGE_BUGREPORT = $(PACKAGE_BUGREPORT)'; \
+         echo 'PACKAGE_URL = $(PACKAGE_URL)'; \
+       } >$@
+END
+
+
+### Run 1 ###
+
+cat > configure.in <<END
+AC_INIT([ac_name], [ac_version])
+AM_INIT_AUTOMAKE([am_name], [am_version])
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
+END
+
+cat configure.in
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+
+./configure
+
+cat >exp <<END
+PACKAGE = am_name
+VERSION = am_version
+PACKAGE_NAME = ac_name
+PACKAGE_VERSION = ac_version
+PACKAGE_STRING = ac_name ac_version
+PACKAGE_TARNAME = ac_name
+PACKAGE_BUGREPORT = $empty
+PACKAGE_URL = $empty
+END
+
+$MAKE got
+
+diff exp got
+
+
+### Run 2 ###
+
+cat > configure.in <<'END'
+dnl#  `AC_INIT' in Autoconf <= 2.63 doesn't have an URL argument.
+dnl#  Luckily, `AC_AUTOCONF_VERSION' and `m4_version_prereq' are
+dnl#  both present in autoconf 2.62, which we require; so that we
+dnl#  can at least use the following workaround.
+m4_version_prereq([2.64],
+    [AC_INIT([ac_name], [ac_version], [ac_bugreport], [ac_tarname],
+             [ac_url])],
+    [AC_INIT([ac_name], [ac_version], [ac_bugreport], [ac_tarname])
+     AC_SUBST([PACKAGE_URL], [ac_url])])
+AM_INIT_AUTOMAKE([am_name], [am_version])
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
+END
+
+cat configure.in
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+
+./configure
+
+cat >exp <<END
+PACKAGE = am_name
+VERSION = am_version
+PACKAGE_NAME = ac_name
+PACKAGE_VERSION = ac_version
+PACKAGE_STRING = ac_name ac_version
+PACKAGE_TARNAME = ac_tarname
+PACKAGE_BUGREPORT = ac_bugreport
+PACKAGE_URL = ac_url
+END
+
+$MAKE got
+
+diff exp got
+
+
+### Run 3 ###
+
+cat > configure.in <<END
+AC_INIT([ac_name], [ac_version])
+AM_INIT_AUTOMAKE([am_name], [am_version], [am_foo_quux])
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
+END
+
+cat configure.in
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+
+./configure
+
+cat >exp <<END
+PACKAGE = am_name
+VERSION = am_version
+PACKAGE_NAME = ac_name
+PACKAGE_VERSION = ac_version
+PACKAGE_STRING = ac_name ac_version
+PACKAGE_TARNAME = ac_name
+PACKAGE_BUGREPORT = $empty
+PACKAGE_URL = $empty
+END
+
+$MAKE got
+
+diff exp got
+
+$FGREP am_foo_quux Makefile.in Makefile configure config.status && Exit 1
+
+
+### Done ###
+
+:
diff --git a/tests/backcompat4.test b/tests/backcompat4.test
new file mode 100755
index 0000000..1bee059
--- /dev/null
+++ b/tests/backcompat4.test
@@ -0,0 +1,64 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Backward-compatibility: AC_OUTPUT with arguments.
+
+. ./defs || Exit 1
+
+set -e
+
+mkdir sub
+: > Makefile.am
+: > zardoz
+: > foo.in
+: > foo1.in
+: > foo2.in
+: > foo3.in
+: > sub/bar.in
+
+ls -l # might be useful for debugging
+
+for args in \
+  'foo' \
+  'foo:foo1.in' \
+  'foo:zardoz' \
+  'foo:sub/bar.in' \
+  'foo:foo1.in:foo2.in' \
+  'foo:zardoz:zardoz' \
+  'foo:foo1.in:foo2.in:foo3.in' \
+  'foo:foo1.in:foo2.in:sub/bar.in:foo3.in' \
+; do
+  cat >configure.in <<END
+AC_INIT([$me], [1.0])
+AM_INIT_AUTOMAKE
+AC_CONFIG_FILES([$args])
+AC_OUTPUT
+END
+  $ACLOCAL
+  $AUTOMAKE Makefile
+  mv -f Makefile.in Makefile.acf
+  cat >configure.in <<END
+AC_INIT([$me], [1.0])
+AM_INIT_AUTOMAKE
+AC_OUTPUT([$args])
+END
+  $ACLOCAL
+  $AUTOMAKE Makefile
+  mv -f Makefile.in Makefile.aco
+  diff Makefile.acf Makefile.aco
+done
+
+:
diff --git a/tests/backcompat5.test b/tests/backcompat5.test
new file mode 100755
index 0000000..b68316d
--- /dev/null
+++ b/tests/backcompat5.test
@@ -0,0 +1,119 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Backward-compatibility test: try to build and distribute a package
+# using obsoleted forms of AC_INIT, AM_INIT_AUTOMAKE and AC_OUTPUT.
+# This script can also serve as mild stress-testing for Automke.
+# See also the similar test `backcompat6.test'.
+
+. ./defs || Exit 1
+
+set -e
+
+# Yuck!
+cat > configure.in <<'END'
+dnl. Everything here is *deliberately* underquoted!
+AC_INIT(src/foo.input)
+AM_INIT_AUTOMAKE(foo, 1.0)
+AC_CONFIG_FILES(Makefile:mkfile.in)
+AC_OUTPUT(hacky/Makefile src/Makefile data/Makefile tests/Makefile)
+END
+
+distdir=foo-1.0
+
+cat > mkfile.am <<'END'
+SUBDIRS = src data tests hacky
+installcheck-local:
+       grep DataDataData $(DESTDIR)$(prefix)/data/$(PACKAGE)-$(VERSION)/bar
+END
+
+mkdir hacky src tests data
+
+echo 'This is a dummy package' > README
+
+cat > src/foo.input <<'END'
+#!sh
+echo Zardoz
+END
+
+cat > tests/a.test <<'END'
+#!/bin/sh
+"$srcdir/../src/foo" | grep Zardoz
+END
+chmod a+x tests/a.test
+
+cat > data/bar <<'END'
+line1
+line2
+line3
+END
+
+cat >hacky/Makefile.am <<'END'
+dist-hook:
+       find $(top_distdir) -print ## useful for debugging
+       chmod a+rx $(top_distdir)/tests/*.test
+END
+
+cat > src/Makefile.am <<'END'
+dist_bin_SCRIPTS = foo
+foo: foo.input
+       sed '1s,^#!.*$$,#!/bin/sh,' $(srcdir)/foo.input >$@
+       chmod a+x $@
+EXTRA_DIST = foo.input
+DISTCLEANFILES = foo
+END
+
+cat > data/Makefile.am <<'END'
+nodist_data_DATA = bar
+datadir = $(prefix)/data/$(PACKAGE)-$(VERSION)
+bar:
+       echo DataDataData >$@
+distclean-local:
+       rm -f bar
+END
+
+cat > tests/Makefile.am <<'END'
+TESTS = a.test
+EXTRA_DIST = $(TESTS)
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+
+./configure
+ls -l . hacky src data tests # useful for debugging
+test ! -f mkfile
+$MAKE
+$MAKE distdir
+test ! -f $distdir/Makefile.in
+test ! -f $distdir/data/bar
+test -f $distdir/src/foo
+diff README $distdir/README
+diff mkfile.in $distdir/mkfile.in
+diff tests/a.test $distdir/tests/a.test
+diff src/foo.input $distdir/src/foo.input
+
+$MAKE check
+$MAKE distcheck
+
+test -f $distdir.tar.gz
+
+chmod a-x tests/a.test
+# dist-hook should take care of making test files executables
+$MAKE distcheck
+
+:
diff --git a/tests/backcompat6.test b/tests/backcompat6.test
new file mode 100755
index 0000000..534ecb1
--- /dev/null
+++ b/tests/backcompat6.test
@@ -0,0 +1,105 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Backward-compatibility test: try to build and distribute a package
+# using obsoleted forms of AC_INIT, AM_INIT_AUTOMAKE and AC_OUTPUT.
+# This script can also serve as mild stress-testing for Automke.
+# See also the similar test `backcompat5.test'.
+
+. ./defs || Exit 1
+
+set -e
+
+# Anyone doing something like this in a real-life package probably
+# deserves to be killed.
+cat > configure.in <<'END'
+dnl. Everything here is *deliberately* underquoted!
+AC_INIT(quux.c)
+PACKAGE=nonesuch-zardoz
+VERSION=nonesuch-0.1
+AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
+AC_SUBST(one,1)
+two=2
+AC_SUBST(two, $two)
+three=3
+AC_SUBST(three)
+AC_PROG_CC
+AC_CONFIG_HEADERS(config.h:config.hin)
+AC_OUTPUT(Makefile foo.got:foo1.in:foo2.in:foo3.in)
+END
+
+echo @one@ > foo1.in
+echo @two@ > foo2.in
+echo @three@ > foo3.in
+
+cat >config.hin <<'END'
+#undef PACKAGE
+#undef VERSION
+END
+
+cat >> Makefile.am <<'END'
+bin_PROGRAMS = foo
+foo_SOURCES = quux.c
+DISTCLEANFILES = *.tmp
+check-local:
+       rm -f exp got
+       echo 'PACKAGE = nonesuch-zardoz' > exp.tmp
+       echo 'VERSION = nonesuch-0.1' >> exp.tmp
+       echo 'PACKAGE = $(PACKAGE)' > got1.tmp
+       echo 'VERSION = $(VERSION)' >> got1.tmp
+       ./foo > got2.tmp
+       cat exp.tmp
+       cat got1.tmp
+       cat got2.tmp
+       diff exp.tmp got1.tmp
+       diff exp.tmp got2.tmp
+END
+
+cat > quux.c <<'END'
+#include <config.h>
+#include <stdio.h>
+int main (void)
+{
+  printf("PACKAGE = %s\nVERSION = %s\n", PACKAGE, VERSION);
+  return 0;
+}
+END
+
+$ACLOCAL
+$AUTOMAKE
+$AUTOCONF
+
+./configure
+
+cat >foo.exp <<'END'
+1
+2
+3
+END
+
+diff foo.exp foo.got
+
+$MAKE
+$MAKE check
+
+distdir=nonesuch-zardoz-nonesuch-0.1
+$MAKE distdir
+test -f $distdir/quux.c
+test ! -f $distdir/foo.got
+
+$MAKE distcheck
+
+:
diff --git a/tests/colon4.test b/tests/colon4.test
index 97a4479..9af6b4e 100755
--- a/tests/colon4.test
+++ b/tests/colon4.test
@@ -15,8 +15,8 @@
 # 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 ":" works with files automake generates.
-# This test is for multiple ":"s.
+# Make sure multiple ":"s in AC_CONFIG_FILES do not generate broken
+# rebuild rules.
 # Test from Maciej W. Rozycki.
 
 . ./defs || Exit 1
@@ -24,7 +24,7 @@
 set -e
 
 cat >> configure.in <<END
-AC_CONFIG_FILES([zardoz:two:three])
+AC_CONFIG_FILES([zardoz:one:two:three])
 AC_OUTPUT
 END
 
@@ -36,6 +36,7 @@ END
 $ACLOCAL
 $AUTOMAKE
 
-# The rule should regenerate the file "zardoz".
-grep '^zardoz:one:two' Makefile.in && Exit 1
+# The rule should regenerate the file "zardoz", not a meaningless
+# file "'zardoz:one:two".
+$FGREP 'zardoz:one:two' Makefile.in && Exit 1
 Exit 0
diff --git a/tests/compile2.test b/tests/compile2.test
index e3069d0..2f812c5 100755
--- a/tests/compile2.test
+++ b/tests/compile2.test
@@ -66,11 +66,7 @@ test -f "$amtest_object"
 # Absolute w32 paths should be accepted.
 # Do not actually run this test on anything that could be w32.
 test -d "C:\\" && Exit 77
-# This test is taken from Autoconf's _AS_PATH_SEPARATOR_PREPARE.
-(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-  (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-    Exit 77
-}
+case $PATH_SEPARATOR in ';'|':');; *) Exit 77;; esac
 
 amtest_source='C:\libltdl\libltdl\slist.c'
 amtest_object='C:\libltdl\libltdl\libltdl_libltdl_la-slist.obj'
diff --git a/tests/compile3.test b/tests/compile3.test
index e7b8b6d..d8c7d3b 100755
--- a/tests/compile3.test
+++ b/tests/compile3.test
@@ -31,7 +31,7 @@ END
 chmod +x ./cl
 
 # Check if compile handles "-o foo", -I, -l, -L, -Xlinker -Wl,
-opts=`./compile ./cl foo.c -o foo -lbar -Lgazonk -Ibaz -Xlinker foobar 
-Wl,-foo,bar`
+opts=`LIB= ./compile ./cl foo.c -o foo -lbar -Lgazonk -Ibaz -Xlinker foobar 
-Wl,-foo,bar`
 test x"$opts" = x"foo.c -Fefoo bar.lib -Ibaz -link -LIBPATH:gazonk foobar -foo 
bar"
 
 # Check if compile handles "-o foo.obj"
diff --git a/tests/compile6.test b/tests/compile6.test
new file mode 100755
index 0000000..0f09e84
--- /dev/null
+++ b/tests/compile6.test
@@ -0,0 +1,98 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Make sure `compile' searches libraries correctly
+
+. ./defs || Exit 1
+
+set -e
+
+cp "$testsrcdir/../lib/compile" .
+
+# Use a dummy cl, since cl isn't readily available on all systems
+cat >cl <<'END'
+#! /bin/sh
+echo "$@"
+END
+
+chmod +x ./cl
+
+mkdir syslib
+:> syslib/foo.lib
+
+syslib=`pwd`/syslib
+LIB=$syslib
+export LIB
+
+mkdir lib
+:> lib/bar.lib
+:> lib/bar.dll.lib
+
+# Check if compile library search correctly
+opts=`./compile ./cl foo.c -o foo -Llib -lbar -lfoo`
+test x"$opts" = x"foo.c -Fefoo lib/bar.dll.lib $syslib/foo.lib -link 
-LIBPATH:lib"
+
+# Check if -static makes compile avoid bar.dll.lib
+opts=`./compile ./cl foo.c -o foo -Llib -static -lbar -lfoo`
+test x"$opts" = x"foo.c -Fefoo lib/bar.lib $syslib/foo.lib -link -LIBPATH:lib"
+
+:> syslib/bar.lib
+:> syslib/bar.dll.lib
+
+# Check if compile finds bar.dll.lib in syslib
+opts=`./compile ./cl foo.c -o foo -lbar -lfoo`
+test x"$opts" = x"foo.c -Fefoo $syslib/bar.dll.lib $syslib/foo.lib"
+
+# Check if compile prefers -L over $LIB
+opts=`./compile ./cl foo.c -o foo -Llib -lbar -lfoo`
+test x"$opts" = x"foo.c -Fefoo lib/bar.dll.lib $syslib/foo.lib -link 
-LIBPATH:lib"
+
+mkdir lib2
+:> lib2/bar.dll.lib
+
+# Check if compile avoids bar.dll.lib in lib2 when -static
+opts=`./compile ./cl foo.c -o foo -Llib2 -static -lbar -lfoo`
+test x"$opts" = x"foo.c -Fefoo $syslib/bar.lib $syslib/foo.lib -link 
-LIBPATH:lib2"
+
+# Check if compile gets two different bar libraries when -static
+# is added in the middle
+opts=`./compile ./cl foo.c -o foo -Llib2 -Llib -lbar -static -lbar`
+test x"$opts" = x"foo.c -Fefoo lib2/bar.dll.lib lib/bar.lib -link 
-LIBPATH:lib2 -LIBPATH:lib"
+
+# Check if compile gets the correct bar.dll.lib
+opts=`./compile ./cl foo.c -o foo -Llib -Llib2 -lbar -lfoo`
+test x"$opts" = x"foo.c -Fefoo lib/bar.dll.lib $syslib/foo.lib -link 
-LIBPATH:lib -LIBPATH:lib2"
+
+# Check if compile gets the correct bar.dll.lib
+opts=`./compile ./cl foo.c -o foo -Llib2 -Llib -lbar -lfoo`
+test x"$opts" = x"foo.c -Fefoo lib2/bar.dll.lib $syslib/foo.lib -link 
-LIBPATH:lib2 -LIBPATH:lib"
+
+mkdir "sys  lib2"
+:> "sys  lib2/foo.dll.lib"
+
+syslib2="`pwd`/sys  lib2"
+LIB="$syslib2;$LIB"
+
+# Check if compile handles spaces in $LIB and that it prefers the order
+# in a multi-component $LIB.
+opts=`./compile ./cl foo.c -o foo -lfoo`
+test x"$opts" = x"foo.c -Fefoo $syslib2/foo.dll.lib"
+
+# Check if compile handles the 2nd directory in a multi-component $LIB.
+opts=`./compile ./cl foo.c -o foo -static -lfoo`
+test x"$opts" = x"foo.c -Fefoo $syslib/foo.lib"
+
+:
diff --git a/tests/confh.test b/tests/confh.test
index 552ce5c..34674cc 100755
--- a/tests/confh.test
+++ b/tests/confh.test
@@ -24,29 +24,36 @@ set -e
 
 cat >> configure.in << 'END'
 AM_CONFIG_HEADER([include/config.h])
+AC_OUTPUT
 END
 
-: > Makefile.am
-: > acconfig.h
+cat > Makefile.am << 'END'
+.PHONY: test1 test2
+test1:
+       @echo DIST_COMMON = $(DIST_COMMON) ## for debugging
+       echo ' ' $(DIST_COMMON) ' ' | grep '[ /]acconfig\.h '
+test2: distdir
+       ls -l $(distdir)/* ## for debugging
+       test -f $(distdir)/acconfig.h
+check-local: test1 test2
+END
 
 mkdir include
-: > include/Makefile.am
 : > include/config.h.in
+: > acconfig.h
+
+# The test used to fail if `include/Makefile.am' was created (!)
+: > include/Makefile.am
 
 $ACLOCAL
+$AUTOCONF
 $AUTOMAKE
 
-perl -ne '
-if (s/^DIST_COMMON *=//)
-{
-  $_ .= <> while (s/\\$//);
-  $_ = " $_ ";
-  s/\s+/ /g;
-  print "$_\n";
-  exit 0;
-}' Makefile.in > dc.txt
-cat dc.txt # might be useful for debugging.
-$FGREP ' acconfig.h ' dc.txt
+./configure
+
+$MAKE test1
+$MAKE test2
+$MAKE distcheck
 
 # Make sure re-running automake in a different way generates same
 # Makefile.in.
diff --git a/tests/confh4.test b/tests/confh4.test
index bab2d53..8e36cfa 100755
--- a/tests/confh4.test
+++ b/tests/confh4.test
@@ -31,7 +31,6 @@ cat >> configure.in << 'END'
 AC_CONFIG_FILES([include/Makefile])
 AM_CONFIG_HEADER([include/config.h])
 AC_PROG_CC
-AC_OUTPUT
 END
 
 cat > Makefile.am << 'END'
@@ -39,9 +38,6 @@ bin_PROGRAMS = foo
 foo_SOURCES = foo.c
 END
 
-: > foo.c
-: > acconfig.h
-
 mkdir include
 : > include/Makefile.am
 : > include/config.h.in
@@ -49,6 +45,6 @@ mkdir include
 $ACLOCAL
 $AUTOMAKE
 
-grep '^DEFAULT_INCLUDES =.* -I\$(top_builddir)/include' Makefile.in
+grep '^ *DEFAULT_INCLUDES *=.* -I\$(top_builddir)/include' Makefile.in
 
 :
diff --git a/tests/confh6.test b/tests/confh6.test
index de55be7..532a2fd 100755
--- a/tests/confh6.test
+++ b/tests/confh6.test
@@ -45,3 +45,5 @@ $MAKE subdir/config.h
 $FGREP gRePmE subdir/config.h
 
 $MAKE distcheck
+
+:
diff --git a/tests/confh7.test b/tests/confh7.test
index 3d0e54a..4e4f7da 100755
--- a/tests/confh7.test
+++ b/tests/confh7.test
@@ -16,6 +16,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Test to make sure several config headers are allowed.
+# See also sister "semantic" test `confh8.test'.
 
 . ./defs || Exit 1
 
diff --git a/tests/condman3.test b/tests/confh8.test
similarity index 50%
copy from tests/condman3.test
copy to tests/confh8.test
index ff93daf..df985ec 100755
--- a/tests/condman3.test
+++ b/tests/confh8.test
@@ -14,52 +14,55 @@
 # 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 conditionals work with man pages.
+# Test to make sure several config headers are allowed.
+# See also sister "minimalistic" test `confh7.test'.
 
 . ./defs || Exit 1
 
 set -e
 
 cat >> configure.in << 'END'
-AM_CONDITIONAL([COND], [test x"$FOO" = x"true"])
+AM_CONFIG_HEADER([one.h two.h])
 AC_OUTPUT
 END
 
 cat > Makefile.am << 'END'
-if COND
-man_MANS = foo.1
-else
-man_MANS = bar.2
-endif
-
-.PHONY: test1 test2
-test1:
-       test -f $(mandir)/man1/foo.1
-       test ! -f $(mandir)/man2/bar.2
-test2:
-       test ! -f $(mandir)/man1/foo.1
-       test -f $(mandir)/man2/bar.2
+.PHONY: test0 test1 test2
+test0:
+       @echo DIST_COMMON = $(DIST_COMMON) ## for debugging
+       echo ' ' $(DIST_COMMON) ' ' | grep '[ /]one\.h\.in '
+       echo ' ' $(DIST_COMMON) ' ' | grep '[ /]two\.h\.in '
+       : Processed header files should not be distributed.
+       if echo ' ' $(DIST_COMMON) ' ' | grep '\.h '; then \
+         exit 1; \
+       else \
+         exit 0; \
+       fi
+test1: all
+       test -f one.h
+       test -f two.h
+test2: distdir
+       ls -l $(distdir)/* ## for debugging
+       test -f $(distdir)/one.h.in
+       test -f $(distdir)/two.h.in
+       : Processed header files should not be distributed.
+       test ! -r $(distdir)/one.h
+       test ! -r $(distdir)/two.h
+check-local: test0 test1 test2
 END
 
+: > one.h.in
+: > two.h.in
+
 $ACLOCAL
-$AUTOMAKE
 $AUTOCONF
+$AUTOMAKE
 
-mkdir dir1
-cd dir1
-../configure FOO=true --prefix="`pwd`/_inst"
-sed -n '/man_MANS/p' Makefile # useful for debugging
-: > foo.1
-$MAKE install
-$MAKE test1
+./configure
 
-cd ..
-mkdir dir2
-cd dir2
-../configure FOO=false --prefix="`pwd`/_inst"
-sed -n '/man_MANS/p' Makefile # useful for debugging
-: > bar.2
-$MAKE install
+$MAKE test0
+$MAKE test1
 $MAKE test2
+$MAKE distcheck
 
 :
diff --git a/tests/defs.in b/tests/defs.in
index f73edd4..fe67b0f 100644
--- a/tests/defs.in
+++ b/tests/defs.in
@@ -58,6 +58,9 @@ test -f "$testsrcdir/defs.in" || {
 
 me=`echo "$0" | sed -e 's,.*[\\/],,;s/\.test$//'`
 
+APIVERSION='@APIVERSION@'
+PATH_SEPARATOR='@PATH_SEPARATOR@'
+
 # Make sure we override the user shell.
 SHELL='@SHELL@'
 export SHELL
@@ -70,7 +73,7 @@ test -z "$AUTOUPDATE" && AUTOUPDATE=autoupdate
 test -z "$MISSING" && MISSING=$top_testsrcdir/lib/missing
 # Use -Werror because this also turns some Perl warnings into error.
 # (Tests for which this is inappropriate should use -Wno-error.)
-test -z "$ACLOCAL" && ACLOCAL="address@hidden@ -Werror"
+test -z "$ACLOCAL" && ACLOCAL="aclocal-$APIVERSION -Werror"
 # Extra flags to pass to aclocal before all other flags added by this script.
 ACLOCAL_TESTSUITE_FLAGS=
 export ACLOCAL_TESTSUITE_FLAGS
@@ -81,9 +84,9 @@ export ACLOCAL_TESTSUITE_FLAGS
 # -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
-test -z "$AUTOMAKE" && AUTOMAKE="address@hidden@ --foreign -Werror -Wall"
+test -z "$AUTOMAKE" && AUTOMAKE="automake-$APIVERSION --foreign -Werror -Wall"
 
-PATH="address@hidden@$PATH"
+PATH="`pwd`$PATH_SEPARATOR$PATH"
 echo "$PATH"
 # Some shells forget to export modified environment variables.
 # (See note about `export' in the Autoconf manual.)
diff --git a/tests/dmalloc.test b/tests/dmalloc.test
new file mode 100755
index 0000000..629c949
--- /dev/null
+++ b/tests/dmalloc.test
@@ -0,0 +1,61 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Simple checks on the `AM_WITH_DMALLOC' macro.
+
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.in << 'END'
+AC_CONFIG_HEADERS([config.h])
+AM_WITH_DMALLOC
+AC_SUBST([LDFLAGS])
+AC_OUTPUT
+END
+
+cat > config.h.in <<'END'
+#undef WITH_DMALLOC
+END
+
+cat > Makefile.am <<'END'
+check-with-dmalloc:
+## The AM_WITH_DMALLOC assumes that the user is a developer, so that
+## he is expected to install and make available the `dmalloc' library
+## by his own.  So we just check that proper linker and libs flags get
+## added.
+       echo ' ' $(LDFLAGS) ' ' | grep ' -g '
+       echo ' ' $(LIBS) ' ' | grep ' -ldmalloc '
+END
+
+$ACLOCAL
+$AUTOMAKE
+$AUTOCONF
+
+./configure
+cat config.h # debug info
+grep '^ */\* *# *undef  *WITH_DMALLOC *\*/ *$' config.h
+
+./configure --without-dmalloc
+cat config.h # debug info
+grep '^ */\* *# *undef  *WITH_DMALLOC *\*/ *$' config.h
+
+./configure --with-dmalloc
+cat config.h # debug info
+grep '^# *define  *WITH_DMALLOC  *1 *$' config.h
+$MAKE check-with-dmalloc
+
+:
diff --git a/tests/extradep.test b/tests/extradep.test
new file mode 100755
index 0000000..d84182d
--- /dev/null
+++ b/tests/extradep.test
@@ -0,0 +1,104 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Test EXTRA_*_DEPENDENCIES.  See extradep2 for libtool variant.
+
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_PROG_RANLIB
+AC_SUBST([deps], [bardep])
+AM_CONDITIONAL([COND], [test -n "$cond"])
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+noinst_LIBRARIES = libfoo.a
+EXTRA_libfoo_a_DEPENDENCIES = libfoodep
+libfoodep:
+       @echo making $@
+       @: > $@
+CLEANFILES = libfoodep
+
+bin_PROGRAMS = foo bar
+EXTRA_foo_DEPENDENCIES = foodep
+if COND
+EXTRA_foo_DEPENDENCIES += foodep2
+endif
+bar_LDADD = libfoo.a
+EXTRA_bar_DEPENDENCIES = $(deps)
+
+EXTRA_DIST = foodep bardep
+
+bar-is-newer-than-libfoo.a:
+       test `ls -1t bar$(EXEEXT) libfoo.a | sed q` = bar$(EXEEXT)
+END
+
+cat >libfoo.c <<'END'
+int libfoo () { return 0; }
+END
+
+cat >foo.c <<'END'
+int main () { return 0; }
+END
+
+cat >bar.c <<'END'
+extern int libfoo ();
+int main () { return libfoo (); }
+END
+
+$ACLOCAL
+$AUTOMAKE --add-missing
+$AUTOCONF
+
+./configure cond=yes
+
+# hypotheses:
+# EXTRA_*_DEPENDENCIES are honored.
+# conditionals and substitutions are honored.
+# *_DEPENDENCIES are not overwritten by their EXTRA_* counterparts.
+
+: >foodep
+: >foodep2
+: >bardep
+$MAKE >stdout || { cat stdout; Exit 1; }
+cat stdout
+grep 'making libfoodep' stdout
+
+rm -f foodep
+$MAKE && Exit 1
+: >foodep
+
+rm -f foodep2
+$MAKE && Exit 1
+: >foodep2
+
+rm -f bardep
+$MAKE && Exit 1
+: >bardep
+
+$MAKE
+$sleep
+touch libfoo.a
+$MAKE
+$MAKE bar-is-newer-than-libfoo.a
+
+$MAKE distcheck
+
+:
diff --git a/tests/extradep2.test b/tests/extradep2.test
new file mode 100755
index 0000000..7d72e82
--- /dev/null
+++ b/tests/extradep2.test
@@ -0,0 +1,86 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Test EXTRA_*_DEPENDENCIES, libtool version; see extradep.test.
+
+required=libtoolize
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_PROG_LIBTOOL
+AC_SUBST([deps], [bardep])
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+noinst_LTLIBRARIES = libfoo.la
+EXTRA_libfoo_la_DEPENDENCIES = libfoodep
+libfoodep:
+       @echo making $@
+       @: > $@
+CLEANFILES = libfoodep
+
+bin_PROGRAMS = bar
+bar_LDADD = libfoo.la
+EXTRA_bar_DEPENDENCIES = $(deps)
+
+EXTRA_DIST = bardep
+
+bar-is-newer-than-libfoo.la:
+       test `ls -1t bar$(EXEEXT) libfoo.la | sed q` = bar$(EXEEXT)
+END
+
+cat >libfoo.c <<'END'
+int libfoo () { return 0; }
+END
+
+cat >bar.c <<'END'
+extern int libfoo ();
+int main () { return libfoo (); }
+END
+
+libtoolize
+$ACLOCAL
+$AUTOMAKE --add-missing
+$AUTOCONF
+
+./configure
+
+# hypothesis: EXTRA_*_DEPENDENCIES are honored.
+
+: >foodep
+: >foodep2
+: >bardep
+$MAKE >stdout || { cat stdout; Exit 1; }
+cat stdout
+grep 'making libfoodep' stdout
+
+rm -f bardep
+$MAKE && Exit 1
+: >bardep
+
+$MAKE
+$sleep
+touch libfoo.la
+$MAKE
+$MAKE bar-is-newer-than-libfoo.la
+
+$MAKE distcheck
+
+:
diff --git a/tests/tags2.test b/tests/help-depend.test
similarity index 61%
copy from tests/tags2.test
copy to tests/help-depend.test
index f6e018c..ed9447e 100755
--- a/tests/tags2.test
+++ b/tests/help-depend.test
@@ -14,31 +14,28 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# TAGS_DEPENDENCIES only make sense if other tag-worthy things (such as
-# sources) exist.
+# Make sure that our private macro `AM_DEP_TRACK' adds proper text to
+# the configure help screen.
+# Keep this in sync with sister test `help-depend2.test'
 
 . ./defs || Exit 1
 
 set -e
 
-cat >> configure.in << 'END'
-AC_PROG_CC
-AC_OUTPUT
-END
-
-cat >Makefile.am << 'END'
-TAGS_DEPENDENCIES = foo
+cat > configure.in <<END
+AC_INIT([$me], [1.0])
+AM_DEP_TRACK
 END
 
 $ACLOCAL
-AUTOMAKE_fails
-grep 'define.*TAGS_DEPENDENCIES.*without' stderr
+$AUTOCONF
 
-cat >>Makefile.am << 'END'
-bin_PROGRAMS = bar
-END
+./configure --help >stdout || { cat stdout; Exit 1; }
+cat stdout
 
-AUTOMAKE_run 0
-grep 'define.*TAGS_DEPENDENCIES.*without' stderr && Exit 1
+$FGREP ' --enable-dependency-tracking ' stdout
+$FGREP ' --disable-dependency-tracking ' stdout
+$FGREP ' one-time build' stdout
+$FGREP ' slow dependency extract' stdout
 
 :
diff --git a/tests/colon2.test b/tests/help-depend2.test
similarity index 59%
copy from tests/colon2.test
copy to tests/help-depend2.test
index a52dfa8..b4133b4 100755
--- a/tests/colon2.test
+++ b/tests/help-depend2.test
@@ -1,6 +1,5 @@
 #! /bin/sh
-# Copyright (C) 1996, 2000, 2001, 2002, 2010 Free Software Foundation,
-# Inc.
+# Copyright (C) 2010 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
@@ -15,7 +14,9 @@
 # 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 ":" works with files automake generates.
+# Make sure that when automake automatically activates support for
+# dependency tracking, it adds proper text to the configure help screen.
+# Keep this in sync with sister test `help-depend.test'
 
 . ./defs || Exit 1
 
@@ -24,18 +25,18 @@ set -e
 cat > configure.in <<END
 AC_INIT([$me], [1.0])
 AM_INIT_AUTOMAKE
-AC_CONFIG_FILES([Makefile:zardoz.in])
-AC_OUTPUT
+AC_PROG_CC
 END
 
-echo 'dummy:' > zardoz.am
-
 $ACLOCAL
-$AUTOMAKE
+$AUTOCONF
+
+./configure --help >stdout || { cat stdout; Exit 1; }
+cat stdout
 
-# We actually check several things here.
-test -f zardoz.in
-grep '^zardoz:' zardoz.in && Exit 1
-grep '^dummy:' zardoz.in
+$FGREP ' --enable-dependency-tracking ' stdout
+$FGREP ' --disable-dependency-tracking ' stdout
+$FGREP ' one-time build' stdout
+$FGREP ' slow dependency extract' stdout
 
 :
diff --git a/tests/mdate6.test b/tests/help-dmalloc.test
similarity index 68%
copy from tests/mdate6.test
copy to tests/help-dmalloc.test
index cb2456c..c20288d 100755
--- a/tests/mdate6.test
+++ b/tests/help-dmalloc.test
@@ -14,22 +14,26 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# mdate-sh can work with weird file names, doesn't eval too much.
+# Make sure that our macro `AM_WITH_DMALLOC' adds proper text to
+# the configure help screen.
 
 . ./defs || Exit 1
 
 set -e
 
-a=
-file='file  name $a'
-( : > "$file" ) || Exit 77
+cat > configure.in <<END
+AC_INIT([$me], [1.0])
+AM_WITH_DMALLOC
+END
 
-cp "$top_testsrcdir/lib/mdate-sh" .
-$SHELL ./mdate-sh "$file" >stdout 2>stderr ||
-  { cat stdout; cat stderr >&2; Exit 1; }
+$ACLOCAL
+$AUTOCONF
+
+./configure --help >stdout || { cat stdout; Exit 1; }
 cat stdout
-cat stderr >&2
-grep '[12][0-9]\{3\}' stdout
-test ! -s stderr
+
+$FGREP ' --with-dmalloc ' stdout
+$FGREP ' use dmalloc' stdout
+$FGREP 'www.dmalloc.com' stdout
 
 :
diff --git a/tests/colon2.test b/tests/help-init.test
similarity index 68%
copy from tests/colon2.test
copy to tests/help-init.test
index a52dfa8..a3af271 100755
--- a/tests/colon2.test
+++ b/tests/help-init.test
@@ -1,6 +1,5 @@
 #! /bin/sh
-# Copyright (C) 1996, 2000, 2001, 2002, 2010 Free Software Foundation,
-# Inc.
+# Copyright (C) 2010 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
@@ -15,7 +14,8 @@
 # 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 ":" works with files automake generates.
+# Make sure that our grand macro `AM_INIT_AUTOMAKE' add proper text
+# to the configure help screen.
 
 . ./defs || Exit 1
 
@@ -24,18 +24,16 @@ set -e
 cat > configure.in <<END
 AC_INIT([$me], [1.0])
 AM_INIT_AUTOMAKE
-AC_CONFIG_FILES([Makefile:zardoz.in])
-AC_OUTPUT
 END
 
-echo 'dummy:' > zardoz.am
-
 $ACLOCAL
-$AUTOMAKE
+$AUTOCONF
+
+./configure --help >stdout || { cat stdout; Exit 1; }
+cat stdout
 
-# We actually check several things here.
-test -f zardoz.in
-grep '^zardoz:' zardoz.in && Exit 1
-grep '^dummy:' zardoz.in
+grep ' --program-prefix[= ]' stdout
+grep ' --program-suffix[= ]' stdout
+grep ' --program-transform-name[= ]' stdout
 
 :
diff --git a/tests/tags2.test b/tests/help-lispdir.test
similarity index 64%
copy from tests/tags2.test
copy to tests/help-lispdir.test
index f6e018c..3d82074 100755
--- a/tests/tags2.test
+++ b/tests/help-lispdir.test
@@ -14,31 +14,27 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# TAGS_DEPENDENCIES only make sense if other tag-worthy things (such as
-# sources) exist.
+# Make sure that our macro `AM_PATH_LISPDIR' adds proper text to
+# the configure help screen.
 
 . ./defs || Exit 1
 
 set -e
 
-cat >> configure.in << 'END'
-AC_PROG_CC
-AC_OUTPUT
-END
-
-cat >Makefile.am << 'END'
-TAGS_DEPENDENCIES = foo
+cat > configure.in <<END
+AC_INIT([$me], [1.0])
+AM_PATH_LISPDIR
 END
 
 $ACLOCAL
-AUTOMAKE_fails
-grep 'define.*TAGS_DEPENDENCIES.*without' stderr
+$AUTOCONF
 
-cat >>Makefile.am << 'END'
-bin_PROGRAMS = bar
-END
+./configure --help >stdout || { cat stdout; Exit 1; }
+cat stdout
 
-AUTOMAKE_run 0
-grep 'define.*TAGS_DEPENDENCIES.*without' stderr && Exit 1
+grep ' --with-lispdir .*override.*lisp directory' stdout
+grep ' EMACS .*[eE]macs editor' stdout
+grep ' EMACSLOADPATH' stdout
+grep ' .*[eE]macs library search path' stdout
 
 :
diff --git a/tests/help-maintainer.test b/tests/help-maintainer.test
new file mode 100755
index 0000000..72fc98a
--- /dev/null
+++ b/tests/help-maintainer.test
@@ -0,0 +1,58 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Make sure that our macro `AM_MAINTAINER_MODE' adds proper text to
+# the configure help screen.
+
+. ./defs || Exit 1
+
+set -e
+
+cat > configure.in <<END
+AC_INIT([$me], [1.0])
+AM_MAINTAINER_MODE
+END
+
+cat configure.in
+$ACLOCAL
+$AUTOCONF --force
+./configure --help >stdout || { cat stdout; Exit 1; }
+cat stdout
+grep ' --enable-maintainer-mode.*enable make rules' stdout
+
+rm -rf autom4te*.cache # just to be sure
+sed 's/\(AM_MAINTAINER_MODE\).*/\1([disable])/' configure.in >t
+mv -f t configure.in
+
+cat configure.in
+$ACLOCAL
+$AUTOCONF --force
+./configure --help >stdout || { cat stdout; Exit 1; }
+cat stdout
+grep ' --enable-maintainer-mode.*enable make rules' stdout
+
+rm -rf autom4te*.cache # just to be sure
+sed 's/\(AM_MAINTAINER_MODE\).*/\1([enable])/' configure.in >t
+mv -f t configure.in
+
+cat configure.in
+$ACLOCAL
+$AUTOCONF --force
+./configure --help >stdout || { cat stdout; Exit 1; }
+cat stdout
+grep ' --disable-maintainer-mode.*disable make rules' stdout
+
+:
diff --git a/tests/mdate6.test b/tests/help-multilib.test
similarity index 69%
copy from tests/mdate6.test
copy to tests/help-multilib.test
index cb2456c..0016c76 100755
--- a/tests/mdate6.test
+++ b/tests/help-multilib.test
@@ -14,22 +14,25 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# mdate-sh can work with weird file names, doesn't eval too much.
+# Make sure that our macro `AM_ENABLE_MULTILIB' adds proper text to
+# the configure help screen.
 
 . ./defs || Exit 1
 
 set -e
 
-a=
-file='file  name $a'
-( : > "$file" ) || Exit 77
+cat > configure.in <<END
+AC_INIT([$me], [1.0])
+AM_ENABLE_MULTILIB
+END
 
-cp "$top_testsrcdir/lib/mdate-sh" .
-$SHELL ./mdate-sh "$file" >stdout 2>stderr ||
-  { cat stdout; cat stderr >&2; Exit 1; }
+$ACLOCAL
+$AUTOCONF
+
+./configure --help >stdout || { cat stdout; Exit 1; }
 cat stdout
-cat stderr >&2
-grep '[12][0-9]\{3\}' stdout
-test ! -s stderr
+
+$FGREP ' --enable-multilib ' stdout
+$FGREP ' many library versions (default)' stdout
 
 :
diff --git a/tests/mdate6.test b/tests/help-regex.test
similarity index 70%
copy from tests/mdate6.test
copy to tests/help-regex.test
index cb2456c..3eff5f9 100755
--- a/tests/mdate6.test
+++ b/tests/help-regex.test
@@ -14,22 +14,25 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# mdate-sh can work with weird file names, doesn't eval too much.
+# Make sure that obsolescent macro `AM_WITH_REGEX' adds proper text to
+# the configure help screen.
 
 . ./defs || Exit 1
 
 set -e
 
-a=
-file='file  name $a'
-( : > "$file" ) || Exit 77
+cat > configure.in <<END
+AC_INIT([$me], [1.0])
+AM_WITH_REGEX
+END
 
-cp "$top_testsrcdir/lib/mdate-sh" .
-$SHELL ./mdate-sh "$file" >stdout 2>stderr ||
-  { cat stdout; cat stderr >&2; Exit 1; }
+$ACLOCAL
+$AUTOCONF
+
+./configure --help >stdout || { cat stdout; Exit 1; }
 cat stdout
-cat stderr >&2
-grep '[12][0-9]\{3\}' stdout
-test ! -s stderr
+
+$FGREP ' --without-regex ' stdout
+$FGREP ' use GNU rx ' stdout
 
 :
diff --git a/tests/tags2.test b/tests/help-silent.test
similarity index 56%
copy from tests/tags2.test
copy to tests/help-silent.test
index f6e018c..b338907 100755
--- a/tests/tags2.test
+++ b/tests/help-silent.test
@@ -14,31 +14,30 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# TAGS_DEPENDENCIES only make sense if other tag-worthy things (such as
-# sources) exist.
+# Make sure that our macro `AM_SILENT_RULES' adds proper text to
+# the configure help screen.
 
 . ./defs || Exit 1
 
 set -e
 
-cat >> configure.in << 'END'
-AC_PROG_CC
-AC_OUTPUT
-END
-
-cat >Makefile.am << 'END'
-TAGS_DEPENDENCIES = foo
+cat > configure.in <<END
+AC_INIT([$me], [1.0])
+AM_SILENT_RULES
 END
 
 $ACLOCAL
-AUTOMAKE_fails
-grep 'define.*TAGS_DEPENDENCIES.*without' stderr
-
-cat >>Makefile.am << 'END'
-bin_PROGRAMS = bar
-END
 
-AUTOMAKE_run 0
-grep 'define.*TAGS_DEPENDENCIES.*without' stderr && Exit 1
+mv -f configure.in configure.tmpl
+
+for args in '' '([])' '([yes])' '([no])'; do
+  sed "s/AM_SILENT_RULES.*/&$args/" configure.tmpl >configure.in
+  cat configure.in
+  $AUTOCONF --force
+  ./configure --help >stdout || { cat stdout; Exit 1; }
+  cat stdout
+  grep ' --enable-silent-rules  *less verbose build.*undo.*make V=1' stdout
+  grep ' --disable-silent-rules  *verbose build.*undo.*make V=0' stdout
+done
 
 :
diff --git a/tests/mdate6.test b/tests/help-upc.test
similarity index 67%
copy from tests/mdate6.test
copy to tests/help-upc.test
index cb2456c..586299b 100755
--- a/tests/mdate6.test
+++ b/tests/help-upc.test
@@ -14,22 +14,25 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# mdate-sh can work with weird file names, doesn't eval too much.
+# Make sure that our macro `AM_PROG_UPC' adds proper text to
+# the configure help screen.
 
 . ./defs || Exit 1
 
 set -e
 
-a=
-file='file  name $a'
-( : > "$file" ) || Exit 77
+cat > configure.in <<END
+AC_INIT([$me], [1.0])
+AM_PROG_UPC
+END
 
-cp "$top_testsrcdir/lib/mdate-sh" .
-$SHELL ./mdate-sh "$file" >stdout 2>stderr ||
-  { cat stdout; cat stderr >&2; Exit 1; }
+$ACLOCAL
+$AUTOCONF
+
+./configure --help >stdout || { cat stdout; Exit 1; }
 cat stdout
-cat stderr >&2
-grep '[12][0-9]\{3\}' stdout
-test ! -s stderr
+
+grep ' UPCFLAGS .*Unified Parallel C compiler flags' stdout
+grep ' UPC .*Unified Parallel C compiler command' stdout
 
 :
diff --git a/tests/help.test b/tests/help.test
index e9ccf62..dd8b3b4 100755
--- a/tests/help.test
+++ b/tests/help.test
@@ -14,28 +14,34 @@
 # 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 --help and --version work, even when no configure.ac
-# is in the current directory.
+# Make sure --help and --version work, even when no configure.ac nor
+# configure.in is in the current directory.
 
 . ./defs || Exit 1
 
 set -e
 
-# Ensure we are run from the right directory.
-# (The last thing we want is to delete some random user files.)
-test -f ../defs
-rm -f *
+# Ensure we run in an empty directory.
+mkdir emptydir
+cd emptydir
+
+# Honour user overrides for $ACLOCAL and $AUTOMAKE.
+ACLOCAL=`echo " $ACLOCAL " | sed 's/ -W[^ ]*/ /g'`
+AUTOMAKE=`echo " $AUTOMAKE " | sed 's/ -W[^ ]*/ /g'`
 
 $ACLOCAL --version
 $ACLOCAL --help
 $AUTOMAKE --version
 $AUTOMAKE --help
 
-# aclocal and automake cannot work without configure.ac or configure.in
+# Sanity checks: aclocal and automake cannot work without configure.ac
+# or configure.in.
 $ACLOCAL 2>stderr && { cat stderr >&2; Exit 1; }
 cat stderr >&2
-grep configure.ac stderr
-grep configure.in stderr
+$FGREP configure.ac stderr
+$FGREP configure.in stderr
 AUTOMAKE_fails
-grep configure.ac stderr
-grep configure.in stderr
+$FGREP configure.ac stderr
+$FGREP configure.in stderr
+
+:
diff --git a/tests/help.test b/tests/help2.test
similarity index 59%
copy from tests/help.test
copy to tests/help2.test
index e9ccf62..5212092 100755
--- a/tests/help.test
+++ b/tests/help2.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2003, 2008, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2010 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,28 +14,30 @@
 # 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 --help and --version work, even when no configure.ac
-# is in the current directory.
-
+# Make sure --help and --version work, even when the current directory
+# contains a broken configure.in.
 . ./defs || Exit 1
 
 set -e
 
-# Ensure we are run from the right directory.
-# (The last thing we want is to delete some random user files.)
-test -f ../defs
-rm -f *
+# Ensure we run in a new, clean directory.
+mkdir cleandir
+cd cleandir
+
+# Honour user overrides for $ACLOCAL and $AUTOMAKE.
+ACLOCAL=`echo " $ACLOCAL " | sed 's/ -W[^ ]*/ /g'`
+AUTOMAKE=`echo " $AUTOMAKE " | sed 's/ -W[^ ]*/ /g'`
+
+echo '[' > configure.in
 
-$ACLOCAL --version
-$ACLOCAL --help
 $AUTOMAKE --version
 $AUTOMAKE --help
 
-# aclocal and automake cannot work without configure.ac or configure.in
+# Sanity checks: aclocal and automake cannot work with broken configure.in.
 $ACLOCAL 2>stderr && { cat stderr >&2; Exit 1; }
 cat stderr >&2
-grep configure.ac stderr
-grep configure.in stderr
+$FGREP configure.in stderr
 AUTOMAKE_fails
-grep configure.ac stderr
-grep configure.in stderr
+$FGREP configure.in stderr
+
+:
diff --git a/tests/help3.test b/tests/help3.test
new file mode 100755
index 0000000..72399e3
--- /dev/null
+++ b/tests/help3.test
@@ -0,0 +1,61 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Make sure --help and --version takes precedence over other options.
+
+. ./defs || Exit 1
+
+set -e
+
+# We must have full control over the content of the current directory.
+mkdir cleandir
+cd cleandir
+
+# Honour user overrides for $ACLOCAL and $AUTOMAKE.
+ACLOCAL=`echo " $ACLOCAL " | sed 's/ -W[^ ]*/ /g'`
+AUTOMAKE=`echo " $AUTOMAKE " | sed 's/ -W[^ ]*/ /g'`
+
+cat > configure.in <<END
+AC_INIT([$me], [1.0])
+AC_CONFIG_AUX_DIR([.]) dnl prevent automake from looking into '..'
+AM_INIT_AUTOMAKE([foreign])
+AC_CONFIG_FILES([Makefile])
+END
+
+cat > Makefile.am <<END
+## so that install-sh will be required
+pkgdata_DATA =
+END
+
+$ACLOCAL --force --help --output=foo.m4
+test ! -r foo.m4
+$ACLOCAL --output=foo.m4 --version --force
+test ! -r foo.m4
+# Sanity check.
+$ACLOCAL --output=foo.m4 --force
+test -f foo.m4
+
+mv -f foo.m4 aclocal.m4 # autoconf will need aclocal.m4
+
+$AUTOMAKE --add-missing --help --copy
+test ! -r install-sh
+$AUTOMAKE --copy --version --add-mising
+test ! -r install-sh
+# Sanity check.
+$AUTOMAKE --add-missing --copy
+test -f install-sh
+
+:
diff --git a/tests/help4.test b/tests/help4.test
new file mode 100755
index 0000000..c5eb31e
--- /dev/null
+++ b/tests/help4.test
@@ -0,0 +1,55 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Make sure --help and --version work, even when no configure.ac
+# is in the current directory.
+
+. ./defs || Exit 1
+
+set -e
+
+# Ensure we run in an empty directory.
+mkdir emptydir
+cd emptydir
+
+# Honour user overrides for $ACLOCAL and $AUTOMAKE.
+ACLOCAL=`echo " $ACLOCAL " | sed 's/ -W[^ ]*/ /g'`
+AUTOMAKE=`echo " $AUTOMAKE " | sed 's/ -W[^ ]*/ /g'`
+
+escape_dots () { sed 's/\./\\./g'; } # avoid issues with `\' in backquotes
+apiversion_rx=`echo "$APIVERSION" | escape_dots`
+
+$ACLOCAL --version --help >stdout || { cat stdout; Exit 1; }
+cat stdout
+grep "^aclocal.*$apiversion_rx" stdout
+grep "^Usage" stdout && Exit 1
+
+$ACLOCAL --help --version >stdout || { cat stdout; Exit 1; }
+cat stdout
+grep "^Usage" stdout
+grep "^aclocal.*$apiversion_rx" stdout && Exit 1
+
+$AUTOMAKE --version --help >stdout || { cat stdout; Exit 1; }
+cat stdout
+grep "^automake.*$apiversion_rx" stdout
+grep "^Usage" stdout && Exit 1
+
+$AUTOMAKE --help --version >stdout || { cat stdout; Exit 1; }
+cat stdout
+grep "^Usage" stdout
+grep "^automake.*$apiversion_rx" stdout && Exit 1
+
+:
diff --git a/tests/init.test b/tests/init.test
index 38ec681..895bad6 100755
--- a/tests/init.test
+++ b/tests/init.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008, 2010 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,20 +14,27 @@
 # 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 give a sensible error message when neither AC_INIT nor
-# AM_INIT_AUTOMAKE are given arguments.
+# Make sure we give a sensible error message when AC_INIT and
+# AM_INIT_AUTOMAKE are both given less than two arguments.
 
 . ./defs || Exit 1
 
 set -e
 
-cat >configure.in <<END
-AC_INIT
-AM_INIT_AUTOMAKE
+for ac_init_args in '' '([x])'; do
+  for am_init_args in '' '([1.10])'; do
+    rm -rf aclocal.m4 autom4te*.cache
+    cat >configure.in <<END
+AC_INIT$ac_init_args
+AM_INIT_AUTOMAKE$am_init_args
 END
+    cat configure.in # might be useful for debugging
+    # The error message should mention AC_INIT, not AC_PACKAGE_VERSION.
+    ($ACLOCAL && $AUTOCONF) 2>stderr && { cat stderr >&2; Exit 1; }
+    cat stderr >&2
+    $FGREP AC_PACKAGE_VERSION stderr && Exit 1
+    grep 'configure\.in:.* AC_INIT .*arguments' stderr
+  done
+done
 
-# The error message should mension AC_INIT, not AC_PACKAGE_VERSION.
-($ACLOCAL && $AUTOCONF) 2>stderr && { cat stderr >&2; Exit 1; }
-cat stderr >&2
-grep AC_PACKAGE_VERSION stderr && Exit 1
-grep AC_INIT stderr
+:
diff --git a/tests/install2.test b/tests/install2.test
index d1f27fe..3cc71f5 100755
--- a/tests/install2.test
+++ b/tests/install2.test
@@ -1,5 +1,6 @@
 #! /bin/sh
-# Copyright (C) 1999, 2000, 2001, 2002, 2006  Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2001, 2002, 2006, 2010 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
@@ -17,8 +18,8 @@
 # Test for bug in `make dist'
 # From Pavel Roskin.
 
-required=gzip
 . ./defs || Exit 1
+
 set -e
 
 cat > configure.in << 'END'
diff --git a/tests/insthook.test b/tests/insthook.test
index 5a82bd6..a315447 100755
--- a/tests/insthook.test
+++ b/tests/insthook.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2003, 2005, 2007  Free Software Foundation, Inc.
+# Copyright (C) 2003, 2005, 2007, 2010  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
@@ -52,7 +52,7 @@ test -f ok
 
 # Make sure that installing a second version doesn't erase the first
 # one.  (This is error prone since `foo' symlinks to `foo-1.0' and the
-# second version will overwrite `foo'.   Hopefully `install' and `install-sh'
+# second version will overwrite `foo'.  Hopefully `install' and `install-sh'
 # are smart enough to erase the `foo' symlink before installing the new
 # version.)
 ./configure "--bindir=`pwd`/bin"
diff --git a/tests/instmany-mans.test b/tests/instmany-mans.test
index fcee60b..fe55be4 100755
--- a/tests/instmany-mans.test
+++ b/tests/instmany-mans.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2008, 2009  Free Software Foundation, Inc.
+# Copyright (C) 2008, 2009, 2010 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
@@ -123,7 +123,7 @@ test `find "$instdir" -type f -print | wc -l` = 0
 
 # Try whether we don't exceed the low limit.
 INSTALL='$(SHELL) $(top_builddir)/myinstall' $MAKE -e install
-env save_PATH="$PATH" PATH="`pwd`/..:$PATH" $MAKE uninstall
+env save_PATH="$PATH" PATH="`pwd`/..$PATH_SEPARATOR$PATH" $MAKE uninstall
 
 cd $subdir
 srcdir=../../$subdir
@@ -146,4 +146,5 @@ for file in page3.man page$nfiles.man npage3.man 
npage$nfiles.man; do
   $MAKE install-man3 && Exit 1
   chmod u+r $srcdir/$file
 done
+
 :
diff --git a/tests/instmany-python.test b/tests/instmany-python.test
index 6831c9e..7648e1b 100755
--- a/tests/instmany-python.test
+++ b/tests/instmany-python.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2008, 2009  Free Software Foundation, Inc.
+# Copyright (C) 2008, 2009, 2010 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
@@ -113,7 +113,7 @@ test `find "$instdir" -type f -print | wc -l` = 0
 
 # Try whether we don't exceed the low limit.
 INSTALL='$(SHELL) $(top_builddir)/myinstall' $MAKE -e install
-env save_PATH="$PATH" PATH="`pwd`/..:$PATH" $MAKE uninstall
+env save_PATH="$PATH" PATH="`pwd`/..$PATH_SEPARATOR$PATH" $MAKE uninstall
 
 cd $subdir
 srcdir=../../$subdir
diff --git a/tests/instmany.test b/tests/instmany.test
index a3b10cb..2de026d 100755
--- a/tests/instmany.test
+++ b/tests/instmany.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2008, 2009  Free Software Foundation, Inc.
+# Copyright (C) 2008, 2009, 2010 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
@@ -137,7 +137,7 @@ test `find "$instdir" -type f -print | wc -l` = 0
 
 # Try whether we don't exceed the low limit.
 INSTALL='$(SHELL) $(top_builddir)/myinstall' $MAKE -e install
-env save_PATH="$PATH" PATH="`pwd`/..:$PATH" $MAKE uninstall
+env save_PATH="$PATH" PATH="`pwd`/..$PATH_SEPARATOR$PATH" $MAKE uninstall
 
 cd $subdir
 srcdir=../../$subdir
diff --git a/tests/instspc-tests.sh b/tests/instspc-tests.sh
new file mode 100755
index 0000000..90087eb
--- /dev/null
+++ b/tests/instspc-tests.sh
@@ -0,0 +1,301 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+#
+# Driver script to generate and run tests checking that building from,
+# or installing to, directories with shell metacharacters succeed.
+#
+# Original report from James Amundson about file names with spaces.
+# Other characters added by Paul Eggert.
+#
+# This script fulfills a double role:
+#   1. It generates a Makefile.am snippet, containing the definition
+#      of proper lists of tests.
+#   2. It is sourced by said generated tests with proper parameters
+#      pre-set, to run the "meat" of the checks.
+# This setup might seem tricky and over-engineered abuse, but past
+# (painful) experiences showed that it is indeed required, because
+# the test generation code and test execution code tend to be
+# inextricably coupled and intertwined.
+#
+
+# Be more Bourne compatible (snippet copied from `tests/defs.in').
+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
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+
+set -e
+
+# Sanity and usage checks.
+if test x"$instspc_action" = x; then
+  if test "$#,$1" = "1,--generate-makefile"; then
+    instspc_action=generate-makefile
+  else
+    echo "$0: empty action and no proper command line" >&2
+    exit 99
+  fi
+elif test $# -gt 0; then
+  echo "$0: action specified and command line arguments used" >&2
+  exit 99
+elif test x"$instspc_action" = x"generate-makefile"; then
+  :
+else
+  case $instspc_action in
+    test-build|test-install)
+      if test x"$instspc_test_name" = x; then
+        echo "$0: test name undefined for action '$instspc_action'" >&2
+        exit 99
+      fi;;
+    *)
+      echo "$0: invalid action: '$instspc_action'"
+      exit 99;;
+  esac
+fi
+
+# Helper subroutine for test data definition.
+# Usage: define_problematic_string NAME STRING
+define_problematic_string ()
+{
+  tst=$1
+  shift
+  eval "instspc__$tst=\$1" || exit 99
+  shift
+  instspc_names_list="$instspc_names_list $tst"
+  # Some of the "problematic" characters cannot be used in the name of
+  # a build or install directory on a POSIX host.  These lists should
+  # be empty, but are not due to limitations in Autoconf, Automake, Make,
+  # M4, or the shell.
+  case " $* " in *' fail-build '*|*' build-fail '*)
+    instspc_xfail_builds_list="$instspc_xfail_builds_list $tst";;
+  esac
+  case " $* " in *' fail-install '*|*' install-fail '*)
+    instspc_xfail_installs_list="$instspc_xfail_installs_list $tst";;
+  esac
+}
+
+# Be sure to avoid interferences from the environment.
+instspc_names_list=''
+instspc_xfail_builds_list=''
+instspc_xfail_installs_list=''
+
+
+# ================= #
+#  Test data begin  #
+# ----------------- #
+
+# Some control characters that are white space.
+bs=''   # back space
+cr='
'   # carriage return
+ff=''   # form feed
+ht='   ' # horizontal tab
+lf='
+'         # line feed (aka newline)
+
+# Hack to save typing and make code visually clearer.
+def=define_problematic_string
+
+$def    squote          \'          fail-build  fail-install
+$def    dquote          '"'         fail-build  fail-install
+$def    bquote          '`'         fail-build  fail-install
+$def    sharp           '#'         fail-build  fail-install
+$def    dollar          '$'         fail-build  fail-install
+$def    bang            '!'
+$def    bslash          '\'         fail-build
+$def    ampersand       '&'         fail-build
+$def    percent         '%'
+$def    leftpar         '('
+$def    rightpar        ')'
+$def    pipe            '|'
+$def    caret           '^'
+$def    tilde           '~'
+$def    qmark           '?'
+$def    star            '*'
+$def    plus            '+'
+$def    minus           '-'
+$def    comma           ','
+$def    colon           ':'
+$def    semicol         ';'
+$def    equal           '='
+$def    less            '<'
+$def    more            '>'
+$def    at              '@'
+$def    lqbrack         '['
+$def    rqbrack         ']'
+$def    lcbrack         '{'
+$def    rcbrack         '}'
+$def    space           ' '
+$def    tab             "$ht"
+$def    linefeed        "$lf"       fail-build  fail-install
+$def    backspace       "$bs"
+$def    formfeed        "$ff"
+$def    carriageret     "$cr"
+$def    quadrigraph0    '@&t@'      fail-build
+$def    quadrigraph1    '@<:@'
+$def    quadrigraph2    '@:>@'
+$def    quadrigraph3    '@S|@'
+$def    quadrigraph4    '@%:@'
+$def    a_b             'a b'
+$def    a__b            'a  b'
+$def    a_lf_b          "a${lf}b"   fail-build  fail-install
+$def    dotdotdot       '...'
+$def    dosdrive        'a:'
+$def    miscglob1       '?[a-z]*'
+$def    miscglob2       '.*?[0-9]'
+
+unset def
+
+# --------------- #
+#  Test data end  #
+# =============== #
+
+
+if test x"$instspc_action" = x"generate-makefile"; then
+  # We must generate a makefile fragment on stdout.  It must refer
+  # to all tests at once, hence the loop below.
+  echo '## Generated by instspc-tests.sh.  DO NOT EDIT!'
+  echo 'instspc_tests ='
+  echo 'instspc_xfail_tests ='
+  for test_name in $instspc_names_list; do
+    echo "instspc_tests += instspc-$test_name-build.test"
+    echo "instspc_tests += instspc-$test_name-install.test"
+  done
+  for test_name in $instspc_xfail_builds_list; do
+    echo "instspc_xfail_tests += instspc-$test_name-build.test"
+  done
+  for test_name in $instspc_xfail_installs_list; do
+    echo "instspc_xfail_tests += instspc-$test_name-install.test"
+  done
+  exit 0
+fi
+
+###  If we are still here, we have to run a test ...
+
+# We'll need the full setup provided by `tests/defs'.  Temporarly disable
+# the errexit flag, since the setup code might not be prepared to deal
+# with it.
+set +e
+. ./defs || Exit 99
+set -e
+
+eval "instspc_test_string=\${instspc__$instspc_test_name}" || Exit 99
+if test x"$instspc_test_string" = x; then
+  echo "$me: invalid test name: '$instspc_test_name'" >&2
+  Exit 99
+fi
+
+# Skip if this system doesn't support these characters in file names.
+mkdir "./$instspc_test_string" || Exit 77
+
+mkdir sub sub1
+
+cat >> configure.in << 'EOF'
+AC_PROG_CC
+AC_PROG_RANLIB
+AC_OUTPUT
+EOF
+
+: > sub/base.h
+: > sub/nobase.h
+: > sub/base.dat
+: > sub/nobase.dat
+: > sub/base.sh
+: > sub/nobase.sh
+
+cat > source.c << 'EOF'
+int
+main (int argc, char **argv)
+{
+  return 0;
+}
+EOF
+cp source.c source2.c
+
+cat > Makefile.am << 'EOF'
+foodir = $(prefix)/foo
+fooexecdir = $(prefix)/foo
+
+foo_HEADERS = sub/base.h
+nobase_foo_HEADERS = sub/nobase.h
+
+dist_foo_DATA = sub/base.dat
+nobase_dist_foo_DATA = sub/nobase.dat
+
+dist_fooexec_SCRIPTS = sub/base.sh
+nobase_dist_fooexec_SCRIPTS = sub/nobase.sh
+
+fooexec_PROGRAMS = sub/base
+nobase_fooexec_PROGRAMS = sub/nobase
+sub_base_SOURCES = source.c
+sub_nobase_SOURCES = source.c
+
+fooexec_LIBRARIES = sub/libbase.a
+nobase_fooexec_LIBRARIES = sub/libnobase.a
+sub_libbase_a_SOURCES = source.c
+sub_libnobase_a_SOURCES = source.c
+
+.PHONY: test-install-sep
+test-install-sep: install
+       test   -f '$(DESTDIR)/$(file)-prefix/foo/sub/nobase.h'
+       test ! -f '$(DESTDIR)/$(file)-prefix/foo/nobase.h'
+       test   -f '$(DESTDIR)/$(file)-prefix/foo/base.h'
+       test   -f '$(DESTDIR)/$(file)-prefix/foo/sub/nobase.dat'
+       test ! -f '$(DESTDIR)/$(file)-prefix/foo/nobase.dat'
+       test   -f '$(DESTDIR)/$(file)-prefix/foo/base.dat'
+       test   -f '$(DESTDIR)/$(file)-prefix/foo/sub/nobase.sh'
+       test ! -f '$(DESTDIR)/$(file)-prefix/foo/nobase.sh'
+       test   -f '$(DESTDIR)/$(file)-prefix/foo/base.sh'
+       test   -f '$(DESTDIR)/$(file)-prefix/foo/sub/nobase$(EXEEXT)'
+       test ! -f '$(DESTDIR)/$(file)-prefix/foo/nobase$(EXEEXT)'
+       test   -f '$(DESTDIR)/$(file)-prefix/foo/base$(EXEEXT)'
+       test   -f '$(DESTDIR)/$(file)-prefix/foo/sub/libnobase.a'
+       test ! -f '$(DESTDIR)/$(file)-prefix/foo/libnobase.a'
+       test   -f '$(DESTDIR)/$(file)-prefix/foo/libbase.a'
+EOF
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+
+case $instspc_action in
+  test-build)
+    build=$instspc_test_string
+    dest=`pwd`/sub1
+    ;;
+  test-install)
+    build=sub1
+    dest=`pwd`/$instspc_test_string
+    ;;
+  *)
+    echo "$me: internal error: invalid action '$instspc_action'"
+    Exit 99
+    ;;
+esac
+
+cd "./$build"
+
+../configure --prefix "/$instspc_test_string-prefix"
+$MAKE
+DESTDIR="$dest" file="$instspc_test_string" $MAKE -e test-install-sep
+
+:
diff --git a/tests/instspc.test b/tests/instspc.test
deleted file mode 100755
index 414b3e5..0000000
--- a/tests/instspc.test
+++ /dev/null
@@ -1,187 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2004, 2005  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 installation to directory with shell metacharacters succeed.
-# Original report from James Amundson about file names with spaces.
-# Other characters added by Paul Eggert.
-
-# This is mostly the same input as nobase.test, but we do not use
-# libtool libraries, because Libtool does not preserve space in
-# file names (Issue observed with ltmain.sh (GNU libtool) 1.5a (1.1323
-# 2003/11/10 21:06:47))
-
-
-required='gcc'
-. ./defs || Exit 1
-
-set -e
-
-# Set up files that won't change each time through the loop.
-
-cat >> configure.in <<'EOF'
-AC_PROG_CC
-AC_PROG_RANLIB
-AC_OUTPUT
-EOF
-
-mkdir sub
-
-: > sub/base.h
-: > sub/nobase.h
-: > sub/base.dat
-: > sub/nobase.dat
-: > sub/base.sh
-: > sub/nobase.sh
-
-cat >source.c <<'EOF'
-int
-main (int argc, char **argv)
-{
-  return 0;
-}
-EOF
-cp source.c source2.c
-
-cat > Makefile.am << 'EOF'
-foodir = $(prefix)/foo
-fooexecdir = $(prefix)/foo
-
-foo_HEADERS = sub/base.h
-nobase_foo_HEADERS = sub/nobase.h
-
-dist_foo_DATA = sub/base.dat
-nobase_dist_foo_DATA = sub/nobase.dat
-
-dist_fooexec_SCRIPTS = sub/base.sh
-nobase_dist_fooexec_SCRIPTS = sub/nobase.sh
-
-fooexec_PROGRAMS = sub/base
-nobase_fooexec_PROGRAMS = sub/nobase
-sub_base_SOURCES = source.c
-sub_nobase_SOURCES = source.c
-
-fooexec_LIBRARIES = sub/libbase.a
-nobase_fooexec_LIBRARIES = sub/libnobase.a
-sub_libbase_a_SOURCES = source.c
-sub_libnobase_a_SOURCES = source.c
-
-test-install-sep: install
-       test   -f '$(DESTDIR)/$(file)-prefix/foo/sub/nobase.h'
-       test ! -f '$(DESTDIR)/$(file)-prefix/foo/nobase.h'
-       test   -f '$(DESTDIR)/$(file)-prefix/foo/base.h'
-       test   -f '$(DESTDIR)/$(file)-prefix/foo/sub/nobase.dat'
-       test ! -f '$(DESTDIR)/$(file)-prefix/foo/nobase.dat'
-       test   -f '$(DESTDIR)/$(file)-prefix/foo/base.dat'
-       test   -f '$(DESTDIR)/$(file)-prefix/foo/sub/nobase.sh'
-       test ! -f '$(DESTDIR)/$(file)-prefix/foo/nobase.sh'
-       test   -f '$(DESTDIR)/$(file)-prefix/foo/base.sh'
-       test   -f '$(DESTDIR)/$(file)-prefix/foo/sub/nobase$(EXEEXT)'
-       test ! -f '$(DESTDIR)/$(file)-prefix/foo/nobase$(EXEEXT)'
-       test   -f '$(DESTDIR)/$(file)-prefix/foo/base$(EXEEXT)'
-       test   -f '$(DESTDIR)/$(file)-prefix/foo/sub/libnobase.a'
-       test ! -f '$(DESTDIR)/$(file)-prefix/foo/libnobase.a'
-       test   -f '$(DESTDIR)/$(file)-prefix/foo/libbase.a'
-EOF
-
-$ACLOCAL
-$AUTOCONF
-$AUTOMAKE -a
-
-# Some control characters that are white space:
-# back space, carriage return, form feed, horizontal tab, line feed, space
-bs=''
-cr='
'
-ff=''
-ht='   '
-lf='
-'
-sp=' '
-
-build_failures=
-install_failures=
-
-for file in \
-  '!' '"' '#' '$' '%' '&' \' '(' ')' '*' '+' ',' '-' ':' ';' \
-  '<' '=' '>' '?' '@' '[' '\' ']' '^' '`' '{' '|' '}' '~' \
-  "$bs" "$cr" "$ff" "$ht" "$lf" "$sp" \
-  '@<:@' '@:>@' '@S|@' '@%:@' '@&t@' \
-  "a${sp}b" "a${sp}${sp}b" "a${lf}b" ... a:
-do
-  for test in build install; do
-    case $test in
-    build)
-      build=$file
-      dest=`pwd`/sub1;;
-    install)
-      build=sub1
-      dest=`pwd`/$file;;
-    esac
-
-    # Make sure this system supports this character in file names.
-    mkdir sub1 "./$file" || Exit 77
-
-    cd "$build"
-
-    ../configure --prefix "/$file-prefix" &&
-    $MAKE &&
-    DESTDIR=$dest file=$file $MAKE -e test-install-sep ||
-      eval "${test}_failures=\"\$${test}_failures$lf\$file\""
-
-    cd ..
-
-    rm -fr sub1 "./$file"
-  done
-done
-
-# The list of the above file names that cannot be used as a build directory
-# on a POSIX host.  This list should be empty, but is not due to limitations
-# in Autoconf, Automake, Make, M4, or the shell.
-expected_build_failures='
-"
-#
-$
-&
-'\''
-\
-`
-'"$lf"'
-@&t@
-a'"${lf}"'b'
-
-# Similarly, the list of file names that cannot be used as an install directory
-# on a POSIX host.  This list should also be empty.
-expected_install_failures='
-"
-#
-$
-'\''
-`
-'"$lf"'
-a'"${lf}"'b'
-
-fail=0
-for test in build install; do
-  eval failures=\$${test}_failures
-  case $failures in
-  ?*)
-    cat >&2 <<EOF
-$0: $test test failed for the following file names:$failures
-EOF
-    eval test \"\$failures\" = \"\$expected_${test}_failures\" || fail=1
-  esac
-done
-
-Exit $fail
diff --git a/tests/lex3.test b/tests/lex3.test
index 178a54f..c4120cf 100755
--- a/tests/lex3.test
+++ b/tests/lex3.test
@@ -18,7 +18,7 @@
 # Test associated with PR 19.
 # From Matthew D. Langston.
 
-required='gcc gzip flex GNUmake'
+required='gcc flex GNUmake'
 . ./defs || Exit 1
 
 # Ignore user CFLAGS.
diff --git a/tests/lisp7.test b/tests/lispdry.test
similarity index 78%
copy from tests/lisp7.test
copy to tests/lispdry.test
index cf52527..3bca21a 100755
--- a/tests/lisp7.test
+++ b/tests/lispdry.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2005  Free Software Foundation, Inc.
+# Copyright (C) 2005, 2008, 2010 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,8 +14,9 @@
 # You should have received a copy of the GNU General Public License
 # along with GNU Automake; see the file COPYING.  If not, write to
 
-# Make sure that lisp_LISP also works when emacs is not installed.
+# Check that `make -n' works with the lisp_LISP recover rule.
 
+required='emacs non-root'
 . ./defs || Exit 1
 
 set -e
@@ -26,7 +27,6 @@ EOF
 
 cat >> configure.in << 'EOF'
 AM_PATH_LISPDIR
-EMACS=no # Simulate no emacs.
 AC_OUTPUT
 EOF
 
@@ -39,14 +39,22 @@ $AUTOCONF
 $AUTOMAKE --add-missing
 ./configure
 
-$MAKE >stdout
+$MAKE
 
-cat stdout
-test 1 -eq `grep 'Warnings can be ignored' stdout | wc -l`
+test -f am-one.elc
+test -f am-two.elc
+test -f am-three.elc
+test -f elc-stamp
+
+rm -f am-*.elc elc-stamp
+
+chmod a-w .
+
+$MAKE -n
 
 test ! -f am-one.elc
 test ! -f am-two.elc
 test ! -f am-three.elc
-test -f elc-stamp
+test ! -f elc-stamp
 
-$MAKE distcheck
+:
diff --git a/tests/man4.test b/tests/man4.test
index aa86a9e..de75f83 100755
--- a/tests/man4.test
+++ b/tests/man4.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2008  Free Software Foundation, Inc.
+# Copyright (C) 2008, 2010 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
@@ -73,7 +73,7 @@ END
 
 chmod +x foo bar help2man
 save_PATH=$PATH
-PATH=`pwd`:$PATH
+PATH=`pwd`$PATH_SEPARATOR$PATH
 
 $ACLOCAL
 $AUTOMAKE
diff --git a/tests/missing6.test b/tests/missing6.test
index 3994b85..e543697 100755
--- a/tests/missing6.test
+++ b/tests/missing6.test
@@ -22,7 +22,7 @@ set -e
 
 {
   echo 'm4_define([AC_AUTOCONF_VERSION], [9999a])'
-  echo 'm4_define([b], [oops])'
+  echo 'dnl!! m4_define([a], [oops])'
   cat configure.in
   echo AC_OUTPUT
 } >configure.ac
@@ -39,10 +39,9 @@ $AUTOMAKE
 ./configure
 $MAKE
 
-sed 's/\[b\]/[a]/' < configure.ac > configure.tmp
-cmp configure.ac configure.tmp && Exit 1
-
-mv configure.tmp configure.ac
+sed 's/^dnl!! //' < configure.ac > configure.tmp
+cmp configure.ac configure.tmp && Exit 99 # sanity check
+mv -f configure.tmp configure.ac
 
 $MAKE 2>stderr || { cat stderr >&2; Exit 1; }
 cat stderr >&2
diff --git a/tests/mkinst3.test b/tests/mkinst3.test
index 6ccabf9..da999d3 100755
--- a/tests/mkinst3.test
+++ b/tests/mkinst3.test
@@ -52,7 +52,7 @@ EOF
 chmod +x bin/mkdir
 AM_PATH=$PATH
 export AM_PATH
-PATH=`pwd`/bin:$PATH
+PATH=`pwd`/bin$PATH_SEPARATOR$PATH
 export PATH
 
 # Test mkinstalldirs without mkdir -p.
diff --git a/tests/mmode.test b/tests/mmode.test
index 19f83f1..c5a16c9 100755
--- a/tests/mmode.test
+++ b/tests/mmode.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2008  Free Software Foundation, Inc.
+# Copyright (C) 2008, 2010 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
@@ -31,7 +31,6 @@ $ACLOCAL
 $AUTOCONF
 $AUTOMAKE -a
 
-./configure --help | grep 'enable-maintainer-mode.*enable make rules'
 ./configure
 grep '^MAINT.*#' Makefile
 
@@ -51,7 +50,6 @@ sed 's/\(AM_MAINTAINER_MODE\).*/\1([enable])/' configure.in > 
configure.int
 mv -f configure.int configure.in
 $AUTOCONF --force
 
-./configure --help | grep 'disable-maintainer-mode.*disable make rules'
 ./configure
 grep '^MAINT.*#' Makefile && Exit 1
 
@@ -64,4 +62,5 @@ grep '^MAINT.*#' Makefile
 sed 's/\(AM_MAINTAINER_MODE\).*/\1([foo])/' configure.in > configure.int
 mv -f configure.int configure.in
 $AUTOCONF --force -Werror && Exit 1
+
 :
diff --git a/tests/mmodely.test b/tests/mmodely.test
index 0f9bb3b..fc94d37 100755
--- a/tests/mmodely.test
+++ b/tests/mmodely.test
@@ -1,5 +1,6 @@
 #! /bin/sh
-# Copyright (C) 2004, 2006, 2007, 2009  Free Software Foundation, Inc.
+# Copyright (C) 2004, 2006, 2007, 2009, 2010 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
@@ -82,7 +83,7 @@ cat >mylex.sh <<'END'
 echo "$@" >lex.yy.c
 END
 chmod +x myyacc.sh mylex.sh
-PATH="`pwd`:$PATH"
+PATH="`pwd`$PATH_SEPARATOR$PATH"
 
 # make maintainer-clean; ./configure; make should always work,
 # per GNU Standard.
diff --git a/tests/multlib.test b/tests/multlib.test
index 73e9b37..c4b0024 100755
--- a/tests/multlib.test
+++ b/tests/multlib.test
@@ -45,7 +45,7 @@ gcc ${1+"$@"}
 END
 
 chmod +x mycc
-PATH=`pwd`:$PATH
+PATH=`pwd`$PATH_SEPARATOR$PATH
 
 cat >Makefile.am <<'EOF'
 SUBDIRS = @subdirs@
diff --git a/tests/pr9.test b/tests/pr9.test
index 4638b52..a2e71d7 100755
--- a/tests/pr9.test
+++ b/tests/pr9.test
@@ -23,7 +23,6 @@
 # ltconfig, ltmain.sh, mdate-sh, missing, and mkinstalldirs.  In fact,
 # the entire `support/' directory is omitted.
 
-required=gzip
 . ./defs || Exit 1
 
 set -e
diff --git a/tests/python11.test b/tests/python11.test
index 0f15f37..9163aac 100755
--- a/tests/python11.test
+++ b/tests/python11.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2004, 2006, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2004, 2006, 2008, 2010 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
@@ -44,8 +44,8 @@ grep 'no suitable Python interpreter found' stderr
 
 sed 's/AM_PATH_PYTHON/AM_PATH_PYTHON(,,:)/' configure.in >configure.int
 mv -f configure.int configure.in
-$ACLOCAL
-$AUTOCONF
+$ACLOCAL --force
+$AUTOCONF --force
 # This one should define PYTHON as : and exit succesfully
 ./configure
 
diff --git a/tests/txinfo30.test b/tests/txinfo30.test
index 8db42d9..296180d 100755
--- a/tests/txinfo30.test
+++ b/tests/txinfo30.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2005  Free Software Foundation, Inc.
+# Copyright (C) 2005, 2010 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
@@ -41,7 +41,7 @@ EOF
 
 chmod +x makeinfo
 
-PATH=`pwd`:$PATH
+PATH=`pwd`$PATH_SEPARATOR$PATH
 export PATH
 
 $ACLOCAL
diff --git a/tests/vartypo2.test b/tests/vartypo2.test
new file mode 100755
index 0000000..5b87404
--- /dev/null
+++ b/tests/vartypo2.test
@@ -0,0 +1,71 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Make sure we warn about possible variable typos when we should,
+# Libtool variant.
+
+required=libtoolize
+. ./defs || Exit 1
+
+set -e
+
+cat >>configure.in <<'END'
+AC_PROG_LIBTOOL
+AC_OUTPUT
+END
+
+cat >Makefile.am <<'END'
+libfoo_la_SOURCES = unused
+nodist_libfoo_la_SOURCES = unused
+EXTRA_libfoo_la_SOURCES = unused
+libfoo_la_LIBADD = unused
+libfoo_la_DEPENDENCIES = unused
+EXTRA_libfoo_la_DEPENDENCIES = unused
+END
+
+libtoolize
+$ACLOCAL
+AUTOMAKE_fails --add-missing
+# The expected diagnostic is:
+# automake: warnings are treated as errors
+# Makefile.am:3: warning: variable `EXTRA_libfoo_la_SOURCES' is defined but no 
program or
+# Makefile.am:3: library has `libfoo_la' as canonical name (possible typo)
+# Makefile.am:1: warning: variable `libfoo_la_SOURCES' is defined but no 
program or
+# Makefile.am:1: library has `libfoo_la' as canonical name (possible typo)
+# Makefile.am:2: warning: variable `nodist_libfoo_la_SOURCES' is defined but 
no program or
+# Makefile.am:2: library has `libfoo_la' as canonical name (possible typo)
+# Makefile.am:4: warning: variable `libfoo_la_LIBADD' is defined but no 
program or
+# Makefile.am:4: library has `libfoo_la' as canonical name (possible typo)
+# Makefile.am:6: warning: variable `EXTRA_libfoo_la_DEPENDENCIES' is defined 
but no program or
+# Makefile.am:6: library has `libfoo_la' as canonical name (possible typo)
+# Makefile.am:5: warning: variable `libfoo_la_DEPENDENCIES' is defined but no 
program or
+# Makefile.am:5: library has `libfoo_la' as canonical name (possible typo)
+
+
+test -z "`grep 'as canonical' stderr | grep -v ' .libfoo_la. '`"
+test `grep 'variable.*is defined but' stderr | wc -l` = 6
+
+# If we add a global -Wnone, all warnings should disappear.
+$AUTOMAKE -Wnone
+
+# Likewise, if matching programs or libraries are defined.
+cat >>Makefile.am <<'END'
+lib_LTLIBRARIES = libfoo.la
+END
+
+$AUTOMAKE
+
+:
diff --git a/tests/vartypos.test b/tests/vartypos.test
new file mode 100755
index 0000000..73e7c55
--- /dev/null
+++ b/tests/vartypos.test
@@ -0,0 +1,90 @@
+#! /bin/sh
+# Copyright (C) 2010 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/>.
+
+# Make sure we warn about possible variable typos when we should.
+
+. ./defs || Exit 1
+
+set -e
+
+cat >>configure.in <<'END'
+AC_PROG_RANLIB
+AC_OUTPUT
+END
+
+cat >Makefile.am <<'END'
+foo_SOURCES = unused
+nodist_foo_SOURCES = unused
+EXTRA_foo_SOURCES = unused
+foo_LDADD = unused
+foo_LDFLAGS = unused
+foo_DEPENDENCIES = unused
+EXTRA_foo_DEPENDENCIES = unused
+
+libfoo_a_SOURCES = unused
+nodist_libfoo_a_SOURCES = unused
+EXTRA_libfoo_a_SOURCES = unused
+libfoo_a_LIBADD = unused
+libfoo_a_DEPENDENCIES = unused
+EXTRA_libfoo_a_DEPENDENCIES = unused
+END
+
+$ACLOCAL
+AUTOMAKE_fails
+# The expected diagnostic is:
+# automake: warnings are treated as errors
+# Makefile.am:2: warning: variable `nodist_foo_SOURCES' is defined but no 
program or
+# Makefile.am:2: library has `foo' as canonical name (possible typo)
+# Makefile.am:1: warning: variable `foo_SOURCES' is defined but no program or
+# Makefile.am:1: library has `foo' as canonical name (possible typo)
+# Makefile.am:9: warning: variable `libfoo_a_SOURCES' is defined but no 
program or
+# Makefile.am:9: library has `libfoo_a' as canonical name (possible typo)
+# Makefile.am:10: warning: variable `nodist_libfoo_a_SOURCES' is defined but 
no program or
+# Makefile.am:10: library has `libfoo_a' as canonical name (possible typo)
+# Makefile.am:11: warning: variable `EXTRA_libfoo_a_SOURCES' is defined but no 
program or
+# Makefile.am:11: library has `libfoo_a' as canonical name (possible typo)
+# Makefile.am:3: warning: variable `EXTRA_foo_SOURCES' is defined but no 
program or
+# Makefile.am:3: library has `foo' as canonical name (possible typo)
+# Makefile.am:12: warning: variable `libfoo_a_LIBADD' is defined but no 
program or
+# Makefile.am:12: library has `libfoo_a' as canonical name (possible typo)
+# Makefile.am:4: warning: variable `foo_LDADD' is defined but no program or
+# Makefile.am:4: library has `foo' as canonical name (possible typo)
+# Makefile.am:5: warning: variable `foo_LDFLAGS' is defined but no program or
+# Makefile.am:5: library has `foo' as canonical name (possible typo)
+# Makefile.am:14: warning: variable `EXTRA_libfoo_a_DEPENDENCIES' is defined 
but no program or
+# Makefile.am:14: library has `libfoo_a' as canonical name (possible typo)
+# Makefile.am:7: warning: variable `EXTRA_foo_DEPENDENCIES' is defined but no 
program or
+# Makefile.am:7: library has `foo' as canonical name (possible typo)
+# Makefile.am:6: warning: variable `foo_DEPENDENCIES' is defined but no 
program or
+# Makefile.am:6: library has `foo' as canonical name (possible typo)
+# Makefile.am:13: warning: variable `libfoo_a_DEPENDENCIES' is defined but no 
program or
+# Makefile.am:13: library has `libfoo_a' as canonical name (possible typo)
+
+test -z "`grep 'as canonical' stderr | grep -v ' .foo. ' | grep -v ' 
.libfoo_a. '`"
+test `grep 'variable.*is defined but' stderr | wc -l` = 13
+
+# If we add a global -Wnone, all warnings should disappear.
+$AUTOMAKE -Wnone
+
+# Likewise, if matching programs or libraries are defined.
+cat >>Makefile.am <<'END'
+bin_PROGRAMS = foo
+lib_LIBRARIES = libfoo.a
+END
+
+$AUTOMAKE
+
+:
diff --git a/tests/condhook2.test b/tests/yaccdry.test
similarity index 63%
copy from tests/condhook2.test
copy to tests/yaccdry.test
index 45e2d43..d11d3fe 100755
--- a/tests/condhook2.test
+++ b/tests/yaccdry.test
@@ -1,4 +1,4 @@
-#!/bin/sh
+#! /bin/sh
 # Copyright (C) 2010 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -14,36 +14,46 @@
 # 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 install when a conditional install-*-hook is defined.
-# Keep this in sync with sister test condhook.test.
+# Removal recovery rules for headers should not remove files with `make -n'.
 
 . ./defs || Exit 1
 
 set -e
 
 cat >> configure.in << 'END'
-AM_CONDITIONAL([TEST], [true])
+AC_PROG_CC
+AC_PROG_YACC
 AC_OUTPUT
 END
 
 cat > Makefile.am << 'END'
-sysconf_DATA = mumble
-if TEST
-install-data-hook:
-       : > $(top_srcdir)/good
-endif
+AM_YFLAGS = -d
+bin_PROGRAMS = foo
+foo_SOURCES = foo.c parse.y
 END
 
-: > mumble
+cat > foo.c << 'END'
+int main () { return 0; }
+END
+
+cat > parse.y << 'END'
+%{
+int yylex () {return 0;}
+void yyerror (char *s) {}
+%}
+%%
+foobar : 'f' 'o' 'o' 'b' 'a' 'r' {};
+END
 
 $ACLOCAL
+$AUTOMAKE --add-missing
 $AUTOCONF
-$AUTOMAKE
-
-./configure --prefix "`pwd`/inst"
+./configure
+$MAKE
 
-$MAKE install
-test -f inst/etc/mumble
-test -f good
+rm -f parse.h
+$MAKE -n parse.h
+test -f parse.c
+test ! -f parse.h
 
 :


hooks/post-receive
-- 
GNU Automake



reply via email to

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