We are pleased to announce the Automake 1.11d test release. This is the beta of a major release with several important changes and various new features. It comes almost three years after the latest major release (1.11), so we would particularly appreciate any extra testing before the Automake 1.12 stable release is finally published, which is planned to happen in about a week (by April 25 or 26).
The tarballs for this beta release can be download here: ftp://alpha.gnu.org/gnu/automake/automake-1.11d.tar.gz ftp://alpha.gnu.org/gnu/automake/automake-1.11d.tar.xz Please report bugs and problems to <bug-autom...@gnu.org>, and send general comments and feedback to <automake@gnu.org>. Thanks to everyone who has reported problems, contributed patches, and helped testing Automake! -*-*-*- Here is a brief list of changes from the previous beta release <http://lists.gnu.org/archive/html/automake/2012-04/msg00032.html>: - the manpages for automake and aclocal are not distributed anymore, but generated at make time by a lightly patched version of the 'help2man' script that is bundled with the Automake distribution. Thanks to Jim Meyering. - The 'recheck' target depends on the 'all' target, which allows for a better user-experience in test-driven development. See automake bug #11252. Thanks to Peter Johansson. - Some bugfixes in Vala support (already present automake 1.11.5) has been merged from the' maint' branch; see automake bug #11222 and #11229. Thanks to Marc-Antoine Perennou. - Shell command substitutions and variable expansions can be used again in all installation directories used by the "install" rules (this fixes a minor regression introduced in automake 1.11.4, and already fixed in automake 1.11.5). See automake bug #11232. Thanks to Dmitry V. Levin. - Some other improvements to the Vala support: the Vala-related cleaning rules have been made more reliable, and the test suite coverage for the Automake Vala support enhanced. - Various weaknesses and spurious failures in the testsuite have been fixed. -*-*-*- The most important new feature in this release is certainly the support for the TAP testing protocol in the Automake-generated testsuite harnesses (the use of which currently still requires some manual intervention by the developer to be correctly set up, unfortunately; this should be fixed in future maintenance releases). There is also at least one long-awaited bug fix: now, any explicit enabling or disabling of a warning category should always take precedence over the list of warning categories implied by the strictness mode. 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. This wasn't the case for older Automake versions. Below you can read the fully detailed list of changes since Automake 1.11.5, as summarized by the NEWS file. -*-*-*- New in 1.11d: * WARNING: Future backward-incompatibilities! - Starting from the next major Automake version (1.13), the rules to build pdf, ps and dvi output from Texinfo input will use the '--tidy' option by default. Since such an option was introduced in Texinfo 4.9, this means that Makefiles generated by future Automake versions will require at least that version of Texinfo. - Starting from the next major Automake version (1.13), the parallel testsuite harness (previously only enabled by the 'parallel-tests' option) will become the default one; the older serial testsuite harness will still be available through the use of the 'serial-tests' option. - The following long-obsolete m4 macros will be removed in the next major Automake version (1.13): AM_PROG_CC_STDC: superseded by AC_PROG_CC since October 2002 fp_PROG_CC_STDC: broken alias for AM_PROG_CC_STDC fp_WITH_DMALLOC: old alias for AM_WITH_DMALLOC AM_CONFIG_HEADER: superseded by AC_CONFIG_HEADERS since July 2002 ud_PATH_LISPDIR: old alias for AM_PATH_LISPDIR jm_MAINTAINER_MODE: old alias for AM_MAINTAINER_MODE ud_GNU_GETTEXT: old alias for AM_GNU_GETTEXT gm_PROG_LIBTOOL: old alias for AC_PROG_LIBTOOL fp_C_PROTOTYPES: old alias for AM_C_PROTOTYPES (which was part of the now-removed automatic de-ANSI-fication support of Automake) - All the "old alias" macros in 'm4/obsolete.m4' will be removed in the next major Automake version (1.13). - Support for the "Cygnus-style" trees (enabled by the 'cygnus' option) will be deprecated in the next minor version of Automake (1.12.1) and removed in the next major version (1.13). - Support for the two- and three-arguments invocation forms of the AM_INIT_AUTOMAKE macro will be deprecated in the next minor version of Automake (1.12.1) and removed in the next major version (1.13). - The long-obsolete (since 1.10) automake-provided $(mkdir_p) make variable, @mkdir_p@ substitution and AM_PROG_MKDIR m4 macro will all be deprecated in the next minor version of Automake (1.12.1) and removed in the next major version (1.13). - The '--acdir' option of aclocal is deprecated, and will probably be removed in the next major Automake release (1.13). You should use the options '--automake-acdir' and '--system-acdir' instead (which have been introduced in Automake 1.11.2). - 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.13). * Obsolete features removed: - The never documented nor truly used script 'acinstall' has been removed. - Support for automatic de-ANSI-fication has been removed. - The support for the "obscure" multilib feature has been removed from Automake core (but remains available in the 'contrib/' directory of the Automake distribution). - 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 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 long-deprecated options '--output-dir', '--Werror' and '--Wno-error' have been removed. - The chapter on the history of Automake has been moved out of the reference manual, into a new dedicated Texinfo file. * New targets: - New 'cscope' target to build a cscope database for the source tree. * Changes to Automake-generated testsuite harnesses: - The new automake option 'serial-tests' has been introduced. It can be used to explicitly instruct automake to use the older serial testsuite harness. This is still the default at the moment, but it might change in future versions. - The 'recheck' target (provided by the parallel testsuite harness) now depends on the 'all' target. This allows for a better user-experience in test-driven development. See automake bug#11252. - 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 <ext>_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_perl_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 '<ext>_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 to Yacc and Lex support: - C source and header files derived from non-distributed Yacc and/or Lex sources are now removed by a simple "make clean" (while they were previously removed only by "make maintainer-clean"). - Slightly backward-incompatible change, relevant only for use of Yacc with C++: the extensions of the header files produced by the Yacc rules are now modelled after the extension of the corresponding sources. For example, yacc files named "foo.y++" and "bar.yy" will produce header files named "foo.h++" and "bar.hh" respectively, where they would have previously produced header files named simply "foo.h" and "bar.h". This change offers better compatibility with 'bison -o'. * Miscellaneous changes: - The build system of Automake itself now avoids the use of make recursion as much as possible. - Automake now prefers to quote 'like this' or "like this", rather than `like this', in diagnostic message and generated Makefiles, to accommodate the new GNU Coding Standards recommendations. - Automake has a new option '--print-libdir' that prints the path of the directory containing the Automake-provided scripts and data files. - The 'dist' and 'dist-all' targets now can run compressors in parallel. - The rules to create pdf, dvi and ps output from Texinfo files now works better with modern 'texi2dvi' script, by explicitly passing it the '--clean' option to ensure stray auxiliary files are not left to clutter the build directory. - Automake can now generate silenced rules for texinfo outputs. - 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. - Messages of types warning or error from 'automake' and 'aclocal' are now prefixed with the respective type, and presence of -Werror is noted. - 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 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.11d: - Various minor bugfixes for recent or long-standing bugs. * 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. - The automake-provided parallel testsuite harness does not fail anymore with BSD make used in parallel mode when there are test scripts in a subdirectory, like in: TESTS = sub/foo.test sub/bar.test * Long-standing bugs: - Automake's own build system finally have a real "installcheck" target. - Vala-related cleanup rules are now more complete, and work better in a VPATH setup. - 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.