Eric Blake [Sat, 12 Dec 2009 14:03:46 +0000 (07:03 -0700)]
Improve wording about m4 quote characters.
* doc/autoconf.texi (Autoconf Language): Autoconf quote characters
come from m4sugar, not raw m4.
(Active Characters): Mention that it is m4sugar which changes
quotes from `' to [].
* THANKS: Update.
Suggested by Josef Vukovic.
Ralf Wildenhues [Sat, 12 Dec 2009 07:40:14 +0000 (08:40 +0100)]
Revert "Improve AC_CONFIG_AUX_DIRS a bit." to fix shtool usage.
* lib/autoconf/general.m4 (AC_CONFIG_AUX_DIRS): Revert test for
shtool as install script. Regression introduced in 2.64.
* NEWS, THANKS: Update.
Report by Dmitry Grebeniuk.
Document Solaris/Heirloom sh set -e issue with command substitutions.
* doc/autoconf.texi (Limitations of Builtins): Fix typos `set -d'
in previous example. Document failure to honor && lists with set -e
and a command substitution in the failing command.
Report and initial patch by Stefano Lattarini against Automake.
Eric Blake [Wed, 25 Nov 2009 00:20:33 +0000 (17:20 -0700)]
Warn if using unnamed diversion.
* lib/m4sugar/m4sugar.m4 (_m4_divert, m4_divert_push): Add
optional parameter, which controls warning.
(m4_divert_pop, m4_cleardivert, m4_divert_require)
(_m4_require_call): Adjust callers.
* lib/m4sugar/m4sh.m4 (AS_REQUIRE): Likewise.
* tests/m4sh.at (AT_DATA_LINENO): Avoid triggering the warning.
* tests/m4sugar.at (AT_CHECK_M4SUGAR_TEXT, m4@&t@_append)
(m4@&t@_text_wrap, recursion): Likewise.
(m4@&t@_warn, m4@&t@_divert_stack): Adjust expected output.
* tests/tools.at (autom4te and whitespace in file names)
(autoconf: the empty token): Avoid triggering the warning.
(autoconf: AC_PRESERVE_HELP_ORDER): New test.
* tests/mktests.sh (ac_exclude_list): Retire prior test.
* NEWS: Document the warning.
* doc/autoconf.texi (Redefined M4 Macros) <m4_divert>,
<m4_undivert>: Make even more explicit that using these directly
is discouraged.
(Diversion support): Further warn against improper diversion
changes.
<m4_divert_text>: Give an example of proper use.
Reported by Mike Frysinger.
Ralf Wildenhues [Tue, 24 Nov 2009 10:36:53 +0000 (11:36 +0100)]
Fix AC_FUNC_MMAP regression with C++ compiler in 2.65.
* lib/autoconf/functions.m4 (AC_FUNC_MMAP): Use const char*
for the constant string. Cast void* to char* for assignment.
* NEWS, THANKS: Update.
Report by Michal Čihař.
Ralf Wildenhues [Sat, 14 Nov 2009 11:40:07 +0000 (12:40 +0100)]
Fix AC_CONFIG_SUBDIRS tracing in autoreconf.
* bin/autoreconf.in (autoreconf_current_directory): Collapse
newlines in the autoconf trace output, similar to how automake
invokes autoconf, so that newlines do not matter in the argument
to AC_CONFIG_SUBDIRS.
* tests/torture.at (Deep Package): Expose this issue in the
test.
* THANKS: Update.
Report by Nathan Schulte.
Eric Blake [Tue, 10 Nov 2009 04:45:00 +0000 (21:45 -0700)]
Fix AC_FUNC_MMAP for cygwin.
* lib/autoconf/functions.m4 (AC_FUNC_MMAP): Make the test more
portable: Actually check for <sys/param.h>, and only use MAP_FIXED
on an address previously returned from mmap.
* THANKS: Update.
Reported by Corinna Vinschen.
Ralf Wildenhues [Sun, 1 Nov 2009 00:04:31 +0000 (01:04 +0100)]
Micro-optimization of config.status substitution.
* lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): No need to
concatenate an empty second string, when we have exactly 148
characters to substitute.
* tests/torture.at (Substitute a 2000-byte string): Add test
exposure for runs of backslashes near the 148 character limit.
Ralf Wildenhues [Sat, 31 Oct 2009 16:04:38 +0000 (17:04 +0100)]
Fix testsuite failure on IRIX and AIX.
* tests/torture.at (Substitute and define special characters):
Double the backslash before the double-quote in
AC_DEFINE_UNQUOTED, as documented for here-documents.
Ralf Wildenhues [Sat, 31 Oct 2009 07:46:58 +0000 (08:46 +0100)]
Do not fail OpenMP tests on systems without aclocal.
* tests/c.at (AC_OPENMP and C, AC_OPENMP and C++): Override
`ACLOCAL=true' for autoreconf, the tests don't need aclocal.
* tests/fortran.at (AC_OPENMP and Fortran 77)
(AC_OPENMP and Fortran): Likewise.
Bruno Haible [Sat, 31 Oct 2009 06:56:53 +0000 (07:56 +0100)]
Improve cache variable documentation.
* doc/autoconf.texi (AC_PROG_AWK, AC_PROG_GREP, AC_PROG_EGREP,
AC_PROG_FGREP, AC_PROG_INSTALL, AC_PROG_MKDIR_P, AC_PROG_LEX,
AC_PROG_YACC, AC_CHECK_PROG, AC_CHECK_PROGS, AC_PATH_PROG,
AC_PATH_PROGS): Don't suggest to use the cache variable, only to
override it, or preferably, a non-cache variable associated with
the test.
(AC_PROG_SED): Likewise. Fix name of cache variable.
(AC_FUNC_GETMNTENT): Fix name cache variable.
(AC_FUNC_LSTAT): Fix typo.
Ralf Wildenhues [Sat, 31 Oct 2009 01:24:09 +0000 (02:24 +0100)]
Fix AC_OPENMP for Fortran (F77 and FC).
* lib/autoconf/fortran.m4 (AC_LANG_FUNC_LINK_TRY(Fortran): New.
* tests/c.at (AC_C_RESTRICT and C++, AC_OPENMP and C)
(AC_OPENMP and C++): New tests.
* tests/fortran.at (AC_OPENMP and Fortran 77)
(AC_OPENMP and Fortran): New tests.
* THANKS: Update.
Report by Bart Oldeman.
Eric Blake [Wed, 28 Oct 2009 18:21:36 +0000 (12:21 -0600)]
Minor optimizations to m4sh.
* lib/m4sugar/m4sh.m4 (AS_VAR_IF, AS_IDENTIFIER_IF)
(AS_LITERAL_IF): Parse fewer bytes during expansion, by visiting
if-true and if-false arguments only once.
Eric Blake [Wed, 28 Oct 2009 17:23:45 +0000 (11:23 -0600)]
Optimize m4_escape for common case.
* lib/m4sugar/m4sugar.m4 (m4_escape): Don't use regex if string is
already sane, by copying from AS_LITERAL_IF. Move guts...
(_m4_escape): ...into new helper.
Eric Blake [Wed, 28 Oct 2009 14:17:27 +0000 (08:17 -0600)]
Fix m4_text_wrap handling of quoted whitespace.
* lib/m4sugar/m4sugar.m4 (m4_escape): New macro.
(m4_text_wrap): Use it to avoid issues with embedded [ and ].
* tests/m4sugar.at (m4@&t@_text_wrap): Test it.
* NEWS: Document this.
* doc/autoconf.texi (Text processing Macros) <m4_escape>:
Likewise.
Reported by Mike Frysinger.
Eric Blake [Wed, 28 Oct 2009 02:14:14 +0000 (20:14 -0600)]
Mention another feature of AC_RUN_IFELSE.
* doc/autoconf.texi (Runtime) <AC_RUN_IFELSE>: Mention that
compiled test program still exists during if-true branch.
* THANKS: Update.
Reported by Stefano Lattarini, suggestion by Ralf Wildenhues.
Eric Blake [Thu, 15 Oct 2009 13:00:38 +0000 (07:00 -0600)]
Improve INSTALL wording.
* doc/install.texi (Basic Installation): Clarify installcheck
behavior.
(Installation Names): Mention that --prefix only overrides
directory locations not specified on the command line. Prefer
/alternate/directory over /path/to. Remove a sentence targeted to
the developer, not the user.
* THANKS: Update.
Suggested by Alfred M. Szmidt.
Bruno Haible [Fri, 9 Oct 2009 03:36:45 +0000 (05:36 +0200)]
Recommend `sh -n' debugging, and public result variables for macros.
* doc/autoconf.texi (Debugging): Recommend to use "bash -n
configure". Recommend the use of result variables as an
alternative to run-if-true/run-if-false parameters.
Clarify documentation about Solaris sed quantifier restriction.
* doc/autoconf.texi (Limitations of Usual Tools) <sed>: '*' does
not work after subexpressions, \{M,N\} only after one-character
expressions. From GCC PR 38923.
* doc/autoconf.texi: Define new index `CA' for cache variables.
(caindex): New macro.
(Cache Variable Index): New appendix node.
(Top, Indices): Adjust menus.
(Cache Variable Names, Site Defaults): Adjust text.
* doc/Makefile.am (CLEANFILES): Add files generated for CA index.
Document AM_MAKEFLAGS workaround to the macro override problem.
* doc/autoconf.texi (Macros and Submakes): Automake makefiles
provide AM_MAKEFLAGS to help with overriding macros in submake
invocations.
Prompted by bug report from Bruno Haible.
Jim Meyering [Tue, 15 Sep 2009 17:21:21 +0000 (19:21 +0200)]
AC_INIT: Use correct value for PACKAGE_TARNAME.
* lib/autoconf/general.m4 (AC_PACKAGE_NAME): Remove what are excess
quotes around the package name, now that m4_tolower's result is quoted.
* tests/base.at (AC_INIT): Test for this.
Work around DJGPP shell function return bug with command substitutions.
DJGPP bash 2.04 has a bug in that `return $ac_retval' done in a
shell function which also contains a command substitution causes
the shell to barf. For more details and a fix see:
<http://www.delorie.com/djgpp/mail-archives/browse.cgi?p=djgpp-workers/2009/09/09/03:35:08>
Possible workaround include putting the `return' in a subshell
or calling another function to set the status.
* lib/autoconf/general.m4 (_AC_PREPROC_IFELSE_BODY)
(_AC_COMPILE_IFELSE_BODY, _AC_LINK_IFELSE_BODY)
(_AC_RUN_IFELSE_BODY, _AC_COMPUTE_INT_BODY): Use AS_SET_STATUS
instead of `return'.
* doc/autoconf.texi (Common Shell Constructs, Shell Functions):
Document the issue.
* THANKS: Update.
Report by Rugxulo and Reuben Thomas.
The DJGPP compiler may create both `a.out' and `a.exe' without -o,
and both `conftest' and `conftest.exe' with `-o conftest', but not
with `-o conftest.exe'.
* lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_O): Also remove
`conftest' without $ac_exeext suffix.
DJGPP fix: do not try to source /dev/null as cache or site file.
* lib/autoconf/general.m4 (AC_SITE_LOAD, AC_CACHE_LOAD): Do not
load the cache or site file if it is `/dev/null', as DJGPP treats
it as a regular file, but the shell then warns about it later.
Fixes several test suite failures on DJGPP.
* tests/autotest.at (Erlang Eunit unit tests): Use "no" as
value-if-not-found for Erlang tools.
* tests/erlang.at: Likewise. Also, use AS_EXIT instead of plain
exit.
* tests/tools.at (autoupdating macros recursively)
(autoupdating with m4@&t@_pushdef, autoupdating with AC_REQUIRE)
(autoupdating with complex quoting): New tests.
* lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Implement
--config.
* doc/autoconf.texi (config.status Invocation): Document it.
* NEWS: Update.
* tests/torture.at (configure invocation): Test it.
Suggested several times, by several people, in the past.
Eric Blake [Fri, 11 Sep 2009 02:16:46 +0000 (20:16 -0600)]
Document that AS_INIT is automatically used.
* doc/autoconf.texi (Initialization Macros) <AS_INIT>: Add words
to clarify that only bare-bones scripts need a direct AS_INIT.
Suggested by Reuben Thomas.
Document sed limitation with escaped metacharacters.
* doc/autoconf.texi (Limitations of Usual Tools) <sed>: Use `%'
rather than `/' as delimiter in an example `s' command.
Document inconsistent treatment of escaped metacharacters.
* THANKS: Update.
Report by Dave Korn, with additional input from Paolo Bonzini
and Eric Blake.
Allow to work on systems without Fcntl::flock implementation.
* configure.ac (PERL_FLOCK): New substitution variable with test
whether Fcntl::flock is implemented by the system.
* bin/Makefile.am (edit): Substitute @PERL_FLOCK@.
* bin/autom4te.in: Call XFile::lock only if flock is
implemented.
Bruno Haible [Fri, 4 Sep 2009 12:32:04 +0000 (06:32 -0600)]
Document another Solaris tr pitfall.
* doc/autoconf.texi (Limitations of Usual Tools) <tr>: Mention
that Solaris /usr/bin/tr does not only have problems with
replacing NUL bytes but discards all NUL bytes from the input.
Paolo Bonzini [Fri, 7 Aug 2009 14:40:34 +0000 (16:40 +0200)]
use a separate program to test whether the compiler works
* lib/autoconf/erlang.m4 (_AC_LANG_NULL_PROGRAM(Erlang)): New.
* lib/autoconf/lang.m4 (AC_LANG_DEFINE): Copy _AC_LANG_NULL_PROGRAM.
(_AC_LANG_NULL_PROGRAM(), _AC_LANG_NULL_PROGRAM): New.
(_AC_COMPILER_EXEEXT_DEFAULT): Print here "whether the xyz compiler works",
before exiting.
(_AC_COMPILER_EXEEXT_WORKS): Merge into _AC_COMPILER_EXEEXT_CROSS, remove
the "whether the xyz compiler works" message, use conftest$ac_cv_exeext
instead of $ac_file.
(_AC_COMPILER_EXEEXT): Try _AC_COMPILER_EXEEXT_DEFAULT using the
null program, and clean conftest.out only after _AC_COMPILER_EXEEXT_CROSS.
(AC_NO_EXECUTABLES): Use _AC_LANG_NULL_PROGRAM.
(_AC_COMPILER_OBJEXT): Use _AC_LANG_NULL_PROGRAM.
Eric Blake [Wed, 12 Aug 2009 20:25:53 +0000 (14:25 -0600)]
Prepare to bulk update copyright years.
* build-aux/update-copyright: New file.
* cfg.mk (gnulib-update): Sync it from gnulib.
(update-copyright-exclude-regexp): New varialbe.
(web-manual): Move...
* maint.mk (web-manual): ...here, to match gnulib.
(update-copyright): New target, copied from gnulib's
maint.mk (it would be nice to sync this file...).
(build_aux): New macro.
(VC_LIST, emit_upload_commands): Use it.
* build-aux/texinfo.tex: Resynchronize from upstream.
* lib/autoconf/general.m4 (_AC_COPYRIGHT_YEARS): Reformat to meet
expected pattern.
* lib/autotest/general.m4 (_AT_COPYRIGHT_YEARS): Likewise.