[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RFC: Autoconf 2.50 is released
RFC: Autoconf 2.50 is released
21 May 2001 15:33:25 +0200
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
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,
Provides a safe and powerful means to trace the macro uses. This
provide the parsing layer for tools which need to `study'
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
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 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
You are strongly encouraged to use it to modernize both your
`configure.in' and your .m4 extension files.
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.
** 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.
- --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
what prevented configure from remembering the environment in which
it was run, therefore --recheck was run in an inconsistent
environment. Now, one should run
and then --recheck will work properly. Variables declared with
AC_ARG_VAR are also preserved.
$build defaults to `config.guess`, $host to $build, and then $target
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'.
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
instead of the former form (still valid)
CONFIG_COMMANDS= CONFIG_HEADERS= CONFIG_LINKS= \
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
Specify additional copyright information.
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.
A sly bug in the AC_REQUIRE machinery, which could produce incorrect
configure scripts, was fixed by Axel Thimm.
** Setup Macros
Document and ask for the registration of an envvar.
Specifies the file which `configure' should look for when trying to
find the source tree (used to be handled by AC_INIT).
To add new actions to config.status. Should be used instead of
- 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"
if test "$package_foo_enabled" = yes; then
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
- 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.
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.
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
Checks if the compiler supports ISO C, included when needs special
Checking whether the preprocessor indicates missing includes by the
error code. stderr is checked by AC_TRY_CPP only as a fallback.
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.
Defines `HAVE_STRUCT_NLIST_N_UN_N_NAME' instead of `NLIST_NAME_UNION'.
Now integrates `AC_DECL_YYTEXT' which is obsoleted.
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++.
|[Prev in Thread]
||[Next in Thread]|
- RFC: Autoconf 2.50 is released,
Akim Demaille <=