The main change is that CONFIG_FILES, CONFIG_HEADERS, CONFIG_LINKS,
and CONFIG_COMMANDS are not processed in four separate loops.
Instead, there is one main loop. This alows that the common code
is expanded only once, thus config.status (and configure) is smaller.
The registration mechnism in AC_CONFIG_FILES and cousins also changed;
the AC_LIST_FILES and cousins macros are no longer used.
* lib/autoconf/status.m4 (_AC_OUTPUT_FILES, _AC_OUTPUT_HEADERS,
_AC_OUTPUT_LINKS, _AC_OUTPUT_COMMANDS): Renamed to ...
(_AC_OUTPUT_FILE, _AC_OUTPUT_HEADER, _AC_OUTPUT_LINK,
_AC_OUTPUT_COMMAND): ..., respectively. These macros no longer
contains the initialization, nor the for loop, nor the associated
commands; all these go to ...
(_AC_OUTPUT_MAIN_LOOP): ... this new macro, called from
_AC_OUTPUT_CONFIG_STATUS.
(_AC_CONFIG_SPLIT, _AC_CONFIG_SPLIT_SOURCE_DEST, _AC_CONFIG_SPLIT_FILE_IN):
Nuked; the code was merged into _AC_OUTPUT_MAIN_LOOP.
(_AC_OUTPUT_FILE): The creation of the sed script ...
(AC_OUTPUT): ... and the setup of ac_vpsub goes to ...
(_AC_OUTPUT_FILES_PREPARE): ... a new macro, also called from
_AC_OUTPUT_MAIN_LOOP.
(_AC_CONFIG_FILES, _AC_CONFIG_HEADERS, _AC_CONFIG_LINKS,
_AC_CONFIG_COMMANDS): Use ...
(_AC_CONFIG_FOOS): ... this new macro, which uses these ...
(_AC_CONFIG_REGISTER, _AC_CONFIG_REGISTER_DEST): ... new macros.
(_AC_CONFIG_FILE, _AC_CONFIG_HEADER, _AC_CONFIG_LINK,
_AC_CONFIG_COMMAND, _AC_CONFIG_DEPENDENCIES): No longer needed.
(_AC_CONFIG_DEPENDENCY): Update, it uses these ...
(_AC_CONFIG_DEPENDENCY_DEFAULT, _AC_FILE_DEPENDENCY_TRACE_COLON):
... new macros.
(_AC_CONFIG_UNIQUE): Update.
(AC_LIST_FILES, AC_LIST_HEADERS, AC_LIST_LINKS, AC_LIST_COMMANDS):
Replaced by this ...
(_AC_LIST_TAGS): ... new common macro.
(AC_LIST_FILE_COMMANDS, AC_LIST_HEADER_COMMANDS, AC_LIST_LINK_COMMANDS,
AC_LIST_COMMAND_COMMANDS): Replaced by this ...
(_AC_LIST_TAG_COMMANDS): ... new common macro.
(_AC_CONFIG_COMMANDS_INIT): Moved top to the `registration' section;
this didn't belong to the `config commands' section.
(_AC_OUTPUT_COMMANDS_INIT): Don't initialize, m4_ifdef is our friend.
(AC_CONFIG_COMMANDS_PRE, AC_OUTPUT_COMMANDS_PRE,
AC_CONFIG_COMMANDS_POST): Moved to a new section, these didn't belong
to the `config commands' section either.
(AC_CONFIG_SUBDIRS): Don't touch diversion DEFAULTS.
(_AC_LIST_SUBDIRS): Don't initialize, m4_ifdef is our friend.
... and many changes to the comments nearby.
* lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): At the end of the day,
set ac_subdirs_all='_AC_LIST_SUBDIRS'.
* tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
AC_CONFIG_COMMANDS(command:input,...) is no longer allowed.
(#define header templates): The comment at the top of the generated
header now includes the name(s) of the source file(s).
Several unrelated small changes:
* lib/autoconf/general.m4 (AC_CACHE_VAL): Be didactic, quote the first
parameter to AC_DIAGNOSE.
* lib/autoconf/status.m4 (AC_CONFIG_SUBDIRS): Likewise.
(_AC_LINK_FILES_CNT): Don't AU_DEFUN this; it causes confusing messages
with autoupdate; use m4_define_default inside AU_DEFUNed AC_LINK_FILES.
(AC_OUTPUT): In the compatibility code, use m4_ifvaln, to be consistent
with AU::AC_OUTPUT.
(AU::AC_OUTPUT): Don't double-quote $2 and $3, the compatibility code
in AC_OUTPUT doesn't double-quote it either.
* tests/tools.at (autoupdate): AU::AC_OUTPUT no longer double-quotes the
parameters.
sed substitution command, so that we allow | in program prefixes
and program suffixes. (& is a problem anyway; we're not fixing
that here.)
* lib/autoconf/status.m4 (AC_CONFIG_FILES): Likewise, for
configure_input, top_builddir, srcdir, etc.
* lib/autotest/general.m4 (AT_INIT): Likewise, for
PATH_SEPARATOR in AUTOTEST_PATH.
directories with weird names. Apparently some people like living
on the edge. However, improve the test that "pwd" actually does
report a name for the working directory.
* NEWS: Remove the claim that we test for funny chars in dir names.
config_* lists to config.status.
Don't recognize option --file, if the functionality is not there.
Likewise for --header; moreover, recognize --he and --h as shortcuts
for --help in that case.
directory have inherent problems with special characters like spaces,
due to limitations in Make syntax. Problem reported by Alexandre
Duret-Lutz.
* lib/autoconf/general.m4 (_AC_INIT_DIRCHECK): Implement the above.
Also, fix Tru64 porting problem with shell patterns,
reported by Ralf Wildenhues.
from Justace Clutter.
* lib/autoconf/general.m4 (_AC_INIT_DIRCHECK): Put name of invalid
variable into diagnostic. Make the diagnostic an error, not a warning,
because we really don't support spaces and suchlike in dir names.
(_AC_INIT_SRCDIR): Allow special characters in $ac_unique_file.
Don't worry about backslashes in srcdir; it can't happen now.
(_AC_INIT_PARSE_ARGS): Allow weird characters in ac_optarg.
Simplify ac_optarg handling.
(_AC_ARG_VAR_VALIDATE): Remove unnecessary and inconsistent quotes.
* doc/autoconf.texi:
Don't mention Solaris versions so much, if a
problem is common to all extant versions of Solaris. Say "SunOS
4" instead of "SunOS" for SunOS 4.
(awk): Mention more of the limitations of traditional Awk.
(cat): Don't talk about cat -v.
(AS_VERSION_COMPARE): New macro. The API is taken from CVS,
but the implementation is entirely different and is designed
to be compatible with glibc strverscmp.
* tests/m4sh.at (AS_VERSION_COMPARE): New test.
"behavior" -> "behavior".
Warn about \(...\)* in Solaris sed (written by Ralf Menzel).
* lib/autoconf/general.m4: Omit blank after ":" sed command,
as per POSIX.
* lib/m4sugar/m4sh.m4: Likewise.
* lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS): Work around problem
with Solaris sed. Fix by Stepan Kasal.