Eric Blake [Fri, 18 Jul 2008 18:05:43 +0000 (12:05 -0600)]
Use warnings from m4 when available.
* lib/m4sugar/m4sugar.m4 (m4_defn, m4_popdef, m4_undefine): Don't
define slower wrapper if m4 will warn on our behalf; key off of
__m4_version__, added alongside the new warnings in m4 1.6.
* tests/m4sugar.at (m4@&t@_defn): New test.
Improve documentation of config.h.in template rules.
* doc/autoconf.texi (Header Templates): Mention rules on comments
and whitespace, and that the user cannot rely on #undef to survive
through config.status.
Eric Blake [Mon, 14 Jul 2008 16:13:28 +0000 (10:13 -0600)]
Tighten bound of potential speed of m4_append.
* doc/autoconf.texi (Text processing Macros) <m4_append>
<m4_prepend>: If m4 is fixed, m4_append can be linear rather than
O(n log n).
* lib/m4sugar/m4sugar.m4 (m4_append, m4_append_uniq): Fix comments.
Analysis by Bruno Haible.
Eric Blake [Fri, 11 Jul 2008 17:14:46 +0000 (11:14 -0600)]
Inherit improvements from bison's fork of m4sugar.
* lib/m4sugar/m4sugar.m4 (m4_PACKAGE_VERSION): Ignore failure to
find version.texi, since bison does not provide it.
(m4_prepend): Add new macro, from bison.
(m4_prepend_uniq, m4_prepend_uniq_w): Add new macros, for
completeness.
(_m4_append_uniq): Rename...
(_m4_grow_uniq_1): ...to this to share implementation, and
optimize initial assignment.
(m4_append_uniq_w): Adjust caller.
* NEWS: Document new macros.
* doc/autoconf.texi (Text processing Macros) <m4_append>: Mention
speed consideration.
<m4_prepend>: Document the new prepend variants.
* tests/m4sugar.at (m4@&t@_prepend): New test.
Ralf Wildenhues [Wed, 18 Jun 2008 19:22:36 +0000 (21:22 +0200)]
Reorganize autotest files, factorize for parallel execution.
* lib/autotest/general.m4 (AS_MESSAGE_LOG_FD): Move definition
earlier in the file.
(AT_INIT): Create line number cache in
$at_suite_dir/at-source-lines.
<at_helper_dir>: New directory at-groups below $at_suite_dir.
Add comment explaining the new directory structure.
(at_func_group_prepare, at_func_group_postprocess): New shell
functions to factorize per-test group work. Keep the actual
test execution outside of a shell function in order to avoid
zsh 4.x exit status bugs.
<at_check_line_file, at_status_file, at_stdout, at_stder1>
<at_stderr, at_test_source>: Turn these into per-group files
below $at_helper_dir. Also store test results there in files
named pass, fail, xpass, xfail, skip. Let the parent collect
results from $at_helper_dir. Adjust summary statistics
computation and result output.
Ralf Wildenhues [Tue, 17 Jun 2008 06:42:14 +0000 (08:42 +0200)]
Fix '#undef variable /* comment */' transform in config headers.
* lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS_PREPARE): For
undefined preprocessor macros that are followed by a comment
in the header template, do not create nested comments in the
output.
* tests/torture.at (@%:@define header templates): Extend test.
* NEWS: Update.
Report by Karsten Hopp <karsten@redhat.com>.
Eric Blake [Thu, 5 Jun 2008 21:18:11 +0000 (15:18 -0600)]
Fix regression in AT_KEYWORDS([Macro]), from 2007-10-18.
* lib/autotest/general.m4 (AT_KEYWORDS): Expand argument prior to
converting it to lower case.
* tests/autotest.at (Keywords and ranges): Test this.
* NEWS: Document the fix.
* THANKS: Update.
Reported by Karsten Hopp.
Eric Blake [Wed, 14 May 2008 14:25:01 +0000 (08:25 -0600)]
Document some FreeBSD shell bugs.
* doc/autoconf.texi (Limitations of Builtins) <!>: Mention ! issue
in compound pipe commands.
<export>: Mention difference of exporting an undefined variable.
(Shell Functions): Mention loss of $? in entry to shell functions.
Extracted from the git mailing list.
Ralf Wildenhues [Tue, 6 May 2008 20:41:54 +0000 (22:41 +0200)]
Let AC_MSG_FAILURE report pwd.
* lib/autoconf/general.m4 (_AC_ARG_VAR_VALIDATE, AC_MSG_FAILURE):
Output $ac_pwd along with fatal failure.
* tests/torture.at (Deep Package): Extend test.
Reported numerous times against GCC, and probably other packages.
Eric Blake [Tue, 6 May 2008 12:17:41 +0000 (06:17 -0600)]
Improve behavior of './testsuite 01'.
* lib/autotest/general.m4 (AT_INIT) <at_func_validate_ranges>:
Alter usage to eval its arguments, in order to normalize away
leading zero. All callers updated.
* tests/autotest.at (Keywords and ranges): Test range
normalization with leading 0.
Eric Blake [Thu, 24 Apr 2008 15:31:16 +0000 (09:31 -0600)]
Mention m4sugar's internal quote strings.
* doc/autoconf.texi (Quadrigraphs): Mention alternate quote used
in m4sugar, and how to still output it literally.
* tests/m4sugar.at (m4@&t@_split): And test it.
Reported by Joel E. Denny.
Eric Blake [Wed, 23 Apr 2008 15:24:46 +0000 (09:24 -0600)]
Allow unbalanced () in m4_expand.
* lib/m4sugar/m4sugar.m4 (m4_expand, _m4_expand): Use more complex
quotes.
(m4_noquote, _m4_split): Use consistent complex quote.
* tests/autotest.at (Left paren, Right paren): Test this.
(Parentheses): Ensure new quadrigraphs still work.
(AT_CHECK_AT_TITLE_CHAR): All title char tests exercise m4_expand.
* NEWS: Mention the fix.
* doc/autoconf.texi (Quadrigraphs): Revert mention of macros that
require quadrigraphs for ().
(Evaluation Macros) <m4_expand>: Relax the restriction against
unbalanced ().
(Pretty Help Strings) <AS_HELP_STRING>: Likewise.
(Writing Testsuites) <AT_SETUP>: Likewise.
Reported by Joel E. Denny, fix suggested by Noah Misch.
Eric Blake [Tue, 22 Apr 2008 20:19:27 +0000 (14:19 -0600)]
Support unbalanced () in AT_SETUP by adding two new quadrigraphs.
* bin/autom4te.in (handle_output): Substitute @{:@ and @:}@.
(handle_traces): Likewise.
* lib/m4sugar/m4sugar.m4 (m4_qlen): Account for new quadrigraphs.
* tests/autotest.at (AT_CHECK_AT_TITLE_CHAR): Add new tests.
* doc/autoconf.texi (Quadrigraphs): Document them.
(Evaluation Macros) <m4_expand>: Enhance documentation.
(Text processing Macros) <m4_text_box>: Document cases where
quadrigraphs can help for problemetic unbalanced parentheses.
(Pretty Help Strings) <AS_HELP_STRING>: Likewise.
(Writing Testsuites) <AT_SETUP>: Likewise.
(Limitations of Builtins) <case>: Consolidate text on unbalanced
parentheses, and add an example of creative comments.
* NEWS: Document the addition.
Reported by Joel E. Denny.
Eric Blake [Tue, 8 Apr 2008 20:19:05 +0000 (14:19 -0600)]
Generate web docs for 2.62.
* doc/autoconf.texi (Evaluation Macros): Fix typo.
(Notices): Use recommended means to escape RCS keyword.
* cfg.mk (gnulib_dir): New macro.
(web-manual): New target.
Eric Blake [Fri, 4 Apr 2008 15:09:47 +0000 (09:09 -0600)]
Use GPLv2+ plus exception as license for release.
Return back to GPLv2+, until the text of the exceptions is
finalized, reverting the change from 2007-07-03 and the first
part of the change from 2007-07-20.
Also:
* COPYING: Revert to GPLv2.
* COPYINGv3: New file, since some auxiliary build tools, used for
building autoconf and not installed, are GPLv3.
* Makefile.am (EXTRA_DIST): Distribute COPYINGv3.
* NEWS: Remove mention of GPLv3.
* README: Clarify situation regarding GPLv3.
Eric Blake [Sat, 5 Apr 2008 22:55:03 +0000 (16:55 -0600)]
Prepare for release.
* maint.mk (announcement): Avoid deleted option.
* cfg.mk (release_archive_dir): Use default.
* build-aux/gnupload: New file, from automake/gnulib.
* Makefile.am (EXTRA_DIST): Distribute it.
* .x-sc_two_space_separator_in_usage: New file, to exempt gnupload
from syntax check.
Jim Meyering [Sat, 5 Apr 2008 15:47:42 +0000 (09:47 -0600)]
Work around CR EOL markers on OS/2 (www.ecomstation.com Ecs v2 rc4)
* lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): When CR
is the EOL marker, skip a step that would remove and translate
carriage return bytes.
* THANKS: Update.
Reported by Elbert Pol.
Eric Blake [Thu, 3 Apr 2008 22:45:11 +0000 (16:45 -0600)]
Fix version number generation in man pages.
* Makefile.am (EXTRA_DIST): Distribute .version.
(.version): New rule.
* man/Makefile.am (common_dep): Depend on .version, not
configure.ac.
(.x.1): Use package name for version string.
* GNUmakefile [!_have-Makefile]: Sync from upstream, again.
* build-aux/git-version-gen: Sync from upstream.
Peter O'Gorman [Fri, 28 Mar 2008 17:37:23 +0000 (12:37 -0500)]
Find X11 on Mac OS X too.
* lib/autoconf/libs.m4 (_AC_PATH_X_DIRECT,_AC_PATH_X_XMKMF):
Check for libX11 with extensions dylib la and dll too.
* THANKS: Update.
Reported by Martin Costabel.
Ralf Wildenhues [Wed, 26 Mar 2008 05:55:22 +0000 (06:55 +0100)]
Warn, not fail on whitespace-only precious variable differences.
* lib/autoconf/general.m4 (_AC_ARG_VAR_VALIDATE): Output
precious variable differences less ambiguous with `ugly-quotes'.
If their settings differ only in whitespace, do not fail, but
reuse the old value.
* tests/torture.at (AT_CHECK_AC_ARG_VAR): Extend macro to allow
an optional status and expected-warning argument. Fix m4
quotation for initial value.
(AC_ARG_VAR): Also test for whitespace-only differences, and
that the old value is retained in this case.
* doc/autoconf.texi (Setting Output Variables): Document this.
* NEWS: Update.
Report and initial patch by Paolo Bonzini.
Eric Blake [Wed, 26 Mar 2008 03:19:58 +0000 (21:19 -0600)]
Document busybox sed bug.
* doc/autoconf.texi (Limitations of Usual Tools): Mention
restrictions when using back-references.
Reported by Vincent Lefevre:
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13013>.
Eric Blake [Fri, 21 Mar 2008 17:07:08 +0000 (11:07 -0600)]
Don't swallow $1 in textual local variables.
* lib/m4sugar/m4sugar.m4 (m4_combine): Don't use overquoting and
expansion of text arguments, as that swallows $1.
(m4_text_wrap): Likewise, by splitting out...
(_m4_text_wrap): ...new helper macro. Also, allow arbitrary
expression for width.
* tests/m4sugar.at (m4@&t@_text_wrap): Test this.
(m4@&t@_combine): Likewise.
Ralf Wildenhues [Fri, 21 Mar 2008 06:57:26 +0000 (07:57 +0100)]
Avoid leftover files on Leopard.
* lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT): Remove a.out.dSYM
directory created on darwin.
(AC_NO_EXECUTABLES): Likewise; also remove objects which may be
left over from a broken link.
* tests/c.at (AC_NO_EXECUTABLES (working linker))
(AC_NO_EXECUTABLES (broken linker)): New tests.
Report by Gary V. Vaughan.
Ralf Wildenhues [Mon, 17 Mar 2008 05:58:49 +0000 (06:58 +0100)]
Provide a helpful message if autopoint or libtoolize do not exist.
* lib/Autom4te/FileUtils.pm (handle_exec_errors): New argument
$hint, show if the executing program does not exist.
(xsystem_hint): New function, like xsystem but allows to pass
a hint.
* bin/autoreconf.in: Use xsystem_hint for spawning autopoint and
libtoolize.
Report by Bruce Korb.
Eric Blake [Wed, 12 Mar 2008 02:05:49 +0000 (20:05 -0600)]
Fix yesterday's regression in m4_wrap([$1]).
* lib/m4sugar/m4sugar.m4 (_m4_wrap): Don't directly invoke wrapped
text, since it may contain text that looks like parameters.
* tests/m4sh.at (AS@&t@_INIT cleanup): Enhance test.
Eric Blake [Wed, 5 Mar 2008 20:39:23 +0000 (13:39 -0700)]
Improve error messages for common testsuite bugs.
* lib/autotest/general.m4 (_AT_DEFINE_INIT, _AT_DEFINE_SETUP): New
macros for defining order-enforced macros.
(AT_INIT, AT_SETUP, AT_CLEANUP, AT_BANNER, AT_XFAIL_IF)
(AT_CAPTURE_FILE, AT_DATA, AT_CHECK, AT_CHECK_NOESCAPE): Add error
messages when order violations are detected.
* tests/autotest.at (AT_CHECK_AT_SYNTAX): New helper macro.
(AT_SETUP without AT_INIT, AT_BANNER without AT_INIT)
(AT_CLEANUP without AT_INIT, Missing AT_CLEANUP)
(AT_CHECK without AT_SETUP, AT_DATA without AT_SETUP)
(AT_XFAIL_IF without AT_DATA, AT_KEYWORDS without AT_SETUP,
(AT_CLEANUP without AT_SETUP, AT_BANNER inside AT_SETUP)
(AT_SETUP inside AT_SETUP, Multiple AT_INIT)
(Banner-only test suite): New tests.
Reported by Christopher Hulbert.
Eric Blake [Tue, 11 Mar 2008 13:11:44 +0000 (07:11 -0600)]
Tweak m4_wrap to force FIFO or LIFO semantics.
* lib/m4sugar/m4sugar.m4 (m4_wrap): Override M4 implementation.
(m4_wrap_lifo, _m4_wrap): New macros.
* lib/m4sugar/m4sh.m4 (AS_INIT): Combine all cleanup into known
order, prior to m4sugar's.
(_AS_DETECT_BETTER_SHELL): Use cleanup parameter, rather than
m4_wrap.
* lib/autotest/general.m4 (AT_INIT): Combine all cleanup into
known order, prior to m4sh's.
* doc/autoconf.texi (Diagnostic Macros) <m4_fatal>: Document
argument.
(Redefined M4 Macros) <m4_wrap>: Rewrite documentation to match
new behavior.
* tests/m4sh.at (AS_INIT cleanup): New test.
* NEWS: Document the change.
Eric Blake [Wed, 5 Mar 2008 16:32:04 +0000 (09:32 -0700)]
Encode nested autotest data.
* tests/autotest.at (AT_CHECK_AT_PREP): Avoid raw AT_ in output.
(unusual file names): Likewise.
(m4_pattern_allow): Remove loophole, to make it easier to catch
poorly written tests.
Eric Blake [Wed, 5 Mar 2008 16:20:23 +0000 (09:20 -0700)]
Factor some autotest tests.
* tests/autotest.at (AT_CHECK_AT_PREP): New macro, to factor out
common initialization.
(AT_CHECK_AT, Banners, Keywords and ranges, srcdir propagation)
(whitespace in absolute testdir, unusual file names): Use it.