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.1d-953-g7e693f2
Date: Fri, 10 May 2013 15:52:14 +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=7e693f266c735d38516b1c8736c476fd044a0894

The branch, ng/master has been updated
       via  7e693f266c735d38516b1c8736c476fd044a0894 (commit)
       via  4bd3f6b07a06ea220a7a745696d6f71778f4c2fb (commit)
       via  e51b55bce4a39ad604e0f4aa0a9d14f548dd9f3a (commit)
       via  ad1f7302dc91400ff46378c409fa1abcdf18b3db (commit)
       via  7768d4f4f8bab211fdc3d70853d1c32b80456b1c (commit)
       via  b6a30aea4a0a19d2b88051bbe5cec065cd577bb9 (commit)
       via  c20b2fff18976691073c620c8691e18d68b1f6a6 (commit)
       via  0dd95c8d51099aaca08fab7815e2c536908250e2 (commit)
       via  0736c67c71d2d8611d48abb253a9058736bd18bd (commit)
       via  2df8f3fe34f325ba5504ff5f6fa380a98989673c (commit)
       via  cce229615efe5c3a87d259ff6b50163426d4af51 (commit)
       via  a5a167fc64027b33c29675651ade27e3a27b0882 (commit)
       via  9a1ac8a44383cf291dd1a8d68afc66e4815d8c2e (commit)
       via  126cd5242844fa9511cb6709fc5df72bf1851d14 (commit)
       via  5a37b0e7bf899d9b7d3835c176da926064b75bb2 (commit)
       via  66ab18aedf422dd2a463112acc8310779a7f703e (commit)
       via  53201da1387982ab0cc726e2aa79555c023111bf (commit)
       via  4ccf9a8034c597f33ce9592f06533e3cd096fd99 (commit)
       via  1a1c3ac44cf1d831a8b460888c7402d9fec70023 (commit)
       via  1021f5cf48784b6ed6b28834f14485b52b4c80e3 (commit)
       via  95b837cfa47c4d82cc4a3adc5cb6f8e736cacf72 (commit)
       via  560702945f154bbaa595da3da88a9b6770b026d2 (commit)
       via  25194b6274e0c336c40cd1903565cdc7afaabf7c (commit)
       via  d2ed35594beef64f55eb1680ee87d9f7997fb35c (commit)
       via  ce70cf4b95a486f712fab0af865f6c005139fafe (commit)
       via  c8f106c772e608b25aa6a3aa8eeeb0119e097ab2 (commit)
      from  d7321a5c68a3d35df32a4153a4d8891c26decc83 (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 7e693f266c735d38516b1c8736c476fd044a0894
Merge: 4bd3f6b e51b55b
Author: Stefano Lattarini <address@hidden>
Date:   Fri May 10 17:42:19 2013 +0200

    Merge branch 'tmp-for-master-merge' into ng/master
    
    * tmp-for-master-merge:
      build: remove temporary files, used for merging master
      build: adapt the per-subdir Makefile.inc files
      tmp: re-add old top-level Makefile.am from master
      tmp: backup-and-move top-level Makefile
      automake: typofix in comments: s/AC_CONFIG_HEADER/AC_CONFIG_HEADERS/
      build: move automake and aclocal in 'bin' subdir
      build: break up monolithic Makefile.am in subdir-specific fragments

commit 4bd3f6b07a06ea220a7a745696d6f71778f4c2fb
Author: Stefano Lattarini <address@hidden>
Date:   Fri May 10 17:42:14 2013 +0200

    cosmetics: remove some occurrences of trailing whitespace
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit e51b55bce4a39ad604e0f4aa0a9d14f548dd9f3a
Author: Stefano Lattarini <address@hidden>
Date:   Fri May 10 17:37:17 2013 +0200

    build: remove temporary files, used for merging master
    
    They had been helpful in the tricky recent merge of the master branch,
    but are no longer needed now.
    
    * Makefile.sav: Remove.
    * Makefile.old: Likewise.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit ad1f7302dc91400ff46378c409fa1abcdf18b3db
Author: Stefano Lattarini <address@hidden>
Date:   Fri May 10 16:40:09 2013 +0200

    build: adapt the per-subdir Makefile.inc files
    
    So that they can correctly implement the Automake-NG build system.
    This has been done with the help of the diffs between the old top-level
    Makefile.am files from mainline Automake (master branch) and Automake-NG
    (ng/master branch), obtained with the command:
    
        diff -u Makefile.old Makefile.sav > diffs
    
    * Makefile.am: Adjust.
    * bin/Makefile.inc: Likewise.
    * contrib/t/Makefile.inc: Likewise.
    * doc/Makefile.inc: Likewise.
    * lib/Automake/Makefile.inc: Likewise.
    * lib/Makefile.inc: Likewise.
    * lib/am/Makefile.inc: Likewise.
    * m4/Makefile.inc: Likewise.
    * t/Makefile.inc: Likewise.
    * contrib/t/local.am: Delete.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 7768d4f4f8bab211fdc3d70853d1c32b80456b1c
Author: Stefano Lattarini <address@hidden>
Date:   Fri May 10 15:57:03 2013 +0200

    tmp: re-add old top-level Makefile.am from master
    
    * Makefile.old: Here, from v1.13.1d-174-g1a1c3ac:Makefile.am.  The
    purpose of this temporary file is to allow us an easy way to compare
    the old contents of the top-level Makefile.am for mainline Automake
    (as it was before the merge commit 'v1.13.1d-185-g0dd95c8') with the
    still-unpatched top-level Makefile.am for Automake-NG (currently
    saved as 'Makefile.sav'), and use that information to backport the
    splitting of Makefile.am into several per-subdir included Makefile
    fragments (as implemented by mainline Automake commits
    'v1.13.1d-103-gc8f106c' and 'v1.13.1d-104-gce70cf4').
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit b6a30aea4a0a19d2b88051bbe5cec065cd577bb9
Merge: c20b2ff 0dd95c8
Author: Stefano Lattarini <address@hidden>
Date:   Fri May 10 15:55:04 2013 +0200

    Merge branch 'master' into tmp-for-master-merge
    
    * master:
      automake: typofix in comments: s/AC_CONFIG_HEADER/AC_CONFIG_HEADERS/
      build: move automake and aclocal in 'bin' subdir
      build: break up monolithic Makefile.am in subdir-specific fragments
    
    This leaves the tree in a partially-inconsistent state.  We will fix
    the situation with follow-up patches.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit c20b2fff18976691073c620c8691e18d68b1f6a6
Author: Stefano Lattarini <address@hidden>
Date:   Fri May 10 15:35:56 2013 +0200

    tmp: backup-and-move top-level Makefile
    
    This is just a trick to facilitate the resolution of conflicts in
    the upcoming merge of the master branch, where the to-level Makefile
    has been broken up in several per-subdir makefiles fragments (that
    are then included by the top-level one, thus keeping the build system
    non-recursive).
    
    * Makefile.sav: New, verbatim copy of the "old" Makefile.am.
    * Makefile.am: Make it a symlink to Makefile.sav.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit cce229615efe5c3a87d259ff6b50163426d4af51
Author: Stefano Lattarini <address@hidden>
Date:   Fri May 10 12:52:08 2013 +0200

    refactor: unify handing of autogenerated config headers
    
    * automake.in (handle_configure): Move stuff handling regeneration
    of config.h and config.h.in ...
    (handle_config_headers): ... in here, with adjustments and
    simplifications.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 9a1ac8a44383cf291dd1a8d68afc66e4815d8c2e
Merge: d7321a5 126cd52
Author: Stefano Lattarini <address@hidden>
Date:   Fri May 10 11:20:24 2013 +0200

    Merge branch 'maint' into ng/master
    
    * maint:
      am: prefer a shorter idiom where possible
      cosmetics: fix few typos, grammaros and missing whitespace
      fixup: remove an obsolete comment
      docs: we still don't have the promised better Java interface
      maint: re-run "make update-copyright" ...
      tests: avoid spurious failure with older flex (2.5.4)
      announcement: cater to more flexible NEWS format
    
    Signed-off-by: Stefano Lattarini <address@hidden>

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

Summary of changes:
 .gitignore                               |    4 +-
 Makefile.am                              |  648 ++----------------------------
 THANKS                                   |    1 +
 bin/Makefile.inc                         |   68 ++++
 aclocal.in => bin/aclocal.in             |    0
 automake.in => bin/automake.in           |  117 +++----
 {lib => bin}/gen-perl-protos             |    0
 bootstrap.sh                             |   12 +-
 configure.ac                             |    4 +-
 lib/am/vala.am => contrib/t/Makefile.inc |   17 +-
 contrib/t/local.am                       |   23 -
 doc/Makefile.inc                         |  111 +++++
 doc/automake-ng.texi                     |    8 +-
 lib/Automake/Makefile.inc                |   55 +++
 lib/Makefile.inc                         |   57 +++
 lib/am/Makefile.inc                      |   66 +++
 lib/am/library.am                        |    1 +
 lib/am/ltlibrary.am                      |    1 +
 lib/am/program.am                        |    1 +
 m4/Makefile.inc                          |   71 ++++
 maintainer/maint.mk                      |    8 +-
 maintainer/rename-tests                  |    2 +-
 maintainer/syntax-checks.mk              |   30 +-
 t/Makefile.inc                           |  308 ++++++++++++++
 t/ax/tap-setup.sh                        |    2 +-
 t/dist-formats.tap                       |    4 +-
 t/lex-multiple.sh                        |    6 +-
 t/make-dryrun.tap                        |    2 +-
 t/wrap/aclocal.in                        |    2 +-
 t/wrap/automake.in                       |    2 +-
 30 files changed, 875 insertions(+), 756 deletions(-)
 create mode 100644 bin/Makefile.inc
 rename aclocal.in => bin/aclocal.in (100%)
 rename automake.in => bin/automake.in (99%)
 rename {lib => bin}/gen-perl-protos (100%)
 copy lib/am/vala.am => contrib/t/Makefile.inc (66%)
 delete mode 100644 contrib/t/local.am
 create mode 100644 doc/Makefile.inc
 create mode 100644 lib/Automake/Makefile.inc
 create mode 100644 lib/Makefile.inc
 create mode 100644 lib/am/Makefile.inc
 create mode 100644 m4/Makefile.inc
 create mode 100644 t/Makefile.inc

diff --git a/.gitignore b/.gitignore
index efd4328..21ec99f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,8 +11,8 @@
 /config.status
 /config.status.lineno
 /configure.lineno
-/aclocal
-/automake
+/bin/aclocal
+/bin/automake
 /runtest
 /doc/.dirstamp
 /doc/automake*.info
diff --git a/Makefile.am b/Makefile.am
index 60bfca2..1d55b8a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -22,6 +22,11 @@ CLEANFILES =
 DISTCLEANFILES =
 MAINTAINERCLEANFILES =
 EXTRA_DIST =
+TAGS_FILES =
+dist_noinst_DATA =
+nodist_noinst_DATA =
+dist_noinst_SCRIPTS =
+nodist_noinst_SCRIPTS =
 
 ## ------------ ##
 ##  Top level.  ##
@@ -30,6 +35,14 @@ EXTRA_DIST =
 # Distribution formats.
 AM_DIST_FORMATS = gzip xz
 
+EXTRA_DIST += \
+  bootstrap.sh \
+  GNUmakefile \
+  HACKING \
+  NG-NEWS \
+  PLANS \
+  $(gitlog_to_changelog_fixes)
+
 # We want a handful of substitutions to be fully-expanded by make;
 # then use config.status to substitute the remainder where a single
 # expansion is sufficient.  We use a funny notation here to avoid
@@ -50,61 +63,11 @@ generated_file_finalize = $(AM_V_at) \
   fi; \
   chmod a-w address@hidden && mv -f address@hidden $@
 
-AUTOMAKESOURCES = automake.in aclocal.in
-TAGS_FILES = $(AUTOMAKESOURCES)
-
-bin_SCRIPTS = $(basename $(AUTOMAKESOURCES))
-CLEANFILES += $(bin_SCRIPTS)
-
-EXTRA_DIST += \
-  $(AUTOMAKESOURCES) \
-  bootstrap.sh \
-  GNUmakefile \
-  HACKING \
-  NG-NEWS \
-  PLANS \
-  $(gitlog_to_changelog_fixes)
-
 # For some tests or targets, we need to have the just-build automake and
 # aclocal scripts avaiable on PATH.
 extend_PATH = \
   { PATH='$(abs_builddir)/t/wrap'$(PATH_SEPARATOR)$$PATH && export PATH; }
 
-# Make versioned links.  We only run the transform on the root name;
-# then we make a versioned link with the transformed base name.  This
-# seemed like the most reasonable approach.
-install-exec-hook:
-       @$(POST_INSTALL)
-       @for p in $(bin_SCRIPTS); do \
-         f=`echo $$p | sed '$(transform)'`; \
-         fv="$$f-$(APIVERSION)"; \
-         rm -f "$(DESTDIR)$(bindir)/$$fv"; \
-         echo " $(LN) '$(DESTDIR)$(bindir)/$$f' '$(DESTDIR)$(bindir)/$$fv'"; \
-         $(LN) "$(DESTDIR)$(bindir)/$$f" "$(DESTDIR)$(bindir)/$$fv"; \
-       done
-
-uninstall-hook:
-       @for p in $(bin_SCRIPTS); do \
-         f=`echo $$p | sed '$(transform)'`; \
-         fv="$$f-$(APIVERSION)"; \
-         rm -f "$(DESTDIR)$(bindir)/$$fv"; \
-       done
-
-# These files depend on Makefile so they are rebuilt if $(VERSION),
-# $(datadir) or other do_subst'ituted variables change.
-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.
-         && 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.
 # Make sure we also update this copy.
@@ -121,588 +84,31 @@ maintainer-clean-local:
 # (as it is maintainer-specific).
 ChangeLog:
 
-
-## -------------------------------------------------------------------- ##
-##  Auxiliary scripts and files for use with "automake --add-missing".  ##
-## -------------------------------------------------------------------- ##
-
-dist_pkgvdata_DATA = \
-  lib/COPYING \
-  lib/INSTALL \
-  lib/texinfo.tex
-
-# These must all be executable when installed.  However, if we use
-# _SCRIPTS, then the program transform will be applied, which is not
-# what we want.  So we make them executable by hand.
-dist_script_DATA = \
-  lib/config.guess \
-  lib/config.sub \
-  lib/install-sh \
-  lib/mdate-sh \
-  lib/missing \
-  lib/ylwrap \
-  lib/depcomp \
-  lib/compile \
-  lib/py-compile \
-  lib/ar-lib \
-  lib/test-driver \
-  lib/tap-driver.sh \
-  lib/tap-driver.pl
-
-install-data-hook:
-       @$(POST_INSTALL)
-       chmod +x $(patsubst 
lib/%,'$(DESTDIR)$(scriptdir)/%',$(dist_script_DATA))
-
-installcheck-local: installcheck-executable-scripts
-installcheck-executable-scripts:
-       @for f in $(patsubst lib/%,'$(scriptdir)/%',$(dist_script_DATA)); do \
-          test -x $$f || { echo "$@: $$f: not executable" >&2; st=1; }; \
-        done; \
-        exit $$st;
-
-
-## ---------------------------------------------------- ##
-##  Private perl modules used by automake and aclocal.  ##
-## ---------------------------------------------------- ##
-
-perllibdir = $(pkgvdatadir)/Automake
-dist_perllib_DATA = \
-  lib/Automake/ChannelDefs.pm \
-  lib/Automake/Channels.pm \
-  lib/Automake/Condition.pm \
-  lib/Automake/DisjConditions.pm \
-  lib/Automake/FileUtils.pm \
-  lib/Automake/General.pm \
-  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 \
-  lib/Automake/RuleDef.pm \
-  lib/Automake/Variable.pm \
-  lib/Automake/VarDef.pm \
-  lib/Automake/Version.pm \
-  lib/Automake/XFile.pm \
-  lib/Automake/Wrap.pm
-
-nodist_perllib_DATA = lib/Automake/Config.pm
-CLEANFILES += $(nodist_perllib_DATA)
-
-lib/Automake/Config.pm: lib/Automake/Config.in Makefile
-       $(AM_V_at)rm -f $@ address@hidden
-       $(AM_V_at)$(MKDIR_P) $(@D)
-       $(AM_V_GEN)$(do_subst)
-       $(generated_file_finalize)
-EXTRA_DIST += lib/Automake/Config.in
-
-
-## --------------------- ##
-##  Makefile fragments.  ##
-## --------------------- ##
-
-dist_am_DATA = \
-  lib/am/am-dir.mk \
-  lib/am/common-targets.mk \
-  lib/am/color-tests.mk \
-  lib/am/serial-tests.mk \
-  lib/am/parallel-tests.mk \
-  lib/am/check-typos.mk \
-  lib/am/clean.mk \
-  lib/am/header-vars.mk \
-  lib/am/tags.mk \
-  lib/am/dejagnu.mk \
-  lib/am/distcheck.mk \
-  lib/am/distdir.mk \
-  lib/am/subdirs.mk \
-  lib/am/texibuild.mk \
-  lib/am/texinfos.mk \
-  lib/am/compile.am \
-  lib/am/configure.am \
-  lib/am/data.am \
-  lib/am/depend2.am \
-  lib/am/footer.am \
-  lib/am/header.am \
-  lib/am/java.am \
-  lib/am/lang-compile.am \
-  lib/am/lex.am \
-  lib/am/library.am \
-  lib/am/libs.am \
-  lib/am/lisp.am \
-  lib/am/ltlib.am \
-  lib/am/ltlibrary.am \
-  lib/am/mans-vars.am \
-  lib/am/mans.am \
-  lib/am/program.am \
-  lib/am/progs.am \
-  lib/am/python.am \
-  lib/am/remake-hdr.am \
-  lib/am/scripts.am \
-  lib/am/texi-vers.am \
-  lib/am/texi-spec.am \
-  lib/am/vala.am \
-  lib/am/yacc.am
-
-
-## ------------------------------ ##
-##  Automake-provided m4 macros.  ##
-## ------------------------------ ##
-
-dist_automake_ac_DATA = \
-  m4/amversion.m4 \
-  m4/ar-lib.m4 \
-  m4/as.m4 \
-  m4/auxdir.m4 \
-  m4/cond.m4 \
-  m4/cond-if.m4 \
-  m4/depend.m4 \
-  m4/dmalloc.m4 \
-  m4/extra-recurs.m4 \
-  m4/gcj.m4 \
-  m4/init.m4 \
-  m4/install-sh.m4 \
-  m4/lex.m4 \
-  m4/lispdir.m4 \
-  m4/minuso.m4 \
-  m4/missing.m4 \
-  m4/obsolete.m4 \
-  m4/options.m4 \
-  m4/python.m4 \
-  m4/runlog.m4 \
-  m4/sanity.m4 \
-  m4/silent.m4 \
-  m4/strip.m4 \
-  m4/substnot.m4 \
-  m4/tar.m4 \
-  m4/upc.m4 \
-  m4/vala.m4
-
-automake_internal_acdir = $(automake_acdir)/internal
-dist_automake_internal_ac_DATA = m4/internal/ac-config-macro-dirs.m4
-
-dist_system_ac_DATA = m4/acdir/README
-
-# We build amversion.m4 here, instead of from config.status,
-# because config.status is rerun each time one of configure's
-# dependencies change and amversion.m4 happens to be a configure
-# dependency.  configure and amversion.m4 would be rebuilt in
-# loop otherwise.
-$(srcdir)/m4/amversion.m4: $(srcdir)/m4/amversion.in $(srcdir)/configure.ac
-       $(AM_V_at)rm -f address@hidden $@
-       $(AM_V_GEN)$(do_subst)
-       $(generated_file_finalize)
-EXTRA_DIST += m4/amversion.in
-
-
-## ------------ ##
-##  Testsuite.  ##
-## ------------ ##
-
-# Run the tests with a proper shell detected at configure time.
-LOG_COMPILER = $(AM_TEST_RUNNER_SHELL)
-
-TEST_EXTENSIONS = .pl .sh .tap
-SH_LOG_COMPILER = $(LOG_COMPILER)
-TAP_LOG_COMPILER = $(LOG_COMPILER)
-PL_LOG_COMPILER = $(PERL)
-AM_PL_LOG_FLAGS = -Mstrict -I $(builddir)/lib -I $(srcdir)/lib -w
-
-TAP_LOG_DRIVER = AM_TAP_AWK='$(AWK)' $(SHELL) $(srcdir)/lib/tap-driver.sh
-
-AM_TAP_LOG_DRIVER_FLAGS = --merge
-
-EXTRA_DIST += t/README t/ax/is t/ax/is_newest
-
-# Hand-written tests for stuff in 'contrib/'.
-include $(srcdir)/contrib/t/local.am
-
-# All tests, both hand-written and autogenerated.
-# IMPORTANT: This assumes that the autogenerated tests are placed
-#            in the $(srcdir) as well!
-all_TESTS = \
-  $(wildcard $(srcdir)/t/*.sh) \
-  $(wildcard $(srcdir)/t/*.tap) \
-  $(wildcard $(srcdir)/t/pm/*.pl)
-
-# This is to ensure longer-running tests will be run earlier, which is
-# useful when running the testsuite in parallel on multicore machines.
-# Here too we assume that the autogenerated tests are placed in $(srcdir).
-long_running_TESTS = \
-  $(srcdir)/t/dist-many.sh \
-  $(srcdir)/t/parallel-tests-many.sh \
-  $(srcdir)/t/add-missing.tap \
-  $(srcdir)/t/instspc.tap \
-  $(wildcard $(srcdir)/t/depcomp-*.tap) \
-  $(wildcard $(srcdir)/t/*libtool*.sh) \
-  $(wildcard $(srcdir)/t/lt*.sh) \
-  $(wildcard $(srcdir)/t/remake*.sh)
-
-TESTS = \
-  $(long_running_TESTS) \
-  $(filter-out $(long_running_TESTS), $(all_TESTS)) \
-  $(contrib_TESTS)
-
-EXTRA_DIST += $(TESTS)
-
-# FIXME: this "expected failures" are in truth an hack used to
-# FIXME: to verify that some incorrect usages of our perl libraries
-# FIXME: raise an error.  We should find a cleaner way to check that.
-perl_fake_XFAIL_TESTS = \
-  t/pm/Cond2.pl \
-  t/pm/Cond3.pl \
-  t/pm/DisjCon2.pl \
-  t/pm/DisjCon3.pl \
-  t/pm/Version2.pl \
-  t/pm/Version3.pl
-
-XFAIL_TESTS = \
-  t/all.sh \
-  t/override-suggest-local.sh \
-  t/comments-in-var-def.sh \
-  t/cond17.sh \
-  t/dist-srcdir2.sh \
-  t/gcj6.sh \
-  t/txinfo-nodist-info.sh \
-  t/override-conditional-2.sh \
-  t/dist-pr109765.sh \
-  t/instdir-cond2.sh \
-  t/interp3.sh \
-  t/java-nobase.sh \
-  t/objext-pr10128.sh \
-  t/remake-timing-bug-pr8365.sh \
-  t/remake-am-pr10111.sh \
-  t/remake-m4-pr10111.sh \
-  t/var-undef-append.sh \
-  $(perl_fake_XFAIL_TESTS)
-
-# Some testsuite-influential variables should be overridable from the
-# test scripts, but not from the environment.
-# Keep this in sync with the similar list in 't/ax/runtest.in'.
-AM_TESTS_ENVIRONMENT = \
-  for v in \
-    required \
-    am_test_protocol \
-    am_serial_tests \
-    am_test_prefer_config_shell \
-    am_original_AUTOMAKE \
-    am_original_ACLOCAL \
-    am_test_lib_sourced \
-    test_lib_sourced \
-  ; do \
-    eval test x"\$${$$v}" = x || unset $$v; \
-  done;
-# We want warning messages and explanations for skipped tests to go to
-# the console if possible, so set up 'stderr_fileno_' properly.
-AM_TESTS_FD_REDIRECT = 9>&2
-AM_TESTS_ENVIRONMENT += stderr_fileno_=9; export stderr_fileno_;
-
-# For sourcing of extra "shell libraries" by our test scripts.  As per
-# POSIX, sourcing a file with '.' will cause it to be looked up in $PATH
-# in case it is given with a relative name containing no slashes.
-AM_TESTS_ENVIRONMENT += \
-  if test $(srcdir) != .; then \
-    PATH='$(abs_srcdir)/t/ax'$(PATH_SEPARATOR)$$PATH; \
-  fi; \
-  PATH='$(abs_builddir)/t/ax'$(PATH_SEPARATOR)$$PATH; \
-  export PATH;
-
-# Automatically-computed dependencies for tests.
-include $(srcdir)/testsuite-autodeps.am
-
-# The dependencies declared here are not truly complete, but such
-# completeness would cause more issues than it would solve.  See
-# automake bug#11347.
-$(srcdir)/testsuite-autodeps.am: $(srcdir)/gen-testsuite-part
-       $(AM_V_at)rm -f $(@F)-t $@
-       $(AM_V_GEN)$(PERL) $< --srcdir $(srcdir) > $(@F)-t
-       $(AM_V_at)chmod a-w $(@F)-t && mv -f $(@F)-t $@
-EXTRA_DIST += gen-testsuite-part
-
-# Static dependencies valid for each test case (also further
-# extended later).  Note that use 'noinst_' rather than 'check_'
-# as the prefix, because we really want them to be built by
-# "make all".  This makes it easier to run the test cases by
-# hand after having simply configured and built the package.
-
-nodist_noinst_SCRIPTS = \
-  t/wrap/aclocal-$(APIVERSION) \
-  t/wrap/automake-$(APIVERSION)
-
-dist_noinst_DATA = \
-  t/ax/test-init.sh \
-  t/ax/test-lib.sh \
-  t/ax/am-test-lib.sh \
-  t/ax/tap-functions.sh
-
-# Few more static dependencies.
-t/distcheck-missing-m4.log: t/ax/distcheck-hook-m4.am
-t/distcheck-outdated-m4.log: t/ax/distcheck-hook-m4.am
-EXTRA_DIST += t/ax/distcheck-hook-m4.am
-
-t/ax/test-defs.sh: t/ax/test-defs.in Makefile
-       $(AM_V_at)rm -f $@ address@hidden
-       $(AM_V_at)$(MKDIR_P) $(@D)
-       $(AM_V_GEN)$(do_subst)
-       $(generated_file_finalize)
-EXTRA_DIST += t/ax/test-defs.in
-CLEANFILES += t/ax/test-defs.sh
-nodist_noinst_DATA = t/ax/test-defs.sh
-
-## Will be updated soon.
-noinst_SCRIPTS =
-
-t/ax/shell-no-trail-bslash: t/ax/shell-no-trail-bslash.in Makefile
-       $(AM_V_at)rm -f $@ address@hidden
-       $(AM_V_GEN)in=t/ax/shell-no-trail-bslash.in \
-         && $(MKDIR_P) t/ax \
-         && $(do_subst) <$(srcdir)/$$in >address@hidden \
-         && chmod a+x address@hidden
-       $(generated_file_finalize)
-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)
-       $(AM_V_at)chmod a+x address@hidden
-       $(generated_file_finalize)
-EXTRA_DIST += t/ax/runtest.in
-CLEANFILES += runtest
-noinst_SCRIPTS += runtest
-
-# If two test scripts have the same basename, they will end up sharing
-# the same log file, leading to all sort of undefined and undesired
-# behaviours.
-check-no-repeated-test-name:
-       @LC_ALL=C; export LC_ALL; \
-        lst='$(TEST_LOGS)'; for log in $$lst; do echo $$log; done \
-          | sort | uniq -c | awk '($$1 > 1) { print }' \
-          | sed 's/\.log$$//' | grep . >&2 \
-          && { \
-            echo $@: test names listed above are duplicated >&2; \
-            exit 1; \
-          }; :
-check-local: check-no-repeated-test-name
-.PHONY: check-no-repeated-test-name
-
-# Check that our test cases are syntactically correct.
-# See automake bug#11898.
-check-tests-syntax:
-       @st=0; \
-       err () { echo "$@: $$*" >&2; st=1; }; \
-## The user might do something like "make check TESTS=t/foo" or
-## "make check TESTS_LOGS=t/foo.log" and expect (say) the test
-## 't/foo.sh' to be run; this has worked well until today, and
-## we want to continue supporting this use case.
-       bases=`for log in : $(TEST_LOGS); do echo $$log; done \
-         | sed -e '/^:$$/d' -e 's/\.log$$//'`; \
-       for bas in $$bases; do \
-         for suf in sh tap pl; do \
-           tst=$$bas.$$suf; \
-## Emulate VPATH search.
-           if test -f $$tst; then \
-             break; \
-           elif test -f $(srcdir)/$$tst; then \
-             tst=$(srcdir)/$$tst; \
-             break; \
-           else \
-             tst=''; \
-           fi; \
-         done; \
-         test -n "$$tst" || err "couldn't find test '$$bas'"; \
-## Don't check that perl tests are valid shell scripts!
-         test $$suf = pl && continue; \
-         $(AM_V_P) && echo " $(AM_TEST_RUNNER_SHELL) -n $$tst"; \
-         $(AM_TEST_RUNNER_SHELL) -n "$$tst" \
-           || err "test '$$tst' syntactically invalid"; \
-       done; \
-       exit $$st
-check-local: check-tests-syntax
-.PHONY: check-tests-syntax
-
-# Recipes with a trailing backslash character (possibly followed by
-# blank characters only) can cause spurious syntax errors with at
-# least older bash versions (e.g., bash 2.05b), and can be potentially
-# be unportable to other weaker shells.  Run the testsuite in a way
-# that helps catching such problems in Automake-generated recipes.
-# See automake bug#10436.
-check-no-trailing-backslash-in-recipes:
-       $(AM_V_at)$(MAKE) check \
-         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:
-       am_running_installcheck=yes $(MAKE) check
-
-# Run the testsuite without skipping expensive tests by default.
-check-expensive installcheck-expensive: %-expensive:
-       $(MAKE) $* RUN_EXPENSIVE_TESTS=yes
-
-# Performance tests.
-perf_TESTS = $(wildcard $(srcdir)/t/perf/*.sh) \
-             $(wildcard $(srcdir)/t/perf/*.tap)
-.PHONY: perf
-perf: all
-       $(MAKE) TEST_SUITE_LOG='$(PERF_TEST_SUITE_LOG)' \
-               TESTS='$(perf_TESTS)' check
-PERF_TEST_SUITE_LOG = t/perf/test-suite.log
-CLEANFILES += $(PERF_TEST_SUITE_LOG)
-EXTRA_DIST += $(perf_TESTS)
-
-clean-local: clean-local-check
-.PHONY: clean-local-check
-clean-local-check:
-## Directories candidate to be test directories match this wildcard.
-       @globs='t/*.dir t/*/*.dir */t/*.dir */t/*/*.dir'; \
-## The 'nullglob' bash option is not portable, so use perl.
-       dirs=`$(PERL) -e "print join(' ', glob('$$globs'));"` || exit 1; \
-       if test -n "$$dirs"; then \
-## Errors in find are acceptable, errors in rm are not.
-           find $$dirs -type d ! -perm -700 -exec chmod u+rwx {} ';'; \
-           echo " rm -rf $$dirs"; \
-           rm -rf $$dirs || exit 1; \
-       fi
-
-
-## ---------------- ##
-##  Documentation.  ##
-## ---------------- ##
-
-info_TEXINFOS = doc/automake-ng.texi
-doc_automake_ng_TEXINFOS = doc/fdl.texi
-
-CLEANFILES += $(man1_MANS)
-EXTRA_DIST += doc/help2man
-
-man1_MANS = $(versioned_mans) $(unversioned_mans)
-
-unversioned_mans = doc/aclocal.1 doc/automake.1
-versioned_mans = doc/aclocal-$(APIVERSION).1 doc/automake-$(APIVERSION).1
-
-$(unversioned_mans): Makefile
-       $(AM_V_GEN)$(MKDIR_P) doc \
-         && f=`echo $(@D) | sed 's|.*/||; s|\.1$$||; $(transform)'` \
-         && echo ".so man1/$$f-$(APIVERSION).1" > $@
-
-$(versioned_mans): doc/%-$(APIVERSION).1: % lib/Automake/Config.pm
-        $(AM_V_GEN)$(MKDIR_P) doc \
-           && $(extend_PATH) \
-           && $(PERL) $(srcdir)/doc/help2man --output=$@ $*-$(APIVERSION)
-
-
-## ---------------------------- ##
-##  Example package "amhello".  ##
-## ---------------------------- ##
-
-amhello_sources = \
-  doc/amhello/configure.ac \
-  doc/amhello/Makefile.am \
-  doc/amhello/README \
-  doc/amhello/src/main.c \
-  doc/amhello/src/Makefile.am
-
-amhello_configury = \
-  aclocal.m4 \
-  autom4te.cache \
-  Makefile.in \
-  config.h.in \
-  configure \
-  depcomp \
-  install-sh \
-  missing \
-  src/Makefile.in \
-  am-ng
-
-dist_noinst_DATA += $(amhello_sources)
-dist_doc_DATA = $(srcdir)/doc/amhello-1.0.tar.gz
-
-setup_autotools_paths = { \
-  $(extend_PATH) \
-    && ACLOCAL=aclocal-$(APIVERSION) && export ACLOCAL \
-    && AUTOMAKE=automake-$(APIVERSION) && export AUTOMAKE \
-    && AUTOCONF='$(am_AUTOCONF)' && export AUTOCONF \
-    && AUTOM4TE='$(am_AUTOM4TE)' && export AUTOM4TE \
-    && AUTORECONF='$(am_AUTORECONF)' && export AUTORECONF \
-    && AUTOHEADER='$(am_AUTOHEADER)' && export AUTOHEADER \
-    && AUTOUPDATE='$(am_AUTOUPDATE)' && export AUTOUPDATE \
-    && true; \
-}
-
-# We depend on configure.ac so that we regenerate the tarball
-# whenever the Automake version changes.
-$(srcdir)/doc/amhello-1.0.tar.gz: $(amhello_sources) $(srcdir)/configure.ac
-       $(AM_V_GEN)tmp=amhello-output.tmp \
-         && cd $(srcdir)/doc/amhello \
-         && : Make our aclocal and automake avaiable before system ones. \
-         && $(setup_autotools_paths) \
-         && ( \
-           { $(AM_V_P) || exec 5>&2 >$$tmp 2>&1; } \
-             && $(am_AUTORECONF) -vfi \
-             && ./configure \
-             && $(MAKE) distcheck \
-             && $(MAKE) distclean \
-             || { \
-               if $(AM_V_P); then :; else \
-                 echo "$@: recipe failed." >&5; \
-                 echo "See file '`pwd`/$$tmp' for details" >&5; \
-               fi; \
-               exit 1; \
-             } \
-         ) \
-         && rm -rf $(amhello_configury) $$tmp \
-         && mv -f amhello-1.0.tar.gz ..
-
-
-## ------------------------------------------------- ##
-##  Third-party, obsolescent or experimental stuff.  ##
-## ------------------------------------------------- ##
-
+# Third-party, obsolescent or experimental stuff.
 EXTRA_DIST += \
   contrib/check-html.am \
   contrib/README
 
-
-## --------------------------------------------------- ##
-##  Older files, kept mostly for historical interest.  ##
-## --------------------------------------------------- ##
-
+# Older files, kept mostly for historical interest.
 EXTRA_DIST += \
   $(addprefix old/ChangeLog., 96 98 00 01 02 03 04 09 11) \
   old/ChangeLog-tests old/TODO
 
-## ---------------------------------------- ##
-##  Maintainer-specific files and scripts.  ##
-## ---------------------------------------- ##
-  
+# Maintainer-specific files and scripts.
 EXTRA_DIST += \
   maintainer/am-ft \
   maintainer/am-xft \
   maintainer/rename-tests \
   maintainer/maint.mk \
   maintainer/syntax-checks.mk
+
+# Most work delegated to sub-dir makefile fragments.
+include $(srcdir)/bin/Makefile.inc
+include $(srcdir)/doc/Makefile.inc
+include $(srcdir)/lib/Makefile.inc
+include $(srcdir)/lib/Automake/Makefile.inc
+include $(srcdir)/lib/am/Makefile.inc
+include $(srcdir)/m4/Makefile.inc
+include $(srcdir)/t/Makefile.inc
+
+# vim: ft=automake noet
diff --git a/THANKS b/THANKS
index fd023e2..66b3270 100644
--- a/THANKS
+++ b/THANKS
@@ -261,6 +261,7 @@ Michael Brantley                address@hidden
 Michael Daniels                 address@hidden
 Michael Hofmann                 address@hidden
 Michael Ploujnikov              address@hidden
+Michael Zucchi                  address@hidden
 Michel de Ruiter                address@hidden
 Mike Castle                     address@hidden
 Mike Frysinger                  address@hidden
diff --git a/bin/Makefile.inc b/bin/Makefile.inc
new file mode 100644
index 0000000..5958829
--- /dev/null
+++ b/bin/Makefile.inc
@@ -0,0 +1,68 @@
+## Copyright (C) 1995-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/>.
+
+## ----------------------------------- ##
+##  The automake and aclocal scripts.  ##
+## ----------------------------------- ##
+
+bin_SCRIPTS = %D%/automake %D%/aclocal
+CLEANFILES += $(bin_SCRIPTS)
+
+# Used by maintainer checks and such.
+automake_in = $(srcdir)/%D%/automake.in
+aclocal_in  = $(srcdir)/%D%/aclocal.in
+automake_script = %D%/automake
+aclocal_script  = %D%/aclocal
+
+AUTOMAKESOURCES = $(automake_in) $(aclocal_in)
+TAGS_FILES += $(AUTOMAKESOURCES)
+EXTRA_DIST += $(AUTOMAKESOURCES)
+
+# Make versioned links.  We only run the transform on the root name;
+# then we make a versioned link with the transformed base name.  This
+# seemed like the most reasonable approach.
+install-exec-hook:
+       @$(POST_INSTALL)
+       @for p in $(bin_SCRIPTS); do \
+         f=`echo $$p | sed -e 's,.*/,,' -e '$(transform)'`; \
+         fv="$$f-$(APIVERSION)"; \
+         rm -f "$(DESTDIR)$(bindir)/$$fv"; \
+         echo " $(LN) '$(DESTDIR)$(bindir)/$$f' '$(DESTDIR)$(bindir)/$$fv'"; \
+         $(LN) "$(DESTDIR)$(bindir)/$$f" "$(DESTDIR)$(bindir)/$$fv"; \
+       done
+
+uninstall-hook:
+       @for p in $(bin_SCRIPTS); do \
+         f=`echo $$p | sed -e 's,.*/,,' -e '$(transform)'`; \
+         fv="$$f-$(APIVERSION)"; \
+         rm -f "$(DESTDIR)$(bindir)/$$fv"; \
+       done
+
+# These files depend on Makefile so they are rebuilt if $(VERSION),
+# $(datadir) or other do_subst'd variables change.
+%D%/automake %D%/aclocal: %: %.in Makefile %D%/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)/%D%/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.
+         && chmod a+x,a-w address@hidden && mv -f address@hidden $@
+EXTRA_DIST += %D%/gen-perl-protos
+
+# vim: ft=automake noet
diff --git a/aclocal.in b/bin/aclocal.in
similarity index 100%
rename from aclocal.in
rename to bin/aclocal.in
diff --git a/automake.in b/bin/automake.in
similarity index 99%
rename from automake.in
rename to bin/automake.in
index f3fc068..dc0da8a 100644
--- a/automake.in
+++ b/bin/automake.in
@@ -235,7 +235,7 @@ my $configure_ac = 'configure.ac';
 # Files found by scanning configure.ac for LIBOBJS.
 my %libsources = ();
 
-# Names used in AC_CONFIG_HEADER call.
+# Names used in AC_CONFIG_HEADERS call.
 my @config_headers = ();
 
 # Names used in AC_CONFIG_LINKS call.
@@ -251,8 +251,8 @@ my @configure_input_files = ();
 # List of files in AC_CONFIG_FILES/AC_OUTPUT without Makefile.am's,
 # and their outputs.
 my @other_input_files = ();
-# Where each AC_CONFIG_FILES/AC_OUTPUT/AC_CONFIG_LINK/AC_CONFIG_HEADER appears.
-# The keys are the files created by these macros.
+# Where each AC_CONFIG_FILES/AC_OUTPUT/AC_CONFIG_LINK/AC_CONFIG_HEADERS
+# appears.  The keys are the files created by these macros.
 my %ac_config_files_location = ();
 # The condition under which AC_CONFIG_FOOS appears.
 my %ac_config_files_condition = ();
@@ -3366,23 +3366,61 @@ sub rewrite_inputs_into_dependencies
 sub handle_config_headers ()
 {
   my (@config_h_local, @config_h_nonlocal, @config_hin_local);
+  my $hdr_index = 0;
   foreach my $spec (@config_headers)
     {
-      my ($out, @ins) = split_config_file_spec ($spec);
-      if ($relative_dir eq dirname ($out))
-       {
-         push @config_h_local, basename ($out);
-       }
+      $hdr_index += 1;
+      # $CONFIG_H_PATH: config.h from top level.
+      my ($config_h_path, @ins) = split_config_file_spec ($spec);
+      my $config_h_dir = dirname ($config_h_path);
+
+      my ($stamp_dir, $cn_sans_dir) = ('', undef);
+      if ($relative_dir eq $config_h_dir)
+        {
+          $cn_sans_dir = basename ($config_h_path);
+          push @config_h_local, $cn_sans_dir;
+        }
       else
-       {
-         push @config_h_nonlocal, "\$(top_builddir)/$out";
-       }
+        {
+          $cn_sans_dir = $config_h_path;
+          $stamp_dir = $config_h_dir . '/' if $config_h_dir ne '.';
+          push @config_h_nonlocal, "\$(top_builddir)/$config_h_path";
+        }
+
       foreach my $in (@ins)
         {
          push @config_hin_local, '$(srcdir)/' . basename ($in)
             if $relative_dir eq dirname ($in);
         }
+
+      # If the header is in the current directory we want to build
+      # the header here.  Otherwise, if we're at the topmost
+      # directory and the header's directory doesn't have a
+      # Makefile, then we also want to build the header.
+      next unless ($relative_dir eq $config_h_dir or
+                  $relative_dir eq '.' && ! is_make_dir ($config_h_dir));
+
+      # This will also distribute all inputs.
+      @ins = rewrite_inputs_into_dependencies ($config_h_path, @ins);
+
+      # Cannot define rebuild rules for filenames with shell variables.
+      next if (substitute_ac_subst_variables $config_h_path) =~ /\$/;
+
+      my $stamp = "${stamp_dir}stamp-h${hdr_index}";
+      $output_rules .=
+        file_contents ('remake-hdr',
+                       new Automake::Location,
+                       'FIRST-HDR'      => ($hdr_index == 1),
+                       CONFIG_H         => $cn_sans_dir,
+                       CONFIG_HIN       => $ins[0],
+                       CONFIG_H_DEPS    => "@ins",
+                       CONFIG_H_PATH    => $config_h_path,
+                       STAMP            => $stamp);
+
+      $clean_files{$cn_sans_dir} = DIST_CLEAN;
+      $clean_files{$stamp} = DIST_CLEAN;
     }
+
   define_variable ('am.config-hdr.local', INTERNAL, @config_h_local);
   define_variable ('am.config-hdr.non-local', INTERNAL, @config_h_nonlocal);
   define_variable ('am.config-hdr.local.in',  INTERNAL, @config_hin_local);
@@ -3427,63 +3465,6 @@ sub handle_configure
      'REGEN-ACLOCAL-M4'    => $regen_aclocal_m4,
      VERBOSE               => verbose_flag ('GEN'));
 
-  # If we have a configure header, require it.
-  my $hdr_index = 0;
-  foreach my $spec (@config_headers)
-    {
-      $hdr_index += 1;
-      # $CONFIG_H_PATH: config.h from top level.
-      my ($config_h_path, @ins) = split_config_file_spec ($spec);
-      my $config_h_dir = dirname ($config_h_path);
-
-      # If the header is in the current directory we want to build
-      # the header here.  Otherwise, if we're at the topmost
-      # 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)))
-       {
-         my ($cn_sans_dir, $stamp_dir);
-         if ($relative_dir eq $config_h_dir)
-           {
-             $cn_sans_dir = basename ($config_h_path);
-             $stamp_dir = '';
-           }
-         else
-           {
-             $cn_sans_dir = $config_h_path;
-             if ($config_h_dir eq '.')
-               {
-                 $stamp_dir = '';
-               }
-             else
-               {
-                 $stamp_dir = $config_h_dir . '/';
-               }
-           }
-
-         # This will also distribute all inputs.
-         @ins = rewrite_inputs_into_dependencies ($config_h_path, @ins);
-
-         # Cannot define rebuild rules for filenames with shell variables.
-         next if (substitute_ac_subst_variables $config_h_path) =~ /\$/;
-
-         my $stamp = "${stamp_dir}stamp-h${hdr_index}";
-         $output_rules .=
-           file_contents ('remake-hdr',
-                          new Automake::Location,
-                          'FIRST-HDR'      => ($hdr_index == 1),
-                          CONFIG_H         => $cn_sans_dir,
-                          CONFIG_HIN       => $ins[0],
-                          CONFIG_H_DEPS    => "@ins",
-                          CONFIG_H_PATH    => $config_h_path,
-                          STAMP            => "$stamp");
-
-           $clean_files{$cn_sans_dir} = DIST_CLEAN;
-           $clean_files{$stamp} = DIST_CLEAN;
-       }
-    }
-
   # Now look for other files in this directory which must be remade
   # by config.status, and generate rules for them.
   my @actual_other_files = ();
diff --git a/lib/gen-perl-protos b/bin/gen-perl-protos
similarity index 100%
rename from lib/gen-perl-protos
rename to bin/gen-perl-protos
diff --git a/bootstrap.sh b/bootstrap.sh
index 1a7029b..8c42cdb 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -92,9 +92,9 @@ dosubst automake-$APIVERSION/Automake/Config.in \
 dosubst m4/amversion.in m4/amversion.m4
 
 # Create temporary replacement for aclocal and automake.
-for p in aclocal automake; do
+for p in bin/aclocal bin/automake; do
   dosubst $p.in $p.tmp
-  $PERL -w lib/gen-perl-protos $p.tmp > $p.tmp2
+  $PERL -w bin/gen-perl-protos $p.tmp > $p.tmp2
   mv -f $p.tmp2 $p.tmp
 done
 
@@ -106,11 +106,11 @@ mv -f testsuite-autodeps.tmp testsuite-autodeps.am
 # Run the autotools.  Bail out if any warning is triggered.
 # Use '-I' here so that our own *.m4 files in m4/ gets included,
 # not copied, in aclocal.m4.
-$PERL ./aclocal.tmp -Wall -Werror -I m4 \
-                    --automake-acdir=m4 --system-acdir=m4/acdir
+$PERL ./bin/aclocal.tmp -Wall -Werror -I m4 \
+                        --automake-acdir=m4 --system-acdir=m4/acdir
 $AUTOCONF -Wall -Werror
-$PERL ./automake.tmp -Wall -Werror
+$PERL ./bin/automake.tmp -Wall -Werror
 
 # Remove temporary files and directories.
 rm -rf aclocal-$APIVERSION automake-$APIVERSION
-rm -f aclocal.tmp automake.tmp
+rm -f bin/aclocal.tmp bin/automake.tmp
diff --git a/configure.ac b/configure.ac
index 49a83bd..8f1bdcb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,7 +18,7 @@
 AC_PREREQ([2.69])
 AC_INIT([GNU Automake], [1.99a], address@hidden)
 
-AC_CONFIG_SRCDIR([automake.in])
+AC_CONFIG_SRCDIR([bin/automake.in])
 AC_CONFIG_AUX_DIR([lib])
 
 AM_SILENT_RULES([yes])
@@ -39,7 +39,7 @@ AC_SUBST([am_AUTOUPDATE], ["${AUTOUPDATE-autoupdate}"])
 dnl We call AC_PROG_CC in an unusual way, and only for use in our
 dnl testsuite, so also use 'no-dependencies' and 'no-define' among
 dnl the automake options to avoid bloating and potential problems.
-AM_INIT_AUTOMAKE([ng -Wall -Werror filename-length-max=99 
+AM_INIT_AUTOMAKE([ng -Wall -Werror filename-length-max=99
                   no-define no-dependencies])
 
 ## Keep this on a line of its own, since it must be found and processed
diff --git a/lib/am/vala.am b/contrib/t/Makefile.inc
similarity index 66%
copy from lib/am/vala.am
copy to contrib/t/Makefile.inc
index 1289175..29eb436 100644
--- a/lib/am/vala.am
+++ b/contrib/t/Makefile.inc
@@ -1,17 +1,24 @@
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 2008-2013 Free Software Foundation, Inc.
+## Included by top-level Makefile for Automake.
 
+## Copyright (C) 1995-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/>.
 
-## There is no rule here.  :-)
+## -------------------------------- ##
+##  Tests for stuff in 'contrib/'.  ##
+## -------------------------------- ##
+
+contrib_TESTS = \
+  %D%/parallel-tests-html.sh \
+  %D%/parallel-tests-html-recursive.sh
diff --git a/contrib/t/local.am b/contrib/t/local.am
deleted file mode 100644
index 7a88f47..0000000
--- a/contrib/t/local.am
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright (C) 1995-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/>.
-
-# Automake: tests for stuff in 'contrib/'.
-
-## Relative to the top-level directory.
-contrib_testsuite_dir = contrib/t
-
-contrib_TESTS = \
-  $(contrib_testsuite_dir)/parallel-tests-html.sh \
-  $(contrib_testsuite_dir)/parallel-tests-html-recursive.sh
diff --git a/doc/Makefile.inc b/doc/Makefile.inc
new file mode 100644
index 0000000..603d45d
--- /dev/null
+++ b/doc/Makefile.inc
@@ -0,0 +1,111 @@
+## Included by top-level Makefile for Automake.
+
+## Copyright (C) 1995-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/>.
+
+## ---------------- ##
+##  Documentation.  ##
+## ---------------- ##
+
+## ---------------- ##
+##  Documentation.  ##
+## ---------------- ##
+
+info_TEXINFOS = %D%/automake-ng.texi
+doc_automake_ng_TEXINFOS = %D%/fdl.texi
+
+CLEANFILES += $(man1_MANS)
+EXTRA_DIST += %D%/help2man
+
+man1_MANS = $(versioned_mans) $(unversioned_mans)
+
+unversioned_mans = %D%/aclocal.1 %D%/automake.1
+versioned_mans = %D%/aclocal-$(APIVERSION).1 %D%/automake-$(APIVERSION).1
+
+$(unversioned_mans): Makefile
+       $(AM_V_GEN)$(MKDIR_P) %D% \
+         && f=`echo $(@D) | sed 's|.*/||; s|\.1$$||; $(transform)'` \
+         && echo ".so man1/$$f-$(APIVERSION).1" > $@
+
+$(versioned_mans): %D%/%-$(APIVERSION).1: bin/% lib/Automake/Config.pm
+        $(AM_V_GEN)$(MKDIR_P) %D% \
+           && $(extend_PATH) \
+           && $(PERL) $(srcdir)/%D%/help2man --output=$@ $*-$(APIVERSION)
+
+
+## ---------------------------- ##
+##  Example package "amhello".  ##
+## ---------------------------- ##
+
+amhello_sources = \
+  %D%/amhello/configure.ac \
+  %D%/amhello/Makefile.am \
+  %D%/amhello/README \
+  %D%/amhello/src/main.c \
+  %D%/amhello/src/Makefile.am
+
+amhello_configury = \
+  aclocal.m4 \
+  autom4te.cache \
+  Makefile.in \
+  config.h.in \
+  configure \
+  depcomp \
+  install-sh \
+  missing \
+  am-ng \
+  src/Makefile.in
+
+dist_noinst_DATA += $(amhello_sources)
+dist_doc_DATA = $(srcdir)/%D%/amhello-1.0.tar.gz
+
+setup_autotools_paths = { \
+  $(extend_PATH) \
+    && ACLOCAL=aclocal-$(APIVERSION) && export ACLOCAL \
+    && AUTOMAKE=automake-$(APIVERSION) && export AUTOMAKE \
+    && AUTOCONF='$(am_AUTOCONF)' && export AUTOCONF \
+    && AUTOM4TE='$(am_AUTOM4TE)' && export AUTOM4TE \
+    && AUTORECONF='$(am_AUTORECONF)' && export AUTORECONF \
+    && AUTOHEADER='$(am_AUTOHEADER)' && export AUTOHEADER \
+    && AUTOUPDATE='$(am_AUTOUPDATE)' && export AUTOUPDATE \
+    && true; \
+}
+
+# We depend on configure.ac so that we regenerate the tarball
+# whenever the Automake version changes.
+$(srcdir)/%D%/amhello-1.0.tar.gz: $(amhello_sources) $(srcdir)/configure.ac
+       $(AM_V_GEN)tmp=amhello-output.tmp \
+         && cd $(srcdir)/%D%/amhello \
+         && : Make our aclocal and automake avaiable before system ones. \
+         && $(setup_autotools_paths) \
+         && ( \
+           { $(AM_V_P) || exec 5>&2 >$$tmp 2>&1; } \
+             && $(am_AUTORECONF) -vfi \
+             && ./configure \
+             && $(MAKE) distcheck \
+             && $(MAKE) distclean \
+             || { \
+               if $(AM_V_P); then :; else \
+                 echo "$@: recipe failed." >&5; \
+                 echo "See file '`pwd`/$$tmp' for details" >&5; \
+               fi; \
+               exit 1; \
+             } \
+         ) \
+         && rm -rf $(amhello_configury) $$tmp \
+         && mv -f amhello-1.0.tar.gz ..
+
+
+# vim: ft=automake noet
diff --git a/doc/automake-ng.texi b/doc/automake-ng.texi
index 96a5b90..7b31803 100644
--- a/doc/automake-ng.texi
+++ b/doc/automake-ng.texi
@@ -7538,11 +7538,11 @@ libtool, The Libtool Manual}) with the 
@code{LTLIBRARIES} primary.
 Automake provides some minimal support for Java bytecode compilation with
 the @code{JAVA} primary (in addition to the support for compiling Java to
 native machine code; @pxref{Java Support with gcj}).  Note however that
address@hidden interface and most features described here are deprecated}; the
-next automake release will strive to provide a better and cleaner
address@hidden interface and most features described here are deprecated}.
+Future Automake releases will strive to provide a better and cleaner
 interface, which however @emph{won't be backward-compatible}; the present
-interface will probably be removed altogether in future automake releases
-(1.13 or later), so don't use it in new code.
+interface will probably be removed altogether some time after the
+introduction of the new interface (if that ever materializes).
 
 Any @file{.java} files listed in a @code{_JAVA} variable will be
 compiled with @code{JAVAC} at build time.  By default, @file{.java}
diff --git a/lib/Automake/Makefile.inc b/lib/Automake/Makefile.inc
new file mode 100644
index 0000000..a0028c3
--- /dev/null
+++ b/lib/Automake/Makefile.inc
@@ -0,0 +1,55 @@
+## Included by top-level Makefile for Automake.
+
+## Copyright (C) 1995-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/>.
+
+## ---------------------------------------------------- ##
+##  Private perl modules used by automake and aclocal.  ##
+## ---------------------------------------------------- ##
+
+perllibdir = $(pkgvdatadir)/Automake
+
+dist_perllib_DATA = \
+  %D%/ChannelDefs.pm \
+  %D%/Channels.pm \
+  %D%/Condition.pm \
+  %D%/DisjConditions.pm \
+  %D%/FileUtils.pm \
+  %D%/General.pm \
+  %D%/Getopt.pm \
+  %D%/Item.pm \
+  %D%/ItemDef.pm \
+  %D%/Language.pm \
+  %D%/Location.pm \
+  %D%/Options.pm \
+  %D%/Rule.pm \
+  %D%/RuleDef.pm \
+  %D%/Variable.pm \
+  %D%/VarDef.pm \
+  %D%/Version.pm \
+  %D%/XFile.pm \
+  %D%/Wrap.pm
+
+nodist_perllib_DATA = %D%/Config.pm
+CLEANFILES += $(nodist_perllib_DATA)
+
+%D%/Config.pm: %D%/Config.in Makefile
+       $(AM_V_at)rm -f $@ address@hidden
+       $(AM_V_at)$(MKDIR_P) %D%
+       $(AM_V_GEN)$(do_subst)
+       $(generated_file_finalize)
+EXTRA_DIST += %D%/Config.in
+
+# vim: ft=automake noet
diff --git a/lib/Makefile.inc b/lib/Makefile.inc
new file mode 100644
index 0000000..e5fcb70
--- /dev/null
+++ b/lib/Makefile.inc
@@ -0,0 +1,57 @@
+## Included by top-level Makefile for Automake.
+
+## Copyright (C) 1995-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/>.
+
+## -------------------------------------------------------------------- ##
+##  Auxiliary scripts and files for use with "automake --add-missing".  ##
+## -------------------------------------------------------------------- ##
+
+dist_pkgvdata_DATA = \
+  %D%/COPYING \
+  %D%/INSTALL \
+  %D%/texinfo.tex
+
+# These must all be executable when installed.  However, if we use
+# _SCRIPTS, then the program transform will be applied, which is not
+# what we want.  So we make them executable by hand.
+dist_script_DATA = \
+  %D%/config.guess \
+  %D%/config.sub \
+  %D%/install-sh \
+  %D%/mdate-sh \
+  %D%/missing \
+  %D%/ylwrap \
+  %D%/depcomp \
+  %D%/compile \
+  %D%/py-compile \
+  %D%/ar-lib \
+  %D%/test-driver \
+  %D%/tap-driver.sh \
+  %D%/tap-driver.pl
+
+install-data-hook:
+       @$(POST_INSTALL)
+       chmod +x $(patsubst 
%D%/%,'$(DESTDIR)$(scriptdir)/%',$(dist_script_DATA))
+
+installcheck-local: installcheck-executable-scripts
+installcheck-executable-scripts:
+       @st=0; \
+        for f in $(patsubst %D%/%,'$(scriptdir)/%',$(dist_script_DATA)); do \
+          test -x $$f || { echo "$@: $$f: not executable" >&2; st=1; }; \
+        done; \
+        exit $$st;
+
+# vim: ft=automake noet
diff --git a/lib/am/Makefile.inc b/lib/am/Makefile.inc
new file mode 100644
index 0000000..63b77be
--- /dev/null
+++ b/lib/am/Makefile.inc
@@ -0,0 +1,66 @@
+## Included by top-level Makefile for Automake.
+
+## Copyright (C) 1995-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/>.
+
+## --------------------- ##
+##  Makefile fragments.  ##
+## --------------------- ##
+
+amdir = @amdir@
+
+dist_am_DATA = \
+  %D%/am-dir.mk \
+  %D%/common-targets.mk \
+  %D%/color-tests.mk \
+  %D%/serial-tests.mk \
+  %D%/parallel-tests.mk \
+  %D%/check-typos.mk \
+  %D%/clean.mk \
+  %D%/header-vars.mk \
+  %D%/tags.mk \
+  %D%/dejagnu.mk \
+  %D%/distcheck.mk \
+  %D%/distdir.mk \
+  %D%/subdirs.mk \
+  %D%/texibuild.mk \
+  %D%/texinfos.mk \
+  %D%/compile.am \
+  %D%/configure.am \
+  %D%/data.am \
+  %D%/depend2.am \
+  %D%/footer.am \
+  %D%/header.am \
+  %D%/java.am \
+  %D%/lang-compile.am \
+  %D%/lex.am \
+  %D%/library.am \
+  %D%/libs.am \
+  %D%/lisp.am \
+  %D%/ltlib.am \
+  %D%/ltlibrary.am \
+  %D%/mans-vars.am \
+  %D%/mans.am \
+  %D%/program.am \
+  %D%/progs.am \
+  %D%/python.am \
+  %D%/remake-hdr.am \
+  %D%/scripts.am \
+  %D%/texi-vers.am \
+  %D%/texi-spec.am \
+  %D%/vala.am \
+  %D%/yacc.am
+
+# vim: ft=automake noet
diff --git a/lib/am/library.am b/lib/am/library.am
index c7eae86..bf260ef 100644
--- a/lib/am/library.am
+++ b/lib/am/library.am
@@ -13,6 +13,7 @@
 
 ## You should have received a copy of the GNU General Public License
 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
 %LIBRARY%: $(%XLIBRARY%_OBJECTS) $(%XLIBRARY%_DEPENDENCIES) \
            $(EXTRA_%XLIBRARY%_DEPENDENCIES)
        %SILENT%rm -f $@
diff --git a/lib/am/ltlibrary.am b/lib/am/ltlibrary.am
index 49c646a..e036779 100644
--- a/lib/am/ltlibrary.am
+++ b/lib/am/ltlibrary.am
@@ -13,6 +13,7 @@
 
 ## You should have received a copy of the GNU General Public License
 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
 %LTLIBRARY%: $(%XLTLIBRARY%_OBJECTS) $(%XLTLIBRARY%_DEPENDENCIES) \
              $(EXTRA_%XLTLIBRARY%_DEPENDENCIES)
        %SILENT%$(am.cmd.ensure-target-dir-exists)
diff --git a/lib/am/program.am b/lib/am/program.am
index de4ca20..446fbce 100644
--- a/lib/am/program.am
+++ b/lib/am/program.am
@@ -13,6 +13,7 @@
 
 ## You should have received a copy of the GNU General Public License
 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
 %PROGRAM%%EXEEXT%: $(%XPROGRAM%_OBJECTS) $(%XPROGRAM%_DEPENDENCIES) \
                    $(EXTRA_%XPROGRAM%_DEPENDENCIES)
 ## Remove program before linking.  Otherwise the link will fail if the
diff --git a/m4/Makefile.inc b/m4/Makefile.inc
new file mode 100644
index 0000000..ad3048b
--- /dev/null
+++ b/m4/Makefile.inc
@@ -0,0 +1,71 @@
+## Included by top-level Makefile for Automake.
+
+## Copyright (C) 1995-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/>.
+
+## ------------------------------ ##
+##  Automake-provided m4 macros.  ##
+## ------------------------------ ##
+
+system_acdir = @system_acdir@
+automake_acdir = @automake_acdir@
+
+dist_automake_ac_DATA = \
+  %D%/amversion.m4 \
+  %D%/ar-lib.m4 \
+  %D%/as.m4 \
+  %D%/auxdir.m4 \
+  %D%/cond.m4 \
+  %D%/cond-if.m4 \
+  %D%/depend.m4 \
+  %D%/dmalloc.m4 \
+  %D%/extra-recurs.m4 \
+  %D%/gcj.m4 \
+  %D%/init.m4 \
+  %D%/install-sh.m4 \
+  %D%/lex.m4 \
+  %D%/lispdir.m4 \
+  %D%/minuso.m4 \
+  %D%/missing.m4 \
+  %D%/obsolete.m4 \
+  %D%/options.m4 \
+  %D%/python.m4 \
+  %D%/runlog.m4 \
+  %D%/sanity.m4 \
+  %D%/silent.m4 \
+  %D%/strip.m4 \
+  %D%/substnot.m4 \
+  %D%/tar.m4 \
+  %D%/upc.m4 \
+  %D%/vala.m4
+
+dist_system_ac_DATA = %D%/acdir/README
+
+automake_internal_acdir = $(automake_acdir)/internal
+dist_automake_internal_ac_DATA = %D%/internal/ac-config-macro-dirs.m4
+
+# We build amversion.m4 here, instead of from config.status,
+# because config.status is rerun each time one of configure's
+# dependencies change and amversion.m4 happens to be a configure
+# dependency.  configure and amversion.m4 would be rebuilt in
+# loop otherwise.
+$(srcdir)/%D%/amversion.m4: $(srcdir)/%D%/amversion.in \
+                            $(srcdir)/configure.ac
+       $(AM_V_at)rm -f address@hidden $@
+       $(AM_V_GEN)$(do_subst)
+       $(generated_file_finalize)
+EXTRA_DIST += %D%/amversion.in
+
+# vim: ft=automake noet
diff --git a/maintainer/maint.mk b/maintainer/maint.mk
index 93c6972..5bd9d1b 100644
--- a/maintainer/maint.mk
+++ b/maintainer/maint.mk
@@ -290,7 +290,11 @@ announcement: NEWS
          && X \
          && X "-*-*-*-" \
          && X \
-         && sed -n -e '/^~~~/q' -e p $(srcdir)/NEWS >> address@hidden \
+         && $(AWK) '\
+               ($$0 == "New in $(VERSION):") { wait_for_end=1; } \
+               (/^~~~/ && wait_for_end) { exit(0) } \
+               { print } \
+            ' <$(srcdir)/NEWS >> address@hidden \
          && mv -f address@hidden $@
 .PHONY: announcement
 CLEANFILES += announcement
@@ -479,7 +483,7 @@ update-copyright:
 
 #
 # NOTE (from Stefano Lattarini):
-# 
+#
 # This section is mostly hacky and ad-hoc, but works for me and
 # on my system.  And while far from clean, it should help catching
 # real regressions on real world packages, which is important.
diff --git a/maintainer/rename-tests b/maintainer/rename-tests
index a584748..28963fa 100755
--- a/maintainer/rename-tests
+++ b/maintainer/rename-tests
@@ -30,7 +30,7 @@ esac
 AWK=${AWK-awk}
 SED=${SED-sed}
 
-[[ -f automake.in && -d lib/Automake ]] \
+[[ -f bin/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 \
diff --git a/maintainer/syntax-checks.mk b/maintainer/syntax-checks.mk
index 4421efe..f5b1fef 100644
--- a/maintainer/syntax-checks.mk
+++ b/maintainer/syntax-checks.mk
@@ -94,17 +94,19 @@ sc_at_in_texi
 ## aclocal.
 automake_diff_no = 7
 aclocal_diff_no = 9
+sc_diff_automake sc_diff_aclocal: in=$($*_in)
+sc_diff_automake sc_diff_aclocal: out=$($*_script)
 sc_diff_automake sc_diff_aclocal: sc_diff_% :
        @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 \
+         && sed '/^#!.*[pP]rototypes/d' $(in) > $$in \
+         && sed '/^# BEGIN.* PROTO/,/^# END.* PROTO/d' $(out) > $$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 "Found unexpected diffs between $(in) and $(out)"; \
            echo "Lines added:   $$added"  ; \
            echo "Lines removed: $$removed"; \
            cat $$diffs; \
@@ -168,15 +170,15 @@ sc_pre_normal_post_install_uninstall:
 
 ## We never want to use "undef", only "delete", but for $/.
 sc_perl_no_undef:
-       @if grep -n -w 'undef ' $(srcdir)/automake.in | \
+       @if grep -n -w 'undef ' $(automake_in) | \
              grep -F -v 'undef $$/'; then \
-         echo "Found undef in automake.in; use delete instead" 1>&2; \
+         echo "Found 'undef' in the lines above; use 'delete' instead" 1>&2; \
          exit 1; \
        fi
 
 ## We never want split (/ /,...), only split (' ', ...).
 sc_perl_no_split_regex_space:
-       @if grep -n 'split (/ /' $(srcdir)/automake.in; then \
+       @if grep -n 'split (/ /' $(automake_in) $(acloca_in); then \
          echo "Found bad split in the lines above." 1>&2; \
          exit 1; \
        fi
@@ -186,7 +188,7 @@ sc_no_am_cd:
          $(xtests) \
          $(pms) \
          $(ams) \
-         $(srcdir)/automake.in \
+         $(automake_in) \
          $(srcdir)/doc/*.texi \
        "; \
        if grep -F 'am__cd' $$files; then \
@@ -197,22 +199,24 @@ sc_no_am_cd:
 
 ## Using @_ in a scalar context is most probably a programming error.
 sc_perl_at_uscore_in_scalar_context:
-       @if grep -Hn 'address@hidden) ] *= address@hidden' 
$(srcdir)/automake.in; then \
+       @if grep -Hn 'address@hidden) ] *= address@hidden' \
+           $(automake_in) $(aclocal_in); then \
          echo "Using @_ in a scalar context in the lines above." 1>&2; \
          exit 1; \
        fi
 
-## Allow only few variables to be localized in Automake.
+## Allow only few variables to be localized in automake and aclocal.
 sc_perl_local:
-       @if egrep -v '^[ \t]*local \$$[_~]( *=|;)' $(srcdir)/automake.in | \
-               grep '^[ \t]*local [^*]'; then \
+       @if egrep -v '^[ \t]*local \$$[_~]( *=|;)' \
+             $(automake_in) $(aclocal_in) | \
+           grep '^[ \t]*local [^*]'; then \
          echo "Please avoid 'local'." 1>&2; \
          exit 1; \
        fi
 
 ## Don't let AMDEP_TRUE substitution appear in automake.in.
 sc_AMDEP_TRUE_in_automake_in:
-       @if grep '@AMDEP''_TRUE@' $(srcdir)/automake.in; then \
+       @if grep '@AMDEP''_TRUE@' $(automake_in); then \
          echo "Don't put AMDEP_TRUE substitution in automake.in" 1>&2; \
          exit 1; \
        fi
@@ -617,7 +621,7 @@ sc_at_in_texi:
          exit 1; \
        fi
 
-$(syntax_check_rules): automake aclocal
+$(syntax_check_rules): bin/automake bin/aclocal
 maintainer-check: $(syntax_check_rules)
 .PHONY: maintainer-check $(syntax_check_rules)
 
diff --git a/t/Makefile.inc b/t/Makefile.inc
new file mode 100644
index 0000000..05c9edb
--- /dev/null
+++ b/t/Makefile.inc
@@ -0,0 +1,308 @@
+## Included by top-level Makefile for Automake.
+
+## Copyright (C) 1995-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/>.
+
+## ------------ ##
+##  Testsuite.  ##
+## ------------ ##
+
+# Run the tests with a proper shell detected at configure time.
+LOG_COMPILER = $(AM_TEST_RUNNER_SHELL)
+
+TEST_EXTENSIONS = .pl .sh .tap
+SH_LOG_COMPILER = $(LOG_COMPILER)
+TAP_LOG_COMPILER = $(LOG_COMPILER)
+PL_LOG_COMPILER = $(PERL)
+AM_PL_LOG_FLAGS = -Mstrict -I $(builddir)/lib -I $(srcdir)/lib -w
+
+TAP_LOG_DRIVER = AM_TAP_AWK='$(AWK)' $(SHELL) $(srcdir)/lib/tap-driver.sh
+
+AM_TAP_LOG_DRIVER_FLAGS = --merge
+
+EXTRA_DIST += %D%/README %D%/ax/is %D%/ax/is_newest
+
+# Hand-written tests for stuff in 'contrib/'.
+include $(srcdir)/contrib/%D%/Makefile.inc
+
+# All tests, both hand-written and autogenerated.
+# IMPORTANT: This assumes that the autogenerated tests are placed
+#            in the $(srcdir) as well!
+all_TESTS = \
+  $(wildcard $(srcdir)/%D%/*.sh) \
+  $(wildcard $(srcdir)/%D%/*.tap) \
+  $(wildcard $(srcdir)/%D%/pm/*.pl)
+
+# This is to ensure longer-running tests will be run earlier, which is
+# useful when running the testsuite in parallel on multicore machines.
+# Here too we assume that the autogenerated tests are placed in $(srcdir).
+long_running_TESTS = \
+  $(srcdir)/%D%/dist-many.sh \
+  $(srcdir)/%D%/parallel-tests-many.sh \
+  $(srcdir)/%D%/add-missing.tap \
+  $(srcdir)/%D%/instspc.tap \
+  $(wildcard $(srcdir)/%D%/depcomp-*.tap) \
+  $(wildcard $(srcdir)/%D%/*libtool*.sh) \
+  $(wildcard $(srcdir)/%D%/lt*.sh) \
+  $(wildcard $(srcdir)/%D%/remake*.sh)
+
+TESTS = \
+  $(long_running_TESTS) \
+  $(filter-out $(long_running_TESTS), $(all_TESTS)) \
+  $(contrib_TESTS)
+
+EXTRA_DIST += $(TESTS)
+
+# FIXME: this "expected failures" are in truth an hack used to
+# FIXME: to verify that some incorrect usages of our perl libraries
+# FIXME: raise an error.  We should find a cleaner way to check that.
+perl_fake_XFAIL_TESTS = \
+  %D%/pm/Cond2.pl \
+  %D%/pm/Cond3.pl \
+  %D%/pm/DisjCon2.pl \
+  %D%/pm/DisjCon3.pl \
+  %D%/pm/Version2.pl \
+  %D%/pm/Version3.pl
+
+XFAIL_TESTS = \
+  %D%/all.sh \
+  %D%/override-suggest-local.sh \
+  %D%/comments-in-var-def.sh \
+  %D%/cond17.sh \
+  %D%/dist-srcdir2.sh \
+  %D%/gcj6.sh \
+  %D%/txinfo-nodist-info.sh \
+  %D%/override-conditional-2.sh \
+  %D%/dist-pr109765.sh \
+  %D%/instdir-cond2.sh \
+  %D%/interp3.sh \
+  %D%/java-nobase.sh \
+  %D%/objext-pr10128.sh \
+  %D%/remake-timing-bug-pr8365.sh \
+  %D%/remake-am-pr10111.sh \
+  %D%/remake-m4-pr10111.sh \
+  %D%/var-undef-append.sh \
+  $(perl_fake_XFAIL_TESTS)
+ 
+# Some testsuite-influential variables should be overridable from the
+# test scripts, but not from the environment.
+# Keep this in sync with the similar list in ax/runtest.in.
+AM_TESTS_ENVIRONMENT = \
+  for v in \
+    required \
+    am_test_protocol \
+    am_serial_tests \
+    am_test_prefer_config_shell \
+    am_original_AUTOMAKE \
+    am_original_ACLOCAL \
+    am_test_lib_sourced \
+    test_lib_sourced \
+  ; do \
+    eval test x"\$${$$v}" = x || unset $$v; \
+  done;
+# We want warning messages and explanations for skipped tests to go to
+# the console if possible, so set up 'stderr_fileno_' properly.
+AM_TESTS_FD_REDIRECT = 9>&2
+AM_TESTS_ENVIRONMENT += stderr_fileno_=9; export stderr_fileno_;
+
+# For sourcing of extra "shell libraries" by our test scripts.  As per
+# POSIX, sourcing a file with '.' will cause it to be looked up in $PATH
+# in case it is given with a relative name containing no slashes.
+AM_TESTS_ENVIRONMENT += \
+  if test $(srcdir) != .; then \
+    PATH='$(abs_srcdir)/%D%/ax'$(PATH_SEPARATOR)$$PATH; \
+  fi; \
+  PATH='$(abs_builddir)/%D%/ax'$(PATH_SEPARATOR)$$PATH; \
+  export PATH;
+
+# Automatically-computed dependencies for tests.
+include $(srcdir)/testsuite-autodeps.am
+
+# The dependencies declared here are not truly complete, but such
+# completeness would cause more issues than it would solve.  See
+# automake bug#11347.
+$(srcdir)/testsuite-autodeps.am: $(srcdir)/gen-testsuite-part
+       $(AM_V_at)rm -f $(@F)-t $@
+       $(AM_V_GEN)$(PERL) $< --srcdir $(srcdir) > $(@F)-t
+       $(AM_V_at)chmod a-w $(@F)-t && mv -f $(@F)-t $@
+EXTRA_DIST += gen-testsuite-part
+
+# Static dependencies valid for each test case (also further
+# extended later).  Note that use 'noinst_' rather than 'check_'
+# as the prefix, because we really want them to be built by
+# "make all".  This makes it easier to run the test cases by
+# hand after having simply configured and built the package.
+
+nodist_noinst_SCRIPTS += \
+  %D%/wrap/aclocal-$(APIVERSION) \
+  %D%/wrap/automake-$(APIVERSION)
+
+dist_noinst_DATA += \
+  %D%/ax/test-init.sh \
+  %D%/ax/test-lib.sh \
+  %D%/ax/am-test-lib.sh \
+  %D%/ax/tap-functions.sh
+
+# Few more static dependencies.
+%D%/distcheck-missing-m4.log: %D%/ax/distcheck-hook-m4.am
+%D%/distcheck-outdated-m4.log: %D%/ax/distcheck-hook-m4.am
+EXTRA_DIST += %D%/ax/distcheck-hook-m4.am
+
+%D%/ax/test-defs.sh: %D%/ax/test-defs.in Makefile
+       $(AM_V_at)rm -f $@ address@hidden
+       $(AM_V_at)$(MKDIR_P) $(@D)
+       $(AM_V_GEN)$(do_subst)
+       $(generated_file_finalize)
+EXTRA_DIST += %D%/ax/test-defs.in
+CLEANFILES += %D%/ax/test-defs.sh
+nodist_noinst_DATA += %D%/ax/test-defs.sh
+
+%D%/ax/shell-no-trail-bslash: %D%/ax/shell-no-trail-bslash.in Makefile
+       $(AM_V_at)rm -f $@ address@hidden
+       $(AM_V_at)$(MKDIR_P) $(@D)
+       $(AM_V_GEN)$(do_subst)
+       $(AM_V_at)chmod a+x address@hidden
+       $(generated_file_finalize)
+EXTRA_DIST += %D%/ax/shell-no-trail-bslash.in
+CLEANFILES += %D%/ax/shell-no-trail-bslash
+nodist_noinst_SCRIPTS += %D%/ax/shell-no-trail-bslash
+
+%D%/ax/cc-no-c-o: %D%/ax/cc-no-c-o.in Makefile
+       $(AM_V_at)rm -f $@ address@hidden
+       $(AM_V_at)$(MKDIR_P) $(@D)
+       $(AM_V_GEN)$(do_subst)
+       $(AM_V_at)chmod a+x address@hidden
+       $(generated_file_finalize)
+EXTRA_DIST += %D%/ax/cc-no-c-o.in
+CLEANFILES += %D%/ax/cc-no-c-o
+nodist_noinst_SCRIPTS += %D%/ax/cc-no-c-o
+
+runtest: %D%/ax/runtest.in Makefile
+       $(AM_V_at)rm -f $@ address@hidden
+       $(AM_V_at)$(MKDIR_P) $(@D)
+       $(AM_V_GEN)$(do_subst)
+       $(AM_V_at)chmod a+x address@hidden
+       $(generated_file_finalize)
+EXTRA_DIST += %D%/ax/runtest.in
+CLEANFILES += runtest
+nodist_noinst_SCRIPTS += runtest
+
+# If two test scripts have the same basename, they will end up sharing
+# the same log file, leading to all sort of undefined and undesired
+# behaviours.
+check-no-repeated-test-name:
+       @LC_ALL=C; export LC_ALL; \
+        lst='$(TEST_LOGS)'; for log in $$lst; do echo $$log; done \
+          | sort | uniq -c | awk '($$1 > 1) { print }' \
+          | sed 's/\.log$$//' | grep . >&2 \
+          && { \
+            echo $@: test names listed above are duplicated >&2; \
+            exit 1; \
+          }; :
+check-local: check-no-repeated-test-name
+.PHONY: check-no-repeated-test-name
+
+# Check that our test cases are syntactically correct.
+# See automake bug#11898.
+check-tests-syntax:
+       @st=0; \
+       err () { echo "$@: $$*" >&2; st=1; }; \
+## The user might do something like "make check TESTS=t/foo" or
+## "make check TESTS_LOGS=t/foo.log" and expect (say) the test
+## 't/foo.sh' to be run; this has worked well until today, and
+## we want to continue supporting this use case.
+       bases=`for log in : $(TEST_LOGS); do echo $$log; done \
+         | sed -e '/^:$$/d' -e 's/\.log$$//'`; \
+       for bas in $$bases; do \
+         for suf in sh tap pl; do \
+           tst=$$bas.$$suf; \
+## Emulate VPATH search.
+           if test -f $$tst; then \
+             break; \
+           elif test -f $(srcdir)/$$tst; then \
+             tst=$(srcdir)/$$tst; \
+             break; \
+           else \
+             tst=''; \
+           fi; \
+         done; \
+         test -n "$$tst" || err "couldn't find test '$$bas'"; \
+## Don't check that perl tests are valid shell scripts!
+         test $$suf = pl && continue; \
+         $(AM_V_P) && echo " $(AM_TEST_RUNNER_SHELL) -n $$tst"; \
+         $(AM_TEST_RUNNER_SHELL) -n "$$tst" \
+           || err "test '$$tst' syntactically invalid"; \
+       done; \
+       exit $$st
+check-local: check-tests-syntax
+.PHONY: check-tests-syntax
+
+# Recipes with a trailing backslash character (possibly followed by
+# blank characters only) can cause spurious syntax errors with at
+# least older bash versions (e.g., bash 2.05b), and can be potentially
+# be unportable to other weaker shells.  Run the testsuite in a way
+# that helps catching such problems in Automake-generated recipes.
+# See automake bug#10436.
+check-no-trailing-backslash-in-recipes:
+       $(AM_V_at)$(MAKE) check \
+         CONFIG_SHELL='$(abs_top_builddir)/%D%/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)/%D%/ax/cc-no-c-o' \
+         GNU_CC='$(abs_top_builddir)/%D%/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:
+       am_running_installcheck=yes $(MAKE) check
+
+# Run the testsuite without skipping expensive tests by default.
+check-expensive installcheck-expensive: %-expensive:
+       $(MAKE) $* RUN_EXPENSIVE_TESTS=yes
+ 
+# Performance tests.
+perf: all
+       $(MAKE) TEST_SUITE_LOG='$(PERF_TEST_SUITE_LOG)' \
+               TESTS='$(perf_TESTS)' check
+.PHONY: perf
+perf_TESTS = $(wildcard $(srcdir)/t/perf/*.sh) \
+             $(wildcard $(srcdir)/t/perf/*.tap)
+PERF_TEST_SUITE_LOG = %D%/perf/test-suite.log
+CLEANFILES += $(PERF_TEST_SUITE_LOG)
+EXTRA_DIST += $(perf_TESTS)
+
+clean-local: clean-local-check
+.PHONY: clean-local-check
+clean-local-check:
+## Directories candidate to be test directories match this wildcard.
+       @globs='%D%/*.dir %D%/*/*.dir */%D%/*.dir */%D%/*/*.dir'; \
+## The 'nullglob' bash option is not portable, so use perl.
+       dirs=`$(PERL) -e "print join(' ', glob('$$globs'));"` || exit 1; \
+       if test -n "$$dirs"; then \
+## Errors in find are acceptable, errors in rm are not.
+           find $$dirs -type d ! -perm -700 -exec chmod u+rwx {} ';'; \
+           echo " rm -rf $$dirs"; \
+           rm -rf $$dirs || exit 1; \
+       fi
+
+# vim: ft=automake noet
diff --git a/t/ax/tap-setup.sh b/t/ax/tap-setup.sh
index 6955c86..3c992a3 100644
--- a/t/ax/tap-setup.sh
+++ b/t/ax/tap-setup.sh
@@ -22,7 +22,7 @@
 
 # Check that we are running from a proper directory: last thing we want
 # is to overwrite some random user files.
-test -f ../../automake && test -f ../../runtest && test -d ../../t \
+test -f ../../bin/automake && test -f ../../runtest && test -d ../../t \
   || fatal_ "running from a wrong directory"
 
 test ! -f Makefile.am || mv Makefile.am Makefile.am~ \
diff --git a/t/dist-formats.tap b/t/dist-formats.tap
index 07c0a7c..e511e27 100755
--- a/t/dist-formats.tap
+++ b/t/dist-formats.tap
@@ -143,9 +143,9 @@ command_ok_ "only gzip archive is built by default" \
             test "$(ls *$distdir*)" = $distdir.tar.gz
 
 
-# ------------------------------------- # 
+# ------------------------------------- #
 #  Test all known formats, separately.  #
-# ------------------------------------- # 
+# ------------------------------------- #
 
 for format in $all_compression_formats; do
   setup_vars_for_compression_format "$format"
diff --git a/t/lex-multiple.sh b/t/lex-multiple.sh
index e1c71a1..7383eaf 100755
--- a/t/lex-multiple.sh
+++ b/t/lex-multiple.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
@@ -43,11 +43,11 @@ 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_LFLAGS = -Pfoo -olex.yy.c
 liblex_foo_a_SOURCES = a.l
 
 # Ditto.
-liblex_bar_a_LFLAGS = -Pbar_ --outfile=lex.yy.c
+liblex_bar_a_LFLAGS = -Pbar_ -olex.yy.c
 liblex_bar_a_SOURCES = b.l
 END
 
diff --git a/t/make-dryrun.tap b/t/make-dryrun.tap
index ff9d5eb..15f87b6 100755
--- a/t/make-dryrun.tap
+++ b/t/make-dryrun.tap
@@ -110,7 +110,7 @@ pr='bug#13760'
 
 mkdir none dry-run
 check_make --run -M "$pr" -- -I none
-check_make --run -M "$pr" -- -I none --include dry-run 
+check_make --run -M "$pr" -- -I none --include dry-run
 check_make --dry -M "$pr" -- -I none -n
 check_make --dry -M "$pr" -- --dry-run -I none --include dry-run
 rmdir none dry-run
diff --git a/t/wrap/aclocal.in b/t/wrap/aclocal.in
index 3e60eb0..cdcae1a 100644
--- a/t/wrap/aclocal.in
+++ b/t/wrap/aclocal.in
@@ -26,4 +26,4 @@ BEGIN
     'address@hidden@/m4',
     'address@hidden@/m4/acdir';
 }
-require '@abs_top_builddir@/aclocal';
+require '@abs_top_builddir@/bin/aclocal';
diff --git a/t/wrap/automake.in b/t/wrap/automake.in
index bc6eab6..cf18d7b 100644
--- a/t/wrap/automake.in
+++ b/t/wrap/automake.in
@@ -24,4 +24,4 @@ BEGIN
     if '@srcdir@' ne '.';
   unshift @ARGV, 'address@hidden@/lib';
 }
-require '@abs_top_builddir@/automake';
+require '@abs_top_builddir@/bin/automake';


hooks/post-receive
-- 
GNU Automake



reply via email to

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