autoconf
[Top][All Lists]
Advanced

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

RFC: Autoconf 2.50 is released


From: Akim Demaille
Subject: RFC: Autoconf 2.50 is released
Date: 21 May 2001 15:33:25 +0200
User-agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.1 (Cuyahoga Valley)

The Autoconf team is extremely proud (and quite relieved) to announce
the release of Autoconf 2.50.  As can be guessed from the NEWS excerpt
below, profound changes have been made in order to provide a more
coherent interface and more user-friendly macros.

Autoconf can be downloaded from

        ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.50.tar.gz

        b3d78c5aefd53ed69d93182239af65e3  autoconf-2.50.tar.gz
ae8d8bd7718fa6fd6e4b77cb8cb4332ef50dfaa8  autoconf-2.50.tar.gz

Happy configuring!

        Akim, Alexandre, Jim, Pavel, Paul, and Tom.

* Major changes in Autoconf 2.50

** Lots of bug fixes
There have been far too many to enumerate them here.  Check out
ChangeLog if you really want to know more.

** Improved documentation
In particular, portability issues are better covered.

** Use of Automake
All the standard GNU Makefile targets are supported.  The layout has
changed: m4/ holds the m4 extensions Autoconf needs for its
configuration, doc/ contains the documentation, and tests/ contains
the test suite.

** Man pages are provided
For autoconf, autoreconf, autoupdate, autoheader, autoscan, ifnames,
config.guess, config.sub.

** autoconf
- --trace
  Provides a safe and powerful means to trace the macro uses.  This
  provide the parsing layer for tools which need to `study'
  configure.in.

- --warnings
  Specify what category of warnings should be enabled.

- When recursing into subdirectories, try for configure.gnu before
  configure to adapt for packages not using autoconf on case-insensitive
  filesystems.

- Diagnostics
  More errors are now caught (circular AC_REQUIRE dependencies,
  AC_DEFINE in the action part of an AC_CACHE_CHECK, too many pops
  etc.).  In addition, their location and call stack are given.

** autoupdate
autoupdate is much more powerful, and is able to provide the glue code
which might be needed to move from an old macro to its newer
equivalent.

You are strongly encouraged to use it to modernize both your
`configure.in' and your .m4 extension files.

** autoheader
The internal machinery of autoheader has completely changed.  As a
result, using `acconfig.h' should be considered to be obsoleted, and
you are encouraged to get rid of it using the AH macros.

** autoreconf
Extensive overhaul.

** Fortran 77 compilers
Globally, the support for Fortran 77 is considerably improved.

Support for automatically determining a Fortran 77 compiler's
name-mangling scheme.  New CPP macros F77_FUNC and F77_FUNC_ are
provided to wrap C/C++ identifiers, thus making it easier and more
transparent for C/C++ to call Fortran 77 routines, and Fortran 77 to
call C/C++ routines.  See the Texinfo documentation for details.

** Test suite
The test suite no longer uses DejaGNU.  It should be easy to submit
test cases in this new framework.

** configure
- --help, --help=long, -hl
  no longer dumps useless items.
- --help=short, -hs
  lists only specific options.
- --help=recursive, -hr
  displays the help of all the embedded packages.
- Remembers environment variables when reconfiguring.
  The previous scheme to set envvar before running configure was
    ENV=VAL ./configure
  what prevented configure from remembering the environment in which
  it was run, therefore --recheck was run in an inconsistent
  environment.  Now, one should run
    ./configure ENV=VAR
  and then --recheck will work properly.  Variables declared with
  AC_ARG_VAR are also preserved.
- cross-compilation
  $build defaults to `config.guess`, $host to $build, and then $target
  to $host.
  Cross-compilation is a global status of the package, it no longer
  depends upon the current language.
  Cross compilation is enabled iff the user specified `--host'.
  `configure' now fails if it can't run the executables it compiles,
  unless cross-compilation is enabled.
- Cache file
  The cache file is disabled by default.  The new options
  `--config-cache', `-C' set the cache to `config.cache'.

** config.status
- faster
  Much faster on most architectures.
- concurrent executions
  It is safe to use `make -j' with config.status.
- human interface improved
  It is possible to invoke
    ./config.status foobar
  instead of the former form (still valid)
    CONFIG_COMMANDS= CONFIG_HEADERS= CONFIG_LINKS= \
    CONFIG_FILES=foobar:foo.in:bar.in \
    ./config.status
  The same holds for configuration headers and links.
  You can instantiate unknown files and headers:
    ./config.status --header foo.h:foo.h.in --file bar:baz
- has a useful --help
- accepts special file name "-" for stdin/stdout


** Identity Macros
- AC_COPYRIGHT
  Specify additional copyright information.

- AC_INIT
  Now expects the identity of the package as argument.

** General changes.
- Uniform quotation
  Most macros, if not all, now strictly follow the `one quotation
  level' rule.  This results in a more predictable expansion.

- AC_REQUIRE
  A sly bug in the AC_REQUIRE machinery, which could produce incorrect
  configure scripts, was fixed by Axel Thimm.

** Setup Macros
- AC_ARG_VAR
  Document and ask for the registration of an envvar.

- AC_CONFIG_SRCDIR
  Specifies the file which `configure' should look for when trying to
  find the source tree (used to be handled by AC_INIT).

- AC_CONFIG_COMMANDS
  To add new actions to config.status.  Should be used instead of
  AC_OUTPUT_COMMANDS.

- AC_CONFIG_LINKS
  Replaces AC_LINK_FILES.

- AC_CONFIG_HEADERS, AC_CONFIG_COMMANDS, AC_CONFIG_SUBDIRS,
  AC_CONFIG_LINKS, and AC_CONFIG_FILES
  They now obey sh: you should no longer use shell variables as
  argument.  Instead of

        test "$package_foo_enabled" = yes && $my_subdirs="$my_subdirs foo"
        AC_CONFIG_SUBDIRS($my_subdirs)

  write

        if test "$package_foo_enabled" = yes; then
          AC_CONFIG_SUBDIRS(foo)
        fi

- AC_HELP_STRING
  To format an Autoconf macro's help string so that it looks pretty
  when the user executes `configure --help'.


** Generic Test Macros
- AC_CHECK families
  The interface of the AC_CHECK families of macros (decl, header,
  type, member, func) is now uniform.  They support the same set of
  default includes.

- AC_CHECK_DECL, AC_CHECK_DECLS
  To check whether a symbol is declared.

- AC_CHECK_SIZEOF, AC_C_CHAR_UNSIGNED.
  No longer need a cross-compilation default.

- AC_CHECK_TYPE
  The test it performs is much more robust than previously, and makes
  it possible to test builtin types in addition to typedefs.
  It is now schizophrenic:
    - AC_CHECK_TYPE(TYPE, REPLACEMENT)
      remains for backward compatibility, but its use is discouraged.
    - AC_CHECK_TYPE(TYPE, IF-FOUND, IF-NOT-FOUND, INCLUDES)
      behaves exactly like the other AC_CHECK macros.

- AC_CHECK_TYPES
  Checks whether given types are supported by the system.

- AC_CHECK_MEMBER, AC_CHECK_MEMBERS
  Check for given members in aggregates (e.g., pw_gecos in struct
  passwd).

- AC_PROG_CC_STDC
  Checks if the compiler supports ISO C, included when needs special
  options.

- AC_PROG_CPP
  Checking whether the preprocessor indicates missing includes by the
  error code. stderr is checked by AC_TRY_CPP only as a fallback.

- AC_LANG
  Takes a language as argument and replaces AC_LANG_C,
  AC_LANG_CPLUSPLUS and AC_LANG_FORTRAN77.

- AC_LANG_PUSH, AC_LANG_POP
  Are preferred to AC_LANG_SAVE, AC_LANG_RESTORE.

** Specific Macros
- AC_FUNC_CHOWN, AC_FUNC_MALLOC, AC_FUNC_STRERROR_R,
  AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK, AC_FUNC_STAT, AC_FUNC_LSTAT,
  AC_FUNC_ERROR_AT_LINE, AC_FUNC_OBSTACK, AC_FUNC_STRTOD, AC_FUNC_FSEEKO.
  New.

- AC_FUNC_GETGROUPS
  Sets GETGROUPS_LIBS.

- AC_FUNC_GETLOADAVG
  Defines `HAVE_STRUCT_NLIST_N_UN_N_NAME' instead of `NLIST_NAME_UNION'.

- AC_PROG_LEX
  Now integrates `AC_DECL_YYTEXT' which is obsoleted.

- AC_SYS_LARGEFILE
  Arrange for large-file support.

- AC_EXEEXT, AC_OBJEXT
  You are no longer expected to use them: their computation is
  performed by default.

** C++ compatibility
  Every macro has been revisited in order to support at best CC=c++.



reply via email to

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