automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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.gz
  ftp://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-----



reply via email to

[Prev in Thread] Current Thread [Next in Thread]