summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2013-05-09 11:17:47 +0200
committerStefano Lattarini <stefano.lattarini@gmail.com>2013-05-09 11:17:47 +0200
commitc8f106c772e608b25aa6a3aa8eeeb0119e097ab2 (patch)
treeb920b5acc653a716b5ef84b461d79fd022c278f2
parent1667d369091fe41d2bbdf645490a29d45142556f (diff)
downloadautomake-c8f106c772e608b25aa6a3aa8eeeb0119e097ab2.tar.gz
build: break up monolithic Makefile.am in subdir-specific fragments
This is convenient to do, now that we have improved "relative directory" support with the '%reladir%' (a.k.a. '%D%') and '%canon_reladir%' (a.k.a. '%C%') Automake-time substitutions for included makefile fragments. This move also satisfy our philosophy of using new Automake features in our own build system, as a way of facilitating early discovery of possible bugs or interface warts. * Makefile.am: Break up ... * doc/Makefile.inc, lib/Automake/Makefile.inc, lib/Makefile.inc, lib/am/Makefile.inc, m4/Makefile.inc, t/Makefile.inc): ... in this new included fragments. Adjust as needed, and make deliberate use of the '%D%' substitution. * contrib/t/local.am: Rename ... * contrib/t/Makefile.inc: ... like this. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
-rw-r--r--Makefile.am586
-rw-r--r--contrib/t/Makefile.inc26
-rw-r--r--contrib/t/local.am25
-rw-r--r--doc/Makefile.inc116
-rw-r--r--lib/Automake/Makefile.inc57
-rw-r--r--lib/Makefile.inc68
-rw-r--r--lib/am/Makefile.inc65
-rw-r--r--m4/Makefile.inc79
-rw-r--r--t/Makefile.inc274
9 files changed, 704 insertions, 592 deletions
diff --git a/Makefile.am b/Makefile.am
index a98a1ce1a..c49d1e9e2 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. ##
@@ -63,7 +68,7 @@ bin_SCRIPTS = automake aclocal
CLEANFILES += $(bin_SCRIPTS)
AUTOMAKESOURCES = automake.in aclocal.in
-TAGS_FILES = $(AUTOMAKESOURCES)
+TAGS_FILES += $(AUTOMAKESOURCES)
EXTRA_DIST += \
$(AUTOMAKESOURCES) \
@@ -130,563 +135,7 @@ 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/mkinstalldirs \
- 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)
- @for f in $(dist_script_DATA); do echo $$f; done \
- | sed 's,^lib/,,' \
- | ( st=0; \
- while read f; do \
- echo " chmod +x '$(DESTDIR)$(scriptdir)/$$f'"; \
- chmod +x "$(DESTDIR)$(scriptdir)/$$f" || st=1; \
- done; \
- exit $$st )
-
-installcheck-local: installcheck-executable-scripts
-installcheck-executable-scripts:
- @for f in $(dist_script_DATA); do echo $$f; done \
- | sed 's,^lib/,,' \
- | while read f; do \
- path="$(pkgvdatadir)/$$f"; \
- test -x "$$path" || echo $$path; \
- done \
- | sed 's/$$/: not executable/' \
- | grep . 1>&2 && exit 1; exit 0
-
-
-## ---------------------------------------------------- ##
-## 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/Configure_ac.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 $@ $@-t
- $(AM_V_at)test -d lib/Automake || $(MKDIR_P) lib/Automake
- $(AM_V_GEN)in=Config.in \
- && $(do_subst) <$(srcdir)/lib/Automake/Config.in >$@-t
- $(generated_file_finalize)
-EXTRA_DIST += lib/Automake/Config.in
-
-
-## --------------------- ##
-## Makefile fragments. ##
-## --------------------- ##
-
-dist_am_DATA = \
- lib/am/check.am \
- lib/am/check2.am \
- lib/am/clean-hdr.am \
- lib/am/clean.am \
- lib/am/compile.am \
- lib/am/configure.am \
- lib/am/data.am \
- lib/am/dejagnu.am \
- lib/am/depend.am \
- lib/am/depend2.am \
- lib/am/distdir.am \
- lib/am/footer.am \
- lib/am/header-vars.am \
- lib/am/header.am \
- lib/am/install.am \
- lib/am/inst-vars.am \
- lib/am/java.am \
- lib/am/lang-compile.am \
- lib/am/lex.am \
- lib/am/library.am \
- lib/am/libs.am \
- lib/am/libtool.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/subdirs.am \
- lib/am/tags.am \
- lib/am/texi-vers.am \
- lib/am/texibuild.am \
- lib/am/texinfos.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/depout.m4 \
- m4/dmalloc.m4 \
- m4/extra-recurs.m4 \
- m4/gcj.m4 \
- m4/init.m4 \
- m4/install-sh.m4 \
- m4/lead-dot.m4 \
- m4/lex.m4 \
- m4/lispdir.m4 \
- m4/maintainer.m4 \
- m4/make.m4 \
- m4/minuso.m4 \
- m4/missing.m4 \
- m4/mkdirp.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.
-# Use '$(top_srcdir)/m4' for the benefit of non-GNU makes: this is
-# how amversion.m4 appears in our dependencies.
-$(top_srcdir)/m4/amversion.m4: $(srcdir)/configure.ac $(srcdir)/m4/amversion.in
- $(AM_V_at)rm -f $@-t $@
- $(AM_V_GEN)in=amversion.in \
- && $(do_subst) <$(srcdir)/m4/amversion.in >$@-t
- $(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
-
-## Will be updated later.
-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;
-
-# Hand-written tests.
-
-include $(srcdir)/t/list-of-tests.mk
-
-TESTS += $(handwritten_TESTS)
-EXTRA_DIST += $(handwritten_TESTS)
-
-# Automatically-generated tests wrapping hand-written ones.
-# Also, automatically-computed dependencies for tests.
-
-include $(srcdir)/t/testsuite-part.am
-
-TESTS += $(generated_TESTS)
-EXTRA_DIST += $(generated_TESTS)
-
-$(srcdir)/t/testsuite-part.am:
- $(AM_V_at)rm -f t/testsuite-part.tmp $@
- $(AM_V_GEN)$(PERL) $(srcdir)/gen-testsuite-part \
- --srcdir $(srcdir) > t/testsuite-part.tmp
- $(AM_V_at)chmod a-w t/testsuite-part.tmp
- $(AM_V_at)mv -f t/testsuite-part.tmp $@
-EXTRA_DIST += gen-testsuite-part
-
-# The dependecies declared here are not truly complete, but such
-# completeness would cause more issues than it would solve. See
-# automake bug#11347.
-$(generated_TESTS): $(srcdir)/gen-testsuite-part
-$(srcdir)/t/testsuite-part.am: $(srcdir)/gen-testsuite-part Makefile.am
-
-# Hand-written tests for stuff in 'contrib/'.
-include $(srcdir)/contrib/t/local.am
-TESTS += $(contrib_TESTS)
-EXTRA_DIST += $(contrib_TESTS)
-
-# 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 $@ $@-t
- $(AM_V_at)$(MKDIR_P) t/ax
- $(AM_V_GEN)in=t/ax/test-defs.in \
- && $(do_subst) <$(srcdir)/$$in >$@-t
- $(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 $@ $@-t
- $(AM_V_GEN)in=t/ax/shell-no-trail-bslash.in \
- && $(MKDIR_P) t/ax \
- && $(do_subst) <$(srcdir)/$$in >$@-t \
- && chmod a+x $@-t
- $(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 $@ $@-t
- $(AM_V_GEN)in=t/ax/cc-no-c-o.in \
- && $(MKDIR_P) t/ax \
- && $(do_subst) <$(srcdir)/$$in >$@-t \
- && chmod a+x $@-t
- $(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 $@ $@-t
- $(AM_V_GEN)in=t/ax/runtest.in \
- && $(MKDIR_P) t/ax \
- && $(do_subst) <$(srcdir)/$$in >$@-t \
- && chmod a+x $@-t
- $(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) $(AM_MAKEFLAGS) 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) $(AM_MAKEFLAGS) 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
-
-## Checking the list of tests.
-test_subdirs = t t/pm contrib/t
-include $(srcdir)/t/CheckListOfTests.am
-
-# Run the testsuite with the installed aclocal and automake.
-installcheck-local: installcheck-testsuite
-installcheck-testsuite:
- am_running_installcheck=yes $(MAKE) $(AM_MAKEFLAGS) check
-
-# Performance tests.
-.PHONY: perf
-perf: all
- $(MAKE) $(AM_MAKEFLAGS) 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.texi doc/automake-history.texi
-doc_automake_TEXINFOS = doc/fdl.texi
-doc_automake_history_TEXINFOS = doc/fdl.texi
-
-man1_MANS = \
- doc/aclocal.1 \
- doc/automake.1 \
- doc/aclocal-$(APIVERSION).1 \
- doc/automake-$(APIVERSION).1
-
-$(man1_MANS): $(srcdir)/configure.ac
-
-CLEANFILES += $(man1_MANS)
-EXTRA_DIST += doc/help2man
-
-update_mans = \
- $(AM_V_GEN): \
- && $(MKDIR_P) doc \
- && $(extend_PATH) \
- && $(PERL) $(srcdir)/doc/help2man --output=$@
-
-doc/aclocal.1 doc/automake.1:
- $(AM_V_GEN): \
- && $(MKDIR_P) doc \
- && f=`echo $@ | sed 's|.*/||; s|\.1$$||; $(transform)'` \
- && echo ".so man1/$$f-$(APIVERSION).1" > $@
-
-doc/aclocal-$(APIVERSION).1: aclocal.in aclocal lib/Automake/Config.pm
- $(update_mans) aclocal-$(APIVERSION)
-doc/automake-$(APIVERSION).1: automake.in automake lib/Automake/Config.pm
- $(update_mans) automake-$(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
-
-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 \
- && $(am__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) $(AM_MAKEFLAGS) distcheck \
- && $(MAKE) $(AM_MAKEFLAGS) 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/multilib/README \
@@ -696,11 +145,7 @@ EXTRA_DIST += \
contrib/multilib/multi.m4 \
contrib/README
-
-## --------------------------------------------------- ##
-## Older files, kept mostly for historical interest. ##
-## --------------------------------------------------- ##
-
+# Older files, kept mostly for historical interest.
EXTRA_DIST += \
old/ChangeLog-tests \
old/ChangeLog.96 \
@@ -714,13 +159,20 @@ EXTRA_DIST += \
old/ChangeLog.11 \
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)/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/contrib/t/Makefile.inc b/contrib/t/Makefile.inc
new file mode 100644
index 000000000..a92b80d96
--- /dev/null
+++ b/contrib/t/Makefile.inc
@@ -0,0 +1,26 @@
+## 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/>.
+
+## -------------------------------- ##
+## Tests for stuff in 'contrib/'. ##
+## -------------------------------- ##
+
+contrib_TESTS = \
+ %D%/parallel-tests-html.sh \
+ %D%/parallel-tests-html-recursive.sh \
+ %D%/help-multilib.sh \
+ %D%/multilib.sh
diff --git a/contrib/t/local.am b/contrib/t/local.am
deleted file mode 100644
index f44df9c4e..000000000
--- a/contrib/t/local.am
+++ /dev/null
@@ -1,25 +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 \
- $(contrib_testsuite_dir)/help-multilib.sh \
- $(contrib_testsuite_dir)/multilib.sh
diff --git a/doc/Makefile.inc b/doc/Makefile.inc
new file mode 100644
index 000000000..8515a5d5a
--- /dev/null
+++ b/doc/Makefile.inc
@@ -0,0 +1,116 @@
+## 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. ##
+## ---------------- ##
+
+info_TEXINFOS = %D%/automake.texi %D%/automake-history.texi
+doc_automake_TEXINFOS = %D%/fdl.texi
+doc_automake_history_TEXINFOS = %D%/fdl.texi
+
+man1_MANS = \
+ %D%/aclocal.1 \
+ %D%/automake.1 \
+ %D%/aclocal-$(APIVERSION).1 \
+ %D%/automake-$(APIVERSION).1
+
+$(man1_MANS): $(top_srcdir)/configure.ac
+
+CLEANFILES += $(man1_MANS)
+EXTRA_DIST += %D%/help2man
+
+update_mans = \
+ $(AM_V_GEN): \
+ && $(MKDIR_P) %D% \
+ && $(extend_PATH) \
+ && $(PERL) $(srcdir)/%D%/help2man --output=$@
+
+%D%/aclocal.1 %D%/automake.1:
+ $(AM_V_GEN): \
+ && $(MKDIR_P) %D% \
+ && f=`echo $@ | sed 's|.*/||; s|\.1$$||; $(transform)'` \
+ && echo ".so man1/$$f-$(APIVERSION).1" > $@
+
+%D%/aclocal-$(APIVERSION).1: aclocal.in aclocal lib/Automake/Config.pm
+ $(update_mans) aclocal-$(APIVERSION)
+%D%/automake-$(APIVERSION).1: automake.in automake lib/Automake/Config.pm
+ $(update_mans) automake-$(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 \
+ 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 \
+ && $(am__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) $(AM_MAKEFLAGS) distcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) 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/lib/Automake/Makefile.inc b/lib/Automake/Makefile.inc
new file mode 100644
index 000000000..48b15231f
--- /dev/null
+++ b/lib/Automake/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/>.
+
+## ---------------------------------------------------- ##
+## Private perl modules used by automake and aclocal. ##
+## ---------------------------------------------------- ##
+
+perllibdir = $(pkgvdatadir)/Automake
+
+dist_perllib_DATA = \
+ %D%/ChannelDefs.pm \
+ %D%/Channels.pm \
+ %D%/Condition.pm \
+ %D%/Configure_ac.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 $@ $@-t
+ $(AM_V_at)$(MKDIR_P) %D%
+ $(AM_V_GEN)in=Config.in \
+ && $(do_subst) <$(srcdir)/%D%/Config.in >$@-t
+ $(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 000000000..d1971f55f
--- /dev/null
+++ b/lib/Makefile.inc
@@ -0,0 +1,68 @@
+## 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%/mkinstalldirs \
+ %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)
+ @for f in $(dist_script_DATA); do echo $$f; done \
+ | sed 's,^%D%/,,' \
+ | ( st=0; \
+ while read f; do \
+ echo " chmod +x '$(DESTDIR)$(scriptdir)/$$f'"; \
+ chmod +x "$(DESTDIR)$(scriptdir)/$$f" || st=1; \
+ done; \
+ exit $$st )
+
+installcheck-local: installcheck-executable-scripts
+installcheck-executable-scripts:
+ @for f in $(dist_script_DATA); do echo $$f; done \
+ | sed 's,^%D%/,,' \
+ | while read f; do \
+ path="$(pkgvdatadir)/$$f"; \
+ test -x "$$path" || echo $$path; \
+ done \
+ | sed 's/$$/: not executable/' \
+ | grep . 1>&2 && exit 1; exit 0
+
+# vim: ft=automake noet
diff --git a/lib/am/Makefile.inc b/lib/am/Makefile.inc
new file mode 100644
index 000000000..da9468284
--- /dev/null
+++ b/lib/am/Makefile.inc
@@ -0,0 +1,65 @@
+## 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%/check.am \
+ %D%/check2.am \
+ %D%/clean-hdr.am \
+ %D%/clean.am \
+ %D%/compile.am \
+ %D%/configure.am \
+ %D%/data.am \
+ %D%/dejagnu.am \
+ %D%/depend.am \
+ %D%/depend2.am \
+ %D%/distdir.am \
+ %D%/footer.am \
+ %D%/header-vars.am \
+ %D%/header.am \
+ %D%/install.am \
+ %D%/inst-vars.am \
+ %D%/java.am \
+ %D%/lang-compile.am \
+ %D%/lex.am \
+ %D%/library.am \
+ %D%/libs.am \
+ %D%/libtool.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%/subdirs.am \
+ %D%/tags.am \
+ %D%/texi-vers.am \
+ %D%/texibuild.am \
+ %D%/texinfos.am \
+ %D%/vala.am \
+ %D%/yacc.am
+
+# vim: ft=automake noet
diff --git a/m4/Makefile.inc b/m4/Makefile.inc
new file mode 100644
index 000000000..11874e731
--- /dev/null
+++ b/m4/Makefile.inc
@@ -0,0 +1,79 @@
+## 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%/depout.m4 \
+ %D%/dmalloc.m4 \
+ %D%/extra-recurs.m4 \
+ %D%/gcj.m4 \
+ %D%/init.m4 \
+ %D%/install-sh.m4 \
+ %D%/lead-dot.m4 \
+ %D%/lex.m4 \
+ %D%/lispdir.m4 \
+ %D%/maintainer.m4 \
+ %D%/make.m4 \
+ %D%/minuso.m4 \
+ %D%/missing.m4 \
+ %D%/mkdirp.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.
+# Use '$(top_srcdir)' for the benefit of non-GNU makes: this is
+# how amversion.m4 appears in our dependencies.
+$(top_srcdir)/%D%/amversion.m4: $(srcdir)/configure.ac \
+ $(srcdir)/%D%/amversion.in
+ $(AM_V_at)rm -f $@-t $@
+ $(AM_V_GEN)in=amversion.in \
+ && $(do_subst) <$(srcdir)/%D%/amversion.in >$@-t
+ $(generated_file_finalize)
+EXTRA_DIST += %D%/amversion.in
+
+# vim: ft=automake noet
diff --git a/t/Makefile.inc b/t/Makefile.inc
new file mode 100644
index 000000000..18a57c2c2
--- /dev/null
+++ b/t/Makefile.inc
@@ -0,0 +1,274 @@
+## 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
+
+## Will be updated later.
+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;
+
+# Hand-written tests.
+
+include $(srcdir)/%D%/list-of-tests.mk
+
+TESTS += $(handwritten_TESTS)
+EXTRA_DIST += $(handwritten_TESTS)
+
+# Automatically-generated tests wrapping hand-written ones.
+# Also, automatically-computed dependencies for tests.
+
+include $(srcdir)/%D%/testsuite-part.am
+
+TESTS += $(generated_TESTS)
+EXTRA_DIST += $(generated_TESTS)
+
+$(srcdir)/%D%/testsuite-part.am:
+ $(AM_V_at)rm -f %D%/testsuite-part.tmp $@
+ $(AM_V_GEN)$(PERL) $(srcdir)/gen-testsuite-part \
+ --srcdir $(srcdir) > %D%/testsuite-part.tmp
+ $(AM_V_at)chmod a-w %D%/testsuite-part.tmp
+ $(AM_V_at)mv -f %D%/testsuite-part.tmp $@
+EXTRA_DIST += gen-testsuite-part
+
+# The dependecies declared here are not truly complete, but such
+# completeness would cause more issues than it would solve. See
+# automake bug#11347.
+$(generated_TESTS): $(srcdir)/gen-testsuite-part
+$(srcdir)/%D%/testsuite-part.am: $(srcdir)/gen-testsuite-part
+$(srcdir)/%D%/testsuite-part.am: Makefile.am
+
+# Hand-written tests for stuff in 'contrib/'.
+include $(srcdir)/contrib/%D%/Makefile.inc
+TESTS += $(contrib_TESTS)
+EXTRA_DIST += $(contrib_TESTS)
+
+# 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 $@ $@-t
+ $(AM_V_at)$(MKDIR_P) %D%/ax
+ $(AM_V_GEN)in=%D%/ax/test-defs.in \
+ && $(do_subst) <$(srcdir)/$$in >$@-t
+ $(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 $@ $@-t
+ $(AM_V_GEN)in=%D%/ax/shell-no-trail-bslash.in \
+ && $(MKDIR_P) %D%/ax \
+ && $(do_subst) <$(srcdir)/$$in >$@-t \
+ && chmod a+x $@-t
+ $(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 $@ $@-t
+ $(AM_V_GEN)in=%D%/ax/cc-no-c-o.in \
+ && $(MKDIR_P) %D%/ax \
+ && $(do_subst) <$(srcdir)/$$in >$@-t \
+ && chmod a+x $@-t
+ $(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 $@ $@-t
+ $(AM_V_GEN)in=%D%/ax/runtest.in \
+ && $(MKDIR_P) %D%/ax \
+ && $(do_subst) <$(srcdir)/$$in >$@-t \
+ && chmod a+x $@-t
+ $(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) $(AM_MAKEFLAGS) 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) $(AM_MAKEFLAGS) 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
+
+## Checking the list of tests.
+test_subdirs = %D% %D%/pm contrib/%D%
+include %D%/CheckListOfTests.am
+
+# Run the testsuite with the installed aclocal and automake.
+installcheck-local: installcheck-testsuite
+installcheck-testsuite:
+ am_running_installcheck=yes $(MAKE) $(AM_MAKEFLAGS) check
+
+# Performance tests.
+.PHONY: perf
+perf: all
+ $(MAKE) $(AM_MAKEFLAGS) TEST_SUITE_LOG='$(PERF_TEST_SUITE_LOG)' \
+ TESTS='$(perf_TESTS)' check
+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