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.
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.
* doc/autoconf.texi (Installation Directory Variables): Update.
(Limitations of Make): Some about `Single Suffix Rules and
Separated Dependencies'.
* bin/Makefile.am (autoconf, autoheader, autoreconf, autoupdate)
(ifnames, autoscan, autom4te): Un-factor into several rules.
and ac_subst_vars be sh variables containing the list of
AC_SUBST_FILES'ed and AC_SUBST'ed identifiers. Output them in the
DEFAULT diversion.
(_AC_INIT_PREPARE): Use them to log them.
(_AC_SUBST, _AC_SUBST_SED_PROGRAM): Remove.
(AC_SUBST, AC_SUBST_FILE): Instead of buliding the
_AC_SUBST_SED_PROGRAM, store the list of output files/variables in
_AC_SUBST_FILES and _AC_SUBST_VARS.
* lib/autoconf/status.m4 (_AC_OUTPUT_FILES): Adjust.
workaround for ${1+"$@"}.
* doc/autoconf.texi (Shell Substitutions): Explain it.
From Oliver Kiddle and Peter Stephenson.
Have M4sh perform minimal shell sanitizing.
* lib/m4sugar/m4sh.at (AS_SHELL_SANITIZE): Split the `_AS_PREPARE_*'
part into...
(_AS_PREPARE): this new macro.
(AS_PREPARE): New.
(AS_INIT): Invoke AS_SHELL_SANITIZE.
* tests/m4sh.at (AT_DATA_LINENO): Use _AS_PREPARE.
Adjust Autoconf and Autotest.
* lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Don't invoke
AS_SHELL_SANITIZE, AS_INIT did it, but invoke AS_PREPARE.
* lib/autotest/general.m4 (AT_INIT): Likewise.
* lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS):
Invoke _AS_PREPARE (not AS_PREPARE) in addition to
AS_SHELL_SANITIZE.
Use this M4sh to generate Autoconf's shell scripts.
* tests/wrapsh.as: New, precursor of wrapsh.in.
* tests/Makefile.am: Include lib/freeze.mk to get the dependencies
on Autotest and M4sh.
($(TESTSUITE)): Use $(autotest_m4f_dependencies).
(wrapsh.in): New target.
* bin/autoconf.as: New, precursor of autoconf.in.
(autoconf.in): New target.
and host is irrelevant.
(Specifying Names, Canonicalizing): Remove all references to the
backward compatibility hooks. Rather, collect them all into...
(Hosts and Cross-Compilation): this new section.
* doc/install.texi (System Type): Ditto.
* lib/autoconf/general.m4 (AC_CANONICAL_HOST): Explicitly state
that `--host' implies cross-compilation.
AC_PREFIX_PROGRAM fails with dashed program names
* lib/autoconf/general.m4 (AC_PREFIX_PROGRAM): Just use a fresh
variable when looking for the prefix program.
Now it also works for shell variables.
of PACKAGE_NAME, PACKAGE_TARNAME, PACKAGE_VERSION, PACKAGE_STRING,
and PACKAGE_BUGREPORT from here...
(_AC_INIT_DEFAULTS): to here, since it is unrelated to the
arguments.
(_AC_INIT_PREPARE): AC_DEFINE these symbols.
* lib/autotest/general.m4: Use AT_PACKAGE_*, not PACKAGE_*.
(AT_INIT): No longer catch `^PACKAGE_(BUGREPORT|STRING)$'.
* tests/tools.at (autoheader): Adjust.
* tests/atspecific.m4 (AT_CHECK_DEFINES): Adjust.
(&file_name_is_absolute): New, wrappers around routines from
File::Spec.
Use and export them.
(&find_configure_ac): Optionally take a directory where to look at.
* bin/autoreconf.in (&parse_args): Trim the configure.ac part of
the arguments.
Default @ARGV to `.', not find_configure_ac.
(&autoreconf): Argument is a directory.
Trace AC_CONFIG_SUBDIRS and schedule the subdirs for autoreconf'ing.
* doc/autoconf.texi (autoreconf Invocation): Update.
unchanged, remove the source.
(&up_to_date_p): Don't be verbose, be debug.
* bin/autoreconf.in: No longer support --m4dir.
(&autoreconf): Display the full path of the configure.ac we are
studying.
Trace it only once.
Be sure to honor --force with gettextize.
Always run aclocal.
* doc/autoconf.texi: Adjust.
generates too many bug reports.
* lib/autoconf/general.m4 (_AC_RUN_IFELSE): Pass the right exit
status when executing the ACTION-IF-FALSE.
* tests/base.at (AC_TRY_*): Rename as...
(AC_TRY_COMMAND): this.
(AC_RUN_IFELSE): New.
* tests/compile.at (Extensions, C keywords)
(AC_PROG_CPP requires AC_PROG_CC, GNU Fortran 77)
(Broken/missing compilers, AC_PROG_CPP with warnings)
(AC_PROG_CPP without warnings, AC_PROG_CPP via CC): Move to...
* tests/c.at (Extensions, C keywords)
(Broken/missing compilers, AC_PROG_CPP with warnings)
(AC_PROG_CPP without warnings, AC_PROG_CPP via CC)
(AC_PROG_CPP requires AC_PROG_CC): here and...
* tests/fortran.at (GNU Fortran 77): there.
* doc/autoconf.texi (autoconf Invocation): Fix the example:
AC_TRY_RUN is about compilation, not shell commands.
(Test Programs): AC_TRY_RUN works as used to be advertised.
ac_buildpath, ac_top_buildpath, ac_srcpath, and ac_top_srcpath.
(_AC_OUTPUT_FILES): Also substitute srcpath, top_srcpath,
builddir, buildpath, top_builddir, and top_buildpath.
(_AC_OUTPUT_SUBDIRS): Compute the dir variables *before* changing
the current directory.
* lib/autoconf/general.m4 (_AC_INIT_HELP): Compute the dir
variables *before* changing the current directory.
Skip nonexistent dirs.
* doc/autoconf.texi (Preset Output Variables): Document these
variables.
* lib/autotest/general.m4: Do not reset AT_victims.
Don't compute at_srcdir nor at_top_srcdir.
* tests/tools.at: Hence use top_srcdir.
* tests/Makefile.am, tests/autoconf, tests/autoheader,
* tests/autom4te, tests/autoreconf, tests/autoupdate, tests/ifnames:
Remove.
* tests/autoreconf.in, tests/wrappl.in, tests/autom4te.in,
* tests/wrapsh.in, tests/autoupdate.in: New.
* tests/Makefile.am (DISTCLEANFILES, EXTRA_DIST): Adjust.
* configure.ac: Build the position independent wrappers.
* man/Makefile.am: Now that test wrappers are position
independent, use them and drop dark envvar magic.
* lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Provide some form of
`$LINENO' support replacement when not supported.
(_AS_CR_PREPARE, _AS_TR_CPP_PREPARE, _AS_TR_SH_PREPARE): Invoke
them explicitly to be sure they are not output before this section
(via m4_require). Cosmetic only.
* lib/autoconf/c.m4, lib/autoconf/general.m4,
* lib/autoconf/programs.m4: Replace all the occurrences of
`__oline__' with `$LINENO'.
* doc/autoconf.texi (Special Shell Variables): Document LINENO.
* bin/autoupdate.in (&handle_m4_macros, &handle_autoconf_macros):
New, extracted from main.
Use IO::File wherever possible.
(input.m4): Be constant, use -I instead of hard coding $tmp.
Therefore be a quoted heredoc.
Don't invoke `_au_disable', since ac was not loaded, but just
`unm4.m4'.
* bin/autoupdate.in: Use --include, -I, and --force, -f, too.
Use directly autom4te, not autoconf.
* tests/autoupdate: $top_srcdir/lib is needed too for melt files.
`ac_top_builddir' to mimic Automake's vocabulary, which much more
readable.
Adjust callers.
* doc/autoconf.texi (Configuration Actions): Document the vars
available in commands.
Emphasize the risks of collisions in init-cmds.
of the GNU Free Documentation License.
* doc/autoconf.texi: Switch from old style copyright notice to FDL.
Add an appendix "Copying This Manual" for the FDL.
* doc/fdl.texi: New file, from
<http://www.gnu.org/licenses/fdl.texi>.
* doc/Makefile.am (autoconf_TEXINFOS): Add fdl.texi.
used. Well, then use the prototypes when you can, and runtime as
a last resort.
Reported by Artur Frysiak
* acfunctions.m4 (_AC_FUNC_GETPGRP_TEST): New.
(AC_FUNC_GETPGRP): Use it.
First try to compile with 0-ary or 1-ary calls.
Adjust all the routines to use it.
($log): New file (autoscan.log).
(output): Dump detailed logs into $log, and a shortened version to
stderr.
(&scan_makefile): Refine the regexp catching tokens in the code.
* doc/autoconf.texi (autoscan Invocation): Document `autoscan.log'
and the `configure.ac' checking feature.
up.
* acfunctions.m4 (AC_FUNC_WAIT3): Use `break' to silent some
warnings from compilers.
* aclang.m4 (_AC_LANG_COMPILER_GNU): Log the version information
for all the compilers, not only GNU. Hence move from here...
(AC_PROG_CC, AC_PROG_CXX, AC_PROG_F77): to here.
but some sed choke on multiple `;', and other tools (e.g.,
Automake), include the separator themselves.
* acgeneral.m4 (AC_ARG_VAR): Be sure not to leave extra `;'.
current values of the precious variables, not the previously
cached values.
Pass precious variables which are set to config.status.
* doc/autoconf.texi (Setting Output Variables): Document AC_ARG_VAR.
* tests/torture.at (AC_ARG_VAR): New.
AC_SYS_RESTARTABLE_SYSCALLS to the obsolete section,
and explain why and how to replace them.
* acfunctions.m4 (AC_FUNC_WAIT3): Warn as obsolete.
* acspecific.m4 (AC_SYS_RESTARTABLE_SYSCALLS): Likewise.
arguments. So pass the options first.
Fixes PR autoconf/184.
* autoconf.sh (m4_prefiles, m4f_prefiles): New variables.
(run_m4): Remove files.
(run_m4f): Remove.
Update remainder of script to use them.
(for warning in): Do not use a literal comma as it will not be
split by IFS.
whether fseeko and ftello are properly declared.
* acfunctions.m4 (AC_FUNC_FSEEKO): New macro, which worries about
fseeko (and presumably ftello). Do not set _XOPEN_SOURCE; that
causes too many problems in practice.
* acfunctions (fteelo, fseeko): Trigger AC_FUNC_FSEEKO.
* doc/autoconf.texi: Adjust.
as well.
(_AC_INIT_HELP): Likewise.
(NEWS): Note checking for configure.gnu.
* doc/autoconf.texi: Document checking for configure.gnu when
recursing subdirectories.
AC_CONFIG_COMMANDS, AC_CONFIG_FILES): Use a shell variable instead
of an m4 variable to store what must be done, so that sh
conditionals are honored.
(_AC_OUTPUT_LINKS, _AC_OUTPUT_HEADERS,
_AC_OUTPUT_COMMANDS, _AC_OUTPUT_FILES): Adjust.
* tests/semantics.m4: Test the four AC_CONFIG sisters.
* doc/autoconf.texi (Configuration Actions): Promote the use of
literals, show it works properly with sh conditionals.
| AC_DEFUN([TEST1], [REQUIRE([TEST2a])REQUIRE([TEST2b])])
| AC_DEFUN([TEST2a], [])
| AC_DEFUN([TEST2b], [REQUIRE([TEST3])])
| AC_DEFUN([TEST3], [REQUIRE([TEST2a])])
|
| AC_INIT
| TEST1
because it produces TEST3; TEST2a; TEST2b; TEST1.
Fix this bug, implement the solution provided by Axel Thimm,
and test AC_REQUIRE.
* acgeneral.m4: Document this implementation.
(_AC_DEFUN_PRO, _AC_DEFUN_EPI, AC_REQUIRE): Be sure that macros
are emitted in the same order as they are expanded.
(AC_REQUIRE): Forbid being calling out of an AC_DEFUN'd macro (in
particular the top level).
* tests/base.m4 (AC_REQUIRE): New test.
Use this technology to compute `sizeof' even when cross-compiling.
Ideas and initial suggestion by Kaveh Ghazi.
Binary search by Bruno Haible.
* aclang.m4 (AC_LANG_BOOL_COMPILE_TRY,
AC_LANG_BOOL_COMPILE_TRY(C), AC_LANG_BOOL_COMPILE_TRY(C++),
AC_LANG_INT_SAVE, AC_LANG_INT_SAVE(C), AC_LANG_INT_SAVE(C++)): New
macros.
* acgeneral.m4 (_AC_COMPUTE_INT_COMPILE, _AC_COMPUTE_INT_RUN,
_AC_COMPUTE_INT): New.
(AC_CHECK_SIZEOF): Use them.
Check whether the type exists beforehand.
* tests/semantics.m4 (AC_CHECK_SIZEOF): Strengthen.