Eric Blake [Thu, 4 Oct 2007 20:23:52 +0000 (14:23 -0600)]
Whitespace cleanup.
* lib/autotest/general.m4 (_AT_CREATE_DEBUGGING_SCRIPT): Avoid
leading whitespace, as it caused space-tab in testsuite.
(AT_INIT): Avoid trailing newlines in testsuite.
Eric Blake [Thu, 4 Oct 2007 15:43:59 +0000 (09:43 -0600)]
One more round of m4_foreach_w speedups.
* lib/m4sugar/m4sugar.m4 (m4_flatten): Only use regex if newline
is present.
(_m4_split): Avoid useless expansions inside definition. Move
argument defaulting...
(m4_split): ...here. Change alternate quote to something less
likely to appear in $1. Also, special case space as regexp...
(m4_foreach_w): ...to avoid regexp on single-term list.
(m4_default, m4_defn, m4_popdef, m4_undefine, _m4_foreach): Avoid
useless expansions inside definition.
* tests/m4sugar.at (m4@&t@_split): Add tests.
Eric Blake [Wed, 3 Oct 2007 23:18:59 +0000 (17:18 -0600)]
Optimize checking for identifiers.
* lib/m4sugar/m4sh.m4 (AS_IDENTIFIER_IF, _AS_IDENTIFIER_IF): New
macros, more efficient than regex on m4_re_word.
* lib/autoconf/general.m4 (AC_SUBST, AC_DEFINE_TRACE_LITERAL):
Rewrite in terms of new macro. As a side-effect, AC_DEFINE can
now use @&t@.
* configure: Regenerate.
Eric Blake [Wed, 26 Sep 2007 23:23:00 +0000 (17:23 -0600)]
Remove some XFAILs, and make AT_SETUP output line up.
* lib/autotest/general.m4 (AT_SETUP): Only expand description
once; thereafter, use its expansion, properly quoted.
* tests/autotest.at (AT_CHECK_AT_TITLE): Also check macro
expansion with arguments, and check for aligned output.
(AT_CHECK_AT_TITLE_CHAR): Remove XFAILs for tests that now pass.
Add a test for macros with parameters.
* NEWS: Document the semantics change.
* tests/base.at: Fix test titles containing commas.
* tests/compile.at: Likewise.
* tests/tools.at: Likewise.
* tests/torture.at: Likewise.
Eric Blake [Wed, 3 Oct 2007 21:26:51 +0000 (15:26 -0600)]
Another round of regex avoidance.
* lib/m4sugar/m4sugar.m4 (m4_cr_alnum, m4_cr_all)
(_m4_define_cr_not, m4_cr_not_letters, m4_cr_not_LETTERS)
(m4_cr_not_Letters, m4_cr_not_digits, m4_cr_not_alnum)
(m4_cr_not_symbols1, m4_cr_not_symbols2): New macros, implementing
character ranges useful in m4_translit.
(m4_toupper, m4_tolower): Optimize the constant portion of
definition.
* lib/m4sugar/m4sh.m4 (AS_LITERAL_IF): Also reject @S|@ because it
creates $, and reject [] thanks to AS_TR_SH rewrite.
(AS_TR_SH, AS_TR_CPP): Use just translit, not bpatsubst.
(AS_ESCAPE): Factor...
(_AS_ESCAPE): ...into new macro, with second argument required.
Avoid regex in common case.
(_AS_QUOTE): Use new macro.
Eric Blake [Tue, 2 Oct 2007 13:04:11 +0000 (07:04 -0600)]
Optimize AC_PREREQ and other m4sugar numerics.
* lib/m4sugar/m4sugar.m4 (m4_sign): Write with m4_eval.
(m4_cmp): Compare arbitrary expressions, without overflow.
(m4_version_unletter): Also recognize capital letters.
(m4_version_compare): Avoid regex when splitting version number
string.
Eric Blake [Mon, 1 Oct 2007 22:22:54 +0000 (16:22 -0600)]
Once again, reject IRIX m4.
* m4/m4.m4 (AC_PROG_GNU_M4): Use indir builtin to root out non-GNU
implementations that ignore --trace.
* configure: Regenerate.
Reported by Ralf Wildenhues.
Eric Blake [Sun, 30 Sep 2007 03:44:10 +0000 (21:44 -0600)]
Speed optimization: avoid m4 regex when other algorithms work.
* lib/m4sugar/m4sh.m4 (AS_LITERAL_IF): Rewrite without regex.
(_AS_QUOTE_IFELSE): Likewise.
* lib/m4sugar/m4sugar.m4 (m4_strip): Reduce from 3 to 2 regex.
(m4_bpatsubsts): Split...
(_m4_bpatsubsts): ...so that recursion can avoid patsubst on empty
regex.
(_m4_divert()): Define, to avoid m4 warning on `m4_divert'.
(m4_qlen): Optimize on short strings, to avoid regex.
(m4_sign): Avoid regex, and fix bug with `01' and `-0'.
* lib/autoconf/general.m4 (AC_CACHE_VAL): Rewrite without regex.
(AC_DEFINE_TRACE): Likewise.
* lib/autoconf/general.m4 (AC_CACHE_VAL): Warn if cache variable
lacks '_cv_', or if AC_SUBST appears in body.
* tests/base.at (AC_CACHE_CHECK): Test this change.
Autotest no longer caters to Ultrix redirection limitation.
* doc/autoconf.texi (Writing testsuite.at): Remove the
limitation that the first parameter of AT_CHECK cannot
contain redirection.
(File Descriptors): Mention that Ultrix limitation is no longer a
show-stopper in modern code.
* tests/local.at (AT_CHECK_M4): Fix for cases when the fourth
parameter is `stderr' or `experr'. Optimize if it was `ignore'.
* lib/autotest/general.m4 (AT_CHECK): Update comment.
Eric Blake [Wed, 26 Sep 2007 17:13:08 +0000 (11:13 -0600)]
Fix testsuite breakage in last patch.
* tests/autotest.at (AT_CHECK_AT_TITLE): Properly quote the
font-lock fix.
* tests/torture.at (@%:@define header templates): Rename, so that
output lines up correctly.
Jim Meyering [Sat, 22 Sep 2007 12:04:51 +0000 (14:04 +0200)]
Whenever possible, use the vertical bar as sed delimiter.
* lib/autoconf/functions.m4 (GETLOADAVG_LIBS) [AC_FUNC_GETLOADAVG]:
Use "|", not "!".
* lib/autoconf/status.m4 (_AC_SRCDIRS) [ac_top_builddir_sub]:
[ac_dir_suffix]: Use "|", not "," as sed delimiter.
* tests/mktests.sh (as_me): Likewise.
* lib/freeze.mk (check-forbidden-patterns): Likewise.
* lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): Likewise.
* configure: Regenerate.
* doc/autoconf.texi (Shell Substitutions): Use "|", not "," in examples.
* lib/autotest/general.m4 (AT_INIT): Use "|", not "&" as sed delimiter
in the : -> $PATH_SEPARATOR transformation of $AUTOTEST_PATH. This is fine,
as long as $PATH_SEPARATOR doesn't contain "|".
Eric Blake [Sat, 15 Sep 2007 12:41:08 +0000 (12:41 +0000)]
Provide AC_VERSION, not m4_AUTOCONF_VERSION.
* doc/autoconf.texi (Text processing Macros): Remove mention of
m4_AUTOCONF_VERSION, and leave m4_PACKAGE_VERSION undocumented
once again.
(Notices): Move AC_PREREQ...
(Versioning): ...to this new section, alongside the new AC_VERSION
alias for the undocumented m4_PACKAGE_VERSION.
* lib/m4sugar/m4sugar.m4 (m4_AUTOCONF_VERSION): Revert change.
* lib/autoconf/general.m4 (AC_VERSION): New macro.
* NEWS: Update to match this rename.
* tests/m4sugar.at (m4@&t@_version_compare): Remove tests of
m4_PACKAGE_VERSION.
* tests/tools.at (autoconf: AC_VERSION): New test.
Suggested by Paolo Bonzini and Benoit Sigoure.
Eric Blake [Thu, 13 Sep 2007 20:39:33 +0000 (20:39 +0000)]
Clean up 'make dist' of previous patch.
* tests/Makefile.am (EXTRA_DIST): Distribute mktests.stamp.
(CLEANFILES): Don't clean the stamp, since we distribute the
generated files pre-built.
(MAINTAINERCLEANFILES): Clean it here instead.
* tests/Makefile.in: Regenerate.
Eric Blake [Thu, 13 Sep 2007 19:59:18 +0000 (19:59 +0000)]
Avoid parallel 'make check' issue.
* tests/Makefile.am (mktests.stamp): New witness.
(TESTSUITE_GENERATED_AT): Use it.
(CLEANFILES): Clean the witness.
* tests/.cvsignore (mktests.stamp): Ignore the witness.
Eric Blake [Thu, 13 Sep 2007 16:50:38 +0000 (16:50 +0000)]
Document another awk pitfall.
* doc/autoconf.texi (Limitations of Usual Tools) <awk>: Document
limitation of field variables in END.
Reported by Gary V. Vaughan.
Eric Blake [Thu, 13 Sep 2007 03:21:18 +0000 (03:21 +0000)]
Publish m4_ifndef, m4_version_compare, m4_AUTOCONF_VERSION.
* doc/autoconf.texi (Text processing Macros): Document
m4_version_compare, m4_AUTOCONF_VERSION, m4_PACKAGE_VERSION.
(Redefined M4 Macros): Document m4_ifndef.
* lib/m4sugar/m4sugar.m4 (m4_AUTOCONF_VERSION): New macro; we
can't obsolete m4_PACKAGE_VERSION at this time since Autoconf 1.10
used it while it was undocumented.
* NEWS: Document this change.
* lib/m4sugar/Makefile.am (version.m4): Update copyright dates.
* lib/m4sugar/Makefile.in: Regenerate.
* tests/m4sugar.at (m4@&t@_version_compare): New test.
Reported by Bruno Haible.
Eric Blake [Tue, 11 Sep 2007 17:13:13 +0000 (17:13 +0000)]
Centralize all system extensions checks.
* lib/autoconf/specific.m4 (AC_USE_SYSTEM_EXTENSIONS): Inline code
from AC_AIX, AC_GNU_SOURCE, AC_MINIX. Add Interix support.
(AC_AIX, AC_GNU_SOURCE, AC_MINIX): Obsolete, and point to
AC_USE_SYSTEM_EXTENSIONS.
(AC_ISC_POSIX): Obsolete, and point to AC_SEARCH_LIBS.
(AC_XENIX_DIR, AC_IRIX_SUN): Promote proper quoting in AU_DEFUN.
* doc/autoconf.texi (Posix Variants): Reword this section,
emphasizing that AC_USE_SYSTEM_EXTENSIONS is the preferred method,
rather than a series of system-specific checks.
(Obsolete Macros): Add AC_AIX, AC_GNU_SOURCE, AC_ISC_POSIX,
AC_MINIX.
* NEWS: Document this change.
* THANKS: Update.
Reported by Martin Koeppe.
Eric Blake [Sat, 8 Sep 2007 21:47:37 +0000 (21:47 +0000)]
Clean up obsolete macros references.
* doc/autoconf.texi: Add anchors to support better
cross-referencing.
(Particular Structures): Move obsolete macros descriptions...
(External Software): Likewise.
(Package Options): Likewise.
(Obsolete Macros): ...to here. Add cross-references to
documentation on replacements.
* NEWS: Mention that these macros have been obsolete for a while
now: AC_STRUCT_ST_BLKSIZE AC_STRUCT_ST_RDEV AC_WITH AC_ENABLE.
Eric Blake [Thu, 6 Sep 2007 23:21:45 +0000 (23:21 +0000)]
* doc/autoconf.texi (Generic Programs): Use $PATH_SEPARATOR, not
:, and make it clear that optional @var{path} defaults to $PATH.
(Erlang Compiler and Interpreter): Likewise.
Ralf Wildenhues [Tue, 21 Aug 2007 20:23:16 +0000 (20:23 +0000)]
* lib/autoconf/general.m4 (AC_SITE_LOAD): Do not overwrite "$@"
here, this macro is expanded by AC_INIT. Fixes 2.60 regression.
* tests/base.at (configure arguments): New test.
* THANKS: Update.
Report by Olaf Lenz.
Ralf Wildenhues [Sat, 18 Aug 2007 09:07:20 +0000 (09:07 +0000)]
* lib/autoconf/status.m4 (_AC_OUTPUT_LINK): Do not try to link a
file to itself if source and build trees coincide.
* tests/torture.at (AC_CONFIG_LINKS and identical files): New
test.
Report by Sebastian Freundt <hroptatyr@gna.org>.
Paul Eggert [Fri, 13 Jul 2007 17:38:13 +0000 (17:38 +0000)]
* doc/autoconf.texi (autoreconf Invocation): Document ACLOCAL_AMFLAGS
limitation reported by Leo Moisio in
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=432941>.
Noah Misch [Tue, 19 Jun 2007 19:49:05 +0000 (19:49 +0000)]
* lib/autotest/general.m4 (AT_INIT): Handle absolute `srcdir'.
* tests/autotest.at (srcdir propagation): Test absolute `srcdir' and
`srcdir' as subdirectory of `builddir'.
Paul Eggert [Wed, 13 Jun 2007 16:52:24 +0000 (16:52 +0000)]
* lib/m4sugar/m4sh.m4 (_AS_PATH_SEPARATOR_PREPARE): Set FPATH too.
Problem reported by Fred Kreek in
<http://lists.gnu.org/archive/html/bug-autoconf/2007-06/msg00009.html>.
* doc/autoconf.texi (Special Shell Variables): Warn about FPATH.
(Macro Names, Defining Directories): Don't mention PATH as a name
for a fully qualified file name, as this usage violates the GNU
coding standards and we shouldn't recommend it.
* lib/autotest/general.m4 (AT_INIT): Don't set PATH to the empty
string and then assume shell builtins like "test" will work.
Noah Misch [Tue, 12 Jun 2007 11:36:56 +0000 (11:36 +0000)]
* lib/autoconf/general.m4 (AC_SUBST): Raise a fatal error if VARIABLE is
not a valid shell variable name.
* tests/mktests.sh (ac_exclude_list): Add AC_ARG_VAR.
* tests/torture.at (AC_SUBST: variable name validation): New test.
Reported by Andreas Schwab.
Paul Eggert [Tue, 29 May 2007 05:36:28 +0000 (05:36 +0000)]
* doc/autoconf.texi (Particular Types): AC_TYPE_INT8_T does not
define HAVE_INT8_T, and likewise for similar macros.
Problem reported by Patrick Welche in
<http://lists.gnu.org/archive/html/autoconf/2007-05/msg00062.html>.
Paul Eggert [Mon, 21 May 2007 23:10:09 +0000 (23:10 +0000)]
* lib/autoconf/c.m4 (AC_OPENMP): Don't echo --enable-openmp
choice, since that's what we do with --enable-largefile etc.
Redo indenting and assignments to simplify things a bit, and make
the parens work with Emacs.
Noah Misch [Thu, 17 May 2007 02:43:12 +0000 (02:43 +0000)]
* bin/autoconf.as: Handle `-' just like other input files.
* bin/autom4te.in (parse_args): Pass `-' through.
(handle_output): Skip the forbidden token search if we read from stdin.
(up_to_date): Always treat stdin as out of date.
* tests/tools.at (autoconf: input from stdin): New test.
(autoconf: forbidden tokens, basic): Check a second `autoconf' run.
Stepan Kasal [Thu, 3 May 2007 14:47:12 +0000 (14:47 +0000)]
* lib/autoconf/lang.m4, lib/autoconf/c.m4,
lib/autoconf/fortran.m4, lib/autoconf/erlang.m4: Cleanup of
section titles and other comments; no code change.
Paul Eggert [Mon, 30 Apr 2007 17:08:07 +0000 (17:08 +0000)]
* lib/m4sugar/m4sh.m4 (_AS_SHELL_FN_SPY): Don't imply that
'configure' will fail if the shell lacks proper support for shell
functions. Suggested by RMS.
Paul Eggert [Sun, 29 Apr 2007 05:50:27 +0000 (05:50 +0000)]
* lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Don't look
for a.* when searching for executables, as this prevents users
from having files like a.c. Problem reported by Ralf Wildenhues in:
http://lists.gnu.org/archive/html/autoconf-patches/2007-04/msg00029.html
This fixes a problem introduced on 2000-12-19.