2014-12-31 Stefano Lattarini release: stable minor release 1.15 * configure.ac (AC_INIT): Bump version number to 1.15. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2014-12-31 Stefano Lattarini NEWS: minor improvements and fixed some typos and grammaros 2014-12-30 Stefano Lattarini docs: "make distcheck" implementation details are not to be abused * doc/automake.texi: State explicitly and in detail that the exact location and the exact structure of the subdirectory used by "make distcheck" is to be considered an implementation detail, which can change at any time. 2014-12-30 Stefano Lattarini NEWS: improve and adjust in light of the oncoming 1.15 release 2014-12-30 Stefano Lattarini Merge branch 'micro' into minor * micro: shell-no-trail-bslash: improve diagnostic in case of failure 2014-12-30 Stefano Lattarini shell-no-trail-bslash: improve diagnostic in case of failure * t/ax/shell-no-trail-bslash.in: Here, by fixing a typo in a variable name and a logic error. * t/self-check-shell-no-trail-bslash.sh: Enhance to catch the issue. 2014-12-28 Stefano Lattarini Merge branch 'micro' into minor * micro: tests: make script 'shell-no-trail-bslash' simpler and more robust 2014-12-28 Stefano Lattarini tests: make script 'shell-no-trail-bslash' simpler and more robust This solves spurious failure in the 'check-no-trailing-backslash-in-recipes' target for Automake-NG. This is basically a backport of Automake-NG commit v1.14.1-1010-g85aae58; the point is to minimize the amount of spurious diffs between the mainline Automake and the Automake-NG source trees. * t/ax/shell-no-trail-bslash.in: Simplify and fortify. * t/self-check-shell-no-trail-bslash.sh: Enhance. 2014-12-27 Stefano Lattarini Merge branch 'micro' into minor * micro: tests: fix spurious failure in test on TEXINFO_TEX overriding tests: avoid some spurious failures on AIX 7.1 2014-12-27 Stefano Lattarini tests: fix spurious failure in test on TEXINFO_TEX overriding * t/txinfo-override-texinfo-tex.sh: Here. The issue was pre-existing, but has been only recently exposed by the fix for automake bug#18286 "distcheck fails to detect missing files" (see commit v1.14.1-4-g01a7a4a) and by the BSD make semantics. To convince yourself this change actually makes sense semantically, see https://sourceware.org/ml/binutils/2012-06/msg00004.html 2014-12-27 Stefano Lattarini Merge branch 'aix-testsuite-failures' into micro * aix-testsuite-failures: tests: avoid some spurious failures on AIX 7.1 2014-12-27 Stefano Lattarini tests: avoid some spurious failures on AIX 7.1 * t/lex-noyywrap.sh: Here. * t/instmany-mans.sh: And here. * t/instmany-python.sh: And here. * t/instmany.sh: And here. * t/parallel-tests-concurrency.sh: And here. 2014-12-23 Stefano Lattarini Merge branch 'micro' into minor * micro: dist: fix bug#18286 "distcheck fails to detect missing files" tests: expose automake bug#18286 "distcheck fails to detect missing files" include: fix bug in handling of user-defined makefile fragments generation tests: expose bug in handling of user-defined makefile fragments generation 2014-12-23 Stefano Lattarini Merge branch 'distcheck-pr18286' into micro * distcheck-pr18286: dist: fix bug#18286 "distcheck fails to detect missing files" tests: expose automake bug#18286 "distcheck fails to detect missing files" 2014-12-23 Stefano Lattarini dist: fix bug#18286 "distcheck fails to detect missing files" BTW, this issue had been already reported in the past: http://lists.gnu.org/archive/html/automake/2006-09/msg00008.html http://lists.gnu.org/archive/html/automake/2013-01/msg00049.html "make distcheck" could sometimes fail to detect missing files in the distribution tarball, especially in those cases where both the generated files and their dependencies are explicitly in $(srcdir). An important example of this are *generated* makefile fragments included at Automake time in Makefile.am. A basic example: # -*- Makefile.am -*- $(srcdir)/fragment.am: $(srcdir)/data.txt $(srcdir)/preproc.sh cd $(srcdir) && $(SHELL) preproc.sh fragment.am include $(srcdir)/fragment.am ... If the use forgot to add data.txt and/or preproc.sh in the distribution tarball, "make distcheck" would have erroneously succeeded! The reason is that, while $(srcdir)/data.txt does not exist, make also looks in $(srcdir)/$(srcdir)/data.txt, and in the distcheck-issued VPATH build where $(srcdir) is '..', that file exists, as it is part of the original development directory. * t/distdir.am (distcheck): Adjust to have the build directory be '$(distdir)/_build/sub' rather than just '$(distdir)/_build'. Thanks Nicola Fontana for the suggestion. * t/distcheck-pr18286.sh: Enhance and tighten a little. * t/list-of-tests.mk (XFAIL_TESTS): Remove 't/distcheck-pr18286.sh', as it's now passing. * t/subdir-am-cond.sh: Adjust to avoid a fully spurious failure due to the new distcheck semantics. * t/subdir-ac-subst.sh: Likewise. * t/dejagnu-relative-srcdir.sh: Likewise. * t/txinfo-builddir.sh: Likewise. * NEWS: Update. Helped-by: Nicola Fontana Helped-by: Peter Johansson 2014-12-23 Stefano Lattarini tests: expose automake bug#18286 "distcheck fails to detect missing files" * t/distcheck-pr18286.sh: New test, still XFAILing. * t/list-of-tests.mk: Add it. 2014-12-23 Stefano Lattarini Merge branch 'am-deps' into micro * am-deps: include: fix bug in handling of user-defined makefile fragments generation tests: expose bug in handling of user-defined makefile fragments generation 2014-12-23 Stefano Lattarini include: fix bug in handling of user-defined makefile fragments generation If a user defined one single Makefile fragment to be included (via Automake includes) in his main Makefile.am, and gave a rule to generate that file from other data, Automake used to spuriously complain about with something like "overrides Automake target '$(srcdir)/foo.am". This change remove that spurious error (via a simple hack rather than a systematic change, but oh well). * lib/am/configure.am (%MAKEFILE-IN-DEPS%) [?HAVE-MAKEFILE-IN-DEPS?]: Add a trailing "$(am__empty)" to the list of targets, which is enough to trick Automake into not complaining about "duplicated targets" in case the '%MAKEFILE-IN-DEPS%' list expands to a single target that is also declared in some user-defined rule. * t/list-of-tests.mk (XFAIL_TESTS): Remove now-passing test 't/am-include-only-one-generated-fragment.sh'. * NEWS: Update. 2014-12-23 Stefano Lattarini tests: expose bug in handling of user-defined makefile fragments generation If a user defines one single Makefile fragment to be included (via Automake includes) in his main Makefile.am, and givse a rule to generate that file from other data, Automake will spuriously complain about with something like "overrides Automake target '$(srcdir)/foo.am". * t/am-include-only-one-generated-fragment.sh: Expose the bug (this test is still XFAILing). * t/list-of-tests.mk: Add the new test. 2014-12-22 Stefano Lattarini Merge branch 'micro' into minor * micro: cleanup: refactor code to initialize DIST_COMMON dist: ordering of files in DIST_COMMON is deterministic now tests: refactor some tests on DIST_COMMON maint: make output of 'gen-testsuite-part' deterministic When computing lispdir, don't load emacs site wide init file. PATH: quote $(PATH_SEPARATOR) as well Improve detection of GNU make, avoiding "Arg list too long" errors. 2014-12-22 Stefano Lattarini cleanup: refactor code to initialize DIST_COMMON There is not need to make that an Automake variable early, only to later get and munge its contents, and use the new content to redefine the variable. * bin/automake.in (@dist_common): New global variable. (push_dist_common, handle_dist): Use it. (handle_dist): Define am__DIST_COMMON instead of DIST_COMMON directly. (initialize_per_input): Reset it to empty. ($configure_dist_common): Turn this scalar variable ... (@configure_dist_common): ... into this array variable. (handle_dist): Adjust. (required_file_check_or_copy): Update and wrap some comments. * lib/am/distdir.am (DIST_COMMON): Append $(am__DIST_COMMON). * t/distcom2.sh: Tighten a little. 2014-12-22 Stefano Lattarini dist: ordering of files in DIST_COMMON is deterministic now It had likely stopped being deterministic due to the new perl behavior of having non-deterministic order of numerating hash keys: See also similar commit v1.14-19-g52e6404, albeit in this case the issue is likely coming from autom4te/autoconf, not from automake itself. Fixes automake bug http://debbugs.gnu.org/17908 * bin/automake.in (handle_dist): Sort @dist_common. (print_autodist_files): Swap invocations of 'sort' and 'uniq', for consistency with the new code in 'handle_dist' and to get rid of a minor hack. * NEWS: Update. 2014-12-22 Stefano Lattarini tests: refactor some tests on DIST_COMMON So that they prefer checking the semantics of the generated Makefiles, rather than grepping their content. This will be useful in an upcoming refactoring. * t/distcom-subdir.sh: Adjust this test. * t/distcom2.sh: And this. * t/distcom3.sh: And this. * t/distcom4.sh: And this. * t/distcom5.sh: And this. 2014-12-22 Stefano Lattarini maint: make output of 'gen-testsuite-part' deterministic So that diffs displayed by the 'compare-autodiffs' target are less spurious and more useful. * gen-testsuite-part: Sort keys of %deps_extractor, %wrapper_setups and %depmodes before iterating on them. 2014-12-19 Andrew Burgess (tiny change) When computing lispdir, don't load emacs site wide init file. When computing the lispdir emacs was previously invoked with the '-q' option to avoid loading the users initialisation files, however, the site wide initialisation file was still loaded, in some cases this can cause emacs to hang, with the result that a configure can also hang. The lisp code that aclocal causes to be executed reduces the load-path list (in emacs) to empty. The load-path is used by emacs to find packages which it wants to load. Currently, if emacs tries to auto load a package during shut down, and the package is not found, then emacs will hang. This does seem like an emacs bug, but protecting against this in aclocal is simply a case of not loading the site wide initialisation file. In this patch then the '-q' option to emacs is replaced with '-Q', this has the same, the '-Q' option is similar to '-q --no-site-file --no-splash'. * doc/automake.texi (Hard-Coded Install Paths): Update explanation of emacs code used to get lispdir. * m4/lispdir.m4 (AM_PATH_LISPDIR): Update emacs flags. 2014-12-19 KO Myung-Hun (tiny change) PATH: quote $(PATH_SEPARATOR) as well On OS/2, $(PATH_SEPARATOR) is ';'. Without quote, it is recognized as a mark of end of sentence. * Makefile.am: quote $(PATH_SEPARATOR) as well. * t/Makefile.inc: Likewise. 2014-12-19 Stefano Lattarini Improve detection of GNU make, avoiding "Arg list too long" errors. Such errors could take place when the main makefile included too many sub-makefiles, making $(MAKEFILE_LIST) too long and causing the recipes $(am__is_gnu_make) to exceed the shell's command-line length limits. This is not a theoretical issue: it could happen for projects having lots of C/C++ sources and using automatic dependency tracking, which created an included .Po sub-makefile for each of such sources. Fixes http://debbugs.gnu.org/18744 * lib/am/header-vars.am (am__is_gnu_make): Fix the logic to avoid the use of $(MAKEFILE_LIST). * NEWS: Update. 2014-12-19 Stefano Lattarini Merge branch 'micro' into minor * micro: Fix stupid typo in test, causing spurious failure 2014-12-19 Stefano Lattarini Fix stupid typo in test, causing spurious failure * t/aminit-trailing-dnl-comment-pr16841.sh: s/greop/grep/ 2014-12-19 Stefano Lattarini Merge branch 'micro' into minor * micro: sync: update third-part files from upstream Make sure AM_INIT_AUTOMAKE has a trailing newline dist: adjust warning messages about shar and tarZ deprecation docs: improve description of ${PACKAGE}, ${VERSION}, and similar variables 2014-12-19 Stefano Lattarini Merge branch 'pr16841' into micro * pr16841: Make sure AM_INIT_AUTOMAKE has a trailing newline 2014-12-19 Stefano Lattarini sync: update third-part files from upstream * lib/config.guess: This. * lib/config.sub: And this. * lib/gitlog-to-changelog: And this. * lib/gnupload: And this. * lib/update-copyright: And this. 2014-12-19 Stefano Lattarini Make sure AM_INIT_AUTOMAKE has a trailing newline This used to be the case until Automke 1.13, but we broke it in Automake 1.14 (see commit v1.13.1-71-gf78b0f0). This caused issues like http://debbugs.gnu.org/16841 * m4/init.m4 (AM_INIT_AUTOMAKE): Adjust. * t/aminit-trailing-dnl-comment-pr16841.sh: New test. * t/list-of-tests.mk: Add it. * NEWS, THANKS: Update. 2014-12-19 Stefano Lattarini Merge branches 'dist-warn-pr19108' and 'docs-pr16623' into micro * dist-warn-pr19108: dist: adjust warning messages about shar and tarZ deprecation * docs-pr16623: docs: improve description of ${PACKAGE}, ${VERSION}, and similar variables 2014-12-19 Aharon Robbins dist: adjust warning messages about shar and tarZ deprecation They were swapped. Reported in http://debbugs.gnu.org/19108. 2014-12-18 Stefano Lattarini docs: improve description of ${PACKAGE}, ${VERSION}, and similar variables In particular, suggesting that $PACKAGE and $VERSION should be aliases of the $PACKAGE_TARNAME and $PACKAGE_VERSION definitions coming from AC_INIT, and not be defined via an obsolete 2-argument invocation of AM_INIT_AUTOMAKE; and why that is the best default, given all our historical baggage. See discussion in http://debbugs.gnu.org/16623 for more information and background. * doc/automake.texi: Adjust. * THANKS: Update. 2014-12-17 Thomas Jahns Fix dumb logic error preventing $install_sh from being be overridden * m4/install-sh.m4: Here. * THANKS: Update. 2014-12-17 Stefano Lattarini Merge branches 'pr19311' and 'micro' into minor * pr19311: Expose automake bug#19311 build: fix race in parallel builds * micro: Automake docs: fix typos and use of British English build: fix race in parallel builds 2014-12-17 Karl Berry Automake docs: fix typos and use of British English * doc/automake.texi: Here. 2014-12-17 Stefano Lattarini Expose automake bug#19311 AC_PROG_CC called before AC_CONFIG_AUX_DIR can silently force wrong $ac_aux_dir definition. * t/auxdir-pr19311.sh: New. * t/list-of-tests.mk: Add it as an XFAIL test. 2014-12-17 Paul Eggert build: fix race in parallel builds Reported by Friedrich Beckmann in: http://bugs.gnu.org/18301 * lib/am/texi-vers.am (?DIRSTAMP?): Put the process-ID into the temporary file name. Use a similar temporary in the source dir. 2014-08-23 Paul Eggert build: fix race in parallel builds Reported by Friedrich Beckmann in: http://bugs.gnu.org/18301 * lib/am/texi-vers.am (?DIRSTAMP?): Put the process-ID into the temporary file name. Use a similar temporary in the source dir. 2014-04-22 Stefano Lattarini init: ensure $ac_aux_dir is defined before being used Since we use '$ac_aux_dir' to define '$am_aux_dir', we need to ensure the former has been initialized before we try to define the latter, otherwise the definition: am_aux_dir=`cd $ac_aux_dir && pwd` will set '$am_aux_dir' to '$HOME', likely causing weird and unexpected behaviours. This change fixes automake bug#15981. * m4/auxdir.m4 (AM_AUX_DIR_EXPAND): AC_REQUIRE expansion of 'AC_CONFIG_AUX_DIR_DEFAULT'. Fix redundant comment and AC_PREREQ, add extra quoting around '$ac_aux_dir'. * t/auxdir-pr15981.sh: New test. * t/auxdir-cc-pr15981.sh: Likewise. * t/list-of-tests.mk (handwritten_TESTS): Add them. * THANKS, NEWS: Update. * bin/automake.in: Fix a harmless typo in comments, that I happened to notice while writing this patch. 2014-04-21 Stefano Lattarini plans: enabling subdir-object by default is blocked on bug#13928 2014-04-21 Stefano Lattarini maint: update copyright years We've been in 2014 already for few months now... 2014-04-21 Stefano Lattarini maint: sync files from upstream ("make fetch") 2014-04-21 Stefano Lattarini Typofixes in warning messages and manual Fixes automake bug#16827 and bug#16997. 2014-04-21 Stefano Lattarini Merge branch 'micro' into minor * micro: doc: fix encoding error with UTF-8 characters 2014-01-04 Paul Eggert doc: fix encoding error with UTF-8 characters * doc/automake.texi: Specify @documentencoding and @documentlanguage, to prevent encoding errors for parts of this input file that are UTF-8. This also causes the .info output to use curly quotes, which is easier to read though it does assume UTF-8 support. 2013-12-31 Stefano Lattarini NEWS: a typofix, and better word wrapping 2013-12-30 Stefano Lattarini parallel-tests: avoid possible implicit "make all" in test-suite.log rule This change fixes automake bug#16302. * lib/am/check.am ($(TEST_SUITE_LOG)): Avoid running "make $redo_logs" when $redo_logs expands to empty, since in that case we are actually ending up invoking a full "make all". That shouldn't be required, and can cause slowdowns for people implementing their extra "laziness wrappers" around check-TESTS (automake bug#16302). * NEWS: Update. 2013-12-26 Stefano Lattarini Allow user to extend .PRECIOUS target References: * bin/automake.in: Adjust to ensure we handle '.PRECIOUS' the same way we do for '.PHONY' and '.MAKE'. * lib/Automake/Rule.pm: Likewise. * t/precious.sh: New test. * t/list-of-tests.mk: Add it. * t/phony.sh: Enhance a little while at it. * NEWS: Update. * THANKS: Likewise. Reported-by: Holger Hans Peter Freyther 2013-12-26 Stefano Lattarini cosmetics: remove a couple of extra trailing white spaces 2013-12-26 Stefano Lattarini tests: fix a spurious failure on Mac OS X This change fixes bug#14706. * lib/depcomp2.sh: Also cater to spurious diagnostic from GNU rm, not only from Apple's rm. 2013-12-26 Stefano Lattarini docs: make clear the JAVA primary is frozen * doc/automake.texi: Here. The JAVA primary is broken in several ways, and will no longer be developed, not even for bug fixes. See also automake bugs #9088, #8662 and #8540. 2013-12-26 Stefano Lattarini Merge branch 'install-sh-improvements' into minor * install-sh-improvements: install-sh: a slightly better diagnostic, and tests enhancements install-sh: be stricter in catching invalid usages 2013-12-26 Stefano Lattarini install-sh: a slightly better diagnostic, and tests enhancements * lib/install-sh: When called with no non-option arguments and the '-t' option with an argument that is not an existing directory, have the diagnostic output complain about the lack of required arguments rather than about the bad argument passed to '-t'. * t/install-sh-unittests.sh: Enhance to also check diagnostic printed in cases of expected failure. 2013-12-26 Stefano Lattarini install-sh: be stricter in catching invalid usages Such usages (which are rejected by GNU install as well) are: - options -d and -t used together; - argument passed to option -t must be a directory; - if there are two or more SOURCEFILE arguments, the DESTINATION argument must be a directory. Note that we still allow the use of options -d and -T together, by making -d take the precedence; this is for compatibility with GNU install. This change fixes, among other things, automake bug#15376. * lib/install-sh: Adjust. * t/install-sh-unittests.sh: Enhance. * NEWS: Update. * THANKS: Add reporter of bug#15376. Helped-by: Tobias Hansen 2013-12-25 Stefano Lattarini tests: more significant names for some tests * t/insh2.sh: Rename... * t/dist-install-sh.sh: ... like this. * t/instsh.sh: Rename... * t/add-missing-install-sh.sh: ... like this. * t/instsh2.sh: Rename... * t/install-sh-unittests.sh: ... like this. * t/instsh3.sh: Rename... * t/install-sh-option-C.sh: ... like this. * t/list-of-tests.mk: Adjust. 2013-12-25 Stefano Lattarini tests: some cosmetic fixes * t/instdat.sh: Here. * t/instdat2.sh: And here. * t/instsh.sh: And here. * t/instsh3.sh: And here. 2013-12-25 Stefano Lattarini tests: more significant names for a test * t/install2.sh: Rename... * t/dist-with-unreadable-makefile-fails.sh: ... like this. * t/list-of-tests.mk: Adjust. 2013-12-25 Stefano Lattarini Merge branches 'fix-pr11814' and 'drop-perl-tap-driver' into minor * fix-pr11814: docs: drop a few obsolescent FIXME/TODO comments, and associated text testsuite harness: report test exit status in log file * drop-perl-tap-driver: TAP driver: remove perl implementation (move it into contrib/) 2013-12-24 Stefano Lattarini docs: drop a few obsolescent FIXME/TODO comments, and associated text 2013-12-24 Stefano Lattarini testsuite harness: report test exit status in log file The exit status of a test should be reported in the test logs, so that one can see at a glance whether the test has succeeded or failed, without having to look also into the corresponding .trs file. This fixes automake bug#11814. * lib/test-driver: Also report the test script exit status in the test log (as the last line). * t/check-exit-status-reported.sh: Test this new behaviour. * t/list-of-tests.mk: Add the new test. * t/ax/test-lib.sh( am_exit_trap): No longer log the test exit status; this has been made redundant by the change to 'test-driver'. While at it, fix an imperfect quoting. 2013-12-24 Stefano Lattarini TAP driver: no need to invoke AC_PROG_AWK directly It is already required by AM_INIT_AUTOMAKE anyway. * doc/automake.texi: Adjust examples. * t/tap-doc2.sh: Adjust documentation-tracking test. * m4/init.m4 (AM_INIT_AUTOMAKE): Explicitly tell that the AC_PROG_AWK requirement is also needed whenever the TAP driver is used. 2013-12-24 Stefano Lattarini TAP driver: remove perl implementation (move it into contrib/) That implementation was only meant as a standard against which the portable awk+shell implementation was to be measured. Now, since Automake 1.12, the latter implementation is fully functional and already used in the wild, and in fact feature-par with the perl implementation. So the perl implementation is now just slowing down and complicating our testsuite. Let's move it to 'contrib/' (we don't want to remove it, in case someone is actually using it in the wild). * lib/tap-driver.pl: Move it ... * contrib/tap-driver.pl: ... here. While at it, convert quoting `like this' to quoting 'like this', and remove an obsolescent FIXME comment. * lib/Makefile.inc (dist_script_DATA): Drop '%D%/tap-driver.pl'. * Makefile.am (EXTRA_DIST): Add 'contrib/tap-driver.pl'. * doc/automake.texi: Remove one stray reference to 'tap-driver.pl', and reference 'tap-driver.sh' instead, as intended. * t/ax/am-test-lib.sh ($am_tap_implementation): Delete definition and uses. (fetch_tap_driver): Simplify to unconditionally assume the shell+awk implementation of the TAP driver is used. (get_shell_script): Make more flexible so that it can cater to the needs of 'fetch_tap_driver()'. * t/tap-bad-prog.tap: Likewise. * t/tap-bailout-leading-space.sh: Likewise. * t/tap-signal.tap: Likewise. * t/tap-test-number-0.sh: Likewise. * t/test-driver-cond.sh: Use 'tap-driver.sh' instead of 'tap-driver.pl'. * gen-testsuite-part (%test_generators): Do not generate sister tests that use the perl TAP driver rather than the shell+awk one. * NEWS: Update. 2013-12-24 Stefano Lattarini NEWS: stop reporting "new" Automake versioning scheme It's actually old news by now. 2013-12-24 Stefano Lattarini Merge branch 'micro' into minor * micro: post-release: micro version bump to 1.14.1a devel version release: stable micro release 1.14.1 HACKING: minor clarification tests: make install-info-dir.sh print more debugging info tests: remove too-brittle test tap-realtime.sh maintainer: am-ft: add option to cater to clock skews sync: update INSTALL, config.guess and config.sub from upstream TAP driver: cosmetic fixes 2013-12-24 Stefano Lattarini post-release: micro version bump to 1.14.1a devel version * configure.ac (AC_INIT): Bump version number to 1.14.1a. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2013-12-24 Stefano Lattarini release: stable micro release 1.14.1 * configure.ac (AC_INIT): Bump version number to 1.14.1. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2013-12-24 Stefano Lattarini HACKING: minor clarification 2013-12-23 Stefano Lattarini tests: make install-info-dir.sh print more debugging info With the hope that this will shed more light on bug#14601 2013-12-23 Stefano Lattarini tests: remove too-brittle test tap-realtime.sh * t/tap-realtime.sh: Delete. It has always been brittle, but now it's also causing spurious failures when mawk is used as the awk implementation in tap-driver.sh (see bug#14601). * t/list-of-tests.mk: Adjust. 2013-12-23 Stefano Lattarini maintainer: am-ft: add option to cater to clock skews * maintainer/am-ft: Add option '-S', giving a number of seconds to sleep after copying the tarball to the remote system and before unpacking, building and testing it. This is to cater to situations where the clock of the remote system is skewed (in the past) w.r.t. the clock the local system the tarball has been built on. 2013-12-23 Stefano Lattarini sync: update INSTALL, config.guess and config.sub from upstream 2013-12-23 Stefano Lattarini TAP driver: cosmetic fixes * lib/tap-driver.sh: Quote 'like this', not `like this'. Remove an obsolete FIXME. Correctly mark another comment as a TODO rather than as a FIXME. 2013-11-02 Stefano Lattarini Merge branch 'modernize-install-sh' into minor * modernize-install-sh: cosmetics: untabify the install-sh script install-sh: assume that "set -f" and "set +f" work... install-sh: assume ${var:-value} works as expected install-sh: assume 'dirname' is available and working correctly 2013-11-02 Stefano Lattarini Merge branch 'micro' into minor * micro: cosmetics: fix typo in a user-facing message in tests automake: account for perl hash order randomization tests: avoid use of intervals to capitalize letters distcheck: don't allow overriding of --prefix and --srcdir by the user tests: expose bug#14991 (relates to 'distcheck') 2013-11-02 Stefano Lattarini cosmetics: fix typo in a user-facing message in tests * t/lex-header.sh: A "skip" message in this test, precisely. 2013-11-01 Stefano Lattarini Merge branches 'fix-pr14991' and 'fix-pr14891' into micro * fix-pr14991: distcheck: don't allow overriding of --prefix and --srcdir by the user tests: expose bug#14991 (relates to 'distcheck') * fix-pr14891: automake: account for perl hash order randomization tests: avoid use of intervals to capitalize letters 2013-10-31 Stefano Lattarini automake: account for perl hash order randomization Try to explicitly order the keys of some perl hashes when looping on them to do sanity/correctness checks and possibly display warning messages; this should ensure a more reproducible output. Not really a big deal, but I prefer to keep the order of such output reproducible if possible. Issue revealed by spurious testsuite failures with perl 5.18, as reported in automake bug#14891. See also: * lib/Automake/Variable.pm (variables): Explicitly order the values of the returned Automake::Variable instances. (variables_dump): Simplify, using the knowledge that 'variables()' now sorts its output. * t/preproc-errmsg.sh: Adjust. 2013-10-31 Stefano Lattarini tests: avoid use of intervals to capitalize letters It was causing spurious failures with with Solaris 8 'tr'. See automake bug#14891. * t/test-extensions.sh: Adjust. 2013-10-31 Stefano Lattarini cosmetics: untabify the install-sh script * lib/install-sh: Here, plus a couple of related formatting tweaks. 2013-10-31 Stefano Lattarini install-sh: assume that "set -f" and "set +f" work... ... and disable/enable shell globbing, respectively. This is mandated by POSIX, and supported even by Solaris 9 /bin/sh (one of the most braindead shells we still support). * lib/install.sh: Adjust. * NEWS: Update. 2013-10-30 Stefano Lattarini install-sh: assume ${var:-value} works as expected The Autoconf manual says it is OK these days. * lib/install.sh: Adjust. * NEWS: Update. 2013-10-30 Stefano Lattarini install-sh: assume 'dirname' is available and working correctly Really, we no longer care about hosts so outdated/broken to miss fundamental utilities like basename or dirname. * lib/install.sh: Adjust. * NEWS, THANKS: Update. Suggested-by: Philipp A. Hartmann 2013-10-30 Stefano Lattarini distcheck: don't allow overriding of --prefix and --srcdir by the user Not through AM_DISTCHECK_FLAGS, nor through DISTCHECK_FLAGS. Apparently, some packages got in the habit of relaying all the options passed to the original ./configure invocation through to the configure invocations in "make distcheck". This was causing problems, because it also passed through the original --srcdir and --prefix options. Fixes: expose bug#14991 (relates to 'distcheck') * lib/am/distdir.am (distcheck): Pass the hard-coded --srcdir and --prefix options *after* both the developer-defined options in $(AM_DISTCHECK_FLAGS) and the user-defined options in $(DISTCHECK_FLAGS). * t/list-of-tests.mk (XFAIL_TESTS): Remove the now-passing test 'distcheck-no-destdist-or-srcdir-override.sh'. * doc/automake.texi (Checking the Distribution): Update. * NEWS: Likewise. 2013-10-30 Stefano Lattarini tests: expose bug#14991 (relates to 'distcheck') * t/distcheck-no-prefix-or-srcdir-override.sh: New, expose the bug. * t/list-of-tests.mk (handwritten_TESTS, XFAIL_TESTS): Add it. 2013-10-30 Stefano Lattarini Merge branch 'micro' into minor * micro: tests: fix spurious failure when zip is present but unzip is not tests: fix spurious failure due to localization issues NEWS: update with the changes since v1.14 docs: correct typos in the fix-timestamp.sh script python: byte-compile nobase_*_PYTHON files only once cosmetics: typofix in the 'missing' script test: avoid false positives in 'cc-no-c-o' script test harness: improve catching of usage errors in script 'test-driver' tests: fix a spurious failure on NetBSD-current am-ft: make the environment available earlier NEWS: post-release tweaks (for 1.14.x series) tests: avoid a spurious failure on MacOS X 10.6.8 tests: don't risk hanging on the 'cl' requirement 2013-10-30 Stefano Lattarini tests: fix spurious failure when zip is present but unzip is not Fixes automake bug#15181. * t/dist-formats.tap (have_compressor): When checking that zip(1), also check for unzip(1), otherwise "make distcheck" will be unable to extract the zip tarball it creates, which will cause spurious failures. While at it, reorganize the existing code a bit. * THANKS, NEWS: Update. 2013-10-30 Stefano Lattarini tests: fix spurious failure due to localization issues Fixes automake bug#15237. * t/autohdr-subdir-pr12495.sh: Ensure make is run in the C locale, so that we can expect error messages in English when grepping its output. * THANKS, NEWS: Update. 2013-10-30 Stefano Lattarini NEWS: update with the changes since v1.14 2013-10-29 Peter Breitenlohner (tiny change) docs: correct typos in the fix-timestamp.sh script * doc/automake.texi: Here. The original version of this example script makes no sense at all, using 'configure' instead of the intended 'touch' in few key places. 2013-10-28 Benoit Sigoure (tiny change) python: byte-compile nobase_*_PYTHON files only once * lib/am/python.am: Here. Byte-compiling was occurring inside of a loop, causing an O(n^2) number of byte-compilations instead of O(n). 2013-10-28 Václav Zeman (tiny change) cosmetics: typofix in the 'missing' script * lib/missing: Here, in a message printed to the user. * THANKS: Update. 2013-07-23 Stefano Lattarini Merge branch 'fix-pr14911' into micro * fix-pr14911: test: avoid false positives in 'cc-no-c-o' script 2013-07-23 Stefano Lattarini Merge branch 'fix-half-pr14760' into micro * fix-half-pr14760: tests: fix a spurious failure on NetBSD-current 2013-07-23 Stefano Lattarini test: avoid false positives in 'cc-no-c-o' script Fixes automake bug#14911. * t/ax/cc-no-c-o.in: Be more careful in determining whether both the '-c' and '-o' options have been passed on the command line to the compiler. In particular, do not spuriously complain in the face of options like '-compatibility_version' or '-current_version' (seen on Mac OS X 10.7). * THANKS: Update. 2013-07-21 Stefano Lattarini test harness: improve catching of usage errors in script 'test-driver' Fixes automake bug#14840. * lib/test-driver: Catch and report usage errors where the caller has forgotten to specify one of the mandatory options (--test-name, --log-file, --trs-file) or has not passed any non-option argument. Also, be sure to work correctly even when no '--' special argument is passed to separate option from non-options arguments. * THANKS: Update. 2013-07-07 Stefano Lattarini tests: fix a spurious failure on NetBSD-current Reported in automake bug#14760. * tests/silent-custom.sh: Be prepared to handle creative quoting in the output of the shell run for the make recipes when the shell traces are active ("set -x"). 2013-06-28 Stefano Lattarini am-ft: make the environment available earlier So that, with a PATH that is updated earlier, we can find the 'xz' program even on systems where it isn't in the default PATH. * maintainer/am-ft: Adjust accordingly. 2013-06-27 Stefano Lattarini NEWS: post-release tweaks (for 1.14.x series) 2013-06-27 Stefano Lattarini tests: avoid a spurious failure on MacOS X 10.6.8 Fixes automake bug#14706. * t/depcomp2.sh: Strip, from the redirected ./configure stderr, the possible error message "rm: conftest.dSYM: is a directory", generated by cleanup code that doesn't cater to the existence of *.dSYM directories sometimes created by the compiler on MacOS X. This "massaging" of ./configure stderr is legitimate, since the spurious error message is due not to automake-related code, but to a know buglet/limitation of either Autoconf or Mac OS X bundles gcc: Actually, from that link it appears that the original Autoconf issue had been fixed, but it must have been re-introduced in the meantime :-( 2013-06-27 Stefano Lattarini tests: don't risk hanging on the 'cl' requirement On the GNU/Linux boxes of some users that run our testsuite there is a '/usr/local/bin/cl' executable, from the IRAF package: The test 'compile4.sh' (and other tests) try to invoke the 'cl' command to check whether it's a Microsoft compiler; the IRAF cl is an interactive program, so it hangs on such invocation. In conclusion, the testsuite hangs for those users which have the IRAF cl early in PATH. Fix the issue by redirecting the input of cl from /dev/null when invoking it, which is enough to prevent the cl program from IRAF from hanging, and should have no effect on the behaviour of the Microsoft compiler. This change fixes automake bug#14707. * t/ax/am-test-lib.sh (require_tool): Adjust the handling of the 'cl' requirement. 2013-06-21 Stefano Lattarini Merge branch 'micro' into minor * micro: post-release: micro version bump (1.14.0a) 2013-06-21 Stefano Lattarini post-release: micro version bump (1.14a) * configure.ac: Bump version: 1.14 -> 1.14a * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2013-06-21 Stefano Lattarini post-release: micro version bump (1.14.0a) * configure.ac: Bump version: 1.14 -> 1.14.0a * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2013-06-21 Stefano Lattarini Merge branch 'maint' into micro * maint: release: stable minor release 1.14 NEWS: one more minor fixlet maint: port check-minimal-autoconf to VPATH builds tests: avoid spurious failures in Linux -> MinGW cross-compilation mode tests: simplify checks for some expected variables values in Makefiles NEWS: improve and update wording tests: fix/improve few heading comments coverage: new test on Texinfo @include support tests: tighten a grepping check tests: more significant names for some tests rename-tests: rework some code for clarity and safety tests: cosmetic changes in t/extra-sources.sh rename-tests: inform the user about the pre-filled commit msg typofix: in comments in 'maintainer/rename-tests' rename-tests: also "git add" list-of-tests.mk tests: rename t/exsource.sh -> t/extra-sources.sh tests: some improvements to Gettext tests maint: version bump after beta release 1.13b release: beta release 1.13b (will become 1.14) automake: assume we can always pass '-o' to the C compiler NEWS: fix typo NEWS: on assuming "rm -f" without arguments work docs: AM_PROG_CC_C_O: correct imprecise statements about it NEWS: document deprecation of 'shar' and 'compress' dist formats m4: rename minuso.m4 -> prog-cc-c-o.m4 tests: some tests make no sense if "$CC -c -o" doesn't work AM_PROG_CC_C_O: don't rely on AC_PROG_CC_C_O, re-implement similar logic compile: rewrite AC_PROG_CC with AM_PROG_CC_C_O contents tests: avoid few lingering $MAKE redirections tests: fix a spurious failure on NetBSD 5.1 texi: build version.texi and stamp-vti in srcdir tests: fix a botched heading comment tests: fix another spurious with FreeBSD make tests: fix a spurious failure with FreeBSD make tests: remove remaining exec bits ('maint' branch) PLANS: subdir-objects: various updates THANKS: update Akim's e-mail address tests: less uses of "make -e"; avoid spurious failures in 'check-cc-no-c-o' build: be more respectful of user-specified verbosity check-cc-no-c-o: unify initializations in a single place check-cc-no-c-o: avoid a spurious failure build: fixup for building in a VPATH setup Use AC_DEFUN_ONCE to define AM_PROG_CC_C_O compile: avoid AC_PROG_CC messy rewrite options: tiny simplification in dealing with incompatible versions options: try to report as much errors as possible refactor: fix few "inverted boolean" usages options: better name for an internal function options: more consistency in use of return statuses to report errors options: tiny simplification in dealing with erroneous opts options: consistently use return statuses to report errors options: re-enable some sanity checks THANKS: update Eric Blake's e-mail address NEWS: typofix news: document new 'subdir-objects' warning PLANS: one minor fixlet (mostly cosmetic) PLANS: we have already dropped support for split info files in master NEWS: fix a reference to Automake 1.14 where Automake 2.0 was intended PLANS: fix reference to non-existent 'next' branch PLANS: fix botched version reference maintcheck: fix two references to old location of aclocal and automake dist: deprecated shar and tar+compress formats am: prefer a shorter idiom where possible maint: re-run "make update-copyright" ... tests: avoid spurious failure with older flex (2.5.4) build: move automake and aclocal in 'bin' subdir build: break up monolithic Makefile.am in subdir-specific fragments maint branch: we are going to become Automake 1.14 tests: typofixes in comments in t/preproc-c-compile.sh tests: remove bashism from a test tests: rename some with more descriptive names typofix: in comments in t/extra2.sh tests: fix botched cross-reference in a heading comment automake: refactoring: factor out common cpp-like flags NEWS (mint): reflect new Automake versioning scheme maintcheck: avoid spurious failure perl: perl subroutine prototypes are problematic, don't use them maint: more adjustments to the new versioning scheme cosmetics: fix some "docstring-like" comments in automake style: call perl functions 'like_this()', not '&like_this()' preproc: enhance and extend tests preproc: add support for relative names in included fragments maint: use more perl subroutines prototypes in the automake script build: auto-generate perl subroutines prototypes for automake and aclocal refactor: rip module Automake::Language out of automake script tests: more information about Lex and Yacc programs lint: fix spurious failure for 'sc_rm_minus_f' syntax check maint: bump version 1.13.1a -> 1.13.2a plans: we are not going to remove AM_PROG_MKDIR_P in Automake 1.14 init.m4: add probe to check "rm -f" without args work subdir-objects: complain if it isn't enabled plans: update w.r.t. latest changes ywrap: remove an obsolete FIXME comment ywrap: style fixes (no semantic change intended) convenience: "make lint" as an alias for "make maintainer-check" docs: typofix in manual coverage: using multiple lexers in a single program tests: remove most uses of the AM_PROG_CC_C_O obsolete macro coverage: obsolete macro AM_PROG_CC_C_O should cause no warning nor errors INSTALL: update copyright years ithreads: use runtime (not configure time) detection of perl threads copyright: add few missing copyright notices maint: files in PLANS are to be exempted from copyright notice maint: consistently honor the UPDATE_COPYRIGHT_YEAR environment variable copyright: update some copyright years compile: use 'compile' script when "-c -o" is used with losing compilers HACKING: suggest more checks before releasing tests: can fake a compiler not grasping "-c -o" -- globally in all tests sync: update files from upstream with "make fetch" typofix: in comments in GNUmakefile Rename 'maint/' -> 'maintainer/', for Git's sake HACKING: minor typofix HACKING: bug-tracker, the PLANS directory, and how to plan "big" changes HACKING: rewindable branches should live in the 'experimental/*' namespace HACKING: fixlets about git branch rewinding policy HACKING: commit messages are not to follow GCS ChangeLog rules too strongly HACKING: "detailed explanation" in commit messages is almost mandatory HACKING: we use "merge --log" even when merging master HACKING: typofix depend2.am: fix comments on verbosity of compilation rules depend2.am: improve comments a little plans: automake 1.14 is to assume "rm -f" with no args is OK plans: we want to active subdir-objects unconditionally in automake 1.14 tests: adjust stale references to old test names tests: rename the last aclocal test with dumb name tests: fix an old botched change to an aclocal test tests: fix some botched inter-test references in heading comments coverage: compile rules used "-c -o" also with losing compilers texi: remove extra verbosity in creation of dirstamp directory coverage: user can avoid distributing '.info' pages plans: add some on-going plans (already registered on the bug tracker) docs: mention dist-hook help for EXTRA_DIST texi: remove workaround for older Texinfo (4.1) NEWS: improve wordings in entry deprecating suffix-less info files build: don't enable 'color-tests' automake option explicitly build: enable all warnings as fatal in our own build system texi: Texinfo sources and CLEANFILES definition should co-exist peacefully tests: make two new test executable runtest: better command line API tests: move runtest.in away from the top-lever directory maint: move more maintainer files in the 'maint/' subdir plans: add the "PLANS" directory tests: more significant names for some tests maint: add some of my maintainer-specific scripts texi: deprecate hack about info files in CLEANFILES variables texi: info files can be generated in the builddir 2013-06-20 Stefano Lattarini release: stable minor release 1.14 * configure.ac (AC_INIT): Bump version number to 1.14. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2013-06-20 Stefano Lattarini NEWS: one more minor fixlet 2013-06-19 Stefano Lattarini maint: port check-minimal-autoconf to VPATH builds * maintainer/maint.mk (check-minimal-autoconf): Here. 2013-06-19 Stefano Lattarini tests: avoid spurious failures in Linux -> MinGW cross-compilation mode * t/ccnoc-deps.sh: Here. * t/preproc-demo.sh: And here. 2013-06-19 Stefano Lattarini tests: simplify checks for some expected variables values in Makefiles Do so by using our custom 'is' auxiliary script rather than grepping the output from make. This is more natural, more robust, and often shorter to write. Unfortunately, we can't do that in all cases: sometimes we really need to match the content of a variable against a regular expressions, and we can't know nor are interested in its exact value. This is basically a follow-up on commit v1.11-1830-g96401cb of 2012-02-08 (tests: better way to compare lists in Makefile rules). * t/subst-no-trailing-empty-line.sh: Adjust. * t/pluseq10.sh: Likewise. * t/check5.sh: Likewise, and enhance a little while at it. * t/check7.sh: Likewise. * t/exeext.sh: Likewise. 2013-06-19 Stefano Lattarini NEWS: improve and update wording 2013-06-19 Stefano Lattarini tests: fix/improve few heading comments * t/lflags.sh: Here. * t/lflags-cxx.sh: And here. * t/yflags.sh: And here. * t/yflags-cxx.sh: And here. 2013-06-19 Stefano Lattarini coverage: new test on Texinfo @include support Backported from the Automake-NG testsuite. * t/txinfo-include.sh: New test. * t/list-of-tests.mk: Add it. 2013-06-19 Stefano Lattarini tests: tighten a grepping check * t/yflags-force-override.sh: Here, by being sure to correctly match an expected literal dot. 2013-06-19 Stefano Lattarini tests: more significant names for some tests * t/extra2.sh: Rename... * t/extra-sources-no-spurious.sh: ... like this. * t/yflags2.sh: Rename... * t/yflags-cxx.sh: ... like this. * t/lflags2.sh: Rename... * t/lflags-cxx.sh: ... like this. 2013-06-19 Stefano Lattarini rename-tests: rework some code for clarity and safety 2013-06-19 Stefano Lattarini tests: cosmetic changes in t/extra-sources.sh * t/extra-sources.sh: Do not create unneeded C sources. Add trailing ':' command. 2013-06-19 Stefano Lattarini rename-tests: inform the user about the pre-filled commit msg 2013-06-19 Stefano Lattarini typofix: in comments in 'maintainer/rename-tests' 2013-06-19 Stefano Lattarini rename-tests: also "git add" list-of-tests.mk 2013-06-19 Stefano Lattarini tests: rename t/exsource.sh -> t/extra-sources.sh * t/exsource.sh: Rename ... * t/extra-sources.sh: ... like this. * t/list-of-tests.mk: Adjust. 2013-06-16 Stefano Lattarini Merge branch 'gettext-tests' into maint * gettext-tests: tests: some improvements to Gettext tests 2013-06-16 Stefano Lattarini tests: some improvements to Gettext tests Mostly to bring them more in sync with the ones in Automake-NG. See also commit v1.12.2-824-g5468d52 of 2012-08-10([ng] tests: reorganize gettext tests a bit) in Automake-NG. * t/gettext.sh: Rename ... * t/gettext-basics.sh: ... like this, enhance a little, and move checks on requirement of 'config.rpath' out into ... * t/gettext-config-rpath.sh: ... into this new test, and move checks about PR/381... * t/gettext-pr381.sh: ... into this new test. * t/gettext2.sh: Rename ... * t/gettext-external-pr338.sh: ... like this, and enhance a little. * t/gettext3.sh: Rename ... * t/gettext-intl-subdir.sh: ... like this, and add trailing ':' command. 2013-06-14 Stefano Lattarini Merge branch 'micro' into maint * micro: post-release: micro version bump (1.13.4a) release: stable micro release 1.13.4 sync: update config.guess 2013-06-14 Stefano Lattarini post-release: micro version bump (1.13.4a) * configure.ac: Bump version: 1.13.4 -> 1.13.4a * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2013-06-14 Stefano Lattarini release: stable micro release 1.13.4 * configure.ac (AC_INIT): Bump version number to 1.13.4. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2013-06-14 Stefano Lattarini sync: update config.guess * lib/config.guess: This. Actually, only the timestamp has been updated (apparently, it was mistakenly not updated in the previous real change to the script). 2013-06-12 Stefano Lattarini Merge branch 'micro' into maint * micro: THANKS: update e-mall address for Ralf Corsepius lang, suffix rules: don't require C stuff needlessly tests: expose automake bug#14560 2013-06-12 Stefano Lattarini Merge branch 'fix-pr14560' into micro * fix-pr14560: lang, suffix rules: don't require C stuff needlessly tests: expose automake bug#14560 2013-06-12 Stefano Lattarini THANKS: update e-mall address for Ralf Corsepius 2013-06-12 Stefano Lattarini lang, suffix rules: don't require C stuff needlessly This change fixes automake bug#14560: when two or more user-defined suffix rules were present in a single Makefile.am, automake would needlessly include definition of some make variables related to C compilation in the generated Makefile.in. * automake.in (handle_languages): Fix logic to decide whether or not to include definitions of C compilation related variables in the generated Makefile.in: instead of doing so when two or more user-defined suffix rules are seen (which is a completely bogus criterion), do so when two or more compiled languages are used. * lib/Automake/Rule.pm (suffix_rules_count): Remove as no longer used. (@EXPORT): Adjust. * t/list-of-tests.mk (XFAIL_TESTS): No longer list the test script 'suffix-extra-c-stuff-pr14560.sh', which now passes. * NEWS: Update. 2013-06-12 Stefano Lattarini tests: expose automake bug#14560 Automake needlessly generates definition of make variables related to C compilation when two or more user-defined suffix rules are present in a single Makefile.am. * t/suffix-extra-c-stuff-pr14560.sh: New test, exposing the bug. This test is still xfailing. * t/no-extra-c-stuff.sh: New test, check for a potential related regression. This regression is not actually present here (so this test passes), but it still took place in our first attempt at fixing bug#14560 -- so this test has proven to be actually useful. * t/no-extra-makefile-code.sh: Improve comments, and tighten the grepping checks a little. * t/list-of-tests.mk (handwritten_TESTS): Add the new tests. (XFAIL_TESTS): Add the new xfailing test. 2013-06-09 Stefano Lattarini Merge branch 'micro' into maint * micro: maint: add a missing copyright notice sync: update config.guess from upstream tests: expose automake bug#13928 comments: fix some out-of-sync refs to test scripts tests: expose automake bug#13940 2013-06-09 Stefano Lattarini maint: add a missing copyright notice * t/ax/deltree.pl: Here. Issue revealed by "make update-copyright". 2013-06-09 Stefano Lattarini sync: update config.guess from upstream * lib/config.guess: Here. 2013-06-08 Stefano Lattarini tests: expose automake bug#13928 * t/subobj-indir-pr13928.sh: New test, still xfailing. * t/subobj-vpath-pr13928.sh: Likewise. * t/list-of-tests.mk (XFAIL_TESTS, handwritten_TESTS): Update. 2013-06-08 Stefano Lattarini comments: fix some out-of-sync refs to test scripts Those script has been renamed since those comments where written. * lib/Automake/Rule.pm: Adjust. * lib/am/distdir.am: Likewise. 2013-06-08 Stefano Lattarini tests: expose automake bug#13940 * t/override-conditional-pr13940.sh: New test, still xfailing. * t/list-of-tests.mk (XFAIL_TESTS, handwritten_TESTS): Add it. 2013-06-03 Stefano Lattarini Merge branch 'micro' into maint * micro: configure: remove an obsolete TODO comment post-release: micro version bump (1.13.3a) release: stable micro release 1.13.3 typofix: fix grammaro in comments in t/tags-pr12372.sh 2013-06-03 Stefano Lattarini configure: remove an obsolete TODO comment * configure.ac: Here. 2013-06-03 Stefano Lattarini post-release: micro version bump (1.13.3a) * configure.ac: Bump version: 1.13.3 -> 1.13.3a * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2013-06-03 Stefano Lattarini release: stable micro release 1.13.3 * configure.ac (AC_INIT): Bump version number to 1.13.3. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2013-06-03 Peter Rosin typofix: fix grammaro in comments in t/tags-pr12372.sh 2013-06-03 Stefano Lattarini Merge branch 'micro' into maint * micro: NEWS: minor fixlets, re-wording, and better text wrapping tests: slightly stricter checks in t/cxx-demo.sh tests: fix spurious failure when 'etags' program is Exuberant Ctags tests: fix spurious failure due to missing sleeps 2013-06-03 Stefano Lattarini NEWS: minor fixlets, re-wording, and better text wrapping 2013-06-03 Stefano Lattarini tests: slightly stricter checks in t/cxx-demo.sh This is a follow-up to the commit fixing automake bug#14493. * t/cxx-demo.sh: Also check that the built program returns the correct (i.e., zero) exit status when run. And improve comments a little while at it. 2013-06-03 Stefano Lattarini tests: fix spurious failure when 'etags' program is Exuberant Ctags Fixes automake bug#14517. * t/tags-pr12372.sh: If the 'etags' program in use supports the '--langmap' option, use it. That is required to avoid spurious failures with Exuberant Ctags (at least version 5.8), which by default do not generate any tags for file extensions it doesn't recognize. 2013-06-03 Stefano Lattarini tests: fix spurious failure due to missing sleeps Fixes automake bug#14528. * THANKS: Give credit to that bug's original reporter. * t/remake-configure-dependencies.sh: Add few missing '$sleep' invocations. I thought that the sleeps implicit in the configure invocation were enough, but they were not, actually. Here is what can happen: 1. The config.status script is generated by a configure run. 2. ./config.status and make are run. 3. The 'print-version' script is modified. 4. Since that script is listed in $(CONFIGURE_DEPENDENCIES), autoconf is re-run. 5. On a fast-enough machine, the three steps 2-4 above, even combined, might have taken less than a second to run; 6. If the filesystem doesn't have a sub-second timestamp resolution, that means the newly-generated configure has the same timestamp of the old config.status; 7. So, config.status is not re-run, and the Makefiles are not updated. 8. Spurious failure! So we really need more explicit sleeps. 2013-05-31 Stefano Lattarini maint: version bump after beta release 1.13b * configure.ac (AC_INIT): Bump version number to 1.13c. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2013-05-31 Stefano Lattarini release: beta release 1.13b (will become 1.14) * configure.ac (AC_INIT): Bump version number to 1.13b. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2013-05-30 Stefano Lattarini Merge branch 'micro' into maint * micro: maint: support new Automake versioning scheme in tagging/uploading rules announcement: can be generated from development snapshots as well announcement: can be generated from development snapshots as well announcement: be less strict in the paring of NEWS maint: version bump after beta release 1.13.2b release: beta release 1.13.2b (will become 1.13.3) sync: update config.guess from upstream 2013-05-30 Stefano Lattarini maint: support new Automake versioning scheme in tagging/uploading rules * maint.mk (base_version_rx: Drop. (rx-0, rx-1): New. (stable_major_version_rx, stable_minor_version_rx, beta_version_rx): Update. (stable_micro_version_rx, alpha_version_rx: New. (determine_release_type): Adjust. (web-manual-update): Likewise. 2013-05-30 Stefano Lattarini announcement: can be generated from development snapshots as well And not only from checkouts corresponding exactly from a beta or stable release. That was only getting in the way of proper testing for the 'announcement' recipe. * maint.mk (determine_release_type): If the make variable DEVEL_SNAPSHOT is set, do not error out if the current version denotes a development snapshot (e.g., "1.13.2c" or "1.99a"). (announcement): Relax, by also accepting to run from development snapshots, not only stable or beta releases. Do so by defining the target-specific variable DEVEL_SNAPSHOT to "yes". (print-release-type): Micro enhancement while at it. 2013-05-30 Stefano Lattarini announcement: can be generated from development snapshots as well And not only from checkouts corresponding exactly from a beta or stable release. That was only getting in the way of proper testing for the 'announcement' recipe. * maint.mk (determine_release_type): If the make variable DEVEL_SNAPSHOT is set, do not error out if the current version denotes a development snapshot (e.g., "1.13.2c" or "1.99a"). (announcement): Relax, by also accepting to run from development snapshots, not only stable or beta releases. Do so by defining the target-specific variable DEVEL_SNAPSHOT to "yes". 2013-05-30 Stefano Lattarini announcement: be less strict in the paring of NEWS So that the file generated by "make announcement" is correct also for beta releases. * maint.mk (announcement): Relax the awk program processing NEWS a little. 2013-05-30 Stefano Lattarini maint: version bump after beta release 1.13.2b * configure.ac (AC_INIT): Bump version number to 1.13.2c. * m4/amversion.m4: Likewise (autoupdated by "make bootstrap"). 2013-05-30 Stefano Lattarini release: beta release 1.13.2b (will become 1.13.3) * configure.ac (AC_INIT): Bump version number to 1.13.2b. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2013-05-30 Stefano Lattarini sync: update config.guess from upstream 2013-05-30 Stefano Lattarini Merge branch 'micro' into maint * micro: NEWS: document recent testsuite fixes (MinGW/MSYS related) depcomp: avoid trailing backslash in depfile for depmode=msvc7 tests: prune some weed in a non-POSIX test tests: avoid a spurious failure on MSYS 2013-05-30 Peter Rosin automake: assume we can always pass '-o' to the C compiler It is assumed that we can pass -c -o to the C compiler, so remove some special casing and always do that. This change is similar in spirit to v1.13.1d-217-g7299c4d "depend: assume we can always pass '-o' to the C compiler" This change also happen to fix a testsuite failure (t/silent-many-languages.sh) when mixing MSVC and GNU fortran, which have different default object file extensions (.obj vs. .o). This difference in object file extension is not handled well and caused Automake to look for MSVC objects with .o extension. Always using -o makes MSVC create .o object files and linking succeeds. Not that anybody recommends mixing toolchains or anything. * bin/automake.in (handle_languages): Remove conditional modification of 'output_flag' entry for 'c'. (register_language ('name' => 'c')): Add 'output_flag' entry set to '-o'. 2013-05-30 Stefano Lattarini NEWS: document recent testsuite fixes (MinGW/MSYS related) 2013-05-30 Peter Rosin depcomp: avoid trailing backslash in depfile for depmode=msvc7 When compiling a file without any dependencies (no #includes), the msvc7 depmode (and consequently msvc7msys) generates a depfile Makefile fragment with the last line ending with a backslash. This is less robust than needed. Fixes automake bug#14501. * lib/depcomp (msvc7): Finish off the depfile Makefile fragment with an empty line. (scriptversion): Update. 2013-05-29 Peter Rosin Stefano Lattarini tests: prune some weed in a non-POSIX test Fixes automake bug#14494. * t/distcheck-pr10470.sh: Make sure the test-driver is installed. Adjust to run_make changes. Adjust grep pattern to match new output. 2013-05-29 Peter Rosin tests: avoid a spurious failure on MSYS Fixes automake bug#14493. * t/cxx-demo.sh: Strip CR characters from the program output. 2013-05-29 Stefano Lattarini Merge branch 'micro' into maint * micro: t/README: document "run_make", discourage "make -e" cosmetics: tiny whitespace fixlets tests: avoid a spurious failure with MSVC tests: avoid a spurious failure on non-POSIX systems 2013-05-29 Stefano Lattarini t/README: document "run_make", discourage "make -e" 2013-05-29 Stefano Lattarini cosmetics: tiny whitespace fixlets 2013-05-29 Peter Rosin tests: avoid a spurious failure with MSVC Fixes automake bug#14498. * t/yacc-bison-skeleton.sh: inline was not standardized prior to C99. 2013-05-29 Peter Rosin tests: avoid a spurious failure on non-POSIX systems Fixes automake bug#14495. * t/lex-header.sh: Make sure unistd.h isn't included. 2013-05-29 Stefano Lattarini Merge branch 'micro' into maint * micro: NEWS: fix typos and grammaros NEWS: document fix for bug#14441 Automake::Rule: consistently prepend underscore to private variables Automake::Rule: rename: suffix_rule() -> next_in_suffix_chain() Automake::Rule: adjust comments and POD according to previous changes Automake::Rule: make private variables lexically scoped suffix rules: better distinction between builtin and user-derived Automake::Rule: expose suffix rules as a function, not a scalar tests: expose automake bug#14441 2013-05-29 Stefano Lattarini NEWS: fix typos and grammaros Reported-by: Peter Rosin 2013-05-28 Stefano Lattarini Merge branch 'suffix-rules-work' into micro * suffix-rules-work: NEWS: document fix for bug#14441 Automake::Rule: consistently prepend underscore to private variables Automake::Rule: rename: suffix_rule() -> next_in_suffix_chain() Automake::Rule: adjust comments and POD according to previous changes Automake::Rule: make private variables lexically scoped suffix rules: better distinction between builtin and user-derived Automake::Rule: expose suffix rules as a function, not a scalar tests: expose automake bug#14441 2013-05-28 Stefano Lattarini NEWS: fix typo Reported-by: Peter Rosin 2013-05-28 Stefano Lattarini Merge branch 'micro' into maint * micro: NEWS: report recent documentation fix about AM_PROG_MKDIR_P NEWS: Automake 2.0 will assume "rm -f" without args work NEWS: fix a couple of typos in older entries 2013-05-28 Stefano Lattarini NEWS: report recent documentation fix about AM_PROG_MKDIR_P 2013-05-28 Stefano Lattarini NEWS: Automake 2.0 will assume "rm -f" without args work 2013-05-28 Stefano Lattarini NEWS: on assuming "rm -f" without arguments work 2013-05-28 Stefano Lattarini NEWS: fix a couple of typos in older entries 2013-05-28 Stefano Lattarini Merge branch 'micro' into maint * micro: docs: AM_PROG_MKDIR_P: will not be removed in 2.0 release of Automake maint: sanity checks in 'check-minimal-autoconf' convenience target maint: test minimal supported autoconf through convenience target maint: install minimal supported autoconf through convenience targets test-lib: typofix in comments 2013-05-28 Stefano Lattarini docs: AM_PROG_MKDIR_P: will not be removed in 2.0 release of Automake See the 'PLANS/obsolete-removed/am-prog-mkdir-p.txt' file in the 'maint' branch (as of commit v1.13.2-201-gd99e3f3) for details. * doc/automake.texi: Adjust. 2013-05-28 Stefano Lattarini docs: AM_PROG_CC_C_O: correct imprecise statements about it * doc/automake.texi: Here. 2013-05-28 Stefano Lattarini maint: sanity checks in 'check-minimal-autoconf' convenience target * maint.mk (check-minimal-autoconf): Here, check that autoconf seems to be locally installed, and that such local install refers to the correct expected minimal version. 2013-05-28 Stefano Lattarini maint: test minimal supported autoconf through convenience target * maint.mk (check-minimal-autoconf): New convenience target. 2013-05-28 Stefano Lattarini maint: install minimal supported autoconf through convenience targets To make testing of Automake in conjunction with it easier and more reproducible. It might be nice to also have convenience targets to actually automatically run the Automake testsuite with such autoconf version, but that is left to later patches. * configure.ac: AC_SUBST the definition of $required_autoconf_version. * maint.mk (WGET): Move definition earlier. (gnu-ftp, ac-v, ac-n, ac-p, ac-t, ac-l, ac-d): New auxiliary variables. (fetch-minimal-autoconf, build-minimal-autoconf): New convenience targets. * .gitignore: Update. 2013-05-28 Stefano Lattarini NEWS: document fix for bug#14441 2013-05-28 Stefano Lattarini Automake::Rule: consistently prepend underscore to private variables * lib/Automake/Rule.pm (%suffix_rules): Rename ... (%_suffix_rules): ... like this. (%suffix_rules_builtin): Rename ... (%_suffix_rules_builtin): ... like this. (reset, next_in_suffix_chain, register_suffix_rule, suffix_rules_count): Adjust. 2013-05-28 Stefano Lattarini Automake::Rule: rename: suffix_rule() -> next_in_suffix_chain() * lib/Automake/Rule.pm (suffix_rule): Rename ... (next_in_suffix_chain): ... like this. (%suffix_rules): Adjust comments. (@EXPORT): Adjust. * automake.in (derive_suffix): Likewise. 2013-05-28 Stefano Lattarini Automake::Rule: adjust comments and POD according to previous changes * lib/Automake/Rule.pm: Here, in several places. * automake.in (register_language): And a tiny adjustment here as well. 2013-05-28 Stefano Lattarini Automake::Rule: make private variables lexically scoped * lib/Automake/Rule.pm (@_known_extensions_list): This one. (@_suffixes): And this one. (%_rule_dict): And this one. 2013-05-28 Stefano Lattarini suffix rules: better distinction between builtin and user-derived Fixes automake bug#14441. * lib/Automake/Rule.pm ($_suffix_rules_default): Remove, superseded by ... (%suffix_rules_builtin): ... this lexical variable. ($suffix_rules): Remove, superseded by ... (%suffix_rules): ... this lexical variable. (suffix_rules, suffix_rules_count): Adjust. (register_suffix_rule): Update '%suffix_rules_builtin' rather than '%suffix_rules' if the location (as passed by the '$where' argument) is an "internal" one (doesn't come from user-provided Makefile.am). (reset): Simplify resetting of '%suffix_rules' to the default ones accordingly. * t/list-of-tests.mk (XFAIL_TESTS): Drop test 'suffix-custom-pr14441.sh'. 2013-05-28 Stefano Lattarini Automake::Rule: expose suffix rules as a function, not a scalar This is just a preparatory refactoring in view of future patches. No semantic change is intended. * lib/Automake/Rule.pm ($suffix_rules): Turn from a package-level variable to a lexical variable. (suffix_rule): New function, expose the details of $suffix_rules that are actually required by code outside thus modules --- and only those details, no more. (@EXPORT): Adjust. * automake.in (derive_suffix): Likewise. 2013-05-27 Stefano Lattarini tests: expose automake bug#14441 * t/suffix-custom-pr14441.sh: New test, still failing. * t/list-of-tests.mk (handwritten_TESTS, XFAIL_TESTS): Add it. Helped-by: Felix Salfelder 2013-05-26 Stefano Lattarini test-lib: typofix in comments * t/ax/am-test-lib.sh: In here. 2013-05-26 Stefano Lattarini Merge branch 'micro' into maint * micro: tests: remove an "unworthy" FIXME comment tests: remove one obsolete workaround for long-lifted limitations tests: couple of minor tweaks in demo tests in C++ and Libtool 2013-05-26 Stefano Lattarini tests: remove an "unworthy" FIXME comment * t/location.sh: Here. 2013-05-26 Stefano Lattarini tests: remove one obsolete workaround for long-lifted limitations * t/silent-many-languages.sh: Here. 2013-05-26 Stefano Lattarini tests: couple of minor tweaks in demo tests in C++ and Libtool * t/cxx-lt-demo.sh: Here. 2013-05-26 Stefano Lattarini Merge branch 'micro' into maint * micro: tests: adjust or remove some obsolete comments tests: remove some useless 'unset' of variables 2013-05-26 Stefano Lattarini NEWS: document deprecation of 'shar' and 'compress' dist formats 2013-05-26 Stefano Lattarini Merge branch 'prog-cc-c-o-work' into maint * prog-cc-c-o-work: tests: some tests make no sense if "$CC -c -o" doesn't work AM_PROG_CC_C_O: don't rely on AC_PROG_CC_C_O, re-implement similar logic compile: rewrite AC_PROG_CC with AM_PROG_CC_C_O contents 2013-05-26 Stefano Lattarini m4: rename minuso.m4 -> prog-cc-c-o.m4 The new name is much clearer. * m4/minuso.m4: Rename ... * m4/prog-cc-c-o.m4: ... like this. * m4/Makefile.in (dist_automake_DATA): Adjust. 2013-05-26 Stefano Lattarini tests: adjust or remove some obsolete comments * t/ax/am-test-lib.sh: Here. * t/distcheck-configure-flags.sh: And here. 2013-05-26 Stefano Lattarini tests: remove some useless 'unset' of variables They are redundant, now that we no longer call "make -e". * t/javaflags.sh: Don't unset JAVAC. * t/lflags.sh: Don't unset LEX. * t/lflags2.sh: Likewise. 2013-05-26 Stefano Lattarini Merge branch 'micro' into maint * micro: tests: avoid a couple of extra sleep with GNU make NEWS: document testsuite work for 1.13.3 lint: remove a couple of obsolete syntax checks lint: cosmetics: use #-comments, not ##-comments lint: cosmetics: some reordering lint: recipes of syntax check require GNU grep; ensure it is used lint: better name for a syntax check tests: rename $am_make_rc_got -> $am_make_rc tests: ensure $required is not set too late 2013-05-26 Stefano Lattarini tests: avoid a couple of extra sleep with GNU make They are only required by BSD make in order to avoid spurious failures. * t/deleted-am.sh: Here. * t/parallel-tests-recheck-pr11791.sh: And here. 2013-05-26 Stefano Lattarini NEWS: document testsuite work for 1.13.3 2013-05-25 Stefano Lattarini lint: remove a couple of obsolete syntax checks * syntax-checks.mk (sc_obsolete_requirements_rules): Remove definition of this variable. (modern-requirement.texi2dvi-o): Likewise. (modern-requirement.makeinfo-html): Likewise. ($(sc_obsolete_requirements_rules)): Remove these obsolete syntax checks. 2013-05-25 Stefano Lattarini lint: cosmetics: use #-comments, not ##-comments * syntax-checks.mk: Here. This makes sense because this file is not meant to be processed by Automake, so the ##-comments are not treated specially. 2013-05-25 Stefano Lattarini lint: cosmetics: some reordering * syntax-checks.mk: Here. 2013-05-25 Stefano Lattarini lint: recipes of syntax check require GNU grep; ensure it is used * syntax-checks.mk (sc_sanity_gnu_grep): New. ($(syntax_check_rules)): Depend on it. 2013-05-25 Stefano Lattarini lint: better name for a syntax check * syntax-checks.mk (sc_tests_make_without_am_makeflags): Rename ... (sc_make_without_am_makeflags): ... like this. (syntax_check_rules): Adjust. 2013-05-24 Stefano Lattarini tests: rename $am_make_rc_got -> $am_make_rc The latter is more natural More importantly, I keep misspelling the former over and over. * t/ax/am-test-lib.sh (run_make): Update. * t/ax/tap-summary-aux.sh: Adjust. * t/ax/testsuite-summary-checks.sh: Likewise. * t/parallel-tests-exit-statuses.sh: Likewise. * t/parallel-tests-extra-programs.sh: Likewise. * t/parallel-tests-fd-redirect-exeext.sh: Likewise. * t/parallel-tests-fd-redirect.sh: Likewise. * t/parallel-tests-fork-bomb.sh: Likewise. * t/parallel-tests-no-spurious-summary.sh: Likewise. * t/parallel-tests-recheck-pr11791.sh: Likewise. * t/parallel-tests-reset-term.sh: Likewise. * t/tap-signal.tap: Likewise. * t/test-driver-acsubst.sh: Likewise. * t/test-driver-cond.sh: Likewise. 2013-05-24 Stefano Lattarini tests: some tests make no sense if "$CC -c -o" doesn't work So just skip them, to avoid spurious failures when running "make check-no-cc-c-o". * t/ax/am-test-lib.sh (require_tool): New requirement '-c-o'. * t/subobj10.sh ($required): Add it. * gen-testsuite-part (%depmodes): Adjust so that tests that use 'makedepend' will be skipped if the compiler is being forced not to grasp "-c -o". 2013-05-24 Stefano Lattarini AM_PROG_CC_C_O: don't rely on AC_PROG_CC_C_O, re-implement similar logic ** Theoretical problems of AC_PROG_CC_C_O: Both cc and $CC are checked to see if they support the '-c' and '-o' options together. This behaviour is highly inconsistent with that of the other macros related to C compiler checks -- which test only $CC. It can also cause unwarranted uses of the 'compile' script on systems where the default 'cc' is inferior, but the user is compiling with a proper, different compiler (e.g., gcc). ** Practical problems with our previous implementation of C support m4 macros in Automake: - AM_PROG_AR must now be called *before* AC_PROG_CC; this wasn't the case before, and it turns out there are packages in the wild that relied on the old behaviour. - The cross-referenced requirements and macro rewrites juggled among AC_PROG_CC, AC_PROG_CC_C_O and AM_PROG_CC_C_O caused warnings in autoconf; for example, in our test 't/libobj3.sh', we could see warnings like these (here slightly tweaked for legibility): configure.ac:5: AC_REQUIRE: `AC_PROG_CC' expanded before required autoconf/c.m4:567: AC_PROG_CC_C_O is expanded from... autoconf/c.m4:429: AC_LANG_COMPILER(C) is expanded from... autoconf/lang.m4:329: AC_LANG_COMPILER_REQUIRE is expanded from... autoconf/general.m4:2606: AC_COMPILE_IFELSE is expanded from... m4sugar/m4sh.m4:639: AS_IF is expanded from... autoconf/general.m4:2031: AC_CACHE_VAL is expanded from... autoconf/general.m4:2052: AC_CACHE_CHECK is expanded from... aclocal.m4:70: AM_PROG_AR is expanded from... configure.ac:5: the top level ** Fix all of that: We fix all of the described issues with a new internal m4 macro _AM_PROG_CC_C_O (inspired to, but not based on, AC_PROG_CC_C_O) that gets tacked on to AC_PROG_CC automatically (this is done in the Automake-generated aclocal.m4) and that takes care of checking and adjusting '$CC' for "-c -o" support. The macro AM_PROG_CC_C_O is still present, but is now just a thin wrapper around such Automake-enhanced AC_PROG_CC. It is worth noting that the present patch causes three slight *backward-incompatibilities*: 1. The name cache variable used by AM_PROG_CC_C_O is no longer computed (at configure runtime!) from the content of '$CC', but is statically defined as 'am_cv_prog_cc_c_o'. 2. 'cc' is no longer checked by AM_PROG_CC_C_O, only '$CC' is. 3. AM_PROG_CC_C_O no longer AC_DEFINE the C preprocessor symbol 'NO_MINUS_C_MINUS_O'. Given however that the third change can easily be worked around, that the first two changes can be legitimately seen as bug fixes, and that the new semantics introduced by such changes will simplify the transition to Automake 2.0 (when the 'subdir-objects' will always be enabled unconditionally), we believe they are acceptable to be shipped with Automake 1.14. With this patch, we also revert some of the testsuite adjustments done in previous commit v1.13.2-178-g9877109 of 2013-05-24 (compile: rewrite AC_PROG_CC with AM_PROG_CC_C_O contents). Such adjustments are no longer needed. * m4/minuso.m4 (_AM_PROG_CC_C_O): New internal macro, basically and adjusted version of a merge between Autoconf-provided AC_PROG_CC_C_O and our old implementation of AM_PROG_CC_C_O. (AM_PROG_CC_C_O): Redefine as a simple wrapper around AC_PROG_CC. * m4/init.m4 (AC_PROG_CC): Append _AM_PROG_CC_C_O, not AM_PROG_CC_C_O, to the pre-existing expansion of this macro. * m4/ar-lib.m4 (AM_PROG_AR): No longer require it to be expanded after AC_PROG_CC. * t/aclocal-deps.sh: Move AC_PROG_CC invocation after AC_PROG_RANLIB and AM_PROG_AR invocations. Things should work this way too (as they used to). * t/subobj-clean-lt-pr10697.sh: Likewise. * t/alloca.sh: Move AC_PROG_CC invocation after AM_PROG_AR invocation. * t/condlib.sh: Likewise. * t/aclocal-deps.sh: Move AC_PROG_CC invocation after LT_INIT and AM_PROG_AR invocations. Make autoconf and autoheader warnings fatal. * t/am-prog-cc-c-o.sh: Adjust to the new semantics, enhance a little, and reduce code duplication. * t/ccnoco.sh: Make autoconf warnings fatal. * t/subpkg.sh: Likewise. * t/ccnoco-lib.sh: Likewise, and fix a comment. * t/link_cond.sh: Enhance a couple of error messages. * configure.ac: Drop "nullification" of AM_PROG_CC_C_O. * NEWS: Adjust. 2013-05-24 Stefano Lattarini compile: rewrite AC_PROG_CC with AM_PROG_CC_C_O contents This is a much simpler rewrite than the one we attempted in the past, and that was later removed by commit 'v1.13.1d-137-g32eb770' of 2013-05-11 (compile: avoid AC_PROG_CC messy rewrite). Not only this change simplifies the code a little, but has the welcome collateral effect of making automatic dependency tracking work better with compilers that doesn't grasp the '-c' and '-o' options together. Issues in that setup have been caught by several failures in the target 'check-no-cc-c-o'. Unfortunately, this change has less welcome collateral effects: 1. AM_PROG_AR must now be called *after* AC_PROG_CC; 2. Autoconf emits extra warnings when used with Automake-generated aclocal.m4. These are unacceptable regressions for a release, but since we are going to fix them soon enough in a follow-up patch (surely to be applied before Automake 1.14 is released) we don't worry too much. * m4/init.m4: Redefine AC_PROG_CC early, to automatically invoke AM_PROG_CC_C_O as well. Accordingly, drop now-unneeded "automagical" AM_PROG_CC_C_O expansion at later time (which took place thanks to a AC_CONFIG_COMMANDS_PRE call). * m4/minuso.m4 (AM_PROG_CC_C_O): Ensure the expansion of the body of this macro takes place with C as "current Autoconf language" (use AC_LANG_PUSH/AC_LANG_POP). * m4/ar-lib.m4 (AM_PROG_AR): Likewise. Also, require this macro to be expanded *after* AC_PROG_CC (so that any rewrite of $CC, if required, has already taken place). * t/add-missing.tap: Adjust to avoid spurious failures. * t/aclocal-deps.sh: Likewise, by having AM_PROG_AR called *after* AC_PROG_CC. * t/subobj-clean-lt-pr10697.sh: Likewise. * t/alloca.sh: Likewise. * t/condlib.sh: Likewise. * t/discover.sh: Likewise. * t/objc-megademo.sh: Likewise. * t/ccnoco.sh: Extend a little. * t/ccnoco-deps.sh: New test. * t/ccnoco-lib.sh: Likewise. * t/ccnoco-lt.sh: Likewise. * t/list-of-tests.mk: Add them. 2013-05-24 Stefano Lattarini tests: ensure $required is not set too late And do so in a safer way, with a runtime check rather than a brittle static maintainer check. * t/ax/test-init.sh: Set the 'required' variable to readonly. * syntax-checks.mk (sc_tests_required_after_defs): Remove. (syntax_check_rules): No longer list it. 2013-05-24 Stefano Lattarini Merge branch 'micro' into maint * micro: tests: use append mode to capture parallel make output tests: new convenience target 'check-parallel' 2013-05-24 Stefano Lattarini tests: use append mode to capture parallel make output This will allow us to run the Automake testsuite forcing all the make invocations in the test cases to run in parallel mode [1], but without hitting the spurious failure reported in automake bug#11413. See also: The make invocations in the test cases can be forced to run in parallel mode by, e.g., invoking "make check" like this: make check AM_TESTSUITE_MAKE="make -j16" The possible spurious failures hinted above are due to the fact that the redirected output of parallel make can racily lose lines. For example, if GNU make (3.82) is run with -j10 on a Makefile like this: all = 0 1 2 3 4 5 6 7 8 9 default: $(all) $(all): @sleep 0.$$(($RANDOM % 10)); echo $@ and has its standard output redirected in overwrite-mode to a regular file, it looses a line of that output every 15 runs or so on a Fedora 17 system with 64 ppc64 cores. Redirection in append mode does not suffer of this problem, as explained here: See also previous commits v1.12-63-g45c1fcd of 2012-05-05 (tests: use append mode to capture parallel make output) and Release-1-10-280-g6426999 of 2009-03-10 (Use append mode to capture parallel test output). * t/ax/am-test-lib.sh (run_make): Adjust and enhance. * t/lisp8.sh: Take advantage of the enhancement, nd stop doing output redirection for $MAKE by hand. * t/tap-more.sh: Likewise. * t/parallel-tests-concurrency.sh: Likewise. 2013-05-24 Stefano Lattarini tests: new convenience target 'check-parallel' To force the test scripts to invoke make in parallel mode. This should enhance coverage of use cases (make concurrency) that are becoming more and more important with today multicore fast machines. * Makefile.am (check-parallel): New .PHONY target. 2013-05-23 Stefano Lattarini tests: avoid few lingering $MAKE redirections These were present in the 'maint' branch, but not in the 'micro' branch. Their occurrences has been found by the 'sc_tests_no_run_make_redirect' maintainer check. * t/fort2.sh: Adjust. * t/preproc-demo.sh: Likewise. 2013-05-23 Stefano Lattarini Merge branch 'micro' into maint * micro: tests: avoid '$MAKE' redirections, use 'run_make' instead tests: avoid use of redirected 'run_make' invocations lint: warn against redirected 'run_make' invocations comments: next GNU make release 4.0, not 3.83 tests: fix a potential spurious failure due to global config.site HACKING: it's OK to do testsuite refactoring in a micro version 2013-05-23 Stefano Lattarini tests: avoid '$MAKE' redirections, use 'run_make' instead The use 'run_make' with the -E, -O and -M option, it is more idiomatic now. Also, this way, centralized fixes and improvements done in 'run_make' will automatically propagate through most of the testsuite. * syntax-checks.mk (sc_tests_no_run_make_redirect): Also check against '$MAKE' invocations that uses output redirections (and not only against 'run_make' invocation that do so). * Several tests: Adjust (and few minor cosmetic changes as well, while at it). 2013-05-22 Stefano Lattarini tests: avoid use of redirected 'run_make' invocations Instead, properly use the -E, -O, or -M options of run_make. The occurrences of the 'run_make' invocations using output redirection has been found by the recently-introduced maintainer check 'sc_tests_no_run_make_redirect'. * t/ax/tap-summary-aux.sh: Adjust. * t/ax/testsuite-summary-checks.sh: Likewise. * Several other tests: Likewise. 2013-05-22 Stefano Lattarini lint: warn against redirected 'run_make' invocations The testsuite shell function 'run_make()' has the three options -E, -O and -M to perform the various kind of output redirections, so the test scripts should use them instead of redirecting the output "by hand": run_make ARGS >stdout => run_make -O ARGS run_make ARGS >stderr => run_make -E ARGS run_make ARGS >stdout 2>stderr => run_make -O -E ARGS run_make ARGS >output 2>&1 => run_make -M ARGS See the commit message of v1.13.2-13-gc7cfa09, 2013-05-22 (tests: run_make: options to do command redirection) for an explanation of why this is a good idea. It's worth noting that the present patch only introduced a new static maintainer check looking against the undesired idioms, but doesn't yet remove usages of such idioms from the testsuite. That will be done by follow-up patch(es). * syntax-checks.mk (sc_tests_no_run_make_redirect): New check. (syntax_check_rules): List it. 2013-05-22 Stefano Lattarini comments: next GNU make release 4.0, not 3.83 See: * lib/am/header-vars.am (am__make_running_with_option): Adjust comments. 2013-05-22 Stefano Lattarini tests: fix a potential spurious failure due to global config.site * t/instdir-no-empty.sh: Here. 2013-05-22 Stefano Lattarini HACKING: it's OK to do testsuite refactoring in a micro version Reported-by: Peter Rosin 2013-05-22 Stefano Lattarini Merge branch 'micro' into maint * micro: tests: remove some code duplication cosmetics: remove a couple of extra whitespaces in tests tests: two minor fixups 2013-05-22 Stefano Lattarini tests: remove some code duplication * t/ax/am-test-lib (null_install): New function. * t/instdir-java.sh: Use it instead of copied & pasted code. * t/instdir-lisp.sh: Likewise. * t/instdir-ltlib.sh: Likewise. * t/instdir-prog.sh: Likewise. * t/instdir-python.sh: Likewise. * t/instdir-texi.sh: Likewise. * t/instdir.sh: Likewise. * t/instdir2.sh: Likewise. 2013-05-22 Stefano Lattarini cosmetics: remove a couple of extra whitespaces in tests * t/instdir.sh: Here. * t/instdir2.sh: And here. 2013-05-22 Stefano Lattarini tests: two minor fixups * t/make-keepgoing.tap: Here. * t/parallel-tests-exit-statuses.sh: And here. 2013-05-22 Stefano Lattarini Merge branch 'micro' into maint * micro: tests: run_make: options to do command redirection tests: only activate 'unset' alias if required tests: better idiom to override make macro defs on the cmdline test-lib: minor style changes test-lib: fix botched function name in an error message 2013-05-22 Stefano Lattarini tests: run_make: options to do command redirection Let's improve the API of the 'run_make()' helper shell function by adding three new options: -O Save the standard output from make on disk, in a regular file named 'stdout'. -E Save the standard error from make on disk, in a regular file named 'stderr'. -M Save both the standard output and standard error from make on disk, in a regular file named 'output'. This option supersedes both the '-O' and '-E' options. This new API has two main advantages. 1. Its use will allow us to get rid of more cumbersome idioms like, e.g., $MAKE check >stdout && { cat stdout; exit 1; } cat stdout That can now be substituted with a simpler one: run_make -e FAIL -O check 2. More importantly, using the new API we will prevent any extra output from the shell traces of the code in run_make to be redirected along with the make stderr (where that was redirected). This problem was present in usages like, e.g., run_make TESTS=foo.test check 2>stderr && exit 1 grep 'expected error message' stderr Such usages are now to be rewritten as follows: run_make -e FAIL -E TESTS=foo.test check grep 'expected error message' stderr ensuring that 'stderr' won't end up containing unrelated stuff. Note that we do not convert in bulk the old idioms and the use of redirected 'run_make' invocations with this patch. We only convert some occurrences, to ensure that the new implementation of 'run_make' is sound enough. More sweeping conversions will likely be done in follow-up patches. * t/ax/am-test-lib.sh (run_make): Enhance and implement the extended API. * t/tap-xfail-tests.sh: Use the new 'run_make' API. * t/test-driver-cond.sh: Likewise. * t/tests-environment-fd-redirect.sh: Likewise. * t/uninstall-fail.sh: Likewise. * t/yacc-dist-nobuild.sh: Likewise. 2013-05-22 Stefano Lattarini tests: only activate 'unset' alias if required This makes the test logs easier to read for most shells (which do not actually require that alias). This is especially important now that 'unset' is used in the new 'run_make()' function, and that function is likely going to be used more and more in the future. * t/ax/test-lib.sh (_am_unset, unset): Only define this function and alias if "unset VAR" returns a non-zero exit status when VAR is already unset. 2013-05-22 Stefano Lattarini tests: better idiom to override make macro defs on the cmdline We now do so with a new wrapper shell function 'run_make()', which relies on the use of AM_MAKEFLAGS, avoiding the use of the '-e' make option. The use of that option (that causes the environment variables to take precedence over the macro definitions in the Makefile) has proved to be quite brittle in the past, causing annoying and sometimes problematic spurious failures. This has worsened in some still unpublished work going on in development branches. It's time to solve the issue once and for all. Note that we do not convert all uses of $MAKE in the testsuite right away; we might do so in follow-up changes, with leisure, to avoid a "patch bomb" effect (this commit is already too much of a bomb itself). What we do in this commit is to get rid of all "$MAKE -e" invocations. We admit that the implementation and feature-set of 'run_make()' are far from perfect, but good enough for our current purposes. We'll improve 'run_make()' if and when the need arises. * syntax-checks.mk (sc_tests_no_make_e): New syntax check, guard against the use of "$MAKE -e". (syntax_check_rules): Add it. (sc_tests_overriding_macros_on_cmdline): Adjust. (lint): New, alias for 'maintainer-check', for lazy typists. Idea backported from the 'maint' branch (Automake 1.13a). * t/ax/am-test-lib.sh (run_make): New function. Run $MAKE with the given command-line arguments, handling command-line override of variable definitions in a smart way (using AM_MAKEFLAGS if a non-GNU make implementation is detected to be in use). (useless_vpath_rebuild): Adjust to use 'run_make', to avoid a spurious maintainer check failure. (yl_distcheck): Use 'run_make' rather than bare '$MAKE'. (single_quote, append_single_quoted, is_valid_varname): New auxiliary function, used, directly or indirectly, by it. * Many tests: Adjust to avoid the use of "$MAKE -e", and prefer the use of 'run_make' in few other contexts as well, where it makes sense. Other minor fixlets while at it. 2013-05-20 Stefano Lattarini test-lib: minor style changes * t/ax/am-test-lib.sh (require_tool): Here. 2013-05-20 Stefano Lattarini test-lib: fix botched function name in an error message * t/ax/am-test-lib.sh (useless_vpath_rebuild): Here. 2013-05-20 Stefano Lattarini Merge branch 'micro' into maint * micro: maintcheck: minor tweaks and fixlets 2013-05-20 Stefano Lattarini maintcheck: minor tweaks and fixlets * syntax-checks.mk: Here. 2013-05-19 Stefano Lattarini tests: fix a spurious failure on NetBSD 5.1 * t/dist-shar.sh ($required): Also require the 'unshar' program. Apparently, NetBSD has a 'shar' program but not the corresponding 'unshar' one. 2013-05-19 Stefano Lattarini texi: build version.texi and stamp-vti in srcdir Do so even when the 'info-in-builddir' option is present, or when the corresponding '*.info' files are listed in $(CLEANFILES) or in $(DISTCLEANFILES). This fixes failures in the following tests, when they are run with $MAKE pointing to FreeBSD make: - txinfo-nodist-info.sh - txinfo23.sh - txinfo24.sh - txinfo28.sh - txinfo25.sh BTW, notice that the test 'txinfo-builddir.sh' fails with FreeBSD make as well, but that is due to a known FreeBSD make VPATH issue (the same described in automake bug#7884). But that is not a regression, since the 'info-in-builddir' option will be new in Automake 1.14. Moreover, we already warn in the manual that the use of that option can indeed cause problems with VPATH builds done by non-GNU make. * bin/automake.in (handle_texinfo_helper): New local variable '$soutdir'. Use it instead of '$outdir' where appropriate (in particular, in the transform used on file 'texi-vers.am'. * t/txinfo-builddir.sh: Adjust to avoid spurious failures. 2013-05-19 Stefano Lattarini tests: fix a botched heading comment * t/parallel-tests-recheck-pr11791.sh: Here. 2013-05-19 Stefano Lattarini tests: fix another spurious with FreeBSD make * t/parallel-tests-recheck-pr11791.sh: Here. 2013-05-19 Stefano Lattarini tests: fix a spurious failure with FreeBSD make Failures due to known VPATH support issues in that make implementation (the same issues that have been causing the long-standing bug#7884). * t/lex-multiple.sh: Adjust. 2013-05-18 Stefano Lattarini Merge branch 'micro' into maint * micro: lisp: fix a failure with Solaris /usr/xpg4/bin/sh tests: sanitize 'unset' usages tests: fix some botched/outdated comments tests: use perl, not find+rm, to remove temporary directories 2013-05-18 Stefano Lattarini lisp: fix a failure with Solaris /usr/xpg4/bin/sh * lib/am/lisp.am (.el.elc): By initializing the 'am__dir' properly here. For most shells, the lacking initialization, while technically incorrect, didn't cause any issue in practice, because in those shells "test -d" returns an exit status of 0. But with /usr/xpg4/bin/sh, the shell complains like this: "test: argument expected", and returns a non-zero exit status. This caused testsuite failures in several lisp tests. Also, while we are at it, use more proper quoting in the recipe, to ensure a missing initialization to now be caught by more forgiving shells as well. * NEWS: Update. 2013-05-17 Stefano Lattarini tests: sanitize 'unset' usages In some shells (e.g., Solaris 10 /bin/ksh, or NetBSD 5.1 /bin/sh), "unset VAR" returns a non-zero exit status in case the VAR variable is already unset. This doesn't interact well with our usage of "set -e" in the testsuite. So far, we've avoided spurious failures by either explicitly ignoring the exit status from unset: unset VAR || : or explicitly ensuring that a variable is set, before trying to unset it: VAR=; unset VAR But we can do better, by aliasing the 'unset' command to a custom function that will take care of these details for us. This will avoid us annoying spurious failures in the future, failures that have already bitten us too much times. For an example, refer to commit 'v1.12.2-88-g5b1dae5' of 2012-08-05 (tests: avoid tons of spurious failures on NetBSD). * t/ax/test-lib.sh (_am_unset): New function. (unset): New alias to it. (_am_exit): Adjust comments. * t/ax/am-test-lib.sh: No need to temporary disable the 'errexit' shell flag when unsetting variables that are potentially already unset. (am_process_requirements): Adjust to remove a now-useless workaround related to unset. * t/aclocal-macrodir.tap: Likewise. * t/aclocal-macrodirs.tap: Likewise. * t/auxdir-autodetect.sh: Likewise. * t/ax/am-test-lib.sh: Likewise. * t/ax/test-lib.sh: Likewise. * t/check-tests-in-builddir.sh: Likewise. * t/dist-formats.tap: Likewise. * t/distcheck-configure-flags-am.sh: Likewise. * t/distcheck-configure-flags.sh: Likewise. * t/java-empty-classpath.sh: Likewise. * t/javaflags.sh: Likewise. * t/lflags.sh: Likewise. * t/lflags2.sh: Likewise. * t/lisp-flags.sh: Likewise. * t/lisp6.sh: Likewise. * t/missing-auxfile-stops-makefiles-creation.sh: Likewise. * t/parallel-am.sh: Likewise. * t/parallel-am2.sh: Likewise. * t/parallel-am3.sh: Likewise. * t/parallel-tests-log-override-recheck.sh: Likewise. * t/pkg-config-macros.sh: Likewise. * t/python-missing.sh: Likewise. * t/python-too-old.sh: Likewise. * t/python11.sh: Likewise. * t/self-check-dir.tap: Likewise. * t/self-check-report.sh: Likewise. * t/self-check-seq.tap: Likewise. * t/silent-configsite.sh: Likewise. * t/suffix6c.sh: Likewise. * t/tar-override.sh: Likewise. * t/tests-environment-and-log-compiler.sh: Likewise. * t/vala-configure.sh: Likewise. * t/werror3.sh: Likewise. * t/yflags-cmdline-override.sh: Likewise. * t/yflags.sh: Likewise. * t/yflags2.sh: Likewise. 2013-05-17 Stefano Lattarini tests: fix some botched/outdated comments * t/ax/test-defs.in: Here. Also, fix a couple of grammaros while at it. 2013-05-16 Stefano Lattarini tests: use perl, not find+rm, to remove temporary directories The File::Path::rmtree function from perl, if used right, is more reliable and more portable of our past idiom: find $dirs -type d ! -perm -700 -exec chmod u+rwx {} ';'; rm -rf $$dirs || exit 1 at least of the face of unreadable dirs/files and other similar permission issues (and we have those in our test directories). In fact, this change fixes some spurious failures seen in "make distcheck" on Solaris 10. * t/ax/deltree.pl: New. * Makefile.am (EXTRA_DIST): Add it. (clean-local-check): Use it. * t/ax/test-lib.sh (rm_rf_): Use it. 2013-05-16 Stefano Lattarini tests: remove remaining exec bits ('maint' branch) The executable bit gives the impression that the tests are directly runnable, as with "./t/foo.sh", but it has been a while since that was the case. Today, tests are runnable only through "make check" or "./runtest". This change is for the 'maint' branch (automake 1.13a), and is a follow-up to commit 'v1.13.2-3-g74017b5', done on the 'micro' branch (automake 1.13.2a). It will soon be followed by a similar patch for the 'master' branch (automake 1.99a). * t/am-prog-cc-c-o.sh: Remove executable bit. * t/ccnoco4.sh: Likewise. * t/dist-shar.sh: Likewise. * t/dist-tarZ.sh: Likewise. * t/lex-multiple.sh: Likewise. * t/preproc-basics.sh: Likewise. * t/preproc-c-compile.sh: Likewise. * t/preproc-demo.sh: Likewise. * t/preproc-errmsg.sh: Likewise. * t/rm-f-probe.sh: Likewise. * t/self-check-cc-no-c-o.sh: Likewise. * t/txinfo-builddir.sh: Likewise. * t/txinfo-nodist-info.sh: Likewise. 2013-05-16 Stefano Lattarini Merge branch 'micro' into maint * micro: tests: remove exec bit from all of them ('micro' branch) maint: tests no longer need to have executable bit set 2013-05-16 Stefano Lattarini tests: remove exec bit from all of them ('micro' branch) It gives the impression that they are directly runnable, as with "./t/foo.sh", but it has been a while since that was the case. Today, tests are runnable only through "make check" or "./runtest". This change is for the 'micro' branch (automake 1.13.2a). It will soon be followed by similar patches for the 'maint' branch (automake 1.13a) and the 'master' branch (automake 1.99a). * t/*.sh, t/*.tap: Remove executable bit. * maint.mk (sc_tests_executable): Remove. (syntax_check_rules): Adjust. * gen-testsuite-part: Set permissions of generated tests to '444' (-r--r--r--), rather than 555 (-r-xr-xr-x). 2013-05-16 Stefano Lattarini maint: tests no longer need to have executable bit set It has been a while since they are runnable only through "make check" or "./runtest", and not directly. * HACKING: Adjust. * t/README: Likewise, and updated the surrounding text to get rid of obsolete statements and advices. 2013-05-16 Stefano Lattarini PLANS: subdir-objects: various updates 2013-05-15 Stefano Lattarini Merge branch 'micro' into maint * micro: post-release: micro version bump (1.13.2a) release: stable micro release 1.13.2 vala tests: skip in a cross compiler setup HACKING: miscellaneous fixes, updates and enhancements NEWS: minor improvements to wording (about new versioning scheme) 2013-05-15 Stefano Lattarini post-release: micro version bump (1.13.2a) * configure.ac, m4/amversion.m4: Bump version: 1.13.2 -> 1.13.2a 2013-05-15 Stefano Lattarini release: stable micro release 1.13.2 * configure.ac (AC_INIT): Bump version number to 1.13.2. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2013-05-15 Stefano Lattarini vala tests: skip in a cross compiler setup The "vala + pkg-config" doesn't interact well with cross-compilation: That is causing annoying failures in our testsuite when it's run in cross-compilation mode. It's not worth trying too be overly smart and work around these problems; just skip the affected tests instead. * t/ax/am-test-lib.sh (require_tool): A new requirement 'valac', telling that the test needs to compile Vala-generated C files. In particular, this causes the test to be skipped when using a cross-compiler. 2013-05-15 Stefano Lattarini HACKING: miscellaneous fixes, updates and enhancements 2013-05-15 Stefano Lattarini NEWS: minor improvements to wording (about new versioning scheme) 2013-05-15 Stefano Lattarini THANKS: update Akim's e-mail address 2013-05-15 Stefano Lattarini tests: less uses of "make -e"; avoid spurious failures in 'check-cc-no-c-o' That is, when the testsuite is run using a fake C compiler that doesn't grasp the '-c' and '-o' options together. * t/instdir-prog.sh: Adjust. * t/instdir-ltlib.sh: Likewise. * t/python-virtualenv.sh: Likewise. 2013-05-14 Stefano Lattarini build: be more respectful of user-specified verbosity * t/Makefile.in (check-cc-no-c-o, check-no-trailing-backslash-in-recipes, installcheck-testsuite, perf): Here. 2013-05-14 Stefano Lattarini check-cc-no-c-o: unify initializations in a single place * t/ax/test-defs.in: That is, by setting CC and GNU_CC here, in accord with the value of the variable 'AM_TESTSUITE_SIMULATING_NO_CC_C_O'. * t/Makefile.in (check-cc-no-c-o) : No need to reset CC and GNU_CC any longer in the recursive "make check" invocation. 2013-05-14 Stefano Lattarini check-cc-no-c-o: avoid a spurious failure * t/am-prog-cc-c-o.sh: In this test, by relying on the knowledge that we are running under the aegis of the 'check-cc-no-c-o' maintainer-specific target, knowledge given us by ... * t/Makefile.in (check-cc-no-c-o) : ... the new environment variable 'AM_TESTSUITE_SIMULATING_NO_CC_C_O', set to a value of "yes" by this rule. * t/ax/test-defs.in: Initialize the new variable to "no" by default, and add an explanatory comment. 2013-05-14 Stefano Lattarini build: fixup for building in a VPATH setup * bin/Makefile.inc (%D%/automake, %D%/aclocal): Make sure that the directory where the targets scripts are going to be built exists, before trying to create said scripts. 2013-05-11 Nick Bowler (tiny change) Use AC_DEFUN_ONCE to define AM_PROG_CC_C_O If AM_PROG_CC_C_O is expanded multiple times, and the compiler does not support -c and -o together, each expansion of the macro will prepend the compile script to CC. This can result in the compile script invoking the compile script, which at best pointless and silly. Fortunately, there does not appear to be any serious problems as the first compile invocation strips out -o options, causing subsequent invocations of the script to merely exec their arguments. Other than fixing the above, this should not normally cause any changes to the resulting configure script, except in the (hopefully rare) case where AM_PROG_CC_C_O is directly expanded (i.e., *not* using AC_REQUIRE) in the body of a macro defined with AC_DEFUN. In that case, the use of AC_DEFUN_ONCE may cause the expansion of AM_PROG_CC_C_O to appear earlier in the configure script. * m4/minuso.m4: Change the definition of AM_PROG_CC_C_O to use AC_DEFUN_ONCE, avoiding problems caused by multiple expansions. 2013-05-11 Stefano Lattarini compile: avoid AC_PROG_CC messy rewrite Instead, add an hook to AC_OUTPUT to have AM_PROG_CC_C_O invoked automatically. See also the long-winded discussion about automake bug#13378. * m4/minuso.m4 (AM_PROG_CC_C_O): Bring back the old implementation, from commit v1.13.1-55-g1ab8fb6. * m4/init.m4 (AC_PROG_CC): Remove this horrible, hacky re-write. * (AM_INIT_AUTOMAKE): Arrange for AM_PROG_CC_C_O to be called if necessary. * t/am-prog-cc-c-o.sh: Adjust to avoid spurious failure. * t/subobj.sh: Likewise. Suggested-by: Nick Bowler 2013-05-11 Stefano Lattarini options: tiny simplification in dealing with incompatible versions * lib/Automake/Options.pm (_process_option_list): Here, when an incompatible version number option is detected, there's no need to call error() with the "uniq_scope => US_GLOBAL" switch. In fact, if the same incompatible version number is specified in AUTOMAKE_OPTIONS in both (say) 'Makefile.am' and 'sub/Makefile.am', we want each such erroneous usage reported separately, rather than just the first time it is encountered (as we'd expect to happen when "uniq_scope => US_GLOBAL" is used). Ideally, this change should have been folded into the similar commit 'v1.13.1d-129-gf7ef16f', but we noticed that too late. Oh well. 2013-05-11 Stefano Lattarini options: try to report as much errors as possible For example, if two invalid options are used in AUTOMAKE_OPTIONS, don't report just the first one, but both of them. * lib/Automake/Options.pm (_process_option_list): Do so by avoiding early returns in here. 2013-05-11 Stefano Lattarini Merge branch 'branch-1.13.2' into maint * branch-1.13.2: warns: don't tell AM_PROG_MKDIR_P is going to be removed 2013-05-10 Stefano Lattarini warns: don't tell AM_PROG_MKDIR_P is going to be removed That is no longer true. For a more extended rationale, see file 'PLANS/obsolete-removed/am-prog-mkdir-p.txt' in the maint branch (as of commit v1.13.1d-132-g90ec3fe). * automake.in (scan_autoconf_traces): So adjust the warning message here. 2013-05-10 Stefano Lattarini refactor: fix few "inverted boolean" usages In some subroutines, we used a return value of 0 to indicate success, and a return status of 1 to indicate failure. That was not very consistent with the perl interpretation of 0 as a false value and 1 as a true value. So we now invert the meaning of the exit statuses. * lib/Automake/Options.pm (_process_option_list): Here. (process_global_option_list, process_option_list): And by reflex, here as well. * bin/automake.in (handle_options): And here. (generate_makefile, scan_autoconf_traces): Adjust. 2013-05-10 Stefano Lattarini options: better name for an internal function * lib/Automake/Options.pm (_option_must_be_from_configure): Rename ... (_option_is_from_configure): ... like this. 2013-05-10 Stefano Lattarini options: more consistency in use of return statuses to report errors * lib/Automake/Options.pm (_option_must_be_from_configure): By giving a proper return status here. (_process_option_list): And using it here. 2013-05-10 Stefano Lattarini options: tiny simplification in dealing with erroneous opts * lib/Automake/Options.pm (_process_option_list): Here, when an invalid option is detected, there's no need to call &error with the "uniq_scope => US_GLOBAL" switch. In fact, if the same erroneous option is specified in AUTOMAKE_OPTIONS in both (say) 'Makefile.am' and 'sub/Makefile.am', we want each such erroneous usage reported separately, rather than just the first time it is encountered (as happens when "uniq_scope => US_GLOBAL" is used). 2013-05-10 Stefano Lattarini options: consistently use return statuses to report errors * lib/Automake/Options.pm (_process_option_list): Here. (process_option_list, process_global_option_list): Remove redundant use of 'return'. 2013-05-10 Stefano Lattarini options: re-enable some sanity checks They had been unwittingly disabled by a slightly incorrect code ordering. * lib/Automake/Options.pm (process_option_list): Here. (process_global_option_list): And here. 2013-05-10 Stefano Lattarini THANKS: update Eric Blake's e-mail address 2013-05-10 Stefano Lattarini NEWS: typofix Reported-by: Eric Blake 2013-05-10 Stefano Lattarini news: document new 'subdir-objects' warning * NEWS: Automake 1.14 will warn if a subdir source file is specified but the 'subdir-objects' option is not given. This is done to smooth the transition to Automake 2.0, which will unconditionally assume the behaviour now given only with the 'subdir-objects' option. 2013-05-10 Stefano Lattarini PLANS: one minor fixlet (mostly cosmetic) 2013-05-10 Stefano Lattarini PLANS: we have already dropped support for split info files in master 2013-05-10 Stefano Lattarini NEWS: fix a reference to Automake 1.14 where Automake 2.0 was intended 2013-05-10 Stefano Lattarini PLANS: fix reference to non-existent 'next' branch * PLANS/obsolete-removed/configure.in.txt: Here. We should refer to the 'master' branch instead. 2013-05-10 Stefano Lattarini PLANS: fix botched version reference * PLANS/rm-f-without-args.txt: Here. The probe checking that "rm -f" without arguments works will be introduced in Automake 1.14, not in Automake 1.13.2. 2013-05-10 Stefano Lattarini maintcheck: fix two references to old location of aclocal and automake * maintainer/syntax-checks.mk (sc_perl_at_substs): Here: it should refer to 'bin/automake' and 'bin/aclocal', not 'automake' and 'alocal'. 2013-05-10 Stefano Lattarini dist: deprecated shar and tar+compress formats See also discussion about automake wishlist bug#13324. * lib/Automake/Options.pm: Give proper warnings in the 'obsolete' category if the 'dist-shar' or 'dist-tarZ' options are used. * lib/distdir.am: When the 'dist-tarZ' or 'dist-shar' targets are invoked, make them give a non-fatal warning. * doc/automake.texi: Report the new deprecations. * t/dist-shar.sh: New test. * t/dist-tarZ.sh: Likewise. * t/lzma.sh: While at it, rename ... * t/dist-lzma.sh: ... like this, and tweak it to keep more in sync with the new tests. * t/dist-formats.tap: Remove references to deprecated formats. * t/list-of-tests.mk: Adjust. 2013-05-10 Stefano Lattarini Merge branch 'dog-feeding' into maint * dog-feeding: build: move automake and aclocal in 'bin' subdir build: break up monolithic Makefile.am in subdir-specific fragments 2013-05-10 Stefano Lattarini Merge branch 'branch-1.13.2' into maint * branch-1.13.2: automake: typofix in comments: s/AC_CONFIG_HEADER/AC_CONFIG_HEADERS/ 2013-05-10 Stefano Lattarini automake: typofix in comments: s/AC_CONFIG_HEADER/AC_CONFIG_HEADERS/ 2013-05-10 Stefano Lattarini am: prefer a shorter idiom where possible That is, prefer: test -f FILE || do_action over: if test ! -f FILE; then do_action; else :; fi * lib/am/remake-hdr.am (%CONFIG_H%): Here. 2013-05-10 Stefano Lattarini Merge branch 'branch-1.13.2' into maint * branch-1.13.2: cosmetics: fix few typos, grammaros and missing whitespace fixup: remove an obsolete comment docs: we still don't have the promised better Java interface 2013-05-10 Stefano Lattarini cosmetics: fix few typos, grammaros and missing whitespace * lib/am/*.am: In comments in some of these files. 2013-05-10 Stefano Lattarini fixup: remove an obsolete comment * lib/am/header-vars.am (am__make_running_with_option): Here. 2013-05-09 Stefano Lattarini docs: we still don't have the promised better Java interface Reported by Michael Zucchi: See also automake bug#9088. * doc/automake.texi (Java): Adjust and clarify. * THANKS: Update. Reported-by: Michael Zucchi 2013-05-09 Stefano Lattarini maint: re-run "make update-copyright" ... * t/lex-multiple.sh: ... which updates the copyright years of this test (they were somehow not bumped in the past). 2013-05-09 Stefano Lattarini tests: avoid spurious failure with older flex (2.5.4) That old version is unfortunately still relevant, being the one installed on NetBSD 5.1. * t/lex-multiple.sh: Use the '-o' option rather than the longer equivalent '--outfile'. The latter is not supported by older versions of flex (e.g., flex 2.5.4). 2013-05-09 Stefano Lattarini Merge branch 'branch-1.13.2' into maint * branch-1.13.2: announcement: cater to more flexible NEWS format 2013-05-09 Stefano Lattarini announcement: cater to more flexible NEWS format * maint.mk (announcement): Here, be prepared to handle the case in which the first section of the NEWS file is dedicated to report future backward-incompatibilities and/or other warnings. 2013-05-09 Stefano Lattarini build: move automake and aclocal in 'bin' subdir * automake.in: Rename ... * bin/automake.in: ... like this. * aclocal.in: Rename ... * bin/aclocal.in: ... like this. * Makefile.am: Move parts that dealt with the building/distribution of aclocal and Automake .. * bin/Makefile.inc): ... in this new included fragment. Adjust as needed, and make deliberate use of the '%D%' substitution. * lib/gen-perl-protos: Move ... * bin/gen-perl-protos: ... here. * bootstrap.sh, configure.ac, maintainer/rename-tests, t/wrap/aclocal.in, t/wrap/automake.in, doc/Makefile.inc, t/ax/tap-setup.sh, .gitignore: Adjust. * maintainer/syntax-checks.mk: Likewise, and enhance a little. 2013-05-09 Stefano Lattarini 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. 2013-05-05 Stefano Lattarini maint branch: we are going to become Automake 1.14 * configure.ac (AC_INIT): So adjust beta version in here, from 1.13.2a to 1.13a. * m4/amversion.m4: Regenerate. 2013-05-05 Stefano Lattarini Merge branch 'branch-1.13.2' into maint * branch-1.13.2: maint: version bump after beta release 1.13.1d release: beta release 1.13.1d (will become 1.13.2) NEWS: document more robust handling/recognition of make options 2013-05-05 Stefano Lattarini maint: version bump after beta release 1.13.1d * configure.ac (AC_INIT): Bump version number to 1.13.1e. * m4/amversion.m4: Likewise (autoupdated by "make bootstrap"). 2013-05-04 Stefano Lattarini release: beta release 1.13.1d (will become 1.13.2) * configure.ac (AC_INIT): Bump version number to 1.13.1d. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2013-05-04 Stefano Lattarini NEWS: document more robust handling/recognition of make options 2013-05-04 Stefano Lattarini tests: typofixes in comments in t/preproc-c-compile.sh 2013-05-04 Stefano Lattarini tests: remove bashism from a test * t/preproc-c-compile.sh (Makefile.am): Use "test foo = bar", not the bash-specific "test foo == bar". 2013-05-04 Stefano Lattarini Merge branch 'branch-1.13.2' into maint * branch-1.13.2: maint: targets and recipes to simplify testing on real-world packages build: preparatory refactoring build: tiny reduction in code duplication make flags analysis: handle more options with args make flags analysis: use simpler variable names make flags analysis: whitespace changes make flags analysis: embed in a subshell make flags analysis: be more robust make flags analysis: cater to GNU make 3.83 (still unreleased as of now) tests: expose weaknesses in make flags analysis tests: improve debugging output in checks on make flags analysis make flags analysis: refactor, to reduce code duplication tests: avoid one tricky use of "make -e" tests: avoid a spurious error with Solaris make subdirs: don't return false positives for the '-k' option's presence header-vars: recognize more make flags ('-k' in particular) header-vars: simplify how make flags are determined tests: remove dead code from t/make-dryrun.tap header-vars: new variable $(am__running_with_option) tests: expose bug#12554 (false positives for presence of '-k' make option) 2013-05-04 Stefano Lattarini Merge 'better-makeflags-recognition' and 'testing-work' into branch-1.13.2 * better-makeflags-recognition: make flags analysis: handle more options with args make flags analysis: use simpler variable names make flags analysis: whitespace changes make flags analysis: embed in a subshell make flags analysis: be more robust make flags analysis: cater to GNU make 3.83 (still unreleased as of now) tests: expose weaknesses in make flags analysis tests: improve debugging output in checks on make flags analysis make flags analysis: refactor, to reduce code duplication * testing-work: maint: targets and recipes to simplify testing on real-world packages build: preparatory refactoring build: tiny reduction in code duplication 2013-05-04 Stefano Lattarini maint: targets and recipes to simplify testing on real-world packages We introduce a new section in the maintainer-specific makefile that contains recipes to test the build system of some well-known GNU packages with the current development version of Automake. Not the cleanest way to do so, but good enough for the moment. We'll revisit the matter after the 1.13.2 release (which we now hope will happen soon). * maint.mk (git-sv-host): New. (SV_GIT_CF, SV_GIT_AC, SV_GIT_GL): Use it to reduce code duplication. (ALL_PACKAGES, FEW_PACKAGES): New, lists of GNU packages to try out. (ttp-check, ttp-check-all): New targets, do the checking with said packages. (ttp): New, alias for 'ttp-check'. (ttp-all): New, alias for 'ttp-check-all'. 2013-05-03 Stefano Lattarini build: preparatory refactoring No semantic change intended. This change will be required by a later patch. * Makefile.am (setup_autotools_paths): New. ($(srcdir)/doc/amhello-1.0.tar.gz): Use it. 2013-05-03 Stefano Lattarini build: tiny reduction in code duplication The code was only duplicated two times, but we are soon going to need a third occurrence, and that would be one to much. * Makefile.am (extend_path): New. (update_mans): Use it instead of copying & pasting its contents. ($(srcdir)/doc/amhello-1.0.tar.gz): Likewise, and minor related adjustments. 2013-05-03 Stefano Lattarini make flags analysis: handle more options with args That is, not only -I, but also -O (for upcoming GNU make 3.83), -l (GNU make), -d, -E, -D, -m (BSD make), -J, -T (NetBSD make). * lib/am/header-vars.am (am__make_running_with_option): Extend and adjust, both code and comments. 2013-05-03 Stefano Lattarini make flags analysis: use simpler variable names * lib/am/header-vars.am (am__make_running_with_option): Here. Now that we expect to be run in a subshell, we don't have to worry about being namespace-safe. And '$foo' is much more pleasant to read than '$am__foo' -- and pleasant code tends to be more correct. (am__make_dryrun, am__make_keepgoing): Adjust. 2013-05-03 Stefano Lattarini make flags analysis: whitespace changes * lib/am/header-vars.am (am__make_running_with_option): Here. No semantic change is intended. 2013-05-03 Stefano Lattarini make flags analysis: embed in a subshell So that we won't have to worry about leaking temporary variables, and similar stuff. * lib/am/header-vars.am (am__make_dryrun, am__make_keepgoing): Here. (am__make_running_with_option): Minor adjustments. 2013-05-02 Stefano Lattarini make flags analysis: be more robust In particular, catering to option-with-argument bundled together with options-without-arguments, as in: # With GNU make 3.82: $ make -f- <<<'all:; echo "$$MFLAGS"' -s -k -I none -skiI none # With development version of GNU make (Git commit b5ea49b): $ make -f- <<<'all:; @echo "$$MFLAGS"' -I none -skiI none This fixes some lingering failures in the testsuite; precisely, in tests 'make-dryrun.tap' and 'make-keepgoing.tap'. * t/header-vars.am (am__make_running_with_option): Enhance. 2013-05-02 Stefano Lattarini make flags analysis: cater to GNU make 3.83 (still unreleased as of now) The current development version of GNU make (that is planned to become GNU make 3.83, sooner or later) has changed the format its $(MFLAGS) variable slightly, removing the space between an option and its argument: # With GNU make 3.82, compiled from official tarball: $ make -f- <<<'all:; @echo "$$MFLAGS"' -I none -I none # With development version of GNU make (Git commit b5ea49b): $ make -f- <<<'all:; @echo "$$MFLAGS"' -I none -Inone This was done on purpose, in order to support more easily the new option '-O', which takes an optional argument; see: So Just adapt to the new format as well. * t/header-vars.am (am__make_running_with_option): Adjust to cater to the new GNU make behaviour. 2013-05-02 Stefano Lattarini tests: expose weaknesses in make flags analysis This introduces some failures in the testsuite, that will be fixed soon enough by follow-up patches. * t/make-dryrun.tap: Enhance and extend. * t/make-keepgoing.tap: Likewise. 2013-05-02 Stefano Lattarini tests: improve debugging output in checks on make flags analysis * t/make-dryrun.tap: Here. * t/make-keepgoing.tap: And here. 2013-05-01 Stefano Lattarini make flags analysis: refactor, to reduce code duplication And make it a little more reliable. * t/header-vars.am (am__make_running_with_option): Here. 2013-05-01 Stefano Lattarini tests: avoid one tricky use of "make -e" Which was causing a spurious failure on FreeBSD. Not particularly surprising, given how brittle "make -e" is in general ... * t/cxx-lt-demo.sh: Instead of forcing $(CC) to be 'false' by exporting "CC=false" in the environment and then passing the '-e' option to make, do so by passing "CC=false" on the make command line, both directly and using AM_MAKEFLAGS. 2013-04-30 Stefano Lattarini Merge branch 'fix-pr12554' into branch-1.13.2 * fix-pr12554: tests: avoid a spurious error with Solaris make subdirs: don't return false positives for the '-k' option's presence header-vars: recognize more make flags ('-k' in particular) header-vars: simplify how make flags are determined tests: remove dead code from t/make-dryrun.tap header-vars: new variable $(am__running_with_option) tests: expose bug#12554 (false positives for presence of '-k' make option) 2013-04-30 Stefano Lattarini Merge branch 'branch-1.13.2' into maint * branch-1.13.2: cosmetics: remove few trailing whitespace occurrences typofix: in NEWS (extra whitespace) 2013-04-30 Stefano Lattarini cosmetics: remove few trailing whitespace occurrences 2013-04-30 Stefano Lattarini typofix: in NEWS (extra whitespace) 2013-04-30 Stefano Lattarini Merge branch 'branch-1.13.2' into maint * branch-1.13.2: sync: update files from upstream with "make fetch" maintcheck: remove outdated whitelisting tar: format 'ustar' cannot support UID/GID longer than 21 bits 2013-04-30 Stefano Lattarini Merge branch 'fix-pr13588-pax-hangs' into branch-1.13.2 * fix-pr13588-pax-hangs: tar: format 'ustar' cannot support UID/GID longer than 21 bits 2013-04-29 Stefano Lattarini tests: avoid a spurious error with Solaris make * t/make-keepgoing.tap (Makefile.am): Here. 2013-04-29 Stefano Lattarini subdirs: don't return false positives for the '-k' option's presence This change fixes automake bug#12554. The old implementation of the code descending into $(SUBDIRS) entries used the following snippet to decide whether make is running with the '-k' a.k.a. '--keep-going' option, and thus whether a failure in a subdirectory should prevent the descent in the following ones: fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done It's clear that the second pattern in the 'case' construct could possibly match false positives, for examples in these two cases: make check TESTS="x.test k.test" make -I /usr/local/kool-fragments which are somewhat unusual, but not invalid. So we need a more resilient implementation, as we did for the detection of the '-n' flag. This implementation is now provided by the new private macro '$(am__make_keepgoing)' (introduced in recent commits); so we can just us that to fix the bug. * lib/am/subdirs.am ($(am__recursive_targets)): Use '$(am__make_keepgoing)' instead of ad-hoc and more brittle checks. * t/list-of-tests.mk (XFAIL_TESTS): Remove the now-passing test case 't/subdir-keep-going-pr12554.sh'. Reported-by: Michael Daniels 2013-04-29 Stefano Lattarini header-vars: recognize more make flags ('-k' in particular) * lib/am/header-vars.am (am__running_with_option): Here. Few improvements to comments, while at it. (am__make_keepgoing): New, tell whther make is being runt with the '-k' option. * t/make-keepgoing.tap: New test. * t/list-of-tests.mk: Add it. * t/make-dryrun.tap: Minor edits to keep it more in sync with the new test. 2013-04-29 Stefano Lattarini sync: update files from upstream with "make fetch" * lib/config.guess: Likewise. * lib/config.sub: Likewise. 2013-04-29 Stefano Lattarini maintcheck: remove outdated whitelisting * syntax-checks.mk (sc_tests_overriding_macros_on_cmdline): Here. The test 'make-dryrun.sh' has been since long rewritten as the TAP test 'make-dryrun.tap', and no longer spuriously triggers this maintainer check. 2013-04-29 Stefano Lattarini header-vars: simplify how make flags are determined Actually, son far only the '-n' option ("dry mode") was detected, but this change will allow us to soon detect more options. * lib/am/header-vars.am (am__running_with_option): Even when $MAKEFLAGS appears to contain definition of variables with embedded whitespace, use simple textual pre-processing over $MAKEFLAGS rather than tricky recursive invocations of make to determine whether the '-n' option was given. This is enough to correctly handle all the tricky usages covered in the testsuite. * t/nodep.sh: Adjust to avoid a spurious failure. 2013-04-29 Stefano Lattarini tests: remove dead code from t/make-dryrun.tap 2013-04-29 Stefano Lattarini header-vars: new variable $(am__running_with_option) This is a preparatory refactoring, needed by later patches. No semantic change is intended. * lib/am/header-vars.am (am__running_with_option): New, contains shell code that determines whether the current make instance is running with a given one-letter option (e.g., -k, -n) that takes no argument. Actually, the only supported option at the moment is '-n' (support for '-k' will be added soon). (am__make_dryrun): Rewrite as a thin wrapper around '$(am__make_running_with_option)'. 2013-04-29 Stefano Lattarini tests: expose bug#12554 (false positives for presence of '-k' make option) The current implementation of the code descending into $(SUBDIRS) entries uses the following snippet to decide whether make is running with the '-k' a.k.a. '--keep-going' option, and thus whether a failure in a subdirectory should prevent the descent in the following ones: fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done It's clear that the second pattern in the 'case' construct can possibly match false positives, for examples in these two cases: make check TESTS="x.test k.test" make -I /usr/local/kool-fragments which are somewhat unusual, but not invalid. So we need a more resilient implementation, as we did for the detection of the '-n' flag. But alas, such an implementation seems quite tricky to obtain in portable make. So for the moment we content ourselves with exposing the bug, with the hope of being able to fix soon enough. * t/subdir-keep-going-pr12554.sh: New test. * t/list-of-tests.mk (handwritten_TESTS, XFAIL_TESTS): Add it. * THANKS: Update Reported-by: Michael Daniels 2013-04-28 Stefano Lattarini tar: format 'ustar' cannot support UID/GID longer than 21 bits See automake bug#8343 and bug#13588. POSIX 1988 'ustar' format is defined with *fixed-size* fields. There is notably a 21 bits limit (2097151) for the UID and the GID. Tom Rini tom_rini@mentor.com says (in bug#8343): When the user has a UID or GID that is larger than the ustar format supports, pax does not error out gracefully in some cases (FC13). Marc Herbert adds (in bug#8343): When "configure" is run by a user with an UID bigger than 21 bits, BSD pax 3.4 aborts when trying to create the 'conftest.tar' test archive and leaves an empty or corrupted conftest.tar file behind. In the next step, pax tries to extract this incomplete or corrupted archive and this *** hangs the whole ./configure script ***. Note: GNU cpio 2.9 pretends to pass the test but it is a LIE: it silently truncates any big UID to its lower 21 bits. I don't know what can be the consequences of this lie. I think there is currently a design issue in automake/m4/tar.m4 considering that a ustar archive should should *never* succeed when ./configure is run from a big user ID. Months later, Petr Hracek reports a similar issue (in bug#13588) for Fedora 17: I am trying to solve problem in case a user is created with big UID and during configuration pax hangs with message ATTENTION! pax archive volume change required. Ready for archive volume: 1 Input archive name or "." to quit pax. Archive name > and needs user interaction. Reference: Time to fix this issue, on the line of a preliminary patch provided by Petr Hracek in bug#13588. The final patch ended up being remarkably different from that original proposition, though. * m4/tar.m4 (_AM_PROG_TAR): If the UID or GID of the current user is too high (> 2097151), the 'ustar' format cannot work. Adjust checks accordingly. Some related code reordering and clean-up. * t/tar-ustar-id-too-high.sh: New test. * t/list-of-tests.mk: Add it. * t/tar.sh: While at it, tweak and enhance a little. * t/tar2.sh: Likewise. * t/tar3.sh: Likewise. * t/tar-override.sh: Likewise. * NEWS: Update. * THANKS: Likewise. Helped-by: Pavel Raiskup Helped-by: Petr Hracek Helped-by: Marc Herbert Helped-by: Tom Rini 2013-04-26 Stefano Lattarini Merge branch 'branch-1.13.2' into maint * branch-1.13.2: docs: issues with configure substitutions in TESTS tests: avoid possible autotools caching issues (automake bug#13832) docs: add myself and Ralf Wildenhues as authors authors: add myself dry-run: don't get confused by '-I' option tests: avoid a spurious failure with the Korn Shell dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS) header vars: can determine whether we are running under GNU make NEWS: improve wording for automake bug#13514 fix NEWS: document fix for automake bug#13514 2013-04-26 Stefano Lattarini Merge few bug-fixing branches into branch-1.13.2 * fix-part-pr13832: tests: avoid possible autotools caching issues (automake bug#13832) * fix-pr13760: dry-run: don't get confused by '-I' option dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS) header vars: can determine whether we are running under GNU make * fix-doc-pr14019: docs: issues with configure substitutions in TESTS * news-wording-improve: NEWS: improve wording for automake bug#13514 fix 2013-04-26 Stefano Lattarini docs: issues with configure substitutions in TESTS Motivated by automake bug#14019. * doc/automake.texi: Currently, when the parallel test harness is in use, configure substitutions in TESTS definitions can only work if they expand to tests that ends with a suffix listed in TEST_EXTENSIONS. Document this limitation. 2013-04-26 Stefano Lattarini tests: avoid possible autotools caching issues (automake bug#13832) * t/ar-lib4.sh: Here, by removing the autom4te cache before editing configure.ac and re-running the autotools. 2013-04-25 Stefano Lattarini tests: rename some with more descriptive names * t/tar3.sh: Rename ... * t/tar-opts-errors.sh: ... like this. * t/tar2.sh: Rename... * t/tar-pax.sh: ... like this. * t/tar.sh: Rename ... * t/tar-ustar.sh: ... like this. * t/list-of-tests.mk: Adjust. 2013-04-25 Stefano Lattarini docs: add myself and Ralf Wildenhues as authors * doc/automake.texi: Here. 2013-04-25 Stefano Lattarini authors: add myself 2013-04-23 Stefano Lattarini dry-run: don't get confused by '-I' option Fixes automake bug#13760 for non-GNU make implementations that still support the option '-I'. So far, the only such make implementation are FreeBSD (8.x) make and NetBSD (5.x) make. * lib/am/header-vars.am (am__make_dryrun): If a non-GNU make is being used, try to handle the '-I' option in $MAKEFLAGS correctly. For GNU make, that is already done by the proper use of the $MFLAGS variable. 2013-04-22 Stefano Lattarini tests: avoid a spurious failure with the Korn Shell * t/list-flags.sh: Ensure the EMACS variable is set before unsetting it. 2013-04-22 Stefano Lattarini dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS) Fixes automake bug#13760 for GNU make. * lib/am/header-vars.am (am__make_dryrun): If GNU make is being used, rely on the contents of the $(MFLAGS) variable rather than of the $(MAKEFLAGS) to decide whther make is being executed in "dry run" mode. Not only this makes the code possibly faster and less brittle, but also fixes automake bug#13760 (at least when GNU make is in use). * t/make-dryrun.tap: Adjust: some tests that were xfailing now pass. 2013-04-22 Stefano Lattarini header vars: can determine whether we are running under GNU make This is mostly a preparatory patch in view of future changes. * lib/am/header-vars.am (am__is_gnu_make): New, contains shell code that determines whether we are running under GNU make. * t/make-is-gnu.sh: New test. * t/list-of-tests.mk: Add it. 2013-04-22 Stefano Lattarini NEWS: improve wording for automake bug#13514 fix Helped-by: Jack Kelly 2013-04-21 Stefano Lattarini NEWS: document fix for automake bug#13514 It was fixed by commit v1.13.1b-5-g7a3d7ce. 2013-04-20 Stefano Lattarini Merge branch 'branch-1.13.2' into maint * branch-1.13.2: INSTALL: regen sync: update files from upstream with "make fetch" tests: tweaks and minimal improvements to t/insthook.sh 2013-04-20 Stefano Lattarini INSTALL: regen 2013-04-20 Stefano Lattarini sync: update files from upstream with "make fetch" * lib/INSTALL: Update. * lib/config.guess: Likewise. * lib/config.sub: Likewise. * lib/gendocs.sh: Likewise. * lib/gendocs_template: Likewise. * lib/gitlog-to-changelog: Likewise. * lib/gnupload: Likewise. * lib/texinfo.tex: Likewise. * lib/update-copyright: Likewise. 2013-04-20 Stefano Lattarini tests: tweaks and minimal improvements to t/insthook.sh 2013-04-20 Stefano Lattarini typofix: in comments in t/extra2.sh 2013-04-20 Stefano Lattarini tests: fix botched cross-reference in a heading comment * t/extra-dist-wildcards.sh: Here. 2013-04-19 Stefano Lattarini automake: refactoring: factor out common cpp-like flags * automake.in (@cpplike_flags): In this new variable... (C, C++, Objective C, Objective C++, Unified Parallel C, Preprocessed Assembler, Preprocessed Fortran, Preprocessed Fortran 77): ... to be used by registration (with the 'register_language' subroutine) of these languages. This is a refactoring meant to simplify future changes; no semantic change is intended. 2013-04-19 Stefano Lattarini NEWS (mint): reflect new Automake versioning scheme The next minor Automake version will be 1.14, and *not* 1.13.2 -- that will be the next bug-fixing version. 2013-04-19 Stefano Lattarini Merge branch 'branch-1.13.2' into maint * branch-1.13.2: Add missing '$' for variable expansion in depout.m4 fixup: one stray reference to older versioning scheme 2013-04-19 Gavin Smith (tiny change) Add missing '$' for variable expansion in depout.m4 * m4/depout.m4: "am__include" appeared where "$am__include" was meant. Reference: 2013-04-19 Stefano Lattarini Merge branch 'preproc' into maint * preproc: maintcheck: avoid spurious failure 2013-04-19 Stefano Lattarini maintcheck: avoid spurious failure * t/preproc-errmsg.sh: Here, breaking up a sed command to avoid spuriously triggering a failure in the 'sc_tests_logs_duplicate_prefixes' maintainer check. 2013-04-19 Stefano Lattarini Merge branch 'no-perl-protos' into maint * no-perl-protos: perl: perl subroutine prototypes are problematic, don't use them 2013-04-19 Stefano Lattarini perl: perl subroutine prototypes are problematic, don't use them Basically, in perl, "subroutine prototypes" are not prototypes at all; rather, they are a trick to allow user-defined subroutines that behave like perl built-in functions. For example, prototyped subroutines can be called without parentheses, and can impose context on their arguments. Such semantics can be useful in some selected situations, but might also easily cause unexpected and harmful behaviours and side effects if we try to use perl prototypes as we would use C prototypes. See the excellent article "Far More than Everything You've Ever Wanted to Know about Prototypes in Perl" by Tom Christiansen for more detailed information: It is important to note that modern perl allows a non-predeclared subroutine to be called without the '&' character, as long as its call uses proper parentheses: foo 'str', 2; # will trigger errors if foo is not predeclared foo('str', 2); # ok even if foo is not predeclared &foo('str', 2); # ditto; but the '&' is old-style and redundant Note also that the prototype indicating "no argument": sub func() { ... } can actually be useful, and has no discernible downsides, so we'll keep using it where it makes sense. Also, in few, selected cases, we *want* to have subroutines behave like perl builtins (e.g., we want the 'append_exeext' function to be able to take a code block as first argument). In such cases, we will of course continue to make use of perl subroutine prototypes. Let's finally see an example that might clarify the kind of problems the use of subroutine prototypes in perl can cause. This is just scratching the surface; there are several other aspects, typically subtler and more dangerous, that are not touched here. If you have the prototyped subroutine definition: sub foo ($@) { my $s = shift; print "SCALAR: $s\n"; print "ARRAY: @_\n"; } and call 'foo' in code like: @list = (-1, 0, 1); foo(@list); you won't get a compile-time nor a runtime error (as a naive interpretation of the "prototype" characterization would let you think). Rather, the prototype will cause the array '@list' will be coerced into scalar context before being passed too 'foo', which means that its *length* (3) will be passed to 'foo' as first argument; and since no further arguments are present after '@list', that *void* will be coerced to an empty list before being passed to 'foo'. So code above will have the result of printing: SCALAR: 3 ARRAY: Quite tricky, and definitely a behaviour we don't want to rely on. * automake.in: Delete most subroutine prototypes. Fix few of the remaining ones. Related minor simplifications and adjustments. * lib/gen-perl-protos: Adjust. 2013-03-05 Stefano Lattarini Merge branch 'preproc' into maint * preproc: preproc: enhance and extend tests preproc: add support for relative names in included fragments 2013-02-21 Stefano Lattarini fixup: one stray reference to older versioning scheme * lib/Automake/Options.pm: Here, in a FIXME comment: reference "Automake 3.0" rather than "Automake 1.15". 2013-02-21 Stefano Lattarini Merge branch 'branch-1.13.2' into maint * branch-1.13.2: aclocal: fix for more-than-once specified directories aclocal: just warn if the primary local m4 dir doesn't exist (don't error) 2013-02-21 Stefano Lattarini maint: more adjustments to the new versioning scheme This is a follow-up to commit 'v1.13.1b-11-g97aaf12'. * automake.in: Adjust a comment. * PLANS: Adjust several files in here. 2013-02-21 Stefano Lattarini Merge branch 'fix-pr13514' into branch-1.13.2 * fix-pr13514: aclocal: fix for more-than-once specified directories aclocal: just warn if the primary local m4 dir doesn't exist (don't error) 2013-02-21 Pavel Raiskup aclocal: fix for more-than-once specified directories Related to automake bug#13514. Do not consider directories for extra m4 files multiple times in 'aclocal'. Doing so caused problems on older packages that specify configure.ac: AC_CONFIG_MACRO_DIRS([m4]) Makefile.am: ACLOCAL_AMFLAGS = -I m4 if the 'm4' directory does not exist when aclocal is called the first time by autoreconf. See: * aclocal.in (scan_m4_files): Remove duplicates in @user_includes. * t/aclocal-macrodir.tap: Extend. * t/aclocal-macrodirs.tap: Likewise. 2013-02-20 Stefano Lattarini Merge branch 'docstrings-tweaks' into maint * docstrings-tweaks: cosmetics: fix some "docstring-like" comments in automake 2013-02-20 Stefano Lattarini Merge branch 'branch-1.13.2' into maint * branch-1.13.2: coverage: expose automake bug#13760 tests: refactor/enhance tests about make dry-run mode maint: describe new versioning and branching scheme, and adjust to it 2013-02-20 Stefano Lattarini Merge branch 'new-versioning-scheme' into branch-1.13.2 * new-versioning-scheme: maint: describe new versioning and branching scheme, and adjust to it 2013-02-20 Pavel Raiskup aclocal: just warn if the primary local m4 dir doesn't exist (don't error) Related to automake bug#13514. Every package which does not need to have the local m4 macro directory pre-existing in the version control system (because e.g., it does not have nor need any private m4 macros) would fail during the "autoreconf -vfi" phase if AC_CONFIG_MACRO_DIRS([m4]) is specified in configure.ac (it could be to instruct tools like 'autopoint' and 'libtoolize' to use 'm4' as the local directory where to install definitions of their m4 macros, and to instruct aclocal to look into it). The failure would go like this: autoreconf: Entering directory `.' autoreconf: running: aclocal --force aclocal: error: couldn't open directory 'm4': No such file or directory autoreconf: aclocal failed with exit status: 1 The problem is that when 'aclocal' is run for the first time during 'autoreconf', the directory 'm4' does not exist yet. It will be created by e.g., 'libtoolize' or 'autopoint' later on. During the second 'aclocal' run, the 'm4' directory exists and aclocal does not complain. To work around this issue, we degrade the error to a simple warning. The warning is still quite useful when aclocal is run by hand - so we are not removing completely. See also: * aclocal.in (SCAN_M4_DIRS_SILENT, SCAN_M4_DIRS_WARN) (SCAN_M4_DIRS_ERROR): New constants. (scan_m4_dirs): Change the second parameter name to $ERR_LEVEL to better reflect new semantic. Use new constants. (scan_m4_files): Adjust to reflect the new 'scan_m4_dirs' semantics. * t/aclocal-macrodir.tap: Adjust. * t/aclocal-macrodirs.tap: Likewise. * THANKS: Update. * NEWS: Likewise. Suggested-by: Ben Pfaff 2013-02-20 Stefano Lattarini coverage: expose automake bug#13760 * t/make-dryrun.tap: Here. * THANKS: Update with the name of the bug reporter. 2013-02-20 Stefano Lattarini tests: refactor/enhance tests about make dry-run mode * t/make-dryrun.tap: Here. 2013-02-17 Stefano Lattarini maint: describe new versioning and branching scheme, and adjust to it See discussion about automake bug#13578 for more details and background. Basically, for the versioning scheme: - micro versions only for bug and regression fixing; - minor versions for new backward-compatible features, and new non-fatal deprecations; - major versions for backward-incompatibilities, complex new features, and major refactoring. And for the git branching scheme: + branch 'next' is for the upcoming major version; + branch 'master' is now for the upcoming minor version; + branch 'maint' is for the upcoming micro (bug-fixing) version; + the merging hierarchy is: 'maint' -> 'master' -> 'next'. * HACKING (Automake versioning and compatibility scheme): New. (Working with git): Adjust. * NEWS: Update and fix. * aclocal.in: Adjust some "FIXME" messages. * automake.in: Likewise. * m4/mkdirp.m4: Likewise. * t/aclocal-acdir.sh: Likewise. * t/aclocal-macrodir.tap: Likewise. * t/aclocal-macrodirs.tap: Likewise. * lib/Automake/Options.pm: Likewise. * m4/internal/ac-config-macro-dirs.m4: Likewise. 2013-02-17 Stefano Lattarini cosmetics: fix some "docstring-like" comments in automake * automake.in: Here. And remove some redundant ones. 2013-02-16 Stefano Lattarini Merge branch 'perl-sub-protos' into maint * perl-sub-protos: style: call perl functions 'like_this()', not '&like_this()' maint: use more perl subroutines prototypes in the automake script build: auto-generate perl subroutines prototypes for automake and aclocal refactor: rip module Automake::Language out of automake script 2013-02-15 Stefano Lattarini Merge branch 'branch-1.13.2' into maint * branch-1.13.2: typofix: in comments in 't/ax/test-lib.sh' tests on TAP: don't run the driver with perl unconditionally typofix: in comments in 'automake.in' tests: remove obsolete (and now wrong) comment typofix: in diagnostic in test 't/tap-realtime.sh' automake: fix reference to relevant tests in comments NEWS: we no longer plan to drop $(INCLUDES) support in next major version 2013-02-15 Stefano Lattarini typofix: in comments in 't/ax/test-lib.sh' 2013-02-14 Stefano Lattarini style: call perl functions 'like_this()', not '&like_this()' We can do so now that our build rules auto-generate a list of prototypes for all functions ins our scripts. * automake.in: Adjust throughout. * HACKING: Adjust advises. 2013-02-14 Stefano Lattarini preproc: enhance and extend tests * t/preproc-demo.sh: New test, a "demo" of how the new pre-processing feature could be used in a real-world package. * t/preproc-errmsg.sh: New test, check that error messages remain useful when the new pre-processing features are involved. * t/preproc-reldir.sh: Split up ... * t/preproc-basics.sh, t/preproc-c-compile.sh: ... into these two tests, with some refactorings, clean-up and enhancements. * t/list-of-tests.mk: Adjust. 2013-02-14 Peter Rosin Stefano Lattarini preproc: add support for relative names in included fragments The rationale for this change is that it is annoying to have to repeat the directory name when including a Makefile fragment. For deep directory structures these repeats can generate a lot of bloat. It also hinders reuse and easy directory restructuring if all Makefile fragments have to know exactly where they live. Suggested by Bob Friesenhahn, and later discussed in bug#13524. In the course of discussion, the following notations were rejected: &{reldir}& - to hard to type, {reldir} - interferes with ${reldir}, {am_reldir} - short form {D} interferes with ${D}, @am_reldir@ - short form @D@ interferes with AC_SUBST([D]) as well as invading the config.status turf. Other notations were also suggested... * automake.in (read_am_file): Add third argument specifying the relative directory of this Makefile fragment compared to the main Makefile. Replace %reldir% and %canon_reldir% in the fragment with this relative directory (with slashes etc, or canonicalized). (read_main_am_file): Adjust. * t/preproc-reldir.sh: New test. * t/list-of-tests.mk: Augment. * doc/automake.texi (Include): Document the new feature. NEWS: Add new feature. 2013-02-14 Stefano Lattarini tests on TAP: don't run the driver with perl unconditionally * t/ax/tap-setup.sh: When a 'Makefile.am' was pre-existent in the test directory at the moment the client test script sourced this file, said 'Makefile.am' was tweaked to provide it with a proper definition of TEST_LOG_DRIVER. However, there was an error in this automatic definition, since it caused the TAP test driver to be unconditionally invoked with perl. This wasn't an issue in most situations, since perl is smart enough to re-execute a given script with the proper interpreter if it sees a she-bang line that doesn't seem to point to perl itself. Still, there is no reason to do something blatantly wrong even if our tools correct the dumb mistake for us. So fix the TEST_LOG_DRIVER definition. 2013-02-14 Stefano Lattarini typofix: in comments in 'automake.in' 2013-02-14 Stefano Lattarini tests: remove obsolete (and now wrong) comment * t/ax/am-test-lib.sh: Here. 2013-02-14 Stefano Lattarini typofix: in diagnostic in test 't/tap-realtime.sh' 2013-02-13 Stefano Lattarini maint: use more perl subroutines prototypes in the automake script * automake.in: Throughout this file. Note that these new prototypes are not much useful, since many subroutine calls still use the old '&foo' form; but we'll take care of that in later patches. * lib/Automake/Language.pm (target_hook): Call the '_target_hook' of the given language in a more modern form, avoiding '&'. 2013-02-13 Stefano Lattarini build: auto-generate perl subroutines prototypes for automake and aclocal This will allow us to avoid either using the '&foo' invocation form when invoking a subroutine before its definition, or having to maintain the list of prototypes by hand (with the risk of having it become incomplete or fall out-of-sync when future edits to the automake and aclocal scripts are done). * Makefile.am (automake, aclocal): Automatically generate a list of prototypes by looking at the subroutines definitions. * bootstrap.sh: Likewise, when generating the temporary automake and aclocal scripts used for bootstrapping. * automake.in: Add a placeholder that will be tracked by the new recipes and substituted with the computed prototypes. Remove existing prototypes, that are now superfluous. Some adjustments required by the new, more comprehensive prototypes declarations. * aclocal.in: Likewise. * maintainer/syntax-checks.mk (sc_diff_automake, sc_diff_aclocal): Adjust. 2013-02-04 Stefano Lattarini refactor: rip module Automake::Language out of automake script This is just a preparatory patch in view of future changes. * lib/Automake/Language.pm: New module, ripped out from ... * automake.in: ... here. Related adjustments. * Makefile.am (dist_perllib_DATA): List the new module. 2013-02-03 Stefano Lattarini automake: fix reference to relevant tests in comments Some of those tests had been renamed in recent or less-recent changes. 2013-02-03 Stefano Lattarini NEWS: we no longer plan to drop $(INCLUDES) support in next major version For a rationale and related discussion, see: And note that support for INCLUDES has not been re-introduced in the master branch yet, at the moment of writing; but we plan to definitely do so before the next major release. 2013-01-28 Stefano Lattarini Merge branch 'branch-1.13.2' into maint * branch-1.13.2: NEWS: IRIX is still supported; only SGI C compiler depcomp no longer is maint: version bump after beta release 1.13.1b NEWS: typofix release: beta release 1.13.1b (will become 1.13.2) 2013-01-28 Stefano Lattarini NEWS: IRIX is still supported; only SGI C compiler depcomp no longer is This change is for the maint branch. The only IRIX-specific support that is going to actually be removed in the next major Automake versions is the depcomp support for the SGI compiler. That means that automatic dependency tracking will no longer work with that compiler, but "normal" compilation should still work, at least until the compiler is supported by Autoconf. So there is no point in alarming our users by stating in the NEWS file that "support for IRIX and the SGI compilers is going to be removed"; after all, while we don't test on nor particularly care about IRIX anymore, that doesn't mean we are deliberately breaking it, and the likelihood of an intended breakage there is very low. See: * NEWS (Future backward-incompatibilities: Adjust. Improve explanation of our rationale for dropping SGI support. Fix an unrelated typo while at it. Suggested-by: Peter Rosin 2013-01-23 Stefano Lattarini maint: version bump after beta release 1.13.1b * configure.ac (AC_INIT): Bump version number to 1.13.1c. * m4/amversion.m4: Likewise (autoupdated by "make bootstrap"). 2013-01-23 Stefano Lattarini NEWS: typofix 2013-01-23 Stefano Lattarini release: beta release 1.13.1b (will become 1.13.2) * configure.ac (AC_INIT): Bump version number to 1.13.1b. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2013-01-22 Stefano Lattarini Merge branch 'branch-1.13.2' into maint * branch-1.13.2: docs: '.txi' and '.texinfo' extensions are deprecated NEWS: document recent documentation improvements docs: more precise cross reference docs: 'dist-shar' and 'dist-tarZ' are obsolescent today docs: improve documentation of 'dist-*' targets slightly docs: make even clearer 'dist-gzip' is the default. docs: document 'dist-xz' together with the other 'dist-*' options docs: 'no-define' option and AM_INIT_AUTOMAKE three-args usage: fixlets warn: correct broken hyperlink in warning message 2013-01-22 Stefano Lattarini docs: '.txi' and '.texinfo' extensions are deprecated And Automake will warn about them (since commit 'v1.13.1-6-ge1ed314'). * doc/automake.texi (Texinfo): Adjust. 2013-01-22 Stefano Lattarini NEWS: document recent documentation improvements 2013-01-22 Stefano Lattarini docs: more precise cross reference See automake bug#13520. * doc/automake.texi (The Types of Distributions): Here, cross-reference "List of Automake options" rather then the more generic node "Options". Improve wording while at it. 2013-01-22 Stefano Lattarini docs: 'dist-shar' and 'dist-tarZ' are obsolescent today Both the options and the formats; and they might be deprecated and removed in future automake versions (see discussion on automake bug#13324). In any case, it's better if the documentation starts advising against their use right now. * doc/automake.texi (The Types of Distributions): Here. (List of Automake options): And here. 2013-01-22 Stefano Lattarini docs: improve documentation of 'dist-*' targets slightly * doc/automake.texi (The Types of Distributions): Here. 2013-01-22 Stefano Lattarini docs: make even clearer 'dist-gzip' is the default. See automake bug#13520. * doc/automake.texi (The Types of Distributions): Here. 2013-01-22 Stefano Lattarini docs: document 'dist-xz' together with the other 'dist-*' options See automake bug#13520. * doc/automake.texi (List of Automake options): Here. 2013-01-22 Stefano Lattarini docs: 'no-define' option and AM_INIT_AUTOMAKE three-args usage: fixlets See automake bug#13519. * doc/automake.texi: Adjust. 2013-01-22 Stefano Lattarini warn: correct broken hyperlink in warning message * automake.in (scan_autoconf_traces): Here, when an use of the deprecated two- and three-arguments forms of AM_INIT_AUTOMAKE is detected. Fixes automake bug#13519. 2013-01-21 Stefano Lattarini tests: more information about Lex and Yacc programs * t/get-sysconf.sh: Try to also get the version of '$LEX' and '$YACC'. This will help debugging of user-reported problems. 2013-01-21 Stefano Lattarini lint: fix spurious failure for 'sc_rm_minus_f' syntax check * maintainer/syntax-checks.mk (sc_rm_minus_f): Also exempt file 't/rm-f-probe.sh'. 2013-01-21 Stefano Lattarini maint: bump version 1.13.1a -> 1.13.2a The 1.13.2 bug-fixing release will ship from the 'branch-1.13.2' git branch, not from the 'maint' one, since the latter contains changes that are non-trivial and hasn't cooked enough yet. The 'maint' branch will give rise to the 1.13.3 release instead, eventually. Adjust the version number to match. * configure.ac (AC_INIT): Bump version number to 1.13.2b. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2013-01-21 Stefano Lattarini Merge branch 'branch-1.13.2' into maint That branch is for the "emergency" bug-fixing release 1.13.2. * branch-1.13.2: maint: update copyright in files generated by automake and aclocal tests: avoid a spurious failure when running inside Emacs tests: make two new test executable m4: rename an m4 file to a more appropriate name NEWS: update w.r.t. recent documentation fixes compat: reinstate AM_CONFIG_HEADER and AM_PROG_CC_STDC docs: parallel-tests is no longer experimental docs: serial-tests are not deprecated, just discouraged NEWS: we are not going to remove AM_PROG_MKDIR_P in Automake 1.14 2013-01-21 Stefano Lattarini maint: update copyright in files generated by automake and aclocal * bootstrap.sh ($RELEASE_YEAR): Bump top 2013. * configure.ac ($RELEASE_YEAR): Likewise. 2013-01-21 Thien-Thi Nguyen (tiny change) tests: avoid a spurious failure when running inside Emacs Some versions of Emacs set the environment variable 'EMACS' to 't' for child processes. Thus, when running from inside Emacs, "$(MAKE) -e" erroneously allows the 't' to override the one in the Makefile. * t/lisp-flags.sh: Unset var 'EMACS', fixing the issue. 2013-01-19 Stefano Lattarini tests: make two new test executable * t/backslash-issues.sh: This. * t/extra-data.sh: And this. Issue revealed by the 'sc_tests_executable' maintainer check. 2013-01-19 Stefano Lattarini m4: rename an m4 file to a more appropriate name * m4/obsolete-err.m4: Rename ... * m4/obsolete.m4: ... like this. * Makefile.am (dist_automake_ac_DATA): Adjust. * t/ansi2knr-no-more.sh: Likewise. 2013-01-19 Stefano Lattarini NEWS: update w.r.t. recent documentation fixes 2013-01-19 Stefano Lattarini compat: reinstate AM_CONFIG_HEADER and AM_PROG_CC_STDC Make them give runtime warnings in the obsolete category, but apart from that, make them behave as they did in Automake 1.12.x and earlier. While removing those macros seemed quite harmless, because it didn't put a real burden on the developers (requiring them just to do a quick edit to configure.ac), it turned out to place an unsustainable burden (or at least, a burden perceived as such) on distro packagers who use the latest Automake to bootstrap existing packages. Many of those packages, while having likely updated to AC_CONFIG_HEADERS in their development version, still used AM_CONFIG_HEADER in their existing released versions, and the removal of this macro would have thus forced the Fedora packagers to patch all of them. References: In addition, the Fedora packagers have already decided to patch their Automake 1.13.1 to reinstate the AM_CONFIG_HEADER and AM_PROG_CC_STDC macros (plus other macros that I don't believe it's worth worrying about): So, rather than having one more incompatibility floating around, we better mirror that change (or, actually, its relevant parts) in the upstream. * m4/obsolete-err.m4 (AM_CONFIG_HEADER, AM_PROG_CC_STDC): Revert to the older semantics, plus a runtime warning in the 'obsolete' category. * t/backcompat6.sh: Use AM_CONFIG_HEADER once again. * t/am-config-header-no-more.sh: Rename ... * t/am-config-header.sh: ... like this, and adjust. * t/am-prog-cc-stdc-no-more.sh: Rename ... * t/am-prog-cc-stdc.sh: ... like this, and adjust. * t/list-of-tests.mk: Adjust. * NEWS: Update. 2013-01-18 Stefano Lattarini Merge branch 'rm-f-probe' into maint * rm-f-probe: init.m4: add probe to check "rm -f" without args work 2013-01-18 Stefano Lattarini docs: parallel-tests is no longer experimental So don't declare it as such in the documentation. Reported by Brandon Black: * doc/automake.texi: Adjust. * THANKS: Update. 2013-01-18 Stefano Lattarini docs: serial-tests are not deprecated, just discouraged We don't plan to remove support for them, nor to have the serial-tests option give any kind of runtime warning, so don't alarm the users still using serial tests with pointless "deprecation" or "obsolescence" warnings. Fixes automake bug#13478. See also: * doc/automake.texi: Adjust. * THANKS: Update. 2013-01-18 Stefano Lattarini plans: we are not going to remove AM_PROG_MKDIR_P in Automake 1.14 See commit v1.13.1-109-g030ecb4 of 2013-01-16, "compat: restore AM_PROG_MKDIR, again", for the rationale; that rationale is now also copied... * PLANS/obsolete-removed/am-prog-mkdir-p.txt: ... here. 2013-01-18 Stefano Lattarini NEWS: we are not going to remove AM_PROG_MKDIR_P in Automake 1.14 See commit v1.13.1-109-g030ecb4 of 2013-01-16, "compat: restore AM_PROG_MKDIR, again", for the rationale. 2013-01-16 Stefano Lattarini init.m4: add probe to check "rm -f" without args work See automake bug#10828. POSIX will say in a future version that running "rm -f" with no argument is OK: ). We want to be able to make that assumption in our Makefile recipes. So we introduce an aggressive probe to check that the usage we want is actually supported "in the wild" to an acceptable degree. * m4/init.m4 (AM_INIT_AUTOMAKE): Implement the probe. To make any issue more visible, cause the running configure to be aborted by default if the 'rm' program in use doesn't match our expectations; the user can still override this though, by setting the ACCEPT_INFERIOR_RM_PROGRAM environment variable to "yes". * t/spy-rm.tap: Update heading comments. * t/rm-f-probe.sh: New test. * t/list-of-tests.mk: Add it. * PLANS/rm-f-without-args.txt: Adjust. 2013-01-13 Stefano Lattarini subdir-objects: complain if it isn't enabled Since the next major automake version will make the behaviour so far only activated with the 'subdir-object' option mandatory, it's better if we start warning users not using that option. As suggested by Peter Johansson, we strive to avoid the warning when it would be irrelevant, i.e., if all source files sit in "current" directory. See automake bug#13378. * automake.in (handle_single_transform): Print the warning when necessary. * t/subobj.sh: Enhance. * t/ax/depcomp.sh: Adjust. * t/cscope.tap: Likewise. * t/depcomp8a.sh: Likewise. * t/depcomp8b.sh: Likewise. * t/ext2.sh: Likewise. * t/extra-portability.sh: Likewise. * t/fort2.sh: Likewise. * t/fort4.sh: Likewise. * t/fort5.sh: Likewise. * t/lex-line.sh: Likewise. * t/libtool3.sh: Likewise. * t/ltinstloc.sh: Likewise. * t/ltlibsrc.sh: Likewise. * t/ltorder.sh: Likewise. * t/parallel-tests-suffix-prog.sh: Likewise. * t/sourcefile-in-subdir.sh: Likewise. * t/specflg9.sh: Likewise. * t/subobj4.sh: Likewise. * t/subobj7.sh: Likewise. * t/subpkg-yacc.sh: Likewise. * t/subpkg.sh: Likewise. * t/suffix-custom-subobj-and-specflg.sh: Likewise. * t/vala-libs.sh: Likewise. * t/vala-non-recursive-setup.sh: Likewise. * t/yacc-grepping2.sh: Likewise. * t/yacc-line.sh: Likewise. 2013-01-12 Stefano Lattarini plans: update w.r.t. latest changes 2013-01-12 Stefano Lattarini ywrap: remove an obsolete FIXME comment If it were still relevant, somebody would have complained by now. 2013-01-12 Stefano Lattarini ywrap: style fixes (no semantic change intended) 2013-01-12 Stefano Lattarini convenience: "make lint" as an alias for "make maintainer-check" * maintainer/syntax-checks.mk (lint): Here. I'm a lazy typist ... 2013-01-12 Stefano Lattarini docs: typofix in manual * doc/automake.texi (Yacc and Lex): Here, don't write "automake -i" where "automake -a" is actually intended. Re-wrap some text while at it. 2013-01-12 Stefano Lattarini coverage: using multiple lexers in a single program Using Flex and Automake built-in support for lex, that is possible. A little tricky, but not difficult. See: * t/lex-multiple.sh: New test. * t/list-of-tests.mk: Add it. 2013-01-12 Stefano Lattarini tests: remove most uses of the AM_PROG_CC_C_O obsolete macro Our NEWS file says its use will no longer be required in Automake 1.13, so better make sure that is actually the case. * Several tests: Adjust. 2013-01-12 Stefano Lattarini coverage: obsolete macro AM_PROG_CC_C_O should cause no warning nor errors Suggested by Eric Blake. * t/am-prog-cc-c-o.sh: New test. * t/list-of-tests.mk: Add it. 2013-01-12 Stefano Lattarini INSTALL: update copyright years 2013-01-12 Mike Frysinger (tiny change) ithreads: use runtime (not configure time) detection of perl threads I can't imagine the runtime checks being a big runtime penalty, so there shouldn't be a need to do the checks at configure check and hardcode the result in the generated automake. With the current system, it means if you change your perl config (build perl w/threads, build automake, build perl w/out threads), or deploy a compiled automake package on a different system (build had threads, but deployed system does not), you get errors when trying to run automake. So take the logic from configure.ac and move it to the one place where PERL_THREADS is used (lib/Automake/Config.in) and do the version/config checking at runtime. * bootstrap.sh (PERL_THREADS): Delete assignment and use in sed. * configure.ac (am_cv_prog_PERL_ithreads, PERL_THREADS): Delete all code related to these two variables. * lib/Automake/Config.in (perl_threads): Initialize to 0, and only set to 1 if the perl version is at least 5.007_002, and useithreads is in Config. 2013-01-12 Stefano Lattarini copyright: add few missing copyright notices Issue revealed by warnings from "make update-copyright". * maintainer/am-ft: Add copyright notice. * maintainer/am-xft: Likewise. * maintainer/rename-tests: Likewise. 2013-01-12 Stefano Lattarini maint: files in PLANS are to be exempted from copyright notice * maintainer/maint.mk (update-copyright): Adjust. 2013-01-12 Stefano Lattarini maint: consistently honor the UPDATE_COPYRIGHT_YEAR environment variable * maintainer/maint.mk (update-copyright): Here. The 'lib/update-copyright' already honoured it, but some parts of our recipe didn't. This has caused the incomplete copyright bump that was fixed by the previous patch. 2013-01-12 Stefano Lattarini copyright: update some copyright years With "make update-copyright". Apparently they were missed in the last bump. * bootstrap.sh, configure.ac, t/txinfo-builddir.sh: In these files. 2013-01-11 Stefano Lattarini compile: use 'compile' script when "-c -o" is used with losing compilers Do so seen when only source files in the "current" directory are present. This commit is part of a series of related changes addressing automake bug#13378 (see also the plan 'PLANS/subdir-objects.txt'). Before this change, Automake-generated C compilation rules mistakenly passed the "-c -o" options combination unconditionally (even to losing compiler) when the 'subdir-objects' was used but sources were only present in the top-level directory. Issue spotted by Nick Bowler: We fix this by having Automake redefine AC_PROG_CC to take over the role of AM_PROG_CC_C_O and to require the 'compile' script unconditionally (albeit that will continue to be invoked only when inferior compilers are detected). Among other things, this means AM_PROG_CC_C_O explicitly is no longer required; that macro is still supported for backward-compatibility, but calling it is basically a no-op now. This change has some pros and some cons (obviously, we believe the former outweighs the latter). Here are the most relevant ones: + Pros 1: Some logic in the Automake script has been simplified. + Pros 2: That simplification has automatically fixed an actual bug (see Nick's mails referenced above; admittedly, that was present only in corner-case situations, but still); the test 't/ccnoco4.sh', which demonstrated the bug and has been failing so far, now passes. + Pros 3: Things works more "automagically" now (no need to manually add the AM_PROG_CC_C_O macro to configure.ac anymore). * Cons 1: The 'compile' script will be required in all projects using C compilation; this will only be a problem for packages not using '--add-missing'. However, such packages are definitely more rare than the ones using '--add-missing', and adjusting them will be trivial -- just copy the compile script over from the new Automake installation. * Cons 2: The copy & paste of autoconf internals hack this change has introduced in our "rewrite" of AC_PROG_CC is really an egregious abomination. It can only be justified with the fact that we expect future versions of autoconf to implement the semantics we need directly in AC_PROG_CC, so that we'll be able to leverage that (since Automake 1.14 will require the latest Autoconf version released). Now, the detailed list of file-by-file changes ... * automake.in ($seen_cc_c_o): Remove this global variable. (scan_autoconf_traces): Don't set it, and do not trace the 'AM_PROG_CC_C_O' m4 macro. (lang_c_rewrite): Remove, no longer needed. * doc/automake.texi: Adjust expected "autoreconf --install" output in the amhello example. Remove statements about the need for the AM_PROG_CC_C_O macro. Report it is obsolete now. * m4/init.m4: Re-write AC_PROG_CC to append checks about whether the C compiler supports "-c -o" together. These checks have basically been ripped out (with adaptations) from the 'AC_PROG_CC_C_O' macro of Autoconf and ... * m4/minuso.m4 (AM_PROG_CC_C_O): ... this macro of ours, which has thus basically become a no-op. * t/ax/am-test-lib.sh (am_setup_testdir): Also copy the 'compile' script in the test directory; if we don't do so, every test using AC_PROG_CC should call automake with the "--add-missing" option, or copy the 'compile' script itself. * t/cond11.sh: No need to create a dummy 'compile' script: that is already brought in by 'am_setup_testdir()', that is automatically invoked when 'test-lib.sh' is sourced. * t/add-missing.tap: Adjust: we expect the 'compile' script to be required by a mere AC_PROG_CC call now. * t/dist-auxdir-many-subdirs.sh: Likewise. * t/specflg6.sh: Likewise. * t/subobj4.sh: Likewise. * t/cxx-lt-demo.sh: Likewise, and update comments to match. * t/distcom2.sh: Enhance a little. * t/dollarvar2.sh: Adjust. * t/extra-portability.sh: Likewise. * t/libobj19.sh: Likewise. * t/per-target-flags.sh: Likewise. * t/repeated-options.sh: Likewise. * t/subobj.sh: Likewise, and enhance a little. * t/ccnoco2.sh: Remove as obsolete. * t/list-of-tests.mk (handwritten_TESTS): Adjust. (XFAIL_TESTS): Remove 't/ccnoco4.sh'. * NEWS: Update. 2013-01-11 Stefano Lattarini HACKING: suggest more checks before releasing In particular, "make check-no-trailing-backslash-in-recipes", "make check-cc-no-c-o" and "make maintainer-check" should also be run. 2013-01-11 Stefano Lattarini tests: can fake a compiler not grasping "-c -o" -- globally in all tests The ability to easily do so will be quite important in upcoming changes about C compilation handling and semantics of the 'subdir-objects' option. Refer to the extensive discussion about automake bug#13378 for more details: . See also commit 'v1.13.1-34-g744cd57' of 2013-01-08, "coverage: compile rules used "-c -o" also with losing compilers". * t/ax/cc-no-c-o.in: New, a "C compiler" that chokes when the '-c' and '-o' options are passed together to it on the command line. * Makefile.am (t/ax/cc-no-c-o): Generate this script from it. (noinst_SCRIPTS, CLEANFILES): Add it. (EXTRA_DIST): Add 't/ax/cc-no-c-o.in'. (check-cc-no-c-o): New target, runs the whole testsuite with 'cc-no-c-o' as the C compiler (bot GNU and non-GNU). * .gitignore: Update. * t/ccnoco.sh: Use the new script instead of duplicating it. * t/ccnoco3.sh: Likewise. * t/ccnoco4.sh: Likewise. * t/self-check-cc-no-c-o.sh: New testsuite self-check. * t/list-of-tests.mk: Adjust. 2013-01-11 Stefano Lattarini sync: update files from upstream with "make fetch" * lib/INSTALL: Update. * lib/config.guess: Likewise. * lib/config.sub: Likewise. * lib/gendocs_template: Likewise. * lib/gitlog-to-changelog: Likewise. * lib/gnupload: Likewise. * lib/texinfo.tex: Likewise. * lib/update-copyright: Likewise. 2013-01-10 Stefano Lattarini typofix: in comments in GNUmakefile 2013-01-10 Stefano Lattarini Rename 'maint/' -> 'maintainer/', for Git's sake Otherwise, Git gets confused by the fact that a directory ('maint') is named like a branch, and forces me to tweak the command line to resolve the ambiguity for it. * maint/: Rename ... * maintainer/: ... like this. * Makefile.am, GNUmakefile: Adjust. 2013-01-10 Stefano Lattarini HACKING: minor typofix 2013-01-10 Stefano Lattarini HACKING: bug-tracker, the PLANS directory, and how to plan "big" changes 2013-01-10 Stefano Lattarini HACKING: rewindable branches should live in the 'experimental/*' namespace 2013-01-10 Stefano Lattarini HACKING: fixlets about git branch rewinding policy 2013-01-10 Stefano Lattarini HACKING: commit messages are not to follow GCS ChangeLog rules too strongly 2013-01-10 Stefano Lattarini HACKING: "detailed explanation" in commit messages is almost mandatory 2013-01-10 Stefano Lattarini HACKING: we use "merge --log" even when merging master 2013-01-10 Stefano Lattarini HACKING: typofix 2013-01-09 Stefano Lattarini depend2.am: fix comments on verbosity of compilation rules The situation and decisions described on those comments have become quite outdated since the introduction of the silent-rules support. Today, the general idea is to have nice, terse output if silent rules are enabled, and complete, faithful, very verbose output if they are not -- without trying to "massage" this verbose output in a more pleasant form if that would cause complication in the affected code. So it's better to just drop the obsolescent comments. Note that we don't start simplifying the existing rules according to this new philosophy; that will only be done when touching some existing code (for the 'depend2.am' code, that will probably happen on the master branch). 2013-01-09 Stefano Lattarini depend2.am: improve comments a little * lib/am/depend2.am: The "fastdep" mode is supported not only for gcc 3.x, but for gcc 3.x or later, in particular, for all gcc in the 4.x series (at the time of writing, the latest release is 4.72). Adjust the comments to match, and re-wrap them while at it. 2013-01-09 Stefano Lattarini plans: automake 1.14 is to assume "rm -f" with no args is OK See automake bug#10828. * PLANS/rm-f-without-args.txt: New. 2013-01-09 Stefano Lattarini plans: we want to active subdir-objects unconditionally in automake 1.14 See automake bug#13378. * PLANS/subdir-objects.txt: New. * t/ccnoco4.sh: Improve heading comments a little. 2013-01-08 Stefano Lattarini tests: adjust stale references to old test names * t/remake-renamed-m4-macro-and-file.sh: Adjust to reflect to old "acloca22 -> t/aclocal-deleted-header.sh" test rename. * t/aclocal-pr450.sh (configure.ac): Use '$me' in the AC_INIT call, instead of hard-coding the old name of this test, i.e., "acloca19". 2013-01-08 Stefano Lattarini tests: rename the last aclocal test with dumb name * t/acloca10.sh: Rename ... * t/aclocal-I-install.sh: ... to this saner and slightly more self-explanatory name. * t/list-of-tests.mk: Adjust. 2013-01-08 Stefano Lattarini tests: fix an old botched change to an aclocal test * t/acloca10.sh (configure.ac): Here, invoke the m4 macro 'MACRO2' before the macro 'MACRO1' (the related test 't/aclocal-I-order-2.sh' does the opposite). This reverts a botched edit done (by myself, oops) in commit 'v1.11-1335-gefdc3e1' of 2011-09-11, "tests: minor optimizations/simplifications in some aclocal tests", and makes the behaviour of the test match once again what is stated in the heading comments. While at it, improve those same heading comments a little. 2013-01-08 Stefano Lattarini tests: fix some botched inter-test references in heading comments * t/aclocal-I-order-2.sh: Here. * t/aclocal-I-order-2.sh: And here. 2013-01-08 Stefano Lattarini coverage: compile rules used "-c -o" also with losing compilers If the 'subdir-objects' option is used, Automake-generated rules for C compilation pass both the "-c" and "-o" options to the C compiler, *unconditionally*. There are some compilers that choke on such an usage, but the AM_PROG_CC_C_O macro takes care of them (it does so by redefining $CC to use the Automake-provided 'compile' wrapper script automatically, if a losing compiler is detected at configure runtime). Unfortunately, in case the 'subdir-objects' option is specified in a Makefile.am, but all the source files resided anyway in the top-level directory (relative to the Makefile.am), Automake do *not* complain if AM_PROG_CC_C_O wasn't invoked in 'configure.ac' -- all the while still passing "-c -o" to the compiler invocations. This could cause compilation failures with losing compilers if the user forget to call AM_PROG_CC_C_O in 'configure.ac' (and Automake would not warn him of the issue). Expose this bug in the testsuite. Issue identified by Nick Bowler in the discussion on automake bug#13378: * t/ccnoco4.sh: New test. * t/list-of-tests.mk (XFAIL_TESTS, handwritten_TESTS): List it. 2013-01-05 Stefano Lattarini texi: remove extra verbosity in creation of dirstamp directory * lib/am/texi-vers.am (%STAMPVTI%): Here. 2013-01-05 Stefano Lattarini coverage: user can avoid distributing '.info' pages Can be done like this: AUTOMAKE_OPTIONS = info-in-builddir dist-info: @: Note that this usage is not yet documented: we might decide to go for a fully-fledged 'no-dist-info' flag, or something like that, in future automake version (this is not yet decided); in which case, it's better not to have people start to rely on the hack above. Still, there's no good reason to break it gratuitously, hence this test coverage. * t/txinfo-nodist-info.sh: New test. * t/list-of-tests.mk: Add it. 2013-01-04 Stefano Lattarini Merge branch 'plans' into maint * plans: plans: add some on-going plans (already registered on the bug tracker) 2013-01-04 Stefano Lattarini plans: add some on-going plans (already registered on the bug tracker) 2013-01-04 Stefano Lattarini Merge branch 'plans' into maint * plans: plans: add the "PLANS" directory Conflicts: Makefile.am 2013-01-04 Karl Berry docs: mention dist-hook help for EXTRA_DIST * automake.texi (Basics of Distribution): mention dist-hook as working around the problems of whole directories in EXTRA_DIST. 2013-01-03 Stefano Lattarini texi: remove workaround for older Texinfo (4.1) * lib/am/texibuild.am: Here, in the rules generating HTML output. We can do so because, since Automake 1.13, we require Texinfo >= 4.9 anyway. Basically a backport of Automake-NG commit '1.12.2-879-ge6caf5e'. 2013-01-03 Stefano Lattarini NEWS: improve wordings in entry deprecating suffix-less info files 2013-01-03 Stefano Lattarini build: don't enable 'color-tests' automake option explicitly It's enabled by default since commit 'v1.12.2-136-g2d5571e' (this change appeared in Automake 1.13). * configure.ac (AM_INIT_AUTOMAKE): Drop 'color-tests'. 2013-01-03 Stefano Lattarini build: enable all warnings as fatal in our own build system Automake should of course be able to bootstrap itself in a warning-free manner w.r.t. the Autotools. So make any failure to do so fatal. Not doing so caused the regression fixed by previous commit 'v1.13.1-22-ga790fae' to go unnoticed. * configure.ac (AM_INIT_AUTOMAKE): Add '-Werror' and '-Wall'. * bootstrap.sh: Pass the '-Wall -Werror' options to aclocal, automake and autoconf invocations. 2013-01-03 Stefano Lattarini texi: Texinfo sources and CLEANFILES definition should co-exist peacefully But they don't now, due to a regression introduced in commit 'v1.13.1-4-gc1a8f56'. Fix it. The regression was hitting our own build system! * automake.in (handle_texinfo_helper): Only complain if the 'info-in-builddir' is not active and a '.info' file (not any random file!) is listed in CLEANFILES or DISTCLEANFILES. 2013-01-03 Stefano Lattarini tests: make two new test executable * t/backslash-issues.sh: This. * t/extra-data.sh: And this. Issue revealed by the 'sc_tests_executable' maintainer check. 2013-01-03 Stefano Lattarini Merge branch 'info-in-builddir' into maint * info-in-builddir: texi: deprecate hack about info files in CLEANFILES variables texi: info files can be generated in the builddir 2013-01-03 Stefano Lattarini runtest: better command line API * t/ax/runtest.in: Accept options '-k' and '--keep-testdirs' (same as exporting '$keep_testdirs' to "yes"). To improve compatibility with the "make check" interface, allow environment variables to be passes on the command line. Minor adjustments while at it. 2013-01-03 Stefano Lattarini tests: move runtest.in away from the top-lever directory Not only this leaves the top-lever directory less cluttered, but helps in keeping the testsuite-related files more "centralized". * runtest.in: Move ... * t/ax/runtest.in: ... here. While at it, add customary '@configure_input@' comment line. * Makefile.am (runtest, EXTRA_DIST): Adjust. 2013-01-03 Stefano Lattarini maint: move more maintainer files in the 'maint/' subdir * maint.mk: Move ... * maint/maint.mk: ... here. * syntax-checks.mk: Move ... * maint/syntax-checks.mk: ... here. * Makefile.am: Adjust. * GNUmakefile: Likewise. 2013-01-03 Stefano Lattarini plans: add the "PLANS" directory Individual files or sub-directories about future and on-going development plans in Automake will be added in follow-up commits. This new set of documents is meant to help ensure a more controlled and smooth development and evolution for Automake, in several ways. - Having the plans clearly spelled out should will avoid messy roadmaps with no clear way forward or with muddy or ill-defined aims or purposes; a trap this is too easy to fall into. - Keeping planned changes cooking and re-hashed for a while should ensure rough edges are smoothed up, transitions are planned in a proper way (hopefully avoiding debacles like the AM_MKDIR_PROG_P deprecation and the AM_CONFIG_HEADER too-abrupt removal), and "power users" have more chances of getting informed in due time, thus having all the time to prepare for the changes or raise objections against them. - Having the plans clearly stated and registered in a "centralized" location should make it more difficult to them to slip through the cracks, getting forgotten or (worse) only half-implemented. - Even for discussions and plans registered on the Bug Tracker as well, a corresponding entry in the PLANS directory can help in keeping main ideas summarized, and consensus and/or objections registered and easily compared. Motivation: Not a flatting picture for us (and maybe a little too harsh), but basically true and even spot-on in some regards. * PLANS/README: New. * Makefile.am (EXTRA_DIST): Distribute the whole PLANS directory. 2013-01-02 Stefano Lattarini tests: more significant names for some tests * t/spy.sh: Rename... * t/spy-double-colon.sh: ... like this. * t/yacc4.sh: Rename... * t/yacc-misc.sh: ... like this. * t/yaccdry.sh: Rename... * t/yacc-dry.sh: ... like this. * t/yaccpp.sh: Rename... * t/yacc-cxx-grepping.sh: ... like this. * t/yaccvpath.sh: Rename... * t/yacc-vpath.sh: ... like this. 2013-01-02 Stefano Lattarini maint: add some of my maintainer-specific scripts They are likely not general enough for widespread use, but they are useful nonetheless. In the best-case scenario, they will start to be used by other people, and thus accordingly improved and made more general and flexible. In the worst case scenario, well, I still get to keep them in a centralized, blessed place, simplifying the deployment and use of them; so still a win for me :-) * maint/am-ft: New script. * maint/am-xft: Likewise. * maint/rename-tests: Likewise. * Makefile.am (EXTRA_DIST): Add them. 2013-01-02 Stefano Lattarini tests: reorganize tests on backslash issues * t/backsl.sh, t/backsl2.sh, t/backsl3.sh: Merge ... * t/backslash-issues.sh: ... into this test. * t/backsl4.sh: Rename ... * t/backslash-before-trailing-whitespace.sh: ... like this. * t/list-of-tests.mk: Adjust. 2013-01-02 Stefano Lattarini style: add trailing ':' to some test cases 2013-01-02 Stefano Lattarini tests: tweak tests on obsolete EXTRA_DATA variable * t/extra3.sh, t/extra4.sh: Merge .... * t/extra-data.sh: ... into this, with updated comments. * t/list-of-tests.mk: Adjust. Also Tweak the order in which some other tests are listed. 2013-01-02 Stefano Lattarini tests: more significant names for some tests * t/extra5.sh: Rename .... * t/extra-dist-vpath-dir.sh: ... like this. * t/extra6.sh: Rename .... * t/extra-dist-dirs-and-subdirs.sh: ... like this. * t/extra7.sh: Rename .... * t/extra-dist-vpath-dir-merge.sh: ... like this. * t/extra8.sh: Rename .... * t/extra-programs-misc.sh: ... like this. * t/extra9.sh: Rename .... * t/extra-programs-and-libs.sh: ... like this. * t/extra10.sh: Rename .... * t/extra-dist-wildcards.sh: ... like this. * t/extra11.sh: Rename .... * t/extra-dist-wildcards-gnu.sh: ... like this. * t/extra12.sh: Rename .... * t/extra-dist-wildcards-vpath.sh: ... like this. * t/extradep.sh: Rename .... * t/extra-deps.sh: ... like this, and adjust heading comments. * t/extradep2.sh: Rename .... * t/extra-deps-lt.sh: ... like this, and adjust heading comments. * t/list-of-tests.mk: Adjust. 2013-01-02 Stefano Lattarini cosmetics: remove few occurrences of trailing whitespace 2013-01-02 Stefano Lattarini docs: re-introduce mention of two-args AM_INIT_AUTOMAKE invocation Albeit obsolescent and raising warnings in the 'obsolete' category, that usage is still supported, and will need to be until Autoconf improves its handling of configure-time-generated package version numbers. So it's better to explicitly document it again, stating that it is obsoleted but still working (and why), rather then leaving it as Yet Another Undocumented Feature (that will mysteriously and suddenly break some random day in the future). It's worth giving some background about how we ended up in the situation that this patch fixes. We had originally removed support for the long-deprecated two-args AM_INIT_AUTOMAKE invocation (see commit v1.12-67-ge186355). Before that removal could land in a released Automake version, Bob Friesenhahn made a quite compelling point that the two-args AM_INIT_AUTOMAKE invocation could still be useful for modern, maintained packages like GraphicsMagick, at least until Autoconf is fixed to offer better support for "dynamic" package versions (see commit v1.12.2-245-g2abe183 for more in-depth rationales and references). However, in that commit we didn't revert the removal of the *documentation* for this two-arguments AM_INIT_AUTOMAKE invocation (and no rationale for not doing so was given in the commit message). Time to remedy that. Indirectly suggested by Diego Elio Pattenò: * doc/automake.texi: Adjust. * NEWS: Update. * THANKS: Likewise. 2013-01-02 Stefano Lattarini texi: warn against '.txi' and '.texinfo' input suffixes The warning being in the 'obsolete' category. This is mostly to ease transition to Automake-NG (see commit v1.12.1-416-gd5459b9), and to discourage use of seldom-tested setups. * automake.in (handle_texinfo_helper): Warn against Texinfo input files with '.txi' or '.texinfo' suffixes. * NEWS: Update. * t/txinfo-other-suffixes.sh: Adjust and enhance. * t/txinfo-no-repeated-targets.sh: No longer use '.txi' and '.texinfo' extensions. 2013-01-02 Stefano Lattarini cleanup: remove two lines of dead code in automake * automake.in (scan_texinfo_file): Here, the definition and munging of '$infobase'. 2013-01-02 Stefano Lattarini texi: warn against suffix-less info files The warning being in the 'obsolete' category. This is mostly to ease transition to Automake-NG (see commit v1.12.1-392-ga0c7b6a), and to discourage use of seldom-tested setups. * automake.in (scan_texinfo_file): Warn against '@setfilename' directives that specify suffix-less output info files. * t/txinfo-without-info-suffix.sh: Adjust and enhance. * t/txinfo-makeinfo-error-no-clobber.sh: No longer use suffix-less info files in '@setfilename' directives. * t/primary-prefix-valid-couples.sh: Likewise. * t/txinfo-setfilename-repeated.sh: Likewise. * t/txinfo-vtexi2.sh : Likewise. * t/mdate2.sh: Likewise. * NEWS: Update. 2013-01-02 Stefano Lattarini texi: deprecate hack about info files in CLEANFILES variables For quite a long time, Automake has been implementing an undocumented hack which ensured that '.info' files which appeared to be cleaned (by e.g. being listed in the CLEANFILES or DISTCLEANFILES variables) were built in the builddir rather than in the srcdir; this hack was introduced to ensure better backward-compatibility with packages such as Texinfo, which did things like: info_TEXINFOS = texinfo.txi info-stnd.texi info.texi DISTCLEANFILES = texinfo texinfo-* info*.info* # Do not create info files for distribution. dist-info: @: in order not to distribute .info files. Now that we have the 'info-in-builddir' option that explicitly causes generated '.info' files to be placed in the builddir, this hack should be longer necessary, so we deprecate it with runtime warnings. It is scheduled to be removed altogether in Automake 1.14. * automake.in (handle_texinfo_helper): Raise proper runtime warnings if the hack is triggered. * NEWS: Update. * t/txinfo28.sh: Adjust. * t/txinfo23.sh: Likewise. * t/txinfo25.sh: Adjust and extend. * t/txinfo24.sh: Likewise. 2013-01-01 Stefano Lattarini texi: info files can be generated in the builddir User can now ask info files to be built in the $(builddir), rather than the $(srcdir), by specifying the Automake option 'info-in-builddir'. This feature was requested by the developers of GCC, GDB, GNU binutils and the GNU bfd library. See the extensive discussion about automake bug#11034 for more details. OK, to be honest, having '.info' files built in the builddir was *already* possible, but only using ugly and undocumented hacks involving definition of the CLEANFILES and/or DISTCLEANFILES. For example, the binutils project did something like this in the relevant 'Makefile.am': # Automake 1.9 will only build info files in the objdir if they are # mentioned in DISTCLEANFILES. It doesn't have to be unconditional, # though, so we use a bogus condition. if GENINSRC_NEVER DISTCLEANFILES = binutils.info endif See also the extensive discussion about automake bug#11034; in particular, the following messages: * lib/Automake/Options.pm (_is_valid_easy_option): Recognize the new 'info-in-builddir' option. * automake.in (handle_texinfo_helper): If that option is set, initialize '$insrc' to '0', so that info files will be generated in the builddir. Adjust comments to match. * t/txinfo-builddir.sh: New test. * t/list-of-tests.mk: Add it. * NEWS: Update. * doc/automake.texi: Document the new options. 2013-01-01 Stefano Lattarini build: respect silent rules in generation of "amhello" example tarball * Makefile.am ($(srcdir)/doc/amhello-1.0.tar.gz): Here. 2013-01-01 Stefano Lattarini NEWS: fixlets and updates 2013-01-01 Stefano Lattarini post-release: minor version bump (1.13.1a) * configure.ac, m4/amversion.m4: Bump version to 1.13.1a. 2013-01-01 Stefano Lattarini release: stable minor release 1.13.1 * configure.ac (AC_INIT): Bump version number to 1.13.1. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2013-01-01 Stefano Lattarini tests: don't always look for a C++ compiler named 'RCC' On MacOS X (10.8), since the file system is case-insensitive, RCC can point to the "Resource Compiler" of the Qt4 Toolkit: That mismatch causes our configure script to erroneously think that no working C++ compiler is present, and that is thus necessary to skip all the test cases requiring such a compiler. So only look for a compiler named 'RCC' if the file system is case-sensible. Issue spotted analyzing the testsuite logs reported in bug#13317. * configure.ac: Adjust. 2013-01-01 Stefano Lattarini tests: fix bug in pkg-config-macros.sh, could cause spurious SKIPs Issue spotted perusing the testsuite logs reported in bug#13317. * t/pkg-config-macros.sh: Don't use (uninitialized) '$dir' where '$d' should have been used instead. Set IFS to ':' before looping on the $PATH expansion. Fix typo: 'alocal' instead of 'aclocal'. These issues were causing the location in PATH of the 'pkg-config' program not to be found even when the program was present. * THANKS: Update. 2013-01-01 Stefano Lattarini docs: autom4te cache can break CONFIGURE_DEPENDENCIES In fact, the new test 'remake-configure-dependencies.sh' only works because it disables the autom4te cache :-( That is more of an AUtotools design issue than an Automake bug, so better just document it ... * doc/automake.texi (Rebuilding): ... here. 2013-01-01 Stefano Lattarini coverage: test CONFIGURE_DEPENDENCIES * t/remake-configure-dependencies.sh: New test. * t/list-of-tests.mk: Add it. * doc/automake.texi: Reference it in comments. 2013-01-01 Stefano Lattarini coverage: test CONFIG_STATUS_DEPENDENCIES * t/remake-config-status-dependencies.sh: New test. * t/list-of-tests.mk: Add it. * doc/automake.texi: Reference it in comments. 2012-12-31 Stefano Lattarini tests: fix reference to related tests in some comments * t/acloca10.sh: Here. * t/check2.sh: And here. * t/remake-deleted-m4-file.sh: And here. 2012-12-31 Stefano Lattarini tests: some enhancements to texinfo tests (from Automake-NG) * t/txinfo-many-output-formats.sh: Backport improvements, almost verbatim, from Automake-NG commit 'v1.13-768-gb434acc' (plus minor tweaks for the sake of non-GNU make implementation). * t/txinfo-many-output-formats-vpath.sh: New test, backported almost verbatim from that same Automake-NG commit (again, with minor tweaks for the sake of non-GNU make implementations). * t/lsit-of-tests.mk: Adjust. 2012-12-31 Stefano Lattarini tests: fix reference to sister tests in two heading comments * t/color-tests.sh: Here. * t/color-tests2.sh: And here. 2012-12-31 Stefano Lattarini maint: update copyright year for 2013 (in branch maint) 2012-12-31 Stefano Lattarini docs: adjust comment w.r.t. recent tests renaming 2012-12-31 Stefano Lattarini tests: some more renames for texinfo tests * t/txinfo.sh: Rename ... * t/txinfo-tex-dist.sh: ... like this. * t/txinfo10.sh: Rename ... * t/txinfo-dvi-recurs.sh: ... like this. * t/txinfo20.sh: Rename ... * t/txinfo-makeinfo-error-no-clobber.sh: ... like this. * t/txinfo-setfilename-suffix-match.sh: Rename ... * t/txinfo-setfilename-suffix-strip.sh: ... like this. * t/txinfo-suffix-less-info.sh: Rename ... * t/txinfo-without-info-suffix.sh: ... like this. * t/vtexi.sh: Rename ... * t/txinfo-vtexi.sh: ... like this. * t/vtexi2.sh: Rename ... * t/txinfo-vtexi2.sh: ... like this. * t/vtexi3.sh: Rename ... * t/txinfo-vtexi3.sh: ... like this, and adjust heading comments. * t/vtexi4.sh: Rename ... * t/txinfo-vtexi4.sh: ... like this, and adjust heading comments. * t/list-of-tests.mk: Adjust. 2012-12-31 Stefano Lattarini tests: enhance and tweak some texinfo tests * t/txinfo-subdir-pr343.sh: Move the tests checking that '.info.bak' files in subdirs are not unduly distributed into ... * t/txinfo-no-extra-dist.sh: ... in here. Enhance a little while at it. * t/txinfo-other-suffixes.sh: Also check that the '.texinfo' suffix is accepted and works. * t/txinfo-setfilename-suffix-match.sh: Remove useless call to autoconf, enhance a little. 2012-12-31 Stefano Lattarini tests: remove a redundant texinfo test * t/txinfo-add-missing.sh: This one, its checks being already covered by the more extensive 't/add-missing.tap' test. * t/txinfo-add-missing2.sh: Rename ... * t/txinfo-add-missing-and-dist.sh: Like this. * t/list-of-tests.mk: Adjust. 2012-12-31 Stefano Lattarini tests: don't list a removed tests in XFAIL_TESTS * t/list-of-tests.mk (XFAIL_TESTS): No longer list 't/txinfo5.sh' here, it has been removed together with the Cygnus support. 2012-12-31 Stefano Lattarini tests: more explicative names for some tests Do so for several Texinfo-related tests. Note that some of such tests with suboptimal names are *not* renamed; that's because they are going to be removed in the master branch anyway (since they check from some soon-to-be-removed features), so renaming them would be wasted work, and could even create useless merge conflicts. * t/txinfo2.sh: Rename ... * t/txinfo-no-extra-dist.sh: ... like this. * t/txinfo3.sh: Rename ... * t/txinfo-suffix-less-info.sh: ... like this. * t/txinfo4.sh: Rename ... * t/txinfo-unrecognized-info-suffix.sh: ... like this. * t/txinfo6.sh: Rename ... * t/txinfo-other-suffixes.sh: ... like this. * t/txinfo7.sh: Rename ... * t/txinfo-add-missing.sh: ... like this. * t/txinfo8.sh: Rename ... * t/txinfo-add-missing2.sh: ... like this. * t/txinfo9.sh: Rename ... * t/txinfo-no-repeated-targets.sh: ... like this. * t/txinfo17.sh: Rename ... * t/txinfo-setfilename-repeated.sh: ... like this. * t/txinfo13.sh: Rename ... * t/txinfo-subdir-pr343.sh: ... like this. * t/txinfo16.sh: Rename ... * t/txinfo-info-in-srcdir.sh: ... like this. * t/txinfo21.sh: Rename ... * t/txinfo-many-output-formats.sh: ... like this. * t/txinfo22.sh: Rename ... * t/txinfo-override-texinfo-tex.sh: ... like this. * t/txinfo26.sh: Rename ... * t/txinfo-absolute-srcdir-pr408.sh: ... like this. * t/txinfo27.sh: Rename ... * t/txinfo-no-installinfo.sh: ... like this. * t/txinfo29.sh: Rename ... * t/txinfo-override-infodeps.sh: ... like this. * t/txinfo31.sh: Rename ... * t/txinfo-setfilename-suffix-match.sh: ... like this. * t/txinfo32.sh: Rename ... * t/txinfo-bsd-make-recurs.sh: ... like this. * t/txinfo33.sh: Rename ... * t/txinfo-clean.sh: ... like this. * t/list-of-tests.mk: Adjust. 2012-12-31 Stefano Lattarini cleanup: drop a redundant %?FIRST% transform * lib/am/texinfos.am: Here: this file is only included one time per Makefile by Automake. Cherry picked from Automake-NG commit 'v1.12.2-864-g5c580b0'. 2012-12-31 Stefano Lattarini maint: state when compatibility cruft should be removed or warned about * automake.in: Here. * lib/Automake/Options.pm: And here. * m4/obsolete-err.m4: And here. 2012-12-30 Stefano Lattarini fixup: copyright yars in two recent tests 2012-12-30 Stefano Lattarini obsolete: fixup: don't use AU_DEFUN where AC_DEFUN is required * m4/obsolete-err.m4: Here, for the definition of 'AM_PROG_CC_STDC' 2012-12-30 Stefano Lattarini NEWS: minor fixup 2012-12-30 Stefano Lattarini obsolete: better error message if AM_PROG_CC_STDC is used In Automake 1.13, the long-deprecated (since 2002) macro AM_PROG_CC_STDC has been removed. Such a removal, albeit sensible and justified, was probably done in a too-abrupt way, since it didn't turn the pre-existing warning messages into fatal error messages, but simply dropped the macro definition, so that remaining usages of it would cause unclear error messages, e.g.: configure.ac:4: warning: macro 'AM_PROG_CC_STDC' not found in library from aclocal, and: configure.ac:4: error: possibly undefined macro: AM_PROG_CC_STDC If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. from autoconf. In an attempt to mitigate this issue, we re-add an AM_PROG_CC_STDC definition that simply raises a *clear* error message when the macro is used. * t/am-prog-cc-stdc-no-more.sh: New test. * t/list-of-tests.mk: Add it. * m4/obsolete-err.m4: Add the new "error-raising" definition for AM_PROG_CC_STDC; the error message is a variation of the one already present in the older version of this macro, before it got removed in commit 'v1.12-15-gd2ca168'. * NEWS: Update. 2012-12-30 Stefano Lattarini obsolete: better error message if AM_CONFIG_HEADER is used In Automake 1.13, the long-deprecated macro AM_CONFIG_HEADER (deprecated since 2002) has been removed in favour of AC_CONFIG_HEADERS. However, the removal was done without a proper deprecation period, and that caused packages upgrading to Automake 1.13 to fail with very unclear error messages, e.g.: configure.ac:4: warning: macro 'AM_CONFIG_HEADER' not found in library from aclocal, and: configure.ac:4: error: possibly undefined macro: AM_CONFIG_HEADER If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. from autoconf. In an attempt to mitigate this issue, we re-add an AM_CONFIG_HEADER definition that simply raises a *clear* error message when the macro is used. Report by Paolo Bonzini: * t/am-config-header-no-more.sh: New test. * t/list-of-tests.mk: Add it. * m4/obsolete-err.m4: New file, contain the new AM_CONFIG_HEADER "error-raising" definition, as well as the definition of the similarly obsolete macros 'AM_C_PROTOTYPES' and 'fp_C_PROTOTYPES', moved in from ... * m4/protos.m4: ... this file, which has thus been removed. * Makefile.am (dist_automake_ac_DATA): Adjust. * t/ansi2knr-no-more.sh: Likewise. * NEWS: Update. 2012-12-29 Stefano Lattarini sync: update files from upstream with "make fetch" * lib/config.sub: Update. * lib/config.guess: Likewise. 2012-12-29 Stefano Lattarini tests: better names for temporary configure.ac files When editing a pre-existent 'configure.ac' file in a test script, name the temporary file 'configure.tmp' rather than 'configure.int'; the latter was a relict of the times when we used 'configure.in' as the default name for the Autoconf input files throughout the testsuite. * t/cond43.sh: Adjust. * t/depcomp8a.sh: Likewise. * t/depcomp8b.sh: Likewise. * t/gettext.sh: Likewise. * t/mmode.sh: Likewise. * t/pr401.sh: Likewise. * t/pr401b.sh: Likewise. * t/pr401c.sh: Likewise. * t/python11.sh: Likewise. * t/cond42.sh: Likewise. Also, while at it, rename ... (edit_configure_in): ... this function ... (edit_configure_ac): ... like this. 2012-12-28 Stefano Lattarini post-release: minor version bump This is for the maint branch. * configure.ac, m4/amversion.m4: Bump version to 1.13.0a. 2012-12-28 Stefano Lattarini release: stable major release 1.13 * configure.ac (AC_INIT): Bump version number to 1.13. * m4/amversion.m4 (AM_AUTOMAKE_VERSION): Likewise (regenerated by "make bootstrap"). 2012-12-24 Stefano Lattarini news: fix botched URL 2012-12-21 Akim Demaille ylwrap: various fixes Rename properly header guards in generated header files, instead of leaving Y_TAB_H. Convert header guards in implementation files. Because ylwrap failed to rename properly #include in the implementation files, current versions of Bison (e.g., 2.7) duplicate the generated header file in the implementation file. The header guard then protects the implementation file from duplicate definitions from the header file. Generate header guards with a single '_' for series of non alphabetic characters, instead of several. This is what Bison does. Makes the test t/yacc-d-basic.sh pass again. * lib/ylwrap (guard): Properly honor $1 to rename properly the header guards. Keep a single _ instead of several. (rename_sed): Rename as... (sed_fix_filenames): this. Suggested by Stefano Lattarini. (sed_fix_header_guards): New. Use it. 2012-12-21 Akim Demaille tests: strengthen the ylwrap tests * t/yacc-d-basic.sh: Comment changes. (generated): New. Use it to factor various tests. Check that Y_TAB_H is not issued. 2012-12-19 Stefano Lattarini NEWS: we plan to ditch MS-DOS/DJGPP support in future Automake versions 2012-12-19 Stefano Lattarini maint: typofixes in makefile comments * maint.mk (git-upload-release): Here. 2012-12-19 Stefano Lattarini maint: remove extra verbosity from a maintainer rule * maint.mk (git-upload-release): Here, by adding a forgotten '@' recipe modifier. 2012-12-19 Stefano Lattarini NEWS: fix grammaro 2012-12-19 Stefano Lattarini maint: version bump after beta release * configure.ac (AC_INIT): Bump version number to 1.12c, as per HACKING suggestion. * m4/amversion.m4: Likewise (autoupdated by "make bootstrap"). 2012-12-19 Stefano Lattarini release: beta release 1.12b (will become 1.13) * configure.ac (AC_INIT): Bump version number to 1.12b. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2012-12-19 Stefano Lattarini cosmetics: comments fixlets in our Makefile * Makefile.am: Prefer '#' comments over '##' ones where it makes sense. Other minor style tweaks to comments about "updated later" variables. 2012-12-19 Stefano Lattarini cosmetics: consistency changes in some make recipes * Makefile.am (install-exec-hook, uninstall-hook): Don't use extra quoting in variable assignments. More consistent use of whitespace. 2012-12-18 Stefano Lattarini tests: avoid a spurious failure on NetBSD * t/tags-pr12372.sh (configure.ac): AC_SUBST the LINK variable to a dummy invocation, to avoid possible errors from make or the linker; errors we do not care about in the least in this test. (Makefile.am, sub/Makefile.am): Remove LINK definitions; simply inherit that in configure.ac. 2012-12-18 Stefano Lattarini tests: re-enable some checks disabled by mistake ... * t/subpkg-macrodir.sh: ... in this test. And fix some typos that would have caused the newly re-enabled check to spuriously fail. Issue revealed by the lack of '.PHONY' support in Solaris CCS make (yes, so we've been actually *helped* by that make implementation once, at last. Scary ;-) 2012-12-18 Stefano Lattarini tests: avoid a "grep -E" portability issue As stated in the Autoconf manual, the empty alternative is not portable with "grep -E". For example, while with GNU grep we have: $ echo b | grep -E '(|a)b'; echo status = $? b status = 0 with Solaris 10 /usr/xpg4/bin/grep we have: $ echo b | grep -E '(|a)b'; echo status = $? 1 status = 1 * t/silent-texi.sh: That was causing a spurious failure here. Fix it by simply using '?' instead (as suggested by the Autoconf manual). 2012-12-18 Stefano Lattarini tests: avoid a spurious failure due to a Clang bug This version of clang: clang version 3.2 (trunk 163574) Target: powerpc64-unknown-linux-gnu Thread model: posix caused the test 't/ltcond2.sh' to spuriously fail due to what appeared like a clang bug. Here is a part of the diagnostic (trimmed down for better clarity): clang: .../cfarm/llvm/lib/MC/MCAsmStreamer.cpp:338: \ virtual void {anonymous}::MCAsmStreamer::EmitLabel(llvm::MCSymbol*): \ Assertion `Symbol->isUndefined() && "Cannot define a symbol twice!"' \ failed. ... 7 clang 0x0000000012a459c4 llvm::AsmPrinter::EmitGlobalVariable\ (llvm::GlobalVariable const*) + 18446744073680468044 8 clang 0x0000000012a490a8 llvm::AsmPrinter::doFinalization\ (llvm::Module&) + 18446744073680481840 ... Stack dump: 0. Program arguments: .../opt/cfarm/clang-2012.09.10/bin/clang \ -cc1 -triple powerpc64-unknown-linux-gnu -S -disable-free \ ... 1. parser at end of file 2. Code generation 3. Running pass 'Function Pass Manager' on module 'hello-generic.c'. clang: error: unable to execute command: Aborted clang: error: clang frontend command failed due to signal (use -v to \ see invocation) clang version 3.2 (trunk 163574) Target: powerpc64-unknown-linux-gnu Thread model: posix So tweak the affected test case to avoid triggering this bug. This is the easiest way for us to keep the testsuite result clean and meaningful on our main Clang test bed. * t/ltcond2.sh: Prefer using "extern const char *" variables rather than functions returning a statically allocated "const char *" variable. 2012-12-16 Stefano Lattarini NEWS: start preparing for the 1.13 release * NEWS: Here. In particular, list (some of) the planned future backward-incompatibilities that will take place in Automake 1.14. 2012-12-16 Stefano Lattarini Merge branch 'maint' * maint: tests: typofix in the shebang line of 't/py-compile-destdir.sh' HACKING: release process: fixlets about the announcement maint: post-release minor version bump release: stable release 1.12.5 tests: avoid errors due to underquoted third-party macros maintcheck: also consider contrib tests for syntax checks cosmetics: whitespace fixlets in syntax-checks.mk maint: prefer $(MKDIR_P) over $(mkinstalldirs) in maintainer rules 2012-12-15 Stefano Lattarini tests: typofix in the shebang line of 't/py-compile-destdir.sh' 2012-12-15 Stefano Lattarini HACKING: release process: fixlets about the announcement * HACKING: The announcement should be generate *before* bumping the version number to the next alpha number. Also, only an abridged version of the announcement should be copied on the Savannah news feed (a link to the complete announcement should be linked from there, though). 2012-12-15 Stefano Lattarini maint: post-release minor version bump * configure.ac (AC_INIT): Bump version number to 1.12.6a. * m4/amversion.m4: Likewise (automatically regenerated by "make bootstrap"). 2012-12-15 Stefano Lattarini release: stable release 1.12.5 * configure.ac (AC_INIT): Bump version number to 1.12.5. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2012-12-14 Stefano Lattarini tests: avoid errors due to underquoted third-party macros * t/pkg-config-macros.sh: Call aclocal with the warnings in the "syntax" category disabled. 2012-12-14 Stefano Lattarini maintcheck: also consider contrib tests for syntax checks * syntax-checks.mk (xtests): By listing them here. 2012-12-14 Stefano Lattarini cosmetics: whitespace fixlets in syntax-checks.mk 2012-12-14 Stefano Lattarini maint: prefer $(MKDIR_P) over $(mkinstalldirs) in maintainer rules * maint.mk (check-coverage-run, recheck-coverage-run): Here. This is especially useful since $(mkinstalldirs) is no longer available in Automake-NG. 2012-12-14 Stefano Lattarini Merge branch 'maint' * maint: sync: update files from upstream with "make fetch" gitignore: align with recent changes fixup: add dummy rule for ChangeLog generation in Makefile.am maint: no longer use AM_MAKEFLAGS in maintainer rules maint: use more GNU make features in maintainer rules maint: move maintainer make rules in maint.mk 2012-12-14 Stefano Lattarini sync: update files from upstream with "make fetch" * lib/gnupload: Update. See: 2012-12-14 Stefano Lattarini gitignore: align with recent changes 2012-12-14 Stefano Lattarini fixup: add dummy rule for ChangeLog generation in Makefile.am So that automake won't complain about the missing ChangeLog. The real rule for ChangeLog generation is now in maint.mk (as it is maintainer-specific). * Makefile.am (ChangeLog): Dummy. 2012-12-14 Stefano Lattarini maint: no longer use AM_MAKEFLAGS in maintainer rules They are not required with GNU make. * maint.mk: Adjust accordingly. 2012-12-14 Stefano Lattarini maint: use more GNU make features in maintainer rules * maint.mk: Here, throughout the file. Other minor cleanups and refactorings while at it. 2012-12-14 Stefano Lattarini maint: move maintainer make rules in maint.mk This is done for two reasons: 1. It will enable us to take advantage of more GNU make features in our maintainer-specific recipes, if we want to (and we probably will). 2. The Makefile.am won't have to be modified each time a maintainer rule needs to be changed or tweaked; this will prevent useless remaking of (in particular) the 't/testsuite-part.am' file. * maint.mk: New, several recipes, rules and variables for maintainer-specific tasks, extracted (with some tweaks) from ... * Makefile.am: ... this file. (EXTRA_DIST): Add 'maint.mk'. * GNUmakefile: Include 'maint.mk' after 'Makefile'. 2012-12-14 Stefano Lattarini fixup: source 'test-init.sh', not './defs', in a test * t/pkg-config-macros.sh: Here. 2012-12-14 Stefano Lattarini Merge branch 'maint' * maint: docs: fixlet about xz compression levels and command line options maint: more files excluded in 'update-copyright' maint: adapt 'update-copyright' recipe to the new $(FETCHFILES) format HACKING: update instructions to update the manuals at www.gnu.org maint: add an explicative comment in Makefile maint: factor out the name of the dir where web manuals are generated maint: rename rules to build/upload web manuals cosmetic: minor variable and rules reordering in Makefile.am docs: build the web manuals for CVS in the builddir, not in the srcdir release: automate uploading of web manuals in CVS docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc tests: avoid two spurious failures on FreeBSD tests: improve 'pkg-config' requirement 2012-12-14 Stefano Lattarini Merge branch 'improve-release-process' into maint * improve-release-process: HACKING: update instructions to update the manuals at www.gnu.org maint: add an explicative comment in Makefile maint: factor out the name of the dir where web manuals are generated maint: rename rules to build/upload web manuals cosmetic: minor variable and rules reordering in Makefile.am docs: build the web manuals for CVS in the builddir, not in the srcdir release: automate uploading of web manuals in CVS docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc tests: avoid two spurious failures on FreeBSD 2012-12-14 Stefano Lattarini Merge branch 'pkgconfing-tests-requirement' into maint * pkgconfing-tests-requirement: tests: improve 'pkg-config' requirement 2012-12-14 Patrick Welche (tiny change) docs: fixlet about xz compression levels and command line options * doc/automake.texi (The types of distributions): To display a progress bar, xz takes "-v" for verbose. 2012-12-13 Stefano Lattarini maint: more files excluded in 'update-copyright' This will avoid the following spurious warnings when "make update-copyright" is run: .autom4te.cfg: warning: copyright statement not found .git-log-fix: warning: copyright statement not found .gitattributes: warning: copyright statement not found .gitignore: warning: copyright statement not found AUTHORS: warning: copyright statement not found THANKS: warning: copyright statement not found contrib/README: warning: copyright statement not found contrib/multilib/README: warning: copyright statement not found doc/amhello/README: warning: copyright statement not found lib/install-sh: warning: copyright statement not found lib/mkinstalldirs: warning: copyright statement not found m4/acdir/README: warning: copyright statement not found t/README: warning: copyright statement not found * Makefile.am (files_without_copyright): New. (update-copyright): Use it when computing '$exclude_list'. Also, skip any README file. 2012-12-13 Stefano Lattarini maint: adapt 'update-copyright' recipe to the new $(FETCHFILES) format This is a fixup for commit v1.12.5-27-g71ce1b4 of 2012-12-09, "fetch: improve, and reduce code duplication". * Makefile.am (update-copyright): Adjust. 2012-12-13 Stefano Lattarini HACKING: update instructions to update the manuals at www.gnu.org 2012-12-13 Stefano Lattarini maint: add an explicative comment in Makefile * Makefile.am (web-manual-update): Here, about a slightly tricky feature of rsync(1) used in the recipe. 2012-12-13 Stefano Lattarini maint: factor out the name of the dir where web manuals are generated Just a minor refactoring to reduce duplication; no semantic change is intended. * Makefile.am (web_manual_dir): New. (web-manual, web-manual-update, clean-web-manual): Use it. 2012-12-13 Stefano Lattarini maint: rename rules to build/upload web manuals The new names are the same used by the similar-purpose rules provided by the 'top/maint.mk' makefile in gnulib (as of commit v0.0-7741-g4a8c422). No need to have gratuitous incompatibilities. * Makefile.am (web-manuals): Rename ... (web-manual): ... like this. (upload-web-manuals): Rename ... (web-manual-update): ... like this. (clean-web-manuals): Rename ... (clean-web-manual): ... like this. 2012-12-13 Stefano Lattarini cosmetic: minor variable and rules reordering in Makefile.am 2012-12-13 Stefano Lattarini docs: build the web manuals for CVS in the builddir, not in the srcdir We can do so using the '-I' option of the gendocs.sh script. Inspired by the 'web-manual' rule in the 'top/maint.mk' file provided by gnulib (as of commit v0.0-7741-g4a8c422) as customized by Bison in its 'cfg.mk' file (as of commit v2.6.5-1007-gf5fceda). * Makefile.am (web-manuals): Modify and simplify to take advantage of gendocs.sh's '-I' option. (upload-we-manuals): Accordingly adjust sanity checks and the rsync invocation in the recipe. (clean_texinfo_clutter_cmd): Delete this variable, it's no longer required. (clean-texinfo-clutter): Delete this phony target, it's no longer required. (clean-local): Don't depend on it. * configure.ac: Invoke AC_PROG_LN_S, since we want to use $(LN_S) in the new 'web-manuals' recipe. 2012-12-13 Stefano Lattarini release: automate uploading of web manuals in CVS This is partly inspired to the 'gnu-web-doc-update' script from gnulib. Unfortunately, we can't use that script directly, because as of now it assumes a build system integrated with gnulib. * Makefile.am (upload-web-manuals): New .PHONY rule. (RSYNC, CVS, CVSU, CVS_USER, WEBCVS_ROOT): New variables, used by the new rule. 2012-12-13 Stefano Lattarini docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc * doc/automake.texi (Program variables): Here. Reported by NightStrike: 2012-12-13 Stefano Lattarini tests: avoid two spurious failures on FreeBSD Due to the FreeBSD make bug that causes of the well-known automake bug#7884, two of our bison-requiring tests were failing on FreeBSD. To avoid this, simply skip the part of these tests affected by that bug. * t/yacc-bison-skeleton.sh: Here, using the 'yl_distcheck' function. * t/yacc-bison-skeleton-cxx.sh: Likewise. * t/yacc-nodist.sh: While at it, use the 'yl_distcheck' here as well, instead of running "$MAKE distcheck" only when $MAKE is GNU make. 2012-12-13 Stefano Lattarini tests: improve 'pkg-config' requirement This improves (and unifies among different tests) the detection of both the 'pkg-config' program and m4 macros provided by it; they are needed in particular by tests on Vala support. Before this, some Vala-related tests were failing spuriously when the pkg-config program was available but the macros from pkg.m4 were not made explicitly available in ACLOCAL_PATH. These tests were: vala-mix vala-mix2 vala-parallel vala-vapi vala-vpath See also similar commit 'v1.11-581-gb7d67d5' of 2011-12-22, "tests: better handling of gettext and libtool requirements". * t/ax/am-test-lib.sh (process_requirements): If a requirement matches the 'pkg-config*' wildcard, try to make available to it the pkg-config m4 macros, and skip it if it's not possible. This is done by sourcing the 'get.sh' fragment generated by ... * t/pkg-config-macros.sh: ... this new test, which looks in advance for the 'pkg-config' program and the m4 macros that comes with it. * t/list-of-tests.mk: Add the new test. * gen-testsuite-part (%deps_extractor): Tests requiring pkg-config will need the m4 macros coming with it; so these tests should be run after the 'pkg-config-macros.sh' test. Automatically generate proper declarations for such dependencies. * t/vala-header.sh: No need to explicitly check that the macro PKG_CHECK_MODULES has been expanded by autoconf. * t/vala-libs.sh: Likewise. * t/vala-non-recursive-setup.sh: Likewise. * t/vala-per-target-flags.sh: Likewise. * t/vala-recursive-setup.sh: Likewise. 2012-12-09 Stefano Lattarini Merge branch 'maint' * maint: docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc maintcheck: prefer '$(am__cd)' over plain 'cd' fetch: improve, and reduce code duplication docs: add rule to generate manuals for www.gnu.org docs: copy the 'gendocs.sh' script from Texinfo CVS repository sync: update files from upstream with "make fetch" release: generate a stub for the release announcement release: distinguish major and minor releases tests: avoid two spurious failures on FreeBSD 2012-12-09 Stefano Lattarini Merge branch 'improve-release-process' into maint * improve-release-process: maintcheck: prefer '$(am__cd)' over plain 'cd' fetch: improve, and reduce code duplication docs: add rule to generate manuals for www.gnu.org docs: copy the 'gendocs.sh' script from Texinfo CVS repository sync: update files from upstream with "make fetch" release: generate a stub for the release announcement release: distinguish major and minor releases 2012-12-09 Stefano Lattarini docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc * doc/automake.texi (Program variables): Here. Reported by NightStrike: 2012-12-09 Stefano Lattarini maintcheck: prefer '$(am__cd)' over plain 'cd' In a couple of rules in out own build system, as suggested by the maintainer check 'sc_cd_relative_dir'. * Makefile.am (web-manuals, clean_texinfo_clutter_cmd): Adjust. 2012-12-09 Stefano Lattarini fetch: improve, and reduce code duplication * Makefile.am (WGET_SV_CVS, WGET_SV_GIT_CF, WGET_SV_GIT_AC, WGET_SV_GIT_GL): Delete. (SV_CVS, SV_GIT_CF, SV_GIT_AC, SV_GIT_GL): New. (fetch): Simplify and enhance. (update-copyright): Adjust. 2012-12-09 Stefano Lattarini docs: add rule to generate manuals for www.gnu.org Less clerical work to do by hand. * Makefile.am (web-manuals): New rule. (clean_texinfo_clutter): New macro. * clean-web-manuals, clean-texinfo-clutter: New cleaning rules. (clean-local): Depend on them. * .gitignore: Update. * HACKING: Adjust instructions for generation of manuals. 2012-12-08 Stefano Lattarini docs: copy the 'gendocs.sh' script from Texinfo CVS repository As well as the 'gendocs_template' file. And enhance the "make fetch" target to keep them synced. It's better than having to fetch these files by hand each time a release is to be made. * Makefile.am (FETCHFILES): List 'gendocs.sh' and 'gendocs_template'. (fetch): Fetch them, into 'lib/'. (EXRA_DIST): Distribute them. * HACKING: Adjust instructions for generation of manuals. 2012-12-08 Stefano Lattarini sync: update files from upstream with "make fetch" * lib/config.sub: Update. 2012-12-08 Stefano Lattarini release: generate a stub for the release announcement It's much better than having to write it my hand each time; after all, most of it is either boilerplate or a cope of NEWS entries. * Makefile.am (determine_release_type): Also set the shell variable '$announcement_type' appropriately. (print-release-type): Print the value of this new variable as well. (announcement): New phony target, generate a files with the same name. The recipe uses the shell variable '$announcement_type'. (CLEANFILES): Clean it. (PACKAGE_MAILINGLIST): New make macro, used when generating the 'announcement' file. * HACKING: Explain how to take advantage of the new convenience target. * .gitignore: Ignore the 'announcement' file. 2012-12-08 Stefano Lattarini release: distinguish major and minor releases This is mostly a preparatory change, in view of future improvements in our release process. * Makefile.am (determine_release_type): Also distinguish between major and minor releases, with the help of ... (stable_major_version_rx, stable_minor_version_rx): ... these new macros. (stable_version_rx): Remove, it's obsolete now. (version_rx): Rename ... (base_version_rx): ... like this, and adjust. (print-release-type): New target; helps in debugging the code that determines the release type. 2012-11-30 Stefano Lattarini tests: avoid two spurious failures on FreeBSD Due to the FreeBSD make bug that causes of the well-known automake bug#7884, two of our bison-requiring tests were failing on FreeBSD. To avoid this, simply skip the part of these tests affected by that bug. * t/yacc-bison-skeleton.sh: Here, using the 'yl_distcheck' function. * t/yacc-bison-skeleton-cxx.sh: Likewise. * t/yacc-nodist.sh: While at it, use the 'yl_distcheck' here as well, instead of running "$MAKE distcheck" only when $MAKE is GNU make. 2012-11-27 Stefano Lattarini Merge branch 'depcomp-work' * depcomp-work: depcomp: remove 'icc' depmode, add 'tcc' one news: update w.r.t. recent depcomp changes tests: fix spurious failures with tcc depcomp: improve comments about tcc support depcomp: remove last relics of libtool 1.4 support depcomp: remove an unused variable depcomp: rewrite a sed invocation for less quoting depcomp: whitespace fixes depcomp: shell code style changes depcomp: make some code more self-documenting depcomp: less duplication between AIX and Tru64 modes depcomp: avoid an extra fork when possible depcomp: reduce code duplication depcomp: don't rely on character ranges working as in C locale depcomp: cosmetic fixlets to a comment depcomp: safer quoting in variable expansion depcomp: correctly propagate exit status in exit trap depcomp: use "rmdir", not "rm -rf", to remove the empty lock directory depcomp: remove useless quoting in variable definitions depcomp: be more idiomatic in checking for zero exit statuses 2012-11-27 Stefano Lattarini Merge branch 'maint' * maint: news: we'll remove AM_PROG_MKDIR in 1.14, not 1.13 tests: give few vala tests more significant names vala tests: don't use the 'posix' profile, it's no longer supported news: fixup: bug#8847 is fixed in 1.12.6, not in 1.12.5 news: document the fix for automake bug#10227 tests: fix a spurious testsuite failure on Solaris python: make installed modules find by default on Debian and Ubuntu 2012-11-26 Stefano Lattarini news: we'll remove AM_PROG_MKDIR in 1.14, not 1.13 See also commit v1.12.4-158-gdf23daf. * NEWS (Future backward-incompatibilities): Adjust accordingly. 2012-11-26 Stefano Lattarini tests: give few vala tests more significant names * t/vala.sh: Rename ... * t/vala-grepping.sh: ... like this. * t/vala2.sh: Rename ... * t/vala-recursive-setup.sh: ... like this. * t/vala3.sh: Rename ... * t/vala-non-recursive-setup.sh: ... like this. * t/vala4.sh: Rename ... * t/vala-configure.sh: ... like this. * t/vala5.sh: Rename ... * t/vala-per-target-flags.sh: ... like this, and slightly improve heading comments. * t/list-of-tests.mk: Adjust. 2012-11-26 Stefano Lattarini vala tests: don't use the 'posix' profile, it's no longer supported Fixes automake bug#12934 a.k.a. bug#12522. Some of automake's Vala tests used to rely on "valac --profile posix" (which makes it not use glib). However, the posix profile was removed in August 2012, and is no longer present in the GNOME 3.6.2 version of valac (see commit ca020bf0 in the vala Git repository). * t/vala-libs.sh: Adjust to avoid using the posix profile. * t/vala-mix.sh: Likewise. * t/vala-mix2.sh: Likewise. * t/vala-parallel.sh: Likewise. * t/vala-vapi.sh: Likewise. * t/vala-vpath.sh: Likewise. * NEWS: Update and adjust. 2012-11-26 Stefano Lattarini news: fixup: bug#8847 is fixed in 1.12.6, not in 1.12.5 * NEWS (Bugs fixed in 1.12.5): So move it from here ... (Bugs fixed in 1.12.6): ... to here. 2012-11-26 Stefano Lattarini news: document the fix for automake bug#10227 This is a follow-up commit for v1.12.5-14-g1f113f6. * NEWS: Update. 2012-11-26 Stefano Lattarini Merge branch 'python-fix-pr10227' into maint * python-fix-pr10227: python: make installed modules find by default on Debian and Ubuntu 2012-11-26 Stefano Lattarini tests: fix a spurious testsuite failure on Solaris Reported in automake bug#11524. * t/amhello-binpkg.sh: When non-GNU tar is in use, relax grepping of "tar cvf ..." output a little more. 2012-11-25 Stefano Lattarini tests: give few aclocal tests more significant names * t/dirlist-abspath.sh: Rename ... * t/aclocal-dirlist-abspath.sh: ... like this. * t/dirlist.sh: Rename ... * t/aclocal-dirlist.sh: ... like this. * t/dirlist2.sh: Rename ... * t/aclocal-dirlist-globbing.sh: ... like this. * t/list-of-tests.mk: Adjust. 2012-11-24 Stefano Lattarini tests: remove a redundant workaround for a testsuite weakness * t/warnings-unknown.sh: Here, since we have improved our wrapper scripts for aclocal and automake enough to make that workaround unneeded. 2012-11-24 Stefano Lattarini depcomp: remove 'icc' depmode, add 'tcc' one According to the comments in the now-removed test 'depcomp5.test' (removed by commit 'v1.11-1829-g5066c1b' of 2012-02-08, "tests: improve and rework tests on dependency tracking") "icc 8.0 and greater understand gcc options, so depmode is set to gcc". According to Wikipedia, the 8.0 version of the Intel C compiler has been released in December 2003, that is, almost nine yeas ago. So we can remove explicit support for icc 7.x from the depcomp script. Since our support for tcc has so far been relied on the icc depmode, we must write a new explicit 'tcc' depmode. That is easy to do, since we can rely on the simpler and better-specified format of tcc-specified makefiles; for more info, see: * lib/depcomp (icc): Remove. (tcc): New. * NEWS: Update. 2012-11-24 Stefano Lattarini news: update w.r.t. recent depcomp changes * NEWS: Here. 2012-11-24 Stefano Lattarini tests: fix spurious failures with tcc * t/depcomp8a.sh, t/depcomp8b.sh: Here, by avoiding initialization of global 'extern' variables, preferring functions definitions instead. 2012-11-24 Stefano Lattarini depcomp: improve comments about tcc support * lib/depcomp (icc): Here. See also tcc commit 0394caf7 "Emit spaces for -MD" and automake commit v1.11-768-gb96263 "depcomp: support tcc (Tiny C Compiler)". 2012-11-24 Stefano Lattarini depcomp: remove last relics of libtool 1.4 support * lib/depcomp (tru64): Here. 2012-11-24 Stefano Lattarini depcomp: remove an unused variable * lib/depcomp ($alnum): This. 2012-11-24 Stefano Lattarini depcomp: rewrite a sed invocation for less quoting * lib/depcomp (dashmstdout): Here. 2012-11-24 Stefano Lattarini depcomp: whitespace fixes * lib/depcomp: We indent by two spaces, and without using tabs. 2012-11-24 Stefano Lattarini depcomp: shell code style changes * lib/depcomp: Here, in comments and line continuations. 2012-11-24 Stefano Lattarini depcomp: make some code more self-documenting * lib/depcomp (make_dummy_makefile): With the help of this function. Use it throughout. 2012-11-24 Stefano Lattarini depcomp: less duplication between AIX and Tru64 modes * lib/depcomp (tru64, aix): In these entries of the big 'case' switch, with the help of ... (aix_post_process_depfile): ... this new function. 2012-11-24 Stefano Lattarini depcomp: avoid an extra fork when possible * lib/depcomp (set_dir_from): Here. 2012-11-24 Stefano Lattarini depcomp: reduce code duplication * lib/depcomp: Here, when we have to get the directory and basename components of objects or source files; do so with the help of ... (set_dir_from, set_base_from): ... these new shell functions. 2012-11-24 Stefano Lattarini depcomp: don't rely on character ranges working as in C locale * lib/depcomp (pgcc): Here. Related reorganization, with the unconditional definition of ... ($upper, $lower, $digits, $alnum, $alpha): ... these shell variables. 2012-11-24 Stefano Lattarini depcomp: cosmetic fixlets to a comment * lib/depcomp (pgcc): Here, as that's unportable according to the autoconf manual. In fact, there's no need to re-trap the signals just before exiting, since at that point a signal would cause at most a useless but harmless attempt to remove the 2012-11-24 Stefano Lattarini depcomp: safer quoting in variable expansion * lib/depcomp (pgcc): Here. Probably not needed, but since the rest of the script seems to employ proper quoting, better to be consistent. 2012-11-24 Stefano Lattarini depcomp: correctly propagate exit status in exit trap * lib/depcomp (pgcc): Here. 2012-11-24 Stefano Lattarini depcomp: use "rmdir", not "rm -rf", to remove the empty lock directory * lib/depcomp (pgcc): Here. 2012-11-24 Stefano Lattarini depcomp: remove useless quoting in variable definitions * lib/depcomp (pgcc): Here. 2012-11-24 Stefano Lattarini depcomp: be more idiomatic in checking for zero exit statuses * lib/depcomp: Prefer "if test $stat -ne 0; then ..." over the longer "if test $stat -eq 0; then :; else ...". 2012-11-24 Stefano Lattarini tests: give some tests more significant names * t/req.sh: Rename ... * t/aclocal-req.sh: ... like this. * t/reqd.sh: Rename ... * t/add-missing-multiple.sh: ... like this. * t/block.sh: Rename ... * t/comment-block.sh: ... like this. * t/list-of-tests.mk: Adjust. 2012-11-24 Stefano Lattarini Merge branch 'maint' * maint: tests: fix a spurious failure with older flex versions 2012-11-24 Stefano Lattarini python: make installed modules find by default on Debian and Ubuntu This change fixes automake bug#10227. The code used to get the python package directory was wrong for Python 3, at least on Debian and Ubuntu distributions. In the case the installation was using the default prefix "/usr/local", python modules were incorrectly installed in the directory /usr/local/lib/python3/dist-packages (which is *not* searched by default), rather than in a directory like /usr/local/lib/python3.x/dist-packages which is searched by default. * m4/python.m4 (AM_PATH_PYTHON): Try to use the 'sysconfig' module if possible, for better interactions with python 3.x. Helped-by: Reuben Thomas Helped-by: Roumen Petrov 2012-11-24 Stefano Lattarini tests: fix a spurious failure with older flex versions See automake bug#11524 and bug#12836. * t/lex-header.sh: Here, we use flex option '--header-file', but that option is not supported by some older flex versions. Simply skip this test if such an old flex version is detected. 2012-11-23 Stefano Lattarini tests: avoid a failure due to m4 builtin 'sinclude' in package name Even with Autoconf 2.69, AC_INIT is not very robust when to package names that contain some selected m4 builtins; for example: $ echo 'AC_INIT([sinclude], [1.0])' | autoconf -o/dev/null - stdin:1: warning: file `' included several times $ echo 'AC_INIT([dnl], [1.0])' | autoconf -o/dev/null - /usr/bin/m4:stdin:1: excess arguments to builtin `m4_define' ignored autom4te: /usr/bin/m4 failed with exit status: 1 Reference: * t/aclocal-m4-sinclude.sh (configure.ac): Use 'm4sinclude' as package name in the AC_INIT invocation, to avoid tickling the just-described bug. 2012-11-21 Stefano Lattarini Merge branch 'maint' * maint: tests: fix a spurious failure when $PYTHON is in the environment python tests: support PEP-3147 installation layout python: uninstall cater to PEP-3147 tests: improve a comment tests: honour $PYTHON override tests: typofix in message news: document fix for bug#8847 (PEP-3147, __pycache__) python: improve support for modern python (CPython 3.2 and PyPy) 2012-11-21 Stefano Lattarini Merge branch 'python-pep-3147' into maint * python-pep-3147: tests: fix a spurious failure when $PYTHON is in the environment python tests: support PEP-3147 installation layout python: uninstall cater to PEP-3147 tests: improve a comment tests: honour $PYTHON override tests: typofix in message news: document fix for bug#8847 (PEP-3147, __pycache__) python: improve support for modern python (CPython 3.2 and PyPy) 2012-11-19 Stefano Lattarini tests: fix a spurious failure when $PYTHON is in the environment * t/python11.sh: This test doesn't interact well with user-overrides of $PYTHON; and, given its particular nature, neither should it be expected to honour that override. Just unset that $PYTHON variable and live happy. 2012-11-19 Stefano Lattarini python tests: support PEP-3147 installation layout This fixes several spurious testsuite failures with python >= 3.2, introduced by recent commit v1.12.4-43-ge0e99ed, "python: improve support for modern python (CPython 3.2 and PyPy)". * t/ax/am-test-lib.sh (python_has_pep3147, pyc_location, py_installed): New functions. ($am_pep3147_tag): New variable. * t/py-compile-basic2.sh: Deleted, too difficult to adapt for the gain it would offer; move the still relevant parts ... * t/py-compile-basic.sh: ... here. Adapt and adjust the rest of the test as well. * t/nobase-python.sh: Adapt and adjust. * t/py-compile-basedir.sh: Likewise. * t/py-compile-destdir.sh: Likewise. * t/py-compile-option-terminate.sh: Likewise. * t/python-pr10995.sh: Likewise. * t/python-virtualenv.sh: Likewise. * t/python10.sh: Likewise. * t/python12.sh: Likewise. * t/python3.sh: Likewise. * t/list-of-tests.mk: Adjust list of tests. 2012-11-19 Stefano Lattarini python: uninstall cater to PEP-3147 After recent commit commit v1.12.4-43-ge0e99ed, "python: improve support for modern python (CPython 3.2 and PyPy)", the python install rules have been made smart enough to install "*.pyc" byte-compiled files according to PEP-3147 with modern (post-3.2) pythons. However, the uninstall rules hadn't been updated accordingly, causing leftover files to remain around after "make uninstall", as well as failures in "make distcheck". * lib/am/python.am (am__pep3147_tweak): New internal macro, used in ... (uninstall-%DIR%PYTHON): ... the recipe of this target, which has been adjusted to cater to PEP-3147 2012-11-19 Stefano Lattarini tests: more explicative names for few aclocal tests * t/aclocal3.sh: Rename ... * t/aclocal-missing-macros.sh: ... like this. * t/aclocal4.sh: Rename ... * t/aclocal-deps.sh: ... like this. * t/aclocal5.sh: Rename ... * t/aclocal-deps-subdir.sh: ... like this. * t/aclocal6.sh: Rename ... * t/aclocal-remake-misc.sh: ... like this. * t/aclocal7.sh: Rename ... * t/aclocal-no-force.sh: ... like this. * t/acloca8.sh: Rename ... * t/aclocal-no-unused-required.sh: ... like this. * t/acloca9.sh: Rename ... * t/aclocal-I-order-1.sh: ... like this. * t/acloca11.sh: Rename ... * t/aclocal-I-order-2.sh: ... like this, and update heading comments. * t/acloca12.sh: Rename ... * t/aclocal-I-order-3.sh: ... like this, and update heading comments. * t/acloca13.sh: Rename ... * t/aclocal-m4-sinclude.sh: ... like this, and update heading comments. * t/acloca14.sh: Rename ... * t/aclocal-m4-include-are-scanned.sh: ... like this. * t/acloca14.sh: Rename ... * t/aclocal-m4-include-are-scanned-aclocal-amflags.sh: ... like this, and update heading comments. * t/acloca15.sh: Rename ... * t/aclocal-scan-configure-ac-pr319.sh: ... like this. * t/acloca16.sh: Rename ... * t/aclocal-no-extra-scan.sh: ... like this, and enhance slightly. * t/acloca18.sh: Rename ... * t/aclocal-serial.sh: ... like this. * t/acloca19.sh: Rename ... * t/aclocal-pr450.sh: ... like this. * t/acloca20.sh: Rename ... * t/aclocal-no-symlinked-overwrite.sh: ... like this. * t/acloca21.sh: Rename ... * t/aclocal-comments-respected.sh: ... like this. * t/acloca22.sh: Rename ... * t/aclocal-deleted-header.sh: ... like this. * t/acloca22b.sh: Rename ... * t/aclocal-deleted-header-aclocal-amflags.sh: ... like this. * t/acloca23.sh: Rename ... * t/aclocal-underquoted-defun.sh: ... like this. * t/list-of-tests.mk: Update. 2012-11-18 Stefano Lattarini tests: improve coverage on Texinfo + silent rules * t/silent-texi.sh: Here, by basic importing the version of the test that is the 'ng/master' branch (that of Automake-NG), plus a minor tweak to avoid a spurious failure with NetBSD make. 2012-11-17 Stefano Lattarini Merge branch 'maint' * maint: build: fix rebuild rules for Makefile.in and aclocal.m4 hacking: release procedure: fix order of some steps maint: post-release minor version bump release: stable release 1.12.5 2012-11-17 Stefano Lattarini build: fix rebuild rules for Makefile.in and aclocal.m4 They have been broken after our removal of the 'perllibdir' hack in yesterday's commit v1.12.4-45-g4872dfe. * configure.ac: Rather then redefining AUTOMAKE and ACLOCAL to explicitly override the perllibdir, the acdir and the libdir, use the ready-made t/wrap/{aclocal,automake}-$APIVERSION scripts. * NEWS: Document the fix. 2012-11-17 Stefano Lattarini hacking: release procedure: fix order of some steps * HACKING (Release procedure): The manuals should be rebuilt and uploaded at at www.gnu.org *before* bumping the version number to the next alpha release. 2012-11-17 Stefano Lattarini maint: post-release minor version bump * configure.ac (AC_INIT): Bump version number to 1.12.5a. * m4/amversion.m4: Likewise (automatically regenerated by "make bootstrap"). 2012-11-17 Stefano Lattarini release: stable release 1.12.5 * configure.ac (AC_INIT): Bump version number to 1.12.5. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2012-11-16 Stefano Lattarini Merge branch 'maint' * maint: maintcheck: avoid failures, sync with 'ng/master' more maintcheck: remove 'sc_perl_syntax' sync: update files from upstream with "make fetch" maint: get rid of $perllibdir environment variable hack configure: respect the '-q' option better cosmetics: de-tabify configure.ac 2012-11-16 Stefano Lattarini maintcheck: avoid failures, sync with 'ng/master' more * syntax-checks.mk (sc_diff_aclocal_in_aclocal, sc_diff_automake_in_automake): Rename ... (sc_diff_aclocal, sc_diff_automake): ... respectively to these, rewrite to use static pattern rules and 'diff -u' instead of bare 'diff'. This makes the rules more robust in the face of edits to 'automake.in' and 'aclocal.in', and get them in sync with the corresponding checks in the 'ng/master' branch. (syntax_check_rules): Adjust. 2012-11-16 Stefano Lattarini maintcheck: remove 'sc_perl_syntax' It is quite useless, since a "make bootstrap" or "make check" would immediately catch a breakage in the 'aclocal' or 'automake' scripts anyway. In addition, the recent removal of the 'perllibdir' environment variable hack has broken this check. * syntax-checks.mk (sc_perl_syntax): Remove. (syntax_check_rules): No longer list it. 2012-11-16 Stefano Lattarini sync: update files from upstream with "make fetch" * lib/texinfo.tex, lib/config.sub: Update. 2012-11-16 Stefano Lattarini maint: get rid of $perllibdir environment variable hack That was needed when the automake-$APIVERSION and aclocal-$APIVERSION wrapper scripts used by the testsuite were shell script, rather than perl scripts acting as a thin layers. * aclocal.in (BEGIN): Update @INC based on the contents of the array '@Aclocal::perl_libdirs', rather than of the environment variable 'perllibdir'. * t/wrap/aclocal.in (BEGIN): Initialize '@Aclocal::perl_libdirs' rather than $ENV{'perllibdir'}. * automake.in (BEGIN): Update @INC based on the contents of the array '@Automake::perl_libdirs', rather than of the environment variable 'perllibdir'. * t/wrap/automake.in (BEGIN): Initialize '@Automake::perl_libdirs' rather than $ENV{'perllibdir'}. * NEWS: Update. 2012-11-16 Stefano Lattarini configure: respect the '-q' option better * configure.ac: Here, by avoiding to print the warnings about using a non-stable Automake version if the '$silent' variable is set to "yes". 2012-11-16 Stefano Lattarini cosmetics: de-tabify configure.ac 2012-11-15 Stefano Lattarini fixup: Automake installation works again By renaming 'dist_automake_ac_DATA' to 'nobase_dist_automake_ac_DATA' in a recent patch, we have broken the Automake installation, since m4 files that were expected to be installed in '${prefix}/aclocal-${APIVERSION}' are now being installed in '${prefix}/aclocal-${APIVERSION}/m4' instead. Fix this mess. * Makefile.am (nobase_dist_automake_ac_DATA): Rename ... (dist_automake_ac_DATA): ... like this. And move 'm4/internal/ac-config-macro-dirs.m4' ... (dist_automake_internal_ac_DATA): ... here. (automake_internal_acdir): New, simply defined to '$(automake_acdir)/internal'. 2012-11-15 Stefano Lattarini Merge branch 'ac-config-macro-dirs' * ac-config-macro-dirs: tests: AC_CONFIG_MACRO_DIRS: ignore inevitable failures with old autoconf aclocal: AC_CONFIG_MACRO_DIRS: work around autom4te option parsing bugs aclocal: tracing AC_CONFIG_MACRO_DIRS can work with older autoconf as well 2012-11-15 Stefano Lattarini tests: AC_CONFIG_MACRO_DIRS: ignore inevitable failures with old autoconf When "older" version of autoconf are used (that is, those before commit v2.69-44-g1ed0548), we have no sane way to prevent the autom4te invocation issued from aclocal to possibly display warnings "MACRO m4_require'd but not m4_defun'd". That's not a big deal, because that just means that people using pre-2.70 autoconf with cutting-edge automake will see few spurious warnings, but the actual semantics will remain correct. However, this blemish was causing a couple of annoying testsuite failures. Solve this by simply skipping the affected tests when older (pre-2.70) autoconf versions are used. * t/aclocl-macrodir.tap ("AC_CONFIG_MACRO_DIR interaction with AC_REQUIRE"): Skip when older autoconf is in use. * t/aclocl-macrodirs.tap ("AC_CONFIG_MACRO_DIR interaction with AC_REQUIRE"): Likewise. 2012-11-15 Stefano Lattarini recursion: remove _AM_EXTRA_RECURSIVE_TARGETS indirection Since automake automatically smashes extra whitespace and newlines in the arguments of the macros it traces, we can remove the extra indirection with the _AM_EXTRA_RECURSIVE_TARGETS. This doesn't truly simplify the existing code, but make it slightly easier to understand anyway, since leave it with one less indirection. * automake.in: Trace AM_EXTRA_RECURSIVE_TARGETS directly, rather than tracing _AM_EXTRA_RECURSIVE_TARGETS. Remove trailing and leading empty fields in the extracted arguments. * m4/extra-recurs.m4 (_AM_EXTRA_RECURSIVE_TARGETS): Remove, no longer needed. (AM_EXTRA_RECURSIVE_TARGETS): Adjust by making it a simple no-op. 2012-11-15 Stefano Lattarini aclocal: AC_CONFIG_MACRO_DIRS: work around autom4te option parsing bugs The autom4te program coming with autoconf 2.68 and earlier had a bug which caused the "-" command line argument (with which we tell it to read some input from from standard input) to aways be pushed at the *end* of the command line, regardless of where the user specified it (that bug was fixed by autoconf commit 'v2.68-120-gf4be358', "getopt: new Autom4te::Getopt module"). This broken semantics conflict with our usage in aclocal, where we need to pass some input to the invoked autom4te program early, and have so far been using the stdin to do so. Now we start using an external file instead. * m4/internal/ac-config-macro-dirs.m4: New file, contain a fallback definition of the AC_CONFIG_MACRO_DIRS macro for older autoconf releases. * aclocal.in (trace_used_macros): When invoking autom4te, use that file instead of "abusing" standard input. * Makefile.am (dist_automake_ac_DATA): Rename ... (nobase_dist_automake_ac_DATA): ... like this. Add 'm4/internal/ac-config-macro-dirs.m4' to it. * t/aclocal-acdir.sh: Adjust to avoid spurious failures. Helped-by: Eric Blake 2012-11-15 Stefano Lattarini aclocal: tracing AC_CONFIG_MACRO_DIRS can work with older autoconf as well This will allow our users to interact also with pre-2.70 autoconf without need for the user to add ACLOCAL_AMFLAGS in Makefile.am. For example, before this change, in order to have aclocal look for macros in 'm4/dir1' and 'm4/dir2' also when (say) autoconf 2.69 was used, our users would have had to add something like: ACLOCAL_AMFLAGS = -I m4/dir1 -I m4/dir2 in Makefile.am, in addition to the AC_CONFIG_MACRO_DIRS([m4/dir1 m4/dir2]) in configure.ac. Now, the AC_CONFIG_MACRO_DIRS call is enough. See the long-winded discussion on automake bug#12845 for more details: * aclocal.in ($ac_config_macro_dirs_fallback): New global variable, contains m4 code to issue a fallback definition of AC_CONFIG_MACRO_DIRS as an alias for the private macro _AM_CONFIG_MACRO_DIRS. (trace_used_macros): Handle and trace that macro. Do some code reorganization and fix related botched indentation while at it. (write_aclocal): Output '$ac_config_macro_dirs_fallback' early in the generated aclocal.m4. * t/aclocal-macrodirs.tap: Run unconditionally, even with older autoconf. * t/subpkg-macrodir.sh: Likewise. * doc/automake.texi: Document only AC_CONFIG_MACRO_DIRS, rather than AC_CONFIG_MACRO_DIR. 2012-11-14 Stefano Lattarini Merge branch 'ac-config-macro-dirs' * ac-config-macro-dirs: news: we trace AC_CONFIG_MACRO_DIRS aclocal: trace AC_CONFIG_MACRO_DIR_TRACE aclocal: avoid spurious warnings from autom4te with AC_CONFIG_MACRO_DIRS coverage: expose a bug in aclocal (spurious warnings) aclocal: smash newlines in arguments of traced macros tests: better coverage for AC_CONFIG_MACRO_DIRS aclocal: diagnose non-existing directories in AC_CONFIG_MACRO_DIRS better aclocal: multiple local m4 macro dirs with AC_CONFIG_MACRO_DIRS 2012-11-11 Stefano Lattarini tests: improve a comment * t/ax/am-test-lib.sh (require_tool): Here, about python support for '--version' option. 2012-11-11 Stefano Lattarini tests: honour $PYTHON override * t/ax/am-test-lib.sh (require_tool): Here. * t/python-too-old.sh: And here. * t/python-vars.sh: And here. * t/python-virtualenv.sh: And here. Also add some sanity checks while at it. 2012-11-11 Stefano Lattarini tests: typofix in message * t/python-virtualenv.sh: Here. 2012-11-11 Stefano Lattarini news: document fix for bug#8847 (PEP-3147, __pycache__) * NEWS (Bugs fixed in 1.12.5): Here. 2012-11-11 Yaakov Selkowitz (tiny change) python: improve support for modern python (CPython 3.2 and PyPy) This fixes automake bug#8847. * m4/python.m4 (AM_PATH_PYTHON): Add python3.3 to _AM_PYTHON_INTERPRETER_LIST. * lib/py-compile: Fix compiled filenames for PEP-3147, currently implemented in CPython 3.2 and newer. Do not create '.pyo' files for PyPy. 2012-11-10 Stefano Lattarini news: we trace AC_CONFIG_MACRO_DIRS * NEWS (New in 1.13): Update accordingly. 2012-11-10 Stefano Lattarini news: improve wording * NEWS (New in 1.13): Prefer "no longer" over "not anymore", wherever possible. Related re-wrapping of text. 2012-11-10 Stefano Lattarini aclocal: trace AC_CONFIG_MACRO_DIR_TRACE This is now the documented way, and indeed the only correct way, to support AC_CONFIG_MACRO_DIR and AC_CONFIG_MACRO_DIRS in third-party tools. See autoconf commit v2.69-45-g5269030 of 2012-11-09, "AC_CONFIG_MACRO_DIRS: improve tracing and add sanity checks". * aclocal.in (trace_used_macros): Trace 'AC_CONFIG_MACRO_DIR_TRACE' rather than 'AC_CONFIG_MACRO_DIRS'. We still have to trace 'AC_CONFIG_MACRO_DIR' explicitly though, for compatibility with Autoconf versions before 2.70. * t/aclocal-macrodirs.tap: Enhance w.r.t. precedence of arguments in one and several AC_CONFIG_MACRO_DIRS calls. 2012-11-10 Stefano Lattarini aclocal: avoid spurious warnings from autom4te with AC_CONFIG_MACRO_DIRS When some macro expanded in configure.ac calls AC_REQUIRE on another macro that is defined in one of the local m4 macro dirs specified with AC_CONFIG_MACRO_DIRS, aclocal prints spurious warnings like: configure.ac:4: warning: MY_BAR is m4_require'd but not m4_defun'd configure.ac:3: MY_FOO is expanded from... Such warnings come from autom4te, and are due to the fact that the *first* autom4te invocation issued by aclocal is not yet able to "see" the m4 macro definitions in the local m4 dirs (because they can be looked for only after the AC_CONFIG_MACRO_DIRS call has been traced, and tracing it requires running autom4te). To allow us to work around this issue, autom4te has introduced a new "witness" macro 'm4_require_silent_probe', that, when defined, allows us to silence that particular kind of warnings (and only it). Reported by Nick Bowler; see point (4) of: * aclocal.in (trace_used_macros): Pre-define the special macro 'm4_require_silent_probe' when invoking autom4te. * t/aclocal-macrodirs.tap ("AC_CONFIG_MACRO_DIR interaction with AC_REQUIRE"): This test passes now: remove the "TODO" directive. * t/aclocal-macrodir.tap ("AC_CONFIG_MACRO_DIRS interaction with AC_REQUIRE"): Likewise. * t/acloca17.sh: Remove. * t/list-of-tests.mk: Adjust. 2012-11-10 Stefano Lattarini coverage: expose a bug in aclocal (spurious warnings) When some macro expanded in configure.ac calls AC_REQUIRE on another macro that is defined in one of the local m4 macro dirs specified with one of the macros AC_CONFIG_MACRO_DIRS or AC_CONFIG_MACRO_DIR, aclocal prints spurious warnings like: configure.ac:4: warning: MY_BAR is m4_require'd but not m4_defun'd configure.ac:3: MY_FOO is expanded from... Expose this weakness in our testsuite. Reported by Nick Bowler; see point (4) of: * t/aclocal-macrodir.tap ("AC_CONFIG_MACRO_DIR interaction with AC_REQUIRE"): New test, still xfailing. * t/aclocal-macrodirs.tap ("AC_CONFIG_MACRO_DIRS interaction with AC_REQUIRE"): Likewise. 2012-11-10 Stefano Lattarini aclocal: smash newlines in arguments of traced macros This change fixes the existing issues with AC_CONFIG_MACRO_DIRS containing newlines: Likely, it will also allow a less involved implementation of the AM_EXTRA_RECURSIVE_TARGETS macro (but that is left for potential follow-up patches). * aclocal.in (trace_used_macros): When calling autom4te, pass its '--trace' option an argument containing '${::}%' rather than '$1'. According to the autoconf manual (as of version 2.69), that will expand to the concatenation, with the '::' string, of all the arguments passed to a macro, with all newline characters in such arguments smashed. Related adjustments when handling the macro AC_CONFIG_MACRO_DIRS, to ensure leading whitespace in its argument are handled correctly. * t/aclocal-macrodirs.tap ("AC_CONFIG_MACRO_DIRS: extra whitespace"): No longer declare it as an xfailing test. 2012-11-10 Stefano Lattarini tests: better coverage for AC_CONFIG_MACRO_DIRS Suggested by a report from Nick Bowler: * t/aclocal-macrodirs.tap: Enhance to check use of extra whitespaces and newline characters in the arguments to AC_CONFIG_MACRO_DIRS. This test currently fails, so mark it as "TODO". While at it, throw in other minor edits and enhancements. 2012-11-10 Stefano Lattarini aclocal: diagnose non-existing directories in AC_CONFIG_MACRO_DIRS better This new implementation ensures that any directory (possibly excluding the first one, if the '--install' option is used) that is declared with AC_CONFIG_MACRO_DIRS and that is non-existent will cause an error from aclocal. * aclocal.in (scan_m4_dirs): Add a new argument, telling whether it's OK for the scanned directory to be non-existing. Adjust the implementation accordingly. ($first_user_m4dir): Remove, no more needed. (scan_m4_files): Update 'scan_m4_dirs' invocations so that aclocal will not complain if the first user macro directory is non-existing and the '--install' option is given: such directory will be created later by aclocal itself. * t/aclocal-macrodir.tap: Do not mark the last test as TODO anymore; it now passes. Make stricter by ensuring a non-existing directory in AC_CONFIG_MACRO_DIRS causes an hard error, not a warning. 2012-11-10 Stefano Lattarini aclocal: multiple local m4 macro dirs with AC_CONFIG_MACRO_DIRS A new macro 'AC_CONFIG_MACRO_DIRS' has been recently introduced in autoconf (and is expected to appear in the autoconf 2.70 release), allowing us to declare several local m4 macro directories for a package. It can be done either passing several arguments to a single invocation: AC_CONFIG_MACRO_DIRS([dir1 dir2]) or issuing more invocations: AC_CONFIG_MACRO_DIRS([dir1]) AC_CONFIG_MACRO_DIRS([dir2]) or a combination of the two: AC_CONFIG_MACRO_DIRS([dir1 dir2]) AC_CONFIG_MACRO_DIRS([dir3]) This will allow projects to use several m4 macro local dirs, without the need to use ACLOCAL_AMFLAGS (which we want to make obsolete and finally remove). This is especially important for projects that are used as nested subpackages of larger projects. For more information and rationales, refer to these past discussions: as well as to Automake commit v1.12.1-165-gcd1a9cc of 2012-07-03, "aclocal: deprecate ACLOCAL_AMFLAGS, trace AC_CONFIG_MACRO_DIR instead", autoconf commit v2.69-42-gd73770f of 2012-10-17, "AC_CONFIG_MACRO_DIRS: new macro, mostly for aclocal". * aclocal.in ($ac_config_macro_dir): Turn this global scalar it into ... (@ac_config_macro_dirs): ... this global array. (trace_used_macros): Update '@ac_config_macro_dirs' instead of re-defining '$ac_config_macro_dir'. Cater to calls the now-preferred macro 'AC_CONFIG_MACRO_DIRS' in addition to the "obsolescent" one AC_CONFIG_MACRO_DIR. (main loop): Append '@ac_config_macro_dirs', not '$ac_config_macro_dir', to '@user_includes'. * t/subpkg-macrodir.sh: New test. * t/aclocal-macrodirs.tap: Likewise. * t/list-of-tests.mk: Add them. * t/aclocal-macrodir.tap: Adjust and extend a little to keep it more in sync with 'aclocal-macrodirs.tap'. 2012-11-07 Stefano Lattarini tests: remove an obsolete comment * t/silent-yacc.sh: Here. 2012-11-07 Stefano Lattarini tests: remove mostly-redundant tests on silent rules We used to have several couples of tests named like 'silent-foo-gcc.sh' and 'silent-foo-generic.sh'. Differently from what the names suggest, the first test in such a couple (that is, "silent-foo-gcc.sh") was not meant to check specific GCC-related features, but rather to check how the silent rules behave in combination with automatic dependency tracking when the 'gcc' depmode (that targets GCC versions before the 3.x and 4.x release series) is forced. Such depmode forcing was done exclusively to cover the code paths in 'lib/am/depend2.am' that actually invoke the 'depcomp' script, rather than using the inlined, GCC-specific compiler invocation (the so-called "fastdep" mode), which is the default with modern GCC or with other modern compilers that can emulate the GCC command-line interface (e.g., clang 3.0). But whenever we run the silent-*-generic.sh" tests with other supported compilers which have an associated depmode different from 'gcc3', these same "non-fastdep" code paths are covered, since in those tests we run ./configure with the '--enable-dependency-tracking' option, which causes slower depmodes not to be rejected. Examples of such compilers are the Sun C and C++ compilers (at least since version 5.9, a.k.a. Sun Studio 12.1), and the Tiny C Compiler (from version 0.9.26); and I run the Automake testsuite quite regularly with those compilers. So, the "silent-*-gcc.sh" test cases don't offer any real coverage enhancements, while still using testsuite runtime and causing some (admittedly minor, but still annoying) synchronization headaches with the sister tests "silent-foo-general.sh" tests. So let's just remove these "silent-*-gcc.sh" tests. * t/silent-c-gcc.sh: Remove. * t/silent-cxx-gcc.sh: Likewise. * t/silent-lt-gcc.sh: Likewise. * t/silent-many-gcc.sh: Likewise. * t/silent-c-generic.sh: Rename ... * t/silent-c.sh: ... like this, and adjust heading comments. * t/silent-cxx-generic.sh: Rename ... * t/silent-cxx.sh: ... like this, and adjust heading comments. * t/silent-lt-generic.sh: Rename ... * t/silent-lt.sh: ... like this, and adjust heading comments. * t/silent-many-generic.sh: Rename ... * t/silent-many-languages.sh: ... like this, and adjust heading comments. * t/list-of-tests.mk: Adjust. 2012-11-07 Stefano Lattarini tests: enhance coverage on silent-rules and C compilation rules a little * t/silent-c-generic.sh: Here, by trying them also with automatic dependency tracking explicitly disabled. 2012-11-07 Stefano Lattarini Merge branch 'maint' * maint: tests: new variable $am_testaux_builddir tests: rename $am_testauxdir -> $am_testaux_srcdir 2012-11-07 Stefano Lattarini tests: rename few tests (on silent-rules support) Either to more informative names, or to names more consistent with the ones of similar/related tests. * t/silent.sh: Rename ... * t/silent-c-generic.sh: ... like this, and adjust heading comments. * t/silent2.sh: Rename ... * t/silent-c-gcc.sh: ... like this, and adjust heading comments. * t/silent3.sh: Rename ... * t/silent-lt-generic.sh: ... like this, and adjust heading comments. * t/silent4.sh: Rename ... * t/silent-lt-gcc.sh: ... like this, and adjust heading comments. * t/silentcxx.sh: Rename ... * t/silent-cxx-generic.sh: ... like this, and adjust heading comments. * t/silentcxx-gcc.sh: Rename ... * t/silent-cxx-gcc.sh: ... like this, and adjust heading comments. * t/silentf77.sh: Rename ... * t/silent-f77.sh: ... like this, and adjust heading comments. * t/silentf90.sh: Rename ... * t/silent-f90.sh: ... like this, and adjust heading comments. * t/silent7.sh: Rename ... * t/silent-gen.sh: ... like this, and adjust heading comments. * t/silent6.sh: Rename ... * t/silent-custom.sh: ... like this. * t/silent8.sh: Rename ... * t/silent-texi.sh: ... like this. * t/list-of-tests.mk: Adjust. 2012-11-07 Stefano Lattarini tests: merge two tests on silent-rules with libtool This helps to reduce code duplication, and also to (marginally) speed up the involved tests. Before this change, we had: $ diff -u t/silent3.sh t/silent9.sh --- t/silent3.sh 2012-11-07 19:38:05.000000000 +0100 +++ t/silent9.sh 2012-11-07 19:27:54.000000000 +0100 @@ -14,9 +14,9 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -# Check silent-rules mode, with libtool, standard depmode case. +# Check silent-rules mode, with libtool, nodep case. -# Please keep this file in sync with 'silent4.sh' and 'silent9.sh'. +# Please keep this file in sync with 'silent3.sh' and 'silent4.sh'. required='cc libtoolize' . test-init.sh @@ -26,8 +26,8 @@ cat >>configure.ac <<'EOF' AC_CONFIG_FILES([sub/Makefile]) AC_PROG_CC -AM_PROG_AR AM_PROG_CC_C_O +AM_PROG_AR AC_PROG_LIBTOOL AC_OUTPUT EOF @@ -61,7 +61,7 @@ $AUTOMAKE --add-missing $AUTOCONF -./configure --enable-silent-rules +./configure --disable-dependency-tracking --enable-silent-rules $MAKE >stdout || { cat stdout; exit 1; } cat stdout $EGREP ' (-c|-o)' stdout && exit 1 * t/silent9.sh: Remove, merge ... * t/silent3.sh: ... in here. * t/list-of-tests.mk: Adjust. 2012-11-07 Stefano Lattarini tests: new variable $am_testaux_builddir And a related fix that solves a spurious testsuite failures in VPATH builds. * t/ax/test-defs.in ($am_testaux_builddir): New, counterpart of $am_testaux_srcdir, but pointing inside the build directory. * t/self-check-shell-no-trail-bslash.sh: Use $am_testaux_builddir, not $am_testaux_srcdir, when fetching the 'shell-no-trail-bslash' script. 2012-11-07 Stefano Lattarini tests: rename $am_testauxdir -> $am_testaux_srcdir This is just a preparatory change in view of a future commit. * t/ax/test-defs.in: Here. * t/ax/tap-summary-aux.sh: And here. * t/ax/testsuite-summary-checks.sh: And here. * t/distcheck-missing-m4.sh: And here. * t/distcheck-outdated-m4.sh: And here. * t/self-check-shell-no-trail-bslash.sh: And here. * t/test-driver-acsubst.sh: And here. * t/test-driver-cond.sh: And here. * t/test-driver-custom-multitest.sh: And here. * t/test-driver-custom-multitest-recheck.sh: And here. * t/test-driver-custom-multitest-recheck2.sh: And here. * t/testsuite-summary-count-many.sh: And here. 2012-10-31 Stefano Lattarini Merge branch 'maint' * maint: vala tests: source test-init.sh, not ./defs tests: fix a spurious typo-related failure tests: remove spurious leftover use of 'Exit' tests: can check our recipes avoid trailing backslashes vala: improve comments to AM_PROG_VALAC news: update w.r.t. recent vala changes vala: if no proper compiler found, set $(VALAC) to 'valac' vala: AM_PROG_VALAC should not produce an error for tool-old valac docs: document recent changes to AM_PROG_VALAC tests: enhance tests on AM_PROG_VALAC vala: style fixes in vala.m4 vala: add action arguments, for when no proper vala compiler is found 2012-10-31 Stefano Lattarini vala tests: source test-init.sh, not ./defs This will avoid spurious errors when the new vala tests (introduced in the 'vala-work' branch) will be merged back to master. * t/vala-headers.sh: Adjust as said. * t/vala-libs.sh: Likewise. * t/vala-mix.sh: Likewise. * t/vala-mix2.sh: Likewise. * t/vala-parallel.sh: Likewise. * t/vala-vapi.sh: Likewise. * t/vala-vpath.sh: Likewise. * t/vala.sh: Likewise. * t/vala2.sh: Likewise. * t/vala3.sh: Likewise. * t/vala4.sh: Likewise. * t/vala5.sh: Likewise. 2012-10-31 Stefano Lattarini tests: fix a spurious typo-related failure * t/self-check-shell-no-trail-bslash.sh: Here, due to a mistaken use of "||" instead of "&&". 2012-10-31 Stefano Lattarini Merge branch 'vala-work' into maint * vala-work: vala: improve comments to AM_PROG_VALAC news: update w.r.t. recent vala changes vala: if no proper compiler found, set $(VALAC) to 'valac' vala: AM_PROG_VALAC should not produce an error for tool-old valac docs: document recent changes to AM_PROG_VALAC tests: enhance tests on AM_PROG_VALAC vala: style fixes in vala.m4 vala: add action arguments, for when no proper vala compiler is found 2012-10-31 Stefano Lattarini tests: remove spurious leftover use of 'Exit' Issue revealed by the 'sc_tests_Exit_not_exit' maintainer check. Commit 'v1.12.4-184-g9fed1c8' in master made the same fix basically, but we mistakenly applied it to master only, rather than to maint. * t/per-target-flags.sh: Here. 2012-10-31 Stefano Lattarini tests: can check our recipes avoid trailing backslashes This is related to commit v1.11-1704-g254227b of 2012-05-01, "parallel-tests: avoid trailing backslashes in make recipes", and automake bug#10436. 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. So provide a target that runs the testsuite looking for this kind of breakage (without requiring a real bugged shell). * t/ax/shell-no-trail-bslash.in: New, a "shell" that chokes on '-c' commands having a trailing '\' (possibly followed by whitespace only). * Makefile (t/ax/shell-no-trail-bslash): Generate this script from it. (noinst_SCRIPTS, CLEANFILES): Add it. (EXTRA_DIST): Add 't/ax/shell-no-trail-bslash.in'. (check-no-trailing-backslash-in-recipes): New target, runs the testsuite with 'shell-no-trail-bslash' as the CONFIG_SHELL, to catch possible recipes having a trailing backslash character (possibly followed by * .gitignore: Update. * t/self-check-shell-no-trail-bslash.sh: New testsuite self-check. * t/parallel-tests-trailing-bslash.sh: Remove as obsolete. * t/list-of-tests.mk: Adjust. 2012-10-27 Stefano Lattarini Merge branch 'maint' * maint: configure: correctly identify missing GNU compilers as such 2012-10-27 Stefano Lattarini configure: correctly identify missing GNU compilers as such * configure.ac: Here, instead of mistakenly diagnose them as "botched". 2012-10-27 Stefano Lattarini tests: get rid of ./defs, it's no longer used. * defs: Delete. * configure.ac (AC_CONFIG_LINKS): No longer link it. * t/ax/tap-setup.sh: Don't look for a file named 'defs' in the grandparent directory of the current test directory to decide whether we're running in the correct directory. * syntax-check.mk (xdefs): Remove '$(srcdir)/defs'. 2012-10-27 Stefano Lattarini maintcheck: fix the name of a check * (sc_tests_Exit_not_exit): Rename ... (sc_tests_exit_not_Exit): ... like this, which is more faithful to what the check actually does. Adjust a grammaro in comments while at it. (syntax_check_rules): Adjust. 2012-10-27 Stefano Lattarini maintcheck: guard against uses of ./defs in tests Now, 'test-init.sh' should be used instead. * (sc_tests_no_source_defs): New maintainer check. (syntax_check_rules): Add it. 2012-10-27 Stefano Lattarini tests: remove spurious leftover use of 'Exit' * t/per-target-flags.sh: Here, and simply use 'exit' instead. Issue revealed by the 'sc_tests_Exit_not_exit' maintainer check. 2012-10-27 Stefano Lattarini tests: remove an obsolete, and probably now wrong, comment * t/dirlist.sh: Here. 2012-10-27 Stefano Lattarini tests: remove obsolescent references to './defs' * t/distcom-subdir.sh, t/distcom2.sh, t/ax/depcomp.sh, t/conff2.sh, t/ccnoco3.sh, t/ccnoco.sh, t/self-check-dir.tap, t/self-check-exit.tap, t/self-check-me.tap: Here. Instead, refer to "am-test-lib.sh", "test-init.sh", or simply "the testsuite setup", as appropriate. 2012-10-27 Stefano Lattarini tests: prefer including 'test-init.sh' rather than './defs' This is a follow-up to today's commit v1.12.4-22-g0610fc8, "tests: prepare to move ./defs to t/ax/test-init.sh" * All tests: To run the common setup, use the command: . test-init.sh instead of the older, "historical" one: . ./defs || exit 1 Note that the "|| exit 1" wasn't really useful, since the 'errexit' shell flag is in effect in both './defs' and 'test-init.sh', and all the known shells that are good enough to run the automake testsuite do automatically exit with error when a sourced file cannot be found (at least, they do so in non-interactive mode, which is the only mode that concerns us in the testsuite). * t/ax/tap-summary-aux.sh, t/ax/testsuite-summary-checks.sh: Likewise. * gen-testsuite-part: Do the same in the generated tests. 2012-10-27 Stefano Lattarini Merge branch 'maint' * maint: tests: merge, tweak and modernize few test scripts tests: move coverage about BUILT_SOURCES tests: more meaningful names for some test cases tests: merge some grepping tests on Yacc support 2012-10-27 Stefano Lattarini tests: merge, tweak and modernize few test scripts Basically an adjusted-and-improved cherry-pick from Automake-NG commit v1.12.1-343-gff30f83. * t/specflg.sh, t/specflg2.sh, t/specflg3.sh: Merged into ... * t/per-target-flags.sh: ... this test. * t/fo.sh: Remove, its weak grepping checks well superseded by the semantic checks in 't/fort4.sh'. * t/cxxo.sh: Remove, its weak grepping checks well superseded by the semantic checks in 't/cxx-demo.sh'. * t/cxxcpp.sh: Enhance a little. * t/empty.sh: Renamed ... * t/empty-data-primary.sh: ... to this. Add trailing ':' command. * t/empty2.sh, t/empty3.sh, t/empty4.sh: Merged ... * t/empty-sources-primary.tap: ... into this new test. * t/no-outdir-option.sh: Remove. A test to check than an obsolete and now deleted option ("--output-dir") stays deleted is way too much even for the most test-infected person ;-) * t/list-of-tests.mk: Adjust. 2012-10-27 Stefano Lattarini tests: move coverage about BUILT_SOURCES Basically a backport of some tests from Automake-NG. * t/built-sources-check.sh: Sync it with the version in the ng/master branch. Accordingly, move part of the checks out ... * t/built-sources-install.sh: ... into this new test, synced from ng/master as well. * t/built-sources-subdir.sh: Minor tweaks and enhancements to sync it with the version in ng/master. * t/built-sources-cond.sh: New test, synced from ng/master. * t/built-sources.sh: Likewise, with minor edits to avoid a spurious failure. * t/built-sources-fork-bomb.sh: Likewise. * t/list-of-tests.mk: Update. 2012-10-27 Stefano Lattarini tests: more meaningful names for some test cases * t/yacc5.sh: Renamed ... * t/yacc-grepping2.sh: ... like this. * t/yacc7.sh: Renamed ... * t/yacc-headers-and-pr47.sh: ... like this. * t/yacc8.sh: Renamed ... * t/yacc-subdir.sh: ... like this. * t/subdir10.sh: Rename ... * t/subdir-env-interference.sh: ... like this. * t/specflg10.sh: Rename ... * t/am-default-source-ext.sh: ... like this. * t/suffix12.sh: Rename ... * t/suffix-custom-subobj.sh: ... like this. * t/suffix13.sh: Rename ... * t/suffix-custom-subobj-and-specflg.sh: ... like this. * t/check3.sh: Rename ... * t/built-sources-check.sh: ... like this. * t/subdirbuiltsources.sh: Rename ... * t/built-sources-subdir.sh: ... like this. * t/bsource.sh: Rename ... * t/no-spurious-install-recursive.sh: ... like this. * t/list-of-tests.mk: Adjust. 2012-10-27 Stefano Lattarini tests: merge some grepping tests on Yacc support * t/yacc.sh, t/yacc2.sh: Merge ... * t/yacc-grepping.sh: ... into this test. * t/list-of-tests.mk: Adjust. 2012-10-27 Stefano Lattarini Merge branch 'maint' * maint: tests: prepare to move ./defs to t/ax/test-init.sh 2012-10-27 Stefano Lattarini tests: prepare to move ./defs to t/ax/test-init.sh We don't do this in a sweeping passage, because that would cause endless headaches in the synchronization between the maint, master and ng/master branches. Instead, we setup our framework to allow test scripts to work by sourcing either './defs' or 'test-init.sh', so that we'll be able to make the transition gradual and painless. * t/ax/test-init.sh: New, copied from the previous ./defs file. * defs: Simply work by sourcing the new file. * Makefile.am (dist_noinst_DATA): List the new file. * t/README: Adjust to mandate the sourcing of 'test-init.sh' rather than of './defs'. * t/c-demo.sh: Source 'test-init.sh' instead of ./defs. This is done to verify our new setup actually works. * t/ac-output-old.tap: Likewise. 2012-10-27 Stefano Lattarini Merge branch 'maint' * maint: depcomp: avoid potential interferences from the environment depcomp: improve comments about the 'gcc' depmode sync: update files from upstream with "make fetch" maintcheck: remove an obsolescent check tests: rename some tests to more expressive names, again tests: remove an obsolescent grepping check tests: merge two tests on automatic remake functionality tests: rename some test to more expressive names news: 'compile' supports libfoo.a naming when wrapping Microsoft tools tests: ensure generation of wrapper tests matching multiple conditions tests: simplify a loop in gen-testsuite-part compile: support libfoo.a naming when wrapping Microsoft tools NEWS: fix wording and grammaros, re-wrap text accordingly cosmetics: fix typo in 'lib/depcomp' comments 2012-10-27 Stefano Lattarini depcomp: avoid potential interferences from the environment * lib/depcomp (gccflag, dashmflag): By explicitly initializing these variables to the empty string by default. 2012-10-27 Stefano Lattarini depcomp: improve comments about the 'gcc' depmode It is not only needed by obsolescent gcc compilers (pre-3.x), but also by modern compiler like IBM C/C++. State that ... * lib/depcomp: ... here... * gen-testsuite-part: ... and here, where we generate the 'depcomp*.tap' tests. 2012-10-26 Stefano Lattarini vala: improve comments to AM_PROG_VALAC * m4/vala.m4 (AM_PROG_VALAC): Here. 2012-10-26 Stefano Lattarini news: update w.r.t. recent vala changes * NEWS: Here. 2012-10-26 Stefano Lattarini vala: if no proper compiler found, set $(VALAC) to 'valac' This is better than setting it to ':' (as is currently done), because a triggered makefile rule invoking a vala compilation will then clearly fail with an informative error message like "valac: command not found", rather than silently, with the error possibly going unnoticed, or triggering harder-to-diagnose fallout failures in later steps. For a precedent of a similar behaviour, see the AC_PROG_YACC macro. * m4/valac.m4: Implement the new semantic. * doc/automake.texi (Vala Support): Document it. * t/vala4.sh: Adjust. 2012-10-26 Sébastien Wilmet (tiny change) Matthieu Baerts Stefano Lattarini vala: AM_PROG_VALAC should not produce an error for tool-old valac This change fixes automake bug#12688. In the AM_PROG_VALAC macro, when the optional parameter specifying the minimum release number is not provided, and/or if the Vala compiler is not found, then there is a _warning_ message. On the other hand, when the version number is specified and if the Vala compiler is too old, there is an _error_ message. This error message is problematic, because for a tarball, the Vala compiler is not required: the generated C code is included in the tarball. So if a user wants to compile the software, he shouldn't need the valac program with the right version. * m4/vala.m4 (AM_PROG_VALAC): Modify to use AC_MSG_WARN instead of AC_MSG_ERROR. * t/vala4.sh: Adjust and enhance. * doc/automake.texi (Vala Support): Likewise. * THANKS: Update. 2012-10-26 Stefano Lattarini docs: document recent changes to AM_PROG_VALAC * doc/automake.texi (Vala Support): Here. This is a follow-up to recent commit 'v1.12.4-20-gdf202a3', "vala: add action arguments, for when no proper vala compiler is found". 2012-10-26 Stefano Lattarini tests: enhance tests on AM_PROG_VALAC * t/vala4.sh: Here. 2012-10-26 Stefano Lattarini vala: style fixes in vala.m4 * m4/vala.m4 (AM_PROG_VALAC): Here. 2012-10-26 Daiki Ueno (tiny change) vala: add action arguments, for when no proper vala compiler is found * m4/vala.m4 (AM_PROG_VALAC): Add optional action arguments to control the behavior if specified version of valac is not found. This emulates the behaviour of AM_PATH_PYTHON. * t/vala4.sh: Enhance. 2012-10-26 Stefano Lattarini sync: update files from upstream with "make fetch" * lib/config.guess, lib/config.sub: Update. 2012-10-26 Stefano Lattarini maintcheck: remove an obsolescent check * syntax-checks.mk (sc_test_names): Remove this check, which verified that no test name contained an m4/m4sugar builtin or macro name. Since most tests use their own name as the first argument to AC_INIT, doing that would have tickled a bug in Autoconf 2.62; but the bug was fixed in Autoconf 2.63 already; and we are going to soon require Autoconf 2.65 anyway (in automake 1.13), so this check has become more annoying than useful. (syntax_check_rules): Don't list the removed check. 2012-10-26 Stefano Lattarini tests: rename some tests to more expressive names, again * t/parallel-tests.sh: Rename ... * t/parallel-tests-basics.sh: ... like this. * t/parallel-tests3.sh: Rename ... * t/parallel-tests-concurrency.sh: ... like this. * t/parallel-tests5.sh: Rename ... * t/parallel-tests-concurrency-2.sh: ... like this. * t/parallel-tests6.sh: Rename ... * t/parallel-tests-empty.sh: ... like this. Adjust comments. * t/parallel-tests8.sh: Rename ... * t/parallel-tests-generated-and-distributed.sh: ... like this. * t/parallel-tests9.sh: Rename ... * t/parallel-tests-recheck.sh: ... like this. * t/parallel-tests10.sh: Rename ... * t/parallel-tests-trailing-whitespace.sh: ... like this. * t/remake3a.sh: Rename ... * t/remake-subdir-no-makefile.sh: ... like this. * t/remake4.sh: Rename ... * t/remake-not-after-make-dist.sh: ... like this. * t/remake5.sh: Rename ... * t/remake-maintainer-mode.sh: ... like this. * t/remake6.sh: Rename ... * t/remake-subdir3.sh: ... like this. * t/remake7.sh: Rename ... * t/remake-fail.sh: ... like this. * t/remake11.sh: Rename ... * t/remake-deeply-nested.sh: ... like this * t/remake12.sh: Rename ... * t/remake-mild-stress.sh: ... like this * t/pr8365-remake-timing.sh: Rename ... * t/remake-timing-bug-pr8365.sh: ... like this. * t/list-of-tests.mk: Adjust. 2012-10-26 Stefano Lattarini tests: remove an obsolescent grepping check * t/remake3.sh: This one, superseded by ... * t/remake3a.sh: ... this semantic test, whose comments have been djusted accordingly. * t/list-of-tests.mk: Adjust. 2012-10-26 Stefano Lattarini tests: merge two tests on automatic remake functionality * t/remake2.sh: Merge ... * t/remake-subdir-grepping.sh: ... in here. * t/list-of-tests.mk: Adjust. 2012-10-26 Stefano Lattarini tests: rename some test to more expressive names * t/remake.sh: Rename ... * t/remake-subdir-grepping.sh: ... like this. * t/remake8a.sh: Rename ... * t/remake-makefile-intree.sh: ... like this, and adjust comments. * t/remake8b.sh: Rename ... * t/remake-makefile-vpath.sh: ... like this, and adjust comments. * t/remake9a.sh: Rename ... * t/remake-after-configure-ac.sh: ... like this, and adjust comments. * t/remake9b.sh: Rename ... * t/remake-after-makefile-am.sh: ... like this, and adjust comments. * t/remake9c.sh: Rename ... * t/remake-after-acinclude-m4.sh: ... like this, and adjust comments. * t/remake9d.sh: Rename ... * t/remake-after-aclocal-m4.sh: ... like this, and adjust comments. * t/remake10a.sh: Rename ... * t/remake-include-configure.sh: ... like this, and adjust comments. * t/remake10b.sh: Rename ... * t/remake-include-makefile.sh: ... like this, and adjust comments. * t/remake10c.sh: Rename ... * t/remake-include-aclocal.sh: ... like this, and adjust comments. * t/list-of-tests.mk: Adjust. 2012-10-26 Jim Meyering compat: reinstate AM_PROG_MKDIR_P, for gettext Do not remove AM_PROG_MKDIR_P just yet. gettext (latest from git) still AC_REQUIRE's AM_PROG_MKDIR_P via its intl.m4 and po.m4 files, which are pulled into *many* projects. When I try to build one of those projects (coreutils) using the latest from automake.git/master, I see this failure: $ aclocal -I m4 configure.ac:477: warning: AM_PROG_MKDIR_P is m4_require'd \ but not m4_defun'd m4/po.m4:23: AM_PO_SUBDIRS is expanded from... m4/gettext.m4:57: AM_GNU_GETTEXT is expanded from... configure.ac:477: the top level That is because AM_PROG_MKDIR_P was removed (via commit v1.12-20-g8a1c64f) in preparation for the next release of automake. * NEWS: Remove the paragraph that announced the removal of AM_PROG_MKDIR_P. * Makefile.am (dist_automake_ac_DATA): Add m4/mkdirp.m4. * m4/mkdirp.m4: Re-add file. * t/mkdirp-deprecation.sh: Likewise. * t/list-of-tests.mk: Add it. * automake.in: Restore removed code, and adjust comments, s/1.13/1.14/ to reflect new plan for removal. * doc/automake.texi (Obsolete Macros): Restore the section, but now with only one entry: the one for AM_PROG_MKDIR_P. 2012-10-26 Stefano Lattarini news: 'compile' supports libfoo.a naming when wrapping Microsoft tools This is a follow-up to commit 'v1.12.4-10-g3c5c939' of 2012-10-04, "compile: support libfoo.a naming when wrapping Microsoft tools". * NEWS (Bugs fixed in 1.12.5): Update. 2012-10-26 Stefano Lattarini tests: ensure generation of wrapper tests matching multiple conditions * gen-testsuite-part: Our old code to generate wrapper tests had a severe limitation, in that if a test matched two or more conditions calling for generation of wrapper tests, still only one wrapper test was generated, instead of the three that would have been expected -- that is, one using the setup code triggered by the first condition, one using the setup code triggered by the second condition, and one using both this setup code fragments. Admittedly, this was only a theoretical limitation for the moment, since since so far no test exists that matches two or more conditions for wrapping. Still, this might change in the future, and easily in an unnoticed way, so better fix the issue now, before it might become a real problem. 2012-10-26 Stefano Lattarini tests: simplify a loop in gen-testsuite-part * gen-testsuite-part: No need to loop on the (key, value) entries of the %test_generators has: we only use the value, and never the key. So loop simply on the values. 2012-10-14 Peter Rosin compile: support libfoo.a naming when wrapping Microsoft tools There is a future plan to provide some means to have Automake create static libraries that are named differently depending on the system [1]. The background is that everyone has always named static libraries libfoo.a, except the Redmond crowd who names them foo.lib, and you have to jump through hoops to have Automake create libraries named foo.lib in the land of non-GNU Windows while still creating libfoo.a everywhere else. However, there is probably no sane way to accomplish that system dependent naming discussed in [1] without user intervention, which makes it necessary to support the classic libfoo.a naming when using Microsoft tools in the best possible way, for the benefit of all projects today and for future projects not opting in to whatever scheme is selected for the problem at hand. [1] http://lists.gnu.org/archive/html/automake/2012-09/msg00028.html * lib/compile (func_cl_dashl): As a last resort, match -lfoo with libfoo.a, if that file exist on the library search path. * t/compile4.sh: Remove obsolescent workaround for the above. * t/compile6.sh: Extend to check that libbaz.a is indeed found when baz.lib and baz.dll.lib does not exist and that bar.lib and bar.dll.lib are preferred over libbar.a. 2012-10-14 Stefano Lattarini NEWS: fix wording and grammaros, re-wrap text accordingly Reported-by: Peter Rosin 2012-10-14 Paul Eggert cosmetics: fix typo in 'lib/depcomp' comments Fixes automake bug#12578. 2012-10-02 Stefano Lattarini Merge branch 'maint' * maint: config headers: remove stale comment in makefile fragment NEWS: wording and quoting fixlets in few older entries config headers: don't emit rules for headers not generated by autoheader docs: fix minor typo: s/expending/expanding/ sync: update files from upstream with "make fetch" maint: post-release minor version bump maint: typo fixes s/lies into/lies in/ release: stable release 1.12.4 NEWS: minor fix 2012-10-02 Stefano Lattarini config headers: remove stale comment in makefile fragment * lib/am/remake-hdr.am: Here. 2012-10-02 Stefano Lattarini NEWS: wording and quoting fixlets in few older entries 2012-10-02 Stefano Lattarini config headers: don't emit rules for headers not generated by autoheader This change fixed automake bug#12495. Even if an AC_CONFIG_HEADERS invocation is passed a list of several files as the first argument, only the first one of those file is considered by autoheader for automatic generation of the corresponding '.in' template. This is done on purpose, and is clearly documented in the Autoconf manual, which (as of the 2.69 version) reads something like this: The autoheader program searches for the first invocation of AC_CONFIG_HEADERS in configure sources to determine the name of the template. If the first call of AC_CONFIG_HEADERS specifies more than one input file name, autoheader uses the first one. That is, an invocation like: AC_CONFIG_HEADERS([config.h config2.h]) should cause autoheader to generate only a 'config.h.in' template, and not also a 'config2.h.in' one. Accordingly, automake, when tracing AC_CONFIG_HEADERS, should generate remake rules only for the template associated to the first input file name passed to that macro. In some situations, however, automake failed to properly limit itself in this way; for example, with an input like: AC_CONFIG_HEADERS([config.h sub/foo.h]) in configure.ac, and with the 'sub' directory listed in the SUBDIRS variable of the top-level Makefile, automake would erroneously generate in 'sub/Makefile.in' a rule to remake the 'foo.h.in' template by invoking autoheader. This issue was likely introduced in commit 'Release-1-8-23-g262bb92' of 2004-01-05. * NEWS: Update. * doc/automake.texi (Optional): Improve wording in the description of hat rules automake generates in response to an 'AC_CONFIG_HEADERS' invocation. * lib/am/remake-hdr.am: Only emit autoheader-invoking remake rules for the %CONFIG_HIN% template if that corresponds to the first argument of AC_CONFIG_HEADERS, as explaned above. Do so using the automake-time conditional %?FIRST-HDR%, that is properly passed ... * automake.in (handle_configure): ... from a 'file_contents' invocation in here. * t/autohdr-subdir-pr12495.sh: New test. * t/list-of-tests.mk: Add it. * THANKS: Update. Helped-by: Hib Eris 2012-10-02 Stefano Lattarini docs: fix minor typo: s/expending/expanding/ * doc/automake.texi (Wildcards): Here. Fixes automake bug#12516. 2012-10-02 Stefano Lattarini sync: update files from upstream with "make fetch" * lib/texinfo.tex: Update. 2012-10-02 Stefano Lattarini maint: post-release minor version bump * configure.ac (AC_INIT): Bump version number to 1.12.4a. * m4/amversion.m4: Likewise (automatically regenerated by "make bootstrap"). 2012-09-23 Jim Meyering maint: typo fixes s/lies into/lies in/ 2012-09-17 Stefano Lattarini release: stable release 1.12.4 * configure.ac (AC_INIT): Bump version number to 1.12.4. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). 2012-09-17 Stefano Lattarini NEWS: minor fix 2012-09-12 Jim Meyering fix typos in mk-dirp.m4 * t/gettext-macros.sh: Fix typo in name of macro emitted into mk-dirp.m4: s/AM_MKDIR_P/AM_PROG_MKDIR_P/, and as Stefano Lattarini noted, also fix this typo: s/AC_MKDIR_P/AC_PROG_MKDIR_P/. 2012-09-11 Stefano Lattarini tags: automake bug bug#12372 is fixed It has been fixed as a side effect of the overhauling of tags support. * t/list-of-tests.mk (XFAIL_TESTS): No longer list 'tags-pr12372.sh'. * NEWS: Update. 2012-09-11 Stefano Lattarini Merge branch 'maint' * maint: coverage: better exposure for automake bug#12372 (tags-related) coverage: expose automake bug#12372 (tags-related) 2012-09-11 Stefano Lattarini coverage: better exposure for automake bug#12372 (tags-related) Alas, in contrast with what is said in the commit message of previous commit 'v1.12.3-14-g94b7b8e', that bug is still present also in the current maint branch (which will become automake version 1.12.4); it is just that it only triggers when a _SOURCES variable contains only files with custom extension. * t/tags-pr12372.sh: Extend. * t/list-of-tests.mk: Add it. Suggested-by: Юрий Пухальский 2012-09-07 Stefano Lattarini coverage: expose automake bug#12372 (tags-related) That bug is somehow already been fixed in the latest automake version (1.12.4); but exercise it anyway in the testsuite, to ensure we won't regress. * t/tags-pr12372.sh: New test. * t/list-of-tests.mk: Add it. 2012-09-05 Stefano Lattarini Merge branch 'maint' * maint: sync: update files from upstream with "make fetch" news: cygnus will be removed in automake 1.13 news: some changes for 1.13 has been "de-planned" news: report that the have seen fixlets after 1.12.3 warns: enable category 'obsolete' by default 2012-09-05 Stefano Lattarini sync: update files from upstream with "make fetch" * lib/texinfo.tex: Update. 2012-09-05 Stefano Lattarini news: cygnus will be removed in automake 1.13 * NEWS (Future backward-incompatibilities): So document it here. 2012-09-05 Stefano Lattarini news: some changes for 1.13 has been "de-planned" * NEWS (Future backward-incompatibilities): The planned Automake release 1.13 already has too much stuff on its plate; so we are not going to In Automake 1.13, we are definitely not going to change the exact order in which the directories in the aclocal macro search path are looked up. Also, experience and user feedback have shown that the "obsolescent" two-arguments invocation for AM_INIT_AUTOMAKE: AM_INIT_AUTOMAKE(PACKAGE-NAME, PACKAGE-VERSION) is still useful (until at least Autoconf is fixed to offer better support for "dynamically" package versions), so we are not going to remove support for that usage in Automake 1.13. For more details, see commit v1.12.2-245-g2abe183 of 2012-08-24, "AM_INIT_AUTOMAKE: allow obsolescent two-args invocation once again". (New in 1.12.1): Adjust accordingly. 2012-09-05 Stefano Lattarini news: report that the have seen fixlets after 1.12.3 * NEWS: Here. 2012-09-04 Stefano Lattarini warns: enable category 'obsolete' by default No surprise that our users were bitten by backward-incompatible changes especially hard: the warnings in the 'obsolete' category, that might have informed them of the upcoming incompatibilities, and help them to prepare for the transition, where not enabled by default! * NEWS, doc/automake.texi: Update. * lib/Automake/ChannelDefs.pm: Enable warnings in the category 'obsolete' by default. * t/warnings-obsolete-default.sh: New test. * t/list-of-tests.mk: Add it. * t/backcompat.sh: Use 'configure.ac' rather than 'configure.in' as autoconf input file, to avoid spurious aclocal errors. * t/backcompat2.sh: Likewise. * t/backcompat3.sh: Likewise. * t/backcompat5.sh: Add '-Wno-obsolete' when invoking aclocal. Adjust heading comments. * t/backcompat6.sh: Likewise. * t/cygnus-imply-foreign.sh: Add '-Wno-obsolete' when invoking automake. 2012-08-28 Stefano Lattarini tests: fix a maintainer-check failure ('Exit' used instead of 'exit') * t/lisp-loadpath.sh: Here. 2012-08-28 Stefano Lattarini Merge branch 'maint' * maint: sync: update files from upstream with "make fetch" automake: don't define many identical 'lang_*_rewrite' subroutines coverage: bugs #8844 and #9933 (already fixed by Akim's work on ylwrap) 2012-08-28 Stefano Lattarini sync: update files from upstream with "make fetch" * lib/config.guess, lib/config.sub: Update. 2012-08-27 Stefano Lattarini automake: don't define many identical 'lang_*_rewrite' subroutines This is just a simplifying refactoring, with no semantic change intended. Cherry-picked from the Automake-NG commit 'v1.12.1-312-g63aa4a9' of 2012-06-07. 2012-08-26 Stefano Lattarini coverage: bugs #8844 and #9933 (already fixed by Akim's work on ylwrap) * t/flex-header.sh: New test, show that automake bug#8844 and bug#9933 have already been fixed by the recent-ish improvements to ylwrap (merged with commit v1.12.2-27-gec5cb49 of 2012-07-16, "Merge branch 'yacc-work' into maint"). * t/list-of-tests.mk: Update. 2012-08-26 Stefano Lattarini Merge branch 'maint' * maint: docs: don't suggest to use recursive makefile setup tests: fix a timestamp race in python tests tests: fixup: make distcheck-override-infodir pass again sync: update files from upstream with "make fetch" maint: post-release minor version bump release: stable release 1.12.3 maintcheck: fix spurious warnings docs: fix typo: s/make install-info/make uninstall-info/ tests: fixup: make a couple of tests executable 2012-08-24 Stefano Lattarini AM_INIT_AUTOMAKE: allow obsolescent two-args invocation once again This partially reverts commit 'v1.12-67-ge186355' of 2012-05-25, "init: obsolete usages of AM_INIT_AUTOMAKE not supported anymore" Some users still need to be able to define the version number for their package dynamically, at configure runtime. Their user case is that, for development snapshots, they want to be able to base the complete version of the package on the VCS revision ID (mostly Git or Mercurial). They could of course do so by specifying such version dynamically in their call to AC_INIT, as is done by several GNU packages. But then they would need to regenerate and re-run the configure script before each snapshot, which might be very time-consuming for complex packages, to the point of slowing down and even somewhat impeding development. The situation should truly be solved in Autoconf, by allowing a way to specify the version dynamically in a way that doesn't force the configure script to be regenerated and re-run every time the package version changes. But until Autoconf has been improved to allow this, Automake will have to support the obsolescent two-arguments invocation for AM_INIT_AUTOMAKE, to avoid regressing the suboptimal but working solution for the use case described above. See also: * NEWS: Update. * m4/init.m4 (AM_INIT_AUTOMAKE): Support once again invocation with two or three arguments. * t/aminit-moreargs-no-more.sh: Renamed ... * t/aminit-moreargs-deprecated.sh: ... like this, and updated. * t/nodef.sh: Recovered test, with minor adjustments. * t/backcompat.sh: Likewise. * t/backcompat2.sh: Likewise. * t/backcompat3.sh: Likewise. * t/backcompat6.sh: Likewise. * t/list-of-tests.mk: Adjust. Suggested-by: Bob Friesenhahn n 2012-08-21 Stefano Lattarini docs: don't suggest to use recursive makefile setup * doc/automake.texi (Introduction): Here, by erroneously telling that "there should generally be one Makefile.am per directory of a project". For reference, see commit 'v1.12.1-25-g61dfb47' of 2012-06-12, "docs: recursive make considered harmful". 2012-08-16 Adam Sampson (tiny change) Stefano Lattarini tests: fix a timestamp race in python tests Fixes automake bug#12210. * t/python-missing.sh: Call aclocal and autoconf with the "--force" option. We need this because, on fast machines, it's possible for 'mypy.m4' and 'aclocal.m4' to end up with the same timestamp as configure, so autoconf (without the "--force" options) wouldn't bother to rebuild it, and would just rerun the previous AM_PATH_PYTHON test, succeeding rather than failing as expected. * t/python-am-path-iftrue.sh: Likewise. 2012-08-14 Peter Rosin tests: fixup: make distcheck-override-infodir pass again Fixes Automake bug#12198. * t/distcheck-override-infodir.sh (main.texi): Remove all leading cruft added by commit v1.12.2-96-g133307b "maintcheck: fix spurious warnings". 2012-08-14 Stefano Lattarini sync: update files from upstream with "make fetch" * lib/config.guess, lib/config.sub, lib/gitlog-to-changelog, lib/texinfo.tex: Update. 2012-08-14 Stefano Lattarini maint: post-release minor version bump * configure.ac (AC_INIT): Bump version number to 1.12.3a. * m4/amversion.m4: Likewise (automatically regenerated by "make bootstrap"). 2012-08-13 Stefano Lattarini release: stable release 1.12.3 * configure.ac (AC_INIT): Bump version number to 1.12.3. * m4/amversion.m4: Likewise (auto-updated by "./bootstrap"). 2012-08-13 Stefano Lattarini maintcheck: fix spurious warnings * t/distcheck-override-infodir.sh: Be sure that valid occurences of the "aclocal" and "automake" strings, which can confuse the 'sc_tests_plain_automake' check, are protected by leading "#" characters. * t/ax/test-lib.sh: Always use '$(...)' for command subtitution, to avoid triggering the 'sc_tests_command_subst' check; there was still once place where `...` was used. While at it, fix a related comment. * t/ax/test-defs.in ($sleep): Use creative quoting to avoid spuriously triggering the 'sc_tests_plain_sleep' check. 2012-08-13 Stefano Lattarini docs: fix typo: s/make install-info/make uninstall-info/ * doc/automake.texi (Texinfo): Here. And a minor wording improvement while we are at it. 2012-08-13 Stefano Lattarini tests: fixup: make a couple of tests executable * t/python-am-path-iftrue.sh: This. * t/python-missing.sh: And this. 2012-08-13 Stefano Lattarini Merge branch 'maint' * maint: tests: rework tests on AM_PATH_PYTHON cosmetics: fix typos and references in comments typofix: in a test diagnostic readme: fixlets to HACKING 2012-08-13 Stefano Lattarini tests: rework tests on AM_PATH_PYTHON * t/python8.sh, t/python9.sh: Merge into ... * t/python-am-path-iftrue.sh: ... this new test, with minor adjustments. * t/python4.sh, t/python5.sh, t/python6.sh, t/python7.sh: Merge into ... * t/python-missing.sh: ... this new test. * t/python5b.sh: Rename ... * t/python-too-old.sh: ... like this, and adjust/extend. * t/list-of-tests.mk: Adjust. 2012-08-13 Stefano Lattarini cosmetics: fix typos and references in comments * lib/am/check.am: Here. * doc/automake.texi: And here. * t/*.sh: And in several of these tests. 2012-08-13 Stefano Lattarini typofix: in a test diagnostic * t/cscope.tap: Here. 2012-08-12 Stefano Lattarini readme: fixlets to HACKING * HACKING: Use longer "=====" lines to separate different section (this is just eye-candy admittedly, but I prefer it). (Release procedure): Don't tell to "update NEWS"; that should be updated throughout the normal course of development. Instead, tell to just check it. Improve description of the re-bootstrapping and rechecking procedure, also suggesting to use "git clean" beforehand (with all due warnings!). 2012-08-12 Stefano Lattarini Merge branch 'maint' * maint: cleanup: remove stale references to 'lzma' option 2012-08-12 Stefano Lattarini cleanup: remove unused transform '%HAVE-MANS%' * automake.in (preprocess_file): Here. 2012-08-11 Stefano Lattarini cleanup: remove stale references to 'lzma' option * automake.in (preprocess_file): Here. (handle_dist): And here. 2012-08-10 Stefano Lattarini Merge branch 'maint' * maint: automake: remove an unused local variable distcheck: more resilient against possible failures cleanup: remove almost-unused global var 'am_relative_dir' 2012-08-10 Stefano Lattarini automake: remove an unused local variable * automake.in (handle_dist): Here, the '$extra_dist' variable. 2012-08-10 Stefano Lattarini distcheck: more resilient against possible failures * lib/am/distdir.am (distcheck): Ensure that a failure in the commands making the just-extracted source tree read-only cause the recipe to fail. While at it, save a fork by creating the '_build' and '_inst' subdir with a single mkdir invocation. 2012-08-10 Stefano Lattarini cleanup: remove almost-unused global var 'am_relative_dir' Cherry picked from commit v1.12.2-741-g53b5d11 of Automake-NG. * automake.in ($am_relative_dir): Delete, it was only used once ... (generate_makefile): ... in here, so it's simpler to inline its expansion. (initialize_per_input): Don't reset the deleted variable. 2012-08-10 Stefano Lattarini Merge branch 'maint' * maint: cleanup: remove two almost-unused global variables: {am,in}_file_name cleanup: remove almost-unused global var 'topsrcdir' automake: remove an unused variable tests: make a test script more semantic tests: remove an obsolete, no-op test script tests: remove an obsolete test script 2012-08-10 Stefano Lattarini cleanup: remove two almost-unused global variables: {am,in}_file_name Cherry picked from commit v1.12.2-739-gbf2a8b0 of Automake-NG. * automake.in ($am_file_name, $in_file_name): Delete these, which were used only in the 'read_main_am_file' subroutine; instead ... (read_main_am_file): ... modify it to only work from the '$makefile_am' argument (which it was already receiving), and the new '$makefile_in' argument, which is now passed to it ... (generate_makefile): ... from here. (initialize_per_input): Don't reset the two deleted variables anymore. 2012-08-10 Stefano Lattarini cleanup: remove almost-unused global var 'topsrcdir' Cherry picked from commit v1.12.2-740-ga7f24eb in Automake-NG. * automake.in ($topsrcdir): Delete, it was only used once ... (handle_LIBOBJS_or_ALLOCA): ... in here, so it's simpler to inline its expansion. Improve formatting of immediately surrounding code a little while we are at it. (initialize_per_input): Don't reset the deleted variable. 2012-08-10 Stefano Lattarini automake: remove an unused variable * automake.in ($canonical_location): This. (scan_autoconf_traces): Don't initialize it. 2012-08-08 Stefano Lattarini tests: make a test script more semantic This is mostly useful for Automake-NG, that is heavily overhauling the generated Makefiles and thus is prone to break grepping checks (which can sometimes end up causing false negatives in the testsuite, sadly). But this is not a reason not to strengthen the test for mainline Automake as well. * t/noinstdir.sh: Add semantic checks. 2012-08-08 Stefano Lattarini tests: remove an obsolete, no-op test script * t/info.sh: This: it tried to operate by checking the contents of the variable '$(INFOS)', but that is not even defined (and probably has been obsolete for quite a long time). Since other tests already do thorough testing of the Texinfo support, just remove this test. * t/list-of-tests.mk: Adjust. 2012-08-08 Stefano Lattarini tests: remove an obsolete test script * t/scripts.sh: This: it used to check that the 'AC_PROG_INSTALL' macro was not uselessly required, but today that macro is AC_REQUIRE'd by 'AM_INIT_AUTOMAKE' anyway, so that the test is no more significant. * t/list-of-tests.mk: Adjust. 2012-08-05 Stefano Lattarini Merge branch 'maint' * maint: tests: avoid spurious failures with older Texinfo tests: avoid tons of spurious failures on NetBSD runtest: avoid spurious failures on NetBSD news: dependency tracking for Portland Group Compilers is now supported 2012-08-05 Stefano Lattarini tests: avoid spurious failures with older Texinfo * t/distcheck-override-infodir.sh (main.texi): Add explicit calls to '@dircategory' and '@direntry', to ensure a 'dir' file will be created also by 'install-info' coming with Texinfo 4.8. 2012-08-05 Stefano Lattarini tests: avoid tons of spurious failures on NetBSD * t/ax/am-test-lib.sh (process_requirements): Set the '$am_tool' variable to the empty string before trying to unset it; otherwise, we might be attempting to unset an already-unset variable, which (together with the presence of the 'errexit' shell flag) causes spurious failures at least with the /bin/sh shell from NetBSD 5.1. This was actually causing the great majority of the Automake tests (all those not using a "required=..." declaration) to fail spuriously on that platform! 2012-08-05 Stefano Lattarini runtest: avoid spurious failures on NetBSD * runtest.in: Use ${1+"$@"} rather than simply "$@", because the 'set -u' setting used in the script causes the latter to trigger a spurious error with the NetBSD 5.1 /bin/sh ("./runtest: @: parameter not set") if there are no arguments to the test. 2012-08-05 Stefano Lattarini news: dependency tracking for Portland Group Compilers is now supported * NEWS: So document it here. 2012-08-05 Stefano Lattarini Merge branch 'elisp-work' * elisp-work: news: document all the recent elisp-related changes and improvements coverage: byte-compiling elisp files in different subdirectories elisp: honour AM_ELCFLAFS and ELCFLAGS in byte-compilation elisp: --batch implies -q, remove -q elisp: support elisp files in subdirectories properly elisp: simplify suffix rules using emacs '-L' option elisp: no need to "absolutize" $(srcdir) and $(builddir) ... elisp: prefer $(builddir) files over $(srcdir) ones elisp: use suffix rules, get rid of 'elisp-comp' script (mostly a rewrite) coverage: elisp path contains $(srcdir) and $(builddir) coverage: emacs lisp files in subdirectories 2012-08-05 Stefano Lattarini Merge branch 'maint' * maint: tests: cater to OpenSolaris 'zip' 2012-08-05 Stefano Lattarini tests: cater to OpenSolaris 'zip' * t/dist-formats.tap: Here: OpenSolaris zip do not accept the '--version' option, but accept the '-v' one with a similar meaning (if no further arguments are given). 2012-08-04 Stefano Lattarini Merge branch 'maint' * maint: tests: fix a spurious XPASS on OpenIndiana tests: avoid spurious failure of 't/vala-vapi.sh' on OpenIndiana tests: avoid spurious failure of 't/uninstall-fail.sh' on OpenIndiana tests: reimplement wrappers for automake and aclocal in perl tests: work around a ksh bug w.r.t. ${1+"$@"} depcomp: style changes to Portland Group Compilers support depcomp: initial support for Portland Group Compilers 2012-08-04 Stefano Lattarini tests: fix a spurious XPASS on OpenIndiana * t/instspc.tap: Here, by isolating the $(DESTDIR) used by runs with different "problematic strings" to prevent them to unduly interfering with each other. With this, the Automake testsuite finally run cleanly on the OpenIndiana and Solaris 10 systems I have access to. 2012-08-04 Stefano Lattarini tests: avoid spurious failure of 't/vala-vapi.sh' on OpenIndiana * t/vala-vapi.sh: Use 'printf', not 'echo', to print strings containing substrings like '\n', that can be interpreted like escape strings. That because the /bin/sh and the /bin/bash shell from OpenIndiana actually interpret them that way: $ /bin/sh -c 'echo "foo\nbar"' foo bar $ /bin/bash -c 'echo "foo\nbar"' foo bar 2012-08-04 Stefano Lattarini tests: avoid spurious failure of 't/uninstall-fail.sh' on OpenIndiana On current OpenIndiana (based on what once was OpenSolaris 11), the shell /bin/sh (which, differently from what happens on Solaris, is a true POSIX shell, thus worthy of consideration) somehow manages to "eat" the error message from 'rm' when that fails to remove a file due to lacking permission on the parent directory: $ /bin/sh -c "cd unwritable-dir || { echo OOPS; exit 1; }; rm -f foo" $ echo rc = $? rc = 1 $ /bin/bash -c "cd unwritable-dir || { echo OOPS; exit 1; }; rm -f foo" rm: foo not removed: Permission denied $ echo rc = $? rc = 2 $ /bin/sh -c "cd unwritable-dir || { echo OOPS; exit 1; }; env rm -f foo" rm: foo not removed: Permission denied $ echo rc = $? rc = 2 That is probably due to an improper optimization, that is, the shell tries to be smart and remove the file itself instead of invoking 'rm', but fails spectacularly in the attempt. * t/uninstall-fail.sh: The just-described bug was causing a spurious failure in this test case. Cater to thus situation, by relaxing the test when a faulty shell is detected. And while at it, fix and improve an unrelated comment. 2012-08-04 Stefano Lattarini tests: reimplement wrappers for automake and aclocal in perl This will allow us to avoid one extra shell invocation per automake and aclocal invocation in our testsuite, and, more importantly, will allow us not to worry about potential shell portability issues, at least in those wrappers. For an example of such a portability issue, refer to the recent commit v1.12.2-80-g65dadf6 "tests: work around a ksh bug w.r.t. ${1+"$@"}". * t/wrap/automake.in, t/wrap/aclocal.in: Rewritten in perl. 2012-08-04 Stefano Lattarini tests: work around a ksh bug w.r.t. ${1+"$@"} Fixes automake bug#10898. See also the older (much older) thread: At least the AT&T and OpenSolaris versions of the Korn shell, as well as the /bin/sh from OpenIndiana 11, have a strange bug regarding the expansion of ${1+"$@"}: when exactly *one empty* argument is passed to a script run by one of this shells, inside that script ${1+"$@"} will expand to *nothing*, rather than to to the single empty string, as one would expect (OTOH, $# will correctly expand to 1). This buggy behaviour was causing a spurious failure in our testsuite (test 6 in 't/automake-cmdline.tap'). Work around it. * t/wrap/automake.in: Here. 2012-08-04 Stefano Lattarini news: document all the recent elisp-related changes and improvements * NEWS (Elisp byte-compilation): Here. Also notice that the recent changes have fixed the long-standing (almost two years old!) automake bug#7441. 2012-08-04 Stefano Lattarini coverage: byte-compiling elisp files in different subdirectories Where a '.el' file in a subdirectory might require a '.el' file in another one. This does not work out of the box, but can be made to work with a judicious use of $(AM_ELCFLAGS) (just introduced in the previous commit). * t/lisp-subdir-mix.sh: New test. * t/list-of-tests.mk: Add it. 2012-08-04 Stefano Lattarini elisp: honour AM_ELCFLAFS and ELCFLAGS in byte-compilation * lib/am/lisp.am (.el.elc): Add "$(AM_ELCFLAFS) $(ELCFLAGS)" to the emacs command line. * t/lisp-flags.sh: New test. * t/list-of-tests.mk: Add it. * doc/automake.texi (Emacs Lisp): Update. 2012-08-02 Stefano Lattarini Merge branch 'depcomp-pgcc' into maint * depcomp-pgcc: depcomp: style changes to Portland Group Compilers support depcomp: initial support for Portland Group Compilers 2012-07-30 Stefano Lattarini Merge branch 'maint' * maint: build: fix build in VPATH setup gen-tests: simplify sourcing of helper shell files 2012-07-30 Stefano Lattarini build: fix build in VPATH setup * Makefile.am (t/ax/test-defs.sh): Ensure the 't/ax' directory exists, before trying to create 'test-defs.sh' in there. This is required in VPATH builds. Reported-by: Akim Demaille 2012-07-26 Stefano Lattarini news: fix a couple of minor formatting issues * NEWS (New in 1.13): Here. 2012-07-26 Stefano Lattarini gen-tests: simplify sourcing of helper shell files This is a follow-up on commit v1.12.2-49-g42fb45b, for an occurrence of '. "$am_testauxdir"/foo.sh' that wasn't in a test script, but rather in 'gen-testsuite-part' (ending up in the tests generated by that script). * gen-testsuite-part: In the generated 'depcomp*.tap' tests, use simply: . depcomp.sh rather than: . "$am_testauxdir/depcomp.sh" 2012-07-26 Stefano Lattarini typofix: in a comment in Makefile.am 2012-07-26 Stefano Lattarini Merge branch 'maint' * maint: (38 commits) maintcheck: fixup list of files in $(xdefs) tests: never source test-defs.sh directly, source test-lib.sh instead runtest: sanitize test environment tests: remove an obsolescent self test tests: "am_using_tap=yes" -> "am_test_protocol=tap" tests: protect test libs against multiple inclusion configure: testsuite shell can return early from "dot-sourced" files tests: move sanitization and "Bournification" in the generic test lib tests: source test defs in the generic test lib test defs: no need to re-add $srcdir/t/ax to $PATH tests: split test libs into "generic" and "automake-specific" test setup: move actual calling of testsuite setup in ./defs test setup: merge definitions of function for simple tests test init: refactor: new function 'am_test_setup' test init: refactor: move displaying of debugging info later test init: refactor: new function 'am_setup_testdir' test init: refactor: new function 'am_set_exit_traps' configure: testsuite shell set exit traps in shell functions test init: refactor: new function 'am_exit_trap' test init: refactor: new function 'process_requirements' ... 2012-07-26 Stefano Lattarini Merge branch 'testsuite-refactor' into maint * testsuite-refactor: (33 commits) maintcheck: fixup list of files in $(xdefs) tests: never source test-defs.sh directly, source test-lib.sh instead runtest: sanitize test environment tests: remove an obsolescent self test tests: "am_using_tap=yes" -> "am_test_protocol=tap" tests: protect test libs against multiple inclusion configure: testsuite shell can return early from "dot-sourced" files tests: move sanitization and "Bournification" in the generic test lib tests: source test defs in the generic test lib test defs: no need to re-add $srcdir/t/ax to $PATH tests: split test libs into "generic" and "automake-specific" test setup: move actual calling of testsuite setup in ./defs test setup: merge definitions of function for simple tests test init: refactor: new function 'am_test_setup' test init: refactor: move displaying of debugging info later test init: refactor: new function 'am_setup_testdir' test init: refactor: new function 'am_set_exit_traps' configure: testsuite shell set exit traps in shell functions test init: refactor: new function 'am_exit_trap' test init: refactor: new function 'process_requirements' ... 2012-07-26 Stefano Lattarini Merge branch 'fix-pr12041' into maint * fix-pr12041: tests: avoid spurious failure when running as root 2012-07-26 Stefano Lattarini maintcheck: fixup list of files in $(xdefs) syntax-checks.mk (xdefs): Adjust to recent changes: add 't/ax/test-lib.sh' and 't/ax/test-lib.sh', remove the now-deleted 't/ax/test-init.sh' 2012-07-26 Stefano Lattarini tests: never source test-defs.sh directly, source test-lib.sh instead After the recent re-organization, sourcing 'test-defs.sh' directly might not work well and cause spurious failures or other unexpected behaviours. We should source 'test-lib.sh' instead, which contains not more direct code execution (only definition of shell variables/functions, or sourcing of other '*.sh' with the same property), is protected against multiple inclusions, and sources 'test-defs.sh' automatically in in a proper way. * t/testsuite-summary-count.sh, t/tap-summary.sh, t/tap-summary-color.sh, t/testsuite-summary-color.sh: Source 'test-lib.sh', not 'test-defs.sh'. * gen-testsuite-part: Likewise, in the generated wrapper scripts. 2012-07-26 Stefano Lattarini runtest: sanitize test environment * runtest.in: Here, similarly to what is done by AM_TESTS_ENVIRONMENT in Makefile.am, unset variables that should be under the complete control of the test framework, and that could create havoc if inherited from the environment. This remove the need to check against possible environment "pollution" ... * t/ax/test-defs.in: ... in here. * Makefile.am (AM_TESTS_ENVIRONMENT): Add a comment about the need of synchronization with 'runtest.in'. * t/self-check-env-sanitize.tap: Remove as obsolete. * t/list-of-tests.mk: Adjust. 2012-07-26 Stefano Lattarini tests: remove an obsolescent self test * t/self-check-tap.sh: This. The recent reorganization and code moving between 'test-defs.sh' and 'test-lib.sh' has made it brittle and prone to failures. Since the usefulness of this self check is extremely limited, it's not worth trying to fix it. Just remove it. * t/list-of-tests.mk: Adjust. 2012-07-26 Stefano Lattarini tests: "am_using_tap=yes" -> "am_test_protocol=tap" And similarly, "am_using_tap=no" -> "am_test_protocol=none". The new '$am_test_protocol' name is clearer, and will allow the easy addition of further test protocols in the future. This is not truly relevant for automake, but we are trying to make some parts of our testsuite framework as general as possible, in view of a future move to a more generic project like Gnulib. * Makefile.am, t/ax/am-test-lib.sh, t/ax/test-defs.in, t/ax/test-lib.sh, t/self-check-env-sanitize.tap, t/self-check-tap.sh: Adjust. * syntax-checks.mk (sc_tests_obsolete_variables): Add 'am_using_tap' to the list of obsolete variables to check against. 2012-07-26 Stefano Lattarini tests: protect test libs against multiple inclusion * t/ax/test-lib.sh, t/ax/am-test-lib.sh: Return early if already sourced. Use the witness variables '$test_lib_sourced' and '$am_test_lib_sourced', respectively, for this purpose. * runtest.in, Makefile.am (AM_TESTS_ENVIRONMENT): Unset 'test_lib_sourced' and 'am_test_lib_sourced', to avoid interferences from the environment. 2012-07-26 Stefano Lattarini configure: testsuite shell can return early from "dot-sourced" files * configure.ac: Check that the shell selected to run the test scripts can call 'return' form within a file being sourced with the '.' built-in. 2012-07-26 Stefano Lattarini tests: move sanitization and "Bournification" in the generic test lib * t/ax/test-defs.sh: From here ... * t/ax/test-lib.sh: ... to here. Also move the initialization of '$argv0' and '$me'. 2012-07-26 Stefano Lattarini tests: source test defs in the generic test lib * t/ax/test-lib.sh: That is, here ... * defs: ... rather than here. 2012-07-26 Stefano Lattarini test defs: no need to re-add $srcdir/t/ax to $PATH * t/ax/test-defs.sh: Here. That is already done by both 'runtest' and AM_TESTS_ENVIRONMENT, and the presence of '$srcdir/t/ax' in $PATH is anyway required, after the recent changes, for our testsuite framework to work at all. 2012-07-26 Stefano Lattarini tests: split test libs into "generic" and "automake-specific" This is the first step in the quest to merge the generically useful parts of our test suite framework in a more generic project, like Gnulib. Time will tell if we'll succeed, and whether the success will be worth the extra hassle. * t/ax/test-init.sh: Split out ... * t/ax/am-test-lib.sh, t/ax/test-lib.sh: ... into these two tests. * defs, Makefile.am: Adjust. 2012-07-26 Stefano Lattarini test setup: move actual calling of testsuite setup in ./defs * t/ax/test-init.sh: Move call to 'am_test_setup' ... * defs: ... here. 2012-07-26 Stefano Lattarini test setup: merge definitions of function for simple tests * t/ax/plain-functions.sh: Delete, moving the definitions of ... ($stderr_fileno_): ... this variable ... (warn_, fail_, skip_, skip_all_, fatal_, framework_failure_): ... and these functions ... * t/ax/test-init.sh: ... in here. This allow us to use those functions earlier in this file (instead of having to duplicate their behaviour with inlined code). The TAP-based tests are still able to override these functions later to their TAP-enhanced equivalents when 'tap-functions.sh' is sourced. * Makefile.am (dist_noinst_DATA): Remove 't/ax/plain-functions.sh'. * t/ax/tap-functions.sh: Adjust a comment. 2012-07-26 Stefano Lattarini test init: refactor: new function 'am_test_setup' * t/ax/test-init.sh (am_test_setup): Here. Call it from the main code. Remove other calls of functions and settings that are now duly called by 'am_test_setup'. 2012-07-26 Stefano Lattarini test init: refactor: move displaying of debugging info later * t/ax/test-init.sh: Here, about the values of $PATH, $am_using_tap and $am_running_installcheck. 2012-07-26 Stefano Lattarini test init: refactor: new function 'am_setup_testdir' * t/ax/test-init.sh (am_setup_testdir): Here. Use it instead of inlining its contents in the main code. 2012-07-26 Stefano Lattarini test init: refactor: new function 'am_set_exit_traps' * t/ax/test-init.sh (am_set_exit_traps): Here. (trap): Use it instead of inlining the cleanup/finalization code. 2012-07-26 Stefano Lattarini configure: testsuite shell set exit traps in shell functions * configure.ac: Check that the shell selected to run the test scripts can set an exit trap in a shell function, without having that trap executed at the termination of the function rather than of the scripts. According to the Autoconf manual, at least AUX 5.3 /bin/sh suffers of such a bug. 2012-07-26 Stefano Lattarini test init: refactor: new function 'am_exit_trap' * t/ax/test-init.sh (am_exit_trap): Here. (trap): Use it instead of inlining the cleanup/finialization code. 2012-07-26 Stefano Lattarini test init: refactor: new function 'process_requirements' * t/ax/test-init.sh (process_requirements): Here. Use it in to check that the tools in $required are present. 2012-07-26 Stefano Lattarini test init: refactor: new function 'require_tool' * t/ax/test-init.sh (require_tool): Here. Use it in the loop in the prerequisites in $required. 2012-07-26 Stefano Lattarini test init: remove a couple of paranoid sanity checks * t/ax/test-init.sh: Here, about 'am_top_srcdir' and 'am_top_builddir'; the values of those variables are AC_SUBST'd, so it's nigh impossible for the to be wrong or get "messed up". 2012-07-26 Stefano Lattarini tests: simplify sourcing of helper shell files Now that the early $PATH setup in both 'runtest' and AM_TESTS_ENVIRONMENT allow the '.' built-in to find to-be-sourced shell scripts in the 't/ax/' directory automatically, we can simplify several usages like: . "$am_testauxdir"/foo.sh to just: . foo.sh Also, because our test scripts run with the 'errexit' flag active, and because POSIX mandates that, when the '.' built-in is used, ... if no readable file is found, a non-interactive shell shall abort ... we can further simplify usages like: . "$am_testauxdir"/foo.sh || fatal_ "sourcing foo.sh" once again to to just: . foo.sh * ./defs, several tests: Adjusted. 2012-07-26 Stefano Lattarini test defs: move in 't/ax/test-defs.sh' We can do so with minimal churn, now that the early setup of $PATH in both 'runtest' and AM_TESTS_ENVIRONMENT allow the '.' built-in to find to-be-sourced shell scripts in 't/ax' automatically, both in in-tree and VPATH builds. With this change, we take another step forward a more rational and "segregated" organization of our testsuite framework. * defs-static.in: Rename ... * t/ax/test-defs.in: ... like this, and adjust. * Makefile.am, syntax-checks.mk, t/README, gen-testsuite-part, t/tests-init.sh, t/ax/tap-setup.sh, t/tap-summary.sh, .gitignore, t/testsuite-summary-color.sh, t/testsuite-summary-count.sh, t/self-check-tap.sh, defs: Adjust. 2012-07-26 Stefano Lattarini tests: update PATH early from AM_TESTS_ENVIRONMENT and runtest Because the POSIX standards mandate that sourcing a file with ". FILE" will cause FILE (assuming it is a relative containing no slashes) to be looked for in PATH, such a move will allow us to simplify our sourcing of shell testing libraries like (currently) 't/ax/test-init.sh' and 'defs', and to modularize and re-organize them better in the feature, with minimal churn. * runtest.in, Makefile.am (AM_TEST_ENVIRONMENT): Prepend $(abs_srcdir)/t/ax and $(abs_builddir)/t/ax (in that order) to PATH; do so avoiding repetition in the common case of non-VPATH builds. 2012-07-26 Stefano Lattarini runtest: export $srcdir for use by the test scripts This is mostly a preparatory change in view of future ones. But it also make the behaviour of runtest more similar to that of the test harness used by "make check". * runtest.in: Export srcdir (was already defined to '@srcdir@'). 2012-07-26 Stefano Lattarini gen-tests: $testdir/ax -> $testauxdir * gen-testsuite-part ($testauxdir): New, defined to "$testdir/ax". Use it throughout, for better encapsulation and less duplication. ($auxdir): Remove as unneeded. 2012-07-26 Stefano Lattarini gen-tests: less hard-coding of 't' as the test directory This will make life easier for us in case we decide to rename the testsuite directory in the future (perhaps to something like 'tests', which is somewhat less cryptic than the current 't'). * gen-testsuite-part ($testdir): New variable, used throughout instead of hard-coding the name of the test directory to 't'. All the script adjusted to make proper use of '$testdir'. ($auxdir): Move its definition earlier, for consistency with the one of '$testdir'. 2012-07-26 Stefano Lattarini build: auxiliary testsuite files/scripts built by "make all" This will allow the developers to run a tests case by hand out of a newly extracted tarball simply doing: $ ./configure && make $ ./runtest t/the-test-case.sh while before this change one has to resort to: $ ./configure && make && make check TESTS= $ ./runtest t/the-test-case.sh or, with some non-GNU makes, even: $ ./configure && make && make check TESTS= AM_MAKEFLAGS="TESTS=" $ ./runtest t/the-test-case.sh This come very handy sometimes, especially when doing one-shot debugging. Admittedly not a big deal, but one less friction in the build system is always nice. * Makefile.am (check_SCRIPTS, dist_check_DATA, nodist_check_DATA): Move their content to ... (noinst_SCRIPTS, dist_noinst_DATA, nodist_noinst_DATA): ... these variables. Adjust comments. 2012-07-26 Stefano Lattarini perf tests: reorganize * t/list-of-tests.mk (handwritten_TESTS): Don't list ($perf_TESTS) in here anymore. * Makefile.am (EXTRA_DIST): Add them explicitly. (perf): New target, run the performance tests and save the logs of the ones with unexpected results in the file 't/perf/test-suite.log', which is thus ... (PERF_TEST_SUITE_LOG): ... defined in this variable ... (CLEANFILES): ... and added to this. (test_subdirs): Remove 't/perf': the tests in there are no more listed in $(TESTS). * t/ax/test-init.sh: Don't explicitly skip "perf" test here. 2012-07-26 Stefano Lattarini runtest: pass *all* the given shell options to the test invocation * runtest.in: Here. This didn't work previously because, in our option parsing loop, we were mistakenly redefining '$shell_opts' each time, instead of appending to it. 2012-07-26 Stefano Lattarini runtest: correctly pass shell option also for TAP tests * runtest.in: Here. This required code refactoring not completely trivial. 2012-07-26 Stefano Lattarini cosmetics: remove leftover comment fragment from runtest.in 2012-07-25 Stefano Lattarini test defs: improve a comment * defs-static.in: Here, about the unsetting of CDPATH. 2012-07-25 Stefano Lattarini test defs: remove obsolete comment * defs-static.in: Here: do not state anymore that this file should execute correctly with any system's /bin/sh shell, as this is not true anymore: the testsuite assumes a POSIX shell throughout these days. 2012-07-25 Stefano Lattarini runtest: support option --shell, tell which shell should run the test * runtest.in: Here. The same effect could have been obtained by exporting AM_TEST_RUNNER_SHELL to the desired value, but the new API is simpler and requires less typing and less thinking. 2012-07-25 Stefano Lattarini runtest: support passing options over to the shell * runtest.in: Here. Also, support '--help' to display a nice help screen. 2012-07-25 Stefano Lattarini tests: avoid spurious failure when running as root Fixes automake bug#12041. * t/primary-prefix-couples-force-valid.sh: If run as root, don't expect a "test -x" on a non-executable files to fail: for root, all files are executable (as well as readable and writable), and at least on Solaris 10 that causes "test -x" to succeed also on non-executable files. 2012-07-24 Stefano Lattarini Merge branch 'maint' * maint: tests: avoid non-textual output in a '.log' file 2012-07-24 Stefano Lattarini tests: avoid non-textual output in a '.log' file * t/dist-formats.tap: Here. Otherwise, some inferior awk implementations, like OpenIndiana /usr/xpg4/bin/awk, could be confused and cause spurious errors in the testsuite harness. 2012-07-24 Stefano Lattarini tags: refactor to reduce code duplication (2) No semantic change is intended. * lib/am/tags.am (am__define_uniq_tagged_files): New variable, factor out some code common to ... (ctags-am, tags-am, ID): ... the recipes of these targets. 2012-07-24 Stefano Lattarini tags: refactor to reduce code duplication (1) No semantic change is intended. * lib/am/tags.am (am__uniquify_input): New variable, factor out some code common to ... (ctags-am, tags-am, ID): ... the recipes of these targets. 2012-07-24 Stefano Lattarini Merge branches 'tags-simplify-recursion' and 'color-tests-always' * tags-simplify-recursion: tags: unify recursion for tags targets with that of "usual" targets * color-tests-always: tests: better name for a couple of tests check: support colorized testsuite output by default 2012-07-23 Stefano Lattarini tests: avoid a spurious failure with Solaris /bin/sh The /bin/sh shell on Solaris is dumb enough not to set the exit status to 127 after the execution of a non-existing command is attempted: $ /bin/sh -c 'nonesuch'; echo stat = $? /bin/sh: nonesuch: not found stat = 1 This means that the missing script, when run through that shell, cannot discriminate between a real failure of a maintainer tool and a failure due to its absence. This is not a big deal in practice (especially because all the 'missing' invocations in our Makefiles are done with $(SHELL), and that is almost surely set by configure to a proper POSIX shell), but was causing an annoying failure in our testsuite. Fix it. * t/missing3.sh: If 'missing' is run with a /bin/sh shell suffering from the just-described bug, skip the check that would spuriously fail due to that bug. 2012-07-23 Stefano Lattarini tests: fix buglet in t/missing3.sh * t/missing3.sh: Be sure to use 'run_cmd' also in the first invocation of 'missing', to ensure the stderr will actually be saved in a file we can later grep. 2012-07-23 Stefano Lattarini Merge branch 'maint' * maint: self tests: avoid spurious failures on older bash tests: remove t/parallel-tests-many.sh (fixes spurious failure) typofix: in a comment in the automake script news: minor fixlets and reordering 2012-07-23 Stefano Lattarini Merge branch 'fix-pr11909' into maint * fix-pr11909: self tests: avoid spurious failures on older bash 2012-07-23 Stefano Lattarini self tests: avoid spurious failures on older bash Fixes automake bug#11909. * t/self-check-explicit-skips.sh: Remove or rework few checks for use cases that are no more relevant nor supported now that we've got rid of the need to use the 'Exit' function explicitly. Make the other existing checks stricter. 2012-07-23 Stefano Lattarini tests: remove t/parallel-tests-many.sh (fixes spurious failure) That test was checking for automake#7868 "parallel-tests and command-line length limit issue". That bug is still open, and the tests was xfailing. What concerns us is that the test was also causing an annoying problem. On Solaris 10, it produced a '.log' file with two overly-long lines (more than 1 million characters long!) and that was causing the test harness to experience spurious failures, with Solaris XPG4 awk complaining that: /usr/xpg4/bin/awk: line 0 (NR=734): Record too long (LIMIT: 19999 bytes) A little consideration shows that the bug#7868 checked by the culprit test cannot be solved "by accident", e.g., by another bug fix or some simple refactoring, so there is little added value in keeping the xfailing test for it, if this causes other problems (and we've seen it does). So we just remove the test. In case we ever manage to fix the bug in mainline automake, we can copy over the similar test(s) from Automake-NG, which has actually managed to fix the bug (and have simpler test cases for it). * t/parallel-tests-many.sh: Delete. * t/list-of-tests.mk (XFAIL_TESTS, handwritten_TESTS): Remove it. 2012-07-22 Stefano Lattarini tests: better name for a couple of tests * t/color.sh: Rename ... * t/color-tests.sh: ... like this. * t/color2.sh: Rename ... * t/color-tests2.sh: ... like this. * t/list-of-tests.mk: Adjust. 2012-07-22 Stefano Lattarini check: support colorized testsuite output by default Fixes automake bug#11855. With this change, we make the 'color-tests' option enabled by default. That option remains still silently accepted as a no-op, for backward compatibility. The developer of a package is still free to disable testsuite coloring on a per-makefile basis (by adding "AM_COLOR_TESTS = no" to the Makefile.am) or on a whole-project basis (by AC_SUBST'ing AM_COLOR_TESTS to "no" in configure.ac). But now the user will be able to request the testsuite output to be colorized, if he really wants to: # With GNU make: make AM_COLOR_TESTS=yes check # With non-GNU make: make AM_COLOR_TESTS=yes AM_MAKEFLAGS=AM_COLOR_TESTS=yes check * NEWS: Update. * doc/automake.texi: Updated, and some related minor reformatting and rewording. * automake.in (handle_tests): No need to pass the transform '%COLOR%' when processing "check.am". * lib/am/parallel-tests.am: Remove use of the '%?COLOR%' transform; just act as if it were unconditionally TRUE. * t/color.sh: No need to specify 'color-tests' in 'AUTOMAKE_OPTIONS' nor in 'AM_INIT_AUTOMAKE'. * t/ax/testsuite-summary-checks.sh: Likewise. * t/ax/tap-summary-aux.sh: Likewise. * t/color2.sh: Likewise. Also, ensure that colorized testsuite output can be disabled by default by calling "AC_SUBST([AM_COLOR_TESTS], [no])". * t/tap-realtime.sh: Define 'AM_COLOR_TESTS' to "no" in Makefile.am, to avoid spurious colorization of the output due to the use of the 'expect' program. * t/color-tests-opt.sh: New test, check that the 'color-tests' option is still recognized as a no-op. * t/list-of-tests.mk: Add the new test. 2012-07-22 Stefano Lattarini tags: unify recursion for tags targets with that of "usual" targets This change has a side effect: now any failure of the 'tags', 'ctags', 'cscope' and 'cscopelist' targets in a subdirectory will cause the recursive command issued from the top directory to fail. We believe that this behavioural change is not only justified by the simplification this patch entails, but actually offers better semantics: ignoring failures by default is never a good idea, and with make, the user can anyway order the completion of commands in the face of possible failures with the '-k' option. * NEWS: Update. * automake.in (%required_targets): Add keys 'cscopelist-am', 'tags-am' and 'ctags-am'. (handle_tags): Greatly simplified, the major part of the handling of recursion for the 'tags', 'ctags' and 'cscopelist' now moved out to ... * lib/am/tags.am: ... this file, that has been adjusted and extended accordingly. * t/maken3.sh: Remove testing of the 'TAGS' target, that is now just an alias to 'tags'. Without this change, this test would spuriously fail. 2012-07-21 Stefano Lattarini typofix: in a comment in the automake script * automake.in (process_file): Here. 2012-07-17 Stefano Lattarini news: minor fixlets and reordering 2012-07-16 Jack Kelly elisp: --batch implies -q, remove -q According to the emacs manual[1], --batch implies -q, so there's no need to pass -q when compiling elisp. * lib/am/lisp.am: Remove -q from $(EMACS) call. [1]: http://gnu.org/s/emacs/manual/html_node/emacs/Initial-Options.html 2012-07-16 Stefano Lattarini Merge branch 'maint' * maint: fixup: delete "# serial" line in m4/amversion.in news: update about recent ylwrap changes and fixes m4: get rid of "# serial" lines configure: ${#param} must be supported by the shell for the testsuite yacc tests: fix a spurious failure with parallel make ylwrap: use proper quoting inside a `...` substitution ylwrap: don't uselessly reset the exit status in case of failure ylwrap: fix C++ support for Bison ylwrap: refactor: move loop invariant ylwrap: refactoring: don't rely on the file order tests: upgrade and fix Bison test case tests: fix bison input file ylwrap: comment changes ylwrap: modernize idioms ylwrap: rename header inclusion in generated parsers ylwrap: simplify the list of renamings ylwrap: refactor: less duplication 2012-07-16 Stefano Lattarini fixup: delete "# serial" line in m4/amversion.in Otherwise, when m4/amversion.m4 is regenerated, it will contain a serial line as well. 2012-07-16 Stefano Lattarini Merge branch 'yacc-work' into maint * yacc-work: news: update about recent ylwrap changes and fixes yacc tests: fix a spurious failure with parallel make ylwrap: use proper quoting inside a `...` substitution ylwrap: don't uselessly reset the exit status in case of failure ylwrap: fix C++ support for Bison ylwrap: refactor: move loop invariant ylwrap: refactoring: don't rely on the file order tests: upgrade and fix Bison test case tests: fix bison input file ylwrap: comment changes ylwrap: modernize idioms ylwrap: rename header inclusion in generated parsers ylwrap: simplify the list of renamings ylwrap: refactor: less duplication 2012-07-16 Akim Demaille news: update about recent ylwrap changes and fixes * NEWS: In ylwrap, renamings are properly propagated, and unknown files are preserved. 2012-07-15 Stefano Lattarini elisp: support elisp files in subdirectories properly For more reference, see: * lib/am/lisp.am (.el.elc): If the file being byte-compiled is in a subdirectory, add that (both as a subdirectory of the builddir and the srcdir) to the emacs load path. While we are at it (and for consistency), drop quoting of $(srcdir) and $(builddir), since those variables are ensured (by configure-time checks) not to contain white space nor shell metacharacters. * t/list-of-tests.mk (XFAIL_TESTS): Add 't/lisp-subdir.sh' and 't/lisp-subdir2.sh', since they now passes. 2012-07-15 Stefano Lattarini elisp: simplify suffix rules using emacs '-L' option * lib/am/lisp.am (.el.elc): Use '-L dir' instead of calling '--eval' to explicitly append to the 'load-path' variable. 2012-07-15 Stefano Lattarini elisp: no need to "absolutize" $(srcdir) and $(builddir) ... * lib/am/lisp.am (.el.elc): ... here: we don't chdir around anyway, nor move or copy around our source '.el' files. Update comments, and re-wrap them while we are at it. 2012-07-14 Stefano Lattarini elisp: prefer $(builddir) files over $(srcdir) ones * lib/am/lisp.am (.el.elc): Here. This better respects VPATH spirit. Adjust and extends comments. * t/list-of-tests.mk (XFAIL_TESTS): Remove 't/lisp-loadpath.sh', which now passes. 2012-07-14 Jack Kelly elisp: use suffix rules, get rid of 'elisp-comp' script (mostly a rewrite) Motivated by automake bug#11806. Traditionally, automake byte-compiled emacs-lisp '.el' files by invoking 'elisp-comp' on all of them in a bulk; this involved complex timestamping and file-locking logic. It was also brittle in any slightly-unusual setup, because 'elisp-comp' operated by copying all of the elisp files to be compiled into a temporary sub-directory and compiling them in there, the copying the resulting byte-compile files back in the build directory. This patch removes all of that juggling and chicanery in favour of defining a much simpler '.el.elc' suffix rule. Not only this is simpler, but it also interacts better with "make -jN" calls, which are becoming more and more common and useful on today's increasingly multicore systems. * Makefile.am (dist_script_DATA): Remove 'elisp-comp'. * automake.in (@common_files): Likewise. (handle_emacs_lisp): Do not require 'elisp-comp'. * doc/automake.texi: Remove references to 'elisp-comp'. * lib/am/lisp.am: Define elisp compilation via a suffix rule; this basically amounts to a complete re-write of the lisp byte-compilation rules. * lib/elisp-comp: Remove. * t/add-missing.tap: Remove elisp-comp test. * t/dist-auxdir-many-subdirs.sh: Remove reference to elisp-comp. * t/primary-prefix-invalid-couples.tap: Likewise. * t/primary-prefix-valid-couples.sh: Likewise. * t/lisp4.sh: Remove reference to elc-stamp. * t/lisp5.sh: Likewise. * t/lisp6.sh: Likewise. * t/lisp3.sh: Likewise. Also remove the recompilation check that involves a (message) call. * t/lisp7.sh: Remove check for "Warnings can be ignored". Remove reference to elc-stamp. * t/lisp8.sh: Likewise. * t/lispdry.sh: Remove references to elc-stamp. Acked-by: Stefano Lattarini 2012-07-14 Stefano Lattarini coverage: elisp path contains $(srcdir) and $(builddir) * t/lisp-loadpath.sh: Check that. Also check that, in true VPATH spirit, elisp files in the build directory are preferred to those in the source directory. This test currently fails. * t/list-of-tests.mk (handwritten_TESTS): Add the new test. (XFAIL_TESTS): Likewise. 2012-07-14 Stefano Lattarini coverage: emacs lisp files in subdirectories * t/lisp-subdir.sh, t/lisp-subdir2.sh: New tests, still failing. * t/list-of-files.mk (handwritten_TESTS, XFAIL_TESTS): Add them. 2012-07-14 Stefano Lattarini m4: get rid of "# serial" lines The "#serial" lines are only considered by aclocal for the system-wide third-party '.m4' files, not for the Automake-provided ones. So they serve no real purpose in the Automake '.m4' files. In addition, now that we use git and topic branches, and that we are also writing the Automake-NG fork, the "#serial" lines are becoming more and more unreliable (e.g., different version of the same file in different branches can easily end up having the same serial numbers). So let's just nuke all the "#serial" lines. See also automake bug#11932. * m4/*.m4: All "# serial" lines removed. 2012-07-14 Stefano Lattarini configure: ${#param} must be supported by the shell for the testsuite This will be required at least by the Automake-NG branch. * configure.ac: Require the $AM_TEST_RUNNER_SHELL supports ${#param} as a way to obtain the length of the expansion of the variable $param. 2012-07-14 Stefano Lattarini yacc tests: fix a spurious failure with parallel make * t/yacc-bison-skeleton.sh (Makefile.am): Add 'zardoz.h' to BUILT_SOURCES. 2012-07-14 Stefano Lattarini ylwrap: use proper quoting inside a `...` substitution * lib/ylwrap ($target): Here, when redefining this to a temporary file. 2012-07-14 Stefano Lattarini ylwrap: don't uselessly reset the exit status in case of failure * lib/ylwrap: Here. In case of a failure in the wrapped yacc/lex invocation, '$ret' (holding the final exit status of ylwrap) was being uselessly reset to '1' in the later if/else. 2012-07-14 Akim Demaille ylwrap: fix C++ support for Bison Fixes automake bug#7648. The current logic of ylwrap is to call yacc in a sub directory, and pull out of it all the files that were requested on its command line. Reverse this approach: export *all* the files created in the subdirectory, but rename them according to what the command says. This way, extra files, such as position.hh, location.hh and stack.hh for C++ parsers, but also parser.xml or parser.dot if XML or Dot output is enabled, will be preserved. * lib/ylwrap (pairlist): Remove. (main loop): Don't loop over pairlist, but over the files in the temporary directory. * t/list-of-tests.mk (XFAIL_TESTS): Fixes t/yacc-bison-skeleton-cxx.sh. * THANKS (James Bostock): Add, he reported bug#7648. 2012-07-14 Akim Demaille ylwrap: refactor: move loop invariant * lib/ylwrap (input_rx): Move its definition next to its sibling's, outside of the main loop. 2012-07-14 Akim Demaille ylwrap: refactoring: don't rely on the file order Forthcoming changes will make us iterate over the files in a different order. lib/ylwrap (first): Remove, replaced by... (parser): this. 2012-07-14 Akim Demaille tests: upgrade and fix Bison test case * t/yacc-bison-skeleton-cxx.sh: Request locations, to be even more stressful. Use %union to make sure the %{...%} is inserted where appropriate. Fix some indentation/coding style issues. 2012-07-14 Akim Demaille tests: fix bison input file Do not provide implementations in the %{...%} section, especially if the header is included elsewhere, since then the linker will complain about multiple definitions. Reported by Stefano Lattarini, . * t/yacc-bison-skeleton.sh (zardoz.y): Define yylex and yyerror in the epilogue. 2012-07-14 Akim Demaille ylwrap: comment changes * lib/ylwrap: Improve some comments. 2012-07-14 Akim Demaille ylwrap: modernize idioms * lib/ylwrap: Prefer printf to echo when special characters may occur. Replace the historical ',' sed separator with '|'. 2012-07-14 Akim Demaille ylwrap: rename header inclusion in generated parsers Some types of Bison parsers, such as the GLR ones, generate a header file that they include. ylwrap, which renames the generated files, does not rename the included file. Fix this shortcoming, reported for instance here: . Fixes t/yacc-bison-skeleton.sh, see Automake bug#7648 and PR automake/491. * lib/ylwrap (quote_for_sed): Accept arguments. Catch more special characters. (rename_sed): New. Improve the previous renaming sed commands using quote_for_sed. Suggested by Stefano Lattarini here: . (main loop): Use rename_sed to rename the dependencies to other files. * t/yacc-d-basic.sh: Exercise this case, even if bison/yacc was not issuing such an include. * t/list-of-tests.mk (XFAIL_TESTS): Adjust. 2012-07-14 Akim Demaille ylwrap: simplify the list of renamings * lib/ylwrap (pairwise): Instead of being a straightforward copy from the command line arguments, and having to deal with y.tab vs. y_tab later, let pairwise store the real file names to process, y_tab conversion included when needed. (main loop): Use $to instead of $2, for symmetry with $from. 2012-07-14 Akim Demaille ylwrap: refactor: less duplication * lib/ylwrap (guard): New function. Move functions before actual code. 2012-07-13 Stefano Lattarini Merge branch 'maint' * maint: news: mention fixed testsuite weaknesses news: bump, for future 1.12.3 tests: verify the shell test scripts are syntactically valid tests: don't use C instead of C++ compiler on case-insensitive platforms tests: avoid spurious TAP errors on Mac OS X 10.7 tests: fix spurious failure in aclocal7.sh on fast machines 2012-07-13 Stefano Lattarini news: mention fixed testsuite weaknesses 2012-07-13 Stefano Lattarini news: bump, for future 1.12.3 2012-07-13 Stefano Lattarini Merge branches 'fix-pr11898' and 'fix-pr-11893-and-10766' into maint * fix-pr11898: tests: verify the shell test scripts are syntactically valid * fix-pr-11893-and-10766: tests: don't use C instead of C++ compiler on case-insensitive platforms 2012-07-13 Stefano Lattarini tests: verify the shell test scripts are syntactically valid Fixes automake bug#11898. This measure of extra safety is mostly motivated by the fact that some shells (at least some versions of Bash in the 3.x release series, one of which serves as /bin/sh on Mac OS X 10.7, as well as Bash 4.0 and the /usr/xpg4/bin/sh shell from Solaris 10) erroneously exit with exit status 0 upon encountering a syntax error, if an exit trap is sett (as it is in our test scripts). * Makefile.am (check-tests-syntax): New, check that the shell test scripts listed in $(TESTS) are syntactically correct. (.PHONY, check-local): Depend on it. * t/self-check-exit.tap : Remove checks verifying that a script exits with non-zero status upon encountering a syntax error; as explained above, we can't depend on that. 2012-07-12 Stefano Lattarini depcomp: style changes to Portland Group Compilers support * lib/depcomp (pgcc): Quote 'like this', not `like this'. Other minor quoting improvements. Remove a commented-out command. In comments, use proper capitalization and punctuation. Make a more consistent use of whitespace. Make fatal error messages more nicely formatted, and send them to standard error rather than to standard output. 2012-07-12 Dave Goodell Jeff A. Daily depcomp: initial support for Portland Group Compilers * lib/depcomp: Here. See automake bug#8880. Acked-by: Stefano Lattarini 2012-07-12 Stefano Lattarini tests: don't use C instead of C++ compiler on case-insensitive platforms This change fixes automake bug#11893 and bug#10766. On at least Cygwin and Mac OS X 10.7, the file system where the system compilers are located can be case-insensitive, so that looking for a program named 'CC' might actually find the C compiler in /usr/bin/cc. Now, the Automake configure script looks for a C++ compiler named 'CC' before looking for more obvious names like c++ or g++ (that is done to increase testsuite "coverage in the wild", e.g., preferring, on Solaris, the Sun Studio C++ compiler /usr/bin/CC over the GNU C++ compiler). Since the checks done in AC_PROG_CXX are apparently not strict enough to rule out C compilers like those from GCC or Clang (which are smart enough to recognize if a file has a C++ extension, passing it to the C++ front end) the testsuite might end up using a C compiler where a C++ one is expected, with some subtle bad consequences. * configure.ac: Don't look for a C++ compiler named 'CC' if the "top-level" file system(s) (where /bin and /usr/bin are) are detected to be case-insensitive. Reported-by: Peter Rosin Reported-by: Max Horn Helped-by: Eric Blake 2012-07-10 Stefano Lattarini tests: avoid spurious TAP errors on Mac OS X 10.7 Fixes automake bug#1897. Reported by Max Horn. * t/suffix8.tap: The libtool bug#11895 was causing the ./configure script to output a stray "ok" string on a line of its own, confusing the TAP driver into thinking this was an extra test result (which resulted in the next, real test results being flagged as "OUT-OF-ORDER"). Fix this by protecting configure output. * t/suffix10.tap: Likewise, and for the "make distcheck" output as well. * THANKS: Update. 2012-07-10 Adam Sampson (tiny change) tests: fix spurious failure in aclocal7.sh on fast machines Fixes automake bug#11896. Issue introduced in commit v1.12.1-46-g13dd512. * t/aclocal7.sh: Since aclocal rewrites aclocal.m4 unless the input files are all older than the existing aclocal.m4, so we must sleep to ensure somedefs.m4 has an older timestamp than the aclocal.m4 the next aclocal call will generate. 2012-07-09 Stefano Lattarini Merge branch 'maint' (with fix for CVE-2012-3386) This makes the fix for a locally-exploitable security vulnerability (CVE-2012-3386) available to the Automake master branch. * maint: sync: update files from upstream with "make fetch" news: improve wording in entry about CVE-2012-3386 maint: post-release minor version bump release: stable release 1.12.2 distcheck: never make part of $(distdir) world-writable compat: automake should substitute @mkdir_p@, for backward compatibility fixup: t/README: it's ./runtest, not ./t/ax/runtest 2012-07-09 Stefano Lattarini sync: update files from upstream with "make fetch" * lib/config.guess, lib/gitlog-to-changelog, lib/texinfo.tex: Update. 2012-07-09 Stefano Lattarini news: improve wording in entry about CVE-2012-3386 2012-07-09 Stefano Lattarini maint: post-release minor version bump * configure.ac (AC_INIT): Bump version number to 1.12.2a. * m4/amversion.m4: Likewise (automatically regenerated by "make bootstrap"). 2012-07-09 Stefano Lattarini release: stable release 1.12.2 * configure.ac (AC_INIT): Bump version number to 1.12.2. * m4/amversion.m4: Likewise (auto-updated by "./bootstrap"). 2012-07-09 Stefano Lattarini Merge branch 'distcheck-vulnerability-CVE-2012-3386' into maint * distcheck-vulnerability-CVE-2012-3386: distcheck: never make part of $(distdir) world-writable 2012-07-09 Stefano Lattarini distcheck: never make part of $(distdir) world-writable This fixes a locally-exploitable security vulnerability (CVE-2012-3386). In the 'distcheck' rule, we used to make the just-extracted (from the distribution tarball) $(distdir) directory and all its files and subdirectories read-only; then, in order to create the '_inst' and '_build' subdirectories in there (used by the rest of the recipe) we made the top-level $(distdir) *world-writable* for an instant (the time to create those two directories) before making it read-only again. Making that directory world-writable (albeit only briefly) introduced a locally exploitable race condition for those who run "make distcheck" with a non-restrictive umask (e.g., 022) in a directory that is accessible by others. A successful exploit would result in arbitrary code execution with the privileges of the user running "make distcheck" -- game over. Jim Meyering wrote a proof-of-concept script showing that such exploit is easily implemented. This issue is similar to the CVE-2009-4029 vulnerability: * lib/am/distdir.am (distcheck): Don't make $(distdir) world-writable, not even for an instant; make it user-writable instead, which is enough. Helped-By: Jim Meyering 2012-07-09 Stefano Lattarini compat: automake should substitute @mkdir_p@, for backward compatibility That has been unwittingly broken by commit v1.12-19-g7a1eb9f of 2012-04-28, "AM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13". We thought it wasn't a big deal, but Jim Meyering reported that @mkdir_p@ is used in gettext's Makefile.in.in template: * lib/am/header-vars.am (mkdir_p): Don't define. * m4/init.m4 (AM_INIT_AUTOMAKE): AC_SUBST 'mkdir_p' with $(MKDIR_P). * t/mkdir_p.sh, t/mkdirp-deprecation.sh: Enhance. * NEWS: Update. 2012-07-08 Stefano Lattarini fixup: t/README: it's ./runtest, not ./t/ax/runtest * t/README (Supported shells): Here. And remove an extra empty line. 2012-07-07 Stefano Lattarini Merge branch 'maint' * maint: tests: move 'runtest' into the top-level directory 2012-07-07 Stefano Lattarini tests: move 'runtest' into the top-level directory Move our wrapper script 'runtest' (meant to allow the execution of Automake test cases from the command line) from the 't/ax/' directory to the top-level one. This makes the script easier to find and to invoke. Much more importantly, our DejaGNU-checking test cases won't try anymore to use that script instead of the 'runtest' program provided by DejaGNU (that happened because '$(srcdir)/t/ax/' is automatically added early to the $PATH variable in our test cases), which was causing spurious SKIPs. * t/ax/runtest.in: Move ... * runtest.in: ... here. * Makefile.am, t/README, .gitignore: Adjust. 2012-07-07 Stefano Lattarini Merge branch 'maint' * maint: cosmetics: rename t/ax/test-runner => t/ax/runtest fixup: another "make recheck" failure with BSD make test runner: work correctly in VPATH setups compat: automake should define $(mkdir_p), for backward compatibility coverage: test that AM_PROG_MKDIR_P and $(mkdir_p) still works tests init: don't automatically re-execute tests with a POSIX shell yacc tests: fix spurious failure with parallel make tests: ignore minor 'recheck' regression for BSD make tests: don't clutter the top-level dir with temporary test directories tests: avoid spurious failures when @MKDIR_P@ points to "install-sh -d" lisp: better support of VPATH builds news: fixlets and updates + Extra non-trivial edits: * NEWS: State that $(mkdir_p) is still provided as an alias to $(MKDIR_P), for (partial) backward-compatibility. 2012-07-06 Stefano Lattarini cosmetics: rename t/ax/test-runner => t/ax/runtest The latter is shorter and clearer. Better to do the rename early, before other developers or contributors begin to get used to the 'test-runner' name. * t/ax/test-runner.in: Rename ... * t/ax/runtest.in: ... like this. * Makefile.am, t/README, .gitignore: Adjust. 2012-07-06 Stefano Lattarini fixup: another "make recheck" failure with BSD make * t/parallel-tests-log-override-recheck.sh: Here, add a proper $sleep before calling "make recheck". This should ideally have been done in the earlier commit 'v1.12.1-100-g19d84bc', but it somehow slipped through the cracks. * t/test-metadata-recheck.sh: Likewise. 2012-07-06 Stefano Lattarini test runner: work correctly in VPATH setups Due to a "feature" of AC_CONFIG_FILES, because 't/ax/test-runner.in' is in a subdirectory, the '@srcdir@' value that is AC_SUBST'd in it gets tweaked to contain as much '..' components as are the directory components of 't/ax/test-runner'. Because our build system operates in a non-recursive setup, this substitution is wrong; for example, the final 't/ax/test-runner' build in a VPATH builds where the source directory is ".." contains the line: : ${srcdir='../../../t/ax'} instead of the expected (and correct): : ${srcdir='../t/ax'} We solve the issue by building 't/ax/test-runner' with a Makefile recipe instead of config.status substitutions; this is already done for other testsuite-related files, like 'defs-static'. * configure.ac (AC_CONFIG_FILES): Don't build 't/ax/test-runner' anymore. * Makefile.am (t/ax/test-runner): New rule. (EXTRA_DIST): Add 't/ax/test-runner.in'. (CLEANFILES, noinst_SCRIPTS): Add 't/ax/test-runner'. 2012-07-06 Stefano Lattarini Merge branch 'fix-pr11806' into maint * fix-pr11806: lisp: better support of VPATH builds 2012-07-06 Stefano Lattarini tests init: don't automatically re-execute tests with a POSIX shell I've unwittingly broken support for that feature *again* in some of my recent testsuite tweaking. In this case, the re-execution code works correctly when the tests are executed with a POSIX shells, but breaks when they are invoked by an old-style Bourne shells (e.g., /bin/sh on Solaris). It's time to face it: that feature is too much brittle, and too seldom used (because the Makefile takes care of running the tests with the correct shell anyway, so that a breakage is only experienced when running the tests by hand). It just don't remain working for long, not when we often touch the testsuite setup (which we are going to do again when we'll try to move part of our testsuite framework to Gnulib, or a similar project). So, instead of trying to be extra-smart and automatically re-execute the tests with the correct shell, we now offer a simple wrapper script that the user can employ to run the test scripts with the proper shell. And while we are at it, we write this wrapper to also deal with TAP tests in a better way, running them through the prove(1) utility, so that their results are correctly recognized and reported. * t/ax/test-runner.in: New file; the wrapper script we were talking about. * configure.ac (AC_CONFIG_FILES): Process it into 't/ax/test-runner'. * .gitignore: Add 't/ax/test-runner'. * defs: Remove code for automatic re-execution of the scripts with the correct shell. This file now just a very thin layer around 'defs-static' and 't/ax/test-init.sh'. * t/README: Adjust, and remove or fix some imprecise or outdated text in the process (like "... test scripts are written with portability in mind, so that they should run with any decent Bourne-compatible shell ..." ). * Makefile.am (AM_TESTS_ENVIRONMENT): No need to export 'AM_TESTS_REEXEC' to "no" anymore. * t/self-check-explicit-skips.sh: Likewise. * t/self-check-exit.tap: Likewise. * t/self-check-me.tap: Likewise. * t/self-check-dir.tap: Likewise. * t/self-check-reexec.tap: Remove as obsolete. * t/list-of-tests.mk: Adjust. 2012-07-06 Stefano Lattarini yacc tests: fix spurious failure with parallel make * t/yacc-deleted-headers.sh: Here, by adding a missing dependency in the Makefile.am. Revealed by a failure with Sun Distributed make run on Solaris 10 in parallel mode. 2012-07-06 Stefano Lattarini tests: ignore minor 'recheck' regression for BSD make It turns out that, with NetBSD 5.1 make and FreeBSD 9 make, running "make recheck" two times in a row quickly fails to correctly re-run the failed tests in the second run. That issue has been introduced likely introduced in commit 'v1.12.1-95-gd5443e4' of 20102-07-01, "parallel-tests: reimplement fix for bug#11791". Anyway, the use case that has been broken is not realistic (who is going to run "make recheck" two times in one second, without modifying any of the tests or the tested programs in the meantime?), so we believe the best fix is to simply work around the issue in the affected test cases, rather than risking to slow down or uglify the 'recheck' rule. * t/parallel-tests9.sh: Enhance a little. * t/tap-recheck.sh: Adjust adding proper '$sleep' calls were required. * t/parallel-tests-log-override-recheck.sh: Likewise. * t/test-driver-custom-multitest-recheck.sh: Likewise. * t/test-driver-custom-multitest-recheck2.sh: Likewise. 2012-07-06 Stefano Lattarini tests: don't clutter the top-level dir with temporary test directories * t/self-check-me.tap: Be sure to initialize '$am_create_testdir' to "no" in all the shell invocations sourcing './defs'. Otherwise, when running the testsuite with 'keep_testdirs=yes', the following temporary director are left cluttering the top-level directory: ./012.dir ./abc..dir ./a.b.c.dir ./foo.dir ./foo.bar.dir ./foo-bar-.dir ./_foo__bar.dir 2012-07-06 Stefano Lattarini tests: avoid spurious failures when @MKDIR_P@ points to "install-sh -d" * t/self-check-cleanup.tap: Several checks in this test were failing on NetBSD 5.1. That happened because on that system, '@MKDIR_P@' expands to an "install-sh -d" invocation that references the $(builddir), and the code trying to duplicate some of the Automake testsuite infrastructure in the test subdirectory of this self test wasn't smart enough to cater to that situation. Granted, we could tweak the test case once more to fix this Yet Another Spurious Failure, but at this point it has become clear that the extra coverage offered by this test is not worth all the hassle. Just remove the test. Since the testsuite is regularly run on several systems and with different setups, most issues with the testsuite framework will reveal themselves anyway; no actual need to unit-test them in our testsuite, if that's too tricky. * t/list-of-tests.mk: Adjust. 2012-07-06 Stefano Lattarini compat: automake should define $(mkdir_p), for backward compatibility That has been unwittingly broken by commit 'v1.12-19-g7a1eb9f' of 2012-04-28, "AM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13". Report from Benoit Sigoure and Diego Elio Pattenò: * lib/am/header-vars.am (mkdir_p): Define as an alias for $(MKDIR_P). * t/list-of-tests.mk (XFAIL_TESTS): Remove 't/mkdir_p.sh'. * NEWS: Update. 2012-07-06 Stefano Lattarini coverage: test that AM_PROG_MKDIR_P and $(mkdir_p) still works They are deprecated, but should continue to work in the 1.12.x release series. Report from Benoit Sigoure and Diego Elio Pattenò: * t/mkdirp-deprecation.sh: Enhance. * t/mkdir_p.sh: New test, check that AM_INIT_AUTOMAKE still defines the $(mkdir_p) make variable. Currently xfailing. * t/list-of-tests.mk (handwritten_TESTS, XFAIL_TESTS): Add the new test. 2012-07-06 Jack Kelly (tiny change) Stefano Lattarini lisp: better support of VPATH builds Fixes automake bug#11806. * lib/am/lisp.am: Pass the value of '$(abs_srcdir)' to the elisp-compile script in the environment. * lib/elisp-comp: Add the vale of '$abs_srcdir' to the emacs load-path. * t/lisp-pr11806.sh: New test. * t/list-of-tests.mk: Add it. Reported-by: Makoto Fujiwara 2012-07-03 Stefano Lattarini tests: make 't/aclocal-macrodir.tap' executable 2012-07-03 Stefano Lattarini maintcheck: fix spurious failure in 'maintainer-check-list-of-tests' * Makefile.am (test_subdirs): Add 'contrib/t', otherwise we would get a spurious error like: List of tests in Makefile an on filesystem differ + diff -u in-makefile on-filesystem --- tests-in-makefile-list.tmp 2012-07-03 23:07:47.000000000 +0200 +++ tests-on-filesystem-list.tmp 2012-07-03 23:07:47.000000000 +0200 @@ -1,7 +1,3 @@ -contrib/t/help-multilib.sh -contrib/t/multilib.sh -contrib/t/parallel-tests-html-recursive.sh -contrib/t/parallel-tests-html.sh t/ac-output-old.tap t/acloca10.sh t/acloca11.sh make: *** [maintainer-check-list-of-tests] Error 1 2012-07-03 Stefano Lattarini build: fix cleaning of test directories in contrib (and in t/perf) * Makefile.am (clean-local-check): Update recipe to cater to the fact that some tests using a temporary directory have been placed in other directories that the 't/' directory (for the moment, at least 't/perf' and 'contrib/t'). 2012-07-03 Stefano Lattarini Merge branch 'aclocal-trace-macrodir' * aclocal-trace-macrodir: aclocal: deprecate ACLOCAL_AMFLAGS, trace AC_CONFIG_MACRO_DIR instead 2012-07-03 Stefano Lattarini aclocal: deprecate ACLOCAL_AMFLAGS, trace AC_CONFIG_MACRO_DIR instead Maintaining ACLOCAL_AMFLAGS in the Makefile.am to pass extra flags to aclocal is (and have always been) quite of an hack. For example, autoreconf is forced to grep Makefile.am to honour those flags. But this is a bad obsolescent behaviour; in fact, the autotools have moved consistently in the past years from custom grepping of Makefile.am and configure.ac to tracing of m4 macro calls, which is more consistent, more reliable and more flexible. And when autoreconf is not used, the developer is forced to add *by hand* the flags specified by ACLOCAL_AMFLAGS to the aclocal calls not triggered by make rebuild rules; here lie again more duplication and more chances for errors. Moreover, ACLOCAL_AMFLAGS has only two typical use cases: - to instruct aclocal to look for extra macro definition in a local directory (as with "ACLOCAL_AMFLAGS = -I m4"); and - to further instruct aclocal to copy in that local directory the required third-party .m4 files found in the system-wide directory (as with "ACLOCAL_AMFLAGS = -I m4 --install"). The first use case can be better covered if aclocal can instead trace and honours call to the AC_CONFIG_MACRO_DIR autoconf macro; and the second use case shouldn't be considered really legitimate, as it is quite (and subtly) brittle (see automake bug#9037). Thus we now make aclocal trace AC_CONFIG_MACRO_DIR macro, and act accordingly. For backward compatibility, we continue to support the ACLOCAL_AMFLAGS special variable (although removing any mention of it from the documentation). Future Automake releases will likely start to warn about the use of that variable, and eventually remove support for it altogether. From a suggestion by Eric Blake. This is a much simplified (and IMHO saner) version of the patch series discussed in the threads: * aclocal.in ($ac_config_macro_dir): New global variable. (trace_used_macros): Also trace the macro 'AC_CONFIG_MACRO_DIR', and set the '$ac_config_macro_dir' variable accordingly. (parse_arguments): Code for diagnosis of '--install' used without any user-specified include directory moved ... (while (1)): .. into the main loop. Which now also updates the list of user-specified include directories to include the directory given as argument to the call (if any) of 'AC_CONFIG_MACRO_DIR'. * lib/am/configure.am: Update comments. * NEWS: Updated. * doc/automake.texi: Likewise. Also, stop advising the use of the '--install' in ACLOCAL_AMFLAGS (see automake bug#9037 for a rationale), and remove any reference to ACLOCAL_AMFLAGS (which is now considered obsolescent). * t/aclocal-path-install.sh: Adjust grepping check in the aclocal error messages. * t/subpkg.sh: Updated: add 'AC_CONFIG_MACRO_DIR' call to configure.ac, remove setting of 'ACLOCAL_AMFLAGS' in Makefile.am and use of aclocal command line arguments. * t/subpkg2.sh: Likewise. * t/subdir8.sh: Likewise. * t/remake10c.sh: Likewise. * t/remake8a.sh: Likewise. * t/remake8b.sh: Likewise. * t/aclocal4.sh: Likewise. * t/aclocal6.sh: Likewise. * t/acloca14.sh: Likewise. * t/acloca22.sh: Likewise. * t/aclocal5.sh: Likewise, and do not not invade the Automake namespace (this avoids spurious failures). * t/acloca14b.sh: New test, identical to the previous version of 'acloca14.test'; it is kept to verify backwards compatibility with the use of ACLOCAL_AMFLAGS. * t/acloca22b.sh: Likewise (but for 'acloca22.test'). * t/aclocal-amflags.sh: New test, check for backwards compatibility that ACLOCAL_AMFLAGS still works. * t/remake-macrodir.sh: New test, checking that aclocal's honoring of AC_CONFIG_MACRO_DIR interacts nicely with automatic rebuild rules. * t/list-of-tests.mk: Add the new tests. 2012-07-03 Stefano Lattarini news: fixlets and updates * NEWS: Here. In particular, report the change in 'missing' semantics. 2012-07-02 Stefano Lattarini contrib: check-html: pass flags to rst2html invocations Related to automake bug#11287. * contrib/t/check-html.am (.log.html): Here, passing $(AM_RST2HTMLFLAGS) and $(RST2HTMLFLAGS) (in that order). 2012-07-02 Stefano Lattarini contrib: simple improvements to check-html Related to automake bug#11287. * contrib/t/check-html.am (.log.html): Do not look for $RST2HTML in the environment, looking for $(RST2HTML) should be enough (also, the pre-existing code was broken, because it single-quoted $RST2HTML). Fix the loop-and-search implementation to be more similar to the one in 'contrib/t/parallel-tests-html.sh'. Prefer 'mv -f' over bare 'mv'. Do not break the recipe in 2012-07-02 Stefano Lattarini coverage: check-html can be used recursively Addresses the main part of Automake bug#11287. * contrib/t/parallel-tests-html-recursive.sh: New test. * contrib/t/local.am: Add it. 2012-07-02 Stefano Lattarini tests: tests for stuff in contrib goes in 'contrib/t' * t/help-multilib.sh: Move ... * contrib/t/help-multilib.sh: .. here. Remove a now-obsolete "FIXME" comment. * t/multlib.sh: Move ... * contrib/t/multilib.sh: .. here. Remove a now-obsolete "FIXME" comment. * t/parallel-test2.sh: Move ... * contrib/t/parallel-tests-html.sh: .. here. Remove a now-obsolete "FIXME" comment. * contrib/t/local.am: New, basically defining the list of tests for stuff in 'contrib/'. * t/list-of-tests.mk, Makefile.am: Adjust. * .gitignore: Update. * syntax-checks.mk (xtests): Likewise. 2012-07-02 Stefano Lattarini Merge branch 'user-recursive-targets' * user-recursive-targets: recursion: support user-defined recursive targets tests: rename 'recurs*.sh' to 'var-recurs*.sh' tests: minor improvements to 'recurs*.sh' 2012-07-02 Stefano Lattarini recursion: support user-defined recursive targets The user can now define his own recursive targets that recurse in the directories specified in $(SUBDIRS). That can be done by specifying the name of such targets in invocations of the new 'AM_EXTRA_RECURSIVE_TARGETS' m4 macro. The API goes like this: $ cat configure.ac AC_INIT([pkg-name], [1.0] AM_INIT_AUTOMAKE AM_EXTRA_RECURSIVE_TARGETS([foo]) AC_CONFIG_FILES([Makefile sub/Makefile]) AC_OUTPUT $ cat Makefile.am SUBDIRS = sub foo-local: @echo This will be run by "make foo". $ cat sub/Makefile.am foo-local: @echo This too will be run by a "make foo" issued either in @echo the 'sub/' directory or in the top-level directory. Like for the "default" recursive targets (e.g., 'all' and 'check'), the user-defined recursive targets descend in the $(SUBDIRS) in a depth-first fashion, and process '.' last (unless that is explicitly specified in $(SUBDIRS)). * NEWS, doc/automake.texi: Document the new feature. * automake.in (@extra_recursive_targets): New global variable. (scan_autoconf_traces): Trace macro '_AM_EXTRA_RECURSIVE_TARGETS'. (handle_user_recursion): New subroutine; among other things, it defines the new internal '$(am__extra_recursive_targets)' make variable, and the '*-am', '*-local' and '*-recursive' targets associated with the user-specified user recursive targets. (generate_makefile): Call the new subroutine. * lib/am/subdirs.am (am__recursive_targets): New internal make variable, listing all of '$(RECURSIVE_TARGETS)', '$(RECURSIVE_CLEAN_TARGETS)' and '$(am__extra_recursive_targets)' together. (AM_RECURSIVE_TARGETS): Adjust the definition of this variable ... (.PHONY, .MAKE): ... and the list of dependencies of these special targets to take advantage of the new '$(am__recursive_targets)' variable. ($(am__recursive_targets)): New targets, superseding ... ($(RECURSIVE_TARGETS), $(RECURSIVE_CLEAN_TARGETS)): ... these, and inheriting their rules. This way, the rules to handle recursion for built-in recursive targets (e.g., 'all', 'dvi', 'clean') and for user defined recursive targets are the same. * m4/extra-recurs.m4: New file, contain definition of new macro 'AM_EXTRA_RECURSIVE_TARGETS' and '_AM_EXTRA_RECURSIVE_TARGETS'. These macros are basically dummy, only used for tracing by automake. * m4/Makefile.am (dist_automake_ac_DATA): Update. * t/recurs-user.sh: New test. * t/recurs-user2.sh: Likewise. * t/recurs-user-deeply-nested.sh: Likewise. * t/recurs-user-indir.sh: Likewise. * t/recurs-user-keep-going.sh: Likewise. * t/recurs-user-many.sh: Likewise. * t/recurs-user-no-subdirs.sh: Likewise. * t/recurs-user-no-top-level.sh: Likewise. * t/recurs-user-override.sh: Likewise. * t/recurs-user-phony.sh: Likewise. * t/recurs-user-wrap.sh: Likewise. * t/remake-recurs-user.sh: Likewise. * t/list-of-tests.mk: Update. 2012-07-02 Stefano Lattarini tests: rename 'recurs*.sh' to 'var-recurs*.sh' * t/recurs.sh: Rename ... * t/var-recurs.sh: ... to this. * t/recurs2.sh: Rename ... * t/var-recurs2.sh: ... to this. * tests/list-of-tests.mk: Adjust. 2012-07-02 Stefano Lattarini tests: minor improvements to 'recurs*.sh' * t/recurs.sh: Removed useless calls to AM_CONDITIONAL in the generated 'configure.ac'. * t/recurs2.sh: Add trailing ':' command. 2012-07-01 Stefano Lattarini Merge branch 'maint' * maint: tests: don't trust the exit status of "make -k" for non-GNU makes parallel-tests: reimplement fix for bug#11791 tests setup: unset CDPATH tests setup: more namespace safeness tests setup: remove an unused variable tests setup: less hard-coding of the test subdirectory 2012-07-01 Stefano Lattarini tests: don't trust the exit status of "make -k" for non-GNU makes * t/parallel-tests-recheck-pr11791.sh: Here. At least some versions of FreeBSD make botch it up, returning success when failure should be returned. 2012-07-01 Stefano Lattarini parallel-tests: reimplement fix for bug#11791 * lib/am/check.am: Here. The new implementation is shorter, slightly more efficient (requiring less forks), less brittle in the face of signals or unexpected interruptions in the make process, and should also be easier to merge in the 'ng/master' branch (as of now, due to the difficulties in merging our previous version of the fix in the 'ng/master' codebase, Automake-NG still lacks a fix for bug#11791). 2012-07-01 Stefano Lattarini tests setup: unset CDPATH So that our test scripts can safely chdir around using relative paths as well, without having to worry abut possible CDPATH interferences. * defs-static.in: unset CDPATH. * t/ax/tests-init.sh: Remove a now-unneeded workaround. 2012-07-01 Stefano Lattarini tests setup: more namespace safeness * t/ax/tests-init.sh ($testSubDir): Rename ... ($am_test_subdir): ... to this, throughout the file. 2012-07-01 Stefano Lattarini tests setup: remove an unused variable * defs-static.in ($testprefix): This one. 2012-07-01 Stefano Lattarini tests setup: less hard-coding of the test subdirectory * t/ax/tests-init.sh: Make the code creating the temporary test subdirectory smart enough to automatically create it in the same subdirectory of the test that is being run. * defs-static.in ($MKDIR_P, $am_rel_srcdir): New variables, AC_SUBST'd from @MKDIR_P@ and @srcdir@ respectively, and used in the new 'tests-init.sh' code. 2012-07-01 Stefano Lattarini Merge branch 'maint' * maint: parallel-tests: silence an overly verbose recipe tests: fix some uses of 'Exit', where 'exit' should now be used instead maintcheck: test scripts should be executable, check for that 2012-06-30 Stefano Lattarini parallel-tests: silence an overly verbose recipe * lib/am/check.am (check-TESTS): Here, the part of the recipe removing the stale '.log' and '.trs' files. 2012-06-30 Stefano Lattarini tests: fix some uses of 'Exit', where 'exit' should now be used instead * t/parallel-tests-recheck-pr11791.sh: Here. 2012-06-30 Stefano Lattarini maintcheck: test scripts should be executable, check for that * syntax-checks.mk (sc_tests_executable): Here, in this new check. (syntax_check_rules): Add it. * Makefile.am (dist-hook): Drop, no need to make test cases executable anymore. 2012-06-30 Stefano Lattarini Merge branch 'maint' * maint: parallel-tests: recipes for "check" and "recheck" are separated again 2012-06-30 Stefano Lattarini Merge branch 'recheck-fix' into maint * recheck-fix: parallel-tests: recipes for "check" and "recheck" are separated again 2012-06-30 Stefano Lattarini Merge branch 'maint' * maint: parallel-tests: "recheck" behaves better in case of compilation failures scripts: quote 'like this', not `like this' 2012-06-30 Stefano Lattarini parallel-tests: recipes for "check" and "recheck" are separated again * lib/am/check.am: Here. They have distinctly diverged recently, and the reduction in code duplication obtained keeping their recipes united is not anymore worth the extra complications. 2012-06-30 Stefano Lattarini Merge branch 'recheck-fix' into maint * recheck-fix: parallel-tests: "recheck" behaves better in case of compilation failures scripts: quote 'like this', not `like this' 2012-06-30 Stefano Lattarini tests: prefer "test ! -e FILE" to check that a file doesn't exist * t/autohdrdry.sh: Here, rather than using "test ! -r FILE". 2012-06-30 Jim Meyering texi: clean after Texinfo manuals in $(SUBDIRS) directories correctly Fixes the regression exposed by previous commit 'v1.12.1-165-g498492f'. * automake.in (handle_texinfo_helper): Add $infobase.{t2d,t2p} to @mostly_cleans, but *without* the '$relative_dir/' prefix. 2012-06-30 Stefano Lattarini coverage: regression in texinfo "make mostlyclean" with $(SUBDIRS) After commit v1.12.1-91-g205c757 of 2012-06-20, "texi: require Texinfo >= 4.9, related enhancements", the presence of a Texinfo manual 'manual.texi' in a subdir (say 'doc/') of a package using a recursive make setup would cause "make distcheck" to fail, due to the presence of the 'manual.t2d/' directory created by texi2dvi. That directory would not be correctly removed because the 'mostlyclean' rule would run, from within the 'doc/' sub-directory, "rm -rf doc/manual.t2d", instead of the expected (and correct) "rm -rf manual.t2d". Reported by Jim Meyering: * t/txinfo21.sh: Enhance to expose the issue. * t/txinfo-no-clutter.sh: Likewise, and other miscellaneous improvements. 2012-06-30 Stefano Lattarini Merge branch 'maint' * maint: tests: fix a spurious failure configure: fix detection of POSIX shell to work in a VPATH build tests: prefer "test ! -e FILE" to check that a file doesn't exist 2012-06-30 Stefano Lattarini tests: fix a spurious failure * t/parallel-tests-dry-run-2.sh: Here. 2012-06-30 Stefano Lattarini configure: fix detection of POSIX shell to work in a VPATH build * configure.ac: When checking whether "test -e" works, use 'config.log', not 'configure', as the witness file, because the latter does not exist in the current directory during a VPATH build. 2012-06-29 Stefano Lattarini tests: prefer "test ! -e FILE" to check that a file doesn't exist Once, for the sake of (at least) Solaris 10 /bin/sh, we had to use "test ! -f FILE" or "test ! -r FILE" or "test ! -d FILE" instead, because the that shell's 'test' built-in didn't grok the '-e' option. Note however that we still can't use "test ! -e" in the Makefile recipes used in the test cases; that is because those recipes are run with the shell detected by 'configure', and Autoconf-generated configure scripts do no guarantee to find or provide a POSIX-compatible shell. * Several tests: Adjust. * t/yacc-clean-cxx: Adjust, and remove a couple of useless commands. * t/parallel-tests-dry-run-2.sh: Adjust, and add invocation to "make -n" forgotten in previous versions of the test. * t/txinfo26.sh: Adjust, and don't bother to skip the test when it's run in a directory whose absolute path contain whitespace: that setup is not supported anyway. * t/maken3.sh: Adjust, and fix a typo that could cause a minor false negative. * t/test-trs-recover2.sh: Prefer using 'skip_' with a suitable error message over a bare 'exit 77'. 2012-06-28 Stefano Lattarini Merge branch 'maint' * maint: configure: move a misplaced "section" comment configure: clump check for ${var%...} and ${var#...} expansion together cosmetics: improve wording of a couple of configure messages configure: the testsuite shell must support 'test -e' and 'test ! -e' tests: remove stale workarounds for Solaris /bin/sh 2012-06-28 Stefano Lattarini configure: move a misplaced "section" comment * configure.ac (Create output files): This, move it towards the end of the script. 2012-06-28 Stefano Lattarini configure: clump check for ${var%...} and ${var#...} expansion together And together with those for the ${var%%...} and ${var##...} expansions. After all, it is basically impossible to find a shell that support one of them but not the others. Suggestion by Eric Blake. * configure.ac: Here. 2012-06-28 Stefano Lattarini cosmetics: improve wording of a couple of configure messages * configure.ac: Fix a couple of messages so that the configure output changes from this: checking whether /bin/sh "set -e" preserves exit traps... yes checking whether /bin/sh "set -x" corrupts stderr... no to this: checking whether /bin/sh preserves exit traps with "set -e"... yes checking whether /bin/sh corrupts stderr with "set -x"... no 2012-06-28 Stefano Lattarini configure: the testsuite shell must support 'test -e' and 'test ! -e' * configure.ac: Require that the shell that is to be selected to run the testsuite understands "set -e" and "set ! -e". 2012-06-28 Stefano Lattarini tests: remove stale workarounds for Solaris /bin/sh Our testsuite cannot be run with that shell anymore (as it is not POSIX-compliant). * t/tap-more.sh: Remove outdated workarounds for Solaris /bin/sh. * t/self-check-exit.tap: Likewise. * t/ansi2knr-no-more.sh: Likewise. * t/add-missing.tap: Likewise. * t/dist-auxfile.sh: Likewise. * t/test-driver-custom-multitest-recheck2.sh: Likewise. * t/ax/test-init.sh: Remove obsolete references to Solaris /bin/sh. * t/confh5.sh: Likewise. * t/uninstall-fail.sh: Likewise. And update comments about quirks of Solaris /bin/ksh and /usr/xpg4/bin/sh. 2012-06-28 Stefano Lattarini Merge branch 'maint' * maint: tests init: don't bother allowing '$me' to be overridable tests init: typofixes in comments 2012-06-28 Stefano Lattarini tests init: don't bother allowing '$me' to be overridable We once used that feature in our wrapper tests; but now (and probably even since commit 'v1.11-1308-g375f23d' of 2011-09-08, "testsuite: revamp generation of autogenerated tests") it is not needed anymore. By removing it we can simplify our growingly complex testsuite framework a little. * t/ax/test-inist.sh ($me): Do not initialize it here (and only if not already set), instead ... * defs-static.in ($me): ... initialize it here unconditionally. Do not check anymore that $me doesn't come from the environment: that wouldn't cause any problem now. Now that '$me' is defined early, prefer it over 'argv0' in early error messages, both here ... * defs: ... and here. * Makefile.am (AM_TESTS_ENVIRONMENT): Do not bother "nullifying" $me anymore. * t/self-check-env-sanitize.tap: Adjust. * t/self-check-me.tap: Likewise. 2012-06-28 Stefano Lattarini tests init: typofixes in comments 2012-06-28 Stefano Lattarini Merge branch 'maint' * maint: tests: one test was not executable, make it so readme: fix typo in t/README: s/$((...)/$((...))/ tests: don't skip if $(abs_builddir) or $(abs_srcdir) contain whitespace tests: avoid spurious maintainer-check failures tests: remove obsolete hacks around maintainer-check false positives 2012-06-28 Stefano Lattarini tests: one test was not executable, make it so * t/subdir-order.sh: This test. 2012-06-28 Stefano Lattarini readme: fix typo in t/README: s/$((...)/$((...))/ 2012-06-28 Stefano Lattarini tests: don't skip if $(abs_builddir) or $(abs_srcdir) contain whitespace We used to explicitly skip libtool and gettext tests if the absolute path of the builddir or of the srcdir which Automake was configured with contained any whitespace (or other metacharacters). But several other tests would spuriously fail in such an unholy setup. To be precise, it would cause 61 'FAIL's and 42 'ERROR's in the whole Automake testsuite. The fact that, as of today, nobody has reported any failure of this kind means that (thankfully) nobody is building automake with $(abs_srcdir) or $(abs_builddir) mangled by whitespace. So, instead of trying to cater to such a broken setup consistently, we just drop the extra check in the libtool/gettext tests. In case someone will ever reports a failure due to extra whitespace in either $(abs_srcdir) or or $(abs_builddir), we will simply enhance our 'configure.ac' to bail out flatly and loudly at such a setup. * t/ax/test-init.sh: Simplify accordingly. 2012-06-28 Stefano Lattarini tests: avoid spurious maintainer-check failures * t/ax/test-init.sh: Here, by adding extra quoting for two occurrences of the string "perl". 2012-06-28 Stefano Lattarini tests: remove obsolete hacks around maintainer-check false positives * gen-testsuite-part, t/test-trs-recover.sh: Here. 2012-06-28 Stefano Lattarini Merge branch 'maint' * maint: tests: simpler workaround for shells losing the exit status in exit trap + Extra non-trivial edits: * Several tests: Adjusted to use 'exit' rather than 'Exit'. 2012-06-28 Stefano Lattarini Merge branch 'simplify-exit-trap-workaround' into maint * simplify-exit-trap-workaround: tests: simpler workaround for shells losing the exit status in exit trap + Extra non-trivial edits: * t/am-missing-prog.sh: Use 'exit, not 'Exit'. 2012-06-28 Stefano Lattarini cosmetics: remove trailing whitespace in some files * lib/missing, t/comment7.sh, t/objc-flags.sh, t/objcxx-flags.sh, t/perf/testsuite-summary.sh, t/self-check-explicit-skips.sh: Here. Prompted by a report from Karl Berry. 2012-06-28 Stefano Lattarini coverage: enhance tests in 'missing' script a little * t/am-missing-prog.sh: Here, by also verifying its expected exit status. 2012-06-28 Stefano Lattarini Merge branch 'maint' * maint: coverage: tests AM_MISSING_PROG usage docs: document AM_MISSING_PROG 2012-06-28 Stefano Lattarini coverage: tests AM_MISSING_PROG usage Now that AM_MISSING_PROG is documented, we want to make sure it works as expected when used in third-party code. * t/am-missing-prog.sh: New test. * t/ammissing: Rename ... * t/am-macro-not-found.sh: ... like this, to avoid confusion (this test has nothing to do with the 'missing' script nor with the 'AM_MISSING_PROG' macro). * t/list-of-tests.mk: Adjust. 2012-06-28 Eric Blake docs: document AM_MISSING_PROG Addresses automake bug#11793. This macro has been present for a long time, and coreutils has been relying on it despite no documentation, which argues that it is stable enough to be worth documenting. Furthermore, since we are hoping to change our preferred invocation from 'missing --run program' to 'missing program' in a future version of automake, we need a way for packages to consistently get the preferred invocation form rather than open-coding a call to 'missing'. In particular, the Autoconf manual would love to recommend this macro when discussing how to integrate an autotest suite with automake. * doc/automake.texi (Public Macros): Document AM_MISSING_PROG. 2012-06-27 Stefano Lattarini Merge branch 'maint' * maint: tests: fix a spurious failure with Solaris make tests: avoid several spurious failures on Solaris tests: avoid a spurious failure on NetBSD 2012-06-27 Stefano Lattarini tests: fix a spurious failure with Solaris make * t/subdir-order.sh: Run make in parallel only if the make implementation truly supports it. 2012-06-27 Stefano Lattarini parallel-tests: "recheck" behaves better in case of compilation failures With this change, the "recheck" target behaves better in the face of build failures related to previously failed tests. For example, if a test is a compiled program that must be rerun by "make recheck", and its compilation fails, that test will still be rerun by further "make recheck" invocations. Previously, its '.log' and '.trs' would have both been lost, so that the test would have not been re-run. This change fixes automake bug#11791. * NEWS: Update. * lib/am/check.am (recheck, check-TESTS): Adjust to cater to scenario described above. * t/parallel-tests-recheck-pr11791.sh: New test. * t/list-of-tests.mk: Add it. 2012-06-27 Stefano Lattarini scripts: quote 'like this', not `like this' * lib/test-driver.sh: Here. 2012-06-26 Stefano Lattarini Merge branch 'missing-not-touch-just-warn' * missing-not-touch-just-warn: missing: --run is supported again (as a no-op) for use by older automake 2012-06-26 Eric Blake missing: --run is supported again (as a no-op) for use by older automake Commit v1.12.1-87-ga22717d of 2012-06-21 ("missing: do not touch timestamps; only warn for out-of-date files") has removed the '--run' option, since our new preferred calling conventions now imply it; but if a newer 'missing' is mixed with an already built project that used an older Automake version (this happened in practice for GNU m4; see: ), then the 'Makefile' in that project will fail due to passing the '--run' option when trying to bring the project up-to-date. * lib/missing: Parse and ignore '--run'. 2012-06-25 Stefano Lattarini Merge branch 'missing-not-touch-just-warn' * missing-not-touch-just-warn: missing: don't cater to 'configure.in' in our advice missing: better tips about missing tools 2012-06-25 Stefano Lattarini missing: don't cater to 'configure.in' in our advice The use of 'configure.in' as autoconf input now deprecated the development versions of both Automake and Autoconf, and we'd like to speed up its demise. * missing: In the advice displayed in case some autotools are detected to be missing, refer to 'configure.ac' unconditionally, instead of referring to 'configure.in' when that file exists in the current directory (and no 'configure.ac' does). 2012-06-25 Stefano Lattarini tests: simpler workaround for shells losing the exit status in exit trap Now that we can assume our tests are run by a decent POSIX shell, we can simplify our workaround aimed at having the exit status propagated correctly to the code in the exit trap. Unfortunately, we cannot dispense with such a workaround altogether, because it's still required by some shells we need to support (at least Solaris 10 /bin/ksh and /usr/xpg4/bin/sh). For more information about the need of that workaround, see the entry about 'trap' in the section "Limitations of Shell Builtins" in the Autoconf manual: The new workaround has been tested successfully with the following shells: - Bash 4.1 - Bash 3.2 - Bash 3.0 - Bash 2.05b - dash 0.5.5.1 - dash 0.5.2 - AT&T Ksh 93u (from official Debian package) - MirBSD Korn Shell 40.2 (from official Debian package) - Solaris 9, 10 and 11 /bin/ksh - Solaris 9, 10 and 11 /usr/xpg4/bin/sh - NetBSD 5.1 /bin/sh - NetBSD 5.1 /bin/ksh * t/ax/test-init.sh (Exit): Rename ... (_am_exit): ... like this. (exit): New alias for '_am_exit'. We cannot simply redefine 'exit' as a shell function, because some shells (dash 0.5.5.1, Solaris 10 /bin/ksh and /usr/xpg4/bin/sh) do not allow it. (_am_exit, trap): Add extra escaping for 'exit' calls, to ensure we really invoke the 'exit' builtin and not our alias with the same name. * configure.ac: Check that the shell selected to run our testsuite supports aliases named like shell builtins. * t/REAMDE: Adjust. * All tests: Adjust, by simply using 'exit' instead of 'Exit'. * t/self-check-explicit-skips.sh: Adjust: the first usage of 'exit' after it has been redefined as an alias must be on a new line w.r.t. that where the alias is defined, in order for the redefinition to be honored. * syntax-checks.mk (sc_tests_Exit_not_exit): Delete. (sc_tests_exit_not_Exit): New. (syntax_check_rules): Adjust. (sc_tests_automake_fails): Simplify the recipe a little. * Several tests: Remove now useless spurious quoting once required to placate the 'sc_tests_Exit_not_exit' maintainer check. * gen-testsuite-part: Likewise. Also, avoid uses of 'Exit' in the generated scripts. 2012-06-24 Stefano Lattarini tests: avoid several spurious failures on Solaris * t/ax/is_newest: Rewrite to be Bourne-compatible, for /bin/sh shells like Solaris' that are not POSIX-conforming. The script is so small that such a rewrite is easier than going through the hoops that would be required to ensure this script is always executed with a POSIX shell. * t/ax/is: Add a comment stating that this script is to be kept Bourne compatible as well. 2012-06-24 Stefano Lattarini tests: avoid a spurious failure on NetBSD * t/maken.sh: Do not expect the timestamp of the current directory to be unchanged after a "make -n". 2012-06-24 Stefano Lattarini Merge branch 'maint' * maint: tests: fix automatic re-execution of tests with Zsh tests: drop support for older Zsh shells tests: allow AM_TEST_RUNNER_SHELL to be overridden tests: fix setup for older Zsh 2012-06-23 Stefano Lattarini tests: fix automatic re-execution of tests with Zsh * defs: Use '$argv0' instead of '$0'. With Zsh not started right away in Bourne-compatibility mode, the latter will be the path not of the test script itself, but of the file it's currently sourcing -- i.e., in our case, './defs'. This would cause the automatic re-execution code to execute './defs' (basically a no-op) rather than re-run the test correctly. 2012-06-23 Stefano Lattarini tests: drop support for older Zsh shells * defs-static.in: Here. The fact that such support has been broken for almost a year (only fixed by today's commit 'v1.12.1-57-gf1e0300'), causing no bug reports from anyone, shows that such support is not truly warranted. And it will get in the way of future improvements in the handling of the exit trap (because bugs in older Zsh versions will prevent some of our planned improvements). So just drop it. * t/README: Remove obsolete advice for working around bugs in older versions of Zsh; instead, indicate version 4.3 is the oldest Zsh now supported. 2012-06-23 Stefano Lattarini tests: allow AM_TEST_RUNNER_SHELL to be overridden * defs-static.in: Here. This will make it easier for the maintainer to run some self checks (like those in 't/self-check-exit.tap') with different shells, to look for possible portability problems. Fix a typo (doubled "the") while we are at it. 2012-06-23 Stefano Lattarini tests: fix setup for older Zsh * defs-static.in: After the addition of TAP-based tests and our renaming of "simple" test scripts from 'tests/foo.test' to 't/foo.sh', a test name is valid if it matches the wildcard "*.sh" or "*.tap", not the wildcard "*.test". Adjust accordingly. 2012-06-23 Stefano Lattarini missing: better tips about missing tools * lib/missing: Try to point the user to the home page of such tools where possible. Also, make clear that some tools (e.g., aclocal or autoheader) are distributed as part of bigger projects (resp. automake and autoconf, in those cases). While at it, refactor and re-format the existing code heavily, in particular introducing (give_advice): ... this new function in the process. 2012-06-23 Stefano Lattarini Merge branch 'missing-not-touch-just-warn' * missing-not-touch-just-warn: missing: do not touch timestamps; only warn for out-of-date files 2012-06-23 Stefano Lattarini Merge branch 'maint' * maint: tests: avoid one last `...` command substitution in 'test-init.sh' maintcheck: guard against `...` for command substitution in test cases tests: more uses of $(...) over `...` for command substitution cosmetics: quote `like this', not 'like this', in a couple of tests readme: clarify/extend few entries in 't/README' readme: better separation of entries in 't/README' readme: subsections "Do" and "Do not" in 't/README' merged tests: new requirement 'grep-nonprint' cosmetics: fix description of an expected error message in a test tests: assume automake quotes 'like this', not `like this' 2012-06-23 Stefano Lattarini tests: avoid one last `...` command substitution in 'test-init.sh' * t/ax/test-init.sh (me): In the definition of this variable. This also shave off a couple of forks, and the need for a sanity check only required in fringe situations. 2012-06-23 Stefano Lattarini maintcheck: guard against `...` for command substitution in test cases But still allow them in configure.ac, Makefile.am and shell scripts created or used inside test cases itself, because Autoconf (as of version 2.69) does not yet ensure that $CONFIG_SHELL will be set to a proper POSIX shell. * syntax-checks.mk (sc_tests_command_subst): New check. (syntax-check_rules): Add it. * t/tap-global-log.sh: Minimal tweakings to avoid triggering the new maintainer check. 2012-06-22 Stefano Lattarini tests: more uses of $(...) over `...` for command substitution Somehow missed by the previous changes. No big deal, fix them now. * t/ax/depcomp.sh: Here. * t/autodist.sh: And here. * t/autodist-no-duplicate.sh: And here. * t/autodist-subdir.sh: Ad here. * t/remake11.sh t/self-check-me.tap: And here. * t/perf/testsuite-summary.sh: And here. * t/perf/testsuite-recheck.sh: And here. 2012-06-22 Stefano Lattarini cosmetics: quote `like this', not 'like this', in a couple of tests * t/ansi2knr-no-more.sh: Here. * t/aclocal-verbose-install.sh: And here. 2012-06-22 Stefano Lattarini readme: clarify/extend few entries in 't/README' * t/README (Writing test cases): Here. 2012-06-22 Stefano Lattarini readme: better separation of entries in 't/README' * t/README (Writing test cases): Prepend different entries with a '*' character acting like a bullet in a list. This make different entries better separated, visually-wise. Minor related reformatting. 2012-06-22 Stefano Lattarini readme: subsections "Do" and "Do not" in 't/README' merged * t/README (Writing test cases): Merge subsections "Do" and "Do not". The distinction was rather artificial, and more confusing than helpful. 2012-06-22 Stefano Lattarini tests: new requirement 'grep-nonprint' * t/ax/test-inist.sh ($esc): New, a literal escape character. (grep-nonprint): New requirement, check that the grep implementation available that can handle non-printing characters correctly. * t/color.sh: Use it instead of hand-rolled equivalent, and do not (re)define '$esc' explicitly. * t/color2.sh: Likewise. * t/tap-color.sh: Likewise. * t/vtexi4.sh: Likewise. * t/parallel-tests-no-color-in-log.sh: Likewise. Also prefer the use of grep over that of $FGREP, because the new requirement only check grep, and ensure we only grep non-printing characters from a pipe, to avoid hitting a BSD grep limitation. * t/parallel-tests-reset-term.sh: Likewise. * t/ax/tap-summary-aux.sh: Use '$esc' instead of hard-coding the literal escape character. 2012-06-22 Stefano Lattarini cosmetics: fix description of an expected error message in a test * t/vartypo2.sh: Here. This reflects the change from `this style' of quoting to 'this style'. 2012-06-22 Stefano Lattarini tests: assume automake quotes 'like this', not `like this' * t/add-missing.tap: Here. This slightly simplifies and/or enhances some grepping checks on automake diagnostic. 2012-06-22 Stefano Lattarini Merge branch 'maint' * maint: tests: prefer using 'is_newest' over 'ls -t' hacks tests: implement is_newest as an auxiliary script, not shell function tests: fix some spurious failures in VPATH setup tests: work in VPATH setup again 2012-06-22 Stefano Lattarini tests: prefer using 'is_newest' over 'ls -t' hacks To verify that a file 'new' is newer than the file 'old', it's much cleaner to use "is_newest new old" rather than the more clumsy "ls -t". Adjust several of our tests accordingly. * syntax-checks.mk (sc_tests_ls_t): New check, guard against uses of "ls -t" and similar. (syntax_check_rules): Add it. * t/maken.sh: Adjust. * t/autohdr4.sh: Likewise. * t/extradep2.sh: Likewise. * t/lex-depend-cxx.sh: Likewise. * t/extradep.sh: Likewise. * t/yacc-depend2.sh: Likewise. * t/yacc-pr204.sh: Likewise. * t/lex-pr204.sh: Likewise. * t/yacc8.sh: Likewise. * t/acloca13.sh: Likewise. * t/lex-depend.sh: Likewise, and enhance. * t/acloca14.sh: Likewise. * t/aclocal7.sh: Likewise. 2012-06-22 Stefano Lattarini tests: implement is_newest as an auxiliary script, not shell function This will allow to also use it in the makefile recipes used in our test cases. * t/ax/test-init.sh (is_newest): Remove. * t/ax/is_newest: New script. * Makefile.am (EXTRA_DIST): Add it. 2012-06-22 Stefano Lattarini tests: fix some spurious failures in VPATH setup * t/self-check-cleanup.tap: No need to copy the 'ax/t/test-init.sh' file over in our temporary directory. * t/self-check-reexec.tap: Likewise. 2012-06-22 Stefano Lattarini tests: work in VPATH setup again * defs: Drop overly paranoid sanity checks that was causing all the tests to fail spuriously when run in a VPATH setup, with a message like: "../t/nodef.sh: ./t/ax/test-init.sh: not found in current directory". Those checks looked for invariants that, even if broken, would still cause the test to fail very early and with a pretty clear error message anyway. 2012-06-22 Stefano Lattarini Merge branch 'maint' * maint: tests: automatic re-execution works for non-POSIX shells too tests: use more POSIX shell features our test scripts + Extra non-trivial edits: * t/ax/test-init.sh: Apply the diffs between past versions of 'defs' in maint and in master; i.e., remove handling of $required entries 'texi2dvi-o' and 'makeinfo-html', and adjust to the fact that the parallel testsuite harness is now the default. 2012-06-22 Stefano Lattarini tests: automatic re-execution works for non-POSIX shells too Some inferior shells are too greedy in parsing their input. If a non-POSIX Bourne shell (like Solaris 10 /bin/sh) was used to launch one of our test scripts, it would fail unconditionally, because it unexpectedly saw some (by it) unsupported constructs, notwithstanding such constructs being placed *after* the code implementing automatic test re-execution with a better shell. In conclusion, the shell bailed out like this: $ /bin/sh t/ar.sh $ t/ar.sh: syntax error at line 257: `is_newest_files=$' unexpected By moving all the potentially problematic code in a separate file, to be sourced only after the code for automatic re-execution with a better shell, we ensure that inferior shell cannot see such code by mistake. * defs: All code after automatic shell re-execution moved out ... * t/ax/test-init.sh: ... to this new file. * syntax-checks.mk (xdefs): Add it. * Makefile.am (dist_check_DATA): Add it. Also move in 'defs' from a less explicit 'check_DATA' declaration. (nodist_check_DATA): Move in 'defs-static' from a less explicit 'check_DATA' declaration. (check_DATA): Remove. * t/self-check-sanity.sh: Remove, it was actually too hacky and brittle, sanity-checking situations we don0t actually care about. * t/list-of-tests.mk: Adjust. * t/self-check-explicit-skips.sh: Adjust, and fix a botched heading comments while we are at it. * t/self-check-reexec.tap: Adjust. * t/self-check-cleanup.tap: Likewise. 2012-06-22 Stefano Lattarini tests: use more POSIX shell features our test scripts Since commit 'v1.12-36-g2d68fd9' of 2012-05-07, "configure: search a sturdy POSIX shell to be used in the testsuite", the shell running our test script is assured to be a POSIX-conforming shell, so we can use the more modern and flexible idioms and features that we couldn't use when we also aimed at compatibility with non-POSIX Bourne shells, like Solaris /bin/sh. * t/README: Suggest to use POSIX shell features liberally in test cases, with possible exception of Makefile recipes and configure shell code. * Several tests: Adjust to use more POSIX shell features; e.g., $(...) rather than `...`, $((...)) rather than `expr ...`, "if ! CMD; then ..." instead of "if CMD; then :; else ...", and so on. In several places, when using the 'test' built-in, prefer '-eq' over '=' for numeric comparisons, and prefer "grep -c PATTERN FILE" over "grep PATTERN FILE | wc -l". Throw in other low-hanging easy improvements and fixlets while we are at it. * t/ax/depcomp.sh, t/ax/tap-summary-aux.sh, t/ax/tap-functions.sh, defs, defs-static.in: Likewise. 2012-06-21 Stefano Lattarini Merge branch 'maint' * maint: docs: avoid failures with development version of Texinfo (4.13.90) typofix: s/test derivers/test drivers/ in check.am comments typofix: s/env/even/ in comments in GNUmakefile 2012-06-21 Stefano Lattarini docs: avoid failures with development version of Texinfo (4.13.90) * doc/automake-history.texi: Use '@item' instead of '@itemx' where appropriate. 2012-06-21 Stefano Lattarini missing: do not touch timestamps; only warn for out-of-date files Before this change, the missing script had a twofold role: - it warned the user if some required maintainer tools was missing, or too old; - in such a case, it tried to "fix" the timestamp of the files that should have been rebuilt by that tool (without actually updating the file contents, of course), to allow the build to continue. The second capability used to be quite useful in the days when most projects committed files generated by maintainer-only tools in their VCS repository (today the trend is not to keep such generated files VCS-committed anymore). In such a setup, the "timestamp-fixing" capability of 'missing' was quite useful, in that it allowed users lacking some required maintainer tool to build from a VCS checkout in the face of skewed timestamps (as could have been caused by "cvs update" or "git checkout"). But then, when the automatic remake rules kicked in due to the generated files being *actually out-of-date* (e.g., because the user had modified 'configure.ac' but lacked a modern-enough autoconf to rebuild it), that behaviour of 'missing' caused the same problem that plagued AM_MAINTAINER_MODE; i.e., the user would get non-dependable builds and inconsistent statuses of the build tree -- changes to source files don't reflect on generated files, and this can be very confusing and cause hard-to-spot errors). So we now believe that the best approach to deal with timestamp-related issues is not to have 'missing' to "automagically" try to resolve them (with all the risk and brittleness entailed), but rather to suggest those projects still keeping generated files committed in their VCS to provide a proper (say) 'fix-timestamp.sh' script that touches the timestamp of the checked-out files, to ensure no spurious rebuild will be triggered. As a bonus, such a script can be more aware of the particularities, nooks and corner cases of a project, and thus more reliable than the old 'missing' script. An example of this approach is offered by GNU awk (release 4.0.1, Git tag 'gawk-4.0.1', commit b85b04e8). The GNU awk maintainers commit the Autotools-generated files (configure, Makefile.in, etc.) and other generated in the project's Git repository, but offer a useful script 'bootstrap.sh' that fixes the timestamps of those files, to ensure no useless remake is triggered in a freshly cloned repository: #! /bin/sh # bootstrap.sh --- touch relevant files to avoid out-of-date issues # in Git sandboxes touch aclocal.m4 find awklib -type f -print | xargs touch sleep 1 touch configure sleep 2 touch configh.in sleep 1 touch test/Maketests find . -name Makefile.in -print | xargs touch touch doc/*.info touch po/*.gmo touch po/stamp-po touch awkgram.c touch command.c touch version.c A similar, simplified script is also reported as an example in the manual. * NEWS: Update. * doc/automake.texi (Auxiliary Programs, maintainer-mod): Update. (CVS): Do not suggest that 'missing' can "automagically" fix botched timestamp due to a "cvs update"; this isn't true anymore. Give an example of a custom 'fix-timestamp.sh' script that can be used to obtain the same effect (in a slightly more laborious but also more explicit and less brittle way). Fix some minor typos and improper wordings while we are at it. * lib/missing: Basically rewritten to implement the new semantics. As a side effect (one of the several), the '--run' option is no more required nor recognized. * m4/missing.m4 (AM_MISSING_HAS_RUN): Enhance the test on '$MISSING' to ensure it actually provides the new semantics (by trying the new "witness" option '--is-lightweight'). * lib/am/distdir.am (distdir): No need anymore to check for "bad" distributed man pages that were actually dummy stubs generated by the 'missing' script. * t/missing4.sh: Rename ... * t/remake-aclocal-version-mismatch.sh: ... like this. * t/missing2.sh: Rename ... * t/missing-version-mismatch.sh: ... like this, and adjust to the new semantics. * t/missing3.sh: Adjust to the new semantics. * t/man4.sh: Remove as obsolete. * t/missing.sh: Likewise. * t/missing5.sh: Likewise. * t/txinfo30.sh: Likewise. * t/man6.sh: Adjust grepping checks. * t/remake6.sh: Likewise. * t/list-of-tests.mk: Adjust. 2012-06-21 Stefano Lattarini typofix: s/test derivers/test drivers/ in check.am comments 2012-06-20 Stefano Lattarini typofix: s/env/even/ in comments in GNUmakefile Spotted by Eric Blake. 2012-06-20 Stefano Lattarini Merge branch 'maint' * maint: bootstrap: overhaul and improve docs: quote 'like this', not `like this' 2012-06-20 Stefano Lattarini bootstrap: overhaul and improve This fixes several weaknesses and buglets in the 'bootstrap' convenience target offered in GNUmakefile (and its supporting code). Refer to the extensive code comments in there for more details. * GNUmakefile: Almost completely rewritten. 2012-06-20 Stefano Lattarini docs: quote 'like this', not `like this' * doc/automake.texi: Fix the reported warnings and informative messages from automake to quote 'like this' rather than as `like this'. Do the same for comments and some text in our examples. 2012-06-20 Stefano Lattarini fixup: tests: special requirement 'makeinfo-html' removed from ./defs This should have ideally been part of earlier commit v1.12.1-93-g3c64d54. * defs (makeinfo-html): Remove. 2012-06-20 Stefano Lattarini maintcheck: guard against obsolete $required entries * syntax-check.mk: Add rules guarding against the use of the obsolete test requirements 'texi2dvi-o' and 'makeinfo-html'. 2012-06-20 Stefano Lattarini tests: drop requirement 'makeinfo-html'; 'makeinfo' is enough * defs: Since we now require Texinfo 4.9 or later in the Automake generated Makefiles, and since the '--html' option of makeinfo, as well as its capability to generate HTML output, has been supported since Texinfo 4.0 (according to the Texinfo NEWS file), the requirement 'makeinfo-html' is obsolete -- the simpler requirement 'makeinfo' is enough. * t/instdir-texi.sh ($required): Adjust by using simply 'makeinfo' instead of 'makeinfo-html'. * t/silent8.sh: Likewise. * t/txinfo21.sh: Likewise. 2012-06-20 Stefano Lattarini tests: drop requirement 'texi2dvi-o'; 'texi2dvi' is enough * defs: Since we now require Texinfo 4.9 or later in the Automake generated Makefiles, and since the '-o' option of texi2dvi has been supported since Texinfo 4.1, the requirement 'texi2dvi-o' is obsolete -- the simpler requirement 'texi2dvi' is enough. * t/silent8.sh ($required): Adjust by using simply 'texi2dvi' instead of 'texi2dvi-o' * t/txinfo-no-clutter.sh: Likewise. * t/txinfo13.sh: Likewise. * t/txinfo23.sh: Likewise. * t/txinfo24.sh: Likewise. * t/txinfo25.sh: Likewise. * t/txinfo28.sh: Likewise. * t/txinfo33.sh: Likewise. * t/vtexi4.sh: Likewise. 2012-06-20 Stefano Lattarini texi: require Texinfo >= 4.9, related enhancements We start passing the '--build-dir' option to the texi2dvi and texi2pdf invocations done in our Texinfo-related rules. The argument for this option will be specific for each info_TEXINFOS entry, to work around a texi2dvi bug that could otherwise cause racy failures in parallel make builds: That bug seems already fixed in the development version of texi2dvi, though: so the details of our '--build-dir' usage can be revisited once we can assume Texinfo 5.0 or later. Since the '--build-dir' options has been only supported since Texinfo 4.9, we lose compatibility with all older Texinfo versions. But we also get some real improvements. First, the '--build-dir' option implies the '--tidy' option; this, like the '--clean' option that we were formerly using, prevents cluttering of the build directory with all the TeX and Texinfo auxiliary files and build by-products, but, differently from '--clean', keeps them around for later re-runs to use; this shortens the rebuild times considerably. Second, the use of '--build-dir' also allows us to specify different build directories for the PDF and DVI output, preventing the rules building them from stomping on each other's feet when run in parallel. This is demonstrated by the test cases 'txinfo-no-clutter.sh' and 'txinfo33.sh', which before this change used to fail when run with MAKE="make -j4", but now succeed even in that case. * NEWS: Update. * lib/am/texibuilds.am: Do not try to avoid texi2dvi/texi2pdf option '-o'; it has been supported since Texinfo 4.1, and we now require Texinfo >= 4.9. Remove an obsolete comment. Modify calls to texi2dvi and texi2pdf to use the '--build-dir' option, so that TeX auxiliary files and build by-products for a 'foo.texi' input will be placed in a 'foo.t2d' directory (for texi2dvi) or in a 'foo.t2p' directory (for texi2pdf). * automake.in (scan_texinfo_file): Greatly simplify the implementation, since we don't need anymore to keep track of the TeX auxiliary files and build by-products to clean. Drop the '@CLEAN_FILES' part of the return value. (handle_texinfo_helper): Adjust the 'scan_texinfo_file()' call to its new signature. Append the "work directories" now created by texi2dvi and texi2pdf invocation to the list of files/directories removed upon "make mostlyclean". * lib/am/texinfos.am: Update the cleaning rules (and comments) accordingly. * t/txinfo-no-clutter.sh: Minimal adjustment to avoid spurious failures. * .gitignore: Update. 2012-06-16 Stefano Lattarini docs: it's not true that DISTCHECK_CONFIGURE_FLAGS is maintainer-reserved At least, not anymore since commit 'v1.11-372-g9760039' of 2001-06-10, "distcheck: add support for AM_DISTCHECK_CONFIGURE_FLAGS". See also automake bug#8784. * doc/automake.texi (Flag Variables Ordering): Do not report 'DISTCHECK_CONFIGURE_FLAGS' as a "variables that are only useful to the maintainer that has no user counterpart": now it is a user-reserved variable, its maintainer-reserved counterpart being 'AM_DISTCHECK_CONFIGURE_FLAGS' . 2012-06-15 Stefano Lattarini Merge branch 'am-preprocess-drop-tricky-transform' * am-preprocess-drop-tricky-transform: automake: stop supporting "%KEY?iftrue:iffalse%" transforms am: stop using "%KEY:iffalse?iftrue%" transforms 2012-06-15 Stefano Lattarini Merge branch 'maint' * maint: tests: minor reorganization of few tests fixup: adjust t/list-of-tests.mk for renamed/added tests subdirs: enhance coverage, tweak and rename few tests sync: update files from upstream with "make fetch" py-compile: consistently quote 'like this', not `like this'. docs: recursive make considered harmful docs: clean rules are not run in reverse order of build rules anymore silent: new $(AM_V_P) variable, tell if we're running in silent mode refactor: silent rules handling (a little) refactor: &define_verbose_var: accept a third optional argument + Extra non-trivial edits: These are due to the fact that support for silent rules is enabled unconditionally these days (since commit 'v1.12-34-g14141f2' of 2012-05-01, "silent rules: support for them is always active now"). * automake.in: In the new silent related code, do not ever check whether the 'silent-rules' option is active; just assume support for silent rules is enabled. * t/silent-obsolescent-warns.sh: Remove as obsolete. * t/list-of-tests.mk: Adjust. 2012-06-15 Stefano Lattarini Merge branch 'docs-recursion' into maint * docs-recursion: docs: recursive make considered harmful 2012-06-15 Stefano Lattarini Merge branch 'silent-custom' into maint * silent-custom: silent: new $(AM_V_P) variable, tell if we're running in silent mode refactor: silent rules handling (a little) refactor: &define_verbose_var: accept a third optional argument 2012-06-14 Stefano Lattarini automake: stop supporting "%KEY?iftrue:iffalse%" transforms And the similar "reduced forms" "%KEY:iffalse%" and "%KEY?iftrue%" as well. They are convoluted, never used (after the previous change), and will get in the way in the Automake-NG branch, where we'll soon want to use GNU make static pattern rules in our internal '*.am' fragments. * automake.in (preprocess_file, transform): Simplify not to support those transform patterns. 2012-06-14 Stefano Lattarini am: stop using "%KEY:iffalse?iftrue%" transforms And the similar "reduced forms" "%KEY:iffalse%" and "%KEY?iftrue%" as well. They are harder to grasp, can be easily reformulated in function of other "plainer" transforms ("?KEY?" and "?!KEY?"), and we'll remove support for them anyway in a later change. * lib/am/data.am, lib/am/libs.am, lib/am/lisp.am, lib/am/ltlib.am, lib/am/progs.am, lib/am/python.am, lib/am/scripts.am: Adjusted not to rely on those kinds of transforms. 2012-06-14 Stefano Lattarini tests: minor reorganization of few tests * t/subdir3.sh: Rename ... * t/sourcefile-in-subdir.sh: ... like this. * t/subdir4.sh: Rename ... * t/depcomp-implicit-auxdir.sh: ... like this. * t/subdir6.sh: Rename ... * t/confh-subdir-clean.sh: ... like this. * t/subdir7.sh: Renamed ... * t/dir-named-obj-is-bad.sh: ... like this, and enhance. * t/srcsub.sh, t/srcsub2.sh: Unify ... * t/src-acsubst.sh: ... as this test. * t/list-of-tests.mk: Adjust. 2012-06-14 Stefano Lattarini fixup: adjust t/list-of-tests.mk for renamed/added tests 2012-06-14 Stefano Lattarini subdirs: enhance coverage, tweak and rename few tests * t/subdir5.sh: Rename ... * t/subdir-add-pr46.sh: ... like this. * t/subdir8.sh: Rename ... * t/subdir-add2-pr46.sh: ... like this. * t/cond2.sh: Rename ... * t/subdir-cond-err.sh: ... like this. * t/subdir9.sh: Rename ... * t/subdir-with-slash.sh: ... like this; improve heading comments. * t/subcond.sh: Rename ... * t/subdir-cond-gettext.sh: ... like this; improve m4 quoting. * t/subcond2.sh: Rename ... * t/subdir-am-cond.sh: ... like this; adjust heading comments. * t/subcond3.sh: Rename ... * t/subdir-ac-subst.sh: ... like this; adjust heading comments. * t/subdir2.sh: Rename ... * t/subdir-subsub.sh: ... like this; enhance so that it also runs './configure' and 'make'. * t/subdir-order.sh: New test, check that the $(SUDBIRS) entries are processed in the order they are specified. * doc/automake.texi: Adjust references to tests. 2012-06-14 Stefano Lattarini sync: update files from upstream with "make fetch" * lib/config.guess, lib/gitlog-to-changelog, lib/texinfo.tex: Update. 2012-06-14 Stefano Lattarini py-compile: consistently quote 'like this', not `like this'. * lib/py-compile (usage_error): Here. 2012-06-12 Stefano Lattarini docs: recursive make considered harmful In the documentation, we shouldn't confuse "packages using subdirectories" with "packages using recursive make invocations". A package can have a careful organization in subdirectories, make no (or almost no) use of make recursion (examples of such packages are GNU bison, GNU cppi, and Automake itself). In fact, make recursion should be used as seldom as possible, because it makes the build system more brittle and dependency declarations less faithful. See Peter Miller's article "Recursive Make Considered Harmful" for more a more in-depth discussion: http://miller.emu.id.au/pmiller/books/rmch/ * doc/automake.texi (Directories): Clarify how a build system based on make recursion does. Observe that such a system, albeit being very widespread, has its own issues and drawbacks, and that one can have a non-recursive setup also for projects using complex directory layout. (Recursing subdirectories): Speak of "packages that use make recursion" rather than of "packages with subdirectories". 2012-06-12 Stefano Lattarini Merge branch 'subdirs-simplify' into maint * subdirs-simplify: docs: clean rules are not run in reverse order of build rules anymore 2012-06-12 Stefano Lattarini docs: clean rules are not run in reverse order of build rules anymore At least since commit 'v1.12.1-12-gec6a135' of 2012-06-10, "subdirs: unify rules for "cleaning" and "normal" recursive targets" * doc/automake.texi (Recursing subdirectories): Adjust. 2012-06-11 Stefano Lattarini Merge branch 'maint' * maint: maintcheck: fix failures, both real and spurious subdir tests: avoid an use of "make -j4", for portability tests: avoid failure due to libtool quirks in C++ demo test tests: fix spurious failures due to missing '$sleep' subdirs: unify rules for "cleaning" and "normal" recursive targets tests: add a "demo" test on C support tests: look for '.lo' rather than '.o' object when using Libtool with C++ cosmetics: few typofixes in older ChangeLogs, suggested by "codespell.py" maint: grammar fixes: s/all these/all of these/ subdir-objects: improve "make mostlyclean" efficiency and flexibility 2012-06-11 Stefano Lattarini Merge branch 'subdir-objects-pr10697' into maint * subdir-objects-pr10697: maintcheck: fix failures, both real and spurious 2012-06-11 Stefano Lattarini maintcheck: fix failures, both real and spurious * syntax-checks.mk (sc_rm_minus_f): Whitelist the 't/subobj-clean*-pr10697.sh' tests. * t/subobj-clean-pr10697.sh: When redefining PATH, use '$PATH_SEPARATOR', not hard-coded ':'. * t/subobj-clean-lt-pr10697.sh: Likewise. 2012-06-11 Stefano Lattarini tests: merged some testsuite fixlets * fix-cxx-libtool-demo: tests: avoid failure due to libtool quirks in C++ demo test * subdir-objects-pr10697: tests: fix spurious failures due to missing '$sleep' * subdirs-simplify: subdir tests: avoid an use of "make -j4", for portability 2012-06-11 Stefano Lattarini subdir tests: avoid an use of "make -j4", for portability Otherwise, a spurious failure with Solaris CCS make can be triggered. The coverage is not actually reduced, since the code path is still covered when one runs the testsuite with AM_TESTSUITE_MAKE="make -jN" (as should be done periodically). * t/subdir-distclean.sh : Call simply "make maintainer-check", not "make -j4 maintainer-check". 2012-06-11 Stefano Lattarini tests: avoid failure due to libtool quirks in C++ demo test Revealed by failures on NetBSD 5.1. * t/cxx-lt-demo.sh: In "make distcheck" invocation, don't define 'CC' to "false", as that value would be exported and passed to the child ./configure invocation, and some configure checks generated by libtool autoconf macros can still require a C preprocessor even for packages using only C++, and bail out if it's not found. The problem was not apparent on Solaris and GNU/Linux because those systems have a '/lib/cpp' program, and configure detected and used that as a fallback C preprocessor. 2012-06-11 Stefano Lattarini tests: fix spurious failures due to missing '$sleep' Revealed by failures on NetBSD 5.1. * t/subobj-clean-pr10697.sh: Call '$sleep' before modifying the files that should trigger an automatic remake. * t/subobj-clean-lt-pr10697.sh: Likewise. 2012-06-11 Stefano Lattarini Merge branches 'subdirs-simplify' and 'subdir-objects-pr10697' into maint * subdirs-simplify: subdirs: unify rules for "cleaning" and "normal" recursive targets tests: add a "demo" test on C support * subdir-objects-pr10697: subdir-objects: improve "make mostlyclean" efficiency and flexibility tests: look for '.lo' rather than '.o' object when using Libtool with C++ cosmetics: few typofixes in older ChangeLogs, suggested by "codespell.py" 2012-06-11 Stefano Lattarini subdirs: unify rules for "cleaning" and "normal" recursive targets Before this change, the recursive invocation of cleaning targets in the $(SUBDIRS) where done in inverse order, i.e., starting from the last $(SUBDIRS) entry and proceeding towards the first. According to the code comments, this was done ... ... in an attempt to alleviate a problem that can happen when dependencies are enabled. In this case, the .P file in one directory can depend on some automatically generated header in an earlier directory. Since the dependencies are required before any target is examined, make bombs. But this comment does not apply anymore to the current implementation of automatic dependency tracking: the '.Po' and '.Plo' files does not depend on any C header or source file, ever! So it seems that the distinction between "normal" and "cleaning" recursive targets is a stale leftover of an older implementation of the automatic dependency tracking. In fact, the Automake History manual seems to confirm this suspect; the section "First Take on Dependency Tracking" reads: Because each .P file was a dependency of Makefile, this meant that dependency tracking was done eagerly by make. For instance, "make clean" would cause all the dependency files to be updated, and then immediately removed. This eagerness also caused problems with some configurations; if a certain source file could not be compiled on a given architecture for some reason, dependency tracking would fail, aborting the entire build. and the following section "Dependencies As Side Effects" reads: In this approach, the .P files were included using the -include command, which let us create these files lazily. This avoided the "make clean" problem. So the distinction between "normal" and "cleaning" recursive targets has likely been obsolete since by then already. We can thus remove such distinction, thus reducing some complications and duplication in our rules. Doing so, the whole testsuite still passes (both with GCC and Sun C 5.9), even the test 'c-demo.sh', which, among the other things, exercise the setup described in the obsolete code comment referenced above. Finally, note that we still keep '$(RECURSIVE_CLEAN_TARGETS)' and '$(RECURSIVE_TARGETS)' as two distinct variables, to ensure a better backward-compatibility for any user-defined rules that happen to use those variables. * NEWS: Update. * lib/am/subdirs.am ($(RECURSIVE_CLEAN_TARGETS), $(CLEAN_TARGETS)): Merge their recipes. * t/subdir-distclean.sh: New test, check that "./configure && make && make distclean" is actually a no-op, even when conditional SUBDIRS are involved. * t/list-of-tests.mk: Add it. 2012-06-11 Stefano Lattarini tests: add a "demo" test on C support Showing and testing non-trivial use of C support, and its interaction with other features. * t/c-demo.sh: New test. * t/list-of-tests.mk: Add it. 2012-06-11 Stefano Lattarini tests: look for '.lo' rather than '.o' object when using Libtool with C++ * t/cxx-lt-demo.sh: ... in this test. 2012-06-11 Stefano Lattarini cosmetics: few typofixes in older ChangeLogs, suggested by "codespell.py" The typofixes offered by this patch have been suggested by the "codespell.py" script. Reference: * old/ChangeLog.01, old/ChangeLog.02, old/ChangeLog.03: Fix few typos. 2012-06-11 Stefano Lattarini silent: new $(AM_V_P) variable, tell if we're running in silent mode Addresses part of automake bug#8665. * automake.in (handle_silent): Define a new make variable '$(AM_V_P)', that expands to a shell conditional that can be used in make recipes to determine whether they are being run in silent mode or not. The choice of the name derives from the LISP convention of appending the letter 'P' to denote a predicate (see also "the '-P' convention" in the Jargon File); we do so for lack of a better convention. * t/automake.texi, NEWS: Document the new variable. * t/silent6.sh: Adjust and extend. Move out the checks that didn't actually deal with user extension of silent rules ... * t/silent-obsolescent-warns.sh: ... into this test (bound to be removed once 'maint' is merged into the 'master' branch). * t/list-of-tests.mk: Add the new test. 2012-06-11 Stefano Lattarini refactor: silent rules handling (a little) * automake.in (handle_languages): Move definition of $(AM_V_GEN) variable ... (define_verbose_tagvar): ... and of '$(AM_V_at)' variable ... (handle_silent): ... in this new subroutine. (generate_makefile): Call it. 2012-06-11 Stefano Lattarini refactor: &define_verbose_var: accept a third optional argument This is only required by future changes. * automake.in (define_verbose_var): Accept a third optional argument, specifying the value to assign to the given make variable when silent rules are disabled. 2012-06-10 Jim Meyering maint: grammar fixes: s/all these/all of these/ Run this command: git grep -li '\' \ |xargs perl -pi -e 's/\b([Aa])ll these\b/${1}ll of these/' 2012-06-10 Stefano Lattarini subdir-objects: improve "make mostlyclean" efficiency and flexibility Fixes automake bug#10697. Before this change, the generated Makefile issued one 'rm' invocation for each subdir object file. Not only was this very inefficient when there were several such files, but it also caused stale object files to be left behind when a source file was renamed or removed. * automake.in (handle_single_transform): When a subdir object is seen, update '%compile_clean_files' to clean all the compiled objects in its same subdirectory, and all the libtool compiled objects ('.lo') there as well is that subdir object is a libtool one. * t/subobj-clean-pr10697.sh: New test. * t/subobj-clean-lt-pr10697.sh: Likewise. * t/list-of-tests.mk: Add them. * NEWS: Update. 2012-06-09 Stefano Lattarini Merge branch 'maint' * maint: tests: look for '.lo' rather than '.o' object when using Libtool with C++ cosmetics: few typofixes in older ChangeLogs, suggested by "codespell.py" tests: add basic semantic tests on C++ support tests: minor tweak to 't/objc-megademo.sh' 2012-06-09 Stefano Lattarini tests: look for '.lo' rather than '.o' object when using Libtool with C++ * t/cxx-lt-demo.sh: ... in this test. 2012-06-09 Stefano Lattarini cosmetics: few typofixes in older ChangeLogs, suggested by "codespell.py" The typofixes offered by this patch have been suggested by the "codespell.py" script. Reference: * old/ChangeLog.01, old/ChangeLog.02, old/ChangeLog.03: Fix few typos. 2012-06-09 Stefano Lattarini tests: add basic semantic tests on C++ support Strange as it might seem, we were still missing them (yikes). * t/cxx-demo.sh: New test. * t/cxx-lt-demo.sh: Likewise (using libtool). * t/list-of-tests.mk: Add them. 2012-06-09 Stefano Lattarini tests: minor tweak to 't/objc-megademo.sh' * t/objc-megademo.sh (am_create_testdir): Define to "empty" before including ./defs, because this test doesn't rely on the files usually pre-set by the setup in there. 2012-06-08 Stefano Lattarini cleanup: simplify subroutine '&saw_extension' * automake.in (saw_extension): Now that we use the '%extension_seen' hash only as a set (it's keys being its elements), we can simplify the implementation of this function accordingly. 2012-06-08 Stefano Lattarini cleanup: remove subroutine '&saw_sources_p' * automake.in (saw_sources_p): Remove, its implementation is now so trivial that it's easier to inline it into ... (handle_languages): ... it's only caller. 2012-06-08 Stefano Lattarini cleanup: remove unused '&count_files_for_language' subroutine * automake.in (count_files_for_language): Remove. Its only remaining caller (saw_sources_p) has stopped calling it in the previous commit. 2012-06-08 Stefano Lattarini automake: simplify '&saw_sources_p' This is just a minor cleanup. No semantic change is intended. * automake.in (saw_sources_p): Since its now-only caller calls it with the '0' argument, remove the code paths that assumed the argument could be '1', and assume no arguments. (handle_languages): Drop the arguments '0' in the '&saw_sources_p' invocation. 2012-06-08 Stefano Lattarini tags: look at $(am__tagged_files) to decide whether to activate This is just a preparatory refactoring in view of future changes. * automake.in (handle_tags): To decide whether to include the tags rules, rely on whether the automake-defined variable $(SOURCES) is non-empty, rather than on the fact that '&saw_sources(1)' returns true. 2012-06-08 Stefano Lattarini tags: new var $(am__tagged_files) to list all files to run taggers on This change reduce code duplication a little, and will be needed by future simplifications. * automake.in (handle_tags): Define a new 'am__tagged_files' private make variable that lists all files to run taggers (mkid, cscope, ctags, etc) on. Drop the now-useless transform '%CONFIG%' when including 'tags.am'. * lib/am/tags.am: Use it in several recipes and dependencies list to reduce code duplication. 2012-06-08 Stefano Lattarini tags (cscope): also process $(TAGS_FILES) * lib/am/tags.am (cscopelist): Also scan the files (if any) listed in the '$(TAGS_FILES) variable, for consistency by what is done by the 'ID', 'TAGS' and 'CTAGS' rules. 2012-06-08 Stefano Lattarini tags (ID, cscope): also process config header (if any) * lib/am/tags.am (cscopelist, ID): Also scan the file given by the '%CONFIG%' transform, for consistency by what is done by the 'TAGS' and 'CTAGS' rules. 2012-06-02 Stefano Lattarini Merge branch 'maint' * maint: news: document deprecation of configure.in news: put planned backward compatibilities early sync: update files from upstream with "make fetch" maint: deprecate 'configure.in' as autoconf input maint: post-release minor version bump release: stable release 1.12.1 copyright: update copyright years in a couple of files tests: avoid spurious failures with Solaris 9 cscope program maintcheck: fix a spurious failure perf: beginning of a performance testsuite aclocal: declare function prototypes, do not use '&' in function calls news: support for configure.in will be dropped in future automake versions tests: fix botched heading comments in 'lex-clean-cxx.sh' [ng] maintcheck: some tweaks and fixlets help: fix a typo in the list of warning categories maint: version bump after beta release release: beta release 1.12.0b (will become 1.12.1) release: remove overly picky check 2012-06-02 Stefano Lattarini news: document deprecation of configure.in * NEWS (Warnings and deprecations): We now warn if 'configure.in' is used instead of 'configure.ac' as autoconf input. (Future backward-incompatibilities): Adjust. 2012-06-02 Stefano Lattarini news: put planned backward compatibilities early * NEWS (Future backward-incompatibilities): Put them in the news entries for the future 1.12.2 release. 2012-06-01 Stefano Lattarini sync: update files from upstream with "make fetch" * lib/config.sub, lib/gitlog-to-changelog, lib/texinfo.tex: Update. 2012-06-01 Stefano Lattarini maint: deprecate 'configure.in' as autoconf input It has been years since that has been deprecated in the documentation, in favour of 'configure.ac': Previous versions of Autoconf promoted the name configure.in, which is somewhat ambiguous (the tool needed to process this file is not described by its extension), and introduces a slight confusion with config.h.in and so on (for which '.in' means "to be processed by configure"). Using configure.ac is now preferred. It's now time to start giving runtime warning about the use of 'configure.in', so that support for it can be removed in future versions of autoconf/automake. See also, in the Autoconf repository, commit 'v2.69-4-g560f16b' of 2012-05-23, "general: deprecate 'configure.in' as autoconf input". * lib/Automake/Configure_ac.pm: Issue a warning in the 'obsolete' category if 'configure.in' is detected. Since this module is synced from Automake, this change is to be backported there (and will be soon). * t/help.sh: Adjust. * t/configure.sh: Adjust and enhance. 2012-06-01 Stefano Lattarini maint: post-release minor version bump * configure.ac (AC_INIT): Bump version number to 1.12.1a. * m4/amversion.m4: Likewise (automatically regenerated by "make bootstrap"). 2012-06-01 Stefano Lattarini release: stable release 1.12.1 * configure.ac (AC_INIT): Bump version number to 1.12.1. * m4/amversion.m4: Likewise (auto-updated by "./bootstrap"). 2012-06-01 Stefano Lattarini copyright: update copyright years in a couple of files * doc/help2man, t/aclocal-verbose-install.sh: Update copyright, thanks to "make update-copyright". 2012-06-01 Stefano Lattarini tests: avoid spurious failures with Solaris 9 cscope program * t/cscope.tap: Also check that the cscope program in use supports the '-q' option; if this is not the case, some cscope usages in the generated Makefiles would fail, so we must skip the checks involving those usages. 2012-06-01 Stefano Lattarini maintcheck: fix a spurious failure * Makefile.am (test_subdirs): Add 't/perf'. Fix spurious failure of the 'maintainer-check-list-of-tests' target. 2012-05-29 Stefano Lattarini perf: beginning of a performance testsuite Some tests in the Automake testsuite already aims only at verifying the performance, rather than the correctness, of some operations. Still, they are somewhat shoehorned and forced into the PASS/FAIL framework (say, with the 'ulimit' shell builtin used to verify some operation doesn't take up too much time or memory), but that is conceptually a stretch, and has already caused problems in practice (see automake bug#11512 for an example). So we start moving the "performance tests" out of the testsuite proper, and make them run only "on demand" (when the user exports the variable 'AM_TESTSUITE_PERF' to "yes"). Ideally, we should provide those tests with a custom runner/driver that measures and displays the relevant performance information, but doing that correctly and with the right APIs is definitely more difficult, so we leave it for a later step (an hope we'll take such a step eventually). * t/cond29.sh: Move ... * t/perf/cond.sh: ... here, and adjust. * t/testsuite-recheck-speed.sh: Move ... * t/perf/testsuite-recheck.sh: ... here. * t/testsuite-summary-speed.sh: Move ... * t/perf/testsuite-summary.sh: ... here. * t/list-of-tests.mk (perf_TESTS): New variable, listing the tests in the 't/perf' directory. (handwritten_TESTS): Adjust. * defs: Skip any tests in the 't/perf/' subdirectory unless the 'AM_TESTSUITE_PERF' variable is set to "yes" or "y". * .gitignore: Update. 2012-05-29 Stefano Lattarini Merge branch 'fix-pr11543' into maint * fix-pr11543: aclocal: declare function prototypes, do not use '&' in function calls 2012-05-29 Stefano Lattarini aclocal: declare function prototypes, do not use '&' in function calls This change will also fix automake bug#11543 (from a report by Matt Burgess). * aclocal.in: Declare prototypes for almost all functions early, before any actual function definition (but omit the prototype for the dynamically generated '&search' function). Add prototypes to any function definition. Remove '&' from function invocations (i.e., simply use "func(ARGS..)" instead of "&func(ARGS...)"). * THANKS, NEWS: Update. 2012-05-28 Stefano Lattarini news: support for configure.in will be dropped in future automake versions The use of configure.in as Autoconf input has been deprecated for a very long time in the Autoconf documentation, and the next version of Autoconf (2.70) will start warning about it ar runtime as well (see commit 'v2.69-4-g560f16b' or 2012-05-23, "general: deprecate 'configure.in' as autoconf input", in the Autoconf's git repository). * NEWS (Future backward-incompatibilities): Update. 2012-05-27 Stefano Lattarini missing: support AC_CONFIG_HEADERS in addition to obsolete AC_CONFIG_HEADER * missing (autoheader*): Do not look only for AC_CONFIG_HEADER when grepping configure.ac, but also for AC_CONFIG_HEADERS: the latter has been preferred to the former by several years now in Autoconf. 2012-05-27 Stefano Lattarini missing: don't bother checking for AM_CONFIG_HEADER: it is gone now * missing (autoheader*): Do not look for AM_CONFIG_HEADER when grepping configure.ac: it is not supported anymore (has been in fact deleted in commit v1.12-15-gd2ca168 of 2012-04-27, "m4: delete several obsolete macros"). 2012-05-27 Stefano Lattarini docs: remove mention of AM_CONFIG_HEADER: it is obsolete and removed now * doc/automake.texi (Variables used when building a program): Remove obsolete mention of AM_CONFIG_HEADER as an alias to AC_CONFIG_HEADERS. 2012-05-26 Stefano Lattarini tests: fix botched heading comments in 'lex-clean-cxx.sh' * t/lex-clean-cxx.sh: This file tests lex, not yacc. 2012-05-25 Stefano Lattarini [ng] maintcheck: some tweaks and fixlets * syntax-checks.mk (sc_no_brace_variable_expansions): Do not complain about ${MAKEVAR} usages in comments: they might be legitimate. This change is not strictly required for mainline automake, but will help in the Automake-NG branch. * sc_tests_here_document_format: Relax a bit, so that usages like "cout << "string" << endl;" in the test scripts (usages which can be used in here documents defining C++ sources) are not flagged as uses of bad delimiters for here documents. This change is not strictly required for mainline automake, but will help in the Automake-NG branch, and will anyway be more future proof w.r.t. possible future testsuite additions. (sc_tests_Exit_not_exit): Do not whitelist lines containing $PERL explicitly (that was only required for one test); instead ... * t/ext2.sh: ... use "exit (1)" instead of "exit 1" in the perl invocation of the guilty script. 2012-05-25 Stefano Lattarini Merge branch 'am-init-automake' * am-init-automake: init: obsolete usages of AM_INIT_AUTOMAKE not supported anymore 2012-05-25 Stefano Lattarini init: obsolete usages of AM_INIT_AUTOMAKE not supported anymore This is a follow-up on commit v1.12-66-g27136df of 2012-05-06, "init: warn against obsolete usage of AM_INIT_AUTOMAKE". With this change, we drop support for the two-arguments and three-arguments invocation forms of the AM_INIT_AUTOMAKE macro, as in either of: AM_INIT_AUTOMAKE($PACKAGE, $VERSION) AM_INIT_AUTOMAKE($PACKAGE, $VERSION, NODEFINE) * NEWS, doc/automake.texi: Update. * m4/init.m4 (AM_INIT_AUTOMAKE): Report the two- and three-arguments invocation form as a hard error. * t/aminit-moreargs-deprecation.sh: Renamed ... * t/aminit-moreargs-deprecation.sh: ... to this, and updated to check the new semantics. * t/ac-output-old.tap: Adjust by avoiding old-style uses of AC_INIT and AM_INIT_AUTOMAKE. * t/acsilent.sh: Likewise. * t/dirlist.sh: Likewise. * t/dirlist2.sh: Likewise. * t/req.sh: Likewise. * t/nodef.sh: Remove as obsolete. * t/version.sh: Likewise. * t/version2.sh: Likewise. * t/backcompat.sh: Likewise. * t/backcompat2.sh: Likewise. * t/backcompat3.sh: Likewise. * t/backcompat5.sh: Likewise. * t/backcompat4.sh: Renamed ... * t/backcompat-acout.sh: ... to this. * t/list-of-tests.mk: Adjust. 2012-05-21 Stefano Lattarini help: fix a typo in the list of warning categories * lib/Automake/ChannelDefs.pm (usage): s/none'/none/. 2012-05-19 Stefano Lattarini maint: version bump after beta release * configure.ac (AC_INIT): Bump version number to 1.12.0c. * m4/amversion.m4: Likewise (auto-updated by "./bootstrap"). 2012-05-19 Stefano Lattarini release: beta release 1.12.0b (will become 1.12.1) * configure.ac (AC_INIT): Bump version number to 1.12.0b. * m4/amversion.m4: Likewise (auto-updated by "./bootstrap"). 2012-05-19 Stefano Lattarini release: remove overly picky check * Makefile.am (git-tag-release): Do not check that the version number NEWS is updated w.r.t. $(VERSION); given the new way we manage NEWS, that would cause gratuitous spurious failures. * HACKING: Update. 2012-05-19 Stefano Lattarini Merge branch 'parallel-tests-default' * parallel-tests-default: check: the parallel-tests driver is now the default 2012-05-19 Stefano Lattarini Merge branch 'maint' * maint: ylwrap: preserve subdirectories in "#line" munging ylwrap: preparatory refactoring 2012-05-19 Stefano Lattarini Merge branch 'ylwrap-line-filename' into maint * ylwrap-line-filename: ylwrap: preserve subdirectories in "#line" munging ylwrap: preparatory refactoring 2012-05-18 Stefano Lattarini check: the parallel-tests driver is now the default The old serial testsuite driver is still supported, and can be activated by the 'serial-tests' option (introduced by commit 'v1.11-1989-gdeb7773' of 2012-02-20, "automake: new option 'serial-tests'"). * lib/Automake/Options.pm: Now, the 'parallel-tests' option is a no-op (but still explicitly recognized, for backward compatibility), while the 'serial-tests' option is recognized and registered. * automake.in: Adjust to ensure that the parallel test harness is used by default; mostly, this amounts at using "! option('serial-tests')" where "option('parallel-tests')" was used before. * NEWS, doc/automake.texi: Update. * configure.ac (AM_INIT_AUTOMAKE): Drop 'parallel-tests' option, is redundant now. * defs: In the generated AM_INIT_AUTOMAKE call, use the 'serial-tests' when the serial testsuite harness is to be used, and no option otherwise. * lib/am/check.am: Use (static) conditional '%SERIAL_TESTS%' instead of conditional '%PARALLEL_TESTS%'. * lib/test-driver: Adjust heading comments. * t/ax/extract-testsuite-summary.pl: Likewise. * t/check-exported-srcdir.sh: Likewise. * t/check-subst.sh: Likewise. * t/java-compile-run-nested.sh: Likewise. * t/parallel-tests-dry-run-1.sh: Likewise. * t/parallel-tests-dry-run-2.sh: Likewise. * t/parallel-tests-interrupt.sh: Likewise. * t/parallel-tests-many.sh: Likewise. * t/test-metadata-global-log.sh: Likewise. * t/tests-environment-backcompat.sh: Likewise. * m4/init.m4 (AM_INIT_AUTOMAKE): Adjust a comment. * t/check8.sh: Likewise. * t/check-tests-in-builddir.sh: Likewise. * t/java-compile-run-flat.sh: Adjust a botched comment. * t/ax/tap-summary-aux.sh: Remove explicit use of the 'parallel-tests' option. * t/ax/testsuite-summary-checks.sh: Likewise. * t/aclocal-path-precedence.sh: Likewise. * t/dist-aux-many-subdirs.sh: Likewise. * t/parallel-tests-no-color-in-log.sh: Likewise. * t/parallel-tests-reset-term.sh: Likewise. * t/parallel-tests-subdir.sh: Likewise. * t/check-no-test-driver.sh: Fix setup to adjust to the changed semantics. Update heading comments. * t/parallel-tests-driver-install.sh: Adjust to the new semantic. * t/test-driver-is-distributed.sh: Simplified according to the new semantics. 2012-05-18 Stefano Lattarini Merge branch 'maint' * maint: tests: use 'parallel-tests' Automake option by default doc: fix location of Automake's own test-suite.log file yacc tests: avoid a spurious failure with Sun C++ 5.9 self tests: cater for /bin/ksh symlinked to Zsh tests: fix spurious failures due to dpkg install-info 2012-05-18 Stefano Lattarini tests: use 'parallel-tests' Automake option by default This will help our transition from 'serial-tests' to 'parallel-tests' as the default test suite driver enabled by a TESTS assignment in the input Makefile.am. Note that that change of default will only take place in master, though. * defs: Pass the 'parallel-tests' option to the AM_INIT_AUTOMAKE invocation in the created 'configure.ac' stub, unless the variable 'am_serial_tests' is set to "yes". Don't pay attention anymore to the 'am_parallel_tests' variable, that's obsolete now. * defs-static.in: Warn if the 'am_serial_tests' variable is set in the environment; conversely, don't warn anymore about 'am_parallel_tests' being set in the environment. * Makefile.am (AM_TESTS_ENVIRONMENT): Nullify the 'am_serial_tests' variable instead of the now-obsolete 'am_parallel_tests' one. * syntax-checks.mk (sc_tests_obsolete_variables): Also warn against uses of 'am_parallel_tests', which is now deprecated in favor of 'am_serial_tests'. Similarly, if a use of 'parallel_tests' is seen, suggest using 'am_serial_tests' instead, not 'am_parallel_tests'. * gen-testsuite-part: Now that we use the 'parallel-tests' by default in our tests, we need to completely change the logic and semantics of generation of sibling tests for those tests that check the Automake generated testsuite harness itself. Do that, and give a complete explanation of the new logic and semantics in the relevant comments. * t/README: Update. * Lots of test cases: Adjust. 2012-05-17 Stefano Lattarini doc: fix location of Automake's own test-suite.log file * doc/automake.texi (Reporting Bugs): The global testsuite log of Automake is now (basically since we have removed make recursion from the Automake's build system) saved in the file 'test-suite.log', not in the file 'tests/test-suite.log'. Adjust accordingly. 2012-05-16 Nikolai Weibull (tiny change) Stefano Lattarini ylwrap: preserve subdirectories in "#line" munging If Automake is used in non-recursive mode and one of the inputs is a yacc file, for example, "src/grammar.y", ylwrap will remove too many directories from the output file when it adjusts the paths in it. This results in #line directives referring to "grammar.y" instead of "src/grammar.y". This is a result of $input_rx simply taking all the directory components of the absolute input path and removing them. One solution is to store the path passed to ylwrap and replace $input_rx with it. This is what we do. Suggestion and initial patch (without tests) by Nikolai Weibull: Final patch by Stefano Lattarini. * lib/ylwrap ($input_sub_rx): New. When munging the #line directives, substitute '$input_rx' with it, instead of stripping it altogether. Adjust comments. * t/yacc-line.sh, t/lex-line: Adjust and extend. * NEWS, THANKS: Update. 2012-05-16 Stefano Lattarini ylwrap: preparatory refactoring This commit should cause no semantic change in the ylwrap behaviour. It will only be needed in light of a future change. See: * lib/ylwrap (get_dirname, quote_for_sed): New functions, factoring out some non-trivial code. Use them where appropriate. 2012-05-16 Stefano Lattarini yacc tests: avoid a spurious failure with Sun C++ 5.9 * t/yacc-cxx.sh (parse1.yy): When calling the 'getchar' function declared in the #included , fully qualify it as std::getchar', to avoid Sun C++ 5.9 erroring out with: "parse1.yy", line 5: Error: The function "getc" must have a prototype. * t/yacc-clean-cxx.sh (sub1/parsefoo.yxx): Likewise. 2012-05-16 Stefano Lattarini self tests: cater for /bin/ksh symlinked to Zsh * t/self-check-reexec.tap: When searching for a suitable non-Bash shells, be sure to reject any shell that is Zsh "in disguise" (as can be found on some Debian systems, where /bin/ksh can be symlinked to /bin/zsh4). This is required because our testsuite does not support older versions of Zsh, and that was causing the test to fail in the setup just described. 2012-05-16 Stefano Lattarini tests: fix spurious failures due to dpkg install-info * t/install-info-dir.sh: Skip some checks if 'install-info' is the one from dpkg, not the one from GNU info; the former might try to create files in '/var/backups/', causing spurious failures like this for any non-root user: install-info(.../install-info-dir.dir/_inst/info/foo.info): \ creating new section `Dummy utilities' cp: cannot create regular file `/var/backups/infodir.bak': \ Permission denied install-info(.../install-info-dir.dir/_inst/info/foo.info): \ could not backup .../install-info-dir.dir/_inst/info/dir in \ /var/backups/infodir.bak: No such file or directory 2012-05-13 Stefano Lattarini Merge branch 'maint' * maint: tests: fix spurious failure due to i18n issue tests: add few missing 'cc' and 'c++' requirements 2012-05-13 Stefano Lattarini tests: fix spurious failure due to i18n issue Fixes automake bug#11452. * t/parallel-tests-fork-bomb.sh: Export LANG, LANGUAGE and LC_ALL to 'C', to ensure error messages will be in English, and thus avoiding possible false negatives in our grepping of them. 2012-05-10 Stefano Lattarini tests: add few missing 'cc' and 'c++' requirements Without that requirements, the configure-time overrides of CC and CXX wouldn't be honored in the affected tests. * t/silent-yacc.sh ($required): Require 'cc'. * t/silent-yacc-headers.sh: Likewise. * t/silent-lex.sh: Likewise. * t/lex-clean.sh: Likewise. * t/lex-depend.sh: Likewise. * t/lex-line.sh: Likewise. * t/lex-depend.sh: Likewise. * t/lex-pr204.sh: Likewise. * t/yacc-deleted-headers.sh: Likewise. * t/yacc-line.sh: Likewise. * t/yacc-depend.sh: Likewise. * t/yacc-depend2.sh: Likewise. * t/yacc-dist-nobuild-subdir.sh: Likewise. * t/yacc-bison-skeleton.sh: Likewise. * t/yacc-bison-skeleton-cxx.sh ($required): Require 'c++'. * t/yacc-clean-cxx.sh: Likewise. * t/yacc-d-cxx.sh: Likewise. * t/yacc-cxx.sh: Likewise. * t/yacc-mix-c-cxx.sh ($required): Require 'cc' and 'c++'. 2012-05-08 Stefano Lattarini fixup: s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/ in 't/confsub.sh' Issue introduced in the recent merge 'v1.12-101-g12405c9'. 2012-05-08 Stefano Lattarini Merge branch 'maint' * maint: tests: fix a spurious failure with dash test defs: fix indentation (cosmetic change) tests: remove obsolete uses of $sh_errexit_works configure: search a sturdy POSIX shell to be used in the testsuite tests: shell running test scripts is now named AM_TEST_RUNNER_SHELL fixup: distribute t/README init: warn against obsolete usage of AM_INIT_AUTOMAKE 2012-05-07 Stefano Lattarini Merge branch 'testsuite-saner-shell' into maint * testsuite-saner-shell: tests: fix a spurious failure with dash test defs: fix indentation (cosmetic change) tests: remove obsolete uses of $sh_errexit_works configure: search a sturdy POSIX shell to be used in the testsuite tests: shell running test scripts is now named AM_TEST_RUNNER_SHELL 2012-05-07 Stefano Lattarini tests: fix a spurious failure with dash The dash shell, at least version 0.5.5.1, doesn't always bail out with a syntax error when a stray "fi" in encountered: $ dash -c ":; fi"; echo stat = $? stat = 0 See also the relevant bug report: This behaviour was causing a spurious error in our testsuite. Fix it. * t/self-check-exit.tap: Use a stray parentheses rather than a stray 'fi' to trigger a syntax error. 2012-05-07 Stefano Lattarini test defs: fix indentation (cosmetic change) * defs (exit trap): Fix indentation left botched by previous patch 'v1.11b-51-g626bf65'. 2012-05-07 Stefano Lattarini tests: remove obsolete uses of $sh_errexit_works After the last changes, configure will ensure that the shell selected to run the test scripts can correctly propagate exit status to the exit trap when 'set -e' is in effect. * configure.ac (sh_errexit_works): Do not AC_SUBST it anymore. * defs-static.in (sh_errexit_works): Do not initialize from the AC_SUBST value anymore. * defs (trap): Trap the EXIT signal unconditionally. * t/self-check-explicit-skips.sh: Do not skip the test if '$sh_errexit_works' is != "yes", this check doesn't make sense anymore. * t/self-check-cleanup.tap: Likewise. * t/self-check-exit.tap: Assume the exit trap is always installed by ./defs. 2012-05-07 Stefano Lattarini configure: search a sturdy POSIX shell to be used in the testsuite * configure.ac: Add code (partially inspired to checks in gnulib's 'tests/init.sh') to search for a good-enough, not-buggy POSIX/XSI shell to be used in our testsuite. Accordingly AC_SUBSTitute the variable 'AM_TEST_RUNNER_SHELL'. * NEWS: Update. 2012-05-07 Stefano Lattarini tests: shell running test scripts is now named AM_TEST_RUNNER_SHELL This is just a preparatory refactoring for future changes. * configure.ac (AM_TEST_RUNNER_SHELL): New variable, defined to $SHELL', and AC_SUBST'd. * Makefile.am (LOG_COMPILER): Redefine from $(SHELL) to $(AM_TEST_RUNNER_SHELL). * defs: Adjust to use $AM_TEST_RUNNER_SHELL instead of $CONFIG_SHELL and/or $SHELL, where appropriate. Minor opportunistic changes. * t/self-check-explicit-skips.sh: Likewise. * t/self-check-sanity.sh: Likewise. * t/self-check-tap.sh: Likewise. * t/self-check-cleanup.tap: Likewise. * t/self-check-dir.tap: Likewise. * t/self-check-env-sanitize.tap: Likewise. * t/self-check-exit.tap: Likewise. * t/self-check-me.tap: Likewise. * t/self-check-reexec.tap: Likewise. 2012-05-06 Stefano Lattarini fixup: distribute t/README Since commit v1.11-2128-g8e02441 of 2012-04-06, "maint: no more make recursion in Automake's build system" we haven't been distributing the testsuite README file in our release tarballs. Oops. * Makefile.am (EXTRA_DIST): Add 't/README'. 2012-05-06 Stefano Lattarini init: warn against obsolete usage of AM_INIT_AUTOMAKE Support for the two- and three-arguments invocation forms of the AM_INIT_AUTOMAKE macro, as in: AM_INIT_AUTOMAKE($PACKAGE, $VERSION) or: AM_INIT_AUTOMAKE($PACKAGE, $VERSION, NODEFINE) will be removed in the next major Automake release (1.13). Such usages have already been deprecated in the documentation starting from commit v1.11-2015-ge99690a of 23-02-2012 "docs, news: document planned removal of obsolete macros and features". We now start giving runtime warnings as well (in the 'obsolete' category). * NEWS: Update. * m4/init.m4 (AM_INIT_AUTOMAKE): Report the two- and three-arguments form invocation. * automake.in (scan_autoconf_traces): Likewise. * doc/automake.texi: Minor adjustments. Add an @anchor to the location where it's described how to modernize outdated invocation of AM_INIT_AUTOMAKE, so that it can be referenced from automake warning/error messages. * t/aminit-moreargs-deprecation.sh: New test. * tests/list-of-tests.mk: Add it. * tests/ac-output-old.tap: Adjust by calling automake with the warnings in the 'obsolete' category disabled. * t/backcompat.test: Likewise. * t/backcompat3.test: Likewise. * t/backcompat5.test: Likewise. * t/backcompat6.test: Likewise. * t/version.test: Likewise. * t/version2.test: Likewise. * t/pr2.test: Modernize style of AC_INIT and AM_INIT_AUTOMAKE invocations, and use proper m4 quoting. * t/pr87.test: Likewise. * t/confsub.test: Likewise. * t/install2.test: Likewise. 2012-05-06 Stefano Lattarini Merge branch 'maint' * maint: m4: prepend m4 builtins with "m4_" docs: fix clumsy grammar in the scripts-based testsuite chapter 2012-05-06 Stefano Lattarini m4: prepend m4 builtins with "m4_" The comments in 'lib/autoconf/autoconf.m4' from Autoconf 2.69 read: We discourage the use of the non prefixed macro names: M4sugar maps all the builtins into 'm4_'. Autoconf has been converted to these names too. But users may still depend upon these, so reestablish them. Alas, in our init.m4 files, we were still using m4 builtins without prefixing them with "m4_". Not nice for a package that is one of the major clients of Autoconf, and an integral part of the GNU Autotools! Fix the issue. * m4/init.m4 (AM_INIT_AUTOMAKE): Use 'm4_define' and 'm4_defn' instead of 'define' and 'defn'. 2012-05-05 Stefano Lattarini require: autoconf >= 2.65; related simplifications The new support for Objective C++ (to be added in Automake 1.12.1) can be simplified if we assume Autoconf version 2.65 or later (2.65 being the version that introduced support for Objective C++). Since such an Autoconf version is two and half years old now (and will likely be almost three years old when Automake 1.13 gets released), requiring it is acceptable. This will also simplify testing and maintenance of Automake, because we'll need to test with fewer Autoconf version, and possibly rely on new Autoconf features. * NEWS (Version requirements): Automake 1.13 will require Autoconf 2.65 or later. * configure.ac ($required_autoconf_version): Bump to 2.65. * m4/init.m4 (AM_INIT_AUTOMAKE): Require Autoconf >= 2.65. Assume AC_PROG_OBJCXX is unconditionally defined. * m4/depout.m4: Adjust a comment about a nugget of defensive programming. * t/ext.sh: Assume that AC_PROG_OBJCXX is unconditionally defined, and that we are using Autoconf >= 2.65. Related simplifications. * t/objc-megademo.sh: Likewise. * t/objcxx-basic.sh: Likewise. * t/objcxx-deps.sh: Likewise. * t/objcxx-flags.sh: Likewise. * t/objcxx-minidemo.sh: Likewise. * t/nodep2.sh: Likewise. * t/backcompat3.sh: Assume AC_INIT accepts an URL argument. * t/depend5.sh: Adjust a comment. * syntax-checks.mk (sc_test_names): Delete this check as now useless: autoconf >= 2.65 (>= 2.63, actually) can handle arguments to AC_INIT that contain or are m4 builtins or predefined macros. (m4_builtin): Delete this now-useless variable as well, was used only by the check above. (syntax_check_rules): Update. 2012-05-05 Nick Alcock (tiny change) docs: fix clumsy grammar in the scripts-based testsuite chapter * doc/automake.texi (Scripts-based Testsuites): "We'll have later" is a rare example of English in the Automake manual clearly not written by a native English-speaker: while comprehensible, it can be better formulated. 2012-05-05 Stefano Lattarini Merge branch 'maint' * maint: tests: use append mode to capture parallel make output parallel-tests: separate different logs with an empty line 2012-05-05 Stefano Lattarini tests: use append mode to capture parallel make output This should fix the spurious failure reported in automake bug#11413. This is due to the fact that the redirected output of parallel make can racily loose lines. For example, if GNU make (3.82) is run on a Makefile like this: all = 0 1 2 3 4 5 6 7 8 9 default: $(all) $(all): @sleep 0.$$(($RANDOM % 10)); echo $@ and has its standard output redirected in overwrite-mode to a regular file, it looses a line of that output every 15 runs or so on a Fedora 17 system with 64 ppc64 cores and Linux 3.3.1. Redirection in append mode does not suffer of this problem. See also similar commit 'Release-1-10-280-g6426999' of 2009-03-10, "Use append mode to capture parallel test output", which tackled a similar problem for 't/parallel-tests3.sh' and 't/lisp8.sh'. * t/tap-more.sh: Use append mode for output from "make -j", to avoid dropped lines. * t/parallel-tests3.sh, t/lisp8.sh: Enhance comments. 2012-05-05 Stefano Lattarini Merge branch 'parallel-tests-performance' into maint * parallel-tests-performance: parallel-tests: separate different logs with an empty line 2012-05-05 Stefano Lattarini parallel-tests: separate different logs with an empty line After commit v1.12-21-g5eeb366 "parallel-tests: optimize global log creation", the log files copied in the global log are not anymore separated by a blank line, causing unclear output like this: FAIL: test1 =========== output from test 1 FAIL: test2 =========== output from test 2 where we would want something like this: FAIL: test1 =========== output from test 1 FAIL: test2 =========== output from test 2 Fix this regression. * lib/am/check.am (am__create_global_log): Print an extra empty line after having displayed the content of a '.log' file. 2012-05-05 Stefano Lattarini Merge branch 'maint' * maint: maintcheck: avoid a couple of spurious failures maintcheck: reduce code duplication, increase coverage 2012-05-05 Stefano Lattarini maintcheck: avoid a couple of spurious failures * t/objcxx-deps.sh, t/objcxx-minidemo.sh: In C++ files, use "std::cout <<", not "cout <<", to avoid triggering a spurious failure by the syntax check 'sc_tests_here_document_format'. Cherry-picked from yesterday's commit v1.12-81-g7f3f467, that had erroneously been applied to 'master' only rather than to 'maint'. 2012-05-05 Stefano Lattarini maintcheck: reduce code duplication, increase coverage * syntax-checks.mk: Move ... (sc_tests_plain_aclocal, sc_tests_plain_autoconf, sc_tests_plain_perl, sc_tests_plain_autoupdate, sc_tests_plain_automake, sc_tests_plain_make, sc_tests_plain_autoheader, sc_tests_plain_autoreconf, sc_tests_plain_autom4te): ... all these targets ... (sc_tests_plain_egrep_fgrep): ... and part of this target ... (sc_tests_plain_check_rules): ... into this variable, and reimplement their recipes ... ($(sc_tests_plain_check_rules)): ... with this static pattern rule. Enhance the coverage they offer a little since we are at it. (sc_m4_am_plain_egrep_fgrep): New rule, the part of the old 'sc_tests_plain_egrep_fgrep' rule that checked for use of 'fgrep' and 'egrep' in *.am and *.m4 fragments (rather than in test scripts). (syntax_check_rules): Update. * t/dist-formats.tap: Fix bad use of "make" instead of "$MAKE" revealed by the extra coverage. * t/cond5.sh, t/auxdir-autodetect.sh: Cosmetic changes to avoid spuriously triggering the maintainer checks due to the enhanced coverage. 2012-05-04 Stefano Lattarini maintcheck: avoid a couple of spurious failures * t/objcxx-deps.sh, t/objcxx-minidemo.sh: In C++ files, use "std::cout <<", not "cout <<", to avoid triggering a spurious failure by the syntax check 'sc_tests_here_document_format'. 2012-05-04 Stefano Lattarini Merge branch 'maint' * maint: tests: avoid spurious failure on missing Obj C/C++ compiler objc, objc++: test support for compilation flags objc, objc++: add stress test objc, objc++: test automatic dependency tracking objc: reorganize basic tests objc++, objc: add first semantic tests objc++: add first basic test news: announce initial support for Objective C++ objc++: test support for '.mm' suffix in _SOURCES entries objc++: add documentation objc++: initial support for Objective C++ 2012-05-04 Stefano Lattarini Merge branch 'objc++' into maint * objc++: tests: avoid spurious failure on missing Obj C/C++ compiler 2012-05-04 Stefano Lattarini tests: avoid spurious failure on missing Obj C/C++ compiler * t/objc-megademo.sh: Arrange the test to SKIP, not FAIL, if there is no Objective C or no Objective C++ compiler. Since we are at it, remove some checks that were actually testing Autoconf (not Automake) behaviour. 2012-05-04 Stefano Lattarini Merge branch 'objc++' into maint * objc++: objc, objc++: test support for compilation flags objc, objc++: add stress test objc, objc++: test automatic dependency tracking objc: reorganize basic tests objc++, objc: add first semantic tests objc++: add first basic test news: announce initial support for Objective C++ objc++: test support for '.mm' suffix in _SOURCES entries objc++: add documentation objc++: initial support for Objective C++ 2012-05-03 Stefano Lattarini dist: don't bother putting README first in $(DIST_COMMON) Comments on some of our automake-time pre-processing of $(DIST_COMMON) said that it was done in order to "put README first because it then becomes easier to make a Usenet-compliant shar file". But such a format is hardly relevant anymore, and not worth the (albeit small) added complexity. * automake.in (handle_dist): Don't sort @dist_common. (for_dist_common): Delete this function, is not used anymore. * lib/am/distdir.am (DISTFILES): Remove obsolete comment. * t/distcom4.sh: Adjust. 2012-05-02 Stefano Lattarini Merge branch 'always-support-silent-rules' * always-support-silent-rules: silent rules: support for them is always active now 2012-05-02 Stefano Lattarini Merge branch 'maint' * maint: news: document improvement in parallel-tests performance tests: fix spurious failure due to autom4te caching news: fix typos aclocal: error out again on unrecognized arguments parallel-tests: save few forks when possible parallel-tests: optimize global log creation parallel-tests: optimize 'recheck' target for speed coverage: add performance tests on some parallel-tests aspects 2012-05-02 Stefano Lattarini news: document improvement in parallel-tests performance * NEWS: Document the improved performances of the parallel-tests targets 'check' and 'recheck'. See recent commits: - v1.12-20-gf5733aa of 2012-04-26, "parallel-tests: optimize 'recheck' target for speed" - v1.12-21-g5eeb366 of 2012-02-26, "parallel-tests: optimize global log creation" - v1.12-22-g4c2dd6e of 2012-04-30, "parallel-tests: save few forks when possible" 2012-05-02 Stefano Lattarini tests: fix spurious failure due to autom4te caching Reported by Peter Breitenlohner : * t/suffix.sh: Remove stale autom4te.cache directories, to prevent racy, spurious failures (using 'aclocal --force' was not enough, since the cache was still picked up by the following automake call). 2012-05-02 Stefano Lattarini Peter Breitenlohner objc, objc++: test support for compilation flags * t/objc-flags.sh, t/objcxx-flags.sh: New tests. * t/list-of-tests.mk: Add them. 2012-05-02 Peter Breitenlohner objc, objc++: add stress test * t/objc-megademo.sh: New test, trying out a package using all of C, C++, Objective C and Objective C++ at the same time. * t/list-of-tests.mk: Add it. 2012-05-02 Stefano Lattarini objc, objc++: test automatic dependency tracking * t/objc-deps.sh, t/objcxx-deps.sh: New tests. * t/list-of-tests.mk: Add them. 2012-05-02 Stefano Lattarini objc: reorganize basic tests * t/objc.sh, t/objc2.sh: Removed, merged into ... * t/objc-basic.sh: ... this new test. * t/objcxx-basic.sh: Add reference to new sister test. * t/list-of-tests.mk: Update. 2012-05-02 Stefano Lattarini Peter Breitenlohner objc++, objc: add first semantic tests * t/objcxx-minidemo.sh: New test. * t/objc-minidemo.sh: Likewise. * t/list-of-tests.mk: Add them. 2012-05-02 Peter Breitenlohner objc++: add first basic test * t/objcxx-basic.sh: New test. * t/list-of-tests.mk: Add it. 2012-05-02 Stefano Lattarini Merge branch 'parallel-tests-performance' into maint * parallel-tests-performance: parallel-tests: save few forks when possible parallel-tests: optimize global log creation parallel-tests: optimize 'recheck' target for speed coverage: add performance tests on some parallel-tests aspects 2012-05-02 Stefano Lattarini news: fix typos * NEWS (Bugs fixed in 1.12.1): Fix botched indentation of an entry, add a forgotten "and", remove a redundant "the". 2012-05-02 Stefano Lattarini aclocal: error out again on unrecognized arguments Starting from commit v1.11-662-g52246cc of 2102-02-18, "cmdline parsing: move into a dedicated perl module", aclocal has been silently ignoring non-option arguments instead of correctly reporting them. Fix this regression. * t/aclocal.sh: Update to catch the regression. * aclocal.in (parse_arguments): Explicitly reject non-option arguments. * NEWS: Update. 2012-05-02 Stefano Lattarini Merge branch 'cygnus-remove' * cygnus-remove: cygnus: remove support for Cygnus-style trees 2012-05-02 Stefano Lattarini Merge branch 'maint' * maint: cosmetics: fix typo in aclocal m4 directory README cygnus: warn when it's used (flagged as 'obsolete' now) 2012-05-02 Stefano Lattarini Merge branch 'cygnus-deprecate' into maint * cygnus-deprecate: cygnus: warn when it's used (flagged as 'obsolete' now) 2012-05-01 Andrew Eikum (tiny change) cosmetics: fix typo in aclocal m4 directory README * m4/acdir/README: Add forgotten "if". * THANKS: Update. 2012-05-01 Stefano Lattarini silent rules: support for them is always active now Before this change, support for silent rules was optional and activated only if the 'silent-rules' option was specified. The rationale behind that behaviour was that the silent-rules machinery originally only worked with make implementations supporting nested variables expansions, which isn't (or wasn't) a POSIX-specified features; so that packages wanting to be "extra-portable" couldn't use the silent-rules machinery at all. But after Paul Eggert's commit 'v1.11-598-g8493499' of 25-12-2011, "silent-rules: fallback for makes without nested vars" (motivated by automake bugs #9928 and #10237), Makefiles generated when the 'silent-rules' option is enabled can work also with those make implementations that don't support nested variables expansion (albeit the configure-time selected verbosity cannot be overridden at make runtime in such case). In light of that, and since silent rules are disabled by default even when the 'silent-rules' option is given (unless the developer explicitly makes them enabled by default be calling "AM_SILENT_RULES([yes])" in configure.ac), we can now have the support for silent rules always enabled. The 'silent-rules' option will thus become a no-op, but will reaming a valid option for the time being, for better backward-compatibility. A collateral effect of this change is that the use of the 'silent-rules' option will not anymore automatically disable the warnings in the 'portability-recursive' category. The present change is basically a backport of the Automake-NG commit 'v1.11d-75-g61ca923' of 19-04-2012, "[ng] silent rules: support for them is always active now". Stemmed by this thread on the Automake-NG list: * automake.in: Enable silent-rules machinery unconditionally. Reword some comments. Do not switch off warnings in the category 'portability-recursive' anymore if the 'silent-rules' option is given. * m4/init.m4: Call 'AC_REQUIRE' on 'AM_SILENT_RULES' unconditionally. * lib/Automake/Options.pm: Recognize 'silent-rules' as a dummy option. Do not bother anymore checking that it is set in 'configure.ac'. * t/silent.sh: Remove now-redundant calls to AM_SILENT_RULES. * t/silent2.sh: Likewise. * t/silent3.sh: Likewise. * t/silent4.sh: Likewise. * t/silent8.sh: Likewise. * t/silent9.sh: Likewise. * t/silent-lex.sh: Likewise. * t/silent-many-gcc.sh: Likewise. * t/silent-many-generic.sh: Likewise. * t/silent-yacc-headers.sh: Likewise. * t/silent-yacc.sh: Likewise. * t/silentcxx-gcc.sh: Likewise. * t/silentcxx.sh: Likewise. * t/silentf77.sh: Likewise. * t/silentf90.sh: Likewise. * t/help-silent.sh: Likewise. * t/silent-configsite.sh: Likewise, and other minor adjustments. * t/silent7.sh: Likewise. Also, extend to check that silent rules are disabled by default, and remove obsoleted checks about the 'silent-rules' option being rejected in 'AUTOMAKE_OPTIONS'. * t/silent6.sh: Remove now-redundant calls to 'AM_SILENT_RULES'. Call automake with '-Wno-portability-recursive'. Remove other obsoleted checks. * t/dollarvar.sh: Don't expect the use of 'AM_SILENT_RULES' in 'configure.ac' to disable warning in the 'portability-recursive' category anymore. * t/compile_f_c_cxx.sh: Adjust to avoid a spurious failure. * t/silent-amopts.sh: Remove as obsolete. * t/silent-nowarn.sh: Likewise. * t/list-of-tests.mk: Adjust. * NEWS: Update. * doc/automake.texi: Update and simplify accordingly. * configure.ac (AM_INIT_AUTOMAKE): Remove 'silent-rules' option. 2012-05-01 Stefano Lattarini Merge branch 'maint' * maint: fixup: botched edit in bootstrap.sh 2012-05-01 Stefano Lattarini fixup: botched edit in bootstrap.sh * bootstrap.sh (dosubst): Fix botched option ("G" instead of "g") in a sed "s///" expression. Issue introduced in today's commit 'v1.12-17-g5f810d0'. 2012-05-01 Stefano Lattarini Merge branch 'maint' * maint: news: fix confusing wording news: fixed weaknesses in build system and testsuite bootstrap: consistently use correct copyright year fixup: remove leftover "TERM=ansi" definition in 't/color.sh' 2012-05-01 Stefano Lattarini news: fix confusing wording Reported by Dave Hart. * NEWS (Future backward-incompatibilities): Fix possibly confusing wording about the upcoming requirement of Autoconf >= 2.65. 2012-05-01 Stefano Lattarini news: fixed weaknesses in build system and testsuite * NEWS (Bugs fixed in 1.12.1): Report that several weaknesses in the Automake's own build system and test suite have been fixed. See for example recent commits: - commit v1.12-5-geb7e8f3, for bug#11345 - commit v1.12-5-g63e07a9, for bug#11346 - commit v1.12-5-gf31fe4f - commit v1.12-10-gab14841 - commit v1.12-19-g807f3cf, for bug#11369 - commit v1.12-20-gd330368, for bug#11369 - bug#11387, pre-emptively solved by commit v1.12-4-g444618b 2012-05-01 Stefano Lattarini bootstrap: consistently use correct copyright year Suggested by Peter Johansson in the discussion about automake bug#11356: * boostrap.sh (dosubst): Don't initialize the substituted value for the release year from the current year (using `date +%Y`); instead, do it through ... ($RELEASE_YEAR): ... this new statically-defined variable. To ensure it won't get out-of-sync, it will be automatically updated ... * Makefile.am (update-copyright): ... by this target's recipe. Since are at it, fix a botched output redirection for an error message, i.e., use ">&2" instead of ">&1". 2012-04-30 Stefano Lattarini fixup: remove leftover "TERM=ansi" definition in 't/color.sh' It should have actually be removed in commit 'v1.12-23-gb105d40'. 2012-04-30 Stefano Lattarini parallel-tests: save few forks when possible * lib/am/check.am (am__check_pre): Save some forks, by analyzing more carefully the value of '$@' to decide how to extract its dirname part, and whether that should be created as a directory. 2012-04-30 Stefano Lattarini Merge branch 'maint' * maint: news: Automake 1.13 will require Autoconf >= 2.65 news: put planned future backward-incompatibilities on top readme: update INSTALL to latest version from Autoconf sync: some auxiliary files synced from upstream hacking: copyright notices must be updated before releasing color-tests: coloring can be forced on non-ANSI terminals as well 2012-04-30 Stefano Lattarini news: Automake 1.13 will require Autoconf >= 2.65 Autoconf 2.65 is almost three years old now, so requiring it is acceptable. Also, the soon-to-appear support for Objective C++ in Automake will be simplified if we can assume that Autoconf version (which is the one that introduced support for Objective C++). * NEWS (Planned future backward-incompatibilities): Automake 1.13 will require Autoconf 2.65 or later. 2012-04-30 Stefano Lattarini news: put planned future backward-incompatibilities on top * NEWS (New in 1.12): List of planned future backward-incompatibilities moved from here ... (New in 1.12.1): ... to here. 2012-04-30 Stefano Lattarini readme: update INSTALL to latest version from Autoconf * INSTALL: Updated to the version coming with Autoconf 2.69. This is warranted now that we use and require that same Autoconf version in our build system. 2012-04-30 Stefano Lattarini sync: some auxiliary files synced from upstream * lib/config.sub: Synced from upstream, by "make fetch". 2012-04-30 Stefano Lattarini hacking: copyright notices must be updated before releasing * HACKING (Release procedure): Suggest to use "make update-copyright". 2012-04-30 Stefano Lattarini color-tests: coloring can be forced on non-ANSI terminals as well Before this change, colorization of testsuite output was suppressed whenever the terminal was recognized to be a "dumb" one, incapable of handling ANSI coloring (i.e., when the environment variable TERM had a value of "dumb"). This happened even when the AM_COLOR_TESTS variable was set to a value of "always". Such a behaviour was suboptimal and slightly confusing; in fact, if a user wants to force coloring of testsuite output that is being redirected to a regular file, he should be able to do so even if his terminal is not capable of handling ANSI colors -- in fact, such terminal wouldn't be involved with the testsuite output in any way, so why should it be allowed to influence it? Thus, we now enable coloring of test output whenever AM_COLOR_TESTS is set to "always", irrespective of the value of the TERM environment variable. * NEWS: Update. * lib/am/check.am [%?COLOR%] (am__tty_colors): Activate colorization of testsuite output whenever AM_COLOR_TESTS has the value of "always". * t/ax/tap-summary-aux.sh: Export the TERM environment variable to "dumb" when forcing colorization of the testsuite output; this should *not* prevent such colorization from taking place, and we want to check that this expectation really holds. * t/ax/testsuite-summary-checks.sh: Likewise. * t/color.sh: Likewise, and adjust some grepping checks. * t/tap-color.sh: Likewise. Also, remove redundant "make check" invocation since we are at it. * t/color2.sh: Likewise, and check that exporting TERM=dumb actually prevents testsuite output colorization when AM_COLOR_TESTS is unset. * t/parallel-tests-reset-term.sh: Relax, to prevent it from failing spuriously due to the new semantic. 2012-04-30 Stefano Lattarini cygnus: remove support for Cygnus-style trees Support for "Cygnus-style" tree as enabled by the 'cygnus' option has been deprecated in the documentation and with runtime warning since Automake 1.12.1. It's now time to remove it. Closes automake bug#11034. * lib/Automake/Options.pm (_process_option_list): Issue a proper error when the 'cygnus' option is seen. * automake.in: Don't handle the 'cygnus' option anymore. * docs/automake.texi: Remove references to cygnus option and Cygnus-style trees. * lib/am/dejagnu.am, lib/am/texinfos.am: Drop special setups for cygnus mode. * NEWS: Update. * t/cygnus-no-more.sh: New test. * t/flavor.sh: Adjust. * t/cygnus-deprecation.sh: Remove. * t/cygnus-check-without-all.sh: Likewise. * t/cygnus-requires-maintainer-mode.sh: Likewise. * t/cygnus-dependency-tracking.sh: Likewise. * t/cygnus-imply-foreign.sh: Likewise. * t/cygnus-no-installinfo.sh: Likewise. * t/cygnus-no-dist.sh: Likewise. * t/clean2.sh: Likewise. * t/txinfo5.sh: Likewise. * t/txinfo5b.sh: Likewise. * t/list-of-tests.mk: Update. 2012-04-30 Stefano Lattarini cygnus: warn when it's used (flagged as 'obsolete' now) Support for "Cygnus-style" tree as enabled by the 'cygnus' option is now reported as obsolete when the warnings in the 'obsolete' category are enabled. See automake bug#11034. * automake.in (check_cygnus): Report the use of 'cygnus' mode as obsolete. * NEWS: Update. * docs/automake.texi: Minor adjustments. * t/cygnus-deprecation.sh: New test. * t/list-of-tests.mk: Add it. * tests/cygnus-check-without-all.sh: Adjust by calling automake with the warnings in the 'obsolete' category disabled. * t/cygnus-requires-maintainer-mode.sh: Likewise. * t/cygnus-dependency-tracking.sh: Likewise. * t/cygnus-imply-foreign.sh: Likewise. * t/cygnus-no-installinfo.sh: Likewise. * t/cygnus-no-dist.sh: Likewise. * t/clean2.sh: Likewise. * t/flavor.sh: Likewise. * t/txinfo5.sh: Likewise. * t/txinfo5b.sh: Likewise. * t/library.sh: Remove use of 'cygnus' and 'dejagnu' options, and of AM_MAINTAINER_MODE macro. 2012-04-30 Stefano Lattarini parallel-tests: optimize global log creation With this change, the time required to execute the test case 'testsuite-summary-speed.sh' has dropped as follows: + Slow Debian i686 system, 1 core x 1.5 GHz, 768 MB of RAM, GNU make 3.81: - 1 run: 4 minutes => 30/40 seconds + Fast Solaris 10 i686 system, 4 cores x 3 GHz, 20 GB of RAM, Solaris CCS make: - 2 runs: 6 minutes => 30 seconds + Very fast Fedora ppc64 system, 64 cores x 3.5 GHz, 64 GB of RAM, GNU make 3.82: - 5 runs: 7 minutes => 1 minute and 10 seconds * lib/am/check.am ($(TEST_SUITE_LOG)): Optimize for speed, by avoiding lots of forks with the help of ... (am__create_global_log): ... this new internal variable, basically defining a smart awk program, and ... (am__global_test_result_rx, am__copy_in_global_log_rx): ... these new internal variables, used by the one above. (am__rst_section): Remove as obsolete * t/rst-formatting.trs: Remove. * t/list-of-tests.mk: Update. * t/testsuite-summary-count-many.sh: Improve its stress testing by using 1 million tests rather than just 5 thousands: we can afford this with our new optimization, and still have the test completed in a reasonable time. 2012-04-30 Stefano Lattarini parallel-tests: optimize 'recheck' target for speed With this change, the time required to execute the test case 'testsuite-recheck-speed.sh' has dropped as follows: + Slow Debian i686 system, 1 core x 1.5 GHz, 768 MB of RAM, GNU make 3.81: - 1 run: 6 minutes => 40 seconds + Fast Solaris 10 i686 system, 4 cores x 3 GHz, 20 GB of RAM, Solaris CCS make: - 4 runs: 3 minutes => 1 minute + Very fast Fedora ppc64 system, 64 cores x 3.5 GHz, 64 GB of RAM, GNU make 3.82: - 5 runs: 4 minutes => 1 minute 30 seconds * lib/am/check.am (recheck): Optimize for speed, by avoiding lots of forks with the help of ... (am__list_recheck_tests): ... this new internal variable, basically defining a proper awk program, and ... (am__recheck_rx): ... this other new internal variable, used by the one above. * t/test-trs-recover2.sh: Relax by not checking for a very corner case ('.log' and '.trs' files both unreadable) that we don't handle anymore. 2012-04-30 Stefano Lattarini news: announce initial support for Objective C++ 2012-04-30 Peter Breitenlohner Stefano Lattarini objc++: test support for '.mm' suffix in _SOURCES entries * t/ext.sh: Enhance by adding a file with the '.mm' suffix in the 'foo_SOURCES' definition. * t/nodep2.sh: Likewise. 2012-04-30 Stefano Lattarini coverage: add performance tests on some parallel-tests aspects * t/testsuite-recheck-speed.sh: New test. * t/testsuite-summary-speed.sh: Likewise. * t/list-of-tests.mk: Update. The new tests are not meant to PASS/FAIL, but rather to help us to obtain quantitative measurements of the performance improvements offered by soon-to-appear optimization patches. Timing before the optimizations implemented by following patches: + Slow Debian i686 system, 1 core x 1.5 GHz, 768 MB of RAM, GNU make 3.81: - testsuite-recheck-speed.sh: 1 run, ~ 6 minutes - testsuite-summary-speed.sh: 1 run, ~ 4 minutes + Fast Solaris 10 i686 system, 4 cores x 3 GHz, 20 GB of RAM, Solaris CCS make: - testsuite-recheck-speed.sh: 4 runs, ~ 3 minutes - testsuite-summary-speed.sh: 2 runs, ~ 6 minutes + Very fast Fedora ppc64 system, 64 cores x 3.5 GHz, 64 GB of RAM, GNU make 3.82: - testsuite-recheck-speed.sh: 5 runs, ~ 4 minutes - testsuite-summary-speed.sh: 5 runs, ~ 7 minutes 2012-04-30 Peter Breitenlohner objc++: add documentation * doc/automake.texi (Objective C++ Support): New node. (How the Linker is Chosen, Support for Other Languages): Adjust. 2012-04-30 Peter Breitenlohner objc++: initial support for Objective C++ Original thread (dating back to almost three years ago): * automake.in: Register new language 'objcxx'. (lang_objcxx_rewrite): New subroutine. (resolve_linker): Add OBJCXXLINK. (%_am_macro_for_cond): Add am__fastdepOBJCXX and AC_PROG_OBJCXX. (%_ac_macro_for_var): Add OBJCXX and OBJCXXFLAGS. * m4/depend.m4 (_AM_DEPENDENCIES): Add OBJCXX. * m4/init.m4 (AM_INIT_AUTOMAKE): Add AC_PROG_OBJCXX hook. 2012-04-29 Stefano Lattarini Merge branch 'mkdirp-remove' into master * mkdirp-remove: AM_PROG_MKDIR_P: remove as obsolete 2012-04-29 Stefano Lattarini Merge branch 'maint' * maint: AM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13 2012-04-29 Stefano Lattarini Merge branch 'mkdirp-deprecate' into maint * mkdirp-deprecate: AM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13 2012-04-29 Stefano Lattarini Merge branch 'maint' * maint: tests: root can write on files without write perms; cater for this tests: require lex, not yacc, in a lex test case maint: fix a comment typo 2012-04-28 Stefano Lattarini tests: root can write on files without write perms; cater for this Fixes last part of automake bug#11369. * t/dist-readonly.sh ($required): Add 'non-root'. 2012-04-28 Stefano Lattarini tests: require lex, not yacc, in a lex test case See automake bug#11369. * t/lex-clean.sh ($required): Require 'lex', not 'yacc'. 2012-04-28 Stefano Lattarini AM_PROG_MKDIR_P: remove as obsolete Support for the obsolescent 'AM_PROG_MKDIR_P' m4 macro (and its output variable '$(mkdir_p)') has in the documentation and with runtime warning since Automake 1.12.1. It's now time to remove it. * automake.in (scan_autoconf_traces): Remove special handling of 'AM_PROG_MKDIR_P'. * m4/mkdirp.m4: Delete. * Makefile.am (dist_automake_ac_DATA): Remove it. * t/mkdirp-deprecation.sh: Delete. * t/list-of-tests.mk: Remove it. * doc/automake.texi: Remove references to the 'AM_MKDIR_P' m4 macro and the '$(mkdir_p)' output variable. * t/gettext-macros.sh: Ensure the gettext-requiring tests will still see the now-removed 'AM_PROG_MKDIR_P' macro as an alias for the 'AC_PROG_MKDIR_P' macro, since even recent versions of gettext uses 'AM_PROG_MKDIR_P' in their '.m4' files. * NEWS: Update. 2012-04-28 Stefano Lattarini AM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13 Support for the obsolescent 'AM_PROG_MKDIR_P' macro (and its output variable '$(mkdir_p)') has already been deprecated in the documentation. It's now time to make its use actively emit warnings in the 'obsolete' category as well. * automake.in (scan_autoconf_traces): Warn about 'AM_PROG_MKDIR_P' obsolescent if that macro is seen. * m4/mkdirp.m4 (AM_PROG_MKDIR_P): Warn about its own obsolescence. * m4/init.m4: Require 'AC_PROG_MKDIR_P', not 'AM_PROG_MKDIR_P'. * t/mkdirp-deprecation.sh: New test. * t/list-of-tests.mk: Add it. * syntax-check.mk (sc_mkdir_p): Delete this check as obsolete. (syntax_check_rules): Remove it. * t/gettext-macros.sh: Ensure the gettext-requiring tests will call aclocal and automake with the 'obsolete' warnings disabled, since even recent versions of gettext used the now-deprecated 'AM_PROG_MKDIR_P' m4 macro. * NEWS: Update. 2012-04-28 Jim Meyering maint: fix a comment typo * configure.ac: Fix typo in comment: s/out/our/ 2012-04-28 Stefano Lattarini Merge branches 'remove-acdir-option' and 'remove-obsolete-m4' * remove-acdir-option: aclocal: remove the --acdir option * remove-obsolete-m4: m4: delete several obsolete macros 2012-04-28 Stefano Lattarini Merge branch 'maint' * maint: fixup: avoid unconditional re-bootstrapping on "make dist" build: ensure release year in copyright notice is up-to-date cosmetics: fix spacing in THANKS readme: explicitly state we use ranges in copyright years bootstrap: add convenience make target automake, aclocal: update copyright year in output 2012-04-28 Stefano Lattarini fixup: avoid unconditional re-bootstrapping on "make dist" Since our 'bootstrap' script is distributed, the 'distdir' target depends on it. But in our GNUmakefile, we also have a 'bootstrap' target declared .PHONY, which when called re-bootstrap the Automake distribution. Thus, whenever we run "make dist", GNU make sees it must remake the 'bootstrap' target (as it is a dependency of the 'distdir' target), and thus ends up re-bootstrapping all the package (because of the .PHONY 'bootstrap' target in GNUmakefile). We fix this issue by renaming our bootstrap script to 'bootstrap.sh'. * bootstrap: Renamed ... * bootstrap.sh: ... to this. * GNUmakefile (bootstrap): Adjust. * Makefile.am (EXTRA_DIST): Likewise. (autodiffs): Likewise. * HACKING: Likewise. 2012-04-28 Stefano Lattarini build: ensure release year in copyright notice is up-to-date From a suggestion by Eric Blake. See automake bug#11356. This is a follow-up to previous patch 'v1.12-12-gb99b5be'. * configure.ac (RELEASE_YEAR): New AC_SUBST'd variable, should hold the value of the current year. * Makefile.am (update-copyright): Be sure to also update the definition of 'RELEASE_YEAR' in configure.ac. * lib/Automake/Config.in ($RELEASE_YEAR): New exported variable, initialized from the value substituted for '@RELEASE_YEAR@'. (@EXPORT): Add it. * automake.in, aclocal.in: Use '$RELEASE_YEAR' (which will be substituted at make time) instead of hard-coding the release year. This should ensure the copyright range in the version message and in the generated files (Makefile.in and aclocal.m4) are automatically kept up-to-date. * bootstrap (dosubst): Update, also substitute '@RELEASE_YEAR@'. 2012-04-28 Stefano Lattarini cosmetics: fix spacing in THANKS * THANKS: Use spaces, not tabs, to separate a reporter's name from his e-mail address. Also, increase such spacing, to allow a more consistent formatting with longer names. 2012-04-28 Stefano Lattarini readme: explicitly state we use ranges in copyright years Reported by Jack Kelly in automake bug#11356. * README: Explicitly state we use ranges in copyright years; this is mandated by the GNU Coding Standards for each package that wants to actually use ranges in copyright years. 2012-04-27 Stefano Lattarini aclocal: remove the --acdir option It not documented in the manual anymore, its use has already been causing a deprecation warning, and its oncoming removal has already been announced in the NEWS file. So let's finally remove it. * aclocal.in (parse_arguments): Don't recognize the '--acdir' option anymore. (handle_acdir_option): Remove subroutine. * configure.ac ($ACLOCAL): Adjust. ($AUTOMAKE): Cosmetic changes, for consistency. * tests/aclocal-acdir.test: Remove usages of the '--acdir' option. * tests/aclocal-print-acdir.test: Likewise. * NEWS: Update. 2012-04-27 Stefano Lattarini bootstrap: add convenience make target Dependencies in the Automake build system are not completely specified (see for example the commit log of recent commit 'v1.12-10-gab14841', "build: avoid too greedy rebuilds in the testsuite"). In fact, some of them cannot even be; for example, Makefile is generated at configure time from Makefile.in, which should be regenerated by our bleeding-edge automake script, which is generated by out Makefile -- specifying the complete chain of dependencies here would bring to a circular dependency issue. For this reason, before testing or deploying a change, we are often forced to perform a full re-bootstrap of the Automake package, to ensure all our files are actually up-to-date. Until now, this has to be done manually, thus causing wasted keystrokes and more possibilities of error. With this change, we introduce a new 'bootstrap' make target to automatize all the (easy) steps of this re-bootstrapping (plus some minor bells & whistles since we are at it). * GNUmakefile: Rewrite to allow an easy bootstrapping and clean rebuild of the whole package, in particular with the help of ... (bootstrap): ... this new target. 2012-04-27 Stefano Lattarini m4: delete several obsolete macros Support for several obsolescent macros has already been deprecated, and their removal already announced in the documentation and in the NEWS file. It's now time to finally remove them. * m4/dmalloc.m4 (fp_WITH_DMALLOC): Don't define anymore. * m4/maintainer.m4 (jm_MAINTAINER_MODE): Likewise. * m4/lispdir.m4 (ud_PATH_LISPDIR): Likewise. * m4/protos.m4 (fp_C_PROTOTYPES): Likewise. * m4/ccstdc.m4: Delete file. * m4/header.m4: Likewise. * m4/obsol-gt.m4: Likewise. * m4/obsol-lt.m4: Likewise. * m4/obsolete.m4: Likewise. * Makefile.am (dist_automake_ac_DATA): Don't list the deleted '.m4' files anymore. * t/confh.sh: Use 'AC_CONFIG_HEADERS' instead of the now-removed AM_CONFIG_HEADER. * t/confh.sh: Likewise. * t/confh4.sh: Likewise. * t/confh6.sh: Likewise. * t/confh7.sh: Likewise. * t/confh8.sh: Likewise. * t/confsub.sh: Likewise. * t/stamph2.sh: Likewise. * t/subdir6.sh: Likewise. * t/autohdr2.sh: Remove as obsolete. * t/obsolete.sh: Likewise. * t/list-of-tests.mk. Don't list the deleted test cases anymore. * NEWS: Update. * doc/automake.texi: Likewise. In particular ... (Obsolete Macros): Remove this node altogether. 2012-04-27 Stefano Lattarini automake, aclocal: update copyright year in output Fixes automake bug#11356. * aclocal.in, automake.in: Add copyright year '2012' in the version message. Ditto for the copyright notice in the generated Makefile.in or aclocal.m4 files; and for those, since we are at it, prefer using a range for copyright years, rather than listing each copyright year individually. 2012-04-26 Stefano Lattarini Merge branch 'maint' * maint: maint: don't use "union" merge driver for NEWS anymore build: avoid too greedy rebuilds in the testsuite tests: avoid yet another spurious environment influence tests: fix a failure in Lex/C++ tests on Mac OS X tests: fix a spurious failure due to truncated timestamps build: require autoconf 2.69 build: don't require minimal automake version in AM_INIT_AUTOMAKE 2012-04-26 Stefano Lattarini maint: don't use "union" merge driver for NEWS anymore The use of the "union" merge driver to avoid conflicts in NEWS has proven to be problematic, as it often silently produced mis-merges (instead of spurious conflicts, but a spurious conflict is better than a mis-merge). Also, our new branching policy (see automake bug#11153 for a description) should greatly mitigate the problem of merge conflicts in NEWS. For further discussion, see: 2012-04-26 Stefano Lattarini build: avoid too greedy rebuilds in the testsuite The autogenerated makefile fragment 't/testsuite-part.am' used to depend on the list of *all* the hand-written files. This was technically correct, since that makefile fragment was (and still is) generated by the script 'gen-testsuite-part', which scans all the hand-written files to detect implicit dependencies and to decide for which tests a further wrapper test should be generated. However, the presence of such a dependency implied that, whenever *any* test case was modified (no matter how slightly), the 't/testsuite-part.am' file was rebuilt, and since that is included by our 'Makefile.am', the 'Makefile.in' file was rebuilt as well by automake. In order to do so, automake scanned our 'configure.ac' file, which requires the latest Autoconf version (2.69 at the time of writing), and the casual user can easily lack that on his machine (and that should be allowed, as automake currently supports any autoconf version >= 2.62). The described situation could hinder in-field testing or debugging by users (even experienced ones) that are not automake developers; see for example automake bug#11347. So we drop the explicit dependency of 't/testsuite-part.am' on the hand-written test cases. (As an aside, note that this has already been done in Automake-NG, albeit for other reasons; see the commit 'v1.11b-129-g1690aca' of 2012-04-23, "[ng] build: define $(TESTS) through a wildcard"). This is not a serious regression in the faithfulness of the Automake build systems, since it unfortunately already had several undeclared dependencies; e.g., 'Makefile.in' should depend on the automake script, and 'aclocal.m4' should depend on the aclocal script (but this isn't possible, as it would mean that distributed files depend on ones generated at make time). Similarly, 'Makefile.in' should depend on some of the 'lib/am/*.am' files, but does not. Currently, the workaround to get a faithful and correct rebuild is to run ./bootstrap && ./config.status --recheck && make clean all and the present commit does not change that. * Makefile.am ($(srcdir)/t/testsuite-part.am): Don't depend on 't/list-of-tests.mk' nor on '$(handwritten_TESTS)' anymore. ($(generated_TESTS)): Likewise, and don't depend on 'Makefile.am' either. 2012-04-26 Stefano Lattarini Merge branch 'fix-pr11345-lex' into maint * fix-pr11345-lex: tests: fix a failure in Lex/C++ tests on Mac OS X 2012-04-26 Stefano Lattarini Merge branch 'fix-pr11346-timestamp' into maint * fix-pr11346-timestamp: tests: fix a spurious failure due to truncated timestamps 2012-04-26 Thien-Thi Nguyen (tiny change) tests: avoid yet another spurious environment influence * t/remake11.sh: Unset 'd' before first use. 2012-04-26 Stefano Lattarini tests: fix a failure in Lex/C++ tests on Mac OS X The header from Xcode-4.3.2 on Mac OS X 10.7.3 declares a 'isatty' function with C++ linkage, that conflicts with our dummy definition of the same function, which in turn is required to work around the absence of the unistd.h header on MinGW (see commit 'v1.11-2138-gfeea090' of 11-04-2012). So we tweak the affected tests to work around this new problem as well. This fixes automake bug#11345. * t/lex-clean-cxx.sh ($required): Since we are at it, add an explicit 'c++' requirement. * t/lex-depend-cxx.sh ($required): Likewise. (my-hdr.hxx): Don't include . The "using namespace" directive should still be enough to ensure the content of this header is not valid C, albeit being of course valid C++. Fix unrelated typos in comments. (joe.ll): Adjust, by removing the call to 'printf'. * THANKS: Add entry for reporter "Adam Mercer". 2012-04-26 Stefano Lattarini Peter Breitenlohner tests: fix a spurious failure due to truncated timestamps Fixes automake bug#11346. * t/self-check-is_newest.tap: Apparently, on some systems (or file systems), "touch -r" can truncate timestamps :-( Work around that. 2012-04-26 Stefano Lattarini build: require autoconf 2.69 It is only from version 2.69 that the 'AC_PROG_FC' macro has started to set the '$GFC' variable to "yes" if the selected Fortran compiler is a GNU compiler. Since we use this variable in our configure.ac, we better require autoconf 2.69 explicitly. * configure.ac (AC_PRERQ): Require autoconf >= 2.69. Remove a now-obsolete "FIXME" comment. 2012-04-25 Stefano Lattarini build: don't require minimal automake version in AM_INIT_AUTOMAKE * configure.ac (AM_INIT_AUTOMAKE): Don't explicitly require a minimal automake version number. Since the Automake build system is only meant to work with the bleeding-edge automake, that requirement was redundant and misleading. 2012-04-25 Stefano Lattarini post-release: major version bump This is for the master branch. * configure.ac, m4/amversion.m4: Bump version to 1.12a. 2012-04-25 Stefano Lattarini Merge branch 'maint' * maint: post-release: minor version bump 2012-04-25 Stefano Lattarini post-release: minor version bump This is for the maint branch. * configure.ac, m4/amversion.m4: Bump version to 1.12.0a. 2012-04-25 Stefano Lattarini Merge branch master into maint after 1.12 release 2012-04-25 Stefano Lattarini release: stable major release 1.12 * configure.ac (AC_INIT): Bump version number to 1.12. * NEWS: Likewise. * m4/amversion.m4 (AM_AUTOMAKE_VERSION): Likewise (autoupdated by ./bootstrap). 2012-04-25 Stefano Lattarini Merge branches 'fix-pr11302-opensuse' and 'fix-pr11306-macosx' * fix-pr11302-opensuse: tests: cater to systems installing libs in /lib64 * fix-pr11306-macosx: tests: fix spurious failure on Mac OS X 2012-04-23 Stefano Lattarini coverage: test the internal $(am__relativize) variable This new coverage might turn out be useful for the planned changes in Automake-NG. Even if it eventually doesn't, we gen an improved testsuite exposure of some non-trivial internals, so it's always a win for us. * t/relativize.tap: New test. * t/list-of-tests.mk: Add it. 2012-04-23 Stefano Lattarini tests: cater to systems installing libs in /lib64 See automake bug#11302. On at least OpenSUSE 12.1, "make install" will install libraries in the '${prefix}/lib64' directory by default. This is due to the $CONFIG_SITE set by /etc/profile.d/site.sh, which sets a libdir that ends in '/lib64' rather than '/lib' if it finds that the compiler is generating 64-bit code. This behaviour was causing some spurious failures in our testsuite. Fix them. * t/posixsubst-libraries.sh: Assume the libraries are installed in '$(libdir)' rather than in '$(prefix)/lib'. * t/posixsubst-ltlibraries.sh: Likewise. * t/posixsubst-scripts.sh: Similarly, don't assume that '$(bindir)', '$(sbindir)' and '$(libexedir)' always defaults to respectively '$(prefix)/bin', '$(prefix)/sbin' and '$(prefix)/libexec'. * t/transform3.test: Likewise. 2012-04-23 Stefano Lattarini Bruno Haible tests: fix spurious failure on Mac OS X See automake bug#11306. * t/lex-libobj.sh: We used to pass LEXLIB='-L /lib' to the ./configure invocation, to prevent it from explicitly searching for a "lex library". But the linker on MacOS X 10.5 apparently chokes on that: cc -g -O2 -o foo foo.o -L /lib yywrap.o ld: file not found: /lib collect2: ld returned 1 exit status So, we now instead pass LEXLIB=' ', which being non-empty is enough to prevent the search of a "lex library". And since we are at it, enhance comments on this non-obvious usage. 2012-04-22 Stefano Lattarini coverage: parallel make with vala * t/vala-parallel.sh: New test. * t/list-of-tests.mk: Add it. 2012-04-21 Stefano Lattarini vala: configure exit with status 77, not 1, if valac version is too old From a report by Bruno Haible in automake bug#1193. This change should also automatically avoid spurious testsuite failures with older vala versions. * m4/vala.m4 (AM_PROG_VALAC): Exit with status 77, rather than 1, if the Vala compiler found older than the minimal required version (if any). This is more consistent with what is done by other macros like AM_PROG_UPC or AC_PROG_CC. * NEWS: Update. * t/vala-headers.sh: Adjust, so that the test is only skipped of the vala compiler is too old or the required PKG_CHECK_MODULES third-party macro is not found by aclocal, and not if a generic error happens in the configure script. * t/vala-libs.sh: Likewise. * t/vala2.sh: Likewise. * t/vala3.sh: Likewise. * t/vala5.sh: Likewise. * t/vala-vpath.sh: Likewise (but don't check for the potential error with PKG_CHECK_MODULES, as that macro is not used in any way here). * t/vala4.sh: Adjust, to avoid the new semantic causing this test to skip instead of failing. 2012-04-21 Stefano Lattarini refactor: processing of input makefile rules This is a pure refactoring, with no intended functional or semantic changes. It breaks up an overly-long function in three smaller sub-functions. This change will very especially useful for the work on Automake-NG. * lib/Automake/Rule.pm (define): Move quite a lot of code out, into ... (_rule_defn_with_exeext_awareness, _maybe_warn_about_duplicated_target, _conditionals_for_rule): ... these new subroutines. 2012-04-21 Stefano Lattarini automake: refactor pre-processing of makefile fragments This change will provide the automake script with a new function that reads in a Makefile fragment *without* performing Automake ad-hoc parsing, but only the pre-processing step, i.e., removal of '##' comments and substitution of tokens like '%SUBDIRS%', '%?LIBTOOL%' or '?GENENRIC?'. This will very likely be useful for the work on Automake-NG. This is a pure refactoring, with no intended functional or semantic changes. * automake.in (preprocess_file): New function, extracted ... (make_paragraphs): ... from here. 2012-04-20 Stefano Lattarini docs: remove obsolete references to Autoconf 2.13 Autoconf 2.13 is definitely obsolete today, so giving hints or caveats about it in the Automake documentation is not only obsolescent, but also counter-productive, as it suggests that autoconf 2.13 is still relevant. * doc/automake.texi: Adjust. Related rewordings. Since we are at it, prefer using a more modern autoconf version number (2.68 instead of 2.57) in an example showing how to correctly use 'AC_PREREQ' in third-party .m4 files. 2012-04-20 Stefano Lattarini tests: fix spurious failure with non-ANSI terminals * t/ax/tap-summary-aux.sh: When checking colored testsuite output, be sure to export the TERM variable to the value "ansi"; otherwise the automake testsuite driver will not display colored output, not even if AM_COLOR_TESTS is exported to "always". Failure revealed by NixOS Hydra. 2012-04-18 Stefano Lattarini hacking: fix typo * HACKING (Test suite): Refer to file 't/README', not to the non-existent 'tests/README'. 2012-04-18 Stefano Lattarini maint: version bump after beta release * configure.ac (AC_INIT): Bump version number to 1.11e, as per HACKING suggestion. * NEWS: Likewise. * m4/amversion.m4: Likewise (autoupdated by ./bootstrap). 2012-04-18 Stefano Lattarini Beta release 1.11d (will become 1.12) * configure.ac (AC_INIT): Bump version number to 1.11d. * NEWS: Likewise. * m4/amversion.m4: Likewise (autoupdated by ./bootstrap). 2012-04-18 Stefano Lattarini tests: remove redundant 'set -e' calls * t/aclocal-install-fail.sh: Do not set the 'errexit' shell flag, as it is already set by './defs'. * t/aclocal-install-mkdir.sh: Likewise. * t/aclocal-no-install-no-mkdir.sh: Likewise. * t/aclocal-verbose-install.sh: Likewise. * t/instdir-no-empty.sh: Likewise. * t/link_cond.sh: Likewise. * t/python-pr10995.sh: Likewise. * t/vala-vapi.sh: Likewise. 2012-04-18 Stefano Lattarini tests: avoid spurious failures when cross-compiling * t/parallel-tests-recheck-depends-on-all.sh: Skip the test when cross-compiling. * t/vala-vapi.sh: Skip tests that do not make sense when cross-compiling. * t/yacc-basic.sh: Likewise. * t/yacc-cxx.sh: Likewise. 2012-04-18 Stefano Lattarini maintainer-check: fix definition of $(ams) again * syntax-checks.mk (ams): The previous change 'v1.11b-36-g127adfb' solved one problem in the definition of this variable, but also caused it contain the names of all the left-behind 't/*.dir' temporary test directories. Fix that. 2012-04-18 Stefano Lattarini maintainer-check: do not hang * syntax-checks.mk (ams): The definition of this variable was invoking the 'find' utility in an incorrect way, which resulted into the variable being empty, thus reducing coverage in some maintainer check and making other hang. Fix this. 2012-04-18 Stefano Lattarini parallel-tests: 'recheck' must depend on 'all' Fixes automake bug#11252. When a developer experience one or more failures in the testsuite, a good workflow is for him to modify its program's sources to fix the bug thus revealed, run "make recheck" to verify that the change has indeed solved the testsuite failures previously experienced, and then run "make check" to verify that the change has not introduced any new failure or regression. Unfortunately, this apparently natural workflow couldn't have worked until now, since the Automake-provided 'recheck' target (which didn't depend on 'all') wouldn't have causes the program to be recompiled, and the failed tests would have thus been run with the older, buggy version of the program, failing the same way as before. * lib/am/check.am (recheck): Depend on 'all'. * t/parallel-tests-recheck-depends-on-all.sh: New test. * t/list-of-tests.mk: Add it. * NEWS: Update. 2012-04-17 Stefano Lattarini vala tests: building libraries, and more on '.vapi' files * t/vala1.sh: Remove, turned into ... * t/vala-libs.sh: ... this functional test instead. * t/list-of-tests.mk: Adjust. 2012-04-17 Stefano Lattarini automake: fix botched call to 'check_user_variables' * automake.in (lang_vala_finish_target): The 'check_user_variables' function takes an array, not an array ref, as argument; adjust its call accordingly. 2012-04-17 Stefano Lattarini vala: cleanup rules are better and more complete now * automake.in (lang_vala_finish_target): Ensure Vala-generated C sources and header files and our custom stamp files are correctly cleaned. * t/vala-headers.sh, t/vala-vpath.sh: Enhance. * NEWS: Update. 2012-04-17 Stefano Lattarini vala tests: check headers generation * t/vala-headers.sh: New test, checking use of 'valac' options for header generation (e.g., '-H', '--vapi', ...) in '$(..._VALAFLAGS)'. * t/list-of-tests.mk: Add it. 2012-04-17 Stefano Lattarini vala tests: remove redundant libtool requirements and usages * t/vala2.sh: Don't require libtool m4 macros, don't run libtoolize, don't invoke AC_PROG_LIBTOOL: none of there is really needed. * t/vala3.test: Likewise. 2012-04-16 Stefano Lattarini vala tests: some enhancements * t/vala-vpath.sh, t/vala2.sh, t/vala3.sh, t/vala5.sh: Enhance a little. 2012-04-16 Stefano Lattarini vala tests: few adjustments and improvements * t/vala4.sh: Don't run 'libtoolize', it's not truly required. ($required): Don't require 'libtoolize'. (configure.ac): Don't invoke 'AC_PROG_LIBTOOL'. * t/vala-mix.sh ($required): Require 'cc'. Avoid some calls to 'framework_failure_', they were only useful when this test was xfailing (to ensure it wasn't failing for the wrong reasons). Ensure the stamp file is created in the source directory. 2012-04-16 Jim Meyering build: use latest help2man, but without locale support * doc/help2man: Update to latest (1.40.8), but built with --disable-nls, which elides the less-portable locale-related code, and with the "use 5.008" manually changed to "use 5.006". Thanks to Brendan O'Dea for the tips. * THANKS: Update Brendan's address. 2012-04-14 Stefano Lattarini parallel-tests: print error messages on stderr, not stdout * lib/am/check.am ($(TEST_SUITE_LOG)): Be sure to print error messages on stderr, not on stdout. 2012-04-13 Stefano Lattarini dist tests: fix reduced coverage due to typo * t/dist-formats.tap: Append to 'Makefile.am', not to 'Makefil.am'. 2012-04-13 Jim Meyering build: use slightly older help2man, for improved portability Fixes automake bug#11235 * doc/help2man: Downgrade to help2man-1.36.4, so that it does not require Locale/gettext.pm, which is not available on a default Fedora 16 installation. Reported by Stefano Lattarini. 2012-04-13 Stefano Lattarini tests: avoid spurious failure when 'install-info' program is unavailable From a report by Dmitry V. Levin: * t/install-info-dir.sh : When 'install-info' is unavailable, create a dummy '${infodir}/dir' file by hand when that file is required by later checks. 2012-04-13 Stefano Lattarini Merge branch 'maint' * maint: install: shell parameter expansions can be used in directory names 2012-04-13 Stefano Lattarini Merge branch 'fix-pr11232' into maint * fix-pr11232: install: shell parameter expansions can be used in directory names 2012-04-13 Dmitry V. Levin install: shell parameter expansions can be used in directory names Fixes automake bug#11232. GNU automake used to support shell parameter expansion and command substitutions in installation directories, but that was inadvertently broken by commit v1.11-759-g368f1c4 "install: don't create empty dirs when an empty 'foo_PRIMARY' is used" of 18-03-2012, where shell quoting of generated MKDIR_P command was changed from double to single quotes in 3 places, while some 21 other places still use double quotes for generated MKDIR_P commands. * lib/am/data.am: Use double quotes for generated "mkdir -p" commands. * lib/am/libs.am: Likewise. * lib/am/ltlib.am: Likewise. 2012-04-13 Stefano Lattarini test defs: more environment cleanups * defs (SH_LOG_COMPILER, SH_LOG_COMPILE, SH_LOG_FLAGS, AM_SH_LOG_FLAGS, SH_LOG_DRIVER, SH_LOG_DRIVER_FLAGS, AM_SH_LOG_DRIVER_FLAGS): Unset these variable to avoid potential interferences from the environment. 2012-04-13 Stefano Lattarini test defs: unset 'AM_UPDATE_INFO_DIR' environment variable * defs (AM_UPDATE_INFO_DIR): Unset, to be sure to avoid unduly interferences from the environment. See also automake bug#11204. * THANKS: Add entry for David Fang. 2012-04-12 Jim Meyering build: generate doc/*.1 files; include help2man This change is required to avoid making a distributed file depend on a generated (non-distributed) one. The preceding change introduced one such dependency, with the distributed doc/*.1 depending on the generated aclocal and automake files. Here, we avoid the problem by generating the doc/*.1 files rather than distributing them. * doc/help2man: New file, version 1.37.1. * Makefile.am (EXTRA_DIST): Add doc/help2man. (man1_MANS): Rename from $(dist_man1_MANS). Remove $(srcdir) prefix. (CLEANFILES): Add these files here, rather than to $(MAINTAINERCLEANFILES), since we are no longer distributing them. (update_mans): Use doc/help2man, not $(HELP2MAN). * configure.ac: Don't test for help2man, now that we bundle it. 2012-04-12 Jim Meyering build: avoid parallel build failures A parallel build would fail when two concurrent sub-make processes tried to build lib/Automake/Config.pm. The loser would complain that grep: lib/Automake/Config.pm-t: No such file or directory chmod: cannot access `lib/Automake/Config.pm-t': No such file or\ directory make[1]: *** [lib/Automake/Config.pm] Error 1 * Makefile.am (update_mans): Don't build lib/Automake/Config.pm here. Instead, depend on it from the two rules that use it: ($(srcdir)/doc/aclocal-$(APIVERSION).1): Depend on it. ($(srcdir)/doc/automake-$(APIVERSION).1): Likewise. [ Note that technically, the above is incorrect, since it makes those distributed doc/*.1 files depend on generated aclocal and automake. That problem is addressed by the following commit. ] However, that was not enough, since even then, a parallel build would still fail, now with this: help2man: can't get `--help' info from automake-1.11a Try `--no-discard-stderr' if option outputs to stderr make: *** [doc/automake-1.11a.1] Error 1 a subsequent "make -j3" would create the missing file. That was because help2man would invoke t/wrap/aclocal.in and t/wrap/automake.in, each of which would require aclocal and automake, yet those two files weren't guaranteed to be created. Add explicit dependencies: ($(srcdir)/doc/aclocal-$(APIVERSION).1): Depend on aclocal. ($(srcdir)/doc/automake-$(APIVERSION).1): Depend on automake. 2012-04-12 Stefano Lattarini news: remove older entry for "future backward incompatibilities" * NEWS (New in 1.11.4): Remove subsection about "Future backward incompatibilities"; they are now either documented changes for the upcoming 1.12 release, or re-casted as planned future backward incompatibilities for the next 1.13 release. 2012-04-12 Stefano Lattarini news: document fixes for bug#11222 and bug#11229 * NEWS (Bugs fixed in 1.11.5): New, documenting the fixes. 2012-04-12 Stefano Lattarini Merge branch 'maint' * maint: vala: fix distcheck with c/vala mixed projects vala: fix vapi files handling vala: test vapi files handling (still failing) 2012-04-12 Stefano Lattarini Merge branches 'vala-fix-pr11222' and 'vala-fix-pr11229' into maint * vala-fix-pr11222: vala: fix vapi files handling vala: test vapi files handling (still failing) * vala-fix-pr11229: vala: fix distcheck with c/vala mixed projects 2012-04-12 Marc-Antoine Perennou (tiny change) vala: fix distcheck with c/vala mixed projects Fixes automake bug#11229. * automake.in (lang_vala_finish_target): Return early if the current '_SOURCES' variable does not contain any '.vala' nor '.vapi' source. Otherwise, the vala compiler will be called without arguments, causing an error. * tests/vala-mix.test: Enhance to catch the fixed bug. 2012-04-12 Stefano Lattarini news: fix typo * NEWS (Changes to Automake-generated testsuite harnesses): It's 'perl', not 'per'. Reported by Akim Demaille in a private mail. 2012-04-12 Marc-Antoine Perennou (tiny change) vala: fix vapi files handling Fixes automake bug#11222. Issue introduced in commit 'v1.11-696-g51f61df' of 27-02-2012, "vala: fix 'valac' calls for projects with mixed Vala/C", which fixed automake bug#10894. * automake.in (lang_vala_finish_target): Also recognize '.vapi' as an extension for vala input files. * tests/list-of-tests.mk (XFAIL_TESTS): Remove 'vala-vapi.test'. 2012-04-12 Stefano Lattarini (tiny change) Marc-Antoine Perennou vala: test vapi files handling (still failing) Exposes automake bug#11222. * tests/vala-vapi.test: New test, still failing. * tests/list-of-tests.mk (handwritten_TESTS): Add it. (XFAIL_TESTS): Likewise. * THANKS: Update. 2012-04-11 Stefano Lattarini self checks: avoid spurious failures when keep_testdirs=yes * t/self-check-cleanup.tap, t/self-check-dir.tap: Unset the 'keep_testdirs' environment variable, to avoid spurious errors when the testsuite is run with "keep_testdirs=yes make check". 2012-04-11 Stefano Lattarini fixup: some weaknesses in a self-check test case * t/self-check-cleanup.tap: This test contained several buglets introduced in the recent row of commits that converted the Automake build system to a non-recursive setup. Fix them. Since we are at it, enhance the test to cover also the use of the 'keep_testdirs' environment variable in order to keep the temporary test directories around. 2012-04-11 Stefano Lattarini maintcheck: avoid yet more spurious failures (2) Some maintainer checks were too greedy in processing 'Makefile.am' files, looking for them even in temporary directories left behind by the test cases, thus causing occasional spurious failures. * syntax-checks.mk (ams): Ignore 'Makefile.am' files in the temporary test directories. 2012-04-11 Stefano Lattarini maintcheck: avoid yet more spurious failures (1) The 'sc_tests_makefile_variable_order' maintainer check is too strict sometimes, blaming automake for outputting out-of-order variables when this is in fact due to the result of post-processing of third-party tools or custom test code. * t/tap-doc2.sh: Ensure the final Makefile.in (that we hack by hand) is removed, to avoid a spurious maintainer-check failure. * t/gettext-macros.sh: Ensure that any leftover Makefile.in (that is generated by gettext/autopoint) is removed, to avoid a spurious maintainer-check failure. 2012-04-11 Stefano Lattarini hacking: fixlets w.r.t. the release procedure * HACKING (Release procedure): Do not state that the result of "make fetch" is woefully incomplete: this is not true anymore today. Suggest to re-run the testsuite after a "make fetch", in case any file has been updated. 2012-04-11 Stefano Lattarini maintcheck: fix spurious failures * syntax-check.mk (sc_mkinstalldirs): Now the 'mkinstalldirs' is listed in the top-level 'Makefile.am', not in 'lib/Makefile.am'; adjust the "whitelist" accordingly. (sc_ensure_testsuite_has_run): The 'test-suite.log' file created by "make check" is now placed in the top-level directory, not in the 't/' subdirectory. Adjust by using '$(TEST_SUITE_LOG)' instead of an hand-crafted path for the 'test-suite.log' file. 2012-04-11 Stefano Lattarini maint: version bump after beta release * configure.ac (AC_INIT): Bump version number to 1.11c, as per HACKING suggestion. * NEWS: Likewise. * m4/amversion.m4: Likewise (autoupdated by ./bootstrap). 2012-04-11 Stefano Lattarini Beta release 1.11b (will become 1.12) * configure.ac (AC_INIT): Bump version number to 1.11b. * NEWS: Likewise. * m4/amversion.m4: Likewise (autoupdated by ./bootstrap). 2012-04-11 Stefano Lattarini sync: some auxiliary files synced from upstream * lib/texinfo.tex: Synced from upstream, by "make fetch". * lib/INSTALL: Likewise. 2012-04-11 Stefano Lattarini hacking: described new branching policy for 1.12 an later This change closes automake bug#11153. * HACKING (Working with git): Document the new policy for automake branching and merging, which will start being applied after 1.12 is released: - the maintenance branch will be 'maint', and we will cut the maintenance releases directly from there; - the development branch will be 'master', and we will cut the new releases directly from there; - 'maint' will be kept regularly merged into 'master'. 2012-04-11 Stefano Lattarini vala tests: avoid spurious failure with older GObject * t/vala2.sh: In the 'PKG_CHECK_MODULES' call in 'configure.ac', don't require gobject >= 2.10, but just >= 2.4: that is enough in order for the test to pass. * t/vala3.sh: Likewise. * t/vala5.sh: Likewise. Also, skip the test instead of failing if the ./configure invocation fails: that is likely due to the fact that the GObject library is too old or missing, and that is not automake's fault. 2012-04-11 Stefano Lattarini vala tests: force the use of automatic dependency tracking * t/vala-mix2.sh: Invoke ./configure with the option '--enable-dependency-tracking', so that slower dependency extractors are not rejected. This avoids a spurious failure at least on Solaris when the Sun C compiler is used. 2012-04-11 Stefano Lattarini tests: avoid spurious failures in tests on C++ and lex This is a follow-up to commit v1.11-2128-g7f2bc63 of 09-04-2012, "tests: avoid spurious failures with non-flex 'lex' programs and C++". It is required to avoid a couple of spurious failures on Solaris and NetBSD systems (at least). See also automake bug#11185. * t/lex-clean-cxx.sh (parsefoo.lxx): Do not declared the provided dummy 'isatty' function as 'static', since that might conflict with a declaration of it as 'extern' pulled in through other system * t/lex-depend-cxx.sh (joe.ll): Likewise. * t/README: Update advice, to avoid similar issues in the future. 2012-04-11 Stefano Lattarini Merge branch 'rmch' * rmch: maint: simplify generation of files with @substed@ stuff t/README: update w.r.t. recent overhaul (non-recursive build system) docs: fix names of relevant test cases in comments NEWS: automake build systems avoids make recursion maint: no more make recursion in Automake's build system tests: rename 'tests/' => 't/', '*.test' => '*.sh' tests: remove recipes that run tests with 'prove' tests: move most helper scripts and files into the 'ax' subdirectory 2012-04-09 Stefano Lattarini Peter Rosin tests: avoid spurious failures with non-flex 'lex' programs and C++ This change fixes automake bug#11185. The commit v1.11-2058-g6f4b08d of 06-03-2012, "tests: explicitly state that our lexers do not require unistd.h" has broken the tests 'lex-clean-cxx.test' and 'lex-depend-cxx.test' on Solaris, where lex is not flex and does not understand the "%option never-interactive" directive. Remove the use of this directive, resorting to defining a dummy 'isatty()' function instead to keep the flex-generated tests able to compile also on MinGW/MSYS. * tests/lex-clean-cxx.test (parsefoo.lxx): Define a dummy 'isatty()' function. * tests/lex-depend-cxx.test (joe.ll): Likewise. * tests/README: Adjust. Fix an unrelated typo since we are at it. 2012-04-08 Stefano Lattarini tests: avoid a spurious failures for shells with busted 'set -e' Some versions of the BSD Korn shell wrongly bail out when the 'errexit' shell flag is active and the left-hand command in a "&&" list fails and that list is the *last* command of the body of a "while" or "for" loop. * tests/install-info-dir.test: Work around that behaviour. 2012-04-08 Stefano Lattarini maint: simplify generation of files with @substed@ stuff Use a proper "config.status --file=-" idiom to do most substitutions in our generated files, to avoid too much duplications between the various $(do_subst) commands in Makefile.am and the (explicit or implicit AC_SUBST) invocation in configure.ac. From a suggestion by Eric Blake and Federico Simoncelli: * Makefile.am (do_subst): Rewrite to take advantage of the "config.status --file=-" idiom. (generated_file_finalize): New, to help checking that generated files don't contain unexpanded '@substitutions@', and are made read-only. (automake, aclocal): Take advantage of the improved $(do_subst). Improve comments. (lib/Automake/Config.pm): Likewise, and of the new variable $(generated_file_finalize) as well. ($(top_srcdir)/m4/amversion.m4): Likewise. (defs-static): Likewise, and depend explicitly on 'Makefile'. (do_subst_t): Remove as obsolete. * THANKS: Update. 2012-04-07 Stefano Lattarini tests: remove redundant requirement * tests/txinfo19.test ($required): Drop required "tex", it is not really needed. Add trailing ':' command since we are at it. 2012-04-07 Stefano Lattarini tests: make two test scripts executable * tests/instdir-cond.test: Add executable bit. * tests/instdir-cond2.test: Likewise. 2012-04-06 Stefano Lattarini t/README: update w.r.t. recent overhaul (non-recursive build system) And other miscellaneous improvements since we are at it. 2012-04-06 Stefano Lattarini docs: fix names of relevant test cases in comments * doc/automake.texi: In comments reporting which test(s) check a given feature/idiom, fix the names of the referenced tests, to reflect the recent 'tests/foo.test' => 't/foo.sh' "Great Rename". 2012-04-06 Stefano Lattarini NEWS: automake build systems avoids make recursion 2012-04-06 Stefano Lattarini maint: no more make recursion in Automake's build system We finally merge testsuite-related part of the Automake build system with the top-level one. See also yesterday's commit 'v1.11-2124-ga4b0f4b', "maint: remove most recursion in automake's own build system". * t/gen-testsuite-part: Move ... * gen-testsuite-part: ... here, with required adjustments. * t/defs-static.in: Move ... * defs-static.in: ... here, with required adjustments. In particular ... ($testsrcdir, $testbuilddir): Removed. ($top_testsrcdir): Renamed ... ($am_top_srcdir): ... to this. ($top_testbuilddir): Renamed ... ($am_top_builddir): ... to this. * t/defs: Move ... * defs: ... here, and adjust as required. * t/Makefile.am: Merge ... * Makefile.am: ... in here, with related adjustments and simplifications. * bootstrap: Adjust as required. * syntax-checks.mk: Likewise. * .gitignore: Likewise. * t/ax/tap-setup.sh: Likewise. * t/get-sysconf.sh: Likewise. * t/help-multilib.sh: Likewise. * t/multlib.sh: Likewise. * t/parallel-tests2.sh: Likewise. * t/self-check-cleanup.tap: Likewise. * t/self-check-exit.tap: Likewise. * t/self-check-dir.tap: Likewise. * t/self-check-explicit-skips.sh: Likewise. * t/self-check-reexec.tap: Likewise. * t/self-check-sanity.sh: Likewise. * t/yacc-d-cxx.sh: Likewise. 2012-04-06 Stefano Lattarini tests: rename 'tests/' => 't/', '*.test' => '*.sh' When we (soon) convert the Automake testsuite to a non-recursive make setup, we'll have to fix the entries of $(TESTS) to be prepended with the subdirectory they are in; this will increase the length of $(TESTS), and thus increase the possibility of exceeding the command-line length limits on some systems (most notably, MinGW/MSYS). See automake bug#7868 for more information. Thus we rename the 'tests/' subdirectory to 't/', and each 'x.test' script in there to 'x.sh'; this way, the $(TESTS) entry 'foo.test' will become 't/foo.sh', which have the same number of characters. * tests/: Rename ... * t/: ... to this. * t/*.test: Rename ... * t/*.sh: ... to this. * t/.gitignore: Removed as obsolete. * t/defs: Adjust. * t/gen-testsuite-part: Likewise. * t/list-of-tests.mk: Likewise. * t/ccnoco.sh: Likewise. * t/ccnoco3.sh: Likewise. * t/self-check-cleanup.tap: Likewise. * t/self-check-dir.tap: Likewise. * t/self-check-me.tap: Likewise. * t/self-check-reexec.tap: Likewise. * README: Likewise. * bootstrap: Likewise * configure.ac: Likewise. * Makefile.am: Likewise. * .gitignore: Likewise. * syntax-check.mk: Likewise. 2012-04-06 Stefano Lattarini tests: remove recipes that run tests with 'prove' Those recipes has served its purpose by helping us during the development of TAP support in Automake, to ensure our TAP driver didn't have gratuitous incompatibilities with the 'prove' test runner. But they are now unused, out-of-date and bitrotting. So it's better to just remove them. We can resurrect them at a later time if the need arises. * tests/Makefile.am (PROVE, AM_PROVEFLAGS, AM_PROVECMD): Remove these variables. (prove, installprove): Remove these targets and their recipe. (EXTRA_DIST): Don't distribute 'ax/prove-runner' anymore. * ax/prove-runner: Delete. 2012-04-06 Stefano Lattarini tests: move most helper scripts and files into the 'ax' subdirectory * tests/defs-static.in ($am_testauxdir): New variable. * tests/testsuite-summary-checks.sh: Moved ... * tests/ax/testsuite-summary-checks.sh: ... here. * tests/trivial-test-driver: Moved ... * tests/ax/trivial-test-driver: ... here. * tests/tap-summary-aux.sh: Moved ... * tests/ax/tap-summary-aux.sh: ... here. * tests/distcheck-hook-m4.am: Moved ... * tests/ax/distcheck-hook-m4.am: ... here. * tests/prove-runner: Moved ... * tests/ax/prove-runner: ... here. * tests/depcomp.sh: Moved ... * tests/ax/depcomp.sh: ... here. * tests/tap-setup.sh: Moved ... * tests/ax/tap-setup.sh: ... here. * tests/tap-functions.sh: Moved ... * tests/ax/tap-functions.sh: ... here. * tests/plain-functions.sh: Moved ... * tests/ax/plain-functions.sh: ... here. * tests/extract-testsuite-summary: Moved ... * tests/ax/extract-testsuite-summary.pl: .. . here. * tests/gen-testsuite-part: Adjusted accordingly. * tests/Makefile.am: Likewise. * tests/defs: Likewise. * syntax-check.mk: Likewise. * Several tests: Likewise. 2012-04-05 Stefano Lattarini maint: remove most recursion in automake's own build system Recursive make-based build systems tend to be slower, more fragile and less faithful than "flat" ones. See Peter Miller's article "Recursive Make Considered Harmful" for more a more in-depth discussion: While in the case of automake this isn't a big problem (given the small size of its build systems), it still creates occasional glitches and annoyances. With this change, the use of recursion in Automake's own build system is eliminated *but for the testsuite*. Converting that is a little more tricky, and better left for a later change (or series of changes). See also commit v1.11-769-gfeeb7f6 of 28-03-2012. * contrib/Makefile.am, lib/Makefile.am, m4/Makefile.am, doc/Makefile.am: Removed, their content merged ... * Makefile.am: ... here, with required adjustments and few other "opportunistic" changes. (SUBDIRS): Update. * configure.ac (AC_CONFIG_FILES): Likewise. * .gitignore: Likewise. 2012-04-05 Stefano Lattarini tests: fix a spurious failures with non-GNU make * tests/instdir-no-empty.test: Also pass proper AM_MAKEFLAGS to make invocations that might recurse, to ensure the macro definitions passed from the command line are properly propagated. 2012-04-04 Stefano Lattarini texinfo: warn about future use of '--tidy' Starting from the next major release of Automake (likely 1.13) we want to start passing the '--tidy' option to texi2dvi and texi2pdf invocations, so that auxiliary TeX-generated files can be kept around (thus speeding up rebuilding of DVI and PDF output) without cluttering the build directory too much. Since the '--tidy' option was introduced in Texinfo 4.9 (as documented in the Texinfo distribution's NEWS file), this also means that Makefiles generated by future Automake versions will require at least that version of Texinfo (at the time of writing four years and nine months old). The users should be warned about the planned behavioral change and the new version requirement it will entail. See also automake bug#11146. * NEWS (Planned Backward Incompatibilities): Add entry about use of the '--tidy' option and requirement of Texinfo 4.9. 2012-04-04 Stefano Lattarini texinfo: don't clutter the builddir when using modern texi2dvi In modern versions of texi2dvi (at least since version 1.135, which comes with Texinfo 4.13) the '-o' option does not imply anymore the '--clean' option. As a consequence, lots of TeX-generated auxiliary files are now left in the build directory by the 'pdf', 'ps' and 'dvi' rules. This is especially annoying with non-recursive setups having the '.texi' files in a subdirectory, as in: info_TEXINFOS = doc/foo.texi In this case, the stray auxiliary files are left in the top build directory (since TeX is run from there). See for example: See also automake bug#11146. * lib/am/texibuild.am: Call 'texi2dvi' and 'texi2pdf' with the '--clean' option. Update comments accordingly. * tests/txinfo-noclutter.test: New test. * tests/txinfo18.test: Remove as obsolete, the still relevant parts of it moved into the new test. * tests/list-of-tests.mk: Adjust. * NEWS: Update. 2012-04-02 Stefano Lattarini hacking: autotools-generated files are not committed anymore * HACKING (Working with git) Generated files like 'configure', 'Makefile.in' and 'aclocal.m4' are not committed anymore in our git repository since some months. Remove obsoleted advices that assumed they still were. 2012-04-02 Stefano Lattarini hacking: simplify documentation of bootstrapping process * HACKING (Working with git): Do not suggest that, to ensure the bootstrapping process is performed with the latest autotools, the developer could explicitly pass $AUTOCONF and $AUTOM4TE in the environment to the ./bootstrap and ./configure invocations: that is a little tricky and quite fragile. Instead, suggest to just put modern-enough version of the autotools early in PATH. 2012-04-01 Stefano Lattarini cosmetics: remove repeated line in comment, fix quoting * automake.in: Drop a repeated line in a comment. In the same comment, prefer quoting 'like this' rather than `like this'. Issue introduced in one of the commits that converted from quoting `like this' to quoting 'like this'. 2012-03-31 Stefano Lattarini cosmetics: remove useless import in automake script * automake.in (Automake::Version): This import is not needed; remove it. 2012-03-31 Stefano Lattarini Merge branch 'maint' * maint: docs: deprecate 'cygnus' mode, help the transition 2012-03-31 Stefano Lattarini docs: deprecate 'cygnus' mode, help the transition Support for "Cygnus-style" trees (so far enabled by the 'cygnus' option) will be deprecated in one release of the next major series (1.12.x) and removed in the next major release after that (1.13). Better to start warning about this in the manual. * docs/automake.texi: Warn about the oncoming deprecation of the 'cygnus' mode. Suggest some idioms that can be used to retain some effects of the 'cygnus' option. * THANKS: Update. From a suggestion by Joseph S. Myers in automake bug#11034. 2012-03-29 Stefano Lattarini perl refactor: use modern semantics of 'open' * lib/Automake/XFile.pm: Update comments and POD documentation to suggest a more idiomatic/modern usage. (open): Be more robust in detecting whether the created file handle is being opened for writing. * lib/Automake/FileUtils.pm (update_file, contents): Call the 'Automake::XFile' and 'File::IO' constructors with two arguments rather than one; this change obsoletes ... (open_quote): ... this subroutine, which has thus been removed. (@EXPORT): Drop '&open_quote'. 2012-03-28 Stefano Lattarini Merge branch 'maint' * maint: cosmetics: don't make the generated Config.pm executable maint: reduce use of recursion in automake build system + Extra non-trivial extra edits follows. * lib/Makefile.am (amdir): Deleted this definition, it is already provided by a proper AC_SUBST in configure.ac. (dist_am_DATA): Remove 'am/ansi2knr.am', 'am/check-html.am' and 'am/multilib.am'. (dist_perllib_DATA): Remove 'Automake/Struct.pm'. 2012-03-28 Stefano Lattarini cosmetics: don't make the generated Config.pm executable * lib/Makefile.am (Automake/Config.pm): Don't make this executable, there's not need for it to be (it's a perl module, not a script). 2012-03-28 Stefano Lattarini maint: reduce use of recursion in automake build system Recursive make-based build systems tend to be slower, more fragile and less faithful than "flat" ones. See Peter Miller's article "Recursive Make Considered Harmful" for more a more in-depth discussion: While in the case of automake this isn't a big problem (given the small size of its build systems), it still creates occasional glitches and annoyances. So, with this change, we start making less use of make recursion in the Automake's own build system (future changes will reduce it even more). * lib/am/Makefile.am, lib/Automake/Makefile.am: Removed, their content merged ... * lib/Makefile.am: ... here, with required adjustments. * configure.ac (AC_CONFIG_FILES): Update. 2012-03-28 Stefano Lattarini news: sync with branch-1.11, fix mis-merges 2012-03-28 Stefano Lattarini acinstall: remove, it has never been really used Accordingly to the git history (see for example the 'README-alpha' in commit 'Release-1-1e-39-g9beb4ec' of 06-10-1996), the 'acinstall' script should have been used to install m4 files for aclocal. The comments in this script report that "... A script is needed to do this because we want to do serial-number checking; newer versions of macro files should always be preferred". But the 'acinstall' script has never been really used: for example, the entry "actually use acinstall program" was removed (unfixed) from the TODO file in commit 'Release-1-1k-12-g1201405' of 08-12-1996, and the only citation of 'acinstall' in the manual was removed in commit 'Release-1-1l-37-g128c3d7' of 19-03-1997, and never added back. In addition, the last non-trivial edit to the script (that is, besides updates to the copyright notice) dates back to 1996. More importantly, now that aclocal supports the ACLOCAL_PATH environment variable, installing m4 files directly in the system-wide acdir is discouraged, and better left only to distros' package managers (which already have their own way to do so, with which third-party build systems should not directly meddle). So we just remove the 'acinstall' script. * lib/acinstall: Remove. * lib/Makefile.am (dist_script_DATA): Update. 2012-03-28 Stefano Lattarini maint: reorganize the source tree and make it less cluttered * TODO: Move ... * old/TODO: ... here. This is done because this file is quite outdated, and today TODO and wishlist items are better handled though the debbugs tracker. * ChangeLog.00: Move ... * old/ChangeLog.00: ... here. * ChangeLog.01: Move ... * old/ChangeLog.01: ... here. * ChangeLog.02: Move ... * old/ChangeLog.02: ... here. * ChangeLog.03: Move ... * old/ChangeLog.03: ... here. * ChangeLog.04: Move ... * old/ChangeLog.04: ... here. * ChangeLog.09: Move ... * old/ChangeLog.09: ... here. * ChangeLog.11: Move ... * old/ChangeLog.11: ... here. * ChangeLog.96: Move ... * old/ChangeLog.96: ... here. * ChangeLog.98: Move ... * old/ChangeLog.98: ... here. * tests/ChangeLog-old: Move ... * old/ChangeLog-tests: .. here. * tests/Makefile.am (EXTRA_DIST): Adjust. * Makefile.am (EXTRA_DIST): Likewise. * .autom4te.cfg: New file, instructing the autotools to place the autom4te cache directory in '.autom4te.cache' rather than in 'autom4te.cache'. * .gitignore: Adjust. * Makefile.am (maintainer-clean-local): Remove the '.autom4te.cache' directory. 2012-03-27 Stefano Lattarini news: we are going to drop 'cygnus' soonish * NEWS (Future backward incompatibilities): Support for "Cygnus-style" trees (so far enabled by the 'cygnus' option) will be deprecated in the next minor release and removed in in the next major release. 2012-03-27 Stefano Lattarini Merge branch 'maint' * maint: depcomp: support tcc (Tiny C Compiler) tests: workaround for automatic linker determination and conditionals info: allow user to inhibit pruning of '${infodir}/dir' vala tests: fix spurious failures with older valac (<= 0.7.2) tests: fix a timestamp issue, and other minor buglets tests: fix spurious failure with older autoconf build: remove duplicated entries in $(TESTS) + Extra non-trivia edits: * tests/link_cond.test: Use 'configure.ac', not 'configure.in'. 2012-03-27 Stefano Lattarini depcomp: support tcc (Tiny C Compiler) This change fixes automake bug#11007. Since git commit 0c928da9 of 21-06-2010, "tcc: Draft suppoprt for -MD/-MF options" (sic, with typo in summary line), tcc has supported automatic dependency generation with a command-line interface similar to what old (pre-8.0) Intel compilers did. This caused Automake-generated code for automatic dependency tracking to recognize tcc dependency style as "icc". However, the format of the dependency files generated by tcc is apparently different enough from that of icc to cause spurious failures in the post-processing operated by our 'depcomp' script on such files. The failure was exposed with the development version of tcc 0.9.26 (as installed with debian package "tcc 0.9.26~git20120104.83d") by test case 'depcomp-auto.tap' (available only in the master branch). * lib/depcomp (icc): Cater to tcc as well. Update comments accordingly. * NEWS: Update. 2012-03-27 Stefano Lattarini tests: workaround for automatic linker determination and conditionals See automake bug#11089. Automake is not very smart in automatically determining the command to be used to link a program whose source files' languages are conditionally defined. For example, an input like: if HAVE_CXX foo_SOURCES = more.c++ else foo_SOURCES = less.c endif will cause the build rules for 'foo' to *unconditionally* use the C++ compiler for linking, even when the 'HAVE_CXX' conditional evaluates to false (which might mean that no C++ compiler is available). This behaviour is not really correct, but it's easy enough to work around, and it's only relevant for fringe use cases (at best). So let's just test that the workaround really works. * tests/link_cond.test: New test. * tests/list-of-tests.mk: Add it. * THANKS: Update. 2012-03-27 Stefano Lattarini info: allow user to inhibit pruning of '${infodir}/dir' This should have ideally been part of commit 'v1.11-519-g1ec1668' of 23-11-2011 "info: allow user to inhibit creation/update of '${infodir}/dir'". Well, better late than never. * lib/am/texinfos.am (uninstall-info-am): Don't look anymore at the output of "install-info --version" to decide whether to use it to update the '${infodir}/dir' or not; instead, honour the environment variable 'AM_UPDATE_INFO_DIR'. To avoid code duplication with ... (install-info-am): ... the recipe of this target, move common code out to ... (am__can_run_installinfo): ... this new internal variable. * tests/install-info-dir.test: Enhance. * doc/automake.texi (Texinfo): Update. * NEWS: Likewise. 2012-03-26 Bruno Haible Stefano Lattarini vala tests: fix spurious failures with older valac (<= 0.7.2) See automake bug#11093. The Vala compiler before the 0.7.3 release does not support the '--profile' option. But some of our tests were relying on it, so skip those tests if the detected Vala compiler is too old. * tests/vala-vpath.test, tests/vala-mix.test, tests/vala-mix2.test (configure.in): Require vala version >= 0.7.3 in AM_PROG_VALAC call. 2012-03-26 Stefano Lattarini tests: fix a timestamp issue, and other minor buglets Cherry picked from commit v1.11-1988-g82616f0 of 21-02-2012. Reported by Panther Martin in automake bug#10848. See also automake bug#11093. * tests/conffile-leading-dot.test: Add a proper '$sleep' invocation, to avoid spurious failures on fast systems without sub-second timestamp resolutions. Add other minor related and unrelated improvements and fixlets since we are at it. 2012-03-26 Stefano Lattarini tests: fix spurious failure with older autoconf Cherry picked from commit v1.11-1950-gba5a89b of 16-02-2012. * tests/conffile-leading-dot.test: Relax grepping of 'config.status' stderr, to cater for older autoconf. Issue revealed by a failure with autoconf 2.63 on Cygwin 1.5.25. See also automake bug#11093. 2012-03-24 Stefano Lattarini fixup: update THANKS * THANKS: Add entry for Tim Landscheidt. 2012-03-24 Stefano Lattarini docs: terminate unfinished sentence, fix reference to a test case * doc/automake.texi (Using the TAP test protocol): Here. 2012-03-24 Tim Landscheidt (tiny change) docs: fix some small typos and grammaros * doc/automake.texi (Using the TAP test protocol): Here ... * tests/tap-doc2.test: ... and here. 2012-03-24 Stefano Lattarini build: remove duplicated entries in $(TESTS) * tests/list-of-tests.mk (handwritten_TESTS): Remove duplicated entries for test cases 'extra-portability*.test'. 2012-03-23 Stefano Lattarini maint: update TODO file We don't have to make creation of $(foodir) conditional when foo_PRIMARY is conditionally defined; that has been solved in a more sweeping way by commit v1.11-759-g368f1c4 of March 18, which solved bug#11030 and bug#10997. The "check" target already depends on the "all" target. Remove comment "investigate problems with conditionally defined libraries"; it is aimed at automake 1.5 (!) and too terse and old to be useful now. Remove the 12 years old suggestion that "distcheck should make sure that each file that uses _() is listed in POTFILES.in"; this is handled by gnulib-provided syntax check 'sc_po_check' already today. Don't tell to "Run automake before libtool"; automake does not automatically run libtool anymore today. Remove hint about the possibility to "rewrite automake in guile" or "add a GUI": we are not going to do so. The automatic de-ANSI-fication feature has already been remove, so no need to suggest its potential removal in the future. Remove reference to a prospective "cvs" option that could add some cvs-specific rules. First of all, CVS is falling out of use today. Secondly, and most to the point, instead of guessing which VCS is going to be most popular and try to hack support for it into automake, we should leave it to developer-specific makefile fragments offered by projects like Gnulib to provide such rules (they are already doing so with succcess). About DOS support: it should actually be dropped, not extended. Add link about Karl Berry's proposal of preferring HTML over Info documentation installed in the local system: Remove items about "beautification" of output Makefile.in; they are pretty obvious, and mostly noise (after all, everybody prefers clean output where possible). Leave it to any developer doing future refactorings to find out low-hanging and/or high-impact optimizations and beatifications of the generated Makefiles. Remove item about internationalization: we're not going to implement it. Remove an item explicitly marked as "not that it matters". The order of files in a distribution tarball does not really matter, nobody has ever complained about it, so do not worry about it. Remove the suggestions about allowing hierarchy of dirs to share one aclocal.m4 and about printing full file name of Makefile.am or configure.in when giving error, in order to help very large trees: nobody has ever complained about the current behaviours, so no real need to change them. 2012-03-21 Stefano Lattarini fixup: bootstrapping issues with 'list-of-tests.mk' * tests/list-of-tests.mk: This file is expected to be executed directly with make from the bootstrap script, so we can't use Automake '##' comments after line continuations. 2012-03-21 Stefano Lattarini Merge branch 'maint' * maint: maint: move definition of XFAIL_TESTS near TESTS Actually, after the trivial merge conflicts have been solved, what this change actually does is moving the definition of XFAIL_TESTS near that of handwritten_TESTS. But the rationale is the same of that of commit 'v1.11-761-gabf40ce' (being merged here), and still works, so all is good. 2012-03-21 Stefano Lattarini maint: move definition of XFAIL_TESTS near TESTS The $(TESTS) variable is defined in file 'tests/list-of-tests.mk', while the $(XFAIL_TESTS) variable is defined in 'tests/Makefile.am'. This means that when a new xfailing test is to be added, two files must be touched; this is suboptimal and slightly confusing. * tests/Makefile.am (XFAIL_TESTS): Definition moved ... * tests/list-of-tests.mk: ... here. 2012-03-19 Stefano Lattarini tests: fix spurious failures caused by uses of 'configure.in' Issue introduced by the recent merges of maint into master, and revealed by "make maintainer-check". * tests/aclocal-install-fail.test: Likewise. * tests/aclocal-install-mkdir.test: Likewise. * tests/aclocal-verbose-install.test: Likewise. * tests/installdir.test: Likewise. * tests/instdir-cond2.test: Likewise. * tests/instdir-no-empty.test: Likewise. * tests/python-pr10995.test: Likewise. * tests/aclocal-no-install-no-mkdir.test: Likewise. 2012-03-18 Stefano Lattarini Merge branch 'maint' * maint: install-mans: avoid spurious failure with NetBSD make install: don't create empty dirs when an empty 'foo_PRIMARY' is used aclocal: remove a couple of useless imports aclocal: create local directory where to install m4 files 2012-03-18 Stefano Lattarini install-mans: avoid spurious failure with NetBSD make * lib/am/mans.am: After the changes introduced by previous commit v1.11-759-g368f1c4, some manpage installation recipes started to fail spuriously on NetBSD 5.1 make. Apparently, the system make there eats backslashes used to escape whitespace characters in the relevant recipes. Revert to slightly slower but safer idioms that avoid the need of such escaping. 2012-03-18 Stefano Lattarini install: don't create empty dirs when an empty 'foo_PRIMARY' is used Fixes automake bug#11030 and bug#10997. An empty declaration of "foo_PRIMARY" in a Makefile.am used to cause the generated install rules to create the directory $(foodir) anyway, even if nothing was to be installed there. While this could be seen as a convenient way to create a $(foodir) directory upon "make install" (respecting $(DESTDIR) settings and such), it also caused problems with conditionals; for example, an input of: if FALSE pgkdata_DATA = something endif caused the generated install rules to unconditionally create the $(pkgdatadir) directory (see automake bug#10997). Also, a user wanting to create an empty directory upon installation can easily do so with a custom install hook, as in: installdirs-local: $(MKDIR_P) $(DESTDIR)$(foodir) install-data-hook: installdirs-local On the other hand, the old behavior of "always create $(foodir), even if 'foo_PRIMARY' is empty" was harder and more tricky to override. Thus, from now on, an empty declaration of "foo_PRIMARY" will not cause the directory $(foodir) to be created upon "make install" anymore. * lib/am/data.am, lib/am/java.am, lib/am/libs.am, lib/am/lisp.am, lib/am/ltlib.am, lib/am/mans.am, lib/am/progs.am, lib/am/python.am, lib/am/scripts.am, lib/am/texinfos.am: Adjust install rules to avoid creating an installation directory if no files are actually to be installed there. * tests/instdir-empty.test: Remove, it was testing a semantic opposite to the one we now want and implement. * tests/instdir-no-empty.test: New test, check the new semantic. * tests/instdir-cond.test: Enhance. Move the still-failing part of the test ... * tests/instdir-cond2.test: ... here. * tests/list-of-tests.mk, tests/Makefile.am (XFAIL_TESTS): Update. * tests/java3.test: Adjust to avoid spurious failures. * HACKING, NEWS, THANKS: Update. 2012-03-17 Stefano Lattarini aclocal: remove a couple of useless imports * aclocal.in (File::stat, Cwd): Remove these imports, they are not really required. 2012-03-16 Stefano Lattarini aclocal: create local directory where to install m4 files Fixes automake bug#8168 and bug#10816. A call like "aclocal -I m4 --install" used to fail if the 'm4' directory wasn't pre-existing. This could be particularly annoying when running in a checked-out version from a VCS like git, which doesn't allow empty directories to be tracked. * aclocal.in (File::Path): New import. (scan_m4_dirs): Don't die if the first directory of type FT_USER doesn't exist and the '--install' option was given; that directory will be created later ... (install_file): ... here. Change signature of this function: now it takes as second argument the destination directory rather than the destination file. Crate the destination directory if it doesn't already exist. In verbose mode, tell what is being copied where. (write_aclocal): Update to the changes in 'install_file'. * NEWS, THANKS: Update. * tests/aclocal-install-fail.test: New test. * tests/aclocal-install-mkdir.test: Likewise. * tests/aclocal-no-install-no-mkdir.test: Likewise. * tests/aclocal-verbose-install.test: Likewise. * tests/list-of-tests.mk: Add them. 2012-03-15 Stefano Lattarini Merge branch 'maint' * maint: python: avoid failures due to $(am__py_compile) being undefined python: expose automake bug#10995 2012-03-15 Steven Drake (tiny change) python: avoid failures due to $(am__py_compile) being undefined Fixes automake bug#10995, introduced in commit v1.11-372-gb46debf. * lib/am/python.am: Move the definition of 'am__py_compile' to ensure it is always emitted in the output Makefile.in. Previously, this wouldn't have happened if the input Makefile.am contained a 'noinst_PYTHON' declaration before a 'python_PYTHON' one. * tests/Makefile.am (XFAIL_TESTS): Remove 'python-pr10995.test' and 'python.test'. * NEWS: Update. 2012-03-15 Stefano Lattarini python: expose automake bug#10995 * tests/python.test: Expose the bug in grepping tests. * tests/python-noinst.test: New functional test to expose the bug. * tests/list-of-tests.mk: Add it. * tests/Makefile.am (XFAIL_TESTS): Add the new test and the extended one. * THANKS: Update. 2012-03-14 Stefano Lattarini tests: one more use of 'unindent' function * tests/yacc-d-cxx.test (write_parse, write_main): Use 'unindent' instead of ad-hoc sed invocation to strip extra leading whitespace. 2012-03-14 Stefano Lattarini tests: remove redundant 'set -e' calls * tests/dist-pr109765.test: Do not set the 'errexit' shell flag, as it is already set by 'tests/defs'. * tests/instdir-cond.test: Likewise. * tests/instdir-empty.test: Likewise. * tests/lex-clean-cxx.test: Likewise. * tests/lex-clean.test: Likewise. * tests/lex-depend-cxx.test: Likewise. * tests/lex-depend.test: Likewise. * tests/lex-line.test: Likewise. * tests/lex-nodist.test: Likewise. * tests/lex-pr204.test: Likewise. * tests/silent-lex.test: Likewise. * tests/silent-yacc-headers.test: Likewise. * tests/silent-yacc.test: Likewise. * tests/vala-mix2.test: Likewise. * tests/yacc-auxdir.test: Likewise. * tests/yacc-bison-skeleton-cxx.test: Likewise. * tests/yacc-bison-skeleton.test: Likewise. * tests/yacc-clean-cxx.test: Likewise. * tests/yacc-cxx.test: Likewise. * tests/yacc-d-cxx.test: Likewise. * tests/yacc-deleted-headers.test: Likewise. * tests/yacc-depend.test: Likewise. * tests/yacc-depend2.test: Likewise. * tests/yacc-line.test: Likewise. * tests/yacc-mix-c-cxx.test: Likewise. * tests/yacc-weirdnames.test: Likewise. 2012-03-14 Stefano Lattarini Merge branch 'maint' * maint: tests: avoid spurious failures in get-sysconf.test scripts: bump the depcomp scriptversion sync: some auxiliary files synced from upstream coverage: an empty foo_PRIMARY should create directory $(foodir) coverage: make sure am__py_compile is defined when needed coverage: expose automake bug#10997 coverage: expose automake bug#10975 getopt: relax version requirement for perl + Extra non-trivial edits: * tests/dist-pr109765.test: Use 'configure.ac', not 'configure.in'. * tests/instdir-cond.test: Likewise. * tests/instdir-empty.test: Likewise. 2012-03-14 Stefano Lattarini tests: fix spurious failure with older m4 Reported by Panther Martin in automake bug#10866, diagnosed by Panther Martin and Eric Blake. Older GNU m4 versions (e.g., 1.4.6) did error reporting at the end of an error construct rather than the beginning. This was causing a spurious testsuite failure due to an off-by-one error in the line number reported in an aclocal diagnostic. * tests/cond41.test: Keep all the body of the 'AM_COND_IF' invocation on a single line, to avoid the off-by-one error. 2012-03-14 Stefano Lattarini tests: avoid spurious failures in get-sysconf.test This change fixes the last bit of automake bug#10866. * tests/get-sysconf.test: When Homebrew spawns a build, even if from a project's VCS, it stages the files in a new temporary directory, instead of building directly from a VCS checkout. This behaviour was causing a spurious failure in this test, which expected to find either a ChangeLog file or a .git directory in the source directory (the former happening when the test was run from a distribution tarball, the latter when it was run from a git checkout). The Homebrew issue shows that these expectations are not truly warranted, so relax the test to just give a warning, not a failure, in case they do not hold. Since we are at it, fix an unrelated weakness in the displaying of the git log, which could have failed when the builddir was not a subdirectory of the srcdir. 2012-03-12 Peter Rosin scripts: bump the depcomp scriptversion * lib/depcomp (scriptversion): Bump, to account for recent changes. 2012-03-12 Stefano Lattarini sync: some auxiliary files synced from upstream * lib/texinfo.tex: Synced from upstream, by "make fetch". * lib/config.guess: Likewise. * lib/config.sub: Likewise. * lib/gnupload: Likewise. 2012-03-12 Stefano Lattarini coverage: an empty foo_PRIMARY should create directory $(foodir) For example, a Makefile.am containing the definition: pkgdata_DATA = should cause the 'install' rule of the generated Makefile.in to create the '$(pkgdatadir)' directory (respecting any DESTDIR setting as well). Suggestion by Peter Breitenlohner in automake bug#10997. 2012-03-12 Stefano Lattarini coverage: make sure am__py_compile is defined when needed See automake bug#10995. * tests/python.test: Also make sure 'am__py_compile' is defined correctly in the generated Makefile.in. 2012-03-12 Daiki Ueno (tiny change) coverage: expose automake bug#10997 * tests/instdir-cond.test: New test. * tests/list-of-tests.mk: Add it. * tests/Makefile.am (XFAIL_TESTS): Likewise. 2012-03-09 Stefano Lattarini coverage: expose automake bug#10975 * tests/dist-pr10975.test: New test. * tests/list-of-tests.mk: Add it. * tests/Makefile.am (XFAIL_TESTS): Likewise. 2012-03-07 Stefano Lattarini getopt: relax version requirement for perl * lib/Automake/Getopt.pm: Require perl 5.6.0, not 5.6.2: the former is enough. See also commit 'v1.11-2054-g7df05a0' on master (dated 04-03-2012). 2012-03-07 Stefano Lattarini Merge branch 'maint' * maint: cosmetics: fix repeated changelog entry heading 2012-03-07 Stefano Lattarini cosmetics: fix repeated changelog entry heading 2012-03-07 Peter Rosin Merge branch 'maint' 2012-03-07 Peter Rosin Merge branch 'msvc' into maint This merge remedies the confusing situation that some changes destined for both the master branch and the release branch (a.k.a. branch-1.11) currently needs to be made on the non-obvious msvc branch and not on the more natural maint branch. This has caused a seemingly endless string of less than optimal commits. The reason for the confusion stems from the fact that the changes made on the msvc branch became too radical and was considered only suitable for the master branch, and was thus written in a form suitable for master and then merged there. Later, the msvc branch was merged directly into branch-1.11, in order to rush the new features to the market and to keep the released scripts (lib/ar-lib, lib/compile and lib/depcomp) consistent with those on the master branch. However, some changes had to be made to the features added by the msvc branch in order for them to fit the requirements of branch-1.11, notably that the warnings issued in the extra-portability class cannot be enabled by -Wall in the 1.11.x maintenance releases. In retrospect, it would have been better to not merge msvc directly into branch-1.11, but instead do it via the maint branch (followed up with a dummy merge from maint into master) the moment it was decided that the msvc changes should make it into branch-1.11. All in all, this merge is going to affect neither the master branch nor branch-1.11, since it is followed up with dummy merges masking all changes. The merge is made to maintain the sanity of the poor developers, who wishes to once again have a working maint branch. Discussion about merging the msvc branch into branch-1.11: http://lists.gnu.org/archive/html/automake/2011-10/msg00030.html Discussion about why this merge hasn't happened before: http://lists.gnu.org/archive/html/automake/2011-12/msg00051.html Extra edits below. * lib/Automake/ChannelDefs.pm: Use the version from branch-1.11. * tests/ar-lib3.test: Likewise. * tests/ar-lib4.test: Likewise. * tests/extra-portability.test: Likewise. * tests/extra-portability2.test: Likewise. * tests/extradep.test: Likewise. * tests/extradep2.test: Likewise. * tests/list-of-tests.mk: Likewise. * HACKING: Backport the version from branch-1.11 while at it (as the change on branch-1.11 is also present on master via an unrelated commit), even though this change has nothing to do with the changes on the msvc branch. 2012-03-07 Stefano Lattarini tests: remove useless sleep from tests on remake rules The sleeps were there to make generated autotools files strictly newer than their sources; however, this is not necessary, since POSIX mandates that make considers files with the same timestamp of their dependencies to be up-to-date. * tests/remake9a.test: Remove useless $sleep. * tests/remake9b.test: Likewise. * tests/remake9c.test: Likewise. * tests/remake9d.test: Likewise. * tests/remake10a.test: Likewise. * tests/remake10b.test: Likewise. * tests/remake10c.test: Likewise. 2012-03-07 Stefano Lattarini Merge branch 'msvc' into master (dummy merge) 2012-03-07 Stefano Lattarini Merge branch 'maint' into msvc * maint: news: describe recently-fixed bug in vala support depcomp: add support for IBM xlc/xlC compilers 2012-03-06 Stefano Lattarini Merge remote-tracking branch 'origin/master' 2012-03-06 Stefano Lattarini Merge branch 'maint' * maint: news: describe recently-fixed bug in vala support depcomp: add support for IBM xlc/xlC compilers 2012-03-06 Stefano Lattarini news: describe recently-fixed bug in vala support * NEWS (Long-standing bugs): Document fix for bug#10894, fixed by commit 'v1.11-696-g51f61df' of 27-02-2012. 2012-03-06 Michael Hofmannm (tiny change) depcomp: add support for IBM xlc/xlC compilers * lib/depcomp (xlc): New depmode. * NEWS, THANKS: Update. 2012-03-06 Peter Rosin tests: do not clobber the $CC set by AM_PROG_CC_C_O If $CC is originally a losing compiler, AM_PROG_CC_C_O will modify $CC. "$MAKE -e" will then clobber this modified $CC and reintroduce the raw losing compiler causing the test to fail, as subdir-objects is in effect. * tests/yacc-dist-nobuild-subdir.test: Drop -e from the $MAKE invocations. This is safe since DISTCHECK_CONFIGURE_FLAGS is not specified in the Makefile and since the YACC override is carried over from the configure invocation into the Makefile making it redundant to specifiy it again in the environment for $MAKE. 2012-03-06 Peter Rosin tests: explicitly state that our lexers do not require unistd.h By default, GNU flex generates code that is dependent on unistd.h, which is not portable to non-ANSI systems causing spurious test failures. * tests/cond35.test (tscan.l): Define YY_NO_UNISTD_H. * tests/lex-clean.test (lexer.l): Likewise. * tests/lex-depend.test (joe.l): Likewise. * tests/lex-lib-external.test (foo.l): Likewise. * tests/lex-lib.test (foo.l): Likewise. * tests/lex-libobj.test (foo.l): Likewise. * tests/lex-line.test (zardoz.l): Likewise. * tests/lex-nodist.test (lexer.l): Likewise. * tests/lex-noyywrap.test (foo.l): Likewise. * tests/lex-pr204.test (lexer.l): Likewise. * tests/lex-subobj-nodep.test (subl/sl.l): Likewise. * tests/lex3.test (foo.l): Likewise. * tests/lex5.test (foo/foo.l): Likewise. * tests/lexvpath.test (lexer.l): Likewise. * tests/silent-lex.test (foo.l): Likewise. * tests/silent-many-gcc.test (foo5.l): Likewise. * tests/silent-many-generic.test (foo5.l): Likewise. * tests/lex-clean-cxx.test (parsefoo.lxx): Likewise. Also specify the never-interactive option to prevent usage of the non-ANSI function isatty(3) (from unistd.h). * tests/lex-depend-cxx.test (joe.ll): Likewise. * tests/README: Describe these quirks. 2012-03-06 Peter Rosin Merge branch 'msvc' * msvc: scripts: support -I -L and -l for cl in compile 2012-03-06 Peter Rosin scripts: support -I -L and -l for cl in compile POSIX mandates that the compiler accepts a space between the -I, -l and -L options and their respective arguments. See http://pubs.opengroup.org/onlinepubs/000095399/utilities/c99.html * lib/compile (func_cl_dashl): New function with factored out code for implementing the -l option for the cl wrapper. (func_cl_dashL): New function with factored out code implementing the -L option for the cl wrapper. (func_cl_wrapper): Use func_cl_dashl to implement both -l and -l, and func_cl_dashL to implement both -L and -L. Also add support for -I . (scriptversion): Update. * tests/compile3.test: Test both with and without a space between -I, -l and -L and their respective arguments. * tests/compile5.test: Likewise. * tests/compile6.test: Likewise. * tests/compile3.test: Likewise. * NEWS: Update. 2012-03-04 Stefano Lattarini maint: drop 'Automake::Struct' module Now that we require Perl 5.6, we can drop the 'Automake::Struct' module, which was basically just a backport of Perl 5.6's 'Class::Struct' to Perl 5.5. * automake.in: Use 'Class::Struct', not 'Automake::Struct'. * lib/Automake/Struct.pm: Delete. * lib/Automake/Makefile.am (dist_perllib_DATA): Remove it. 2012-03-04 Stefano Lattarini maint: require perl 5.6 throughout That version of perl is quite old already, so it should be OK to require it. More importantly, it is the older perl versions the developers can currently use for testing, thus it's safer and more honest to just require it throughout. And anyway, we were already requiring it in Automake::Getopt, which implied that both automake and aclocal wouldn't have worked in practice with an older perl version. See also the discussion related to automake bug#10925. * lib/Automake/ChannelDefs.pm: Adjusted to require perl 5.6. * lib/Automake/Channels.pm: Likewise. * lib/Automake/Condition.pm: Likewise. * lib/Automake/Configure_ac.pm: Likewise. * lib/Automake/DisjConditions.pm: Likewise. * lib/Automake/FileUtils.pm: Likewise. * lib/Automake/General.pm: Likewise. * lib/Automake/Item.pm: Likewise. * lib/Automake/ItemDef.pm: Likewise. * lib/Automake/Location.pm: Likewise. * lib/Automake/Options.pm: Likewise. * lib/Automake/Rule.pm: Likewise. * lib/Automake/RuleDef.pm: Likewise. * lib/Automake/Struct.pm: Likewise. * lib/Automake/VarDef.pm: Likewise. * lib/Automake/Variable.pm: Likewise. * lib/Automake/Version.pm: Likewise. * lib/Automake/Wrap.pm: Likewise. * lib/Automake/XFile.pm: Likewise. 2012-03-04 Stefano Lattarini cosmetics: remove useless escaping for "'" character 2012-03-04 Stefano Lattarini test defs: remove redundant and unused requirements * tests/defs (xsi-bin-sh, xsi-shell): Remove these requirements, they have never been used. (cygpath, cscope): Recognizing these explicitly is mostly redundant; just merge them with the default "catch all" rule, and adjust that accordingly. (bzip2): Adjust some outdated comments. 2012-03-03 Stefano Lattarini tests: fix spurious failure on case-insensitive file systems See automake bug#10866. * tests/java-uninstall.test: Relax the test a little to cater to case-insensitive file systems, like HFS+ on MacOS X. 2012-03-02 Stefano Lattarini news: more about planned backward incompatibilities * NEWS (Future backward-incompatibilities): Starting from the next major Automake versions, the parallel testsuite driver will be used by default, instead of the serial testsuite driver as in the past. 2012-03-02 Stefano Lattarini maintcheck: fix few spurious failures * syntax-checks.mk: Fix some spurious failures by tightening and/or tweaking few checks so that some false positives end up whitelisted. 2012-03-02 Stefano Lattarini tests: fix spurious failure due to exported MAKEINFO * tests/txinfo30.test: Unset variable MAKEINFO, as its content could take precedence over our faked makeinfo script and cause a spurious failure. Reported as part of automake bug#10866. Add trailing ':' command since we are at it. 2012-03-02 Stefano Lattarini tests: fix spurious failure in a vala test * tests/vala-mix2.test: Append to 'configure.ac' rather than to 'configure.in'. Reported as part of automake bug#10866, and also revealed by "make maintainer-check". 2012-03-02 Stefano Lattarini self checks: relax tests on cleanup Some find(1) implementations have problems operating recursively on directories having subdirectories with null permissions, even when the permissions of such subdirectory should be fixed by find before it descends into them; for example, with this setup: % mkdir a a/b % chmod 000 a/b a command like this: % find a -type d ! -perm -700 -exec chmod u+rwx '{}' ';' fails with this diagnostic on MacOS X 10.7: find: a/b: Permission denied and with this diagnostic on Solaris 10: find: cannot read dir a/b: Permission denied The problem is that our self checks were simply demanding too much from our cleanup trap: our tests never use subdirectories with null permissions, so it doesn't matter if the cleanup trap fails to handle those. Just relax the self checks to avoid such useless testsuite noise. * tests/self-check-cleanup.tap: Only try directories missing write permissions, not with null permission. That should be enough for our usages. 2012-03-02 Peter Rosin Merge branch 'msvc' * msvc: news: add entry about recent 'ar-lib' changes 2012-03-02 Peter Rosin news: add entry about recent 'ar-lib' changes * NEWS: Add information about recent 'ar-lib' changes. 2012-03-02 Peter Rosin scripts: recognize the "q", "s" and "S" actions/modifiers in ar-lib * lib/ar-lib: Implement the "q" (quick) action as a synonym for "r" (replace). Ignore "s" (symbol index) and "S" (no symbol index) when used as modifiers and "s" when used as a command, there is simply no way for Microsoft lib to not update the symbol table index in the archive. (scriptversion): Update. * tests/ar-lib.test: Check the added behavior. Also add checks for the recently added "u" (update) and "v" (verbose) modifiers. 2012-03-02 Peter Rosin Merge branch 'fix-vala-test' * fix-vala-test: tests: fix (harmless) botched merge 2012-03-02 Peter Rosin tests: fix (harmless) botched merge Commit v1.11-1750-g9928ea5 of 2012-01-16 (Merge branch 'maint') reordered the macro calls so that AM_PROG_AR ended up after AC_PROG_LIBTOOL, which is not allowed. This error went by undetected since AC_PROG_LIBTOOL was redefined, but that also removed the ordering requirement making the error benign. * tests/vala.test: Put AM_PROG_AR before AC_PROG_LIBTOOL. 2012-03-02 Peter Rosin Merge branch 'maint' into msvc 2012-03-01 Peter Rosin scripts: recognize the "q", "s" and "S" actions/modifiers in ar-lib * lib/ar-lib: Implement the "q" (quick) action as a synonym for "r" (replace). Ignore "s" (symbol index) and "S" (no symbol index) when used as modifiers and "s" when used as a command, there is simply no way for Microsoft lib to not update the symbol table index in the archive. (scriptversion): Update. * tests/ar-lib.test: Check the added behavior. Also add checks for the recently added "u" (update) and "v" (verbose) modifiers. 2012-02-29 Peter Rosin tests: do not try to use ar(1) when $AR points to something else * tests/libobj10.test: Move the archive listing commands to the Makefile, so that $AR - as determined by configure - can be used. * tests/libobj17.test: Likewise. 2012-02-29 Peter Rosin tests: make tests behave for the AR=lib case These below tests were left mostly as-is when AM_PROG_AR was introduced (with libobj16b being the exception, that test was forgotten or has regressed since), in a misguided attempt to not make them diverge from the original problem reports. Modernize them so that they do not FAIL when $AR is Microsoft 'lib'. * tests/libobj16b.test: Add AM_PROG_AR to configure.ac and remove the no-longer-needed -Wno-extra-portability option when invoking automake. * tests/pr300-lib.test: Likewise. * tests/pr300-ltlib.test: Likewise. * tests/pr307.test: Likewise. * tests/pr401.test: Likewise. Also fetch the 'ar-lib' script. * tests/pr401b.test: Likewise. * tests/pr401c.test: Likewise. 2012-02-29 Stefano Lattarini Merge branch 'maint' * maint: vala: fix 'valac' calls for projects with mixed Vala/C vala: expose automake bug#10894 2012-02-29 Dave Goodell (tiny change) Stefano Lattarini tests: fix spurious failure with Portland Compilers * tests/silent-many-generic.test (configure.ac): Be more careful in the workaround to avoid spurious failures with C++ compilers containing the string "CC" in their names; this avoids spurious failures with at least the Sun Studio C++ compiler (when named "sunCC") and the Portland Group C++ Compiler ("pgCC"). Also handle arguments with whitespace correctly in the 'am--cxx' temporary wrapper. * THANKS: Update. 2012-02-28 Stefano Lattarini tests: fix spurious failure when dependency tracking is unavailable Report by Dave Goodell. See automake bug#8880. * tests/yacc-dist-nobuild.test: Run the sanity check that aims at ensuring we really cover the expected code paths in a new build directory, to avoid spurious failures when automatic dependency tracking is disabled. 2012-02-27 Stefano Lattarini vala: fix 'valac' calls for projects with mixed Vala/C Fixes automake bug#10894. * automake.in (lang_vala_finish_target): Strip non-vala files from the dependencies of vala stamps, and from the invocation of valac compiler. Related refactorings. * tests/Makefile.am (XFAIL_TESTS): Remove 'vala-mix2.test'. 2012-02-27 Stefano Lattarini vala: expose automake bug#10894 * tests/vala-mix2.test: New test. * tests/list-of-tests.mk: Add it. * tests/Makefile.am (XFAIL_TESTS): Likewise. * THANKS: Update. 2012-02-27 Stefano Lattarini cosmetics: remove a duplicated copyright line * tests/list-of-tests.mk: Remove a duplicated copyright line. 2012-02-27 Stefano Lattarini coverage: --program-transform shouldn't transform too much Stemmed from a report by Vladimir 'φ-coder/phcoder' Serbinenko: * tests/transform3.test: New test, checking that --program-transform does not transform too much stuff (in particular, pkglibexecdir, pgklibdir and pkgdatadir). * tests/list-of-tests.mk: Add it. * THANKS: Update. 2012-02-26 Stefano Lattarini tests: avoid spurious failure (line too long in awk) * tests/parallel-tests-many.test: Use perl, not awk, to write the Makefile.am with (deliberately) overly long TESTS content, as some inferior awk implementations (e.g., Solaris 10 /usr/bin/awk) are unable to handle the long lines used there and die with errors like: "awk: string too long near line 5". 2012-02-26 Stefano Lattarini tests: avoid spurious failures when awk is "traditional awk" * tests/Makefile.am (do_subst): Also substitute '@AWK@'. * tests/defs-static.in ($AWK): New, user-overridable and defaulting to the substituted '@AWK@'. * tests/defs (fetch_tap_driver): When the shell+awk implementation of the TAP driver is required, export AM_TAP_AWK to point to a properly capable awk, since the default awk might be a "traditional" implementation, which won't be enough for our driver. This is the right fix, since a proper setting of AM_TAP_AWK in the driver's environment is expected (and documented to be required) in real world uses of 'tap-driver.sh'. 2012-02-26 Stefano Lattarini tests: avoid many spurious failures for shells with busted 'set -e' Some versions of the BSD Korn shell wrongly bail out when the 'errexit' shell flag is active and the left-hand command in a "&&" list fails and that list is the *last* command of an entry in a "case" statement. * tests/defs (gcc, g++, gcj): Work around that. 2012-02-26 Stefano Lattarini aclocal: don't create /usr/share/aclocal as empty Related to automake bug#10791. Since automake 1.11.2, aclocal no longer succeeds if the system acdir '${datadir}/aclocal' (i.e., "/usr/share/aclocal" when ${prefix} is "/usr") does not exist. So we now have a directory *installed empty by default*, but whose existence is required by aclocal in order for it to function at all. This might be confusing, and sounds like asking for trouble in the long term. So we now also install a simple README file in that directory, which briefly explains its purpose and warn that its existence is required by the normal aclocal functioning. * m4/acdir/README: New file. * m4/Makefile.am (dist_system_ac_DATA): Add it. * m4/acdir/.placeholder: Delete, no more needed. * m4/Makefile.am (EXTRA_DIST): Remove it. * THANKS: Update. 2012-02-26 Stefano Lattarini hacking: document format for git commit messages * HACKING (Writing a good commit message): New section. (Working with git): A related minor adjustment. 2012-02-25 Stefano Lattarini docs: improve 'dist-hook' documentation * doc/automake.texi (The dist Hook): Explicitly document the fact that the dist-hook should account for the case where the source tree is read-only, mostly for the benefit of distcheck. Since we are at it, do some minor unrelated rewordings, and remove obsolescent advice. Motivated by the discussion on automake bug#10878. * tests/disthook.test: New test. * tests/disthook-perms.test: Delete as obsolete. * tests/list-of-tests.mk: Adjust. 2012-02-25 Stefano Lattarini docs: improve "make distcheck" documentation * doc/automake.texi (Checking the Distribution): The fact that "make distcheck" uses a read-only srcdir wasn't documented clearly enough here. Fix that. Since we are at it, be more explicit about the steps undertaken by "make distcheck", and re-organize this section a bit. Motivated by the discussion on automake bug#10878. (distcleancheck): Rename this node (in the "FAQ" section) ... (Errors with distclean): ... to this. Add a proper "FIXME" comment. 2012-02-25 Stefano Lattarini cosmetics: proper capitalization and full stops in 'm4/depend.m4' 2012-02-25 Stefano Lattarini coverage: dist-hook and distcheck-hook can modify file permission See automake bug#10878. * tests/dist-hook-perms.test: New test, checking that the user can use the 'dist-hook' target to modify permissions of distributed files before putting them in the distribution tarball. * tests/distcheck-writable-srcdir.test: New test, checking that the user can use 'distcheck-hook' to ensure his packages is built by "make distcheck" with a writable srcdir. This goes against the GNU Coding Standards, but some package authors might not care about them too much, and it's nice to support their use case too. * tests/list-of-tests.mk: Add them. 2012-02-25 Jim Meyering tests: avoid spurious failure when gcj is not installed Since yesterday's commit, v1.11-2019-g4d2bf42, the gcj4 test would fail when gcj is not installed. * tests/defs-static.in (GNU_GCJ, GNU_GCJFLAGS): Define. * tests/Makefile.am (do_subust): Add those to the list of substituted symbols. 2012-02-24 Stefano Lattarini tests: look for GNU Java compiler at configure time Do this for consistency with what is done with other compilers. * configure.ac: Look for GNU java compiler at configure time. * tests/defs (gcj): Adjust and simplify. ($am__tool_prefix): Remove definition, it's not used anymore. 2012-02-24 Stefano Lattarini refactor: in Automake::Options (no semantic change) * lib/Automake/Options.pm: Prefer leading spaces to leading tabs throughout. Minor whitespace and comment changes. (_process_option_list): Simple refactoring to make the code more pleasant to read and easier to modify in the future. This refactoring also reduces code duplication, with the help of ... (_option_must_be_from_configure, _is_valid_easy_option): ... these new internal subroutines. * tests/tar3.test: Enhance. * tests/silent-amopts.test: New, checks that automake complains if the 'silent-rules' option is used in AUTOMAKE_OPTIONS. * tests/list-of-tests.mk: Add it. 2012-02-24 Stefano Lattarini cosmetics: typofixes and whitespace changes * configure.ac: Fix a typo in comments. * aclocal.in: Get rid of latest form-feed (^L) usages. * automake.in: Likewise. 2012-02-24 Stefano Lattarini tests: looks for GNU compilers at configure time This way, if the generic C compiler determined configure time is recognized to be the GNU C compiler, we can reuse it instead of looking for a compiler named "gcc" (over and over again) in the test scripts requiring the GNU C compiler. Ditto for the C++, Fortran, and Fortran 77 compilers. This change will improve coverage by allowing us to more easily use non-default GNU compilers throughout the testsuite. And as a bonus, this change also removes a weakness from our testsuite that could cause spurious failures when flags passed to the generic compilers were erroneously reused for the GNU compilers; see automake bug#10859. * configure.ac: Look for the GNU compilers explicitly. Improve some configure output and diagnostic since we are at it. * tests/defs-static.in ($GNU_CC, $GNU_CXX, $GNU_FC, $GNU_F77): Initialize with the values determined at configure time (while allowing user overrides). * tests/Makefile.am (do_edit): Also substitute the configure-time values of GNU_CC, GNU_CXX, GNU_FC and GNU_F77. * tests/defs (gcc, g++, gfortran, g77): Use the values for the GNU compilers determined at configure time (i.e., $GNU_CC for the GNU C compiler, and so on). 2012-02-24 Stefano Lattarini docs, news: document planned removal of obsolete macros and features * NEWS (Future backward-incompatibilities): Document planned removal of several superseded and/or obsoleted macros, of the $(mkdir_p) variable and @mkdir_p@ substitution, and of the support for the two- or three-arguments invocation forms of AM_INIT_AUTOMAKE. * doc/automake.texi: Likewise. 2012-02-24 Stefano Lattarini docs: remove reference to lzma support, it has been removed Support for lzma compression in distribution tarball has been removed in commit 'v1.11-1674-g02e9072' of 01-01-2012, "dist: remove support for lzma (superseded by xz and lzip)", but was still documented in the manual. * doc/automake.texi: Remove references to the 'dist-lzma' option and to the lzma compression support. 2012-02-24 Stefano Lattarini cosmetics: fixlet in comment in automake * automake.in ($configure_dist_common): In the associated comment, refer to scanning of 'configure.ac', not 'configure.in'. 2012-02-24 Stefano Lattarini maint: assume 'test -x' is portable * lib/Makefile.am (installcheck-local): To verify that the installed scripts are actually executable, simply use 'test -x', instead of resorting to perl and its '-x' file operator. Today, 'test -x' should today be portable to any non-museum system. Since we are at it, improve diagnostic in case of failure. 2012-02-24 Stefano Lattarini deptrack: avoid few forks in configure (minor optimization) * m4/depend.m4 (_AM_DEPENDENCIES): Use 'echo > file' instead of 'touch file' to ensure the creation of a dummy file. Adjust the comment that explains why we can't simply use ': > file': the problem this latter idiom tickles is present also with Solaris 10 /bin/sh, not merely with Solaris 8 /bin/sh. 2012-02-23 Stefano Lattarini maintcheck: remove an obsolete check * syntax-checks.mk (sc_perl_local_no_parens): Remove, we don't even allow the use of local but for the '$_' and '$~' special variables. (syntax_check_rules): Adjust. 2012-02-23 Stefano Lattarini news: update w.r.t. change in quoting format * NEWS (New in 1.11.1a): State that we prefer to quote 'like this' or "like this" rather than `like this', as according to the new GCS recommendations. 2012-02-23 Stefano Lattarini automake: do not quote `like this', as per GCS recommendation * automake.in: Convert comments, diagnostic and help screen to the use of new quoting format 'like this' or "like this" rather than `like this'. * tests/stdlib2.test: Adjust. * tests/ltinstloc.test: Likewise. * tests/location.test: Likewise. * tests/libtool8.test: Likewise. * tests/ldadd.test: Likewise, and prefer trailing ':' over trailing 'Exit 0'. 2012-02-23 Stefano Lattarini aclocal: do not quote `like this', as per GCS recommendation * aclocal.in: Convert comments, diagnostic and help screen to the use of new quoting format 'like this' or "like this" rather than `like this'. 2012-02-23 Stefano Lattarini pm: do not quote `like this', as per GCS recommendation This patch converts the internal perl modules used by automake and aclocal to the use of new quoting format 'like this' or "like this" rather than `like this'. * 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/Item.pm, lib/Automake/Rule.pm, lib/Automake/Getopt.pm, lib/Automake/Options.pm, lib/Automake/Struct.pm, lib/Automake/VarDef.pm, lib/Automake/Variable.pm, lib/Automake/Version.pm, lib/Automake/XFile.pm: Update and adjust quoting format throughout, in comments and diagnostic. Some minor related rewordings and reformatting since we are at it. 2012-02-23 Stefano Lattarini m4: do not quote `like this', as per GCS recommendation This patch converts the files comprising the automake's own build system to the use of new quoting format 'like this' or "like this" rather than `like this'. * m4/auxdir.m4, m4/ccstdc.m4, m4/depend.m4, m4/depout.m4, m4/tar.m4, m4/init.m4, m4/maintainer.m4, m4/make.m4, m4/missing.m4, m4/vala.m4, m4/mkdirp.m4, m4/sanity.m4, m4/silent.m4, m4/strip.m4: Update and adjust quoting format throughout, in comments and diagnostic. Some minor related rewordings and reformatting since we are at it. Bump serial numbers. 2012-02-23 Stefano Lattarini build: do not quote `like this', as per GCS recommendation This patch converts the files implementing the automake's own build system to the use of new quoting format 'like this' or "like this" rather than `like this'. * bootstrap, configure.ac, syntax-checks.mk, Makefile.am, lib/Makefile.am, m4/Makefile.am, syntax-checks.mk: Update quoting format throughout, in comments and diagnostic. Some minor related rewordings and reformatting since we are at it. 2012-02-23 Stefano Lattarini hacking: update advice w.r.t. release process * HACKING: Don't describe the obsolete 'git-release' target anymore. Instead, document the new and improved targets 'git-tag-release' and 'git-upload-release' (introduced in commit v1.11-674-gaf5f939 of 25-01-2012, "release: revamp rules to tag and upload the releases"). 2012-02-23 Stefano Lattarini hacking: do not quote `like this', as per GCS recommendation * HACKING: Quote 'like this' or "like this", not `like this'. This is done for consistency with the new recommendations in the GNU Coding Standards, and because I've come to actually prefer the '...' and "..." quoting format over the `...' one. 2012-02-23 Stefano Lattarini am: do not quote `like this', as per GCS recommendation This patch converts the automake-provided '*.am' fragments, and related files, to the use of new quoting format 'like this' or "like this" rather than `like this'. * lib/am/check.am: Update quoting format throughout, in comments and diagnostic. Some related rewordings, reformatting, and removal of redundant commands since we are at it. * lib/am/configure.am: Likewise. * lib/am/dejagnu.am: Likewise. * lib/am/depend2.am: Likewise. * lib/am/distdir.am: Likewise. * lib/am/inst-vars.am: Likewise. * lib/am/install.am: Likewise. * lib/am/lang-compile.am: Likewise. * lib/am/lisp.am: Likewise. * lib/am/ltlib.am: Likewise. * lib/am/mans.am: Likewise. * lib/am/progs.am: Likewise. * lib/am/remake-hdr.am: Likewise. * lib/am/subdirs.am: Likewise. * lib/am/tags.am: Likewise. * lib/am/texi-vers.am: Likewise. * lib/am/texibuild.am: Likewise. * lib/am/texinfos.am: Likewise. * lib/am/yacc.am: Likewise. 2012-02-23 Stefano Lattarini tests: quote 'like this', not `like this', as per GCS recommendation This patch converts the automake testsuite and related files, to the use of new quoting format 'like this' or "like this" rather than `like this'. This is done for consistency with the new recommendations in the GNU Coding Standards, and, well, because I've come to actually prefer the '...' and "..." quoting formats over the `...' one. * tests/README: Update quoting format throughout. Remove some "excessive" use of quoting, and throw in minor rewording where appropriate. * tests/Makefile.am: Likewise, for comments. * tests/CheckListOfTests.am: Likewise. * tests/defs-static.in: Likewise. * tests/defs: Likewise. * tests/trivial-test-driver: Likewise. * Many tests/*.tap, tests/*.test and tests/*.sh files: Likewise, and for the diagnostic and informational messages as well. * tests/gen-testsuite-part: Likewise, and for the generated tests as well. 2012-02-22 Stefano Lattarini spy: "rm -f" and "rm -rf" without args are portable According to recent testing by Eric Blake, it seems that all non-museum rm(1) implementations don't complain if called without file operands, *if* the '-f' option is used. This behaviour will likely be mandated by future versions of the POSIX standard as well. We'd like to start assuming this rm(1) behaviour in future Automake releases, in order to simplify some automake-provided cleanup rules. So, for the moment, we add a new "spy" test in our test suite, to try ensuring that all the rm(1) implementation we encounter "in the wild" truly behaves as expected in this regard. For more references, see this discussion on the bug-autoconf list: which sprang from coreutils bug#10819: and brought to the POSIX issue#542: which has been accepted and will ensure that future version of the POSIX standards will mandate that 'rm' shouldn't complain if called without file operands, when the '-f' option is in use. * tests/spy-rm.test: New test. * tests/list-of-tests.mk: Add it. 2012-02-22 Stefano Lattarini tests: avoid spurious failures under "make distcheck" * tests/tap-setup.sh: Pass also '-f' option to 'cp' invocations, so that files that have already been copied in without write permissions will still be overwritten where needed, instead of causing a spurious testsuite failure. Issue seen when the testsuite is run under "distcheck". * tests/defs (get_shell_script): Remove target file before overwriting it, for the same reason. Rework code flow a bit since we are at it. 2012-02-22 Stefano Lattarini fixup: avoid spurious failure for 'parallel-tests-many.test' * tests/parallel-tests-many.test: Adjust grepping of "make check" and "make recheck" output to match the new format of the testsuite summary. Remove redundant 'set -e' call since we are at it. 2012-02-22 Stefano Lattarini tests: prefer 'configure.ac' over 'configure.in' With this change, our testsuite now uses 'configure.ac' as the name for the typical autoconf input, instead of the obsolescent 'configure.in' (which has been deprecated for several years, at least since autoconf 2.50). Most of the test cases changed by this commit have been automatically modified with this sed command (using GNU sed): sed -i 's/\/configure\1.ac/g' * syntax-checks.mk (sc_tests_no_configure_in): New syntax check. (syntax_check_rules): Add it. * tests/defs: Create stub for autoconf input in 'configure.ac', not in 'configure.in'. Adjust comments. ($AUTOCONF, $AUTOHEADER, $AUTORECONF): Remove workaround for the infamous debian autoconf wrapper: we don't need such workaround anymore now that we name our autoconf input as 'configure.ac'. For more information, see commit v1.11-564-g63da492 "test defs: hack to support autoconf-wrapper programs" of 16-12-2011. * tests/README: Use 'configure.ac', not 'configure.in'. * Many many tests: Likewise. * tests/backcompat3.test: Adjust to avoid spurious failures. * tests/backcompat5.test: Likewise. * tests/missing6.test: Likewise. * tests/backcompat6.test: Likewise, and extend a bit since we are at it. 2012-02-22 Stefano Lattarini coverage: expose automake bug#7868 Expose the command-line length limit issue that can affect the Automake-generated parallel-tests harness, especially on systems where this limit is smaller (e.g., MinGW/MSYS). Suggestion by Bob Friesenhahn. * tests/parallel-tests-many.test: New test. We have verified that it actually exposes the bug#7868, as it passes when we opportunely reduce the number of test cases in $(TESTS). Checked on NetBSD 5.1 64bit, Debian unstable 32bit, Solaris 10 64bit and Cygwin 1.5 32bit. * tests/list-of-tests.mk (handwritten_TESTS): Add it. * tests/Makefile.am (XFAIL_TESTS): Likewise. 2012-02-21 Stefano Lattarini tests: remove obsoleted "icc" requirement * tests/defs (icc): This requirement is not used anymore by any test case, so remove it. 2012-02-21 Stefano Lattarini readme: fix typo in tests/README 2012-02-21 Stefano Lattarini tests: "make installcheck" shouldn't run the testsuite twice * Makefile.am (installcheck-local): Remove. The "installcheck" target provided by automake is already a recursive target, so there's no need to have an 'installcheck-local' recipe that manually recurse into 'tests/'. In fact, such a manual recursion was causing the testsuite to be run twice by "make installcheck". 2012-02-21 Stefano Lattarini news: minor fixlets and reorganization * NEWS: Get rid of form-feed characters (^L) throughout the file. Use separator lines instead (composed by 76 '~' characters), or just an extra blank lines for older less verbose entries (those predating the 1.8 release). (New in 1.11.3): Move description of planned future backward incompatibilities that won't make it to 1.12 ... (New in 1.11a): ... in here. Quote 'like this', not `like this'. Other minor miscellaneous rewordings and fixlets. 2012-02-21 Stefano Lattarini cosmetics: few typofixes 2012-02-21 Stefano Lattarini automake: new option 'serial-tests' Currently, automake offers a 'parallel-tests' option to enable the use of the parallel testsuite harness in the generated Makefiles, but no option to explicitly state the intention of using the older serial testsuite driver (which is currently the default). This makes the parallel test harness seems like a second-class citizen (while actually it should be the other way around); more importantly, it will prevent us from making the parallel harness be the default one in future automake versions, since the users of the serial harness would then have no way to instruct automake to continue using it. We solve all of this by introducing a new 'serial-tests' option. * lib/Automake/Options.pm (_process_option_list): Recognize the new option, and related minor refactoring. * tests/serial-tests.test: New test. * tests/list-of-tests.mk: Add it. * doc/automake.texi: Update. * NEWS: Likewise. 2012-02-21 Stefano Lattarini tests: fix a timestamp issue, and other minor buglets Reported by Panther Martin in automake bug#10848. * tests/conffile-leading-dot.test: Add a proper '$sleep' invocation, to avoid spurious failures on fast systems without sub-second timestamp resolutions. Add other minor related and unrelated improvements and fixlets since we are at it. 2012-02-21 Stefano Lattarini automake: new option to print location of scripts and data files With this change, we add a new automake option '--print-libdir' that prints (on stdout) the path of the directory containing the Automake-provided scripts (e.g., 'missing' and 'install-sh') and data files (e.g., INSTALL or texinfo.tex). Suggestion by Nick Bowler. See also automake bug#10473. * automake.in (parse_arguments): Handle the new option. (usage): Mention it. * doc/automake.texi (automake Invocation): Document it. * NEWS: Update. * tests/print-dir.test: New test. * tests/list-of-tests.mk: Add it. 2012-02-19 Stefano Lattarini docs: prefer the awk+sh TAP driver over the perl one We had completed our shell+awk implementation of the TAP driver months ago, but never documented it in the manual, continuing to document only the "prototype" written in perl instead. Time to fix this, before the 1.12 release. * doc/automake.texi (Use TAP with the Automake test harness): Now we document the use of the awk+shell implementation of our TAP driver, rather than of the perl one. * tests/tap-doc2.test: Adjust to use the shell+awk implementation of the TAP driver. 2012-02-19 Stefano Lattarini tests: be stricter in determining whether "make -jN" works * tests/parallel-tests3.test: With at least Solaris 10 CCS make, "make -jN" does not fail, but merely prints a warning about "DistributedMake -j option" being ignored. This was causing this test case to fail spuriously. So we now use a stricter check in determining whether make works in parallel mode. Since we are at it, we try to cater also to Sun Distributed make, which understands "-j N" but *not* "-jN". 2012-02-19 Stefano Lattarini tests: don't trust exit status of "make -k" * tests/parallel-tests-extra-programs.test: Unless $MAKE is GNU make, don't trust the exit status of "$MAKE -k". Fixes a spurious failure with OpenBSD 5.0 make and NetBSD 5.1 make. 2012-02-19 Stefano Lattarini tests: fix race condition in 'self-check-dir.tap' * tests/self-check-dir.tap (do_check): Don't fail if "ls -l" fails. 2012-02-18 Stefano Lattarini parallel-tests: fix another BSD parallel make issue When BSD make is run in parallel mode, it apparently strips any leading directory component from the automatic variable '$*' (of course, against what POSIX mandates). This was causing FreeBSD 9.0 make and NetBSD 5.1 make to spuriously fail with automake-generated test harnesses if subdir tests were present *and* make was being run in parallel mode. This issue affected also the Automake own testsuite. * lib/am/check2.am (am__set_b): New internal variable. (%OBJ%, %EXT%.log, %EXT%$(EXEEXT).log): Use it to work around the described BSD make issue. * tests/parallel-tests3.test: Enhanced to expose the bug. * tests/parallel-tests-subdir.test: Enhance a little, since we are at it. * NEWS: Update. 2012-02-18 Stefano Lattarini tests: avoid FreeBSD make VPATH issues in more tests (see bug#7884) See also similar change 'v1.11-755-g818bc40' of 07-02-2012, "tests: work around bug#7884 in many yacc/lex tests". The rationale for this change is basically the same. * tests/lex-lib-external.test: Use "yl_distcheck" instead of bare "$MAKE distcheck" to avoid extra failures caused by automake bug#7884. * tests/lex-noyywrap.test: Likewise. * tests/lex-libobj.test: Likewise. * tests/man6.test: This test suffers from the same FreeBSD make incompatibility in VPATH handling that is the source of automake bug#7884. Since this is caused by rules that are defined in the Makefile.am by the test itself, rather that being generated by automake, the best thing to do is to skip this test if we detect the presence of said make incompatibility (through the function 'useless_vpath_rebuild'). * tests/man8.test: Likewise. 2012-02-18 Stefano Lattarini cosmetics: remove extra trailing whitespace in configure.ac 2012-02-18 Peter Rosin Merge branch 'yacc-quote-fix' 2012-02-17 Stefano Lattarini tests: avoid spurious failure with FreeBSD make * tests/parallel-tests-extra-programs.test: FreeBSD make seems to write (some) diagnostic messages on stdout instead than on stderr, so now we also grep the stdout for the expected make diagnostic. 2012-02-17 Peter Rosin tests: fix broken quoting in the generated yacc grammar Fixes problem introduced by v1.11-1912-ge0906b7 "tests: avoid spurious failure with non-bison yacc" from 12-02-2012. * tests/suffix10.tap (Makefile.am): Avoid outer single quotes when we need to produce single quotes. 2012-02-17 Stefano Lattarini fixup: always use correct path for automake/aclocal wrappers Otherwise, bootstrapping from a git checkout won't work anymore. Issue introduced in today's commit 'v1.11-1974-ga98e58f'. * doc/Makefile.am ($(srcdir)/amhello-1.0.tar.gz): Export PATH in a way that makes the automake and aclocal wrappers truly accessible (the location of this wrappers has been modified in a recent commit, but this makefile hadn't been updated accordingly). (update_mans): Likewise. 2012-02-17 Stefano Lattarini tests: fix spurious failure in VPATH build * tests/self-check-dir.tap: Adjust to handle running in a VPATH build correctly. 2012-02-17 Stefano Lattarini tests: fix many spurious failures in VPATH builds The 'is' helper script, used by some test cases since commit 'v1.11-1830-g96401cb' of 08-02-2012, "tests: better way to compare lists in Makefile rules", is not available in VPATH builds, since it resides in $(srcdir), nor in $(builddir), and only $(builddir) is added to $PATH in the test script. This was causing spurious failures. Solve this issue by re-organizing a bit the layout and placing of wrapper and help scripts used by the testsuite. This reorganization is by no mean complete, but should be enough to solve the VPATH issues. * tests/is: Moved ... * tests/ax/is: ... here * tests/automake.in: Moved ... * tests/wrap/automake.in: ... here. * tests/aclocal.in: Moved ... * tests/wrap/aclocal.in: ... here. * tests/defs-static.in ($am_bindir, $PATH): Adjust. * configure.ac (AC_CONFIG_FILES): Likewise. * tests/Makefile.am (EXTRA_DIST, check_SCRIPTS): Likewise. * tests/get-sysconf.test: Likewise. * .gitignore: Likewise. 2012-02-17 Stefano Lattarini tests: relax a test to cater to NetBSD make * tests/parallel-tests-empty-testlogs.test: When $(TESTS) is empty, NetBSD 5.1 make ends up defining $(TESTS_LOGS) to ".log" rather than to the empty string (as would be expected). This behaviour was causing a check in this test case to fail. But that check was in fact overly strict, since our recipes are smart enough to work around the botched-up substitution. Also, the failure wasn't a regression from Automake 1.11, since that version too would have triggered the same error with NetBSD 5.1 make. So we just relax the test a little to avoid extra noise in the testsuite. 2012-02-17 Stefano Lattarini Merge branch 'maint' * maint: dryrun: $(am__dry_run) not confused by metachars in $(MAKEFLAGS) 2012-02-17 Stefano Lattarini dryrun: $(am__dry_run) not confused by metachars in $(MAKEFLAGS) * lib/am/header-vars.am (am__make_dryrun): Be smarter and more correct in handling shell metacharacters in $(MAKEFLAGS). 2012-02-17 Stefano Lattarini tests: TAP-based tests should error if no plan was specified After this change, it will still be OK for TAP-based tests not to report any explicit TAP plan -- but they should state *explicitly* that they want to do so, by calling the 'plan_' function with a proper argument (currently, either "later" or "unknonwn"). Motivated by a recent issue introduced by yesterday's commit 'v1.11-1959-g0699a84' (pointed out by Peter Rosin, and fixed by follow-up commit 'v1.11-1961-gea44190'). * tests/tap-functions.sh (plan_): Get rid of '$have_tap_plan_', and refactor use and initialization of '$planned_' in a way that will allow client script to get more information on which kind of plan (if any) has been declared by the former 'plan_' invocation. (skip_all_): Adjust. * tests/defs (exit trap): Only print the "lazy" TAP plan if 'plan_' has requested that *explicitly*. * syntax-check.mk (sc_tests_tap_plan): Remove: it's obsolete now, since a TAP-based test that doesn't call 'plan_' explicitly won't print any TAP plan, and the TAP driver will catch that and report an error. (syntax_check_rules): Adjust. 2012-02-17 Stefano Lattarini tests: expose $(am__dry_run) limitations Currently, the internal $(am__dry_run) macro can fail in weird ways when $(MAKEFLAGS) contains shell metacharacters. Let's expose this limitation in the testsuite (and fix a couple of related weaknesses since we are at it). * tests/make-dryrun.test: Moved ... * tests/make-dryrun.tap: ... here, converted to TAP, and extended to expose the described limitations. Also ... (am_parallel_tests): Define this so that the 'gen-testsuite-part' script won't generate a useless wrapper script. * test/list-of-tests.mk: Update. 2012-02-17 Peter Rosin cosmetics: fix commit message typo in previous * .git-log-fix: The file is called .git-log-fix, nothing else. 2012-02-17 Peter Rosin fixup: .git-log-fix should not be executable * .git-log-fix: Set mode 644. 2012-02-17 Peter Rosin maint: support amending the generated ChangeLog, and fix a typo * Makefile.am (gitlog_to_changelog_options): Add support for amending the generated ChangeLog. (EXTRA_DIST): Update. * .git-log-fix: New file with things to amend to the generated ChangeLog, starting with a fix for a typo in v1.11-1963-g3b369e6 "maint: use AC_PACKAGE_BUGREPORT to avoid duplication" from yesterday. 2012-02-16 Stefano Lattarini cosmetics: normalize copyright notice in some tests * tests/lisp3.test: Normalize copyright notice to read the same of that of other tests. * tests/lisp4.test: Likewise. * tests/lisp5.test: Likewise. * tests/lisp6.test: Likewise. * tests/lisp7.test: Likewise. * tests/lisp8.test: Likewise. * tests/lispdry.test: Likewise. 2012-02-16 Stefano Lattarini readme: fix grammaro Reported by Eric Blake. * README: Use "also has" instead of "has also"; the former sounds better to a native speaker. 2012-02-16 Stefano Lattarini maint: use AC_PACKAGE_BUGREPORT to avoid duplication * configure.ac: In the message reporting whether the user is about to build an alpha or beta version, use the autoconf-provided AC_PACKAGE_BUGREPORT macro instead of duplicating the bug reporting address. 2012-02-16 Stefano Lattarini readme: update and renew * README: Remove stale or now-obvious description and advices. Add reference to the INSTALL file. Some minor rewordings. 2012-02-16 Stefano Lattarini depcomp tests: fix up today's botched commit Today's commit 'v1.11-1959-g0699a84' has caused the generated 'depcomp*.tap' tests to call the 'plan_' function *before* it is defined, and has also caused the extra checks required for better libtool coverage to be run only when libtool is *not* in use, rather than the other way around. Fix this mess. Report by Peter Rosin. * tests/gen-testsuite-part: Include './defs' in the generated tests, rather than doing so from 'depcomp.sh'. Adjust the count of TAP tests for 'depcomp-lt-auto.test' (it's 84, not 72). * tests/depcomp.sh: Adjust accordingly, and fix inverted logic about the decision of when to run extra checks for libtool. 2012-02-16 Stefano Lattarini build: clearer diagnostic if "make" is invoked before "./configure" Since a GNUmakefile wrapper has been introduced in our build system, a "make" invocation issued before a "./configure" one has caused GNU make to die with the cryptic message: GNUmakefile:18: Makefile: No such file or directory GNUmakefile:19: /syntax-checks.mk: No such file or directory make: *** No rule to make target `/syntax-checks.mk'. Stop. * GNUmakefile: Detect when we are being run from an unconfigured tree, and give helpful diagnostic. 2012-02-16 Stefano Lattarini depcomp tests: put TAP plan in generated tests This avoids a spurious maintcheck failure, and also simplifies the 'depcomp.sh' helper script a little. * tests/gen-testsuite-part: Create and place also a proper 'plan_' call (to emit the TAP plan) in each generated 'depmod*.tap' test. * tests/depcomp.sh: Remove 'plan_' invocations, and simplify a little since we are at it. 2012-02-16 Stefano Lattarini update-copyright: don't touch COPYING and INSTALL Reported by Peter Rosin. * update-copyright: Also exclude the COPYING and INSTALL files found in the top-level directory. * COPYING, INSTALL: Revert update of copyright years done in today's commit 'v1.11-1948-g641a5a4'. 2012-02-16 Stefano Lattarini maintcheck: whitelist some false positives Instead of tweaking or dumbing down some of our sources or tests in order not to make them spuriously trigger few maintainer checks, we tweak such checks instead. * syntax-checks.mk (sc_tests_overriding_macros_on_cmdline): Also allow the variable 'exp' to be overridden on the make command line. Whitelist the test 'make-dryrun.test' where appropriate. (sc_mkinstalldirs): When whitelisting the 'mkinstalldirs' occurrence in 'lib/Makefile.am', do not look for the exact line number: it is obviously too fragile. 2012-02-16 Stefano Lattarini tests: avoid spurious failure with parallel make * tests/parallel-tests-extra-programs.test: Run make with the '-k' option where appropriate, to ensure it doesn't stop at the first error, which would prevent the building of the extra programs we expect it to build. 2012-02-16 Stefano Lattarini tests: avoid spurious failure on older Cygwin * tests/tap-signal.tap: Sending a SIGQUIT on Cygwin 1.5 can cause a segmentation fault instead (sometimes at least). Don't let this older bug pollute the results of our testsuite. 2012-02-16 Stefano Lattarini fixup: display captured make stdout in 'tap-signal.tap' 2012-02-16 Stefano Lattarini tests: avoid spurious failure in 'suffix3.tap' * tests/suffix3.tap (foo.zoo): This C++ file fails to compile with older g++ (3.4.4) on Cygwin 1.5.25 if we #include . Don't do that, since it's not strictly required, and the "using namespace" directive is already enough to ensure the file contents is valid C++ but invalid C. 2012-02-16 Stefano Lattarini docs: fix typo in description of AM_YFLAGS Report by Akim Demaille. * doc/automake.texi (Program variables): Don't list "-d -t" twice in the examples of valid ways to specify the '-d' flag to Yacc; instead, use "-d -t" and "-t -d". Add missing period. 2012-02-16 Stefano Lattarini tests: another spurious failure with older autoconf fixed * tests/aclocal8.test (configure.in): Also call 'AC_INIT', it's required by some older autoconf versions (e.g., 2.63). * tests/acloca15.test: Likewise. Add trailing ':' command since we are at it. 2012-02-16 Stefano Lattarini tests: fix spurious failure with older autoconf * tests/conffile-leading-dot.test: Relax grepping of 'config.status' stderr, to cater for older autoconf. Issue revealed by a failure with autoconf 2.63 on Cygwin 1.5.25. 2012-02-16 Stefano Lattarini maint: sync auxiliary files from upstream * lib/texinfo.tex: Synced from upstream, by "make fetch". * lib/config.guess: Likewise. * lib/config.sub: Likewise. 2012-02-16 Stefano Lattarini maint: run "make update-copyright" 2012-02-16 Stefano Lattarini maint: add some missing copyright notices * tests/ChangeLog-old: Add copyright notice. * tests/aclocal.in: Likewise. * tests/automake.in: Likewise. * tests/extract-testsuite-summary: Likewise. * tests/prove-runner: Likewise. 2012-02-16 Stefano Lattarini Merge branch 'maint' * maint: update-copyright: don't touch files synced from external packages 2012-02-16 Stefano Lattarini update-copyright: don't touch files synced from external packages * Makefile.am (update-copyright): Do not update copyright years of files synced from external packages, as given by the '$(FETCHFILES)' variable. Silence the recipe since we are at it. 2012-02-16 Stefano Lattarini Merge branch 'extra-dist-tests-ksh-bug' * extra-dist-tests-ksh-bug: tests: fix spurious failure when testing wildcards in EXTRA_DIST 2012-02-16 Stefano Lattarini tests: fix spurious failure when testing wildcards in EXTRA_DIST * tests/extra10.test: Remove the "make distcheck" call, since, at least with GNU make 3.82, it trips on the fact that $(srcdir) is not explicitly used in the wildcard in EXTRA_DIST. 2012-02-15 Stefano Lattarini Merge branch 'maint' * maint: fixup: distribute 'lib/update-copyright' 2012-02-15 Stefano Lattarini fixup: distribute 'lib/update-copyright' While the 'update-copyright' script shouldn't be needed by final users, that's not a good reason to keep it out by the distribution, as doing so might be unhelpful toward occasional but curious users interested in peeking into the automake build system. * lib/Makefile.am (EXTRA_DIST): Distribute 'update-copyright'. 2012-02-15 Stefano Lattarini maint: prefer $(GIT) over hard-coded "git" in maintainer recipes * Makefile.am (update-copyright, autodiffs): Use '$(GIT)' instead of hard-coding 'git'. 2012-02-15 Stefano Lattarini Merge branch 'maint' * maint: maint: add a rule to use gnulib's update-copyright 2012-02-15 Stefano Lattarini Merge branch 'extra-dist-tests-ksh-bug' * extra-dist-tests-ksh-bug: tests: avoid ksh bug for wildcards in EXTRA_DIST 2012-02-15 Stefano Lattarini Merge branch 'yl-work-for-master' * yl-work-for-master: (44 commits) tests: truly use Lex and Yacc selected by configure news: fix grammaros related to Yacc yacc/lex tests: avoid spurious skips with non-GNU make fixup: remove double news entry tests: workaround for shells with broken 'set -e' tests: avoid spurious failure with non-bison yacc tests: fix spurious failures due to missing 'yywrap()' function fixup: list of yacc/lex tests was botched tests: work around bug#7884 in many yacc/lex tests yacc/lex tests: remove an unneeded workaround for bug#8485 yacc/lex tests: avoid too much failures with FreeBSD make yacc-dist-nobuild.test: add reference to bug#7884 yacc tests: fix bug in 'yacc-cxx.test' lex tests: fix spurious link errors on Solaris lex: "make clean" removes .c files from non-distributed .l lex tests: make test on Lex dependency tracking more "semantic" lex tests: remove erroneous check about ylwrap distribution yacc tests: "make clean" removes C++ files from non-distributed .y tests: add a workaround for automake bug#8485 tests: add a couple of inter-tests reference ... 2012-02-15 Stefano Lattarini cscope: is only expected to work with GNU make in VPATH setup The 'cscope' functionality does not properly handle VPATH rewrites; so we explicitly document that, for now, it is only ensured to work with GNU make when doing a VPATH build, and we adjust testsuite requirements accordingly. Issue revealed by a failure of 'cscope.test' with Solaris 10 CCS make. * doc/automake.texi (Tags): Document the limitations of the cscope support. Couple of fixlets to formatting since we are at it. * tests/cscope.test: Converted to TAP, and thus moved ... * tests/cscope.tap: ... here. Only run tests with VPATH builds when using GNU make. Adjust so that no C, C++, Fortran or Java compiler, nor any Emacs program, will be required to run this test. * tests/list-of-tests.mk: Adjust. 2012-02-14 Jim Meyering maint: add a rule to use gnulib's update-copyright * lib/update-copyright: New file, from gnulib. * Makefile.am (FETCHFILES): Add update-copyright to the list. (fetch): Fetch it. (update-copyright): New rule. 2012-02-14 Stefano Lattarini Merge branch 'doc-no-history' * doc-no-history: docs: move chapter on automake history out of main manual 2012-02-14 Stefano Lattarini check: fix test-suite.log formatting with NetBSD sed * lib/am/check.am (am__rst_section): Tweak to ensure en extra final newline is printed also with NetBSD sed. Issue revealed by a failure of 'test-metadata-global-result.test'. * tests/rst-formatting.test: New test, checking the internal variables '$(am__rst_title)' and '$(am__rst_section)'. * tests/list-of-tests.mk: Add it. 2012-02-14 Stefano Lattarini tests: avoid ksh bug for wildcards in EXTRA_DIST Some shells, like NetBSD 5.1 /bin/ksh, have a bug that causes wildcards resulting from an unquoted parameter expansion not to be expanded as expected in some cases: $ touch a b c d $ /bin/sh -c 'var="[ab]" && echo $var' # As expected. a b $ /bin/ksh -c 'var="[ab]" && echo $var' # Oops. [ab] $ /bin/ksh -c 'var="?" && echo $var' # But this as expected. a b c d This was causing a failure in our testsuite. Work around that. See also: * tests/extra11.test: Work around the described issue by using the $(wildcard) builtin in the EXTRA_DIST definition. This is not a problem, since this test was assuming GNU make anyway. Since we are at it, enhance coverage a little by also running "make distcheck". * tests/extra10.test: Similarly, enhance coverage by also running "make distcheck", and fix a minor bug in the process. But continue using a "bare" wildcard expression in EXTRA_DIST, without involving the $(wildcard) builtin, to ensure coverage of similar usages "in the wild". 2012-02-14 Stefano Lattarini Merge branch 'fix-tap-signal-test' * fix-tap-signal-test: fixup: fix test tap-signal.tap to avoid false negatives 2012-02-14 Stefano Lattarini fixup: fix test tap-signal.tap to avoid false negatives Problem introduced by yesterday commit v1.11-1851-g79b2c6a, "tests: avoid yet other spurious failures on NetBSD" * tests/tap-signal.tap: Truly ensure the exit status of the make call under test is correctly reflected in the TAP result displayed by the corresponding 'command_ok_' invocation. 2012-02-14 Stefano Lattarini Merge branch 'maint' * maint: fixup: do not tickle makefile-deps.test with the make_dryrun code gitattributes: custom merge driver for ChangeLog not needed anymore gitattributes: use "union" merge driver for NEWS 2012-02-14 Peter Rosin fixup: do not tickle makefile-deps.test with the make_dryrun code * lib/am/header-vars.am (am__make_dryrun): Avoid code matching '^ *:' in the Makefile, as that tickles makefile-deps.test. 2012-02-14 Stefano Lattarini gitattributes: custom merge driver for ChangeLog not needed anymore * .gitattributes: We don't maintain a version-controlled ChangeLog file anymore, so we have no need to specify a custom merge driver for it anymore. Update accordingly. 2012-02-14 Stefano Lattarini gitattributes: use "union" merge driver for NEWS This should help in reducing the spurious merge conflicts for the NEWS file, which have already caused a great deal of confusion and wasted time. Suggestion by Eric Blake: http://lists.gnu.org/archive/html/automake-patches/2012-02/msg00119.html * .gitattributes (NEWS): Use the "union" merge driver. 2012-02-14 Stefano Lattarini tests: truly use Lex and Yacc selected by configure When 'yacc-work' was merged into 'yl-work-for-master' in commit v1.11-1910-ge6c40d4 (12-02-2012), the values for $YACC and $LEX stopped being substituted directly by config.status, and started being substituted by a Makefile rule using the contents of the $(YACC) and $(LEX) makefile variables. Unfortunately, our configure.ac was calling AM_SUBST_NOTMAKE on 'YACC' and 'LEX' (see commit v1.11-284-g34ca92b of 29-01-2011, "tests: don't define YACC and LEX in the Makefiles", for a rationale), so that the $(YACC) and $(LEX) in the Makefile simply hold the default make-provided values (that is, "yacc" and "lex" respectively), independently of what yacc and lex programs were defined at configure time. Apart from reducing coverage and creating confusion, this behaviour also caused spurious failures on systems lacking a yacc and/or lex programs. Problem reported by Peter Rosin. References: * configure.ac (AM_SUBST_NOTMAKE): Don't call anymore on 'YACC' nor on 'LEX'. 2012-02-14 Peter Rosin depcomp tests: do not specify LDFLAGS for static libraries Commit v1.11-1848-gb3f34ca accidentally specified LDFLAGS for libbaz even when built as a static library, which is not allowed. * tests/depcomp.sh (src/Makefile.am): Don't add any LDFLAGS when libbaz is built as a static library. 2012-02-14 Peter Rosin depcomp tests: avoid redundant runs for non-libtool test When running the dependency tests without libtool, it's not meaningful to run the tests three-fold, the libtool configure options are simply ignored anyway. * tests/depcomp.sh: Only run the tests three-fold when libtool is in use. 2012-02-14 Stefano Lattarini tests: avoid yet other spurious failures on NetBSD * tests/tap-signal.tap: Add a "strategically placed" extra 'echo' command and a temporary silencing of xtraces; they are required to avoid possible garbled output with NetBSD make, which would miss some final newlines in the expected places and thus mess up our TAP output. 2012-02-13 Stefano Lattarini tests: avoid a spurious failure on NetBSD * tests/test-driver-is-distributed.test: Rewrite to avoid having to edit configure.in; such editing was subtly botched on NetBSD (the 'AC_CONFIG_AUX_DIR' call got misplaced, ending up *before* the 'AC_INIT' call), and that caused an hard-to-track bug. Since we are at it, extend coverage a little. 2012-02-13 Stefano Lattarini tests: avoid spurious failure with NetBSD /bin/ksh * tests/parallel-tests-fd-redirect-exeext.test (configure.in): Tweak so that we don't end up with the generated configure script having two nested subshells that start with '((': ((./conftest$EXEEXT 9>&1) | grep "^foobar") >&5 2>&5 which is unportable and could confuse some shells (e.g., NetBSD 5.1 /bin/ksh) into thinking we are trying to perform an arithmetic operation. 2012-02-13 Peter Rosin tests: increase coverage for depcomp tests On platforms requiring that no undefined symbols exist in order to build shared libraries (e.g. Windows DLLs), you have to explicitly declare that the libtool library you are building does not actually have any undefined symbols, for libtool to even try to build it as a shared library. Without that explicit declaration, libtool falls back to a static library only, regardless of any --enable-shared flags etc. tests/depcomp.sh (Makefile.am): Add -no-undefined if a libtool library (.la) is built. (src/Makefile.am): Likewise. 2012-02-13 Peter Rosin news: fix grammaros related to Yacc * NEWS: Fix some grammaros and typos. 2012-02-13 Stefano Lattarini yacc/lex tests: avoid spurious skips with non-GNU make * tests/defs (useless_vpath_rebuild): Fix botched logic that was causing this function to always diagnose non-GNU make implementations as being affected by the "useless rebuilds in VPATH setup" bug (that affects FreeBSD make and causes automake bug#7884). 2012-02-13 Peter Rosin fixup: remove double news entry * NEWS: Remove double (stale) news entry introduced by a botched merge. 2012-02-12 Stefano Lattarini tests: workaround for shells with broken 'set -e' * tests/dist-formats.tap: Some versions of the BSD shell wrongly bail out when the 'errexit' shell flag is active and the left-hand command in a "&&" list fails and that list is the *last* command of a "case" statement. This was causing an incorrect initialization of the '$missing_compressors' variable, and thus potential spurious failures when non-existing programs were assumed to be available. 2012-02-12 Stefano Lattarini tests: workaround for shells with broken 'set -e' * tests/yacc-cxx.test: Some versions of the BSD shell wrongly bail out when the 'errexit' shell flag is active if the left-hand command in a "&&" list fails and such list is the *last* command of a "for" or "while" loop or of an "if" construct. Work around this issue. * tests/check12.test: Likewise. 2012-02-12 Stefano Lattarini tests: avoid spurious failure with non-bison yacc Issue revealed by a failure on NetBSD 5.1. * tests/suffix10.tap (Makefile.am): Adjust the rule generating the '.y' files so that such files won't use bison-only features. 2012-02-12 Stefano Lattarini tests: fix spurious failures due to missing 'yywrap()' function The AC_PROG_LEX Autoconf macro does not diagnose a failure to find the "lex library" expected to provide a 'yywrap' function (function which is required to link most lex-generated programs). On the contrary, when all the link attempts (i.e., with '-ll' and '-lfl') fail, configure declares that no lex library is needed, and simply proceeds with the configuration process -- only for the build to possibly fail later, at make time. This behaviour is intended; the Autoconf manual reads: You are encouraged to use Flex in your sources, since it is both more pleasant to use than plain Lex and the C source it produces is portable. In order to ensure portability, however, you must either provide a function 'yywrap' or, if you don't use it (e.g., your scanner has no '#include'-like feature), simply include a '%noyywrap' statement in the scanner's source. This AC_PROG_LEX behaviour is causing some spurious failures of the Automake testsuite in environments which lack a proper library providing 'yywrap' (this happens for example on Fedora-based systems). The proper workaround is to simply provide a fall-back implementation of 'yywrap' in our lexers. See also similar commits 'v1.11-546-gca0ba5d' (24-10-2011), 'v1.11-1085-gb5c3968' (24-10-2011) and 'v1.11-871-geb147a1' (25-05-2011). * tests/lex-clean.test: Provide a dummy 'yywrap' function. * tests/lex-line.test: Likewise. * tests/lex-nodist.test: Likewise. * tests/lex-depend.test: Likewise. * tests/lex-clean-cxx.test: Move the dummy 'yywrap' function from the main '.cc' file into the '.lxx' file, so that it won't be subject to the namespace declaration in the '.cc' file (which was causing a spurious link error in systems without a default "lex library"). 2012-02-12 Stefano Lattarini Merge branch 'yacc-work' into yl-work-for-master * yacc-work: (37 commits) fixup: list of yacc/lex tests was botched tests: work around bug#7884 in many yacc/lex tests yacc/lex tests: remove an unneeded workaround for bug#8485 yacc/lex tests: avoid too much failures with FreeBSD make yacc-dist-nobuild.test: add reference to bug#7884 yacc tests: fix bug in 'yacc-cxx.test' lex tests: fix spurious link errors on Solaris lex: "make clean" removes .c files from non-distributed .l lex tests: make test on Lex dependency tracking more "semantic" lex tests: remove erroneous check about ylwrap distribution yacc tests: "make clean" removes C++ files from non-distributed .y tests: add a workaround for automake bug#8485 tests: add a couple of inter-tests reference lex tests: require just `lex' instead of `flex' fix typo in ChangeLog (2011-05-04) tests defs: use `skip_' for skipping yacc/lex related tests lex/yacc tests: remove redundant $distdir definition coverage: test lex-generated "#line" directives postprocessing tests: minor improvements to a couple of yacc tests tests: fix spurious failure in test 'yacc-d-cxx.test' ... + Extra non-trivial edits: * tests/defs.in: Delete; the differences from maint has been merged into 'tests/defs' and 'tests/defs-static.in'. * tests/defs (yacc, lex): Use 'skip_all_', not 'skip_', to skip the whole test case if yacc (resp. lex) is missing. (bison): New, set up the environment so that 'bison -y' will be used as the yacc program. (useless_vpath_rebuild, yl_distcheck): Moved in from 'tests/defs.in'. * tests/defs-static.in ($YACC, $LEX): Default to the values determined at configure time, and allow them to be overridden by the more namespace-safe variables '$AM_TESTSUITE_YACC' and '$AM_TESTSUITE_LEX' respectively. * tests/Makefile.am (do_subst): Also substitute '@YACC@' and '@LEX@'. * Several tests: Fix requirements declarations, by preferring 'lex' and 'yacc' over 'flex' and 'bison' whenever possible. 2012-02-12 Stefano Lattarini fixup: list of yacc/lex tests was botched * tests/list-of-tests.mk: Update to take into account the addition, renaming, removing or split-ups of Yacc/Lex tests that have taken place in the 'yacc-work' branch. Problem likely introduced by a botched merge of 'maint' into 'yacc-work'. 2012-02-12 Stefano Lattarini docs: move chapter on automake history out of main manual The chapter on Automake history, while certainly interesting and even fascinating, does not truly pertain to a reference manual, so move it out from there and into its own dedicated file. This change is made more advisable and pressing by the fact that such and "Automake history" chapter hasn't been updated since the 1.9.6 release, so it has been becoming less faithful and useful since then. * doc/history.texi: New, manual on the history of the automake package; extracted from ... * doc/automake.texi: ... this file, with related adjustments. * doc/Makefile.am (info_TEXINFOS): Add 'history.texi'. (history_TEXINFOS): New, list included file 'fdl.texi'. * Makefile.am (release-stats): Remove as obsolete. * HACKING (Release Procedure): Don't advise anymore to run the "release-stats" target and to update the manual with its output. * NEWS: Update. * .gitignore: Likewise. 2012-02-12 Stefano Lattarini depcomp tests: avoid redundant runs for libtool tests When running libtool-oriented tests, our 'depcomp.sh' script used to run the same checks thrice: once after having run configure with the '--disable-shared' option, once after having run it with the '--enable-shared' option, and once by allowing configure to automatically select which kind of library (or libraries) to build. This was done to offer extra coverage for the less-common depmodes (like "aix" of "hp2") where the name of the compiler-generated depfiles can depend on whether libtool is in use *and* on which kind of libraries libtool is building (static, shared, or both). About this, see commit 'Release-1-10-24-ge89ec38' of 28-03-2007, "* lib/depcomp (aix): Rewrite depmode in the spirit of the tru64 one". But that extra coverage came at the price of *considerably* slowing down the depcomp libtool-oriented tests, since for each of them the tested source tree was configured and built *twelve* times (rather than "just" four as it is for the non-libtool case). So, to strike a balance between coverage and speed, we now run the libtool-oriented tests with the three different configuration modes *only* when it is possible that the depmode that will get selected is one of those which can actually benefit from the extra coverage. * tests/depcomp.sh: Adjust to only run the threefold libtool tests when that can truly be potentially useful. Add related explanatory comments. 2012-02-09 Stefano Lattarini tests: avoid wrong skips in dist-formats.tap * tests/dist-formats.tap: The test checking whether the 'compress' program is actually capable of compressing files relied on the assumption that 'compress' exits with status zero if no problem occurs; alas, this reasonable assumption doesn't hold in practice, since 'compress' does (and is documented to) exit with status 2 if the output is larger than the input after (attempted) compression! Fix this by using and input that 'compress' can actually reduce in size when compressing. Do some related reformatting of surrounding code since we are at it. 2012-02-09 Stefano Lattarini tests: few tweakings and cosmetic changes * tests/dist-formats.tap: Fix botched spacing. * tests/subobjname.test: Prefer spaces to tabs in indentation. * tests/cond43.test: Likewise. * tests/comment7.test: Likewise. * tests/compile_f90_c_cxx.test: Use "$tab" instead of literal tab characters in the grep regexp. * tests/compile_f_c_cxx.test: Likewise. * tests/pluseq3.test: Likewise. * tests/cond-basic.test: Likewise. * tests/acloca16.test: Add empty line before trailing ':' command. * tests/bsource.test: Likewise. * tests/depend5.test: Likewise. * tests/depend6.test: Likewise. * tests/destdir.test: Likewise. * tests/fort2.test: Likewise. * tests/instdir-java.test: Likewise. * tests/instdir-lisp.test: Likewise. * tests/instdir-python.test: Likewise. * tests/instdir.test: Likewise. * tests/instdir2.test: Likewise. * tests/ltinstloc.test: Likewise. * tests/missing.test: Likewise. * tests/missing2.test: Likewise. * tests/nodef.test: Likewise. * tests/nodef2.test: Likewise. * tests/subst4.test: Likewise. * tests/werror3.test: Likewise. * tests/commen11.test: Likewise. Also, make grepping of automake stderr slightly stricter, and properly quote strings with shell metacharacters. * tests/nodep2.test: Add empty line before trailing ':' command. Do not create unneeded dummy source files. 2012-02-09 Stefano Lattarini tests: remove a couple of redundant 'set -e' calls * tests/conffile-leading-dot.test: Do not set the 'errexit' shell flag, as it is already set by 'tests/defs'. * tests/make-dryrun.test: Likewise. 2012-02-09 Stefano Lattarini Merge branch 'maint' * maint: tests: fix a timestamp-related spurious failures dryrun: fix regression with '$(am__make_dryrun)' test defs: function 'is_newest' now works also with directories 2012-02-09 Stefano Lattarini Merge branch 'dryrun-fix' into maint * dryrun-fix: dryrun: fix regression with '$(am__make_dryrun)' 2012-02-09 Peter Rosin tests: check if 'compress' is real or fake On Cygwin, 'compress' is provided by sharutils and is just a dummy script that is not able to actually compress (it can only decompress). This fake 'compress' is not usable for our purpose - to create compressed tarballs. * tests/dist-formats.tap (missing_compressors): Count 'compress' as missing if it does not support the -c option. 2012-02-08 Peter Rosin Merge branch 'msvc' * msvc: depcomp: try to prevent whitespace regressions depcomp: recognize tabs as whitespace in the dashmstdout mode depcomp: quote 'like this', not `like this' 2012-02-08 Stefano Lattarini depcomp tests: avoid spurious failures with 'dashXmstdout' depmode * tests/gen-testsuite-part: The 'dashXmstdout' depmode cannot be truly forced on gcc (like we were trying to do, causing spurious failures in the process); so don't do that. This change shouldn't actually reduce coverage anyway, since, as the comments in 'lib/depcomp' say, the 'dashXmstdout' depmode is just like the 'dashmstdout' one, only with a different argument for the compiler. 2012-02-08 Peter Rosin depcomp: try to prevent whitespace regressions Suggested by Stefano Lattarini. * lib/depcomp: Add $tab and $nl variables and use them throughout. 2012-02-08 Peter Rosin depcomp: recognize tabs as whitespace in the dashmstdout mode Commit Release-1-7-2b-2-gf03ceab "Cope with DOS filenames in dependencies." inadvertedly converted tabs into spaces. * lib/depcomp (dashmstdout): Add a tab character to all sets matching whitespace. 2012-02-08 Peter Rosin depcomp: quote 'like this', not `like this' Cherry-picked from recent changes from master. * lib/depcomp: Quote 'like this', not `like this'. 2012-02-08 Peter Rosin tests: check the depmodes 'msvisualcpp' and 'msvcmsys' * tests/defs (cygpath): New requirement, checking that cygpath is working. (mingw): New requirement, checking that the build system is MSYS (in its normal MinGW mode). * tests/gen-testsuite-part (depmodes): Add entries for depmodes 'msvisualcpp' and 'msvcmsys'. 2012-02-08 Stefano Lattarini tests: better way to compare lists in Makefile rules With this commit, we introduce a new helper shell script for use in the testsuite, which is meant to allow the test cases to easily check whether two whitespace-separated lists are equal; this ability is particularly useful to check for equality of the contents of make variables that are expected to contain multiple whitespace-separated words, and are defined through line continuations (or are rewritten by automake in this way), or that contain expansion of potentially empty variables. Before this change, a test checking that an usage like this one: VAR = valA if COND1 VAR += val1 # com1 endif COND1 VAR += valC worked as expected, couldn't use rules like: ## Doesn't work because $(VAR) expands to multiple words verify: test $(VAR) = "valA val1 valC" nor like: ## Doesn't work because the final expansion of $(VAR) contains ## repeated contiguous whitespace characters (it actually ## equals "valA val1 valC", not "valA val1 valC"), and this ## is an internal detail which might change and which we don't ## want to explicitly rely on. verify: test "$(VAR)" = "valA val1 valC" Instead, we had to rely on cumbersome workaround such as: ## This works, but is ugly. verify: test "`echo $(VAR)`" = "valA val1 valC" or: ## This works, but is even uglier. verify: echo BEG: $(VAR) :END | grep "BEG: valA val1 valC :END" Now, with the help of the new 'is' script, we can perform such a check in a clearer and more straightforward way, as in: ## Works, and reads clearly. verify: is $(VAR) == valA val1 valC * tests/is: New helper shell script, telling whether two whitespace separated lists are equal. * Makefile.am (EXTRA_DIST): Add it. * tests/colneq2.test: Use the new helper script, and accordingly get rid of older, more cumbersome idioms. * tests/cond11.test: Likewise. * tests/cond16.test: Likewise. * tests/cond18.test: Likewise. * tests/cond22.test: Likewise. * tests/cond31.test: Likewise. * tests/cond38.test: Likewise. * tests/test-logs-repeated.test: Likewise. * tests/objext-pr10128.test: Likewise. * tests/programs-primary-rewritten.test: Likewise. * tests/substre2.test: Likewise. Also ... (configure.in, Makefile.am): Add a couple of hack to avoid having to require (and run) a C compiler; accordingly ... ($required): ... remove this. * tests/exeext4.test: Likewise. * tests/substref.test: Likewise. Also ... (hello.c): Use ": >" rather than "cat < tests: improve and rework tests on dependency tracking Fixes automake bug#10434. Suggestion by Peter Rosin. The 'depcomp.tap' test case worked by trying to unconditionally force the compiler in use by the testsuite to use, one by one, *all* the dependency modes known by the 'depcomp' script, and, for each such forced mode that was compatible enough with said compiler not to cause breakage in the basic compilation rules, checking that it was *also* good enough not to break remake rules in VPATH builds. This seemed a good approach when this test was first introduced, as it apparently increased coverage for the less used and less tested dependency-tracking modes. But in the log run it turned out the approach was actually in part too brittle, causing some annoying spurious failures (as with the Tru64 depmode forced on GCC, see automake bug#10434), and partly too forgiving, since, for some of the more corner-case dependency modes, the 'depcomp' script simply reverts to silently disabling dependency tracking when an error is encountered (this happened e.g., with the Tru64 depmode forced on the Sun C compiler 5.9), so that a passing test means nothing, and only gives a false sense of security. As Peter Rosin put it, "it's just dead wrong to assume that feeding -M or -xM to the compiler (or whatever other random stuff 'depcomp' might do) and not get an error is the same as dependencies magically appearing". So we get rid of this wrong approach, and in the process proceed to a complete overhaul of many of the tests on automatic dependency tracking, extending the offered coverage and rationalizing their organization. * tests/depcomp.sh: New helper script, used by several new autogenerated tests. * tests/gen-testsuite-part: Generate several tests based on the new 'depcomp.sh' script. Emit makefile code that declares their dependency on that script, and that extends EXTRA_DIST in order to distribute it. * tests/depmod.tap: Remove. * tests/depend2.test: Remove, it has been subsumed by the new autogenerated test 'depcomp-disabled.tap'. * tests/depcomp3.test: Remove, it has been subsumed by the new autogenerated test 'depmod-dashmstdout.tap'. * tests/depcomp3.test: Remove, it has been subsumed by the new autogenerated test 'depmod-lt-makedepend.tap'. * tests/depcomp6.test: Remove, it has been subsumed by the new autogenerated test 'depmod-auto.tap'. * tests/depcomp7.test: Remove, it has been subsumed by the new autogenerated test 'depmod-lt-auto.tap'. * tests/depcomp5.test: Remove as obsolescent. * test/list-of-tests.mk: Adjust. * .gitignore: List the new autogenerated tests. 2012-02-07 Stefano Lattarini tests: fix a timestamp-related spurious failures Fixes automake bug#10737. Report from Larry Daniel. See also automake bug#8365 and commit 'v1.11-329-gd4df619' of 30-03-2011, "tests: fix timestamp-related failures". * tests/aclocal5.test: Sleep before modifying m4 files that should trigger remake rules. This fixes an hard-to-hit timestamp-related race condition. * THANKS: Update. 2012-02-07 Stefano Lattarini dryrun: fix regression with '$(am__make_dryrun)' In commit v1.11-683-gda0964e of 05-02-2012, we introduced a new variable '$(am__make_dryrun)' that could be used in recipes to determine whether make is running in dry mode (e.g., as with "make -n"). Unfortunately, the idiom we used fails to take into account the case in which $(MAKEFLAGS) contains one or more variable definitions whose value is a whitespace-separated list; for example, if we invoke make as: make check TESTS="n1.test n2.test" then the better make implementations out there (at least modern GNU make and BSD make) will export MAKEFLAGS to the following value: TESTS=n1.test\ n2.test So a shell loop like the one we used in $(am__make_dryrun): for flag in $$MAKEFLAGS; do ... won't behave as expected: the shell word-splitting rules will break up the entry for TESTS into the two distinct entries "TESTS=n1.test\" and "n2.test", and this second entry will goad our $(am__make_dryrun) code into thinking that make is performing a dry run! So now we simply loop over the expanded value of $(MAKEFLAGS). This solves the regression, but alas, is more brittle in case the users passes on the command line a macro value containing unbalanced " or ' quotes, or shell metacharacters like, say, '`' or '('. This should almost never happen though, so we don't worry about it now; we will revisit the issue only when and if we receive bug reports in this area. * lib/am/header-vars.am (am__make_dryrun): Fix. * tests/make-dryrun.test: New test. * tests/list-of-tests.mk: Add it. 2012-02-07 Stefano Lattarini tests: work around bug#7884 in many yacc/lex tests Due to automake bug#7884, many test cases on Yacc/Lex support are failing when run with FreeBSD make. Since these failures are all due to the same bug, and that bug is well understood and already explicitly exposed in the dedicated 'yacc-dist-nobuild.test' test, the reported failures are mostly noise, that not only is annoying, but which might end up covering different real bugs or regressions. Thus we minimize such spurious failures, by ensuring the commands triggering them (most of them being "make distcheck" invocations) will be skipped when $MAKE suffers of the bug/limitation that triggers automake bug#7884. * tests/defs.in (useless_vpath_rebuild): New function. (yl_distcheck): Likewise. * tests/lex3.test, tests/subpkg-yacc.test, tests/yacc-basic.test, tests/yacc-cxx.test, tests/yacc-d-basic.test, tests/yacc-d-cxx.test, tests/yacc-dist-nobuild-subdir.test : Use them to avoid extra failures caused by automake bug#7884. Where possible, throw in some related simplifications. 2012-02-06 Stefano Lattarini Merge branch 'maint' into yacc-work * maint: (75 commits) test defs: function 'is_newest' now works also with directories refactor: new variable telling whether make is running in "dry mode" ... 2012-02-06 Stefano Lattarini test defs: avoid spurious XPASS results with NetBSD make * tests/defs (make_can_chain_suffix_rules): Ensure to properly declare the '.SUFFIXES:' in the temporary Makefile used to check whether $MAKE is able to automatically chain suffix rules. This avoids spurious XPASS results with (at least) NetBSD make in some 'suffix*.tap' tests; in a sense also, this also makes the probing of $MAKE capabilities more faithful, since the Automake-generated Makefiles are expected to properly declare the '.SUFFIXES:' as well. 2012-02-06 Stefano Lattarini cosmetics: few whitespace fixlets 2012-02-06 Stefano Lattarini cosmetics: various typofixes Several typofixes in documentation and comments, as suggested by the "codespell.py" script. Reference: 2012-02-06 Stefano Lattarini cosmetics: convert encoding from ISO-8859 to UTF-8 in some tests The changed files have been converted using iconv; specifically, the command "iconv --from-code=ISO-8859-1 --to-code=UTF-8". * tests/block.test, tests/tagsub.test: Converted to UTF-8 encoding. 2012-02-06 Stefano Lattarini test defs: remove obsolete requirement 'rst2html' * tests/defs (rst2html): Remove, it's not needed anymore now that the old code supporting the ".log -> .html" conversion for the parallel-tests harness has been moved in contrib. This removal should have actually be done in commit v1.11-1757-g0a9d201 of 17-01-2012, 'check: move ".log -> .html" conversion in contrib'. 2012-02-06 Stefano Lattarini tests: workaround for shells with broken 'set -e' * tests/defs (gmake, native, rst2html): Some versions of the BSD shell wrongly bail out when the 'errexit' shell flag is active and the left-hand command in a "&&" list fails, if that list is the *last* command of a "for" or "while" loop. Work around this issue. * tests/lex3.test: Likewise. * tests/check12.test: Likewise. * tests/yacc-basic.test: Likewise. * tests/lex-noyywrap.test: Likewise. * tests/parallel-tests2.test: Likewise. * tests/lex-lib-external.test: Likewise. * tests/check-no-test-driver.test: Likewise. * tests/test-metadata-recheck.test: Likewise. * tests/parallel-tests-dry-run-1.test: Likewise. * tests/parallel-tests-dry-run-2.test: Likewise. * tests/parallel-tests-unreadable.test: Likewise. * tests/test-driver-custom-no-extra-driver.test: Likewise. Problem revealed by spurious testsuite failures on a NetBSD 5.1 system and an OpenBSD 5.0 system. 2012-02-06 Stefano Lattarini cosmetics: fix a typo in comments * tests/extra-programs-empty.test: Fix typo in heading comments. 2012-02-05 Stefano Lattarini test defs: function 'is_newest' now works also with directories Reported by Jim Meyering against automake master (see bug#9147) and by Adam Sampson against automake 1.11.3 (see bug#10730). * tests/defs (is_newest): Call 'find' with the '-prune' option, so that it won't descend in the directories (which could cause spurious results). * THANKS: Update. Backported from commit v1.11-914-gb6a40fa (originally on master). 2012-02-05 Stefano Lattarini parallel-tests: more uses for '$(am__make_dryrun)' With this change we refactor some recipes of the parallel-tests harness to make them use, where appropriate, the new internal variable '$(am__make_dryrun)' (introduced in the 'maint' branch) when they need to determine whether make is running in "dry mode", i.e., with "make -n". This allows for some simplifications and for improved uniformity. * lib/am/check.am (check-TESTS recheck): Use $(am__make_dryrun) and simplify accordingly. (am--redo-logs): Delete this internal helper recipe, merged into ... ($(TEST_SUITE_LOG)): ... this, with the help of $(am__make_dryrun). recipe accordingly. 2012-02-05 Stefano Lattarini Merge branch 'maint' * maint: refactor: new variable telling whether make is running in "dry mode" tests: do not clobber the modified CC 2012-02-05 Stefano Lattarini refactor: new variable telling whether make is running in "dry mode" We define a new variable '$(am__make_dryrun)', that can be used in recipes to determine whether make is running in "dry mode" (as with "make -n") or not. This is useful in rules that invoke make recursively, and are thus executed also with "make -n" -- either because they are declared as dependencies to '.MAKE' (NetBSD make) or because their recipes contain the "$(MAKE)" string (GNU and Solaris make). * lib/am/header-vars.am (am__make_dryrun): New variable. * lib/am/check.am (check-TESTS recheck): Use it, and simplify recipe accordingly. * lib/am/distdir.am (distdir): Likewise. * lib/am/lisp.am ($(am__ELCFILES)): Likewise. 2012-02-02 Peter Rosin tests: do not clobber the modified CC If CC is originally a losing compiler, AM_PROG_CC_C_O will modify CC. "$MAKE -e" will then clobber this modified CC and reintroduce the raw losing compiler causing the test to fail, as subdir-objects is in effect. tests/check8.test: Drop -e from the $MAKE invocation, since AM_COLOR_TESTS is not specified in the Makefile and -e is therefore not needed. 2012-02-02 Stefano Lattarini cosmetics: fix indentation and typos in perl TAP driver * lib/tap-driver.pl (get_test_exit_message): Fix botched indentation. Fix typo in error message: s/ststus/status/. 2012-02-02 Stefano Lattarini test defs: fix typo in variable name ($AM_TESTSUITE_PERL) * tests/defs-static.in: Fix typo: it's '$AM_TESTSUITE_PERL', not '$AM_TESTUITE_PERL'. 2012-02-02 Stefano Lattarini tap/perl: handle missing or non-executable scripts better This change improves how our Perl-based TAP driver handles non-runnable test scripts (meaning they might be not executable, or not readable, or even not exist). In particular, it makes the driver deterministically display a clear "ERROR" result instead of possibly dying with diagnostic from 'TAP::Parser' internals, and prevents it from displaying spurious "missing TAP plan" errors. Moreover, with this change, some testsuite failures present only with newer perl versions (e.g., 5.14) are fixed. See automake bug#10418. * tests/tap-bad-prog.tap: When testing the perl implementation of the TAP driver, and when the perl interpreter offers a good-enough 'IPC::Open3::open3' function, expect it not to display spurious "missing TAP plan" diagnostic if the error is actually due to a non-runnable test script. * lib/tap-driver.pl (start): Removed, broken up into ... (setup_io): ... this ... (setup_parser): ... and this, which now tries to catch and report errors in launching the test scripts. (finish): New, used by both 'main' and 'setup_parser'. (main): Adjust. 2012-02-01 Peter Rosin Merge branch 'maint' 2012-02-01 Peter Rosin tests: put AM_PROG_CC_C_O before AC_OUTPUT to help losing compilers When AM_PROG_CC_C_O is after AC_OUTPUT, the compile script is not used even if needed, causing testsuite fails if libtool is not used. * tests/depcomp8a.test: Uncomment the AM_PROG_CC_C_O macro in its correct location, as indicated... (configure.in): ...with this comment. * tests/depcomp8b.test: Sync with tests/depcomp8a.test. 2012-01-31 Stefano Lattarini cleanup: remove unused .am file * lib/am/comp-vars.am: Remove. This file has stopped being useful since commit 'Release-1-4d-206-g3334f9a' of 09-04-2001, and should have been removed back then. But apparently only its contents were removed, leaving the file empty but still present in the repository. Or maybe this situation is the consequence of a minor blunder in the conversion from CVS to Git; either way, this is not a big deal. 2012-01-31 Stefano Lattarini Merge branch 'maint' * maint: tests: do not assume the object file extension is .o tests: avoid spurious failure of 'transform2.test' on Cygwin tests: avoid spurious failure of deleted-am.test with FreeBSD make tests: avoid possibly undeserved PASS from check8.test warnings: more precise category and message for one warning release: revamp rules to tag and upload the releases amversion: add missing dependency hacking: update advice w.r.t. synced files hacking: don't reference ChangeLog anymore + Extra non-trivial edits: * tests/suffix8.tap: Copy in (by hand) the modifications done to 'suffix8.test' on maint, i.e., the addition of an explicit '.y_.obj:' suffix rule to Makefile.am. 2012-01-30 Peter Rosin Merge branch 'msvc' * msvc: ar-lib: ignore the verbose modifier instead of erroring out scripts: cherry-pick recent changes from master tests: add missing dependency for some 'ar-lib*.test' tests 2012-01-30 Peter Rosin ar-lib: ignore the verbose modifier instead of erroring out * lib/ar-lib: A number of tests uses the v modifier when listing the archive content, ignore it to make them pass. 2012-01-30 Peter Rosin scripts: cherry-pick recent changes from master * lib/ar-lib: prefer the term "Windows" over "Win32" and quote 'like this', not `like this'. * lib/compile: Likewise. 2012-01-30 Stefano Lattarini maintcheck: fix real and spurious warnings * lib/Makefile.am (install-data-hook): Correctly quote $(DESTDIR) occurrences. * Makefile.am (install-exec-hook, uninstall-hook): Likewise. (autodiffs): Prefer '$(am__cd)' to plain 'cd', where warranted. * doc/Makefile.am ($(srcdir)/amhello-1.0.tar.gz): Likewise. Also, prefer using AC_SUBST'd $(abs_top_builddir) over obtaining it at runtime from $(top_builddir). * syntax-check.mk (sc_mkinstalldirs): Tweak to whitelist known harmless occurrences of the checked-against usages. (sc_no_for_variable_in_macro): Likewise. * tests/CheckListOfTests.am (maintainer-check-list-of-tests): Tweak to avoid spuriously triggering the 'sc_no_for_variable_in_macro' maintainer check. Prefer '$(am__cd)' to plain 'cd' when warranted. 2012-01-30 Stefano Lattarini maintcheck: take advantage of some GNU make features We can do so now that our maintainer checks require GNU make unconditionally. * syntax-check.mk (ams, xtests): Redefine as "immediate variables", using the GNU make $(shell ...) builtin. (maintainer-check-list-of-tests): Take advantage of GNU make "-C" option. Don't use $(AM_MAKEFLAGS), we shouldn't need it with GNU make. 2012-01-30 Stefano Lattarini build: require GNU make in order to run the maintainer checks This is not a real regression in portability, since most maintainer check rules already assumed GNU grep, and were anyway only meant to run on the developers' systems (where we can safely assume the presence of GNU make). This change will allow us to take advantage, in future changes, of more GNU make features, thus simplifying or optimizing some of our maintainer rules. * GNUmakefile: New, including 'Makefile' and 'syntax-checks.mk'. * configure.ac (AC_CONFIG_LINKS): Link it in the builddir. * Makefile.am (EXTRA_DIST): Distribute 'GNUmakefile' and 'syntax-checks.mk'. Move all syntax-check rules and auxiliary variables into ... * syntax-checks.mk: ... this new file, with some adjustments. 2012-01-30 Stefano Lattarini maintcheck: refactor rules checking '*.am' files A small refactoring in our syntax-check to avoid code duplication and to ensure more uniform checking. This change introduces some new failures in syntax-check rules (both real and spurious), that will be fixed in follow-up changes and code reorganizations. * Makefile.am (ams): New variable, holding the list of all the '*.am' fragments in he automake source tree. (sc_no_brace_variable_expansions): Use it. (sc_rm_minus_f): Likewise. (sc_no_for_variable_in_macro): Likewise. (sc_mkinstalldirs): Likewise. (sc_pre_normal_post_install_uninstall): Likewise. (sc_cd_in_backquotes): Likewise. (sc_cd_relative_dir): Likewise. (sc_tests_make_without_am_makeflags): Likewise. (sc_tests_plain_egrep_fgrep): Likewise. (sc_mkdir_p): Likewise. 2012-01-30 Peter Rosin tests: do not assume the object file extension is .o * tests/specflg7.test: Dig out the object file extension from the OBJEXT makefile variable. * tests/substref.test: Likewise. * tests/specflg8.test: Likewise. Also check that the false-true object is created instead of checking the true-true object twice. * tests/suffix8.test: Add a chain rule for the case where the object file extension is .obj. 2012-01-30 Peter Rosin tests: fetch the 'compile' script for subdir objects * tests/libobj19.test: Subdir objects are used, so the 'compile' script needs to be present for inferior hosts. Fetch it. 2012-01-30 Peter Rosin tests: fetch the 'ar-lib' script for archiver usage * tests/libobj10.test: The archiver is used, so the 'ar-lib' script needs to be present for inferior hosts. Fetch it. 2012-01-28 Stefano Lattarini tests: avoid spurious failure of 'transform2.test' on Cygwin On newer Cygwin versions (at least 1.7.x), the 'transform2.test' test has been failing spuriously; the gist is the following: some *purposefully* rigged install rules there try something like: install bla.exe .../inst/bin/foo.exe install script.sh .../inst/bin/foo and the second install command fails (trying to overwrite the '.../inst/bin/foo.exe' file, likely due to overly aggressive appending of '.exe' suffix when copying/renaming Windows executables). Since this is a Cygwin issue rather than an Automake one (and since the use case we are testing is a really corner-case anyway, making it unworthy to attempt to work around it in automake proper), we simply hack the test case to avoid the failure. Analysis by Peter Rosin and Ralf Wildenhues. References: * tests/transform2.test: Skip the affected part of the test if the described Cygwin behaviour is detected. 2012-01-28 Stefano Lattarini tests: avoid spurious failure of deleted-am.test with FreeBSD make * tests/deleted-am.test: Sleep between the removal of the included '.am' fragments and the subsequent "make" calls, to ensure that the remake rules kick in. This is required to avoid racy spurious failures (~ 60% of the time) with FreeBSD make. 2012-01-27 Stefano Lattarini tests: avoid possibly undeserved PASS from check8.test * tests/check8.test: Strengthen grepping of "make check" output where we know no problem with VPATH rewrites can take place. This has the advantage of ensuring that we won't match also "sub/bar" when looking for "bar" during the uncolorized tests. Suggestion by Peter Rosin. 2012-01-27 Stefano Lattarini tests: work around MinGW/MSYS issue in fd redirections Some checks on $(AM_TESTS_FD_REDIRECT) were failing on MSYS, likely because system calls like "write(9, ...)" simply doesn't work for MinGW-compiled programs. Similar usages work for the shell scripts though, since /bin/sh is an MSYS program and thus is a lot more POSIX-ish than most MinGW-compiled programs. The best fix for this issue is to separate the checks using shell scripts as dummy test cases from the checks using compiled programs for the same purpose, and skip these latter checks on MinGW. This change fixes automake bug#10466. Report by Peter Rosin. * tests/parallel-tests-fd-redirect.test: Move checks using compiled C programs as test cases to ... * tests/parallel-tests-fd-redirect-exeext.test: ... this new test. * tests/list-of-tests.mk: Update. 2012-01-27 Stefano Lattarini warnings: more precise category and message for one warning If automake detected an usage like "AC_CONFIG_FILES([./Makefile])" in configure.ac, it warned that such an usage was unportable to non-GNU make implementations. But the truth is actually worse: that is actually *unportable to GNU make* itself, since it breaks the automatic remake rules in subtle ways. So we now reveal this breakage in a new test case, and enhance the warning by giving it a more precise and correct wording, and by moving it from the category 'portability' to the category 'unsupported'. * automake.in (scan_autoconf_config_files): Improve the warning. * tests/conffile-leading-dot.test: New test. * tests/list-of-tests.mk: Add it. 2012-01-25 Stefano Lattarini release: revamp rules to tag and upload the releases The older Makefile rules used to create and tag the releases were based on an approach we now consider flawed: they over-mechanized some delicate operations that are better performed manually *and* double-checked by a developer, and at the same time they did not run enough safety checks. * Makefile.am (GIT, version_rx, stable_version_rx, beta_version_rx, match_version, git_must_have_clean_workdir, determine_release_type): New variables. (git-release, git-dist): Remove, they are superseded by ... (git-tag-release, git-upload-release): ... these new targets. 2012-01-25 Stefano Lattarini amversion: add missing dependency * m4/Makefile.am ($(top_srcdir)/m4/amversion.m4): Depend on configure.ac, since the value of $(VERSION) can change every time configure.ac is updated. 2012-01-25 Stefano Lattarini hacking: update advice w.r.t. synced files * HACKING: Update and improve advices and explanations about files in the automake repository that are now owned by automake, but mirrored from other upstreams. Also, don't list these files explicitly, rather point the reader to the $(FETCHFILES) variable in Makefile.am. * Makefile.am (FETCHFILES): Don't state that "there should be a lot more here", as this is not true anymore today. Only 'COPYING' must be synced by hand. 2012-01-25 Stefano Lattarini hacking: don't reference ChangeLog anymore * HACKING: Don't reference the ChangeLog file anymore, since that is now generated from the git commit messages, not maintained by hand. So remove advice that is obsolete, and speak about "git commit message" instead of "ChangeLog entry" for advice that is still relevant. 2012-01-24 Stefano Lattarini multilib: move to contrib This follows up on commit v1.11-665-gc5df21e of 2012-01-17, "multilib: deprecate, will be moved to contrib". See also: * NEWS: Update. * automake.in ($seen_multilib): Remove. (scan_autoconf_traces): Don't trace 'AM_ENABLE_MULTILIB', and don't handle it anymore. (handle_multilib): Remove. (generate_makefile): Don't call it anymore. * doc/automake.texi: Remove documentation about multilib support, related macros, and helper files. * m4/multi.m4: Delete. * m4/Makefile.am (dist_automake_ac_DATA): Remove it. * lib/am/multilib.am: Delete. * lib/am/Makefile.am (dist_am_DATA): Remove it. * contrib/multilib/multilib.am: New file, adapted from extracts of a Makefile.in generated with automake multilib support. We did this instead of moving and editing 'lib/am/multilib.am' because it allows us to license this file with a liberal license that will permit users to copy-and-paste it in non-GPLed Makefile.am files too). * lib/symlink-tree, lib/config-ml.in: Move ... * contrib/multilib: ... in here. * lib/Makefile.am (dist_script_DATA, dist_pkgvdata_DATA): Update. * contrib/multilib/README: New file. * contrib/Makefile.am (EXTRA_DIST): Add the files created or moved in 'contrib/multlib'. * tests/multilib.test: Update and enhance a little. * tests/help-multilib.test: Likewise. 2012-01-23 Peter Rosin tests: improve diagnostics when write(2) fails MinGW programs can't redirect file descriptor 9, they can only redirect stdin, stdout and stderr. So, improve the information in the test log. See automake bug#10466. * tests/parallel-tests-fd-redirect.test (baz.c, zardoz.c): Check the return value from the write(2) call, and report detected errors. 2012-01-23 Stefano Lattarini Merge branch 'compilers-for-testsuite' * compilers-for-testsuite: readme: how to run the testsuite with cross-compilers tests: no need to unset CFLAGS in tests requiring 'gcc' anymore test defs: allow compilers to be auto-selected on user's request test defs: substitute compilers and flags found at configure time test defs: setup `*FLAGS' variables for GNU compilers configure: search generic compilers for use in the tests 2012-01-23 Stefano Lattarini Peter Rosin readme: how to run the testsuite with cross-compilers * tests/README: Suggest a better way to run the automake testsuite with cross-compilers -- that is, configuring the Automake source tree with proper `--build' and `--host' configure option. And yes, specifying both these options (not only `--host') is indeed required to avoid spurious failures in corner cases. When you call configure with the `--host' option but without the `--build' option, configure tries to auto-detect whether you are cross-compiling or not, by trying to run a generated executable. That test might spuriously "succeed" in some corner cases (e.g., Cygwin is able to run non-Cygwin apps). In fact, generally, it can be the case that a cross-compilation is not detected as a cross anymore just because someone has installed an emulator; as an example, think of what can happen on a GNU/Linux system that is configured (through the use of the binfmt_misc kernel module) to execute PE executables (compiled for MS-DOS or Windows) through Wine *automatically*. In conclusion, configure needs to be used as recommended in the documentation (i.e., by specifying *both* `--host' and `--build' instead of just one of them) to not have the build fall into any of a number of weird traps. * tests/defs (cross_compiling): Improve comments. 2012-01-23 Stefano Lattarini tests: no need to unset CFLAGS in tests requiring 'gcc' anymore * tests/ccnoco.test: Since this test have "gcc" in $required, there is no need to manually nullify the CFLAGS variable, since now `tests/defs' should automatically re-define that to a value appropriate for gcc. * tests/ccnoco3.test: Likewise. 2012-01-23 Stefano Lattarini test defs: allow compilers to be auto-selected on user's request In the recent changes, by pre-setting the required compilers for the `configure' scripts launched by the test scripts, we have slightly reduced the coverage of autoconf/automake code aimed at automatically detecting said compilers. This commit restore such coverage, by allowing the user to instruct the testsuite *not* to preset the testsuite compiler(s). * tests/defs (cc): If $CC is set to the special value "autodetect" or "autodetected", don't export the configure-detected CC, CFLAGS and CPPFLAGS variables; rather, unset them. (c++): Likewise, but for CXX, CXXFLAGS and CPPFLAGS instead. (fortran): Likewise, but for FC and FCFLAGS instead. (fortran77): Likewise, but for F77 and FFLAGS instead. (require_compiler_): New function, to reduce code duplication. 2012-01-23 Stefano Lattarini test defs: substitute compilers and flags found at configure time * tests/Makefile.am (do_subst): Also substitute CC, CXX, F77, FC, CPPFLAGS, CFLAGS, CXXFLAGS, FCFLAGS and FFLAGS. * tests/defs-static.in: Define those variables, allowing for overrides from the environment. * tests/defs (for tool in $required): Export (subsets of) those variables when the stuff in `$required' calls for it. Add related explanatory comments. 2012-01-23 Stefano Lattarini test defs: setup `*FLAGS' variables for GNU compilers * configure.ac: Setup some `*FLAGS' variables for use by the GNU compilers in our testsuite. For example, use `GNU_CFLAGS' instead of `CFLAGS', and so on for similar variables. This is especially useful in case the compilers found or defined at configure time are not the GNU ones. * tests/defs-static.in: Initialize those same variables with the values set at configure time, but allowing overrides from the environment. * tests/Makefile.am (do_subst): Process configure-style substitutions of those variables (e.g., `@GNU_CFLAGS@'). * tests/defs: When a GNU compiler is required, override the corresponding generic `*FLAGS' variable with the GNU-specific variant (e.g., redefine `$CFLAGS' to take the value of `$GNU_CFLAGS'). 2012-01-23 Stefano Lattarini configure: search generic compilers for use in the tests * configure.ac: Look for "generic" C, C++ and Fortran compilers, with the aim of starting to use them in the testsuite (this will be done in future changes). This is more tricky than it seems, since we don't want to abort the whole configure script even if no one of those compilers is available (after all, they're only needed by the testsuite, not to build automake), but currently autoconf doesn't offer an easy way to obtain this behaviour. We prefer non-GNU compilers to the GNU ones, to ensure better coverage "in the wild". 2012-01-22 Stefano Lattarini tests: remove redundant 'set -e' calls * tests/aclocal-install-absdir.test: Do not set the 'errexit' shell flag, as it is already set by 'tests/defs'. * tests/distcheck-pr10470.test: Likewise. * tests/objext-pr10128.test: Likewise. * tests/parallel-tests-dry-run-1.test: Likewise. * tests/silent-nested-vars.test: Likewise. * tests/tar-override.test: Likewise. * tests/vala-mix.test: Likewise. * tests/vala-vpath.test: Likewise. 2012-01-22 Stefano Lattarini Merge branch 'maint' * maint: tests: fix spurious failure due to autom4te caching vala: fix name of temporary file used in vala rules vala tests: add missing 'valac' requirement, and other minor fixlets news: fix grammaro 2012-01-22 Stefano Lattarini tests: fix spurious failure due to autom4te caching * tests/lzma.test: Remove stale autom4te.cache directories, to prevent racy, spurious failures (using 'aclocal --force' was not enough, since the cache was still picked up by the following automake call). 2012-01-22 Stefano Lattarini dist tests: missing 'compress' program was causing spurious failures Fixes automake bug#10575. The compress(1) tool is becoming anachronistic, and thus is not installed by default on modern distros (e.g., Fedora 16). We can't thus unconditionally assume it exists on every reasonable portability target. * tests/dist-formats.tap ($missing_compressors): When defining this, don't assume anymore that compress(1) is unconditionally available. (Parallel compression): Skip this sub-test if compress(1) is unavailable. Since we are at it, fix a couple of unrelated buglets: a typo in a test name (s/distcheck/ark-exists/), and some attempts to remove directories with "rm -f". 2012-01-22 Stefano Lattarini vala: fix name of temporary file used in vala rules Unquoted `@' characters in a "..." string in the automake script were causing slightly wrong rules to be emitted in the generated Makefile.in; i.e., rules like: rm -f $@ && echo stamp > $10t instead of the expected: rm -f $@ && echo stamp > $@-t * automake.in (lang_vala_finish_target): Fix that. * tests/vala.test: Enhance. 2012-01-22 Stefano Lattarini vala tests: add missing 'valac' requirement, and other minor fixlets See also automake bug#10575. * tests/vala-mix.test ($required): Add 'valac'; this will avoid spurious failures on systems lacking a Vala compiler. Add some explicative comments for a couple of non-obvious make calls. Make grepping of "make -n" slightly stricter, to avoid potential false positives. 2012-01-22 Stefano Lattarini news: fix grammaro * NEWS (Miscellaneous changes): Fix grammaro: s/don't/doesn't/. Reported by Jim Meyering. 2012-01-21 Stefano Lattarini Merge branch 'maint' * maint: fixup: distribute 'contrib/multilib/multi.m4' multilib: deprecate, will be moved to contrib fixlet: flags for Fortran77 compiler are in FFLAGS, not F77FLAGS cosmetics: fix a botched comment in a maintainer check 2012-01-21 Stefano Lattarini fixup: distribute 'contrib/multilib/multi.m4' This fix up a blunder in commit v1.11-665-gc5df21e of 2012-01-17, "multilib: deprecate, will be moved to contrib". * contrib/Makefile.am (EXTRA_DIST): Add 'multilib/multi.m4'. 2012-01-21 Stefano Lattarini multilib: deprecate, will be moved to contrib As of 2012-01-17, according to Google codesarch, almost no active package is using the 'multilib' feature offered by automake. The only major exception seems to be GCC... But on a closer look, it become clear that GCC basically carries its own version of multilib support. In fact, Automake syncs its 'config-ml.in' and 'symlink-tree' scripts from GCC; and the GCC repository contains a version of the 'multi.m4' file that is *more* updated than the one in the automake repository (the former having being modified the last time in 2008, the latter only in 2006). The 'multilib' feature was anyway hardly documented at all, only being briefly cited in the manual as an "obscure feature", "still experimental", that was only for users "familiar with multilibs" and which "can debug problems they might encounter". We expect such users to be motivated and knowledgeable enough to make the minor adjustments required to start using the contrib version of multilib, if they really need to. * NEWS (Future backward incompatibility): Update. * doc/automake.texi: Deprecate multilib support. State that it will be removed from automake core in the next major release. * m4/multi.m4 (AM_ENABLE_MULTILIB): Deprecate. If called, now gives a proper warning in the 'obsolete' category (while still retaining its former behaviour for the rest). * tests/multilib.test: Update. * contrib/multilib/multi.m4: New, verbatim copy of the earlier version of multi.m4, without the new deprecation warning. * Makefile.am (fetch): Don't sync the 'config-ml.in' file nor the 'symlink-tree' script from GCC SVN repository anymore. (FETCHFILES): Adjust. (WGET_GCC): Remove, it's not needed anymore. 2012-01-21 Stefano Lattarini fixlet: flags for Fortran77 compiler are in FFLAGS, not F77FLAGS This change fixes automake bug#10555. Note that the bug was a minor one, since it didn't affect the compilation rules generated by automake, but only only the "hints" printed by automake in some error messages (e.g., "The usual way to define `FFLAGS' is to add AC_PROG_F77 to configure.ac"). * lib/Automake/Variable.pm (%_ac_macro_for_var): The code generated by AC_PROG_F77 uses FFLAGS, not F77FLAGS, as the variable where to look for switches for the Fortran 77 compiler: adjust accordingly. 2012-01-19 Stefano Lattarini cosmetics: fix a botched comment in a maintainer check * Makefile.am (sc_tests_make_without_am_makeflags): Adjust botched description of this check. 2012-01-18 Stefano Lattarini Merge branch 'maint' * maint: cmdline parsing: move into a dedicated perl module 2012-01-18 Stefano Lattarini cmdline parsing: move into a dedicated perl module With this change, we delegate most of the automake and aclocal code for command-line options parsing to a new module "Automake::Getopt". This allows better code sharing between automake and aclocal, and also with Autoconf, which will sync the new module from us. See also autoconf commit 'v2.68-120-gf4be358' (2012-01-17, "getopt: new Autom4te::Getopt module"), and this mailing list discussion: This change might interact with the behaviour described in automake bug#7434; for example, starting from now, "automake -Wfoo --version" will cause automake to emit diagnostic like "unknown warning category 'foo'" before actually printing the version number and exiting. This is not a big deal in practice, and the code sharing and simplifications introduced by this patch is certainly worth it. Still, we should revisited the issue in the future. * lib/Automake/Getopt.pm: New module, basically a slightly-edited copy of the 'lib/Autom4te/Getopt.pm' file from the autoconf devel repository (commit v2.68-120-gf4be358). It defines and exports ... (parse_options): ... this new function. * automake.in (parse_arguments): Use the new function. * aclocal.in (parse_arguments): Likewise. * lib/Automake/Makefile.am (dist_perllib_DATA): Add the new file. * tests/getopt.test: Remove. * tests/list-of-tests.mk: Update. 2012-01-18 Stefano Lattarini tests: don't use custom TAP diagnostic in our own tests We simply don't need it (yet), we are not actually using it (the set up for using it is there in the Makefile, but no test script makes actual use of that). * tests/Makefile.am (TAP_LOG_DRIVER_FLAGS): Remove '-comments' and '--diagnostic-string' options. * tests/defs ($diag_string_): Remove redefinition. 2012-01-18 Stefano Lattarini tests: better name for a couple of tests Two tests checking "make -n" behaviour with the parallel-tests harness has been introduced in the Automake repository in the past: one of them ('parallel-tests-dryrun.test') in the maint branch, the other one ('parallel-tests-dry-run.test') in the master branch. Needless to say, their too-much-similar names can be a great source of confusion now. Moreover, the two tests have been written during distinct refactorings, and are meant to exercise different code paths and/or usage scenarios, so that no one of them subsumes the other, and they should be both kept. Thus we simply rename both of them to avoid future confusion. * tests/parallel-tests-dryrun.test: Renamed ... * tests/parallel-tests-dry-run-1.test: .. to this. * tests/parallel-tests-dry-run.test: Renamed ... * tests/parallel-tests-dry-run-2.test: .. to this. Add cross-reference among them. * tests/list-of-tests.mk: Adjust. 2012-01-18 Stefano Lattarini build: simplify our top-level "recheck" target * Makefile.am (recheck): Now that all the test scripts are in the 'tests/' directory, its recipe can be greatly simplified, as we don't need to deal with recursion in multiple subdirectories anymore. 2012-01-18 Stefano Lattarini Merge branch 'maint' * maint: cosmetics: move CheckListOfTests.am into tests/ tests: move all under the same hierarchy ('tests/' directory) gitlog-to-changelog: update from upstream changelog: don't cluster multiple entries under the same "date line" + Extra non-trivial edits: * tests/Makefile.am (XFAIL_TESTS): Update with the xfailing tests that were in 'lib/Automake/tests'. Add proper "FIXME" comment. 2012-01-18 Stefano Lattarini cosmetics: move CheckListOfTests.am into tests/ After the previous change 'v1.11-660-gfbeda3d', the makefile fragment 'CheckListOfTests.am' is used only by the Makefile.am in 'tests'; so keeping them two nearer makes sense. It also help in reducing potential confusion, since (after that same change) the whole Automake testsuite is expected to be (and remain) contained into the 'tests' subdirectory. * CheckListOfTests.am: Move ... * tests/CheckListOfTests.am: ... to this. * tests/Makefile.am (include): Adjust. 2012-01-18 Stefano Lattarini tests: move all under the same hierarchy ('tests/' directory) This simplifies the organization of the Automake source tree and reduces the (lamentably high) number of Makefiles in the Automake build system by one. It also makes the maintainer check that verifies the consistency of list of tests more self-contained and simpler. Finally, it might be a first step forward the transition to a non-recursive build system for automake (if we ever decide to go down that road fully some day). * lib/Automake/tests: All the '*.pl' tests in here moved ... * tests/pm: ... into this new directory. * lib/Automake/tests/Makefile.am: Remove, its meaningful contents moved ... * tests/Makefile.am: ... here, with obvious adjustments. (test_subdirs): New variable, for the sake of the recipe of 'maintainer-check-list-of-tests'. * CheckListOfTests (maintainer-check-list-of-tests): Enhance its recipe to make it able to deal with test script residing in subdirectories. * Makefile.am (maintainer-check-list-of-tests): Simplified. (TEST_SUBDIRS): Remove, no more needed. * tests/list-of-tests.mk (perl_TESTS): New variable, lists the '.pl' tests just moved into 'tests/pm'. (handwritten_TESTS): Add the contents of '$(perl_TESTS)'. * lib/Automake/Makefile.am (SUBDIRS): Remove. * configure.ac (AC_CONFIG_FILES): Update. * .gitignore: Adjust. 2012-01-18 Stefano Lattarini gitlog-to-changelog: update from upstream * lib/gitlog-to-changelog: Update from gnulib upstream. The only changes should be cosmetic and/or minor fixlets. 2012-01-17 Stefano Lattarini changelog: don't cluster multiple entries under the same "date line" * lib/gitlog-to-changelog: Synced from gnulib. The new version has a new option '--no-cluster', that disables clustering of adjacent commit messages under the same "date line". * Makefile.am (gitlog_to_changelog_options): Add '--no-cluster'. Also add a proper '--format' specification to ensure we have a blank line between the summary line and the commit message body. 2012-01-17 Stefano Lattarini Merge branch 'maint' * maint: fixup: contrib: really integrate in automake build system 2012-01-17 Stefano Lattarini fixup: contrib: really integrate in automake build system * configure.ac (AC_CONFIG_FILES): Add 'contrib/Makefile'. * Makefile.am (SUBDIRS): Add 'contrib'. 2012-01-17 Stefano Lattarini check: move ".log -> .html" conversion in contrib That feature has been deprecated in the 1.11.x series, and marked for removal from the automake core in the 1.12 release. Here we implement such removal. Reference: See also commit 'v1.11-650-g20f2ac9'. * doc/automake.texi, NEWS: Update. * lib/am/check.am: Don't include 'check-html.am' anymore. * lib/am/check-html.am: Move ... * contrib/check-html.am: ... to this, and adjust comments. * lib/am/Makefile.am (dist_am_DATA): Update. * contrib/Makefile.am (EXTRA_DIST): Likewise. * tests/parallel-tests2.test: Adjust. * tests/parallel-tests-dryrun.test: Remove checks on the ".log -> .html" conversion. * tests/test-driver-custom-html.test: Remove as obsolete. * tests/test-driver-custom-no-html.test: Likewise. * tests/tap-html.test: Likewise. * tests/list-of-tests.mk: Don't list removed tests anymore. 2012-01-17 Stefano Lattarini Merge branch 'maint' * maint: contrib: new, a directory for non-mainstream functionalities 2012-01-17 Stefano Lattarini tap: some makes in parallel mode unconditionally serialize output Some make implementations (among them, FreeBSD make, NetBSD make, and Solaris Distributed Make), when run in parallel mode, serialize the output from their targets' recipes unconditionally. This has the nasty side effect that the user won't see the partial results of a TAP test until the test has terminated. This is not something our TAP driver script can work around unfortunately; in fact, the driver is sending out its output progressively and "in sync" with test execution -- it is make that is stowing such output away instead of presenting it to the user as soon as it gets it. So we content ourself with working around the issue in our testsuite, to at least avoid failures we could do nothing to prevent. * tests/tap-realtime.test: Skip this test if the make program used is a non-GNU make running in parallel mode. And if Sun dmake is being used, try to force it to run in serial mode, by exporting the 'DMAKE_MODE' environment variable to "serial". 2012-01-17 Stefano Lattarini contrib: new, a directory for non-mainstream functionalities This new 'contrib' hierarchy will be a good place were to move implementation/support for obsolescent features we are not yet ready to remove completely, or were to leave experimental or third-party features to cook before their eventual inclusion in the automake core. * contrib: New directory. * contrib/README: New file. * contrib/Makefile.am: New file. (EXTRA_DIST): Distribute README. 2012-01-17 Stefano Lattarini docs: APIs for custom test drivers are highly experimental * doc/automake.texi (API for Custom Test Drivers): The APIs described here are not "somewhat experimental", but rather "highly experimental". Don't promise the sure a sort of backward-compatibility that we are very likely not going to keep. 2012-01-17 Stefano Lattarini tests: avoid spurious failures with parallel make Some tests are unprepared to be run with a make command that runs in parallel mode by default. This can happen e.g., if the user explicitly run the tests with something like: AM_TESTSUITE_MAKE="gmake -j3" in the in the environment, but also if the make used in the testsuite is Sun Distributed Make, and the 'DMAKE_MODE' environment variable is set to "parallel". Fix some instances of this issue. * tests/tap-doc.test (Makefile.am): Declare explicit dependencies among the test cases, to ensure they are run in the correct order. * tests/tap-doc2.test: Set the 'DMAKE_MODE' environment variable to "serial", to prevent Sun dmake from trying to run in parallel. Remove other now-superfluous workarounds for dmake. 2012-01-17 Stefano Lattarini tests: fix spurious failures with Solaris dmake Solaris Distributed Make, when run in parallel mode, can sprinkle its standard output with lines like: hostname --> 2 jobs ... hostname --> Job output ... This behaviour was causing spurious errors in some tests where we compare the output of make with a known, expected value. Fix that. * tests/tap-doc.test: Before comparing the output from make with its expected value, remove extra lines that could have been printed by Solaris dmake. * tests/tap-doc2.test: Likewise. 2012-01-16 Stefano Lattarini Merge branch 'maint' * maint: recheck: fix interaction with "make -n" vala: avoid potential useless remakes (minor bugfix) vala: enhance tests recheck: behave better with non-GNU make check: separate .log -> .html conversion from core testsuite harness docs: deprecate .log -> .html conversion by parallel-tests tests: list some forgotten test cases in $(TESTS) maintcheck: consistency of list of test scripts build: explicitly declare some targets as .PHONY maint: remove obsolete/broken maintainer targets build: improve silencing of automake build system tests: move list of tests in its own Makefile fragment + Extra non-trivial edits: * tests/parallel-tests2.test: Obvious edits to merge the slightly inconsistent enhancements to coverage done in master with those done in maint. * lib/am/check.am (check-TESTS, recheck): Sweeping and rather complex changes to merge the considerable divergences between maint and master in a way that is meaningful and, where possible, retains the semantic changes from both maint and master. 2012-01-16 Stefano Lattarini Merge branch 'check-html-deprecate' into maint * check-html-deprecate: recheck: fix interaction with "make -n" recheck: behave better with non-GNU make check: separate .log -> .html conversion from core testsuite harness docs: deprecate .log -> .html conversion by parallel-tests 2012-01-16 Stefano Lattarini recheck: fix interaction with "make -n" * lib/am/check.am (recheck): Ensure the recipe does not erroneously remove '.log' files when running under "make -n". For the sake of NetBSD make, this also means that ... (.MAKE): ... this cannot depend on 'recheck' anymore. * tests/parallel-tests-dryrun.test: New test. * tests/list-of-tests.mk: Add it. 2012-01-16 Stefano Lattarini vala: avoid potential useless remakes (minor bugfix) * automake.in (lang_vala_finish_target): Ensure the timestamp file from which the C files generated from Vala sources depend on gets created with a modification time that is truly older than those of said generated C files. This prevents make from attempting useless rebuilds (which were bound to happen deterministically on systems with sub-second timestamp resolutions). It is worth noting that, luckily, those useless rebuild ended up being a no-op, since the Vala compiler is careful not to update the timestamp of an output file if its content has not changed from the previous version. Still, the useless rebuilds messed up "make -q" and "make -n" invocations, and were technically incorrect (despite being, as noted, inoffensive in practice). Problem revealed by failure of tests vala-mix.test and vala5.test on a fast Solaris 10 system whose filesystem had a sub-second timestamp resolution. 2012-01-16 Stefano Lattarini vala: enhance tests * tests/vala.test: Extend test. Throw in some cosmetic and consistency changes since we are at it. * tests/vala5.test: Avoid uselessly requiring libtool. Ensure a failure happens in case VALAFLAGS are not supported as expected. Extend test in some ways. Throw in some cosmetic and consistency changes since we are at it. * tests/vala-mix.test: New test. * tests/list-of-tests.mk: Add it. 2012-01-16 Stefano Lattarini recheck: behave better with non-GNU make * automake.in (handle_tests): Also substitute '%CHECK_DEPS%' with the value of the '@check' array, containing the list of early test dependencies like '$(check_SCRIPTS)', $(check_PROGRAMS)', etc. * lib/am/check.am (recheck): Explicitly depend on '%CHECK_DEPS%'. (check, recheck): Unify the implementation of their recipes, with different code paths taken depending on the name of the target. This makes the implementation of "recheck" less brittle in the process (especially when non-GNU make and AM_MAKEFLAGS overriding are involved). * lib/am/check-html.am (check-html, recheck-html): Likewise. * tests/check.test: Adjust to avoid spurious failure. * tests/parallel-tests2.test: Improve coverage. 2012-01-16 Stefano Lattarini check: separate .log -> .html conversion from core testsuite harness That feature is to be deprecated in the 1.11.x series, and removed from the automake core in the 1.12 release, where it will instead be offered in a semi-independent extra '*.am' fragment. So let's start better separating the .log -> .html conversion from the "core code" of the parallel-tests harness. Reference: * lib/am/check.am (.log.html, check-html, recheck-html): Move these targets ... * automake.in (handle_tests): ... and the initialization of the TEST_SUITE_HTML variable and the cleaning of the $(TEST_SUITE_HTML) file ... * lib/am/check-html.am: ... in this new file, with related (minor) refactorings, enhancements and simplifications. * lib/am/check.am (.MAKE. PHONY, AM_RECURSIVE_TARGETS): Adjust. * lib/am/Makefile.am (dist_am_DATA): Add 'check-html.am'. * tests/parallel-tests2.test: Improve coverage. 2012-01-16 Stefano Lattarini docs: deprecate .log -> .html conversion by parallel-tests That feature is to be deprecated in the 1.11.x series, and removed in the 1.12 release. Reference: * doc/automake.texi (Simple Tests using parallel-tests): Deprecate the '.log' -> '.html' conversion and the targets 'check-html' and 'recheck-html'. Related rewording and reformatting. * NEWS (Future backward-incompatibilities): Update. 2012-01-16 Stefano Lattarini tests: list some forgotten test cases in $(TESTS) This way, they will be properly executed by "make check", and properly distributed. Our previous commit 'v1.11-647-g27f1a1c' is already paying its dividends! * tests/list-of-tests.mk (handwritten_TESTS): Add check12.test, dist-missing-included-m4.test, dist-missing-am.test, and dist-missing-m4.test. 2012-01-16 Stefano Lattarini maintcheck: consistency of list of test scripts This is basically a backport of commit 'v1.11-358-g7b6ab07' and its follow-ups. The possibility of easily checking that the list of test scripts listed in a Makefile equals that of the tests on the filesystem has proved itself so useful that it's worth taking the annoyance of backporting it to maint. * CheckListOfTests.am: New file, backported from master (commit 'v1.11-1736-g083a75b') with minor adjustments. (maintainer-check-list-of-tests): New target, check for consistency between the list of tests defined in the including Makefile and the list of tests on the filesystem. (clean-maintcheck-testslist-tmp): New rule, to clean up temporary files that might be left around by the rules associated with the previous target. (clean-local): Depend on it. * lib/Automake/tests/Makefile.am: Include `CheckListOfTests.am'. * tests/Makefile.am: Likewise. * Makefile.am (maintainer-check-list-of-test): New target, calling recursively into `tests/' and `lib/Automake/tests/', using ... (TEST_SUBDIRS): ... this new variable. (maintainer-check): Added dependency from the new target `maintainer-check-list-of-tests'. 2012-01-16 Stefano Lattarini maintcheck: completeness check on list of tests simplified * CheckListOfTests.am: Simplify the recipe, accordingly to the assumption that all the entries in $(TEST_EXTENSIONS) and in $(TESTS) have an associated real test script. This was not the case when we used to have some entries in $(TESTS) that were not real files, but rather "parameters" (sort of) for the corresponding $(LOG_COMPILER). However, that usage had proven to be confusing and brittle, and thus removed (see commit 'v1.11-1308-g375f23d' of September 8 2011, "testsuite: revamp generation of autogenerated tests"). 2012-01-15 Stefano Lattarini build: explicitly declare some targets as .PHONY * Makefile.am (fetch, git-dist, git-release, maintainer-check): Declare as ".PHONY". 2012-01-15 Stefano Lattarini maint: remove obsolete/broken maintainer targets * Makefile.am (git-diff): Remove. First, we don't distribute diffs between an automake version and the next one anyway, so this target is pointless. Moreover, its recipe has been broken for quite a long time now, always generating an empty diff due to the spurious '$(PACKAGE)' argument that was passed to the "git diff" invocation. (path-check): Remove. The 'pathchk' program running in this check complains about any file with name longer than 14 characters, which is a ridiculously low limit for today standards. Also, we already had several test scripts (no less than 195!) that were exceeding that limit, and nobody ever complained (not even on MinGW/MSYS nor Cygwin). 2012-01-15 Stefano Lattarini build: improve silencing of automake build system In this change, we continue the silencing of the automake build system that has been started in commit v1.11-642-g17542c3, but which has been left incomplete there for an (absent-mindness) mistake. * Makefile.am (INSTALL): Silence the recipe. (automake, aclocal): Likewise, and improve them a little since we are at it. * lib/Automake/Makefile.am (Config.pm): Likewise. 2012-01-15 Stefano Lattarini tests: move list of tests in its own Makefile fragment This change will make it easier to merge maint into master, which has a similar Makefile setup in the testsuite. * tests/Makefile.am (include): Inclusion of ... * tests/list-of-tests.mk: ... this new file. * tests/Makefile.am (TESTS): Move most of its content into, and redefine in function of, ... * tests/list-of-tests.mk (handwritten_TESTS): ... this new variable. * tests/gen-parallel-tests: Update. 2012-01-15 Stefano Lattarini Merge branch 'maint' * maint: tests: move list of tests in its own Makefile fragment build: silence automake build system 2012-01-15 Stefano Lattarini tests: move list of tests in its own Makefile fragment This change will make it easier to merge maint into master, which has a similar Makefile setup in the testsuite. * tests/Makefile.am (include): Inclusion of ... * tests/list-of-tests.mk: ... this new file. * tests/Makefile.am (TESTS): Move most of its content into, and redefine in function of ... * tests/list-of-tests.mk (handwritten_TESTS): ... this new variable. * tests/gen-parallel-tests: Update. 2012-01-15 Stefano Lattarini build: silence automake build system * configure.ac (AM_SILENT_RULES): Invoke with "yes" as a parameter, to activate silent rules by default. * NEWS: Update. * Makefile.am (sc_perl_syntax): Silence its recipe unconditionally, similarly to what is done for other syntax checks. (release-stats): Be silent by default *but not unconditionally*, thanks to the use of $(AM_V_GEN). (path-check, git-diff): Be silent by default, thanks to the use of $(AM_V_GEN). * m4/Makefile.am ($(top_srcdir)/m4/amversion.m4): Likewise. * doc/Makefile.am ($(srcdir)/amhello-1.0.tar.gz): Likewise. * tests/Makefile.am ($(srcdir)/parallel-tests.am): Likewise. ($(parallel_tests)): Likewise. 2012-01-15 Stefano Lattarini Merge branch 'maint' * maint: gnupload: moved to gnulib sync: gitlog-to-changelog from gnulib upstream test defs: backport optimized 'using_gmake' implementation tests: unify some tests on "make -n", reducing duplication vala: use "$(am__cd) $(srcdir)", not "cd $(srcdir)" + Extra edits: * tests/maken3.test: Carry over (with necessary adjustments) the code from maken4.test that determines whether $MAKE supports the special '.MAKE' target. 2012-01-15 Stefano Lattarini gnupload: moved to gnulib Since the gnupload script is not required by automake-generated code (be it configure or Makefile content), and is not specifically tied to automake in any way, it is better to have its master copy installed in the gnulib repository, as is already done for similar generally-useful, maintainer-oriented scripts. We can them sync it from there. See also gnulib commit v0.0-6822-gf8b7120, and: * Makefile.am (FETCHFILES): Added 'gnupload'. (fetch): Also sync 'gnupload' from the gnulib repository. * lib/gnupload: Synced from gnulib. * NEWS: Update. 2012-01-15 Stefano Lattarini sync: gitlog-to-changelog from gnulib upstream * lib/gitlog-to-changelog: Synced from upstream, by "make fetch". 2012-01-14 Stefano Lattarini test defs: backport optimized 'using_gmake' implementation * tests/defs.in (using_gmake): Backport optimized, result-caching implementation from master. 2012-01-14 Stefano Lattarini tests: unify some tests on "make -n", reducing duplication * tests/maken2.test: Merge into ... * tests/maken.test: ... this test, to avoid unnecessary code duplication. Make checks depending on GNU make conditional to the actual presence of GNU make. * tests/maken4.test: Similarly, merge into ... * tests/maken3.test: ... this test. * tests/Makefile.am (TESTS): Remove maken2.test and maken4.test. 2012-01-14 Stefano Lattarini vala: use "$(am__cd) $(srcdir)", not "cd $(srcdir)" * automake.in (lang_vala_finish_target): In the generated rules, use '$(am__cd)', not bare 'cd', to chdir into $(scdir). Issue revealed by the maintainer check 'sc_cd_relative_dir'. 2012-01-13 Stefano Lattarini Merge branch 'maint' * maint: dist: avoid $(distdir) removal failure on MSYS/MinGW tests: fix spurious failure of 'get-sysconf.test' coverage: expose automake bug#10470 (distcheck-related) tests: make 'aclocal-install-absdir.test' executable tests: require GNU make in 'vala-vapth.test' vala: fix VPATH builds tests: fix some bugs in the vala-vpath test 2012-01-13 Stefano Lattarini Merge branch 'fix-pr10470' into maint * fix-pr10470: dist: avoid $(distdir) removal failure on MSYS/MinGW coverage: expose automake bug#10470 (distcheck-related) 2012-01-13 Stefano Lattarini dist: avoid $(distdir) removal failure on MSYS/MinGW This change fixes automake bug#10470. On MSYS (1.0.17) it is not possible to remove a directory that is in use, and this, together with timing issues, could cause spurious failures in the cleanup code of the "distcheck" recipe. In fact, it should be noted that assuming a directory can be removed while it the CWD of a running process is a POSIX violation: "If the directory is the root directory or the current working directory of any process, it is unspecified whether the function succeeds, or whether it shall fail and set errno to [EBUSY]." * lib/am/distdir.am (am__remove_distdir): If rm fails, sleep some seconds and retry, to give potential "pending" processes some time to exit and "release" the directory. * tests/Makefile.am (XFAIL_TESTS): Remove 'distcheck-pr10470.test'. Report and suggestions by Peter Rosin and Eric Blake. 2012-01-12 Stefano Lattarini tests: fix spurious failure of 'get-sysconf.test' * tests/get-sysconf.test: Do not assume that a ChangeLog file exists in $(srcdir): now that the ChangeLog is autogenerated and not under version control anymore, this is not necessary true. Instead, if we are running from a git checkout, use "git log" to get information on the version of the automake snapshot being tested (and fall back on extracting the first ChangeLog entry otherwise). Reported by Jim Meyering in automake bug#10418. Cherry picked from commit v1.11-1675-g104f302. 2012-01-12 Stefano Lattarini coverage: expose automake bug#10470 (distcheck-related) * tests/distcheck-pr10470.test: New test. * tests/Makefile.am (TESTS, XFAIL_TESTS): Add it. Report and suggestions by Peter Rosin and Eric Blake. 2012-01-12 Stefano Lattarini tests: make 'aclocal-install-absdir.test' executable * tests/aclocal-install-absdir.test: Make it executable. 2012-01-12 Stefano Lattarini tests: add missing dependency for some 'ar-lib*.test' tests This change fixes spurious failures of the tests ar-lib4.test, ar-lib6a.test and ar-lib6b.test. * tests/Makefile.am (ar-lib4.log): Depend explicitly on the `libtool-macros.log' file. (ar-lib6a.log, ar-lib6b.log): Likewise. 2012-01-11 Stefano Lattarini dist: distdir not unconditionally removed anymore for xz and lzip This change fixes automake bug#10444 a.k.a. bug#10448. The 'dist-xz' and 'dist-lzip' recipes were erroneously using '$(am__remove_distdir)' instead of '$(am__post_remove_distdir)' to cleanup the '$(distdir)'; so a "make dist" issued in a package using (say) gzip and xz compression would have failed to properly created the gzip tarball, since the distdir was unconditionally removed by "make dist-xz" upon its completion, instead of being left populated for the following "make dist-gzip". The problem with 'dist-xz' was introduced in the merge commit `v1.11-1142-g47587d1', and the problem with 'dist-lzip' was introduced in the merge commit `v1.11-1673-gc1b14e9' * lib/am/distdir.am (dist-xz): Use '$(am__post_remove_distdir)', not '$(am__remove_distdir)'. (dist-lzip): Likewise. 2012-01-11 Stefano Lattarini coverage: archive and compression formats used by "make dist" This change exposes automake bug#10444 a.k.a. bug#10448. * tests/dist-formats.tap: New test. * tests/lzip.test: Remove, it's obsolete now. * tests/nogzip.test: Likewise. * tests/nogzip2.test: Likewise. * tests/xz.test: Likewise. * tests/list-of-tests.mk: Update. 2012-01-10 Peter Rosin tap/awk: avoid redirection issues with bash 3.2 and earlier Fixes automake bug#10465. * lib/tap-driver.sh: Add workaround for bash 3.2 and earlier, which sometimes does not properly set '$?' when failing to write redirected output of a compound command. See the Autoconf manual for more details. The workaround was pointed out by Eric Blake. 2012-01-09 Peter Rosin tests: detect that MSYS lacks symlinks * tests/self-check-cleanup.tap: Also check if "ln -s" really created a symlink to cater for MSYS falling back to an ordinary copy. Also, don't chmod the symlinks if they were never created. 2012-01-08 Stefano Lattarini tests: avoid many spurious failures on MSYS due to lack of symlinks Fixes automake bug#10441. * tests/add-missing.tap: Do not assume the system supports real symlinks, as this is not the case for MinGW/MSYS. Skip checks that would spuriously fail in that situation. * tests/copy.test: Likewise. Reported by Peter Rosin. 2012-01-08 Stefano Lattarini tests: require GNU make in 'vala-vapth.test' * vala-vpath.test ($required): Add the "GNUmake" requirement, since rules generated by vala support are expected to work with GNU make only. 2012-01-08 Ryan Lortie (tiny change) Stefano Lattarini vala: fix VPATH builds This change fixes automake bug#9859. * automake.in (lang_vala_finish_target): Create the stamp file '${derived}_vala.stamp' in $(srcdir), not in $(builddir). Also, don't try to chdir to the $(srcdir) to trigger the rebuild rules, since that is just wrong in a VPATH setup. * tests/vala-vpath.test, tests/vala2.test: Extend to catch more possible VPATH issues. * tests/Makefile.am (XFAIL_TESTS): Remove 'vala-vpath.test'. * NEWS, THANKS: Update. 2012-01-08 Ryan Lortie (tiny change) tests: fix some bugs in the vala-vpath test * tests/vala-vpath.test: There are (trivial) problems in this testcase that would cause the build to fail even if the core issue were resolved. Fix those. 2012-01-06 Stefano Lattarini fixup: list forgotten test case in $(TESTS) * tests/list-of-tests.mk: Also list 'tar-override.test'. 2012-01-06 Paul Eggert scripts: quote 'like this', not `like this' This change follows up on recent changes to the GNU coding standards. They now suggest that we should quote 'like this' or "like this" instead of `like this'; see: . Gnulib is being changed accordingly, and Gnulib imports some files directly from Automake master, so change those files to use the straight-up style. This affects only commentary and quoting in diagnostics. 2012-01-06 Stefano Lattarini tests: safer declarations of test dependencies To declare prerequisites common to all the tests, we now prefer to use the special `check_DATA' and `check_SCRIPTS' variables rather than "lazy" dependency declaration like "$(TEST_LOGS): DEPS ..."; this because the latter, allowing run-time overriding of the TEST_LOGS variable, turned out to be subtly incomplete in some situations involving non-trivial inter-test dependencies. For example, if the user issued a: make check TESTS=libtool.test before the `defs-static' file was created (either explicitly or implicitly), a spurious errors followed, along these lines: 1. $(TEST_LOGS) got dynamically defined to `libtool.log'; 2. make saw that, in the Makefile, `libtool.log' was explicitly declared depending on `libtool-macros.log' and `defs-static'; 3. somehow, make considered the dependency on `libtool-macros.log' *before* considering the one on `defs-static' (which BTW is perfectly legitimate on make's part); 4. to satisfy such a dependency, make set out to execute the test `libtool-macros.test' in order to create the file `libtool-macros.log'; 5. since `libtool-macros.log' was *not* in $(TEST_LOGS), it didn't appear to depend on the `defs-static' file, so make didn't consider necessary to build `defs-static' before running the `libtool-macros.test' script; 6. but that script sources `./defs-static' in order to work; thus the test `libtool-macros.test' failed spuriously. * tests/Makefile.am ($(TEST_LOGS)): Remove explicit declaration of dependency on the required files/scripts; instead use ... (check_SCRIPTS, check_DATA): ... these new variables. 2012-01-06 Stefano Lattarini tests: skip tests on perl TAP driver if TAP::Parser is not available We had so far taken for granted that all the perl installations modern enough to correctly run automake also came with a built-in TAP::Parser module; unfortunately, testing on MinGW/MSYS has shown that this is not always true, and that a lot of spurious testsuite failures would take place in such a situation (see automake bug#10440). Luckily, the perl implementation of the Automake TAP driver is only meant to be used for prototyping and consistency checks, the "real" Automake TAP driver being the portable one implemented in awk. So we can simply skip the affected tests on systems lacking TAP::Parser. * tests/defs (fetch_tap_driver): Skip the whole test case if the desired tap driver implementation is the perl one but the TAP::Parser module is unavailable. * tests/tap-bad-prog.tap: Adjust order of calls to `plan_' and `fetch_tap_driver', to ensure the test is not skipped after the TAP plan has been outputted (which would lead to a spurious error). * tests/tap-bad-signal.tap: Tweak to avoid the need to source the `tap-setup.sh' script, as that might cause a test skip too late, i.e., after a TAP plan has been already printed. * tests/tap-test-number-0.test: Do not force the test to skip when the tested TAP driver implementation is not the perl one. On the other hand, when it *is* the perl one, skip the test if the TAP::Parser module is unavailable. * tests/test-driver-cond.test: Skip the part of the test actually running "make check" if the TAP::Parser module is unavailable. * tests/get-sysconf.test: Also print the version of the `TAP::Parser' module, if available. Reported by Peter Rosin. 2012-01-06 Stefano Lattarini Merge branch 'maint' * maint: dist: do not wrap calls to 'tar' with the 'missing' script fixup: previous commit v1.11-627-g1e0aedc tests: fix spurious failures due to autom4te caching 2012-01-06 Stefano Lattarini dist: do not wrap calls to 'tar' with the 'missing' script The `missing' script is meant to allow non-developers to build a package in the face of slightly-skewed timestamps (as might happen e.g. when the package is obtained from a VCS checkout rather than from a distribution tarball). It is *not* the business of the `missing' script to try to provide wrappers for all the maintainer tools (in this case, to tool being a decent tar program). Such wrapping of `tar' was not only inappropriate, but it was also preventing the legitimate overriding (at make runtime) of the `tar' program used in the creation of the distribution tarballs. See also automake bug#9822. * lib/missing: Don't try to specially wrap `tar' invocations anymore. * m4/tar.m4 (_AM_PROG_TAR): In the definitions of the `AMTAR' variable, do not wrap the `tar' invocation with the `missing' script anymore. Instead, allow the user to override the intended tar program at make runtime, by defining the `TAR' environment variable. [$1 == v7]: Similarly for the definitions of the `am__tar' and `am__untar' variables. Since we are at it, don't make them depend anymore on the definition of the obsolescent `AMTAR' variable. * NEWS: Update. * tests/missing-tar.test: Remove, it's obsolete. * tests/tar-override.test: New test. * tests/Makefile.am (TESTS): Update. Reported by Akim Demaille. 2012-01-06 Stefano Lattarini fixup: previous commit v1.11-627-g1e0aedc * tests/acloca18.test: Do not remove an aclocal.m4 file that is needed by a later autoconf invocation. 2012-01-06 Stefano Lattarini tests: fix spurious failures due to autom4te caching * tests/aclocal9.test: Call aclocal and autoconf with the `--force' option. * tests/acloca10.test: Sleep between re-runs of aclocal and autoconf. * tests/acloca18.test: Explicitly remove also the configure script and the aclocal.m4 before re-invoking aclocal and autoconf. 2012-01-06 Stefano Lattarini parallel-tests: avoid trailing backslashes in make recipes The new testsuite-harness could generate recipes with a trailing backslash character (possibly followed by blank characters only), in the very common case where the user hadn't defined the special $(AM_TESTS_FD_REDIRECT) variable. This caused spurious syntax errors with at least older bash versions (e.g., bash 2.05b), and could be potentially unportable to other weaker shells. See automake bug#10436: and coreutils bug#10427: * lib/am/check2.am: Rework line breaks so that no backslash can be at the end of a line. * tests/parallel-tests-trailing-bslash.test: New test. * tests/list-of-tests.mk: Add it. Report and diagnosis by Paul Eggert. 2012-01-06 Stefano Lattarini Merge branch 'maint' * maint: parallel-tests: avoid issue with overly long lines in sed input Additional edits: * NEWS: Remove entry from merged commit, since that will also be present in the NEWS file of automake 1.11.3. * lib/am/check.am (check-TESTS, recheck, recheck-html): Rework merged changes to adapt them to the different form these recipes has assumed in the master branch (w.r.t. the maint branch). 2012-01-05 Stefano Lattarini parallel-tests: avoid issue with overly long lines in sed input See automake bug#10437: and coreutils bug#10427: * lib/am/check.am (recheck, recheck-html): In order to strip trailing whitespace from the definition of the `$list' variable, we used to invoke sed in a way that could cause it to get passed overly long input lines, causing spurious failures. So rework the logic of the recipe to avoid any sed invocation, relying on simpler shell idioms instead. (check-TESTS): Reorganize the recipe to be more similar to the one of `recheck', for consistency and simplicity. * NEWS: Update. Report and analysis by Paul Eggert. 2012-01-05 Peter Rosin tests: work around strangeness in MSYS MSYS mishandles carriage returns and behaves very strangely for directories with colon in them. It seems that colon-directories are somehow mixed up with drive letters. Fixes automake bug#7849. * tests/instspc.tap: Skip instead of erroring out when $test_string is empty for the carriageret case, as that is expected on MSYS. Also, for similar reasons, skip instead of erroring out when it is not possible to cd into the just created directory, and the directory name contains a colon. Update copyright years. 2012-01-04 Paul Eggert cosmetics: prefer the term "Windows" over "Win32" Microsoft has renamed the Win32 API to "Windows API": Also, after some discussion on bug-gnulib, when talking about hosts and platforms we believe it's better to talk about "Windows" or "native Windows" instead: * doc/automake.texi: Mention "Windows", not "Win32". * lib/Automake/XFile.pm: Likewise. * lib/ar-lib: Likewise. * lib/compile: Likewise. * tests/compile2.test: Mention "Windows", not "w32". 2012-01-04 Peter Rosin test defs: skip all tests when the lib requirement isn't fulfilled * tests/defs (lib): Use skip_all_ instead of skip_, in order to support TAP-based test scripts. 2012-01-04 Stefano Lattarini tests: be sure to list all test cases in $(TESTS) * tests/list-of-tests.mk: Due to slightly botched merges, the test scripts `objext-pr10128.test' and `silent-nested-vars.test' weren't being correctly listed in $(TESTS); fix this. 2012-01-04 Stefano Lattarini Merge branch 'maint' * maint: sync: auxiliary files from upstream synced sync: fix syncing of 'gitlog-to-changelog' script maintcheck: avoid false positive in sc_tests_plain_make 2012-01-04 Stefano Lattarini sync: auxiliary files from upstream synced * lib/texinfo.tex: Synced from upstream, by "make fetch". * lib/gitlog-to-changelog: Likewise. * lib/config.guess: Likewise. * lib/config.sub: Likewise. 2012-01-04 Stefano Lattarini sync: fix syncing of 'gitlog-to-changelog' script * Makefile.am (FETCHFILES): Also list 'gitlog-to-changelog'. 2012-01-04 Stefano Lattarini maintcheck: avoid false positive in sc_tests_plain_make * Makefile.am (sc_tests_plain_make): Ensure to only match full `make' words. Avoid false positive in `silent-nested-vars.test'. 2012-01-03 Stefano Lattarini Merge branch 'maint' * maint: install: pkglibexec_SCRIPTS is a valid prefix/primary combination coverage: expose automake bug#10128 progs, libs: implement EXTRA_foo_DEPENDENCIES tests: fix spurious failures in 'pr300*.test' 2012-01-03 Stefano Lattarini install: pkglibexec_SCRIPTS is a valid prefix/primary combination It makes little sense for `libexec_SCRIPTS' to be accepted as valid while `pkglibexec_SCRIPTS' is not. So fix this inconsistency by explicitly allowing `pkglibexec_SCRIPTS' as well. It is worth noting that the inconsistency has been there for a long time, but only the quite recent commit `v1.11-373-g9ca6326' "Warnings about primary/prefix mismatch fixed and extended" has made it noisy enough to be noticed. * automake.in (handle_scripts): Also list `pkglibexec' among the prefixes valid for the `SCRIPTS' primary. * doc/automake.texi (Scripts): Likewise. * tests/primary-prefix-valid-couples.test: Update. * THANKS: Likewise. * NEWS: Likewise. Reported by Dennis Schridde on the automake list: 2012-01-03 Stefano Lattarini coverage: expose automake bug#10128 * tests/objext-pr10128.test: New test, still expected to fail. * tests/Makefile.am (TESTS, XFAIL_TESTS): Add it. 2012-01-03 Stefano Lattarini progs, libs: implement EXTRA_foo_DEPENDENCIES Backported from commit `v1.11-377-g6edafbb'. The feature implemented by that change is quite unobtrusive, so adding it to a maintenance release is acceptable. Also, there have been requests from real-world users for this feature since it has been implemented in master; see automake bug#9320: and this short discussion on the automake list: It would be a pity to make such users wait even more (until Automake 1.12 is out) before they could start using this feature. Thus we backport it, so that it will appear in the next maintenance version of automake (1.11.3). * automake.in (handle_programs, handle_libraries) (handle_ltlibraries): Mark EXTRA_*_DEPENDENCIES as recognized. * doc/automake.texi (Linking, Program and Library Variables) (LIBOBJS): Document EXTRA_*_DEPENDENCIES. * lib/am/library.am (%LIBRARY%): Also depend on $(EXTRA_%XLIBRARY%_DEPENDENCIES). * lib/am/ltlibrary.am (%LTLIBRARY%): Also depend on (%XLTLIBRARY%_DEPENDENCIES). * lib/am/program.am (%PROGRAM%%EXEEXT%): Also depend on $(EXTRA_%XPROGRAM%_DEPENDENCIES). * tests/extradep.test, tests/extradep2.test: New tests. * tests/Makefile.am (TESTS): Update. * NEWS: Update. 2012-01-03 Stefano Lattarini tests: fix spurious failures in 'pr300*.test' This change fixes automake bug#10426. * tests/pr300-lib.test: Call configure with an explicit '--libdir' option, to avoid spurious failures due to users possibly overriding '${libdir}' in ther config.site files. * tests/pr300-ltlib.test: Likewise. Reported by Bruno Haible. 2012-01-02 Stefano Lattarini tests: fix spurious failure due to I/O buffering * tests/parallel-tests-interrupt.tap: Ensure the dummy test script `foo.test' flushes its standard output before starting to grep the log file where such output is being redirected by the parallel test harness. Since we are at it, improve this same dummy script to better catch unexpected behaviours and results. Reported by Jim Meyering in automake bug#10418. 2012-01-02 Stefano Lattarini news: fix botched merges, rebase on 1.11.2a NEWS version The NEWS file is unfortunately written in a format that doesn't lend itself very well to automatic merges; the recent merges of maint into master have left it full of blunders and in a somewhat inconsistent state. Another orthogonal issue is that the current version of NEWS still reports all the changes since the last 1.11 version, rather than since the latest maintenance version 1.11.2, or, even better, since the planned next maintenance version 1.11.3. * NEWS: Fix blunders and errors from botched merges. Rebase the file on the NEWS file from branch-1.11 (from which automake 1.11.3 is expected to be released). 2012-01-01 Stefano Lattarini Merge branch 'msvc' * msvc: tests: fix spurious failure due to autom4te caching news: fix suboptimal wording tests: various minor tweakings, mostly related to AM_PROG_AR 2012-01-01 Stefano Lattarini tests: fix spurious failure due to autom4te caching * tests/ar-lib3.test: Remove stale autom4te.cache directory, to prevent racy, spurious failures. Reported by Jim Meyering in automake bug#10418. 2012-01-01 Stefano Lattarini Merge branch 'maint' into msvc * maint: tests: make 'lzip.test' executable dist: obsolete support for lzma (superseded by xz and lzip) test defs: more granular overriding of the make program docs: fix a couple broken anchors dist: add support for lzip compression docs: fix paragraph names for automake and aclocal invocations tests: fix spurious failure due to autom4te caching fix: last entry in ChangeLog tests: tweak tests on silent-rules for makes without nested vars silent-rules: fallback for makes without nested vars 2012-01-01 Stefano Lattarini tests: fix spurious failure of 'get-sysconf.test' * tests/get-sysconf.test: Do not assume that a ChangeLog file exists in $(srcdir): now that the ChangeLog is autogenerated and not under version control anymore, this is not necessary true. Instead, if we are running from a git checkout, use "git log" to get information on the version of the automake snapshot being tested (and fall back on extracting the first ChangeLog entry otherwise). Reported by Jim Meyering in automake bug#10418. 2012-01-01 Stefano Lattarini dist: remove support for lzma (superseded by xz and lzip) See also commit `v1.11-611-ge637fa2' (from maint), where support for lzma compression of distribution archive had been deprecated. * NEWS: Update. * lib/Automake/Options.pm: Error out if the `dist-lzma' option is used. * lib/am/distdir.am: Remove all support for the creation of a lzma-compressed distribution archive. * tests/lzma.test: Update. 2012-01-01 Stefano Lattarini Merge branch 'maint' * maint: tests: make 'lzip.test' executable dist: obsolete support for lzma (superseded by xz and lzip) test defs: more granular overriding of the make program docs: fix a couple broken anchors dist: add support for lzip compression docs: fix paragraph names for automake and aclocal invocations tests: fix spurious failure due to autom4te caching fix: last entry in ChangeLog tests: tweak tests on silent-rules for makes without nested vars silent-rules: fallback for makes without nested vars 2012-01-01 Stefano Lattarini tests: make 'lzip.test' executable * tests/lzip.test: Make it executable. 2012-01-01 Stefano Lattarini Merge branch 'deprecate-lzma' into maint * deprecate-lzma: dist: obsolete support for lzma (superseded by xz and lzip) 2012-01-01 Stefano Lattarini dist: obsolete support for lzma (superseded by xz and lzip) The lzma utilities are today superseded by the xz utilities; in fact, the official site at reads: ``LZMA Utils are legacy data compression software with high compression ratio. LZMA Utils are no longer developed, ... Users of LZMA Utils should move to XZ Utils.'' and the existing automake manual (as of 1.11.2) already says: ``dist-xz Generate an 'xz' tar archive of the distribution. xz archives are frequently smaller than bzip2-compressed archives. The 'xz' format will soon (early 2009) displace the 'lzma' format'' Also, the `dist-lzma' target still suffers of never-solved bugs, due to the too-high compression ratio its uses by default, which might cause an unacceptable memory consumption when one tries to compress or, worse, decompress the created tarballs; see also: * NEWS: Update. * doc/automake.texi (Dist, Options): State that `dist-lzma' will go away in the next major automake version. * lib/Automake/Options.pm (_process_option_list): Deprecate `dist-lzma'. * tests/lzma.test: Update. 2011-12-31 Stefano Lattarini maintcheck: fix a couple of typos in error messages * Makefile.am (sc_tests_plain_autoheader): Fix the message to report a bad use of "autocheader", not of "automake." (sc_tests_plain_autom4te): Likewise, but for "autom4te" instead. (sc_tests_plain_autoreconf): Likewise, but for "autoreconf" instead. 2011-12-31 Stefano Lattarini maintcheck: be sure to look at all the test cases Many maintainer checks in the top-level Makefile.am did some unwarranted assumptions about the test cases, i.e., they assumed that all the test scripts matched the wildcard `$(srcdir)/*.test'. This failed to properly take into account VPATH builds (where some generated tests might be in ${builddir} rather than in ${srcdir}), TAP-based tests script (which have a `.tap' extension) and helper scripts used by other test cases (which have a `.sh' extension). Fixes automake bug#9299. * Makefile.am (xtests): New variable, containing a (dynamically computed) of files that looks like test cases of the automake testsuite. Update many rules to use this new variable instead of blindly assuming that all the testcases matches the $(srcdir)/tests/*.test wildcard. * tests/tap-bad-prog.tap: Do a minor formatting change to avoid spuriously triggering a match from the syntax check `sc_tests_overriding_macros_on_cmdline'. 2011-12-31 Stefano Lattarini Merge branch 'dist-lzip' into maint * dist-lzip: dist: add support for lzip compression 2011-12-30 Stefano Lattarini test defs: more granular overriding of the make program Before this change, the only way the user could override the make program used in the automake test cases was to override the $MAKE variable in the environment. This had the annoying side effect of requiring that, whenever a non-default make program was to be used in the test cases, that same make program had to be used to drive the execution of the automake testsuite; otherwise, the recursive make invocations could pick up $MAKE from the environment, and use that instead of re-executing with the correct make. So, for example, if one wanted to try how Solaris /usr/ccs/bin/make behaved in the automake test cases, he couldn't run the testsuite in parallel mode, because that make lacks support for concurrent execution of recipes; on fast machines, this easily meant a 4x or higher slow-down. Once the problem is clear, the solution is pretty simple: allow the use of another variable, besides $MAKE, to override the make program to be used in the test cases. See also commit `v1.11-1318-g3ceeef4', that introduced a more general version of this change to the master branch. * tests/defs.in: Allow the make implementation to be used by the test cases to be overridden by the `$AM_TESTSUITE_MAKE' variable, in preference to the `$MAKE' variable. 2011-12-30 Stefano Lattarini docs: fix a couple broken anchors * doc/automake.texi: In previous commit v1.11-605-g5f71f2b (related to automake bug#8071), we had renamed the chapters about aclocal and automake invocation, and added anchors to the old names as not to break hyperlinks to our on-line manual. Unfortunately, these anchors had been erroneously placed *before* the relevant `@node' commands, instead that just after, so that they ended up pointing to the wrong chapters. Fix this. Since we are at it, tweak the wording of the comments to the anchors to better match that used in the autoconf manual. Report and suggestion by Eric Blake. 2011-12-30 Antonio Diaz Diaz dist: add support for lzip compression * NEWS: Update. * automake.in (handle_dist): Recognize dist-lzip. (make_paragraphs): Map LZIP to dist-lzip. * doc/automake.texi (Dist, Options): Describe dist-lzip. * lib/Automake/Options.pm (_process_option_list): Recognize `dist-lzip'. * lib/am/distdir.am (dist-lzip): New target. (DIST_ARCHIVES) [?LZIP?]: Add `dist-lzip'. (dist, dist-all) [?LZIP?]: Add command to create an lzip-compressed tarball. (distcheck): Handle lzip-compressed tarballs just like the others. * tests/lzip.test: New test. * tests/Makefile.am (TESTS): Add it. 2011-12-30 Stefano Lattarini Merge remote-tracking branch 'silent-fixes' into maint * origin/silent-fixes: fix: last entry in ChangeLog tests: tweak tests on silent-rules for makes without nested vars silent-rules: fallback for makes without nested vars 2011-12-28 Stefano Lattarini docs: fix paragraph names for automake and aclocal invocations All the other autotools entitle their invocation nodes "autofoo Invocation", whereas automake used to call its "Invoking Automake" and "Invoking aclocal". So let's try to be more consistent. This change is related to automake bug#8071. Suggestion by Reuben Thomas and Eric Blake. * doc/automake.texi (Invoking Automake): Node renamed ... (automake Invocation): ... to this. (Invoking aclocal): Node renamed ... (aclocal Invocation): ... to this. Add proper @anchor directives to avoid breaking existing web hyperlinks still using the old names of the renamed nodes. 2011-12-28 Stefano Lattarini tests: fix spurious failure due to autom4te caching * tests/acloca18.test: Remove stale autom4te.cache directories, to prevent racy, spurious failures. * tests/python11.test: Likewise. Fix a typo in comments since we are at it. 2011-12-28 Stefano Lattarini Merge branch 'maint' into msvc * maint: maint: autogenerate ChangeLog 2011-12-28 Stefano Lattarini Merge branch 'maint' into silent-fixes * maint: maint: autogenerate ChangeLog fix: last ChangeLog entry tests: drop unnecessary requirement in 'subpkg.test' gitlog-to-changelog: new auxiliary script, synced from gnulib docs: "aclocal --install -I /abs/dir" actually copies files docs: fix node names for automake and aclocal invocations 2011-12-28 Stefano Lattarini Merge branch 'maint' into yacc-work * maint: maint: autogenerate ChangeLog 2011-12-28 Stefano Lattarini Merge branch 'maint' * maint: maint: autogenerate ChangeLog 2011-12-28 Stefano Lattarini maint: autogenerate ChangeLog Following the practice set by various other GNU projects, we start to automatically generate the ChangeLog file from the git commit messages. This will avoid duplication (as the ChangeLog entries were always inserted both in the git commit message and in the version-controlled ChangeLog file), and potential problems with spurious merge conflicts (which, although greatly mitigated by Bruno Haible's `git-merge-changelog' helper program, have never been completely solved). * ChangeLog: Moved ... * ChangeLog.11:... to this. * Makefile.am (EXTRA_DIST): Add it. (gitlog_to_changelog_command, gitlog_to_changelog_options): New variables. (ChangeLog, am--changelog-regen-hook): New targets. * .gitignore: Add ChangeLog.