From: Stefano Lattarini Date: Sat, 21 Jan 2012 19:52:43 +0000 (+0100) Subject: Merge branch 'maint' X-Git-Tag: ng-0.5a~27^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5ae760b9d7d79839a81d847433d44d5cdb2fef7;p=thirdparty%2Fautomake.git 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 --- e5ae760b9d7d79839a81d847433d44d5cdb2fef7 diff --cc NEWS index f2bced61d,3ae660483..514535708 --- a/NEWS +++ b/NEWS @@@ -1,184 -1,42 +1,188 @@@ -New in 1.11.0a: +New in 1.11a: -* WARNING: Future backward-incompatibilities! +* Obsolete features removed: + + - Support for automatic de-ANSI-fication has been removed. + + - Support for ".log -> .html" conversion and the check-html and + recheck-html targets has been removed from Automake core (but + remains available in the 'contrib/' directory of the Automake + distribution). + - The support for the "obscure" multilib feature has been deprecated, + and will be moved out of the automake core in the next major Automake + release (1.12). + - - The support for ".log -> .html" conversion and the check-html and - recheck-html targets will be removed in the next major Automake - release (1.12). + - The deprecated `lzma' compression format for distribution archives + has been removed, in favor of `xz' and `lzip'. + + - The obsolete AM_WITH_REGEX macro has been removed. + + - The deprecated options `--output-dir', `--Werror' and `--Wno-error' + have been removed. + +* 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. - - 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). +* Miscellaneous changes: - - The Automake support for automatic de-ANSI-fication will be removed in - the next major Automake release (1.12). + - The `dist' and `dist-all' targets now can run compressors in parallel. - - The `--acdir' option of aclocal is deprecated, and will probably be - removed in the next major Automake release (1.12). + - Automake can now generate silenced rules for texinfo outputs. - - 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). + - Some auxiliary files that are automatically distributed by Automake + (e.g., `install-sh', or the `depcomp' script for packages compiling + C sources) might now be listed in the DIST_COMMON variable in many + Makefile.in files, rather than in the top-level one. - - 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). + - Messages of types warning or error from `automake' and `aclocal' + are now prefixed with the respective type, and presence of -Werror + is noted. -* Changes to aclocal: + - Automake's early configure-time sanity check now tries to avoid + sleeping for a second, which slowed down cached configure runs + noticeably. In that case, it will check back at the end of the + configure script to ensure that at least one second has passed, to + avoid time stamp issues with makefile rules rerunning autotools + programs. - - The `--acdir' option is deprecated. Now you should use the new options - `--automake-acdir' and `--system-acdir' instead. + - For programs and libraries, automake now detect EXTRA_foo_DEPENDENCIES + and adds them to the normal list of dependencies, but without + overwriting the foo_DEPENDENCIES variable, which is normally computed + by automake. - - The `ACLOCAL_PATH' environment variable is now interpreted as a - colon-separated list of additional directories to search after the - automake internal acdir (by default ${prefix}/share/aclocal-APIVERSION) - and before the system acdir (by default ${prefix}/share/aclocal). + - C source and header files derived from non-distributed Yacc sources + are now removed by "make clean", not only by "make maintainer-clean". + + - The warnings in the category `extra-portability' are now enabled by + `-Wall'. In previous versions, one has to use `-Wextra-portability' + to enable them. + +Bugs fixed in 1.11a: + + - Various minor bugfixes. + +* Bugs introduced by 1.11: + + - The AM_COND_IF macro also works if the shell expression for the + conditional is no longer valid for the condition. + +* Long-standing bugs: + + - Automake's own build system finally have a real "installcheck" target. + + - Files listed with the AC_REQUIRE_AUX_FILE macro in configure.ac are + now automatically distributed also if the directory of the auxiliary + files coincides with the top-level directory. + + - Automake now detects the presence of the `-d' flag in the various + `*YFLAGS' variables even when their definitions involve indirections + through other variables, such as in: + foo_opts = -d + AM_YFLAGS = $(foo_opts) + + - Automake now complains if a `*YFLAGS' variable has any conditional + content, not only a conditional definition. + + - Explicit enabling and/or disabling of Automake warning categories + through the `-W...' options now always takes precedence over the + implicit warning level implied by Automake strictness (foreign, gnu + or gnits), regardless of the order in which such strictness and + warning flags appear. For example, a setting like: + AUTOMAKE_OPTIONS = -Wall --foreign + will cause the warnings in category `portability' to be enabled, even + if those warnings are by default disabled in `foreign' strictness. + + +New in 1.11.2a: + +* WARNING: Future backward-incompatibilities! + + - The obsolescent AM_WITH_REGEX macro has been deprecated, since the + GNU rx library has been decommissioned. + + - The `lzma' compression format for distribution archives has been + deprecated in favor of `xz' and `lzip'. + + - The `--acdir' option of aclocal is deprecated, and will probably be + removed in the next major Automake release (1.12). [FIXME] + + - 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). [FIXME] * Miscellaneous changes: diff --cc contrib/Makefile.am index 970ef75ac,820b54732..ce1d699c6 --- a/contrib/Makefile.am +++ b/contrib/Makefile.am @@@ -18,5 -18,5 +18,6 @@@ # along with this program. If not, see . EXTRA_DIST = \ + check-html.am \ + multilib/multi.m4 \ README diff --cc doc/automake.texi index 6be7ac313,fb0e5e715..0cdeb7b9d --- a/doc/automake.texi +++ b/doc/automake.texi @@@ -313,48 -314,16 +313,48 @@@ What Goes in a Distributio Support for test suites -* Simple Tests:: Listing programs and scripts in @code{TESTS} -* Simple Tests using parallel-tests:: More powerful test driver -* DejaGnu Tests:: Interfacing with the external testing framework +* Generalities about Testing:: Generic concepts and terminology about testing +* Simple Tests:: Listing test scripts in @code{TESTS} +* Custom Test Drivers:: Writing and using custom test drivers +* Using the TAP test protocol:: Integrating test scripts that use the TAP protocol +* DejaGnu Tests:: Interfacing with the @command{dejagnu} testing framework * Install Tests:: Running tests on installed packages +Simple Tests + +* Scripts-based Testsuites:: Automake-specific concepts and terminology +* Serial Test Harness:: Older (and obsolescent) serial test harness +* Parallel Test Harness:: Generic concurrent test harness + +Using the TAP test protocol + +* Introduction to TAP:: +* Use TAP with the Automake test harness:: +* Incompatibilities with other TAP parsers and drivers:: +* Links and external resources on TAP:: + +Custom Test Drivers + +* Overview of Custom Test Drivers Support:: +* Declaring Custom Test Drivers:: +* API for Custom Test Drivers:: + +API for Custom Test Drivers + +* Command-line arguments for test drivers:: +* Log files generation and test results recording:: +* Testsuite progress output:: + +Changing Automake's Behavior + +* Options generalities:: Semantics of Automake option +* List of Automake options:: A comprehensive list of Automake options + Miscellaneous Rules -* Tags:: Interfacing to etags and mkid +* Tags:: Interfacing to cscope, etags and mkid * Suffixes:: Handling new file extensions - * Multilibs:: Support for multilibs. + * Multilibs:: Support for multilibs (deprecated, soon to be removed). Conditionals @@@ -2347,13 -2315,12 +2350,16 @@@ This is used to byte-compile Python scr @item symlink-tree This program duplicates a tree of directories, using symbolic links instead of copying files. Such an operation is performed when building - multilibs (@pxref{Multilibs}). This file is maintained in the GCC - tree at @url{http://gcc.gnu.org/svn.html}. + multilibs (@pxref{Multilibs}). Since the Automake multilib support has + been @emph{deprecated} and targeted for removal, this file is going to + be @emph{removed from the Automake core} in the next major release. + The master copy of this file is maintained in the GCC tree at + @url{http://gcc.gnu.org/svn.html}. +@item test-driver +This implements the default test driver offered by the parallel +testsuite harness. + @item texinfo.tex Not a program, this file is required for @samp{make dvi}, @samp{make ps} and @samp{make pdf} to work when Texinfo sources are in the @@@ -10330,9 -9580,9 +10342,9 @@@ the @code{AM_INIT_AUTOMAKE} macro in @f There are a few rules and variables that didn't fit anywhere else. @menu -* Tags:: Interfacing to etags and mkid -* Suffixes:: Handling new file extensions +* Tags:: Interfacing to cscope, etags and mkid +* Suffixes:: Handling new file extensions - * Multilibs:: Support for multilibs. + * Multilibs:: Support for multilibs (deprecated, soon to be removed). @end menu diff --cc m4/multi.m4 index bc01dcf7b,447591f9e..bbb964fac --- a/m4/multi.m4 +++ b/m4/multi.m4 @@@ -1,6 -1,6 +1,6 @@@ ## -*- Autoconf -*- - # Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2011 -# Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2012 --# Free Software Foundation, Inc. ++# Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2011, ++# 2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@@ -12,11 -12,12 +12,14 @@@ # --------------------------------------------------- # Add --enable-multilib to configure. AC_DEFUN([AM_ENABLE_MULTILIB], + [m4_warn([obsolete], [$0 will be removed from Automake core soon. + Files implementing the "multilib" feature are (and will remain) available + to the 'contrib/' directory in the Automake distribution.])]dnl [# Default to --enable-multilib -AC_ARG_ENABLE(multilib, -[ --enable-multilib build many library versions (default)], +AC_ARG_ENABLE([multilib], +[AS_HELP_STRING( + [--enable-multilib], + [build many library versions (default)])], [case "$enableval" in yes) multilib=yes ;; no) multilib=no ;; diff --cc tests/multlib.test index abb5a1677,75ef952e3..894effb7f --- a/tests/multlib.test +++ b/tests/multlib.test @@@ -1,6 -1,6 +1,6 @@@ #! /bin/sh - # Copyright (C) 2003, 2004, 2007, 2010, 2011 Free Software Foundation, -# Copyright (C) 2003, 2004, 2007, 2010, 2012 Free Software Foundation, --# Inc. ++# Copyright (C) 2003, 2004, 2007, 2010, 2011, 2012 Free Software ++# Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@@ -21,6 -21,25 +21,23 @@@ required='gcc GNUmake' . ./defs || Exit 1 -set -e - + # Multilib support has been deprecated in the Automake core. + + cat >>configure.in <<'END' + AM_ENABLE_MULTILIB([Makefile], [.]) + END + + $ACLOCAL + $AUTOCONF -Wall -Werror 2>stderr && { cat stderr >&2; Exit 1; } + cat stderr >&2 + grep '^configure\.in:4:.*AM_ENABLE_MULTILIB.* removed.* soon' stderr + grep '"multilib".*feature' stderr + grep 'contrib.* in the Automake distribution' stderr + + rm -rf autom4te*.cache aclocal.m4 configure + + # Functional tests now. + cat >configure.in <<'END' AC_INIT([multlib], [1.0]) AC_CONFIG_SRCDIR(libfoo/foo.c) @@@ -108,10 -125,11 +125,10 @@@ mkdir libbar/su : > libbar/bar.c -cp "$testsrcdir/../lib/config-ml.in" . -cp "$testsrcdir/../lib/symlink-tree" . +cp "$am_scriptdir"/config-ml.in "$am_scriptdir"/symlink-tree . - $ACLOCAL - $AUTOCONF + $ACLOCAL -Wno-obsolete + $AUTOCONF -Werror -Wall -Wno-obsolete $AUTOMAKE --add-missing cd libfoo $ACLOCAL