Akim Demaille [Thu, 21 Aug 2003 17:31:25 +0000 (17:31 +0000)]
* bin/autoheader.in (&parse_args): Use &parse_warnings and
&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.
Akim Demaille [Thu, 21 Aug 2003 17:25:28 +0000 (17:25 +0000)]
First stab at preserving warnings between calls to autom4te,
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.
Akim Demaille [Thu, 21 Aug 2003 16:15:40 +0000 (16:15 +0000)]
* lib/Autom4te/FileUtils.pm (&find_file): Walk the @include in
forward order.
* lib/Autom4te/ChannelDefs.pm: Doc typos.
(&parse_warnings): Accept a list of warning requests.
(&usage): Return a string, not a side effect.
(cross): New warning category.
Akim Demaille [Wed, 20 Aug 2003 12:52:18 +0000 (12:52 +0000)]
* bin/autoupdate.in, bin/auheader.in, bin/autoreconf.in,
* bin/autom4te: Adjust.
In particular, be Autoconf tools are really silent when properly
working, bind the verbosity of the 'note' channel to $verbose.
* lib/Autom4te/General.pm (&find_file, &mtime, &update_file)
(&xsystem, &contents): Remove, since they are exported by...
* lib/Autom4te/FileUtils.pm: this.
More perldoc.
* lib/Autom4te/General.pm (&up_to_date_p): Move to...
* lib/Autom4te/FileUtils.pm: here.
Derek Price [Tue, 19 Aug 2003 18:21:39 +0000 (18:21 +0000)]
* lib/autotest/general.m4: Comment various HELP_* diversions.
(PARSE_ARGS_BEGIN): New section for option parsing related
initialization.
(AT_ARG_OPTION,AT_ARG_OPTION_ARG,_AT_ARG_OPTION): New macros to define
package specific options and associated help.
Derek Price [Thu, 14 Aug 2003 13:49:05 +0000 (13:49 +0000)]
* lib/autotestgeneral.m4 (AT_INIT): Reformat test summary line to print
DESCRIPTION rather than FILE and LINE. Shorten result to fit in new,
shorter column three. Add DESCRIPTION to log file content.
Paul Eggert [Fri, 1 Aug 2003 01:10:58 +0000 (01:10 +0000)]
(_AS_UNSET_PREPARE): Work around a bug in Bash 2.01. Problem reported
by Brian Gough in
<http://mail.gnu.org/archive/html/bug-autoconf/2003-07/msg00106.html>.
Paul Eggert [Mon, 7 Jul 2003 06:18:01 +0000 (06:18 +0000)]
(AC_FUNC_MMAP): Cast pointer to
'long', not 'int', for benefit of Sun's recent C++ compilers
(trivial change). See:
http://mail.gnu.org/archive/html/autoconf-patches/2003-07/msg00007.html
(This really should be 'intptr_t', not 'long', but that would
take more work.)
Akim Demaille [Wed, 25 Jun 2003 13:38:54 +0000 (13:38 +0000)]
* lib/Makefile.am (autom4te.cfg): Make it read only.
Depend on Makefile since it contains substitutions.
From Paolo Bonzini.
* lib/autom4te.in (args): Add local.at? for Autotest args.
This change was made on autom4te.cfg which is generated.
Reported by Raja R. Harinath.
Akim Demaille [Mon, 23 Jun 2003 15:29:02 +0000 (15:29 +0000)]
* lib/autotest/general.m4 (AT_INIT): Report a single config.log,
not all of them. This fixes 1. the fact that when testing
Autoconf there are many many config.log, 2. the incorrect use of
top_srcdir to find config.log.
Don't mix the detailed output of failed test with the summary of
failures. Rather, append detailed log afterwards.
Kevin Ryde [Sat, 21 Jun 2003 00:01:52 +0000 (00:01 +0000)]
* lib/autoconf/c.m4 (_AC_PROG_CC_STDC): Extend test program to get an
error from OSF 4.0 Compaq cc in its default almost-ANSI mode, thereby
ensuring we add -std1 for full-ANSI.
Kevin Ryde [Sat, 21 Jun 2003 00:01:04 +0000 (00:01 +0000)]
(_AC_PROG_CC_STDC): Extend test program to get an
error from OSF 4.0 Compaq cc in its default almost-ANSI mode, thereby
ensuring we add -std1 for full-ANSI.
Akim Demaille [Mon, 2 Jun 2003 06:55:03 +0000 (06:55 +0000)]
* bin/autom4te.in, bin/autoscan.in, bin/autoheader.in: White space
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
* lib/Autom4te/General.pm (END): Print diagnostics to STDERR.
(handle_exec_errors): New function. Work around $! being
altered by WEXITSTATUS.
(xqx, xsystem): Use handle_exec_errors.
* lib/Autom4te/General.pm (END): Rewrite exit code processing.
Do not call `_exit()', simply modify `$?'.
(xsystem): Reset $! before running system, and check it afterward.
* tests/tools.at (autoupdating AC_PREREQ): Expect exit status
63 for version mismatches.
Akim Demaille [Fri, 23 May 2003 13:58:06 +0000 (13:58 +0000)]
* lib/autoconf/status.m4: Prefer "TAB-SP" to "SP-TAB", because of
Emacs' danger whitespace.el behavior (smashing "useless" spaces in
the middle of a line).
* lib/m4sugar/m4sugar.m4: Likewise.
Remove useless spaces in comments.
Akim Demaille [Fri, 23 May 2003 13:14:30 +0000 (13:14 +0000)]
* lib/m4sugar/m4sugar.m4 (m4_version_prereq): Failure causes an
exit 63, so that we (or Automake's "missing") can tell the
difference with a plain failure.
* doc/autoconf.texi (Notices): Adjust.
Jim Meyering [Fri, 23 May 2003 09:36:17 +0000 (09:36 +0000)]
(_AC_PROG_CXX_EXIT_DECLARATION):
Remove `#include <stdlib.h>' from the list; we should never
make confdefs.h include <stdlib.h> or <cstdlib>, because the
resulting namespace pollution would cause other tests to fail.
Configure scripts run with some older versions of g++ and HP's
aCC would fail due to such an #include. Problems reported by
Matthew Mueller in <http://bugs.debian.org/120704> and by
Keith Bostic in
<http://mail.gnu.org/archive/html/autoconf/2003-05/msg00063.html>.
In the test, use the test declaration before including <stdlib.h>,
as that's closer to how it'll be used.
Paolo Bonzini [Thu, 22 May 2003 21:52:43 +0000 (21:52 +0000)]
Overhaul Autotest's logging: generate separate log files
in testsuite.dir/NNN/testsuite.log, and append them to
testsuite.log instead of re-running the test verbosely.
Adapt documentation. Update NEWS to signal possible bad
interactions between -x and experr.
Akim Demaille [Thu, 22 May 2003 07:43:49 +0000 (07:43 +0000)]
* doc/autoconf.texi: Replace AC_HELP_STRING AS_HELP_STRING.
Add AC_HELP_STRING to the obsolete macros section.
Typos.
Use '@.' for sentences that ended in a capital letter.
From Art Haas.
Akim Demaille [Sat, 17 May 2003 10:30:07 +0000 (10:30 +0000)]
* lib/autoconf/functions.m4: Use the default includes so that
memcmp be declared before being tested.
Reported by Sander Niemeijer.
(AC_FUNC_ERROR_AT_LINE, AC_FUNC_GETGROUPS, AC_FUNC_STRNLEN): Likewise.
* doc/autoconf.texi (Default Includes): Document
AC_INCLUDES_DEFAULT.
Akim Demaille [Sat, 17 May 2003 09:44:22 +0000 (09:44 +0000)]
* lib/autoconf/specific.m4: Include signal.h and unistd.h.
* doc/autoconf.texi (Obsolete Macros): Adjust.
Reported by Werner LEMBERG and Debian Bug 190886.
Akim Demaille [Fri, 16 May 2003 09:54:46 +0000 (09:54 +0000)]
* bin/autoheader.in, bin/autom4te.in, bin/autoreconf.in,
* bin/autoscan.in, bin/autoupdate.in, bin/ifnames.in (BEGIN): Make
them uniform, and more robust to Perl special characters.
Reported by Martin Mokrej.
Akim Demaille [Tue, 6 May 2003 15:07:59 +0000 (15:07 +0000)]
Don't try to be smart with aclocal 1.8+ because (i) aclocal no
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.