&parse_WARNINGS.
($help): Use Autom4te::ChannelDefs::usage.
* bin/autoscan.in: Use Autom4te::ChannelDefs.
* lib/Autom4te/General.pm: Don't export error: you don't own it.
including when the cache is used.
There are still several issues: (i) there are too many runs of m4
(one for include, one for warnings, and some more), (ii) warnings
spreading on several lines are not handled gracefully, (iii) the
code meant to have the call stack display for errors does not work
(its handling should move from m4 to autom4te).
* bin/autom4te.in Autom4te::Channels, Autom4te::ChannelDefs):
Use them.
(@preselect): Add m4_warn.
($exit_status): Remove, use $exit_code.
($help): Use Autom4te::ChannelDefs::usage.
(&handle_m4): No longer define the m4_warnings.
At each run, extract and report the warnings.
Always cache the result, including if the exit status is on
failure, since if nothing changes, we should result in the same
failure, hence we can use the cache.
* lib/m4sugar/m4sugar.m4 (m4_warning_ifelse, _m4_warning_ifelse)
(_m4_warning_error_ifelse, __m4_warning_error_ifelse, _m4_warn):
Remove.
(m4_warn): Redefine as a do-nothing: it is its invocation that
matters, as warnings are now reported via traces.
* lib/autoconf/general.m4 (AC_DIAGNOSE): Don't make it a copy of
the contents of m4_warn: make it _call_ m4_warn, so that tracing
the latter reveals calls to the former.
Adjust the tests.
* tests/m4sugar.at (m4@&t@_warn): Use existing warning categories.
changes.
* lib/Autom4te/General.pm (&backname): Remove, no longer used by
Autoconf nor Automake.
(&contents): New, from Automake.
PODify.
* lib/autoconf/c.m4 (_AC_PROG_CXX_EXIT_DECLARATION):
Remove `#include <stdlib.h>' from the list; we should never
* bin/autoscan.in, bin/autoupdate.in, bin/ifnames.in (BEGIN): Make
them uniform, and more robust to Perl special characters.
Reported by Martin Mokrej.
longer updates aclocal.m4 if useless, (ii) if a file m4_included
by aclocal.m4 is changed it might require the importing of another
m4 extension file, i.e., aclocal must be run.
* bin/autoreconf.in (&run_aclocal, $aclocal_supports_force): New.
(&parse_args): Use --force with aclocal if required and supported.
(&autoreconf_current_directory): Use &run_aclocal.
* lib/Autom4te/XFile.pm ($me, &name, &lock, &truncate, &seek): New.
* bin/autom4te.in (&Request::save, &Request::load): Use an IO::File
argument instead of a file name, so that the request file remains
open during the whole autom4te run.
($icache_file): New.
(&freeze): Lock the $icache_file.
* Makefile.maint: Update from the Coreutils.
(AMTAR): Remove, obsolete.
(-automake_repo): Update to redhat.com.
(cvs_file): New.
Adjust to the fact that ansi2knr is now hosted by Automake.
* Maekfile.am (cvs_files): Add install-sh and mkinstalldirs.
* config/config.guess, config/mkinstalldirs, config/texinfo.tex:
Update from masters.
aclocal invocation, as Gettext macros might not be visible to
aclocal.
Instead of blindly running autopoint, scan configure.ac (not the
traces) for AM_GNU_GETTEXT_VERSION uses, as autopoint does.
Reported by Paul D. Smith.
* lib/autoconf/autoconf.m4: Include it.
* lib/autoconf/functions.m4: Use AN_FUNCTION for all the functions
that were listed in the original autoscan.list.
* lib/autoconf/headers.m4: Similarly with headers.
* lib/freeze.mk (autoconf_m4f_dependencies): Add autoscan.m4.
(.m4.m4f): Don't pass --prepend-include, since that's done by
tests/autom4te itself.
* lib/autoscan/Makefile.am: Include freeze.mk.
(autoscan.list): New target --this file is no longer a source.
(autoscan.pre): New file.
(&xsystem): Use WIFEXITED and WEXITSTATUS instead of decoding $? by
hand, which is not portable.
(&error): New.
* bin/autom4te.in: Use them.
Use &error instead of die.
* tests/m4sugar.at (m4_warn, m4_require: circular dependencies):
Adjust.
bin/autoupdate.in, bin/ifnames.in, lib/Autom4te/General.pm,
lib/Autom4te/Struct.pm, lib/Autom4te/XFile.pm: Add local variables
so that Emacs setups GNU style for perl-mode and cperl-mode.
workaround for ${1+"$@"}.
* doc/autoconf.texi (Shell Substitutions): Explain it.
From Oliver Kiddle and Peter Stephenson.
Have M4sh perform minimal shell sanitizing.
* lib/m4sugar/m4sh.at (AS_SHELL_SANITIZE): Split the `_AS_PREPARE_*'
part into...
(_AS_PREPARE): this new macro.
(AS_PREPARE): New.
(AS_INIT): Invoke AS_SHELL_SANITIZE.
* tests/m4sh.at (AT_DATA_LINENO): Use _AS_PREPARE.
Adjust Autoconf and Autotest.
* lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Don't invoke
AS_SHELL_SANITIZE, AS_INIT did it, but invoke AS_PREPARE.
* lib/autotest/general.m4 (AT_INIT): Likewise.
* lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS):
Invoke _AS_PREPARE (not AS_PREPARE) in addition to
AS_SHELL_SANITIZE.
Use this M4sh to generate Autoconf's shell scripts.
* tests/wrapsh.as: New, precursor of wrapsh.in.
* tests/Makefile.am: Include lib/freeze.mk to get the dependencies
on Autotest and M4sh.
($(TESTSUITE)): Use $(autotest_m4f_dependencies).
(wrapsh.in): New target.
* bin/autoconf.as: New, precursor of autoconf.in.
(autoconf.in): New target.
optional are the sum of the previous files on the command line'.
Also, pass `--reload-state=' on them, so...
(handle_m4): don't.
* lib/autom4te.in (Autotest, Autoconf): Rely on M4sh.
(M4sh): Rely on M4sugar.
(Autotest, M4sh, M4sugar): Use frozen files.
(&file_name_is_absolute): New, wrappers around routines from
File::Spec.
Use and export them.
(&find_configure_ac): Optionally take a directory where to look at.
* bin/autoreconf.in (&parse_args): Trim the configure.ac part of
the arguments.
Default @ARGV to `.', not find_configure_ac.
(&autoreconf): Argument is a directory.
Trace AC_CONFIG_SUBDIRS and schedule the subdirs for autoreconf'ing.
* doc/autoconf.texi (autoreconf Invocation): Update.
passed on command line, defaulting to ./configure.ac if present.
(&maybe_autoreconf, File::Find): Remove, unused.
(&autoreconf): If autoconf is not used, don't try to trace.