* lib/autoconf/general.m4 (_AC_CACHE_DUMP): Fix the detection of
whether `set' quotes correctly: redirect stderr of the tested
`set', and use a subshell, for Ultrix; use `sed' instead of
`grep' for zsh `set' which may write binary output; match only
at the beginning of a line, to avoid false positives.
In order to avoid false positives by unrelated variables with
multiline content, put the dump algorithm in a subshell and
unset all variables containing newlines (except some which are
special to the shell). Warn about cache variables that are
unset.
* tests/mktests.sh: Only skip internal macros starting with
`_AC_' or `__AC_'. Noted by Stepan Kasal.
Update exclusion lists for the test suite to this end:
(AC_ARG_VAR): Do test this now.
(AC_REPLACE_FUNCS): This needs an argument.
(AC_LINKER_OPTION): Remove (renamed to _AC_LINKER_OPTION).
(AC_LIST_MEMBER_OF): Likewise (renamed to _AC_LIST_MEMBER_IF).
(AC_LINK_FILES): Obsoleted since (and thus AU_DEFUN'ed).
* doc/autoconf.texi (Shell Substitutions): Mention the MSYS
shell issue with double-quoted command substitutions of native
commands.
Reported to MSYS by Mark Cave-Ayland, to Autoconf by Keith
Marshall.
* Makefile.maint (sc_cast_of_argument_to_free): Do not fail when
no file matches the glob, discard the warning, set `nullglob'.
(syntax-check): Likewise.
(sc_cast_of_x_alloc_return_value): Likewise.
(sc_cast_of_alloca_return_value, sc_error_exit_success)
(sc_prohibit_jm_in_m4, .re-list, sc_unmarked_diagnostics)
(m4-check): Likewise.
(sc_system_h_headers): Do not print rule on execution.
(sc_tight_scope): Do not fail for non-existing `src' directory.
(sc_changelog): Skip the Copyright footer.
* lib/autoconf/lang.m4: Remove trailing space.
* lib/autoconf/status.m4 (_AC_CONFIG_FOOS): Append TAGS to
ac_config_<foo>s again, sometimes normalized, sometimes not.
(AC_CONFIG_FILES, AC_CONFIG_HEADERS, AC_CONFIG_LINKS, AC_CONFIG_COMMANDS):
Do not do so here.
(_AC_CONFIG_REGISTER_DEST): Double quote the tags in macros _AC_LIST_TAGS
and_AC_LIST_TAG_COMMANDS; fixes another regression introduced by the
2005-07-25 rewrite. Noticed by Noah Misch.
* lib/autoconf/general.m4 (AC_PRESERVE_HELP_ORDER): Do not define
_AC_PRESERVE_HELP_ORDER, ...
(AC_ARG_ENABLE, AC_ARG_WITH): ... use AC_PROVIDE_IFELSE insetad.
Revert this (for now):
| * lib/autoconf/c.m4 (AC_PROG_CC, AC_PROG_CXX, AC_PROG_OBJC): Call
| _AC_COMPILER_EXEEXT instead of m4_expand_once([_AC_COMPILER_EXEEXT])
| * lib/autoconf/fortran.m4 (_AC_PROG_FC): Likewise.
| * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_TESTS): On subsequent
| calls, for a new language, only check that the compiler works.
| (AC_NO_EXECUTABLES): Change the redefinition of
| _AC_COMPILER_EXEEXT_TESTS so that on subsequent calls, it checks
| that the new language's compiler works if ac_no_link=no, and
| does nothing otherwise.
* TODO, config/Makefile.am, lib/freeze.mk, lib/autoconf/c.m4,
lib/autoconf/specific.m4, lib/autoconf/status.m4,
lib/autoconf/types.m4, lib/autotest/general.m4,
tests/mktests.sh, tests/torture.at: White space cleanup:
remove some SPACE before TAB, or add quoting ('' or @&t@).
* lib/autoconf/status.m4 (_AC_CONFIG_FOOS): Do not append normalized
TAGS to ac_config_<foo>s.
(AC_CONFIG_FILES, AC_CONFIG_HEADERS, AC_CONFIG_LINKS): Do so here.
(AC_CONFIG_COMMANDS): Append NAME to ac_config_commands without
normalizing it, consistent it with previous releases.
* tests/torture.at (Macro calls in AC_CONFIG_COMMANDS tags): New test.
Paul Eggert [Tue, 4 Apr 2006 23:36:20 +0000 (23:36 +0000)]
* tests/mktests.sh: Don't use 'cat'; just read the files directly.
Prefer 'sort -u' to 'sort | uniq'. Filter data before sorting it.
Use 'comm' rather than N instances of grep; this also fixes a bug
whereby substrings were incorrectly matched, causing us to not
generate tests for AC_F77_NAME_MANGLING and AC_FUNC_LSTAT.
(exclude_list): Exclude empty macros.
(ac_exclude_list): Exclude AC_INCLUDES_DEFAULT.
Paul Eggert [Tue, 4 Apr 2006 22:36:02 +0000 (22:36 +0000)]
* tests/mktests.sh: Use awk rather than grep -E or egrep, to avoid
portability problems with regular expressions containing newlines.
(exclude_list, ac_exclude_list, au_exclude_list, ac_exclude_script):
Switch from grep to awk syntax.
(ac_exclude_script): Renamed from ac_exclude_egrep.
(au_exclude_script): Renamed from au_exclude_egrep.
* lib/autoconf/c.m4 (AC_C_INLINE): Do not skip cleanup code.
(AC_C_RESTRICT): Likewise. Furthermore, add a function with a
typedef'ed restricted pointer, to catch a compiler bug on
HP-UX 11.x, and fix warnings so it passes with -Werror.
(_AC_PROG_CC_C99): Likewise.
Reported by Albert Chin <china@thewrittenword.com>.
* tests/mktests.sh: Do not skip AC_C_INLINE, AC_C_RESTRICT.
Paul Eggert [Sun, 2 Apr 2006 16:38:54 +0000 (16:38 +0000)]
* lib/autoconf/c.m4 (AC_PROG_CC, AC_PROG_CXX, AC_PROG_OBJC): Call
_AC_COMPILER_EXEEXT instead of m4_expand_once([_AC_COMPILER_EXEEXT])
* lib/autoconf/fortran.m4 (_AC_PROG_FC): Likewise.
* lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_TESTS): On subsequent
calls, for a new language, only check that the compiler works.
(AC_NO_EXECUTABLES): Change the redefinition of
_AC_COMPILER_EXEEXT_TESTS so that on subsequent calls, it checks
that the new language's compiler works if ac_no_link=no, and
does nothing otherwise.
Paul Eggert [Fri, 31 Mar 2006 18:46:47 +0000 (18:46 +0000)]
* lib/m4sugar/m4sh.m4 (AS_BASENAME_EXPR): Handle ///, ////, etc.
correctly. Problem reported by Eric Blake.
(_AS_EXPR_PREPARE): Detect Tru64 expr bug. Problem reported by
Ralf Wildenhues.
Ralf Wildenhues [Thu, 30 Mar 2006 19:54:08 +0000 (19:54 +0000)]
* Makefile.maint (sc_texi_notab): New check: do not use TABs
in texinfo files outside of verbatim environments.
(syntax-check-rules): Update.
* doc/autoconf.texi (Configuration Headers): Conform to it.
Paul Eggert [Thu, 30 Mar 2006 06:42:56 +0000 (06:42 +0000)]
* doc/autoconf.texi (Programming in M4sh): Mention AS_BASENAME.
Give an example for AS_DIRNAME instead of referring to Posix..
(File System Conventions): Put discussion of // versus / here, and
modernize it a bit.
(Limitations of Usual Tools): Add basename. Remove verbiage
after dirname, since it got moved to the above sections.
All this was inspired by a patch proposed earlier by Ralf Wildenhues.
Ralf Wildenhues [Sun, 26 Mar 2006 21:27:56 +0000 (21:27 +0000)]
* bin/autoscan.in: The value of find_configure_ac should be
checked for existence, so we don't barf over a nonexisting
configure.ac. Reported by Laurence Darby <ldarby@tuffmail.com>.
Stepan Kasal [Fri, 17 Mar 2006 20:37:26 +0000 (20:37 +0000)]
* lib/autoconf/programs.m4 (AC_PATH_TOOL, AC_CHECK_TOOL, AC_CHECK_TOOLS):
Factor out the warning to...
(_AC_TOOL_WARN): ... this new macro; use `cross_compiling'.
* tests/local.at (AT_CHECK_MACRO_CROSS): Avoid this warning.
* tests/semantics.at (AC_C_BIGENDIAN): Likewise.
Ralf Wildenhues [Fri, 17 Mar 2006 17:09:21 +0000 (17:09 +0000)]
* lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Prepend
the directory `/usr/bin/posix' in the shell search, to prefer
the Posix shell not only in subsequent spawns as with `$BIN_SH'
on Tru64.
Ralf Wildenhues [Tue, 14 Mar 2006 07:20:14 +0000 (07:20 +0000)]
* tests/autotest.at (AT_NO_CMDSUBST): New macro to determine
failure condition for `$(cmd)' style command substitutions.
(Parenthetical command substition, Multiline parenthetical
command substition): Use it.
Ralf Wildenhues [Sun, 12 Mar 2006 19:58:31 +0000 (19:58 +0000)]
* lib/autotest/general.m4 (AT_INIT) <at_optarg>: Optimize
`expr' away if there is nothing to do.
< --keywords >: Simplify and robustify argument handling.
Revert erroneous comment from 2005-08-23. Extend to allow
keyword negation with `!'.
Update help message. Remove broken code to prevent running
tests multiple times.
* doc/autoconf.texi (testsuite Invocation) < --keywords >:
Update and fix the documentation accordingly.
* tests/autotest.at (Keywords): Renamed to..
(Keywords and ranges): .. this. Extended to make sure negated
keywords, keywords taken from AT_SETUP arguments, and numeric
test ranges work, and that matching is case-insensitive.
Ralf Wildenhues [Sat, 11 Mar 2006 13:22:42 +0000 (13:22 +0000)]
* lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW): Use a typedef to
allow to pass unnamed structs even in C++.
(AC_CHECK_SIZEOF): Likewise.
Also fix quoting error in `AC_MSG_FAILURE' arguments.
* tests/semantics.at (AC_CHECK_ALIGNOF struct, AC_CHECK_SIZEOF
struct): New tests for unnamed structs, each both native and
cross-compiling.
Ralf Wildenhues [Sat, 11 Mar 2006 13:21:32 +0000 (13:21 +0000)]
* lib/autoconf/c.m4 (AC_C_TYPEOF): Use typedef to avoid defining
a structure inside a cast, for C++ conformance.
* lib/autoconf/types.m4 (AC_CHECK_ALIGNOF): Likewise.
Also fix quoting error in `AC_MSG_FAILURE' arguments.
Ralf Wildenhues [Sat, 11 Mar 2006 13:20:14 +0000 (13:20 +0000)]
* lib/autoconf/c.m4 (AC_PROG_CC_STDC): If we cannot enable C99
nor C89 mode, set `$ac_cv_prog_cc_stdc' to `no' instead of
trying to execute the command `no'.