automake-commit
[Top][All Lists]
Advanced

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

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


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, ng/master, updated. v1.13.1b-885-g87b62c3
Date: Sat, 16 Feb 2013 23:06:01 +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=87b62c39033f682e64b212452e5e572f686d68a4

The branch, ng/master has been updated
       via  87b62c39033f682e64b212452e5e572f686d68a4 (commit)
       via  5e074aa5e14c7debc33f01ff9f40283278d06128 (commit)
       via  9829cf24dad4310de0dbfbc3732f6c439b8e6931 (commit)
       via  73e9f71c130dd620350553752d63edb761336e0e (commit)
       via  f637fc39a65cac7eb7050359e6c352a235f64528 (commit)
       via  24dbfd93188d5302545d55b59a3853b2115a982e (commit)
       via  57b72c4b8e8d5521b0a83aaa445276c2155dc64e (commit)
       via  d3844bbf1e1fb6ee580e24a9746ed5753b8c00b0 (commit)
       via  3d9997bc7128f8ffa91590e7fa69dea9b2b23a46 (commit)
       via  43e25e3849a040a4bb2dd9bab04446f0c9e88f69 (commit)
       via  9fa6029855f48e73ebac0243e1ccebe3628730ee (commit)
       via  e7b9d315e6bcb3a3c86042dc5fd58e6f4461ed2d (commit)
       via  283ded7f5b9b7ad97300293cd65f3f1b48c21115 (commit)
       via  6d9e9dd453944cd86ddc530a131bd338f4734638 (commit)
       via  4cb56244fa7d51fe105784ccf6447604753e6ac6 (commit)
       via  711fb0c7252e3c0538ba089b356fa55bc77e1c3c (commit)
       via  b9384c4a1b1340aba53b979c7840bb6a1d3e70b2 (commit)
       via  3553601fb233cced3e24827d3aefc213e409d9bc (commit)
       via  0756a43c3a77cff0e86aa8dad7f9f4ebd90b800c (commit)
       via  97f04a5d1f5fba976284ae4b4503b92f79a5cbd1 (commit)
       via  1dc3dac2df7ca11c795bd0d8dac0a4567d2a2fed (commit)
       via  7bb400fccfab72b7d278fe08b63bbeec3f1b0044 (commit)
       via  0a0f3ba66304fb795daee97d4f3dd27464afc1f8 (commit)
       via  fbd3d8729f8eee9109a005b5b6978ee11164ea86 (commit)
       via  664a0456a36de893747ae577963129a205328161 (commit)
       via  c3db23860e9e7f1171a5b3d2098f6079799befd4 (commit)
       via  fd273c14023361a71160e17b7c267099c139a509 (commit)
       via  b6197589c37bed3edfa37706269e066bc841206b (commit)
       via  13f1d58ada3fb9709ec144954ae38254d9624f8c (commit)
       via  a8f36147417116ab0af6977b5688e2fd94f28600 (commit)
       via  e5932416dc8832616a57807ea3efd5aeeeed3ad8 (commit)
       via  6b8f20088def2f54c8d62e8a0baaa249511ed0f2 (commit)
       via  7d0372aceb50e1bd0938eab2eb3a5f289e731daa (commit)
       via  ae34038674ae31fb9783264fc116075c511a1bcf (commit)
       via  9d1002e0772e2fb6e9f9a3832a0f9c6486cd438a (commit)
       via  2c72b157e7c37964f6854d7b5c29c97957b02e36 (commit)
       via  94c28cc5e9e28d1215619721901d3e0580a758ef (commit)
       via  bb7e8f79d92f0030ad538ecac06fad0cfdddc407 (commit)
       via  f479a4a3da2fae6c257dbc3dd65860f830532418 (commit)
       via  63fe125a2e835955b8d0ba0d658208ebf63285f2 (commit)
       via  655e268ddfae52ec1eef5558f95cd1c72c362649 (commit)
       via  af633f5c7f110fa0ddc1f8163506c62c2549d526 (commit)
       via  ad4e856e1f3e568f400be99188fa190901bb9fbd (commit)
       via  18cb8eb2a52df73618b8484948b1040b770d4f0f (commit)
       via  4d32ebdd74545bd0cd729c9aaabe3a8c2e992feb (commit)
       via  eada7ef7dfdee457c7e773ae96f435de81c2f0ce (commit)
       via  2c0fe206d94f1b2a8ee4d40e5b1841d003fd7319 (commit)
       via  81527ed5b4f5742bd01d69c7e556f63bf30fb6c8 (commit)
       via  a7b2069b891f6abcba194cd7fc7790307d47576d (commit)
       via  b49ebac3b84cf27c5398cad9db0ae0c000532135 (commit)
       via  a787b9caa6b6970e48e3a2f512077446386fc838 (commit)
       via  ae4d4fcfa5a9401737568f897cd71d1f5a0e7faa (commit)
       via  1c01cc63c0f9aa0c9c8e581ebafe3d1c365cb956 (commit)
       via  bba21ec30fcc603765b39c296fa6bf79b07c420c (commit)
       via  3d9ee5edf6f4a6100b8faa2a3e0c7dc32ba91ea9 (commit)
       via  030ecb45f60d9504155cf0778f9a93c746a5088b (commit)
       via  f78b0f0b2741fcdd4e21151758a8a75ddaa8aa17 (commit)
       via  4864af66bfd189a501061d775bb9743a1285d88e (commit)
       via  593032130119da79aba14dc26c3cc985bf3a5610 (commit)
       via  2aa49391fe2918db3e5d59f4f96ca3612c955d78 (commit)
       via  0dee02df98e29cc6a2d43ba60d6a2b93e715bfc4 (commit)
       via  52b2af5d14fb180aa39bccc8b22df8d1ff33a664 (commit)
       via  b8d77c81afbbcf314ff21d84643c9189923c55a4 (commit)
       via  610d2e5cc49f0b89a2659e36c259ee98087ad9da (commit)
       via  16574dac612eff9e6b6eb1e9c378b840724f93b4 (commit)
       via  b5523ac592a630be03d7f0129c70072169ab1b94 (commit)
       via  b51a4212710a4625a56211be9f4db36895a53469 (commit)
       via  3562982f0487333778731204ec07274d7d74d25e (commit)
       via  57f41e9714ec3d6eab6fa645a10b66d1512a1e1b (commit)
       via  aeca9a3dd423797d594ebb95ecbb791a7d46900d (commit)
       via  3a074aa0fd35edbc06255c901b7302286e1eebc5 (commit)
       via  99bde3e9777eaf82e175efaf46d53b6f6a256740 (commit)
       via  e2fd8d2a3f54a96a32c2ff8c5ba33bbad069e5eb (commit)
       via  7d40a7913b4056dcaefadfbcbb93154704ac2458 (commit)
       via  3fe826bd5d1fafdcfff2b4feb5656f7fa0941cb4 (commit)
       via  f023fa043c438641eb13d4c7c4e3995c300a523b (commit)
       via  c71a8929f506b1dab3ba24d11447d45548fb981a (commit)
       via  53e4b31654d1ebf7a4660268cb86dbd1f81ae48b (commit)
       via  936a6c24ed3e2487448285df371401c670ab1d71 (commit)
       via  4706615d94de4291b16c700d3bbd4da37e7fcf1e (commit)
       via  adbc02f851471df72079559cf0c833fc55066d40 (commit)
       via  84d77cd6e35f66a6bfd5b41a39bb8c2a4f909b6f (commit)
       via  1e44f8532f6b7d9d4c59efdb8e2850bc212260af (commit)
       via  7746e5284767b9459e5ab3dc7eef4da63d68f93a (commit)
       via  30af9050ea11ca27a2224c5cb31612f614965efb (commit)
       via  182626687f2640609f8eb28ad1b04b078342f2c7 (commit)
       via  d353dbc3f01357e9bfce59d1720a8cb2498d12bd (commit)
       via  a9966b04d38577a76156ce16828bce874b582874 (commit)
       via  b8e238a757e692ef1849035fbc69045807f3fe54 (commit)
       via  fba16588f89f3a7d8a24034718e5f50204b2b0d8 (commit)
       via  9cb18f18a756e7e6b7aaaaa5deaa7fd677e9a902 (commit)
       via  34001a987a6defdb70f6f3c17cce9d9c665fe6e8 (commit)
       via  1ab8fb6d0e8497c0b86a1453b901dda29ba9d9f6 (commit)
       via  b670a66a6ac1ee8ef25dc48a26e477812c2dbacf (commit)
       via  10790d08f071a91160bbaeabab7fd8a8d23e5a55 (commit)
       via  23f19aede924dee8ed0150df5f9efa3faf2ad145 (commit)
       via  dbe3eea4d5b65f998c57a571c034c6044f2bd1e2 (commit)
       via  0168562049b471e432863c4570da53995fb92f2d (commit)
       via  38bb5c65db4bfbfa9fa477c57fd2efe6f1f15a46 (commit)
       via  27fc8979d004884cf9ce246f8d21d546b18e3003 (commit)
       via  ca307a408e036aab9eaf086cc2792929419ede1b (commit)
       via  801cbef2d8a49af4c2e6f5a23b641170d0a1136b (commit)
       via  d7aef9bd0bb8df6f2acbfbae02798aa81d95370f (commit)
       via  7138cc5eefae4ab5264cacfef5937a9ab235c238 (commit)
       via  ad2e3170ac4d5fc407038ce07916b3d70f739b3a (commit)
       via  8f06bfba71ee217263a0cff050ac23b698b79807 (commit)
       via  a52e9de01897ff994fcfb49eb019a6c23a4c92e8 (commit)
       via  94d8c69f1c350de94445734de7b5dce7b5673909 (commit)
       via  6b31158c5930ef8ba357e07d28ca56ff6104278e (commit)
       via  cdba479fe5739555ad9ec30e0224f24b2facf548 (commit)
      from  352e10c12329a2d04a8a7254ad77050ce68bc221 (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 87b62c39033f682e64b212452e5e572f686d68a4
Merge: 1c01cc6 5e074aa
Author: Stefano Lattarini <address@hidden>
Date:   Sat Feb 16 23:22:08 2013 +0100

    Merge branch 'master' into ng/master
    
    * master: (41 commits)
      typofix: in comments in 't/ax/test-lib.sh'
      style: call perl functions 'like_this()', not '&like_this()'
      tests on TAP: don't run the driver with perl unconditionally
      typofix: in comments in 'automake.in'
      tests: remove obsolete (and now wrong) comment
      typofix: in diagnostic in test 't/tap-realtime.sh'
      maint: use more perl subroutines prototypes in the automake script
      build: auto-generate perl subroutines prototypes for automake and aclocal
      refactor: rip module Automake::Language out of automake script
      automake: fix reference to relevant tests in comments
      NEWS: we no longer plan to drop $(INCLUDES) support in next major version
      NEWS: IRIX is still supported; only SGI depmode no longer is
      NEWS: IRIX is still supported; only SGI C compiler depcomp no longer is
      coverage: split info files are not installed nor distributed
      maint: version bump after beta release 1.13.1b
      NEWS: typofix
      release: beta release 1.13.1b (will become 1.13.2)
      docs: '.txi' and '.texinfo' extensions are deprecated
      NEWS: document recent documentation improvements
      docs: more precise cross reference
      ...
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 1c01cc63c0f9aa0c9c8e581ebafe3d1c365cb956
Merge: b5523ac bba21ec
Author: Stefano Lattarini <address@hidden>
Date:   Wed Jan 16 14:28:43 2013 +0100

    Merge branch 'master' into ng/master
    
    * master:
      compat: restore AM_PROG_MKDIR, again
      subdir-objects: complain if it isn't enabled
      plans: update w.r.t. latest changes
      ywrap: remove an obsolete FIXME comment
      ywrap: style fixes (no semantic change intended)
      convenience: "make lint" as an alias for "make maintainer-check"
      docs: typofix in manual
      coverage: using multiple lexers in a single program
      texi: no longer support split info files
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit b5523ac592a630be03d7f0129c70072169ab1b94
Author: Stefano Lattarini <address@hidden>
Date:   Sat Jan 12 17:17:27 2013 +0100

    maint: remove $(AM_MAKEFLAGS) usage in our Makefile
    
    * Makefile.am (check-cc-no-c-o): Here.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit b51a4212710a4625a56211be9f4db36895a53469
Author: Stefano Lattarini <address@hidden>
Date:   Sat Jan 12 17:13:23 2013 +0100

    tests: remove a couple of 'using_gmake' calls
    
    In the Automake-NG testsuite, $MAKE is always GNU make.
    
    * t/remake-config-status-dependencies.sh: Don't call
    'using_gmake'; assume it would unconditionally return true.
    * t/remake-configure-dependencies.sh: Likewise.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 3562982f0487333778731204ec07274d7d74d25e
Author: Stefano Lattarini <address@hidden>
Date:   Sat Jan 12 17:06:35 2013 +0100

    maintcheck: fixlet: maint.mk is in 'maintainer/' now
    
    * maintainer/syntax-checks.mk (sc_mkinstalldirs): So adjust this
    rule's recipe accordingly.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 57f41e9714ec3d6eab6fa645a10b66d1512a1e1b
Author: Stefano Lattarini <address@hidden>
Date:   Sat Jan 12 17:04:08 2013 +0100

    maintcheck: remove 'sc_old_includes_vars' check
    
    Now even Automake master explicitly reject uses of the INCLUDES
    variable, so that check had become obsolete.  In addition, it
    was also causing some false positives.
    
    * maintainer/syntax-checks.mk (sc_old_includes_vars): Remove.
    (syntax_check_rules): Adjust.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit aeca9a3dd423797d594ebb95ecbb791a7d46900d
Author: Stefano Lattarini <address@hidden>
Date:   Sat Jan 12 16:40:42 2013 +0100

    tests: remove some more uses of the AM_PROG_CC_C_O obsolete macro
    
    This is a follow-up to 'maint' commit v1.13.1-64-g1e44f85, but for
    usages that are only in the 'ng/master' branch and couldn't thus be
    modified by that commit.
    
    * t/ax/depcomp-shuffle.sh, t/cscope.tap, t/depcomp-recover.sh,
    t/libtool3.sh, t/parallel-tests-suffix-prog.sh, t/subobj-c.sh,
    t/subobj-libtool.sh, t/subpkg-yacc.sh, t/subpkg.sh,
    t/yacc-subobj-nodep.sh: Adjust.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 3a074aa0fd35edbc06255c901b7302286e1eebc5
Author: Stefano Lattarini <address@hidden>
Date:   Sat Jan 12 16:34:51 2013 +0100

    tests: t/ccnoco4.sh is passing now
    
    * Makefile.am (XFAIL_TESTS): So Don't list it here.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 99bde3e9777eaf82e175efaf46d53b6f6a256740
Author: Stefano Lattarini <address@hidden>
Date:   Sat Jan 12 16:09:52 2013 +0100

    tests on warnings: fix post-merge spurious failure
    
    * t/warnopts.sh.sh: Adjust to reflect the fact that subdir sources no
    longer require AM_PROG_CC_C_O in 'configure.ac'.  Instead, use the
    fact that the 'aux' directory name is diagnosed as being reserved on
    Windows.
    * t/warnings-override.sh: Likewise.
    * t/warnings-precedence.sh: Likewise.
    * t/warnings-strictness-interactions.sh: Likewise.
    * t/warnings-win-over-strictness.sh: Likewise.
    * t/warning-groups-win-over-strictness.sh: Adjust to reflect the fact
    that subdir sources no longer require AM_PROG_CC_C_O in 'configure.ac'.
    Instead, use the fact that AUTOMAKE_OPTIONS cannot hold conditional
    content.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit e2fd8d2a3f54a96a32c2ff8c5ba33bbad069e5eb
Author: Stefano Lattarini <address@hidden>
Date:   Sat Jan 12 15:12:35 2013 +0100

    tests: amopts-variable-expansion.sh: fix post-merge spurious failure
    
    * t/amopts-variable-expansion.sh:: Adjust to reflect the fact that subdir
    sources no longer require AM_PROG_CC_C_O in 'configure.ac'.  Instead, use
    the fact that 'AM_PROG_AR' is required to be in 'configure.ac' when a
    library is to be built and warnings in the 'extra-portability' category
    are enabled.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 7d40a7913b4056dcaefadfbcbb93154704ac2458
Author: Stefano Lattarini <address@hidden>
Date:   Sat Jan 12 14:59:49 2013 +0100

    tests: extra-portability.sh: fix post-merge spurious failure
    
    * t/extra-portability.sh: Adjust to reflect the fact that Automake-NG
    supports non-POSIX make variable names like 'foo--bar'.  Instead, use
    the fact that the 'aux' directory name is diagnosed as being reserved
    on Windows.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 3fe826bd5d1fafdcfff2b4feb5656f7fa0941cb4
Author: Stefano Lattarini <address@hidden>
Date:   Sat Jan 12 14:46:51 2013 +0100

    tests: subobj-libtool.sh: fix post-merge spurious failure
    
    * t/subobj-libtool.sh: Remove the 'compile' script automatically brought
    in by 'test-init.sh', so that we can ensure "automake --add-missing"
    correctly installs it.  While at it, make grepping of automake output
    slightly stricter.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit f023fa043c438641eb13d4c7c4e3995c300a523b
Author: Stefano Lattarini <address@hidden>
Date:   Sat Jan 12 14:42:52 2013 +0100

    tests: self-check-dir.tap: fix post-merge spurious failure
    
    * t/self-check-dir.tap: Here, caused by recent reshuffling of the
    Automake source tree.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit c71a8929f506b1dab3ba24d11447d45548fb981a
Author: Stefano Lattarini <address@hidden>
Date:   Sat Jan 12 14:41:18 2013 +0100

    tests: subobj-c.sh: fix post-merge spurious failure
    
    * t/subobj-c.sh: Remove the 'compile' script automatically brought in by
    'test-init.sh', so that we can ensure "automake --add-missing" correctly
    installs it.  While at it, make grepping of automake output slightly
    stricter.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 53e4b31654d1ebf7a4660268cb86dbd1f81ae48b
Author: Stefano Lattarini <address@hidden>
Date:   Sat Jan 12 14:35:05 2013 +0100

    tests: subobj-cxx.sh: fix post-merge spurious failure
    
    * t/subobj-cxx.sh: Don't check that the auxiliary script 'compile' is
    not installed.   Apparently, it is now brought in by AM_PROG_AR.  No
    big deal anyway, as a no-strictly-needed distributed auxiliary script
    is not going to do any bad.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 936a6c24ed3e2487448285df371401c670ab1d71
Author: Stefano Lattarini <address@hidden>
Date:   Sat Jan 12 14:28:21 2013 +0100

    tests: subpkg-yacc.sh: start with a clean directory
    
    * t/subpkg-yacc.sh ($am_create_testdir): Define to "empty".
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 4706615d94de4291b16c700d3bbd4da37e7fcf1e
Author: Stefano Lattarini <address@hidden>
Date:   Sat Jan 12 14:22:26 2013 +0100

    tests: subpkg-yacc.sh: fix post-merge spurious failure
    
    * t/subpkg-yacc.sh: Expect the 'compile' script to be immediately
    installed by "automake --add-missing", due to the presence of
    AC_PROG_CC in top-level 'configure.ac'.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit adbc02f851471df72079559cf0c833fc55066d40
Merge: 352e10c 84d77cd
Author: Stefano Lattarini <address@hidden>
Date:   Sat Jan 12 14:16:04 2013 +0100

    Merge branch 'master' into ng/master
    
    This merge breaks few tests.  They will be adjusted by follow-up patches.
    
    * master: (26 commits)
      tests: remove most uses of the AM_PROG_CC_C_O obsolete macro
      coverage: obsolete macro AM_PROG_CC_C_O should cause no warning nor errors
      INSTALL: update copyright years
      ithreads: use runtime (not configure time) detection of perl threads
      copyright: add few missing copyright notices
      maint: files in PLANS are to be exempted from copyright notice
      maint: consistently honor the UPDATE_COPYRIGHT_YEAR environment variable
      copyright: update some copyright years
      compile: use 'compile' script when "-c -o" is used with losing compilers
      HACKING: suggest more checks before releasing
      tests: can fake a compiler not grasping "-c -o" -- globally in all tests
      sync: update files from upstream with "make fetch"
      typofix: in comments in GNUmakefile
      Rename 'maint/' -> 'maintainer/', for Git's sake
      HACKING: minor typofix
      HACKING: bug-tracker, the PLANS directory, and how to plan "big" changes
      HACKING: rewindable branches should live in the 'experimental/*' namespace
      HACKING: fixlets about git branch rewinding policy
      HACKING: commit messages are not to follow GCS ChangeLog rules too 
strongly
      HACKING: "detailed explanation" in commit messages is almost mandatory
      ...
    
    Signed-off-by: Stefano Lattarini <address@hidden>

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

Summary of changes:
 .gitignore                                         |    2 +
 GNUmakefile                                        |    6 +-
 HACKING                                            |   59 ++-
 INSTALL                                            |    2 +-
 Makefile.am                                        |   51 ++-
 NEWS                                               |  153 +++--
 PLANS/obsolete-removed/am-prog-mkdir-p.txt         |   93 ++--
 PLANS/rm-f-without-args.txt                        |   40 ++
 PLANS/subdir-objects.txt                           |   66 ++
 .../warnings-for-automake-ng-compatibility.txt     |    4 +-
 THANKS                                             |    2 +
 aclocal.in                                         |   22 +-
 automake.in                                        |  664 ++++++++------------
 bootstrap.sh                                       |   13 +-
 configure.ac                                       |    2 +-
 doc/automake-ng.texi                               |   92 ++-
 lib/Automake/Language.pm                           |  122 ++++
 lib/INSTALL                                        |    2 +-
 lib/config.guess                                   |    4 +-
 lib/config.sub                                     |    9 +-
 lib/gen-perl-protos                                |   36 ++
 lib/gendocs_template                               |    2 +-
 lib/gitlog-to-changelog                            |    2 +-
 lib/gnupload                                       |    2 +-
 lib/texinfo.tex                                    |    7 +-
 lib/update-copyright                               |    6 +-
 lib/ylwrap                                         |   26 +-
 m4/init.m4                                         |   94 +++-
 m4/minuso.m4                                       |   27 +-
 m4/obsolete-err.m4                                 |   33 -
 m4/obsolete.m4                                     |   35 +
 maint/am-xft                                       |    3 -
 maint/rename-tests                                 |   52 --
 {maint => maintainer}/am-ft                        |   16 +
 t/pm/Version2.pl => maintainer/am-xft              |   16 +-
 {maint => maintainer}/maint.mk                     |   11 +-
 maintainer/rename-tests                            |   67 ++
 {maint => maintainer}/syntax-checks.mk             |   42 +-
 t/acsubst2.sh                                      |    1 -
 t/add-missing.tap                                  |    9 +-
 t/am-config-header-no-more.sh                      |   43 --
 t/{mkdir_p.sh => am-config-header.sh}              |   43 +-
 t/am-prog-cc-c-o.sh                                |   91 +++
 ...urs-user-no-top-level.sh => am-prog-cc-stdc.sh} |   34 +-
 t/am-prog-mkdir-p-no-more.sh                       |   44 --
 t/{mkdir_p.sh => am-prog-mkdir-p.sh}               |   33 +-
 t/amopts-variable-expansion.sh                     |   13 +-
 t/ax/am-test-lib.sh                                |    4 +-
 t/{includes-no-more.sh => ax/cc-no-c-o.in}         |   25 +-
 t/ax/depcomp-shuffle.sh                            |   11 +-
 t/ax/depcomp.sh                                    |    3 +-
 t/ax/tap-setup.sh                                  |    2 +-
 t/ax/test-lib.sh                                   |    2 +-
 t/backcompat6.sh                                   |    2 +-
 t/c-demo.sh                                        |    1 -
 t/ccnoco.sh                                        |   25 +-
 t/ccnoco2.sh                                       |   52 --
 t/ccnoco3.sh                                       |   22 +-
 t/ccnoco4.sh                                       |   33 +-
 t/check8.sh                                        |    1 -
 t/compile4.sh                                      |    1 -
 t/cond11.sh                                        |    1 -
 t/cscope.tap                                       |    8 +-
 t/cxx-lt-demo.sh                                   |    6 +-
 t/depcomp-recover.sh                               |    1 -
 t/depcomp8a.sh                                     |    8 +-
 t/depcomp8b.sh                                     |    7 +-
 t/dist-auxdir-many-subdirs.sh                      |    1 +
 t/ext2.sh                                          |    1 +
 t/extra-portability.sh                             |   17 +-
 t/fort2.sh                                         |    4 +-
 t/fort4.sh                                         |    2 +-
 t/fort5.sh                                         |    4 +-
 t/get-sysconf.sh                                   |    8 +
 t/gettext-macros.sh                                |   13 +-
 t/instdir-ltlib.sh                                 |    1 -
 t/instdir-prog.sh                                  |    1 -
 t/lex-line.sh                                      |    5 +-
 t/lex-multiple.sh                                  |  107 ++++
 t/lex-subobj-nodep.sh                              |    1 -
 t/lex5.sh                                          |    1 -
 t/libobj19.sh                                      |    2 -
 t/libtool3.sh                                      |    5 +-
 t/libtool9.sh                                      |    1 -
 t/lisp-flags.sh                                    |    4 +
 t/ltinstloc.sh                                     |    1 +
 t/ltorder.sh                                       |    1 +
 t/parallel-tests-suffix-prog.sh                    |    2 +-
 t/per-target-flags.sh                              |    8 -
 t/pr224.sh                                         |    1 -
 t/pr401.sh                                         |    3 +-
 t/pr401b.sh                                        |    3 +-
 t/pr401c.sh                                        |    3 +-
 t/remake-config-status-dependencies.sh             |    2 -
 t/remake-configure-dependencies.sh                 |    2 -
 t/rm-f-probe.sh                                    |   74 +++
 ...-cc-stdc-no-more.sh => self-check-cc-no-c-o.sh} |   34 +-
 t/self-check-dir.tap                               |    2 +-
 t/silent-c.sh                                      |    1 -
 t/silent-lex.sh                                    |    1 -
 t/silent-lt.sh                                     |    1 -
 t/silent-many-languages.sh                         |    1 -
 t/silent-yacc.sh                                   |    2 +-
 t/specflg-dummy.sh                                 |    1 -
 t/specflg6.sh                                      |    3 -
 t/specflg7.sh                                      |    1 -
 t/specflg8.sh                                      |    1 -
 t/specflg9.sh                                      |    2 +-
 t/spy-rm.tap                                       |    8 +-
 t/subobj-c.sh                                      |    5 +-
 t/subobj-clean-lt-pr10697.sh                       |    1 -
 t/subobj-clean-pr10697.sh                          |    1 -
 t/subobj-cxx.sh                                    |    1 -
 t/subobj-libtool.sh                                |    7 +-
 t/subobj11a.sh                                     |    1 -
 t/subobj5.sh                                       |    1 -
 t/subobj7.sh                                       |    2 +-
 t/subobj8.sh                                       |    1 -
 t/subpkg-yacc.sh                                   |   10 +-
 t/subpkg.sh                                        |    3 +-
 t/suffix-custom-subobj-and-specflg.sh              |    1 -
 t/target-cflags.sh                                 |    1 -
 t/txinfo-builddir.sh                               |    2 +-
 t/txinfo-makeinfo-error-no-clobber.sh              |    1 -
 t/txinfo-no-extra-dist.sh                          |   57 ++-
 t/{txinfo-nodist-info.sh => txinfo-no-split.sh}    |   72 ++-
 t/vala-libs.sh                                     |    4 +-
 t/vala-mix.sh                                      |    1 -
 t/vala-non-recursive-setup.sh                      |    2 +-
 t/vala-per-target-flags.sh                         |    1 -
 t/vala-recursive-setup.sh                          |    1 -
 t/vala-vapi.sh                                     |    1 -
 t/warning-groups-win-over-strictness.sh            |    9 +-
 t/warnings-override.sh                             |    9 +-
 t/warnings-precedence.sh                           |    9 +-
 t/warnings-strictness-interactions.sh              |    8 +-
 t/warnings-win-over-strictness.sh                  |    8 +-
 t/warnopts.sh                                      |   27 +-
 t/yacc-dist-nobuild-subdir.sh                      |    1 -
 t/yacc-grepping2.sh                                |    5 +-
 t/yacc-line.sh                                     |    5 +-
 t/yacc-subdir.sh                                   |    1 -
 t/yacc-subobj-nodep.sh                             |    1 -
 143 files changed, 1739 insertions(+), 1268 deletions(-)
 create mode 100644 PLANS/rm-f-without-args.txt
 create mode 100644 PLANS/subdir-objects.txt
 create mode 100644 lib/Automake/Language.pm
 create mode 100755 lib/gen-perl-protos
 delete mode 100644 m4/obsolete-err.m4
 create mode 100644 m4/obsolete.m4
 delete mode 100755 maint/am-xft
 delete mode 100755 maint/rename-tests
 rename {maint => maintainer}/am-ft (79%)
 copy t/pm/Version2.pl => maintainer/am-xft (79%)
 mode change 100644 => 100755
 rename {maint => maintainer}/maint.mk (97%)
 create mode 100755 maintainer/rename-tests
 rename {maint => maintainer}/syntax-checks.mk (96%)
 delete mode 100755 t/am-config-header-no-more.sh
 copy t/{mkdir_p.sh => am-config-header.sh} (60%)
 create mode 100755 t/am-prog-cc-c-o.sh
 copy t/{recurs-user-no-top-level.sh => am-prog-cc-stdc.sh} (66%)
 delete mode 100755 t/am-prog-mkdir-p-no-more.sh
 rename t/{mkdir_p.sh => am-prog-mkdir-p.sh} (56%)
 copy t/{includes-no-more.sh => ax/cc-no-c-o.in} (66%)
 mode change 100755 => 100644
 delete mode 100755 t/ccnoco2.sh
 create mode 100755 t/lex-multiple.sh
 create mode 100755 t/rm-f-probe.sh
 rename t/{am-prog-cc-stdc-no-more.sh => self-check-cc-no-c-o.sh} (57%)
 copy t/{txinfo-nodist-info.sh => txinfo-no-split.sh} (50%)

diff --git a/.gitignore b/.gitignore
index e026b3a..efd4328 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,6 +34,7 @@
 /doc/amhello/config.h.in~
 /doc/amhello/configure
 /doc/amhello/depcomp
+/doc/amhello/compile
 /doc/amhello/install-sh
 /doc/amhello/missing
 /doc/web-manual
@@ -44,6 +45,7 @@
 /t/ax/test-defs.sh
 /testsuite-autodeps.am
 /t/ax/shell-no-trail-bslash
+/t/ax/cc-no-c-o
 /t/*-w.tap
 /t/*-w.sh
 /t/depcomp-*.tap
diff --git a/GNUmakefile b/GNUmakefile
index 94ca0ec..5193269 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -25,8 +25,8 @@ ifeq ($(wildcard Makefile),)
   $(error Fatal Error)
 endif
 include ./Makefile
-include $(srcdir)/maint/maint.mk
-include $(srcdir)/maint/syntax-checks.mk
+include $(srcdir)/maintainer/maint.mk
+include $(srcdir)/maintainer/syntax-checks.mk
 
 else # ! bootstrap in $(MAKECMDGOALS)
 
@@ -51,7 +51,7 @@ unexport CDPATH
 #      kick in, because the tree might be in an inconsistent state (e.g.,
 #      we have just switched from 'maint' to 'master', and have the built
 #      'automake' script left from 'maint', but the files 'lib/am/*.am'
-#      are from 'master': if 'automake' gets run and used those files --
+#      are from 'master': if 'automake' gets run and uses those files --
 #      boom!).
 
 ifdef config-status # Bootstrap from an already-configured tree.
diff --git a/HACKING b/HACKING
index c030612..af2df1c 100644
--- a/HACKING
+++ b/HACKING
@@ -14,7 +14,7 @@
 * If you incorporate a change from somebody on the net:
   First, if it is a large change, you must make sure they have signed the
   appropriate paperwork.
-  Second, be sure to add their name and email address to THANKS
+  Second, be sure to add their name and email address to THANKS.
 
 * If a change fixes a test, mention the test in the commit message.
   If a change fixes a bug registered in the Automake debbugs tracker,
@@ -38,6 +38,16 @@
 * Changes other than bug fixes must be mentioned in NEWS.  Important
   bug fixes should be mentioned in NEWS, too.
 
+* Changes which are potentially controversial, require a non-trivial
+  plan, or must be implemented gradually with a roadmap spanning several
+  releases (either minor or major) should be discussed on the list,
+  and have a proper entry in the PLANS directory.  This entry should be
+  always committed in the "maint" branch, even if the change it deals
+  with is only for the master branch, or a topic branch.  Usually, in
+  addition to this, it is useful to open a "wishlist" report on the
+  Automake debbugs tracker, to keep the idea more visible, and have the
+  discussions surrounding it easily archived in a central place.
+
 ============================================================================
 = Naming
 
@@ -81,11 +91,8 @@
   default), and other portions using the GNU style (cperl-mode's
   default).  Write new code using GNU style.
 
-* Don't use & for function calls, unless required.
+* Don't use & for function calls, unless really required.
   The use of & prevents prototypes from being checked.
-  Just as above, don't change massively all the code to strip the
-  &, just convert the old code as you work on it, and write new
-  code without.
 
 ============================================================================
 = Working with git
@@ -107,7 +114,7 @@
 * 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 or might be merged later.
-  in the future, we might introduce a special branch named 'next' that
+  In the future, we might introduce a special branch named 'next' that
   may serve as common ground for feature merging and testing, should
   they not yet be ready for master.
 
@@ -121,15 +128,17 @@
   the active branches descending from the buggy commit.  This offers a
   simple way to fix the bug consistently and effectively.
 
-* For merges from branches other than maint, prefer 'git merge --log' over
-  plain 'git merge', so that a later 'git log' gives an indication of which
-  actual patches were merged even when they don't appear early in the list.
+* When merging, prefer 'git merge --log' over plain 'git merge', so that
+  a later 'git log' gives an indication of which actual patches were
+  merged even when they don't appear early in the list.
 
-* master and release branches should not be rewound, i.e., should always
-  fast-forward, except maybe for privacy issues.  The maint branch should not
-  be rewound except maybe after retiring a release branch or a new stable
-  release.  For next, and for feature branches, the announcement for the
-  branch should document rewinding policy.
+* The 'master' and 'maint' branches should not be rewound, i.e., should
+  always fast-forward, except maybe for privacy issues.  For 'next'
+  (if that will ever be implemented), and for feature branches, the
+  announcement for the branch should document rewinding policy.  If a
+  topic branch is expected to be rewound, it is good practice to put
+  it in the 'experimental/*' namespace; for example, a rewindable branch
+  dealing with Vala support could be named like "experimental/vala-work".
 
 ============================================================================
 = Writing a good commit message
@@ -143,8 +152,9 @@
       <reference to relevant bugs, if any>
 
       Here goes a more detailed explanation of why the commit is needed,
-      and a general overview of what it does, and how.  This section is
-      optional, but you are expected to provide it more often than not.
+      and a general overview of what it does, and how.  This section
+      should almost always be provided, possibly only with the expection
+      of obvious fixes or very trivial changes.
 
       And if the detailed explanation is quite long or detailed, you can
       want to break it in more paragraphs.
@@ -161,10 +171,10 @@
 
       <detailed list of touched files>
 
-* The <detailed list of touched files> is mandatory but for the most
-  trivial changes, and should follows the GNU guidelines for ChangeLog
-  entries (described explicitly in the GNU Coding Standards); it might
-  be something of this sort:
+* The <detailed list of touched files> should usually be provided (but
+  for short or trivial changes), and should follow the GNU guidelines
+  for ChangeLog entries (described explicitly in the GNU Coding
+  Standards); it might be something of this sort:
 
     * some/file (func1): Improved frobnication.
     (func2): Adjusted accordingly.
@@ -230,9 +240,14 @@
   The repository will always have its own "odd" number so we can easily
   distinguish net and repo versions.)
 
-* Run this:
+* Run these commands, in this order:
 
-    make bootstrap && make check && make distcheck
+    make bootstrap
+    make check keep_testdirs=yes
+    make maintainer-check
+    make distcheck
+    make check-no-trailing-backslash-in-recipes
+    make check-cc-no-c-o
 
   It is also advised to run "git clean -fdx" before invoking the
   bootstrap, to ensure a really clean rebuild.  However, it must
diff --git a/INSTALL b/INSTALL
index 6e90e07..007e939 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
 Installation Instructions
 *************************
 
-Copyright (C) 1994-1996, 1999-2002, 2004-2012 Free Software Foundation,
+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
 Inc.
 
    Copying and distribution of this file, with or without modification,
diff --git a/Makefile.am b/Makefile.am
index 0bfe507..227fe64 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -87,13 +87,18 @@ uninstall-hook:
 
 # These files depend on Makefile so they are rebuilt if $(VERSION),
 # $(datadir) or other do_subst'ituted variables change.
-automake aclocal: %: %.in Makefile
-       $(AM_V_at)rm -f $@ address@hidden
-       $(AM_V_GEN)$(do_subst)
+automake aclocal: %: %.in Makefile lib/gen-perl-protos
+       $(AM_V_GEN)rm -f $@ address@hidden address@hidden \
+## Common substitutions.
+         && $(do_subst) \
+## Auto-compute prototypes of perl subroutines.
+         && $(PERL) -w $(srcdir)/lib/gen-perl-protos address@hidden > 
address@hidden \
+         && mv -f address@hidden address@hidden \
 ## We can't use '$(generated_file_finalize)' here, because currently
 ## Automake contains occurrences of unexpanded @substitutions@ in
 ## comments, and that is perfectly legit.
-       $(AM_V_at)chmod a+x,a-w address@hidden && mv -f address@hidden $@
+         && chmod a+x,a-w address@hidden && mv -f address@hidden $@
+EXTRA_DIST += lib/gen-perl-protos
 
 # The master location for INSTALL is lib/INSTALL.
 # This is where "make fetch" will install new versions.
@@ -107,7 +112,7 @@ maintainer-clean-local:
        rm -rf .autom4te.cache
 
 # So that automake won't complain about the missing ChangeLog.
-# The real rule for ChangeLog generation is now in main/maint.mk
+# The real rule for ChangeLog generation is now in maintainer/maint.mk
 # (as it is maintainer-specific).
 ChangeLog:
 
@@ -166,6 +171,7 @@ dist_perllib_DATA = \
   lib/Automake/Getopt.pm \
   lib/Automake/Item.pm \
   lib/Automake/ItemDef.pm \
+  lib/Automake/Language.pm \
   lib/Automake/Location.pm \
   lib/Automake/Options.pm \
   lib/Automake/Rule.pm \
@@ -255,7 +261,7 @@ dist_automake_ac_DATA = \
   m4/lispdir.m4 \
   m4/minuso.m4 \
   m4/missing.m4 \
-  m4/obsolete-err.m4 \
+  m4/obsolete.m4 \
   m4/options.m4 \
   m4/python.m4 \
   m4/runlog.m4 \
@@ -347,7 +353,6 @@ perl_fake_XFAIL_TESTS = \
 
 XFAIL_TESTS = \
   t/all.sh \
-  t/ccnoco4.sh \
   t/override-suggest-local.sh \
   t/comments-in-var-def.sh \
   t/cond17.sh \
@@ -453,6 +458,17 @@ EXTRA_DIST += t/ax/shell-no-trail-bslash.in
 CLEANFILES += t/ax/shell-no-trail-bslash
 noinst_SCRIPTS += t/ax/shell-no-trail-bslash
 
+t/ax/cc-no-c-o: t/ax/cc-no-c-o.in Makefile
+       $(AM_V_at)rm -f $@ address@hidden
+       $(AM_V_GEN)in=t/ax/cc-no-c-o.in \
+         && $(MKDIR_P) t/ax \
+         && $(do_subst) <$(srcdir)/$$in >address@hidden \
+         && chmod a+x address@hidden
+       $(generated_file_finalize)
+EXTRA_DIST += t/ax/cc-no-c-o.in
+CLEANFILES += t/ax/cc-no-c-o
+noinst_SCRIPTS += t/ax/cc-no-c-o
+
 runtest: t/ax/runtest.in Makefile
        $(AM_V_at)rm -f $@ address@hidden
        $(AM_V_GEN)$(do_subst)
@@ -523,6 +539,17 @@ check-no-trailing-backslash-in-recipes:
          CONFIG_SHELL='$(abs_top_builddir)/t/ax/shell-no-trail-bslash'
 .PHONY: check-no-trailing-backslash-in-recipes
 
+# Some compilers out there (hello, MSVC) still choke on "-c -o" being
+# passed together on the command line.  Run the whole testsuite faking
+# the presence of such a compiler, to help catch regressions that would
+# otherwise only present themselves later "in the wild".  See also the
+# long discussion about automake bug#13378.
+check-cc-no-c-o:
+       $(AM_V_at)$(MAKE) check \
+         CC='$(abs_top_builddir)/t/ax/cc-no-c-o' \
+         GNU_CC='$(abs_top_builddir)/t/ax/cc-no-c-o'
+.PHONY: check-cc-no-c-o
+
 # Run the testsuite with the installed aclocal and automake.
 installcheck-local: installcheck-testsuite
 installcheck-testsuite:
@@ -667,8 +694,8 @@ EXTRA_DIST += \
 ## ---------------------------------------- ##
   
 EXTRA_DIST += \
-  maint/am-ft \
-  maint/am-xft \
-  maint/rename-tests \
-  maint/maint.mk \
-  maint/syntax-checks.mk
+  maintainer/am-ft \
+  maintainer/am-xft \
+  maintainer/rename-tests \
+  maintainer/maint.mk \
+  maintainer/syntax-checks.mk
diff --git a/NEWS b/NEWS
index e36d1cf..2e26485 100644
--- a/NEWS
+++ b/NEWS
@@ -22,13 +22,6 @@ New in 1.14:
 
 * Obsolete features removed:
 
-  - The long-obsolete (since automake 1.10) AM_PROG_MKDIR m4 macro has
-    been removed.  The $(mkdir_p) make variable and the @mkdir_p@
-    substitutionl still remains available for the moment, as aliases
-    of $(MKDIR_P), for better backward compatibility; but you are
-    advised to stop using ASAP, as they might be removed in future
-    Automake versions.
-
   - Support for the long-deprecated name 'configure.in' for the Autoconf
     input file has been removed altogether.  Just use the modern name
     'configure.ac' instead.
@@ -42,11 +35,13 @@ New in 1.14:
 
 * Removed support for obsolete platforms:
 
-  - Support for the SGI C/C++ compilers has been removed: these compilers
-    are only meant to run on IRIX, and that system has seen its last
-    release in 2006, and is expected to lose support from SGI in December
-    2013; see <http://www.sgi.com/services/support/irix_mips_support.html>
-    for more information.
+  - Support for automatic dependency tracking with the SGI C/C++ compilers
+    on IRIX has been removed.  The SGI depmode had been reported broken
+    "in the wild" already, and we don't think investing time in debugging
+    and fixing it would have been worthwhile, especially considering that
+    SGI has last updated those compilers in 2006, and is expected to retire
+    support for them in December 2013:
+    <http://www.sgi.com/services/support/irix_mips_support.html>
 
   - Support for DJGPP on MS-DOS and/or Windows 95/98/ME has been removed.
     Note that both Cygwin and MSYS/MinGW on modern Windows versions will
@@ -63,36 +58,28 @@ New in 1.13.2:
     before Automake 1.14 is).
 
   - Automake 1.14 will drop support for the long-deprecated 'configure.in'
-    name for the Autoconf input file.  You are advised to start using
+    name for the Autoconf input file.  You are advised to start using the
     recommended name 'configure.ac' instead, ASAP.
 
-  - The long-obsolete (since automake 1.10) AM_PROG_MKDIR m4 macro will
-    be removed in Automake 1.14.  The $(mkdir_p) make variable and the
-    @mkdir_p@ substitution will still remain available (as aliases of
-    $(MKDIR_P)) for the moment, for better backward compatibility; but
-    you are advised to stop using ASAP.
-
   - The ACLOCAL_AMFLAGS special make variable will be fully deprecated
     in Automake 1.14 (where it will raise warnings in the "obsolete"
     category).  You are advised to start relying on the new Automake
     support for AC_CONFIG_MACRO_DIRS instead (which was introduced in
     Automake 1.13).
 
-  - Support for IRIX and the SGI C/C++ compilers will be removed in
-    Automake 1.14: they have seen their last release in 2006, and SGI
-    is expected to retire support from them in December 2013; see
-    <http://www.sgi.com/services/support/irix_mips_support.html> for
-    more information.
+  - Automake 1.14 will remove support for automatic dependency tracking
+    with the SGI C/C++ compilers on IRIX.  The SGI depmode has been
+    reported broken "in the wild" already, and we don't think investing
+    time in debugging and fixing is worthwhile, especially considering
+    that SGI has last updated those compilers in 2006, and is expected
+    to retire support for them in December 2013:
+    <http://www.sgi.com/services/support/irix_mips_support.html>
 
   - Future versions of Automake might remove support for MS-DOS and
     Windows 95/98/ME (support for them was offered by relying on the
     DJGPP project).  Note however that both Cygwin and MSYS/MinGW on
     modern Windows versions will continue to be fully supported.
 
-  - Support for the long-deprecated INCLUDES variable will be removed
-    altogether in Automake 1.14.  The AM_CPPFLAGS variable should be
-    used instead.
-
   - Automake-provided scripts and makefile recipes might (finally!)
     start assuming a POSIX shell in Automake 1.14.
 
@@ -105,34 +92,31 @@ New in 1.13.2:
     should take precedence over the same-named automake-provided macro
     (defined in '/usr/local/share/aclocal-1.14/vala.m4').
 
-* Obsolescent features:
-
-  - Use of suffix-less info files (that can be specified through the
-    '@setfilename' macro in Texinfo input files) is discouraged, and
-    its use will raise warnings in the 'obsolete' category.  Simply
-    use the '.info' extension for all your info files, transforming
-    usages like:
-
-        @setfilename myprogram
-
-    into:
-
-        @setfilename myprogram.info
-
-  - Use of Texinfo input files with '.txi' or '.texinfo' extensions
-    is discouraged, and its use will raise warnings in the 'obsolete'
-    category.  You are advised to simply use the '.texi' extension
-    instead.
-
-* Documentation fixes:
-
-  - The long-deprecated but still supported two-arguments invocation form
-    of AM_INIT_AUTOMAKE is documented once again.  This seems the sanest
-    thing to do, given that support for such an usage might need to remain
-    in place for a unspecified amount of time in order to cater for people
-    who want to define the version number for their package dynamically at
-    configure runtime (unfortunately, Autoconf does not yet support this
-    scenario, so we cannot delegate the work to it).
+* C compilation, and the AC_PROG_CC and AM_PROG_CC_C_O macros:
+
+  - The 'compile' script is now unconditionally required for all
+    packages that perform C compilation (note that if you are using
+    the '--add-missing' option, automake will fetch that script for
+    you, so you shouldn't need any explicit adjustment).
+    This new behaviour is needed to avoid obscure errors when the
+    'subdir-objects' option is used, and the compiler is an inferior
+    one that doesn't grasp the combined use of both the "-c -o"
+    options; see discussion about automake bug#13378 for more details:
+    <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#35>
+    <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#44>
+
+  - Automake will automatically enhance the AC_PROG_CC autoconf macro
+    to make it check, at configure time, that the C compiler supports
+    the combined use of both the "-c -o" options.  This "rewrite" of
+    AC_PROG_CC is only meant to be temporary, since future Autoconf
+    versions should provide all the features Automake needs.
+
+  - The AM_PROG_CC_C_O is no longer useful, and its use is a no-op
+    now.  Future Automake versions might start warning that this
+    macro is obsolete.  For better backward-compatibility, this macro
+    still sets a proper 'ac_cv_prog_cc_*_c_o' cache variable, and
+    define the 'NO_MINUS_C_MINUS_O' C preprocessor symbol, but you
+    should really stop relying on that.
 
 * Texinfo support:
 
@@ -165,6 +149,63 @@ New in 1.13.2:
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+New in 1.13.2:
+
+* Documentation fixes:
+
+  - The long-deprecated but still supported two-arguments invocation form
+    of AM_INIT_AUTOMAKE is documented once again.  This seems the sanest
+    thing to do, given that support for such an usage might need to remain
+    in place for a unspecified amount of time in order to cater for people
+    who want to define the version number for their package dynamically at
+    configure runtime (unfortunately, Autoconf does not yet support this
+    scenario, so we cannot delegate the work to it).
+
+  - The serial testsuite harness is no longer reported as "deprecated",
+    but as "discouraged".  We have no plan to remove it, not to make its
+    use cause runtime warnings.
+
+  - The parallel testsuite is no longer reported as "experimental"; it
+    is well tested, and should be stable now.
+
+  - The 'shar' and 'tarZ' distribution formats and the 'dist-shar' and
+    'dist-tarZ' options are obsolescent, and their use is deprecated
+    in the documentation.
+
+  - Other minor miscellaneous fixes and improvements; in particular,
+    some improvements in cross-references.
+
+* Obsolescent features:
+
+  - Use of suffix-less info files (that can be specified through the
+    '@setfilename' macro in Texinfo input files) is discouraged, and
+    its use will raise warnings in the 'obsolete' category.  Simply
+    use the '.info' extension for all your info files, transforming
+    usages like:
+
+        @setfilename myprogram
+
+    into:
+
+        @setfilename myprogram.info
+
+  - Use of Texinfo input files with '.txi' or '.texinfo' extensions
+    is discouraged, and its use will raise warnings in the 'obsolete'
+    category.  You are advised to simply use the '.texi' extension
+    instead.
+
+* Bugs fixed:
+
+  - The obsolete macros AM_CONFIG_HEADER or AM_PROG_CC_STDC work once
+    again, as they did in Automake 1.12.x (albeit printing runtime
+    warnings in the 'obsolete' category).  Removing them has turned
+    out to be a very bad idea, because it complicated distro packing
+    enormously.  Making them issue fatal warnings, as we did in
+    Automake 1.13, has turned out to be a similarly very bad idea,
+    for exactly the same reason.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 New in 1.13.1:
 
 * Bugs fixed:
diff --git a/PLANS/obsolete-removed/am-prog-mkdir-p.txt 
b/PLANS/obsolete-removed/am-prog-mkdir-p.txt
index b096ece..40bc69f 100644
--- a/PLANS/obsolete-removed/am-prog-mkdir-p.txt
+++ b/PLANS/obsolete-removed/am-prog-mkdir-p.txt
@@ -1,8 +1,18 @@
-In Automake 1.13.x
-------------------
+We have dropped any plan to remove the obsolescent macro AM_PROG_MKDIR_P,
+(today just an alias for the Autoconf-provided macro AC_PROG_MKDIR_P), as
+well as the related $(mkdir_p) make variable and the @mkdir_p@ configure
+substitution.
 
-We had already scheduled the removal of the long-deprecated AM_PROG_MKDR_P
-macro (superseded by the autoconf-provided one AC_PROG_MKDIR_P) for
+That planned removal has already proven source of countless headaches and
+backward-compatibility issues, which vastly outweigh any "clean-up benefit"
+we would get from the removal of that obsolescent but unobtrusive cruft.
+
+-*-*-*-
+
+Let's see a bit of history.
+
+I had already scheduled the removal of the long-deprecated AM_PROG_MKDR_P
+macro (superseded by the Autoconf-provided one AC_PROG_MKDIR_P) for
 Automake 1.13 -- see commit 'v1.12-20-g8a1c64f'.
 
 Alas, it turned out the latest Gettext version at the time (0.18.1.1) was
@@ -10,58 +20,53 @@ still using that macro:
 
   <http://lists.gnu.org/archive/html/automake/2012-09/msg00010.html>
 
-And since the maintenance of Gettext was stalled, we couldn't get a fix
-committed and released in time for the appearance of automake 1.13:
+And since the maintenance of Gettext was stalled, I couldn't get a fix
+committed and released in time for the appearance of Automake 1.13:
 
   <http://lists.gnu.org/archive/html/bug-gettext/2012-04/msg00018.html>
   <http://lists.gnu.org/archive/html/bug-gettext/2012-06/msg00012.html>
   <http://lists.gnu.org/archive/html/bug-gettext/2012-10/msg00001.html>
 
-So, on a strong advice by Jim Meyering, in commit 'v1.12.4-158-gdf23daf'
-we re-introduced AM_PROG_MKDIR_P in Automake.  That has been an
-unfortunate necessity (thanks to Jim for having convinced me of that in
-time!)
-
-
-For Automake 1.14
------------------
+So, on strong advice by Jim Meyering, in commit 'v1.12.4-158-gdf23daf'
+I re-introduced AM_PROG_MKDIR_P in Automake (thanks to Jim for having
+convinced me to do so in time!)
 
-Finally, AM_PROG_MKDR_P we'll be fully obsolete in in Automake 1.14 (see
-commit 'v1.12.4-174-g5a28948', merged in master by 'v1.13-5-gb373ad9'),
-while still offering a clear error message for the moment (see follow-up
-commit 'v1.13-30-gd01834b').
+But then, Gettext (as said, the greatest "offender" in the use of
+AM_PROG_MKDIR_P), in its latest release 0.18.2, finally removed all the
+uses of that macro still present in its code base.  Yay.  So I thought
+we could finally and quite safely remove AM_PROG_MKDIR_P in Automake 1.14;
+and I proceeded to do so, see commit 'v1.13-30-gd01834b' and the merge
+commit 'v1.13-5-gb373ad9'.  Well, it turned out I was wrong, again, and
+in a trickier and sublter way this time.  Let's see the details.
 
-We can finally do so because Gettext has got a maintainer in the meantime,
-and a new release has been made that no longer uses AM_PROG_MKDIR_P:
+If a package's 'configure.ac' contains a call like:
 
-  <http://lists.gnu.org/archive/html/bug-gettext/2012-12/msg00064.html>
+    AM_GNU_GETTEXT_VERSION([0.18])
 
-We still keep the obsolete '@mkdir_p@' substitution and '$(mkdir_p)'
-variable around though, since they are still used by 'Makefile.in.in'
-template from gettext:
+then the 'autopoint' script will bring the data files from the Gettext
+release *1.18* into the package's tree -- yes, even even if the developer
+has installed *and is using* Gettext 1.18.2!  Now, these data files
+comprise m4 files (that will be seen by subsequent aclocal and autoconf
+calls), and of course, the pre-0.18.2 version of some of these files
+still contains occurrences of AM_PROG_MKDIR_P -- so Automake 1.13 errors
+out, and we lose.  That already happened in practice:
 
-  $ cd ~/src/gettext
-  $ git checkout master
-  $ git describe
-  v0.18.2-4-g3188bbf
-  $ grep mkdir_p gettext-runtime/po/Makefile.in.in | grep -v '^#'
-  mkdir_p = @mkdir_p@
-       $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
-       $(mkdir_p) $(DESTDIR)$$dir; \
-       $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
-       $(mkdir_p) $(DESTDIR)$$dir; \
+    <http://lists.gnu.org/archive/html/bug-grep/2013-01/msg00003.html>
 
-(see also Automake commit v1.12.1-112-g2551021).
+Moreover, while I might see it as not unreasonable to ask a developer
+using Automake 1.14 to also update Gettext to 1.18.2, that would not
+be enough; in order for gettext to use the correct data files, that
+developer would have to update his configure.ac to read:
 
-More to the point, it's almost impossible to diagnose usages of those
-macro and substitution using the existing Automake parsing and warning
-infrastructure; it's much easier to just keep them around for a while.
+    AM_GNU_GETTEXT_VERSION([0.18.2])
 
+thus requiring *all* of his co-developers to install Gettext 1.18.2,
+even if they are still using, say, Automake 1.13.  Bad.
 
-The future
-----------
+So I decided to re-instate this macro as a simple alias for AC_PROG_MKDIR_P
+(plus a non-fatal runtime warning in the 'obsolete' category), and drop
+any plan to remove it (see how much good those plans have done us so far).
+See commit v1.13.1-109-g030ecb4.
 
-We want to finally remove '@mkdir_p@' and '$(mkdir_p)' as well some
-day.  It would be nice if we could do so with some kind of deprecation,
-but that is not worth too much work.  Anyway, no hurry an no high
-priority for this removal.
+Similarly, the obsolete '@mkdir_p@' substitution and '$(mkdir_p)' make
+variable are still supported, as simple aliases to '$(MKDIR_P)'.
diff --git a/PLANS/rm-f-without-args.txt b/PLANS/rm-f-without-args.txt
new file mode 100644
index 0000000..5362f98
--- /dev/null
+++ b/PLANS/rm-f-without-args.txt
@@ -0,0 +1,40 @@
+Summary
+-------
+
+POSIX will say in a future version that calling "rm -f" with no argument
+is OK; and this sensible behaviour seem to be already very widespread in
+"the wild" (and possibly lacking only on those systems that are well on
+their way to obsolescence).
+
+Se we'd like to simplify several automake-generated "cleaning" rules
+accordingly, to get rid of the awful idiom:
+
+  test -z "$(VAR)" || rm -f $(VAR)
+
+See automake bug#10828.
+
+For Automake 1.13.2 (DONE)
+--------------------------
+
+Add a temporary "probe check" in AM_INIT_AUTOMAKE that verifies that
+the no-args "rm -f" usage is supported on the system configure is
+being run on; complain loudly if this is not the case, and tell the
+user to report the situation to us.
+
+For Automake 1.14
+-----------------
+
+Make any failure in the configure-time probe check introduced by the
+previous point fatal; and in case of failure, also suggest to the user
+to install an older version of GNU coreutils to work around the
+limitation of his system (this version should be old enough not to
+be bootstrapped with Automake 1.14, otherwise the user will face a
+bootstrapping catch-22).
+
+In all our recipes, start assuming "rm -f" with no argument is OK;
+simplify and de-uglify the recipes accordingly.
+
+For Automake 1.15
+-----------------
+
+Remove the runtime probe altogether.
diff --git a/PLANS/subdir-objects.txt b/PLANS/subdir-objects.txt
new file mode 100644
index 0000000..e4e6e25
--- /dev/null
+++ b/PLANS/subdir-objects.txt
@@ -0,0 +1,66 @@
+Summary
+-------
+
+We want to make the behaviour currently enabled by the 'subdir-objects'
+the default one, and in fact the *only* one, in Automake 1.14.
+See automake bug#13378: <http://debbugs.gnu.org/13351>.
+
+Details
+-------
+
+The fact that Automake-generated Makefiles place compiled object files in
+the current directory by default, also when the corresponding source file
+is in a subdirectory, is basically an historical accident, due to the fact
+that the 'subdir-objects' option had only been introduced in April 1999,
+starting with commit 'user-dep-gen-branchpoint-56-g88b5959', and never
+made the default (likely to avoid backwards-compatibility issues).
+
+Since I believe the behaviour enabled by the 'subdir-objects' is the most
+useful one, and in fact the *only* natural one, I'd like to make it the
+only one available, simplifying the Automake implementation and APIs a
+little in the process.
+
+Alas, since this also means changing the default behaviour of Automake
+('subdir-objects' is not enabled by default, sadly), this means the
+transition path will be less smooth than I'd like.
+
+DONE for automake 1.13.2
+------------------------
+
+The bug spotted by Nick Bowler:
+
+  <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#35>
+  <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#44>
+
+and exposed in test case 't/ccnoco4.sh' has been fixed (see commit
+v1.13.1-56-g34001a9).  The bug was due to the fact that Automake-generated
+C compilation rules mistakenly passed the "-c -o" options combination
+unconditionally (even to losing compiler) when the 'subdir-objects' was
+used but sources were only present in the top-level directory.
+
+TODO for automake 1.13.2
+------------------------
+
+Give a warning in the category 'unsupported' if the 'subdir-objects'
+option is not specified.  This should give the users enough forewarning
+about the planned change, and give them time to update their packages
+to the new semantic.
+
+Be sure to avoid the warning when it would be irrelevant, i.e., if all
+source files sit in "current" directory (thanks to Peter Johansson for
+suggesting this).
+
+For automake 1.14
+-----------------
+
+Remove the copy & paste of Autoconf internals in our AC_PROG_CC rewrite
+See the first patch in the series:
+<http://lists.gnu.org/archive/html/automake-patches/2013-01/msg00102.html>
+
+Make the behaviour once activated by the 'subdir-object' option mandatory.
+With that change, we'll drop support for the "old" behaviour of having
+object files derived from sources in a subdirectory being placed in the
+current directory rather than in that same subdirectory.
+
+Still keep the 'subdir-object' option supported (as a simple no-op
+now), to save useless churn in our user's build systems.
diff --git a/PLANS/texi/warnings-for-automake-ng-compatibility.txt 
b/PLANS/texi/warnings-for-automake-ng-compatibility.txt
index 1dd3da3..aca46b4 100644
--- a/PLANS/texi/warnings-for-automake-ng-compatibility.txt
+++ b/PLANS/texi/warnings-for-automake-ng-compatibility.txt
@@ -1,5 +1,5 @@
-For automake 1.13.2:
---------------------
+Done in automake 1.13.2:
+------------------------
 
 I have discouraged the use of '.txi' and '.texinfo' suffixes for
 Texinfo inputs (see commit 'v1.13.1-6-ge1ed314') and the generation
diff --git a/THANKS b/THANKS
index 58745e7..66498d4 100644
--- a/THANKS
+++ b/THANKS
@@ -49,6 +49,7 @@ Bob Proulx                      address@hidden
 Bob Rossi                       address@hidden
 Bobby Jack                      address@hidden
 Braden N. McDaniel              address@hidden
+Brandon Black                   address@hidden
 Brendan O'Dea                   address@hidden
 Brian Cameron                   address@hidden
 Brian Ford                      address@hidden
@@ -331,6 +332,7 @@ Reuben Thomas                   address@hidden
 Rich Wales                      address@hidden
 Richard Boulton                 address@hidden
 Richard Dawe                    address@hidden
+Richard W.M. Jones              address@hidden
 Rob Savoye                      address@hidden
 Robert Bihlmeyer                address@hidden
 Robert Boehne                   address@hidden
diff --git a/aclocal.in b/aclocal.in
index fc24dd8..068e301 100644
--- a/aclocal.in
+++ b/aclocal.in
@@ -166,27 +166,7 @@ my $erase_me;
 
 # Prototypes for all subroutines.
 
-sub unlink_tmp (;$);
-sub xmkdir_p ($);
-sub check_acinclude ();
-sub reset_maps ();
-sub install_file ($$);
-sub list_compare (address@hidden@);
-sub scan_m4_dirs ($$@);
-sub scan_m4_files ();
-sub add_macro ($);
-sub scan_configure_dep ($);
-sub add_file ($);
-sub scan_file ($$$);
-sub strip_redundant_includes (%);
-sub trace_used_macros ();
-sub scan_configure ();
-sub write_aclocal ($@);
-sub usage ($);
-sub version ();
-sub handle_acdir_option ($$);
-sub parse_arguments ();
-sub parse_ACLOCAL_PATH ();
+#! Prototypes here will automatically be generated by the build system.
 
 ################################################################
 
diff --git a/automake.in b/automake.in
index 2649d3a..e52f58f 100644
--- a/automake.in
+++ b/automake.in
@@ -25,7 +25,9 @@ eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S 
"$0" "$@";; esac'
 # Perl reimplementation by Tom Tromey <address@hidden>, and
 # Alexandre Duret-Lutz <address@hidden>.
 
-package Language;
+package Automake;
+
+use strict;
 
 BEGIN
 {
@@ -34,93 +36,6 @@ BEGIN
   unshift @INC, @Automake::perl_libdirs;
 }
 
-use Class::Struct ();
-Class::Struct::struct (
-       # Short name of the language (c, f77...).
-       'name' => "\$",
-       # Nice name of the language (C, Fortran 77...).
-       'Name' => "\$",
-
-       # List of configure variables which must be defined.
-       'config_vars' => '@',
-
-       # 'pure' is '1' or ''.  A 'pure' language is one where, if
-       # all the files in a directory are of that language, then we
-       # do not require the C compiler or any code to call it.
-       'pure'   => "\$",
-
-       'autodep' => "\$",
-
-       # Name of the compiling variable (COMPILE).
-       'compiler'  => "\$",
-       # Content of the compiling variable.
-       'compile'  => "\$",
-       # Flag to require compilation without linking (-c).
-       'compile_flag' => "\$",
-       'extensions' => '@',
-       # A subroutine to compute a list of possible extensions of
-       # the product given the input extensions.
-       # (defaults to a subroutine which returns ('.$(OBJEXT)', '.lo'))
-       'output_extensions' => "\$",
-       # A list of flag variables used in 'compile'.
-       # (defaults to [])
-       'flags' => "@",
-
-       # Any tag to pass to libtool while compiling.
-       'libtool_tag' => "\$",
-
-       # The file to use when generating rules for this language.
-       # The default is 'depend2'.
-       'rule_file' => "\$",
-
-       # Name of the linking variable (LINK).
-       'linker' => "\$",
-       # Content of the linking variable.
-       'link' => "\$",
-
-       # Name of the compiler variable (CC).
-       'ccer' => "\$",
-
-       # Name of the linker variable (LD).
-       'lder' => "\$",
-       # Content of the linker variable ($(CC)).
-       'ld' => "\$",
-
-       # Flag to specify the output file (-o).
-       'output_flag' => "\$",
-       '_finish' => "\$",
-
-       # This is a subroutine which is called whenever we finally
-       # determine the context in which a source file will be
-       # compiled.
-       '_target_hook' => "\$",
-
-       # If TRUE, nodist_ sources will be compiled using specific rules
-       # (i.e. not inference rules).  The default is FALSE.
-       'nodist_specific' => "\$");
-
-
-sub finish ($)
-{
-  my ($self) = @_;
-  if (defined $self->_finish)
-    {
-      &{$self->_finish} (@_);
-    }
-}
-
-sub target_hook ($$$$%)
-{
-    my ($self) = @_;
-    if (defined $self->_target_hook)
-    {
-       &{$self->_target_hook} (@_);
-    }
-}
-
-package Automake;
-
-use strict;
 use Automake::Config;
 use Automake::General;
 use Automake::XFile;
@@ -136,10 +51,18 @@ use Automake::VarDef;
 use Automake::Rule;
 use Automake::RuleDef;
 use Automake::Wrap 'makefile_wrap';
+use Automake::Language;
 use File::Basename;
 use File::Spec;
 use Carp;
 
+## ----------------------- ##
+## Subroutine prototypes.  ##
+## ----------------------- ##
+
+#! Prototypes here will automatically be generated by the build system.
+
+
 ## ----------- ##
 ## Constants.  ##
 ## ----------- ##
@@ -335,7 +258,7 @@ my %ac_config_files_location = ();
 my %ac_config_files_condition = ();
 
 # Directory to search for configure-required files.  This
-# will be computed by &locate_aux_dir and can be set using
+# will be computed by locate_aux_dir() and can be set using
 # AC_CONFIG_AUX_DIR in configure.ac.
 # $CONFIG_AUX_DIR is the 'raw' directory, valid only in the source-tree.
 my $config_aux_dir = '';
@@ -378,9 +301,6 @@ my $package_version_location;
 # TRUE if we've seen AM_PROG_AR
 my $seen_ar = 0;
 
-# TRUE if we've seen AM_PROG_CC_C_O
-my $seen_cc_c_o = 0;
-
 # Location of AC_REQUIRE_AUX_FILE calls, indexed by their argument.
 my %required_aux_file = ();
 
@@ -574,16 +494,8 @@ my %am_file_cache;
 
 ################################################################
 
-## --------------------------------- ##
-## Forward subroutine declarations.  ##
-## --------------------------------- ##
-sub register_language (%);
-sub file_contents_internal ($$$%);
-sub define_files_variable (address@hidden);
-
-
-# &initialize_per_input ()
-# ------------------------
+# initialize_per_input ()
+# -----------------------
 # (Re)-Initialize per-Makefile.am variables.
 sub initialize_per_input ()
 {
@@ -988,7 +900,7 @@ register_language ('name' => 'java',
 # Uncategorized errors about the current Makefile.am.
 sub err_am ($;%)
 {
-  msg_am ('error', @_);
+  msg_am ('error', shift, @_);
 }
 
 # err_ac ($MESSAGE, [%OPTIONS])
@@ -996,7 +908,7 @@ sub err_am ($;%)
 # Uncategorized errors about configure.ac.
 sub err_ac ($;%)
 {
-  msg_ac ('error', @_);
+  msg_ac ('error', shift, @_);
 }
 
 # msg_am ($CHANNEL, $MESSAGE, [%OPTIONS])
@@ -1035,8 +947,8 @@ sub subst ($)
 
 
 # $BACKPATH
-# &backname ($RELDIR)
-# --------------------
+# backname ($RELDIR)
+# -------------------
 # If I "cd $RELDIR", then to come back, I should "cd $BACKPATH".
 # For instance 'src/foo' => '../..'.
 # Works with non strictly increasing paths, i.e., 'src/../lib' => '..'.
@@ -1168,7 +1080,7 @@ sub handle_silent ()
 
 
 # Handle AUTOMAKE_OPTIONS variable.  Return 1 on error, 0 otherwise.
-sub handle_options
+sub handle_options ()
 {
   my $var = var ('AUTOMAKE_OPTIONS');
   if ($var)
@@ -1241,7 +1153,7 @@ sub check_user_variables (@)
 }
 
 # Call finish function for each language that was used.
-sub handle_languages
+sub handle_languages ()
 {
     if (! option 'no-dependencies')
     {
@@ -1304,7 +1216,7 @@ sub handle_languages
                         'FASTDEP' => $FASTDEP,
                         '-c'      => $lang->compile_flag || '',
                         # These are not used, but they need to be defined
-                        # so &transform do not complain.
+                        # so transform() do not complain.
                         'DERIVED-EXT' => 'BUG',
                         DIST_SOURCE   => 1,
                         VERBOSE   => $verbose,
@@ -1323,7 +1235,7 @@ sub handle_languages
 
            # Compute a possible derived extension.
            # This is not used by depend2.am.
-           my $der_ext = (&{$lang->output_extensions} ($ext))[0];
+           my $der_ext = ($lang->output_extensions->($ext))[0];
 
            $output_rules .=
              file_contents ($rule_file,
@@ -1454,7 +1366,7 @@ sub handle_languages
     # Non-pure languages, or languages lacking a linker of their own.
     if ($needs_c || $need_link)
       {
-       &define_compiler_variable ($languages{'c'})
+       define_compiler_variable ($languages{'c'})
          unless defined $done{$languages{'c'}};
        define_linker_variable ($languages{'c'});
       }
@@ -1490,7 +1402,7 @@ sub append_exeext (&$)
 # mentioned.  This is a separate function (as opposed to being inlined
 # in handle_source_transform) because it isn't always appropriate to
 # do this check.
-sub check_libobjs_sources
+sub check_libobjs_sources ($$)
 {
   my ($one_file, $unxformed) = @_;
 
@@ -1592,7 +1504,7 @@ sub handle_single_transform ($$$$$%)
            ($lang = $languages{$extension_map{$extension}}))
        {
            # Found the language, so see what it says.
-           &saw_extension ($extension);
+           saw_extension ($extension);
 
            # Do we have per-executable flags for this executable?
            my $have_per_exec_flags = 0;
@@ -1672,8 +1584,7 @@ sub handle_single_transform ($$$$$%)
                $renamed = 1;
            }
 
-           # If rewrite said it was ok, put the object into a
-           # subdir.
+           # If rewrite said it was ok, put the object into a subdir.
            $object = $directory . '/' . $object
              unless $directory eq '';
 
@@ -1934,7 +1845,7 @@ sub handle_source_transform ($$$$%)
     }
     if ($needlinker)
     {
-       $linker ||= &resolve_linker (%linkers_used);
+       $linker ||= resolve_linker (%linkers_used);
     }
 
     my @keys = sort keys %used_pfx;
@@ -1955,7 +1866,7 @@ sub handle_source_transform ($$$$%)
                                   $one_file . '_SOURCES',
                                   $one_file, $obj,
                                   $default_source, %transform);
-       $linker ||= &resolve_linker (%linkers_used);
+       $linker ||= resolve_linker (%linkers_used);
        define_variable ($one_file . '_OBJECTS', $where, @result);
     }
     else
@@ -1982,7 +1893,7 @@ sub handle_source_transform ($$$$%)
 #   transformed name of object being built, or empty string if no object
 #   name of _LDADD/_LIBADD-type variable to examine
 # Returns 1 if LIBOBJS seen, 0 otherwise.
-sub handle_lib_objects
+sub handle_lib_objects ($$)
 {
   my ($xname, $varname) = @_;
 
@@ -2102,8 +2013,8 @@ sub handle_LIBOBJS ($$$)
     {
       if ($iter =~ /\.[cly]$/)
        {
-         &saw_extension ($&);
-         &saw_extension ('.c');
+         saw_extension ($&);
+         saw_extension ('.c');
        }
 
       if ($iter =~ /\.h$/)
@@ -2136,11 +2047,11 @@ sub handle_ALLOCA ($$$)
   $var->requires_variables ("address@hidden@ used", $lt . 'ALLOCA');
   $dep_files{$dir . '$(DEPDIR)/alloca.P' . $myobjext} = 1;
   require_libsource_with_macro ($cond, $var, FOREIGN, 'alloca.c');
-  &saw_extension ('.c');
+  saw_extension ('.c');
 }
 
 # Canonicalize the input parameter
-sub canonicalize
+sub canonicalize ($)
 {
     my ($string) = @_;
     $string =~ tr/A-Za-z0-9_\@/_/c;
@@ -2150,11 +2061,11 @@ sub canonicalize
 # Canonicalize a name, and check to make sure the non-canonical name
 # is never used.  Returns canonical name.  Arguments are name and a
 # list of suffixes to check for.
-sub check_canonical_spelling
+sub check_canonical_spelling ($@)
 {
   my ($name, @suffixes) = @_;
 
-  my $xname = &canonicalize ($name);
+  my $xname = canonicalize ($name);
   if ($xname ne $name)
     {
       foreach my $xt (@suffixes)
@@ -2172,16 +2083,16 @@ sub check_canonical_spelling
 # Set up the compile suite.
 sub handle_compile ()
 {
-   return if ! $must_handle_compiled_objects;
-   $output_rules .= file_contents ('compile',
-                                   new Automake::Location,
-                                   'STDINC' => ! option 'nostdinc');
+    return if ! $must_handle_compiled_objects;
+    $output_rules .= file_contents ('compile',
+                                    new Automake::Location,
+                                    'STDINC' => ! option 'nostdinc');
 }
 
 # handle_libtool ()
 # -----------------
 # Handle libtool rules.
-sub handle_libtool
+sub handle_libtool ()
 {
   return unless var ('LIBTOOL');
 
@@ -2203,16 +2114,16 @@ sub handle_libtool
 # handle_programs ()
 # ------------------
 # Handle C programs.
-sub handle_programs
+sub handle_programs ()
 {
-  my @proglist = &am_install_var ('progs', 'PROGRAMS',
-                                 'bin', 'sbin', 'libexec', 'pkglibexec',
-                                 'noinst', 'check');
+  my @proglist = am_install_var ('progs', 'PROGRAMS',
+                                'bin', 'sbin', 'libexec', 'pkglibexec',
+                                'noinst', 'check');
   return if ! @proglist;
   $must_handle_compiled_objects = 1;
 
   my $seen_global_libobjs =
-    var ('LDADD') && &handle_lib_objects ('', 'LDADD');
+    var ('LDADD') && handle_lib_objects ('', 'LDADD');
 
   foreach my $pair (@proglist)
     {
@@ -2224,19 +2135,19 @@ sub handle_programs
       $known_programs{$one_file} = $where;
 
       # Canonicalize names and check for misspellings.
-      my $xname = &check_canonical_spelling ($one_file, '_LDADD', '_LDFLAGS',
-                                            '_SOURCES', '_OBJECTS',
-                                            '_DEPENDENCIES');
+      my $xname = check_canonical_spelling ($one_file, '_LDADD', '_LDFLAGS',
+                                            '_SOURCES', '_OBJECTS',
+                                            '_DEPENDENCIES');
 
       $where->push_context ("while processing program '$one_file'");
       $where->set (INTERNAL->get);
 
-      my $linker = &handle_source_transform ($xname, $one_file, $obj, $where,
-                                            NONLIBTOOL => 1, LIBTOOL => 0);
+      my $linker = handle_source_transform ($xname, $one_file, $obj, $where,
+                                            NONLIBTOOL => 1, LIBTOOL => 0);
 
       if (var ($xname . "_LDADD"))
        {
-         $seen_libobjs = &handle_lib_objects ($xname, $xname . '_LDADD');
+         $seen_libobjs = handle_lib_objects ($xname, $xname . '_LDADD');
        }
       else
        {
@@ -2247,7 +2158,7 @@ sub handle_programs
          # generate _DEPENDENCIES when appropriate.
          if (var ('LDADD'))
            {
-             $seen_libobjs = &handle_lib_objects ($xname, 'LDADD');
+             $seen_libobjs = handle_lib_objects ($xname, 'LDADD');
            }
        }
 
@@ -2257,28 +2168,28 @@ sub handle_programs
       set_seen ($xname . '_LDFLAGS');
 
       # Determine program to use for link.
-      my($xlink, $vlink) = &define_per_target_linker_variable ($linker, 
$xname);
+      my($xlink, $vlink) = define_per_target_linker_variable ($linker, $xname);
       $vlink = verbose_flag ($vlink || 'GEN');
 
       $clean_dirs{dirname ($one_file) . '/.libs'} = CLEAN;
 
-      $output_rules .= &file_contents ('program',
-                                      $where,
-                                      PROGRAM  => $one_file,
-                                      XPROGRAM => $xname,
-                                      XLINK    => $xlink,
-                                      VERBOSE  => $vlink,
-                                      EXEEXT   => '$(EXEEXT)');
+      $output_rules .= file_contents ('program',
+                                     $where,
+                                     PROGRAM  => $one_file,
+                                     XPROGRAM => $xname,
+                                     XLINK    => $xlink,
+                                     VERBOSE  => $vlink,
+                                     EXEEXT   => '$(EXEEXT)');
 
       if ($seen_libobjs || $seen_global_libobjs)
        {
          if (var ($xname . '_LDADD'))
            {
-             &check_libobjs_sources ($xname, $xname . '_LDADD');
+             check_libobjs_sources ($xname, $xname . '_LDADD');
            }
          elsif (var ('LDADD'))
            {
-             &check_libobjs_sources ($xname, 'LDADD');
+             check_libobjs_sources ($xname, 'LDADD');
            }
        }
     }
@@ -2288,10 +2199,10 @@ sub handle_programs
 # handle_libraries ()
 # -------------------
 # Handle libraries.
-sub handle_libraries
+sub handle_libraries ()
 {
-  my @liblist = &am_install_var ('libs', 'LIBRARIES',
-                                'lib', 'pkglib', 'noinst', 'check');
+  my @liblist = am_install_var ('libs', 'LIBRARIES',
+                                'lib', 'pkglib', 'noinst', 'check');
   return if ! @liblist;
   $must_handle_compiled_objects = 1;
 
@@ -2333,9 +2244,9 @@ sub handle_libraries
       my $obj = '.$(OBJEXT)';
 
       # Canonicalize names and check for misspellings.
-      my $xlib = &check_canonical_spelling ($onelib, '_LIBADD', '_SOURCES',
-                                           '_OBJECTS', '_DEPENDENCIES',
-                                           '_AR');
+      my $xlib = check_canonical_spelling ($onelib, '_LIBADD', '_SOURCES',
+                                           '_OBJECTS', '_DEPENDENCIES',
+                                           '_AR');
 
       if (! var ($xlib . '_AR'))
        {
@@ -2346,7 +2257,7 @@ sub handle_libraries
       # libraries.
       if (var ($xlib . '_LIBADD'))
        {
-         if (&handle_lib_objects ($xlib, $xlib . '_LIBADD'))
+         if (handle_lib_objects ($xlib, $xlib . '_LIBADD'))
            {
              $seen_libobjs = 1;
            }
@@ -2359,22 +2270,22 @@ sub handle_libraries
       reject_var ($xlib . '_LDADD',
                  "use '${xlib}_LIBADD', not '${xlib}_LDADD'");
 
-      &handle_source_transform ($xlib, $onelib, $obj, $where,
-                               NONLIBTOOL => 1, LIBTOOL => 0);
+      handle_source_transform ($xlib, $onelib, $obj, $where,
+                               NONLIBTOOL => 1, LIBTOOL => 0);
 
       my $verbose = verbose_flag ('AR');
 
-      $output_rules .= &file_contents ('library',
-                                      $where,
-                                      VERBOSE  => $verbose,
-                                      LIBRARY  => $onelib,
-                                      XLIBRARY => $xlib);
+      $output_rules .= file_contents ('library',
+                                       $where,
+                                       VERBOSE  => $verbose,
+                                       LIBRARY  => $onelib,
+                                       XLIBRARY => $xlib);
 
       if ($seen_libobjs)
        {
          if (var ($xlib . '_LIBADD'))
            {
-             &check_libobjs_sources ($xlib, $xlib . '_LIBADD');
+             check_libobjs_sources ($xlib, $xlib . '_LIBADD');
            }
        }
 
@@ -2391,10 +2302,10 @@ sub handle_libraries
 # handle_ltlibraries ()
 # ---------------------
 # Handle shared libraries.
-sub handle_ltlibraries
+sub handle_ltlibraries ()
 {
-  my @liblist = &am_install_var ('ltlib', 'LTLIBRARIES',
-                                'noinst', 'lib', 'pkglib', 'check');
+  my @liblist = am_install_var ('ltlib', 'LTLIBRARIES',
+                                'noinst', 'lib', 'pkglib', 'check');
   return if ! @liblist;
   $must_handle_compiled_objects = 1;
 
@@ -2496,9 +2407,9 @@ sub handle_ltlibraries
       my $obj = '.lo';
 
       # Canonicalize names and check for misspellings.
-      my $xlib = &check_canonical_spelling ($onelib, '_LIBADD', '_LDFLAGS',
-                                           '_SOURCES', '_OBJECTS',
-                                           '_DEPENDENCIES');
+      my $xlib = check_canonical_spelling ($onelib, '_LIBADD', '_LDFLAGS',
+                                           '_SOURCES', '_OBJECTS',
+                                           '_DEPENDENCIES');
 
       # Check that the library fits the standard naming convention.
       my $libname_rx = '^lib.*\.la';
@@ -2543,7 +2454,7 @@ sub handle_ltlibraries
       # libraries.
       if (var ($xlib . '_LIBADD'))
        {
-         if (&handle_lib_objects ($xlib, $xlib . '_LIBADD'))
+         if (handle_lib_objects ($xlib, $xlib . '_LIBADD'))
            {
              $seen_libobjs = 1;
            }
@@ -2557,11 +2468,11 @@ sub handle_ltlibraries
                  "use '${xlib}_LIBADD', not '${xlib}_LDADD'");
 
 
-      my $linker = &handle_source_transform ($xlib, $onelib, $obj, $where,
-                                            NONLIBTOOL => 0, LIBTOOL => 1);
+      my $linker = handle_source_transform ($xlib, $onelib, $obj, $where,
+                                            NONLIBTOOL => 0, LIBTOOL => 1);
 
       # Determine program to use for link.
-      my($xlink, $vlink) = &define_per_target_linker_variable ($linker, $xlib);
+      my($xlink, $vlink) = define_per_target_linker_variable ($linker, $xlib);
       $vlink = verbose_flag ($vlink || 'GEN');
 
       my $rpathvar = "am_${xlib}_rpath";
@@ -2600,18 +2511,18 @@ sub handle_ltlibraries
 
       $clean_dirs{dirname ($onelib) . '/.libs'} = CLEAN;
 
-      $output_rules .= &file_contents ('ltlibrary',
-                                      $where,
-                                      LTLIBRARY  => $onelib,
-                                      XLTLIBRARY => $xlib,
-                                      RPATH      => $rpath,
-                                      XLINK      => $xlink,
-                                      VERBOSE    => $vlink);
+      $output_rules .= file_contents ('ltlibrary',
+                                      $where,
+                                      LTLIBRARY  => $onelib,
+                                      XLTLIBRARY => $xlib,
+                                      RPATH      => $rpath,
+                                      XLINK      => $xlink,
+                                      VERBOSE    => $vlink);
       if ($seen_libobjs)
        {
          if (var ($xlib . '_LIBADD'))
            {
-             &check_libobjs_sources ($xlib, $xlib . '_LIBADD');
+             check_libobjs_sources ($xlib, $xlib . '_LIBADD');
            }
        }
 
@@ -2626,14 +2537,14 @@ sub handle_ltlibraries
 
 
 # Handle scripts.
-sub handle_scripts
+sub handle_scripts ()
 {
     # NOTE we no longer automatically clean SCRIPTS, because it is
     # useful to sometimes distribute scripts verbatim.  This happens
     # e.g. in Automake itself.
-    &am_install_var ('-candist', 'scripts', 'SCRIPTS',
-                    'bin', 'sbin', 'libexec', 'pkglibexec', 'pkgdata',
-                    'noinst', 'check');
+    am_install_var ('-candist', 'scripts', 'SCRIPTS',
+                    'bin', 'sbin', 'libexec', 'pkglibexec', 'pkgdata',
+                    'noinst', 'check');
 }
 
 
@@ -2644,8 +2555,8 @@ sub handle_scripts
 ## ------------------------ ##
 
 # ($OUTFILE, $VFILE)
-# &scan_texinfo_file ($FILENAME)
-# ------------------------------
+# scan_texinfo_file ($FILENAME)
+# -----------------------------
 # $OUTFILE     - name of the info file produced by $FILENAME.
 # $VFILE       - name of the version.texi file used (undef if none).
 sub scan_texinfo_file ($)
@@ -3009,7 +2920,7 @@ sub handle_texinfo ()
 
 
 # Handle any man pages.
-sub handle_man_pages
+sub handle_man_pages ()
 {
   reject_var 'MANS', "'MANS' is an anachronism; use 'man_MANS'";
 
@@ -3122,18 +3033,18 @@ sub handle_man_pages
       @unsorted_deps = (keys %notrans_vars, keys %trans_vars,
                         keys %notrans_this_sect, keys %trans_this_sect);
       my @deps = sort @unsorted_deps;
-      $output_rules .= &file_contents ('mans',
-                                      new Automake::Location,
-                                      SECTION           => $section,
-                                      DEPS              => "@deps",
-                                      NOTRANS_MANS      => $notrans_mans,
-                                      NOTRANS_SECT_LIST => 
"@notrans_sect_list",
-                                      HAVE_NOTRANS      => $have_notrans,
-                                      NOTRANS_LIST      => "@notrans_list",
-                                      TRANS_MANS        => $trans_mans,
-                                      TRANS_SECT_LIST   => "@trans_sect_list",
-                                      HAVE_TRANS        => $have_trans,
-                                      TRANS_LIST        => "@trans_list");
+      $output_rules .= file_contents ('mans',
+                                      new Automake::Location,
+                                      SECTION           => $section,
+                                      DEPS              => "@deps",
+                                      NOTRANS_MANS      => $notrans_mans,
+                                      NOTRANS_SECT_LIST => 
"@notrans_sect_list",
+                                      HAVE_NOTRANS      => $have_notrans,
+                                      NOTRANS_LIST      => "@notrans_list",
+                                      TRANS_MANS        => $trans_mans,
+                                      TRANS_SECT_LIST   => "@trans_sect_list",
+                                      HAVE_TRANS        => $have_trans,
+                                      TRANS_LIST        => "@trans_list");
     }
 
   @unsorted_deps  = (keys %notrans_vars, keys %trans_vars,
@@ -3148,12 +3059,12 @@ sub handle_man_pages
 }
 
 # Handle DATA variables.
-sub handle_data
+sub handle_data ()
 {
-    &am_install_var ('-noextra', '-candist', 'data', 'DATA',
-                    'data', 'dataroot', 'doc', 'dvi', 'html', 'pdf',
-                    'ps', 'sysconf', 'sharedstate', 'localstate',
-                    'pkgdata', 'lisp', 'noinst', 'check');
+    am_install_var ('-noextra', '-candist', 'data', 'DATA',
+                    'data', 'dataroot', 'doc', 'dvi', 'html', 'pdf',
+                    'ps', 'sysconf', 'sharedstate', 'localstate',
+                    'pkgdata', 'lisp', 'noinst', 'check');
 }
 
 # user_phony_rule ($NAME)
@@ -3228,7 +3139,7 @@ sub handle_dist ()
   if ($relative_dir eq '.'
       && $config_aux_dir_set_in_configure_ac)
     {
-      if (! &is_make_dir ($config_aux_dir))
+      if (! is_make_dir ($config_aux_dir))
        {
          $check_aux = 1;
        }
@@ -3334,8 +3245,8 @@ sub check_directories_in_var ($)
      skip_ac_subst => 1);
 }
 
-# &handle_subdirs ()
-# ------------------
+# handle_subdirs ()
+# -----------------
 # Handle subdirectories.
 sub handle_subdirs ()
 {
@@ -3354,7 +3265,7 @@ sub handle_subdirs ()
 
 
 # $REGEN
-# &scan_aclocal_m4
+# scan_aclocal_m4()
 # ----------------
 # If aclocal.m4 creation is automated, return "aclocal.m4",
 # otherwise return 0.
@@ -3397,13 +3308,13 @@ sub substitute_ac_subst_variables_worker($)
 sub substitute_ac_subst_variables ($)
 {
   my ($text) = @_;
-  $text =~ s/\${([^ \t=:+{}]+)}/&substitute_ac_subst_variables_worker ($1)/ge;
+  $text =~ s/\${([^ \t=:+{}]+)}/substitute_ac_subst_variables_worker ($1)/ge;
   return $text;
 }
 
 # @DEPENDENCIES
-# &prepend_srcdir (@INPUTS)
-# -------------------------
+# prepend_srcdir (@INPUTS)
+# ------------------------
 # Prepend $(srcdir) or $(top_srcdir) to all @INPUTS.  The idea is that
 # if an input file has a directory part the same as the current
 # directory, then the directory part is simply replaced by $(srcdir).
@@ -3501,8 +3412,8 @@ sub handle_config_headers ()
                    qw/$(am.config-hdr.local) $(am.config-hdr.non-local)/);
 }
 
-# &handle_configure ($MAKEFILE, @INPUTS)
-# --------------------------------------
+# handle_configure ($MAKEFILE, @INPUTS)
+# -------------------------------------
 # Handle remaking and configure stuff.
 # We need the name of the input file, to do proper remaking rules.
 sub handle_configure ($@)
@@ -3552,7 +3463,7 @@ sub handle_configure ($@)
       # directory and the header's directory doesn't have a
       # Makefile, then we also want to build the header.
       if ($relative_dir eq $config_h_dir
-         || ($relative_dir eq '.' && ! &is_make_dir ($config_h_dir)))
+         || ($relative_dir eq '.' && ! is_make_dir ($config_h_dir)))
        {
          my ($cn_sans_dir, $stamp_dir);
          if ($relative_dir eq $config_h_dir)
@@ -3631,7 +3542,7 @@ sub handle_configure ($@)
       my $fd = dirname ($file);
       if ($fd ne $relative_dir)
        {
-         if ($relative_dir eq '.' && ! &is_make_dir ($fd))
+         if ($relative_dir eq '.' && ! is_make_dir ($fd))
            {
              $local = $file;
            }
@@ -3686,7 +3597,7 @@ sub handle_configure ($@)
          my $fd = dirname ($link);
          if ($fd ne $relative_dir)
            {
-             if ($relative_dir eq '.' && ! &is_make_dir ($fd))
+             if ($relative_dir eq '.' && ! is_make_dir ($fd))
                {
                  $local = $link;
                }
@@ -3714,7 +3625,7 @@ sub handle_configure ($@)
          # At the top-level ('.') we also distribute files whose
          # directory does not have a Makefile.
          if (($fd eq $relative_dir)
-             || ($relative_dir eq '.' && ! &is_make_dir ($fd)))
+             || ($relative_dir eq '.' && ! is_make_dir ($fd)))
            {
              # The following will distribute $file as a side-effect when
              # it is appropriate (i.e., when $file is not already an output).
@@ -3732,19 +3643,19 @@ sub handle_configure ($@)
 }
 
 # Handle C headers.
-sub handle_headers
+sub handle_headers ()
 {
-    my @r = &am_install_var ('-defaultdist', 'header', 'HEADERS', 'include',
-                            'oldinclude', 'pkginclude',
-                            'noinst', 'check');
+    my @r = am_install_var ('-defaultdist', 'header', 'HEADERS', 'include',
+                           'oldinclude', 'pkginclude',
+                           'noinst', 'check');
     foreach (@r)
     {
       next unless $_->[1] =~ /\..*$/;
-      &saw_extension ($&);
+      saw_extension ($&);
     }
 }
 
-sub handle_gettext
+sub handle_gettext ()
 {
   return if ! $seen_gettext || $relative_dir ne '.';
 
@@ -3801,7 +3712,7 @@ sub handle_gettext
 }
 
 # Handle footer elements.
-sub handle_footer
+sub handle_footer ()
 {
   # FIXME: maybe display a warning if the obsolescent $(SUFFIXES)
   # FIXME: variable is used?  Currently, we don't do that, to preserve
@@ -3828,7 +3739,7 @@ sub handle_user_recursion ()
       # associated 'foo-local' rule; we define it as an empty rule by
       # default, so that the user can transparently extend it in his
       # own Makefile.am.
-      pretty_print_rule ("$target-local:");
+      pretty_print_rule ("$target-local:", '', '');
       # $target-recursive might as well be undefined, so do not add
       # it here; it's taken care of in subdirs.am anyway.
       depend (".PHONY", "$target-am", "$target-local");
@@ -3861,10 +3772,9 @@ sub handle_clean ()
 }
 
 
-# &target_cmp ($A, $B)
-# --------------------
-# Subroutine for &handle_factored_dependencies to let '.PHONY' and
-# other '.TARGETS' be last.
+# Subroutine for handle_factored_dependencies() to let '.PHONY' and
+# other '.TARGETS' be last.  This is meant to be used as a comparison
+# subroutine passed to the sort built-int.
 sub target_cmp
 {
   return 0 if $a eq $b;
@@ -3880,10 +3790,10 @@ sub target_cmp
 }
 
 
-# &handle_factored_dependencies ()
-# --------------------------------
+# handle_factored_dependencies ()
+# -------------------------------
 # Handle everything related to gathered targets.
-sub handle_factored_dependencies
+sub handle_factored_dependencies ()
 {
   # Reject bad hooks.
   foreach my $utarg ('uninstall-data-local', 'uninstall-data-hook',
@@ -3958,14 +3868,14 @@ sub handle_factored_dependencies
       foreach my $cond (@undefined_conds)
        {
          my $condstr = $cond->subst_string;
-         &pretty_print_rule ("$condstr$_:", "$condstr\t", @uniq_deps);
+         pretty_print_rule ("$condstr$_:", "$condstr\t", @uniq_deps);
          $output_rules .= $actions{$_} if defined $actions{$_};
          $output_rules .= "\n";
        }
     }
 }
 
-sub handle_tests
+sub handle_tests ()
 {
   if (option 'dejagnu')
     {
@@ -3996,10 +3906,10 @@ sub handle_tests
 }
 
 # Handle Emacs Lisp.
-sub handle_emacs_lisp
+sub handle_emacs_lisp ()
 {
-  my @elfiles = &am_install_var ('-candist', 'lisp', 'LISP',
-                                'lisp', 'noinst');
+  my @elfiles = am_install_var ('-candist', 'lisp', 'LISP',
+                                'lisp', 'noinst');
 
   return if ! @elfiles;
 
@@ -4015,10 +3925,10 @@ sub handle_emacs_lisp
 }
 
 # Handle Python
-sub handle_python
+sub handle_python ()
 {
-  my @pyfiles = &am_install_var ('-defaultdist', 'python', 'PYTHON',
-                                'noinst');
+  my @pyfiles = am_install_var ('-defaultdist', 'python', 'PYTHON',
+                                'noinst');
   return if ! @pyfiles;
 
   require_variables ($pyfiles[0][0], "Python sources seen", TRUE, 'PYTHON');
@@ -4027,11 +3937,11 @@ sub handle_python
 }
 
 # Handle Java.
-sub handle_java
+sub handle_java ()
 {
-    my @sourcelist = &am_install_var ('-candist',
-                                     'java', 'JAVA',
-                                     'noinst', 'check');
+    my @sourcelist = am_install_var ('-candist',
+                                     'java', 'JAVA',
+                                     'noinst', 'check');
     return if ! @sourcelist;
 
     my @prefixes = am_primary_prefixes ('JAVA', 1,
@@ -4071,7 +3981,7 @@ sub handle_java
 
 
 # Handle some of the minor options.
-sub handle_minor_options
+sub handle_minor_options ()
 {
   if (option 'readme-alpha')
     {
@@ -4096,8 +4006,8 @@ sub handle_minor_options
 ################################################################
 
 # ($OUTPUT, @INPUTS)
-# &split_config_file_spec ($SPEC)
-# -------------------------------
+# split_config_file_spec ($SPEC)
+# ------------------------------
 # Decode the Autoconf syntax for config files (files, headers, links
 # etc.).
 sub split_config_file_spec ($)
@@ -4134,8 +4044,8 @@ sub locate_am (@)
 
 my %make_list;
 
-# &scan_autoconf_config_files ($WHERE, $CONFIG-FILES)
-# ---------------------------------------------------
+# scan_autoconf_config_files ($WHERE, $CONFIG-FILES)
+# --------------------------------------------------
 # Study $CONFIG-FILES which is the first argument to AC_CONFIG_FILES
 # (or AC_OUTPUT).
 sub scan_autoconf_config_files ($$)
@@ -4151,7 +4061,7 @@ sub scan_autoconf_config_files ($$)
       # Handle $local:$input syntax.
       my ($local, @rest) = split (/:/);
       @rest = ("$local.in",) unless @rest;
-      # Keep in sync with 'conffile-leading-dot.test'.
+      # Keep in sync with test 'conffile-leading-dot.sh'.
       msg ('unsupported', $where,
            "omit leading './' from config file names such as '$local';"
            . "\nremake rules might be subtly broken otherwise")
@@ -4176,8 +4086,8 @@ sub scan_autoconf_config_files ($$)
 }
 
 
-# &scan_autoconf_traces ($FILENAME)
-# ---------------------------------
+# scan_autoconf_traces ($FILENAME)
+# --------------------------------
 sub scan_autoconf_traces ($)
 {
   my ($filename) = @_;
@@ -4207,7 +4117,6 @@ sub scan_autoconf_traces ($)
                AM_GNU_GETTEXT_INTL_SUBDIR => 0,
                AM_INIT_AUTOMAKE => 0,
                AM_PROG_AR => 0,
-               AM_PROG_CC_C_O => 0,
                _AM_SUBST_NOTMAKE => 1,
                _AM_COND_IF => 1,
                _AM_COND_ELSE => 1,
@@ -4383,7 +4292,7 @@ sub scan_autoconf_traces ($)
            {
               msg 'obsolete', $where, <<'EOF';
 AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated.  For more 
info, see:
-http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_INIT_AUTOMAKE-invocation
+http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_005fINIT_005fAUTOMAKE-invocation
 EOF
              $package_version = $args[2];
              $package_version_location = $where;
@@ -4399,10 +4308,6 @@ EOF
        {
          $seen_ar = $where;
        }
-      elsif ($macro eq 'AM_PROG_CC_C_O')
-       {
-         $seen_cc_c_o = $where;
-       }
       elsif ($macro eq '_AM_COND_IF')
         {
          cond_stack_if ('', $args[1], $where);
@@ -4473,7 +4378,7 @@ EOF
 }
 
 
-# &scan_autoconf_files ()
+# scan_autoconf_files ()
 # -----------------------
 # Scan it (and possibly 'aclocal.m4') for interesting things.
 # We must scan aclocal.m4 because there might be AC_SUBSTs and such there.
@@ -4558,7 +4463,7 @@ sub scan_autoconf_files ()
 ################################################################
 
 # Do any extra checking for GNU standards.
-sub check_gnu_standards
+sub check_gnu_standards ()
 {
   if ($relative_dir eq '.')
     {
@@ -4590,7 +4495,7 @@ sub check_gnu_standards
 }
 
 # Do any extra checking for GNITS standards.
-sub check_gnits_standards
+sub check_gnits_standards ()
 {
   if ($relative_dir eq '.')
     {
@@ -4609,52 +4514,19 @@ sub check_gnits_standards
 # Note that the calls to these functions are computed, so don't bother
 # searching for their precise names in the source.
 
-# Rewrite a single C source file.
-sub lang_c_rewrite
-{
-  my ($directory, $base, $ext, $obj, $have_per_exec_flags, $var) = @_;
-
-  # libtool is always able to put the object at the proper place, so we
-  # do not have to require AM_PROG_CC_C_O when building '.lo' files.
-  if (! $seen_cc_c_o && $obj ne '.lo')
-    {
-      if ($directory && $directory ne '.')
-        {
-          msg_var ('portability', $var,
-                   "compiling '$directory/$base.c' in subdir requires"
-                   . " 'AM_PROG_CC_C_O' in '$configure_ac'",
-                   uniq_scope => US_GLOBAL,
-                   uniq_part => 'AM_PROG_CC_C_O subdir');
-        }
-      elsif ($have_per_exec_flags)
-        {
-           msg_var ('portability', $var,
-                    "compiling '$base.c' with per-target flags requires"
-                    . " 'AM_PROG_CC_C_O' in '$configure_ac'",
-                    uniq_scope => US_GLOBAL,
-                    uniq_part => 'AM_PROG_CC_C_O per-target');
-       }
-    }
-  # Not a useless use of return: the caller of this subroutine will
-  # behave differently if a value is actually returned, and since perl
-  # returns the value of the last expressions seen by default, we
-  # need to explicitly return and undefined value.
-  return undef;
-}
-
 # Header files are simply ignored.
 sub lang_header_ignore { 1; }
 
 # Vala '.vapi' are a kind of header files as well, and should
 # not be processed into compilation rules.
- sub lang_vala_ignore
+sub lang_vala_ignore ($$$)
 {
     my ($directory, $base, $ext) = @_;
     return ($ext =~ m/\.vapi$/ ? 1 : 0);
 }
 
 # Rewrite a single Vala source file.
-sub lang_vala_rewrite
+sub lang_vala_rewrite ($$$)
 {
     my ($directory, $base, $ext) = @_;
     $ext =~ s/vala$/c/;
@@ -4662,22 +4534,28 @@ sub lang_vala_rewrite
 }
 
 # Rewrite a single yacc/yacc++ file.
-sub lang_yacc_rewrite
+sub lang_yacc_rewrite ($$$)
 {
     my ($directory, $base, $ext) = @_;
     $ext =~ tr/y/c/;
     return $ext;
 }
-sub lang_yaccxx_rewrite { lang_yacc_rewrite (@_); };
+sub lang_yaccxx_rewrite ($$$)
+{
+  lang_yacc_rewrite (shift, shift, shift);
+}
 
 # Rewrite a single lex/lex++ file.
-sub lang_lex_rewrite
+sub lang_lex_rewrite ($$$)
 {
     my ($directory, $base, $ext) = @_;
     $ext =~ tr/l/c/;
     return $ext;
 }
-sub lang_lexxx_rewrite { lang_lex_rewrite (@_); };
+sub lang_lexxx_rewrite ($$$)
+{
+  lang_lex_rewrite (shift, shift, shift);
+}
 
 # The lang_X_finish functions are called after all source file
 # processing is done.  Each should handle defining rules for the
@@ -4779,7 +4657,7 @@ sub lang_vala_finish_target ($$)
 # Add output rules to invoke valac and create stamp file as a witness
 # to handle multiple outputs. This function is called after all source
 # file processing is done.
-sub lang_vala_finish
+sub lang_vala_finish ()
 {
   my ($self) = @_;
   my @names =
@@ -4798,7 +4676,7 @@ sub lang_vala_finish
 # The built .c files should be cleaned only on maintainer-clean
 # as the .c files are distributed. This function is called for each
 # .vala source file.
-sub lang_vala_target_hook
+sub lang_vala_target_hook ($$$$%)
 {
   my ($self, $aggregate, $output, $input, %transform) = @_;
 
@@ -4807,7 +4685,7 @@ sub lang_vala_target_hook
 
 # This is a yacc helper which is called whenever we have decided to
 # compile a yacc file.
-sub lang_yacc_target_hook
+sub lang_yacc_target_hook ($$$$%)
 {
     my ($self, $aggregate, $output, $input, %transform) = @_;
 
@@ -4866,7 +4744,7 @@ sub lang_yacc_target_hook
              . "address@hidden test ! -f \$@; then \$(MAKE) $output; else :; 
fi\n";
          }
        # Distribute the generated file, unless its .y source was
-       # listed in a nodist_ variable.  (&handle_source_transform
+       # listed in a nodist_ variable.  (handle_source_transform()
        # will set DIST_SOURCE.)
        push_dist_common ($header)
          if $transform{'DIST_SOURCE'};
@@ -4883,7 +4761,7 @@ sub lang_yacc_target_hook
 
 # This is a lex helper which is called whenever we have decided to
 # compile a lex file.
-sub lang_lex_target_hook
+sub lang_lex_target_hook ($$$$%)
 {
     my ($self, $aggregate, $output, $input, %transform) = @_;
     # The GNU rules say that yacc/lex output files should be removed
@@ -4893,7 +4771,7 @@ sub lang_lex_target_hook
     $clean_files{$output} = $transform{'DIST_SOURCE'} ? MAINTAINER_CLEAN : 
CLEAN;
 }
 
-sub lang_yacc_lex_finish
+sub lang_yacc_lex_finish ()
 {
   return if defined $language_scratch{'lex-yacc-done'};
   $language_scratch{'lex-yacc-done'} = 1;
@@ -4907,7 +4785,7 @@ sub lang_yacc_lex_finish
 # precedence.  This is lame, but something has to have global
 # knowledge in order to eliminate the conflict.  Add more linkers as
 # required.
-sub resolve_linker
+sub resolve_linker (%)
 {
     my (%linkers) = @_;
 
@@ -4919,7 +4797,7 @@ sub resolve_linker
 }
 
 # Called to indicate that an extension was used.
-sub saw_extension
+sub saw_extension ($)
 {
     my ($ext) = @_;
     $extension_seen{$ext} = 1;
@@ -4945,7 +4823,7 @@ sub register_language (%)
   $option{'nodist_specific'} = 0
     unless defined $option{'nodist_specific'};
 
-  my $lang = new Language (%option);
+  my $lang = new Automake::Language (%option);
 
   # Fill indexes.
   $extension_map{$_} = $lang->name foreach @{$lang->extensions};
@@ -4970,9 +4848,9 @@ sub register_language (%)
 ################################################################
 
 # Pretty-print something and append to output_rules.
-sub pretty_print_rule
+sub pretty_print_rule ($$@)
 {
-    $output_rules .= &makefile_wrap (@_);
+    $output_rules .= makefile_wrap (shift, shift, @_);
 }
 
 
@@ -5110,8 +4988,8 @@ sub cond_stack_endif ($$$)
 ## ------------------------ ##
 
 
-# &define_cond_variable ($VAR, $COND, $WHERE, @VALUE)
-# -----------------------------------------------------
+# define_cond_variable ($VAR, $COND, $WHERE, @VALUE)
+# ----------------------------------------------------
 # Like define_variable, but the value is a list, and the variable may
 # be defined conditionally.  The second argument is the condition
 # under which the value should be defined; this should be the empty
@@ -5179,13 +5057,13 @@ sub define_compiler_variable ($)
     my $libtool_tag = '';
     $libtool_tag = '--tag=' . $lang->libtool_tag . ' '
       if $lang->libtool_tag && exists $libtool_tags{$lang->libtool_tag};
-    &define_variable ($var, INTERNAL, $value);
+    define_variable ($var, INTERNAL, $value);
     if (var ('LIBTOOL'))
       {
        my $verbose = define_verbose_libtool ();
-       &define_variable ("LT$var", INTERNAL,
-                         "\$(LIBTOOL) $verbose $libtool_tag\$(AM_LIBTOOLFLAGS) 
"
-                         . "\$(LIBTOOLFLAGS) --mode=compile $value");
+       define_variable ("LT$var", INTERNAL,
+                        "\$(LIBTOOL) $verbose $libtool_tag\$(AM_LIBTOOLFLAGS) "
+                        . "\$(LIBTOOLFLAGS) --mode=compile $value");
       }
     define_verbose_tagvar ($lang->ccer || 'GEN');
 }
@@ -5202,7 +5080,7 @@ sub define_linker_variable ($)
     $libtool_tag = '--tag=' . $lang->libtool_tag . ' '
       if $lang->libtool_tag && exists $libtool_tags{$lang->libtool_tag};
     # CCLD = $(CC).
-    &define_variable ($lang->lder, INTERNAL, $lang->ld);
+    define_variable ($lang->lder, INTERNAL, $lang->ld);
     # CCLINK = $(CCLD) blah blah...
     my $link = '';
     if (var ('LIBTOOL'))
@@ -5266,8 +5144,8 @@ sub define_per_target_linker_variable ($$)
 
 ################################################################
 
-# &check_trailing_slash ($WHERE, $LINE)
-# -------------------------------------
+# check_trailing_slash ($WHERE, $LINE)
+# ------------------------------------
 # Return 1 iff $LINE ends with a slash.
 # Might modify $LINE.
 sub check_trailing_slash ($\$)
@@ -5285,8 +5163,8 @@ sub check_trailing_slash ($\$)
 }
 
 
-# &read_am_file ($AMFILE, $WHERE)
-# -------------------------------
+# read_am_file ($AMFILE, $WHERE)
+# ------------------------------
 # Read Makefile.am and set up %contents.  Simultaneously copy lines
 # from Makefile.am into $output_trailer, or define variables as
 # appropriate.  NOTE we put rules in the trailer section.  We want
@@ -5496,7 +5374,7 @@ sub read_am_file ($$)
                $path = $relative_dir . "/" . $path if $relative_dir ne '.';
              }
            $where->push_context ("'$path' included from here");
-           &read_am_file ($path, $where);
+           read_am_file ($path, $where);
            $where->pop_context;
        }
        else
@@ -5526,11 +5404,11 @@ sub read_am_file ($$)
 # ----------------------------
 # A helper for read_main_am_file which initializes configure variables
 # and variables from header-vars.am.
-sub define_standard_variables
+sub define_standard_variables ()
 {
   foreach my $var (sort keys %configure_vars)
     {
-      &define_configure_variable ($var);
+      define_configure_variable ($var);
     }
   $output_vars .= verbatim ('header-vars');
 }
@@ -5553,10 +5431,10 @@ sub read_main_am_file ($$)
 
     # We want to predefine as many variables as possible.  This lets
     # the user set them with '+=' in Makefile.am.
-    &define_standard_variables;
+    define_standard_variables;
 
     # Read user file, which might override some of our values.
-    &read_am_file ($amfile, new Automake::Location);
+    read_am_file ($amfile, new Automake::Location);
 }
 
 
@@ -5564,10 +5442,10 @@ sub read_main_am_file ($$)
 ################################################################
 
 # $FLATTENED
-# &flatten ($STRING)
-# ------------------
+# flatten ($STRING)
+# -----------------
 # Flatten the $STRING and return the result.
-sub flatten
+sub flatten ($)
 {
   $_ = shift;
 
@@ -5727,8 +5605,8 @@ sub verbatim ($)
 }
 
 # @PARAGRAPHS
-# &make_paragraphs ($MAKEFILE, [%TRANSFORM])
-# ------------------------------------------
+# make_paragraphs ($MAKEFILE, [%TRANSFORM])
+# -----------------------------------------
 # Load a $MAKEFILE, apply the %TRANSFORM, and return it as a list of
 # paragraphs.
 sub make_paragraphs ($%)
@@ -5791,8 +5669,8 @@ sub make_paragraphs ($%)
 
 
 # ($COMMENT, $VARIABLES, $RULES)
-# &file_contents_internal ($IS_AM, $FILE, $WHERE, [%TRANSFORM])
-# -------------------------------------------------------------
+# file_contents_internal ($IS_AM, $FILE, $WHERE, [%TRANSFORM])
+# ------------------------------------------------------------
 # Return contents of a file from $libdir/am, automatically skipping
 # macros or rules which are already known. $IS_AM iff the caller is
 # reading an Automake file (as opposed to the user's Makefile.am).
@@ -5884,7 +5762,7 @@ sub file_contents_internal ($$$%)
          my ($targets, $dependencies) = ($1, $2);
          # Remove the escaped new lines.
          # I don't know why, but I have to use a tmp $flat_deps.
-         my $flat_deps = &flatten ($dependencies);
+         my $flat_deps = flatten ($dependencies);
          my @deps = split (' ', $flat_deps);
 
          foreach (split (' ', $targets))
@@ -5908,7 +5786,7 @@ sub file_contents_internal ($$$%)
              # Output only if not in FALSE.
              if (defined $dependencies{$_} && $cond != FALSE)
                {
-                 &depend ($_, @deps);
+                 depend ($_, @deps);
                  register_action ($_, $actions);
                }
              else
@@ -5977,8 +5855,8 @@ sub file_contents_internal ($$$%)
 
 
 # $CONTENTS
-# &file_contents ($BASENAME, $WHERE, [%TRANSFORM])
-# ------------------------------------------------
+# file_contents ($BASENAME, $WHERE, [%TRANSFORM])
+# -----------------------------------------------
 # Return contents of a file from $libdir/am, automatically skipping
 # macros or rules which are already known.
 sub file_contents ($$%)
@@ -5992,8 +5870,8 @@ sub file_contents ($$%)
 
 
 # @PREFIX
-# &am_primary_prefixes ($PRIMARY, $CAN_DIST, @PREFIXES)
-# -----------------------------------------------------
+# am_primary_prefixes ($PRIMARY, $CAN_DIST, @PREFIXES)
+# ----------------------------------------------------
 # Find all variable prefixes that are used for install directories.  A
 # prefix 'zar' qualifies iff:
 #
@@ -6082,7 +5960,7 @@ sub am_primary_prefixes ($$@)
 # up into multiple functions.
 #
 # Usage is: am_install_var (OPTION..., file, HOW, where...)
-sub am_install_var
+sub am_install_var (@)
 {
   my (@args) = @_;
 
@@ -6186,11 +6064,12 @@ sub am_install_var
            }
          else
            {
-             # Strip any $(EXEEXT) suffix the user might have added, or this
-             # will confuse &handle_source_transform and 
&check_canonical_spelling.
+             # Strip any $(EXEEXT) suffix the user might have added,
+              # or this will confuse handle_source_transform() and
+              # check_canonical_spelling().
              # We'll add $(EXEEXT) back later anyway.
-             # Do it here rather than in handle_programs so the uniquifying at 
the
-             # end of this function works.
+             # Do it here rather than in handle_programs so the
+              # uniquifying at the end of this function works.
              ${$locvals}[1] =~ s/\$\(EXEEXT\)$//
                if $primary eq 'PROGRAMS';
 
@@ -6234,18 +6113,17 @@ sub am_install_var
 
       # Singular form of $PRIMARY.
       (my $one_primary = $primary) =~ s/S$//;
-      $output_rules .= &file_contents ($file, $where,
-                                      PRIMARY     => $primary,
-                                      ONE_PRIMARY => $one_primary,
-                                      DIR         => $X,
-                                      NDIR        => $nodir_name,
-                                      BASE        => $strip_subdir,
-
-                                      EXEC      => $exec_p,
-                                      INSTALL   => $install_p,
-                                      DIST      => $dist_p,
-                                      DISTVAR   => $distvar,
-                                      'CK-OPTS' => $check_options_p);
+      $output_rules .= file_contents ($file, $where,
+                                      PRIMARY     => $primary,
+                                      ONE_PRIMARY => $one_primary,
+                                      DIR         => $X,
+                                      NDIR        => $nodir_name,
+                                      BASE        => $strip_subdir,
+                                      EXEC        => $exec_p,
+                                      INSTALL     => $install_p,
+                                      DIST        => $dist_p,
+                                      DISTVAR     => $distvar,
+                                      'CK-OPTS'   => $check_options_p);
     }
 
   # The JAVA variable is used as the name of the Java interpreter.
@@ -6288,7 +6166,7 @@ sub am_install_var
 my %make_dirs = ();
 my $make_dirs_set = 0;
 
-sub is_make_dir
+sub is_make_dir ($)
 {
     my ($dir) = @_;
     if (! $make_dirs_set)
@@ -6339,9 +6217,10 @@ sub locate_aux_dir ()
 }
 
 
-# &push_required_file ($DIR, $FILE, $FULLFILE)
-# --------------------------------------------------
-sub push_required_file
+# push_required_file ($DIR, $FILE, $FULLFILE)
+# -------------------------------------------
+# Push the given file onto DIST_COMMON.
+sub push_required_file ($$$)
 {
   my ($dir, $file, $fullfile) = @_;
 
@@ -6354,7 +6233,7 @@ sub push_required_file
     }
   # This is needed to allow a construct in a non-top-level Makefile.am
   # to require a file in the build-aux directory (see at least the test
-  # script 'test-driver-is-distributed.test').  This is related to the
+  # script 'test-driver-is-distributed.sh').  This is related to the
   # automake bug#9546.  Note that the use of $config_aux_dir instead
   # of $am_config_aux_dir here is deliberate and necessary.
   elsif ($dir eq $config_aux_dir)
@@ -6375,7 +6254,7 @@ sub push_required_file
       $am_config_libobj_dir =~ s|/*$||;
       push_dist_common ("$am_config_libobj_dir/$file");
     }
-  elsif ($relative_dir eq '.' && ! &is_make_dir ($dir))
+  elsif ($relative_dir eq '.' && ! is_make_dir ($dir))
     {
       # If we are doing the topmost directory, and the file is in a
       # subdir which does not have a Makefile, then we distribute it
@@ -6426,8 +6305,8 @@ sub push_required_file
 # than once.
 my %required_file_not_found = ();
 
-# &required_file_check_or_copy ($WHERE, $DIRECTORY, $FILE)
-# --------------------------------------------------------
+# required_file_check_or_copy ($WHERE, $DIRECTORY, $FILE)
+# -------------------------------------------------------
 # Verify that the file must exist in $DIRECTORY, or install it.
 sub required_file_check_or_copy ($$$)
 {
@@ -6534,8 +6413,8 @@ sub required_file_check_or_copy ($$$)
 }
 
 
-# &require_file_internal ($WHERE, $MYSTRICT, $DIRECTORY, @FILES)
-# --------------------------------------------------------------
+# require_file_internal ($WHERE, $MYSTRICT, $DIRECTORY, @FILES)
+# -------------------------------------------------------------
 # Verify that the file must exist in $DIRECTORY, or install it.
 # $MYSTRICT is the strictness level at which this file becomes required.
 sub require_file_internal ($$$@)
@@ -6552,16 +6431,16 @@ sub require_file_internal ($$$@)
     }
 }
 
-# &require_file ($WHERE, $MYSTRICT, @FILES)
-# -----------------------------------------
+# require_file ($WHERE, $MYSTRICT, @FILES)
+# ----------------------------------------
 sub require_file ($$@)
 {
     my ($where, $mystrict, @files) = @_;
     require_file_internal ($where, $mystrict, $relative_dir, @files);
 }
 
-# &require_file_with_macro ($COND, $MACRO, $MYSTRICT, @FILES)
-# -----------------------------------------------------------
+# require_file_with_macro ($COND, $MACRO, $MYSTRICT, @FILES)
+# ----------------------------------------------------------
 sub require_file_with_macro ($$$@)
 {
     my ($cond, $macro, $mystrict, @files) = @_;
@@ -6569,8 +6448,8 @@ sub require_file_with_macro ($$$@)
     require_file ($macro->rdef ($cond)->location, $mystrict, @files);
 }
 
-# &require_libsource_with_macro ($COND, $MACRO, $MYSTRICT, @FILES)
-# ----------------------------------------------------------------
+# require_libsource_with_macro ($COND, $MACRO, $MYSTRICT, @FILES)
+# ---------------------------------------------------------------
 # Require an AC_LIBSOURCEd file.  If AC_CONFIG_LIBOBJ_DIR was called, it
 # must be in that directory.  Otherwise expect it in the current directory.
 sub require_libsource_with_macro ($$$@)
@@ -6588,8 +6467,8 @@ sub require_libsource_with_macro ($$$@)
       }
 }
 
-# &require_conf_file ($WHERE, $MYSTRICT, @FILES)
-# ----------------------------------------------
+# require_conf_file ($WHERE, $MYSTRICT, @FILES)
+# ---------------------------------------------
 # Looks in configuration path, as specified by AC_CONFIG_AUX_DIR.
 sub require_conf_file ($$@)
 {
@@ -6598,8 +6477,8 @@ sub require_conf_file ($$@)
 }
 
 
-# &require_conf_file_with_macro ($COND, $MACRO, $MYSTRICT, @FILES)
-# ----------------------------------------------------------------
+# require_conf_file_with_macro ($COND, $MACRO, $MYSTRICT, @FILES)
+# ---------------------------------------------------------------
 sub require_conf_file_with_macro ($$$@)
 {
     my ($cond, $macro, $mystrict, @files) = @_;
@@ -6609,8 +6488,10 @@ sub require_conf_file_with_macro ($$$@)
 
 ################################################################
 
+# require_build_directory ($DIRECTORY)
+# ------------------------------------
 # Push a list of files onto @dist_common.
-sub push_dist_common
+sub push_dist_common (@)
 {
   prog_error "push_dist_common run after handle_dist"
     if $handle_dist_run;
@@ -6638,8 +6519,8 @@ sub generate_makefile ($$)
   # $OUTPUT is encoded.  If it contains a ":" then the first element
   # is the real output file, and all remaining elements are input
   # files.  We don't scan or otherwise deal with these input files,
-  # other than to mark them as dependencies.  See
-  # &scan_autoconf_files for details.
+  # other than to mark them as dependencies.  See the subroutine
+  # 'scan_autoconf_files' for details.
   my ($makefile, @inputs) = split (/:/, $output_files{$makefile_in});
 
   $relative_dir = dirname ($makefile);
@@ -6723,9 +6604,9 @@ sub generate_makefile ($$)
 
   handle_silent;
 
-  # These must be run after all the sources are scanned.  They
-  # use variables defined by &handle_libraries, &handle_ltlibraries,
-  # or &handle_programs.
+  # These must be run after all the sources are scanned.  They use
+  # variables defined by handle_libraries(), handle_ltlibraries(),
+  # or handle_programs().
   handle_compile;
   handle_languages;
   handle_libtool;
@@ -6848,6 +6729,9 @@ sub generate_makefile ($$)
 # Helper function for usage().
 sub print_autodist_files (@)
 {
+  # NOTE: we need to call our 'uniq' function with the leading '&'
+  # here, because otherwise perl complains that "Unquoted string
+  # 'uniq' may clash with future reserved word".
   my @lcomm = sort (&uniq (@_));
 
   my @four;
@@ -6940,8 +6824,8 @@ General help using GNU software: 
<http://www.gnu.org/gethelp/>.
 }
 
 
-# &version ()
-# -----------
+# version ()
+# ----------
 # Print version information
 sub version ()
 {
@@ -6995,7 +6879,7 @@ sub parse_arguments ()
   set_global_option ('no-dependencies', $cli_where) if $ignore_deps;
   for my $warning (@warnings)
     {
-      &parse_warnings ('-W', $warning);
+      parse_warnings ('-W', $warning);
     }
 
   return unless @ARGV;
diff --git a/bootstrap.sh b/bootstrap.sh
index 5801436..1a7029b 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -39,7 +39,7 @@ PACKAGE=automake
 datadir=.
 # This should be automatically updated by the 'update-copyright'
 # rule of our Makefile.
-RELEASE_YEAR=2012
+RELEASE_YEAR=2013
 
 # Read the rule for calculating APIVERSION and execute it.
 apiver_cmd=`sed -ne 's/\[\[/[/g;s/\]\]/]/g;/^APIVERSION=/p' configure.ac`
@@ -88,14 +88,15 @@ dosubst ()
 dosubst automake-$APIVERSION/Automake/Config.in \
         automake-$APIVERSION/Automake/Config.pm
 
-# Create temporary replacement for aclocal.
-dosubst aclocal.in aclocal.tmp
-
 # Overwrite amversion.m4.
 dosubst m4/amversion.in m4/amversion.m4
 
-# Create temporary replacement for automake.
-dosubst automake.in automake.tmp
+# Create temporary replacement for aclocal and automake.
+for p in aclocal automake; do
+  dosubst $p.in $p.tmp
+  $PERL -w lib/gen-perl-protos $p.tmp > $p.tmp2
+  mv -f $p.tmp2 $p.tmp
+done
 
 # Create required makefile snippets.
 $PERL ./gen-testsuite-part > testsuite-autodeps.tmp
diff --git a/configure.ac b/configure.ac
index f05d392..0d07f03 100644
--- a/configure.ac
+++ b/configure.ac
@@ -44,7 +44,7 @@ AM_INIT_AUTOMAKE([ng -Wall -Werror filename-length-max=99
 
 ## Keep this on a line of its own, since it must be found and processed
 ## by the 'update-copyright' rule in our Makefile.
-RELEASE_YEAR=2012
+RELEASE_YEAR=2013
 AC_SUBST([RELEASE_YEAR])
 
 # The API version is the base version.  We must guarantee
diff --git a/doc/automake-ng.texi b/doc/automake-ng.texi
index ecea801..71415f6 100644
--- a/doc/automake-ng.texi
+++ b/doc/automake-ng.texi
@@ -178,6 +178,7 @@ Scanning @file{configure.ac}, using @command{aclocal}
 * Optional::                    Other things Automake recognizes
 * aclocal Invocation::          Auto-generating aclocal.m4
 * Macros::                      Autoconf macros supplied with Automake
+* Obsolete Macros::             Obsolete macros you should no longer use
 
 Auto-generating aclocal.m4
 
@@ -321,7 +322,7 @@ Support for test suites
 Simple Tests
 
 * Scripts-based Testsuites::    Automake-specific concepts and terminology
-* Serial Test Harness::         Older (and obsolescent) serial test harness
+* Serial Test Harness::         Older (and discouraged) serial test harness
 * Parallel Test Harness::       Generic concurrent test harness
 
 Using the TAP test protocol
@@ -1502,6 +1503,7 @@ command as follows:
 ~/amhello % @kbd{autoreconf --install}
 configure.ac: installing './install-sh'
 configure.ac: installing './missing'
+configure.ac: installing './compile'
 src/Makefile.am: installing './depcomp'
 @end example
 
@@ -3857,6 +3859,7 @@ Automake ships with several Autoconf macros that you can 
use from your
 @menu
 * Public Macros::               Macros that you can use.
 * Private Macros::              Macros that you should not use.
+* Obsolete Macros::             Obsolete macros you should no longer use
 @end menu
 
 @c consider generating the following subsections automatically from m4 files.
@@ -3925,9 +3928,9 @@ explicitly).
 @opindex no-define
 By default this macro @code{AC_DEFINE}'s @code{PACKAGE} and
 @code{VERSION}.  This can be avoided by passing the @option{no-define}
-option:
+option (@pxref{List of Automake options}):
 @example
-AM_INIT_AUTOMAKE([gnits 1.11.6 no-define parallel-tests])
+AM_INIT_AUTOMAKE([no-define ...])
 @end example
 
 @item AM_PATH_LISPDIR
@@ -3969,10 +3972,9 @@ choose the assembler for you (by default the C compiler) 
and set
 @item AM_PROG_CC_C_O
 @acindex AM_PROG_CC_C_O
 @acindex AC_PROG_CC_C_O
-This is like @code{AC_PROG_CC_C_O}, but it generates its results in
-the manner required by Automake.  You must use this instead of
address@hidden when you need this functionality, that is, when
-using per-target flags or subdir objects with C sources.
+This is an @emph{obsolete wrapper} around @code{AC_PROG_CC_C_O}.
+New code needs not use this macro.  It might be deprecated and
address@hidden in future Automake versions}.
 
 @item AM_PROG_LEX
 @acindex AM_PROG_LEX
@@ -4027,6 +4029,46 @@ define @code{WITH_DMALLOC} and add @option{-ldmalloc} to 
@code{LIBS}.
 @end table
 
 
address@hidden Obsolete Macros
address@hidden Obsolete macros you should no longer use
address@hidden obsolete macros
+
+Although using some of the following macros was required in past
+releases, you should not use any of them in new code.  Also, most
+of these macros will probably be @emph{removed in some future Automake
+version}, so you should consider updating your @file{configure.ac}
+to avoid problems in the future.
+
address@hidden @code
+
address@hidden AM_PROG_CC_C_O
address@hidden AM_PROG_CC_C_O
address@hidden AC_PROG_CC_C_O
+This is an @emph{obsolete wrapper} around @code{AC_PROG_CC_C_O}.  New
+code needs not to use this macro.  It will be deprecated, and then
+removed, in future Automake versions.
+
address@hidden AM_PROG_MKDIR_P
address@hidden AM_PROG_MKDIR_P
address@hidden @code{mkdir -p}, macro check
address@hidden MKDIR_P
address@hidden mkdir_p
+
+From Automake 1.8 to 1.9.6 this macro used to define the output
+variable @code{mkdir_p} to one of @code{mkdir -p}, @code{install-sh
+-d}, or @code{mkinstalldirs}.
+
+Nowadays Autoconf provides a similar functionality with
address@hidden (@pxref{Particular Programs, , Particular
+Program Checks, autoconf, The Autoconf Manual}), however this defines
+the output variable @code{MKDIR_P} instead.  In case you are still
+using the @code{AM_PROG_MKDIR_P} macro in your @file{configure.ac},
+or its provided variable @code{$(mkdir_p)} in your @file{Makefile.am},
+you are advised to switch ASAP to the more modern Autoconf-provided
+interface instead.
+
address@hidden table
+
 @node Private Macros
 @subsection Private Macros
 
@@ -5731,9 +5773,7 @@ different name for the intermediate object files.  
Ordinarily a file
 like @file{sample.c} will be compiled to produce @file{sample.o}.
 However, if the program's @code{_CFLAGS} variable is set, then the
 object file will be named, for instance, @file{maude-sample.o}.  (See
-also @ref{Renamed Objects}.)  The use of per-target compilation flags
-with C sources requires that the macro @code{AM_PROG_CC_C_O} be called
-from @file{configure.ac}.
+also @ref{Renamed Objects}).
 
 In compilations with per-target flags, the ordinary @samp{AM_} form of
 the flags variable is @emph{not} automatically included in the
@@ -6150,10 +6190,10 @@ intended for the @file{Makefile.am} author.
 @cindex Multiple @command{lex} lexers
 @cindex @command{lex}, multiple lexers
 
-When @command{lex} or @command{yacc} sources are used, @code{automake
--i} automatically installs an auxiliary program called
address@hidden in your package (@pxref{Auxiliary Programs}).  This
-program is used by the build rules to rename the output of these
+When @command{lex} or @command{yacc} sources are used, @code{automake -a}
+automatically installs an auxiliary program called @command{ylwrap} in
+your package (@pxref{Auxiliary Programs}).
+This program is used by the build rules to rename the output of these
 tools, and makes it possible to include multiple @command{yacc} (or
 @command{lex}) source files in a single directory.  (This is necessary
 because yacc's output file name is fixed, and a parallel make could
@@ -7719,9 +7759,9 @@ Currently Automake provides support for Texinfo and man 
pages.
 If the current directory contains Texinfo source, you must declare it
 with the @code{TEXINFOS} primary.  Generally Texinfo files are converted
 into info, and thus the @code{info_TEXINFOS} variable is most commonly used
-here.  Any Texinfo source file must end in the @file{.texi},
address@hidden, or @file{.texinfo} extension.  We recommend @file{.texi}
-for new manuals.
+here.  Any Texinfo source file should have the @file{.texi} extension.
+Automake also accepts @file{.txi} or @file{.texinfo} extensions, but their
+use is discouraged now, and will elicit runtime warnings.
 
 Automake generates rules to build @file{.info}, @file{.dvi},
 @file{.ps}, @file{.pdf} and @file{.html} files from your Texinfo
@@ -8620,7 +8660,6 @@ Generate a zip archive of the distribution.
 
 @end table
 
-
 @node Tests
 @chapter Support for test suites
 
@@ -8723,7 +8762,7 @@ terminology)?
 
 @menu
 * Scripts-based Testsuites::    Automake-specific concepts and terminology
-* Serial Test Harness::         Older (and obsolescent) serial test harness
+* Serial Test Harness::         Older (and discouraged) serial test harness
 * Parallel Test Harness::       Generic concurrent test harness
 @end menu
 
@@ -8896,12 +8935,16 @@ by the tests, not the tests themselves.  Of course you 
can set
 @code{TESTS = $(check_PROGRAMS)} if all your programs are test cases.
 
 @node Serial Test Harness
address@hidden Older (and obsolescent) serial test harness
address@hidden Older (and discouraged) serial test harness
 @cindex @option{serial-tests}, Using
 
address@hidden harness is obsolescent}, and kept for backward-compatibility
-reasons only.  The user is strongly advised to just use the parallel test
-harness instead (@pxref{Parallel Test Harness}).
+First, note that today the use of this harness is strongly discouraged in
+favour of the parallel test harness (@pxref{Parallel Test Harness}).
+Still, there are @emph{few} situations when the advantages offered by
+the parallel harness are irrelevant, and when test concurrency can
+even cause tricky problems.  In those cases, it might make sense to
+still use the serial harness, for simplicity and reliability (we still
+suggest trying to give the parallel harness a shot though).
 
 The serial test harness is enabled by the Automake option
 @option{serial-tests}. It operates by simply running the tests serially,
@@ -8943,9 +8986,6 @@ files, concurrent execution of tests with @code{make -j}, 
specification
 of inter-test dependencies, lazy reruns of tests that have not completed
 in a prior run, and hard errors for exceptional failures.
 
-This harness is still somewhat experimental and may undergo changes in
-order to satisfy additional portability requirements.
-
 @anchor{Basics of test metadata}
 @vindex TEST_SUITE_LOG
 @vindex TESTS
diff --git a/lib/Automake/Language.pm b/lib/Automake/Language.pm
new file mode 100644
index 0000000..a678e1e
--- /dev/null
+++ b/lib/Automake/Language.pm
@@ -0,0 +1,122 @@
+# Copyright (C) 2013 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/>.
+
+package Automake::Language;
+
+use 5.006;
+use strict;
+
+use Class::Struct ();
+Class::Struct::struct (
+       # Short name of the language (c, f77...).
+       'name' => "\$",
+       # Nice name of the language (C, Fortran 77...).
+       'Name' => "\$",
+
+       # List of configure variables which must be defined.
+       'config_vars' => '@',
+
+       # 'pure' is '1' or ''.  A 'pure' language is one where, if
+       # all the files in a directory are of that language, then we
+       # do not require the C compiler or any code to call it.
+       'pure'   => "\$",
+
+       'autodep' => "\$",
+
+       # Name of the compiling variable (COMPILE).
+       'compiler'  => "\$",
+       # Content of the compiling variable.
+       'compile'  => "\$",
+       # Flag to require compilation without linking (-c).
+       'compile_flag' => "\$",
+       'extensions' => '@',
+       # A subroutine to compute a list of possible extensions of
+       # the product given the input extensions.
+       # (defaults to a subroutine which returns ('.$(OBJEXT)', '.lo'))
+       'output_extensions' => "\$",
+       # A list of flag variables used in 'compile'.
+       # (defaults to [])
+       'flags' => "@",
+
+       # Any tag to pass to libtool while compiling.
+       'libtool_tag' => "\$",
+
+       # The file to use when generating rules for this language.
+       # The default is 'depend2'.
+       'rule_file' => "\$",
+
+       # Name of the linking variable (LINK).
+       'linker' => "\$",
+       # Content of the linking variable.
+       'link' => "\$",
+
+       # Name of the compiler variable (CC).
+       'ccer' => "\$",
+
+       # Name of the linker variable (LD).
+       'lder' => "\$",
+       # Content of the linker variable ($(CC)).
+       'ld' => "\$",
+
+       # Flag to specify the output file (-o).
+       'output_flag' => "\$",
+       '_finish' => "\$",
+
+       # This is a subroutine which is called whenever we finally
+       # determine the context in which a source file will be
+       # compiled.
+       '_target_hook' => "\$",
+
+       # If TRUE, nodist_ sources will be compiled using specific rules
+       # (i.e. not inference rules).  The default is FALSE.
+       'nodist_specific' => "\$");
+
+
+sub finish ($)
+{
+  my ($self) = @_;
+  if (defined $self->_finish)
+    {
+      &{$self->_finish} (@_);
+    }
+}
+
+sub target_hook ($$$$%)
+{
+    my ($self) = @_;
+    if (defined $self->_target_hook)
+    {
+       $self->_target_hook->(@_);
+    }
+}
+
+1;
+
+### Setup "GNU" style for perl-mode and cperl-mode.
+## Local Variables:
+## perl-indent-level: 2
+## perl-continued-statement-offset: 2
+## perl-continued-brace-offset: 0
+## perl-brace-offset: 0
+## perl-brace-imaginary-offset: 0
+## perl-label-offset: -2
+## cperl-indent-level: 2
+## cperl-brace-offset: 0
+## cperl-continued-brace-offset: 0
+## cperl-label-offset: -2
+## cperl-extra-newline-before-brace: t
+## cperl-merge-trailing-else: nil
+## cperl-continued-statement-offset: 2
+## End:
diff --git a/lib/INSTALL b/lib/INSTALL
index 6e90e07..007e939 100644
--- a/lib/INSTALL
+++ b/lib/INSTALL
@@ -1,7 +1,7 @@
 Installation Instructions
 *************************
 
-Copyright (C) 1994-1996, 1999-2002, 2004-2012 Free Software Foundation,
+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
 Inc.
 
    Copying and distribution of this file, with or without modification,
diff --git a/lib/config.guess b/lib/config.guess
index 1804e9f..0aee604 100755
--- a/lib/config.guess
+++ b/lib/config.guess
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
 #   2011, 2012, 2013 Free Software Foundation, Inc.
 
-timestamp='2012-12-29'
+timestamp='2012-12-30'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -26,7 +26,7 @@ timestamp='2012-12-29'
 # program.  This Exception is an additional permission under section 7
 # of the GNU General Public License, version 3 ("GPLv3").
 #
-# Originally written by Per Bothner. 
+# Originally written by Per Bothner.
 #
 # You can get the latest version of this script from:
 # 
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
diff --git a/lib/config.sub b/lib/config.sub
index 802a224..707e9e2 100755
--- a/lib/config.sub
+++ b/lib/config.sub
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
 #   2011, 2012, 2013 Free Software Foundation, Inc.
 
-timestamp='2012-12-29'
+timestamp='2013-01-11'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -290,6 +290,7 @@ case $basic_machine in
        | mipsisa64r2 | mipsisa64r2el \
        | mipsisa64sb1 | mipsisa64sb1el \
        | mipsisa64sr71k | mipsisa64sr71kel \
+       | mipsr5900 | mipsr5900el \
        | mipstx39 | mipstx39el \
        | mn10200 | mn10300 \
        | moxie \
@@ -407,6 +408,7 @@ case $basic_machine in
        | mipsisa64r2-* | mipsisa64r2el-* \
        | mipsisa64sb1-* | mipsisa64sb1el-* \
        | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+       | mipsr5900-* | mipsr5900el-* \
        | mipstx39-* | mipstx39el-* \
        | mmix-* \
        | mt-* \
@@ -1354,7 +1356,7 @@ case $os in
        -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
              | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | 
-sunos[34]*\
              | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | 
-solaris* \
-             | -sym* | -kopensolaris* \
+             | -sym* | -kopensolaris* | -plan9* \
              | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
              | -aos* | -aros* \
              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
@@ -1500,9 +1502,6 @@ case $os in
        -aros*)
                os=-aros
                ;;
-       -kaos*)
-               os=-kaos
-               ;;
        -zvmoe)
                os=-zvmoe
                ;;
diff --git a/lib/gen-perl-protos b/lib/gen-perl-protos
new file mode 100755
index 0000000..9e73d8d
--- /dev/null
+++ b/lib/gen-perl-protos
@@ -0,0 +1,36 @@
+#!/usr/bin/env perl
+#
+# Copyright (C) 2013 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 3, 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/>.
+
+use warnings;
+use strict;
+
+my @lines = <>;
+my @protos = map { /^(sub \w+\s*\(.*\))/ ? ("$1;") : () } @lines;
+
+while (defined ($_ = shift @lines))
+  {
+    if (/^#!.* prototypes/i)
+      {
+        print "# BEGIN AUTOMATICALLY GENERATED PROTOTYPES\n";
+        print join ("\n", sort @protos) . "\n";
+        print "# END AUTOMATICALLY GENERATED PROTOTYPES\n";
+      }
+    else
+      {
+        print;
+      }
+  }
diff --git a/lib/gendocs_template b/lib/gendocs_template
index a62ad61..63fbe53 100644
--- a/lib/gendocs_template
+++ b/lib/gendocs_template
@@ -75,7 +75,7 @@ the FSF.<br />
 Please send broken links and other corrections or suggestions to
 <a href="mailto:%%EMAIL%%";>&lt;%%EMAIL%%&gt;</a>.</p>
 
-<p>Copyright &copy; 2012 Free Software Foundation, Inc.</p>
+<p>Copyright &copy; 2013 Free Software Foundation, Inc.</p>
 
 <p>Verbatim copying and distribution of this entire article are
 permitted worldwide, without royalty, in any medium, provided this
diff --git a/lib/gitlog-to-changelog b/lib/gitlog-to-changelog
index 5184edc..e02d34c 100755
--- a/lib/gitlog-to-changelog
+++ b/lib/gitlog-to-changelog
@@ -9,7 +9,7 @@ my $VERSION = '2012-07-29 06:11'; # UTC
 # If you change this file with Emacs, please let the write hook
 # do its job.  Otherwise, update this string manually.
 
-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
+# Copyright (C) 2008-2013 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
diff --git a/lib/gnupload b/lib/gnupload
index f6b999b..e329e83 100755
--- a/lib/gnupload
+++ b/lib/gnupload
@@ -3,7 +3,7 @@
 
 scriptversion=2012-12-11.16; # UTC
 
-# Copyright (C) 2004-2012 Free Software Foundation, Inc.
+# Copyright (C) 2004-2013 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
diff --git a/lib/texinfo.tex b/lib/texinfo.tex
index b5f3141..d64f45b 100644
--- a/lib/texinfo.tex
+++ b/lib/texinfo.tex
@@ -3,11 +3,11 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2012-11-08.11}
+\def\texinfoversion{2013-01-01.15}
 %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+% 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
 %
 % This texinfo.tex file is free software: you can redistribute it and/or
 % modify it under the terms of the GNU General Public License as
@@ -24,7 +24,8 @@
 %
 % As a special exception, when this file is read by TeX when processing
 % a Texinfo source document, you may use the result without
-% restriction.  (This has been our intent since Texinfo was invented.)
+% restriction. This Exception is an additional permission under section 7
+% of the GNU General Public License, version 3 ("GPLv3").
 %
 % Please try the latest version of texinfo.tex before submitting bug
 % reports; you can get the latest version from:
diff --git a/lib/update-copyright b/lib/update-copyright
index 082b749..c72d0e6 100755
--- a/lib/update-copyright
+++ b/lib/update-copyright
@@ -3,9 +3,9 @@ eval '(exit $?0)' && eval 'exec perl -wS -0777 -pi "$0" 
${1+"$@"}'
     if 0;
 # Update an FSF copyright year list to include the current year.
 
-my $VERSION = '2012-02-05.21:39'; # UTC
+my $VERSION = '2013-01-03.09:41'; # UTC
 
-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 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
@@ -192,7 +192,7 @@ if (defined $stmt_re)
     if ($final_year != $this_year)
       {
         # Update the year.
-        $stmt =~ s/$final_year_orig/$final_year, $this_year/;
+        $stmt =~ s/\b$final_year_orig\b/$final_year, $this_year/;
       }
     if ($final_year != $this_year || $ENV{'UPDATE_COPYRIGHT_FORCE'})
       {
diff --git a/lib/ylwrap b/lib/ylwrap
index 97a168c..384b834 100755
--- a/lib/ylwrap
+++ b/lib/ylwrap
@@ -1,7 +1,7 @@
 #! /bin/sh
 # ylwrap - wrapper for lex/yacc invocations.
 
-scriptversion=2012-12-28.20; # UTC
+scriptversion=2013-01-12.17; # UTC
 
 # Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
@@ -40,7 +40,7 @@ get_dirname ()
 # guard FILE
 # ----------
 # The CPP macro used to guard inclusion of FILE.
-guard()
+guard ()
 {
   printf '%s\n' "$1"                                                    \
     | sed                                                               \
@@ -96,17 +96,17 @@ esac
 
 
 # The input.
-input="$1"
+input=$1
 shift
 # We'll later need for a correct munging of "#line" directives.
 input_sub_rx=`get_dirname "$input" | quote_for_sed`
-case "$input" in
+case $input in
   [\\/]* | ?:[\\/]*)
     # Absolute path; do nothing.
     ;;
   *)
     # Relative path.  Make it absolute.
-    input="`pwd`/$input"
+    input=`pwd`/$input
     ;;
 esac
 input_rx=`get_dirname "$input" | quote_for_sed`
@@ -124,8 +124,8 @@ sed_fix_filenames=
 # guard in its implementation file.
 sed_fix_header_guards=
 
-while test "$#" -ne 0; do
-  if test "$1" = "--"; then
+while test $# -ne 0; do
+  if test x"$1" = x"--"; then
     shift
     break
   fi
@@ -138,16 +138,14 @@ while test "$#" -ne 0; do
 done
 
 # The program to run.
-prog="$1"
+prog=$1
 shift
 # Make any relative path in $prog absolute.
-case "$prog" in
+case $prog in
   [\\/]* | ?:[\\/]*) ;;
-  *[\\/]*) prog="`pwd`/$prog" ;;
+  *[\\/]*) prog=`pwd`/$prog ;;
 esac
 
-# FIXME: add hostname here for parallel makes that run commands on
-# other machines.  But that might take us over the 14-char limit.
 dirname=ylwrap$$
 do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit 
$ret'
 trap "ret=129; $do_exit" 1
@@ -173,7 +171,7 @@ if test $ret -eq 0; then
       # otherwise prepend '../'.
       case $to in
         [\\/]* | ?:[\\/]*) target=$to;;
-        *) target="../$to";;
+        *) target=../$to;;
       esac
 
       # Do not overwrite unchanged header files to avoid useless
@@ -182,7 +180,7 @@ if test $ret -eq 0; then
       # output of all other files to a temporary file so we can
       # compare them to existing versions.
       if test $from != $parser; then
-        realtarget="$target"
+        realtarget=$target
         target=tmp-`printf '%s\n' "$target" | sed 's|.*[\\/]||g'`
       fi
 
diff --git a/m4/init.m4 b/m4/init.m4
index aa32ca6..afae454 100644
--- a/m4/init.m4
+++ b/m4/init.m4
@@ -75,11 +75,6 @@ AM_MISSING_PROG([MAKEINFO], [makeinfo])
 AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
 AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
 AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-# For better backward compatibility.  To be removed once Automake 1.9.x
-# dies out for good.  For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 AC_REQUIRE([AC_PROG_AWK])dnl
@@ -104,8 +99,95 @@ AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
                  [m4_define([AC_PROG_OBJCXX],
                             
m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
 ])
-AC_REQUIRE([AM_SILENT_RULES])])
+AC_REQUIRE([AM_SILENT_RULES])dnl
 
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell address@hidden about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+  fi
+fi])
+
+dnl We have to redefine AC_PROG_CC to allow our compile rules to use
+dnl "-c -o" together also with losing compilers.
+dnl FIXME: Add references to the original discussion and bug report.
+dnl FIXME: Shameless copy & paste from Autoconf internals, since trying to
+dnl        play smart among tangles of AC_REQUIRE, m4_defn, m4_provide and
+dnl        other tricks was proving too difficult, and in the end, likely
+dnl        more brittle too.  And this should anyway be just a temporary
+dnl        band-aid, until Autoconf provides the semantics and/or hooks we
+dnl        need (hint hint, nudge nudge) ...
+AC_DEFUN([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+dnl FIXME The following abomination is expected to disappear in
+dnl       Automake 1.14.
+AC_MSG_CHECKING([whether $CC understands -c and -o together])
+set dummy $CC; am__cc=`AS_ECHO(["$[2]"]) | \
+                       sed 's/[[^a-zA-Z0-9_]]/_/g;s/^[[0-9]]/_/'`
+AC_CACHE_VAL([am_cv_prog_cc_${am__cc}_c_o],
+[AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+# Make sure it works both with $CC and with simple cc.
+# We do the test twice because some compilers refuse to overwrite an
+# existing .o file with -o, though they will create one.
+ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&AS_MESSAGE_LOG_FD'
+rm -f conftest2.*
+if _AC_DO_VAR(ac_try) && test -f conftest2.$ac_objext
+then
+  eval am_cv_prog_cc_${am__cc}_c_o=yes
+else
+  eval am_cv_prog_cc_${am__cc}_c_o=no
+fi
+rm -f core conftest*
+])dnl
+if eval test \"\$am_cv_prog_cc_${am__cc}_c_o\" = yes; then
+  AC_MSG_RESULT([yes])
+else
+  AC_MSG_RESULT([no])
+  # Losing compiler, so wrap it with the 'compile' script.
+  # FIXME: It is wrong to rewrite CC.
+  # But if we don't then we get into trouble of one sort or another.
+  # A longer-term fix would be to have automake use am__CC in this case,
+  # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+  CC="$am_aux_dir/compile $CC"
+fi
+])
 
 # When config.status generates a header, we must update the stamp-h file.
 # This file resides in the same directory as the config header
diff --git a/m4/minuso.m4 b/m4/minuso.m4
index 984427c..17fa8c9 100644
--- a/m4/minuso.m4
+++ b/m4/minuso.m4
@@ -7,26 +7,19 @@
 
 # AM_PROG_CC_C_O
 # --------------
-# Like AC_PROG_CC_C_O, but changed for automake.
+# Basically a no-op now, completely superseded by the AC_PROG_CC
+# adjusted by Automake.  Kept for backward-compatibility.
 AC_DEFUN([AM_PROG_CC_C_O],
-[AC_REQUIRE([AC_PROG_CC_C_O])dnl
-AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([compile])dnl
-# FIXME: we rely on the cache variable name because
-# there is no other way.
-set dummy $CC
-am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
-if test "$am_t" != yes; then
-   # Losing compiler, so override with the script.
-   # FIXME: It is wrong to rewrite CC.
-   # But if we don't then we get into trouble of one sort or another.
-   # A longer-term fix would be to have automake use am__CC in this case,
-   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
-   CC="$am_aux_dir/compile $CC"
-fi
+[AC_REQUIRE([AC_PROG_CC])dnl
 dnl Make sure AC_PROG_CC is never called again, or it will override our
 dnl setting of CC.
 m4_define([AC_PROG_CC],
           [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
+# For better backward-compatibility.  Users are advised to stop
+# relying on this cache variable and C preprocessor symbol ASAP.
+eval ac_cv_prog_cc_${am__cc}_c_o=\$am_cv_prog_cc_${am__cc}_c_o
+if eval test \"\$ac_cv_prog_cc_${am__cc}_c_o\" != yes; then
+  AC_DEFINE([NO_MINUS_C_MINUS_O], [1],
+            [Define to 1 if your C compiler doesn't accept -c and -o 
together.])
+fi
 ])
diff --git a/m4/obsolete-err.m4 b/m4/obsolete-err.m4
deleted file mode 100644
index a94a651..0000000
--- a/m4/obsolete-err.m4
+++ /dev/null
@@ -1,33 +0,0 @@
-#  -*- Autoconf -*-
-# Obsolete and "removed" macros, that must however still report explicit
-# error messages when used, to smooth transition.
-#
-# Copyright (C) 1996-2013 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.
-
-dnl TODO: Remove in Automake 1.15.
-AC_DEFUN([AM_CONFIG_HEADER],
-[AC_FATAL(['$0': this macro is obsolete.
-    You should use the 'AC][_CONFIG_HEADERS' macro instead.])])
-
-dnl TODO: Remove in Automake 1.15.
-AC_DEFUN([AM_PROG_CC_STDC],
-[AC_FATAL(['$0': this macro is obsolete.
-    You should simply use the 'AC][_PROG_CC' macro instead.
-    Also, your code should no longer depend upon 'am_cv_prog_cc_stdc',
-    but upon 'ac_cv_prog_cc_stdc'.])])
-
-dnl TODO: Remove in Automake 1.16.
-AC_DEFUN([AM_PROG_MKDIR_P],
-[AC_FATAL(['$0': this macro is obsolete.
-    You should simply use the 'AC][_PROG_MKDIR_P' macro instead, and
-    use '$(MKDIR_P)' instead of '$(mkdir_p)' in your Makefile.am
-    files.])])
-
-dnl TODO: Remove in Automake 1.14.
-AC_DEFUN([AM_C_PROTOTYPES],
-         [AC_FATAL([automatic de-ANSI-fication support has been removed])])
-AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES])
diff --git a/m4/obsolete.m4 b/m4/obsolete.m4
new file mode 100644
index 0000000..28151d8
--- /dev/null
+++ b/m4/obsolete.m4
@@ -0,0 +1,35 @@
+#  -*- Autoconf -*-
+# Deprecated, obsolescent or and obsolete macros.
+#
+# Copyright (C) 1996-2013 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.
+
+AC_DEFUN([AM_PROG_MKDIR_P],
+[AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])dnl
+AC_DIAGNOSE([obsolete],
+[macro '$0' is deprecated.
+You should use the Autoconf-provided 'AC][_PROG_MKDIR_P' macro instead,
+and use '$(MKDIR_P)' instead of '$(mkdir_p)' in your Makefile.am files.])])
+
+AC_DEFUN([AM_CONFIG_HEADER],
+[AC_DIAGNOSE([obsolete],
+['$0': this macro is obsolete.
+You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl
+AC_CONFIG_HEADERS($@)])
+
+AC_DEFUN([AM_PROG_CC_STDC],
+[AC_PROG_CC
+am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
+AC_DIAGNOSE([obsolete],
+['$0': this macro is obsolete.
+You should simply use the 'AC][_PROG_CC' macro instead.
+Also, your code should no longer depend upon 'am_cv_prog_cc_stdc',
+but upon 'ac_cv_prog_cc_stdc'.])])
+
+AC_DEFUN([AM_C_PROTOTYPES],
+         [AC_FATAL([automatic de-ANSI-fication support has been removed])])
+AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES])
diff --git a/maint/am-xft b/maint/am-xft
deleted file mode 100755
index 564aa3b..0000000
--- a/maint/am-xft
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-MAKE=${MAKE-make} GIT=${GIT-git}
-$GIT clean -fdx && $MAKE bootstrap && $MAKE dist && exec am-ft "$@"
diff --git a/maint/rename-tests b/maint/rename-tests
deleted file mode 100755
index 6fce9fe..0000000
--- a/maint/rename-tests
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env bash
-# Convenience script to rename test cases in Automake.
-
-set -e -u
-
-me=${0##*/}
-fatal () { echo "$me: $*" >&2; exit 1; }
-
-case $# in
-  0) input=$(cat);;
-  1) input=$(cat -- "$1");;
-  *) fatal "too many arguments";;
-esac
-
-AWK=${AWK-awk}
-SED=${SED-sed}
-
-[[ -f automake.in && -d lib/Automake ]] \
-  || fatal "can only be run from the top-level of the Automake source tree"
-
-$SED --version 2>&1 | grep GNU >/dev/null 2>&1 \
-  || fatal "GNU sed is required by this script"
-
-# Validate and cleanup input.
-input=$(
-  $AWK -v me="$me" "
-    /^#/ { next; }
-    (NF == 0) { next; }
-    (NF != 2) { print me \": wrong number of fields at line \" NR;
-                exit(1); }
-    { printf (\"t/%s t/%s\\n\", \$1, \$2); }
-  " <<<"$input")
-
-# Prepare git commit message.
-exec 5>$me.git-msg
-echo "tests: more significant names for some tests" >&5
-echo >&5
-$AWK >&5 <<<"$input" \
-  '{ printf ("* %s: Rename...\n* %s: ... like this.\n", $1, $2) }'
-exec 5>&-
-
-# Rename tests.
-eval "$($AWK '{ printf ("git mv %s %s\n", $1, $2) }' <<<"$input")"
-
-# Adjust the list of tests (do this conditionally, since such a
-# list is not required nor used in Automake-NG.
-if test -f t/list-of-tests.mk; then
-  $SED -e "$($AWK '{ printf ("s|^%s |%s |\n", $1, $2) }' <<<"$input")" \
-       -i t/list-of-tests.mk
-fi
-
-git status
diff --git a/maint/am-ft b/maintainer/am-ft
similarity index 79%
rename from maint/am-ft
rename to maintainer/am-ft
index d8a2722..1d22790 100755
--- a/maint/am-ft
+++ b/maintainer/am-ft
@@ -1,6 +1,22 @@
 #!/usr/bin/env bash
 # Remote testing of Automake tarballs made easy.
 # This script requires Bash 4.x or later.
+
+# Copyright (C) 2013 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/>.
+
 # TODO: some documentation would be nice ...
 
 set -u
diff --git a/t/pm/Version2.pl b/maintainer/am-xft
old mode 100644
new mode 100755
similarity index 79%
copy from t/pm/Version2.pl
copy to maintainer/am-xft
index 3fb9e00..d7fee4c
--- a/t/pm/Version2.pl
+++ b/maintainer/am-xft
@@ -1,20 +1,18 @@
-# Copyright (C) 2011-2013 Free Software Foundation, Inc.
-#
+#!/bin/sh
+# Copyright (C) 2013 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/>.
 
-# prog_error due to invalid $VERSION.
-
-use Automake::Version;
-
-Automake::Version::check ('', '1.2.3');
+MAKE=${MAKE-make} GIT=${GIT-git}
+$GIT clean -fdx && $MAKE bootstrap && $MAKE dist && exec am-ft "$@"
diff --git a/maint/maint.mk b/maintainer/maint.mk
similarity index 97%
rename from maint/maint.mk
rename to maintainer/maint.mk
index 6fb0459..ab5f176 100644
--- a/maint/maint.mk
+++ b/maintainer/maint.mk
@@ -446,11 +446,17 @@ files_without_copyright = \
 # This script has an MIT-style license
 files_without_copyright += lib/install-sh
 
+# The UPDATE_COPYRIGHT_YEAR environment variable is honoured by the
+# 'lib/update-copyright' script.
 .PHONY: update-copyright
 update-copyright:
        $(AM_V_GEN)set -e; \
-       current_year=`date +%Y` && test -n "$$current_year" \
-         || { echo "$@: cannot get current year" >&2; exit 1; }; \
+       if test -n "$$UPDATE_COPYRIGHT_YEAR"; then \
+          current_year=$$UPDATE_COPYRIGHT_YEAR; \
+       else \
+         current_year=`date +%Y` && test -n "$$current_year" \
+           || { echo "$@: cannot get current year" >&2; exit 1; }; \
+       fi; \
        sed -i "/^RELEASE_YEAR=/s/=.*$$/=$$current_year/" \
          bootstrap.sh configure.ac; \
        excluded_re=`( \
@@ -460,5 +466,6 @@ update-copyright:
        ) | sed -e '$$!s,$$,|,' | tr -d '\012\015'`; \
        $(GIT) ls-files \
          | grep -Ev '(^|/)README$$' \
+         | grep -Ev '^PLANS(/|$$)' \
          | grep -Ev "^($$excluded_re)$$" \
          | $(update_copyright_env) xargs $(srcdir)/lib/$@
diff --git a/maintainer/rename-tests b/maintainer/rename-tests
new file mode 100755
index 0000000..a584748
--- /dev/null
+++ b/maintainer/rename-tests
@@ -0,0 +1,67 @@
+#!/usr/bin/env bash
+# Convenience script to rename test cases in Automake.
+
+# Copyright (C) 2013 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/>.
+
+set -e -u
+
+me=${0##*/}
+fatal () { echo "$me: $*" >&2; exit 1; }
+
+case $# in
+  0) input=$(cat);;
+  1) input=$(cat -- "$1");;
+  *) fatal "too many arguments";;
+esac
+
+AWK=${AWK-awk}
+SED=${SED-sed}
+
+[[ -f automake.in && -d lib/Automake ]] \
+  || fatal "can only be run from the top-level of the Automake source tree"
+
+$SED --version 2>&1 | grep GNU >/dev/null 2>&1 \
+  || fatal "GNU sed is required by this script"
+
+# Validate and cleanup input.
+input=$(
+  $AWK -v me="$me" "
+    /^#/ { next; }
+    (NF == 0) { next; }
+    (NF != 2) { print me \": wrong number of fields at line \" NR;
+                exit(1); }
+    { printf (\"t/%s t/%s\\n\", \$1, \$2); }
+  " <<<"$input")
+
+# Prepare git commit message.
+exec 5>$me.git-msg
+echo "tests: more significant names for some tests" >&5
+echo >&5
+$AWK >&5 <<<"$input" \
+  '{ printf ("* %s: Rename...\n* %s: ... like this.\n", $1, $2) }'
+exec 5>&-
+
+# Rename tests.
+eval "$($AWK '{ printf ("git mv %s %s\n", $1, $2) }' <<<"$input")"
+
+# Adjust the list of tests (do this conditionally, since such a
+# list is not required nor used in Automake-NG.
+if test -f t/list-of-tests.mk; then
+  $SED -e "$($AWK '{ printf ("s|^%s |%s |\n", $1, $2) }' <<<"$input")" \
+       -i t/list-of-tests.mk
+fi
+
+git status
diff --git a/maint/syntax-checks.mk b/maintainer/syntax-checks.mk
similarity index 96%
rename from maint/syntax-checks.mk
rename to maintainer/syntax-checks.mk
index fc62b7c..4421efe 100644
--- a/maint/syntax-checks.mk
+++ b/maintainer/syntax-checks.mk
@@ -48,7 +48,6 @@ sc_diff_aclocal \
 sc_no_brace_variable_expansions \
 sc_rm_minus_f \
 sc_no_for_variable_in_macro \
-sc_old_includes_vars \
 sc_mkinstalldirs \
 sc_pre_normal_post_install_uninstall \
 sc_perl_no_undef \
@@ -96,19 +95,22 @@ sc_at_in_texi
 automake_diff_no = 7
 aclocal_diff_no = 9
 sc_diff_automake sc_diff_aclocal: sc_diff_% :
-       @set +e; tmp=$*-diffs.tmp; \
-        diff -u $(srcdir)/$*.in $* > $$tmp; test $$? -eq 1 || exit 1; \
-        added=`grep -v '^+++ ' $$tmp | grep -c '^+'` || exit 1; \
-        removed=`grep -v '^--- ' $$tmp | grep -c '^-'` || exit 1; \
-        test $$added,$$removed = $($*_diff_no),$($*_diff_no) \
+       @set +e; \
+       in=$*-in.tmp out=$*-out.tmp diffs=$*-diffs.tmp \
+         && sed '/^#!.*[pP]rototypes/d' $(srcdir)/$*.in > $$in \
+         && sed '/^# BEGIN.* PROTO/,/^# END.* PROTO/d' $* > $$out \
+         && { diff -u $$in $$out > $$diffs; test $$? -eq 1; } \
+         && added=`grep -v '^+++ ' $$diffs | grep -c '^+'` \
+         && removed=`grep -v '^--- ' $$diffs | grep -c '^-'` \
+         && test $$added,$$removed = $($*_diff_no),$($*_diff_no) \
          || { \
            echo "Found unexpected diffs between $*.in and $*"; \
            echo "Lines added:   $$added"  ; \
            echo "Lines removed: $$removed"; \
-           cat $$tmp >&2; \
+           cat $$diffs; \
            exit 1; \
-         } >&1; \
-       rm -f $$tmp
+         } >&2; \
+       rm -f $$in $$out $$diffs
 
 ## Expect no instances of '${...}'.  However, $${...} is ok, since that
 ## is a shell construct, not a Makefile construct.
@@ -121,7 +123,7 @@ sc_no_brace_variable_expansions:
 ## Make sure 'rm' is called with '-f'.
 sc_rm_minus_f:
        @if grep -v '^#' $(ams) $(xtests) \
-          | grep -vE '/(spy-rm\.tap|subobj-clean.*-pr10697\.sh):' \
+          | grep -vE 
'/(rm-f-probe\.sh|spy-rm\.tap|subobj-clean.*-pr10697\.sh):' \
           | grep -E '\<rm ([^-]|\-[^f ]*\>)'; \
        then \
          echo "Suspicious 'rm' invocation." 1>&2; \
@@ -141,20 +143,6 @@ sc_no_for_variable_in_macro:
          exit 1; \
        else :; fi
 
-## Older, deprecated, and now invalid aliases for $(AM_CPPFLAGS).
-sc_old_includes_vars:
-       @files="\
-         $(xtests) \
-         $(pms) \
-         $(ams) \
-         $(srcdir)/automake.in \
-         $(srcdir)/doc/*.texi \
-       "; \
-       if grep -E '\bINCLUDES\b' $$files; then \
-         echo '$$(INCLUDES) is deprecated, use $$(AM_CPPFLAGS) instead' >&2; \
-         exit 1; \
-       else :; fi
-
 ## The script and variable 'mkinstalldirs' are obsolete.
 sc_mkinstalldirs:
        @files="\
@@ -163,7 +151,7 @@ sc_mkinstalldirs:
          $(ams) \
          $(srcdir)/automake.in \
          $(srcdir)/doc/*.texi \
-         $(srcdir)/maint.mk \
+         $(srcdir)/maintainer/maint.mk \
        "; \
        if grep 'mkinstalldirs' $$files; then \
          echo "Found use of mkinstalldirs; that is obsolete" 1>&2; \
@@ -632,3 +620,7 @@ sc_at_in_texi:
 $(syntax_check_rules): automake aclocal
 maintainer-check: $(syntax_check_rules)
 .PHONY: maintainer-check $(syntax_check_rules)
+
+# I'm a lazy typist.
+lint: maintainer-check
+.PHONY: lint
diff --git a/t/acsubst2.sh b/t/acsubst2.sh
index 2428dc2..fc7c9ad 100755
--- a/t/acsubst2.sh
+++ b/t/acsubst2.sh
@@ -18,7 +18,6 @@
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_SUBST([FOOBAR_CFLAGS],[blablabla])
 END
 
diff --git a/t/add-missing.tap b/t/add-missing.tap
index 26732c6..2733788 100755
--- a/t/add-missing.tap
+++ b/t/add-missing.tap
@@ -247,6 +247,7 @@ check_ <<'END'
 depcomp/C
 == Files ==
 depcomp
+compile
 == configure.ac ==
 AC_PROG_CC
 == Makefile.am ==
@@ -271,9 +272,9 @@ compile
 == Files ==
 compile
 == configure.ac ==
-# Using AM_PROG_CC_C_O in configure.ac should be enough.  No need to
-# use AC_PROG_CC too, nor to define xxx_PROGRAMS in Makefile.am.
-AM_PROG_CC_C_O
+# Using AC_PROG_CC in configure.ac should be enough.  No
+# need to also define, say, xxx_PROGRAMS in Makefile.am.
+AC_PROG_CC
 END
 
 # For config.guess and config.sub.
@@ -294,6 +295,7 @@ check_ <<'END'
 == Name ==
 ylwrap/Lex
 == Files ==
+compile
 ylwrap
 == configure.ac ==
 AC_PROG_CC
@@ -308,6 +310,7 @@ check_ <<'END'
 == Name ==
 ylwrap/Yacc
 == Files ==
+compile
 ylwrap
 == configure.ac ==
 AC_PROG_CC
diff --git a/t/am-config-header-no-more.sh b/t/am-config-header-no-more.sh
deleted file mode 100755
index 577ce05..0000000
--- a/t/am-config-header-no-more.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2012-2013 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 any attempt to use the obsolete macro AM_CONFIG_HEADER
-# elicits clear and explicit fatal errors.
-
-. test-init.sh
-
-geterr ()
-{
-    "$@" -Wnone 2>stderr && { cat stderr >&2; exit 1; }
-    cat stderr >&2
-    grep "^configure\.ac:4:.*'AM_CONFIG_HEADER'.*obsolete" stderr
-    grep "'AC_CONFIG_HEADERS'.* instead" stderr
-}
-
-$ACLOCAL
-mv aclocal.m4 aclocal.sav
-
-echo AM_CONFIG_HEADER >> configure.ac
-
-geterr $ACLOCAL
-test ! -f aclocal.m4
-
-cat aclocal.sav "$am_automake_acdir"/obsolete-err.m4 > aclocal.m4
-
-geterr $AUTOCONF
-geterr $AUTOMAKE
-
-:
diff --git a/t/mkdir_p.sh b/t/am-config-header.sh
similarity index 60%
copy from t/mkdir_p.sh
copy to t/am-config-header.sh
index 2e83423..49410e8 100755
--- a/t/mkdir_p.sh
+++ b/t/am-config-header.sh
@@ -14,38 +14,33 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# AM_INIT_AUTOMAKE should still define $(mkdir_p), for backward
-# compatibility.
+# Check that the obsolete macro AM_CONFIG_HEADER still works.
 
 . test-init.sh
 
-cat >> configure.ac << 'END'
-AC_CONFIG_FILES([sub/Makefile])
-AC_OUTPUT
+cat > Makefile.am <<'END'
+check-local:
+       test -f oldconf.h
+       test -f $(srcdir)/oldconf.in
 END
 
-cat > Makefile.am << 'END'
-SUBDIRS = sub
-all-local:
-       $(mkdir_p) . dir1/a
-       @mkdir_p@ . dir2/b
-check-local: all
-       test -d dir1/a
-       test -d dir2/b
-       test -d dir3/c
-       test -d dir3/d
+cat >> configure.ac <<'END'
+AM_CONFIG_HEADER([oldconf.h:oldconf.in])
+AC_OUTPUT
 END
 
-mkdir sub
-cat > sub/Makefile.am << 'END'
-# '$(mkdir_p)' should continue to work even in subdir makefiles.
-all-local:
-       $(mkdir_p) .. ../dir3/c
-       @mkdir_p@ .. ../dir3/d
-END
+$ACLOCAL -Wno-obsolete
+
+$AUTOCONF -Werror -Wall 2>stderr && { cat stderr >&2; exit 1; }
+cat stderr >&2
+grep "^configure\.ac:4:.*'AM_CONFIG_HEADER'.*obsolete" stderr
+grep "'AC_CONFIG_HEADERS'.* instead" stderr
+
+$AUTOCONF -Werror -Wall -Wno-obsolete
+
+$AUTOHEADER
+test -f oldconf.in
 
-$ACLOCAL
-$AUTOCONF -Werror -Wall
 $AUTOMAKE
 
 ./configure
diff --git a/t/am-prog-cc-c-o.sh b/t/am-prog-cc-c-o.sh
new file mode 100755
index 0000000..da6a3a4
--- /dev/null
+++ b/t/am-prog-cc-c-o.sh
@@ -0,0 +1,91 @@
+#! /bin/sh
+# Copyright (C) 2013 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 uses of the obsolescent AM_PROG_CC_C_O macro doesn't
+# cause spurious warnings or errors.  Suggested by Eric Blake.
+
+# We need gcc for for two reasons:
+#  1. to ensure our C compiler grasps "-c -o" together.
+#  2. to be able to later fake a dumb compiler not grasping that
+#     (done with 'cc-no-c-o' script below, which required gcc).
+required=gcc
+. test-init.sh
+
+echo bin_PROGRAMS = foo > Makefile.am
+echo 'int main (void) { return 0; }' > foo.c
+
+cp configure.ac configure.bak
+
+cat >> configure.ac << 'END'
+# Since AM_PROG_CC_C_O rewrites $CC, it's an error to call AC_PROG_CC
+# after it.
+AM_PROG_CC_C_O
+AC_PROG_CC
+END
+
+$ACLOCAL -Wnone 2>stderr && { cat stderr >&2; exit 1; }
+cat stderr >&2
+grep '^configure\.ac:7:.* AC_PROG_CC .*called after AM_PROG_CC_C_O' stderr
+
+cat configure.bak - > configure.ac << 'END'
+dnl It's OK to call AM_PROG_CC_C_O after AC_PROG_CC.
+AC_PROG_CC
+AM_PROG_CC_C_O
+# Make sure that $CC can be used after AM_PROG_CC_C_O.
+$CC --version || exit 1
+$CC -v || exit 1
+AC_OUTPUT
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --add-missing
+
+./configure >stdout || { cat stdout; exit 1; }
+cat stdout
+grep 'understands -c and -o together.* yes$' stdout
+# No repeated checks please.
+test $(grep -c ".*-c['\" ].*-o['\" ]" stdout) -eq 1
+$MAKE
+
+$MAKE maintainer-clean
+
+rm -rf autom4te*.cache
+
+cat configure.bak - > configure.ac << 'END'
+dnl It's also OK to call AM_PROG_CC_C_O *without* AC_PROG_CC.
+AM_PROG_CC_C_O
+# Make sure that $CC can be used after AM_PROG_CC_C_O.
+$CC --version || exit 1
+$CC -v || exit 1
+AC_OUTPUT
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --add-missing
+
+# Make sure the compiler doesn't understand '-c -o'
+CC=$am_testaux_builddir/cc-no-c-o; export CC
+
+./configure >stdout || { cat stdout; exit 1; }
+cat stdout
+grep 'understands -c and -o together.* no$' stdout
+# No repeated checks please.
+test $(grep -c ".*-c['\" ].*-o['\" ]" stdout) -eq 1
+$MAKE
+
+:
diff --git a/t/recurs-user-no-top-level.sh b/t/am-prog-cc-stdc.sh
similarity index 66%
copy from t/recurs-user-no-top-level.sh
copy to t/am-prog-cc-stdc.sh
index 8de3ec2..e3e469c 100755
--- a/t/recurs-user-no-top-level.sh
+++ b/t/am-prog-cc-stdc.sh
@@ -14,37 +14,31 @@
 # 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 user recursion works even for targets that don't exist
-# in the top-level Makefile.
+# Check that the obsolete macro the obsolete macro AM_PROG_CC_STDC
+# still works.
 
+required=gcc
 . test-init.sh
 
 cat >> configure.ac <<'END'
-AC_CONFIG_FILES([sub/Makefile])
-AM_EXTRA_RECURSIVE_TARGETS([foo-bar])
+AM_PROG_CC_STDC
 AC_OUTPUT
 END
 
-mkdir sub
-
-cat > Makefile.am <<'END'
-SUBDIRS = sub
-all-local: foo-bar
-END
-
-cat > sub/Makefile.am <<'END'
-foo-bar-local:
-       : > foo-bar
-MOSTLYCLEANFILES = foo-bar
-END
+echo bin_PROGRAMS = foo > Makefile.am
 
 $ACLOCAL
-$AUTOCONF
 $AUTOMAKE
 
-./configure
+$AUTOCONF -Wnone -Wobsolete -Werror 2>stderr && { cat stderr >&2; exit 1; }
+cat stderr >&2
+grep "^configure\.ac:4:.*'AM_PROG_CC_STDC'.*obsolete" stderr
+grep "'AC_PROG_CC'.* instead" stderr
+
+echo 'int main (void) { return 0; }' > foo.c
 
-$MAKE foo-bar
-test -f sub/foo-bar
+./configure
+$MAKE
+$MAKE distcheck
 
 :
diff --git a/t/am-prog-mkdir-p-no-more.sh b/t/am-prog-mkdir-p-no-more.sh
deleted file mode 100755
index 78a3ef9..0000000
--- a/t/am-prog-mkdir-p-no-more.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2012-2013 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 any attempt to use the obsolete macro AM_PROG_MKDIR_P
-# elicits clear and explicit fatal errors.
-
-. test-init.sh
-
-geterr ()
-{
-    "$@" -Wnone 2>stderr && { cat stderr >&2; exit 1; }
-    cat stderr >&2
-    grep "^configure\.ac:4:.*'AM_PROG_MKDIR_P'.*obsolete" stderr
-    grep "'AC_PROG_MKDIR_P'.* instead" stderr
-    grep " use '\$(MKDIR_P)' instead of '\$(mkdir_p)'.*Makefile" stderr
-}
-
-$ACLOCAL
-mv aclocal.m4 aclocal.sav
-
-echo AM_PROG_MKDIR_P >> configure.ac
-
-geterr $ACLOCAL
-test ! -f aclocal.m4
-
-cat aclocal.sav "$am_automake_acdir"/obsolete-err.m4 > aclocal.m4
-
-geterr $AUTOCONF
-geterr $AUTOMAKE
-
-:
diff --git a/t/mkdir_p.sh b/t/am-prog-mkdir-p.sh
similarity index 56%
rename from t/mkdir_p.sh
rename to t/am-prog-mkdir-p.sh
index 2e83423..ad5a810 100755
--- a/t/mkdir_p.sh
+++ b/t/am-prog-mkdir-p.sh
@@ -14,38 +14,53 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# AM_INIT_AUTOMAKE should still define $(mkdir_p), for backward
+# Check that the AM_PROG_MKDIR_P macro is deprecated, but still works.
+# We should should also still define $(mkdir_p), for backward
 # compatibility.
 
 . test-init.sh
 
-cat >> configure.ac << 'END'
+cat >> configure.ac <<'END'
 AC_CONFIG_FILES([sub/Makefile])
+AM_PROG_MKDIR_P
 AC_OUTPUT
 END
 
 cat > Makefile.am << 'END'
 SUBDIRS = sub
 all-local:
-       $(mkdir_p) . dir1/a
-       @mkdir_p@ . dir2/b
+       $(MKDIR_P) . dir1/a
+       $(mkdir_p) . dir2/b
+       @MKDIR_P@ . dir3/c
+       @mkdir_p@ . dir4/d
 check-local: all
        test -d dir1/a
        test -d dir2/b
        test -d dir3/c
-       test -d dir3/d
+       test -d dir4/d
+       test -d dir5/e
+       test -d dir5/f
+       test -d dir5/g
 END
 
 mkdir sub
 cat > sub/Makefile.am << 'END'
-# '$(mkdir_p)' should continue to work even in subdir makefiles.
+# Even '$(mkdir_p)' should continue to work also in subdir makefiles.
 all-local:
-       $(mkdir_p) .. ../dir3/c
-       @mkdir_p@ .. ../dir3/d
+       $(MKDIR_P) .. ../dir5/d
+       $(mkdir_p) .. ../dir5/e
+       @MKDIR_P@ .. ../dir5/f
+       @mkdir_p@ .. ../dir5/g
 END
 
 $ACLOCAL
-$AUTOCONF -Werror -Wall
+$AUTOCONF -Wnone -Wobsolete -Werror 2>stderr && { cat stderr >&2; exit 1; }
+cat stderr >&2
+grep "^configure\\.ac:5:.*'AM_PROG_MKDIR_P'.*deprecated" stderr
+grep "[Aa]utoconf-provided 'AC_PROG_MKDIR_P'.* instead" stderr
+grep "'\$(MKDIR_P)' instead of '\$(mkdir_p)'" stderr
+
+$AUTOCONF -Wno-obsolete
 $AUTOMAKE
 
 ./configure
diff --git a/t/amopts-variable-expansion.sh b/t/amopts-variable-expansion.sh
index 64a40a1..9ffa8d1 100755
--- a/t/amopts-variable-expansion.sh
+++ b/t/amopts-variable-expansion.sh
@@ -27,6 +27,9 @@ AC_INIT([$me], [1.0])
 AM_INIT_AUTOMAKE([-Wall -Werror gnu])
 AC_CONFIG_FILES([Makefile])
 AC_PROG_CC
+AC_PROG_RANLIB
+# The absence of AM_PROG_AR will give a warning with
+# '-Wextra-portability', which we want to elicit.
 END
 
 cat > Makefile.am <<'END'
@@ -39,10 +42,8 @@ foo1 = ${foo2}
 foo2 = no-dist -Wnone
 foo2 += $(foo3)
 foo3 = -Wno-error
-bar = -Wportability
-noinst_PROGRAMS = foo
-# This will give a warning with '-Wportability'.
-foo_SOURCES = sub/foo.c
+bar = -Wextra-portability
+noinst_LIBRARIES = libfoo.a
 # This would give a warning with '-Woverride'.
 install:
 END
@@ -54,8 +55,8 @@ END
 
 $ACLOCAL
 AUTOMAKE_run
-grep '^Makefile\.am:.*sub/foo\.c.*requires.*AM_PROG_CC_C_O' stderr
-grep README stderr && exit 1
+$FGREP 'AM_PROG_AR' stderr
+$FGREP 'README' stderr && exit 1
 $EGREP '(install|override)' stderr && exit 1
 $EGREP 'distdir|\.tar[ .]' Makefile.in && exit 1
 
diff --git a/t/ax/am-test-lib.sh b/t/ax/am-test-lib.sh
index f5473b2..2ea58fa 100644
--- a/t/ax/am-test-lib.sh
+++ b/t/ax/am-test-lib.sh
@@ -329,8 +329,6 @@ fetch_tap_driver ()
     || framework_failure_ "couldn't fetch $am_tap_implementation TAP driver"
   sed 10q tap-driver # For debugging.
 }
-# The shell/awk implementation of the TAP driver is still mostly dummy, so
-# use the perl implementation by default for the moment.
 am_tap_implementation=${am_tap_implementation-shell}
 
 # $PYTHON and support for PEP-3147.  Needed to check our python-related
@@ -692,7 +690,7 @@ am_setup_testdir ()
     || framework_failure_ "cannot chdir into test subdirectory"
   if test x"$am_create_testdir" != x"empty"; then
     cp "$am_scriptdir"/install-sh "$am_scriptdir"/missing \
-       "$am_scriptdir"/depcomp . \
+       "$am_scriptdir"/compile "$am_scriptdir"/depcomp . \
       || framework_failure_ "fetching common files from $am_scriptdir"
     # Build appropriate environment in test directory.  E.g., create
     # configure.ac, touch all necessary files, etc.  Don't use AC_OUTPUT,
diff --git a/t/includes-no-more.sh b/t/ax/cc-no-c-o.in
old mode 100755
new mode 100644
similarity index 66%
copy from t/includes-no-more.sh
copy to t/ax/cc-no-c-o.in
index 4867ee5..c18f9b9
--- a/t/includes-no-more.sh
+++ b/t/ax/cc-no-c-o.in
@@ -1,4 +1,4 @@
-#! /bin/sh
+#! @AM_TEST_RUNNER_SHELL@
 # Copyright (C) 2012-2013 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -14,19 +14,16 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Support for $(INCLUDES) has been removed.
+# A "C compiler" that chokes when the '-c' and '-o' options are passed
+# together to it on the command line.  See also automake bug#13378.
 
-. test-init.sh
+am_CC=${AM_TESTSUITE_GNU_CC-'@GNU_CC@'}
 
-echo AC_PROG_CC >> configure.ac
+case " $* " in
+ *\ -c*\ -o* | *\ -o*\ -c*)
+    echo "$0: both '-o' and '-c' seen on the command line" >&2
+    exit 2
+    ;;
+esac
 
-cat > Makefile.am << 'END'
-bin_PROGRAMS = foo
-INCLUDES = -DFOO
-END
-
-$ACLOCAL
-AUTOMAKE_fails -Wnone -Wno-error
-grep "^Makefile\\.am:2:.* 'INCLUDES'.* obsolete.* 'AM_CPPFLAGS'" stderr
-
-:
+exec $am_CC "$@"
diff --git a/t/ax/depcomp-shuffle.sh b/t/ax/depcomp-shuffle.sh
index 39de3fa..7c69882 100644
--- a/t/ax/depcomp-shuffle.sh
+++ b/t/ax/depcomp-shuffle.sh
@@ -68,11 +68,12 @@ else
   grep_prog_out () { ./prg && ./prg | grep "$1" || exit 1; }
 fi
 
-echo AC_PROG_CC                         >> configure.ac
-echo AM_PROG_AR                         >> configure.ac
-echo AC_PROG_RANLIB                     >> configure.ac
-test -z "$xdir" || echo AM_PROG_CC_C_O  >> configure.ac
-echo AC_OUTPUT                          >> configure.ac
+cat >> configure.ac <<'END'
+AC_PROG_CC
+AM_PROG_AR
+AC_PROG_RANLIB
+AC_OUTPUT
+END
 
 cat > Makefile.am <<END
 noinst_PROGRAMS = prg
diff --git a/t/ax/depcomp.sh b/t/ax/depcomp.sh
index 8795649..1534d5f 100644
--- a/t/ax/depcomp.sh
+++ b/t/ax/depcomp.sh
@@ -130,9 +130,8 @@ check_distclean ()
 cat > configure.ac <<END
 AC_INIT([$me], [1.0])
 AC_CONFIG_AUX_DIR([build-aux])
-AM_INIT_AUTOMAKE
+AM_INIT_AUTOMAKE([subdir-objects])
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_PROG_AR
 $(if test $depcomp_with_libtool = yes; then
     echo AC_PROG_LIBTOOL
diff --git a/t/ax/tap-setup.sh b/t/ax/tap-setup.sh
index 4fef7b3..6955c86 100644
--- a/t/ax/tap-setup.sh
+++ b/t/ax/tap-setup.sh
@@ -36,7 +36,7 @@ fetch_tap_driver
 if test -f Makefile.am~; then
   mv -f Makefile.am~ Makefile.am \
     || fatal_ "failed to restore Makefile.am"
-  echo 'TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver' >> Makefile.am \
+  echo 'TEST_LOG_DRIVER = $(srcdir)/tap-driver' >> Makefile.am \
     || fatal_ "failed to update Makefile.am"
   $AUTOMAKE Makefile \
     || fatal_ "failed to remake Makefile.in"
diff --git a/t/ax/test-lib.sh b/t/ax/test-lib.sh
index 6230554..9476711 100644
--- a/t/ax/test-lib.sh
+++ b/t/ax/test-lib.sh
@@ -265,7 +265,7 @@ am_set_exit_traps ()
   trap "fatal_ 'caught signal SIGINT'" 2
   trap "fatal_ 'caught signal SIGTERM'" 15
   # Various shells seems to just ignore SIGQUIT under some circumstances,
-  # even if the signal is not blocked; however, if the signal it trapped,
+  # even if the signal is not blocked; however, if the signal is trapped,
   # the trap gets correctly executed.  So we also trap SIGQUIT.
   # Here is a list of some shells that have been verified to exhibit the
   # problematic behavior with SIGQUIT:
diff --git a/t/backcompat6.sh b/t/backcompat6.sh
index 6036980..e9e14cc 100755
--- a/t/backcompat6.sh
+++ b/t/backcompat6.sh
@@ -37,7 +37,7 @@ AC_SUBST(two, $two)
 three=3
 AC_SUBST(three)
 AC_PROG_CC
-AC_CONFIG_HEADERS(config.h:config.hin)
+AM_CONFIG_HEADER(config.h:config.hin)
 AM_CONDITIONAL(CROSS_COMPILING, test "$cross_compiling" = yes)
 AC_OUTPUT(Makefile foo.got:foo1.in:foo2.in:foo3.in)
 END
diff --git a/t/c-demo.sh b/t/c-demo.sh
index df2fc55..a0012e2 100755
--- a/t/c-demo.sh
+++ b/t/c-demo.sh
@@ -27,7 +27,6 @@ AC_CONFIG_SRCDIR([tests/test.test])
 AC_CONFIG_AUX_DIR([build-aux])
 AM_INIT_AUTOMAKE
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_PROG_AR
 AC_PROG_RANLIB
 AM_CONDITIONAL([RUN_TESTS], [test x"$run_tests" != x"no"])
diff --git a/t/ccnoco.sh b/t/ccnoco.sh
index cffabd7..be9be37 100755
--- a/t/ccnoco.sh
+++ b/t/ccnoco.sh
@@ -17,14 +17,12 @@
 # Test to make sure we can compile when the compiler doesn't
 # understand '-c -o'.
 
-required=gcc
+required=gcc # For cc-no-c-o.
 . test-init.sh
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
-# Make sure that $CC can be used after AM_PROG_CC_C_O.
-$CC -v || exit 1
+$CC --version; $CC -v; # For debugging.
 AC_OUTPUT
 END
 
@@ -44,25 +42,8 @@ int main ()
 }
 END
 
-cat > Mycomp << END
-#!/bin/sh
-
-case " \$* " in
- *\ -c*\ -o* | *\ -o*\ -c*)
-    exit 1
-    ;;
-esac
-
-# Use '$CC', not 'gcc', to honour the compiler chosen
-# by the testsuite setup.
-exec $CC "\$@"
-END
-
-chmod +x Mycomp
-
 # Make sure the compiler doesn't understand '-c -o'
-CC=$(pwd)/Mycomp
-export CC
+CC=$am_testaux_builddir/cc-no-c-o; export CC
 
 $ACLOCAL
 $AUTOCONF
diff --git a/t/ccnoco2.sh b/t/ccnoco2.sh
deleted file mode 100755
index 22f2c49..0000000
--- a/t/ccnoco2.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2006-2013 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 Automake requires AM_PROG_CC_C_O when either per-targets
-# flags or subdir objects are used.
-
-. test-init.sh
-
-cat >>configure.ac <<EOF
-AC_CONFIG_FILES([src/Makefile])
-AC_PROG_CC
-AC_OUTPUT
-EOF
-
-$ACLOCAL
-
-cat >Makefile.am <<EOF
-SUBDIRS = src
-bin_PROGRAMS = wish
-wish_SOURCES = a.c
-wish_CPPFLAGS = -DWHATEVER
-EOF
-
-mkdir src
-cat >src/Makefile.am <<EOF
-bin_PROGRAMS = wish2
-wish2_SOURCES = sub/a.c
-EOF
-
-AUTOMAKE_fails --copy --add-missing
-grep "^Makefile\.am:3:.* 'a\.c' with per-target flags.* 'AM_PROG_CC_C_O'" 
stderr
-grep "^src/Makefile\.am:2:.* 'sub/a\.c' in subdir.* 'AM_PROG_CC_C_O'" stderr
-
-rm -rf autom4te*.cache
-echo AM_PROG_CC_C_O >> configure.ac
-$ACLOCAL
-$AUTOMAKE -a
-
-:
diff --git a/t/ccnoco3.sh b/t/ccnoco3.sh
index 2ab8454..0379f73 100755
--- a/t/ccnoco3.sh
+++ b/t/ccnoco3.sh
@@ -16,12 +16,11 @@
 
 # Test to make sure 'compile' doesn't call 'mv SRC SRC'.
 
-required=gcc
+required=gcc # For cc-no-c-o.
 . test-init.sh
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 $CC --version; $CC -v; # For debugging.
 AC_OUTPUT
 END
@@ -42,25 +41,8 @@ int main ()
 }
 END
 
-cat > Mycomp << END
-#!/bin/sh
-
-case " \$* " in
- *\ -c*\ -o* | *\ -o*\ -c*)
-    exit 1
-    ;;
-esac
-
-# Use '$CC', not 'gcc', to honour the compiler chosen
-# by the testsuite setup.
-exec $CC "\$@"
-END
-
-chmod +x Mycomp
-
 # Make sure the compiler doesn't understand '-c -o'
-CC=$(pwd)/Mycomp
-export CC
+CC=$am_testaux_builddir/cc-no-c-o; export CC
 
 $ACLOCAL
 $AUTOCONF
diff --git a/t/ccnoco4.sh b/t/ccnoco4.sh
index 54b857a..beb02da 100755
--- a/t/ccnoco4.sh
+++ b/t/ccnoco4.sh
@@ -14,17 +14,17 @@
 # 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 Automake doesn't pass "-c -o" to  losing compiler when
-# the 'subdir-objects' is used but sources are only present in the
-# top-level directory.  Reported by Nick Bowler in the discussion on
-# automake bug#13378:
+# Check that Automake-generated C compilation rules don't mistakenly
+# use the "-c -o" options combination unconditionally (even with losing
+# compilers) when the 'subdir-objects' is used but sources are only
+# present in the top-level directory.  Reported by Nick Bowler in the
+# discussion on automake bug#13378:
 # <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#35>
 # <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#44>
 
-required=gcc
+required=gcc # For cc-no-c-o.
 . test-init.sh
 
-# We deliberately do not call AM_PROG_CC_C_O here.
 cat >> configure.ac << 'END'
 AC_PROG_CC
 $CC --version; $CC -v; # For debugging.
@@ -39,25 +39,8 @@ END
 
 echo 'int main (void) { return 0; }' > foo.c
 
-cat > Mycomp << END
-#!/bin/sh
-
-case " \$* " in
- *\ -c*\ -o* | *\ -o*\ -c*)
-    exit 1
-    ;;
-esac
-
-# Use '$CC', not 'gcc', to honour the compiler chosen
-# by the testsuite setup.
-exec $CC "\$@"
-END
-
-chmod +x Mycomp
-
-# Make sure the compiler doesn't understand '-c -o'.
-CC=$(pwd)/Mycomp
-export CC
+# Make sure the compiler doesn't understand '-c -o'
+CC=$am_testaux_builddir/cc-no-c-o; export CC
 
 $ACLOCAL
 $AUTOCONF
diff --git a/t/check8.sh b/t/check8.sh
index 669872e..e375db0 100755
--- a/t/check8.sh
+++ b/t/check8.sh
@@ -22,7 +22,6 @@ required='cc native'
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_OUTPUT
 END
 
diff --git a/t/compile4.sh b/t/compile4.sh
index a06aa87..ddabe31 100755
--- a/t/compile4.sh
+++ b/t/compile4.sh
@@ -46,7 +46,6 @@ absmainobj=$cwd/main.obj
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_PROG_AR
 AC_PROG_RANLIB
 AC_CONFIG_FILES([sub/Makefile])
diff --git a/t/cond11.sh b/t/cond11.sh
index 03c4077..7d729d8 100755
--- a/t/cond11.sh
+++ b/t/cond11.sh
@@ -47,7 +47,6 @@ END
 
 : > config.guess
 : > config.sub
-: > compile
 
 $ACLOCAL
 $AUTOCONF
diff --git a/t/cscope.tap b/t/cscope.tap
index 6eb8b58..97d5c9f 100755
--- a/t/cscope.tap
+++ b/t/cscope.tap
@@ -22,10 +22,10 @@ plan_ 18
 
 ocwd=$(pwd) || fatal_ "getting top-level directory"
 
-cat >> configure.ac << 'END'
-AC_CONFIG_FILES([sub/Makefile])
-m4_define([AM_PROG_CC_C_O], [:])
-AM_PROG_CC_C_O
+cat > configure.ac << 'END'
+AC_INIT([cscope-test], [1.0])
+AM_INIT_AUTOMAKE([subdir-objects])
+AC_CONFIG_FILES([Makefile sub/Makefile])
 AC_SUBST([CC],  [who-cares])
 AC_SUBST([CXX], [who-cares])
 AC_SUBST([FC],  [who-cares])
diff --git a/t/cxx-lt-demo.sh b/t/cxx-lt-demo.sh
index 233f786..d44852b 100755
--- a/t/cxx-lt-demo.sh
+++ b/t/cxx-lt-demo.sh
@@ -94,10 +94,12 @@ $AUTOCONF
 $AUTOMAKE --add-missing --copy
 
 ls -l . ax # For debugging.
-for f in ltmain.sh depcomp config.guess config.sub; do
+# Ideally, the 'compile' script should not be required by C++ compilers.
+# But alas, LT_INIT seems to invoke AC_PROG_CC anyway, and that brings in
+# that script.
+for f in ltmain.sh depcomp compile config.guess config.sub; do
   test -f ax/$f && test ! -h ax/$f || exit 1
 done
-test ! -e ax/compile # Not required by C++ compilers.
 
 cat > src/main.cc << 'END'
 #include "libfoo.h++"
diff --git a/t/depcomp-recover.sh b/t/depcomp-recover.sh
index bae759b..17f6af4 100755
--- a/t/depcomp-recover.sh
+++ b/t/depcomp-recover.sh
@@ -24,7 +24,6 @@ required=cc
 
 cat >> configure.ac <<'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_CONFIG_FILES([sub/Makefile])
 AC_OUTPUT
 END
diff --git a/t/depcomp8a.sh b/t/depcomp8a.sh
index 59619dc..626ab8c 100755
--- a/t/depcomp8a.sh
+++ b/t/depcomp8a.sh
@@ -24,7 +24,6 @@ required=cc
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_OUTPUT
 END
 
@@ -49,10 +48,13 @@ int bar (void)
 END
 
 $ACLOCAL
-$AUTOMAKE -a
+# FIXME: stop disabling the warnings in the 'unsupported' category
+# FIXME: once the 'subdir-objects' option has been mandatory.
+$AUTOMAKE -a -Wno-unsupported
 grep include Makefile.in # For debugging.
 grep 'include.*\./\$(DEPDIR)/foo\.P' Makefile.in
-grep 'include.*[^a-zA-Z0-9_/]sub/\$(DEPDIR)/bar\.P' Makefile.in
+
+LC_ALL=C grep 'include.*[^a-zA-Z0-9_/]sub/\$(DEPDIR)/bar\.P' Makefile.in
 $EGREP 'include.*/(\.|sub)/\$\(DEPDIR\)' Makefile.in && exit 1
 
 $AUTOCONF
diff --git a/t/depcomp8b.sh b/t/depcomp8b.sh
index b475496..aa5e705 100755
--- a/t/depcomp8b.sh
+++ b/t/depcomp8b.sh
@@ -24,13 +24,15 @@ required='cc libtoolize'
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_PROG_AR
 AC_PROG_LIBTOOL
 AC_OUTPUT
 END
 
 cat > Makefile.am << 'END'
+## FIXME: stop disabling the warnings in the 'unsupported' category
+## FIXME: once the 'subdir-objects' option has been mandatory.
+AUTOMAKE_OPTIONS = -Wno-unsupported
 lib_LTLIBRARIES = libzardoz.la
 libzardoz_la_SOURCES = foo.c sub/bar.c
 END
@@ -42,9 +44,10 @@ echo 'int bar (void) { return 0; }' > sub/bar.c
 libtoolize
 $ACLOCAL
 $AUTOMAKE -a
+
 grep include Makefile.in # For debugging.
 grep 'include.*\./\$(DEPDIR)/foo\.P' Makefile.in
-grep 'include.*[^a-zA-Z0-9_/]sub/\$(DEPDIR)/bar\.P' Makefile.in
+LC_ALL=C grep 'include.*[^a-zA-Z0-9_/]sub/\$(DEPDIR)/bar\.P' Makefile.in
 $EGREP 'include.*/(\.|sub)/\$\(DEPDIR\)' Makefile.in && exit 1
 
 $AUTOCONF
diff --git a/t/dist-auxdir-many-subdirs.sh b/t/dist-auxdir-many-subdirs.sh
index d49372a..ec1a964 100755
--- a/t/dist-auxdir-many-subdirs.sh
+++ b/t/dist-auxdir-many-subdirs.sh
@@ -63,6 +63,7 @@ END
   required_files='
     install-sh
     missing
+    compile
     depcomp
     py-compile
     test-driver
diff --git a/t/ext2.sh b/t/ext2.sh
index 83b241f..0cc9168 100755
--- a/t/ext2.sh
+++ b/t/ext2.sh
@@ -25,6 +25,7 @@ AC_PROG_CXX
 EOF
 
 cat >Makefile.am <<EOF
+AUTOMAKE_OPTIONS = subdir-objects
 bin_PROGRAMS = p q r
 p_SOURCES = a.cc b.cpp c.cxx
 q_SOURCES = sub/d.cc sub/e.cpp sub/f.cxx
diff --git a/t/extra-portability.sh b/t/extra-portability.sh
index 94dd799..ec983fd 100755
--- a/t/extra-portability.sh
+++ b/t/extra-portability.sh
@@ -40,7 +40,7 @@ $ACLOCAL
 
 cat >Makefile.am <<END
 EXTRA_LIBRARIES = libfoo.a
-libfoo_a_SOURCES = sub/foo.c
+libfoo_a_SOURCES = foo.c
 END
 
 # Sanity check: extra-portability warnings causes the expected error.
@@ -62,32 +62,33 @@ $AUTOMAKE -Wall -Wno-portability
 # Now, a setup where also a "simple" portability warning is present.
 #
 
-# Per-target flags require the use of AM_PROG_CC_C_O in configure.ac.
-echo libfoo_a_CPPFLAGS = -Dwhatever >> Makefile.am
+echo 'SUBDIRS = aux' >> Makefile.am
 
 # Enabling extra-portability enables portability as well ...
 AUTOMAKE_fails -Wextra-portability
-grep 'requires.*AM_PROG_CC_C_O' stderr
+grep "'aux'.*reserved on W32" stderr
 grep 'requires.*AM_PROG_AR' stderr
 # ... even if it had been previously disabled.
 AUTOMAKE_fails -Wno-portability -Wextra-portability
-grep 'requires.*AM_PROG_CC_C_O' stderr
+grep "'aux'.*reserved on W32" stderr
 grep 'requires.*AM_PROG_AR' stderr
 
 # Disabling extra-portability leaves portability intact (1).
 AUTOMAKE_fails -Wportability -Wno-extra-portability
-grep 'requires.*AM_PROG_CC_C_O' stderr
+grep "'aux'.*reserved on W32" stderr
 grep 'requires.*AM_PROG_AR' stderr && exit 1
 # Disabling extra-portability leaves portability intact (2).
 AUTOMAKE_fails -Wall -Wno-extra-portability
-grep 'requires.*AM_PROG_CC_C_O' stderr
+grep "'aux'.*reserved on W32" stderr
 grep 'requires.*AM_PROG_AR' stderr && exit 1
 
 # Enabling portability does not enable extra-portability.
 AUTOMAKE_fails -Wportability
-grep 'requires.*AM_PROG_CC_C_O' stderr
+grep "'aux'.*reserved on W32" stderr
 grep 'requires.*AM_PROG_AR' stderr && exit 1
 
+mkdir aux || skip_ "couldn't create directory named 'aux'"
+
 # Disabling portability disables extra-portability.
 $AUTOMAKE -Wno-portability
 $AUTOMAKE -Wextra-portability -Wno-portability
diff --git a/t/fort2.sh b/t/fort2.sh
index 76e189e..3a62237 100755
--- a/t/fort2.sh
+++ b/t/fort2.sh
@@ -35,6 +35,8 @@ AC_OUTPUT
 END
 
 cat >Makefile.am <<'END'
+AUTOMAKE_OPTIONS = subdir-objects
+FC = fake-fc
 bin_PROGRAMS = hello goodbye
 hello_SOURCES = hello.f90 foo.f95 sub/bar.f95 hi.f03 sub/howdy.f03 \
                 greets.f08 sub/bonjour.f08
@@ -64,7 +66,7 @@ $AUTOCONF
 touch hello.f90 foo.f95 sub/bar.f95 hi.f03 sub/howdy.f03 greets.f08 \
       sub/bonjour.f08 bye.f95 sub/baz.f90
 
-$MAKE -n FC=fake-fc \
+$MAKE -n \
   address@hidden address@hidden address@hidden address@hidden \
   > stdout || { cat stdout; exit 1; }
 cat stdout
diff --git a/t/fort4.sh b/t/fort4.sh
index c14b926..2d01ee4 100755
--- a/t/fort4.sh
+++ b/t/fort4.sh
@@ -87,7 +87,7 @@ test-obj:
 END
 
 $ACLOCAL
-$AUTOMAKE -a
+$AUTOMAKE -a -Wno-unsupported
 # The Fortran 77 linker should be preferred:
 grep '.\$(FCLINK)' Makefile.in && exit 1
 
diff --git a/t/fort5.sh b/t/fort5.sh
index 88fefe5..d090f6f 100755
--- a/t/fort5.sh
+++ b/t/fort5.sh
@@ -75,7 +75,9 @@ END
 
 libtoolize --force
 $ACLOCAL
-$AUTOMAKE -a
+# FIXME: stop disabling the warnings in the 'unsupported' category
+# FIXME: once the 'subdir-objects' option has been mandatory.
+$AUTOMAKE -a -Wno-unsupported
 $AUTOCONF
 
 # This test requires Libtool >= 2.0.  Earlier Libtool does not
diff --git a/t/get-sysconf.sh b/t/get-sysconf.sh
index 4c68108..bd4932f 100755
--- a/t/get-sysconf.sh
+++ b/t/get-sysconf.sh
@@ -46,6 +46,14 @@ $PERL -V || st=1
 # happen with older perl installation, or on MinGW/MSYS.
 $PERL -e 'use TAP::Parser; print $TAP::Parser::VERSION, "\n"' || :
 
+# It's OK if the selected Lex and Yacc programs don't know how to print
+# the version number or the help screen; those are usually available only
+# for Flex and Bison.
+$LEX --version || :
+$LEX --help || :
+$YACC --version || :
+$YACC --help || :
+
 cat "$am_top_builddir/config.log" || st=1
 cat "$am_top_builddir/t/wrap/aclocal-$APIVERSION" || st=1
 cat "$am_top_builddir/t/wrap/automake-$APIVERSION" || st=1
diff --git a/t/gettext-macros.sh b/t/gettext-macros.sh
index 8ef4ef4..5a93240 100755
--- a/t/gettext-macros.sh
+++ b/t/gettext-macros.sh
@@ -62,7 +62,10 @@ AM_GNU_GETTEXT
 AM_GNU_GETTEXT_VERSION([$autopoint_version])
 END
 
-if ! ($am_gettextize_command --force && test -f m4/gettext.m4); then
+if $am_gettextize_command --force && test -f m4/gettext.m4; then
+  echo "ACLOCAL_PATH='$(pwd)/m4':\$ACLOCAL_PATH" >> get.sh
+  echo "export ACLOCAL_PATH" >> get.sh
+else
   # Older versions of gettext might not have a gettextize program
   # available, but this doesn't mean the user hasn't made the gettext
   # macros available, e.g., by properly setting ACLOCAL_PATH.
@@ -76,12 +79,12 @@ if ! ($am_gettextize_command --force && test -f 
m4/gettext.m4); then
   fi
 fi
 
-echo "ACLOCAL_PATH='$(pwd)/m4':\$ACLOCAL_PATH" >> get.sh
-echo "export ACLOCAL_PATH" >> get.sh
-
+cat >> get.sh <<'END'
 # Even recent versions of gettext used the now-obsolete 'AM_PROG_MKDIR_P'
 # m4 macro.  So we need the following to avoid spurious errors.
-echo 'AC_DEFUN([AM_PROG_MKDIR_P], [AC_PROG_MKDIR_P(address@hidden)])' 
>m4/am-mkdirp.m4
+ACLOCAL="$ACLOCAL -Wno-obsolete"
+AUTOMAKE="$AUTOMAKE -Wno-obsolete"
+END
 
 . ./get.sh
 
diff --git a/t/instdir-ltlib.sh b/t/instdir-ltlib.sh
index 1def3f7..bb6e822 100755
--- a/t/instdir-ltlib.sh
+++ b/t/instdir-ltlib.sh
@@ -23,7 +23,6 @@ required='cc libtoolize'
 
 cat >>configure.ac <<'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_PROG_AR
 AC_PROG_LIBTOOL
 AM_PATH_PYTHON
diff --git a/t/instdir-prog.sh b/t/instdir-prog.sh
index b5a6563..a5adfa6 100755
--- a/t/instdir-prog.sh
+++ b/t/instdir-prog.sh
@@ -23,7 +23,6 @@ required=cc
 
 cat >>configure.ac <<'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_PROG_AR
 AC_PROG_RANLIB
 AM_PATH_PYTHON
diff --git a/t/lex-line.sh b/t/lex-line.sh
index 5eaf33f..36faef1 100755
--- a/t/lex-line.sh
+++ b/t/lex-line.sh
@@ -24,7 +24,6 @@ required='cc lex'
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_PROG_LEX
 AC_OUTPUT
 END
@@ -67,7 +66,9 @@ c_outputs='zardoz.c dir/bar-quux.c'
 
 $ACLOCAL
 $AUTOCONF
-$AUTOMAKE -a
+# FIXME: stop disabling the warnings in the 'unsupported' category
+# FIXME: once the 'subdir-objects' option has been mandatory.
+$AUTOMAKE -a -Wno-unsupported
 
 for vpath in : false; do
 
diff --git a/t/lex-multiple.sh b/t/lex-multiple.sh
new file mode 100755
index 0000000..e1c71a1
--- /dev/null
+++ b/t/lex-multiple.sh
@@ -0,0 +1,107 @@
+#! /bin/sh
+# Copyright (C) 2012 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Check that we can build a program using several lexers at once
+# (assuming Flex is used).  That is a little tricky, but possible.
+# See:
+# <http://lists.gnu.org/archive/html/automake/2010-10/msg00081.html>
+# <http://lists.gnu.org/archive/html/automake/2009-03/msg00061.html>
+
+required='cc flex'
+. test-init.sh
+
+cat >> configure.ac << 'END'
+AC_PROG_CC
+AC_PROG_LEX
+AM_PROG_AR
+AC_PROG_RANLIB
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = zardoz
+
+zardoz_SOURCES = main.c
+# Convenience libraries.
+noinst_LIBRARIES = liblex.a liblex-foo.a liblex-bar.a
+zardoz_LDADD = $(noinst_LIBRARIES)
+
+liblex_a_SOURCES = 0.l
+
+# We need the output to always be named 'lex.yy.c', in order for
+# ylwrap to pick it up.
+liblex_foo_a_LFLAGS = -Pfoo --outfile=lex.yy.c
+liblex_foo_a_SOURCES = a.l
+
+# Ditto.
+liblex_bar_a_LFLAGS = -Pbar_ --outfile=lex.yy.c
+liblex_bar_a_SOURCES = b.l
+END
+
+cat > main.c << 'END'
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+int main (int argc, char *argv[])
+{
+  if (argc != 2)
+    abort ();
+  else if (!strcmp(argv[1], "--vanilla"))
+    return (yylex () != 121);
+  else if (!strcmp(argv[1], "--foo"))
+    return (foolex () != 121);
+  else if (!strcmp(argv[1], "--bar"))
+    return (bar_lex () != 121);
+  else
+    abort ();
+}
+END
+
+cat > 0.l << 'END'
+%{
+#define YY_NO_UNISTD_H 1
+%}
+%%
+"VANILLA" { printf (":%s:\n", yytext); return 121; }
+. { printf (":%s:\n", yytext); return 1; }
+%%
+/* Avoid possible link errors. */
+int yywrap (void) { return 1; }
+END
+
+sed 's/VANILLA/FOO/' 0.l > a.l
+sed 's/VANILLA/BAR/' 0.l > b.l
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --add-missing
+
+./configure
+$MAKE
+
+if ! cross_compiling; then
+  echo VANILLA | ./zardoz --vanilla
+  echo FOO | ./zardoz --foo
+  echo BAR | ./zardoz --bar
+  ./zardoz --vanilla </dev/null && exit 1
+  echo BAR | ./zardoz --foo && exit 1
+  : For shells with busted 'set -e'.
+fi
+
+$MAKE distcheck
+
+:
diff --git a/t/lex-subobj-nodep.sh b/t/lex-subobj-nodep.sh
index 889b528..b4c24de 100755
--- a/t/lex-subobj-nodep.sh
+++ b/t/lex-subobj-nodep.sh
@@ -22,7 +22,6 @@ required='cc lex'
 
 cat >>configure.ac <<\END
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_PROG_LEX
 AC_OUTPUT
 END
diff --git a/t/lex5.sh b/t/lex5.sh
index 0700e6e..57276fd 100755
--- a/t/lex5.sh
+++ b/t/lex5.sh
@@ -21,7 +21,6 @@ required='cc lex'
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_PROG_LEX
 AC_OUTPUT
 END
diff --git a/t/libobj19.sh b/t/libobj19.sh
index 471a645..f0bca2c 100755
--- a/t/libobj19.sh
+++ b/t/libobj19.sh
@@ -22,7 +22,6 @@ required=cc
 cat >> configure.ac << 'END'
 AC_CONFIG_LIBOBJ_DIR([libobj-dir])
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_PROG_AR
 AC_PROG_RANLIB
 AC_LIBOBJ([foobar])
@@ -54,7 +53,6 @@ extern int dummy;
 END
 
 cp "$am_scriptdir/ar-lib" . || fatal_ "fetching auxiliary script 'ar-lib'"
-cp "$am_scriptdir/compile" . || fatal_ "fetching auxiliary script 'compile'"
 
 $ACLOCAL
 $AUTOCONF
diff --git a/t/libtool3.sh b/t/libtool3.sh
index 3e0e8ce..106aaab 100755
--- a/t/libtool3.sh
+++ b/t/libtool3.sh
@@ -23,12 +23,15 @@ required='cc libtoolize'
 cat >> configure.ac << 'END'
 AC_PROG_CC
 AM_PROG_AR
-AM_PROG_CC_C_O
 AM_PROG_LIBTOOL
 AC_OUTPUT
 END
 
 cat > Makefile.am << 'END'
+# FIXME: stop disabling the warnings in the 'unsupported' category
+# FIXME: once the 'subdir-objects' option has been mandatory.
+AUTOMAKE_OPTIONS = -Wno-unsupported
+
 lib_LTLIBRARIES = lib0.la liba/liba.la
 lib0_la_SOURCES = 0.c
 liba_liba_la_SOURCES = liba/a.c
diff --git a/t/libtool9.sh b/t/libtool9.sh
index 19905c1..cd3c276 100755
--- a/t/libtool9.sh
+++ b/t/libtool9.sh
@@ -24,7 +24,6 @@ required='cc libtoolize'
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_PROG_AR
 AC_LIBTOOL_DLOPEN
 AM_PROG_LIBTOOL
diff --git a/t/lisp-flags.sh b/t/lisp-flags.sh
index 64b67f1..f942461 100755
--- a/t/lisp-flags.sh
+++ b/t/lisp-flags.sh
@@ -18,6 +18,10 @@
 
 . test-init.sh
 
+# Don't get fooled when running as an Emacs subprocess.  This is
+# for the benefit of the "make -e" invocation below.
+unset EMACS
+
 cat > Makefile.am << 'EOF'
 lisp_LISP = foo.el
 AM_ELCFLAGS = __am_elcflags__
diff --git a/t/ltinstloc.sh b/t/ltinstloc.sh
index b9670cb..bae3d49 100755
--- a/t/ltinstloc.sh
+++ b/t/ltinstloc.sh
@@ -35,6 +35,7 @@ lib_LTLIBRARIES = liba1.la sub/liba2.la
 pkglib_LTLIBRARIES = liba1.la
 nobase_lib_LTLIBRARIES = sub/liba2.la
 endif
+AUTOMAKE_OPTIONS = subdir-objects
 END
 
 libtoolize
diff --git a/t/ltorder.sh b/t/ltorder.sh
index fe9d7bd..c243ac7 100755
--- a/t/ltorder.sh
+++ b/t/ltorder.sh
@@ -27,6 +27,7 @@ AC_OUTPUT
 END
 
 cat >Makefile.am <<'END'
+AUTOMAKE_OPTIONS = subdir-objects
 nobase_lib_LTLIBRARIES = liba1.la sub/liba2.la sub/liba3.la liba4.la liba5.la
 sub_liba2_la_LIBADD = liba1.la
 sub_liba3_la_LIBADD = sub/liba2.la
diff --git a/t/parallel-tests-suffix-prog.sh b/t/parallel-tests-suffix-prog.sh
index edef428..7b924a3 100755
--- a/t/parallel-tests-suffix-prog.sh
+++ b/t/parallel-tests-suffix-prog.sh
@@ -23,11 +23,11 @@ required='cc native'
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_OUTPUT
 END
 
 cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = subdir-objects
 ## Note that automake should not match the '/test' part of 'sub/test' as
 ## '.test' suffix, nor the '/chk' part of 'sub/chk' as '.chk' suffix.
 TESTS = $(dist_TESTS) $(check_PROGRAMS)
diff --git a/t/per-target-flags.sh b/t/per-target-flags.sh
index 9e5be3b..6385f2c 100755
--- a/t/per-target-flags.sh
+++ b/t/per-target-flags.sh
@@ -26,7 +26,6 @@ AC_INIT([$me], [1.0])
 AM_INIT_AUTOMAKE([-Wno-extra-portability])
 AC_CONFIG_FILES([$makefiles])
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_PROG_CXX
 AC_PROG_RANLIB
 AC_OUTPUT
@@ -55,15 +54,8 @@ cat - libMakefile.am > libMakefile2.am << 'END'
 AUTOMAKE_OPTIONS = no-dependencies
 END
 
-# Make sure 'compile' is required.
-for m in $makefiles; do
-  AUTOMAKE_fails $m
-  $EGREP " required file.* '(compile|\./compile)'" stderr
-done
-
 makefiles=$(for mkf in $makefiles; do echo $mkf.in; done)
 
-: > compile
 $AUTOMAKE
 
 # Sanity check.
diff --git a/t/pr224.sh b/t/pr224.sh
index 34f3bfd..d6b75e3 100755
--- a/t/pr224.sh
+++ b/t/pr224.sh
@@ -42,7 +42,6 @@ EOF
 
 cat >>configure.ac <<'EOF'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_OUTPUT
 EOF
 
diff --git a/t/pr401.sh b/t/pr401.sh
index a9f6e27..cb58b0a 100755
--- a/t/pr401.sh
+++ b/t/pr401.sh
@@ -45,7 +45,6 @@ cat >>configure.ac << 'EOF'
 ## These lines are activated for later tests
 #: AC_CONFIG_LIBOBJ_DIR([lib])
 AC_PROG_CC
-#x AM_PROG_CC_C_O
 AC_LIBOBJ([feep])
 AC_LIBSOURCE([feep.c])
 AM_PROG_AR
@@ -107,7 +106,7 @@ $MAKE distcheck
 ## Test using LIBOBJS from a sibling directory. ##
 ## -------------------------------------------- ##
 
-sed 's/#x //; s/lib\/Makefile //' configure.ac >configure.tmp
+sed 's/lib\/Makefile //' configure.ac >configure.tmp
 mv -f configure.tmp configure.ac
 
 cat >Makefile.am <<'EOF'
diff --git a/t/pr401b.sh b/t/pr401b.sh
index d699de0..202587f 100755
--- a/t/pr401b.sh
+++ b/t/pr401b.sh
@@ -45,7 +45,6 @@ cat >>configure.ac << 'EOF'
 ## These lines are activated for later tests
 #: AC_CONFIG_LIBOBJ_DIR([lib])
 AC_PROG_CC
-#x AM_PROG_CC_C_O
 AC_LIBOBJ([feep])
 AC_LIBSOURCE([feep.c])
 AM_PROG_AR
@@ -109,7 +108,7 @@ $MAKE distcheck
 ## Test using LTLIBOBJS from a sibling directory. ##
 ## ---------------------------------------------- ##
 
-sed 's/#x //; s/lib\/Makefile //' configure.ac >configure.tmp
+sed 's/lib\/Makefile //' configure.ac >configure.tmp
 mv -f configure.tmp configure.ac
 
 cat >Makefile.am <<'EOF'
diff --git a/t/pr401c.sh b/t/pr401c.sh
index 3e225d0..d4499f0 100755
--- a/t/pr401c.sh
+++ b/t/pr401c.sh
@@ -47,7 +47,6 @@ cat >>configure.ac << 'EOF'
 ## These lines are activated for later tests.
 #: AC_CONFIG_LIBOBJ_DIR([lib])
 AC_PROG_CC
-#x AM_PROG_CC_C_O
 AM_PROG_AR
 AC_PROG_RANLIB
 AC_FUNC_ALLOCA
@@ -110,7 +109,7 @@ $MAKE distcheck
 ## Test using ALLOCA from a sibling directory. ##
 ## ------------------------------------------- ##
 
-sed 's/#x //; s/lib\/Makefile //' configure.ac >configure.tmp
+sed 's/lib\/Makefile //' configure.ac >configure.tmp
 mv -f configure.tmp configure.ac
 
 cat >Makefile.am <<'EOF'
diff --git a/t/remake-config-status-dependencies.sh 
b/t/remake-config-status-dependencies.sh
index c625661..6fc9ee8 100755
--- a/t/remake-config-status-dependencies.sh
+++ b/t/remake-config-status-dependencies.sh
@@ -47,7 +47,6 @@ $MAKE test-1
 
 $sleep
 echo EXTRA_VERSION=2.1 > version.sh
-using_gmake || $MAKE Makefile
 $MAKE test-2
 
 $MAKE distclean
@@ -57,7 +56,6 @@ cd build
 $MAKE test-2
 $sleep
 echo EXTRA_VERSION=3.14 > ../version.sh
-using_gmake || $MAKE Makefile
 $MAKE test-3
 
 # Contents of $(CONFIG_STATUS_DEPENDENCIES) are *not* to be
diff --git a/t/remake-configure-dependencies.sh 
b/t/remake-configure-dependencies.sh
index 2e5df88..c24a8ca 100755
--- a/t/remake-configure-dependencies.sh
+++ b/t/remake-configure-dependencies.sh
@@ -62,7 +62,6 @@ $AUTOMAKE
 $MAKE test-1
 
 (echo '#!/bin/sh' && echo 'printf %s 2.1') > print-version
-using_gmake || $MAKE Makefile
 $MAKE test-2
 
 $MAKE distclean
@@ -71,7 +70,6 @@ cd build
 ../configure
 $MAKE test-2
 (echo '#!/bin/sh' && echo 'printf %s 3.14') > ../print-version
-using_gmake || $MAKE Makefile
 $MAKE test-3
 
 # Check that $(CONFIGURE_DEPENDENCIES) are automatically distributed.
diff --git a/t/rm-f-probe.sh b/t/rm-f-probe.sh
new file mode 100755
index 0000000..1cb220a
--- /dev/null
+++ b/t/rm-f-probe.sh
@@ -0,0 +1,74 @@
+#! /bin/sh
+# Copyright (C) 2013 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/>.
+
+# Verify our probe that checks that "rm -f" doesn't complain if called
+# without file operands works as expected.  See automake bug#10828.
+
+. test-init.sh
+
+echo AC_OUTPUT >> configure.ac
+: > Makefile.am
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+
+mkdir bin
+cat > bin/rm <<'END'
+#!/bin/sh
+set -e; set -u;
+PATH=$original_PATH; export PATH
+rm_opts=
+while test $# -gt 0; do
+  case $1 in
+    -*) rm_opts="$rm_opts $1";;
+     *) break;;
+  esac
+  shift
+done
+if test $# -eq 0; then
+  echo "Oops, fake rm called without arguments" >&2
+  exit 1
+else
+  exec rm $rm_opts "$@"
+fi
+END
+chmod a+x bin/rm
+
+original_PATH=$PATH
+PATH=$(pwd)/bin$PATH_SEPARATOR$PATH
+export PATH original_PATH
+
+rm -f && exit 99 # Sanity check.
+
+./configure 2>stderr && { cat stderr >&2; exit 1; }
+cat stderr >&2
+
+grep "'rm' program.* unable to run without file operands" stderr
+$FGREP "tell address@hidden about your system" stderr
+$FGREP "install GNU coreutils" stderr
+$EGREP "(^| |')ACCEPT_INFERIOR_RM_PROGRAM($| |')" stderr
+
+ACCEPT_INFERIOR_RM_PROGRAM=yes; export ACCEPT_INFERIOR_RM_PROGRAM
+
+./configure
+$MAKE
+$MAKE distcheck
+
+# For the sake of our exit trap.
+PATH=$original_PATH; export PATH
+
+:
diff --git a/t/am-prog-cc-stdc-no-more.sh b/t/self-check-cc-no-c-o.sh
similarity index 57%
rename from t/am-prog-cc-stdc-no-more.sh
rename to t/self-check-cc-no-c-o.sh
index a43e2d1..69809b7 100755
--- a/t/am-prog-cc-stdc-no-more.sh
+++ b/t/self-check-cc-no-c-o.sh
@@ -14,30 +14,22 @@
 # 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 any attempt to use the obsolete macro AM_CONFIG_HEADER
-# elicits clear and explicit fatal errors.
+# Check that our fake "C compiler" that doesn't grasp the '-c' and
+# '-o' command-line options passed together, used to enhance testsuite
+# coverage.
 
+required=gcc # Our fake compiler uses gcc.
+am_create_testdir=empty
 . test-init.sh
 
-geterr ()
-{
-    "$@" -Wnone 2>stderr && { cat stderr >&2; exit 1; }
-    cat stderr >&2
-    grep "^configure\.ac:4:.*'AM_PROG_CC_STDC'.*obsolete" stderr
-    grep "'AC_PROG_CC'.* instead" stderr
-}
+CC=$am_testaux_builddir/cc-no-c-o; export CC
 
-$ACLOCAL
-mv aclocal.m4 aclocal.sav
-
-echo AM_PROG_CC_STDC >> configure.ac
-
-geterr $ACLOCAL
-test ! -f aclocal.m4
-
-cat aclocal.sav "$am_automake_acdir"/obsolete-err.m4 > aclocal.m4
-
-geterr $AUTOCONF
-geterr $AUTOMAKE
+echo 'int main (void) { return 0; }' > foo.c
+$CC -c foo.c
+test -f foo.o || test -f foo.obj
+$CC -c -o bar.o foo.c 2>stderr && { cat stderr >&2; exit 1; }
+cat stderr >&2
+grep "both '-o' and '-c' seen on the command line" stderr
+test ! -e bar.o && test ! -e bar.obj
 
 :
diff --git a/t/self-check-dir.tap b/t/self-check-dir.tap
index 87034b3..2dd13cf 100755
--- a/t/self-check-dir.tap
+++ b/t/self-check-dir.tap
@@ -65,7 +65,7 @@ do_check 'do not pre-populate testdir' \
 do_check 'do not create nor chdir in testdir' \
          'am_create_testdir=no' \
          'test ! -e t/_self.dir || exit 1
-          grep "compare-autodiffs" maint/maint.mk || exit 1
+          grep "compare-autodiffs" maintainer/maint.mk || exit 1
           case $(pwd) in '"$cwd"') : ;; *) exit 1;; esac'
 
 :
diff --git a/t/silent-c.sh b/t/silent-c.sh
index dcf544b..77c72c4 100755
--- a/t/silent-c.sh
+++ b/t/silent-c.sh
@@ -24,7 +24,6 @@ mkdir sub
 
 cat >>configure.ac <<'EOF'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_OUTPUT
 EOF
 
diff --git a/t/silent-lex.sh b/t/silent-lex.sh
index 0dee197..20d4c7c 100755
--- a/t/silent-lex.sh
+++ b/t/silent-lex.sh
@@ -20,7 +20,6 @@ required='cc lex'
 . test-init.sh
 
 cat >>configure.ac <<'EOF'
-AM_PROG_CC_C_O
 AC_PROG_LEX
 AC_OUTPUT
 EOF
diff --git a/t/silent-lt.sh b/t/silent-lt.sh
index d14377a..3d3023e 100755
--- a/t/silent-lt.sh
+++ b/t/silent-lt.sh
@@ -25,7 +25,6 @@ mkdir sub
 cat >>configure.ac <<'EOF'
 AC_PROG_CC
 AM_PROG_AR
-AM_PROG_CC_C_O
 AC_PROG_LIBTOOL
 AC_OUTPUT
 EOF
diff --git a/t/silent-many-languages.sh b/t/silent-many-languages.sh
index 34183df..f3c11d7 100755
--- a/t/silent-many-languages.sh
+++ b/t/silent-many-languages.sh
@@ -84,7 +84,6 @@ do_and_check_verbose_build ()
 }
 
 cat >>configure.ac <<'EOF'
-AM_PROG_CC_C_O
 AC_PROG_F77
 AC_PROG_FC
 AC_PROG_LEX
diff --git a/t/silent-yacc.sh b/t/silent-yacc.sh
index 0f4bccf..eba36b5 100755
--- a/t/silent-yacc.sh
+++ b/t/silent-yacc.sh
@@ -20,7 +20,7 @@ required='cc yacc'
 . test-init.sh
 
 cat >>configure.ac <<'EOF'
-AM_PROG_CC_C_O
+AC_PROG_CC
 AC_PROG_YACC
 AC_OUTPUT
 EOF
diff --git a/t/specflg-dummy.sh b/t/specflg-dummy.sh
index 47c2e3d..56a1c1f 100755
--- a/t/specflg-dummy.sh
+++ b/t/specflg-dummy.sh
@@ -64,7 +64,6 @@ AC_PROG_RANLIB
 AC_PROG_LIBTOOL
 AM_PROG_UPC
 AC_PROG_OBJC
-AM_PROG_CC_C_O
 END
 
 cat > Makefile.am <<'END'
diff --git a/t/specflg6.sh b/t/specflg6.sh
index 8a8f9a3..5e30fa7 100755
--- a/t/specflg6.sh
+++ b/t/specflg6.sh
@@ -22,7 +22,6 @@
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_CONDITIONAL([BAR], [true])
 END
 
@@ -36,8 +35,6 @@ foo_CFLAGS = -DFOO
 foo_SOURCES = foo.c
 END
 
-: > compile
-
 $ACLOCAL
 $AUTOMAKE
 
diff --git a/t/specflg7.sh b/t/specflg7.sh
index ee3786e..0a40b5d 100755
--- a/t/specflg7.sh
+++ b/t/specflg7.sh
@@ -21,7 +21,6 @@ required='cc native'
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_OUTPUT
 END
 
diff --git a/t/specflg8.sh b/t/specflg8.sh
index 3bb785b..5e51053 100755
--- a/t/specflg8.sh
+++ b/t/specflg8.sh
@@ -23,7 +23,6 @@ required='cc native'
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_OUTPUT
 END
 
diff --git a/t/specflg9.sh b/t/specflg9.sh
index 0ee90f1..4f3d3b0 100755
--- a/t/specflg9.sh
+++ b/t/specflg9.sh
@@ -20,11 +20,11 @@
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_OUTPUT
 END
 
 cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = subdir-objects
 bin_PROGRAMS = zzfoo zzbar
 zzfoo_SOURCES = sub/foo.c
 zzbar_SOURCES = bar.c
diff --git a/t/spy-rm.tap b/t/spy-rm.tap
index 29840ab..3b8dd2d 100755
--- a/t/spy-rm.tap
+++ b/t/spy-rm.tap
@@ -19,10 +19,10 @@
 # to hold on all non-museum systems, and will soon be mandated
 # by POSIX as well) in future version of automake, to simplify
 # automake-provided cleanup rules.
-# References:
-#  <http://lists.gnu.org/archive/html/bug-autoconf/2012-02/msg00002.html>
-#  <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10819>
-#  <http://austingroupbugs.net/view.php?id=542>
+# See automake bug#10828.
+# Other references:
+# <http://lists.gnu.org/archive/html/bug-autoconf/2012-02/msg00002.html>
+# <http://austingroupbugs.net/view.php?id=542>
 
 am_create_testdir=empty
 . test-init.sh
diff --git a/t/subobj-c.sh b/t/subobj-c.sh
index 41783e1..5d7b24a 100755
--- a/t/subobj-c.sh
+++ b/t/subobj-c.sh
@@ -22,7 +22,6 @@ required=cc
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_PROG_AR
 AC_PROG_RANLIB
 AC_OUTPUT
@@ -68,12 +67,14 @@ int answer (void)
 }
 END
 
+rm -f compile # We want to check '--add-missing' installs this.
+
 $ACLOCAL
 $AUTOMAKE --add-missing 2>stderr || { cat stderr >&2; exit 1; }
 cat stderr >&2
 
 # Make sure compile is installed, and that Automake says so.
-grep 'install.*compile' stderr
+grep '^configure\.ac:4:.*install.*compile' stderr
 test -f compile
 
 $EGREP '[^/](a|b|foo)\.\$(OBJEXT)' Makefile.in && exit 1
diff --git a/t/subobj-clean-lt-pr10697.sh b/t/subobj-clean-lt-pr10697.sh
index 7887029..bd13576 100755
--- a/t/subobj-clean-lt-pr10697.sh
+++ b/t/subobj-clean-lt-pr10697.sh
@@ -28,7 +28,6 @@ cat >> configure.ac << 'END'
 AM_PROG_AR
 AC_PROG_LIBTOOL
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_OUTPUT
 END
 
diff --git a/t/subobj-clean-pr10697.sh b/t/subobj-clean-pr10697.sh
index bb0faaf..4b732ab 100755
--- a/t/subobj-clean-pr10697.sh
+++ b/t/subobj-clean-pr10697.sh
@@ -26,7 +26,6 @@ required=cc
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_CONFIG_FILES([get-objext.sh:get-objext.in])
 AC_OUTPUT
 END
diff --git a/t/subobj-cxx.sh b/t/subobj-cxx.sh
index a32a45d..18641da 100755
--- a/t/subobj-cxx.sh
+++ b/t/subobj-cxx.sh
@@ -78,7 +78,6 @@ END
 
 $ACLOCAL
 $AUTOMAKE -a
-test ! -f compile # This is not needed by C++ support.
 $EGREP '[^/](a|b|foo)\.\$(OBJEXT)' Makefile.in && exit 1
 
 $AUTOCONF
diff --git a/t/subobj-libtool.sh b/t/subobj-libtool.sh
index ab84234..8afad6b 100755
--- a/t/subobj-libtool.sh
+++ b/t/subobj-libtool.sh
@@ -21,7 +21,6 @@ required='cc libtoolize'
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_PROG_AR
 AC_PROG_LIBTOOL
 AC_OUTPUT
@@ -55,11 +54,11 @@ echo 'int three (void) { return 3; }' > sub/subsub/3.c
 libtoolize
 $ACLOCAL
 
+# Make sure compile is installed, and that Automake says so.
+rm -f compile
 $AUTOMAKE --add-missing 2>stderr || { cat stderr >&2; exit 1; }
 cat stderr >&2
-
-# Make sure compile is installed, and that Automake says so.
-grep 'install.*compile' stderr
+grep '^configure\.ac:4:.*install.*compile' stderr
 test -f compile
 
 grep '[^/][123]\.lo' Makefile.in && exit 1
diff --git a/t/subobj11a.sh b/t/subobj11a.sh
index f9caeaf..33d03d0 100755
--- a/t/subobj11a.sh
+++ b/t/subobj11a.sh
@@ -35,7 +35,6 @@ required=cc
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_OUTPUT
 END
 
diff --git a/t/subobj5.sh b/t/subobj5.sh
index 62373fe..17c60fd 100755
--- a/t/subobj5.sh
+++ b/t/subobj5.sh
@@ -23,7 +23,6 @@ required=cc
 cat >> configure.ac << 'END'
 AC_CONFIG_FILES([generic/Makefile])
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_OUTPUT
 END
 
diff --git a/t/subobj7.sh b/t/subobj7.sh
index 2d997c7..de73cc2 100755
--- a/t/subobj7.sh
+++ b/t/subobj7.sh
@@ -21,11 +21,11 @@
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_OUTPUT
 END
 
 cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = subdir-objects
 bin_PROGRAMS = wish
 wish_SOURCES = foo.c generic/a.c
 END
diff --git a/t/subobj8.sh b/t/subobj8.sh
index 41e581d..99d0e1b 100755
--- a/t/subobj8.sh
+++ b/t/subobj8.sh
@@ -24,7 +24,6 @@ AC_INIT([$me], [1.0])
 AC_CONFIG_AUX_DIR([tools])
 AM_INIT_AUTOMAKE
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_CONFIG_FILES([Makefile foo/Makefile])
 AC_OUTPUT
 END
diff --git a/t/subpkg-yacc.sh b/t/subpkg-yacc.sh
index c0ab0f5..fc637cc 100755
--- a/t/subpkg-yacc.sh
+++ b/t/subpkg-yacc.sh
@@ -17,6 +17,7 @@
 # Check that ylwrap is installed properly, and $(YLWRAP) us defined
 # properly, when a subpackage is involved.
 
+am_create_testdir=empty
 required='cc yacc'
 . test-init.sh
 
@@ -54,12 +55,11 @@ mkdir lib/src
 
 cat >lib/configure.ac <<'EOF'
 AC_INIT([lib], [2.3])
-AM_INIT_AUTOMAKE
+AM_INIT_AUTOMAKE([subdir-objects])
 AC_PROG_RANLIB
 AC_PROG_YACC
 dnl This comes after YACC and RANLIB checks, deliberately.
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_PROG_AR
 AC_CONFIG_HEADERS([config.h:config.hin])
 AC_CONFIG_FILES([Makefile])
@@ -112,16 +112,16 @@ EOF
 
 $ACLOCAL
 $AUTOCONF
-$AUTOMAKE
+$AUTOMAKE -a
 
-test ! -f compile
+test ! -f ylwrap
 cd lib
 $ACLOCAL
 $AUTOCONF
 $AUTOHEADER
 $AUTOMAKE --add-missing
 cd ..
-test -f compile
+test -f ylwrap
 
 ./configure
 
diff --git a/t/subpkg.sh b/t/subpkg.sh
index b52a985..d7f117a 100755
--- a/t/subpkg.sh
+++ b/t/subpkg.sh
@@ -24,7 +24,6 @@ mkdir m4
 cat >m4/foo.m4 <<'EOF'
 AC_DEFUN([FOO],[
   AC_REQUIRE([AC_PROG_CC])
-  AC_REQUIRE([AM_PROG_CC_C_O])
   AC_OUTPUT
 ])
 EOF
@@ -63,7 +62,7 @@ mkdir lib/src
 
 cat >lib/configure.ac <<'EOF'
 AC_INIT([lib], [2.3])
-AM_INIT_AUTOMAKE
+AM_INIT_AUTOMAKE([subdir-objects])
 AC_CONFIG_MACRO_DIR([../m4])
 AM_PROG_AR
 AC_PROG_RANLIB
diff --git a/t/suffix-custom-subobj-and-specflg.sh 
b/t/suffix-custom-subobj-and-specflg.sh
index 68911c9..298a74e 100755
--- a/t/suffix-custom-subobj-and-specflg.sh
+++ b/t/suffix-custom-subobj-and-specflg.sh
@@ -22,7 +22,6 @@ required=cc
 
 cat >>configure.ac <<EOF
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_OUTPUT
 EOF
 
diff --git a/t/target-cflags.sh b/t/target-cflags.sh
index 3c7d720..01bcbce 100755
--- a/t/target-cflags.sh
+++ b/t/target-cflags.sh
@@ -22,7 +22,6 @@ required=cc
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_OUTPUT
 END
 
diff --git a/t/txinfo-builddir.sh b/t/txinfo-builddir.sh
index 148a1a6..e0156c5 100755
--- a/t/txinfo-builddir.sh
+++ b/t/txinfo-builddir.sh
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2012 Free Software Foundation, Inc.
+# Copyright (C) 2012-2013 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
diff --git a/t/txinfo-makeinfo-error-no-clobber.sh 
b/t/txinfo-makeinfo-error-no-clobber.sh
index 41f627f..c567e89 100755
--- a/t/txinfo-makeinfo-error-no-clobber.sh
+++ b/t/txinfo-makeinfo-error-no-clobber.sh
@@ -67,6 +67,5 @@ mv main.old main.texi
 $MAKE && exit 1
 test -f main.info
 test -f sub/main.info
-test -f sub/main.info
 
 :
diff --git a/t/txinfo-no-extra-dist.sh b/t/txinfo-no-extra-dist.sh
index 398faf4..d36ac16 100755
--- a/t/txinfo-no-extra-dist.sh
+++ b/t/txinfo-no-extra-dist.sh
@@ -15,7 +15,10 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Test to ensure that a ".info~" or ".info.bak" file doesn't end up
-# in the distribution.  Bug report from Greg McGary.
+# in the distribution or the installation.  Bug report from Greg McGary.
+# Also make sure that "split" info files (today no longer supported,
+# see automake bug#13351) are not distributed nor installed.  See
+# automake bug#12320.
 
 . test-init.sh
 
@@ -25,17 +28,33 @@ END
 
 cat > Makefile.am << 'END'
 info_TEXINFOS = textutils.texi subdir/main.texi
-test: distdir
+
+test-dist: distdir
+       test -f $(distdir)/textutils.info
+       test -f $(distdir)/subdir/main.info
        @echo am.dist.all-files = $(am.dist.all-files)
        @case '$(am.dist.all-files)' in \
-          *'~'*|*'.bak'*) exit 1;; \
+           *'~'*|*'.bak'*|*'.info-'*|*.i[0-9]*) exit 1;; \
           *) exit 0;; \
         esac
        @st=0; \
         find $(distdir) | grep '~' && st=1; \
         find $(distdir) | grep '\.bak' && st=1; \
+        find $(distdir) | grep '\.info-' && st=1; \
+        find $(distdir) | grep '\.i[0-9]' && st=1; \
+        exit $$st
+
+test-inst: install
+       test -f '$(infodir)/textutils.info'
+       test -f '$(infodir)/main.info'
+       @st=0; \
+        find '$(prefix)' | grep '~' && st=1; \
+        find '$(prefix)' | grep '\.bak' && st=1; \
+        find '$(prefix)' | grep '\.info-' && st=1; \
+        find '$(prefix)' | grep '\.i[0-9]' && st=1; \
         exit $$st
-PHONY: test
+
+PHONY: test-dist test-inst
 END
 
 : > texinfo.tex
@@ -47,16 +66,26 @@ $ACLOCAL
 $AUTOCONF
 $AUTOMAKE
 
-./configure
-: > textutils.info
-: > subdir/main.info
-: > textutils.info~
-: > textutils.info.bak
-: > subdir/main.info~
-: > subdir/main.info.bak
-$MAKE test
+./configure --prefix="$(pwd)/_inst"
+info_suffixes='info info-0 info-1 info-2 i00 i01 i23 info.bak info~'
+for suf in $info_suffixes; do
+  for base in textutils subdir/main; do
+    : > $base.$suf
+  done
+done
+ls -l . subdir # For debugging.
+$MAKE test-dist
+$MAKE test-inst
 $MAKE maintainer-clean
-test -f subdir/main.info~
-test -f subdir/main.info.bak
+
+for suf in $info_suffixes; do
+  for base in textutils subdir/main; do
+    if test "$suf" = info; then
+      test ! -e $base.$suf
+    else
+      test -f $base.$suf
+    fi
+  done
+done
 
 :
diff --git a/t/txinfo-nodist-info.sh b/t/txinfo-no-split.sh
similarity index 50%
copy from t/txinfo-nodist-info.sh
copy to t/txinfo-no-split.sh
index 265587e..aecf7e7 100755
--- a/t/txinfo-nodist-info.sh
+++ b/t/txinfo-no-split.sh
@@ -14,53 +14,81 @@
 # 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 we can force generated '.info' info files not to be
-# distributed.
+# Info split files should not be produced (automake bug#13351).
 
 required=makeinfo
 . test-init.sh
 
 echo AC_OUTPUT >> configure.ac
 
-cat > Makefile.am << 'END'
-AUTOMAKE_OPTIONS = info-in-builddir
+cat > Makefile.am <<'END'
+MAKEINFO = makeinfo --split-size 10
 info_TEXINFOS = foo.texi
-CLEANFILES = foo.info
 
-# To make distcheck work without requiring TeX and texi2dvi.
-dvi:
+test-split: # A sanity check.
+       $(MAKEINFO) -o split.info foo.texi
 
-# Do not distribute generated '.info' files.
-dist-info:
-       @:
+check-local:
+       test -f $(srcdir)/foo.info
+       test ! -f $(srcdir)/foo.info-1
+       test "`find $(srcdir) . | grep '\.info'`" = "$(srcdir)/foo.info"
 END
 
-mkdir subdir
-
 cat > foo.texi << 'END'
 \input texinfo
 @setfilename foo.info
 @settitle foo
address@hidden Dummy utilities
address@hidden
+* Foo: (foo).  Does nothing at all.
address@hidden direntry
+
 @node Top
-Hello walls.
address@hidden version.texi
address@hidden Foo
+
address@hidden
+* Intro::    Introduction
+* Planets::  List of Planets
address@hidden menu
+
address@hidden Intro
address@hidden Introduction
+Will list planets.
+
address@hidden Planets
address@hidden List of planets
+Hello Mercury.
+Hello Venus
+Hello Earth
+Hello Mars.
+Hello Jupiter.
+Hello Saturn.
+Hello Uran.
+Hello Neptune.
+Hello Pluto.
 @bye
 END
 
 $ACLOCAL
 $AUTOCONF
-$AUTOMAKE -a -Wno-override
+$AUTOMAKE -a
 
 ./configure
-$MAKE distdir
-ls -l . $distdir # For debugging.
-test ! -e foo.info
-test ! -e $distdir/foo.info
+
+$MAKE test-split
+ls -l # For debugging.
+test -f split.info
+test -f split.info-1
+test -f split.info-2
+rm -f split*
+
 $MAKE
+
+ls -l # For debugging.
 test -f foo.info
-$MAKE distdir
-ls -l $distdir # For debugging.
-test ! -f $distdir/foo.info
+test ! -f foo.info-1
+test "$(find . | $FGREP '.info' | sed 's|^\./||')" = foo.info
+
 $MAKE distcheck
 
 :
diff --git a/t/vala-libs.sh b/t/vala-libs.sh
index c5dd8eb..bd8136e 100755
--- a/t/vala-libs.sh
+++ b/t/vala-libs.sh
@@ -22,7 +22,6 @@ required="valac cc pkg-config libtoolize"
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_PROG_AR
 AC_PROG_RANLIB
 AC_PROG_LIBTOOL
@@ -32,6 +31,7 @@ AC_OUTPUT
 END
 
 cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = subdir-objects
 lib_LIBRARIES = libmu.a
 lib_LTLIBRARIES = src/libzardoz.la
 libmu_a_SOURCES = mu.vala mu2.c mu.vapi mu2.h
@@ -76,7 +76,7 @@ int main ()
 }
 END
 
-mkdir src
+mkdir -p src
 cat > src/zardoz-foo.vala << 'END'
 using GLib;
 public class Foo {
diff --git a/t/vala-mix.sh b/t/vala-mix.sh
index c1f1599..c6d848b 100755
--- a/t/vala-mix.sh
+++ b/t/vala-mix.sh
@@ -21,7 +21,6 @@ required='valac cc pkg-config'
 
 cat >> configure.ac <<'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_PROG_VALAC([0.7.3])
 PKG_CHECK_MODULES([GOBJECT], [gobject-2.0 >= 2.4])
 AC_OUTPUT
diff --git a/t/vala-non-recursive-setup.sh b/t/vala-non-recursive-setup.sh
index 201bb80..6e35abf 100755
--- a/t/vala-non-recursive-setup.sh
+++ b/t/vala-non-recursive-setup.sh
@@ -23,7 +23,6 @@ mkdir src
 
 cat >> 'configure.ac' << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_PROG_VALAC([0.7.0])
 PKG_CHECK_MODULES([GOBJECT], [gobject-2.0 >= 2.4])
 AC_OUTPUT
@@ -40,6 +39,7 @@ public class Zardoz {
 END
 
 cat > 'Makefile.am' <<'END'
+AUTOMAKE_OPTIONS = subdir-objects
 bin_PROGRAMS = src/zardoz
 src_zardoz_CFLAGS = $(GOBJECT_CFLAGS)
 src_zardoz_LDADD = $(GOBJECT_LIBS)
diff --git a/t/vala-per-target-flags.sh b/t/vala-per-target-flags.sh
index c24fdb1..8ce9787 100755
--- a/t/vala-per-target-flags.sh
+++ b/t/vala-per-target-flags.sh
@@ -23,7 +23,6 @@ mkdir src
 
 cat >> configure.ac <<'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_PROG_VALAC([0.7.0])
 PKG_CHECK_MODULES([GOBJECT], [gobject-2.0 >= 2.4])
 AC_CONFIG_FILES([src/Makefile])
diff --git a/t/vala-recursive-setup.sh b/t/vala-recursive-setup.sh
index 28c9660..d937347 100755
--- a/t/vala-recursive-setup.sh
+++ b/t/vala-recursive-setup.sh
@@ -23,7 +23,6 @@ mkdir src
 
 cat >> 'configure.ac' << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_PROG_VALAC([0.7.0])
 PKG_CHECK_MODULES([GOBJECT], [gobject-2.0 >= 2.4])
 AC_CONFIG_FILES([src/Makefile])
diff --git a/t/vala-vapi.sh b/t/vala-vapi.sh
index cc76750..19b7ee3 100755
--- a/t/vala-vapi.sh
+++ b/t/vala-vapi.sh
@@ -21,7 +21,6 @@ required='valac cc pkg-config'
 
 cat >> configure.ac <<'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AM_PROG_VALAC([0.7.3])
 PKG_CHECK_MODULES([GOBJECT], [gobject-2.0 >= 2.4])
 AC_OUTPUT
diff --git a/t/warning-groups-win-over-strictness.sh 
b/t/warning-groups-win-over-strictness.sh
index 130a4ad..5dc9100 100755
--- a/t/warning-groups-win-over-strictness.sh
+++ b/t/warning-groups-win-over-strictness.sh
@@ -30,8 +30,8 @@ touch README INSTALL NEWS AUTHORS ChangeLog COPYING THANKS
 cat > configure.ac << END
 AC_INIT([$me], [1.0])
 m4_include([am-init-automake.m4])
-AC_PROG_CC
 AC_CONFIG_FILES([Makefile])
+AM_CONDITIONAL([NEVERTRUE], [false)]
 # Other similar tests do not use AC_OUTPUT, so we use it here,
 # for completeness and for better coverage.
 AC_OUTPUT
@@ -39,8 +39,9 @@ END
 
 cat > Makefile.am <<END
 include automake-options.am
-noinst_PROGRAMS = foo
-foo_SOURCES = sub/foo.c
+if NEVERTRUE
+AUTOMAKE_OPTIONS = no-dependencies
+endif
 END
 
 rm -rf autom4te*.cache
@@ -48,7 +49,7 @@ rm -rf autom4te*.cache
 echo 'AM_INIT_AUTOMAKE' > am-init-automake.m4
 $ACLOCAL
 AUTOMAKE_fails -Werror -Wall --foreign
-grep '^Makefile\.am:3:.*sub/foo\.c.*requires.*AM_PROG_CC_C_O' stderr
+grep "^Makefile\\.am:3:.*AUTOMAKE_OPTIONS.*conditional" stderr
 
 rm -rf autom4te*.cache
 : > automake-options.am
diff --git a/t/warnings-override.sh b/t/warnings-override.sh
index 5e5dbcd..98d7bf0 100755
--- a/t/warnings-override.sh
+++ b/t/warnings-override.sh
@@ -23,6 +23,8 @@
 
 . test-init.sh
 
+mkdir aux || skip_ "cannot create directories named 'aux'"
+
 # We want (almost) complete control over automake options.
 AUTOMAKE="$am_original_AUTOMAKE -Werror"
 
@@ -44,15 +46,12 @@ ok ()
 ko ()
 {
   AUTOMAKE_fails $*
-  grep '^Makefile\.am:.*sub/foo\.c.*requires.*AM_PROG_CC_C_O' stderr
+  grep "^Makefile\\.am:.*'aux' is reserved on W32" stderr
 }
 
-echo AC_PROG_CC >> configure.ac
-
 cat > Makefile.am <<END
 AUTOMAKE_OPTIONS = ## For later editing by 'set_am_opts'.
-noinst_PROGRAMS = foo
-foo_SOURCES = sub/foo.c
+SUBDIRS = aux
 END
 
 $ACLOCAL
diff --git a/t/warnings-precedence.sh b/t/warnings-precedence.sh
index 3f1b18d..4f984e0 100755
--- a/t/warnings-precedence.sh
+++ b/t/warnings-precedence.sh
@@ -20,6 +20,8 @@
 
 . test-init.sh
 
+mkdir aux || skip_ "cannot create directories named 'aux'"
+
 # We want (almost) complete control over automake options.
 AUTOMAKE="$am_original_AUTOMAKE -Werror"
 
@@ -41,18 +43,15 @@ ok ()
 ko ()
 {
   AUTOMAKE_fails $*
-  grep '^Makefile\.am:.*sub/foo\.c.*requires.*AM_PROG_CC_C_O' stderr
+  grep "^Makefile\\.am:.*'aux' is reserved on W32" stderr
 }
 
 # Files required in gnu strictness.
 touch README INSTALL NEWS AUTHORS ChangeLog COPYING
 
-echo AC_PROG_CC >> configure.ac
-
 cat > Makefile.am <<END
 AUTOMAKE_OPTIONS = ## For later editing by 'set_warnings'.
-noinst_PROGRAMS = foo
-foo_SOURCES = sub/foo.c
+SUBDIRS = aux
 END
 
 $ACLOCAL
diff --git a/t/warnings-strictness-interactions.sh 
b/t/warnings-strictness-interactions.sh
index 0b5c55e..c3206cb 100755
--- a/t/warnings-strictness-interactions.sh
+++ b/t/warnings-strictness-interactions.sh
@@ -20,16 +20,16 @@
 
 . test-init.sh
 
+mkdir aux || skip_ "cannot create directories named 'aux'"
+
 # We want (almost) complete control over automake options.
 AUTOMAKE="$am_original_AUTOMAKE -Werror"
 
-echo AC_PROG_CC >> configure.ac
 $ACLOCAL
 
 cat > Makefile.am <<END
 AUTOMAKE_OPTIONS = ## For later editing by 'set_am_opts'.
-noinst_PROGRAMS = foo
-foo_SOURCES = sub/foo.c
+SUBDIRS = aux
 END
 
 set_am_opts ()
@@ -56,6 +56,6 @@ set_am_opts '-Wno-portability' configure.ac
 set_am_opts 'gnu' Makefile.am
 
 AUTOMAKE_fails
-grep '^Makefile\.am:.*sub/foo\.c.*requires.*AM_PROG_CC_C_O' stderr
+grep "^Makefile\\.am:.*'aux' is reserved on W32" stderr
 
 :
diff --git a/t/warnings-win-over-strictness.sh 
b/t/warnings-win-over-strictness.sh
index 60d63dd..7a97431 100755
--- a/t/warnings-win-over-strictness.sh
+++ b/t/warnings-win-over-strictness.sh
@@ -19,6 +19,8 @@
 
 . test-init.sh
 
+mkdir aux || skip_ "cannot create directories named 'aux'"
+
 # We want complete control over automake options.
 AUTOMAKE=$am_original_AUTOMAKE
 
@@ -31,7 +33,7 @@ ok ()
 ko ()
 {
   AUTOMAKE_run $*
-  grep '^Makefile\.am:.*sub/foo\.c.*requires.*AM_PROG_CC_C_O' stderr
+  grep "^Makefile\\.am:.*'aux' is reserved on W32" stderr
   test $(wc -l <stderr) -eq 1
 }
 
@@ -48,13 +50,11 @@ set_am_opts ()
 # Files required in gnu strictness.
 touch README INSTALL NEWS AUTHORS ChangeLog COPYING
 
-echo AC_PROG_CC >> configure.ac
 $ACLOCAL
 
 cat > Makefile.am <<END
 AUTOMAKE_OPTIONS = ## For later editing by 'set_am_opts'.
-noinst_PROGRAMS = foo
-foo_SOURCES = sub/foo.c
+SUBDIRS = aux
 END
 
 ko --foreign -Wportability
diff --git a/t/warnopts.sh b/t/warnopts.sh
index f1565e7..479c026 100755
--- a/t/warnopts.sh
+++ b/t/warnopts.sh
@@ -25,41 +25,38 @@ AM_CONDITIONAL([COND_FALSE], [false])
 AC_OUTPUT
 END
 
-mkdir sub
+mkdir aux sub sub/aux || skip_ "cannot create directories named 'aux'"
 
 # These two Makefile contain the same errors, but have different
 # warnings disabled.
 
 cat > Makefile.am << 'END'
-AUTOMAKE_OPTIONS = subdir-objects -Wno-unsupported
+AUTOMAKE_OPTIONS = -Wno-unsupported
 if COND_FALSE
 AUTOMAKE_OPTIONS += no-dependencies
 endif
-bin_PROGRAMS = foo
-foo_SOURCES = sub/foo.c
-SUBDIRS = sub
+SUBDIRS = sub aux
 END
 
 cat > sub/Makefile.am << 'END'
-AUTOMAKE_OPTIONS = subdir-objects -Wno-portability
+AUTOMAKE_OPTIONS = -Wno-portability
 if COND_FALSE
 AUTOMAKE_OPTIONS += no-dependencies
 endif
-bin_PROGRAMS = foo
-foo_SOURCES = sub/foo.c
+SUBDIRS = aux
 END
 
 $ACLOCAL
 AUTOMAKE_fails
-# The expected diagnostic is
+# The expected diagnostic is:
 #   automake: warnings are treated as errors
-#   Makefile.am:6: warning: compiling 'sub/foo.c' in subdir requires 
'AM_PROG_CC_C_O' in 'configure.ac'
+#   Makefile.am:5: warning: name 'aux' is reserved on W32 and DOS platforms
 #   sub/Makefile.am:1: warning: 'AUTOMAKE_OPTIONS' cannot have conditional 
contents
-grep '^Makefile\.am:.*sub/foo\.c.*AM_PROG_CC_C_O' stderr
-grep '^sub/Makefile.am:.*AUTOMAKE_OPTIONS' stderr
-grep '^sub/Makefile\.am:.*AM_PROG_CC_C_O' stderr && exit 1
-grep '^Makefile\.am:.*AUTOMAKE_OPTIONS' stderr && exit 1
-# Only two lines of warnings.
+grep "^Makefile\\.am:.*'aux' is reserved on W32" stderr
+grep "^sub/Makefile\\.am:.*AUTOMAKE_OPTIONS.*conditional" stderr
+grep "^Makefile\\.am:.*AUTOMAKE_OPTIONS" stderr && exit 1
+grep "^sub/Makefile\\.am:.*'aux'" stderr && exit 1
+# Only two lines of warnings proper.
 test $(grep -v 'warnings are treated as errors' stderr | wc -l) -eq 2
 
 rm -rf autom4te*.cache
diff --git a/t/yacc-dist-nobuild-subdir.sh b/t/yacc-dist-nobuild-subdir.sh
index 478e3f1..235b4dc 100755
--- a/t/yacc-dist-nobuild-subdir.sh
+++ b/t/yacc-dist-nobuild-subdir.sh
@@ -22,7 +22,6 @@ required='cc yacc'
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_PROG_YACC
 AC_OUTPUT
 END
diff --git a/t/yacc-grepping2.sh b/t/yacc-grepping2.sh
index 34b7cc5..b00ece7 100755
--- a/t/yacc-grepping2.sh
+++ b/t/yacc-grepping2.sh
@@ -21,7 +21,6 @@
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_PROG_YACC
 END
 
@@ -31,7 +30,9 @@ cat > Makefile.am << 'END'
 bin_PROGRAMS = maude
 maude_SOURCES = sub/maude.y
 END
+
 $AUTOMAKE -a
+
 # No rule needed, the default .y.c: inference rule is enough
 # (but there may be an additional dependency on a dirstamp file).
 grep '^sub/maude\.c:.*maude\.y' Makefile.in && exit 1
@@ -44,7 +45,9 @@ maude_SOURCES = sub/maude.y
 ## A particularly tricky case.
 maude_YFLAGS = -d
 END
+
 $AUTOMAKE -a
+
 grep '^sub/maude-maude\.c:.*sub/maude\.y' Makefile.in
 # Rule should use maude_YFLAGS.
 grep 'AM_YFLAGS.*maude' Makefile.in && exit 1
diff --git a/t/yacc-line.sh b/t/yacc-line.sh
index 53e7481..923fe7b 100755
--- a/t/yacc-line.sh
+++ b/t/yacc-line.sh
@@ -23,7 +23,6 @@ required='cc yacc'
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_PROG_YACC
 AC_OUTPUT
 END
@@ -58,7 +57,9 @@ c_outputs='zardoz.c dir/quux.c baz-zardoz.c'
 
 $ACLOCAL
 $AUTOCONF
-$AUTOMAKE -a
+# FIXME: stop disabling the warnings in the 'unsupported' category
+# FIXME: once the 'subdir-objects' option has been mandatory.
+$AUTOMAKE -a -Wno-unsupported
 
 for vpath in : false; do
 
diff --git a/t/yacc-subdir.sh b/t/yacc-subdir.sh
index 6270c71..9e5719a 100755
--- a/t/yacc-subdir.sh
+++ b/t/yacc-subdir.sh
@@ -22,7 +22,6 @@ required='cc yacc'
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_PROG_YACC
 AC_OUTPUT
 END
diff --git a/t/yacc-subobj-nodep.sh b/t/yacc-subobj-nodep.sh
index 76f880a..0dc15f2 100755
--- a/t/yacc-subobj-nodep.sh
+++ b/t/yacc-subobj-nodep.sh
@@ -25,7 +25,6 @@ AC_INIT([$me], [1.0])
 AM_INIT_AUTOMAKE([no-dependencies])
 AC_CONFIG_FILES([Makefile])
 AC_PROG_CC
-AM_PROG_CC_C_O
 AC_PROG_YACC
 AC_OUTPUT
 END


hooks/post-receive
-- 
GNU Automake



reply via email to

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