(AC_CANONICAL_BUILD): Call it to require config.sub and config.guess.
* lib/autoconf/programs.m4 (AC_PROG_INSTALL): Likewise for install-sh.
* doc/autoconf.texi (Input): Document AC_REQUIRE_AUX_FILE.
* lib/autom4te.in (Automake-preselections): Preselect
AC_REQUIRE_AUX_FILE. Automake 1.10 will trace it.
how deeply nested we are when a suitable tool is found, set the
ac_path_TOOL_found flag.
(_AC_PATH_PROG_FEATURE_CHECK): Encapsulate knowledge of how deeply
nested we are in this macro. Break out of all 3 nested loops if
ac_path_TOOL_found is set.
best tool so far counter rely on the tool path variable name to
avoid checks for one tool being affected by the results of running
the length check on a previous tool.
match expression argument, as different greps have different
regular expression flavours.
(AC_PROG_FGREP): Pass 'FGREP'. fgrep treats all match chars as
literals.
(AC_PROG_EGREP): Pass 'EGREP$'.
(AC_PROG_GREP): Pass 'GREP$'.
* lib/autoconf/programs.m4 (AC_PATH_TOOL, AC_CHECK_TOOL,
AC_CHECK_TOOLS): Warn if a cross-tool is found without
a prefix.
(AC_PATH_TARGET_TOOL, AC_CHECK_TARGET_TOOL,
AC_CHECK_TARGET_TOOLS): New macros.
* doc/autoconf.texi (Generic Programs): Document
(AC_PATH_TARGET_TOOL, AC_CHECK_TARGET_TOOL,
AC_CHECK_TARGET_TOOLS, and warn for future changes
in the behavior of AC_PATH_TOOL, AC_CHECK_TOOL and
AC_CHECK_TOOLS.
(Specifying Names): Document the reason for these future
behavioral changes.
* tests/mktests.sh: Do not generate tests for the
new macros.
* NEWS: Document these changes.
* doc/autoconf.texi: Avoid macros with unbraced arguments,
they make TeX hang up.
refer to the correct file.
* doc/autoconf.texi (AU_DEFUN): Describe more correctly
the behavior of the third argument.
* lib/autoconf/autoupdate.m4 (AU_DEFUN): Describe more
correctly the behavior of the third argument. Document
what the three macros that AU_DEFUN defines do. Fix
warning message when the third argument includes $0
(reported by Alexandre Duret-Lutz).
(AS_INIT): Output shell initialization there. Removed optional
parameter. Expand _AS_SHELL_FN_SPY.
(AS_INIT_WITH_SHELL_FN): Removed.
(_AS_SHELL_FN_SPY): New macro.
(AS_DETECT_REQUIRED, AS_DETECT_SUGGESTED): New
macros.
(AS_SHELL_SANITIZE): Remove loop to find better shell
and documentation for the parameter.
(_AS_DETECT_BETTER_SHELL): Move it here.
(_AS_SHELL_FN_WORK): Remove shell invocation, reformat.
(_AS_RUN): Move it here, support testing with eval.
(AS_REQUIRE_SHELL_FN): Require shell functions when
it is used.
(_AS_LINENO_WORKS): Put around braces, we do not
trigger the bash bug anymore.
* lib/autotest/general.m4: Document M4SH-SANITIZE, do not
use AS_INIT_WITH_SHELL_FN.
* bin/autoconf.in, tests/wrapper.in: Regenerated.
* doc/autoconf.texi: Don't say that the third parameter
is broken.
* lib/autoconf/autoupdate.m4 (AU_DEFINE): New dummy macro.
(AU_DEFUN): Honor the third parameter, create autoupdate
macros with AU_DEFINE.
* lib/autoconf/headers.m4 (AC_USG, AC_MEMORY_H,
AC_DIR_HEADER): Use AU_DEFUN's third parameter.
* lib/autoconf/lang.m4 (AC_LANG_SAVE): Likewise.
* lib/autoconf/programs.m4 (AC_RSH): Likewise.
* lib/autoconf/specific.m4 (AC_HAVE_POUNDBANG,
AC_ARG_ARRAY, AC_CYGWIN, AC_EMXOS2, AC_MINGW32,
AC_XENIX_DIR): Likewise.
* lib/autoconf/types.m4 (AC_INT_16_BITS, AC_LONG_64_BITS,
AC_STRUCT_ST_BLKSIZE, AC_STRUCT_ST_RDEV): Likewise.
* lib/autoconf/status.m4: Remove FIXME.
* tests/local.at (AT_CHECK_AU_MACRO): Ignore stderr, check
that the macro is not present anymore in the updated
configure.ac.
* tests/tools.at (autoupdate AC_LINK_FILES): Ignore stderr
of autoupdate.
grep or ggrep program in PATH that accepts as long lines as
possible.
* lib/autoconf/programs.m4 (_AC_PROG_GREP): Factor out the core of
AC_PROG_GREP.
(AC_PROG_EGREP, AC_PROG_FGREP): Use it to find best available
egrep and fgrep respectively if $GREP -E/-F don't work.
(_AC_PATH_PROG_FEATURE_CHECK): Factor out the common core of
_AC_PROG_GREP, and AC_PROG_SED.
(_AC_FEATURE_CHECK_LENGTH): New helper macro for finding the
longest input length accepted by a command.
(AC_PROG_SED): Use it.
* doc/autoconf.texi (Particular Programs): Document the changes.
* NEWS: Updated.
* lib/m4sugar/m4sh.m4 (_AS_BOURNE_COMPATIBLE):
Extracted from AS_SHELL_SANITIZE.
(_AS_SHELL_FN_WORK, AS_INIT_WITH_SHELL_FN): New
macros.
(AS_SHELL_SANITIZE): Move reinvocation code from
_AS_LINENO_WORKS, use it to find out if shell
functions work.
(_AS_LINENO_WORKS): Don't find another shell if $LINENO
does not work.
(AS_INIT): Pass parameter down to AS_SHELL_SANITIZE.
(AS_REQUIRE_SHELL_FN): Test that AS_INIT_WITH_SHELL_FN
was called.
* lib/autotest/general.m4: Use AS_INIT_WITH_SHELL_FN.
* bin/autoconf.in: Regenerate.
* tests/wrapper.in: Regenerate.
* tests/tools.at: Test the syntax of tests/autoconf
and tests/testsuite.
* TODO: Remove already done things. Update the part
about finding tools for the target.
2003-11-24 Paolo Bonzini <bonzini@gnu.org>
* lib/autoconf/headers.m4 (AC_USG, AC_MEMORY_H,
AC_DIR_HEADER): Make wording more consistent.
* lib/autoconf/specific.m4 (AC_CYGWIN, AC_EMXOS2,
AC_MINGW32): Explain the transition better.
* lib/autoconf/types.m4 (AC_INT_16_BITS,
AC_LONG_64_BITS): Explain the transition better.
2003-11-24 Paolo Bonzini <bonzini@gnu.org>
* doc/autoconf.texi (Obsoleting Macros): Don't
document the third parameter of AU_DEFUN.
* lib/autoconf/autoupdate.m4 (AU_DEFINE): Remove.
(AU_DEFUN): Remove the third parameter, it was not used.
Use AC_DEFUN directly, not AU_DEFINE.
* lib/autoconf/status.m4 (AC_LINK_FILES): Move the message
into the expanded body, consistently with other macros
such as AC_USG.
so that ac_abs_builddir, ac_abs_top_builddir, ac_abs_srcdir,
and ac_abs_top_srcdir are absolute paths.
* lib/m4sugar/m4sh.m4 (AS_SET_CATFILE): Remove misleading comment.
computing the absolute path to d1 in the source hierarchy: it may
not exist at all. So don't cd into it.
From Alexandre Duret-Lutz.
http://mail.gnu.org/archive/html/bug-autoconf/2003-10/msg00205.html
* lib/m4sugar/m4sh.m4 (AS_SET_CATFILE): New.
From Paul Eggert, but named after Perl's IO::Spec->catfile.
* doc/autoconf.texi (Programming in M4sh): Document.
* lib/autoconf/status.m4 (_AC_SRCPATHS): Use it.
(GNU Fortran): New.
* doc/autoconf.texi (Language Choice): Document.
* lib/autoconf/fortran.m4 (AC_FC_SRCEXT, AC_FC_FREEFORM): Assert
the current language is Fortran.
that future autopoint/aclocal/automake/autoreconf will be able
to trace to find where to install local m4 macros.
* doc/autoconf.texi (Input): Document it.
* NEWS: Updated.
* bin/autoreconf.in (autoreconf_current_directory): Create the
AUX_DIR if needed, for sake of automake --add-missing etc.
Suggested by Alexandre Duret-Lutz.
directory for AC_CONFIG_COMMANDS' first argument exists.
This makes valid the invocation of _AC_SRCPATH that follows.
Reported by Eric Sunshine.
* doc/autoconf.texi (Configuration Commands): Adjust.
Reported by Paivio Pollari.
Diagnosed by Nicolas Joly.
* lib/autotest/general.m4 (AT_CLEANUP): Rename AT_help as
AT_help_all.
Instead of making AT_help a sequence of assignments to grow
$at_help_all, just make AT_help_all be the growing contents of
$at_help_all, and make a single assignment in...
(AT_INIT): here.
(at_times_skip): Flip the meaning and rename as...
(at_times_p): this.
(AT_INIT): When summarizing the test that ran, remove
$at_times_file after use, and check it is present before trying to
use it.
output, so that we can track spurious m4sugar output.
* tests/local.at: Require 2.57.
(AT_CHECK_M4SUGAR, AT_CHECK_M4SH): Don't m4_default the arguments that
are defaulted by AT_CHECK anyway.
Use AT_CHECK_AUTOM4TE.
* lib/m4sugar/m4sugar.m4: There should be no output at all: add a
missing dnl.
(&verbose): Remove.
(&getopt): Adjust the note and verb channels, depending upon
--verbose.
* bin/autoheader.in, bin/autom4te.in, bin/autoscan.in,
* bin/autoupdate.in: Adjust.
Use &verb, not &verbose.
&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.
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.
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.
* 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.
(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.
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.
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.
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
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.
Emacs' danger whitespace.el behavior (smashing "useless" spaces in
the middle of a line).
* lib/m4sugar/m4sugar.m4: Likewise.
Remove useless spaces in comments.
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.
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.
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.
* lib/Autom4te/XFile.pm ($me, &name, &lock, &truncate, &seek): New.
* bin/autom4te.in (&Request::save, &Request::load): Use an IO::File
argument instead of a file name, so that the request file remains
open during the whole autom4te run.
($icache_file): New.
(&freeze): Lock the $icache_file.
seperator with m4_append_uniq(). It doesn't work.
(AT_CLEANUP): Add `;' to end of at_help_all.
(AT_INIT): Allow --keywords to be specified more than once. When
grepping $at_help_all for keywords, use the field and keyword
seperators to ensure a complete keyword match. Alter at_prev handling
to support the new --keywords behavior.
to a shell that can handle redirection or quoting correctly.
Override SHELL with the shell detected by configure.
Use of $^O suggested by Tim van Holder.
* bin/autom4te.in (BEGIN): Likewise.
* bin/autoreconf.in (BEGIN): Likewise.
* bin/autoscan.in (BEGIN): Likewise.
* bin/autoupdate.in (BEGIN): Likewise.
* bin/ifnames.in (BEGIN): Likewise.
* bin/ifnames.in: Add final newline to help and version messages.
* lib/autoconf/programs.m4 (AC_PROG_MAKE_SET): Translate colons,
to cope with DOS-style absolute paths, when constructing
${ac_make}.
* lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS, _AC_OUTPUT_FILES):
When constructing paths with IFS=:, quote the path. If we're
constructing a DOS-style absolute path, we don't want to split it
on the colon.
* tests/atspecific.m4 (AT_CHECK_CONFIGURE): Fix typo
in description.
compiler says yeah, but preproc says nope, compiler is right.
Conversely, prompt the reader to send a bug report to the
maintainers of the package, not of Autoconf.
innocuous variant befor including <limits.h> or <assert.h>.
This works around a bug reported by Albert Chin: HP-UX 11i
(and earlier versions) have a <limits.h> that declares
gettimeofday and many other functions.
option. Process --recheck after parsing all options. Pass -q
option to configure on --recheck.
(AC_OUTPUT): Pass -q from configure to config.status.
* lib/autoconf/general.m4 (_AC_INIT_PREPARE): Strip -q from
arguments to record.
* doc/autoconf.texi (config.status Invocation): Document
config.status -q option.
Remove.
We _have_ to stop using the old compatibility scheme that tried to
avoid useless backslashes because Libtool 1.4.3 contains a
AC_DEFINE([error_t], [int],
[Define to a type to use for `error_t' if it is not
otherwise available.])
We _have_ to quote the single quote and backslashes with . The
old compatibility scheme saw that ` was backslashed, and therefore
did not quote the single quote. Hence before this patch, Autoconf
was not compatible with Libtool.
Change name of cache variable to ac_cv_func_malloc_0_nonnull.
(AC_FUNC_MALLOC): Change description of HAVE_MALLOC macro.
(_AC_FUNC_REALLOC_IF): Change message. Change name of cache variable
to ac_cv_func_realloc_0_nonnull.
(AC_FUNC_REALLOC): Change description of HAVE_REALLOC macro.
(_AC_PREPROC_IFELSE, _AC_COMPILE_IFELSE, _AC_LINK_IFELSE)
(_AC_RUN_IFELSE): Use it.
* lib/autoconf/lang.m4 (_AC_COMPILER_OBJEXT):
(_AC_COMPILER_EXEEXT_DEFAULT): Likewise.
* lib/autoconf/c.m4 (AC_LANG_SOURCE): Don't include confdefs.h,
inline it.
* lib/autoconf/fortran.m4 (_AC_F77_NAME_MANGLING):
Die when a simple Fortran program cannot be compiled.
* lib/autoconf/lang.m4 (AC_LANG_CALL, AC_LANG_FUNC_LINK_TRY):
Issue a warning if no function is given.
Move the documentation of AC_TRY_RUN to...
(Obsolete Macros): here.
Adjust all the old samples still using AC_TRY_RUN to AC_RUN_IFELSE.
(autoconf Invocation): Remove the duplicates with `invoking
autom4te'.
* lib/autoconf/headers.m4 (AC_HEADER_STDC): Don't use AC_TRY_RUN.
* lib/autoconf/c.m4 (AC_C_BIGENDIAN): Likewise.
are a few warnings.
* lib/autoconf/autoheader.m4 (AH_VERBATIM, _AH_VERBATIM_OLD):
Quote for Perl '' strings, not "".
* bin/autoheader.in: Invoke autoconf to get '' strings, not ""
strings.
characters is a syntax warning now.
(_AS_QUOTE): Accept $2 as list of characters to quote.
* lib/autoconf/autoheader.m4 (AH_VERBATIM, _AH_VERBATIM_OLD):
Quote for Perl, not sh.
* bin/autoheader.in: When $debug, report the file which is
`do'ne.
* tests/tools.at (autom4te, autoheader): Exercise @bar, not merely
`@', to tickle Perl's lists.
Reported by Carlos Velasco.
Fixes the `AC_ARG_VAR' test failures.
* lib/autoconf/status.m4 (_AC_OUTPUT_FILES): Don't use cmp.
* lib/freeze.mk (check-forbidden-patterns): New.
* lib/autoconf/Makefile.am, lib/autotest/Makefile.am
* lib/m4sugar/Makefile.am (check-local): Use it to catch `cmp'.
* doc/autoconf.texi (Limitations of Usual Tools): HP-UX' cmp and
/dev/null.
Reported months ago by H. Merijn Brand.
* bin/autoupdate.in (&parse_args): Kill old options.
* bin/autoreconf.in (&parse_args): Remove dead options.
Factor some code.
(&autoreconf): Report the directories we enter *and leave*, so
that error messages can be easily located, and use GNU Make
format, so that Emacs' compile mode understands us.
* lib/Autom4te/General.pm (&update_file): Use `verbose' to report
if some file was changed instead of `print'.
* bin/autoheader.in: Suggest AC_DEFINE with 3 args when needed.
(&parse_args): Remove the dead options.
* tests/atspecific.m4 (AT_CHECK_AUTOHEADER): Adjust to the new
autoheader's quiet mode.
(AT_CHECK_AUTOUPDATE): Likewise.
* tests/tools.at (autoupdate): Adjust.
* tests/semantics.at (AC_C_BIGENDIAN): Likewise.
autoheader are Perl programs.
(autoconf, autoheader, autoreconf, autoupdate, ifnames, autoscan)
(autom4te): Specify that the sources are in the $srcdir.
* doc/autoconf.texi (Installation Directory Variables): Adjust.
* lib/autoconf/autoconf.m4: Include it.
* lib/autoconf/functions.m4: Use AN_FUNCTION for all the functions
that were listed in the original autoscan.list.
* lib/autoconf/headers.m4: Similarly with headers.
* lib/freeze.mk (autoconf_m4f_dependencies): Add autoscan.m4.
(.m4.m4f): Don't pass --prepend-include, since that's done by
tests/autom4te itself.
* lib/autoscan/Makefile.am: Include freeze.mk.
(autoscan.list): New target --this file is no longer a source.
(autoscan.pre): New file.
Adjust all uses.
(&init_tables): When --debug, report the list of rules to ease
tracking changes in autoscan.list.
* lib/autoscan/autoscan.list (function): Strip comments, sort.
* lib/autoscan/identifiers, lib/autoscan/makevars,
* lib/autoscan/programs: Make the `kind' explicit, i.e., each
`functions' line is now prefixed with `function:'.
* bin/autoscan.in (&init_tables): Adjust.
word: there is no `default' macro for autoscan.
* bin/autoscan.in (&init_tables): Reject entries with no macro at
all.
* lib/autoscan/functions, lib/autoscan/headers: Make the macro
explicit.
from /tmp.
Thanks to Bill Moseley and Paul Eggert.
* lib/m4sugar/m4sh.m4 (AS_TMPDIR): $2 is the directory into which
the tmpdir must be created.
* lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Have the tmp
dir be in the build tree, instead of $TMPDIR.
`duplicates', since the algorithm was too naive and could keep
`--prefix=1 --prefix=2 --prefix=1' as `--prefix=1 --prefix=2', and
keep `--prefix foo --prefix bar' as `--prefix foo bar'.
Reported by Ralf Corsepius.
* tests/torture.at (Configuring subdirectories): Exercise these
cases.
looking for a replacement file.
* lib/autoconf/general.m4 (AC_CHECK_DECLS): Check that the
directory is relative.
* doc/autoconf.texi (Generic Functions): Clarify the replacement
directory definition.
Reported by Andreas Schwab and Jim Meyering.