From: Stefano Lattarini Date: Sun, 1 Jan 2012 10:14:27 +0000 (+0100) Subject: Merge branch 'maint' X-Git-Tag: ng-0.5a~80 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c1b14e966c2aa929e80bdfb259d0a81813859509;p=thirdparty%2Fautomake.git 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 --- c1b14e966c2aa929e80bdfb259d0a81813859509 diff --cc ChangeLog.11 index 252dd18db,234bf2f07..cd60419a0 --- a/ChangeLog.11 +++ b/ChangeLog.11 @@@ -17,145 -17,124 +17,209 @@@ * Makefile.am (fetch): Fetch and sync it. * lib/Makefile.am (EXTRA_DIST): Distribute it. - 2011-12-27 Stefano Lattarini - - docs: "aclocal --install -I /abs/dir" actually copies files - - This change is for automake bug#8407. - - In the past, there had been some debate and confusion about - whether "aclocal --install" should copy third-party .m4 files - in the first directory passed to the `-I' option even when - such directory was given as an absolute path, or whether it - was better to do so only for directories specified with a - relative path. - - The rationale for this latter behaviour was that, before the - existence of the `ACLOCAL_PATH' variable, the only way (a poor - way, I might add) for a common user to extend the search path - of a system-wide installation of aclocal was to export something - like ACLOCAL="aclocal -I /my/extra/macros" in the environment. - Today, the correct way to proceed is undoubtedly through the - use of ACLOCAL_PATH, so we can settle the question once and for - all, and start verifying the correct behaviour of `-I' with a - new test. - - * tests/aclocal-install-absdir.test: New test. - * tests/Makefile.am (TESTS): Add it. - * doc/automake.texi (aclocal Options): Be more explicit about - this part of `--install' semantics. - - 2011-12-26 Stefano Lattarini - - docs: fix node names for automake and aclocal invocations - - With the older node names, an "info automake" command issued - from the command line would have opened the node about the - invocation of the automake program, rather than the Top node - of the automake documentation. To invoke the Top node, one - had to issue the command "info Automake" instead (note the - different capitalization). This was suboptimal, and certainly - confusing. - - With this change, "info automake" will open the Top node of the - automake documentation; to access the nodes about the invocation - of the automake and aclocal program, one has now to issue "info - automake-invocation" and "info aclocal-invocation" respectively. - - This change fixes automake bug#8071. - - See also commits `v2.61a-22-ge9215d1' and `v2.61a-72-g8c07b48' in - the autoconf git repository, which tackled a similar issue. - - * doc/automake.texi (@direntry): Rename nodes `aclocal' and - `automake' to `aclocal-invocation' and `automake-invocation' - respectively. - * NEWS: Update. - +2011-12-27 Stefano Lattarini + + regex: remove obsolete macro AM_WITH_REGEX + Today, practically nobody uses the GNU rx library, which, according + to its own website , has + been "decommissioned". Consequently, the automake-provided macro + AM_WITH_REGEX is not used nor required anymore. + * m4/regex.m4: Delete. + * m4/Makefile.am (dist_automake_ac_DATA): Do not list it anymore. + * doc/automake.texi (Obsolete Macros): Remove description, and in + fact any mention, of `AM_WITH_REGEX'. + * tests/regex.test: Delete. + * tests/help-regex.test: Likewise. + * tests/regex-obsolete.test: Likewise. + * tests/list-of-tests.mk: Do not list them anymore. + * NEWS: Update. + See also commits `v1.11-587-g5f335be' and `v1.11-433-g37b0aee', + where that macro had been deprecated. + +2011-12-27 Stefano Lattarini + + cosmetics: be more consistent in copyright notices in tests + * tests/cond39.test: Update the heading copyright notice, to be + consistent with the formulation used in the other files. + * tests/cond40.test: Likewise. + * tests/cond41.test: Likewise. + * tests/cond42.test: Likewise. + * tests/cond43.test: Likewise. + * tests/conflnk4.test: Likewise. + * tests/extra8.test: Likewise. + * tests/extra9.test: Likewise. + * tests/suffix13.test: Likewise. + * tests/vala.test: Likewise. + * tests/vala1.test: Likewise. + * tests/vala2.test: Likewise. + * tests/vala3.test: Likewise. + * tests/vala4.test: Likewise. + * tests/vala5.test: Likewise. + * lib/Automake/tests/Condition.pl: Likewise. + * lib/Automake/tests/Condition-t.pl: Likewise. + * lib/Automake/tests/DisjConditions.pl: Likewise. + * lib/Automake/tests/DisjConditions-t.pl: Likewise. + * lib/Automake/tests/Version.pl: Likewise. + * lib/Automake/tests/Wrap.pl: Likewise. + * lib/Automake/tests/Cond2.pl: Add copyright notice. + * lib/Automake/tests/Cond3.pl: Likewise. + * lib/Automake/tests/DisjCon2.pl: Likewise. + * lib/Automake/tests/DisjCon3.pl: Likewise. + * lib/Automake/tests/Version2.pl: Likewise. + * lib/Automake/tests/Version3.pl: Likewise. + +2011-12-27 Stefano Lattarini + + tap/awk: "Bail out!" recognized also after leading whitespace + Newer versions of TAP::Harness (e.g., 3.23 on Perl 5.14.1) + recognize a "Bail out!" directive also when it is prepended by + leading whitespace; this was not the case for older TAP:Harness + versions, (e.g., for version 3.17 on Perl 5.12.4), and for our + TAP driver implemented in awk. + * lib/tap-driver.sh: Handle the "Bail out!" directive also when + it is preceded by leading whitespace. + * tests/tap-spurious.test: Remove the tests checking that a + "Bail out!" string coming right after leading whitespace does + not trigger a bailout action. + * tests/tap-bailout-leading-space.test: New test. + * tests/list-of-tests.mk: Add it. + Problem reported by Jim Meyering in automake bug#10374. + +2011-12-27 Stefano Lattarini + + tests: fix spurious failure of cond29.test + * tests/cond29.test: Limit the amount of virtual memory available + to the automake process to ~ 150 MB, rather than only ~ 20 MB, to + account for higher (but still acceptable) memory usages on some + systems (in this case, a Fedora 16 distro on ppc64). To be + sure not to reduce coverage, increase the number of potential + combinations of automake conditionals from 2**22 = 4194304 to + 2**24 = 16777216. + We have actually verified that the new version of the test case + catches the Automake 1.7 it is intended to check against, using + the Automake 1.7.9 tarball downloaded from: + + Reported by Jim Meyering in automake bug#10374. + + 2011-12-27 Stefano Lattarini + + docs: "aclocal --install -I /abs/dir" actually copies files + + This change is for automake bug#8407. + + In the past, there had been some debate and confusion about + whether "aclocal --install" should copy third-party .m4 files + in the first directory passed to the `-I' option even when + such directory was given as an absolute path, or whether it + was better to do so only for directories specified with a + relative path. + + The rationale for this latter behaviour was that, before the + existence of the `ACLOCAL_PATH' variable, the only way (a poor + way, I might add) for a common user to extend the search path + of a system-wide installation of aclocal was to export something + like ACLOCAL="aclocal -I /my/extra/macros" in the environment. + Today, the correct way to proceed is undoubtedly through the + use of ACLOCAL_PATH, so we can settle the question once and for + all, and start verifying the correct behaviour of `-I' with a + new test. + + * tests/aclocal-install-absdir.test: New test. + * tests/Makefile.am (TESTS): Add it. + * doc/automake.texi (aclocal Options): Be more explicit about + this part of `--install' semantics. + + 2011-12-26 Stefano Lattarini + + docs: fix node names for automake and aclocal invocations + + With the older node names, an "info automake" command issued + from the command line would have opened the node about the + invocation of the automake program, rather than the Top node + of the automake documentation. To invoke the Top node, one + had to issue the command "info Automake" instead (note the + different capitalization). This was suboptimal, and certainly + confusing. + + With this change, "info automake" will open the Top node of the + automake documentation; to access the nodes about the invocation + of the automake and aclocal program, one has now to issue "info + automake-invocation" and "info aclocal-invocation" respectively. + + This change fixes automake bug#8071. + + See also commits `v2.61a-22-ge9215d1' and `v2.61a-72-g8c07b48' in + the autoconf git repository, which tackled a similar issue. + + * doc/automake.texi (@direntry): Rename nodes `aclocal' and + `automake' to `aclocal-invocation' and `automake-invocation' + respectively. + * NEWS: Update. + + 2011-12-26 Stefano Lattarini + + tests: tweak tests on silent-rules for makes without nested vars + * tests/silent-nested-vars.test: Define $MAKE to `./mymake' in + the environment, so that it will be automatically picked up by + configure. Related tweaks and simplifications. + Remove the checks verifying that silent rules are respected also + when the 'subdir-objects' option is set, the checks testing the + old syntax for user-defined silent rules, and the tests using + the default $MAKE programs: they are redundant w.r.t. other test + cases. Related simplifications. + Remove the temporary files used in a sanity check as soon as they + are not needed anymore. + Do not capture also the standard error of configure: we only want + to grep its standard output. + Consistently use `stdout' for the name of files where to save the + standard output captured from make and configure, for consistency + with other tests. + Make grepping of configure output and of the generated Makefile + stricter. + Improve and tweak the `mymake' script a little. + * tests/silent6.test: Make grepping of make stdout slightly + stricter. After having configured with silent rules disabled, + try to force the use silent rules with `make V=1'. + + 2011-12-25 Paul Eggert + + silent-rules: fallback for makes without nested vars + + This fixes two problems reported for Automake (Bug#9928, Bug#10237) + and is in response to a bug report for building coreutils on HP + NonStop OS (Bug#10234). The problem is that HP NonStop 'make' + treats a line like "AM_V_CC = $(am__v_CC_$(V))" as one that + expands a macro with the funny name am__v_CC_$(V instead of the + desired name am__v_CC_1 or am__v_CC_0, and since the funny macro + is not defined the line is equivalent to "AM_V_CC = )"; this + inserts a stray ")" when $(AM_V_CC) is used, which eventually + causes 'make' to fail. + + The basic idea is that instead of generating Makefile.in lines like + "AM_V_CC = $(am__v_CC_$(V))", we generate + "AM_V_CC = $(am__v_CC_@AM_V@)". We then AC_SUBST $(V) for @AM_V@ + in the usual case where `make' supports nested variables, + and substitute 1 (or 0) otherwise. Similarly for usages like + $(am__v_CC_$(AM_DEFAULT_VERBOSITY)). + + With this change, make implementations that doesn't grasp nested + variable expansions will still be able to run Makefiles generated + using the silent-rules option. They won't allow the user to + override the make verbosity at runtime through redefinition of + $(V) (as in "make V=0"); but this is still an improvement over not + being able to work at all. + + * NEWS: Document this. + * automake.in (define_verbose_var): When defining the variables, + use @AM_V@ rather than $(V), and use @AM_DEFAULT_V@ rather than + $(AM_DEFAULT_VERBOSITY). + * doc/automake.texi (Automake silent-rules Option): Explain new system. + * m4/silent.m4 (AM_SILENT_RULES): Check whether `make' supports + nested variables, and substitute AM_V and AM_DEFAULT_V accordingly. + * tests/silent-nested-vars.test: New test. + * tests/Makefile.am (TESTS): Add it. ++>>>>>>> maint + 2011-12-24 Stefano Lattarini gitignore: use only one .gitignore file, in the top-level directory diff --cc NEWS index 839a34eb8,fa1e75e01..a64847df9 --- a/NEWS +++ b/NEWS @@@ -1,13 -1,24 +1,17 @@@ -New in 1.11.0a: +New in 1.11a: -* WARNING: Future backward-incompatibilities! +* Changes to automake: + + - automake now generates silenced rules for texinfo outputs. + - The `lzma' compression format for distribution archives has been + deprecated in favor of `xz' and `lzip', and will be removed in the + next major Automake release (1.12). + - - The Automake support for automatic de-ANSI-fication will be removed in - the next major Automake release (1.12). - - - The `--acdir' option of aclocal is deprecated, and will probably be - removed in the next major Automake release (1.12). - - - The exact order in which the directories in the aclocal macro - search path are looked up is probably going to be changed in the - next Automake release (1.12). + - The deprecated options `--output-dir', `--Werror' and `--Wno-error' + have been removed. - - The obsolescent AM_WITH_REGEX macro has been deprecated (since the - GNU rx library has been decommissioned), and will be removed in the - next major Automake release (1.12). + - The obsolete AM_WITH_REGEX macro has been removed. * Changes to aclocal: @@@ -19,90 -30,10 +23,92 @@@ automake internal acdir (by default ${prefix}/share/aclocal-APIVERSION) and before the system acdir (by default ${prefix}/share/aclocal). -* Miscellaneous changes: + - The exact order in which the directories in the aclocal macro + search path are looked up is probably going to be changed in the + next Automake release (1.12). + +* New targets: + + - New `cscope' target to build a cscope database for the source tree. + +* Changes to Automake-generated testsuite harnesses: + + - Test scripts that exit with status 99 to signal an "hard error" (e.g., + and unexpected or internal error, or a failure to set up the test case + scenario) have their outcome reported as an 'ERROR' now. Previous + versions of automake reported such an outcome as a 'FAIL' (the only + difference with normal failures being that hard errors were counted + as failures even when the test originating them was listed in + XFAIL_TESTS). + + - The testsuite summary displayed by the parallel-test harness has a + completely new format, that always list the numbers of passed, failed, + xfailed, xpassed, skipped and errored tests, even when these numbers + are zero (but using smart coloring when the color-tests option is in + effect). + + - The default testsuite driver offered by the 'parallel-tests' option is + now implemented (partly at least) with the help of automake-provided + auxiliary scripts (e.g., `test-driver'), instead of relying entirely + on code in the generated Makefile.in. + This has two noteworthy implications. The first one is that projects + using the `parallel-tests' option should now either run automake with + the `--add-missing' option, or manually copy the `test-driver' script + into their tree. The second, and more important, implication is that + now, when the `parallel-tests' option is in use, TESTS_ENVIRONMENT can + not be used anymore to define a test runner, and the command specified + in LOG_COMPILER (and _LOG_COMPILER) must be a *real* executable + program or script. For example, this is still a valid usage (albeit + a little contorted): + + TESTS_ENVIRONMENT = \ + if test -n '$(STRICT_TESTS)'; then \ + maybe_errexit='-e'; \ + else \ + maybe_errexit=''; \ + fi; + LOG_COMPILER = $(SHELL) $$maybe_errexit + + while this is not anymore: + + TESTS_ENVIRONMENT = \ + $(SHELL) `test -n '$(STRICT_TESTS_CHECKING)' && echo ' -e'` + + neither is this: + + TESTS_ENVIRONMENT = \ + run_with_perl_or_shell () \ + { \ + if grep -q '^#!.*perl' $$1; then + $(PERL) $$1; \ + else \ + $(SHELL) $$1; \ + fi; \ + } + LOG_COMPILER = run_with_per_or_shell + + - The package authors can now use customary testsuite drivers within + the framework provided by the 'parallel-tests' testsuite harness. + Consistently with the existing syntax, this can be done by defining + special makefile variables `LOG_DRIVER' and `_LOG_DRIVER'. + + - A new developer-reserved variable `AM_TESTS_FD_REDIRECT' can be used + to redirect/define file descriptors used by the test scripts. + + - The parallel-tests harness generates now, in addition the `.log' files + holding the output produced by the test scripts, a new set of `.trs' + files, holding "metadata" derived by the execution of the test scripts; + among such metadata are the outcomes of the test cases run by a script. + + - Initial and still experimental support for the TAP test protocol is + now provided. + +* Changes related to distribution tarballs: + + - The `dist' and `dist-all' targets now can run compressors in parallel. + - "make dist" can now create lzip-compressed tarballs. + - In the Automake info documentation, the Top node and the nodes about the invocation of the automake and aclocal programs have been renamed; now, calling "info automake" will open the Top node, while calling diff --cc lib/Automake/Options.pm index 6836157a3,e3d23ae46..34c026c28 --- a/lib/Automake/Options.pm +++ b/lib/Automake/Options.pm @@@ -268,10 -252,23 +268,18 @@@ sub _process_option_list (\%@ } elsif (/^(.*\/)?ansi2knr$/) { - # This feature is deprecated, will be removed in the next - # Automake major release. - msg 'obsolete', $where, - "automatic de-ANSI-fication support is deprecated\n"; - # An option like "../lib/ansi2knr" is allowed. With no - # path prefix, we assume the required programs are in this - # directory. We save the actual option for later. - $options->{'ansi2knr'} = [$_, $where]; + # Obsolete (and now removed) de-ANSI-fication support. + error ($where, + "automatic de-ANSI-fication support has been removed"); } + elsif ($_ eq 'dist-lzma') + { + # Creation of distribution tarball compressed with lzma is + # deprecated, will be removed in the next major release. + msg 'obsolete', $where, + "lzma compression is deprecated; use `dist-xz' " . + "or `dist-lzip' instead\n"; + } elsif ($_ eq 'no-installman' || $_ eq 'no-installinfo' || $_ eq 'dist-shar' || $_ eq 'dist-zip' || $_ eq 'dist-tarZ' || $_ eq 'dist-bzip2' diff --cc m4/silent.m4 index 432dd4577,8bd931b49..c94fff958 --- a/m4/silent.m4 +++ b/m4/silent.m4 @@@ -1,5 -1,5 +1,5 @@@ ## -*- Autoconf -*- - # Copyright (C) 2009, 2010 Free Software Foundation, Inc. -# Copyright (C) 2009, 2011 Free Software Foundation, Inc. ++# Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@@ -12,19 -12,44 +12,49 @@@ # Enable less verbose build rules; with the default set to DEFAULT # (`yes' being less verbose, `no' or empty being verbose). AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], -[ --enable-silent-rules less verbose build output (undo: `make V=1') - --disable-silent-rules verbose build output (undo: `make V=0')]) -case $enable_silent_rules in -yes) AM_DEFAULT_VERBOSITY=0;; -no) AM_DEFAULT_VERBOSITY=1;; -*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: `make V=1')]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: `make V=0')])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac + dnl + dnl A few `make' implementations (e.g., NonStop OS and NextStep) + dnl do not support nested variable expansions. + dnl See automake bug#9928 and bug#10237. + am_make=${MAKE-make} + AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) + BAR0=false + BAR1=true + V=1 + am__doit: + @$(TRUE) + .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes + else + am_cv_make_support_nested_variables=no + fi]) + if test $am_cv_make_support_nested_variables = yes; then + dnl Using `$V' instead of `$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' + else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY + fi + AC_SUBST([AM_V])dnl + AM_SUBST_NOTMAKE([AM_V])dnl + AC_SUBST([AM_DEFAULT_V])dnl + AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl diff --cc tests/lzma.test index 4262ceb45,7ee59f7ca..6c42ae9c9 --- a/tests/lzma.test +++ b/tests/lzma.test @@@ -14,11 -14,19 +14,17 @@@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -# Check support for no-dist-gzip with lzma +# Check support for no-dist-gzip with lzma. - required=lzma . ./defs || Exit 1 + errmsg='lzma.*deprecated.*dist-xz.*dist-lzip.*instead' + -set -e - + echo AUTOMAKE_OPTIONS = dist-lzma > Makefile.am + $ACLOCAL --force + AUTOMAKE_fails -Wnone -Wobsolete + grep "^Makefile\\.am:1:.*$errmsg" stderr + cat > configure.in << 'END' AC_INIT([lzma], [1.0]) AM_INIT_AUTOMAKE([no-dist-gzip dist-lzma])