mirror of
git://git.sv.gnu.org/autoconf
synced 2024-11-27 01:49:56 +08:00
653956f446
As C23 is now mostly supported by GCC, it's time for AC_PROG_CC to prefer C23 if available. * lib/autoconf/c.m4 (_AC_C_C23_TEST_GLOBALS, _AC_C_C23_TEST_MAIN): (_AC_C_C23_TEST_PROGRAM, _AC_C_C23_OPTIONS): New macros. (_AC_PROG_CC_STDC_EDITION): Try C23 first.
2825 lines
111 KiB
Plaintext
2825 lines
111 KiB
Plaintext
GNU Autoconf NEWS - User visible changes.
|
||
|
||
* Noteworthy changes in release ?.? (????-??-??) [?]
|
||
|
||
** Backward incompatibilities
|
||
|
||
*** AC_PROG_CC now prefers C23 if available.
|
||
C23 has removed old-style (K&R) function definitions/declarations.
|
||
Old-style functions should be updated to use prototypes.
|
||
|
||
*** AC_PROG_CC no longer tests for VLAs, or whether __STDC__ is defined.
|
||
This ports better to MSVC, which does not support variable length
|
||
arrays and does not define __STDC__. Although C99 requires VLAs,
|
||
they are optional in C11 and later. Programs can use AC_C_VARARRAYS
|
||
and __STDC_NO_VLA__ to use VLAs if available.
|
||
|
||
* Noteworthy changes in release 2.72 (2023-12-22) [release]
|
||
|
||
** Backward incompatibilities
|
||
|
||
*** Configure scripts no longer support pre-1989 C compilers.
|
||
Specifically, compilers that *only* implement the original “K&R”
|
||
function definition syntax, and not the newer “prototyped” syntax,
|
||
will not be able to parse the test programs now emitted by
|
||
AC_CHECK_FUNC, AC_LANG_CALL, and similar macros. AC_PROG_CC still
|
||
accepts such compilers, but this may change in the near future.
|
||
|
||
This change was necessary in order to support the upcoming 2024
|
||
edition of the C standard (often referred to as “C23”), which will
|
||
officially remove the function declaration syntax used by
|
||
AC_CHECK_FUNC in Autoconf 2.71 and earlier. We feel that support
|
||
for compilers that support only C 2024 is more useful, nowadays,
|
||
than support for compilers that don’t implement a core feature of
|
||
C 1989.
|
||
|
||
*** Autoconf developers now need Perl 5.10 (2007) or later.
|
||
“Autoconf developers” means specifically people hacking on Autoconf
|
||
itself. Autoconf *users*, i.e. authors of configure.ac files and
|
||
add-on M4 macros, still need only Perl 5.6 (2000) or later.
|
||
|
||
We do recommend all Autoconf users upgrade to Perl 5.10 or later if
|
||
possible, as this version significantly improves Perl’s ability to
|
||
handle files with last-modification timestamps separated by less
|
||
than a second. (Note: even in the most recent release, Perl cannot
|
||
always match the file system’s timestamp resolution.)
|
||
|
||
Generated configure scripts continue to run without Perl.
|
||
|
||
*** Autoconf users now need GNU M4 1.4.8 (2006) or later.
|
||
Use of GNU M4 1.4.16 or later is recommended, as all earlier versions
|
||
are known to have had serious bugs in the text-processing builtins
|
||
on some, but not all, operating systems. Autoconf’s own configure
|
||
script will attempt to find a version of M4 that is not affected by
|
||
these bugs.
|
||
|
||
Note: Autoconf 2.70 and 2.71 include code that malfunctions with
|
||
M4 1.4.6 or 1.4.7. However, the only effect of the malfunction is
|
||
that you will get a confusing error message if you run autoconf on
|
||
a configure.ac that neglects to use AC_INIT or AC_OUTPUT.
|
||
|
||
Generated 'configure' scripts continue to run without M4.
|
||
|
||
*** Some m4sh diversions have been renumbered.
|
||
This will only affect macros that use m4_divert with numbered rather
|
||
than named diversions, which has always been strongly discouraged
|
||
both by the documentation and with warnings.
|
||
|
||
*** AC_FUNC_GETGROUPS and AC_TYPE_GETGROUPS no longer run test programs.
|
||
These macros were testing for OS bugs that we believe are at least
|
||
twenty years in the past. Most operating systems are now trusted to
|
||
provide an accurate prototype for getgroups in unistd.h, and to
|
||
implement it as specified in POSIX.
|
||
|
||
AC_FUNC_GETGROUPS still includes a short block-list of OSes with
|
||
known, severe bugs in getgroups. It can be overridden using
|
||
config.site. If you encounter a mistake in this list,
|
||
please report it to bug-autoconf.
|
||
|
||
*** All internal uses of AC_EGREP_CPP and AC_EGREP_HEADER have been removed.
|
||
These macros look for text matching a regular expression in the
|
||
output of the C preprocessor. Their use has been discouraged for
|
||
many years, as they tend to be unreliable; it is better to find a
|
||
way to use AC_COMPILE_IFELSE or AC_PREPROC_IFELSE instead. We have
|
||
finally taken our own advice.
|
||
|
||
This change might break configure scripts that expected probes for
|
||
‘grep’ and/or the C preprocessor to happen as a side effect of an
|
||
unrelated operation. Such scripts can be fixed by adding
|
||
AC_PROG_EGREP and/or AC_PROG_CPP in an appropriate place.
|
||
|
||
The macros affected by this change are AC_C_STRINGIZE,
|
||
AC_C_VARARRAYS, AC_FUNC_GETGROUPS, AC_FUNC_GETLOADAVG,
|
||
AC_HEADER_TIOCGWINSZ, AC_PROG_GCC_TRADITIONAL, AC_TYPE_GETGROUPS,
|
||
AC_TYPE_UID_T, and AC_XENIX_DIR. Many of these macros are themselves
|
||
obsolete; if your configure script uses any of them, check whether
|
||
it is actually needed.
|
||
|
||
** New features
|
||
|
||
*** Support for ensuring time_t is Y2038-safe
|
||
configure can now ensure that time_t can represent moments in time
|
||
after 18 January 2038, i.e. 2**31 - 1 seconds after the Unix epoch.
|
||
On most “64-bit” systems this is true by default; the new feature
|
||
is detection of systems where time_t is a 32-bit signed integer by
|
||
default, *and* there is an alternative mode in which it is larger,
|
||
in which case that mode will be enabled.
|
||
|
||
In this release, all configure scripts that use AC_SYS_LARGEFILE
|
||
gain a new command line option --enable-year2038. When this option
|
||
is used, the configure script will check for and enable support for
|
||
a large time_t.
|
||
|
||
This release also adds two new macros, AC_SYS_YEAR2038 and
|
||
AC_SYS_YEAR2038_RECOMMENDED. Both have all the effects of
|
||
AC_SYS_LARGEFILE. (This is because it is not possible to enlarge
|
||
time_t without also enlarging off_t, on any system we are aware of.)
|
||
|
||
AC_SYS_YEAR2038 additionally flips the default for --enable-year2038;
|
||
a configure script that uses this macro will check for and enable
|
||
support for a large time_t by default, but this can be turned off by
|
||
using --disable-year2038. AC_SYS_YEAR2038_RECOMMENDED goes even
|
||
further, and makes the configure script fail on systems that do not
|
||
seem to support timestamps after 18 January 2038 at all. This
|
||
failure can be suppressed by using --disable-year2038.
|
||
|
||
Changing the size of time_t can change a library’s ABI. Therefore,
|
||
application and library builders should take care that all packages
|
||
are configured with consistent use of --enable-year2038 or
|
||
--disable-year2038, to ensure binary compatibility. This is similar
|
||
to longstanding consistency requirements with --enable-largefile and
|
||
--disable-largefile.
|
||
|
||
In this release, these macros only know how to enlarge time_t on two
|
||
classes of systems: 32-bit MinGW, and any system where time_t can be
|
||
enlarged by defining the preprocessor macro _TIME_BITS with the
|
||
value 64. At the time this NEWS entry was written, only GNU libc
|
||
(version 2.34 and later) supported the latter macro. Authors of
|
||
other C libraries with a 32-bit time_t are encouraged to adopt
|
||
_TIME_BITS, rather than inventing a different way to enlarge time_t.
|
||
|
||
*** AC_USE_SYSTEM_EXTENSIONS now enables C23 Annex F extensions
|
||
by defining __STDC_WANT_IEC_60559_EXT__.
|
||
|
||
** Obsolete features and new warnings
|
||
|
||
*** Autoconf now quotes 'like this' instead of `like this'.
|
||
Autoconf’s diagnostics now follow current GNU coding standards,
|
||
which say that diagnostics in the C locale should quote 'like this'
|
||
with plain apostrophes instead of the older GNU style `like this'
|
||
with grave accent and apostrophe.
|
||
|
||
*** AC_PROG_GCC_TRADITIONAL no longer does anything.
|
||
This macro has had no useful effect since GCC dropped support for
|
||
traditional-mode compilation in version 3.3 (released in 2003), and
|
||
the systems that needed it are also long obsolete. It is now a
|
||
compatibility synonym for AC_PROG_CC.
|
||
|
||
** Notable bug fixes
|
||
|
||
*** autom4te now uses fine-grained file timestamps
|
||
Autoconf’s internal “autom4te” utility is now able to compare file
|
||
modification timestamps with sub-second precision, when available.
|
||
This eliminates a class of bugs where autom4te fails to regenerate
|
||
an outdated file. Automake 1.17 (forthcoming) is required for a
|
||
complete fix.
|
||
|
||
*** AC_HEADER_STDBOOL, AC_CHECK_HEADER_STDBOOL are obsolescent and less picky.
|
||
These macros are now obsolescent, as most programs can simply include
|
||
stdbool.h unconditionally. If you use these macros, they now accept
|
||
a stdbool.h that exists but does nothing, so long as ‘bool’, ‘true’,
|
||
and ‘false’ work anyway. This is for compatibility with C23 and
|
||
with C++.
|
||
|
||
*** AC_PROG_MKDIR_P now falls back on plain 'mkdir -p'.
|
||
When AC_PROG_MKDIR_P cannot find a mkdir implementation that is
|
||
known to lack race condition bugs, it now falls back on 'mkdir -p'
|
||
instead of falling back on a relative path to install-sh, as the
|
||
relative paths now seem to be a more important problem than the
|
||
problems of ancient mkdir implementations with race condition bugs.
|
||
See <https://savannah.gnu.org/support/?110740>. The only ancient
|
||
mkdir still supported is Solaris 10 /usr/bin/mkdir, and for that
|
||
platform AC_PROG_MKDIR_P falls back on /opt/sfw/bin/mkdir which
|
||
should work if it is installed; if not, you should avoid parallel
|
||
'make' on that platform.
|
||
|
||
*** Better diagnostics for calling m4_warn() with a bad first argument
|
||
Calling m4_warn with a first argument that doesn’t match any of the
|
||
official warning categories now produces a sensible error message,
|
||
instead of something that makes it look like there’s a bug in the
|
||
guts of autom4te. Also, the documentation has been adjusted in
|
||
several places to make it clearer what the official warning
|
||
categories are.
|
||
|
||
Note: In Autoconf 2.69 and earlier, the manual said that [] and [all]
|
||
could be used as the first argument to m4_warn. This was incorrect,
|
||
even at the time.
|
||
|
||
*** Improved compatibility with a wide variety of systems and tools
|
||
including CheriBSD, Darwin (macOS), GNU Guix, OS/2, z/OS, Bash 5.2,
|
||
the BusyBox shell and utilities, Clang/LLVM version 16, the upcoming
|
||
GCC version 14, etc.
|
||
|
||
** Known bugs
|
||
|
||
*** AC_SYS_LARGEFILE and AC_SYS_YEAR2038 only work correctly in C mode.
|
||
|
||
This is only a problem for configure scripts that invoke either
|
||
macro while AC_LANG([something other than C]) is in effect, and
|
||
will only be a *visible* problem on systems where support
|
||
for large files and/or timestamps after 2038 are *available*
|
||
but not enabled by default.
|
||
|
||
This is the cause of the AC_SYS_LARGEFILE, AC_SYS_YEAR2038, and/or
|
||
AC_SYS_YEAR2038_RECOMMENDED testsuite failures on some systems.
|
||
See <https://savannah.gnu.org/support/index.php?110983> for details
|
||
and a workaround.
|
||
|
||
* Noteworthy changes in release 2.71 (2021-01-28) [stable]
|
||
|
||
** Bug fixes, including:
|
||
|
||
*** Compilers that support C99 but not C2011 are detected correctly.
|
||
|
||
*** Compatibility improved with clang and Oracle C++.
|
||
|
||
*** Compatibility restored with automake's rules for regenerating configure.
|
||
|
||
*** Compatibility restored with old versions of std-gnu11.m4.
|
||
|
||
Packages that wish to maintain compatibility with Autoconf 2.69 or
|
||
older, should update their copy of std-gnu11.m4 from Gnulib as soon
|
||
as practical, as the compatibility code bulks up the configure script.
|
||
|
||
Packages that require Autoconf 2.70 can drop this file entirely.
|
||
|
||
* Noteworthy changes in release 2.70 (2020-12-08) [stable]
|
||
|
||
** Backward incompatibilities:
|
||
|
||
*** Warnings about obsolete constructs are now on by default.
|
||
|
||
These warnings can be turned off with ‘-Wno-obsolete’.
|
||
|
||
Many of these warnings advise maintainers to run autoupdate.
|
||
Be aware that autoupdate cannot solve all backward compatibility
|
||
problems, and cannot completely solve all of the problems it does
|
||
address. A configure script edited by autoupdate is likely to
|
||
need further manual fix-ups.
|
||
|
||
*** Many macros have become pickier about argument quotation.
|
||
|
||
If you get a shell syntax error from your generated configure
|
||
script, or seemingly impossible misbehavior (e.g. entire blocks of
|
||
the configure script not getting executed), check first that all
|
||
macro arguments are properly quoted. The “M4 Quotation” section of
|
||
the manual explains how to quote macro arguments properly.
|
||
|
||
It is unfortunately not possible for autoupdate to correct
|
||
quotation errors.
|
||
|
||
*** Many macros no longer AC_REQUIRE as many other macros as they used to.
|
||
|
||
This can expose several classes of latent bugs. These are the ones
|
||
we know about:
|
||
|
||
- Make sure to explicitly invoke all of the macros that set result
|
||
variables used later in the configure script, or in generated
|
||
Makefiles.
|
||
|
||
- Autoconf macros that use AC_REQUIRE are not safe to use in shell
|
||
control-flow constructs that appear outside of macros defined by
|
||
AC_DEFUN. Use AS_IF, AS_CASE, etc. instead. (See the
|
||
“Prerequisite Macros” section of the manual for details.)
|
||
|
||
The set of macros that use AC_REQUIRE internally may change from
|
||
release to release. The only macros that are guaranteed *not* to
|
||
use AC_REQUIRE are the macros for acting on the results of a
|
||
test: AC_DEFINE, AC_SUBST, AC_MSG_*, AC_CACHE_CHECK, etc.
|
||
|
||
- AC_REQUIRE cannot be applied to macros that need to be used with
|
||
arguments. Instead, invoke the macro normally, with its arguments.
|
||
|
||
*** More macros use config.sub and config.guess internally.
|
||
|
||
As a consequence of improved support for cross compilation (see below),
|
||
more macros now use the auxiliary scripts ‘config.sub’ and ‘config.guess’.
|
||
If you use any of the affected macros, these scripts must be available
|
||
when your configure script is run, even if you have no intention of
|
||
ever cross-compiling your program.
|
||
|
||
autoreconf will issue an error if any auxiliary scripts are needed but
|
||
cannot be found. (It is not currently possible to make autoconf
|
||
itself issue this error.)
|
||
|
||
‘autoreconf --install’ will add ‘config.sub’, ‘config.guess’, and
|
||
‘install-sh’ to your source tree if they are needed. If you are
|
||
using Automake, scripts added to your tree by ‘autoreconf --install’
|
||
will automatically be included in the tarball produced by ‘make dist’;
|
||
otherwise, you will need to arrange for them to be distributed
|
||
yourself.
|
||
|
||
See the “Input” section of the manual for more detail, including
|
||
where to get the auxiliary scripts that may be needed by autoconf macros.
|
||
|
||
*** Setting CC to a C++ compiler is no longer supported.
|
||
|
||
The C and C++ languages have diverged enough that we can no longer
|
||
guarantee that test C programs will be processed as intended by a
|
||
C++ compiler. In this release, configure will proceed anyway, but
|
||
many test results will be incorrect. In a future release, we may
|
||
make AC_PROG_CC error out if it detects that CC is a C++ compiler.
|
||
|
||
See the “Language Choice” section of the manual for instructions on
|
||
how to write configure scripts for C++ programs, and for programs
|
||
with code in more than one language.
|
||
|
||
*** Running configure tests with warnings promoted to errors is not supported.
|
||
|
||
For instance, setting ‘CC="gcc -Werror"’ on the configure command
|
||
line, or adding -Werror to CFLAGS early in the configure script when
|
||
the compiler recognizes this option, is very likely to cause
|
||
subsequent tests to fail.
|
||
|
||
This has never been guaranteed to work; the code generated by
|
||
AC_CHECK_FUNC, for instance, is incorrect by a strict reading of the
|
||
original 1989 C standard, and has been ever since that macro was
|
||
introduced. Problems are more likely with newer, pickier compilers.
|
||
|
||
To enable compiler warnings and/or warnings-as-errors mode for your
|
||
own code, we currently recommend a dedicated Makefile variable
|
||
(e.g. ‘WARN_CFLAGS’) that is set by AC_SUBST when appropriate.
|
||
The Gnulib ‘warnings’ and ‘manywarnings’ modules can help with this.
|
||
We plan to add core support for probing for useful sets of compiler
|
||
warnings in a future release.
|
||
|
||
*** Including confdefs.h manually may cause test failures.
|
||
|
||
This has never been necessary; confdefs.h is automatically included
|
||
at the beginning of all test programs (by AC_LANG_SOURCE). Because
|
||
of the way confdefs.h is generated and used, it is not practical to
|
||
give it a multiple inclusion guard. Therefore, if you include it
|
||
yourself, all of its definitions will be scanned twice.
|
||
|
||
Historically this has not been a problem, because confdefs.h only
|
||
makes macro definitions, and the C standard allows redefinitions
|
||
of macros as long as they’re exactly the same, but newer, pickier
|
||
compilers may complain anyway (see for instance GCC bug 97998).
|
||
|
||
*** Older versions of automake and aclocal (< 1.8) are no longer supported.
|
||
|
||
*** AC_CONFIG_SUBDIRS no longer directly supports Cygnus configure.
|
||
|
||
If you are still using an Autoconf script to drive configuration of
|
||
a multi-package build tree where some subdirectories use Cygnus
|
||
configure, copy or link $ac_aux_dir/configure into each subdirectory
|
||
where it is needed. Please also contact us; we were under the
|
||
impression nobody used this very old tool anymore.
|
||
|
||
*** AC_CHECK_HEADER and AC_CHECK_HEADERS only do a compilation test.
|
||
|
||
This completes the transition from preprocessor-based header tests
|
||
begun in Autoconf 2.56.
|
||
|
||
The double test that was the default since Autoconf 2.64 is no
|
||
longer available. You can still request a preprocessor-only test
|
||
by specifying [-] as the fourth argument to either macro, but this
|
||
is now deprecated. If you really need that behavior use
|
||
AC_PREPROC_IFELSE.
|
||
|
||
*** AC_INCLUDES_DEFAULT assumes an ISO C90 compliant C implementation.
|
||
|
||
Specifically, it assumes that the ISO C90 header <stddef.h>
|
||
is available, without checking for it, and it does not include
|
||
the pre-standard header <memory.h> at all. If the POSIX header
|
||
<strings.h> exists, it will be included, without first testing
|
||
whether both <string.h> and <strings.h> can be included in the
|
||
same source file.
|
||
|
||
AC_INCLUDES_DEFAULT still checks for the existence of <stdlib.h>,
|
||
<string.h>, and <stdio.h>, because these headers may not exist
|
||
in a “freestanding environment” (a compilation mode intended for OS
|
||
kernels and similar, where most of the features of the C library are
|
||
optional). Most programs need not use ‘#ifdef HAVE_STDLIB_H’ etc in
|
||
their own code.
|
||
|
||
For compatibility’s sake, the C preprocessor macro STDC_HEADERS
|
||
will be defined when both <stdlib.h> and <string.h> are available;
|
||
however, <stdarg.h> and <float.h> are no longer checked for
|
||
(these, like <stddef.h>, are required to exist in a freestanding
|
||
environment). New code should not refer to this macro.
|
||
|
||
Future releases of Autoconf may reduce the set of headers checked
|
||
for by AC_INCLUDES_DEFAULT.
|
||
|
||
*** AS_ECHO and AS_ECHO_N unconditionally use ‘printf’.
|
||
|
||
This is substantially simpler, more reliable, and, in most cases,
|
||
faster than attempting to use ‘echo’ at all. However, if ‘printf’
|
||
is not a shell builtin, configure scripts will run noticeably
|
||
slower, and if ‘printf’ is not available at all, they will crash.
|
||
The only systems where this is known to be a problem are extremely
|
||
old, and unlikely to be able to handle modern C programs for other
|
||
reasons (e.g. not having a C90-compliant compiler at all).
|
||
|
||
*** Configure scripts require support for $( ... ) command substitution.
|
||
|
||
This POSIX shell feature is approximately the same age as
|
||
user-defined functions, but there do exist shells that support
|
||
functions and not $( ... ), such as Solaris 10 /bin/sh.
|
||
|
||
Configure scripts will automatically locate a shell that supports
|
||
this feature and re-execute themselves with it, if necessary, so
|
||
the new requirement should be transparent to most users.
|
||
|
||
In this release, most of Autoconf’s code still uses the older `...`
|
||
notation for command substitution.
|
||
|
||
*** AC_INIT now trims extra white space from its arguments.
|
||
|
||
For instance, AC_INIT([ GNU Hello ], [1.0]) will set PACKAGE_NAME
|
||
to “GNU Hello”.
|
||
|
||
*** Macros that take whitespace-separated lists as arguments
|
||
now always expand macros within those arguments.
|
||
|
||
Formerly, these macros would *usually* expand those arguments, but
|
||
the behavior was not reliable nor was it consistent between autoconf
|
||
and autoheader.
|
||
|
||
Macro expansion within these arguments is deprecated; if expansion
|
||
changes the list, a warning in the “obsolete” category will be
|
||
emitted. Note that ‘dnl’ is a macro. Putting ‘dnl’ comments inside
|
||
any argument to an Autoconf macro is, in general, only supported
|
||
when that argument takes more Autoconf code (e.g. the ACTION-IF-TRUE
|
||
argument to AC_COMPILE_IFELSE).
|
||
|
||
The affected macros are AC_CHECK_FILES, AC_CHECK_FUNCS,
|
||
AC_CHECK_FUNCS_ONCE, AC_CHECK_HEADERS, AC_CHECK_HEADERS_ONCE,
|
||
AC_CONFIG_MACRO_DIRS, AC_CONFIG_SUBDIRS, and AC_REPLACE_FUNCS.
|
||
|
||
*** AC_FUNC_VFORK no longer ignores a signal-handling bug in Solaris 2.4.
|
||
|
||
This bug was being ignored because Emacs wanted to use ‘vfork’ on
|
||
Solaris 2.4 anyway, but current versions of Emacs have dropped
|
||
support for Solaris 2.4. Most programs will want to avoid ‘vfork’
|
||
on this OS because of this bug.
|
||
|
||
*** AC_FUNC_STRERROR_R assumes strerror_r is unavailable if it’s not declared.
|
||
|
||
The fallback technique it used to probe strerror_r’s return type
|
||
when the function was present in the C library, but not declared by
|
||
<string.h>, was fragile and did not work at all when cross-compiling.
|
||
The systems where this fallback was necessary were all obsolete.
|
||
|
||
Programs that use AC_FUNC_STRERROR_R should make sure to test the
|
||
preprocessor macro HAVE_DECL_STRERROR_R before using strerror_r at all.
|
||
|
||
*** AC_OPENMP can’t be used if you have files named ‘mp’ or ‘penmp’.
|
||
|
||
Autoconf will now issue an error if AC_OPENMP is used in a configure
|
||
script that’s in the same directory as a file named ‘mp’ or ‘penmp’.
|
||
Configure scripts that use AC_OPENMP will now error out upon
|
||
encountering files with these names in their working directory
|
||
(e.g. when the build directory is separate from the source directory).
|
||
|
||
If you have files with these names at the top level of your source
|
||
tree, we recommend either renaming them or moving them into a
|
||
subdirectory. See the documentation of AC_OPENMP for further
|
||
explanation.
|
||
|
||
** New features
|
||
|
||
*** Configure scripts now support a ‘--runstatedir’ option.
|
||
|
||
This defaults to ‘${localstatedir}/run’. It can be used, for
|
||
instance, to place per-process temporary runtime files (such as pid
|
||
files) into ‘/run’ instead of ‘/var/run’.
|
||
|
||
*** autoreconf will now run gtkdocize and intltoolize when appropriate.
|
||
|
||
*** autoreconf now recognizes AM_GNU_GETTEXT_REQUIRE_VERSION.
|
||
|
||
This macro can be used with gettext 0.19.6 or later to specify
|
||
a *minimum* version requirement for gettext, instead of the *fixed*
|
||
version requirement specified by AM_GNU_GETTEXT_VERSION.
|
||
|
||
*** autoheader handles secondary config headers better.
|
||
|
||
It is no longer necessary to duplicate AC_DEFINE templates in the
|
||
main configuration header for autoheader to notice them.
|
||
|
||
*** AC_PROG_CC now enables C2011 mode if the compiler supports it.
|
||
|
||
If not, it will fall back to C99 and C89, as before. Similarly,
|
||
AC_PROG_CXX now enables C++2011 if available, falling back on C++98.
|
||
|
||
*** New macro AC_C__GENERIC tests for C2011 _Generic support.
|
||
|
||
*** AC_C_VARARRAYS has been aligned with C2011.
|
||
|
||
It now defines __STDC_NO_VLA__ if variable-length arrays are not
|
||
supported but the compiler does not define __STDC_NO_VLA__.
|
||
|
||
For backward compatibility with Autoconf 2.61-2.69 AC_C_VARARRAYS
|
||
still defines HAVE_C_VARARRAYS, but this result macro is obsolescent.
|
||
|
||
*** New macro AC_CONFIG_MACRO_DIRS.
|
||
|
||
This macro can be used more than once and accepts a list of
|
||
directories to search for local M4 macros. With Automake 1.13 and
|
||
later, use of this macro eliminates a reason to use ACLOCAL_AMFLAGS
|
||
in Makefile.am.
|
||
|
||
The older AC_CONFIG_MACRO_DIR, which could only be used once, is
|
||
still supported but considered deprecated.
|
||
|
||
*** AC_USE_SYSTEM_EXTENSIONS knows about more extensions to enable.
|
||
|
||
System extensions will now be enabled on HP-UX, macOS, and MINIX.
|
||
Optional ISO C library components (e.g. decimal floating point) will
|
||
also be enabled.
|
||
|
||
*** New compatibility macro AC_CHECK_INCLUDES_DEFAULT.
|
||
|
||
This macro runs the checks normally performed as a side-effect by
|
||
AC_INCLUDES_DEFAULT, if they haven’t already been done. Autoupdate
|
||
will replace certain obsolete constructs, whose only remaining
|
||
useful effect is to trigger those checks, with this macro. It is
|
||
unlikely to be useful otherwise.
|
||
|
||
*** AC_REQUIRE_AUX_FILE has been improved.
|
||
|
||
Configure scripts now check, on startup, for the availability of all
|
||
the aux files that were mentioned in an AC_REQUIRE_AUX_FILE
|
||
invocation. This should help prevent certain classes of packaging
|
||
errors.
|
||
|
||
Also, it is no longer necessary for third-party macros that use
|
||
AC_REQUIRE_AUX_FILE to mention AC_CONFIG_AUX_DIR_DEFAULT. However,
|
||
if you are using AC_CONFIG_AUX_DIR_DEFAULT *without* also using
|
||
AC_REQUIRE_AUX_FILE, please start using AC_REQUIRE_AUX_FILE to
|
||
specify the aux files you actually need, so that the check can be
|
||
effective.
|
||
|
||
*** AC_PROG_LEX has an option to not look for yywrap.
|
||
|
||
AC_PROG_LEX now takes one argument, which may be either ‘yywrap’ or
|
||
‘noyywrap’. If it is ‘noyywrap’, AC_PROG_LEX will only set LEXLIB
|
||
to ‘-lfl’ or ‘-ll’ if a scanner that defines both main and yywrap
|
||
itself still needs something else from that library. On the other
|
||
hand, if it is ‘yywrap’, AC_PROG_LEX will fail (setting LEX to ‘:’
|
||
and LEXLIB to nothing) if it can’t find a library that defines yywrap.
|
||
|
||
In the absence of arguments, AC_PROG_LEX’s behavior is bug-compatible
|
||
with 2.69, which did neither of the above things (see the manual for
|
||
details). This mode is deprecated.
|
||
|
||
We encourage all programs that use AC_PROG_LEX to use the new
|
||
‘noyywrap’ mode, and to define yywrap themselves, or use %noyywrap.
|
||
The yywrap function in lib(f)l is trivial, and self-contained
|
||
scanners are easier to work with.
|
||
|
||
** Obsolete features and new warnings
|
||
|
||
*** Use of the long-deprecated name ‘configure.in’ for the autoconf
|
||
input file now elicits a warning in the “obsolete” category.
|
||
|
||
*** Use of the undocumented internal shell variables $as_echo and
|
||
$as_echo_n now elicits a warning in the “obsolete” category.
|
||
The macros AS_ECHO and AS_ECHO_N should be used instead.
|
||
|
||
*** autoconf will now issue warnings (in the “syntax” category)
|
||
if the input file is missing a call to AC_INIT and/or AC_OUTPUT.
|
||
|
||
*** autoconf will now issue warnings (in the “syntax” category)
|
||
for a non-literal URL argument to AC_INIT, and for a TARNAME
|
||
argument to AC_INIT which is either non-literal or contains
|
||
characters that should not be used in file names (e.g. ‘*’).
|
||
|
||
*** AC_PROG_CC_STDC, AC_PROG_CC_C89, AC_PROG_CC_C99 are now obsolete.
|
||
|
||
Applications should use AC_PROG_CC.
|
||
|
||
*** AC_HEADER_STDC and AC_HEADER_TIME are now stubs.
|
||
|
||
They still define the C preprocessor macros STDC_HEADERS and
|
||
TIME_WITH_SYS_TIME, respectively, but they no longer check for the
|
||
ancient, non-ISO-C90 compliant systems where formerly those macros
|
||
would not be defined. Autoupdate will remove them.
|
||
|
||
These macros were already labeled obsolete in the manual.
|
||
|
||
*** AC_DIAGNOSE, AC_FATAL, AC_WARNING, and _AC_COMPUTE_INT are now
|
||
replaced with modern equivalents by autoupdate.
|
||
|
||
These macros were already labeled obsolete in the manual.
|
||
|
||
*** AC_CONFIG_HEADER is now diagnosed as obsolete, and replaced with
|
||
AC_CONFIG_HEADERS by autoupdate.
|
||
|
||
This macro has been considered obsolete for many years and was not
|
||
documented at all.
|
||
|
||
*** The macro AC_OBSOLETE is obsolete.
|
||
|
||
Autoupdate will replace it with m4_warn([obsolete], [explanation]).
|
||
If possible, macros using AC_OBSOLETE should be converted to use
|
||
AU_DEFUN or AU_ALIAS instead, which enables autoupdate to replace
|
||
them, but this has to be done by hand and is not always possible.
|
||
|
||
This macro has been considered obsolete for many years, but was not
|
||
officially declared as such.
|
||
|
||
*** Man pages for config.guess and config.sub are no longer provided.
|
||
|
||
They were moved to the master source tree for config.guess and
|
||
config.sub.
|
||
|
||
** Notable bug fixes
|
||
|
||
*** Compatible with current Automake, Libtool, Perl, Texinfo, and shells.
|
||
|
||
All of autoconf’s tools and generated scripts, and the build process
|
||
and testsuite for autoconf itself, have been tested to work
|
||
correctly with current versions of Automake, Libtool, Perl, Texinfo,
|
||
bash, ksh93, zsh, and FreeBSD and NetBSD /bin/sh.
|
||
|
||
Generated configure scripts are expected to work reliably with an
|
||
even wider variety of shells, including BusyBox sh and various
|
||
proprietary Unixes’ /bin/sh, as long as they are minimally compliant
|
||
with the Unix95 shell specification. Notably, support for
|
||
shell-script functions and the ‘printf’ builtin are required.
|
||
|
||
*** Checks compatible with current language standards and compilers.
|
||
|
||
Many individual macros have been improved to accommodate changes in
|
||
recent versions of the C and C++ language standards, and new
|
||
features and quirks of commonly used compilers (both free and
|
||
proprietary).
|
||
|
||
*** Improved support for cross compilation.
|
||
|
||
Many individual macros have been improved to produce more accurate
|
||
results when cross-compiling.
|
||
|
||
*** Improved robustness against unusual build environments.
|
||
|
||
Many bugs have been fixed where generated configure scripts would
|
||
fail catastrophically under unusual conditions, such as stdout being
|
||
closed, or $TMPDIR not being an absolute path, or the root directory
|
||
being mentioned in $PATH.
|
||
|
||
*** AC_CHECK_FUNCS_ONCE and AC_CHECK_HEADERS_ONCE now support multiple
|
||
programming languages. They no longer perform all checks in the
|
||
language active upon the first use of the macro.
|
||
|
||
*** AC_CHECK_DECL and AC_CHECK_DECLS will now detect missing declarations for
|
||
library functions that are also Clang compiler builtins.
|
||
|
||
*** AC_PATH_X and AC_PATH_XTRA don’t search for X11 when cross-compiling.
|
||
|
||
Libraries and headers found by running xmkmf or searching /usr/X11,
|
||
/usr/X11R7, etc. are likely to belong to a native X11 installation
|
||
for the build machine and to be inappropriate for cross compilation.
|
||
|
||
To cross-compile programs that require X11, we recommend putting the
|
||
headers and libraries for the host system in your cross-compiler’s
|
||
default search paths. Alternatively, use configure’s --x-includes
|
||
and --x-libraries command line options to tell it where they are.
|
||
|
||
*** AS_IF’s if-false argument may be empty after macro expansion.
|
||
|
||
This long-standing limitation broke configure scripts that used
|
||
macros in this position that emitted shell code in 2.69 but no
|
||
longer do, so we have lifted it.
|
||
|
||
*** AC_HEADER_MAJOR detects the location of the major, minor, and
|
||
makedev macros correctly under glibc 2.25 and later.
|
||
|
||
*** AC_FC_LINE_LENGTH now documents the maximum portable length of
|
||
“unlimited” Fortran source code lines to be 250 columns, not 254.
|
||
|
||
*** AC_INIT and AS_INIT no longer embed (part of) the path to the
|
||
source directory in generated files.
|
||
|
||
We believe this was the only case where generated file contents
|
||
could change depending on the environment outside the source tree
|
||
itself. If you find any other cases please report them as bugs.
|
||
|
||
*** config.log properly escapes arguments in the header comment.
|
||
|
||
*** config.status --config output is now quoted in a more readable fashion.
|
||
|
||
** Autotest enhancements
|
||
|
||
*** Autotest provides a new macro AT_DATA_UNQUOTED, similar to AT_DATA
|
||
but processing variable substitutions, command substitutions and
|
||
backslashes in the contents argument.
|
||
|
||
*** AC_CONFIG_TESTDIR will automatically pass EXEEXT to a testsuite (via
|
||
the atconfig file).
|
||
|
||
*** AT_TESTED arguments can use variable or command substitutions, including
|
||
in particular $EXEEXT
|
||
|
||
*** New macros AT_PREPARE_TESTS, AT_PREPARE_EACH_TEST, and AT_TEST_HELPER_FN.
|
||
|
||
These provide an official way to define testsuite-specific
|
||
initialization code and shell functions.
|
||
|
||
* Noteworthy changes in release 2.69 (2012-04-24) [stable]
|
||
|
||
** Autoconf now requires perl 5.6 or better (but generated configure
|
||
scripts continue to run without perl).
|
||
|
||
* Noteworthy changes in release 2.68b (2012-03-01) [beta]
|
||
Released by Eric Blake, based on git versions 2.68.*.
|
||
|
||
** Autoconf-generated configure scripts now unconditionally re-execute
|
||
themselves with $CONFIG_SHELL, if that's set in the environment.
|
||
|
||
** The texinfo documentation no longer specifies "front-cover" or
|
||
"back-cover" texts, so that it may now be included in Debian's
|
||
"main" section.
|
||
|
||
** Support for the Go programming language has been added. The new macro
|
||
AC_LANG_GO sets variables GOC and GOFLAGS.
|
||
|
||
** AS_LITERAL_IF again treats '=' as a literal. Regression introduced in
|
||
2.66.
|
||
|
||
** The macro AS_EXECUTABLE_P, present since 2.50, is now documented.
|
||
|
||
** Macros
|
||
|
||
- AC_PROG_LN_S and AS_LN_S now fall back on 'cp -pR' (not 'cp -p') if 'ln -s'
|
||
does not work. This works better for symlinks to directories.
|
||
|
||
- New macro AC_HEADER_CHECK_STDBOOL.
|
||
|
||
- New and updated macros for Fortran support:
|
||
|
||
AC_FC_CHECK_BOUNDS to enable array bounds checking
|
||
AC_F77_IMPLICIT_NONE and AC_FC_IMPLICIT_NONE to disable implicit integer
|
||
AC_FC_MODULE_EXTENSION to compute the Fortran 90 module name extension
|
||
AC_FC_MODULE_FLAG for the Fortran 90 module search path flag
|
||
AC_FC_MODULE_OUTPUT_FLAG for the Fortran 90 module output directory flag
|
||
AC_FC_PP_SRCEXT for preprocessed Fortran source files extensions
|
||
AC_FC_PP_DEFINE for the Fortran preprocessor define flag
|
||
|
||
* Noteworthy changes in release 2.68 (2010-09-22) [stable]
|
||
Released by Eric Blake, based on git versions 2.67.*.
|
||
|
||
** AC_MSG_ERROR (and AS_ERROR) can once again be followed immediately by
|
||
'dnl'. Regression introduced in 2.66.
|
||
|
||
** AC_INIT again allows URLs with '?' for its BUG-REPORT argument.
|
||
Regression introduced in 2.66.
|
||
|
||
** AC_REPLACE_FUNCS again allows a non-literal argument, such as a shell
|
||
variable that expands to a list of functions to check. Regression
|
||
introduced in 2.66.
|
||
|
||
** AT_BANNER() with empty argument will cause visual separation from previous
|
||
test category.
|
||
|
||
** The macros AC_PREPROC_IFELSE, AC_COMPILE_IFELSE, AC_LINK_IFELSE, and
|
||
AC_RUN_IFELSE now warn if the first argument failed to use
|
||
AC_LANG_SOURCE or AC_LANG_PROGRAM to generate the conftest file
|
||
contents. A new macro AC_LANG_DEFINES_PROVIDED exists if you have
|
||
a compelling reason why you cannot use AC_LANG_SOURCE but must
|
||
avoid the warning.
|
||
|
||
** The macro m4_define_default is now documented.
|
||
|
||
** Symlinked config.cache files are supported; configure now tries to
|
||
update non-symlinked cache files atomically, so that concurrent configure
|
||
runs do not leave behind broken cache files. It is still unspecified
|
||
which subset or union of results is cached though.
|
||
|
||
** Autotest testsuites should not contain long text lines any more, and be
|
||
portable even when very many test groups are used.
|
||
|
||
** AT_CHECK semantics with respect to the Autotest variable $at_status and
|
||
shell execution environment of the arguments are documented now.
|
||
|
||
** AC_FC_LIBRARY_LDFLAGS now tolerates output from newer gfortran.
|
||
|
||
** Newly obsolete macros
|
||
The following macros have been marked obsolete. New programs
|
||
should use the corresponding Gnulib modules. Gnulib not only
|
||
detects a larger set of portability problems with these functions,
|
||
but also provides complete workarounds.
|
||
|
||
AC_FUNC_ERROR_AT_LINE AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
|
||
AC_FUNC_MKTIME AC_FUNC_STRTOD
|
||
|
||
|
||
* Major changes in Autoconf 2.67 (2010-07-21) [stable]
|
||
Released by Eric Blake, based on git versions 2.66.*.
|
||
|
||
** AC_CONFIG_SUBDIRS with more than one subdirectory at a time works again.
|
||
Regression introduced in 2.66.
|
||
|
||
** AC_CHECK_SIZEOF of a pointer type works again. Regression introduced in
|
||
2.66.
|
||
|
||
** New macro AC_FC_LINE_LENGTH to accept long Fortran source code lines.
|
||
|
||
** AC_PREPROC_IFELSE now keeps the preprocessed output in the conftest.i
|
||
file for inspection by the commands in the ACTION-IF-TRUE argument.
|
||
|
||
** AC_INIT again allows parentheses and other characters that are literal
|
||
in single- or double-quoted strings, and in quoted and unquoted
|
||
here-documents, for its PACKAGE and VERSION arguments. Regression
|
||
introduced in 2.66.
|
||
|
||
** autoreconf passes warning flags to new enough versions of aclocal.
|
||
|
||
** Running an Autotest testsuite in parallel mode no longer triggers a
|
||
race condition that could cause the testsuite run to end early,
|
||
fixing a sporadic failure in autoconf's own testsuite. Bug present
|
||
since introduction of parallel tests in 2.63b.
|
||
|
||
|
||
* Major changes in Autoconf 2.66 (2010-07-02) [stable]
|
||
Released by Eric Blake, based on git versions 2.65.*.
|
||
|
||
** AC_FUNC_MMAP works in C++ mode again. Regression introduced in 2.65.
|
||
|
||
** Use of m4_divert without a named diversion now issues a syntax warning,
|
||
since it is seldom right to change diversions behind autoconf's back.
|
||
|
||
** The macros AC_TYPE_INT8_T, AC_TYPE_INT16_T, AC_TYPE_INT32_T, and
|
||
AC_TYPE_INT64_T work again. Regression introduced in 2.65.
|
||
|
||
** AC_PROG_INSTALL correctly uses 'shtool' again. Regression introduced
|
||
in 2.64.
|
||
|
||
** Autoconf should work on EBCDIC hosts.
|
||
|
||
** AC_CHECK_DECL and AC_CHECK_DECLS accept optional function argument types
|
||
for overloaded C++ functions.
|
||
|
||
** AS_SET_CATFILE accepts nonliterals in its variable name argument now.
|
||
|
||
** Autotest testsuites accept an option --recheck to rerun tests that
|
||
failed or passed unexpectedly during the last non-debug testsuite run.
|
||
|
||
** AC_ARG_ENABLE and AC_ARG_WITH now also accept '+' signs in '--enable-*'
|
||
and '--with-*' arguments, converting them to underscores for the variable
|
||
names.
|
||
|
||
** In configure scripts, loading CONFIG_SITE no longer searches PATH,
|
||
and problems in loading the configuration site files are diagnosed.
|
||
|
||
** Autotest testsuites may optionally provide colored test results.
|
||
|
||
** The previously undocumented Autotest macros AT_ARG_OPTION and
|
||
AT_ARG_OPTION_ARG have seen bug fixes and are documented now.
|
||
AT_ARG_OPTION has been changed in that the negative of a long option
|
||
--OPTION is now --no-OPTION rather than --noOPTION.
|
||
|
||
** The macro AS_LITERAL_IF is slightly more conservative; text
|
||
containing shell quotes are no longer treated as literals.
|
||
Furthermore, a new macro, AS_LITERAL_WORD_IF, adds an additional
|
||
level of checking that no whitespace occurs in literals.
|
||
|
||
** The macros AS_TR_SH and AS_TR_CPP no longer expand their results.
|
||
|
||
** The following macros are now documented:
|
||
AS_BOX
|
||
|
||
** New macro AC_FC_FIXEDFORM to accept fixed-form Fortran.
|
||
|
||
|
||
* Major changes in Autoconf 2.65 (2009-11-21) [stable]
|
||
Released by Eric Blake, based on git versions 2.64.*.
|
||
|
||
** Autoconf is now licensed under the General Public License version 3
|
||
or later (GPLv3+). As with earlier versions, the license includes
|
||
an exception clause so that you may release a configure script
|
||
generated by autoconf under the license of your own program.
|
||
|
||
** New macros to support Objective C++.
|
||
AC_PROG_OBJCXX AC_PROG_OBJCXXCPP
|
||
|
||
** The following undocumented autoconf macros, removed in Autoconf 2.64,
|
||
have been reinstated:
|
||
AH_CHECK_HEADERS
|
||
|
||
These macros are present only for backwards compatibility purposes.
|
||
|
||
** The macro AC_LANG_COMPILER no longer fails on embedded systems that
|
||
lack fopen in the C library, such as AVR or RTEMS (regression
|
||
introduced in 2.64).
|
||
|
||
** The AC_FC_FREEFORM macro no longer suffers from a whitespace bug that
|
||
made it fail with some Fortran compilers (regression introduced in
|
||
2.64).
|
||
|
||
** The AC_TYPE_UINT64_T and AC_TYPE_INT64_T macros have been fixed to no
|
||
longer mistakenly select a 32-bit type on some compilers (bug present
|
||
since macros were introduced in 2.59c).
|
||
|
||
** The AC_FUNC_MMAP macro has been fixed to be portable to systems like
|
||
Cygwin (bug present since macro was introduced in 2.0).
|
||
|
||
** The following documented autotest macros are new:
|
||
AT_CHECK_EUNIT
|
||
|
||
** The following m4sugar macros now quote their expansion:
|
||
m4_toupper m4_tolower
|
||
|
||
** The following m4sugar macros are new:
|
||
m4_escape
|
||
|
||
** The m4sugar macro m4_text_wrap now copes with embedded quoting without
|
||
requiring quadrigraphs. For uses like AC_ARG_VAR([a], [[b c]]),
|
||
this gives the intuitive behavior of "[b c]" in the output (2.63
|
||
gave the output of "[b], [c]", and 2.64 encountered a failure).
|
||
|
||
** The '$tmp' temporary directory used in config.status is documented for
|
||
public use now.
|
||
|
||
** config.status now provides a --config option to produce the configuration.
|
||
|
||
** Many cache variables used by Autoconf's macros are now documented.
|
||
|
||
** Configure scripts work better on DJGPP by avoiding a bug present in
|
||
the DJGPP port of bash 2.04 in handling 'return' in a shell
|
||
function (regression introduced in 2.64).
|
||
|
||
* Major changes in Autoconf 2.64 (2009-07-26) [stable]
|
||
Released by Eric Blake, based on git versions 2.63b.*.
|
||
|
||
** Autoconf now requires GNU M4 1.4.6 or later. Earlier versions of M4
|
||
have a bug in regular expression handling that interferes with some
|
||
of the speedups provided since Autoconf 2.63. GNU M4 1.4.13 or
|
||
later is recommended.
|
||
|
||
** AS_IF and AS_CASE have been taught to avoid syntax errors even when
|
||
given arguments that expand to just whitespace.
|
||
|
||
** The following documented autoconf macros are new:
|
||
AC_ERLANG_SUBST_ERTS_VER
|
||
|
||
** The autoheader tool now understands m4 macro arguments passed to
|
||
AC_DEFINE and AC_DEFINE_UNQUOTED.
|
||
|
||
** Ensure AT_CHECK can support commands that include a # given with
|
||
proper m4 quoting. For shell comments, this is a new feature; for
|
||
non-shell comments, this fixes a regression introduced in 2.63b.
|
||
Additionally, AT_CHECK correctly supplies shell escapes for
|
||
metacharacters occurring in m4 macro expansions within the expected
|
||
stdout and stderr parameters.
|
||
|
||
** The macro AT_CHECK now understands the concept of hard failure. If
|
||
a test exits with an unexpected status 99, cleanup actions for the
|
||
test are inhibited and the test is treated as a failure regardless
|
||
of AT_XFAIL_IF. It also understands the new directives
|
||
ignore-nolog, stdout-nolog, and stderr-nolog.
|
||
|
||
** The following documented autotest macros are new:
|
||
AT_CHECK_UNQUOTED AT_FAIL_IF AT_SKIP_IF
|
||
|
||
** The following documented m4sugar macros are new:
|
||
m4_argn m4_copy_force m4_default_nblank m4_default_nblank_quoted
|
||
m4_ifblank m4_ifnblank m4_rename_force
|
||
|
||
** The autoconf testsuite now exercises all Erlang macros.
|
||
|
||
* Major changes in Autoconf 2.63b (2009-03-31) [beta]
|
||
Released by Eric Blake, based on git versions 2.63.*.
|
||
|
||
** The manual is now shipped under the terms of the GNU FDL 1.3.
|
||
|
||
** AC_REQUIRE now detects the case of an outer macro which first expands
|
||
then later indirectly requires the same inner macro. Previously,
|
||
this case led to silent out-of-order expansion (bug present since
|
||
2.50); it now issues a syntax warning, and duplicates the expansion
|
||
of the inner macro to guarantee dependencies have been met. See
|
||
the manual for advice on how to refactor macros in order to avoid
|
||
the bug in earlier autoconf versions and avoid increased script
|
||
size in the current version.
|
||
|
||
** AC_DEFUN_ONCE has improved semantics. Previously, a macro declared
|
||
with AC_DEFUN_ONCE warned on a second invocation; and out-of-order
|
||
expansion was still possible. Now, dependencies are guaranteed,
|
||
and subsequent invocations are a silent no-op. This makes
|
||
AC_DEFUN_ONCE an ideal macro for silencing AC_REQUIRE warnings.
|
||
|
||
** The following macros are now defined with AC_DEFUN_ONCE. This means
|
||
a subtle change in semantics; previously, an AC_DEFUN macro could
|
||
expand one of these macros multiple times or surround the macro
|
||
inside shell conditional text to bypass the effects of these
|
||
macros, but now the macro will expand exactly once, and prior to
|
||
the start of any enclosing AC_DEFUN macro:
|
||
AC_CANONICAL_BUILD AC_CANONICAL_HOST AC_CANONICAL_TARGET
|
||
AC_HEADER_ASSERT AC_PROG_INSTALL AC_PROG_MKDIR_P
|
||
AC_USE_SYSTEM_EXTENSIONS
|
||
|
||
** AC_LANG_ERLANG works once again (regression introduced in 2.61a).
|
||
|
||
** AC_HEADER_ASSERT is fixed so that './configure --enable-assert' no
|
||
longer mistakenly disables assertions.
|
||
|
||
** AC_INIT now takes an optional fifth parameter that can be used to
|
||
set AC_PACKAGE_URL, a URL for the package's home page; the URL is
|
||
used in 'configure --help' and is also available via AC_DEFINE.
|
||
|
||
** Autotest testsuites accept an option --jobs[=N] for parallel testing.
|
||
This feature is still in testing, and may not work on every
|
||
platform, help in improving it would be appreciated.
|
||
|
||
** Autotest testsuites do not attempt to write startup error messages
|
||
to the log file before that is opened (regression introduced in 2.63).
|
||
|
||
** Configure scripts now use shell functions. This feature leads to
|
||
smaller configure files and faster execution.
|
||
|
||
** Present But Cannot Be Compiled: Autoconf will now proceed with
|
||
the compiler's result if a header is present but cannot be compiled.
|
||
The warning is still printed, and you should really fix it by
|
||
providing a fourth parameter to AC_CHECK_HEADER/AC_CHECK_HEADERS.
|
||
|
||
** Autoreconf added aclocal to the set of programs affected by the
|
||
'autoreconf -I dir' option.
|
||
|
||
** The following documented m4sugar macros are new:
|
||
m4_chomp m4_chomp_all m4_cleardivert m4_curry m4_default_quoted
|
||
m4_esyscmd_s m4_map_args m4_map_args_pair m4_map_args_sep
|
||
m4_map_args_w m4_set_map m4_set_map_sep m4_stack_foreach
|
||
m4_stack_foreach_lifo m4_stack_foreach_sep
|
||
m4_stack_foreach_sep_lifo
|
||
|
||
** The following m4sugar macros are documented now, but in some cases
|
||
with slightly different semantics than what the previous
|
||
undocumented version had:
|
||
m4_copy m4_dumpdefs m4_rename m4_version_prereq
|
||
|
||
** The m4sugar macro m4_expand has been taught to handle unterminated
|
||
comments and shell case statements. As a result, it is used
|
||
internally in more places, such as AC_DEFINE and AT_CHECK. Most
|
||
uses of AC_DEFINE and AT_CHECK should not behave any differently;
|
||
however, it may be necessary to add double-quoting around
|
||
unbalanced '(' where single-quoting used to be sufficient.
|
||
|
||
** The following documented m4sh macros are new:
|
||
AS_INIT_GENERATED AS_LINENO_PREPARE AS_ME_PREPARE AS_SET_STATUS
|
||
AS_VAR_APPEND AS_VAR_ARITH AS_VAR_COPY
|
||
|
||
** The following m4sh macros are documented now, but in some cases
|
||
with slightly different semantics than what the previous
|
||
undocumented version had:
|
||
AS_ECHO AS_ECHO_N AS_ESCAPE AS_EXIT AS_LITERAL_IF AS_UNSET
|
||
AS_VAR_IF AS_VAR_POPDEF AS_VAR_PUSHDEF AS_VAR_SET AS_VAR_SET_IF
|
||
AS_VAR_TEST_SET AS_VERSION_COMPARE
|
||
|
||
** The m4sh macros AS_IF and AS_CASE can now be used in shell lists.
|
||
The responsibility for supplying a trailing newline now belongs to
|
||
the call site, but since most users did not add dnl, this generally
|
||
results in fewer empty lines in configure.
|
||
|
||
|
||
* Major changes in Autoconf 2.63 (2008-09-09) [stable]
|
||
Released by Eric Blake, based on git versions 2.62.*.
|
||
|
||
** AC_C_BIGENDIAN does not mistakenly report "universal" for some
|
||
bigendian hosts, a regression introduced with universal binary
|
||
support in 2.62.
|
||
|
||
** AC_PATH_X now includes /lib64 and /usr/lib64 in its list of default
|
||
library directories.
|
||
|
||
** AC_USE_SYSTEM_EXTENSIONS no longer conflicts with an external
|
||
AC_DEFINE([__EXTENSIONS__]). This fixes a regression introduced in
|
||
2.62 when using macros such as AC_AIX that were made obsolete in
|
||
favor of the more portable AC_USE_SYSTEM_EXTENSIONS.
|
||
|
||
** AC_CHECK_TARGET_TOOLS is usable in the non-cross-compile case.
|
||
|
||
** Newly obsolete macros
|
||
The following macro has been marked obsolete, since current porting
|
||
targets can safely assume C89 semantics that signal handlers return
|
||
void. We have no current plans to remove the macro.
|
||
|
||
AC_TYPE_SIGNAL
|
||
|
||
** The macros m4_map and m4_map_sep now ignore any list elements
|
||
consisting of just empty quotes, and m4_map_sep now expands its
|
||
separator. This fixes a regression in 2.62 when these macros were
|
||
first documented, for the sake of clients expecting the semantics
|
||
that these macros had prior to that time. The new macros m4_mapall
|
||
and m4_mapall_sep, along with extra quoting of the separator, can
|
||
be used to get the semantics that m4_map_sep had in 2.62.
|
||
|
||
** Clients of m4_expand, such as AS_HELP_STRING and AT_SETUP, can now
|
||
handle properly quoted but otherwise unbalanced parentheses (for
|
||
some macros, this fixes a regression in 2.62).
|
||
|
||
** Two new quadrigraphs have been introduced: @{:@ for (, and @:}@ for ),
|
||
allowing the output of unbalanced parentheses in more contexts.
|
||
|
||
** The following m4sugar macros are new:
|
||
m4_cleardivert m4_joinall m4_mapall m4_mapall_sep m4_reverse
|
||
m4_set_add m4_set_add_all m4_set_contains m4_set_contents
|
||
m4_set_delete m4_set_difference m4_set_dump m4_set_empty
|
||
m4_set_foreach m4_set_intersection m4_set_list m4_set_listc
|
||
m4_set_remove m4_set_size m4_set_union
|
||
|
||
** The following m4sugar macros now accept multiple arguments, as is the
|
||
case with underlying m4:
|
||
m4_defn m4_popdef m4_undefine
|
||
|
||
** The following m4sugar macros now guarantee linear scaling; they
|
||
previously had linear scaling with m4 1.6 but quadratic scaling
|
||
when using m4 1.4.x. All macros built on top of these also gain
|
||
the scaling improvements.
|
||
m4_bmatch m4_bpatsubsts m4_case m4_cond m4_do m4_dquote_elt
|
||
m4_foreach m4_join m4_list_cmp m4_map m4_map_sep m4_max
|
||
m4_min m4_shiftn
|
||
|
||
** AT_KEYWORDS once again performs expansion on its argument, such that
|
||
AT_KEYWORDS([m4_if([$1], [], [default])]) no longer complains about
|
||
the possibly unexpanded m4_if [regression introduced in 2.62].
|
||
|
||
** Config header templates '#undef UNDEFINED /* comment */' do not lead to
|
||
nested comments any more; regression introduced in 2.62.
|
||
|
||
|
||
* Major changes in Autoconf 2.62 (2008-04-05) [stable]
|
||
Released by Eric Blake, based on git versions 2.61a.*.
|
||
|
||
** Many optimizations have been applied to make overall execution faster.
|
||
|
||
** Autotest now makes use of shell functions.
|
||
|
||
** config.status now uses awk instead of sed also for config headers.
|
||
|
||
- As a side effect, AC_DEFINE and AC_DEFINE_UNQUOTED now handle multi-line
|
||
values, i.e., backslash-newline combinations are handled correctly.
|
||
Further, for config headers, the total size of values is not limited by
|
||
the POSIX length limit of text lines any more, only each single line.
|
||
|
||
** New config variable 'top_build_prefix'.
|
||
|
||
** New Autoconf macros:
|
||
AC_AUTOCONF_VERSION AC_OPENMP AC_PATH_PROGS_FEATURE_CHECK
|
||
|
||
** AC_C_BIGENDIAN now supports universal binaries a la Mac OS X.
|
||
|
||
** AC_C_RESTRICT now prefers to #define 'restrict' to a variant spelling
|
||
like '__restrict' if the variant spelling is available, as this is
|
||
more likely to work when mixing C and C++ code.
|
||
|
||
** AC_CHECK_ALIGNOF's type argument T is now documented better: it must
|
||
be a string of tokens such that "T y;" is a valid member declaration
|
||
in a struct.
|
||
|
||
** AC_CHECK_SIZEOF now accepts objects as well as types: the general rule
|
||
is that sizeof (X) works, then AC_CHECK_SIZEOF (X) should work.
|
||
|
||
** AC_CHECK_TYPE and AC_CHECK_TYPES now work on any C type-name; formerly,
|
||
they did not work for function types. In C++, they now work on any
|
||
type-id that can be the operand of sizeof; this is similar to C,
|
||
except it excludes anonymous struct and union types. Formerly,
|
||
some (but not all) C++ types involving anonymous struct and union
|
||
were accepted, though this was not documented.
|
||
|
||
** AC_CONFIG_LINKS now prefers to link against files in the build tree
|
||
if found, and it works to link against a file of the same name in
|
||
the source tree, even if both trees coincide.
|
||
|
||
** AC_INIT no longer alters $@; regression introduced in 2.60.
|
||
|
||
** AC_USE_SYSTEM_EXTENSIONS now defines _ALL_SOURCE for Interix platforms.
|
||
|
||
** AS_HELP_STRING no longer underquotes its first argument; it also handles
|
||
the case where the first argument contains single-quoted commas.
|
||
For example, "AS_HELP_STRING([-a, [--arg[=foo]]], [bar])" produces:
|
||
" -a, --arg[=foo] bar"
|
||
Additionally, the macro now takes two additional arguments,
|
||
indent-column and wrap-column; these should not normally be needed,
|
||
but can be used to fine-tune how the output text is wrapped.
|
||
|
||
** AC_PROG_INSTALL now requires an install program that can install multiple
|
||
files into a target directory.
|
||
|
||
** The command 'autoconf -' now correctly processes a file from stdin.
|
||
|
||
** 'autoreconf -m' now honors $MAKE.
|
||
|
||
** For all of the directory arguments for 'configure', such as '--prefix'
|
||
or '--bindir', trailing slashes are stripped. As an example, if
|
||
tab completion in the user's shell appends trailing slashes, the
|
||
command './configure --prefix=/usr/' will still result in an
|
||
expanded libdir value of /usr/lib, not /usr//lib.
|
||
|
||
** 'configure --help=recursive' now works in read-only trees and from
|
||
unconfigured build trees.
|
||
|
||
** If precious variables differ only in whitespace, then the cache consistency
|
||
check warns instead of fails, and reuses the old value.
|
||
|
||
** AT_BANNER is now documented.
|
||
|
||
** AT_SETUP now handles macro expansions properly when calculating line
|
||
length.
|
||
|
||
** Autotest now determines $srcdir correctly.
|
||
|
||
** Testsuites built by autotest now accept a -C/--directory=DIR option
|
||
to adjust the working directory prior to creating files.
|
||
|
||
** Autoconf now requires GNU M4 1.4.5 or later. Earlier versions of M4 have
|
||
a bug in macro tracing that interferes with the interaction between
|
||
Autoconf and Automake. GNU M4 1.4.11 or later is recommended. The
|
||
configure search for a working M4 is improved.
|
||
|
||
** For portability with the eventual M4 2.0, macros should no longer use
|
||
anything larger than $9 to refer to arguments.
|
||
|
||
** Documentation for m4sugar is improved.
|
||
|
||
- The following macros were previously available as undocumented
|
||
interfaces; the macros are now documented as stable interfaces.
|
||
|
||
__oline__ m4_assert m4_bmatch m4_bpatsubsts m4_car m4_case
|
||
m4_cdr m4_default m4_divert_once m4_divert_pop m4_divert_push
|
||
m4_divert_text m4_do m4_errprintn m4_fatal m4_flatten
|
||
m4_ifndef m4_ifset m4_ifval m4_ifvaln m4_location
|
||
m4_n m4_shiftn m4_strip m4_warn
|
||
|
||
- The following macros were previously available as undocumented
|
||
interfaces, but had bug fixes or semantic changes as part of this
|
||
release. Packages that relied on the undocumented behavior
|
||
should be analyzed to make sure they will still work with the
|
||
new documented behavior.
|
||
|
||
m4_cmp m4_list_cmp m4_join m4_map m4_map_sep m4_sign
|
||
m4_text_box m4_text_wrap m4_version_compare
|
||
|
||
- The m4_wrap macro used to have unspecified order, but now
|
||
guarantees FIFO order. m4_wrap_lifo was added to guarantee LIFO
|
||
order.
|
||
|
||
- Packages using the undocumented m4sugar macro m4_PACKAGE_VERSION
|
||
should consider using the new AC_AUTOCONF_VERSION instead.
|
||
|
||
- m4sugar macros that are not documented in the manual are still
|
||
deemed experimental, and should not be used outside of Autoconf.
|
||
|
||
** The m4sugar macros m4_append and m4_append_uniq, first documented in
|
||
2.60, have been fixed to treat both the string and the separator
|
||
arguments consistently with regards to quoting. Prior to this fix,
|
||
m4_append_uniq could mistakenly duplicate entries if the expansion
|
||
of the separator resulted in a different string (for example, if it
|
||
contained quotes, a comma, or a macro name). However, it means
|
||
that programs previously using
|
||
m4_append([name], [string], [[, ]])
|
||
are now using a four-character separator instead of the intended
|
||
comma and space. If you need portability to earlier versions of
|
||
Autoconf, you can insert the following snippet after AC_INIT but
|
||
before any other macro expansions, to enforce the new semantics:
|
||
m4_pushdef([m4_append], [m4_define([$1],
|
||
m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
|
||
Additionally, m4_append_uniq now takes optional parameters that can
|
||
be used to take action depending on whether anything was appended,
|
||
and warns if a non-empty separator occurs within the string being
|
||
appended, since that can lead to duplicates.
|
||
|
||
** The following m4sugar macros are new:
|
||
m4_append_uniq_w m4_apply m4_combine m4_cond m4_count
|
||
m4_dquote_elt m4_echo m4_expand m4_ignore m4_make_list m4_max
|
||
m4_min m4_newline m4_shift2 m4_shift3 m4_unquote m4_wrap_lifo
|
||
|
||
** Warnings are now generated by default when an installer invokes
|
||
'configure' with an unknown --enable-* or --with-* option.
|
||
These warnings can be disabled with the new AC_DISABLE_OPTION_CHECKING
|
||
macro, or by invoking 'configure' with --disable-option-checking.
|
||
|
||
** Existing obsolete macros
|
||
The documentation for the following macros is adjusted to make it
|
||
more clear that they have previously been marked obsolete, as their
|
||
functionality can be accomplished by other macros. We have no
|
||
current plans to remove them from Autoconf.
|
||
|
||
AC_ENABLE AC_STRUCT_ST_BLKSIZE AC_STRUCT_ST_RDEV AC_WITH
|
||
|
||
** Newly obsolete macros
|
||
The following macros have been marked obsolete, as they only
|
||
perform a subset of AC_USE_SYSTEM_EXTENSIONS. We have no current
|
||
plans to remove them.
|
||
|
||
AC_AIX AC_GNU_SOURCE AC_ISC_POSIX AC_MINIX
|
||
|
||
** AC_C_LONG_DOUBLE is obsolescent.
|
||
The documentation now says that AC_C_LONG_DOUBLE is obsolescent: it
|
||
tests for problems that are so old that it is no longer of
|
||
practical importance on current systems. New programs need not use
|
||
AC_C_LONG_DOUBLE. We have no current plans to remove it.
|
||
|
||
** AC_DIAGNOSE, AC_WARNING, and AC_FATAL are obsolescent.
|
||
The documentation now favors the use of M4sugar macros m4_warn and
|
||
m4_fatal, since the naming makes it more obvious that the
|
||
diagnostics are associated with M4 expansion (ie. when running
|
||
'autoconf'), and offers less confusion with the AC_MSG_ERROR,
|
||
AC_MSG_FAILURE, and AC_MSG_WARN macros which manage diagnostics
|
||
when running 'configure'. We have no current plans to remove these
|
||
macros.
|
||
|
||
|
||
* Major changes in Autoconf 2.61a (2006-12-11)
|
||
|
||
** AC_FUNC_FSEEKO was broken in 2.61; it didn't make fseeko and ftello visible
|
||
on many platforms. This has been fixed.
|
||
|
||
** AC_FUNC_SETVBUF_REVERSED is now obsolete. It is still defined for backward
|
||
compatibility but it does nothing. The macro was already
|
||
obsolescent, as the last systems to have the problem were those
|
||
based on SVR2, which became obsolete in 1987. The macro had bugs
|
||
on some modern systems and could no longer be maintained reliably
|
||
due to lack of ancient systems to test it on.
|
||
|
||
** config.status now uses awk instead of sed for most substitutions, for speed.
|
||
|
||
- As a side effect multi-line values of substituted variables no
|
||
longer have a small limit in total size, though for portability
|
||
each line should not exceed the POSIX length limit for text lines.
|
||
|
||
- It is now documented that Makefile.in should not contain
|
||
overlapping variable occurrences, e.g., @VAR1@VAR2@.
|
||
Autoconf's behavior was always iffy in such cases, and the
|
||
awk implementation has changed the behavior.
|
||
|
||
** Many uses of 'echo' have been rewritten so that Autoconf-generated
|
||
scripts have fewer problems with strings or file names containing
|
||
embedded special characters such as backslash or leading "-". This
|
||
was implemented by using 'printf '%s\n' "$foo"' instead of 'echo
|
||
"$foo"' when printf works. Due to the implementation technique
|
||
used, Autoconf-generated scripts now run considerably more slowly
|
||
on ancient implementations lacking printf. However, this should
|
||
not be a problem, since Autoconf-generated scripts in practice
|
||
invariably find a more-modern shell these days.
|
||
|
||
|
||
* Major changes in Autoconf 2.61 (2006-11-17)
|
||
|
||
** New macros AC_C_FLEXIBLE_ARRAY_MEMBER, AC_C_VARARRAYS.
|
||
|
||
** AC_ARG_ENABLE and AC_ARG_WITH now allow '.' in feature and package names.
|
||
|
||
|
||
* Major changes in Autoconf 2.60b (2006-10-22)
|
||
|
||
** BIN_SH
|
||
Autoconf-generated shell scripts no longer export BIN_SH, due to
|
||
configuration hassles with this. Installers who need BIN_SH in
|
||
their environment should set it before invoking 'configure' and
|
||
'make'. As far as we know, this affects only Unixware installations.
|
||
|
||
** Obsolescent macros
|
||
The documentation now says that the following macros are obsolescent,
|
||
as they are superseded by Gnulib:
|
||
|
||
AC_FUNC_FNMATCH AC_FUNC_FNMATCH_GNU AC_FUNC_GETLOADAVG
|
||
AC_REPLACE_FNMATCH
|
||
|
||
New programs should use the Gnulib counterparts of these macros.
|
||
We have no current plans to remove them from Autoconf.
|
||
|
||
** AC_COMPUTE_INT no longer caches or reports results.
|
||
|
||
** AC_CHECK_DECL now also works with aggregate objects.
|
||
|
||
** AC_USE_SYSTEM_EXTENSIONS now defines _TANDEM_SOURCE for NonStop platforms.
|
||
|
||
** GNU M4 1.4.7 or later is now recommended.
|
||
|
||
** m4_mkstemp
|
||
New M4sugar macro, which is more secure than the POSIX M4 maketemp.
|
||
|
||
** m4_maketemp
|
||
Now an alias for m4_mkstemp.
|
||
|
||
* Major changes in Autoconf 2.60a (2006-08-25)
|
||
|
||
** GNU M4 1.4.6 or later is now recommended.
|
||
|
||
** The check for C99 now tests for varargs macros, as documented.
|
||
It also tests that the preprocessor supports 64-bit integers.
|
||
|
||
** Autoconf now uses constructs like "#ifdef HAVE_STDLIB_H" rather than
|
||
"#if HAVE_STDLIB_H", so that it now works with "gcc -Wundef -Werror".
|
||
|
||
** The functionality of the undocumented _AC_COMPUTE_INT is now provided
|
||
by a public and documented macro, AC_COMPUTE_INT. The parameters to the
|
||
two macros are different, so autoupdate will not change the old private name
|
||
to the new one. _AC_COMPUTE_INT may be removed in a future release.
|
||
|
||
** AC_TYPE_LONG_LONG_INT and AC_TYPE_UNSIGNED_LONG_LONG_INT now require
|
||
that long long types be at least 64 bits wide, as C99 and tradition
|
||
requires. Formerly, they accepted implementations of any width.
|
||
|
||
|
||
* Major changes in Autoconf 2.60
|
||
|
||
Released 2006-06-23, by Ralf Wildenhues.
|
||
|
||
** Autoconf no longer depends on whether m4wrap is FIFO (as Posix requires)
|
||
or LIFO (as in GNU M4 1.4.x). GNU M4 2.0 is expected to conform to Posix
|
||
here, so m4wrap/m4_wrap users should no longer depend on LIFO behavior.
|
||
|
||
** Provide a way to turn off warnings about the changed directory variables.
|
||
|
||
* Major changes in Autoconf 2.59d
|
||
|
||
Released 2006-06-05, by Ralf Wildenhues.
|
||
|
||
** GNU make now recommended for VPATH builds
|
||
INSTALL now suggests VPATH builds (e.g., "sh ../srcdir/configure")
|
||
only if you use GNU make. In practice, other 'make' implementations
|
||
have too many subtle incompatibilities in their support for VPATH.
|
||
Many packages (including Autoconf itself) are portable to other
|
||
'make' implementations, but some packages are not, and recommending
|
||
GNU make keeps the installation instructions simpler.
|
||
|
||
** Even more safety checks for the new Directory variables:
|
||
Warn about suspicious '${datarootdir}' found in config files output.
|
||
|
||
** AC_TRY_COMMAND, AC_TRY_EVAL, ac_config_guess, ac_config_sub, ac_configure
|
||
These never-documented macros and variables have been marked with
|
||
comments saying that they may be removed in a future release,
|
||
because their use can lead to unintended code being executed.
|
||
If you need functionality that only these macros or variables
|
||
currently supply, please write bug-autoconf@gnu.org.
|
||
|
||
** AC_SUBST, AC_DEFINE
|
||
Literal arguments to these are passed to m4_pattern_allow now.
|
||
|
||
** AC_PROG_CC_STDC
|
||
Passing 'ac_cv_prog_cc_stdc=no' to 'configure' now sets ac_cv_prog_cc_c99
|
||
and ac_cv_prog_cc_c89 to 'no' as well, for backward compatibility with
|
||
obsolete K&R tests in the Automake test suite.
|
||
|
||
** AC_PROG_CXX_C_O
|
||
New macro.
|
||
|
||
** AC_PROG_MKDIR_P
|
||
New macro.
|
||
|
||
** AS_MKDIR_P
|
||
Now more robust with special characters in file names, or when
|
||
multiple processes create the same directory at the same time.
|
||
|
||
** Obsolescent macros
|
||
The documentation now says that the following macros are obsolescent:
|
||
they test for problems that are so old that they are no longer of
|
||
practical importance on current systems.
|
||
|
||
AC_C_BACKSLASH_A AC_FUNC_MEMCMP AC_HEADER_DIRENT
|
||
AC_C_CONST AC_FUNC_SELECT_ARGTYPES AC_HEADER_STAT
|
||
AC_C_PROTOTYPES AC_FUNC_SETPGRP AC_HEADER_STDC
|
||
AC_C_STRINGIZE AC_FUNC_SETVBUF_REVERSED AC_HEADER_SYS_WAIT
|
||
AC_C_VOLATILE AC_FUNC_STAT AC_HEADER_TIME
|
||
AC_FUNC_CLOSEDIR_VOID AC_FUNC_STRFTIME AC_ISC_POSIX
|
||
AC_FUNC_GETPGRP AC_FUNC_UTIME_NULL AC_PROG_GCC_TRADITIONAL
|
||
AC_FUNC_LSTAT AC_FUNC_VPRINTF AC_STRUCT_TM
|
||
|
||
New programs need not use these macros. We have no current plans to
|
||
remove them.
|
||
|
||
** autoreconf
|
||
For compatibility with future Libtool 2.0, autoreconf will invoke
|
||
libtoolize with the option '--ltdl' now, if LT_CONFIG_LTDL_DIR is
|
||
used.
|
||
|
||
* Major changes in Autoconf 2.59c
|
||
|
||
Released 2006-04-12, by Ralf Wildenhues.
|
||
|
||
** The configure command now redirects standard input from /dev/null,
|
||
to help avoid problems with subsidiary commands that might mistakenly
|
||
read standard input. AS_ORIGINAL_STDIN_FD points to the original
|
||
standard input before this redirection, if you really want configure to
|
||
read from standard input.
|
||
|
||
** Directory variables adjusted to recent changes in the GNU Coding Standards.
|
||
The following directory variables are new:
|
||
|
||
datarootdir read-only architecture-independent data root [PREFIX/share]
|
||
localedir locale-specific message catalogs [DATAROOTDIR/locale]
|
||
docdir documentation root [DATAROOTDIR/doc/PACKAGE]
|
||
htmldir html documentation [DOCDIR]
|
||
dvidir dvi documentation [DOCDIR]
|
||
pdfdir pdf documentation [DOCDIR]
|
||
psdir ps documentation [DOCDIR]
|
||
|
||
The following variables have new default values:
|
||
|
||
datadir read-only architecture-independent data [DATAROOTDIR]
|
||
infodir info documentation [DATAROOTDIR/info]
|
||
mandir man documentation [DATAROOTDIR/man]
|
||
|
||
This means that if you use any of '@datadir@', '@infodir@', or
|
||
'@mandir@' in a file, you will have to ensure '${datarootdir}' is
|
||
defined in this file. As a temporary measure, if any of those are
|
||
found but no mention of 'datarootdir', the substitutions will be
|
||
replaced with values that do not contain '${datarootdir}', and a
|
||
warning will be issued.
|
||
|
||
** @top_builddir@ is now a dir name: it is always nonempty and doesn't have
|
||
a trailing slash. Similar change will be made to ac_top_builddir in a
|
||
future release; the old style value, which matches (../)*, is (and will
|
||
continue to be) available as ac_top_build_prefix.
|
||
|
||
** AC_C_TYPEOF
|
||
New macro to check for support of 'typeof' syntax a la GNU C.
|
||
|
||
** AC_CHECK_DECLS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_HEADERS_ONCE
|
||
New "once-only" variants of commonly-used macros, to make 'configure'
|
||
smaller and faster in common cases.
|
||
|
||
** AC_FUNC_STRTOLD
|
||
New macro to check for strtold with C99 semantics.
|
||
|
||
** AC_HEADER_ASSERT
|
||
New macro that lets builder disable assertions at 'configure'-time.
|
||
|
||
** AC_PATH_X
|
||
Now checks for X11/Xlib.h and XrmInitialize (X proper) rather than
|
||
X11/Intrinsic.h and XtMalloc (Xt).
|
||
|
||
** AC_PRESERVE_HELP_ORDER
|
||
New macro that causes 'configure' to display help strings for AC_ARG_ENABLE
|
||
and AC_ARG_WITH arguments in one region, in the order defined. The default
|
||
behavior is to group options of each classes separately.
|
||
|
||
** AC_PROG_CC, AC_PROG_CXX
|
||
No longer automatically arrange to declare the 'exit' function of C,
|
||
when a C++ compiler is used. Standard Autoconf macros no longer use
|
||
'exit', so this is no longer an issue for them. If you use C++, and
|
||
want to call 'exit', you'll have to arrange for its declaration
|
||
yourself. But we now suggest you return from 'main' instead.
|
||
|
||
** AC_PROG_CC_C89, AC_PROG_CC_C99
|
||
New macros for ISO C99 support. AC_PROG_CC_C89 and AC_PROG_CC_C99
|
||
check for ANSI C89 and ISO C99 support respectively.
|
||
|
||
** AC_PROG_CC_STDC
|
||
Has been unobsoleted, and will check if the compiler supports ISO
|
||
C99, falling back to ANSI C89 if not. ac_cv_prog_cc_stdc is
|
||
retained for backwards compatibility, assuming the value of
|
||
ac_cv_prog_cc_c99 or ac_cv_prog_cc_c89 (whichever is valid, in
|
||
that order).
|
||
|
||
** AC_STRUCT_DIRENT_D_INO, AC_STRUCT_DIRENT_D_TYPE
|
||
New macros for checking commonly-used members of struct dirent.
|
||
|
||
** AC_SUBST
|
||
The substituted value can now contain newlines.
|
||
|
||
** AC_SUBST_FILE
|
||
The substitution now occurs only when @variable@ is on a line by itself,
|
||
optionally surrounded by spaces and tabs. The whole line is replaced.
|
||
|
||
** AC_TYPE_LONG_DOUBLE, AC_TYPE_LONG_DOUBLE_WIDER
|
||
New macros to check for long double, and whether it is wider than double.
|
||
The old macro AC_C_TYPE_LONG_DOUBLE has been marked as obsolete;
|
||
applications should switch to the new macro.
|
||
|
||
** AC_TYPE_INT8_T, AC_TYPE_INT16_T, AC_TYPE_INT32_T, AC_TYPE_INT64_T,
|
||
AC_TYPE_INTMAX_T, AC_TYPE_INTPTR_T, AC_TYPE_LONG_LONG_INT, AC_TYPE_SSIZE_T,
|
||
AC_TYPE_UINT8_T, AC_TYPE_UINT16_T, AC_TYPE_UINT32_T, AC_TYPE_UINT64_T,
|
||
AC_TYPE_UINTMAX_T, AC_TYPE_UINTPTR_T, AC_TYPE_UNSIGNED_LONG_LONG_INT
|
||
New macros to check for C99 and POSIX types.
|
||
|
||
** AC_USE_SYSTEM_EXTENSIONS
|
||
New macro to enable extensions to Posix.
|
||
|
||
** AH_HEADER
|
||
New macro which is defined to the name of the first declared config header
|
||
or undefined if no config headers have been declared yet.
|
||
|
||
** AS_HELP_STRING
|
||
The macro correctly handles quadrigraphs now.
|
||
|
||
** AS_BOURNE_COMPATIBLE, AS_SHELL_SANITIZE, AS_CASE
|
||
These macros are new or published now.
|
||
|
||
** AT_COPYRIGHT
|
||
New macro for copyright notices in testsuite files.
|
||
|
||
** ALLOCA, LIBOBJS, LTLIBOBJS
|
||
Object names added to these variables are now prefixed with '${LIBOBJDIR}',
|
||
as in '${LIBOBJDIR}alloca.o'. LIBOBJDIR is meant to be defined from
|
||
'Makefile.in' in case the object files lie in a different directory.
|
||
The LIBOBJDIR feature is experimental.
|
||
|
||
** autoreconf
|
||
Supports --no-recursive now.
|
||
|
||
** New macros to support Erlang/OTP.
|
||
New macros for configuring paths to Erlang tools and libraries:
|
||
AC_ERLANG_PATH_ERLC, AC_ERLANG_NEED_ERLC, AC_ERLANG_PATH_ERL,
|
||
AC_ERLANG_NEED_ERL, AC_ERLANG_CHECK_LIB, AC_ERLANG_SUBST_ROOT_DIR,
|
||
AC_ERLANG_SUBST_LIB_DIR.
|
||
|
||
New macros for configuring installation of Erlang libraries:
|
||
AC_ERLANG_SUBST_INSTALL_LIB_DIR, AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR.
|
||
|
||
** The manual now mentions Gnulib more prominently.
|
||
|
||
** New macros to support Objective C.
|
||
AC_PROG_OBJC, AC_PROG_OBJCPP.
|
||
|
||
* Major changes in Autoconf 2.59b
|
||
|
||
Released 2004-08-20, by Paul Eggert.
|
||
|
||
** AC_CHECK_ALIGNOF
|
||
New macro that computes the default alignment of a type.
|
||
|
||
** AC_CHECK_TOOL, AC_PATH_TOOL, AC_CHECK_TOOLS
|
||
When cross-compiling, these macros will give a warning if the tool
|
||
is not prefixed. In the future, unprefixed cross tools will not
|
||
be detected; please consult the info documentation for information
|
||
about the reason of this change.
|
||
|
||
** AC_CHECK_TARGET_TOOL, AC_PATH_TARGET_TOOL, AC_CHECK_TARGET_TOOLS
|
||
New macros that detect programs whose name is prefixed with the
|
||
target type, if the build type and target type are different.
|
||
|
||
** AC_REQUIRE_AUX_FILE
|
||
New trace macro that declares expected auxiliary files.
|
||
|
||
** AC_PROG_GREP
|
||
New macro that tests for a grep program that accepts as a long a line
|
||
as possible.
|
||
|
||
** AC_PROG_EGREP, AC_PROG_FGREP
|
||
These macros now require AC_PROG_GREP, and try EGREP="$GREP -E" and
|
||
FGREP="$GREP -F" respectively if possible, or else run a path search for
|
||
a program that accepts as long a line as possible.
|
||
|
||
** AC_PROG_SED
|
||
New macro that tests for a sed program that truncates as few characters
|
||
as possible.
|
||
|
||
* Major changes in Autoconf 2.59
|
||
|
||
Released 2003-11-04, by Akim Demaille
|
||
|
||
** ac_abs_builddir etc.
|
||
Absolute file names were actually relative in 2.58.
|
||
|
||
* Major changes in Autoconf 2.58
|
||
|
||
Released 2003-11-04, by Akim Demaille
|
||
|
||
** core.*
|
||
core.* files are no longer removed, as they may be valid user files.
|
||
|
||
** autoreconf and auxiliary directory
|
||
Autoreconf creates the auxiliary directory if needed. This is
|
||
especially useful for initial "bootstrapping" of fresh CVS checkouts.
|
||
|
||
** AC_CONFIG_MACRO_DIR
|
||
Use this macro to declare the directory for local M4 macros for aclocal.
|
||
|
||
** AC_LIBOBJS
|
||
No longer includes twice the same file in LIBOBJS if invoked
|
||
multiple times.
|
||
|
||
** AC_CONFIG_COMMANDS
|
||
The directory for its first argument is automatically created. For
|
||
instance, with
|
||
|
||
AC_CONFIG_COMMANDS([src/modules.hh], [...])
|
||
|
||
$top_builddir/src/ is created if needed.
|
||
|
||
** Autotest and local.at
|
||
The optional file local.at is always included in Autotest test suites.
|
||
|
||
** Warnings
|
||
The warnings are always issued, including with cached runs.
|
||
This became a significant problem since aclocal and automake can
|
||
run autoconf behind the scene.
|
||
|
||
** autoheader warnings
|
||
The warnings of autoheader can be turned off, using --warning.
|
||
For instance, -Wno-obsolete disables the complaints about acconfig.h
|
||
and other deprecated constructs.
|
||
|
||
** New macros
|
||
AC_C_RESTRICT, AC_INCLUDES_DEFAULT, AC_LANG_ASSERT, AC_LANG_WERROR,
|
||
AS_SET_CATFILE.
|
||
|
||
** AC_DECL_SYS_SIGLIST
|
||
Works again.
|
||
|
||
** AC_FUNC_MKTIME
|
||
Now checks that mktime is the inverse of localtime.
|
||
|
||
** Improve DJGPP portability
|
||
The Autoconf tools and configure behave better under DJGPP.
|
||
|
||
** Present But Cannot Be Compiled
|
||
New FAQ section dedicated to the mystic
|
||
|
||
configure: WARNING: pi.h: present but cannot be compiled
|
||
configure: WARNING: pi.h: check for missing prerequisite headers?
|
||
configure: WARNING: pi.h: proceeding with the preprocessor's result
|
||
messages.
|
||
|
||
** Concurrent executions of autom4te
|
||
autom4te now locks its internal files, which enables concurrent
|
||
executions of autom4te, likely to happen if automake, autoconf,
|
||
autoheader etc. are run simultaneously.
|
||
|
||
** Libtool
|
||
Use of Libtool 1.5 and higher is encouraged. Compatibility with
|
||
Libtool pre-1.4 is not checked.
|
||
|
||
** Autotest
|
||
Testsuites no longer rerun failed tests in verbose mode; instead,
|
||
failures are logged while the test is run.
|
||
|
||
In addition, expected failures can be marked as such.
|
||
|
||
* Major changes in Autoconf 2.57
|
||
|
||
Released 2002-12-03 by Paul Eggert.
|
||
|
||
Bug fixes for problems with AIX linker, with freestanding C compilers,
|
||
with GNU M4 limitations, and with obsolete copies of GNU documents.
|
||
|
||
The Free Documentation License has been upgraded from 1.1 to 1.2.
|
||
|
||
* Major changes in Autoconf 2.56
|
||
|
||
Released 2002-11-15 by Akim Demaille.
|
||
|
||
One packaging problem fixed (config/install-sh was not executable).
|
||
|
||
* Major changes in Autoconf 2.55
|
||
|
||
Released 2002-11-14 by Akim Demaille.
|
||
|
||
Release tips:
|
||
|
||
Have your configure.ac checked by autoscan ("autoscan").
|
||
Try the warning options ("autoreconf -fv -Wall").
|
||
|
||
** Documentation
|
||
|
||
- AC_CHECK_HEADER, AC_CHECK_HEADERS
|
||
More information on proper use.
|
||
|
||
- Writing Test Programs
|
||
|
||
This sections explains how to write good test sources to use with
|
||
AC_COMPILE_IFELSE etc. It documents AC_LANG_PROGRAM and so forth.
|
||
|
||
- AC_FOO_IFELSE vs. AC_TRY_FOO
|
||
|
||
Explains why Autoconf moves from AC_TRY_COMPILE etc. to
|
||
AC_COMPILE_IFELSE and AC_LANG_PROGRAM etc.
|
||
|
||
** autoreconf
|
||
|
||
- Is more robust to different Gettext installations.
|
||
|
||
- Produces messages (when --verbose) to be understood by Emacs'
|
||
compile mode.
|
||
|
||
- Supports -W/--warnings.
|
||
|
||
- -m/--make
|
||
Once the GNU Build System reinstalled, run './config.status
|
||
--recheck && ./config.status && make' if possible.
|
||
|
||
** autom4te
|
||
|
||
- Supports --cache, and --no-cache.
|
||
|
||
- ~/.autom4te.cfg makes it possible to disable the caching mechanism
|
||
(autom4te.cache). See 'Customizing autom4te' in the documentation.
|
||
|
||
** config.status
|
||
Supports --quiet.
|
||
|
||
** Obsolete options
|
||
|
||
Support for the obsoleted options -m, --macrodir, -l, --localdir is
|
||
dropped in favor of the safer --include/--prepend-include scheme.
|
||
|
||
** Macros
|
||
|
||
- New macros
|
||
AC_COMPILER_IFELSE, AC_FUNC_MBRTOWC, AC_HEADER_STDBOOL,
|
||
AC_LANG_CONFTEST, AC_LANG_SOURCE, AC_LANG_PROGRAM, AC_LANG_CALL,
|
||
AC_LANG_FUNC_TRY_LINK, AC_MSG_FAILURE, AC_PREPROC_IFELSE.
|
||
|
||
- Obsoleted
|
||
Obsoleted macros are kept for Autoconf backward compatibility, but
|
||
should be avoided in configure.ac. Running autoupdate is advised.
|
||
AC_DECL_SYS_SIGLIST.
|
||
|
||
- AC_DEFINE/AC_DEFINE_UNQUOTED
|
||
|
||
We have to stop using the old compatibility scheme --that tried to
|
||
avoid useless backslashes-- because Libtool 1.4.3 contains a
|
||
|
||
AC_DEFINE([error_t], [int],
|
||
[Define to a type to use for \`error_t' if it is not
|
||
otherwise available.])
|
||
|
||
We have to quote the single quotes and backslashes with \. The old
|
||
compatibility scheme saw that ` was backslashed, and therefore did
|
||
not quote the single quote... Failure. Hence, Autoconf 2.54 is not
|
||
compatible with Libtool. Autoconf 2.55 is, but in some cases might
|
||
produce more \ than wanted.
|
||
|
||
Please, note that in the future the same problem will happen with
|
||
AC_MSG_*: use 'autoreconf -f -Wall'.
|
||
|
||
** Bug Fixes
|
||
|
||
- Portability of the Autoconf package to Solaris.
|
||
|
||
- Spurious warnings caused by config.status.
|
||
This bug is benign, but painful: on some systems (typically
|
||
FreeBSD), warnings such as:
|
||
|
||
config.status: creating Makefile
|
||
mv: Makefile: set owner/group (was: 1357/0): Operation not permitted
|
||
|
||
could be issued. This is fixed.
|
||
|
||
- Parallel Builds
|
||
Simultaneous executions of config.status are possible again.
|
||
|
||
- Precious variables accumulation
|
||
|
||
config.status could stack several copies of the precious variables
|
||
assignments.
|
||
|
||
|
||
** Plans for later versions
|
||
|
||
- ./configure <host>
|
||
|
||
The compatibility hooks with the old scheme will be completely
|
||
removed. Please, advice/use '--build', '--host', and '--target'
|
||
only.
|
||
|
||
- AC_CHECK_HEADER, AC_CHECK_HEADERS
|
||
|
||
The tests will be stricter, please make sure your invocations are
|
||
valid.
|
||
|
||
- shell functions
|
||
|
||
Shell functions will gradually be introduced, probably starting with
|
||
Autotest. If you know machines which are in use that you suspect
|
||
*not* to support shell functions, please run the test suite of
|
||
Autoconf 2.55 on it, and report the results to
|
||
bug-autoconf@gnu.org.
|
||
|
||
- AC_MSG_*
|
||
|
||
Special characters in AC_MSG_* need not be quoted. Currently,
|
||
Autoconf has heuristics to decide when a string is escaped, or has
|
||
to be escaped. This scheme is fragile, and will be removed; the
|
||
only risk is uglified messages. Please, run 'autoreconf -f -Wall'
|
||
to find occurrences that will be affected.
|
||
|
||
* Major changes in Autoconf 2.54
|
||
|
||
Released 2002-09-13 by Akim Demaille.
|
||
|
||
** Executables
|
||
|
||
- autoreconf no longer changes the version of the gettext/po/intl
|
||
support files. It now adds the files the correspond to the
|
||
AM_GNU_GETTEXT_VERSION declared in configure.ac.
|
||
|
||
Warning: It now relies on the 'autopoint' program, which is part
|
||
of GNU gettext 0.11.4 and newer.
|
||
|
||
Please note that you need to have a GNU gettext version that
|
||
corresponds at least to the AM_GNU_GETTEXT_VERSION declared
|
||
in configure.ac. You can upgrade to newer GNU gettext versions,
|
||
though, without needing to change configure.ac.
|
||
|
||
- The -I DIR or --include=DIR option now appends DIR to the include path
|
||
instead of prepending; this is for consistency with other GNU tools.
|
||
The new -B DIR or --prepend-include=DIR option has the old behavior.
|
||
|
||
** Macros
|
||
|
||
- AC_OUTPUT
|
||
Now handles all the gory details about LIBOBJS and LTLIBOBJS.
|
||
Please, remove lines such as
|
||
|
||
# This is necessary so that .o files in LIBOBJS are also
|
||
# built via the ANSI2KNR-filtering rules.
|
||
LIBOBJS=`echo $LIBOBJS|sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
|
||
|
||
and read the 'AC_LIBOBJ vs LIBOBJS' section. Do not define U in
|
||
your Makefiles either.
|
||
|
||
- AC_CONFIG_LINKS now makes copies if it can't make links.
|
||
|
||
- AC_FUNC_FNMATCH now tests only for POSIX compatibility, reverting to
|
||
Autoconf 2.13 behavior. The new macro AC_FUNC_FNMATCH_GNU also
|
||
tests for GNU extensions to fnmatch, and replaces fnmatch if needed.
|
||
|
||
- AC_FUNC_SETVBUF_REVERSED no longer fails when cross-compiling.
|
||
|
||
- AC_PROG_CC_STDC is integrated into AC_PROG_CC.
|
||
|
||
- AC_PROG_F77 default search no longer includes cf77 and cfg77.
|
||
|
||
- New macros
|
||
|
||
AC_C_BACKSLASH_A, AC_CONFIG_LIBOBJ_DIR, AC_GNU_SOURCE,
|
||
AC_PROG_EGREP, AC_PROG_FGREP, AC_REPLACE_FNMATCH,
|
||
AC_FUNC_FNMATCH_GNU, AC_FUNC_REALLOC, AC_TYPE_MBSTATE_T.
|
||
|
||
- AC_FUNC_GETLOADAVG
|
||
looks for getloadavg.c in the CONFIG_LIBOBJ_DIR.
|
||
|
||
- AC_FUNC_MALLOC
|
||
Now defines HAVE_MALLOC to 0 if 'malloc' does not work, and asks
|
||
for an AC_LIBOBJ replacement.
|
||
|
||
** Bug fixes
|
||
|
||
- Spurious complaints from 'm4_bmatch' about invalid regular
|
||
expressions are suppressed.
|
||
|
||
- Empty top_builddirs are properly handled.
|
||
|
||
- AC_CHECK_MEMBER works correctly when the member is an aggregate.
|
||
|
||
- AC_PATH_PROG
|
||
Now colon in the optional path arguments are properly handled.
|
||
|
||
** Improved portability
|
||
|
||
- Both Autoconf the package, and the scripts it produces, should run
|
||
more reliably with Zsh. Bear in mind it is the default Bourne shell
|
||
on Darwin.
|
||
|
||
- Autoconf and the scripts it produces no longer assume the existence of
|
||
the obsolescent commands egrep and fgrep.
|
||
|
||
** Documentation
|
||
|
||
- Limitations of Make
|
||
More of them.
|
||
|
||
- GNATS
|
||
The GNATS base moved to
|
||
https://bugs.gnu.org/cgi-bin/gnatsweb.pl?database=autoconf
|
||
(It is no longer available, though.)
|
||
|
||
** Misc.
|
||
|
||
- config.log
|
||
Now contains the list of output variables and files (AC_SUBST,
|
||
AC_SUBST_FILES).
|
||
|
||
* Major changes in Autoconf 2.53
|
||
|
||
Released 2002-03-08 by Akim Demaille.
|
||
|
||
** Requirements
|
||
|
||
Perl 5.005_03 or later is required: autom4te is written in Perl and is
|
||
needed by autoconf. autoheader, autoreconf, ifnames, and autoscan are
|
||
rewritten in Perl.
|
||
|
||
** Documentation
|
||
|
||
- AC_INIT
|
||
Argument requirements, output variables, defined macros.
|
||
- M4sugar, M4sh, Autotest
|
||
First sketch.
|
||
- Double quoting macros
|
||
AC_TRY_CPP, AC_TRY_COMPILE, AC_TRY_LINK and AC_TRY_RUN.
|
||
- Licensing
|
||
The Autoconf manual is now distributed under the terms of the GNU FDL.
|
||
- Section 'Hosts and Cross-Compilation'
|
||
Explains the rationale for the 2.5x changes in the cross-compilation
|
||
chain, and in the relationships between build, host, and target
|
||
types.
|
||
Emphasizes that 'cross-compilation' == '--host is given'.
|
||
If you are working on compilers etc., be sure to read this section.
|
||
- Section 'AC_LIBOBJ vs. LIBOBJS'
|
||
Explains why assigning LIBOBJS directly is now an error.
|
||
Details how to update the code.
|
||
|
||
** configure
|
||
|
||
- $LINENO
|
||
Now used instead of hard coded line numbers.
|
||
This eases the comparison of 'configure's, and diminishes the
|
||
pressure over control version archives.
|
||
Automatic replacement for shells that don't support this feature.
|
||
- New output variables
|
||
@builddir@, @top_builddir@, @abs_srcdir@, @abs_top_srcdir@, @abs_builddir@,
|
||
@abs_top_builddir@.
|
||
|
||
** Emacs
|
||
|
||
Autoconf and Autotest modes are provided.
|
||
|
||
** Executables
|
||
|
||
- autom4te
|
||
New, used by the Autoconf suite to cache and speed up most processing.
|
||
- --force, -f
|
||
Supported by autom4te, autoconf and autoheader.
|
||
- --include, -I
|
||
Replaces --autoconf-dir and --localdir in autoconf, autoheader,
|
||
autoupdate, and autoreconf.
|
||
- autoreconf
|
||
No longer passes --cygnus, --foreign, --gnits, --gnu, --include-deps:
|
||
automake options are to be given via AUTOMAKE_OPTIONS.
|
||
- autoreconf
|
||
Runs gettextize and libtoolize when appropriate.
|
||
- autoreconf
|
||
--m4dir is no longer supported.
|
||
- autoreconf
|
||
Now runs only in the specified directories, defaulting to '.',
|
||
but understands AC_CONFIG_SUBDIRS for dependent directories.
|
||
Before, it used to run on all the 'configure.ac' found in the
|
||
current tree.
|
||
Independent packages are properly updated.
|
||
|
||
** Bug fixes
|
||
|
||
- The top level $prefix is propagated to the AC_CONFIG_SUBDIRS configures.
|
||
- AC_TRY_RUN
|
||
Under the user pressure, $? is finally available. Probably a mistake.
|
||
- AC_F77_LIBRARY_LDFLAGS now supports the HP/UX f90 compiler.
|
||
- Precious variables accumulation
|
||
config.status could stack several copies of the precious variables
|
||
assignments.
|
||
- AC_PATH_PROG and family.
|
||
Works properly when given a literal path.
|
||
- AC_FUNC_SETPGRP
|
||
Somewhere since 2.13, the result had been reversed.
|
||
|
||
** C Macros
|
||
|
||
- AC_C_BIGENDIAN supports the cross-compiling case.
|
||
- AC_C_BIGENDIAN accepts ACTION-IF-TRUE, ACTION-IF-FALSE, and
|
||
ACTION-IF-UNKNOWN arguments. All are optional, and the default
|
||
for ACTION-IF-TRUE is to define WORDS_BIGENDIAN like AC_C_BIGENDIAN
|
||
always did.
|
||
- AC_C_LONG_DOUBLE now succeeds only if 'long double' has more range or
|
||
precision than 'double'.
|
||
|
||
** Generic macros
|
||
|
||
- AC_INIT
|
||
It now defines the preprocessor symbols PACKAGE_NAME,
|
||
PACKAGE_TARNAME, PACKAGE_VERSION, PACKAGE_STRING, and
|
||
PACKAGE_BUGREPORT.
|
||
|
||
- AC_INIT
|
||
Admits a fourth optional parameter: the tar name.
|
||
|
||
- AC_CONFIG_COMMANDS, HEADERS, FILES, LINKS.
|
||
Provide the user with srcdir, ac_srcdir, ac_top_srcdir, ac_builddir,
|
||
ac_top_builddir, ac_abs_srcdir, ac_abs_top_srcdir, ac_abs_builddir,
|
||
ac_abs_top_builddir.
|
||
|
||
- AC_CONFIG_COMMANDS, HEADERS, FILES, LINKS and AC_OUTPUT.
|
||
Are much less expensive when using long lists of files.
|
||
|
||
- AC_PREFIX_PROGRAM
|
||
Works with shell variables, and non alphanumeric names.
|
||
|
||
** Library macros
|
||
|
||
- AC_FUNC_STRERROR_R now sets STRERROR_R_CHAR_P, not HAVE_WORKING_STRERROR_R,
|
||
because POSIX 1003.1-200x draft 7 says strerror_r returns int, not char *.
|
||
|
||
- AC_FUNC_STRTOD substitutes POW_LIB.
|
||
|
||
- AC_FUNC_STRNLEN
|
||
New.
|
||
|
||
* Major changes in Autoconf 2.52
|
||
|
||
Released 2001-07-18 by Akim Demaille.
|
||
|
||
** Documentation
|
||
- AC_ARG_VAR
|
||
- Quadrigraphs
|
||
This feature was present in autoconf 2.50 but was not documented.
|
||
For example, '@<:@' is translated to '[' just before output. This
|
||
is useful when writing strings that contain unbalanced quotes, or
|
||
other hard-to-quote constructs.
|
||
- m4_pattern_forbid, m4_pattern_allow
|
||
- Tips for upgrading from 2.13.
|
||
- Using autoscan to maintain a configure.ac.
|
||
|
||
** Default includes
|
||
- Now include stdint.h.
|
||
- sys/types.h and sys/stat.h are guarded.
|
||
- strings.h is included if available, and not conflicting with string.h.
|
||
|
||
** Bug fixes
|
||
- The test suite is more robust and presents less false failures.
|
||
- Invocation of GNU M4 now robust to POSIXLY_CORRECT.
|
||
- configure accepts --prefix='' again.
|
||
- AC_CHECK_LIB works properly when its first argument is not a
|
||
literal.
|
||
- HAVE_INTTYPES_H is defined only if not conflicting with sys/types.h.
|
||
- build_, host_, and target_alias are AC_SUBST as in 2.13.
|
||
- AC_ARG_VAR properly propagates precious variables inherited from the
|
||
environment to ./config.status.
|
||
- Using --program-suffix/--program-prefix is portable.
|
||
- Failures to detect the default compiler's output extension are less
|
||
likely.
|
||
- 'config.status foo' works properly when 'foo' depends on variables
|
||
set in an AC_CONFIG_THING INIT-CMD.
|
||
- autoheader is more robust to broken input.
|
||
- Fixed Fortran name-mangling and link tests on a number of systems,
|
||
e.g. NetBSD; see AC_F77_DUMMY_MAIN, below.
|
||
|
||
** Generic macros
|
||
- AC_CHECK_HEADER and AC_CHECK_HEADERS support a fourth argument to
|
||
specify pre-includes. In this case, the headers are compiled with
|
||
cc, not merely preprocessed by cpp. Therefore it is the _usability_
|
||
of a header which is checked for, not just its availability.
|
||
- AC_ARG_VAR refuses to run configure when precious variables have
|
||
changed.
|
||
- Versions of compilers are dumped in the logs.
|
||
- AC_CHECK_TYPE recognizes use of 'foo_t' as a replacement type.
|
||
|
||
** Specific Macros
|
||
- AC_PATH_XTRA only adds -ldnet to $LIBS if it's needed to link.
|
||
- AC_FUNC_WAIT3 and AC_SYS_RESTARTABLE_SYSCALLS are obsoleted.
|
||
- AM_FUNC_ERROR_AT_LINE, AM_FUNC_FNMATCH, AM_FUNC_MKTIME,
|
||
AM_FUNC_OBSTACK, and AM_FUNC_STRTOD are now activated.
|
||
Be sure to read 'Upgrading from Version 2.13' to understand why
|
||
running 'autoupdate' is needed.
|
||
- AC_F77_DUMMY_MAIN, AC_F77_MAIN: new macros to detect whether
|
||
a main-like routine is required/possible when linking C/C++ with
|
||
Fortran. Users of e.g. AC_F77_WRAPPERS should be aware of these.
|
||
- AC_FUNC_GETPGRP behaves better when cross-compiling.
|
||
|
||
* Major changes in Autoconf 2.51
|
||
There was no release of Autoconf 2.51 since some packagers had used
|
||
this version number without permission to ship intermediary versions
|
||
of 2.50. The version was skipped to avoid confusion.
|
||
|
||
* Major changes in Autoconf 2.50
|
||
|
||
Released 2001-05-21 by Akim Demaille.
|
||
|
||
** 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
|
||
file systems.
|
||
|
||
- 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++.
|
||
|
||
Major changes in Autoconf 2.14:
|
||
There was no release of GNU Autoconf 2.14.
|
||
|
||
Major changes in Autoconf 2.13:
|
||
|
||
Released 1999-05-01 by Ben Elliston.
|
||
|
||
* Support for building on 32-bit Windows systems where the only available C or
|
||
C++ compiler is the Microsoft Visual C++ command line compiler
|
||
('cl'). Additional support for building on 32-bit Windows systems which are
|
||
using the Cygwin or Mingw32 environments.
|
||
* Support for alternative object file and executable file extensions.
|
||
On 32-bit Windows, for example, these are .obj and .exe. These are discovered
|
||
using AC_OBJEXT and AC_EXEEXT, which substitute @OBJEXT@ and
|
||
@EXEEXT@ in the output, respectively.
|
||
* New macros: AC_CACHE_LOAD, AC_CACHE_SAVE, AC_FUNC_SELECT_ARGTYPES,
|
||
AC_VALIDATE_CACHED_SYSTEM_TUPLE, AC_SEARCH_LIBS, AC_TRY_LINK_FUNC,
|
||
AC_C_STRINGIZE, AC_CHECK_FILE(S), AC_PROG_F77 (and friends).
|
||
* AC_DEFINE now has an optional third argument for a description to be
|
||
placed in the config header input file (e.g. config.h.in).
|
||
* The C++ code fragment compiled for the C++ compiler test had to be
|
||
improved to include an explicit return type for main(). This was
|
||
causing failures on systems using recent versions of the EGCS C++
|
||
compiler.
|
||
* Fixed an important bug in AC_CHECK_TYPE that would cause a configure
|
||
script to report that 'sometype_t' was present when only 'type_t'
|
||
was defined.
|
||
* Merge of the FSF version of config.guess and config.sub to modernize
|
||
these scripts. Add support for a few new hosts in config.guess.
|
||
Incorporate latest versions of install-sh, mkinstalldirs and
|
||
texinfo.tex from the FSF.
|
||
* autoreconf is capable of running automake if necessary (and
|
||
applicable).
|
||
* Support for Fortran 77. See the Texinfo documentation for details.
|
||
* Bug fixes and workarounds for quirky bugs in vendor utilities.
|
||
|
||
Major changes in Autoconf 2.12:
|
||
|
||
Released 1996-11-26 by David J. MacKenzie
|
||
|
||
* AC_OUTPUT and AC_CONFIG_HEADERS can create output files by
|
||
concatenating multiple input files separated by colons, like so:
|
||
AC_CONFIG_HEADERS([config.h:conf.pre:config.h.in:conf.post])
|
||
AC_OUTPUT([Makefile:Makefile.in:Makefile.rules])
|
||
The arguments may be shell variables, to compute the lists on the fly.
|
||
* AC_LINK_FILES and AC_CONFIG_SUBDIRS may be called multiple times.
|
||
* New macro AC_OUTPUT_COMMANDS adds more commands to run in config.status.
|
||
* Bug fixes.
|
||
|
||
Major changes in Autoconf 2.11:
|
||
|
||
Released November 18th, 1996, by David J. MacKenzie
|
||
|
||
* AC_PROG_CC and AC_PROG_CXX check whether the compiler works.
|
||
They also default CFLAGS/CXXFLAGS to "-g -O2" for gcc, instead of "-g -O".
|
||
* AC_REPLACE_FUNCS defines HAVE_foo if the system has the function 'foo'.
|
||
* AC_CONFIG_HEADERS expands shell variables in its argument.
|
||
* New macros: AC_FUNC_FNMATCH, AC_FUNC_SETPGRP.
|
||
* The "checking..." messages and the source code for test programs that
|
||
fail are saved in config.log.
|
||
* Another workaround has been added for seds with small command length limits.
|
||
* config.sub and config.guess recognize more system types.
|
||
* Bug fixes.
|
||
|
||
Major changes in Autoconf 2.10:
|
||
|
||
Released May 7th, 1996, by Roland McGrath
|
||
|
||
* Bug fixes.
|
||
* The cache variable names used by 'AC_CHECK_LIB(LIB, FUNC, ...)' has
|
||
changed: now $ac_cv_lib_LIB_FUNC, previously $ac_cv_lib_LIB.
|
||
|
||
Major changes in Autoconf 2.9:
|
||
|
||
Released March 16th, 1996, by Roland McGrath
|
||
|
||
* Bug fixes.
|
||
|
||
Major changes in Autoconf 2.8:
|
||
|
||
Released March 8th, 1996, by Roland McGrath
|
||
|
||
* Bug fixes.
|
||
|
||
Major changes in Autoconf 2.7:
|
||
|
||
Released November 22nd, 1995, by David J. MacKenzie
|
||
|
||
* Bug fixes.
|
||
|
||
Major changes in Autoconf 2.6:
|
||
|
||
Released November 20th, 1995, by David J. MacKenzie
|
||
|
||
* Bug fixes.
|
||
|
||
Major changes in Autoconf 2.5:
|
||
|
||
Released November 17th, 1995, by Roland McGrath
|
||
|
||
* New configure options --bindir, --libdir, --datadir, etc., with
|
||
corresponding output variables.
|
||
* New macro: AC_CACHE_CHECK, to make using the cache easier.
|
||
* config.log contains the command being run as well as any output from it.
|
||
* AC_CHECK_LIB can check for libraries with "." or "/" or "+" in their name.
|
||
* AC_PROG_INSTALL doesn't cache a name for install-sh, for sharing caches.
|
||
* AC_CHECK_PROG, AC_PATH_PROG, AC_CHECK_PROGS, AC_PATH_PROGS, and
|
||
AC_CHECK_TOOL can search a path other than $PATH.
|
||
* AC_CHECK_SIZEOF takes an optional size to use when cross-compiling.
|
||
|
||
Major changes in Autoconf 2.4:
|
||
|
||
Released June 14th, 1995, by David J. MacKenzie
|
||
|
||
* Fix a few bugs found by Emacs testers.
|
||
|
||
Major changes in Autoconf 2.3:
|
||
|
||
Released March 27th, 1995, by David J. MacKenzie
|
||
|
||
* Fix the cleanup trap in several ways.
|
||
* Handle C compilers that are picky about option placement.
|
||
* ifnames gets the version number from the right directory.
|
||
|
||
Major changes in Autoconf 2.2:
|
||
|
||
Released March 8th, 1995, by David J. MacKenzie
|
||
|
||
* The ifnames utility is much faster but requires a "new awk" interpreter.
|
||
* AC_CHECK_LIB and AC_HAVE_LIBRARY check and add the new
|
||
library before existing libs, not after, in case it uses them.
|
||
* New macros: AC_FUNC_GETPGRP, AC_CHECK_TOOL.
|
||
* Lots of bug fixes.
|
||
* Many additions to the TODO file :-)
|
||
|
||
Major changes in Autoconf 2.1:
|
||
|
||
Released November 4th, 1994, by David J. MacKenzie
|
||
|
||
* Fix C++ problems.
|
||
* More explanations in the manual.
|
||
* Fix a spurious failure in the testsuite.
|
||
* Clarify some warning messages.
|
||
* autoreconf by default only rebuilds configure and config.h.in files
|
||
that are older than any of their particular input files; there is a
|
||
--force option to use after installing a new version of Autoconf.
|
||
|
||
Thanks to everybody who's submitted changes and additions to Autoconf!
|
||
I've incorporated many of them, and am still considering others for
|
||
future releases -- but I didn't want to postpone this release indefinitely.
|
||
|
||
Caution: don't indiscriminately rebuild configure scripts with
|
||
Autoconf version 2. Some configure.in files need minor adjustments to
|
||
work with it; the documentation has a chapter on upgrading. A few
|
||
configure.in files, including those for GNU Emacs and the GNU C
|
||
Library, need major changes because they relied on undocumented
|
||
internals of version 1. Future releases of those packages will have
|
||
updated configure.in files.
|
||
|
||
It's best to use GNU M4 1.3 (or later) with Autoconf version 2.
|
||
Autoconf now makes heavy use of M4 diversions, which were implemented
|
||
inefficiently in GNU M4 releases before 1.3.
|
||
|
||
Major changes in Autoconf 2.0:
|
||
|
||
Released October 26th, 1994, by David J. MacKenzie
|
||
|
||
** New copyright terms:
|
||
* There are no restrictions on distribution or use of configure scripts.
|
||
|
||
** Documentation:
|
||
* Autoconf manual is reorganized to make information easier to find
|
||
and has several new indexes.
|
||
* INSTALL is reorganized and clearer and is now made from Texinfo source.
|
||
|
||
** New utilities:
|
||
* autoscan to generate a preliminary configure.in for a package by
|
||
scanning its source code for commonly used nonportable functions,
|
||
programs, and header files.
|
||
* ifnames to list the symbols used in #if and #ifdef directives in a
|
||
source tree.
|
||
* autoupdate to update a configure.in to use the version 2 macro names.
|
||
* autoreconf to recursively remake configure and configuration header
|
||
files in a source tree.
|
||
|
||
** Changed utilities:
|
||
* autoheader can take pieces of acconfig.h to replace config.h.{top,bot}.
|
||
* autoconf and autoheader can look for package-local definition files
|
||
in an alternate directory.
|
||
|
||
** New macros:
|
||
* AC_CACHE_VAL to share results of tests between configure runs.
|
||
* AC_DEFUN to define macros, automatically AC_PROVIDE them, and ensure
|
||
that macros invoked with AC_REQUIRE don't interrupt other macros.
|
||
* AC_CONFIG_AUX_DIR, AC_CANONICAL_SYSTEM, AC_CANONICAL_HOST, AC_LINK_FILES to
|
||
support deciding unguessable features based on the host and target types.
|
||
* AC_CONFIG_SUBDIRS to recursively configure a source tree.
|
||
* AC_ARG_PROGRAM to use the options --program-prefix,
|
||
--program-suffix, and --program-transform-name to change the names
|
||
of programs being installed.
|
||
* AC_PREFIX_DEFAULT to change the default installation prefix.
|
||
* AC_TRY_COMPILE to compile a test program without linking it.
|
||
* AC_CHECK_TYPE to check whether sys/types.h or stdlib.h defines a given type.
|
||
* AC_CHECK_LIB to check for a particular function and library.
|
||
* AC_MSG_CHECKING and AC_MSG_RESULT to print test results, on a single line,
|
||
whether or not the test succeeds. They obsolete AC_CHECKING and AC_VERBOSE.
|
||
* AC_SUBST_FILE to insert one file into another.
|
||
* AC_FUNC_MEMCMP to check whether memcmp is 8-bit clean.
|
||
* AC_FUNC_STRFTIME to find strftime even if it's in -lintl.
|
||
* AC_FUNC_GETMNTENT to find getmntent even if it's in -lsun or -lseq.
|
||
* AC_HEADER_SYS_WAIT to check whether sys/wait.h is POSIX.1 compatible.
|
||
|
||
** Changed macros:
|
||
* Many macros renamed systematically, but old names are accepted for
|
||
backward compatibility.
|
||
* AC_OUTPUT adds the "automatically generated" comment to
|
||
non-Makefiles where it finds @configure_input@ in an input file, to
|
||
support files with various comment syntaxes.
|
||
* AC_OUTPUT does not replace "prefix" and "exec_prefix" in generated
|
||
files when they are not enclosed in @ signs.
|
||
* AC_OUTPUT allows the optional environment variable CONFIG_STATUS to
|
||
override the file name "config.status".
|
||
* AC_OUTPUT takes an optional argument for passing variables from
|
||
configure to config.status.
|
||
* AC_OUTPUT and AC_CONFIG_HEADERS allow you to override the input-file names.
|
||
* AC_OUTPUT automatically substitutes the values of CFLAGS, CXXFLAGS,
|
||
CPPFLAGS, and LDFLAGS from the environment.
|
||
* AC_PROG_CC and AC_PROG_CXX now set CFLAGS and CXXFLAGS, respectively.
|
||
* AC_PROG_INSTALL looks for install-sh or install.sh in the directory
|
||
specified by AC_CONFIG_AUXDIR, or srcdir or srcdir/.. or
|
||
srcdir/../.. by default.
|
||
* AC_DEFINE, AC_DEFINE_UNQUOTED, and AC_SUBST are more robust and smaller.
|
||
* AC_DEFINE no longer prints anything, because of the new result reporting
|
||
mechanism (AC_MSG_CHECKING and AC_MSG_RESULT).
|
||
* AC_VERBOSE pays attention to --quiet/--silent, not --verbose.
|
||
* AC_ARG_ENABLE and AC_ARG_WITH support whitespace in the arguments to
|
||
--enable- and --with- options.
|
||
* AC_CHECK_FUNCS and AC_CHECK_HEADERS take optional shell commands to
|
||
execute on success or failure.
|
||
* Checking for C functions in C++ works.
|
||
|
||
** Removed macros:
|
||
* AC_REMOTE_TAPE and AC_RSH removed; too specific to tar and cpio, and
|
||
better maintained with them.
|
||
* AC_ARG_ARRAY removed because no one was likely using it.
|
||
* AC_HAVE_POUNDBANG replaced with AC_SYS_INTERPRETER, which doesn't
|
||
take arguments, for consistency with all of the other specific checks.
|
||
|
||
** New files:
|
||
* Comes with config.sub and config.guess, and uses them optionally.
|
||
* Uses config.cache to cache test results. An alternate cache file
|
||
can be selected with the --cache-file=FILE option.
|
||
* Uses optional shell scripts $prefix/share/config.site and
|
||
$prefix/etc/config.site to perform site or system specific initializations.
|
||
* configure saves compiler output to ./config.log for debugging.
|
||
* New files autoconf.m4 and autoheader.m4 load the other Autoconf macros.
|
||
* acsite.m4 is the new name for the system-wide aclocal.m4.
|
||
* Has a DejaGnu test suite.
|
||
|
||
Major changes in Autoconf 1.11:
|
||
|
||
* AC_PROG_INSTALL calls install.sh with the -c option.
|
||
* AC_SET_MAKE cleans up after itself.
|
||
* AC_OUTPUT sets prefix and exec_prefix if they weren't set already.
|
||
* AC_OUTPUT prevents shells from looking in PATH for config.status.
|
||
|
||
Plus a few other bug fixes.
|
||
|
||
Major changes in Autoconf 1.10:
|
||
|
||
* autoheader uses config.h.bot if present, analogous to config.h.top.
|
||
* AC_PROG_INSTALL looks for install.sh in srcdir or srcdir/.. and
|
||
never uses cp.
|
||
* AC_PROG_CXX looks for cxx as a C++ compiler.
|
||
|
||
Plus several bugs fixed.
|
||
|
||
Major changes in Autoconf 1.9:
|
||
|
||
* AC_YYTEXT_POINTER replaces AC_DECLARE_YYTEXT.
|
||
* AC_SIZEOF_TYPE generates the cpp symbol name automatically,
|
||
and autoheader generates entries for those names automatically.
|
||
* AC_FIND_X gets the result from xmkmf correctly.
|
||
* AC_FIND_X assumes no X if --without-x was given.
|
||
* AC_FIND_XTRA adds libraries to the variable X_EXTRA_LIBS.
|
||
* AC_PROG_INSTALL finds OSF/1 installbsd.
|
||
|
||
Major changes in Autoconf 1.8:
|
||
|
||
** New macros:
|
||
* New macros AC_LANG_C, AC_LANG_CPLUSPLUS, AC_LANG_SAVE, AC_LANG_RESTORE,
|
||
AC_PROG_CXX, AC_PROG_CXXCPP, AC_REQUIRE_CPP
|
||
for checking both C++ and C features in one configure script.
|
||
* New macros AC_CHECKING, AC_VERBOSE, AC_WARN, AC_ERROR for printing messages.
|
||
* New macros AC_FIND_XTRA, AC_MMAP, AC_SIZEOF_TYPE, AC_PREREQ,
|
||
AC_SET_MAKE, AC_ENABLE.
|
||
|
||
** Changed macros:
|
||
* AC_FIND_X looks for X in more places.
|
||
* AC_PROG_INSTALL defaults to install.sh instead of cp, if it's in srcdir.
|
||
install.sh is distributed with Autoconf.
|
||
* AC_DECLARE_YYTEXT has been removed because it can't work, pending
|
||
a rewrite of quoting in AC_DEFINE.
|
||
* AC_OUTPUT adds its comments in C format when substituting in C files.
|
||
* AC_COMPILE_CHECK protects its ECHO-TEXT argument with double quotes.
|
||
|
||
** New or changed command line options:
|
||
* configure accepts --enable-FEATURE[=ARG] and --disable-FEATURE options.
|
||
* configure accepts --without-PACKAGE, which sets withval=no.
|
||
* configure accepts --x-includes=DIR and --x-libraries=DIR.
|
||
* Giving --with-PACKAGE no argument sets withval=yes instead of withval=1.
|
||
* configure accepts --help, --version, --silent/--quiet, --no-create options.
|
||
* configure accepts and ignores most other Cygnus configure options, and
|
||
warns about unknown options.
|
||
* config.status accepts --help, --version options.
|
||
|
||
** File names and other changes:
|
||
* Relative srcdir values are not made absolute.
|
||
* The values of @prefix@ and @exec_prefix@ and @top_srcdir@ get substituted.
|
||
* Autoconf library files are installed in ${datadir}/autoconf, not ${datadir}.
|
||
* autoheader optionally copies config.h.top to the beginning of config.h.in.
|
||
* The example Makefile dependencies for configure et al. work better.
|
||
* Namespace cleanup: all shell variables used internally by Autoconf
|
||
have names beginning with 'ac_'.
|
||
|
||
More big improvements are in process for future releases, but have not
|
||
yet been (variously) finished, integrated, tested, or documented enough
|
||
to release yet.
|
||
|
||
Major changes in Autoconf 1.7:
|
||
|
||
* New macro AC_OBSOLETE.
|
||
* Bugs in Makefile.in fixed.
|
||
* AC_LONG_FILE_NAMES improved.
|
||
|
||
Major changes in Autoconf 1.6:
|
||
|
||
* New macro AC_LONG_64_BITS.
|
||
* Multiple .h files can be created.
|
||
* AC_FIND_X looks for X files directly if it doesn't find xmkmf.
|
||
* AC_ALLOCA defines C_ALLOCA if using alloca.c.
|
||
* --with-NAME can take a value, e.g., --with-targets=sun4,hp300bsd.
|
||
* Unused --no-create option to configure removed.
|
||
* autoheader doesn't change the timestamp of its output file if
|
||
the file didn't change.
|
||
* All macros that look for libraries now use AC_HAVE_LIBRARY.
|
||
* config.status checks three optional environment variables to
|
||
modify its behavior.
|
||
* The usual bug fixes.
|
||
|
||
Major changes in Autoconf 1.5:
|
||
|
||
* New macros AC_FIND_X, AC_OFF_T, AC_STAT_MACROS_BROKEN, AC_REVISION.
|
||
* autoconf and autoheader scripts have GNU standards conforming
|
||
--version and --help options (they print their message and exit).
|
||
* Many bug fixes.
|
||
|
||
Major changes in Autoconf 1.4:
|
||
|
||
* New macros AC_HAVE_POUNDBANG, AC_TIME_WITH_SYS_TIME, AC_LONG_DOUBLE,
|
||
AC_GETGROUPS_T, AC_DEFINE_UNQUOTED.
|
||
* autoconf and autoheader use the M4 environment variable to determine the
|
||
name of the M4 program to use.
|
||
* The --macrodir option to autoconf and autoheader specifies the directory
|
||
in which acspecific.m4, acgeneral.m4, etc. reside if not the default.
|
||
* autoconf and autoheader can take '-' as their file names, which means to
|
||
read stdin as input.
|
||
* Resulting configure scripts can take a --verbose option which causes them
|
||
to print the results of their tests.
|
||
* AC_DEFINE quotes its second argument in such a way that spaces, magic
|
||
shell characters, etc. will be preserved during various stages of
|
||
expansion done by the shell. If you don't want this, use
|
||
AC_DEFINE_UNQUOTED instead.
|
||
* Much textual processing done with external calls to tr and sed have been
|
||
internalized with builtin M4 'patsubst' and 'translit' calls.
|
||
* AC_OUTPUT doesn't hardwire the file names it outputs. Instead, you can
|
||
set the shell variables 'gen_files' and 'gen_config' to the list of
|
||
file names to output.
|
||
* AC_DECLARE_YYTEXT does an AC_SUBST of 'LEX_OUTPUT_ROOT', which may be
|
||
"lex.yy" or "lexyy", depending on the system.
|
||
* AC_PROGRAMS_CHECK takes an optional third arg. If given, it is used as
|
||
the default value.
|
||
* If AC_ALLOCA chooses alloca.c, it also defines STACK_DIRECTION.
|
||
* AC_CONST works much more reliably on more systems.
|
||
* Many bug fixes.
|
||
|
||
Major changes in Autoconf 1.3:
|
||
|
||
configure no longer requires awk for packages that use a config.h.
|
||
Support handling --with-PACKAGE options.
|
||
New 'autoheader' script to create 'config.h.in' from 'configure.in'.
|
||
Ignore troublesome -lucb and -lPW when searching for alloca.
|
||
Rename --exec_prefix to --exec-prefix for GNU standards conformance.
|
||
Improve detection of STDC library.
|
||
Add AC_HAVE_LIBRARY to check for non-default libraries.
|
||
Function checking should work with future GNU libc releases.
|
||
|
||
Major changes in Autoconf 1.2:
|
||
|
||
The --srcdir option is now usually unnecessary.
|
||
Add a file containing sample comments describing CPP macros.
|
||
A comment in config.status tells which host it was configured on.
|
||
Substituted variable values can now contain commas.
|
||
Fix bugs in various feature checks.
|
||
|
||
Major changes in Autoconf 1.1:
|
||
|
||
Added AC_STRCOLL macro.
|
||
Made AC_GETLOADAVG check for more things.
|
||
AC_OUTPUT argument is now optional.
|
||
Various bug fixes.
|
||
|
||
-----
|
||
|
||
Copyright (C) 1993-1996, 1998-2017, 2020-2024 Free Software Foundation,
|
||
Inc.
|
||
|
||
Copying and distribution of this file, with or without modification,
|
||
are permitted in any medium without royalty provided the copyright
|
||
notice and this notice are preserved. This file is offered as-is,
|
||
without warranty of any kind.
|
||
|
||
Local Variables:
|
||
mode: outline
|
||
End:
|