Automake 1.12 released

From:

Stefano Lattarini

Subject:

Automake 1.12 released

Date:

Wed, 25 Apr 2012 22:55:36 +0200

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
We are pleased to announce the Automake 1.12 release.
This is a major release with several important changes, coming almost
three years after the latest major release (1.11).
The tarballs for this release can be download here:
ftp://ftp.gnu.org/gnu/automake/automake-1.12.tar.gzftp://ftp.gnu.org/gnu/automake/automake-1.12.tar.xz
Please report bugs and problems to <address@hidden>, and send
general comments and feedback to <address@hidden>.
Thanks to everyone who has reported problems, contributed patches,
and helped testing Automake!
- -*-*-*-
The most significant new feature in this release is certainly the support
for the TAP testing protocol in the Automake-generated testsuite harnesses.
Note that the use of this feature still requires some non-trivial manual
setup by the developer unfortunately (which should be explained in detail
in the manual); this limitation should be lifted in a future maintenance
release.
There is also at least one long-awaited bug fix: now, any explicit enabling
or disabling of a warning category always take precedence over the set 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.12:
* 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 AM_PROG_VALAC macro now causes configure to exit with status 77,
rather than 1, if the vala compiler found is too old.
- 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.12:
- 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.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iQIcBAEBAgAGBQJPmGS8AAoJEPyBjhdCn5bqAdYP/jdZHMnmBrbUhkxIWrCcXsY4
YN1uSrchHMk2u9dRWtRVT3WdG8Qb05lib7TFViQbgdS2Y5VzO/gbONDV5MGfLT6x
EIrU4j8Ia0D/JYL11+cFoxoSjJcFw4oqe4xDYC7ivy/sU6pxrBAJv1I+lrzbRtJZ
GhvFc8jloOqZn3W2WPuTZ0ionLvknNridKHzQHnqUrPMhpu2pXHXFqGOf6QGYl+F
BZEzxBmrWEZ8n4q9X+mP1+cjjHqyUcwdtsgtjcmEvOJTDJU/8HXgx2vnTq/1k2Fx
VVQSXxz8LJ7P1rFLhTVrcp0qyxky839M7mZi8YLHHaqYTLmOfEQfi/ofXqZcJWkf
AP4LK7844gLyJvEsgKyYMxQsDWIPtgAIM4WPNy1QH3fsqKtgaZ/14TXjldbWy/aV
sM45iIsdk/2XsgiekYf8z/2U3YwpFULahpy820BsRViTIhc/8kUQoZWGM9bNv8Q8
3Q1BlgAH6eE5PYX7QVNj1KTMa8vCgRPL9himrbFp1XaIqeBdjwCohi40rzWHDb2j
v4ZQ70v8ZU/F9LnEJtjvHcYIvSYLIiF+/wai/jNFNTUytlWHyMye1okXNAG/RUmR
tzE7b4Di5jgMlIwzGUtpPn/OVHA7yr+8DgGMLmuIvOJ06va4A3XLZiijdWE4Roi7
mUbP7sRt3LjBmtpWSrpR
=FZJW
-----END PGP SIGNATURE-----