* acgeneral.m4 (AU_ALIAS): Do not use `defn' since then autoupdate
would replace an old macro call with the new macro body instead of
the new macro call.
* tests/tools.m4 (autoupdate): Test an AU_ALIAS'd macro update.
* tests/atspecific.m4 (_AT_CHECK_AC_MACRO): New macro.
(AT_TEST_MACRO): Use it.
* tests/semantics.m4 (AC_PROG_CPP with warnings, AC_PROG_CPP
without warnings): New tests.
* acgeneral.m4 (_AC_OUTPUT_SUBDIRS): Check for configure.gnu
as well.
(_AC_INIT_HELP): Likewise.
(NEWS): Note checking for configure.gnu.
* doc/autoconf.texi: Document checking for configure.gnu when
recursing subdirectories.
* acfunctions.m4 (AC_FUNC_GETLOADAVG): Restore the initial value
of LIBS. Otherwise, everyone ends up linking with -lelf for some
configurations.
Reported by Mike Stone.
* aclang.m4 (AC_PROG_CPP): Use double quotes in the for loop
and eliminate ac_tmp_cpp.
(AC_PROG_CXXCPP): Use double quotes in the for loop and
eliminate ac_tmp_cxxcpp.
* acgeneral.m4 (_AC_TRY_CPP): Don't filter out conftest.$ac_ext
from the output - it is only printed by Visual C that gives
correct exit status.
* aclang.m4 (AC_PROG_CPP): Don't try '${CC-cc} -nologo -E'
by the same reason.
The test suite fails on some hosts because for instance
AC_INIT
AC_CHECK_FUNC(exit)
will not look for a compiler, it will just use `cc'.
Macros that need a compiler should require one.
* acgeneral.m4 (_AC_TRY_CPP): New macro. It runs the preprocessor
and checks whether it produces errors or warnings. Don't put grep
output into a variable, use another grep instead.
(AC_TRY_CPP): Use _AC_TRY_CPP. Copy conftest.err to config.log
if the case of an error.
* aclang.m4 (AC_LANG(C), AC_LANG(C++), AC_LANG(Fortran 77)):
define AC_LANG_ABBREV to the short language name.
(_AC_PROG_CPP_WORKS): New macro. It checks whether the current
preprocessor can be used to check for existance of headers.
Most code taken from ...
(AC_PROG_CPP): ... here. Use _AC_PROG_CPP_WORKS. Use shell
"for" to find working CPP. Use AC_LANG_PUSH(C) and AC_LANG_POP -
it's a macro for C only.
(AC_PROG_CXXCPP): Rewritten using _AC_PROG_CPP_WORKS.
* acgeneral.m4 (_AC_WARNING_ERROR_IFELSE)
(__AC_WARNING_ERROR_IFELSE): New macros for checking whether
warnings should be considered errors.
(_AC_DIAGNOSE): Use _AC_WARNING_ERROR_IFELSE.
* doc/autoconf.texi (Preset Output Variables): Correctly specify
what languages are affected by CPPFLAGS, LDFLAGS and LIBS.
Extended description of LDFLAGS and LIBS.
(Compilers and Preprocessors, C Compiler Characteristics):
Recommend Automake as the source of ansi2knr.
(Autoconf Language, Quotation and Nested Macros): English fixes.
(Quotation and Nested Macros): Unclear example replaced with
an explanation of when m4 expands quotes. Added explanation why
unquoted calls are dangerous.
* acspecific.m4 (_AC_OBJEXT): No longer use AC_COMPILE_IFELSE,
which uses $ac_objext hence depends upon _AC_OBJEXT.
* aclang.m4 (AC_PROG_CC, AC_PROG_CXX, AC_PROG_F77): Call
_AC_EXEEXT before _AC_OBJEXT since the former needs $ac_objext.
Akim Demaille [Fri, 11 Aug 2000 08:25:15 +0000 (08:25 +0000)]
* acfunctions.m4 (AM_FUNC_ERROR_AT_LINE, AM_FUNC_FNMATCH,
AM_FUNC_MKTIME, AM_FUNC_OBSTACK, AM_FUNC_STRTOD): Deactivate
their AU_ALIAS definition: Automake 1.4 does not quote the name of
these macros, hence when Autoconf reads Automake's definition the
name is expanded with unpredictable results.
Akim Demaille [Wed, 9 Aug 2000 06:53:07 +0000 (06:53 +0000)]
* autoconf.sh (finalize.awk): Don't leave spaces before the user
function calls.
Reported by John David Anglin.
* doc/autoconf.texi (Limitations of Usual Tools): Start the AWK
section.
* tests/tools.m4 (AWK portability): New test.
Akim Demaille [Mon, 7 Aug 2000 12:07:17 +0000 (12:07 +0000)]
* autoconf.sh (finalize.awk): New subtool, eved from the previous
literal AWK program that performed the `oline' and quadrigraphs
substitution.
Fix its `oline' computation which was dead wrong when there are
empty lines (i.e., always).
Enhance it in order to look for and report unexpanded macro.
Don't let it pretend there are bugs in Autoconf (c:, the test
suite makes this scenario pretty unlikely as opposed to an actual
user bug.
Catch `m4_' too.
Remove the shell snippet which used to do this.
Akim Demaille [Fri, 4 Aug 2000 09:13:16 +0000 (09:13 +0000)]
Solaris' /usr/ucb/expr, and SunOS' /usr/bin/expr fail with the `:'
operator when \(\) is used, and matches a string longer than 120
characters.
Reported by Geoff Keating.
* doc/autoconf.texi (Limitations of Usual Tools): Some words about
this.
* acgeneral.m4 (_AC_SHELL_DIRNAME): Fall back to echo|sed if expr
fails.
From Paul Eggert.
Akim Demaille [Fri, 4 Aug 2000 09:04:56 +0000 (09:04 +0000)]
* acgeneral.m4: (AC_RUN_IFELSE, AC_LINK_IFELSE, AC_COMPILE_IFELSE):
Don't create the source file if none is given, and in this case,
don't remove it either.
Akim Demaille [Wed, 2 Aug 2000 17:40:25 +0000 (17:40 +0000)]
Release Automake from being a substitute to Autoconf.
* acspecific.m4 (_AC_HEADER_TIOCGWINSZ_IN_TERMIOS_H,
_AC_HEADER_TIOCGWINSZ_IN_SYS_IOCTL, AC_HEADER_TIOCGWINSZ,
AC_SYS_POSIX_TERMIOS): New macros from both Automake and the
fileutils.
Akim Demaille [Tue, 1 Aug 2000 12:20:14 +0000 (12:20 +0000)]
AC_VALIDATE_CACHED_SYSTEM_TUPLE no longer works properly since the
AC_CANONICAL_* revamping.
Reported by Peter Eisentraut.
In fact, let's just use the precious variables handling.
* acgeneral.m4 (AC_VALIDATE_CACHED_SYSTEM_TUPLE): Obsoleted.
(_AC_ARG_VAR_PRECIOUS): New macro, eved from...
(AC_ARG_VAR): this macro. Adjust.
(_AC_INIT_PREPARE): `build_alias', `host_alias', and
`target_alias' are precious.
* doc/autoconf.texi: Adjust.
Akim Demaille [Tue, 1 Aug 2000 11:22:42 +0000 (11:22 +0000)]
* acgeneral.m4 (_AC_INIT_PREPARE_ENVIRONMENT): Neutralize also
LC_COLLATE and LC_NUMERIC.
* autoconf.m4: Don't rely on character ranges with tr.
* doc/autoconf.texi (Special Shell Variables): Adjust.
Akim Demaille [Tue, 1 Aug 2000 09:12:34 +0000 (09:12 +0000)]
* acgeneral.m4 (_AC_INIT_NOTICE): Adjust so that there are no
empty lines in the header comments (should be `#' alone instead).
Reported by Didier Verna.
Akim Demaille [Tue, 1 Aug 2000 08:17:07 +0000 (08:17 +0000)]
* acgeneral.m4 (AC_REVISION): Put a dot at the end of the line.
(_AC_INIT_HELP): Output the bug report address at
the end of a `configure --help' output.
(_AC_INIT_NOTICE): Ditto, but at the top of `configure'.
* acgeneral.m4 (_AC_INIT_PREPARE_FDS): New macro, pulled out of
(_AC_INIT_PREPARE): here, where it is called from.
* aclang.m4 (_AC_PROG_CC_G, _AC_PROG_CXX_G): Don't test -z "`foo`".
* acgeneral.m4 (_AC_DIVERT(INIT_PARSE_ARGS)): Rename as...
(_AC_DIVERT(PARSE_ARGS)): this. Adjust dependencies.
(AC_ARG_WITH): Remove spurious newline.
(AC_ARG_VAR): No longer save precious variables in
ac_configure_args, rather snapshot them twice (one kept
unmodified, another one to be written to/overwritten by the cache
file).
(AC_CACHE_SAVE): Let the cache variables named `ac_cv_env_*'
be overwritten when loading the cache (i.e., don't use the
: ${foo=...} trick).
(_AC_ARG_VAR_VALIDATE): Compare the two snapshots of the precious
variables.
(_AC_INIT_PREPARE): Call it after having loaded the cache file.
* doc/autoconf.texi (Installation Directory Variables): New
section, Eved off from `Preset Output Variables', i.e., was a
small part of it, grew independent, and is its equal (at least).
(Coding Style): `$#' padding.
* Makefile.am (editsh, editpl): Do what the doc says you do: use
@datadir\@ instead of @''datadir''@.
* aclang.m4 (_AC_PROG_CC_GNU, _AC_PROG_CXX_GNU,
_AC_PROG_F77_GNU): Use ac_ext. Use ACEOF instead of EOF.
(AC_LANG_CONFTEST): New macro.
(_AC_PROG_CC_G, AC_PROG_CC_C_O, _AC_PROG_CXX_G, AC_PROG_F77_C_O,
_AC_PROG_F77_V_OUTPUT): Use it.
* acgeneral.m4 (AC_TRY_CPP, AC_EGREP_CPP, AC_COMPILE_IFELSE,
AC_LINK_IFELSE, AC_RUN_IFELSE): Likewise.
* aclang.m4 (AC_F77_FUNC): New macro to give the user a clean
way of accessing Fortran name-mangling information other than
through CPP, and without having to know the different possible
name-mangling schemes.
* autoconf.texi: Documented AC_F77_FUNC
* acgeneral.m4 (_AC_CHECK_TYPE_BUILTIN_P): Add `off_t' and
`size_t' which are often used too.
Fix a bug which prevents recognition of `bool' and `char'.
(_AC_CHECK_TYPE_MAYBE_TYPE_P): New macro.
(AC_CHECK_TYPE): Use it.
* aclang.m4 (AC_F77_NAME_MANGLING): Obsolete, becomes
_AC_F77_NAME_MANGLING.
(_AC_F77_NAME_MANGLING): Use independent checks for the
name mangling of symbols with and without underscores.
Use algorithm with for loops instead of recursive macro calls.
(AC_F77_WRAPPERS): Adapt to changes in _AC_F77_NAME_MANGLING.
* doc/autoconf.texi (Fortran 77 Compiler Characteristics):
Remove documentation of AC_F77_NAME_MANGLING.
Remove documentation of f77_case and f77_underscore.
Replace AC_F77_FUNC_WRAPPER with AC_F77_WRAPPERS.
* doc/autoconf.texi (Compilers and Preprocessors, Obsolete
Macros): Don't give boring internal details.
(Language Choice): Typo.
(Limitations of Builtins): Some about `!', `set', `$@'.
(Coding Style): Some about $[@] quotation.
Some about cross-compilation.
The --help message should have paragraphs starting with a title,
the options, and then optionally a small paragraph.
* acgeneral.m4 (AC_DIVERT_ONCE): New macro.
(HELP_VAR_END): New diversion.
(AC_ARG_ENABLE, AC_ARG_WITH, AC_ARG_VAR): Use AC_DIVERT_ONCE.
(AC_ARG_VAR): Follow the --help style.
* acspecific.m4 (AC_PATH_X): Use AC_DIVERT_ONCE.
* aclang.m4 (AC_PROG_CC): Don't require AC_PROG_F77, require
AC_PROG_CC instead.
From Martin Wilck.
(AC_PROG_F77_C_O): Require AC_PROG_F77.
Use a cache variable independent of $F77.
Fixed bug where the F77 compiler output was parsed differently
when detecting the verbose flag than when scanning for linker
options, and as a result the former test failed (under AIX/xlf).
* aclang.m4 (_AC_PROG_F77_V_OUTPUT): New macro to get the
output of linking an F77 program with a given verbose flag,
and preprocess it as required to scan for linker flags.
(_AC_PROG_F77_V): Use the above macro here...
(AC_F77_LIBRARY_LDFLAGS): ...and here, enforcing consistency.
* doc/autoconf.texi (Configuration Actions): Explain the
behavior of AC_CONFIG_HEADERS and AC_CONFIG_FILES with respect to
absolute and relative filenames, and stdin/stdout.
(config.status invocation): Likewise.