summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2013-01-03 15:51:26 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2013-01-03 15:51:26 +0000
commitf807201ca4d79d04f6e542f95e276f589d8afb51 (patch)
treef6ff7fee29a9585b328056580996071d38de9ceb
parentd0552477c097163bb65dad1ac6d046bccf2ade53 (diff)
downloadautoconf-f807201ca4d79d04f6e542f95e276f589d8afb51.tar.gz
Commit files from autoconf-2.69 tarball
-rw-r--r--.gitignore68
-rw-r--r--AUTHORS2
-rw-r--r--BUGS2
-rw-r--r--ChangeLog23349
-rw-r--r--ChangeLog.24
-rw-r--r--ChangeLog.323224
-rw-r--r--GNUmakefile28
-rw-r--r--INSTALL370
-rw-r--r--Makefile.am39
-rw-r--r--Makefile.in853
-rw-r--r--NEWS28
-rw-r--r--README5
-rw-r--r--THANKS2
-rw-r--r--TODO2
-rw-r--r--aclocal.m4691
-rw-r--r--autoconf.morph~8
-rw-r--r--bin/Makefile.am2
-rw-r--r--bin/Makefile.in662
-rw-r--r--bin/autoconf.as2
-rw-r--r--bin/autoheader.in2
-rw-r--r--bin/autom4te.in4
-rw-r--r--bin/autoreconf.in2
-rw-r--r--bin/autoscan.in4
-rw-r--r--bin/autoupdate.in2
-rw-r--r--bin/ifnames.in2
-rwxr-xr-xbuild-aux/announce-gen221
-rwxr-xr-xbuild-aux/config.guess256
-rwxr-xr-xbuild-aux/config.sub160
-rwxr-xr-xbuild-aux/elisp-comp93
-rwxr-xr-xbuild-aux/gendocs.sh4
-rwxr-xr-xbuild-aux/git-version-gen149
-rwxr-xr-xbuild-aux/gitlog-to-changelog385
-rwxr-xr-xbuild-aux/gnupload22
-rwxr-xr-xbuild-aux/install-sh527
-rwxr-xr-xbuild-aux/mdate-sh224
-rwxr-xr-xbuild-aux/missing330
-rw-r--r--build-aux/texinfo.tex1302
-rw-r--r--cfg.mk43
-rwxr-xr-xconfigure4390
-rw-r--r--configure.ac11
-rw-r--r--doc/Makefile.am2
-rw-r--r--doc/Makefile.in665
-rw-r--r--doc/autoconf.info25690
-rw-r--r--doc/autoconf.texi275
-rw-r--r--doc/fdl.texi3
-rw-r--r--doc/gendocs_template31
-rw-r--r--doc/gnu-oids.texi2
-rw-r--r--doc/install.texi8
-rw-r--r--doc/stamp-vti4
-rw-r--r--doc/standards.info5780
-rw-r--r--doc/standards.texi496
-rw-r--r--doc/version.texi4
-rw-r--r--lib/Autom4te/C4che.pm2
-rw-r--r--lib/Autom4te/ChannelDefs.pm4
-rw-r--r--lib/Autom4te/Channels.pm13
-rw-r--r--lib/Autom4te/Configure_ac.pm10
-rw-r--r--lib/Autom4te/FileUtils.pm18
-rw-r--r--lib/Autom4te/General.pm42
-rw-r--r--lib/Autom4te/Getopt.pm115
-rw-r--r--lib/Autom4te/Makefile.am4
-rw-r--r--lib/Autom4te/Makefile.in454
-rw-r--r--lib/Autom4te/Request.pm4
-rw-r--r--lib/Autom4te/XFile.pm19
-rw-r--r--lib/Makefile.am2
-rw-r--r--lib/Makefile.in622
-rw-r--r--lib/autoconf/Makefile.am2
-rw-r--r--lib/autoconf/Makefile.in606
-rw-r--r--lib/autoconf/autoconf.m42
-rw-r--r--lib/autoconf/autoheader.m42
-rw-r--r--lib/autoconf/autoscan.m42
-rw-r--r--lib/autoconf/autotest.m42
-rw-r--r--lib/autoconf/autoupdate.m44
-rw-r--r--lib/autoconf/c.m45
-rw-r--r--lib/autoconf/erlang.m42
-rw-r--r--lib/autoconf/fortran.m416
-rw-r--r--lib/autoconf/functions.m42
-rw-r--r--lib/autoconf/general.m47
-rw-r--r--lib/autoconf/go.m42
-rw-r--r--lib/autoconf/headers.m42
-rw-r--r--lib/autoconf/lang.m42
-rw-r--r--lib/autoconf/libs.m42
-rw-r--r--lib/autoconf/oldnames.m42
-rw-r--r--lib/autoconf/programs.m42
-rw-r--r--lib/autoconf/specific.m42
-rw-r--r--lib/autoconf/status.m42
-rw-r--r--lib/autoconf/types.m44
-rw-r--r--lib/autom4te.in2
-rw-r--r--lib/autoscan/Makefile.am2
-rw-r--r--lib/autoscan/Makefile.in524
-rw-r--r--lib/autoscan/autoscan.pre2
-rw-r--r--lib/autotest/Makefile.am2
-rw-r--r--lib/autotest/Makefile.in599
-rw-r--r--lib/autotest/autotest.m42
-rw-r--r--lib/autotest/general.m42
-rw-r--r--lib/autotest/specific.m42
-rw-r--r--lib/emacs/Makefile.in420
-rw-r--r--lib/emacs/autoconf-mode.el2
-rw-r--r--lib/emacs/autotest-mode.el2
-rw-r--r--lib/freeze.mk2
-rw-r--r--lib/m4sugar/Makefile.am2
-rw-r--r--lib/m4sugar/Makefile.in622
-rw-r--r--lib/m4sugar/foreach.m42
-rw-r--r--lib/m4sugar/m4sh.m4138
-rw-r--r--lib/m4sugar/m4sugar.m46
-rw-r--r--m4/autobuild.m43
-rw-r--r--m4/m4.m42
-rw-r--r--m4/make-case.m42
-rw-r--r--maint.mk1567
-rw-r--r--man/Makefile.am2
-rw-r--r--man/Makefile.in478
-rw-r--r--man/autoconf.1113
-rw-r--r--man/autoconf.x1
-rw-r--r--man/autoheader.1108
-rw-r--r--man/autoheader.x1
-rw-r--r--man/autom4te.1192
-rw-r--r--man/autoreconf.1133
-rw-r--r--man/autoscan.170
-rw-r--r--man/autoscan.x1
-rw-r--r--man/autoupdate.172
-rw-r--r--man/autoupdate.x1
-rw-r--r--man/config.guess.162
-rw-r--r--man/config.sub.143
-rw-r--r--man/ifnames.157
-rw-r--r--man/ifnames.x1
-rw-r--r--tests/Makefile.am4
-rw-r--r--tests/Makefile.in643
-rw-r--r--tests/acautoheader.at0
-rw-r--r--tests/acautoupdate.at0
-rw-r--r--tests/acc.at34
-rw-r--r--tests/acfortran.at32
-rw-r--r--tests/acfunctions.at43
-rw-r--r--tests/acgeneral.at34
-rw-r--r--tests/acgo.at15
-rw-r--r--tests/acheaders.at26
-rw-r--r--tests/aclang.at16
-rw-r--r--tests/aclibs.at15
-rw-r--r--tests/acprograms.at27
-rw-r--r--tests/acspecific.at28
-rw-r--r--tests/acstatus.at15
-rw-r--r--tests/actypes.at42
-rw-r--r--tests/atlocal.in4
-rw-r--r--tests/autoscan.at2
-rw-r--r--tests/autotest.at4
-rw-r--r--tests/base.at2
-rw-r--r--tests/c.at2
-rw-r--r--tests/compile.at3
-rw-r--r--tests/erlang.at6
-rw-r--r--tests/foreign.at4
-rw-r--r--tests/fortran.at2
-rw-r--r--tests/go.at6
-rw-r--r--tests/local.at22
-rw-r--r--tests/m4sh.at180
-rw-r--r--tests/m4sugar.at3
-rwxr-xr-xtests/mktests.sh2
-rw-r--r--tests/mktests.stamp0
-rw-r--r--tests/semantics.at2
-rw-r--r--tests/statesave.m46
-rw-r--r--tests/suite.at2
-rw-r--r--tests/tools.at4
-rw-r--r--tests/torture.at2
-rw-r--r--tests/wrapper.as2
161 files changed, 74214 insertions, 24677 deletions
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 119a0ce8..00000000
--- a/.gitignore
+++ /dev/null
@@ -1,68 +0,0 @@
-*.log
-*.m4f
-*.tmp
-*~
-.#*
-.version
-CVS
-/Fetchdir
-/INSTALL
-Makefile
-Makefile.in
-/TAGS
-/aclocal.m4
-/autoconf-[0-9].*
-/autom4te.cache
-/bin/autoheader
-/bin/autoconf
-/bin/autoconf.in
-/bin/autom4te
-/bin/autoreconf
-/bin/autoscan
-/bin/autoupdate
-/bin/ifnames
-/build-aux/elisp-comp
-/build-aux/install-sh
-/build-aux/mdate-sh
-/build-aux/missing
-/build-aux/mkinstalldirs
-/config.cache
-/config.log
-/config.status
-/configure
-/configure.scan
-/doc/*.??
-!/doc/Makefile.am
-/doc/*.???
-/doc/*.html
-/doc/*.info*
-/doc/manual
-/doc/stamp-vti
-/doc/standards
-/doc/version.texi
-/lib/autom4te.cfg
-/lib/autoscan/autoscan.list
-/lib/emacs/*.elc
-/lib/emacs/elc-stamp
-/lib/m4sugar/version.m4
-/log
-/man/*.[1-9]
-/man/autoscan.log
-/releases
-/tags
-/tests/ac*.at
-/tests/atconfig
-/tests/atlocal
-/tests/autoconf
-/tests/autoheader
-/tests/autom4te
-/tests/autoreconf
-/tests/autoscan
-/tests/autoupdate
-/tests/expr
-/tests/ifnames
-/tests/mktests.stamp
-/tests/package.m4
-/tests/testsuite
-/tests/testsuite.dir
-/tests/wrapper.in
diff --git a/AUTHORS b/AUTHORS
index 70edfb90..79e939ad 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -110,7 +110,7 @@ mode: text
coding: utf-8
End:
-Copyright (C) 1996, 2000-2001, 2005, 2007-2011 Free Software Foundation,
+Copyright (C) 1996, 2000-2001, 2005, 2007-2012 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
diff --git a/BUGS b/BUGS
index 82c438ef..175bed8e 100644
--- a/BUGS
+++ b/BUGS
@@ -3,7 +3,7 @@
This file lists the bugs you must be aware of. Be sure to check this
file before using Autoconf, and especially git versions of Autoconf.
- Copyright (C) 2000-2002, 2006-2011 Free Software Foundation,
+ Copyright (C) 2000-2002, 2006-2012 Free Software Foundation,
Inc.
Copying and distribution of this file, with or without
diff --git a/ChangeLog b/ChangeLog
index e51f7d74..3fed19c0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,23055 +1,562 @@
-2011-10-21 Stefano Lattarini <stefano.lattarini@gmail.com>
+2012-04-24 Eric Blake <eblake@redhat.com>
- fortran: define $GFC to "yes" if $FC is a GNU compiler
- * lib/autoconf/fortran.m4 (AC_PROG_FC): Define `$GFC' to "yes" if
- the detected fortran compiler is a GNU compiler, define it to the
- empty string otherwise.
- This is mostly for consistency for what is done for the C, C++
- and Fortran 77 compilers.
- * doc/automake.texi: Update.
-
-2011-10-13 Eric Blake <eblake@redhat.com>
-
- admin: mention recent copyright assignments
- * AUTHORS: Update list.
-
-2011-10-06 Stefano Lattarini <stefano.lattarini@gmail.com>
-
- docs: we prefer US English spelling over British one
- * doc/autoconf.texi (Parallel Make): Prefer `behavior' over
- `behaviour' in a couple of places.
-
-2011-10-06 Stefano Lattarini <stefano.lattarini@gmail.com>
-
- docs: some fixlets in section about shell signal handling
- * doc/autoconf.texi (Signal handling): Rename ...
- (Signal Handling): ... to this, for consistency with other node
- names. Fix some typos and grammaros. Add more URL references
- in comments.
-
-2011-10-06 Stefano Lattarini <stefano.lattarini@gmail.com>
-
- docs: korn shells can have $? > 256 for signal-terminated children
- Some Korn shells, when a child process dies due to signal number
- n, can leave in $? an exit status of 256+n, instead of the more
- common 128+n. See also Austin Group issue 0000051:
- <http://www.austingroupbugs.net/view.php?id=51>
- * doc/autoconf.texi (Signal handling): Document the described Korn
- Shell behaviour, and some of its possible shortcomings.
- Suggestion by Eric Blake.
-
-2011-09-26 Eric Blake <eblake@redhat.com>
-
- docs: relax documentation license by dropping cover text
- * doc/autoconf.texi (copying): Drop front- and back-cover texts.
- * NEWS: Document this.
- Reported by Brian Gough.
-
-2011-09-13 Stefano Lattarini <stefano.lattarini@gmail.com>
-
- docs: signal-related bugs and incompatibilities for the shells
- Motivated by recent discussion on the bug-autoconf list, as well
- as work in the automake testsuite:
- <https://lists.gnu.org/archive/html/bug-autoconf/2011-09/msg00003.html>
- <https://lists.gnu.org/archive/html/bug-autoconf/2011-09/msg00004.html>
- <http://lists.gnu.org/archive/html/automake-patches/2011-09/msg00066.html>
- * doc/autoconf.texi (Signal handling): New paragraph.
- (@menu at "Portable Shell", @detailmenu): Update.
-
-2011-09-19 Eric Blake <eblake@redhat.com>
-
- docs: refer to correct AC_RUN_IFELSE parameter name
- * doc/autoconf.texi (Runtime) <AC_RUN_IFELSE>: Fix wording.
- Reported by Reuben Thomas.
-
-2011-09-16 Eric Blake <eblake@redhat.com>
-
- docs: fix typo in shell example
- * doc/autoconf.texi (Shell Substitutions): Fix typo.
- * THANKS: Update.
- Reported by Nick Bowler.
-
-2011-09-14 Stefano Lattarini <stefano.lattarini@gmail.com>
-
- docs: more details about make VPATH rewriting woes
- * doc/autoconf.texi (Automatic Rule Rewriting): Solaris make
- VPATH rewriting applies to any whitespace-separated word in a
- rule, so it might apply also to shell variables, functions
- and keywords (and automake has already tripped on this once);
- document this, with an example. Since we are at it, do some
- minor reformatting of existing text.
-
-2011-09-13 Stefano Lattarini <stefano.lattarini@gmail.com>
-
- docs: document Solaris 10 /bin/ksh and XPG4 sh 'unset' bug
- * doc/autoconf.texi (Limitations of Builtins): Solaris 10 ksh
- and XPG4 sh also fails upon `unset' of a variable that is not
- set.
-
-2011-07-24 Jim Meyering <meyering@redhat.com>
-
- docs: improve the prose describing _AC_CHECK_TYPE_NEW_BODY
- * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW_BODY): Improve prose.
-
-2011-08-31 Paul Eggert <eggert@cs.ucla.edu>
-
- AC_C_CONST: don't reject gcc -Werror -Wall
- * lib/autoconf/c.m4 (AC_C_CONST): Don't reject gcc when it is used
- with -Werror -Wall during configuring. It's unwise to use GCC
- that way, but apparently enough people do it nowadays that it's an
- issue. These days nobody uses the old compilers that the old
- tests reject, so we can't test this fix against them, but it's
- more important to work with modern GCC (even when misused) than to
- work with no-longer-used compilers. Problem reported by Shevek in
- <http://lists.gnu.org/archive/html/bug-autoconf/2008-11/msg00007.html>
- and raised again by Dan Kegel in
- <http://lists.gnu.org/archive/html/bug-autoconf/2011-08/msg00020.html>.
-
-2011-08-16 Stefano Lattarini <stefano.lattarini@gmail.com>
-
- docs: other issues with parallel BSD make
- Motivated by automake bug#9245:
- <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9245>
- and FreeBSD PR bin/159730:
- <http://www.freebsd.org/cgi/query-pr.cgi?pr=159730>
- * doc/autoconf.texi (Parallel Make): Document other BSD make
- incompatibilities. Reorganize the existing related documentation
- accordingly.
-
-2011-08-08 Stefano Lattarini <stefano.lattarini@gmail.com>
-
- docs: fix minor typos
- * doc/autoconf.texi (Shell Functions): Fix a couple of minor typos.
-
-2011-08-04 Stefano Lattarini <stefano.lattarini@gmail.com>
-
- docs: another Solaris sh bug with redirected `:'
- * doc/autoconf.texi (File Descriptors): Solaris 10 /bin/sh
- "optimizes" away redirected `:' commands in a shell function
- after the first call.
-
-2011-07-31 Paul Eggert <eggert@cs.ucla.edu>
-
- docs: modernize treatment of ns-resolution timestamps
- * doc/autoconf.texi (Limitations of Usual Tools): ns-resolution time
- stamps are now routinely supported by coreutils 'cp' etc.
-
-2011-07-30 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/specific.m4 (AC_SYS_LARGEFILE): Port to Mac OS X 10.5
- by defining _DARWIN_USE_64_BIT_INODE. Imported from gnulib.
-
-2011-07-22 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/specific.m4 (AC_USE_SYSTEM_EXTENSIONS): Quote cleanly.
- This is imported from gnulib. gnulib also has an HP-UX 11.11 fix, but
- let's see if we can do that another way, as it's pretty heaviweight.
-
-2011-07-22 Eric Blake <eblake@redhat.com>
-
- docs: fix minor doc problems
- * doc/autoconf.texi (Why Not Imake): Fix grammar.
- (autoreconf Invocation): Fix short option for --version.
- * THANKS: Update.
- Reported by Christophe Jarry and Russ Allbery.
-
-2011-07-12 Benoit Sigoure <tsunanet@gmail.com> (tiny change)
-
- docs: fix typo in AC_PATH_PROG
- * doc/autoconf.texi (Erlang Compiler and Interpreter):
- s/AC_PROG_PATH/AC_PATH_PROG/.
- * THANKS: Update.
-
-2011-06-30 Paul Eggert <eggert@cs.ucla.edu>
-
- * tests/semantics.at (AC_REPLACE_FUNCS): Test for just-fixed bug.
-
-2011-06-30 Timo Kamph <timo.kamph@tu-harburg.de> (trivial change)
-
- * lib/autoconf/functions.m4 (_AC_REPLACE_FUNCS): Fix tr-cpp problem.
- See http://lists.gnu.org/archive/html/bug-autoconf/2011-06/msg00058.html
-
-2011-06-19 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/functions.m4 (_AC_LIBOBJ_ALLOCA): Be even smarter.
- GCC was too smart for the previous patch. See
- <http://lists.gnu.org/archive/html/bug-autoconf/2011-06/msg00035.html>.
-
-2011-06-18 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/functions.m4 (_AC_LIBOBJ_ALLOCA): Try to outsmart GCC.
- Problem with stack-detection code reported by Andy Wingo in
- <http://lists.gnu.org/archive/html/bug-autoconf/2011-06/msg00032.html>.
- This fix is imported from gnulib's c-stack module.
-
- * doc/autoconf.texi (File Descriptors): Fix texinfo typo.
-
-2011-06-14 Eric Blake <eblake@redhat.com>
-
- doc: mention more about ksh cloexec behavior
- * doc/autoconf.texi (File Descriptors): Clarify that only the exec
- builtin suffers from cloexec issues.
-
- doc: update quoting example
- * doc/autoconf.texi (Autoconf Language): Add AC_LANG_SOURCE use.
- * THANKS: Update.
- Reported by Křištof Želechovski.
-
-2011-05-05 Eric Blake <eblake@redhat.com>
-
- doc: document dash bug with positional parameters
- * doc/autoconf.texi (Shell Substitutions) <${10}>: Document
- a pitfall with $10.
-
-2011-04-27 Eric Blake <eblake@redhat.com>
-
- docs: document NetBSD join bug
- * doc/autoconf.texi (Limitations of Usual Tools) <join>: Mention
- bug in -a parsing.
- Reported by J.T. Conklin.
-
-2011-04-13 Eric Blake <eblake@redhat.com>
-
- maint: reflect recent copyright assignments
- * AUTHORS: Update.
-
-2011-04-05 Eric Blake <eblake@redhat.com>
-
- maint: reflect recent copyright assignments
- * AUTHORS: Update.
-
-2011-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- New macro AC_FC_PP_DEFINE for the preprocessor define flag.
- * lib/autoconf/fortran.m4 (AC_FC_PP_DEFINE): New macro.
- * lib/autom4te.in (Automake-preselections): Preselect it.
- * doc/autoconf.texi (Fortran Compiler): Document it.
- * tests/local.at (_AT_CHECK_ENV): Do not complain about
- FCFLAGS_F nor FC_DEFINE.
- * NEWS: Update.
-
- New macro AC_FC_PP_SRCEXT for preprocessed file extensions.
- * lib/autoconf/fortran.m4 (AC_FC_PP_SRCEXT): New macro.
- * lib/autom4te.in (Automake-preselections): Preselect it.
- * doc/autoconf.texi (Fortran Compiler): Document it, rewriting
- the documentation for AC_FC_SRCEXT along the way.
- * tests/fortran.at (AC_FC_PP_SRCEXT usage): New test.
- * tests/mktests.sh: Exclude the macro from default testing.
- * NEWS: Update.
-
- New macro AC_FC_MODULE_OUTPUT_FLAG: module output directory.
- * lib/autoconf/fortran.m4 (AC_FC_MODULE_OUTPUT_FLAG): New macro.
- * doc/autoconf.texi (Fortran Compiler): Document it.
- * tests/local.at (_AT_CHECK_ENV): Do not complain about
- FC_MODOUT.
- * NEWS: Update.
-
-2011-04-02 Luc Maisonobe <luc@spaceroots.org>
- Julian C. Cummings <cummings@cacr.caltech.edu>
- Alexander Pletzer <pletzer@txcorp.com>
- Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- New macro AC_FC_MODULE_FLAG: Fortran 90 module include path.
- * lib/autoconf/fortran.m4 (AC_FC_MODULE_FLAG): New macro,
- adjusted and rewritten from the AX_F90_MODULE_FLAG macro from
- the Autoconf Macro Archive by Luc Maisonobe, Julian C. Cummings,
- and Alexander Pletzer.
- * doc/autoconf.texi (Fortran Compiler): Document it.
- * tests/fortran.at (AC_FC_MODULE_FLAG): New test.
- * tests/local.at (AT_CHECK_ENV): Do not complain about FC_MODINC
- setting.
- * NEWS, THANKS: Update.
-
-2011-04-02 Luc Maisonobe <luc@spaceroots.org>
- Alexander Pletzer <pletzer@txcorp.com>
- Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- New macro AC_FC_MODULE_EXTENSION: Fortran 90 module extension.
- * lib/autoconf/fortran.m4 (AC_FC_MODULE_EXTENSION): New macro,
- rewritten from the AX_F90_MODULE_EXTENSION macro from the
- Autoconf Macro Archive by Luc Maisonobe and Alexander Pletzer.
- * doc/autoconf.texi (Fortran Compiler): Document it.
- * tests/local.at (_AT_CHECK_ENV): Do not complain about
- FC_MODEXT setting.
- * NEWS, THANKS: Update.
-
-2011-03-26 Jim Meyering <meyering@redhat.com>
-
- README-hacking: fix typo
- * README-hacking: s/just build/just built/.
-
-2011-03-08 Colin Watson <cjwatson@debian.org> (tiny change)
- Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Particular Functions): Document AC_FUNC_FORK
- cache variables.
- * THANKS: Update.
-
-2011-03-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- docs: BSD and Solaris make trailing space macro issue.
- * doc/autoconf.texi (Trailing whitespace in Make Macros):
- Document issue with trailing whitespace in macro settings.
-
-2011-03-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix Cray Fortran flag for AC_FC_IMPLICIT_NONE.
- * lib/autoconf/fortran.m4 (_AC_FC_IMPLICIT_NONE): Use -e I
- not -d i, for Cray ftn.
- * THANKS: Update.
- Thanks to Tobias Burnus for feedback and testing.
-
- docs: document several Fortran and OpenMP cache variables.
- * doc/autoconf.texi (Generic Compiler Characteristics)
- [AC_OPENMP]: Document associated cache variables.
- (Fortran Compiler) [AC_PROG_F77, AC_PROG_FC, AC_PROG_F77_C_O]
- [AC_PROG_FC_C_O, AC_F77_LIBRARY_LDFLAGS, AC_FC_LIBRARY_LDFLAGS]
- [AC_F77_DUMMY_MAIN, AC_FC_DUMMY_MAIN, AC_F77_MAIN, AC_FC_MAIN]
- [AC_F77_WRAPPERS, AC_FC_WRAPPERS, AC_FC_FREEFORM]
- [AC_FC_FIXEDFORM, AC_FC_LINE_LENGTH, AC_FC_CHECK_BOUNDS]
- [AC_F77_IMPLICIT_NONE, AC_FC_IMPLICIT_NONE]: Document and/or
- index the cache variables used by these macros.
-
-2011-03-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
- and Eric Blake <eblake@redhat.com>
-
- build: exclude M4 with buggy strstr
- * m4/m4.m4 (AC_PROG_GNU_M4): When searching PATH, do not accept
- an m4 that has either the gnulib strstr bug, or the glibc/gnulib
- strstr bug.
-
-2011-03-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- docs: fix description of AC_F77_IMPLICIT_NONE.
- * doc/autoconf.texi (Fortran Compiler) [AC_F77_IMPLICIT_NONE]:
- This macro modifies FFLAGS, not FCFLAGS.
-
- AC_FC_SRCEXT: allow gfortran to compile .f77 files.
- * lib/autoconf/fortran.m4 (AC_FC_SRCEXT): Try '-x f77' for .f77
- files, '-x f95' for others, for gfortran.
-
- New macros AC_{F77,FC}_IMPLICIT_NONE to disable Fortran implicit int.
- * lib/autoconf/fortran.m4 (_AC_FC_IMPLICIT_NONE): New internal
- macro.
- (AC_F77_IMPLICIT_NONE, AC_FC_IMPLICIT_NONE): New macros.
- * doc/autoconf.texi (Fortran Compiler): Document them.
- * NEWS: Update.
-
- New macro AC_FC_CHECK_BOUNDS to enable Fortran array bounds checking.
- * lib/autoconf/fortran.m4 (AC_FC_CHECK_BOUNDS): New macro.
- * doc/autoconf.texi (Fortran Compiler): Document it.
- * tests/fortran.at (AC_FC_CHECK_BOUNDS): New test.
- * NEWS: Update.
- Prompted by report from Eve-Marie Devaliere.
-
-2011-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Update known compiler switches for Fortran and OpenMP macros.
- * lib/autoconf/c.m4 (AC_OPENMP): Update for Lahey on GNU/Linux.
- * lib/autoconf/fortran.m4 (_AC_F95_FC): Also try nagfor.
- (_AC_PROG_FC_V): Update documentation for Lahey switches.
- (AC_FC_FREEFORM, AC_FC_FIXEDFORM): Add flags for Absoft, Lahey
- on GNU/Linux, document NAGWare, g95, and f2c switches.
- (AC_FC_LINE_LENGTH): Document NAGware switch. Update Absoft,
- Lahey, NAGWare, Open Watcom, g95, and f2c switches.
-
- tests: accept f2c/fort77 as GNU Fortran 77.
- * tests/fortran.at (GNU Fortran 77): Try to detect f2c wrapper
- fort77 as GNU as well: it defines __GNUC__ too. Fixes testsuite
- failure when f77 is fort77.
- Report from Giulio Paci.
-
- docs: macro synopses document default failure cases.
- * doc/autoconf.texi (Fortran Compiler, Obsolete Macros):
- Document failure case for AC_F77_DUMMY_MAIN, AC_FC_DUMMY_MAIN,
- AC_FC_SRCEXT, AC_FC_FREEFORM, AC_FC_FIXEDFORM,
- AC_FC_LINE_LENGTH, and AC_TRY_RUN macros.
-
- Reword Fortran macro documentation.
- * doc/autoconf.texi (Fortran Compiler): Improve wording for
- AC_FC_FREEFORM, AC_FC_FIXEDFORM, and AC_FC_LINE_LENGTH macros.
-
-2011-02-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- config.status: do not quote $SHELL when rerunning configure.
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Allow
- $SHELL to contain more than one word, when rerunning configure,
- for debugging purposes like CONFIG_SHELL='/bin/sh -x'.
-
-2011-02-21 Ian Lance Taylor <iant@google.com>
-
- * lib/autoconf/go.m4: New file.
- * lib/autoconf/autoconf.m4: Include autoconf/go.m4.
- * lib/autoconf/Makefile.am (dist_autoconflib_DATA): Add go.m4.
- * lib/freeze.mk (autoconf_m4f_dependencies): Add
- $(src_libdir)/autoconf/go.m4.
- * doc/autoconf.texi: Rebuild menus.
- (Preset Output Variables): Mention Go. Document GOFLAGS.
- (Libraries): Mention Go.
- (Go Compiler): New subsection.
- (Language Choice): Mention Go.
- (Generating Sources): Likewise.
- (Running the Preprocessor): Likewise.
- * tests/go.at: New file.
- * tests/suite.at: Include go.at and acgo.at.
- * tests/local.at (_AT_CHECK_ENV): Add GOC and GOFLAGS.
- * tests/Makefile.am (TESTSUITE_GENERATED_AT): Add
- $(srcdir)/acgo.at.
- (TESTSUITE_HAND_AT): Add go.at.
- (AUTOCONF_FILES): Add $(autoconfdir)/go.m4.
- * NEWS: Update.
-
-2011-02-20 Christian Rössel <christian.roessel@gmx.de> (tiny change)
- Markus Geimer <m.geimer@fz-juelich.de> (tiny change)
-
- Fix OpenMP flag detection for various Fortran compilers.
- * lib/autoconf/c.m4 (_AC_LANG_OPENMP(Fortran 77)): Use '!$'
- OpenMP-conditional compilation construct, to force compile
- failure with missing OpenMP flag.
- (AC_OPENMP): Add flags for Cray CCE and NEC SX compilers.
- * THANKS: Update.
-
-2011-02-18 Eric Blake <eblake@redhat.com>
-
- docs: document fourth argument of AC_RUN_IFELSE better
- * doc/autoconf.texi (Runtime) <AC_RUN_IFELSE>: Make synopsis show
- that the default is configure failure. Rework the text about
- proper use of the fourth argument.
-
- long long: don't abort configure when cross-compiling
- * lib/autoconf/types.m4 (AC_TYPE_LONG_LONG_INT): Provide no-op
- cross-compiling fallback; fixing regression from 2011-02-16.
-
-2011-02-16 Patrick Welche <prlw1@cam.ac.uk> (tiny change)
-
- docs: fix a typo
- * doc/autoconf.texi (Generic Structures): Fix typo.
-
-2011-02-16 Matt Kraai <kraai@ftbfs.org> (tiny change)
-
- docs: fix some typos
- * doc/autoconf.texi (testsuite Scripts): Fix typos.
- * THANKS: Update.
-
-2011-02-16 Paul Eggert <eggert@cs.ucla.edu>
-
- autoconf: tune long long tests, particularly for c99
-
- This change is imported from gnulib.
- * lib/autoconf/types.m4 (AC_TYPE_LONG_LONG_INT): Don't bother compiling
- or running anything if c99, or if unsigned long long int does not
- work. In either case, we know the answer without further tests.
- Do not compile _AC_TYPE_LONG_LONG_SNIPPET twice. Instead, compile
- it at most once, and use its results for both long long int and
- unsigned long long int. This is more likely to be efficient in
- the common case where the program wants to check for both long
- long int and unsigned long long int.
- (AC_TYPE_UNSIGNED_LONG_LONG_INT): Don't bother compiling if c99,
- since the answer is already known.
-
-2011-02-15 Eric Blake <eblake@redhat.com>
-
- doc: fix debug advice typo
- * doc/autoconf.texi (Debugging): Put shell option in right place.
- Reported by Reuben Thomas.
-
-2011-02-12 Giulio Paci <giuliopaci@interfree.it> (tiny change)
- Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix detection of link flags for fort77 on GNU/Linux.
- * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): Properly detect
- the fort77 (f2c wrapper) compiler verbose linking output flag.
- Fixes also AC_F77_LIBRARY_LDFLAGS and AC_F77_DUMMY_MAIN.
- * THANKS: Update.
-
-2011-02-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi: Rebuild menus using emacs ^C ^U ^A.
-
-2011-02-04 Paul Eggert <eggert@cs.ucla.edu>
-
- autoconf: new macro AC_HEADER_CHECK_STDBOOL
- * NEWS: Document this.
- * doc/autoconf.texi (Particular Headers): Likewise.
- In example, don't assume a 'system.h' exists.
- * lib/autoconf/headers.m4 (AC_CHECK_HEADER_STDBOOL): New macro.
- Use it with AN_IDENTIFIER, since it's less heavyweight.
- Reindent to match gnulib, since that's a bit nicer.
- (AC_HEADER_STDBOOL): Reimplement in terms of it.
-
-2011-01-29 Jim Warhol <jrw@jwarhol.com> (tiny change)
-
- * doc/autoconf.texi (Introduction): Fix typo.
- * THANKS: Update.
-
-2011-01-27 Stefano Lattarini <stefano.lattarini@gmail.com>
-
- docs: another parallel make issue
- * doc/autoconf.texi (Parallel Make): Document that some make
- implementations, when run in parallel mode, connect stdout and
- stderr of child processes to pipes or temporary files, and might
- re-route stderr of spawned processes to stout. Also document
- that FreeBSD make in parallel mode reuses the same shell for
- multiple commands within one recipe (like NetBSD make does).
-
-2011-01-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
- Eric Blake <eblake@redhat.com>
-
- docs: advise against HP-UX make due to time stamp semantics.
- * doc/autoconf.texi (Timestamps and Make): Document HP-UX 11.31
- make issue with targets having the same time stamps as their
- prerequisites.
- * doc/install.texi (Particular Systems): Warn against using
- HP-UX make.
-
-2011-01-25 Eric Blake <eblake@redhat.com>
-
- maint: reflect recent copyright assignments
- * AUTHORS: Update.
-
-2011-01-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- docs: new section about whitespace trimmmed from make command-lines.
- * doc/autoconf.texi (Command-line Macros and whitespace): New
- section, document trimming of whitespace from macros set on the
- command line and from the environment.
-
-2011-01-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- docs: document how to use comment characters in rules.
- * doc/autoconf.texi (Comments in Make Rules): Explain how to
- produce a `#' in a rule.
- (Comments in Make Macros): Add cross reference.
- Suggestion from Eric Blake.
-
- docs: new sections about comments and whitespace in make macros.
- * doc/autoconf.texi (Top, Portable Make): Adjust menus.
- (Comments in Make Macros, Trailing whitespace in Make Macros):
- New sections.
- Suggestion by Stefano Lattarini.
-
- docs: do not use AIX 5.3 cp -R.
- * doc/autoconf.texi (Limitations of Usual Tools): Document one
- instance of the cp -R bug on AIX 5.3. This seems to have been
- fixed in 6.1 and newer releases.
-
- docs: update entry about unset.
- * doc/autoconf.texi (Limitations of Builtins): NetBSD sh unset
- also fails upon `unset' of a variable that is not set. Bash 2.01
- could also dump core over `unset MAILPATH'.
- Suggestion by Eric Blake.
-
-2011-01-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix LEXLIB and YYTEXT_POINTER with IRIX 6.5 flex 2.5.4.
- * lib/autoconf/programs.m4 (_AC_PROG_LEX_YYTEXT_DECL):
- Overquote nontrivial yyless argument, to compensate for
- underquoted macro definition in IRIX 6.5 flex 2.5.4
- leading to compile failure due to incompatible operands.
- Fixes Automake silent-lex-generic.test failure.
-
-2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- docs: Tru64/OSF sh treats read as special builtin
- * doc/autoconf.texi (Limitations of Builtins): read may exit
- upon unreadable or non-existent file with Tru64/OSF 5.1 sh.
-
-2011-01-12 Eric Blake <eblake@redhat.com>
-
- docs: fix description of m4_ifval
- * doc/autoconf.texi (Conditional constructs) <m4_ifval>: Use
- correct argument order.
- * THANKS: Update.
- Reported by Mostafa.
-
-2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Avoid reference to $CYGWIN in Fortran macros.
- * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS): Require
- AC_CANONICAL_HOST. Replace test for $CYGWIN with $host_s test.
- * tests/fortran.at (AC_F77_DUMMY_MAIN usage)
- (AC_FC_DUMMY_MAIN usage, AC_F77_MAIN usage, AC_FC_MAIN usage):
- Use AT_CONFIGURE_AC and simplify accordingly, so auxiliary
- scripts are copied into the test directories.
- (AC_F77_FUNC usage, AC_FC_FUNC usage): Likewise. Adjust to
- autoheader being used now.
-
- docs: link to Gnulib configmake documentation.
- * doc/autoconf.texi (Defining Directories): Use proper crossref,
- now that the Gnulib manual has a configmake section.
- Thanks to Karl Berry.
-
-2011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- docs: link to 'set -e' shell behavior overview.
- * doc/autoconf.texi (Limitations of Builtins): Add link to
- Sven Mascheck's 'set -e' page. Replace broken Opengroup link.
- Suggestion by Eric Blake.
-
- docs: mention configmake module for defining directories.
- * doc/autoconf.texi (Defining Directories): Mention configmake
- gnulib module.
- Suggestion by Karl Berry and Eric Blake.
-
-2011-01-04 Eric Blake <eblake@redhat.com>
-
- doc: improve install.texi texinfo markup
- * doc/install.texi: Don't force @firstparagraphindent on all
- clients; instead, add it only when building INSTALL. Compress
- copyright.
- * Makefile.am (INSTALL): Match gnulib's formatting.
- Reported by Karl Berry.
-
- maint: update copyright year
- All files changed to add 2011, via 'make update-copyright'.
-
- maint: resync upstream files
- * GNUmakefile: Regenerated by 'make fetch'.
- * build-aux/config.guess: Likewise.
- * build-aux/config.sub: Likewise.
- * build-aux/gendocs.sh: Likewise.
- * build-aux/git-version-gen: Likewise.
- * build-aux/texinfo.tex: Likewise.
- * doc/make-stds.texi: Likewise.
- * lib/Autom4te/Channels.pm: Likewise.
- * lib/Autom4te/Configure_ac.pm: Likewise.
- * lib/Autom4te/FileUtils.pm: Likewise.
- * lib/Autom4te/Struct.pm: Likewise.
- * lib/Autom4te/XFile.pm: Likewise.
-
- maint: document use of copyright ranges
- * README: Copy coreutils wording for allowing copyright year
- ranges.
- * cfg.mk (UPDATE_COPYRIGHT_USE_INTERVALS): Now that GNU Coding
- Standards permit it, prefer shorthand copyright.
- * .x-update-copyright: Exempt an imported file.
-
-2011-01-03 Karl Berry <karl@freefriends.org>
-
- Avoid using @acronym in install.texi.
- * doc/install.texi (Basic Installation, Multiple Architectures)
- (Installation Names): Write `GNU' instead of `@acronym{GNU}'.
-
-2010-12-27 Paul Eggert <eggert@cs.ucla.edu>
-
- autoconf: Use -D_STDC_C99=, not -xc99=all, with Solaris cc
- * lib/autoconf/c.m4 (_AC_PROG_CC_C99): Use -D_STDC_C99= rather than
- -xc99=all to convince Solaris Studio cc to compile c99 programs.
-
-2010-11-26 Paul Eggert <eggert@cs.ucla.edu>
-
- autotest: fix file descriptor leak
- * lib/autotest/general.m4 (_AT_CHECK): Close AS_MESSAGE_LOG_FD
- when running the test. Problem reported by Luke Mewburn in
- <http://lists.gnu.org/archive/html/autoconf/2010-11/msg00036.html>.
-
-2010-11-20 Paul Eggert <eggert@cs.ucla.edu>
-
- autoconf: don't assume sys/stat.h and sys/types.h when testing C89
- Problem reported by Patrick Pelissier in
- <http://lists.gnu.org/archive/html/bug-autoconf/2010-11/msg00019.html>.
- * lib/autoconf/c.m4 (_AC_PROG_CC_C89): Don't include sys/types.h
- and sys/stat.h. Instead, define a dummy struct stat. C89 doesn't
- guarantee sys/types.h and sys/stat.h.
-
-2010-11-10 Reuben Thomas <rrt@sc3d.org> (tiny change)
-
- docs: avoid first person, and credit history to David MacKenzie
- * doc/autoconf.texi (History): Add credit.
-
-2010-10-26 Paul Eggert <eggert@cs.ucla.edu>
-
- docs: Posix now says "((cat))" isn't portable
- * doc/autoconf.texi (Parenthesis): Update documentation to reflect
- what Posix 1003.1-2008 says about "((".
-
-2010-10-20 Eric Blake <eblake@redhat.com>
-
- docs: document dash bug in <>
- * doc/autoconf.texi (File Descriptors): Dash 0.5.5 truncates on
- <>; at least this was fixed in dash 0.5.6.
-
-2010-10-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- tests: avoid AC_CACHE_CHECK test failure with dash.
- * tests/base.at (AC_CACHE_CHECK): Normalize configure exit
- status in presence of syntax error in sourced site file.
- Do not error out if configure is aborted at this point.
- Fixes testsuite failure with dash 0.5.5.1.
-
-2010-10-08 Eric Blake <eblake@redhat.com>
-
- AS_LITERAL_IF: Treat raw = as literal again.
- * lib/m4sugar/m4sh.m4 (_AS_LITERAL_IF): Treat = like +.
- * tests/m4sh.at (AS@&t@_TR_SH and AS@&t@_TR_CPP)
- (AS@&t@_LITERAL_IF): Expand tests.
- * NEWS: Document the fix.
- Reported via Ben Pfaff; originally http://bugs.debian.org/593838
-
-2010-09-24 Joshua G. Hale <jgh.emc@gmail.com> (tiny change)
-
- docs: fix typo in AC_CONFIG_FILES example code.
- * doc/autoconf.texi (Configuration Actions): Fix typo.
- * THANKS: Update.
-
-2010-10-05 Eric Blake <eblake@redhat.com>
-
- doc: suggest a few more workarounds
- * doc/autoconf.texi (Limitations of Usual Tools) <tr>: Mention
- that 'redundant' brackets can work around Solaris bug.
- (File Descriptors): Mention that {} works as well as () for
- silencing file-not-found warnings.
- * THANKS: Update.
- Suggested by Pádraig Brady.
-
-2010-09-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- tests: normalize trailing spaces in gcc -E -dD output.
- * tests/compile.at (AC_LANG_SOURCE example)
- (AC_LANG_PROGRAM example): Remove trailing spaces before
- comparing with expected output. Fixes testsuite failure
- with GCC 2.95.3 on Haiku.
- Report by Scott McCreary.
-
-2010-09-22 Eric Blake <eblake@redhat.com>
-
- Release Version 2.68.
+ Release Version 2.69.
* NEWS: Mention the release.
-2010-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- autom4te: add traces for likely future Automake macros
- * lib/autom4te.in (Automake-preselections): Trace
- AM_MAKEFILE_INCLUDE, AM_NLS, AM_POT_TOOLS, AM_PATH_GUILE,
- AM_PROG_MOC, AM_XGETTEXT_OPTION, _AM_MAKEFILE_INCLUDE.
+2012-04-24 Eric Blake <eblake@redhat.com>
-2010-09-22 Eric Blake <eblake@redhat.com>
+ maint: drop bz2 tarball
+ At 2.68b, I asked whether anyone would miss .gz and .bz2 formats.
+ Consensus was overwhelming that .gz still holds a place in people's
+ hearts, in spite of .xz compressing to smaller files, but no one
+ was able to make a convincing argument for .bz2.
- AC_REPLACE_FUNCS: allow split lines again
- * lib/autoconf/functions.m4 (AC_REPLACE_FUNCS): Flatten newlines
- and move guts...
- (_AC_REPLACE_FUNCS): ...to new helper.
- * tests/semantics.at (AC_REPLACE_FUNCS): Enhance test.
- Reported by Ralf Wildenhues.
+ * configure.ac (AM_INIT_AUTOMAKE): Drop bzip2; xz wins hands down.
-2010-09-21 Eric Blake <eblake@redhat.com>
+2012-04-24 Eric Blake <eblake@redhat.com>
- AC_LIBOBJ: optimize internal use
- * lib/autoconf/general.m4 (_AC_LIBOBJ): Move literal check...
- (AC_LIBOBJ): ...into callers.
- * lib/autoconf/functions.m4 (_AC_REPLACE_FUNC): Likewise, thus
- avoiding a second call to AS_LITERAL_IF.
+ maint: resync files from upstream
+ The files in lib/Autom4te/ are intentionally not synced at this
+ point, since this recent Automake patch:
+ https://lists.gnu.org/archive/html/automake-patches/2012-03/msg00111.html
- AC_REPLACE_FUNCS: restore shell loop for non-literal
- * lib/autoconf/functions.m4 (AC_REPLACE_FUNCS): Handle
- non-literals, which was lost in 2010-02-26 optimization.
- * tests/semantics.at (AC_REPLACE_FUNCS): Enhance test.
- * NEWS: Document the fix.
- * THANKS: Update.
- Reported by Wiseman Jun.
+ was buggy regarding '-' as stdout, and also exposes some latent
+ bugs in autoconf where we use raw 'open' instead of XFile::open.
- maint: resync upstream files
- * build-aux/gendocs.sh: Resync via 'make fetch'.
-
- tests: XFAIL in the face of a MacOS X bug
- * doc/autoconf.texi (Limitations of Usual Tools) <sed>: Mention
- the issue.
- * tests/torture.at (Substitute and define special characters):
- Detect if sed cannot process 8-bit bytes in the C locale.
- * THANKS: Update.
- Reported by Rochan.
-
-2010-09-20 Eric Blake <eblake@redhat.com>
-
- autom4te: don't filter out portions of location traces
- * bin/autom4te.in (_m4_warn): Pass warnings through the channels
- machinery as a single chunk, to avoid partial filtering.
- * lib/m4sugar/m4sugar.m4 (_m4_warn): Document the conventions.
- * tests/m4sugar.at (m4@&t@_warn): Enhance test to catch this.
- Reported by Bruno Haible.
-
-2010-09-17 Eric Blake <eblake@redhat.com>
-
- build: support autobuild
- * cfg.mk (gnulib-update): Add autobuild.m4.
- * configure.ac (AB_INIT): Output autobuild header.
- * m4/autobuild.m4: New file, from gnulib.
- * build-aux/config.guess: Resync from upstream.
+ * build-aux/announce-gen: Resync via 'make fetch'.
* build-aux/config.sub: Likewise.
+ * build-aux/git-version-gen: Likewise.
+ * build-aux/gnupload: Likewise.
+ * build-aux/move-if-change: Likewise.
* build-aux/texinfo.tex: Likewise.
- * doc/fdl.texi: Likewise.
- * doc/gnu-oids.texi: Likewise.
- * doc/make-stds.texi: Likewise.
* doc/standards.texi: Likewise.
- * build-aux/gendocs.sh: Likewise.
-
- config.status: avoid corrupting $ac_t
- * lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS_PREPARE): Use a
- different name, so as not to clash with pre-2.50 usage of "$ac_t"
- as a tab character.
- Reported by Sam Steingold.
-
-2010-09-17 Bruno Haible <bruno@clisp.org>
-
- docs: mark several macros obsolete
- * doc/autoconf.texi (Particular Functions): Mark AC_FUNC_ERROR_AT_LINE,
- AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK, AC_FUNC_MKTIME, AC_FUNC_STRTOD
- as obsolete and refer to Gnulib.
- * NEWS: Mention the change.
-
- AC_FUNC_STRNLEN: more realistic cross-compilation guess
- * lib/autoconf/functions.m4 (AC_FUNC_STRNLEN): Require
- AC_CANONICAL_HOST. When cross-compiling, guess it works everywhere
- except on AIX.
-
-2010-09-16 Eric Blake <eblake@redhat.com>
-
- m4sh: fix today's AS_BOX regression
- * lib/m4sugar/m4sh.m4 (_AS_BOX_LITERAL): Fix underquotation.
- Reported by Stefano Lattarini.
-
- fortran: avoid misparsed FCLIBS from Fortran compiler
- * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): Also skip
- 'Configured by:' lines from gfortran.
- * NEWS: Mention it.
- Reported by Stefano Lattarini.
-
-2010-09-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Add autom4te trace for AM_PROG_AR.
- * lib/autom4te.in (Automake-preselections): Trace
- AM_PROG_AR.
-
-2010-09-16 Eric Blake <eblake@redhat.com>
-
- m4sugar: fix regression in AC_MSG_ERROR expansion
- * lib/m4sugar/m4sugar.m4 (m4_defun_init): Avoid macro
- concatenation on subsequent expansions
- * tests/m4sh.at (AS_WARN and AS_ERROR): New test.
- * tests/m4sugar.at (m4@&t@_require: one-shot initialization):
- Enhance test.
- * NEWS: Document the fix.
- * THANKS: Update.
- Reported by Adrian Bunk and and Nishio Futoshi.
-
-2010-09-13 Stefano Lattarini <stefano.lattarini@gmail.com>
-
- tests: simplify grepping of 'automake --version'.
- * tests/tools.at (autom4te preselections): Remove minor
- redundancies in regular expressions used to grep the output
- 'automake --version' for test skipping.
- * tests/torture.at (Configuring subdirectories)
- (Unusual Automake input files): Likewise.
-
-2010-09-13 Eric Blake <eblake@redhat.com>
-
- autotest: work around zsh bug
- * lib/autotest/general.m4 (AT_DATA): Special case an empty data
- file, since zsh botches empty here-docs.
- * doc/autoconf.texi (Writing Testsuites) <AT_DATA>: Document that
- this allows empty contents.
- * tests/autotest.at (AT_DATA): New test.
- Reported by Ralf Wildenhues.
-
- docs: mention gnulib portability docs
- * doc/autoconf.texi (Function Portability, Header Portability):
- Add external links to gnulib.
-
-2010-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
- Gary V. Vaughan <gary@gnu.org>
-
- docs: document zsh specialty with empty here-documents.
- * doc/autoconf.texi (Here-Documents): zsh 4.3.10 adds a newline
- to empty here-docs.
-
-2010-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- docs: document zsh special array $options.
- * doc/autoconf.texi (Special Shell Variables): Add entry for
- `options'.
-
- doc: minor updates.
- * doc/autoconf.texi (Generic Compiler Characteristics): Use
- second argument of @uref consistently, for nicer OpenMP link.
- (Polymorphic Variables): Restore font-lock.
- (Debugging): Add item for bashdb.
-
- Document and test AT_CHECK args shell execution environment.
- * doc/autoconf.texi (Writing Testsuites): Document that COMMANDS
- is run in a subshell, but RUN-IF-FAIL and RUN-IF-PASS are not.
- * tests/autotest.at (AT@&t@_CHECK execution environment): New
- test.
- * NEWS: Update.
-
- autotest: document and test at_status semantics.
- * doc/autoconf.texi (Writing Testsuites): Document $at_status.
- * tests/autotest.at (at_status): New test.
- * NEWS: Update.
-
- doc: index entries for non-environment, non-output variables.
- * doc/autoconf.texi: Clarify the meaning of the various variable
- indices. Merge variable index `vr' into concept index using
- syncodeindex.
- (Configuration Actions, Generic Programs, Generic Functions)
- (Writing Testsuites): Add index entries for documented shell
- variables used during in configure and testsuite scripts.
-
-2010-09-12 Fernando Carrijo <fcarrijo@freedesktop.org> (tiny change)
-
- docs: fix minor typo and 'See See foo' instances
- * doc/autoconf.texi (Buffer Overruns and Subscript Errors): Fix
- usage of TeX superscript notation to correctly represent number
- exponent.
- (Shell Functions): s/[Ss]ee @xref/@xref/
- (Limitations of Shell Builtins, Canonicalizing): Likewise.
- * THANKS: Update.
-
-2010-09-13 Eric Blake <eblake@redhat.com>
-
- tests: skip broken automake wrapper on MirBSD
- * tests/tools.at (autom4te preselections): Skip, rather than fail,
- if 'automake --version' succeeds without printing a version when
- an environment variable is not set.
- * tests/torture.at (Configuring subdirectories)
- (Unusual Automake input files): Likewise.
-
-2010-09-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- doc: minor indexing update.
- (Shell Substitutions, Site Defaults): Fix markup for indexed
- entried, using @code and @file as appropriate.
- (M4 Macro Index): Clarify which of the indexed macros have m4_
- and which have AS_ prefix.
-
-2010-09-08 Eric Blake <eblake@redhat.com>
-
- m4sh: preserve set -vx over re-exec
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Trace through
- re-exec, to make it easier to debug script startup issues.
- Idea from recent bug-gnulib change to init.sh.
-
- docs: update alloca recommendations
- * doc/autoconf.texi (Particular Functions): Don't redeclare alloca
- on FreeBSD.
- * THANKS: Update.
- Reported by Giorgos Keramidas.
-
- docs: link to GNU Coding Standards in intro
- * doc/autoconf.texi (Introduction): Actually link to the
- standards. Make other references consistent.
-
- docs: mention traditional awk limitation
- * doc/autoconf.texi (Limitations of Usual Tools) <awk>: Mention
- that traditional awk lacks ENVIRON. Add reference to awk manual.
- (Particular Programs) <AC_PROG_AWK>: Add reference to awk section.
- Reported by Ralf Wildenhues.
-
-2010-09-07 Eric Blake <eblake@redhat.com>
-
- docs: mention bash vs. POSIXLY_CORRECT
- * doc/autoconf.texi (Special Shell Variables) <POSIXLY_CORRECT>:
- Document bash behavior.
- * THANKS: Update.
- Reported by Dustin J. Mitchell, via bug-gnulib list.
-
- docs: enhance recommendations on test usage
- * doc/autoconf.texi (Limitations of Builtins) <test (strings)>:
- Mention yet another Solaris issue.
- Reported by Stefano Lattarini.
-
-2010-08-30 Eric Blake <eblake@redhat.com>
-
- tests: avoid trashing /
- * tests/torture.at (AC_CONFIG_COMMANDS with temporary directory):
- Use a relative path, rather than risking issues with /.
- Reported by Ralf Wildenhues.
-
- docs: mention Solaris here-docs vs. ${a-"b c"}
- * doc/autoconf.texi (Shell Substitutions) <${var:=value}>:
- Document problem of "" within here-docs.
- Reported by Ralf Wildenhues.
-
- fortran: always avoid AC_LANG_CONFTEST warning
- * lib/autoconf/lang.m4 (AC_LANG_CONFTEST()): Make the default
- match the fact that the default AC_LANG_SOURCE does not inline
- confdefs.h in the first place.
- * lib/autoconf/fortran.m4 (AC_FC_FREEFORM, AC_FC_FIXEDFORM)
- (AC_FC_LINE_LENGTH, __AC_FC_NAME_MANGLING): Revert previous use of
- AC_LANG_DEFINES_PROVIDED.
- Suggested by Ralf Wildenhues.
-
- config.status: minimize use of $tmp
- * lib/autoconf/status.m4 (_AC_OUTPUT_MAIN_LOOP)
- (_AC_OUTPUT_FILES_PREPARE, _AC_OUTPUT_FILE)
- (_AC_OUTPUT_HEADERS_PREPARE, _AC_OUTPUT_HEADER): Use $ac_tmp
- internally, while preserving $tmp for existing users.
- * tests/torture.at (AC_CONFIG_COMMANDS with temporary directory):
- New test, that $tmp is available but not essential.
-
- docs: avoid use of $tmp outside of config.status use
- * doc/autoconf.texi (Polymorphic Variables, Shell Substitutions):
- Use $var or $t instead.
- (Limitations of Usual Tools): Use $dir instead.
- (Initialization Macros) <AS_TMPDIR>: Make good on the NEWS
- regarding AS_TMPDIR being documented as consuming $tmp.
- Suggested by Ralf Wildenhues.
-
-2010-08-29 Paul Eggert <eggert@cs.ucla.edu>
-
- AC_PROG_YACC: fix comment re what "yacc" stands for
- * lib/autoconf/programs.m4 (AC_PROG_YACC): YACC stands for
- "Yet Another Compiler Compiler", not "Yet Another C Compiler".
- Problem reported by Chris Long in
- <http://lists.gnu.org/archive/html/bug-autoconf/2010-08/msg00134.html>.
-
-2010-08-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Avoid long lines in testsuite script.
- * lib/autotest/general.m4 (AT_INIT): Remove definition of
- AT_groups_all. Initialize at_groups from at_help_all, with
- newlines instead of spaces separating test groups numbers.
- Adjust all code to newlines.
- * NEWS: Update.
- * tests/autotest.at (Huge testsuite): New test.
-
- Try to update config.cache atomically; respect symlinks.
- * lib/autoconf/general.m4 (AC_CACHE_SAVE): Use `mv -f' to update
- the cache file if it is a regular file and not a symlink. Move
- first to temporary name in the target directory if not in the
- current directory for atomicity across mount points.
- * tests/base.at (AC_CACHE_CHECK): Try symlinked cache file.
- * doc/autoconf.texi (Cache Files): Leftover temporary cache
- files may be deleted by the user.
- * NEWS: Update.
-
-2010-08-27 Eric Blake <eblake@redhat.com>
-
- m4sh: protect LINENO against stray macro
- * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Double quote entire
- sed script, to avoid issue uncovered by automake testsuite where
- 'b' was an m4 macro that broke execution on dash.
- Reported by Stefano Lattarini.
-
- m4sh: assume ${a:-b} support
- * tests/m4sh.at (Null variable substitution): New test.
- * doc/autoconf.texi (Shell Substitutions) <${var:-value}>: Mention
- that m4sh guarantees support.
- (Limitations of Usual Tools) <mktemp>: Use it.
- * lib/m4sugar/m4sh.m4 (AS_LINENO_POP, AS_VAR_IF, AS_TMPDIR):
- Exploit use of colon for smaller files.
-
-2010-08-26 Eric Blake <eblake@redhat.com>
-
- docs: document m4_define_default
- * doc/autoconf.texi (Conditional constructs) <m4_define_default>:
- Document it, since gnulib wants to use it.
- * NEWS: Mention this.
-
- autoconf: warn if AC_*_IFELSE lacks complete program
- * lib/autoconf/lang.m4 (AC_LANG_DEFINES_PROVIDED): New macro.
- (AC_LANG_SOURCE): Call it.
- (AC_LANG_CONFTEST): Add warning if new macro is not called.
- * lib/autoconf/c.m4 (_AC_LANG_OPENMP): Add missing AC_LANG_SOURCE.
- * lib/autoconf/fortran.m4 (AC_FC_FREEFORM, AC_FC_FIXEDFORM)
- (AC_FC_LINE_LENGTH, __AC_FC_NAME_MANGLING): Intentionally bypass
- AC_LANG_SOURCE.
- * lib/autoconf/programs.m4 (_AC_PROG_LEX_YYTEXT_DECL): Likewise.
- * tests/compile.at (AC_COMPILE_IFELSE): New test.
- * doc/autoconf.texi (Generating Sources) <AC_LANG_CONFTEST>:
- Document new warning.
- <AC_LANG_DEFINES_PROVIDED>: Document new macro.
- <AC_LANG_SOURCE>: Document use of new macro.
- * NEWS: Document the improvement.
- Suggested by Bruno Haible.
-
- autoconf: fix regression in AC_FUNC_SELECT_ARGTYPES
- * lib/autoconf/functions.m4 (AC_FUNC_SELECT_ARGTYPES): Fix
- quoting; regression from yesteray leaked '' into default value.
- Reported by Ralf Wildenhues.
-
- docs: mention another issue with variable expansion
- In particular, see http://austingroupbugs.net/view.php?id=221
- and http://austingroupbugs.net/view.php?id=255.
- * doc/autoconf.texi (Shell Substitutions) <${var+value}>: New
- subsection.
- <${var=literal}>: Tweak wording. Add mention of an ambiguity
- allowed by POSIX.
- * tests/torture.at (Substitute and define special characters):
- Make test more robust; here, the outer "" is in a here-doc, and
- does not violate the quoting rules of thumb just documented.
-
-2010-08-25 Eric Blake <eblake@redhat.com>
-
- m4sh: revert incorrect mix of "${a='b'}"
- * bin/autoconf.as: Revert leak of literal '' into assignment.
- * tests/tools.at (autom4te preselections): Likewise.
-
- m4sh: revert regression in AS_TMPDIR
- * lib/m4sugar/m4sh.m4 (AS_TMPDIR): The previous patch trying to
- rename $tmp to $as_tmp was wrong; config.status relies on it.
-
- m4sh: reduce size of AS_VAR_TEST_SET
- * lib/m4sugar/m4sh.m4 (AS_VAR_TEST_SET): Make more compact.
-
- tests: improve some shell assumption testing
- * tests/m4sh.at (Functions Support, Functions and return Support)
- (Negated classes in globbing): Update comments.
- (AS@&t@_VAR basics): Test comparison to empty string.
-
- docs: mention cost of globbing during variable expansion
- * doc/autoconf.texi (Shell Substitutions) <${var=literal}>:
- Recommend quoting substitutions that might trigger globbing.
- (Limitations of Builtins) <:>: Likewise.
- * bin/autoconf.as: Follow our own advice.
- * lib/autoconf/functions.m4 (AC_FUNC_SELECT_ARGTYPES): Likewise.
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Likewise.
- * lib/autoconf/status.m4 (AC_OUTPUT): Likewise.
- * lib/autotest/general.m4 (_AT_FINISH): Likewise.
- * lib/m4sugar/m4sh.m4 (AS_TMPDIR): Likewise.
- * tests/autotest.at (parallel autotest and signal handling):
- Likewise.
- * tests/c.at (AC_OPENMP and C, AC_OPENMP and C++): Likewise.
- * tests/foreign.at (shtool): Likewise.
- * tests/fortran.at: Likewise.
- * tests/tools.at (autom4te preselections): Likewise.
- * tests/torture.at (VPATH): Likewise.
-
- m4sh: fix some namespace safety issues
- * lib/m4sugar/m4sh.m4 (_AS_SHELL_SANITIZE): Avoid problems if
- as_myself is inherited from environment.
- (AS_TMPDIR): Be namespace clean.
-
-2010-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- tests: fix AC_CACHE_CHECK to skip with bad shells.
- * tests/base.at (AC_CACHE_CHECK): Skip test with malformed
- config.site file if the shell does not report syntax errors
- from a sourced file. Fixes test failure on AIX and FreeBSD.
- Report from Rainer Tammer.
-
-2010-08-24 Paul Eggert <eggert@cs.ucla.edu>
-
- AC_HEADER_STDBOOL: avoid spurious failure with modern xlc
- * lib/autoconf/headers.m4 (AC_HEADER_STDBOOL): Move the "bool e =
- &s;" test into the main program, as C99 might plausibly be
- interpreted as not requiring support for this construction in
- static initializers. Remove the "#if defined __xlc__" stuff, as
- the bug is not present in recent xlc implementations, and they
- reject the test for other (valid) reasons. People using ancient
- xlc versions, if any, are suggested to update to fixed versions.
- Reported by Ralf Wildenhues in the thread starting at:
- http://lists.gnu.org/archive/html/bug-autoconf/2010-08/msg00103.html
-
-2010-08-24 Eric Blake <eblake@redhat.com>
-
- AC_FUNC_GETLOADAVG: don't define SVR4 on cygwin
- * lib/autoconf/functions.m4 (_AC_LIBOBJ_GETLOADAVG): Only define
- SVR4 when -lkvm is required.
- * THANKS: Update.
- Reported by Yaakov Selkowitz.
-
-2010-08-23 Eric Blake <eblake@redhat.com>
-
- AC_HEADER_STDBOOL: avoid spurious clang failure
- * lib/autoconf/headers.m4 (AC_HEADER_STDBOOL): Drop gcc (and by
- extension clang) check in favor of a gnulib test. Force failure,
- rather than merely testing for a compiler extension.
- * THANKS: Update.
- Reported by Anders Kaseorg.
-
-2010-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- doc: AIX sed dislikes indented comments.
- * doc/autoconf.texi (Limitations of Usual Tools) <sed>: Update.
-
-2010-08-19 Stefano Lattarini <stefano.lattarini@gmail.com>
-
- Fix autoreconf docs w.r.t. AUTOM4TE environment variable.
- * doc/autoconf.texi (Using autoreconf to Update configure
- Scripts): List `AUTOM4TE' among the environment variables
- honored by autoreconf.
- * bin/autoreconf.in ($help): Likewise.
-
-2010-08-17 Eric Blake <eblake@redhat.com>
-
- doc: improve AS_VAR_IF details
- * doc/autoconf.texi (Polymorphic Variables) <AS_VAR_IF>: Make it
- clear that user must supply quotes as needed.
- * THANKS: Update.
- Suggested by Randall Cotton.
-
-2010-08-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix Autotest --errexit to exit after XPASSing tests.
- * lib/autotest/general.m4 (AT_INIT) <at_fn_group_postprocess>:
- Exit after an unexpected passing test if $at_errexit.
- * tests/autotest.at (errexit): Also try tests that xpass, skip,
- xfail, or fail hard.
-
-2010-08-14 Eric Blake <eblake@redhat.com>
-
- AC_INIT: allow bugreport to contain '?'
- * lib/autoconf/general.m4 (_AC_INIT_PACKAGE): Relax check.
- * tests/base.at (AC_INIT with unusual version strings): Enhance
- test.
- * doc/autoconf.texi (Initializing configure): Document this.
- * NEWS: Likewise.
- * THANKS: Update.
- Reported by Yavor Doganov and others.
-
-2010-08-10 Peter Rosin <peda@lysator.liu.se>
-
- Keep testsuite files on unexpected pass.
- * lib/autotest/general.m4 (AT_INIT) <at_fn_group_postprocess>:
- Don't cleanup the group directory when a test unexpectedly passes.
- * tests/autotest.at (Cleanup): Check that an unexpected pass leaves
- the test group directory intact.
-
-2010-08-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Skip AC_FC_SRCEXT([f90]) tests with a Fortran 77 compiler in $FC.
- * tests/fortran.at (AC_FC_FREEFORM with AC_FC_SRCEXT)
- (AC_FC_FIXEDFORM with AC_FC_SRCEXT): Skip if the compiler cannot
- handle files with .f90 extension.
- Report by Luke Dalessandro.
-
- Fix testsuite failures with typical m4-x.y.z program suffix.
- * tests/local.at (AT_CHECK_M4): Normalize hyphens and digits
- after the `m4' program name.
- * THANKS: Update.
- Report by Luke Dalessandro.
-
-2010-08-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix description of AC_CONFIG_TESTDIR to not mention atconfig.in.
- * doc/autoconf.texi (Making testsuite Scripts): atconfig is not
- created from an input template.
-
-2010-08-05 Bruno Haible <bruno@clisp.org>
- and Eric Blake <eblake@redhat.com>
-
- AC_FUNC_ALLOCA: modernize
- * lib/autoconf/functions.m4 (AC_FUNC_ALLOCA): Assume that alloca's
- return type is 'void *', not 'char *'. Supply C89 prototype.
- Reported by Thomas Klausner.
-
-2010-08-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix testsuite failure due to bugs in third-party aclocal macros.
- * tests/torture.at (Non-literal AC_CONFIG_SUBDIRS): Create a
- hand-written aclocal.m4 file, so the -Werror test doesn't fail
- over aclocal warnings about errors in third-party macro files.
- Simplify test accordingly, calling autoreconf throughout.
- Report by Bob Friesenhahn.
-
- Fix AC_LANG_SOURCE and AC_LANG_PROGRAM tests.
- * tests/compile.at (AC_LANG_SOURCE example)
- (AC_LANG_PROGRAM example): Fix broken sed script for
- extracting the interesting part of the conftest.c file.
- Fixes test failure on Haiku.
- * THANKS: Update.
- Report by Scott McCreary.
-
-2010-08-03 Eric Blake <eblake@redhat.com>
-
- docs: mention bash bug with word splitting
- * doc/autoconf.texi (Shell Substitutions): Document bash bug, and
- zsh default behavior difference.
- Reported by Ralf Wildenhues.
-
- docs: mention ksh bug with function syntax
- * doc/autoconf.texi (Shell Functions): Document ksh93 limitation.
-
-2010-08-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix typo in Autotest color test, for dash testsuite failure.
- * tests/autotest.at (colored test results): Use exit not
- Exit. Fixes test failure with dash 0.5.4.
-
-2010-08-02 Eric Blake <eblake@redhat.com>
-
- docs: track recent copyright assignment
- * AUTHORS: Add Peter Rosin.
-
-2010-08-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Add testsuite exposure for last-minute fix in 2.67.
- * tests/autotest.at (parallel args but non-working mkfifo):
- New test, to expose the failure v2.66-23-g991183c avoided.
-
- Ensure unnamed test group categories are separated from previous.
- * doc/autoconf.texi (Writing Testsuites) <AT_BANNER>: Update
- description.
- * lib/autotest/general.m4 (AT_INIT) <at_fn_banner>: Set banner
- to single space, not empty line, once printed. For empty
- banners, print a single empty line to separate them from a
- previous test group category.
- * tests/autotest.at (Banners): Insert another test group; adjust
- tests accordingly. Extend test to cover semantic change.
- * NEWS: Update.
-
-2010-07-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix typos in perlpod docs.
- * lib/Autom4te/ChannelDefs.pm, lib/Autom4te/Channels.pm,
- lib/Autom4te/General.pm: Fix typos and spacing in perlpod
- documentation and in comments.
-
-2010-07-29 Eric Blake <eblake@redhat.com>
-
- docs: mention ksh file descriptor limitation
- * doc/autoconf.texi (File Descriptors): Document issue with fd 10
- and above.
- Reported by Ralf Wildenhues.
-
- docs: mention cd limitation
- * doc/autoconf.texi (Limitations of Builtins) <cd>: Document
- issues with empty argument.
-
-2010-07-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Add missing index entries to manual.
- * doc/autoconf.texi (Fortran Compiler, Language Choice): Add
- index entries for AC_FC_DUMMY_MAIN, AC_LANG; reformat entry for
- AC_LANG_ASSERT.
-
-2010-07-21 Eric Blake <eblake@redhat.com>
-
- Release Version 2.67.
- * NEWS: Mention the release.
-
- Prepare for release.
- * maint.mk (PREV_VERSION_REGEXP): New macro, missed when
- backporting update-NEWS_hash from gnulib.
- * cfg.mk (old_NEWS_hash): Correctly generate.
- * build-aux/gendocs.sh: Temporarily break sync from upstream, to
- avoid including spurious directories in info source tarball.
-
- Avoid spurious testsuite failures.
- * doc/autoconf.texi (Generating Sources): Don't mix gcc '-E' and
- '-o -', since the former already implies stdout, while the latter
- creates -.exe on cygwin.
- * tests/compile.at (AC_LANG_SOURCE example)
- (AC_LANG_PROGRAM example): Likewise. Also prevent any config.site
- interference.
-
- Partially revert previous patch.
- * lib/autotest/general.m4 (AT_INIT) <serial testing>: Changing
- at_jobs here breaks output if -j2 was requested but shell is
- insufficient to support parallel testing.
- Reported by Ralf Wildenhues.
-
- Minor testsuite size reduction.
- * lib/autotest/general.m4 (AT_INIT) <serial testing>: Ensure
- at_jobs is 1.
- (AT_SETUP, AT_CLEANUP): Factor initialization code...
- (AT_INIT) <at_fn_group_banner>: ...into new function.
- Based in part on suggestion by Ralf Wildenhues.
-
-2010-07-20 Eric Blake <eblake@redhat.com>
-
- Close job control fd before running tests.
- * doc/autoconf.texi (File Descriptors): Clarify limitations.
- * lib/autotest/general.m4 (AT_CLEANUP): Avoid leaking job control
- fifo fd to user tests.
- (AT_INIT): Delete comment, now that close is done elsewhere.
- Suggested by Ralf Wildenhues.
-
-2010-07-20 Paul Eggert <eggert@cs.ucla.edu>
- and Eric Blake <eblake@redhat.com>
-
- Plug race in parallel autotest.
- * lib/autotest/general.m4 (AT_INIT) <Fifo job dispatcher>: Track
- two fds to fifo in parent, to avoid race where parent can see EOF
- before child opens fifo. Avoid any atomicity problems with tokens
- larger than one byte.
- * NEWS: Document the bug fix.
-
-2010-07-20 Eric Blake <eblake@redhat.com>
-
- Another empty argument through expr workaround.
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Detect empty
- arguments. Reject empty file argument.
- * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
- Check for missing argument.
+ * maint.mk: Likewise.
- Also reject ' and newline from AC_INIT strings.
- * lib/autoconf/general.m4 (_AC_INIT_LITERAL): Reject a couple more
- problematic characters.
- * tests/base.at (AC_INIT with unusual version strings): Enhance
- test.
- * doc/autoconf.texi (Initializing configure) <AC_INIT>: Further
- clarifications, and clean up wording about use of m4_esyscmd.
- * NEWS: Update previous news entry.
- Suggested by Paolo Bonzini.
+2012-04-24 Eric Blake <eblake@redhat.com>
-2010-07-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ doc: fix bad @xref uses
+ Upstream gnulib maint.mk improvements caught a few issues we
+ should fix, as well as a few issues in files we copy from
+ other sources that we will just ignore here.
- Let autoreconf pass warning flags to new-enough aclocal.
- * bin/autoreconf.in ($aclocal_supports_warnings)
- ($automake_supports_warnings): New globals.
- (parse_args): Set and use them. Be sure to invoke `aclocal
- --help' and `automake --help' just once each.
- * NEWS: Update.
- Prompted by report from Bruno Haible.
+ * doc/autoconf.texi (Generic Programs, Special Shell Variables)
+ (Limitations of Builtins): Use references correctly.
+ * cfg.mk
+ (exclude_file_name_regexp--sc_prohibit_undesirable_word_seq)
+ (exclude_file_name_regexp--sc_useless_cpp_parens): Add exemptions.
- Fix parsing of empty variable settings on the command line.
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Work around
- expr bug returning 0 instead of the empty string.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
+2012-04-24 Bruno Haible <bruno@clisp.org>
- Fix typo in the manual.
- * doc/autoconf.texi (AC_ACT_IFELSE vs AC_TRY_ACT): Fix typo.
+ AC_INIT: remove a transitional warning
+ On bi-arch systems (such as x86 / x86_64) it is often necessary to pass
+ the --host option together with an appropriate value for CC. But this
+ triggers a warning:
-2010-07-19 Eric Blake <eblake@redhat.com>
+ $ ./configure --host=i686-pc-linux-gnu CC="gcc -m32 -march=i586"
+ configure: WARNING: if you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used
+ ..
- Fix up AC_INIT vs. " issues, and document it.
- * doc/autoconf.texi (Initializing configure): Improve
- documentation on argument restrictions.
- * NEWS: Tweak information.
- * lib/autoconf/general.m4 (_AC_INIT_GENERAL): New macro, that also
- rejects literal ".
- (_AC_INIT_PACKAGE): Use it to plug hole in last patch.
- * tests/base.at (AC_INIT with unusual version strings): Enhance
- test.
+ This warning was introduced on 2000-06-30, in commit
+ <http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=cb2e761b8e1181f97e8e09d85526bd22078433db>
+ with the remark "Re-enable the old behavior of --host and --build."
-2010-07-19 Eric Blake <eblake@redhat.com>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ This warning was meant to warn users about a changed semantics of
+ --build and --host. This change is now 12 years in the past; users
+ have had enough time to learn it. I therefore suggest to remove the
+ warning.
- Relax AC_INIT requirements for PACKAGE and VERSION strings again.
- * lib/m4sugar/m4sh.m4 (AS_LITERAL_HEREDOC_IF): New macro.
- (_AS_LITERAL_HEREDOC_IF, _AS_LITERAL_HEREDOC_IF_YES)
- (_AS_LITERAL_HEREDOC_IF_NO): New helper macros.
- * lib/autoconf/general.m4 (_AC_INIT_PACKAGE): Use
- AS_LITERAL_HEREDOC_IF for PACKAGE and VERSION strings.
- * tests/base.at (AC_INIT with unusual version strings): New test.
- * tests/m4sh.at (AS@&t@_LITERAL_IF): Extend test.
- * NEWS: Update.
+ I've done lots of cross and bi-arch compilations in the last 10 years,
+ all with --host and without --build, and have never observed a problem
+ with it, except for the warning. Simply relying on config.guess is sufficient.
-2010-07-19 Eric Blake <eblake@redhat.com>
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Don't warn if --host
+ given without --build.
- Fix testsuite failures from previous patch.
- * lib/autoconf/c.m4 (_AC_PROG_PREPROC_WORKS_IFELSE): Also remove
- conftest.i when preprocessor tests break out of a loop.
+2012-04-24 Bruno Haible <bruno@clisp.org>
-2010-07-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ doc: fix incorrect and incomplete doc about cross-compilation mode
+ * doc/autoconf.texi (Runtime): Mention the effect of the cross-
+ compilation mode on AC_RUN_IFELSE.
+ (Specifying Target Triplets): Fix description of --host's effects.
+ (Hosts and Cross-Compilation): Remove incorrect statement about
+ --host's effects.
- Allow inspecting AC_PREPROC_IFELSE output in true branch.
- * lib/autoconf/general.m4 (_AC_PREPROC_IFELSE_BODY): Redirect
- preprocessor output to conftest.i rather than /dev/null.
- (_AC_PREPROC_IFELSE): Remove conftest.i in the postprocessing.
- * tests/compile.at (Order of user actions and cleanup): Extend
- test in the ACTION-IF-TRUE branch.
- * doc/autoconf.texi (Running the Preprocessor): Document new
- feature.
- * NEWS: Update.
+2012-04-23 Paul Eggert <eggert@cs.ucla.edu>
- Fix AC_FC_LIBRARY_LDFLAGS detection for BlueGene xlf -qipa.
- * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS): Ignore
- '-link', added spuriously when -qipa is used with the XL
- Fortran compilers on BlueGene.
+ doc: document --build and cross-compilation better
+ * doc/autoconf.texi (Specifying Target Triplets): Mention that
+ specifying a build-type that differs from host-type enables
+ cross-compilation. Problem reported by Bruno Haible in:
+ http://lists.gnu.org/archive/html/autoconf-patches/2012-04/msg00009.html
- manual: compiler flags -D and -L should not be followed by space
- * doc/autoconf.texi (Preset Output Variables): Remove space
- between -D and -L flags and their arguments, traditional cpp
- implementations like Solaris 10, IRIX 6.5, OSF Tru64 5.1D,
- AIX 5.3 do not accept it.
+2012-04-11 Jim Meyering <meyering@redhat.com>
-2010-07-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ maint: avoid "make syntax-check" failure
+ * cfg.mk (old_NEWS_hash): Update to reflect typo fix in old news.
- Fix comment typo in the manual.
- * doc/autoconf.texi (Generic Compiler Characteristics): Refer
- to the right test in the example marker comment.
- Spotted by Eric Blake.
+2012-03-28 Stefano Lattarini <stefano.lattarini@gmail.com>
-2010-07-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ cosmetics fix imprecise comment in Autom4te::General
+ * lib/Autom4te/General.pm: This file is *not* used by Automake;
+ adjust comments accordingly.
- New Fortran macro AC_FC_LINE_LENGTH.
- * lib/autoconf/fortran.m4 (AC_FC_LINE_LENGTH): New macro.
- * doc/autoconf.texi (Fortran Compiler): Document it.
- * tests/fortran.at (AC_FC_LINE_LENGTH): New test.
- * NEWS: Update.
+2012-03-07 Paul Eggert <eggert@cs.ucla.edu>
- Fix wording about AC_CONFIG_SUBDIRS warning.
- * doc/autoconf.texi (Subdirectories): We warn, not error, about
- nonexistent config subdirs, but only at configure run time.
+ tests: fix port of AT_CHECK_ENV to hosts with flaky grep
+ * tests/local.at (AT_CHECK_ENV): Don't copy the buggy grep's
+ diagnostics to stderr, as that causes AT_CHECK to fail. They can
+ be found in the stderr-* files if this is needed for debugging.
-2010-07-10 Eric Blake <eblake@redhat.com>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+2012-03-07 Eric Blake <eblake@redhat.com>
- Fix regression of AC_CHECK_SIZEOF on pointer types.
- * lib/autoconf/types.m4 (AC_CHECK_SIZEOF): Translate `*' to `p'
- when checking literal-ness of the type, for pointer types.
- * lib/m4sugar/m4sh.m4 (_AS_TR_SH): Also consider `*' as literal.
- (_AS_TR_CPP): Likewise.
- * tests/semantics.at (AC_CHECK_ALIGNOF struct): When checking
- for numeric answer, be sure to not allow variable references.
- (AC_CHECK_SIZEOF struct): Likewise. Also, test the
- `AC_CHECK_SIZEOF([int *])' example from the manual.
- * doc/autoconf.texi (Generic Compiler Characteristics): Add
- example marker.
- * NEWS: Update.
- Reports by Nishio Futoshi and Roberto Bagnara.
+ docs: document set -n pitfalls
+ * doc/autoconf.texi (Limitations of Builtins) <set>: Document
+ issues with set -n.
-2010-07-08 Eric Blake <eblake@redhat.com>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+2012-03-07 Eric Blake <eblake@redhat.com>
- Fix regression of AC_CONFIG_SUBDIRS with multiple arguments.
- * lib/autoconf/status.m4 (AC_CONFIG_SUBDIRS): Do not assume the
- argument is a single word.
- * tests/torture.at (Deep Package): Extend test to cover this.
- (Non-literal AC_CONFIG_SUBDIRS): New test.
- * doc/autoconf.texi (Subdirectories): Add example marker.
- * NEWS: Update.
- Report by Bruno Haible.
+ build: require perl 5.6
+ This reduces the implicit requirement from 5.6.2 back to 5.6,
+ while raising the explicit requirement to match the actual code.
-2010-07-04 Stefano Lattarini <stefano.lattarini@gmail.com>
+ * configure.ac (PERL): Fail up front if perl is too old.
+ * NEWS: Document this.
+ * README: Likewise.
+ * README-hacking: Likewise.
+ * lib/Autom4te/ChannelDefs.pm: Bump requirement.
+ * lib/Autom4te/General.pm: Relax requirement.
- Fix minor copy&paste leftover in m4sh tests.
- * tests/m4sh.at (AS@&t@_TR_SH and AS@&t@_TR_CPP): Remove
- useless variables assignements ($var, $vAr, $VAR).
+2012-03-07 Eric Blake <eblake@redhat.com>
-2010-07-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ tests: ignore ksh -n warnings
+ Recent ksh is noisy:
- Fix testsuite to not trigger Solaris sh for bug.
- * tests/torture.at (Torturing config.status)
- (Substitute a 2000-byte string)
- (Substitute and define special characters)
- (Substitute a newline): Quote first argument in for list so
- that it does not look like an assignment.
+ $ ksh -nc '``'; echo $?
+ ksh: warning: line 1: `...` obsolete, use $(...)
+ 0
-2010-07-02 Eric Blake <eblake@redhat.com>
+ * tests/local.at (AT_CHECK_SHELL_SYNTAX): Ignore noisy ksh on.
+ Reported by Martin Zaun.
- Post-release administrivia.
- * maint.mk (NEWS_hash): Define.
- * NEWS: Add header line for next release.
- * .prev-version: Record previous version.
- * cfg.mk (old_NEWS_hash): Auto-update.
+2012-03-06 Paul Eggert <eggert@cs.ucla.edu>
- Release Version 2.66.
- * NEWS: Mention the release.
+ tests: port AT_CHECK_ENV to hosts with flaky grep
+ * tests/local.at (AT_CHECK_ENV): Don't assume that if one grep
+ fails, the other will too. It could be that 'grep' is flaky,
+ and fails somewhat at random. This would explain the problems
+ reported for autoconf-2.68b on FreeBSD and MacOS X, for example:
+ <http://lists.gnu.org/archive/html/bug-autoconf/2012-03/msg00032.html>
+ <http://lists.gnu.org/archive/html/bug-autoconf/2012-03/msg00035.html>
+ <http://lists.gnu.org/archive/html/bug-autoconf/2012-03/msg00036.html>
+ <http://lists.gnu.org/archive/html/bug-autoconf/2012-03/msg00044.html>
-2010-07-02 Eric Blake <eblake@redhat.com>
+2012-03-06 Stefano Lattarini <stefano.lattarini@gmail.com>
- Pick up some maint.mk improvements from gnulib.
- * configure.ac (AM_INIT_AUTOMAKE): Require 1.11, and build xz
- archives by default now.
- * maint.mk (gzip_rsyncable): Avoid non-portable echo.
- (VC-tag): Depend on gpg_key_ID.
- (PREV_VERSION): Don't parse error as version.
- (announcement): Populate email addresses with defaults.
- (emit_upload_commands, web-manual): Reflect changes in scripts.
- (update-NEWS-hash, emit-commit-log, release-prep): New macros.
- * cfg.mk (announcement_Cc_, announcement_mail_headers_): Override
- defaults.
- * HACKING: Modernize a bit.
+ maint: resync files from upstream
+ Since the perl version required in Automake::Getopt has been
+ recently lowered from 5.6.2 to 5.6.0, this change has the nice
+ effect of making autoconf compatible again with all perls in
+ the 5.6.x release series.
- Resync upstream files.
- * GNUmakefile: Run 'make fetch'.
- * build-aux/announce-gen: Likewise.
- * build-aux/config.guess: Likewise.
- * build-aux/config.sub: Likewise.
- * build-aux/gendocs.sh: Likewise.
- * build-aux/git-version-gen: Likewise.
- * build-aux/gnupload: Likewise.
- * build-aux/texinfo.tex: Likewise.
- * build-aux/vc-list-files: Likewise.
- * doc/gendocs_template: Likewise.
- * doc/gnu-oids.texi: Likewise.
- * doc/make-stds.texi: Likewise.
- * doc/standards.texi: Likewise.
+ * maint.mk: Resync via 'make fetch'.
* lib/Autom4te/Channels.pm: Likewise.
* lib/Autom4te/Configure_ac.pm: Likewise.
* lib/Autom4te/FileUtils.pm: Likewise.
+ * lib/Autom4te/Getopt.pm: Likewise.
* lib/Autom4te/XFile.pm: Likewise.
- Make AS_TR_SH and AS_TR_CPP similar.
- * lib/m4sugar/m4sh.m4 (_AS_TR_CPP_LITERAL): Avoid underquoting.
- (_AS_TR_CPP_INDIR): Handle all polymorphic variables.
- * tests/m4sh.at (AS@&t@_TR_SH and AS@&t@_TR_CPP): New test.
- * NEWS: Document the fix.
- Reported by Bruno Haible.
-
- Reduce startup cost of autotest.
- * lib/autotest/general.m4 (_AT_FINISH) <banners>: Rather than
- doing a recursive find, limit ourselves to top ChangeLog only.
- Reported by Ralf Wildenhues.
-
-2010-07-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- New macro AC_FC_FIXEDFORM, improved AC_FC_FREEFORM, coverage.
- * lib/autoconf/fortran.m4 (_AC_FC_DIALECT_YEAR): Fix typo in
- comment.
- (AC_FC_FREEFORM): Update list of known options for Sun, HP,
- Lahey/Fujitsu Fortran compilers. Use M4 quoting consistently.
- (AC_FC_FIXEDFORM): New macro.
- * tests/fortran.at (AC_FC_DUMMY_MAIN usage, AC_FC_MAIN usage):
- Use AC_FC_FIXEDFORM, to avoid testsuite failure with FC=xlf95.
- (AC_FC_FREEFORM with AC_FC_SRCEXT, AC_FC_FIXEDFORM)
- (AC_FC_FIXEDFORM with AC_FC_SRCEXT): New tests.
- * tests/mktests.sh: No need to exclude AC_FC_FREEFORM, it uses
- AC_LANG_PUSH/AC_LANG_POP.
- * doc/autoconf.texi (Fortran Compiler): Document it.
- * NEWS: Update.
-
-2010-07-02 Eric Blake <eblake@redhat.com>
-
- Optimize AS_BOX.
- * lib/m4sugar/m4sh.m4 (AS_BOX): Use less m4 time.
- (_AS_BOX_LITERAL): Use fewer forks in the common case.
- * doc/autoconf.texi (Common Shell Constructs) <AS_BOX>: Document
- the macro.
- * NEWS: Mention it.
-
- Use new AS_LITERAL_IF argument when appropriate.
- * lib/m4sugar/m4sh.m4 (AS_VAR_SET): Reduce m4 overhead.
- (AS_VAR_IF, AS_VAR_TEST_SET): Provide shorter variant for simple
- references.
- Suggested by Bruno Haible.
-
- Add tests for AS_BOX.
- * tests/m4sugar.at (m4@&t@_text_box): New test.
- * tests/m4sh.at (AS@&t@_BOX): Likewise.
- * lib/m4sugar/m4sugar.m4 (m4_text_box): Support comma.
- * doc/autoconf.texi (Text processing Macros) <m4_text_box>:
- Document further limitations.
-
- Add optional argument to AS_LITERAL_IF.
- * lib/m4sugar/m4sh.m4 (_AS_LITERAL_IF): Rewrite to generate macro
- name, without using m4_cond.
- (_AS_LITERAL_IF_, _AS_LITERAL_IF_YES, _AS_LITERAL_IF_NO): New
- helpers.
- (AS_LITERAL_IF, AS_LITERAL_WORD_IF, _AS_TR_SH, _AS_TR_CPP)
- (_AS_VAR_PUSHDEF): Adjust callers.
- * lib/autoconf/types.m4 (AC_CHECK_ALIGNOF): Relax restrictions on
- invalid bytes, since this allows inline struct layouts.
- (_AC_CHECK_ALIGNOF): New helper macro.
- * tests/m4sh.at (AS@&t@_LITERAL_IF): Update test.
- * doc/autoconf.texi (Polymorphic Variables) <AS_LITERAL_IF>:
- Update documentation.
-
- Use AS_LITERAL_WORD_IF as appropriate.
- * lib/autoconf/autoheader.m4 (AH_VERBATIM): Use new macro.
- * lib/autoconf/general.m4 (AC_REQUIRE_AUX_FILE, AC_CACHE_VAL)
- (AS_CACHE_CHECK, AC_DEFINE_TRACE, _AC_LIBOBJ): Likewise.
- * lib/autoconf/libs.m4 (AC_CHECK_LIB): Likewise.
- * lib/autoconf/status.m4 (AC_CONFIG_SUBDIRS): Likewise.
- * lib/m4sugar/m4sh.m4 (AS_UNSET, AS_VAR_COPY, AS_VAR_GET)
- (AS_VAR_IF, AS_VAR_SET, AS_VAR_TEST_SET): Likewise.
-
- Add AS_LITERAL_WORD_IF.
- * lib/m4sugar/m4sh.m4 (_AS_LITERAL_IF): Also reject shell quoting
- characters as non-literal, and provide way to reject space.
- (AS_LITERAL_WORD_IF): New macro.
- * doc/autoconf.texi (Polymorphic Variables) <AS_LITERAL_IF>:
- Document new macro. Fix example to match reality.
- * NEWS: Document change and new macro.
- * tests/m4sh.at (AS@&t@_LITERAL_IF): Update test.
-
- Optimize AC_DEFINE.
- * lib/autoconf/general.m4 (_AC_DEFINE_Q): Avoid overhead of
- AS_LITERAL_IF.
-
-2010-07-02 Stefano Lattarini <stefano.lattarini@gmail.com>
- and Eric Blake <eblake@redhat.com>
-
- Describe a Solaris /bin/sh bug w.r.t. for loops.
- * doc/autoconf.texi (Limitations of Shell Builtins) <for>:
- Document a bug of the 'for' builtin in Solaris /bin/sh, w.r.t.
- tokens seeming variable assignment in the list of arguments.
-
-2010-06-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Improve VPATH handling in config.status for non-Automake projects.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Be sure not
- to remove references to a subdir of srcdir. Fix treatment of
- multiple colon-separated VPATH entries.
- * tests/torture.at (VPATH): New test.
- Report by Keith Marshall.
-
- Further improve docs about nested double-quotes and backquotes.
- * doc/autoconf.texi (Shellology): Remove anchor for pdksh.
- Move quoting bug example to ...
- (Shell Substitutions): ... here. Document which behavior is
- specified by Posix.
-
- Coverage for Fortran compiler macros.
- * tests/fortran.at (AC_OPENMP and Fortran 77)
- (AC_OPENMP and Fortran): Simplify, using AT_CHECK_CONFIGURE.
- (AC_F77_DUMMY_MAIN usage, AC_FC_DUMMY_MAIN usage)
- (AC_F77_MAIN usage, AC_FC_MAIN usage, AC_F77_FUNC usage)
- (AC_FC_FUNC usage, AC_FC_SRCEXT usage, AC_FC_FREEFORM): New
- tests.
- * doc/autoconf.texi (Fortran Compiler): Use GNU coding style
- on C code snippets. Add markers for tested examples.
- Suggest AC_FC_FREEFORM for source file extensions which the
- compiler might not natively support but which are accepted
- with help from AC_FC_SRCEXT. Suggest AC_CONFIG_HEADERS for
- setups using one of the AC_*MAIN macros.
-
- Accept any nonzero exit status upon config.status write failure.
- * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
- Normalize nonzero status to 1 for writing to /dev/full, for HP-UX
- 11.31 cat which exits 2.
-
- Fix testsuite failure with Tru64 preprocessor.
- * tests/compile.at (Order of user actions and cleanup): Add
- incomplete comment to provoke failure with Tru64/OSF 5.1 cc
- preprocessor.
+2012-03-05 Stefano Lattarini <stefano.lattarini@gmail.com>
-2010-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
- and Eric Blake <eblake@redhat.com>
+ maint: drop syncing with Automake::Struct
+ The module Automake::Struct has been removed in automake master
+ branch (with yesterday's commit v1.11-2055-g74a7f49 "maint: drop
+ 'Automake::Struct' module"): since Automake now requires Perl 5.6,
+ that module has become obsolete, being basically just a backport
+ of Perl 5.6's 'Class::Struct' to Perl 5.5. With this change, we
+ follow suite in Autoconf, which syncs some of its internal modules
+ with Automake.
- Further clarification on sed -e portability.
- * doc/autoconf.texi (Limitations of Usual Tools) <sed>: Clarify
- more about sed -e and Posix limitations.
-
-2010-06-22 Bruno Haible <bruno@clisp.org>
-
- Document how to use literal newlines in makefile rules.
- * doc/autoconf.texi (Newlines in Make Rules): New section.
-
- Document how to write comments in makefile rules.
- * doc/autoconf.texi (Comments in Make Rules): Mention a workaround
- syntax.
-
-2010-06-22 Ben Pfaff <blp@cs.stanford.edu>
-
- Document how to propogate variables to submakes.
- * doc/autoconf.texi: Describe technique used by Automake to
- propagate variables to submakes in more detail.
-
-2010-06-22 Peter Johansson <trojkan@gmail.com> (tiny change)
-
- Be consistent in doc example.
- * doc/autoconf.texi: (Polymorphic Variables) be consistent in code
- example and output
-
-2010-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Add comments for vim syntax highlighting.
- * doc/autoconf.texi: Restore font-lock in some examples using
- $$, for vim.
-
- Formatting cleanups for optional arguments.
- * doc/autoconf.texi (Configuration Actions, Help Formatting)
- (External Software): Use @r{} for brackets denoting optional
- arguments, where @ovar is not safe to use.
-
- Clarify nested double-quotes and backquotes shell issues.
- * doc/autoconf.texi (Shellology): New anchor for pdksh.
- (Shell Substitutions): Link to it for escaped double-quotes
- within double-quoted backquotes; add ksh example for unescaped
- inner double-quotes problem.
-
- Mention Tru64 5.1 fgrep limitation with emtpy patterns.
- * doc/autoconf.texi (Limitations of Usual Tools): Update.
-
- Overhaul the manual, esp. the Autotest chapter.
- * doc/autoconf.texi (Installation Directory Variables):
- Replace some uses of @var with @code.
- (Special Shell Variables): Fix misordered paragraph about IFS.
- (Writing Testsuites): Include paragraph following AT_TESTED in
- the macro definition.
- (testsuite Invocation): Failed tests are not rerun.
- (testsuite Scripts, Autotest Logs, testsuite Invocation)
- (Making testsuite Scripts): Minor edits for consistency and
- language.
-
-2010-06-18 Bruno Haible <bruno@clisp.org>
-
- Document sed -e limitation.
- * doc/autoconf.texi (Limitations of Usual Tools): Mention portability
- problem of sed -e option with script fragments.
-
-2010-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Document, test, and fix AT_ARG_OPTION, AT_ARG_OPTION_ARG.
- * lib/autotest/general.m4 (_AT_ARG_OPTION): Fix translation of
- hyphens to underscores when turning option names to variables.
- Avoid macro name concatenation garbage with trailing `dnl'.
- (AT_ARG_OPTION, AT_ARG_OPTION_ARG): Overhaul macro description.
- The OPTIONS are space-separated, not comma-separated. The
- negative form of AT_ARG_OPTION is prefixed with `--no-'.
- * tests/autotest.at (AT@&t@_ARG_OPTION, AT@&t@_ARG_OPTION_ARG):
- New tests.
- * NEWS: Update.
- * doc/autoconf.texi (Writing Testsuites): Document AT_ARG_OPTION
- and AT_ARG_OPTION_ARG.
- (testsuite Invocation): Call the thingies passed to the
- testsuite options, not arguments. Note that the testsuite
- author may add further package-specific options.
-
- Autotest: enable colored test results.
- * lib/autotest/general.m4 (HELP_TUNING_BEGIN): New diversion.
- (HELP_TUNING, HELP_OTHER, HELP_END): Bump diversion numbers.
- (AT_INIT): Accept
- --color and --color=never|auto|always. If desired, colorize
- test results and testsuite summary on standard output.
- [HELP_TUNING]: Divert content instead to ...
- [HELP_TUNING_BEGIN]: ... this diversion, m4_wrapped until the
- end, when we know whether AT_COLOR_TESTS has been specified.
- (AT_COLOR_TESTS): New macro, set the default for color to auto.
- * doc/autoconf.texi (Writing Testsuites): Document it.
- (testsuite Invocation): Document --color* options.
- * tests/local.at: Call AT_COLOR_TESTS for Autoconf's testsuite.
- * tests/autotest.at (color test results): New test, mirroring
- color.test from Automake.
- * NEWS: Update.
-
-2010-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Avoid texinfo bug with backslashes in macro arguments.
- * doc/autoconf.texi (Text processing Macros)
- (Common Shell Constructs): Do not use @dvar with backslashes.
-
-2010-06-14 Eric Blake <eblake@redhat.com>
-
- Make CONFIG_SITE handling more robust.
- * lib/autoconf/general.m4 (AC_SITE_LOAD): Avoid leading - and path
- search, and check for failure to load.
- * tests/base.at (AC_CACHE_CHECK): Enhance test.
- * doc/autoconf.texi (Site Defaults): Mention that CONFIG_SITE
- works best as an absolute path.
- * NEWS: Document the semantic change.
-
-2010-03-13 Bruno Haible <bruno@clisp.org>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Allow plus signs in AC_ARG_ENABLE and AC_ARG_WITH.
- * doc/autoconf.texi (External Software): Mention that AC_ARG_WITH
- accepts packages with a + sign in it.
- (Package Options): Likewise for AC_ARG_ENABLE.
- * lib/autoconf/general.m4 (_AC_ENABLE_IF): Also replace '+' with '_'.
- * tests/base.at (AC_ARG_ENABLE and AC_ARG_WITH): New test.
- * NEWS: Update.
-
-2010-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Autotest: simplify logic to compute test group result.
- * lib/autotest/general.m4 (AT_INIT): Compactify result
- computation logic.
-
- New Autotest testsuite option --recheck.
- * lib/autotest/general.m4 (AT_INIT): New variable $at_recheck.
- Escape hyphen in $at_dir early. Accept command line switch
- --recheck. Set $at_suite_log early, based on --directory
- switch; with --recheck, include the list of FAILed and XPASSed
- tests from old testsuite.log file in $at_groups. Document
- --recheck in --help output.
- * tests/autotest.at (recheck): New test.
- * doc/autoconf.texi (testsuite Invocation): Document --recheck.
- * NEWS: Update.
-
-2010-06-14 Karl Berry <karl@freefriends.org> (tiny change)
-
- Clarify comment about old system.
- * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Prefer GNU/Linux,
- and note that bug has long since been fixed.
-
-2010-06-08 Eric Blake <eblake@redhat.com>
-
- Run libtool test with modern libtool.
- * tests/foreign.at (Libtool): Request that libtoolize install
- auxiliary files. Assume libtool 2.x is modern.
-
-2010-06-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Coverage and doc fixes for AC_LANG_SOURCE and AC_LANG_PROGRAM.
- * tests/compile.at (AC_LANG_SOURCE, AC_LANG_SOURCE(C++))
- (AC_LANG_SOURCE example, AC_LANG_PROGRAM example): New tests.
- * doc/autoconf.texi (Generating Sources): Add markers for tested
- examples; update quoting, and update AC_INIT usage to also set
- optional URL arguments. Mention that the examples require gcc.
- Prompted by report from Brian J. Murrell.
-
- Make AS_SET_CATFILE polymorphic, and add testsuite coverage.
- * lib/m4sugar/m4sh.m4 (AS_SET_CATFILE): Use AS_VAR_SET to set
- the variable.
- * tests/m4sh.at (AS@&t@_SET_CATFILE): New test.
- * doc/autoconf.texi (Common Shell Constructs): Document that
- AS_SET_CATFILE is polymorphic in its VAR argument now.
- * NEWS: Update.
-
- Testsuite coverage for AC_COPYRIGHT and AT_COPYRIGHT.
- * tests/autotest.at (AT@&t@_COPYRIGHT): New test.
- * tests/base.at (AC@&t@_COPYRIGHT): Likewise.
-
- Testsuite coverage for __file__ and __line__.
- * tests/m4sugar.at (__file__ and __line__): New test.
-
- Testsuite coverage for AC_CACHE_VAL and caching semantics.
- * tests/base.at (AC_CACHE_CHECK): Extend test.
- (AC_CACHE_LOAD): New test.
- * tests/torture.at (Configuring subdirectories): Also test
- --config-cache with AC_CONFIG_SUBDIRS.
- * doc/autoconf.texi (Caching Results): Annotate code snippets
- which are tested in the test suite.
- (Cache Files): Documented cache variables may be used on the
- configure command line to override individual entries in the
- cache file.
-
- Clarify OpenBSD sh errexit issue with compound commands.
- * doc/autoconf.texi (Limitations of Builtins): Only the last
- command in a compound list is problematic.
- Tested on OpenBSD 4.4.
-
-2010-06-07 Eric Blake <eblake@redhat.com>
-
- Properly quote AC_PREREQ during autoupdate.
- * lib/autoconf/general.m4 (AC_PREREQ): Follow consistent quoting
- style for AC_PREREQ.
- * tests/tools.at (autoupdating AC_PREREQ): Update expected
- results.
- Reported by NightStrike.
-
-2010-06-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Documentation and tests for the AC_CHECK_DECL change.
- * lib/autoconf/general.m4 (_AC_CHECK_DECL_BODY): Squash trailing
- spaces in as_decl_name.
- (_AC_CHECK_DECLS): Likewise for the define.
- * tests/semantics.at (AC_CHECK_DECLS): Extend test.
- * doc/autoconf.texi (Generic Declarations): Update.
- * NEWS: Update.
-
-2010-06-01 Joern Rennecke <joern.rennecke@embecosm.com> (tiny change)
-
- Generalize AC_CHECK_DECL for C++: allow optional arguments.
- * general.m4 (_AC_CHECK_DECL_BODY): Process trailing function
- argument types as arguments to use for C++.
- (_AC_CHECK_DECLS): Filter out trailing function argument types
- when generating the HAVE_DECL_* macro.
-
-2010-05-25 Stefano Lattarini <stefano.lattarini@gmail.com>
- Eric Blake <eblake@redhat.com>
-
- Don't expose AC_{COMPILE,LINK}_IFELSE internals in documentation.
- * doc/autoconf.texi (Runtime) <AC_LINK_IFELSE>: Suggest to use
- `conftest$EXEEXT' rather than `conftest$ac_exeext' to acces the
- just-linked program file.
- (Runtime) <AC_COMPILE_IFELSE>: Suggest to use `conftest.$OBJEXT'
- rather than `conftest.$ac_object' to access the just-compiled
- object file. Also, refer to the object file as "just-compiled"
- rather than "just-linked".
-
-2010-05-20 Eric Blake <eblake@redhat.com>
-
- Mention another line-counting alternative.
- * doc/autoconf.texi (Limitations of Usual Tools) <grep>: Mention
- how to use sed to count lines.
- Suggested by Paolo Bonzini.
-
-2010-05-12 Eric Blake <eblake@redhat.com>
-
- Document the grep workaround.
- * doc/autoconf.texi (Limitations of Usual Tools) <grep>: Document
- the bug.
-
-2010-05-12 Mark Hessling <mark@rexx.org> (tiny change)
-
- Work around QNX4 grep bug.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Count ^
- rather than $ to avoid QNX4 grep bug.
- * THANKS: Update.
-
-2010-05-11 David Reiss <dreiss@facebook.com> (tiny change)
-
- Improve Erlang documentation.
- * doc/autoconf.texi (Erlang Libraries): Document actual default
- values.
- * THANKS: Update.
-
-2010-05-11 Eric Blake <eblake@redhat.com>
-
- Fix typo in previous patch.
- * doc/autoconf.texi (File Descriptors): Add end '.
- Reported by Ralf Wildenhues.
-
- Mention how to silence program probes.
- * doc/autoconf.texi (File Descriptors): Document how to silence a
- program probe.
-
-2010-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Error and warning message formatting cleanups.
- * doc/autoconf.texi (Autoconf Language, Generic Structures):
- Do not capitalize the first word in error messages, do not end
- them with a period.
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS, AC_MSG_FAILURE):
- Likewise.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILE): Likewise.
- * lib/autotest/general.m4 (AT_INIT, at_fn_group_prepare):
- Likewise.
- * m4/m4.m4 (AC_PROG_GNU_M4): Likewise.
- * tests/base.at (AC_TRY_COMMAND): Likewise.
- * tests/torture.at (datarootdir workaround): Adjust expected
- message.
-
- Fix placing of ellipses in English text.
- * lib/autoconf/general.m4 (_AC_INIT_HELP): Be sure to add a
- space before `...' in natural language text.
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL_BODY):
- Likewise.
- * lib/autoconf/libs.m4 (_AC_PATH_X_XMKMF): Likewise.
- * lib/autoconf/programs.m4 (AC_PROG_MAKE_SET): Likewise.
- * tests/suite.at: Likewise.
- * tests/torture.at (@%:@define header templates): Likewise.
-
- Ensure autotest tests have an atconfig file, for testsuite -v.
- * tests/autotest.at (AT_CHECK_AT_PREP): Create a default
- atconfig file in the directory of the testsuite.
- (AT_CHECK_AT_TITLE): Also check that `./micro-suite -v' output
- does not contain empty $at_srcdir expansion.
- (srcdir propagation): Remove the atconfig file generated by
- AT_CHECK_AT_PREP. Check each suite invocation for $at_srcdir
- expansion.
-
- Fix autotest testsuite -v output to print test group title.
- * lib/autotest/general.m4 (AT_CLEANUP): Actually print test
- title in verbose output. Fixes AUTOCONF-2.57-101-gc102ed8
- regression.
- * tests/autotest.at (AT_CHECK_AT_TITLE): Amend macro to check
- for test title in -v output.
-
-2010-04-26 Eric Blake <eblake@redhat.com>
-
- Clarify octal escapes with tr.
- * doc/autoconf.texi (Limitations of Usual Tools): Carriage return
- is portable in octal, but not newline.
-
-2010-04-22 Joel James Adamson <joel@chondestes.bio.unc.edu> (tiny change)
-
- Add a paragraph to FAQ on Debugging configure scripts.
- * doc/autoconf.texi (Debugging): Mention inspecting config.log.
- * THANKS: Update.
-
-2010-04-21 Mike Frysinger <vapier@gentoo.org> (tiny change)
-
- Fix typo in doc example.
- * doc/autoconf.texi (Subdirectories): Fix typo.
-
-2010-04-05 Eric Blake <eblake@redhat.com>
-
- Fix m4_cr_all for EBCDIC.
- * lib/m4sugar/m4sugar.m4 (m4_cr_all): Swap * and $, so that we
- don't end up with $* in EBCDIC.
- * NEWS: Document the fix.
- * THANKS: Update.
- Reported by Steve Goetze.
-
-2010-03-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Do not use @acronym in the manual.
- * doc/autoconf.texi: Remove all usage of @acronym.
- Suggested by Karl Berry.
-
- Do not use @sc in the manual.
- * doc/autoconf.texi: Remove all usage of @sc in the manual.
- Suggested by Karl Berry.
-
-2010-03-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix wrong comment in testsuite.
- * tests/m4sugar.at (m4@&t@_warn): Remove copy&pasted comment.
-
- Formatting cleanups in macro comments.
- * lib/autoconf/c.m4, lib/autoconf/erlang.m4,
- lib/autoconf/fortran.m4, lib/autoconf/functions.m4,
- lib/autoconf/general.m4, lib/autoconf/lang.m4,
- lib/autoconf/programs.m4, lib/autoconf/specific.m4,
- lib/autoconf/status.m4, lib/autoconf/types.m4,
- lib/autotest/general.m4, lib/autotest/specific.m4,
- lib/m4sugar/m4sh.m4, lib/m4sugar/m4sugar.m4,
- tests/autotest.at, tests/local.at, tests/m4sh.at,
- tests/semantics.at, tests/tools.at, tests/torture.at: Fix macro
- comment format.
-
-2010-03-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- manual: index strings containing colon in non-info outputs.
- * doc/autoconf.texi (Quadrigraphs, Shell Substitutions): Produce
- index entries for concepts containing a colon in output formats
- other than info.
-
- Update copyright years for files generated by mktests.sh.
- * tests/mktests.sh: Update copyright years for generated files.
-
-2010-03-04 Eric Blake <eblake@redhat.com>
-
- Document AC_LANG_CONFTEST semantic change.
- * doc/autoconf.texi (Generating Sources) <AC_LANG_CONFTEST>:
- Enhance documentation, to show that semantic change in 2.63b was
- intentional.
- * THANKS: Update.
- Reported by Brian J. Murrell, analyzed by Ralf Wildenhues.
-
-2010-03-04 Peter Johansson <trojkan@gmail.com> (tiny change)
-
- Autoconf Macro Archive URL has changed.
- * doc/autoconf.texi (Introduction, Coding Style, Defining
- Directories): The Autoconf Macro Archive is officially `GNU'.
- Update URL.
-
-2010-03-02 Eric Blake <eblake@redhat.com>
-
- Fix shell code in AS_TR_SH documentation.
- * doc/autoconf.texi (Common Shell Constructs) <AS_TR_SH>: Fix
- example to expand to valid shell code.
- Reported by Ralf Wildenhues.
-
- Improve documentation on AC_{COMPILE,LINK}_IFELSE.
- * doc/autoconf.texi (Running the Compiler): Mention that the
- object file is available after a successful compile.
- (Running the Linker): Likewise for the linker output.
- Suggested by Paolo Bonzini.
-
- Fix typo in docs.
- * doc/autoconf.texi (Conditional constructs) <m4_ifblank>: Fix
- typo.
-
-2010-03-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix AS_ERROR for FreeBSD sh.
- * lib/m4sugar/m4sh.m4 (_AS_ERROR_PREPARE): Rewrite as_fn_error
- to take additional first argument STATUS instead of transporting
- $? across shell function entry, which does not work with FreeBSD
- sh. Shift all other arguments by one, adjust.
- (AS_ERROR): Pass EXIT-STATUS, defaulting to $?, to as_fn_error.
- Report by Václav Haisman.
-
- Fix `autom4te cache creation' testsuite failure on FreeBSD.
- * tests/tools.at (autom4te cache creation): Normalize exit
- status of failed redirection to 1, may be 2 with FreeBSD sh.
- * THANKS: Update.
- Report by Václav Haisman.
-
- Fix Autotest tracing of shell pipelines for FreeBSD sh.
- * lib/autotest/general.m4 (_AT_DECIDE_TRACEABLE): Do not trace
- commands that contain [^|]|[^|], a likely shell pipeline.
- * tests/local.at (_AT_CHECK_ENV): Turn off tracing for egrep |
- grep pipeline.
- * doc/autoconf.texi (File Descriptors): Document limitation.
- * tests/autotest.at (Trace output): New test.
-
-2010-03-01 Eric Blake <eblake@redhat.com>
-
- Update file flow diagram to mention Automake.
- * doc/autoconf.texi (Making configure Scripts): Avoid confusion
- with listing Makefile.in twice on one line. Add a diagram showing
- how automake fits into the picture.
- Reported by santilín.
-
-2010-02-26 Eric Blake <eblake@redhat.com>
-
- Optimize AC_REPLACE_FUNCS.
- * lib/autoconf/functions.m4 (_AC_REPLACE_FUNC): New helper macro.
- (AC_REPLACE_FUNCS): Use it to reduce forks when checking for
- replacements, by using literal rather than shell variable.
-
- Document how to safely override CFLAGS default.
- * doc/autoconf.texi (C Compiler) <AC_PROG_CC>: Document a way to
- change the default CFLAGS.
- (C++ Compiler) <AC_PROG_CXX>: Likewise, for CXXFLAGS.
- Reported by Monty Taylor; wording suggested by Paolo Bonzini.
-
- Document that Autoconf relies on IFS.
- * doc/autoconf.texi (Special Shell Variables) <IFS>: Add details
- about use of IFS within configure script.
- * THANKS: Update.
- Reported by Arkadiusz Miskiewicz.
-
- Recommend latest m4 release.
- * README: Bump recommendation to m4 1.4.14 (minimum remains
- 1.4.6).
- * doc/autoconf.texi (Introduction): Likewise.
- * m4/m4.m4 (AC_PROG_GNU_M4): Likewise.
-
-2010-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix testsuite failures due to setting of $U.
- * tests/local.at (_AT_CHECK_ENV): Ignore setting of $U.
-
-2010-02-10 Eric Blake <ebb9@byu.net>
-
- Avoid $U if it is not initialized.
- * lib/autoconf/general.m4 (_AC_LIBOBJS_NORMALIZE): Ensure $U is
- set if automake did not define it.
- * THANKS: Update.
- Reported by Heiko Schlichting, via Julien Élie.
-
-2010-01-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix substitution of carriage return on Darwin.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Set
- ac_cs_awk_cr to '\\r', so that sed portably expands this to '\r'
- rather than a literal carriage return, to fix substitution on
- Darwin. Regression introduced in 2.63b.
- Report by Peter O'Gorman.
-
-2010-01-21 Dmitry V. Levin <ldv@altlinux.org>
-
- Fix test failure when a shell uses $TMPDIR for here-documents.
- * tests/tools.at (autotools and whitespace in file names): Create
- $TMPDIR before potential use like in other whitespace tests.
-
-2010-01-20 Paolo Bonzini <bonzini@gnu.org>
-
- Add recommendation on (not) unsetting IFS.
- * doc/autoconf.texi (Special shell variables): Explain why it's
- better not to unset IFS.
-
-2010-01-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- config.status: consistent exit status with nonexistent config file input.
- * lib/autoconf/status.m4 (_AC_OUTPUT_MAIN_LOOP): Ensure we
- exit with status 1 rather than with that of 'false', for
- reproducibility.
- (AC_OUTPUT): Ensure to exit 1 in case of config.status failure.
- * tests/torture.at (Missing templates): Also test code path
- for $srcdir != '.'.
- Report by Tim Rice.
-
-2010-01-13 Eric Blake <ebb9@byu.net>
-
- Fix previous example.
- * doc/autoconf.texi (Here-Documents): Touch up the example to
- match output to sample command line.
-
- Document here-doc pitfall.
- * doc/autoconf.texi (Here-Documents): Mention problem with <<-
- operator.
- Reported by Jim Meyering.
-
-2010-01-12 Eric Blake <ebb9@byu.net>
-
- Typo fix in earlier commit.
- * doc/autoconf.texi (Autoconf Language): Fix typo.
-
-2010-01-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Allow AC_FUNC_MKTIME to work with C++.
- * lib/autoconf/functions.m4 (AC_FUNC_MKTIME): ANSIfy KnR function
- definitions. Use `const char*' for character literals; cast them
- to `char*' for putenv.
-
-2010-01-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Export AUTOM4TE in tests/atlocal.in, for aclocal.
- * tests/atlocal.in: Set and export $AUTOM4TE, for aclocal.
- Report by Tim Rice.
-
-2010-01-08 Eric Blake <ebb9@byu.net>
-
- Make autotest example act better with automake.
- * doc/autoconf.texi (Making testsuite Scripts): Rely on automake
- feature for recommended autotest snippet, following our own use.
-
- Clarify language on handling of opening parenthesis.
- * doc/autoconf.texi (Autoconf Language): Give an example of
- improper argument passing.
- * THANKS: Update.
- Reported by Juan Carlos Hurtado.
-
-2010-01-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Don't fail autom4te preselection test due to different Automake.
- * tests/tools.at (autom4te preselections): If the cache test
- fails, extract the Automake version from the toplevel
- Makefile.in file of the source tree; skip, rather than fail
- the test group if the automake program has a different version.
- * THANKS: Update.
- Report by Dieter Jurzitza, fix suggested by Eric Blake.
-
-2010-01-06 Peter Breitenlohner <peb@mppmu.mpg.de>
- Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix AC_CONFIG_LINKS to generated files when srcdir is absolute.
- * lib/autoconf/status.m4 (_AC_OUTPUT_LINK): Check $ac_source,
- not $srcdir, for being relative or absolute.
- * tests/torture.at (AC_CONFIG_LINKS): New test.
- (AC_CONFIG_LINKS and identical files): Extend test, avoid some
- forks.
- Report, patch and testcase example by Peter Breitenlohner.
-
-2010-01-05 Eric Blake <ebb9@byu.net>
-
- Improve release automation.
- * maint.mk (gnulib_dir, gnulib-version, bootstrap-tools)
- (announcement): Copy from latest gnulib maint.mk.
- * cfg.mk (announce_gen, gpg_key_ID): Delete.
- (bootstrap-tools): Override the default.
-
- Update upstream files.
- * GNUmakefile: Update via 'make fetch'.
- * build-aux/announce-gen: Likewise.
- * build-aux/config.guess: Likewise.
- * build-aux/config.sub: Likewise.
- * build-aux/gendocs.sh: Likewise.
- * build-aux/gnupload: Likewise.
- * build-aux/move-if-change: Likewise.
- * build-aux/update-copyright: Likewise.
- * build-aux/vc-list-files: Likewise.
- * doc/standards.texi: Likewise.
- * cfg.mk (update-copyright-env): Enforce wrap column.
-
- Update copyright year.
- All files changed to add 2010, via 'make update-copyright'.
-
-2009-12-31 Bruno Haible <bruno@clisp.org>
-
- Improve documentation on Solaris tr bugs.
- * doc/autoconf.texi (Limitations of Usual Tools) <tr>: Refine
- description of NUL handling by Solaris tr.
-
-2009-12-31 Eric Blake <ebb9@byu.net>
-
- Another tr tweak.
- * doc/autoconf.texi (Limitations of Usual Tools) <tr>: Clarify
- previous commit.
- Reported by Ralf Wildenhues.
-
-2009-12-29 Eric Blake <ebb9@byu.net>
-
- Improve documentation on tr portability.
- * doc/autoconf.texi (Limitations of Usual Tools) <tr>: Refine
- description of NUL handling. Document set size issue.
- Reported by Bruno Haible.
-
- Fix comment in AC_CHECK_DECLS.
- * lib/autoconf/general.m4 (AC_CHECK_DECL): Document the includes
- argument to the shell function.
-
-2009-12-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Add testsuite exposure for shtool usage.
- * tests/foreign.at (shtool): New test.
- Report by Dmitry Grebeniuk.
-
-2009-12-12 Eric Blake <ebb9@byu.net>
-
- 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.
+ * lib/Autom4te/Struct.pm: Delete.
+ * lib/Autom4te/Makefile.am (dist_perllib_DATA): Don't list it
+ anymore.
+ * cfg.mk: Don't sync it with the Automake repository anymore.
+ * lib/Autom4te/Request.pm: Use 'Class::Struct' instead of
+ 'Autom4te::Struct'.
-2009-12-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+2012-03-04 Paul Eggert <eggert@cs.ucla.edu>
- 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.
- This reverts commit 93d9386de9c1320afed43f1337ac5ddb2d2dcbb4.
+ doc: mention PATH bug with "ksh foo"
+ * doc/autoconf.texi (Invoking the Shell): Mention ksh PATH bug.
-2009-12-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+2012-03-04 Stefano Lattarini <stefano.lattarini@gmail.com>
- Fix NEWS description for AC_FUNC_MMAP entry.
- * NEWS: Update.
+ tests: fix spurious failure due to Solaris XPG4 sh bug
+ On Solaris 10, the /usr/xpg4/bin/sh shell seems unable to execute
+ a shell script named 'script':
- Fix 2.65 AC_TYPE_INT*_T macro body text regression.
- * lib/autoconf/types.m4 (_AC_TYPE_INT_BODY): Move helper enum
- definition to prologue section, to avoid syntax error.
- * NEWS, THANKS: Update.
- Report by Pierre Ynard.
+ $ touch script
+ $ /bin/sh script; echo status: $? # As expected.
+ status: 0
+ $ /usr/xpg4/bin/sh script; echo status: $? # Weirdness follows.
+ /usr/xpg4/bin/sh: script: cannot execute
+ status: 1
-2009-12-09 Paolo Bonzini <bonzini@gnu.org>
+ This was causing a spurious testsuite failure for users which have
+ /usr/xpg4/bin in $PATH before /bin and /usr/bin. Fix that.
- Fix `recursion' test failure.
- * tests/m4sugar.at (recursion): Use empty diversion, not 0.
+ * tests/m4sh.at (Configure re-execs self with CONFIG_SHELL): Rename
+ the m4sh-produced script to 'script2', to avoid the just-described
+ issue.
-2009-12-05 Stefano Lattarini <stefano.lattarini@gmail.com>
- Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+2012-03-04 Stefano Lattarini <stefano.lattarini@gmail.com>
- 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.
+ tests: fix spurious failure when CONFIG_SITE is set
+ * tests/m4sh.at (Configure re-execs self with CONFIG_SHELL): Export
+ $CONFIG_SITE to "/dev/null", to avoid spurious diffs in expected
+ stdout/stderr.
-2009-12-04 Eric Blake <ebb9@byu.net>
+2012-03-03 Paul Eggert <eggert@cs.ucla.edu>
- 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.
+ fortran: clean up core files after AC_FC_CHECK_BOUNDS
+ * lib/autoconf/fortran.m4 (AC_FC_CHECK_BOUNDS): Clean up core
+ files, too. Needed for Sun Fortran 95 8.2 2005/10/13 on Solaris 8.
-2009-11-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ tests: port AS_TR_SH and AS_TR_CPP test to Solaris 8 wc
+ * tests/m4sh.at (AS@&t@_TR_SH and AS@&t@_TR_CPP): Do not assume
+ that "wc -l" outputs only digits; on Solaris 8 it also outputs
+ blanks and POSIX allows this.
- manual: AC_SEARCH_LIBS also prepends to LIBS.
- * doc/autoconf.texi (Libraries): Document that AC_SEARCH_LIBS
- prepends to LIBS, just like AC_CHECK_LIB.
+ tests: fix "#/bin/sh" typo
+ * tests/m4sh.at (AS@&t@_EXECUTABLE): "#!/bin/sh", not "#/bin/sh".
+ Typo reported by Tim Rice in:
+ http://lists.gnu.org/archive/html/autoconf-patches/2012-03/msg00009.html
-2009-11-27 Paolo Bonzini <bonzini@gnu.org>
+ tests: port AS_EXECUTABLE_P test to Solaris 8 /bin/sh
+ * tests/m4sh.at (AS@&t@_EXECUTABLE): Treat any nonzero exit
+ status as failure. This is needed for Solaris 8 /bin/sh,
+ where executing a nonexecutable file causes the shell
+ to say the file had exit status 1.
- Bump m4.m4 serial number.
- * m4/m4: Bump serial number to 10.
+2012-03-03 Stefano Lattarini <stefano.lattarini@gmail.com>
-2009-11-27 Harald van Dijk <truedfx@gentoo.org>
+ configure: don't infloop when re-executing with $CONFIG_SHELL
+ It turns out our guard against infinite recursion wasn't good
+ enough when shells without $LINENO support were involved, since
+ the creation-and-sourcing of configure.lineno broke the guard's
+ expectations. Reports by Tim Rice and Paul Eggert.
- Fix m4 detection test on dash.
- * m4/m4 (AC_PROG_GNU_M4): Use AS_ECHO.
+ * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Export '_as_can_reexec'
+ to "no" before sourcing the just-created configure.lineno.
-2009-11-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+2012-03-01 Paul Eggert <eggert@cs.ucla.edu>
- 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ř.
+ maint: spelling fixes
- Add pgfortran to list of Fortran 95+ compilers.
- * lib/autoconf/fortran.m4 (_AC_F95_FC): Add pgfortran before
- pgf95.
- Based on report by Jeff Squyres.
+2012-03-01 Eric Blake <eblake@redhat.com>
-2009-11-22 Bruno Haible <bruno@clisp.org>
+ maint: post-release administrivia
+ * NEWS: Add header line for next release.
+ * .prev-version: Record previous version.
+ * cfg.mk (old_NEWS_hash): Auto-update.
- Fix failure of test 35 when the user has a .autom4te.cfg file.
- * tests/tools.at (autom4te cache creation): Skip the test if the
- user has a .autom4te.cfg file.
+2012-03-01 Eric Blake <eblake@redhat.com>
-2009-11-21 Eric Blake <ebb9@byu.net>
+ Release Version 2.68b.
+ It's been more than a year since 2.68; time for a beta release
+ to shake out any last minute bugs, before a release of 2.69
+ in the near future.
- Release Version 2.65.
* NEWS: Mention the release.
+ * HACKING: Update some instructions.
- Prepare for release.
- * build-aux/announce-gen: Sync from upstream.
- * build-aux/config.guess: Likewise.
- * build-aux/config.sub: Likewise.
- * cfg.mk (gnu_rel_host, url_dir_list): Move...
- * maint.mk: ...here, copying ideas from gnulib.
- (major): Rename...
- (stable): ...to this, copying gnulib.
- * HACKING (release): Document changes in process.
-
- Avoid spurious newline in traced macros.
- * bin/autoreconf.in (tracing): Drop newline before parsing traced
- arguments; regression from 2009-11-14.
-
-2009-11-20 Eric Blake <ebb9@byu.net>
-
- Allow absolute names in AT_TESTED.
- * lib/autotest/general.m4 (AT_INIT) <PREPARE_TESTS>: Check for
- absolute names before path walk.
- * THANKS: Update.
- Suggested by Allan Clark.
-
-2009-11-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- 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.
-
-2009-11-09 Eric Blake <ebb9@byu.net>
+2012-03-01 Eric Blake <eblake@redhat.com>
- 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.
-
-2009-11-04 Eric Blake <ebb9@byu.net>
-
- Redocument AS_DIRNAME, even with its flaws.
- * doc/autoconf.texi (Common Shell Constructs) <AS_DIRNAME>:
- Restore documenatation, since dirname mentions it.
- Reported by Peter Johansson.
-
- Update upstream files.
- * build-aux/announce-gen: Synchronize from upstream.
+ maint: resync files from upstream
+ * GNUmakefile: Resync via 'make fetch'.
* build-aux/config.guess: Likewise.
* build-aux/config.sub: Likewise.
- * build-aux/gendocs.sh: Likewise.
- * build-aux/git-version-gen: Likewise.
* build-aux/texinfo.tex: Likewise.
* build-aux/update-copyright: Likewise.
* doc/standards.texi: Likewise.
* lib/Autom4te/Channels.pm: Likewise.
* lib/Autom4te/Configure_ac.pm: Likewise.
* lib/Autom4te/FileUtils.pm: Likewise.
+ * lib/Autom4te/Getopt.pm: Likewise.
* lib/Autom4te/Struct.pm: Likewise.
* lib/Autom4te/XFile.pm: Likewise.
-
-2009-11-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Coverage for autom4te cache creation issues.
- * tests/tools.at (autom4te cache creation): New test.
-
-2009-11-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix testsuite failures with SHELL=zsh.
- * tests/statesave.m4 (AC_STATE_SAVE): Ignore argv and ARGC when
- comparing configure variables.
-
-2009-11-03 Eric Blake <ebb9@byu.net>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Update NEWS for recent fixes.
- * NEWS: Add some entries.
-
-2009-10-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- 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.
-
- Fix testsuite failure on AIX 4.3.3.
- * lib/autoconf/general.m4 (_AC_RUN_LOG_LIMIT): Remove conftest.err
- also if it is empty.
-
- 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.
-
-2009-10-31 Eric Blake <ebb9@byu.net>
-
- Fix cross-manual link to gcc.
- * doc/autoconf.texi (Portable C and C++): Provide uref rather than
- xref when building for html.
- Reported via Karl Berry.
-
- Update authors.
- * AUTHORS: Document recent copyright assignments.
-
-2009-10-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix AC_OPENMP configure message for non-C compilers.
- * lib/autoconf/lang.m4 (AC_LANG_DEFINE): Accept as additional
- fourth arg the compiler variable name, defined in _AC_CC($1).
- (_AC_CC): New language dispatch macro.
- * lib/autoconf/erlang.m4 (AC_LANG(Erlang)): Adjust.
- * lib/autoconf/fortran.m4 (AC_LANG(Fortran 77), AC_LANG(Fortran)):
- Likewise.
- * lib/autoconf/c.m4 (AC_LANG(C), AC_LANG(C++))
- (AC_LANG(Objective C), AC_LANG(Objective C++)): Likewise.
- (AC_OPENMP): Use _AC_CC instead of $CC.
-
- 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.
-
-2009-10-31 Bruno Haible <bruno@clisp.org>
- Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- 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.
-
-2009-10-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- 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.
-
- Perl coverage convenience targets.
- * Makefile.am (PERL_COVERAGE_DB, PERL_COVERAGE_FLAGS)
- (PERL_COVER): New variables.
- (check-coverage, check-coverage-run, check-coverage-report)
- (clean-coverage): New phony targets.
- (clean-local): Depend on clean-coverage.
-
-2009-10-28 Eric Blake <ebb9@byu.net>
-
- Fix corner cases in AS_LITERAL_IF and AS_TR_SH.
- * lib/m4sugar/m4sh.m4 (AS_LITERAL_IF): Fix bug with unbalanced
- parens. Move guts...
- (_AS_LITERAL_IF): into new helper.
- (AS_TR_SH, AS_TR_CPP): Fix bugs with expansion of wrong macro.
- Move guts...
- (_AS_TR_SH, _AS_TR_SH_LITERAL, _AS_TR_SH_INDIR, _AS_TR_CPP)
- (_AS_TR_CPP_LITERAL, _AS_TR_CPP_INDIR): ...into new helpers.
- (AS_VAR_PUSHDEF): Hoist m4_require, by moving guts...
- (_AS_VAR_PUSHDEF): ...into new helper.
- * tests/m4sh.at (AS@&t@_LITERAL_IF): Enhance test.
-
- 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.
-
- 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.
-
- 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.
-
-2009-10-27 Eric Blake <ebb9@byu.net>
-
- 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.
-
-2009-10-26 Paolo Bonzini <bonzini@gnu.org>
-
- Pass Autom4te path down to programs that autoreconf invokes.
- * bin/autoreconf.in (autom4te): New variable. Export its value
- as $ENV{'AUTOM4TE'}. Suggested by Peter Johansson.
- * THANKS: Update.
-
-2009-10-20 Eric Blake <ebb9@byu.net>
-
- Fix AC_TYPE_UINT64_T on Tru64 with gcc 3.4.4.
- * lib/autoconf/types.m4 (_AC_TYPE_UNSIGNED_INT_BODY)
- (_AC_TYPE_INT_BODY): Avoid undefined behavior of attempting shift
- wider than type.
- * NEWS: Document this.
- Reported by Rainer Orth.
-
-2009-10-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix a couple of index entries in the manual.
- * doc/autoconf.texi (Polymorphic Variables): Fix index entries
- for AS_VAR_APPEND, AS_VAR_ARITH.
-
-2009-10-15 Eric Blake <ebb9@byu.net>
-
- Fix typos in INSTALL.
- * doc/install.texi (Basic Installation, Installation Names): Fix
- typos in last patch.
- Repored by Ralf Wildenhues.
-
- 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.
-
-2009-10-15 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Fix typos in documentation.
- * doc/autoconf.texi (Cache Variable Index): Fix typo.
- (Libraries) <AC_SEARCH_LIBS>: Mention 'none required' result.
-
-2009-10-09 Bruno Haible <bruno@clisp.org>
- Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- 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.
-
-2009-10-05 Bruno Haible <bruno@clisp.org>
-
- * doc/autoconf.texi (Particular Functions): Swap sections about
- AC_FUNC_MBRTOWC and AC_FUNC_MEMCMP.
-
-2009-10-01 Paolo Bonzini <bonzini@gnu.org>
-
- Unconditionally check for junk ./--version after mkdir search loop.
- * lib/autoconf/programs.m4 (AC_PROG_MKDIR_P): Always check for
- presence of ./--version. Reported by Eric Blake.
-
-2009-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- 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.
-
-2009-09-21 Eric Blake <ebb9@byu.net>
-
- Fit configure output in 80 columns.
- * lib/autoconf/functions.m4
- (AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Shorten message.
-
-2009-09-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Use consistent notation for cache variables.
- * doc/autoconf.texi (Generic Programs): Remove `$' before
- variable name.
-
- Documentation of specific and general cache variables.
- * doc/autoconf.texi (Default Includes, Alternative Programs)
- (Particular Programs, Generic Programs, Files, Libraries)
- (Function Portability, Particular Functions, Generic Functions)
- (Particular Headers, Generic Headers, Declarations)
- (Generic Declarations, Particular Structures, Particular Types)
- (Specific Compiler Characteristics)
- (Generic Compiler Characteristics, C Compiler, System Services):
- Document lots of cache variables.
- * NEWS: Update.
- Suggested by Bruno Haible.
-
- New cache variable index in the manual.
- * 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.
-
- New FAQ node: Debugging.
- * doc/autoconf.texi (Debugging): New node.
- (Top, FAQ): Adjust menus.
- Report by Bruno Haible.
-
- 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.
-
-2009-09-15 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Implement and document Objective C++ support.
- * lib/autoconf/c.m4 (AC_LANG(Objective C++), AC_LANG_OBJCXX)
- (AC_LANG_PREPROC(Objective C++), AC_PROG_OBJCXXCPP)
- (AC_LANG_COMPILER(Objective C++), AC_PROG_OBJCXX)
- (_AC_PROG_OBJCXX_G): New macros.
- (_AC_ARG_VAR_CPPFLAGS, _AC_ARG_VAR_LDFLAGS)
- (_AC_ARG_VAR_LIBS): Adjusted.
- * doc/autoconf.texi (Objective C++ Compiler): New node.
- (Preset Output Variables): Document OBJCXXFLAGS.
- (Language Choice): Document `Objective C++' language.
- * NEWS: Updated.
- * tests/local.at (AT_CHECK_ENV): Ignore AC_SUBSTed Objective C++
- related variables.
-
-2009-09-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- 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.
-
- DJGPP fix: Do not redirect standard input in configure scripts.
- * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): If $DJGPP is
- nonempty, do not dup fd 0 to AS_ORIGINAL_STDIN_FD, do not close
- fd 0.
-
-2009-09-14 Eric Blake <ebb9@byu.net>
-
- Quote result of m4_toupper and m4_tolower.
- * lib/m4sugar/m4sugar.m4 (m4_tolower, m4_toupper): Quote result.
- * lib/autotest/general.m4 (AT_KEYWORDS): Adjust caller.
- * tests/m4sugar.at (m4@&t@_toupper and m4@&t@_tolower): New test.
- * NEWS: Document this.
- * THANKS: Update.
- Reported by Sam Steingold.
-
-2009-09-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- DJGPP fix: remove both conftest and conftest.exe.
- 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.
-
- testsuite: pass $configure_options to configure invocations.
- * tests/local.at (AT_CHECK_CONFIGURE): Add $configure_options
- to configure command line.
- * tests/autotest.at, tests/base.at, tests/c.at, tests/torture.at:
- Likewise for each configure invocation.
- * README-hacking: Document configure_options.
-
- testsuite: improve Erlang tests portability, overridability.
- * 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.
-
-2009-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * bin/autoupdate.in: Fix typos in comments.
-
- Improve autotest testsuite summary message.
- * lib/autotest/general.m4 (AT_INIT): Hint at the toplevel log
- only if not $at_debug_p. Always hint at the per-test output.
-
- Four new autoupdate tests, expected failures.
- * tests/tools.at (autoupdating macros recursively)
- (autoupdating with m4@&t@_pushdef, autoupdating with AC_REQUIRE)
- (autoupdating with complex quoting): New tests.
-
- Fix description of AC_CHECK_LIB regarding other deplibs.
- * doc/autoconf.texi (Libraries): Library linking may not fail
- even without missing additional libs.
-
-2009-09-12 Eric Blake <ebb9@byu.net>
-
- Track recent copyright assignments.
- * AUTHORS: Update.
-
- Improve documentation on quoting.
- * doc/autoconf.texi (Autoconf Language): Clarify quoting example.
- * THANKS: Update.
- Reported by santilín.
-
-2009-09-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- New config.status option --config.
- * 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.
-
-2009-09-10 Eric Blake <ebb9@byu.net>
-
- 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.
-
- Clarify portability pitfall of test.
- * doc/autoconf.texi (Limitations of Builtins) <test>: Give more
- reasons why -a and -o are not portable.
- Reported by Reuben Thomas.
-
-2009-09-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- 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.
-
- Document temporary directory `$tmp' for use in config.status.
- * doc/autoconf.texi (Configuration Actions): Document `$tmp'.
- * NEWS: Update.
-
-2009-09-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Update License to GPLv3+ including new Autoconf Exception.
- * NEWS, README: Update licensing information.
- * COPYING.EXCEPTION: New file.
- * Makefile.am (EXTRA_DIST): Distribute it.
- * cfg.mk (autom4te-update): Remove copyright change warning.
- * lib/autoconf/autoconf.m4, lib/autoconf/autoheader.m4,
- lib/autoconf/autoscan.m4, lib/autoconf/autotest.m4,
- lib/autoconf/autoupdate.m4, lib/autoconf/c.m4,
- lib/autoconf/erlang.m4, lib/autoconf/fortran.m4,
- lib/autoconf/functions.m4, lib/autoconf/general.m4,
- lib/autoconf/headers.m4, lib/autoconf/lang.m4,
- lib/autoconf/libs.m4, lib/autoconf/oldnames.m4,
- lib/autoconf/programs.m4, lib/autoconf/specific.m4,
- lib/autoconf/status.m4, lib/autoconf/types.m4,
- lib/autotest/autotest.m4, lib/autotest/general.m4,
- lib/autotest/specific.m4, lib/m4sugar/foreach.m4,
- lib/m4sugar/m4sh.m4, lib/m4sugar/m4sugar.m4: Update exception
- statement, bump to GPLv3.
- * bin/autoconf.as, bin/autoheader.in, bin/autom4te.in,
- bin/autoreconf.in, bin/autoscan.in, bin/autoupdate.in,
- bin/ifnames.in: Bump to GPLv3+, adjust --version output
- to reflect the GPLv3+ and the Autoconf Exception.
- * lib/Autom4te/C4che.pm, lib/Autom4te/ChannelDefs.pm,
- lib/Autom4te/General.pm, lib/Autom4te/Request.pm,
- lib/autom4te.in, lib/autoscan/autoscan.pre,
- lib/emacs/autoconf-mode.el, lib/emacs/autotest-mode.el,
- lib/freeze.mk, tests/atlocal.in, tests/autoscan.at,
- tests/autotest.at, tests/base.at, tests/c.at,
- tests/compile.at, tests/erlang.at, tests/foreign.at,
- tests/fortran.at, tests/local.at, tests/m4sh.at,
- tests/m4sugar.at, tests/mktests.sh, tests/semantics.at,
- tests/statesave.m4, tests/suite.at, tests/tools.at,
- tests/torture.at, tests/wrapper.as: Bump to GPLv3+.
-
- 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.
-
-2009-09-04 Reuben Thomas <rrt@sc3d.org> (tiny change)
-
- Mention the Autoconf archive.
- * doc/autoconf.texi (Coding Style): Add a link.
-
-2009-08-30 Bruno Haible <bruno@clisp.org>
-
- 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.
-
-2009-09-04 Eric Blake <ebb9@byu.net>
-
- Improve wording about what goes before AC_INIT.
- * doc/autoconf.texi (Initializing configure): Update wording.
- (Versioning) <AC_PREREQ>: Remove misleading text, to match
- autoscan's behavior.
- * THANKS: Update.
- Reported by NightStrike, with input from Ralf Wildenhues.
-
-2009-09-04 Thomas Jahns <jahns@dkrz.de> (tiny change)
-
- Fix illegal tab character in Fortran source.
- * lib/autoconf/fortran.m4 (AC_FC_SRCEXT): Change TAB back to
- multiple spaces; regression introduced 2008-10-23.
- * NEWS: Mention this.
- * THANKS: Update.
-
-2009-08-22 Romain Lenglet <romain.lenglet@laposte.net>
-
- Fix AT_CHECK_EUNIT for versions of Erlang/OTP without init:stop/1.
- * lib/autotest/specific.m4 (AT_CHECK_EUNIT): Support older
- versions of Erlang/OTP with an erlang:stop() function that doesn't
- take arguments.
-
-2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Drop unneeded line in Eunit test.
- * tests/autotest.at (Erlang Eunit unit tests): Do not copy
- install-sh.
-
- Fix build dependencies for Erlang macro files.
- * lib/freeze.mk (autotest_m4f_dependencies): Add
- $(src_libdir)/autotest/specific.m4.
- * tests/Makefile.am (AUTOCONF_FILES): Add erlang.m4.
-
-2009-09-19 Paolo Bonzini <bonzini@gnu.org>
-
- 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.
-
-2009-08-18 Bruno Haible <bruno@clisp.org>
-
- Document Solaris tr range and NUL limitations.
- * doc/autoconf.texi (Limitations of Usual Tools): Mention that
- Solaris /usr/bin/tr does not support ranges, nor the '\0' octal
- escape.
-
-2009-08-14 Eric Blake <ebb9@byu.net>
-
- Simplify version control metadata.
- * .cvsignore: Delete.
- * bin/.cvsignore: Likewise.
- * config/.cvsignore: Likewise.
- * doc/.cvsignore: Likewise.
- * lib/.cvsignore: Likewise.
- * lib/autoconf/.cvsignore: Likewise.
- * lib/Autom4te/.cvsignore: Likewise.
- * lib/autoscan/.cvsignore: Likewise.
- * lib/autotest/.cvsignore: Likewise.
- * lib/emacs/.cvsignore: Likewise.
- * lib/m4sugar/.cvsignore: Likewise.
- * man/.cvsignore: Likewise.
- * tests/.cvsignore: Likewise.
- * bin/.gitignore: Likewise.
- * build-aux/.gitignore: Likewise.
- * config/.gitignore: Likewise.
- * doc/.gitignore: Likewise.
- * lib/.gitignore: Likewise.
- * lib/autoconf/.gitignore: Likewise.
- * lib/Autom4te/.gitignore: Likewise.
- * lib/autoscan/.gitignore: Likewise.
- * lib/autotest/.gitignore: Likewise.
- * lib/emacs/.gitignore: Likewise.
- * lib/m4sugar/.gitignore: Likewise.
- * man/.gitignore: Likewise.
- * tests/.gitignore: Likewise.
- * .gitignore: Consolidate all rules into one file.
-
- Normalize remaining copyright lines.
- * BUGS: Reformat copyright line, using UPDATE_COPYRIGHT_FORCE.
- * NEWS: Likewise.
- * README-hacking: Likewise.
- * TODO: Likewise.
- * lib/Autom4te/ChannelDefs.pm: Likewise.
- * lib/autoconf/fortran.m4: Likewise.
- * lib/autoconf/general.m4: Likewise.
- * lib/autoconf/lang.m4: Likewise.
- * lib/autotest/general.m4: Likewise.
* maint.mk: Likewise.
- * tests/compile.at: Likewise.
-
- Improve copyright updating.
- * build-aux/update-copyright: Resynchronize from upstream.
- * maint.mk (update-copyright): Simplify based on gnulib.
- (update-copyright-env): New variable.
- * cfg.mk (update-copyright-exclude-regexp): Delete.
- (update-copyright-env): New override.
- * .x-update-copyright: New file.
- * lib/Autom4te/Makefile.am: Add copyright.
- * lib/Autom4te/Channels.pm: Revert copyright update to upstream
- file.
- * lib/Autom4te/Configure_ac.pm: Likewise.
- * lib/Autom4te/FileUtils.pm: Likewise.
- * lib/Autom4te/Struct.pm: Likewise.
- * lib/Autom4te/XFile.pm: Likewise.
-
- Update copyright.
- * AUTHORS: Include 2009 in copyright.
- * lib/Autom4te/C4che.pm: Likewise.
- * lib/Autom4te/Channels.pm: Likewise.
- * lib/Autom4te/Configure_ac.pm: Likewise.
- * lib/Autom4te/FileUtils.pm: Likewise.
- * lib/Autom4te/General.pm: Likewise.
- * lib/Autom4te/Request.pm: Likewise.
- * lib/Autom4te/Struct.pm: Likewise.
- * lib/autoconf/Makefile.am: Likewise.
- * lib/autoconf/autoconf.m4: Likewise.
- * lib/autoconf/autoscan.m4: Likewise.
- * lib/autoconf/autoupdate.m4: Likewise.
- * lib/autoconf/functions.m4: Likewise.
- * lib/autoconf/libs.m4: Likewise.
- * lib/autoconf/oldnames.m4: Likewise.
- * lib/autoconf/types.m4: Likewise.
- * lib/autoscan/Makefile.am: Likewise.
- * lib/autoscan/autoscan.pre: Likewise.
- * lib/autotest/Makefile.am: Likewise.
- * lib/autotest/autotest.m4: Likewise.
- * lib/emacs/autoconf-mode.el: Likewise.
- * lib/emacs/autotest-mode.el: Likewise.
- * lib/freeze.mk: Likewise.
- * lib/m4sugar/foreach.m4: Likewise.
- * man/Makefile.am: Likewise.
- * tests/atlocal.in: Likewise.
- * tests/autoscan.at: Likewise.
- * tests/foreign.at: Likewise.
- * tests/fortran.at: Likewise.
- * tests/mktests.sh: Likewise.
- * tests/semantics.at: Likewise.
- * tests/suite.at: Likewise.
- * tests/wrapper.as: Likewise.
-
- 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 variable.
- (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.
-
-2009-08-12 Paolo Bonzini <bonzini@gnu.org>
-
- Fix testsuite log capturing for tests 183 and 186.
- * tests/autotest.at (AT_CHECK_AT_PREP): Prepend AT_dir to
- testsuite log file for AT_CAPTURE_FILE.
-
-2009-08-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Ensure we do not regress with AC_CHECK_MEMBERS.
- * tests/semantics.at (AC_CHECK_MEMBERS): Expose the recent
- AC_CHECK_MEMBERS fix.
- (AC_CHECK_MEMBER): New test group.
-
-2009-08-10 Jeff Squyres <jsquyres@cisco.com> (tiny change)
-
- Fix typo in AC_REQUIRE description.
- * doc/autoconf.texi (Prerequisite macros): Fix typo.
-
-2009-08-10 Paolo Bonzini <bonzini@gnu.org>
-
- Fix description of the macro generated by AC_CHECK_MEMBERS.
- * lib/autoconf/types.m4 (_AC_CHECK_MEMBERS): Fix regex
- replacement. Reported by Bruno Haible.
-
-2009-08-07 Romain Lenglet <romain.lenglet@laposte.net>
-
- * lib/autoconf/erlang.m4 (AC_LANG(Erlang)): Make AC_RUN_IFELSE
- fail if the test module doesn't compile.
-
-2009-08-02 Paolo Bonzini <bonzini@gnu.org>
-
- Use exit code to detect no occurrences with grep.
- * tests/autotest.at (Erlang Eunit unit tests): Fix grep invocation.
-
-2009-08-01 Romain Lenglet <romain.lenglet@laposte.net>
- Paolo Bonzini <bonzini@gnu.org>
-
- * lib/autotest/specific.m4 (AT_CHECK_EUNIT): New file.
- * lib/autotest/Makefile.am (dist_autotestlib_DATA): Add specific.m4.
- * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Add definitions of
- variables used by AT_CHECK_EUNIT macro: ERL, ERLC, ERLCFLAGS.
- * tests/autotest.at (Erlang Eunit unit tests): Add test for macro
- AT_CHECK_EUNIT.
- * doc/autoconf.texi (Writing Testsuites): Document macro
- AT_CHECK_EUNIT.
- * NEWS: Mention macro AT_CHECK_EUNIT.
-
-2009-07-30 Paolo Bonzini <bonzini@gnu.org>
- Joel E. Denny <jdenny@clemson.edu>
-
- Clarify comparison of echo, printf, and AS_ECHO*.
- * doc/autoconf.texi (Limitations of Builtins): In echo's entry,
- give a reason why printf is better than echo. In printf's
- entry, cross-reference echo's entry.
-
-2009-07-30 Paolo Bonzini <bonzini@gnu.org>
-
- Add back AH_CHECK_HEADERS.
- * lib/autoconf/general.m4 (AH_CHECK_HEADERS): New.
- * NEWS: Create new section.
-
-2009-07-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- testsuite: avoid bogus hostname match from inner test logs.
- * tests/autotest.at (Hard fail): Check more restrictively for
- passed tests, so that hostnames recorded in the log file do not
- wrongly match.
- Report by Ludovic Courtès.
-
-2009-07-26 Eric Blake <ebb9@byu.net>
- Release Version 2.64.
- * NEWS: Mention the release.
- * README: This release is stable.
- * HACKING (release): Use dist-xz, not dist-lzma.
-
- Document some optional features in INSTALL.
- * doc/install.texi (Basic Installation): Mention that INSTALL is
- generic, and that not all packages implement all features.
- Mention 'make distcheck' for maintainers, and 'make installcheck'
- for users. Mention the GNU Coding Standards.
- (Installation Names): Mention DESTDIR vs. 'make prefix= install'
- as ways to alter the configuration, with caveats of each. Move
- --program-prefix discussion...
- (Optional Features): ...here. Mention --enable-silent-rules and
- use of make V=0.
-
- Basic improvements to INSTALL.
- * doc/install.texi (Basic Installation): Use better markup.
- (Multiple Architectures): Introduce the term VPATH.
- (Installation Names): Mention that --prefix must be absolute.
- * doc/autoconf.texi (Preset Output Variables)
- (Installation Directory Variables): Consistently refer to GNU
- Coding Standards.
-
- Update some upstream files.
- * build-aux/config.guess: Resynchronize from upstream.
- * build-aux/config.sub: Likewise.
- * build-aux/texinfo.tex: Likewise.
- * build-aux/vc-list-files: Likewise.
- * doc/standards.texi: Likewise.
-
-2009-07-25 Eric Blake <ebb9@byu.net>
-
- Recognize new m4sugar keywords.
- * lib/emacs/autoconf-mode.el (autoconf-current-defun): Recognize
- m4_define_default, m4_defun_init, m4_defun_once.
- (autoconf-font-lock-keywords): Likewise.
-
- Require m4 1.4.6, and fix testsuite to support this version.
- * m4/m4.m4 (AC_PROG_GNU_M4): Reject m4 1.4.5, now that we use
- regexp it can't handle.
- * NEWS: Mention minimum version bump.
- * README: Likewise.
- * README-hacking: Likewise.
- * doc/autoconf.texi (Introduction, Why GNU M4): Likewise.
- * tests/tools.at (autom4te --trace and whitespace): Update test so
- still work with older m4 line numbers.
- * tests/m4sugar.at (m4@&t@_require: nested): Likewise.
- Reported by Ralf Wildenhues.
-
-2009-07-25 Bruno Haible <bruno@clisp.org>
-
- Clarify autom4te debugging tips.
- * doc/autoconf.texi (Debugging via autom4te): Fix example from
- previous commit, and add clarification.
-
-2009-07-25 Eric Blake <ebb9@byu.net>
-
- Document some autom4te debugging tips.
- * doc/autoconf.texi (Debugging via autom4te): New node.
- Suggested by Bruno Haible.
-
- Fix font-lock.
- * configure.ac (ac_cv_unsupported_fs_chars): Make editing easier.
-
- Let autoheader see through m4 macros in AC_DEFINE.
- * lib/autoconf/general.m4 (AC_DEFINE_TRACE): Expand macro before
- tracing its name.
- * lib/autoconf/autoheader.m4 (AH_VERBATIM, AH_TEMPLATE): Likewise,
- for using the macro in a template file.
- * tests/tools.at (autoheader and macros): New test.
- * NEWS: Mention this.
- Reported by Bruno Haible.
-
- Improve NEWS wording.
- * NEWS: Use more accurate statement.
- Suggestedy by Ralf Wildenhues.
-
-2009-07-24 Eric Blake <ebb9@byu.net>
+2012-02-25 Eric Blake <eblake@redhat.com>
- Fix AS_EXIT for FreeBSD sh.
- * lib/m4sugar/m4sh.m4 (AS_EXIT): Always supply an argument to the
- shell function, since $? is not reliable on function entry.
- (_AS_EXIT_PREPARE): Simplify to assume argument.
- Reported by Ralf Wildenhues.
+ tests: add test for AS_EXECUTABLE_P
+ Now that this is public, we should regression test it.
-2009-07-23 Eric Blake <ebb9@byu.net>
+ * tests/m4sh.at (AS@&t@_EXECUTABLE): New test.
- Run more tests under Solaris.
- * tests/local.at (AT_CHECK_AUTOCONF): Don't skip entire test
- group when passing over syntax checks.
+2012-02-24 Eric Blake <eblake@redhat.com>
-2009-07-23 Romain Lenglet <romain.lenglet@laposte.net>
+ m4sh: make AS_EXECUTABLE_P public
+ In the process of making it public, factor it into a reusable
+ function. This makes constructs like AC_CHECK_PROGRAM smaller,
+ as well as making libtool's naughty use of $as_executable_p safer.
- Clean up temporary files generated by Erlang macros.
- * lib/autoconf/erlang.m4 (AC_ERLANG_CHECK_LIB)
- (AC_ERLANG_SUBST_ROOT_DIR, AC_ERLANG_SUBST_LIB_DIR)
- (AC_ERLANG_SUBST_ERTS_VER): Delete conftest.out; renamed
- erlang_cv_* cache variables into ac_cv_erlang_*.
- * lib/autoconf/general.m4 (AC_RUN_IFELSE): Delete conftest.beam
- files generated by Erlang compiler.
- * tests/local.at (AT_CHECK_ENV): Ignore variables defined by
- Erlang macros.
- * tests/erlang.at (AT_SETUP_ERLANG): Delete; replace all uses by
- AT_CHECK_MACRO.
- * tests/Makefile.am (AUTOCONF_FILES): Revert previous addition of
- generated Erlang tests; they are all hand-tested.
-
- Add autotests for Erlang macros.
- * tests/erlang.at: Added tests for all macros in erlang.m4.
- * tests/Makefile.am (TESTSUITE_HAND_AT, AUTOCONF_FILES): Added
- erlang.at.
- * tests/suite.at: Likewise.
- * tests/compile.at (AC_LANG, AC_LANG_PUSH & AC_LANG_POP): Added
- test for extension of Erlang files.
- (Multiple languages): Use correct m4 quoting.
+ * lib/m4sugar/m4sh.m4 (_AS_TEST_PREPARE): Add a shell function.
+ (AS_EXECUTABLE_P): Forward to shell function.
+ * doc/autoconf.texi (Common Shell Constructs): Document it.
* NEWS: Mention this.
-2009-07-22 Eric Blake <ebb9@byu.net>
-
- Fix test of autom4te from stdin.
- * tests/tools.at (autom4te cache locking): Make stdin request
- explicit, so that --force is properly used.
-
-2009-07-16 Eric Blake <ebb9@byu.net>
-
- Don't hide leading space in autom4te --trace output.
- * bin/autom4te.in (handle_traces): Don't flatten leading and
- trailing space, since tracing spacing bugs can be useful.
- * tests/tools.at (autom4te --trace and whitespace): New test.
-
-2009-07-13 Eric Blake <ebb9@byu.net>
-
- Document that $srcdir can be used during configure.
- * doc/autoconf.texi (Preset Output Variables): Add a paragraph.
- * THANKS: Update.
- Reported by Monty Taylor.
-
-2009-07-13 Eric Blake <ebb9@byu.net>
-
- Disable asynchronous job notification for parallel tests.
- * lib/autotest/general.m4 (AT_INIT) <Driver loop>: Turn off notify
- mode, since zsh leaves it on after 'emulate sh'.
- * doc/autoconf.texi (Limitations of Builtins) <set>: Document that
- job control options are not portable.
-
- Guarantee that exit status trumps output matching.
- * doc/autoconf.texi (Writing Testsuites) <AT_CHECK>: Document this
- better.
- * tests/autotest.at (Skip, parallel skip): Enhance tests.
-
- Fix nits in recent patches.
- * configure.ac (ac_cv_dir_trailing_space): Avoid $status, for
- zsh.
- * doc/autoconf.texi (Writing Testsuites) <AT_FAIL_IF, AT_SKIP_IF>:
- Tweak wording.
- (Introduction): Recommend m4 1.4.13.
- * README: Likewise.
- * m4/m4.m4 (AC_PROG_GNU_M4): Likewise. Use long option --gnu
- rather than -g.
-
-2009-07-13 Paolo Bonzini <bonzini@gnu.org>
-
- Introduce AT_SKIP_IF and AT_FAIL_IF
- * NEWS: Mention AT_SKIP_IF and AT_FAIL_IF.
- * doc/autoconf.texi (Autotest): Document them.
- * lib/autotest/general.m4 (_AT_LINE_ESCAPED, AT_SKIP_IF,
- AT_FAIL_IF, _AT_CHECK_EXIT): New.
- (AT_CHECK): Use _AT_LINE_ESCAPED.
- * tests/autotest.at: Add tests for AT_SKIP_IF and AT_FAIL_IF.
- Use AT_SKIP_IF.
- * tests/local.at: Use AT_SKIP_IF.
-
-2009-07-13 Paolo Bonzini <bonzini@gnu.org>
-
- Use m4 -g when available.
- * m4/m4.m4: Unset POSIXLY_CORRECT during first test. Test for -g.
- Warn user if he has POSIXLY_CORRECT set but -g is not supported.
- * bin/Makefile.am: Substitute @M4_GNU@ into generated files.
- * bin/autom4te.in: Pass @M4_GNU@ to m4.
-
-2009-07-13 Eric Blake <ebb9@byu.net>
-
- Fix previous patch.
- * lib/autotest/general.m4 (at_fn_check_prepare_notrace): Use
- proper m4 quoting.
- (_AT_DECIDE_TRACEABLE): Likewise.
-
-2009-07-13 Paolo Bonzini <bonzini@gnu.org>
-
- * lib/autotest/general.m4 (at_fn_check_prepare_notrace): Use
- $at_trace_echo. Add new REASON argument.
- (at_fn_check_prepare_trace): Do not call at_fn_check_prepare_notrace.
- Use $at_check_filter_trace.
- (at_fn_check_prepare_dynamic): Use at_fn_check_prepare_notrace.
- (at_traceon): Initialize to ':'.
- (at_traceoff): Remove, use 'set +x' instead throughout.
- (at_check_filter_trace, at_trace_echo): New shell variables.
- Initialize them if tracing is requested.
- (_AT_DECIDE_TRACEABLE): Adjust call to at_fn_check_prepare_notrace.
-
-2009-07-12 Paolo Bonzini <bonzini@gnu.org>
-
- Move atlocal feature tests to configure
- * configure.ac: Test for unsupported characters in files and
- directories here...
- * tests/atlocal.in: ... and not here.
-
-2009-07-09 Eric Blake <ebb9@byu.net>
+2012-02-24 Eric Blake <eblake@redhat.com>
- Fix test typo.
- * tests/m4sh.at (AS@&t@_INIT_GENERATED): Close fd, rather than
- creating file named -.
+ m4sh: require that 'test -x' works
+ 4.3BSD is no longer a reasonable portability target; and we are
+ pretty sure that these days we can find at least one shell on any
+ platform that supports 'test -x'. Drop a horribly unsafe use of
+ eval as a result. :)
- Fix testsuite under dash.
- * tests/m4sh.at (LINENO stack, AS@&t@_BASENAME, AS@&t@_DIRNAME)
- (AS@&t@_ECHO and AS@&t@_ECHO_N, AS@&t@_EXIT, AS@&t@_MKDIR_P)
- (AS@&t@_VERSION_COMPARE, as_me, Negated classes in globbing)
- (Functions Support, Functions and return Support)
- (Nested AS@&t@_REQUIRE_SHELL_FN, Nested AS@&t@_REQUIRE)
- (AS@&t@_REQUIRE_SHELL_FN and m4@&t@_require, AS@&t@_HELP_STRING)
- (AS@&t@_IF and AS@&t@_CASE, AS@&t@_FOR, AS@&t@_LITERAL_IF)
- (AS@&t@_VAR basics, AS@&t@_VAR_APPEND, AS@&t@_VAR_ARITH)
- (AS@&t@_INIT cleanup, AS@&t@_INIT_GENERATED, AS@&t@_MESSAGE_FD)
- (_AS@&t@_CLEAN_DIR, ECHO_C): Allow testing different CONFIG_SHELL
- options during the testsuite run.
- Reported by Ralf Wildenhues.
+ Libtool still uses $as_executable_p without so much as calling
+ either AS_TEST_X or AS_EXECUTABLE_P; even though the latter has
+ existed, although undocumented, since at least 2.59; furthermore,
+ libtool uses it in a context where filtering out directories
+ would have been desirable. Shame on them.
-2009-07-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ * lib/m4sugar/m4sh.m4 (_AS_TEST_X_WORKS): New probe.
+ (AS_SHELL_SANITIZE, AS_INIT): Use it in shell searching.
+ (AS_TEST_X, AS_EXECUTABLE_P): Simplify.
- Ignore messages on stderr when testing for the zsh issue.
- * tests/autotest.at (AT_SKIP_PARALLEL_TESTS): Ignore stderr.
+2012-02-24 Eric Blake <eblake@redhat.com>
-2009-07-07 Eric Blake <ebb9@byu.net>
+ doc: mention more pitfalls of file mode tests
+ 4.3BSD is museum-ware now, so we can assume that test -x exists;
+ however, we still can't assume that it always does what we want.
- Skip parallel tests when zsh 'set -m' fails.
- * tests/autotest.at (AT_SKIP_PARALLEL_TESTS): Skip test if set -m
- is not supported.
- Reported by Ralf Wildenhues.
+ * doc/autoconf.texi (Limitations of Builtins) <test (files)>:
+ Treat 'test -x' as mostly portable, but mention problems with
+ root user, ACLs, and TOCTTOU races.
- Make parallel testsuite more portable.
- * lib/autotest/general.m4 (AT_INIT) <AT_JOB_FIFO_FD>: Avoid <>;
- instead open write descriptor in each group and read descriptor in
- main driver.
- * tests/autotest.at (AT_SKIP_PARALLEL_TESTS): Relax condition.
+2012-02-16 Eric Blake <eblake@redhat.com>
-2009-07-03 Eric Blake <ebb9@byu.net>
+ docs: tweak 'rm -f' limitations
+ Based on http://debbugs.gnu.org/10819 and
+ http://austingroupbugs.net/view.php?id=542
- Avoid syntax error in ash.
- * lib/autotest/general.m4 (AT_INIT) <driver loop>: Avoid syntax
- errors on shells that don't recognize <>.
- * tests/autotest.at (AT_SKIP_PARALLEL_TESTS): Also skip parallel
- tests for this reason. Skip based on the shell to be tested,
- not the shell driving the testsuite.
- (parallel syntax error): Rearrange similar to previous patch.
- (parallel test execution): Defer skip until after serial tests.
+ * doc/autoconf.texi (Limitations of Usual Tools) <rm>: More
+ details on 'rm -f' without files.
-2009-07-02 Eric Blake <ebb9@byu.net>
+2012-02-10 Paul Eggert <eggert@cs.ucla.edu>
- Skip test on shells that can't catch syntax failure.
- * tests/autotest.at (Syntax error): Skip test if shell aborts on
- syntax error (AIX ksh88) or doesn't detect it (zsh).
- * doc/autoconf.texi (Limitations of Builtins) <.>: Mention these
- limitations.
- Reported by Ralf Wildenhues.
+ maint: replace FSF snail-mail addresses with URLs
+ * tests/erlang.at, tests/go.at, tests/statesave.m4:
+ Replace FSF snail mail addresses with URLs, as per GNU coding
+ standards, and for consistency with other tests.
-2009-06-30 Jan Madzik <jmadzik@gmail.com> (tiny change)
- Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+2012-01-28 Jim Meyering <meyering@redhat.com>
- Avoid AIX 6.1 ksh88 ECHO_C command substitution bug.
- * lib/m4sugar/m4sh.m4 (_AS_ECHO_N_PREPARE): Ensure more than
- one character is output with `\c'; reset echo output state
- if buggy ksh was detected, and set ECHO_T instead of ECHO_C.
- * doc/autoconf.texi (Limitations of Builtins): Document it.
- * tests/m4sh.at (ECHO_C): New test.
- * THANKS: Update.
+ maint: avoid "make syntax-check" failure
+ * Makefile.am ($(srcdir)/INSTALL): Remove spurious space-before-TAB.
-2009-06-27 William Pursell <bill.pursell@gmail.com> (tiny change)
+2012-01-23 Eric Blake <eblake@redhat.com>
- Fix grammaro in documenation.
- * doc/autoconf.texi (Guidelines): Fix grammaro.
+ tests: fix test regression due to additional output
+ This test has been failing since commit 5285ea8c (sadly, since
+ last July; thankfully, unreleased).
-2009-06-17 Eric Blake <ebb9@byu.net>
+ * tests/m4sugar.at (m4@&t@_require: nested): Fix test.
- Fix AC_CHECK_HEADER infloop for gcc.
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_NEW)
- (_AC_CHECK_HEADER_OLD): Give up on AU_DEFUN, and manually warn
- about obsoletion, to avoid infinite loop in gcc.
- Reported by Ralf Wildenhues.
+2012-01-23 Eric Blake <eblake@redhat.com>
-2009-06-15 Eric Blake <ebb9@byu.net>
+ INSTALL: convert to '' quoting, drop blank line at end
+ This is allowed by recent GNU Coding Standards changes, and
+ mirrors recent gnulib changes:
+ https://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00267.html
+ https://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00298.html
- Add m4_copy_force, m4_rename_force.
- * lib/m4sugar/m4sugar.m4 (m4_copy_force, m4_rename_force): New
- macros.
- * tests/m4sugar.at (m4@&t@_defn): Test them.
- * doc/autoconf.texi (Redefined M4 Macros) <m4_copy>: Document
- them.
- * NEWS: Likewise.
- Suggested by Ralf Wildenhues.
+ I've confirmed that after these changes, the INSTALL generated and
+ installed by autoconf matches the INSTALL.ISO in gnulib.
- Reinstate _AC_CHECK_HEADER_OLD for gcc.
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_NEW)
- (_AC_CHECK_HEADER_OLD): Provide autoupdate versions, since gcc and
- others used these undocumented macros.
- Reported by Ralf Wildenhues.
+ * Makefile.am ($(srcdir)/INSTALL): Match gnulib INSTALL.ISO.
-2009-06-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+2012-01-23 Jim Meyering <meyering@redhat.com>
- Fix concurrent autom4te.cache directory creation race.
- * bin/autom4te.in: Do not error out if another `autom4te'
- instance created the cache directory before we could.
-
-2009-06-11 Steven G. Johnson <stevenj@alum.mit.edu>
- and Eric Blake <ebb9@byu.net>
-
- Create a file in test program when detecting cross-compilation.
- * lib/autoconf/lang.m4 (_AC_LANG_IO_PROGRAM): New macro, returns
- program that creates a file.
- (_AC_COMPILER_EXEEXT,_AC_COMPILER_EXEEXT_WORKS): Call new macro
- and document why it's needed to robustly detect cross-compiling.
- (AC_LANG_DEFINE): Copy implementation across similar languages.
- * lib/autoconf/c.m4 (_AC_LANG_IO_PROGRAM(C)): Implement new macro.
- * lib/autoconf/fortran.m4 (_AC_LANG_IO_PROGRAM(Fortran 77)):
- Likewise.
- * lib/autoconf/erlang.m4 (_AC_LANG_IO_PROGRAM(Erlang)): Likewise.
-
-2009-06-11 Eric Blake <ebb9@byu.net>
-
- Simplify AC_LANG(Fortran).
- * lib/autoconf/fortran.m4 (AC_LANG(Fortran)): Borrow from Fortran
- 77, which requires reordering portions of the file.
- (AC_LANG_PROGRAM(Fortran), AC_LANG_CALL(Fortran)): Now defined
- automatically.
-
- Clarify m4_copy semantics.
- * doc/autoconf.texi (Redefined M4 Macros) <m4_copy>: Update
- documentation.
- * tests/m4sugar.at (m4@&t@_defn): Enhance test.
-
-2009-06-06 Eric Blake <ebb9@byu.net>
-
- Improve documentation on trap pitfalls.
- * doc/autoconf.texi (Limitations of Builtins) <trap>: Mention new
- Posix 2008 requirement on trap, and dash bug in implementing it.
- Mention various shell bugs with traps defined inside subshells.
- Mention older bash limitation with single-command exit trap.
- <set>: Mention another 'set -e' limitation.
- Reported by Jens Schmidt.
-
-2009-06-06 Jim Meyering <meyering@redhat.com>
-
- Improve testsuite --help
- * lib/autotest/general.m4: Correct the example in ./testsuite --help.
- Improve wording.
-
-2009-06-06 Eric Blake <ebb9@byu.net>
-
- Document fallback behavior of AC_PROG_LEX.
- * doc/autoconf.texi (Particular Programs) <AC_PROG_LEX>: Mention
- why fallback is :, and that a --version check must be used to
- determine whether flex was found.
- Reported by Patrick Welche.
-
-2009-05-28 Jim Meyering <meyering@redhat.com>
-
- Fix syntax errors in autoconf.texi.
- * doc/autoconf.texi (Erlang Libraries): @-escape curly braces
- in example code.
-
-2009-05-28 Romain Lenglet <romain.lenglet@laposte.net>
-
- New AC_ERLANG_SUBST_ERTS_VER macro.
- * lib/autoconf/erlang.m4: Add macro AC_ERLANG_SUBST_ERTS_VER.
- * doc/autoconf.texi (Erlang Libraries): Document
- AC_ERLANG_SUBST_ERTS_VER.
- * NEWS: Likewise.
- * AUTHORS: Update Romain Lenglet's email address.
- * THANKS: Update.
- Suggested by Ruslan Babayev.
-
-2009-05-26 Eric Blake <ebb9@byu.net>
-
- Sanitize more problematic environment variables.
- * doc/autoconf.texi (Environment Variable Index): Add more
- entries, particularly for precious variables and known culprit
- variables. Needed to avoid overfull vbox.
- (Special Shell Variables) <CLICOLOR_FORCE, GREP_OPTIONS>: Add
- variables known to cause misbehavior.
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Unset variables
- known to cause problems.
- * THANKS: Update.
- Based on reports from Ilya Bobir and Joey Mingrone.
-
-2009-05-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Document VPATH = $(variable) issue in VPATH chapter.
- * doc/autoconf.texi (Variables listed in VPATH): New node.
- (Top, VPATH and Make): Adjust menus.
- (Build Directories): Refer to it.
- Prompted by report from Bruno Haible.
-
-2009-05-19 Eric Blake <ebb9@byu.net>
-
- Update uses of all-permissive license.
- * ChangeLog: Relicense under GPL.
- * ChangeLog.0: Likewise.
- * ChangeLog.1: Likewise.
- * ChangeLog.2: Likewise.
- * THANKS: Likewise.
- * m4/m4.m4: Use latest wording of FSF all-permissive license.
- * m4/make-case.m4: Likewise.
- * doc/install.texi: Likewise.
- * tests/statesave.m4: Relicense to match rest of testsuite; this
- file does not need all-permissive license since it is not designed
- for reuse by other packages.
- * BUGS: Relicense under all-permissive license.
- * HACKING: Likewise.
- * NEWS: Likewise.
- * README: Likewise.
- * README-alpha: Likewise.
- * README-hacking: Likewise.
- * TODO: Likewise.
-
- Update some upstream files.
- * build-aux/config.guess: Resynchronize from upstream.
- * build-aux/gnupload: Likewise.
- * build-aux/vc-list-files: Likewise.
- * build-aux/texinfo.tex: Likewise.
- * doc/gendocs_template: Likewise.
-
- Don't mention undocumented interface in NEWS.
- * NEWS: Correct earlier entry about AS_FOR.
-
-2009-05-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- New manual section `Parallel Make'.
- * doc/autoconf.texi (Parallel Make): New node, document NetBSD
- `make -jN' quirks.
- (Top, Portable Make): Adjust menus.
-
-2009-05-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- testsuite: skip `Multiple languages' test without C++ compiler.
- * tests/compile.at (Multiple languages): Skip test on systems
- without a C++ compiler.
- Report by Jim Meyering.
-
-2009-05-13 Eric Blake <ebb9@byu.net>
-
- Document zsh bug with empty commands.
- * doc/autoconf.texi (Special Shell Variables) <?>: Add mention of
- more problems with $?.
-
-2009-05-11 Patrick Welche <prlw1@cam.ac.uk> (tiny change)
-
- Also try X11R7 when looking for X11 files, for NetBSD.
- * lib/autoconf/libs.m4 (_AC_PATH_X_DIRECT): Also try directories
- with X11R7 in the name.
-
-2009-05-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Limit stderr logging for C compiler version.
- * lib/autoconf/general.m4 (_AC_RUN_LOG_LIMIT, _AC_DO_LIMIT): New
- internal macros, equivalent to _AC_RUN_LOG and _AC_DO, but with
- an optional additional argument to limit the number of lines of
- stderr output logged, defaulting to 10.
- * lib/autoconf/c.m4 (AC_PROG_CC, AC_PROG_CXX, AC_PROG_OBJC): Use
- _AC_DO_LIMIT for capturing compiler version output. Also test
- -qversion, for the IBM xlc compiler.
- * lib/autoconf/fortran.m4 (_AC_PROG_FC): Likewise.
- * THANKS: Update.
- Report by Christian Rössel and John R. Cary against Libtool.
-
-2009-04-24 Eric Blake <ebb9@byu.net>
-
- Fix quoting of m4 macros in AT_CHECK.
- * lib/autotest/general.m4 (AT_CHECK): Expand prior to adding
- escapes, to avoid shell syntax errors caused by late macro
- expansion.
- * NEWS: Document this change.
- * tests/autotest.at (Metacharacters in command from M4 expansion):
- New test.
-
- manual: Use consistent spelling of here-document.
- * doc/autoconf.texi (Defining Symbols, Programming in M4sh)
- (Common Shell Constructs, Macro Names, Writing Testsuites): Fix
- spelling.
- Reported by Ralf Wildenhues.
-
- Make AT_CHECK_UNQUOTED more like AC_DEFINE_UNQUOTED.
- * lib/autotest/general.m4 (AT_CHECK_NOESCAPE): Keep older,
- undocumented semantics, where unbalanced " cannot be used in the
- stdout/stderr argument.
- (AT_CHECK_UNQUOTED): Treat " in stdout/stderr as a literal, since
- the text is used in double-quoted context.
- * tests/autotest.at (unquoted output): New test.
- * doc/autoconf.texi (Writing Testsuites) <AT_CHECK>: Mention which
- shell expansions are handled.
-
- Rename AT_CHECK_NOESCAPE to AT_CHECK_UNQUOTED.
- * lib/autotest/general.m4 (AT_CHECK_NOESCAPE): Deprecate, in favor
- of new spelling...
- (AT_CHECK_UNQUOTED): ...for consistency with AC_DEFINE_UNQUOTED.
- * doc/autoconf.texi (Writing Testsuites) <AT_CHECK>: Document the
- rename.
- * NEWS: Likewise.
- * tests/autotest.at (Binary output, Cleanup): Adjust tests.
- * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
- Likewise.
- Reported by Ralf Wildenhues.
-
-2009-04-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- New test to ensure autom4te cache file locking works.
- * tests/tools.at (autom4te cache locking): New test.
- Report by Eric Blake.
-
-2009-04-22 Paolo Bonzini <bonzini@gnu.org>
-
- manual: another grammar improvement.
- * doc/autoconf.texi (Fortran Compiler): Avoid dependency on
- pronunciation of `FCFLAGS_f90'.
-
-2009-04-23 Eric Blake <ebb9@byu.net>
-
- Change FOO placeholder to use @var{text} instead.
- * doc/autoconf.texi (Configuration Actions): Rename AC_CONFIG_FOOS
- to AC_CONFIG_@var{ITEMS}.
- * doc/autoconf.texi (config.status Invocation): Likewise.
- (AC_FOO_IFELSE vs AC_TRY_FOO): Rename node...
- (AC_ACT_IFELSE vs AC_TRY_ACT): ...to this.
-
-2009-04-22 Eric Blake <ebb9@byu.net>
-
- Add m4_argn.
- * lib/m4sugar/m4sugar.m4 (m4_argn): New macro.
- * NEWS: Document it.
- * doc/autoconf.texi (Looping constructs) <m4_argn>: Likewise.
- <m4_car, m4_cdr>: Improve documentation.
- * tests/m4sugar.at (m4 lists): New test.
-
-2009-04-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Improve description of AC_PROG_CC_C89 and AC_PROG_CC_C99.
- * doc/autoconf.texi (C Compiler): Document that AC_PROG_CC_C89
- and AC_PROG_CC_C99 prefer extended over strict conformance modes.
- Report by Vincent Lefèvre.
-
-2009-04-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Revert bogus change in last commit.
- * doc/autoconf.texi (Initialization Macros): Revert change.
- Spotted by Eric Blake.
-
- manual: fix trivial grammar errors.
- * doc/autoconf.texi (Fortran Compiler, Initialization Macros)
- (Limitations of Usual Tools, Pretty Help Strings)
- (config.status Invocation): Fix `a' vs. `an' errors.
- Report by Eric Blake.
-
-2009-04-21 Eric Blake <ebb9@byu.net>
-
- Shuffle maintainer-specific rules.
- * Makefile.am (maintainer-check-tests): Delete.
- (autom4te-update): Move...
- * cfg.mk (autom4te-update): ...here.
- (fetch): Depend on autom4te-update. Split...
- (gnulib-update): ...into new rule. Import move-if-change from
- gnulib.
- * maint.mk (maintainer-distcheck): Absorb former maintainer-check
- rule.
- * build-aux/move-if-change: New file, undistributed.
- * .gitattributes: Handle new upstream file.
- * .gitignore: Ignore maintainer cruft.
- * HACKING: Update maintainer instructions.
- * build-aux/config.guess: Update from upstream.
- * build-aux/config.sub: Likewise.
- * build-aux/gendocs.sh: Likewise.
- * build-aux/texinfo.tex: Likewise.
- * doc/gendocs_template: Likewise.
- * doc/standards.texi: Likewise.
-
-2009-04-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Sync autom4te perl modules from Automake.
- * lib/Autom4te/Channels.pm: Sync from Automake.
- * lib/Autom4te/FileUtils.pm: Likewise.
- * lib/Autom4te/XFile.pm: Likewise.
-
- Adjust channel definitions for new Automake `ordered' flag.
- * lib/Autom4te/ChannelDefs.pm (Autom4te::ChannelDefs): Set
- `ordered' flag to zero for channels `fatal', `automake', and
- `verb'. This has currently no effect on actual semantics but
- avoids a consistency check needed for Automake's usage of the
- Channels.pm code.
-
- manual: clarify m4_if synopsis.
- * doc/autoconf.texi (Redefined M4 Macros): Rewrite synopsis of
- m4_if in the presence of more than three arguments.
-
- Improve and clarify `config.status' usage documentation.
- * doc/autoconf.texi (config.status Invocation): Fix markup in
- synopsis. Use `tag' instead of `file' notation for the
- non-option arguments, to be consistent with the documentation
- of the AC_CONFIG_* macros.
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Likewise,
- use `tag' notation for non-option arguments.
- Report by John Calcote.
-
-2009-04-15 Eric Blake <ebb9@byu.net>
-
- Test that autotest handles binary output.
- * tests/autotest.at (Binary output): New test.
- Suggested by Ralf Wildenhues.
-
- Add stdout-nolog and ignore-nolog to AT_CHECK.
- * lib/autotest/general.m4 (AT_DIFF_STDERR(stderr-nolog))
- (AT_DIFF_STDERR(ignore-nolog), AT_DIFF_STDOUT(stdout-nolog))
- (AT_DIFF_STDOUT(ignore-nolog)): New macros.
- * tests/autotest.at (Logging): New test.
- * doc/autoconf.texi (Writing Testsuites) <AT_CHECK>: Document the
- new logging actions.
- * NEWS: Likewise.
- Reported by Ralf Wildenhues.
-
- Teach AT_CHECK about hard failures.
- * lib/autotest/general.m4 (AT_INIT) <at_fn_check_skip>
- <at_fn_check_status, at_fn_group_postprocess>: Handle hard
- failures.
- * doc/autoconf.texi (Writing Testsuites) <AT_CHECK>: Document
- AT_CHECK_NOESCAPE and exit status 99.
- * NEWS: Likewise.
- * tests/autotest.at (Hard fail, Cleanup): New tests.
-
-2009-04-14 Eric Blake <ebb9@byu.net>
-
- Fix yesterday's regression in AS_IF.
- * lib/m4sugar/m4sh.m4 (_AS_IF_ELSE): Don't corrupt $? in else
- branch; it is up to the user to avoid syntax errors.
- * tests/m4sh.at (AS@&t@_IF and AS@&t@_CASE): Adjust test.
-
-2009-04-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Add traces for AM_SILENT_RULES.
- * lib/autom4te.in (Automake-preselections): Trace
- AM_SILENT_RULES.
-
-2009-04-13 Eric Blake <ebb9@byu.net>
-
- Improve documentation related to expanded-before-required.
- * doc/autoconf.texi (Expanded Before Required): Add a case study.
- (Running the Compiler) <AC_COMPILE_IFELSE>: Remind users that
- running a compile test will AC_REQUIRE the compiler check.
- (Macro Definitions) <AC_DEFUN>: Contrast AC_DEFUN and m4_define.
- (C Compiler) <AC_PROG_CC>: Mention the fact that only first
- invocation of this macro checks for $EXEEXT, and that many other
- macros use it via AC_REQUIRE.
- Reported by Andreas Schwab.
-
- Mention latest rules about make and set -e.
- * doc/autoconf.texi (Failure in Make Rules): Posix is now clear
- that make must use set -e.
- (Limitations of Builtins) <set>: Clarify more about set -e
- behavior.
-
- Improve documentation about if exit status.
- * doc/autoconf.texi (Limitations of Builtins) <if>: Mention that
- exit status bugs don't affect modern targets.
- Reported by Andreas Schwab.
-
- Add cross-reference to new macros.
- * doc/autoconf.texi (Text processing Macros) <m4_normalize>
- <m4_strip>: Reference the new m4_ifblank.
- Suggested by Mike Frysinger.
-
- Make AS_IF, AS_CASE, and AS_FOR more robust to blank arguments.
- * lib/m4sugar/m4sh.m4 (_AS_CASE, _AS_CASE_DEFAULT, AS_FOR, _AS_IF)
- (_AS_IF_ELSE, AS_IF): Avoid syntax error on blank argument,
- including a macro with an empty expansion.
- * NEWS: Mention this.
- * tests/m4sh.at (AS@&t@_IF and AS@&t@_CASE, AS@&t@_FOR): Update
- tests.
- Reported by Mike Frysinger.
-
- Add m4_blank and friends.
- * lib/m4sugar/m4sugar.m4 (m4_blank, m4_nblank, m4_default_nblank)
- (m4_default_nblank_quoted): New macros.
- * NEWS: Document them.
- * doc/autoconf.texi (Conditional constructs): Likewise.
- * tests/m4sugar.at (m4sugar shorthand conditionals): New test.
- Suggested by Mike Frysinger.
-
-2009-04-13 Eric Blake <ebb9@byu.net>
-
- Finish upgrade to GFDL 1.3.
- * doc/autoconf.texi (copying): Use correct license; comment change
- was missed on 2008-11-04.
-
-2009-04-10 Eric Blake <ebb9@byu.net>
-
- Test parallel handling of syntax error.
- * tests/autotest.at (parallel syntax error): New test.
- Suggested by Ralf Wildenhues.
-
-2009-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Document awk and config.status line length limitations.
- * doc/autoconf.texi (Configuration Actions): The input to
- config.status should have reasonable line length.
- (Limitations of Usual Tools): Document IRIX, HP-UX awk input
- line length limit.
- Report by Bruno Haible.
-
- Skip `Multiple languages' test if CC is a C++ compiler.
- * tests/compile.at (Multiple languages): Before starting the
- test proper, build and run a configure script that tests the
- C compiler only, and skips the test if this is found to be a
- C++ compiler.
- Report by Eric Blake.
-
- Note that AC_DEFUN is needed for aclocal.
- * doc/autoconf.texi (Coding Style): Public third-party macros
- should be AC_DEFUN'ed.
- Report by John Calcote.
-
-2009-04-10 Eric Blake <ebb9@byu.net>
-
- Add undocumented _AS_CLEAN_DIR.
- * lib/m4sugar/m4sh.m4 (_AS_CLEAN_DIR): New macro; fixes m4 quoting
- in previous patch.
- * lib/autotest/general.m4 (AT_INIT) <at_fn_group_prepare>: Use new
- macro.
- * tests/m4sh.at (_AS@&t@_CLEAN_DIR): New test.
- Reported by Ralf Wildenhues.
-
-2009-04-09 Eric Blake <ebb9@byu.net>
-
- Avoid problems caused by deleting in-use directory.
- * lib/autotest/general.m4 (AT_INIT) <at_fn_group_prepare>: Only
- remove the contents of $at_group_dir, not the directory itself.
-
- Fix regression in empty test.
- * lib/autotest/general.m4 (AT_SETUP): Prep AT_ingroup for fallback
- use in empty test. Fixes regression introduced 2009-04-06.
- (_AT_CHECK): Undo fallback when a test is not empty.
- (AT_CLEANUP): Expand AT_ingroup before deleting.
-
-2009-04-09 Paolo Bonzini <bonzini@gnu.org>
-
- Make a less conservative cross-compilation guess for AC_FUNC_UTIME_NULL.
- * lib/autoconf/functions.m4 (AC_FUNC_UTIME_NULL): Assume
- not crosscompiling to an obsolete system.
-
-2009-04-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Automake relies on the undocumented `_AC_COMPILER_EXEEXT' macro.
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT): Document that
- Automake relies on this macro.
-
-2009-04-06 Eric Blake <ebb9@byu.net>
-
- Reduce testsuite size.
- * tests/statesave.m4: New file.
- * tests/Makefile.am (EXTRA_DIST): Distribute it.
- * tests/local.at (AT_CONFIGURE_AC): Reuse file, rather than
- repeating inline definition of AC_STATE_SAVE.
- (AT_CHECK_ENV): Factor code...
- (_AT_CHECK_ENV): ...into shell function.
- * tests/m4sh.at (AT_DATA_LINENO): Avoid churn in testsuite.
-
- Handle shell comments in AT_CHECK.
- * lib/autotest/general.m4 (_AT_DECIDE_TRACEABLE): Handle # in
- test correctly. Latent bug in handling shell comment was first
- fixed 2008-11-20, but regressed two patches later.
- * tests/autotest.at (Shell comment in command): New test.
- * NEWS: Document the fix.
-
- Hard fail any test with syntax errors.
- * lib/autotest/general.m4 (AT_INIT) <at_fn_group_postprocess>:
- Guarantee test failure on syntax error, rather than inheriting
- status from previous test.
- * tests/autotest.at (Syntax error): New test.
-
-2009-03-31 Eric Blake <ebb9@byu.net>
-
- Beta Release Version 2.63b.
- * NEWS: Mention the release.
- * README: Clarify that this is a beta release.
- * build-aux/texinfo.tex: Synchronize from upstream.
- * .x-sc_trailing_blank: Exempt more upstream files.
-
-2009-03-30 Eric Blake <ebb9@byu.net>
-
- Fix testsuite failures under zsh.
- * tests/local.at (AT_CHECK_ENV): Exempt $argv and $ARGC, which are
- set by zsh -c 'emulate sh'.
- Reported by Ralf Wildenhues.
-
- For now, skip parallel tests under less-tested shells.
- * tests/autotest.at (AT_CHECK_AT): Add pre-test argument.
- (Tested programs, Startup error messages, AT_CHECK_AT_TITLE)
- (Fallacy, Skip, errexit, Long test source lines)
- (Debugging a successful test, Debugging script and environment)
- (Debugging a failed test, Using atlocal)
- (Choosing where testsuite is run): Adjust callers.
- (AT_SKIP_PARALLEL_TESTS): New macro, to skip parallel tests except
- under zsh, bash, or when TEST_PARALLEL_AUTOTEST is defined. Makes
- it easier to avoid testsuite hangs for users with dash or other
- less-tested shell.
- (parallel test execution, parallel truth, parallel fallacy)
- (parallel skip, parallel errexit)
- (parallel autotest and signal handling): Use it.
- * BUGS: Mention this.
-
-2009-03-24 Andris Pavenis <andris.pavenis@iki.fi> (tiny change)
-
- Fix awk substitution of carriage returns on DJGPP.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Fix typo in
- generation of ac_cs_awk_cr.
- * THANKS: Update.
-
-2009-03-24 Aaron W. LaFramboise <aaronenvelope277@aaronwl.com> (tiny change)
-
- Work around cygwin bash igncr mode.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Fall back to
- bash carriage returns if ac_cr lost \r from ``.
- * THANKS: Update.
+ maint: convert .x-sc_* into exclude_file_name_regexp--sc_* exemptions
+ Many of the .x-sc_* exemptions were no long necessary. Remove those
+ files and instead, provide exemptions via variable definitions in
+ cfg.mk to address the few remaining exceptions.
+ * .x-sc_prohibit_atoi_atof: Remove file.
+ * .x-sc_space_tab: Likewise.
+ * .x-sc_sun_os_names: Likewise.
+ * .x-sc_trailing_blank: Likewise.
+ * .x-sc_two_space_separator_in_usage: Likewise.
+ * .x-sc_useless_cpp_parens: Likewise.
+ * cfg.mk: Add minimal exemptions.
+ * cfg.mk: Add minimal exemptions.
+ * doc/standards.texi (Standard C): Address the sole useless-cpp-parens
+ violation in this file:
+ -#if defined (__STDC__) || defined (WINDOWSNT)
+ +#if defined __STDC__ || defined WINDOWSNT
+ With that, the only remaining offender is config.guess, whose name
+ is now listed in cfg.mk.
Suggested by Eric Blake.
-2009-03-24 Eric Blake <ebb9@byu.net>
-
- Fix underquoted example in manual.
- * doc/autoconf.texi (Common Shell Constructs) <AS_TR_CPP>:
- Properly m4-quote #.
- * THANKS: Update spelling.
- Reported by Matěj Týč.
-
-2009-03-18 Eric Blake <ebb9@byu.net>
-
- Manual: mention more expr pitfalls.
- * doc/autoconf.texi (Limitations of Usual Tools) <expr (:)>:
- Mention HP-UX limitation, and $ ambiguity.
- * THANKS: Update.
- Reported by Jens Schmidt, in http://bugs.debian.org/466990.
-
-2009-03-17 Jim Meyering <meyering@redhat.com>
-
- Manual: fix a typo.
- * lib/m4sugar/m4sh.m4: s/are/is/ => "there is no indirection"
-
-2009-03-17 Eric Blake <ebb9@byu.net>
-
- Use test consistently in examples.
- * doc/autoconf.texi (Subdirectories, Caching Results)
- (Common Shell Constructs, Prerequisite Macros, Coding Style)
- (Changed Results, Particular Programs, Defining Symbols):
- Protect against arbitrary user strings.
- (Multiple Cases): Mention why $fstype does not need protection.
- Reported by Reuben Thomas.
-
- Improve confusing section names.
- * doc/autoconf.texi (Specifying Names): Rename node...
- (Specifying Target Triplets): ...to this.
- (Generic Programs): Adjust references.
- * doc/install.texi (System Type): Touch up formatting.
- * THANKS: Update.
- Reported by Tim Freeman, in http://bugs.debian.org/312873.
-
- Remove historical inaccuracy.
- * doc/autoconf.texi (Portable Shell): Don't perpetuate myth about
- #!/bin/sh needing a space.
- Reported by Reuben Thomas.
-
- Recommend AS_HELP_STRING more prominently.
- * doc/autoconf.texi (External Software): Reduce mention of
- hand-written help strings.
- Reported by Reuben Thomas.
-
-2009-03-16 Eric Blake <ebb9@byu.net>
+2012-01-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ doc: work around mingw-w64 alloca problem with example
+ * doc/autoconf.texi (Particular Functions): In example code for
+ alloca, do not re-#define alloca. This works around a mingw-w64
+ problem reported by Vincent Torri in
+ <http://lists.gnu.org/archive/html/autoconf/2012-01/msg00018.html>.
+
+2012-01-21 Jim Meyering <meyering@redhat.com>
+
+ maint: fix or disable failing syntax-check rules
+ * cfg.mk (local-checks-to-skip): List failing tests, so we skip
+ them, for now.
+ (old_NEWS_hash): Update.
+ * doc/autoconf.texi: Per suggestion from Eric Blake, obfuscate
+ the first word of "Filesystem Hierarchy Standard" as File@/system
+ so it continues to render as one word, yet doesn't trigger the
+ syntax-check prohibition.
+
+ maint: also sync maint.mk and useless-if-before-free from gnulib
+ * cfg.mk (gnulib-update): Add them to the list.
+ * maint.mk: Update from gnulib.
+ * build-aux/gitlog-to-changelog: Likewise.
+ * build-aux/useless-if-before-free: New file, from gnulib.
+ * doc/gnu-oids.texi: Update.
+
+ maint.mk: update from gnulib
+ * maint.mk: Update.
+
+ maint: placate syntax-check rules: exempt some false positives
+ * cfg.mk: Exempt maint.mk from the "undesirable word seq" check.
+ Exempt maint.mk and autoconf.texi from the test_minus_ao check.
+
+ maint: tweak to avoid triggering space-tab-prohibiting syntax-check
+ * tests/m4sh.at (nargs): Use TAB-SP, not SP-TAB in abusive file name,
+ to avoid triggering the space-tab-prohibiting syntax-check.
+
+ maint: remove empty lines at EOF
+ * man/autoconf.x: Remove empty line at EOF.
+ * man/autoheader.x: Likewise.
+ * man/autoscan.x: Likewise.
+ * man/autoupdate.x: Likewise.
+ * man/ifnames.x: Likewise.
+ * tests/compile.at: Likewise.
+ * doc/fdl.texi: Likewise.
- Fix 'make pdf'.
- * doc/autoconf.texi (Balancing Parentheses): Fix usage of
- @itemize.
- Reported by Ralf Wildenhues, fix suggested by Karl Berry.
+ doc: fix grammar/doubled-word errors
+ * doc/autoconf.texi: Remove/fix doubled-word errors.
+ Also, s/can not/cannot/.
+ * lib/m4sugar/m4sh.m4: Reword "if IF" comment to avoid triggering
+ the doubled-word warning.
-2009-03-14 Eric Blake <ebb9@byu.net>
+2012-01-21 Stefano Lattarini <stefano.lattarini@gmail.com>
- Resync upstream files.
- * GNUmakefile: Run 'make fetch'.
+ maint: sync files from gnulib
+ * GNUmakefile: Sync from gnulib.
* build-aux/announce-gen: Likewise.
* build-aux/config.guess: Likewise.
* build-aux/config.sub: Likewise.
+ * build-aux/git-version-gen: Likewise.
* build-aux/gnupload: Likewise.
+ * build-aux/move-if-change: Likewise.
* build-aux/texinfo.tex: Likewise.
+ * build-aux/update-copyright: Likewise.
* build-aux/vc-list-files: Likewise.
- * doc/gnu-oids.texi: Likewise.
- * doc/standards.texi: Likewise.
-
-2009-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- New test for SunStudio `restrict' handling.
- * tests/c.at (AC_C_RESTRICT and C++): New test.
- Prompted by bug report from Rolf Vandevaart.
-
-2009-03-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Manual: testsuite depends on package.m4.
- * doc/autoconf.texi (Making testsuite Scripts): In the example
- makefile snippet, $(TESTSUITE) depends on $(srcdir)/package.m4.
-
-2009-03-02 Allan Caffee <allan.caffee@gmail.com> (tiny change)
-
- Fix a typo in comment for AS_LITERAL_IF.
- * lib/m4sugar/m4sh.m4 (AS_LITERAL_IF): Update a comment that fell
- out of date when this function was moved/renamed in 59ecd766.
- * THANKS: Update.
-
-2009-03-02 Eric Blake <ebb9@byu.net>
-
- Improve wording for AS_ESCAPE.
- * doc/autoconf.texi (Common Shell Constructs) <AS_ESCAPE>: Touch
- up documentation.
- * lib/m4sugar/m4sh.m4 (_AS_ESCAPE): Fix comment typos.
- Reported by Ralf Wildenhues.
-
-2009-02-24 Eric Blake <ebb9@byu.net>
-
- Use pkgdatadir consistently.
- * bin/Makefile.am (edit): Substitute pkgdatadir, not datadir.
- * lib/Makefile.am (edit): Likewise.
- * lib/autom4te.in (Autoconf-without-aclocal-m4, Autotest, M4sh)
- (M4sugar): Use @pkgdatadir@, not @datadir@.
- * bin/autoheader.in ($datadir): Likewise.
- * bin/autom4te.in ($datadir): Likewise.
- * bin/autoreconf.in ($datadir): Likewise.
- * bin/autoscan.in ($datadir): Likewise.
- * bin/autoupdate.in ($datadir): Likewise.
- * bin/ifnames.in ($datadir): Likewise.
- * doc/autoconf.texi (Installation Directory Variables): Update
- example to be consistent; focus on $(bindir) as an autoconf
- variable, and mention that $(pkgdatadir) comes from automake.
- Reported by Reuben Thomas.
-
-2009-02-19 Eric Blake <ebb9@byu.net>
-
- Use m4_translit more efficiently in AS_ESCAPE.
- * lib/m4sugar/m4sh.m4 (_AS_ESCAPE): Alter API to take first byte
- of set separately from rest.
- (AS_ESCAPE, _AS_QUOTE_MODERN, AS_TR_SH, AS_VAR_GET): Adjust
- callers.
- * lib/autoconf/autoheader.m4 (AH_VERBATIM): Avoid duplicate
- characters in translit request.
- * doc/autoconf.texi (Common Shell Constructs) <AS_ESCAPE>:
- Document the macro.
- * NEWS: Likewise.
-
- Mention recently documented macros.
- * NEWS: Update list of new documentation.
-
-2009-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Add index for config.site.
- * doc/autoconf.texi (Site Defaults): Add index for config.site.
- * THANKS: Update.
- Report by Stephen P. Schaefer.
-
-2009-02-12 Eric Blake <ebb9@byu.net>
-
- Fix m4_set speed regression introduced 2008-12-18.
- * lib/m4sugar/m4sugar.m4 (_m4_stack_reverse): Alter API to avoid
- creating larger argument on each iteration.
- (m4_stack_foreach_sep, m4_stack_foreach_sep_lifo)
- (_m4_set_contents_2): Adjust all four-argument callers.
-
-2009-02-05 Eric Blake <ebb9@byu.net>
-
- Mention new AC_DEFUN_ONCE clients.
- * NEWS: Mention recent semantic changes.
- Reported by Ralf Wildenhues.
-
-2009-02-03 Eric Blake <ebb9@byu.net>
-
- Use AC_DEFUN_ONCE for some one-shot AC_PROG macros.
- * lib/autoconf/programs.m4 (AC_PROG_MKDIR_P): Switch to
- AC_DEFUN_ONCE, since this is a one-shot macro.
- (AC_PROG_INSTALL): Likewise.
-
-2009-02-03 Eric Blake <ebb9@byu.net>
-
- Mention that packagers should not pre-set CFLAGS.
- * doc/autoconf.texi (Preset Output Variables) <CFLAGS>: Copy
- advice given by automake on handling variables reserved by GNU
- Coding Standards.
- Reported by Karl Berry.
-
- Document lib64 in config.site.
- * doc/autoconf.texi (Site Defaults): Fix typo in FHS sample file.
- Mention use of lib64.
- * THANKS: Update.
- Reported by Tom Browder, with help from Peter Breitenlohner.
-
-2009-01-28 Eric Blake <ebb9@byu.net>
-
- Use AC_DEFUN_ONCE for uncontroversial one-shot macros.
- * lib/autoconf/headers.m4 (AC_HEADER_ASSERT): Switch to
- AC_DEFUN_ONCE, since this is a one-shot macro.
- * lib/autoconf/specific.m4 (AC_USE_SYSTEM_EXTENSIONS): Likewise.
- * lib/autoconf/general.m4 (AC_CANONICAL_BUILD)
- (AC_CANONICAL_HOST, AC_CANONICAL_TARGET): Likewise.
-
-2009-01-28 Eric Blake <ebb9@byu.net>
-
- Reduce blank lines in AC_DEFUN_ONCE macros.
- * lib/m4sugar/m4sugar.m4 (m4_defun_once): Avoid redundant blank
- line when a defun_once macro is required.
- (_m4_defun_once): New helper macro, for less memory use.
- * tests/m4sugar.at (m4@&t@_require: nested): Adjust test.
-
- Silence another false positive expand-before-require.
- * lib/m4sugar/m4sugar.m4 (_m4_defun_pro_outer)
- (_m4_defun_epi_outer, _m4_require_call, m4_provide): Track name
- that caused a diversion change, not just diversion number.
- (m4_require): Factor...
- (_m4_require_check): ...into new macro, which also checks whether
- diversion that performed the expansion has been collected.
- * tests/m4sugar.at (m4@&t@_require: nested): Enhance test.
- Reported by Ralf Wildenhues.
-
-2009-01-28 Eric Blake <ebb9@byu.net>
-
- Fix AC_C_RESTRICT for Sun Studio 12 C++.
- * lib/autoconf/c.m4 (AC_C_RESTRICT): Newer Sun Studio C provides
- __restrict__ rather than _Restrict, which still trips up Sun
- Studio 12 C++.
- * THANKS: Update.
- Reported by Rolf Vandevaart.
-
-2009-01-28 Eric Blake <ebb9@byu.net>
-
- Fix years in copyright notices.
- * lib/m4sugar/m4sugar.m4 (m4_copyright_condense): New macro,
- undocumented for now.
- * lib/m4sugar/Makefile.am (version.m4): Add m4_PACKAGE_YEAR,
- m4_PACKAGE_URL.
- (RELEASE_YEAR): New macro, copied from bin/Makefile.am.
- * lib/autoconf/general.m4 (_AC_COPYRIGHT_YEARS): New macro.
- (AC_COPYRIGHT): Add undocumented third parameter.
- (_AC_INIT_COPYRIGHT): Avoid need to bump copyright years.
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Likewise.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
- * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Likewise.
- (AT_COPYRIGHT): Add undocumented third parameter.
- * tests/local.at (AT_COPYRIGHT): Don't add an extra copyright
- parameter; the generic copyright given by autotest is sufficient
- since we are the package that owns autotest.
-
-2009-01-27 Eric Blake <ebb9@byu.net>
-
- Use URLs in --help output, part 3: testsuite.
- * doc/autoconf.texi (Writing Testsuites): Mention autotest
- namespace.
- (Writing Testsuites) <AT_INIT>: Mention mandatory macros.
- (Making testsuite Scripts): Document AT_PACKAGE_URL.
- * tests/Makefile.am (package.m4): Follow our own advice.
- * lib/autotest/general.m4 (AT_INIT): Give the user a hint about
- package.m4. Enhance --help output.
- (_AT_COPYRIGHT_YEARS): New macro, to make copyright bump easier.
-
- Use URLs in --help output, part 2: configure.
- * lib/autoconf/general.m4 (_AC_INIT_COPYRIGHT): Bump copyright
- date.
- (_AC_INIT_PACKAGE): Support optional URL parameter, mapped to
- AC_PACKAGE_URL.
- (_AC_INIT_DEFAULTS, _AC_INIT_PREPARE): Substitute it.
- (_AC_INIT_HELP): Use it in './configure --help' output.
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Likewise, for
- './config.status --help'. Bump copyright date.
- * doc/autoconf.texi (Initializing configure) <AC_INIT>: Document
- new parameter.
- * NEWS: Likewise.
- * tests/tools.at (autoheader): Adjust test.
- * tests/torture.at (@%:@define header templates)
- (Torturing config.status): Likewise.
-
- Use URLs in --help output, part 1: autoconf executables.
- * bin/autoconf.as (usage): Make output consistent with recent
- change in gnulib version-etc module.
- * bin/autoheader.in ($help): Likewise.
- * bin/autom4te.in ($help): Likewise.
- * bin/autoreconf.in ($help): Likewise.
- * bin/autoscan.in ($help): Likewise.
- * bin/autoupdate.in ($help): Likewise.
- * bin/ifnames.in ($help): Likewise.
-
-2009-01-27 Peter Breitenlohner <peb@mppmu.mpg.de> (tiny change)
-
- Quote traced macros passed from autom4te to M4.
- * bin/autom4te (handle_m4): Apply shell_quote to macro names.
- * tests/tools.at (autom4te --trace and unusual macro names): New
- test.
- * THANKS: Update.
-
-2009-01-26 Eric Blake <ebb9@byu.net>
-
- Improve AC_DEFUN_ONCE semantics.
- * lib/m4sugar/m4sugar.m4 (m4_defun_once): Rewrite to be no-op,
- rather than warning, on second use, and make sure first use never
- occurs out of order.
- * tests/m4sugar.at (m4@&t@_require: one-shot initialization):
- Enhance test.
- * tests/base.at (AC_REQUIRE & AC_DEFUN_ONCE: [Require, expand],
- (AC_REQUIRE & AC_DEFUN_ONCE: [Expand, require]): Adjust tests.
- * NEWS: Document this.
- * doc/autoconf.texi (Macro Definitions) <AC_DEFUN>: Mention
- AC_DEFUN_ONCE.
- (Prerequisite Macros) <AC_REQUIRE>: Likewise.
- (Expanded Before Required): Likewise.
- (One-Shot Macros) <AC_DEFUN_ONCE>: Document new semantics.
- Reported by Bruno Haible, with suggestion by Paolo Bonzini.
-
-2009-01-24 Eric Blake <ebb9@byu.net>
-
- Fix typos in recent patches.
- * lib/m4sugar/m4sugar.m4: Improve m4_defun comments.
- * doc/autoconf.texi (Expanded Before Required): Fix typos.
- Reported by Ralf Wildenhues.
-
- Revert change to AC_DIR_HEADER.
- * lib/autoconf/headers.m4 (AC_DIR_HEADER): Explicitly expanding
- AC_HEADER_DIRENT no longer triggers a warning, and helps the user
- who decides they don't need the obsolete AC_FUNC_CLOSEDIR_VOID.
- Reported by Paolo Bonzini.
-
-2009-01-22 Eric Blake <ebb9@byu.net>
-
- Silence a false positive expand-before-require case.
- * lib/m4sugar/m4sugar.m4 (m4_provide): Track the diversion in
- which a macro was provided.
- (m4_require): Compare diversion numbers, rather than m4_require
- nesting, when determining direct requires.
- * tests/m4sugar.at (m4@&t@_require: nested): Test it.
- Reported by Ralf Wildenhues, affecting Libtool.
-
-2009-01-21 Eric Blake <ebb9@byu.net>
-
- Fix out-of-order expansion with expand-before-require.
- * lib/m4sugar/m4sugar.m4 (m4_require): Redundantly expand a
- required macro when issuing expand-before-require warning.
- * doc/autoconf.texi (Prerequisite Macros): Adjust documentation.
- (Expanded Before Required): New node.
- * tests/m4sugar.at (m4@&t@_require: nested): Adjust test.
- * NEWS: Mention this fix.
- Suggested by Bruno Haible.
-
- Warn if macro is provided before indirectly required.
- * lib/m4sugar/m4sugar.m4 (m4_provide): Track the set of all macros
- provided since last outermost defun.
- (_m4_defun_pro_outer): Empty the set.
- (_m4_require_call): Distinguish between direct and indirect
- requires, and remove required macros from the set.
- (m4_require): Check the set, in order to warn.
- * tests/m4sugar.at (m4@&t@_require: nested): Remove xfail, and add
- test case for direct requires.
-
-2009-01-20 Eric Blake <ebb9@byu.net>
-
- Clean up some bugs caught by preliminary dependency validation.
- * lib/autoconf/headers.m4 (AC_DIR_HEADER): Don't invoke
- AC_HEADER_DIRENT, since AC_FUNC_CLOSEDIR_VOID requires it.
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL)
- (_AS_SHELL_SANITIZE): Fix quoting bugs.
-
-2009-01-19 Eric Blake <ebb9@byu.net>
-
- Improve AC_REQUIRE documentation.
- * doc/autoconf.texi (Macro Definitions) <AC_DEFUN>: Add @defmac,
- and mention interaction with AC_REQUIRE.
- (Prerequisite Macros) <AC_REQUIRE>: Give more detail on user
- ordering constraint bug, and how to fix it.
- * tests/m4sugar.at (m4@&t@_require: nested): New test.
-
- Speed up m4_require.
- * lib/m4sugar/m4sugar.m4 (_m4_divert_dump): Change semantics to
- always be defined, as either empty or a number.
- (_m4_defun_pro_outer, _m4_defun_epi_outer): Treat _m4_divert_dump
- as a stack, rather than a one-shot macro.
- (_m4_require_call): Expect third argument to be pre-expanded.
- (m4_divert_require, m4_require): Adjust clients accordingly.
- * lib/m4sugar/m4sh.m4 (AS_REQUIRE): Likewise.
-
-2009-01-17 Eric Blake <ebb9@byu.net>
-
- Avoid underfull hbox.
- * doc/autoconf.texi (Installation Directory Variables): Reword to
- fit on line.
-
-2009-01-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Ignore `set -e'-related failure of NetBSD sh.
- * tests/m4sh.at (AS@&t@_EXIT): Skip test if (NetBSD) shell
- fails to finish EXIT trap after set -e.
-
-2009-01-06 Eric Blake <ebb9@byu.net>
-
- Maintainer cleanups.
- * cfg.mk (web-manual): Use new feature of gendocs.
- (fetch): Fetch gendocs.
- * Makefile.am (EXTRA_DIST): Distribute new file.
- * doc/Makefile.am (EXTRA_DIST): Likewise.
- * .gitattributes: Ignore whitespace in upstream files.
- * HACKING (Other web updates): Update Free Software Directory
- instructions.
- (Upload): No longer mention xdelta.
- * maint.mk (xd-delta): Likewise.
- * build-aux/gendocs.sh: New upstream file.
* doc/gendocs_template: Likewise.
- * build-aux/announce-gen: Resync from upstream.
- * build-aux/config.guess: Likewise.
- * build-aux/config.sub: Likewise.
- * build-aux/gnupload: Likewise.
- * build-aux/texinfo.tex: Likewise.
-
-2008-12-30 Eric Blake <ebb9@byu.net>
-
- Make it easier to track diversion bugs.
- * lib/m4sugar/m4sugar.m4 (_m4_divert_raw, _m4_undivert): New
- internal macros, which are easier to trace than m4_builtin.
- (m4_cleardivert, m4_divert, m4_divert_push, m4_divert_pop)
- (m4_undivert): Use them.
- (_m4_require_call): Likewise. Use fewer macros.
- * lib/autotest/general.m4 (_AT_DECIDE_TRACEABLE): Fix typo.
-
-2008-12-26 Bruno Haible <bruno@clisp.org>
-
- Improve multiarch detection.
- * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Make detection of options
- indicating a universal build more reliable.
-
-2008-12-28 William Pursell <bill.pursell@gmail.com> (tiny change)
-
- Use AS_CASE in documented example.
- * doc/autoconf.texi (Using the System Type): Use AS_CASE in
- example instead of raw case.
-
-2008-12-23 Eric Blake <ebb9@byu.net>
-
- Make m4_dumpdef more useful with M4 1.6.
- * lib/m4sugar/m4sugar.m4 (_m4_dumpdef): New macro.
- (m4_init): Install it for new enough m4.
- * tests/m4sugar.at (m4@&t@_dumpdef): Enhance test.
- * doc/autoconf.texi (Redefined M4 Macros) <m4_dumpdef>: Mention
- lack of sorting.
-
-2008-12-24 Bruno Haible <bruno@clisp.org>
-
- Improve INSTALL for HP-UX.
- * doc/install.texi (Particular Systems): For HP-UX, also recommend
- -D_XOPEN_SOURCE=500. Needed for the declaration of mbstate_t on
- HP-UX 11.11.
-
-2008-12-22 Bruno Haible <bruno@clisp.org>
-
- Improve INSTALL for Haiku.
- * doc/install.texi (Particular Systems): Add a recommendation
- which prefix to use on Haiku.
-
-2008-12-19 Eric Blake <ebb9@byu.net>
-
- Fix typo in previous commit.
- * doc/autoconf.texi (Set manipulation Macros) <m4_set_map_sep>:
- Fix typo.
-
- Document some recently added macros.
- * lib/m4sugar/m4sugar.m4 (m4_map_args_w): Add optional sep
- parameter.
- * doc/autoconf.texi (Looping constructs) <m4_map_args_sep>
- <m4_map_args_w, m4_stack_foreach, m4_stack_foreach_sep>: Document
- new macros.
- (Set manipulation Macros) <m4_set_map_sep>: Likewise.
- * tests/m4sugar.at (m4@&t@_stack, M4 loops): Enhance tests.
- * NEWS: Document new macros.
-
-2008-12-18 Eric Blake <ebb9@byu.net>
-
- Fix separator in m4_stack_foreach_sep.
- * lib/m4sugar/m4sugar.m4 (_m4_stack_reverse): Separate separator
- from prefix.
- * tests/m4sugar.at (m4@&t@_stack): Enhance test.
-
-2008-12-18 Eric Blake <ebb9@byu.net>
-
- Mention limitation of M4 1.4.x on builtin tokens.
- * doc/autoconf.texi (Redefined M4 Macros) <m4_dumpdef>: Document
- ramification of M4 1.4.x's inability to pass builtin tokens
- through text macros.
- (Evaluation Macros) <m4_curry>: Likewise.
- * tests/m4sugar.at (m4@&t@_defn): Enhance test.
- * NEWS: Mention subtle change in m4_dumpdef semantics.
-
- Document m4_version_prereq.
- * doc/autoconf.texi (Number processing Macros)
- <m4_version_prereq>: Add documentation.
- * NEWS: Mention it.
- Reported by Bruno Haible.
-
-2008-12-10 Jim Meyering <meyering@redhat.com>
-
- AC_HEADER_ASSERT: don't say assertions are disabled when they're not
- * lib/autoconf/headers.m4 (AC_HEADER_ASSERT): Do not make configure
- report "checking whether to enable assertions... no", when they are
- in fact enabled. This is solely a bug in the output of configure.
- In spite of saying "no", NDEBUG was not defined in that case.
- Also, as noted by Eric Blake, leave assertions enabled upon
- --enable-assert=INVALID.
-
-2008-12-09 Eric Blake <ebb9@byu.net>
-
- Fix m4_location inside m4_wrap with m4 1.4.5.
- * lib/m4sugar/m4sugar.m4 (m4_undefine): Redefine m4_location
- inside wrapped text if older m4 is detected.
- Reported by William Pursell.
-
-2008-12-08 William Pursell <bill.pursell@gmail.com> (tiny change)
- and Eric Blake <ebb9@byu.net>
-
- Fix AC_HEADER_ASSERT w.r.t. --enable-assert.
- * lib/autoconf/headers.m4 (AC_HEADER_ASSERT): Honor --enable-assert,
- rather than treating it as a synonym for --disable-assert.
- * NEWS: Document the fix.
-
-2008-12-06 William Pursell <bill.pursell@gmail.com> (tiny change)
-
- Fix AC_HEADER_ASSERT to honor --enable-assert, rather than
- treat --enable-assert and --disable-assert equivalently.
- * lib/autoconf/headers.m4 (AC_HEADER_ASSERT): Check value of $enableval.
-
-2008-12-05 William Pursell <bill.pursell@gmail.com> (tiny change)
-
- Fix some typos and grammatical errors in documentation.
- * doc/autoconf.texi: Clean up some bad use of English.
-
-2008-12-03 Eric Blake <ebb9@byu.net>
-
- Improve AC_STATE_SAVE.
- * tests/local.at (AC_STATE_SAVE): Avoid ls -1, and use one less
- process by hoisting the uniqueness check into sed.
- * doc/autoconf.texi (Limitations of Usual Tools) <ls>: Mention
- MacOS bug.
-
-2008-12-02 Eric Blake <ebb9@byu.net>
-
- Avoid MacOS readdir bug in testsuite.
- * tests/local.at (AC_STATE_SAVE): Avoid spurious failures due to
- duplicated ls entries.
- * THANKS: Update.
- Reported by Bruce Dugan and others.
-
-2008-11-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autotest/general.m4 (AT_JOB_FIFO_FD): Hide zsh 4.3.4
- error messages about `set -m'.
-
-2008-11-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix a couple of test failures with dash.
- * tests/autotest.at (AT_CHECK_AT_TITLE_CHAR): Normalize
- exit status of `cd'.
- * tests/m4sh.at (AS_MESSAGE_LOG_FD): Remove script before
- regeneration, to avoid timing effects.
-
-2008-11-25 Eric Blake <ebb9@byu.net>
-
- Add m4_cleardivert.
- * lib/m4sugar/m4sugar.m4 (m4_cleardivert): New macro.
- * lib/autotest/general.m4 (AT_INIT): Use it.
- * lib/autoconf/general.m4 (_AC_INIT_NOTICE): Likewise.
- * tests/m4sugar.at (m4@&t@_divert_stack): Test it.
- * doc/autoconf.texi (Diversion support) <m4_cleardivert>: Document
- it.
- * NEWS: Likewise.
- Suggested by Paolo Bonzini.
-
- Add safety check for m4_expand vs. diversions.
- * lib/m4sugar/m4sugar.m4 (m4_expand): Make more robust against
- diverted text.
- * doc/autoconf.texi (Evaluation Macros) <m4_expand>: Document new
- safety check.
-
-2008-11-24 Eric Blake <ebb9@byu.net>
-
- Fix typo in AS_MESSAGE_LOG_FD patch.
- * lib/m4sugar/m4sh.m4 (AS_ERROR): Check correct condition.
-
-2008-11-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- More reliable signal handling in Autotest.
- * lib/autotest/general.m4 (Driver loop): Rewrite signal handler.
- Start parallel jobs in their own process group, enabling job
- control in the shell if possible, for better signal handling.
- Deal with INT, TERM, and HUP in the testsuite driver. In the
- parallel driver, propagate TSTP to jobs either as TSTP or as
- STOP (to avoid fork bombs with ksh).
- Inside the job processes, add PIPE handler to write back the
- job token, so the master process does not hang.
- Disable the parallel driver if job control is not provided or if
- trap does not understand signal names.
- * tests/autotest.at (parallel autotest and signals): New test,
- exercises INT, TERM, and PIPE, serial and parallel, with and
- without `make' in the loop.
- Kudos to Richard Stevens for writing APUE.
-
-2008-11-22 Eric Blake <ebb9@byu.net>
-
- Fix testsuite failure on Solaris.
- * tests/torture.at (AT_CHECK_CONFIG_CREATION_NOWRITE): Normalize
- failure status to 1.
-
-2008-11-21 Eric Blake <ebb9@byu.net>
-
- Clean up AS_MESSAGE_LOG_FD usage.
- * lib/m4sugar/m4sh.m4 (AS_MESSAGE_FD, AS_MESSAGE_LOG_FD)
- (AS_ORIGINAL_STDIN_FD): Provide default M4sh values.
- (_AS_ECHO_LOG, AS_MESSAGE, _AS_ERROR_PREPARE, AS_ERROR): Simplify
- usage.
- (AS_INIT_GENERATED): Don't shuffle an unchanged AS_MESSAGE_FD.
- * tests/m4sh.at (AS@&t@_INIT_GENERATED): Update test.
- (AS@&t@_MESSAGE_FD): New test.
- * doc/autoconf.texi (Initialization Macros) <AS_INIT_GENERATED>:
- Give more details about fd manipulation.
- (File Descriptor Macros): Describe M4sh defaults for the fds.
-
-2008-11-21 Eric Blake <ebb9@byu.net>
-
- Use shell function for AS_ERROR.
- * lib/m4sugar/m4sh.m4 (_AS_ERROR_PREPARE): New macro, defining a
- new shell function.
- (AS_ERROR): Use it.
- (_AS_LINENO_PREPARE): Break circular dependency.
- (AS_PREPARE, _AS_PREPARE): Initialize for child scripts.
-
-2008-11-21 Eric Blake <ebb9@byu.net>
-
- Fix typos in recent testsuite improvements.
- * lib/autotest/general.m4 (AT_INIT) <at_fn_check_prepare_dynamic>:
- Fix typo.
- * NEWS: Clarify the potential impact to users.
- * tests/autotest.at (AT_DATA_AUTOTEST): New macro, patterned after
- AT_DATA_M4SUGAR.
- (AT_CHECK_AT_PREP, AT_CHECK_AT_TITLE): Use it.
- (unusual file names): Test that the recent echo fix does not
- regress. Fix quoting bug that made the test a no-op.
- Reported by Paolo Bonzini and Ralf Wildenhues.
-
-2008-11-21 Eric Blake <ebb9@byu.net>
-
- Use modern m4sh constructs in autoconf.
- * bin/autoconf.as (exit_missing_arg, getopt): Use AS_ERROR, rather
- than AS_EXIT.
-
- Change the semantics of AS_EXIT without argument.
- * lib/m4sugar/m4sh.m4 (_AS_EXIT_PREPARE): When defaulting, use $?
- even if it is 0.
- (AS_ERROR): Guarantee non-zero status.
- * bin/autoconf.as (exit_missing_arg, getopt): Revert prior change;
- we want non-zero status.
- * tests/m4sh.at (AS@&t@_EXIT): Update test accordingly.
- * doc/autoconf.texi (Common Shell Constructs) <AS_EXIT>: Update
- the documentation.
- <AS_SET_STATUS>: Don't overly restrict implementation.
- (Printing Messages) <AC_MSG_ERROR>: Describe better default.
- Suggestions by Paolo Bonzini and Ralf Wildenhues.
-
-2008-11-21 Eric Blake <ebb9@byu.net>
-
- Add @anchors within Builtins and Usual Tools lists.
- * doc/autoconf.texi (Limitations of Builtins)
- (Limitatations of Usual Tools): Add anchors for tools called out
- by name. Adjust callers to narrow in on tool of interest.
-
- Move case statement style discussion to m4 quoting section.
- * doc/autoconf.texi (Limitations of Builtins): Move comparison of
- quoting styles...
- (Balancing Parentheses): ...to this new node.
- Suggested by Ralf Wildenhues.
-
-2008-11-20 Eric Blake <ebb9@byu.net>
-
- Factor more common code out of AT_CHECK into shell function.
- * lib/autotest/general.m4 (_AT_CHECK): Avoid echo bug if AT_LINE
- starts with -. Move preparations...
- (AT_INIT) <at_fn_check_prepare_trace>
- <at_fn_check_prepare_notrace, at_fn_check_prepare_dynamic>:
- ...into these new shell functions.
- <at_fn_check_newline>: Inline into only caller.
- (_AT_DECIDE_TRACEABLE): Use them to condense testsuite size.
-
-2008-11-20 Eric Blake <ebb9@byu.net>
-
- Handle version numbers as decimal, even if they start with 0.
- * lib/m4sugar/m4sugar.m4 (_m4_version_unletter): Avoid
- interpreting leading zeros as octal.
-
-2008-11-20 Eric Blake <ebb9@byu.net>
-
- Speed up AT_CHECK.
- * lib/autotest/general.m4 (AT_CHECK, AT_CHECK_UNQUOTED): Expand
- third and fourth arguments once.
- (_AT_CHECK): Don't re-expand expected output. Rearrange code for
- fewer scans of arguments.
- (AT_CHECK): Update caller.
- (AT_INIT) <at_fn_filter_trace>: Drop parameter.
- * tests/m4sugar.at (m4@&t@_split): Protect test with
- quadrigraphs.
-
- Fix XFAIL related to AT_CHECK.
- * lib/autotest/general.m4 (AT_CHECK, AT_CHECK_UNQUOTED): Expand
- first argument once.
- (_AT_CHECK): Don't re-expand commands.
- * tests/autotest.at (Multiline command from M4 expansion): Remove
- XFAIL.
- * tests/tools.at (autoupdating AU_ALIAS): Quote unbalanced paren.
- * NEWS: Document the fallout.
-
-2008-11-20 Eric Blake <ebb9@byu.net>
-
- Reduce forks in AC_DEFINE.
- * lib/autoconf/general.m4 (_AC_DEFINE_Q_PRINT): New macro.
- (_AC_DEFINE_Q): Use it to avoid forks for all AC_DEFINE and most
- AC_DEFINE_UNQUOTED.
- * lib/autoconf/fortran.m4 (_AC_FC_WRAPPERS): Properly quote #.
- * tests/torture.at (Substitute and define special characters):
- (Define to a 2000-byte string): Enhance tests to cover
- AC_DEFINE_UNQUOTED.
- (@%:@define header templates): Enhance test to cover #.
-
-2008-11-20 Eric Blake <ebb9@byu.net>
-
- Improve m4_expand robustness, part 2.
- * lib/m4sugar/m4sugar.m4 (m4_expand): Support unterminated
- comments, by wrapping old implementation...
- (_m4_expand): ...as this, and renaming old core...
- (_m4_expand_): ...to this.
- (m4_text_box): Use lighter-weight _m4_expand.
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_EXPAND)
- (_AS_DETECT_BETTER_SHELL, AS_FUNCTION_DESCRIBE): Likewise.
- * lib/autotest/general.m4 (AT_KEYWORDS): Likewise.
- * tests/m4sugar.at (m4@&t@_expand): Enhance test.
- * tests/autotest.at (AT_CHECK_AT_TITLE_CHAR): Likewise.
- * doc/autoconf.texi (Evaluation Macros) <m4_expand>: Mention new
- functionality.
-
- Improve m4_expand robustness, part 1.
- * lib/m4sugar/m4sugar.m4 (_m4_expand): Tolerate unquoted
- unbalanced `)'.
- * tests/m4sugar.at (m4@&t@_expand): New test.
-
-2008-11-20 Eric Blake <ebb9@byu.net>
-
- Add m4_chomp, m4_esyscmd_s.
- * lib/m4sugar/m4sugar.m4 (m4_esyscmd_e, m4_chomp, m4_chomp_all):
- New macros.
- * doc/autoconf.texi (Redefined M4 Macros) <m4_esyscmd_s>: Document
- them.
- (Text processing Macros) <m4_chomp>: Likewise.
- * NEWS: Likewise.
- * tests/m4sugar.at (m4@&t@_esyscmd_s): New test.
-
- Remove _m4_index.
- * lib/m4sugar/m4sugar.m4 (_m4_index): Delete; it is more efficient
- to make callers guarantee a match.
- (m4_init): Adjust caller.
- * lib/autoconf/status.m4 (_AC_CONFIG_COMPUTE_DEST): Likewise.
- * lib/autoconf/general.m4 (_AC_DEFINE_Q): Likewise.
-
- Describe different hacks for balancing ')' in case statements.
- * doc/autoconf.texi (Limitations of Builtins) <case>: Add an
- exposition on various quoting styles.
-
-2008-11-20 Eric Blake <ebb9@byu.net>
-
- Speed up _AS_QUOTE.
- * lib/m4sugar/m4sh.m4 (_AS_QUOTE_IFELSE): Inline into...
- (_AS_QUOTE): ...here, delete unused second paramenter, and factor
- choice into...
- (_AS_QUOTE_MODERN, _AS_QUOTE_OLD): ...new helpers.
-
-2008-11-20 Alfred G. de Wijn <dwijn@iluvatar.eu.org> (tiny change)
-
- For consistency, make temporary variable match language name.
- * lib/autoconf/fortran.m4 (_AC_PROG_FC_G, _AC_PROG_FC_V_OUTPUT):
- Match the save/test variables' names to the FFLAGS/FCFLAGS being
- saved.
- * THANKS: Update.
-
-2008-11-19 Eric Blake <ebb9@byu.net>
-
- Improve testsuite generation.
- * tests/local.at (AT_DATA_M4SUGAR, AT_DATA_M4SH)
- (AT_DATA_AUTOCONF): Escape all quadrigraphs, not just @&t@. Use
- fewer macros.
-
-2008-11-18 Eric Blake <ebb9@byu.net>
-
- Use fn for shell functions, func for autoconf CHECK_FUNCS.
- * lib/autoconf/functions.m4 (AC_CHECK_FUNC): Abbreviate shell
- function names.
- * lib/autoconf/general.m4 (_AC_PREPROC_IFELSE)
- (_AC_COMPILE_IFELSE, _AC_LINK_IFELSE, _AC_RUN_IFELSE)
- (AC_CHECK_DECL, AC_COMPUTE_INT): Likewise.
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL)
- (_AC_CHECK_HEADER_COMPILE, _AC_CHECK_HEADER_PREPROC): Likewise.
- * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW, _AC_TYPE_INT)
- (_AC_TYPE_UNSIGNED_INT, AC_CHECK_MEMBER): Likewise.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
- * lib/m4sugar/m4sh.m4 (_AS_SHELL_FN_WORK, _AS_EXIT_PREPARE)
- (AS_EXIT, AS_SET_STATUS, _AS_UNSET_PREPARE, _AS_MKDIR_P)
- (_AS_MKDIR_P_PREPARE, _AS_VAR_APPEND_PREPARE, AS_VAR_APPEND)
- (_AS_VAR_ARITH_PREPARE, AS_VAR_ARITH): Likewise.
- * doc/autoconf.texi (Shell Functions): Likewise.
-
-2008-11-18 Eric Blake <ebb9@byu.net>
-
- Alter default value of AS_EXIT.
- * lib/m4sugar/m4sh.m4 (_AS_EXIT_PREPARE): Let as_func_exit
- parameter be optional.
- (AS_EXIT): Use it to make better default.
- (_AS_DETECT_BETTER_SHELL): Use new default.
- * bin/autoconf.as (exit_missing_arg, getopt): Likewise.
- * lib/autoconf/status.m4 (AC_OUTPUT): Likewise.
- * tests/m4sh.at (AS@&t@_EXIT): Update test.
- * doc/autoconf.texi (Common Shell Constructs) <AS_EXIT>: Mention
- new default behavior.
- (Limitations of Builtins) <trap>: Adjust to use new default.
- * NEWS: Mention the semantic change.
- Suggested by Ralf Wildenhues.
-
- Update example to match actual Tru64 behavior.
- * doc/autoconf.texi (Limitations of Builtins) <trap>: Correct
- the example.
- Reported by Ralf Wildenhues.
-
- Add AS_SET_STATUS, make AS_EXIT more efficient.
- * lib/m4sugar/m4sh.m4 (_AS_EXIT_PREPARE, AS_SET_STATUS): New
- macros.
- (AS_EXIT): Rewrite to avoid forks.
- (_AS_SHELL_SANITIZE): Avoid AS_EXIT prior to shell functions.
- (AS_PREPARE, _AS_PREPARE): Add new preparation.
- * doc/autoconf.texi (Common Shell Constructs) <AS_SET_STATUS>:
- Document.
- * NEWS: Mention new macro.
- * tests/m4sh.at (AS@&t@_EXIT): New test.
- (BASENAME_TEST): Sort.
-
- Document Tru64 bug with 'set -e'.
- * doc/autoconf.texi (Limitations of Builtins) <trap>: Mention a
- bug in mixing 'set -e' with 'trap .. 0'.
- Reported by Ralf Wildenhues.
-
- Document a Solaris /bin/sh bug with 'set -e'.
- * doc/autoconf.texi (Shell Functions): Mention the bug.
-
-2008-11-17 Eric Blake <ebb9@byu.net>
-
- Detect empty list in AS_FOR.
- * lib/m4sugar/m4sh.m4 (AS_FOR): Handle iteration over $@
- properly.
- * tests/m4sh.at (AS@&t@_FOR): Enhance test to catch it.
- Reported by Paolo Bonzini.
-
-2008-11-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Use a different workaround for an automake quirk.
- * tests/Makefile.am (AUTOMAKE_OPTIONS): Remove.
- (distclean_generic): New helper variable, to fool automake.
- ($(distclean_generic)): Depend on clean-local, to prevent
- the race in the two rules with accessing and removing
- $(TESTSUITE).
- Report by Eric Blake.
-
- * lib/m4sugar/m4sh.m4 (_AS_VAR_ARITH_PREPARE): Simplify, avoid
- unbalanced parentheses from last change.
- Spotted by Eric Blake, fix suggested by Paolo Bonzini.
-
- Fix exit status of expr version of as_func_arith.
- * lib/m4sugar/m4sh.m4 (_AS_VAR_ARITH_PREPARE): Count an exit
- status of 1 of expr also as success, to avoid failure if the
- computation result is zero. Fixes test failures with IRIX sh,
- where the expr variant of as_func_arith is used.
-
- Do not use read-only variable $status.
- * tests/compile.at (AC_RUN_IFELSE): Use $estatus instead of
- $status, for zsh.
-
-2008-11-15 Eric Blake <ebb9@byu.net>
-
- Use the new AS_FOR function.
- * lib/autoconf/functions.m4 (AC_CHECK_FUNCS): Use new
- abstraction for cleaner code.
- * lib/autoconf/headers.m4 (AC_CHECK_HEADERS): Likewise.
-
- Add AS_FOR, undocumented for now.
- * lib/m4sugar/m4sh.m4 (AS_FOR): New macro.
- * tests/m4sh.at (AS@&t@_FOR): New test.
- Suggested by Paolo Bonzini.
-
-2008-11-13 Eric Blake <ebb9@byu.net>
-
- Optimize single-argument loop.
- * lib/autoconf/functions.m4 (AC_CHECK_FUNCS): Avoid forks when
- loop only has one argument.
- * lib/autoconf/headers.m4 (AC_CHECK_HEADERS): Likewise.
-
-2008-11-13 Eric Blake <ebb9@byu.net>
-
- Fix AS_ESCAPE usage bugs.
- * lib/m4sugar/m4sh.m4 (_AS_VAR_APPEND_PREPARE)
- (_AS_VAR_ARITH_PREPARE): Expand macros prior to adding shell
- escapes.
- (AS_TR_SH, AS_VAR_GET): Use _AS_ESCAPE for speed.
- * doc/autoconf.texi (Polymorphic Variables) <AS_VAR_SET>: Document
- caveat due to conditional AS_ESCAPE.
- * tests/m4sh.at (AS@&t@_VAR basics): Enhance test.
-
-2008-11-12 Eric Blake <ebb9@byu.net>
-
- Whitespace reduction in configure.
- * lib/autoconf/autoheader.m4 (AH_VERBATIM): Avoid empty lines.
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE, AC_CHECK_FILES):
- Likewise.
- (_AC_DEFINE_Q): Restore empty line, since some clients in the wild
- depend on it.
-
-2008-11-12 Eric Blake <ebb9@byu.net>
-
- Make M4sh, not autoconf, guarantee sane $SHELL.
- * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Move setting of
- SHELL...
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): ...to here.
- * doc/autoconf.texi (Initialization Macros): Document the effect
- on SHELL.
- * tests/m4sh.at (AS@&t@_INIT_GENERATED): New test.
- Reported by Ralf Wildenhues.
-
-2008-11-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Wrap keywords in `testsuite --list' output.
- * lib/autotest/general.m4 (AT_INIT): Rewrite --list awk script,
- avoid lint warnings from gawk, wrap keyword lists to stay below
- 80 characters per line if possible.
- * tests/autotest.at (Keyword wrapping): New test.
-
- * tests/local.at (AT_COPYRIGHT): Bump copyright years.
-
- * doc/autoconf.texi (Conditional constructs, Macro Names): Fix
- typos.
-
-2008-11-10 Eric Blake <ebb9@byu.net>
-
- Work around <=m4-1.4.9 bug in m4_format.
- * lib/m4sugar/m4sugar.m4 (_m4_index): New internal macro.
- (m4_init): Only use it in older m4.
- * lib/autoconf/general.m4 (_AC_DEFINE_Q): Use it to avoid
- m4_format bug in older m4.
- * lib/autoconf/status.m4 (_AC_CONFIG_COMPUTE_DEST): Likewise.
- Reported by Bob Proulx.
-
-2008-11-10 Eric Blake <ebb9@byu.net>
-
- Match upstream standards.texi.
- * doc/standards.texi: Resync from upstream.
- * doc/fdl-1.3.texi: Rename...
- * doc/fdl.texi: ...to this.
- * doc/Makefile.am (autoconf_TEXINFOS, standards_TEXINFOS): Update
- users.
- * doc/autoconf.texi (GNU Free Documentation License): Likewise.
- * cfg.mk (fetch): Likewise.
-
- Yet more FDL 1.3 fallout.
- * NEWS: Mention manual license change.
-
-2008-11-10 Eric Blake <ebb9@byu.net>
-
- Avoid some regex uses.
- * lib/autoconf/general.m4 (_AC_DEFINE_Q): Use m4_format rather
- than m4_bpatsubst to grab string prefix.
- * lib/autoconf/status.m4 (_AC_CONFIG_REGISTER)
- (_AC_CONFIG_REGISTER_DEST, AC_CONFIG_SUBDIRS): Likewise.
- (_AC_FILE_DEPENDENCY_TRACE_COLON): Use m4_translit instead of
- m4_bpatsubst to change bytes.
- (_AC_CONFIG_DEPENDENCY_DEFAULT): Use m4_index rather than
- m4_bmatch to find byte.
- (_AC_CONFIG_COMPUTE_DEST): New helper macro.
-
- Use more efficient macros in AC_CONFIG_SUBDIRS.
- * lib/autoconf/status.m4 (_AC_CONFIG_FOOS, AC_CONFIG_SUBDIRS): Use
- m4_map_args_w.
- (_AC_OUTPUT_FILE): Use m4_map_args_sep and m4_map_args.
- (_AC_OUTPUT_FILE_ADJUST_DIR): New helper macro.
-
- Use more efficient macros in AC_CHECK_FILES and AC_CHECK_DECLS.
- * lib/autoconf/general.m4 (AC_CHECK_FILES): Use m4_map_args_w,
- and avoid typo.
- (AC_CHECK_DECLS, AC_CHECK_DECLS_ONCE): Use m4_map_args_sep.
- (_AC_CHECK_FILES, _AC_CHECK_DECLS, _AC_CHECK_DECL_ONCE): New
- helper macros.
- (AC_LIBSOURCES): Use m4_map_args.
-
- Use more efficient macros in AC_CHECK_TYPES.
- * lib/autoconf/types.m4 (AC_CHECK_TYPES, AC_CHECK_MEMBERS): Use
- m4_map_args_sep.
- (_AC_CHECK_TYPES, _AC_CHECK_MEMBERS): New helper macros.
-
- Use more efficient macros in AC_CHECK_HEADERS.
- * lib/autoconf/headers.m4 (AH_CHECK_HEADERS)
- (AH_CHECK_HEADERS_DIRENT): Rename...
- (_AH_CHECK_HEADER, _AH_CHECK_HEADER_DIRENT): ...and take only one
- argument, rather than a list.
- (AC_CHECK_HEADERS, AC_CHECK_HEADERS_ONCE):
- Adjust callers to use m4_map_args_w.
- (AC_HEADER_DIRENT): Adjust caller to use m4_map_args.
- (_AC_CHECK_HEADER_ONCE): New helper macro.
-
- Use more efficient macros in AC_CHECK_FUNCS.
- * lib/autoconf/functions.m4 (_AH_CHECK_FUNCS): Rename...
- (_AH_CHECK_FUNC): ...and take only one argument, rather than a
- list.
- (AC_CHECK_FUNCS, AC_CHECK_FUNCS_ONCE): Adjust callers to use
- m4_map_args_w.
- (_AC_CHECK_FUNC_ONCE): New helper macro.
- (AC_REPLACE_FUNCS): Use m4_map_args_w.
-
- Use more efficient macro in AT_INIT.
- * lib/autotest/general.m4 (AT_INIT): Use m4_map_args.
-
-2008-11-10 Eric Blake <ebb9@byu.net>
-
- More FDL 1.3 fallout.
- * cfg.mk (fetch): Add gnu-oids.texi, drop fdl.texi.
- * doc/Makefile.am (standards_TEXINFOS): Reflect upstream
- dependency changes.
- * doc/fdl.texi: Delete.
- * doc/gnu-oids.texi: New upstream file.
- * doc/standards.texi: Resync from upstream.
- * doc/make-stds.texi: Likewise.
- * build-aux/announce-gen: Likewise.
- * build-aux/texinfo.tex: Likewise.
-
-2008-11-10 Clinton Roy <clinton.roy@gmail.com> (tiny change)
-
- Pass autoreconf -I to aclocal -I
- * bin/autoreconf.in (parse_args): Pass --include to aclocal.
- * doc/autoconf.texi (autoreconf Invocation): Updates for above.
- * NEWS: Document it.
- * THANKS: Update.
-
-2008-11-10 Eric Blake <ebb9@byu.net>
-
- Try 'print -r --' as a non-forking variant of 'printf %s\\n'.
- * lib/m4sugar/m4sh.m4 (_AS_ECHO_PREPARE): Cater to Solaris ksh.
- * doc/autoconf.texi (Limitations of Builtins) <printf>: Document
- the print workaround.
- Idea by Paolo Bonzini.
-
-2008-11-10 Eric Blake <ebb9@byu.net>
-
- Provide a section on all tools allowed in GNU Coding Standards.
- * doc/autoconf.texi (Limitations of Builtins) <read>: Sort.
- <wait>: Add section.
- (Limitations of Usual Tools) <awk>: Make table entry consistent.
- <chgrp, mkfifo, rmdir, sleep, sort, tar> Add sections.
-
-2008-11-09 Paolo Bonzini <bonzini@gnu.org>
-
- Balance parentheses in _AC_CACHE_DUMP.
- * lib/autoconf/general.m4 (_AC_CACHE_DUMP): Balance parentheses
- without introducing \).
-
-2008-11-07 Eric Blake <ebb9@byu.net>
-
- Further doc updates for AC_CHECK_HEADER change.
- * doc/autoconf.texi (Generic Headers) <AC_CHECK_HEADER>: Mention
- new default, and make it more obvious that using [-] is generally
- broken.
-
-2008-11-07 Eric Blake <ebb9@byu.net>
-
- * ChangeLog: Enforce UTF-8 encoding.
-
-2008-11-06 Eric Blake <ebb9@byu.net>
-
- Skip preprocessor check in AC_CHECK_HEADERS_ONCE.
- * lib/autoconf/headers.m4 (_AC_HEADERS_EXPANSION): Provide fourth
- argument to speed up check.
-
-2008-11-06 Eric Blake <ebb9@byu.net>
-
- Speed up AC_CHECK_TYPE.
- * lib/autoconf/types.m4 (AC_CHECK_TYPE): Factor out $@, and avoid
- regex when enough arguments are present.
-
-2008-11-06 Paolo Bonzini <bonzini@gnu.org>
-
- Remove three forks per _AC_RUN_LOG_STDERR in the common case.
- * lib/autoconf/general.m4 (_AC_RUN_LOG_STDERR): Avoid grep/rm/cat
- sequence when the program's stderr was empty, while providing a
- conftest.err file even in that case.
- (_AC_CACHE_DUMP): Fix mismatched parenthesis.
-
-2008-11-06 Paolo Bonzini <bonzini@gnu.org>
-
- Change `present but cannot be compiled' behavior to use compiler result.
- * NEWS: Document it.
- * doc/autoconf.texi (Present But Cannot Be Compiled): Document it.
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL): Implement it
- and adjust warning.
- * tests/semantics.at (AC_CHECK_HEADERS): Test new semantics.
-
-2008-11-05 Eric Blake <ebb9@byu.net>
-
- Add m4_map_args_w.
- * lib/m4sugar/m4sugar.m4 (m4_map_args_w): New macro, undocumented
- for now.
- (_m4_split): Allow user control over separator.
- (m4_split): Adjust caller.
- (m4_foreach_w, m4_append_uniq_w, _m4_text_wrap): Rewrite to use
- m4_map_args_w.
- * tests/m4sugar.at (m4@&t@_append): Augment test keywords.
- (M4 loops): Test new interface.
-
- Use m4_set_map_sep in more places.
- * lib/m4sugar/m4sugar.m4 (m4_set_difference, m4_set_intersection)
- (m4_set_union): Use m4_set_map_sep rather than m4_set_foreach.
- * doc/autoconf.texi (Set manipulation Macros) <m4_set_map>:
- Enhance documentation.
- <m4_set_foreach>: Mention faster alternative.
- (Looping constructs) <m4_foreach>: Likewise.
-
- Unify m4_set_foreach and m4_set_map.
- * lib/m4sugar/m4sugar.m4 (m4_set_map_sep): New macro, undocumented
- for now.
- (m4_set_contents, m4_set_foreach, m4_set_list, m4_set_listc)
- (m4_set_map): Adjust callers.
-
- Use _m4_foreach in more places.
- * lib/m4sugar/foreach.m4 (m4_dquote_elt, m4_join, m4_joinall)
- (_m4_minmax, m4_set_add_all): Use _m4_foreach instead of
- m4_foreach.
- * lib/m4sugar/m4sugar.m4 (_m4_joinall): Use m4_map_args_sep
- instead of m4_foreach or m4_map_args.
-
- Unify _m4_foreach and _m4_map.
- * lib/m4sugar/m4sugar.m4 (_m4_map): Delete, merged with...
- (_m4_foreach): ...this.
- (m4_foreach, m4_map, m4_mapall, m4_map_sep, _m4_mapall_sep)
- (m4_map_args, m4_map_args_sep): Adjust callers.
- * lib/m4sugar/foreach.m4 (_m4_map): Rename...
- (_m4_foreach): ...to this, overwriting old definition.
-
-2008-11-04 Eric Blake <ebb9@byu.net>
-
- Add m4_map_args_sep, undocumented for now.
- * lib/m4sugar/m4sugar.m4 (m4_map_args_sep): New macro.
- (_m4_map): Change API to cover more of m4_map*.
- * lib/m4sugar/foreach.m4 (_m4_map): Adjust to new API.
- (m4_map_args): Delete.
- * tests/m4sugar.at (m4@&t@_map_args and m4@&t@_curry): Enhance
- test.
-
- Improve m4_for performance.
- * lib/m4sugar/m4sugar.m4 (_m4_for): Alter API to make it easier to
- avoid m4_define by some clients.
- (m4_for): Adjust caller.
- * lib/m4sugar/foreach.m4 (_m4_foreach, m4_case, m4_bmatch)
- (_m4_cond, _m4_bpatsubsts, _m4_shiftn, m4_do, m4_reverse)
- (_m4_map, m4_map_args, m4_map_args_pair, _m4_list_pad)
- (_m4_list_cmp): Likewise.
-
-2008-11-04 Eric Blake <ebb9@byu.net>
-
- Adjust expected output.
- * tests/torture.at (Missing templates): Reflect added quoting.
- Detected by Bob Proulx's buildbot.
-
- Reject arguments with leading =.
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Detect case of
- missing variable name, with fewer forks. Quote invalid arguments
- in message, in case they include spaces.
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS)
- (_AC_OUTPUT_MAIN_LOOP): Quote invalid arguments.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
- * tests/base.at (configure arguments): Test this.
- Reported by Jeff Squyres.
-
-2008-11-04 Eric Blake <ebb9@byu.net>
-
- Upgrade to FDL 1.3.
- * cfg.mk (fetch): Add fdl-1.3.texi.
- * .gitattributes: Likewise.
- * doc/autoconf.texi (GNU Free Documentation License): Point to new
- upstream version.
- * doc/Makefile.am (autoconf_TEXINFOS): Likewise.
- (standards_TEXINFOS): Mention current dependence on older license.
- * doc/fdl-1.3.texi: New upstream file.
- * GNUmakefile: Resync from upstream.
- * build-aux/announce-gen: Likewise.
- * build-aux/texinfo.tex: Likewise.
-
-2008-11-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Point at AM_SUBST_NOTMAKE.
- * doc/autoconf.texi (Setting Output Variables): Add cross
- reference to new Automake macro AM_SUBST_NOTMAKE.
-
-2008-11-03 Paolo Bonzini <bonzini@gnu.org>
-
- Eliminate a fork per invocation of AC_LANG_CONFTEST.
- * lib/autoconf/c.m4 (AC_LANG_CONFTEST(C)): Define instead of
- AC_LANG_SOURCE(C).
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Add a comment at the
- top of confdefs.h, which also works around cpp deficiencies.
- * lib/autoconf/lang.m4 (AC_LANG_DEFINE): Define AC_LANG_CONFTEST(xyz)
- (AC_LANG_CONFTEST): Dispatch based on _AC_LANG.
- (AC_LANG_CONFTEST()): New.
-
-2008-11-03 Paolo Bonzini <bonzini@gnu.org>
-
- Reorganize definition of languages.
- * lib/autoconf/c.m4 (AC_LANG(C), AC_LANG(C++), AC_LANG(Objective C),
- _AC_LANG_ABBREV(C), _AC_LANG_ABBREV(C++), _AC_LANG_ABBREV(Objective C),
- _AC_LANG_PREFIX(C), _AC_LANG_PREFIX(C++), _AC_LANG_PREFIX(Objective C)):
- Replace definitions with usage of AC_LANG_DEFINE.
- (Sections 2b, 2c): Delete.
- (Sections 1b, 1c): Move after section 2a.
- * lib/autoconf/erlang.m4 (AC_LANG(Erlang), _AC_LANG_ABBREV(Erlang),
- _AC_LANG_PREFIX(Erlang), AC_LANG_SOURCE(Erlang)): Replace definitions
- with usage of AC_LANG_DEFINE.
- (AC_LANG_ERLANG): Define using AU_DEFUN.
- * lib/autoconf/fortran.m4 (AC_LANG(Fortran), AC_LANG(Fortran 77),
- _AC_LANG_ABBREV(Fortran), _AC_LANG_ABBREV(Fortran 77),
- _AC_LANG_PREFIX(Fortran), _AC_LANG_PREFIX(Fortran 77),
- _AC_LANG_SOURCE(Fortran), AC_LANG_SOURCE(Fortran 77)): Replace
- definitions with usage of AC_LANG_DEFINE.
- * lib/autoconf/lang.m4 (AC_LANG_DEFINE, AC_LANG_SOURCE()): New.
-
-2008-11-03 Paolo Bonzini <bonzini@gnu.org>
-
- Use preprocessor in cpp tests.
- * tests/c.at (CPP tests): Use AC_CHECK_HEADERS(..., [-]).
-
-2008-10-31 Paolo Bonzini <bonzini@gnu.org>
-
- Rename _AC_CHECK_HEADER_OLD and _AC_CHECK_HEADER_NEW.
- * lib/autoconf/headers.m4 (AC_CHECK_HEADER): Adjust naming.
- (_AC_CHECK_HEADER_PREPROC_BODY): New name of _AC_CHECK_HEADER_OLD_BODY.
- (_AC_CHECK_HEADER_COMPILE_BODY): New name of _AC_CHECK_HEADER_NEW_BODY.
- (_AC_CHECK_HEADER_PREPROC): New name of _AC_CHECK_HEADER_OLD.
- (_AC_CHECK_HEADER_COMPILE): New name of _AC_CHECK_HEADER_NEW.
- * tests/semantics.at (AC_CHECK_HEADERS_OLD, AC_CHECK_HEADER_NEW):
- Give better name.
-
-2008-10-31 Eric Blake <ebb9@byu.net>
-
- Support multiple undiverts and dumpdefs at once.
- * lib/m4sugar/m4sugar.m4 (m4_dumpdefs, m4_undivert): Allow extra
- arguments.
- * doc/autoconf.texi (Redefined M4 Macros) <m4_dumpdef>,
- <m4_undivert>: Document argument list change.
- * tests/m4sugar.at (m4@&t@_divert_stack, m4@&t@_dumpdef): Test
- them.
-
- Simplify diversion stack handling.
- * lib/m4sugar/m4sugar.m4 (m4_divert_stack): Use fewer macros, and
- avoid extra newlines.
- (m4_divert_stack_push): Compute location here, rather than caller.
- (m4_divert_push): Update caller.
- (m4_divert): Likewise, and also adjust current diversion name.
- (m4_divert_pop): Simplify rule that diversion stack must never go
- empty.
- (_m4_require_call): Bypass diversion stack when collecting
- required macro text.
- (m4_init): Set current diversion without requiring m4_init.
- * lib/m4sugar/m4sh.m4 (AS_INIT): Avoid too many pops.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
- * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Schedule wrapped
- text to run prior to m4sugar cleanup.
- * doc/autoconf.texi (Text processing Macros) <m4_newline>: Mention
- optional argument.
- (Conditional constructs) <m4_ifvaln, m4_n>: Mention use of dnl.
- * NEWS: Undo blurb about m4_divert.
- * tests/m4sugar.at (m4@&t@_divert_stack): New test.
-
- Simplify expansion stack handling.
- * lib/m4sugar/m4sugar.m4 (m4_expansion_stack): Use fewer macros;
- always output 'top level'.
- (_m4_expansion_stack_entry): New macro, to format the string only
- when needed.
- (m4_expansion_stack_push): Only push a macro name.
- (m4_warn, _m4_defun_pro): Update callers.
- (m4_expansion_stack_pop, m4_expansion_stack_dump): Delete.
- (_m4_defun_epi, m4_fatal): Inline the calls.
- * tests/m4sugar.at (m4@&t@_expansion_stack): New test.
-
-2008-10-30 Eric Blake <ebb9@byu.net>
-
- Better documentation of AC_CHECK_HEADER's fourth argument.
- * doc/autoconf.texi (Generic Headers) <AC_CHECK_HEADER>: Mention
- how to suppress compiler or preprocessor header check.
- Reported by Jeff Squyres.
-
-2008-10-30 Eric Blake <ebb9@byu.net>
-
- Fix LINENO testsuite failure.
- * tests/m4sh.at (AT_DATA_LINENO): Use AS_LINENO_PREPARE, not
- undocumented _AS_PREPARE, and move unset earlier in script.
-
- Update LINENO documentation.
- * doc/autoconf.texi (Initialization Macros) <AS_INIT_GENERATED>:
- (Special Shell Variables) <LINENO>: Mention that LINENO support in
- child scripts may be broken. Modernize example.
-
-2008-10-30 Paolo Bonzini <bonzini@gnu.org>
-
- Do not check for $LINENO in generated scripts.
- * lib/m4sugar/m4sh.m4 (_AS_PREPARE): Do not call _AS_LINENO_PREPARE,
- and explain why.
-
-2008-10-30 Eric Blake <ebb9@byu.net>
-
- Don't check for non-POSIX extensions in suggested tests.
- * lib/m4sugar/m4sh.m4 (_AS_VAR_APPEND_WORKS): Remove suggestion;
- we still use += if available, but should not reject shells (like
- dash) that don't provide it.
- (_AS_DETECT_SUGGESTED): Document a policy for m4sh.
- Reported by Paolo Bonzini.
-
-2008-10-30 Paolo Bonzini <bonzini@gnu.org>
-
- Pass CONFIG_SHELL down to generated scripts, and re-export SHELL.
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): If proceeding
- with a given CONFIG_SHELL, move it to SHELL.
- (AS_INIT_GENERATED): Re-export SHELL.
-
-2008-10-30 Eric Blake <ebb9@byu.net>
-
- Work around Solaris /bin/sh case bug.
- * lib/m4sugar/m4sh.m4 (_AS_CASE, _AS_CASE_DEFAULT): Always provide
- a non-empty command list.
- (AS_CASE): Always guarantee that a case will match.
- * doc/autoconf.texi (Limitations of Builtins) <case>: Document the
- Solaris bug, and mention AS_CASE.
-
-2008-10-30 Paolo Bonzini <bonzini@gnu.org>
-
- Require _AS_CR_PREPARE where appropriate.
- * lib/m4sugar/m4sh.m4 (_AS_PREPARE): Call _AS_CR_PREPARE.
- (AS_PREPARE): Require _AS_CR_PREPARE.
-
- Avoid walking the entire PATH when looking for a better shell.
- * lib/m4sugar/m4sh.m4 (_AS_SHELL_SANITIZE): Test shell characteristics
- as the PATH is walked.
-
- Add third argument to _AS_PATH_WALK
- * lib/m4sugar/m4sh.m4 (_AS_SHELL_SANITIZE): Do not call _AS_CR_PREPARE.
- (_AS_PATH_WALK): Add third optional argument.
-
- Trim down the length of the shell function test.
- * lib/m4sugar/m4sh.m4 (_AS_SHELL_FN_WORK): Condense.
-
-2008-10-29 Eric Blake <ebb9@byu.net>
-
- Fix LINENO detection to work around bash and pdksh limitations.
- * lib/m4sugar/m4sh.m4 (_AS_LINENO_WORKS): Enhance the test, so
- that we can choose which of two tests to trust.
- (_AS_RUN): Set flag when alternate shell is running.
- (_AS_DETECT_EXPAND): New macro.
- (_AS_DETECT_BETTER_SHELL): Use it to massage LINENO tests.
-
-2008-10-29 Eric Blake <ebb9@byu.net>
-
- Mention proper fix for zsh users.
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Recommend zsh
- version known to work.
- Suggested by Paolo Bonzini.
-
- Document current beta-quality status.
- * configure.ac: Reflect fact that change to git-version-gen
- produces -, but not always a letter, on non-release builds.
- * BUGS: Mention known issues.
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Ask for help in
- debugging platforms with deficient shells.
-
-2008-10-29 Eric Blake <ebb9@byu.net>
-
- Alter signature of AS_INIT_GENERATED.
- * lib/m4sugar/m4sh.m4 (AS_INIT_GENERATED): Add parameters, and
- manage here-doc and chmod in place. This also allows future
- changes for optimizing the child via diversion/m4_wrap magic.
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Update
- caller.
- * doc/autoconf.texi (Initialization Macros) <AS_INIT_GENERATED>:
- Update the documentation.
-
-2008-10-29 Eric Blake <ebb9@byu.net>
-
- Use _m4_stack_reverse in m4_set.
- * lib/m4sugar/m4sugar.m4 (_m4_set_contents_1)
- (_m4_set_contents_2): Rewrite to share _m4_stack_reverse
- implementation.
- (m4_set_contents, m4_set_foreach, m4_set_list, m4_set_listc)
- (m4_set_map): Adjust callers to new API.
-
- Add m4_stack_foreach_sep.
- * lib/m4sugar/m4sugar.m4 (m4_stack_foreach_sep)
- (m4_stack_foreach_sep_lifo): New macros.
- (_m4_stack_reverse): Adjust prototype, to support it.
- (m4_copy): Use fewer macros.
- * tests/m4sugar.at (m4@&t@_stack_foreach): Rename...
- (m4@&t@_stack): ...and add m4_stack_foreach_sep tests.
-
-2008-10-29 Bruno Haible <bruno@clisp.org>
-
- Mention Sun WorkShop 6.2 OpenMP bug.
- * doc/autoconf.texi (AC_OPENMP): Document portability pitfall.
-
-2008-10-29 Paolo Bonzini <bonzini@gnu.org>
-
- Rewrite handling of diversion and expansion stack.
- * NEWS: Document stricter requirement on m4_init.
- * lib/m4sugar/m4sugar.m4 (m4_divert_stack): New, replacing
- _m4_divert_n_stack.
- (_m4_divert_stack_push): New.
- (m4_divert): Use _m4_divert_stack_push and replace m4_define with
- m4_popdef.
- (m4_divert_push): Use _m4_divert_stack_push.
- (m4_divert_pop): Use m4_divert_stack instead of _m4_divert_n_stack,
- pop _m4_divert_stack instead of m4_divert_stack.
- (m4_expansion_stack): New. Update comment above it.
- (m4_expansion_stack_push, m4_expansion_stack_pop): Work on
- _m4_expansion_stack instead of m4_expansion_stack.
- (m4_expansion_stack_dump): Check presence of _m4_expansion_stack
- instead of m4_expansion_stack. Use m4_expansion_stack's expansion
- instead of the definition, and compensate for the trailing newline
- in the expansion.
- (m4_warn, _m4_defun_pro, _m4_defun_epi): Check presence of
- _m4_expansion_stack instead of m4_expansion_stack.
- (m4_newline): Expand first argument after the newline.
- (m4_init): Use m4_divert_stack instead of _m4_divert_n_stack,
- * tests/m4sugar.at (m4_append, m4_text_wrap): Invoke m4_init.
- * tests/tools.at (whitespace in file names, the empty token): Likewise.
-
-2008-10-28 Eric Blake <ebb9@byu.net>
-
- Reduce forks while searching for better shell.
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_REQUIRED)
- (_AS_DETECT_SUGGESTED): No need to provide extra subshell; _AS_RUN
- already does the job.
- (_AS_DETECT_BETTER_SHELL): Simplify AS_EXIT when not run in a trap
- 0 context.
-
- Undo needless efforts to protect $2 in $2_t.
- * lib/autoconf/types.m4 (_AC_TYPE_INT_BODY)
- (_AC_TYPE_UNSIGNED_INT_BODY): Reduce extra quoting.
-
-2008-10-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix parallel test execution output lossage.
- * lib/autotest/general.m4 (_AT_CHECK): Truncate files to hold
- standard output and standard error before the test, use append
- mode for writing.
- * THANKS: Update.
- Caught by Bob Proulx' build daemons, analysis and suggested fix
- by Stéphane Chazelas.
-
-2008-10-28 Eric Blake <ebb9@byu.net>
-
- Use m4_map_args in more places.
- * lib/m4sugar/m4sugar.m4 (m4_defn, m4_dumpdef, m4_popdef)
- (m4_undefine, m4_combine): Use m4_map_args, rather than
- m4_foreach.
-
-2008-10-28 Eric Blake <ebb9@byu.net>
-
- Override m4 1.4.x dumpdef, as it breaks autom4te.
- * lib/m4sugar/m4sugar.m4 (m4_dumpdef): New implementation.
- (m4_copy): Formatting touchup.
- * doc/autoconf.texi (Redefined M4 Macros) <m4_dumpdef>: Mention
- semantic differences as well as m4_dumpdefs.
- * NEWS: Likewise.
- * tests/m4sugar.at (m4@&t@_dumpdef): New test.
-
-2008-10-28 Eric Blake <ebb9@byu.net>
-
- Allow m4sugar to be used without autom4te, such as in bison.
- * lib/m4sugar/m4sugar.m4 (m4_text_wrap, m4_qlen): Document that
- alternate escape sequences can be used.
- (m4_text_box): Likewise. Don't output quadrigraphs.
- (m4_qdelta): Delete unused macro.
-
-2008-10-28 Paolo Bonzini <bonzini@gnu.org>
-
- Add m4_stack_foreach and m4_stack_foreach_lifo.
- * lib/m4sugar/m4sugar.m4 (_m4_stack_reverse): New from _m4_copy.
- (m4_stack_foreach, m4_stack_foreach_lifo): New.
- (m4_copy): Use m4_stack_foreach and m4_curry.
- (_m4_dumpdefs_down, _m4_dumpdefs_up): Remove.
- (m4_dumpdefs): Rewrite using m4_stack_foreach_lifo.
- * tests/m4sugar.at (m4_stack_foreach): New test.
-
-2008-10-28 Paolo Bonzini <bonzini@gnu.org>
-
- use a shell function for AC_TYPE_INTx_T
- * lib/autoconf/types.m4 (_AC_TYPE_INT_BODY, _AC_TYPE_UNSIGNED_INT_BODY):
- New.
- (_AC_TYPE_INT, _AC_TYPE_UNSIGNED_INT): Define and use a shell function.
-
-2008-10-28 Paolo Bonzini <bonzini@gnu.org>
-
- * lib/autoconf/general.m4 (AC_CHECK_DECL): Fix AS_ESCAPE usage.
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL,
- _AC_CHECK_HEADER_NEW): Likewise.
- * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW, AC_CHECK_MEMBER): Likewise.
-
-2008-10-28 Paolo Bonzini <bonzini@gnu.org>
-
- * lib/autoconf/types.m4 (_AC_CHECK_MEMBER_BODY): New.
- (AC_CHECK_MEMBER): Define and use a shell function.
-
-2008-10-27 Eric Blake <ebb9@byu.net>
-
- Prefer m4_fatal over AC_FATAL.
- * lib/autoconf/types.m4 (AC_CHECK_SIZEOF, AC_CHECK_ALIGNOF)
- (AC_CHECK_MEMBER): Use non-obsolete macro name.
- * lib/autoconf/fortran.m4 (_AC_LIST_MEMBER_IF): Likewise.
- * lib/autoconf/general.m4 (AC_REQUIRE_AUX_FILE, AC_SUBST):
- Likewise.
- * lib/autoconf/lang.m4 (_AC_LANG_DISPATCH): Likewise.
- * lib/autoconf/status.m4 (_AC_CONFIG_DEPENDENCY_DEFAULT)
- (_AC_CONFIG_UNIQUE, _AC_CONFIG_REGISTER_DEST): Likewise.
-
-2008-10-27 Eric Blake <ebb9@byu.net>
-
- Avoid raw carriage return in scripts.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Generate CR
- via tr, rather than with literal byte.
- * THANKS: Update.
- Reported by Steven R. Loomis; patch suggested by Thomas Dickey.
-
-2008-10-27 Eric Blake <ebb9@byu.net>
-
- Use AS_VAR_ARITH.
- * lib/autotest/general.m4 (at_func_arith): Delete; replace all
- clients with AS_VAR_ARITH instead.
- * lib/autoconf/general.m4 (_AC_COMPUTE_INT_COMPILE): Use new
- macro.
- * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH): Likewise.
- * tests/torture.at (Torturing config.status): Likewise.
- * tests/tools.at (autom4te --force): Likewise.
-
- Add AS_VAR_ARITH.
- * lib/m4sugar/m4sh.m4 (_AS_VAR_ARITH_PREPARE, _AS_VAR_ARITH_WORKS)
- (AS_VAR_ARITH): New macros.
- (_AS_PREPARE, AS_PREPARE): Emit preparation.
- * tests/m4sh.at (AS@&t@_VAR_ARITH): New test.
- * doc/autoconf.texi (Polymorphic Variables) <AS_VAR_ARITH>:
- Document new macro.
- (Limitations of Usual Tools) <expr>: Mention portability problem
- if first argument starts with -.
- (Shell Substitutions) <$((expression))>: Mention it.
- * NEWS: Likewise.
-
-2008-10-27 Eric Blake <ebb9@byu.net>
-
- Use read, rather than `cat`, for safe one-line files.
- * lib/autotest/general.m4 (AT_CLEANUP): Avoid a fork, since it is
- known that the file has only one line and no \.
- * lib/autoconf/general.m4 (_AC_COMPUTE_INT_RUN): Likewise.
-
-2008-10-27 Paolo Bonzini <bonzini@gnu.org>
-
- * lib/autoconf/general.m4 (_AC_COMPUTE_INT_COMPILE,
- _AC_COMPUTE_INT_RUN): Add IF-SUCCESS argument.
- (_AC_COMPUTE_INT_BODY): New.
- (AC_COMPUTE_INT): Define and use a shell function.
-
-2008-10-27 Paolo Bonzini <bonzini@gnu.org>
-
- * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW_BODY): Extract
- test body here. Move head comment of _AC_CHECK_TYPE_NEW here.
- (_AC_CHECK_TYPE_NEW): Define a shell function and call it.
-
-2008-10-27 Paolo Bonzini <bonzini@gnu.org>
-
- * lib/autoconf/general.m4 (_AC_CHECK_DECL_BODY): New.
- (AC_CHECK_DECL): Use a shell function.
-
-2008-10-27 Paolo Bonzini <bonzini@gnu.org>
-
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_OLD,
- _AC_CHECK_HEADER_NEW): Use a shell function.
-
-2008-10-25 Eric Blake <ebb9@byu.net>
-
- Track recent copyright assignments.
- * AUTHORS: Update.
-
-2008-10-25 Paolo Bonzini <bonzini@gnu.org>
- and Eric Blake <ebb9@byu.net>
-
- Use a shell function for _AC_CHECK_HEADER_MONGREL.
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL_BODY): New
- macro.
- (_AC_CHECK_HEADER_MONGREL): Use a shell function.
-
-2008-10-25 Eric Blake <ebb9@byu.net>
-
- Simplify _AS_PREPARE handling of functions.
- * lib/m4sugar/m4sh.m4 (AS_REQUIRE_SHELL_FN): Factor...
- (_AS_REQUIRE_SHELL_FN): ...into new helper macro.
- (_AS_PREPARE): Temporarily redefine AS_REQUIRE_SHELL_FN to make
- this task easier.
- (_AS_LINENO_PREPARE): Make more efficient.
- (_AS_MKDIR_P_PREPARE): Simplify use in _AS_PREPARE.
- (_AS_UNSET_PREPARE): Avoid blank newline.
- (AS_INIT): Emit as_func_unset alongside other functions.
-
-2008-10-25 Eric Blake <ebb9@byu.net>
-
- Document AS_EXIT.
- * doc/autoconf.texi (Common Shell Constructs) <AS_EXIT>: Document
- this macro.
- (Limitations of Builtins): Mention AS_EXIT.
- * NEWS: Mention it.
-
- Use AS_EXIT in autoconf.as.
- * bin/autoconf.as: Consistently use AS_EXIT.
-
-2008-10-24 Eric Blake <ebb9@byu.net>
-
- Fix m4 underquoting in AC_PROG_INSTALL.
- * lib/autoconf/programs.m4 (AC_PROG_INSTALL): Produce accurate
- character ranges.
-
- Speed up AC_CHECK_HEADER.
- * lib/autoconf/headers.m4 (AC_CHECK_HEADER): Factor out $@.
-
-2008-10-24 Paolo Bonzini <bonzini@gnu.org>
- and Eric Blake <ebb9@byu.net>
-
- Use a shell function for AC_CHECK_FUNC.
- * lib/autoconf/functions.m4 (_AC_CHECK_FUNC_BODY): New macro.
- (AC_CHECK_FUNC): Use a shell function.
- * lib/autoconf/c.m4 (AC_LANG_SOURCE(C)): Reduce number of forks.
-
-2008-10-24 Eric Blake <ebb9@byu.net>
-
- Work around fact that gnulib-tool doesn't use m4_copy.
- * lib/autoconf/general.m4 (AC_LIBOBJ, AC_LIBSOURCES): Defun, not
- define, so that an initial location is present, to account for
- fact that gnulib-tool pushes another AC_DEFUN'd macro on top.
-
- Make m4_defun_init more robust.
- * lib/m4sugar/m4sugar.m4 (m4_defun_init): Handle indirect macro
- names, and correct number of arguments.
- (m4_copy): Also set up location of the copy.
- (m4_defun): When copied, use current macro name, not original.
- * tests/m4sugar.at (m4@&t@_require: one-shot initialization):
- Update test.
-
- Optimize clients of AS_REQUIRE.
- * lib/m4sugar/m4sugar.m4 (m4_defun): Add undocumented third
- argument.
- (m4_defun_init): New undocumented macro.
- * lib/m4sugar/m4sh.m4 (_AS_ECHO_LOG, AS_MESSAGE, AS_BASENAME)
- (_AS_DIRNAME_EXPR, AS_DIRNAME, AS_ECHO, AS_ECHO_N, AS_TEST_X)
- (AS_LN_S, AS_MKDIR_P, _AS_PATH_WALK, AS_VERSION_COMPARE)
- (AS_TR_SH, AS_TR_CPP, AS_VAR_APPEND, AS_VAR_PUSHDEF): Use it to
- simplify these macros once the one-shot initialization is
- complete.
- * tests/m4sugar.at (m4@&t@_require: one-shot initialization): New
- test.
-
- Improve m4_copy.
- * lib/m4sugar/m4sugar.m4 (m4_copy): Add second implementation for
- public use.
- (_m4_copy): New macro, which preserves pushdef stacks.
- (_m4_defun_pro_outer): Bypass it, for speed.
- (m4_init): Bypass new implementation, since it breaks on m4_defn.
- * bin/autoupdate.in (handle_autoconf_macros): Likewise.
- * lib/autoconf/general.m4 (AC_PREREQ): Undefine before redefining,
- now that m4_copy checks this.
- * doc/autoconf.texi (Redefined M4 Macros) <m4_copy>: Document
- this, as well as m4_rename.
- * lib/autoconf/autoconf.m4 (m4_copy): Temporarily redefine when
- renaming builtins, since it breaks on m4_ifdef.
- * NEWS: Likewise.
- * tests/m4sugar.at (m4@&t@_defn): Enhance test.
-
-2008-10-24 Eric Blake <ebb9@byu.net>
-
- AC_FUNC_GETGROUPS: Revert regression.
- * lib/autoconf/functions.m4 (AC_FUNC_GETGROUPS): Only set
- ac_cv_func_getgroups_works=no when it is not available.
-
-2008-10-23 Eric Blake <ebb9@byu.net>
-
- Whitespace cleanup.
- * lib/autoconf/fortran.m4: Consistently use tabs.
-
-2008-10-23 Chikama Masaki <masaki.chikama@gmail.com> (tiny change)
-
- For gfortran on sh, ignore -little.
- * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS): Add -little to
- list of ignored arguments.
- * THANKS: Update.
-
-2008-10-23 Paolo Bonzini <bonzinI@gnu.org>
-
- Eliminate empty lines after AC_*_IFELSE.
- * lib/autoconf/general.m4 (_AC_PREPROC_IFELSE, _AC_COMPILE_IFELSE,
- _AC_LINK_IFELSE, _AC_RUN_IFELSE): Add a dnl at end.
-
-2008-10-23 Paolo Bonzini <bonzinI@gnu.org>
-
- Avoid a fork in _AC_RUN_LOG and _AC_RUN_LOG_STDERR
- * lib/autoconf/general.m4 (_AC_RUN_LOG, _AC_RUN_LOG_STDERR):
- Return a boolean status code based on $ac_status.
-
-2008-10-23 Paolo Bonzini <bonzinI@gnu.org>
-
- Ensure actions can look at conftest* files.
- * lib/autoconf/general.m4 (_AC_PREPROC_IFELSE_BODY,
- _AC_COMPILE_IFELSE_BODY, _AC_LINK_IFELSE_BODY, _AC_RUN_IFELSE_BODY):
- Move rm commands, except IPA files and Apple debug symbols...
- (_AC_PREPROC_IFELSE, _AC_COMPILE_IFELSE, _AC_LINK_IFELSE,
- _AC_RUN_IFELSE): ...in here.
- * tests/compile.at: Add regression test.
-
-2008-10-23 Eric Blake <ebb9@byu.net>
-
- Remove excess dnl from m4sh.
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL, _AS_PREPARE)
- (_AS_SHELL_FN_WORK, _AS_SHELL_SANITIZE, AS_IF, _AS_ECHO_LOG)
- (AS_MESSAGE, AS_ERROR, AS_BASENAME, _AS_BASENAME_PREPARE)
- (_AS_DIRNAME_EXPR, AS_DIRNAME, _AS_DIRNAME_PREPARE, AS_ECHO)
- (AS_ECHO_N, AS_TEST_X, AS_EXECUTABLE_P, _AS_ME_PREPARE)
- (_AS_LINENO_PREPARE, AS_LN_S, AS_MKDIR_P, _AS_PATH_WALK)
- (AS_SET_CATFILE, AS_HELP_STRING, AS_TMPDIR, AS_VERSION_COMPARE)
- (_AS_TR_SH_PREPARE, AS_TR_SH, _AS_TR_CPP_PREPARE, AS_TR_CPP)
- (_AS_TR_PREPARE, AS_VAR_APPEND, AS_VAR_PUSHDEF)
- (AS_INIT_GENERATED): Use fewer dnl in m4sh macro bodies.
-
-2008-10-23 Paolo Bonzini <bonzini@gnu.org>
- and Eric Blake <ebb9@byu.net>
-
- Use a shell function for _AC_RUN_IFELSE.
- * lib/autoconf/general.m4 (_AC_RUN_IFELSE_BODY): New macro.
- (_AC_RUN_IFELSE): Use a shell function.
- (_AC_RUN_LOG): Avoid subshell for logging.
-
-2008-10-23 Eric Blake <ebb9@byu.net>
-
- Formatting tweak: balance () with m4sh case statements.
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL)
- (_AS_SHELL_SANITIZE, _AS_ECHO_N_PREPARE, _AS_ECHO_PREPARE)
- (AS_SET_CATFILE, _AS_TEST_PREPARE): Add strategic shell comments.
- (_AS_CASE, _AS_CASE_DEFAULT, AS_CASE): Rearrange newlines, to
- allow output of strategic shell comments.
- (AS_VERSION_COMPARE): Use AS_CASE.
- * tests/m4sh.at (AS@&t@_IF and AS@&t@_CASE): Enhance test.
-
-2008-10-22 Jim Meyering <meyering@redhat.com>
-
- AC_FUNC_GETGROUPS: always define $ac_cv_func_getgroups_works
- * lib/autoconf/functions.m4 (AC_FUNC_GETGROUPS): Always define
- the shell variable, $ac_cv_func_getgroups_works. Otherwise, if
- it is set to "yes" in the environment and configure is run on
- a system like mingw that lacks the getgroups function, it would
- mistakenly define HAVE_GETGROUPS. Reported by Simon Josefsson in
- <http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/15354>.
-
-2008-10-22 Paolo Bonzini <bonzini@gnu.org>
- and Eric Blake <ebb9@byu.net>
-
- Use a shell function for _AC_LINK_IFELSE.
- * lib/autoconf/general.m4 (_AC_LINK_IFELSE_BODY): New macro.
- (_AC_LINK_IFELSE): Use a shell function.
-
-2008-10-22 Eric Blake <ebb9@byu.net>
-
- Fix autoconf logging commands.
- * lib/autoconf/general.m4 (AC_MSG_RESULT_UNQUOTED, _AC_EVAL)
- (_AC_EVAL_STDERR, AC_RUN_LOG): Respect as_lineno.
- (_AC_DO_ECHO): Likewise, and use fewer dnl.
- (_AC_RUN_LOG_STDERR): Avoid subshell for logging.
-
-2008-10-22 Eric Blake <ebb9@byu.net>
-
- Fix testsuite failure.
- * tests/mktests.sh (ac_exclude_list): Don't generate test for
- AC_REQUIRE_SHELL_FN.
-
-2008-10-21 Eric Blake <ebb9@byu.net>
-
- Improve wording related to automake and autotest.
- * doc/autoconf.texi (Making testsuite Scripts): Clarify wording in
- relation to automake. Mention dependency on package.m4.
- Consolidate examples. Define AUTOM4TE.
- * THANKS: Update.
- Reported by William Pursell.
-
-2008-10-21 Eric Blake <ebb9@byu.net>
-
- Allow AS_VAR_SET_IF in shell lists.
- * lib/m4sugar/m4sh.m4 (AS_VAR_SET_IF): Allow continuation of
- line.
- * lib/autoconf/general.m4 (AC_CACHE_VAL): Supply newline no longer
- provided by AS_VAR_SET_IF.
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL): Adjust
- clients.
- * lib/autoconf/libs.m4 (AC_SEARCH_LIBS): Likewise.
- * tests/m4sh.at (AS@&t@_VAR basics): Enhance test.
-
- Allow AS_VAR_IF in shell lists.
- * lib/m4sugar/m4sh.m4 (AS_VAR_IF): Allow continuation of line.
- * lib/autoconf/functions.m4 (AC_CHECK_FUNC): Adjust clients.
- * lib/autoconf/general.m4 (AC_CHECK_FILE, AC_CHECK_DECL):
- Likewise.
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL)
- (_AC_CHECK_HEADER_NEW, _AC_CHECK_HEADER_OLD)
- (_AC_CHECK_HEADER_DIRENT): Likewise.
- * lib/autoconf/libs.m4 (AC_CHECK_LIB): Likewise.
- * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW, AC_CHECK_MEMBER):
- Likewise.
- * tests/m4sh.at (AS@&t@_VAR basics): Enhance test.
-
- Allow AS_CASE in shell lists.
- * lib/m4sugar/m4sh.m4 (AS_CASE): Always execute test, in case of
- side effects. Allow continuation of script on same line as esac.
- * lib/autoconf/c.m4 (AC_PROG_CC_STDC): Adjust client.
- * tests/m4sh.at (AS@&t@_IF and AS@&t@_CASE): Enhance test.
- * NEWS: Document the subtle change.
-
- Allow AS_IF in shell lists.
- * lib/m4sugar/m4sh.m4 (AS_IF): Always execute test, in case of
- side effects. Allow continuation of script on same line as fi.
- (_AS_DETECT_BETTER_SHELL): Adjust clients.
- (AS_VAR_IF, AS_VAR_SET_IF): For now, supply newline no longer
- given by AS_IF.
- * lib/autoconf/c.m4 (_AC_PROG_PREPROC_WORKS_IFELSE): Likewise.
- * lib/autoconf/general.m4 (_AC_ENABLE_IF): Likewise.
- (AC_EGREP_CPP, _AC_RUN_IFELSE): Adjust client.
- * lib/autoconf/libs.m4 (AC_SEARCH_LIBS): Likewise.
- * doc/autoconf.texi (Common Shell Constructs) <AS_IF>: Fix typo.
- (Polymorphic Variables): Move mention of dnl to the only two
- AS_VAR functions that need it.
-
-2008-10-21 Paolo Bonzini <bonzini@gnu.org>
- and Eric Blake <ebb9@byu.net>
-
- Use a shell function for _AC_COMPILE_IFELSE.
- * lib/autoconf/general.m4 (_AC_COMPILE_IFELSE_BODY): New macro.
- (_AC_COMPILE_IFELSE): Use a shell function.
-
-2008-10-21 Eric Blake <ebb9@byu.net>
-
- Use AS_VAR_APPEND.
- * lib/autoconf/functions.m4 (AC_CHECK_FUNCS_ONCE): Use new macro.
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE)
- (_AC_LIBOBJS_NORMALIZE): Likewise.
- * lib/autoconf/headers.m4 (AC_CHECK_HEADERS_ONCE): Likewise.
- * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS)
- (_AC_OUTPUT_CONFIG_STATUS, _AC_OUTPUT_MAIN_LOOP): Likewise.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
-
- Add AS_VAR_APPEND.
- * lib/m4sugar/m4sh.m4 (_AS_VAR_APPEND_PREPARE)
- (_AS_VAR_APPEND_WORKS, AS_VAR_APPEND): New macros.
- (AS_PREPARE, _AS_PREPARE): Emit preparation.
- * tests/m4sh.at (AS@&t@_VAR_APPEND): New test.
- * doc/autoconf.texi (Polymorphic Variables) <AS_VAR_APPEND>:
- Document new macro.
- <AS_VAR_SET>: Mention ramification of `""` rules.
- * NEWS: Mention new macro.
-
-2008-10-21 Paolo Bonzini <bonzini@gnu.org>
- and Eric Blake <ebb9@byu.net>
-
- Use a shell function for _AC_PREPROC_IFELSE.
- * lib/autoconf/general.m4 (_AC_PREPROC_IFELSE_BODY): New macro.
- (_AC_PREPROC_IFELSE): Use a shell function.
- * lib/m4sugar/m4sh.m4 (AS_REQUIRE): Factor for faster execution.
- (AS_REQUIRE_SHELL_FN): Bypass AS_REQUIRE if function has already
- been provided.
-
-2008-10-21 Eric Blake <ebb9@byu.net>
-
- Add banners to generated files.
- * lib/m4sugar/m4sh.m4 (_AS_SHELL_SANITIZE): Use m4_text_box for
- existing banner.
- (AS_INIT): Add new banners at strategic points.
- * lib/autoconf/general.m4 (AC_INIT): Alter banner location, and
- make consistent with other banners.
- * lib/autotest/general.m4 (AT_INIT): Make banners consistent.
-
-2008-10-20 Paolo Bonzini <bonzini@gnu.org>
-
- Add AC_REQUIRE_SHELL_FN and the SHELL_FN diversion.
- * lib/autoconf/general.m4 (AC_REQUIRE_SHELL_FN): New.
- (m4_divert(SHELL_FN)): New.
-
-2008-10-20 Eric Blake <ebb9@byu.net>
-
- Avoid unportable use of echo in testsuite.
- * tests/m4sh.at (AS@&t@_VAR basics): Use AS_ECHO, since string
- contains backslash.
-
-2008-10-18 Paolo Bonzini <bonzini@gnu.org>
-
- Make sure that nested AS_REQUIRE do not lose the desired diversion.
- * lib/m4sugar/m4sh.m4 (AS_REQUIRE): Expand _m4_divert_desired before
- passing it to m4_divert_require, so that its content is not used
- anymore.
- * tests/m4sh.at (Nested AS_REQUIRE): New testcase.
-
-2008-10-18 Eric Blake <ebb9@byu.net>
-
- Document bugs in { } handling.
- * doc/autoconf.texi (Limitations of Builtins): Mention bug on
- empty list.
-
- Fix some testsuite failures introduced two days ago.
- * tests/m4sh.at (Nested AS@&t@_REQUIRE_SHELL_FN)
- (AS@&t@_REQUIRE_SHELL_FN and m4@&t@_require): Adjust to changed
- API.
- Reported by Ralf Wildenhues.
-
-2008-10-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Show how to extract single substitutions from config.status.
- * doc/autoconf.texi (config.status Invocation): Show example
- using `--file=-'.
-
-2008-10-17 Eric Blake <ebb9@byu.net>
-
- Add m4_curry.
- * lib/m4sugar/m4sugar.m4 (m4_curry, _m4_curry): New macros.
- * tests/m4sugar.at (m4@&t@_map_args): Rename...
- (m4@&t@_map_args and m4@&t@_curry): ...and add currying tests.
- * doc/autoconf.texi (Looping constructs) <m4_map_args>: Document
- currying as a way to add parameters.
- (Evaluation Macros) <m4_curry>: Document the new macro.
- * NEWS: Likewise.
-
- Improve suggested test filtering.
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_SUGGESTED_PRUNE): New macro,
- extracted from...
- (_AS_DETECT_BETTER_SHELL): ...here, to use faster API. No need to
- check for an empty required set.
-
- Add m4_set_map.
- * lib/m4sugar/m4sugar.m4 (m4_set_foreach): New macro.
- * tests/m4sugar.at (m4@&t@_set): Enhance test.
- * doc/autoconf.texi (Set manipulation Macros) <m4_set_map>:
- Document it.
- * NEWS: Likewise.
-
- Document m4_map_args.
- * lib/m4sugar/m4sugar.m4 (m4_transform, m4_transform_pair):
- Rename...
- (m4_map_args, m4_map_args_pair): ...to these names, and document.
- (m4_version_unletter): Use the interface.
- * lib/m4sugar/foreach.m4 (m4_map_args, m4_map_args_pair)
- (_m4_map_args_, _m4_map_args_pair_, _m4_map_args_pair_end):
- Perform same renames.
- * lib/m4sugar/m4sh.m4 (AS_CASE, AS_IF): Adjust callers.
- * tests/m4sugar.at (m4@&t@_map_args): New test.
- (recursion): Adjust caller.
- * tests/m4sh.at (AS@&t@_IF and AS@&t@_CASE): Likewise.
- * doc/autoconf.texi (Looping constructs) <m4_map_args>: Document
- this interface.
- * NEWS: Mention the new macros.
-
-2008-10-17 Eric Blake <ebb9@byu.net>
-
- Reduce vertical whitespace in configure.
- * lib/autoconf/general.m4 (AC_INIT): Silence newline output during
- m4 side effect initializations.
- * lib/m4sugar/m4sh.m4 (AS_PREPARE): Likewise.
-
-2008-10-17 Eric Blake <ebb9@byu.net>
-
- Document AS_VAR interfaces.
- * doc/autoconf.texi (Programming in M4sh): M4sh is now prime-time.
- (Polymorphic Variables): New node.
- * NEWS: Update accordingly.
-
- Test AS_VAR interfaces.
- * tests/m4sh.at (AS@&t@_VAR): New test.
- * lib/m4sugar/m4sh.m4 (AS_VAR_PUSHDEF): Force expansion of
- _AS_TR_SH_PREPARE at top level, rather than argument collection.
- (AS_TR_SH): Support command substitution.
-
- Add AS_VAR_COPY.
- * lib/m4sugar/m4sh.m4 (AS_VAR_COPY): New macro.
- (AS_VAR_IF): Use it, instead of the broken AS_VAR_GET.
- * lib/autoconf/general.m4 (AC_CACHE_CHECK): Likewise.
- * lib/autoconf/libs.m4 (AC_SEARCH_LIBS): Likewise.
- * lib/autotest/general.m4 (_AT_FINISH): Likewise.
-
- Sort AS_VAR_* interfaces.
- * lib/m4sugar/m4sh.m4 (AS_VAR_GET): Reduce output to one line.
- (AS_VAR_TEST_SET, AS_VAR_SET, AS_VAR_SET_IF, AS_VAR_POPDEF): Sort,
- no code changes.
-
-2008-10-16 Eric Blake <ebb9@byu.net>
-
- Allow comments before functions emitted by m4sh.
- * lib/m4sugar/m4sh.m4 (AS_REQUIRE_SHELL_FN): Add comment
- argument. Supply closing comment, to ease readability.
- (_AS_MKDIR_P_PREPARE): Adjust caller.
- (_AS_UNSET_PREPARE): Add comment.
-
- Add AS_FUNCTION_DESCRIBE.
- * lib/m4sugar/m4sh.m4 (AS_FUNCTION_DESCRIBE): New macro.
- * lib/autotest/general.m4 (AT_INIT): Use it.
-
-2008-10-16 Eric Blake <ebb9@byu.net>
-
- Speed up m4_qlen with caching.
- * lib/m4sugar/m4sugar.m4 (_m4_qlen): Renamed from old m4_qlen.
- (m4_qlen): Cache results for speed.
-
-2008-10-16 Paolo Bonzini <bonzini@gnu.org>
-
- Add a testcase using more then one language.
- * tests/compile.at (Multiple languages): New test.
-
-2008-10-16 Paolo Bonzini <bonzini@gnu.org>
-
- Fix Libtool's config.lt test.
- * lib/m4sugar/m4sh.m4 (_AS_PREPARE): Disable AS_REQUIRE while
- expanding it.
-
-2008-10-15 Eric Blake <ebb9@byu.net>
-
- Break circular require chain in _AS_LINENO_PREPARE.
- * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Ensure that logging is
- disabled when reporting LINENO failure, since logging requires
- LINENO.
- * doc/autoconf.texi (Initialization Macros): Recommend m4_pushdef,
- not m4_rename, since the latter is undocumented.
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Avoid
- m4_rename, as it does not yet handle pushdef stacks.
- Reported by Ralf Wildenhues.
-
-2008-10-15 Eric Blake <ebb9@byu.net>
-
- Cleanups to previous patches.
- * doc/autoconf.texi (Portable Shell): Minor edits.
- (Limitations of Builtins): Touch up wording.
- * lib/m4sugar/m4sh.m4 (AS_LINENO_PUSH): Nuke trailing whitespace.
- (_AS_SHELL_SANITIZE): Wrap comments less than 80 columns.
-
-2008-10-15 Paolo Bonzini <bonzini@gnu.org>
-
- Updates to shell portability documentation.
- * doc/autoconf.texi: Updates all references to "Portable Shell" and
- "Limitations of Builtins" to use three-argument commands.
- (Programming in M4sh): Document AS_ECHO, AS_ECHO_N, AS_UNSET.
- (Portable Shell): Move here discussion about "Where is the POSIX
- shell?" Mention that M4sh provides a SVR2 shell and takes care
- of unsetting variables if necessary. Talk about M4sh and not only
- Autoconf-generated scripts.
- (Special Shell Variables): Talk about M4sh and not only
- Autoconf-generated scripts. Don't talk about things that Autoconf
- does not do. Mention problems of $LINENO with shell functions.
- (Limitations of Builtins). Mention AS_ECHO and AS_ECHO_N. Move
- discussion of eval bugs before discussion on proper use of eval.
- Mention AS_IF. Reword why not to use "shift N". Mention "foo=;
- unset foo" trick. Include M4sh code that unsets MAIL for Bash 2.01.
- * NEWS: Update list of documented M4sh macros.
-
-2008-10-15 Paolo Bonzini <bonzini@gnu.org>
-
- Assume a (possibly buggy) `unset' is present after a
- `better shell' was found.
- * lib/autoconf/general.m4 (_AC_CACHE_DUMP): Use AS_UNSET.
- * lib/autoconf/programs.m4 (AC_PROG_SED): Use AS_UNSET.
- * lib/m4sugar/m4sh.m4 (_AS_UNSET_PREPARE): Provide $as_unset as an
- alias for AS_UNSET, for backwards compatibility.
- (_AS_DETECT_BETTER_SHELL): Set BASH_ENV and ENV to /dev/null in case
- the shell does not support unset.
- (_AS_SHELL_SANITIZE): Work around Bash 2.01 bugs. Unset BASH_ENV.
- (AS_INIT, _AS_PREPARE, AS_PREPARE): Call it.
- (AS_UNSET): Assume it is there but it might fail if the variable is
- not set. Use it throughout instead of $as_unset.
-
-2008-10-15 Paolo Bonzini <bonzini@gnu.org>
-
- Turn AS_SHELL_SANITIZE into a for-Libtool-only wrapper.
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_REQUIRED, _AS_DETECT_SUGGESTED): Remove
- m4_require of _AS_DETECT_BETTER_SHELL.
- (_AS_CLEANUP): Add it here.
- (_AS_DETECT_BETTER_SHELL): Just expand the test instead of appending it
- to _AS_CLEANUP.
- (_AS_SHELL_SANITIZE): New name of the old AS_SHELL_SANITIZE macro.
- (AS_SHELL_SANITIZE): New macro hacking around Libtool misuse.
- (AS_PREPARE): Use _AS_SHELL_SANITIZE.
- (AS_INIT): Add m4_provide of itself.
-
-2008-10-15 Paolo Bonzini <bonzini@gnu.org>
-
- Use "test x$foo = xyes" to avoid upsetting Libtool's sh.test.
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL, _AS_SHELL_FN_WORK): Use
- "test x$foo = xyes".
-
-2008-10-15 Paolo Bonzini <bonzini@gnu.org>
-
- Trim down the size of the better-shell test.
- * lib/m4sugar/m4sh.at (_AT_DETECT_BETTER_SHELL): Store the common
- snippets into shell variables.
- (_AS_RUN): Rewrite.
-
-2008-10-15 Paolo Bonzini <bonzini@gnu.org>
-
- Support a stack of LINENO values for AS_MESSAGE.
- * lib/m4sugar/m4sh.m4 (_AS_ECHO_LOG): If defined, use $as_lineno as
- the line number emitted to the log file.
- (AS_LINENO_PUSH, AS_LINENO_POP): New.
- * tests/m4sh.at (LINENO Stack): New test.
-
-2008-10-14 Eric Blake <ebb9@byu.net>
-
- Correct previous patch.
- * doc/autoconf.texi (Shell Functions): Bash obeys Posix, after
- all.
-
- Document shell function environment pitfall.
- * doc/autoconf.texi (Shell Functions): Document bugs in bash,
- Solaris /bin/sh.
-
-2008-10-14 Paolo Bonzini <bonzini@gnu.org>
-
- Use m4_require to implement AS_REQUIRE.
- * lib/m4sugar/m4sugar.m4 (_m4_require_call): Accept a third argument.
- (m4_require): Pass it.
- (m4_divert_require): New.
- * lib/m4sugar/m4sh.m4 (AS_REQUIRE): Rewrite using m4_divert_require.
- Remove comment about differences with m4_require.
- * tests/m4sh.at (AS_REQUIRE_SHELL_FN and m4_require): Update to test
- the expected behavior.
- (Nested AS_REQUIRE_SHELL_FN): New test.
-
-2008-10-13 Paolo Bonzini <bonzini@gnu.org>
-
- Test AS_LINENO_PREPARE.
- * tests/m4sh.at: Use documented AS_LINENO_PREPARE.
-
-2008-10-13 Paolo Bonzini <bonzini@gnu.org>
-
- Test AS_ME_PREPARE.
- * tests/m4sh.at (as_me): New test.
-
-2008-10-13 Paolo Bonzini <bonzini@gnu.org>
-
- Add and document AS_INIT_GENERATED.
- * lib/m4sugar/m4sh.m4 (AS_INIT_GENERATED): New.
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Use it.
- * doc/autoconf.texi (Initialization macros): Document it.
-
-2008-10-13 Eric Blake <ebb9@byu.net>
-
- Use consistent shell function style.
- * lib/m4sugar/m4sh.m4 (_AS_PREPARE, AS_REQUIRE_SHELL_FN)
- (_AS_SHELL_FN_WORK): Imitate GNU Coding Standards for C
- functions.
-
-2008-10-13 Paolo Bonzini <bonzini@gnu.org>
-
- * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Place names of
- contributors under m4 rather than shell comments.
-
-2008-10-10 Paolo Bonzini <bonzini@gnu.org>
-
- * lib/m4sugar/m4sh.m4 (AS_ME_PREPARE, AS_LINENO_PREPARE): New.
- * doc/autoconf.texi (Initialization macros): Document them.
- (Portable Shell): Refer to AS_LINENO_PREPARE.
- * NEWS: Mention them.
-
- * bin/autoconf.as: Invoke AS_ME_PREPARE.
- * lib/autotest/general.m4: Likewise.
-
-2008-10-10 Paolo Bonzini <bonzini@gnu.org>
-
- * doc/autoconf.texi (Programming in M4sh): Make its own chapter.
-
-2008-10-10 Eric Blake <ebb9@byu.net>
-
- Fix _AS_MKDIR_P usage.
- * lib/m4sugar/m4sh.m4 (_AS_MKDIR_P): Correct documentation to
- match implementation.
- (_AS_PREPARE, _AS_MKDIR_P_PREPARE): Adjust callers.
- * doc/autoconf.texi (Programming in M4sh) <AS_MKDIR_P>: Tweak
- wording to better match behavior.
-
-2008-10-10 Paolo Bonzini <bonzini@gnu.org>
-
- * doc/autoconf.texi: Be less wary of shell functions.
- * NEWS: Document the increased use of shell functions.
-
-2008-10-10 Paolo Bonzini <bonzini@gnu.org>
-
- * m4sugar/m4sh.m4 (_AS_MKDIR_P): New, from AS_MKDIR_P. Adjust
- meaning of as_mkdir_p to be `false' or a full `mkdir -p' command.
- (AS_MKDIR_P): Just dispatch to as_func_mkdir_p.
- (_AS_PREPARE): Define shell functions.
- (_AS_MKDIR_P_PREPARE): Set as_mkdir_p according to the above change.
- Define shell functions.
-
-2008-10-09 Eric Blake <ebb9@byu.net>
-
- Only prepare $as_me if it will be used.
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Avoid unconditional
- preparation.
- (_AS_ECHO_LOG): Depend on $LINENO preparation.
- (AS_MESSAGE): Depend on $as_me preparation.
- (AS_TMPDIR): Use AS_ERROR, rather than a hand-rolled copy.
-
-2008-10-09 Paolo Bonzini <bonzini@gnu.org>
-
- * m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Delay setting as_me
- until the M4SH-INIT diversion using _AS_ME_PREPARE.
- (_AS_PREPARE): Invoke _AS_EXPR_PREPARE before _AS_BASENAME_PREPARE
- and _AS_DIRNAME_PREPARE, and _AS_BASENAME_PREPARE and _AS_ME_PREPARE
- before _AS_LINENO_PREPARE.
- (AS_PREPARE): Include all the AS_REQUIREs manually.
- (_AS_ME_PREPARE): New.
- (_AS_LINENO_PREPARE): Use m4_defun.
-
-2008-10-09 Paolo Bonzini <bonzini@gnu.org>
-
- * m4sugar/m4sh.m4 (_AS_BASENAME_EXPR, _AS_DIRNAME_EXPR): Do not
- require _AS_EXPR_PREPARE.
- (_AS_BASENAME_PREPARE, _AS_DIRNAME_PREPARE): Do it here.
- (_AS_PREPARE): Add _AS_BASENAME_PREPARE.
-
-2008-10-08 Eric Blake <ebb9@byu.net>
-
- Resync from gnulib.
- * cfg.mk (cvs_executable_files, cvs_files): Rewrite...
- (fetch): ...into new target.
- (executable-update): Delete, now that it is unused.
- * maint.mk (update, local_updates, cvs_files, gnulib_repo)
- (wget-update, cvs-update): Likewise.
- * HACKING (Update the foreign files): Document new procedure.
- * GNUmakefile: Resync from upstream, via new 'make fetch'.
- * build-aux/config.guess: Likewise.
-
-2008-10-08 Paolo Bonzini <bonzini@gnu.org>
-
- * lib/m4sugar/m4sh.m4 (_AS_SHELL_FN_SPY): Remove.
- (AS_INIT): Do not call it.
-
-2008-10-08 Paolo Bonzini <bonzini@gnu.org>
-
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Expand
- _AS_UNSET_PREPARE in M4SH-SANITIZE.
-
-2008-10-08 Eric Blake <ebb9@byu.net>
-
- Avoid repeating required shell tests in suggested set.
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_REQUIRED, _AS_DETECT_SUGGESTED):
- Use m4_set, rather than m4_expand_once/m4_append.
- (_AS_DETECT_SUGGESTED): Adjust to new storage layout, and filter
- required tests out of suggested tests.
- Reported by Paolo Bonzini.
-
-2008-10-08 Paolo Bonzini <bonzini@gnu.org>
-
- Add m4sh keyword to all m4sh.at tests.
- * tests/m4sh.at: Add m4sh keyword to all tests. Fix comment
- pastos.
-
-2008-10-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Document AS_VERSION_COMPARE.
- * doc/autoconf.texi (Programming in M4sh): Document
- AS_VERSION_COMPARE.
- * NEWS: Update.
-
- Do not write to testsuite log fd before initialization.
- * lib/autotest/general.m4 (AS_MESSAGE_LOG_FD, AT_JOB_FIFO_FD):
- Define fds only when initializing the log fd so early error
- messages do not try to write to it.
- * tests/autotest.at (Startup error messages): New test.
- * NEWS: Document this 2.63 regression.
-
-2008-10-07 Eric Blake <ebb9@byu.net>
-
- Ensure _AS_CLEANUP is defined.
- * lib/m4sugar/m4sh.m4 (_AS_CLEANUP): Give initial definition.
- * tests/m4sh.at (AS@&t@_INIT cleanup): Expose the need for this.
-
- Improve m4sh maintainability.
- * lib/m4sugar/m4sh.m4: Sort macros for sanitizing the shell; no
- code change.
-
- Fix m4 quoting in previous patch.
- * lib/m4sugar/m4sh.m4 (AS_REQUIRE_SHELL_FN): Determine diversion
- name prior to invoking AS_REQUIRE.
- Reported by Ralf Wildenhues.
-
-2008-09-18 Paolo Bonzini <bonzini@gnu.org>
- and Eric Blake <ebb9@byu.net>
-
- Add a separate diversion for shell functions.
- * lib/m4sugar/m4sh.m4 (M4SH-INIT-FN): New diversion.
- (AS_REQUIRE): Accept diversion parameter.
- (AS_REQUIRE_SHELL_FN): Use it.
-
-2008-10-06 Eric Blake <ebb9@byu.net>
-
- Add m4_default_quoted.
- * lib/m4sugar/m4sugar.m4 (m4_default_quoted): New macro.
- (m4_for, m4_expand_once, m4_text_wrap, m4_text_box): Use it.
- * doc/autoconf.texi (Conditional constructs): Document it.
- * NEWS: Likewise.
-
- Fix build with case-insensitive make, again.
- * Makefile.am (pkgdata_DATA): Protect by MAKE_CASE_SENSITIVE.
- Reported via Keith Marshall, originally by newthinker in
- <http://thread.gmane.org/gmane.comp.gnu.mingw.user/27725>.
-
-2008-10-06 Bruno Haible <bruno@clisp.org>
-
- Warn about /usr/ucb on Solaris.
- * doc/install.texi (Particular Systems): Recommend putting
- /usr/ucb late in PATH, if at all.
-
-2008-10-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix more testsuite hang corner cases.
- * lib/autotest/general.m4: Use the serial code path if no test
- is to be run.
- * tests/autotest.at (parallel test execution): Test -j and -jN
- with `-k notmatched'.
-
-2008-10-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix hang with `testsuite -k notmatched'.
- * lib/autotest/general.m4: Do not reset $at_jobs if it is equal
- to one. Fixes hang with `-k notmatched'.
-
-2008-10-02 Eric Blake <ebb9@byu.net>
-
- Document more binary file portability traps.
- * doc/autoconf.texi (Limitations of Usual Tools) <sed>: Remind
- reader that NUL and sed don't always mix.
- <tr>: Mention Solaris /usr/ucb/tr bug with \0.
-
-2008-10-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Implement parallel Autotest test execution: testsuite --jobs.
- * lib/autotest/general.m4 (AT_JOB_FIFO_FD): New macro.
- (AT_INIT): <at_jobs>: New variable.
- Accept -j, -jN, --jobs[=N], document them in --help output.
- Implement parallel driver loop using a FIFO, enabled with --jobs
- and if mkfifo works; otherwise, fall back to sequential loop.
- (AT_SETUP): Store, do not output summary progress line if
- parallel.
- * tests/autotest.at (parallel test execution, parallel truth)
- (parallel fallacy, parallel skip): New tests.
- * doc/autoconf.texi (testsuite Invocation): Document -j, --jobs,
- the mkfifo requirement, and that --errexit may cause concurrent
- jobs to finish.
- * NEWS: Update.
-
-2008-09-20 Eric Blake <ebb9@byu.net>
-
- Fix sample isinf definition.
- * doc/autoconf.texi (Function Portability) <isinf>: Filter out NaN
- first.
- * THANKS: Update.
- Reported by David Cournapeau.
-
-2008-09-16 Eric Blake <ebb9@byu.net>
-
- Fix Erlang regression, introduced 2006-11-17.
- * lib/autoconf/erlang.m4 (AC_LANG(Erlang)): Avoid M4 comment
- caused by underquoting.
- * NEWS: Mention this fix.
- * THANKS: Update.
- Reported by BJ Terry.
-
-2008-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/general.m4 (AC_CONFIG_AUX_DIRS): Improve a bit.
-
- Mention Solaris sh ':' redirection bug.
- * doc/autoconf.texi (File Descriptors): Redirecting ':'
- in a loop causes bogus optimization with Solaris sh.
-
-2008-09-10 Eric Blake <ebb9@byu.net>
-
- Avoid testsuite bug when autom4te cache is disabled by user.
- * tests/tools.at (autoconf: forbidden tokens, basic): Enable
- cache, even if user normally disabled it.
- Reported by Bruno Haible.
-
- Avoid testsuite bug in presence of verbose config.site.
- * tests/base.at (Input/Output): Nullify config.site during test.
- Reported by Bob Friesenhahn.
-
-2008-09-09 Eric Blake <ebb9@byu.net>
-
- Release Version 2.63.
- * NEWS: Mention the release.
-
- Formatting tweaks to the manual.
- * doc/autoconf.texi (Introduction, Systemology)
- (File System Conventions, Portable C and C++)
- (Floating Point Portability): Allow URLs to split as needed.
- (Indices): Add entries, to work around texinfo bug on indices that
- start too close to a page break.
- (Particular Functions): Mention ftello.
- (Introduction, Language Choice): Use @enddots at sentence end.
-
- Resync from gnulib.
- * cfg.mk (cvs_executable_files, cvs_files): Update list of files,
- although for now, they are still manually sync'd.
- * build-aux/gnupload: Update.
- * build-aux/config.sub: Likewise.
- * GNUmakefile: Likewise.
-
-2008-09-06 Eric Blake <ebb9@byu.net>
-
- Mention that Automake already supports VPATH.
- * doc/autoconf.texi (Build Directories): Details in this section
- only apply to users avoiding automake.
- * THANKS: Update.
- Reported by Matej Tyc.
-
- Relax tone when warning about cross-compiler names.
- * lib/autoconf/programs.m4 (_AC_TOOL_WARN): Support cross-compiles
- with poorly named tools; the issue has been reported too many
- times in the last four years to pull support.
- * doc/autoconf.texi (Specifying Names, Generic Programs): Update
- documentation accordingly.
- * THANKS: Update.
- Reported by Josef Tran and others, wording suggested by Ralf
- Wildenhues.
-
-2008-09-01 Eric Blake <ebb9@byu.net>
-
- Improve AC_C_BIGENDIAN.
- * doc/autoconf.texi (C Compiler) <AC_C_BIGENDIAN>: Mention that
- universal builds require a config header.
- * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Enhance comments. Check
- AH_HEADER at the last possible moment, so that users can use
- AC_CONFIG_HEADER after this macro.
- Reported by Stepan Kasal.
-
- Fix manual date information.
- * doc/autoconf.tex: UPDATED refers to the day the manual was
- built, not the release date of Autoconf.
- Based on a bison patch by Akim Demaille.
-
-2008-08-27 Eric Blake <ebb9@byu.net>
-
- Fix off-by-one bug in _m4_shiftn.
- * lib/m4sugar/foreach.m4 (_m4_shiftn): Handle case when shifting
- all arguments.
- * tests/m4sugar.at (M4 loops): Test it.
- Reported by Akim Demaille.
-
-2008-08-26 Eric Blake <ebb9@byu.net>
-
- Improve INSTALL formatting.
- * doc/install.texi [!autoconf]: Ensure first paragraphs are
- indented like all others in a plain text rendering.
- * Makefile.am ($(srcdir)/INSTALL): Ensure plaintext formatting.
- Reported by Bruno Haible.
-
-2008-08-26 Stepan Kasal <skasal@redhat.com>
-
- Check for case sensitive make.
- * m4/make-check.m4 (AC_PROG_MAKE_CASE_SENSITIVE): New macro,...
- * configure.ac: ... called here.
- * Makefile.am ($(abs_srcdir)/INSTALL, INSTALL): Return to...
- ($(srcdir)/INSTALL): ...this, but enclose the rule in
- "if MAKE_CASE_SENSITIVE".
-
-2008-08-26 Eric Blake <ebb9@byu.net>
-
- Update invocation documentation.
- * doc/autoconf.texi (autoscan Invocation): Mention --debug.
- (autoreconf Invocation): Mention -v.
- (autom4te Invocation): Tie --freeze to -F, not -f.
- (autoupdate Invocation): Mention --prepend-include.
- * doc/install.texi (configure Invocation): Mention --help=short,
- --help=recursive, -n/--no-create, --prefix. Avoid TABs.
- * bin/autoscan.in ($help): Omit space before `...'.
- * bin/ifnames.in ($help): Likewise.
- * bin/autoconf.as (Usage): Likewise.
- * bin/autoreconf.in ($help): Likewise.
- * bin/autoheader.in ($help): Likewise.
- * bin/autom4te.in ($help): Likewise.
- * bin/autoupdate.in ($help): Likewise.
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Use
- `[OPTION]...', rather than `[OPTIONS]'. Mention --silent. Indent
- --file correctly.
-
- Don't let frozen __m4_version__ break downgrade to m4 1.4.x.
- * bin/autom4te.in: Adjust comments, now that we rely on 1.4.5+.
- (files_to_options): Avoid inheriting __m4_version__ from frozen
- file if current M4 does not support it.
-
-2008-08-25 Eric Blake <ebb9@byu.net>
-
- Adjust to recent m4 1.6 change to support m4_debugmode(d).
- * lib/m4sugar/m4sugar.m4 (m4_defn, m4_popdef, m4_undefine): Move
- freeze-time decision of using faster 1.6 implementation...
- (m4_init): ...to a runtime decision, and add use of new debugmode
- flag.
-
-2008-08-22 Peter O'Gorman <pogma@thewrittenword.com>
-
- Limit AC_C_BIGENDIAN univeral checks to Mac OS X.
- * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Limit the check to
- __APPLE_CC__ with possible -arch flags.
- * NEWS: Document it.
-
-2008-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * NEWS: Fix typo.
-
-2008-08-22 Eric Blake <ebb9@byu.net>
-
- * TODO: Add an item for additional m4sugar looping constructs.
- Suggested by Ralf Wildenhues.
-
- Add reminder to keep dual implementations in sync.
- * lib/m4sugar/m4sugar.m4: Add comments.
- * lib/m4sugar/foreach.m4: Likewise.
- Suggested by Ralf Wildenhues.
-
-2008-08-22 Peter Eisentraut <peter_e@gmx.net> (tiny change)
-
- Format warning and error messages to match GCS.
- * lib/autoconf/general.m4 (_AC_INIT_DIRCHECK)
- (_AC_INIT_PARSE_ARGS, _AC_CACHE_DUMP): Start warning and error
- messages with a lowercase letter, end them without punctuation.
- * lib/autoconf/lang.m4 (AC_NO_EXECUTABLES): Likewise.
- * lib/autoconf/libs.m4 (AC_PATH_X): Likewise.
- * lib/autoconf/status.m4 (AC_OUTPUT, _AC_OUTPUT_MAIN_LOOP):
- Likewise.
- * tests/fortran.at (GNU Fortran): Likewise.
- * tests/torture.at (Deep Package): Likewise.
-
-2008-08-21 Eric Blake <ebb9@byu.net>
-
- Avoid extra side effects in m4sugar list expansion.
- * lib/m4sugar/m4sugar.m4 (m4_mapall_sep, m4_list_cmp): Wrap
- around...
- (_m4_mapall_sep, _m4_list_cmp_raw): ...new helpers, to avoid
- duplicate side effects.
- (m4_version_compare): Adjust caller.
- * lib/m4sugar/foreach.m4 (m4_list_cmp): Rename...
- (_m4_list_cmp_raw): ...to match m4sugar.
- * doc/autoconf.texi (Looping constructs): Document the behavior of
- side effects.
- * tests/m4sugar.at (M4 loops, m4@&t@_map, m4@&t@_version_compare):
- Ensure only one side effect.
- (recursion): Fix test typo.
- Reported by Ralf Wildenhues.
-
-2008-08-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * TODO: Add item for compiler default flags.
- Suggested by Bruno Haible.
-
- * tests/m4sh.at (AS_IF and AS_CASE): Set the expansion limit
- back to 1000.
-
-2008-08-21 Eric Blake <ebb9@byu.net>
-
- Formatting improvements.
- * doc/autoconf.texi: Use @file and @command, rather than @code,
- where appropriate.
-
- Document another make bug.
- * doc/autoconf.texi (The Make Macro SHELL): Mention bug in BSD
- make, GNU make <= 3.80.
-
- Tweak wording about SHELL in Makefile.
- * doc/autoconf.texi (The Make Macro SHELL): Stronger wording on
- the importance of proper SHELL settings.
- Reported by Bruno Haible, in
- http://lists.gnu.org/archive/html/bug-libtool/2008-04/msg00029.html.
-
-2008-08-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Avoid timestamp races for updated input.
- * tests/m4sh.at (AS_IF and AS_CASE): Use `autom4te --force' for
- second script.
- * tests/tools.at (autotools and whitespace in file names): Add
- --force for repeated invocations.
-
-2008-08-20 Bruno Haible <bruno@clisp.org>
-
- Add section to INSTALL about particular systems.
- * doc/install.texi (Particular systems): New node.
- * doc/autoconf.texi: Adjust menus.
-
-2008-08-19 Bruno Haible <bruno@clisp.org>
- and Peter O'Gorman <peter@pogma.com>
-
- Mention universal binaries in INSTALL.
- * doc/install.texi (Compiling For Multiple Architectures): Explain
- how to create universal binaries on MacOS X.
-
-2008-08-19 Jim Meyering <jim@meyering.net>
- Eric Blake <ebb9@byu.net>
- Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Avoid shell parse errors after interrupt due to empty ``.
- * doc/autoconf.texi (Shell Substitutions): Document the issue.
- * lib/m4sugar/m4sh.m4 (AS_VAR_IF): New function.
- * lib/autoconf/functions.m4 (AC_CHECK_FUNC): Use it in place of
- "test AS_VAR_GET([...]) = yes"
- * lib/autoconf/general.m4 (AC_CHECK_FILE, AC_CHECK_DECL): Likewise.
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL): Likewise.
- (_AC_CHECK_HEADER_NEW, _AC_CHECK_HEADER_OLD): Likewise.
- (_AC_CHECK_HEADER_DIRENT): Likewise.
- * lib/autoconf/libs.m4 (AC_CHECK_LIB): Likewise.
- * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW, AC_CHECK_MEMBER): Likewise.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Use
- temporary variable to work around the issue.
- * tests/foreign.at (Libtool): Quote result of command
- substitution.
-
-2008-08-18 Eric Blake <ebb9@byu.net>
-
- Test m4_transform without tickling shell bugs.
- * tests/m4sh.at (AS@&t@_IF and AS@&t@_CASE): Relax test to
- something more manageable.
- * tests/m4sugar.at (recursion): Move stress test of
- m4_transform_pair here.
- Reported by Ralf Wildenhues.
-
- Let 'git diff' give better context for doc updates.
- * .gitattributes (*.texi*): Add new entry.
- * README-hacking: Mention how to use it.
- Inspired by a coreutils patch by Jim Meyering.
-
-2008-08-15 Eric Blake <ebb9@byu.net>
-
- Fix m4_map regression from 2007-10-16.
- * lib/m4sugar/m4sugar.m4 (_m4_apply): New macro.
- (m4_map): Ignore empty sublists. For a list consisting of only an
- empty sublist, this restores 2.61 behavior of being a no-op.
- (m4_map_sep): Likewise, and expand separator.
- (m4_mapall, m4_mapall_sep): New macros, to regain 2.62 behavior.
- (_m4_map): Rewrite, to be common base for all four variants.
- * lib/m4sugar/foreach.m4 (_m4_map): Adjust to new prototype.
- * tests/m4sugar.at (m4@&t@_map): Add tests.
- * doc/autoconf.texi (Looping constructs) <m4_map>: Document new
- macros, and mention ramifications of expanded separator.
- * NEWS: Mention the change.
-
-2008-08-14 Eric Blake <ebb9@byu.net>
-
- Implement m4_transform_pair, to speed up AS_IF.
- * lib/m4sugar/m4sugar.m4 (m4_transform, m4_transform_pair): New
- macros, undocumented for now.
- * lib/m4sugar/foreach.m4 (m4_transform, m4_transform_pair): Also
- the m4 1.4.x counterparts.
- * lib/m4sugar/m4sh.m4 (AS_IF, AS_CASE): Use it.
- * tests/m4sh.at (AS@&t@_IF and AS@&t@_CASE): Test it.
-
-2008-08-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/programs.m4 (AC_PATH_TARGET_TOOL)
- (AC_CHECK_TARGET_TOOL, AC_CHECK_TARGET_TOOLS): Require, do not
- warn about previous AC_CANONICAL_TARGET.
- (AC_CHECK_TARGET_TOOL): Add missing `$' making the macro
- unusable in the non-cross-compiling case.
- * NEWS, THANKS: Update.
- Report by Dave Erickson.
-
-2008-08-12 Eric Blake <ebb9@byu.net>
-
- Optimize m4_bmatch.
- * lib/m4sugar/foreach.m4 (m4_bmatch): Provide linear
- implementation for m4 1.4.x.
- * tests/m4sugar.at (m4@&t@_bmatch): New test.
- (recursion): Test the linear nature.
- * NEWS: Document the fix.
-
- Fix m4_cond corner case.
- * lib/m4sugar/foreach.m4 (_m4_cond): Ensure alternate
- implementation allows concatenation with subsequent text.
- * tests/m4sugar.at (m4@&t@_cond): Enhance test.
-
- Add test for m4_cond.
- * tests/m4sugar.at (m4@&t@_cond): New test.
- Reported by Ralf Wildenhues.
-
-2008-08-06 Eric Blake <ebb9@byu.net>
-
- Fix autoheader 2.62 regression on AC_DEFINE([__EXTENSIONS__]).
- * lib/autoconf/specific.m4 (AC_USE_SYSTEM_EXTENSIONS): Use a
- unique key for the AH_VERBATIM.
- * tests/c.at (AC_USE_SYSTEM_EXTENSIONS): New test.
- * NEWS: Mention the fix.
- Reported by Andreas Schwab, analyzed by Stepan Kasal.
-
- Add linear m4_cond for m4 1.4.x.
- * lib/m4sugar/m4sugar.m4 (m4_cond): Split into...
- (_m4_cond): ...this, for fewer macros per iteration.
- * lib/m4sugar/foreach.m4 (_m4_cond): New implementation.
- * tests/m4sugar.at (recursion): Test it.
- * NEWS: Document the linear guarantee.
-
- Speed up diversion handling.
- * lib/m4sugar/m4sugar.m4 (m4_divert, m4_divert_push)
- (m4_divert_pop, m4_divert_text): Avoid dnl for fewer macro
- expansions.
-
- AC_C_CHAR_UNSIGNED is not strictly necessary.
- * doc/autoconf.texi (C Compiler) <AC_C_CHAR_UNSIGNED>: Mention a
- portable alternative to this macro.
- * THANKS: Update.
- Reported by Hallvard B Furuseth.
-
- Update some files from upstream.
- * GNUmakefile: Update.
- * build-aux/announce-gen: Likewise.
- * build-aux/config.guess: Likewise.
- * build-aux/config.sub: Likewise.
- * build-aux/git-version-gen: Likewise.
- * build-aux/texinfo.tex: Likewise.
- * build-aux/vc-list-files: Likewise.
- * doc/make-stds.texi: Likewise.
* doc/standards.texi: Likewise.
-
-2008-08-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix AC_CONFIG_FILES([$var]) 2.62 regression.
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Flatten
- whitespace in $ac_config_files and $ac_config_headers.
- * tests/torture.at (Parameterized AC_CONFIG_FILES): New test.
- Report by Andreas Schwab and Per Øyvind Karlsen.
- * THANKS: Update.
-
-2008-07-30 Eric Blake <ebb9@byu.net>
-
- Fix bugs in previous version of m4_bpatsubsts.
- * lib/m4sugar/foreach.m4 (_m4_bpatsubsts): Don't expand $1, and
- allow concatenation with subsequent text.
- * tests/m4sugar.at (m4@&t@_bpatsubsts): Enhance test.
-
-2008-07-29 Eric Blake <ebb9@byu.net>
-
- Add linear m4_bpatsubsts for m4 1.4.x.
- * lib/m4sugar/m4sugar.m4 (m4_bpatsubsts): Match documentation
- about anchors, even for only one substitution.
- * lib/m4sugar/foreach.m4 (_m4_bpatsubsts): New implementation.
- * doc/autoconf.texi (Conditional constructs) <m4_bpatsubsts>:
- Clarify behavior with regard to quoting.
- * tests/m4sugar.at (recursion): Test scaling of m4_bpatsubsts.
- (m4@&t@_bpatsubsts): New test.
- * NEWS: Document the linear guarantee.
-
- Tweak m4_do semantics.
- * lib/m4sugar/m4sugar.m4 (m4_do): Don't concat final argument with
- subsequent text.
- * lib/m4sugar/foreach.m4 (m4_do): Don't concat intermediate
- arguments, and avoid infinite loop.
- * doc/autoconf.texi (Evaluation Macros) <m4_do>: Document the
- behavior.
- * tests/m4sugar.at (m4@&t@_do): New test.
-
- Optimize m4_for.
- * lib/m4sugar/m4sugar.m4 (m4_for): Use fewer macros.
- (_m4_for): Take additional parameter, for fewer m4_indir calls.
- * lib/m4sugar/foreach.m4 (_m4_foreach, _m4_shiftn, m4_do)
- (m4_reverse, _m4_list_pad, _m4_list_cmp): Adjust all callers.
- * doc/autoconf.texi (Looping constructs) <m4_for>: Document subtle
- semantic change caused by the optimization.
- * tests/m4sugar.at (M4 loops): Test the new semantics.
-
- One more m4_list_cmp tweak.
- * lib/m4sugar/m4sugar.m4 (_m4_list_cmp_1): Don't defer shift.
- * lib/m4sugar/foreach.m4 (m4_list_cmp): Fix comment.
- * tests/m4sugar.at (recursion): Test both directions of list
- disparity.
-
- Add m4_reverse, and improve m4_list_cmp.
- * lib/m4sugar/m4sugar.m4 (m4_reverse): New macro.
- (m4_list_cmp): Rewrite to give linear behavior with M4 1.6 on an
- m4_reverse'd list.
- * lib/m4sugar/foreach.m4 (m4_reverse): Add the M4 1.4.x
- counterpart.
- * tests/m4sugar.at (recursion): Test it.
- * doc/autoconf.texi (Evaluation Macros) <m4_reverse>: Document
- it.
- (Text processing Macros) <m4_append>: Cross-reference to m4_set.
- * NEWS: Mention new macro.
-
-2008-07-28 Eric Blake <ebb9@byu.net>
-
- Avoid _m4_shiftn for m4 1.6 speedup.
- * lib/m4sugar/m4sugar.m4 (m4_foreach, _m4_foreach, m4_map)
- (_m4_map, m4_map_sep): Rewrite recursion to use one less m4_if.
- * lib/m4sugar/foreach.m4 (_m4_map): Accomodate changed signature.
-
- Implement O(n) unique element set creation.
- * lib/m4sugar/m4sugar.m4 (m4_set_add, m4_set_add_all)
- (m4_set_contains, m4_set_contents, m4_set_delete)
- (m4_set_difference, m4_set_dump, m4_set_empty, m4_set_foreach)
- (m4_set_intersection, m4_set_list, m4_set_listc, m4_set_remove)
- (m4_set_size, m4_set_union): New macros.
- * lib/m4sugar/foreach.m4 (m4_set_add_all): Add O(n) fallback for
- m4 1.4.x.
- * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS, AC_SUBST): Use
- new m4_set API for the set most likely to be large.
- * doc/autoconf.texi (Set manipulation Macros): New node.
- * NEWS: Mention new macros.
- * tests/m4sugar.at (m4@&t@_set): New test.
-
-2008-07-25 Eric Blake <ebb9@byu.net>
-
- Avoid infinite aclocal loop.
- * lib/m4sugar/m4sugar.m4 (m4_init): Bypass m4_include tracing, so
- that aclocal doesn't insist on finding m4sugar/foreach.m4.
-
- Provide O(n) replacement macros for M4 1.4.x.
- * lib/m4sugar/foreach.m4: New file.
- (m4_foreach, m4_case, _m4_shiftn, m4_do, m4_dquote_elt, _m4_map)
- (m4_join, m4_joinall, m4_list_cmp, _m4_minmax): Replace m4sugar
- macros based on $@ recursion [fast on M4 1.6, but quadratic on M4
- 1.4.x] with versions based on m4_for/m4_foreach [slow on 1.6, but
- linear on 1.4.x].
- * lib/m4sugar/m4sugar.m4 (m4_init): Dynamically load new file if
- older M4 is assumed.
- (m4_map_sep): Optimize.
- (m4_max, m4_min): Refactor, by adding...
- (_m4_max, _m4_min, _m4_minmax): ...more efficient helpers.
- (m4_defn, m4_popdef, m4_undefine): Use foreach recursion.
- * lib/m4sugar/Makefile.am (dist_m4sugarlib_DATA): Distribute new
- file.
- * tests/m4sugar.at (M4 loops): Add a stress test that takes
- forever if m4_foreach and friends are quadratic.
- * NEWS: Mention this.
-
-2008-07-21 Eric Blake <ebb9@byu.net>
-
- Ignore undefined macros, necessary with m4 1.6.
- * bin/autoupdate.in (_au___undefine): New macro,...
- (_au__undefine): ...wrapped by ifdef to silence m4 warnings.
- Reported by Ralf Wildenhues.
-
- Resync with gnulib.
- * GNUmakefile: Grab from upstream, to fix issue where 'make
- install' would allow installation of stale version string.
-
-2008-07-19 Eric Blake <ebb9@byu.net>
-
- Support multiple arguments to m4_defn, m4_popdef, and m4_undefine.
- * lib/m4sugar/m4sugar.m4 (m4_defn, m4_popdef, m4_undefine): Loop
- through all variables, per POSIX and newer m4.
- (_m4_text_wrap): Exploit the looping capabilities.
- * tests/m4sugar.at (m4@&t@_defn): Test this.
- * NEWS: Document it.
- * doc/autoconf.texi (Redefined M4 Macros) <m4_defn, m4_popdef>
- <m4_undefine>: Likewise.
-
- Reduce overhead of m4_builtin([defn]).
- * lib/m4sugar/m4sugar.m4 (_m4_defn, _m4_popdef, _m4_undefine): New
- internal macros, which are slightly more efficient than
- m4_builtin([defn]) and company.
- (m4_defn, m4_popdef, m4_undefine, m4_warn, m4_ifset)
- (_m4_dumpdefs_up, _m4_dumpdefs_down, _m4_wrap, m4_for)
- (_m4_divert_n_stack, m4_divert_pop, m4_expansion_stack_push)
- (m4_expansion_stack_dump, _m4_defun_pro, _m4_defun_epi)
- (_m4_defun_epi_outer, _m4_require_call, m4_combine, m4_append)
- (_m4_append_uniq, m4_append_uniq_w, _m4_text_wrap, m4_text_box)
- (m4_version_prereq): Use them.
-
- Use warnings from m4 when available.
- * lib/m4sugar/m4sugar.m4 (m4_defn, m4_popdef, m4_undefine): Don't
- define slower wrapper if m4 will warn on our behalf; key off of
- __m4_version__, added alongside the new warnings in m4 1.6.
- * tests/m4sugar.at (m4@&t@_defn): New test.
-
-2008-07-18 Eric Blake <ebb9@byu.net>
-
- Add m4_joinall.
- * lib/m4sugar/m4sugar.m4 (m4_joinall, _m4_joinall): New macros.
- * tests/m4sugar.at (m4@&t@_join): Test them.
- * doc/autoconf.texi (Text processing Macros) <m4_join>: Document
- m4_joinall.
- * NEWS: Likewise.
-
-2008-07-17 Stepan Kasal <skasal@redhat.com>
- and Eric Blake <ebb9@byu.net>
-
- Improve documentation of config.h.in template rules.
- * doc/autoconf.texi (Header Templates): Mention rules on comments
- and whitespace, and that the user cannot rely on #undef to survive
- through config.status.
-
-2008-07-16 Eric Blake <ebb9@byu.net>
-
- Revert m4_prepend; it is less efficient, and unused by bison.
- * lib/m4sugar/m4sugar.m4 (m4_prepend, m4_prepend_uniq)
- (m4_prepend_uniq_w): Delete addition from 2008-07-11.
- (_m4_grow_uniq_1): Rename back...
- (_m4_append_uniq): ...to this.
- * NEWS: Revert NEWS blurb.
- * doc/autoconf.texi (Text processing Macros) <m4_prepend>: Delete.
- * tests/m4sugar.at (m4@&t@_prepend): Delete.
-
-2008-07-15 Eric Blake <ebb9@byu.net>
-
- Avoid failure if version.m4 is omitted but m4_PACKAGE_* unused.
- * lib/m4sugar/m4sugar.m4 (m4_version_compare): Provide alternate
- definition for non-Autoconf clients of m4sugar.
-
-2008-07-14 Eric Blake <ebb9@byu.net>
-
- Tighten bound of potential speed of m4_append.
- * doc/autoconf.texi (Text processing Macros) <m4_append>
- <m4_prepend>: If m4 is fixed, m4_append can be linear rather than
- O(n log n).
- * lib/m4sugar/m4sugar.m4 (m4_append, m4_append_uniq): Fix comments.
- Analysis by Bruno Haible.
-
-2008-07-11 Eric Blake <ebb9@byu.net>
-
- Inherit improvements from bison's fork of m4sugar.
- * lib/m4sugar/m4sugar.m4 (m4_PACKAGE_VERSION): Ignore failure to
- find version.texi, since bison does not provide it.
- (m4_prepend): Add new macro, from bison.
- (m4_prepend_uniq, m4_prepend_uniq_w): Add new macros, for
- completeness.
- (_m4_append_uniq): Rename...
- (_m4_grow_uniq_1): ...to this to share implementation, and
- optimize initial assignment.
- (m4_append_uniq_w): Adjust caller.
- * NEWS: Document new macros.
- * doc/autoconf.texi (Text processing Macros) <m4_append>: Mention
- speed consideration.
- <m4_prepend>: Document the new prepend variants.
- * tests/m4sugar.at (m4@&t@_prepend): New test.
-
- Work around M4 1.6 warning on undefined macros.
- * lib/m4sugar/m4sugar.m4 (changeword, symbols): Don't rename if
- not already available as builtins.
-
-2008-07-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (@dvar): Remove trailing newline.
- (@ovar): Likewise. Fix macro documentation.
-
-2008-07-02 Stepan Kasal <skasal@redhat.com>
-
- Add quotes to the header of autoscan-generated source.
- * bin/autoscan.in: Add quotes to AC_PREREQ and AC_INIT.
-
-2008-06-28 Andreas Schwab <schwab@suse.de>
-
- * doc/autoconf.texi (autoscan Invocation): Fix spacing.
- (autoconf Invocation): Likewise.
- (autoreconf Invocation): Likewise.
- (autoheader Invocation): Likewise.
- (autom4te Invocation): Likewise.
-
-2008-06-19 Eric Blake <ebb9@byu.net>
-
- Add comment explaining recent patch.
- * lib/autotest/general.m4 (AT_INIT) <at_pass_list>: Explain choice
- of * vs. ? globbing.
-
-2008-06-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_LINK): Do not warn when not
- linking a file to itself.
- Report by Bruno Haible.
-
-2008-06-19 Eric Blake <ebb9@byu.net>
-
- Resync with gnulib.
- * GNUmakefile: Grab from upstream, to fix VPATH 'make dist' bug.
- Reported by Stepan Kasal.
-
-2008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Reorganize autotest files, factorize for parallel execution.
- * lib/autotest/general.m4 (AS_MESSAGE_LOG_FD): Move definition
- earlier in the file.
- (AT_INIT): Create line number cache in
- $at_suite_dir/at-source-lines.
- <at_helper_dir>: New directory at-groups below $at_suite_dir.
- Add comment explaining the new directory structure.
- (at_func_group_prepare, at_func_group_postprocess): New shell
- functions to factorize per-test group work. Keep the actual
- test execution outside of a shell function in order to avoid
- zsh 4.x exit status bugs.
- <at_check_line_file, at_status_file, at_stdout, at_stder1>
- <at_stderr, at_test_source>: Turn these into per-group files
- below $at_helper_dir. Also store test results there in files
- named pass, fail, xpass, xfail, skip. Let the parent collect
- results from $at_helper_dir. Adjust summary statistics
- computation and result output.
-
-2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix '#undef variable /* comment */' transform in config headers.
- * lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS_PREPARE): For
- undefined preprocessor macros that are followed by a comment
- in the header template, do not create nested comments in the
- output.
- * tests/torture.at (@%:@define header templates): Extend test.
- * NEWS: Update.
- Report by Karsten Hopp <karsten@redhat.com>.
-
-2008-06-09 Eric Blake <ebb9@byu.net>
-
- Mark AC_TYPE_SIGNAL as obsolete.
- * lib/autoconf/types.m4 (AC_TYPE_SIGNAL): Switch to AU_DEFUN.
- * doc/autoconf.texi (Function Portability): Update documentation.
- (Particular Types): Move AC_TYPE_SIGNAL...
- (Obsolete Macros): ...here, and mention why.
- * NEWS: Mention the change.
-
- Allow lib64 as a default X library location.
- * lib/autoconf/libs.m4 (_AC_PATH_X_XMKMF): Add lib64.
- * NEWS: Mention the change.
- * THANKS: Update.
- Reported by Brad Walker.
-
-2008-06-05 Eric Blake <ebb9@byu.net>
-
- Fix regression in AT_KEYWORDS([Macro]), from 2007-10-18.
- * lib/autotest/general.m4 (AT_KEYWORDS): Expand argument prior to
- converting it to lower case.
- * tests/autotest.at (Keywords and ranges): Test this.
- * NEWS: Document the fix.
- * THANKS: Update.
- Reported via Karsten Hopp, by Jochen Schmitt in
- https://bugzilla.redhat.com/show_bug.cgi?id=449973
-
-2008-06-03 Eric Blake <ebb9@byu.net>
-
- Fix 'make dist' regression from 2008-05-08.
- * Makefile.am (INSTALL): Add rule, to accomodate 'make dist' after
- GNUmakefile's _autoconf rule removes INSTALL.
-
-2008-05-27 Eric Blake <ebb9@byu.net>
-
- Document Solaris /bin/sh redirection pitfall.
- * doc/autoconf.texi (File Descriptors): Mention redirection bug.
-
-2008-05-14 Eric Blake <ebb9@byu.net>
-
- Improve documentation of ! issues.
- * doc/autoconf.texi (Limitations of Builtins) <!>: Touch up.
- Reported by Noah Misch.
-
- Document some FreeBSD shell bugs.
- * doc/autoconf.texi (Limitations of Builtins) <!>: Mention ! issue
- in compound pipe commands.
- <export>: Mention difference of exporting an undefined variable.
- (Shell Functions): Mention loss of $? in entry to shell functions.
- Extracted from the git mailing list.
-
-2008-05-13 Stepan Kasal <kasal@ucw.cz>
-
- Work around MSYS and Cygwin bugs when dealing with trailing space.
- * tests/atlocal.in (func_sanitize_dir_name): Let atlocal succeed,
- even when platform bugs are tickled.
- Reported by Keith Marshall and Eric Blake.
-
-2008-05-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Let AC_MSG_FAILURE report pwd.
- * lib/autoconf/general.m4 (_AC_ARG_VAR_VALIDATE, AC_MSG_FAILURE):
- Output $ac_pwd along with fatal failure.
- * tests/torture.at (Deep Package): Extend test.
- Reported numerous times against GCC, and probably other packages.
-
-2008-05-12 Eric Blake <ebb9@byu.net>
-
- Enforce --help and --version compliance.
- * configure.ac (AM_INIT_AUTOMAKE): Add std-options option.
-
-2008-05-08 Keith Marshall <keithmarshall@users.sourceforge.net> (tiny change)
-
- Avoid case-insensitive `make install' vs. `INSTALL' conflict.
- * Makefile.am ($(srcdir)/INSTALL): Replace all references...
- ($(abs_srcdir)/INSTALL): ...with this.
-
-2008-05-06 Eric Blake <ebb9@byu.net>
-
- Fix typo.
- * doc/autoconf.texi (Shell Substitutions): Drop at_ prefix.
-
- Avoid overfull \hbox.
- * doc/autoconf.texi (Versioning): Reword to fit line size.
-
- Document $(( )) pitfalls.
- * doc/autoconf.texi (Shell Substitutions): Mention octal
- vs. decimal. Mention autotest's at_func_arith.
-
- Improve behavior of './testsuite 01'.
- * lib/autotest/general.m4 (AT_INIT) <at_func_validate_ranges>:
- Alter usage to eval its arguments, in order to normalize away
- leading zero. All callers updated.
- * tests/autotest.at (Keywords and ranges): Test range
- normalization with leading 0.
-
-2008-04-26 Eric Blake <ebb9@byu.net>
-
- Mention Solaris /usr/ucb/tr pitfall.
- * doc/autoconf.texi (Limitations of Usual Tools) <tr>: Add section.
- Reported by Bruno Haible and Jim Meyering.
-
-2008-04-24 Eric Blake <ebb9@byu.net>
-
- Mention m4sugar's internal quote strings.
- * doc/autoconf.texi (Quadrigraphs): Mention alternate quote used
- in m4sugar, and how to still output it literally.
- * tests/m4sugar.at (m4@&t@_split): And test it.
- Reported by Joel E. Denny.
-
-2008-04-23 Eric Blake <ebb9@byu.net>
-
- Allow unbalanced () in m4_expand.
- * lib/m4sugar/m4sugar.m4 (m4_expand, _m4_expand): Use more complex
- quotes.
- (m4_noquote, _m4_split): Use consistent complex quote.
- * tests/autotest.at (Left paren, Right paren): Test this.
- (Parentheses): Ensure new quadrigraphs still work.
- (AT_CHECK_AT_TITLE_CHAR): All title char tests exercise m4_expand.
- * NEWS: Mention the fix.
- * doc/autoconf.texi (Quadrigraphs): Revert mention of macros that
- require quadrigraphs for ().
- (Evaluation Macros) <m4_expand>: Relax the restriction against
- unbalanced ().
- (Pretty Help Strings) <AS_HELP_STRING>: Likewise.
- (Writing Testsuites) <AT_SETUP>: Likewise.
- Reported by Joel E. Denny, fix suggested by Noah Misch.
-
-2008-04-22 Eric Blake <ebb9@byu.net>
-
- Support unbalanced () in AT_SETUP by adding two new quadrigraphs.
- * bin/autom4te.in (handle_output): Substitute @{:@ and @:}@.
- (handle_traces): Likewise.
- * lib/m4sugar/m4sugar.m4 (m4_qlen): Account for new quadrigraphs.
- * tests/autotest.at (AT_CHECK_AT_TITLE_CHAR): Add new tests.
- * doc/autoconf.texi (Quadrigraphs): Document them.
- (Evaluation Macros) <m4_expand>: Enhance documentation.
- (Text processing Macros) <m4_text_box>: Document cases where
- quadrigraphs can help for problemetic unbalanced parentheses.
- (Pretty Help Strings) <AS_HELP_STRING>: Likewise.
- (Writing Testsuites) <AT_SETUP>: Likewise.
- (Limitations of Builtins) <case>: Consolidate text on unbalanced
- parentheses, and add an example of creative comments.
- * NEWS: Document the addition.
- Reported by Joel E. Denny.
-
-2008-04-16 Eric Blake <ebb9@byu.net>
-
- Document pdksh exec behavior.
- * doc/autoconf.texi (Limitations of Builtins) <exec>: New
- subsection.
- Discovered by Jim Meyering.
-
-2008-04-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/autotest.at (AT_CHECK_AT): Allow to pass additional
- arguments to the inner suite.
- (errexit, input from stdin): New tests.
-
-2008-04-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * NEWS: Post-release update.
-
-2008-04-10 Eric Blake <ebb9@byu.net>
-
- AC_AUTOCONF_VERSION might contain arbitrary macro names.
- * doc/autoconf.texi (Versioning): Mention problem with expansion.
- * tests/tools.at (autoconf: AC_AUTOCONF_VERSION): Adjust test.
-
-2008-04-09 Slava Sysoltsev <Viatcheslav.Sysoltsev@h-d-gmbh.de> (tiny change)
-
- Flush buffered output before exit.
- * bin/autom4te.in (handle_output): Explicitly close file.
- * THANKS: Update.
- See http://lists.gnu.org/archive/html/autoconf/2008-04/msg00026.html.
-
-2008-04-08 Eric Blake <ebb9@byu.net>
-
- Generate web docs for 2.62.
- * doc/autoconf.texi (Evaluation Macros): Fix typo.
- (Notices): Use recommended means to escape RCS keyword.
- * cfg.mk (gnulib_dir): New macro.
- (web-manual): New target.
-
-2008-04-05 Eric Blake <ebb9@byu.net>
-
- Release Version 2.62.
- * NEWS: Mention the release.
-
-2008-04-04 Stepan Kasal <kasal@ucw.cz>
- and Eric Blake <ebb9@byu.net>
-
- Return back to GPLv2+, until the text of the exceptions is
- finalized, reverting the change from 2007-07-03 and the first
- part of the change from 2007-07-20.
- * COPYING: Revert to GPLv2.
- * COPYINGv3: New file, since some auxiliary build tools, used for
- building autoconf and not installed, are GPLv3.
- * Makefile.am (EXTRA_DIST): Distribute COPYINGv3.
- * NEWS: Remove mention of GPLv3.
- * README: Clarify situation regarding GPLv3.
-
-2008-04-05 Eric Blake <ebb9@byu.net>
-
- Prepare for release.
- * maint.mk (announcement): Avoid deleted option.
- * cfg.mk (release_archive_dir): Use default.
- * build-aux/gnupload: New file, from automake/gnulib.
- * Makefile.am (EXTRA_DIST): Distribute it.
- * .x-sc_two_space_separator_in_usage: New file, to exempt gnupload
- from syntax check.
-
-2008-04-05 Jim Meyering <meyering@redhat.com>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Work around CR EOL markers on OS/2 (www.ecomstation.com Ecs v2 rc4)
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): When CR
- is the EOL marker, skip a step that would remove and translate
- carriage return bytes.
- * THANKS: Update.
- Reported by Elbert Pol.
-
-2008-04-05 Eric Blake <ebb9@byu.net>
-
- Avoid some autoreconf -Wall warnings.
- * configure.ac: Use proper quoting, to be a good example.
- (PACKAGE_NAME): Remove setting covered by autoconf.
- (AM_INIT_AUTOMAKE): Bump automake requirement, for html rules.
- * doc/Makefile.am (TEXI2DVI): Remove settings covered by
- automake.
- (html, autoconf_1.html, standards_1.html): Likewise.
- (TEXI2HTML, TEXI2HTML_FLAGS): Remove unused macros.
- * Makefile.am (html): Likewise.
- * doc/autoconf.texi (Quoting and Parameters): Add missing section
- name.
- * tests/Makefile.am (AUTOMAKE_OPTIONS): Intentionally ignore
- warning about our override, until Automake is fixed.
- * README-hacking: Document minimum requirements for bootstrap.
-
-2008-04-03 Eric Blake <ebb9@byu.net>
-
- Fix version number generation in man pages.
- * Makefile.am (EXTRA_DIST): Distribute .version.
- (.version): New rule.
- * man/Makefile.am (common_dep): Depend on .version, not
- configure.ac.
- (.x.1): Use package name for version string.
- * GNUmakefile [!_have-Makefile]: Sync from upstream, again.
- * build-aux/git-version-gen: Sync from upstream.
-
- More maintainer tweaks: pass 'make maintainer-distcheck'.
- * GNUmakefile (_is-dist-target): Sync from upstream.
- * build-aux/vc-list-files: Sync from upstream, yet again.
- * tests/atlocal.in (unsupported_fs_chars): Always remove tdir.
- * tests/Makefile.am (EXTRA_DIST): Don't distribute the built
- package.m4.
- * lib/autoconf/general.m4 (_AC_INIT_COPYRIGHT): Bump year.
-
- Fix VPATH 'make syntax-check'.
- * maint.mk (VC_LIST, VC_LIST_EXCEPT, sc_changelog)
- (sc_prohibit_jm_in_m4, makefile-check): Support VPATH.
- (author_mark_check): Avoid error message.
- * build-aux/vc-list-files: Sync from upstream again.
- * build-aux/texinfo.tex: Likewise.
-
- Sync files from upstream, and pass 'make syntax-check'.
- * config/announce-gen: Move...
- * build-aux/announce-gen: ...here, and sync from gnulib.
- * Makefile.am (EXTRA_DIST): Adjust accordingly.
- * cfg.mk (announce_gen): Likewise.
- (prev_version_file): Delete, relying on default in maint.mk.
- (gpg_key_ID): New macro.
- (url_dir_list): Rewrite to match coreutils.
- * config/prev-version.txt: Move...
- * .prev-version: ...here, and adjust to 2.61.
- * build-aux/vc-list-files: Sync from coreutils.
- * maint.mk: Resynchronize with coreutils, where possible.
- (ME): Remove $(srcdir) from definition.
- (CVS): Delete.
- (GIT, VC, VC-tag): New macros.
- (CVS_LIST, CVS_LIST_EXCEPT): Rename...
- (VC_LIST, VC_LIST_EXCEPT): ...to this.
- (cvs-tag-check): Delete.
- (cvs-diff-check): Rename...
- (vc-diff-check): ...to this.
- (sc_file_system): Allow FHS acronym.
- * doc/autoconf.texi (Particular Functions): Recommend
- unconditional <config.h>.
- * build-aux/config.guess: Sync from upstream (manually).
- * build-aux/config.sub: Likewise.
- * build-aux/texinfo.tex: Likewise.
- * doc/make-stds.texi: Likewise.
- * doc/standards.texi: Likewise.
- * .gitattributes: Ignore whitespace problems in upstream files.
-
-2008-04-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Mention awk %u
- bug on HP-UX/IA.
- Report by Peter O'Gorman.
-
-2008-04-02 Eric Blake <ebb9@byu.net>
-
- Recommend the just-released M4 1.4.11.
- * NEWS: Update recommendation.
- * README: Likewise.
- * doc/autoconf.texi (Introduction): Likewise.
- * m4/m4.m4 (AC_PROG_GNU_M4): Likewise.
-
-2008-04-01 Eric Blake <ebb9@byu.net>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Bump
- copyright year.
-
-2008-03-28 Peter O'Gorman <peter@pogma.com>
-
- Find X11 on Mac OS X too.
- * lib/autoconf/libs.m4 (_AC_PATH_X_DIRECT,_AC_PATH_X_XMKMF):
- Check for libX11 with extensions dylib la and dll too.
- * THANKS: Update.
- Reported by Martin Costabel.
-
-2008-03-28 Eric Blake <ebb9@byu.net>
-
- Update TODO based on completed tasks.
- * TODO (AC_PROG_INSTALL takes multiple files): Done.
- (AC_GNU_SOURCE deprecation): Done, see AC_USE_SYSTEM_EXTENSIONS.
- (AC_COMPILE_IFELSE documentation): Done.
- (Tracing builtins): Done, now that we require M4 1.4.5.
- (AC_PROG_CC_POSIX suggestion, providing header files)
- (AC_TYPE_SIGNAL): Not needed; gnulib's approach is better.
- (cache consistency): Done with precious variables.
-
-2008-03-26 Eric Blake <ebb9@byu.net>
-
- Document --trace=macro:format in --help output.
- * bin/autom4te.in (help): Mention optional trace format.
- * bin/autoconf.as (usage): Likewise.
-
- * doc/autoconf.texi (Limitations of Usual Tools) <sed>: Fix
- typos in last patch.
- Reported by Ralf Wildenhues.
-
-2008-03-26 Jim Meyering <meyering@redhat.com>
-
- Fix texinfo syntax error.
- * doc/autoconf.texi (Limitations of Usual Tools): s/@kbd {/@kbd{/
-
-2008-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Warn, not fail on whitespace-only precious variable differences.
- * lib/autoconf/general.m4 (_AC_ARG_VAR_VALIDATE): Output
- precious variable differences less ambiguous with `ugly-quotes'.
- If their settings differ only in whitespace, do not fail, but
- reuse the old value.
- * tests/torture.at (AT_CHECK_AC_ARG_VAR): Extend macro to allow
- an optional status and expected-warning argument. Fix m4
- quotation for initial value.
- (AC_ARG_VAR): Also test for whitespace-only differences, and
- that the old value is retained in this case.
- * doc/autoconf.texi (Setting Output Variables): Document this.
- * NEWS: Update.
- Report and initial patch by Paolo Bonzini.
-
-2008-03-26 Eric Blake <ebb9@byu.net>
-
- Document busybox sed bug.
- * doc/autoconf.texi (Limitations of Usual Tools) <sed>: Mention
- restrictions when using back-references.
- Reported by Vincent Lefevre:
- <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13013>.
-
- Document Automake interaction with AC_CONFIG_MACRO_DIR.
- * doc/autoconf.texi (Input): Mention ACLOCAL_AMFLAGS for automake
- users.
- * THANKS: Update.
- Reported by Chris Pickett.
-
-2008-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/autotest.at (Using atlocal): Quote instances of `pwd`.
-
- * tests/local.at (AT_CHECK_M4): Factorize warning output
- normalization.
- Suggested by Eric Blake.
-
-2008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix .exe-related test failure on MinGW.
- * tests/local.at (AT_CHECK_M4): Normalize `/bin/m4.exe' correctly
- for comparing warning output.
-
- Fix Fortran testsuite failures with gfortran 4.3.
- * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): When scanning
- verbose compiler output, skip lines that set variables; gfortran
- 4.3 sets LIBRARY_PATH, COMPILER_PATH, COLLECT_GCC_OPTIONS.
- * THANKS: Update.
- Report by Vincent Lefèvre.
-
-2008-03-21 Eric Blake <ebb9@byu.net>
-
- * GNUmakefile: Resynchronize with gnulib.
-
- Document more uses of $cross_compiling.
- * doc/autoconf.texi (Runtime): Document that a temporary override
- is permissible.
- * THANKS: Update.
- Reported by Ineiev, example by Ralf Wildenhues.
-
- Don't swallow $1 in textual local variables.
- * lib/m4sugar/m4sugar.m4 (m4_combine): Don't use overquoting and
- expansion of text arguments, as that swallows $1.
- (m4_text_wrap): Likewise, by splitting out...
- (_m4_text_wrap): ...new helper macro. Also, allow arbitrary
- expression for width.
- * tests/m4sugar.at (m4@&t@_text_wrap): Test this.
- (m4@&t@_combine): Likewise.
-
-2008-03-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Avoid leftover files on Leopard.
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT): Remove a.out.dSYM
- directory created on darwin.
- (AC_NO_EXECUTABLES): Likewise; also remove objects which may be
- left over from a broken link.
- * tests/c.at (AC_NO_EXECUTABLES (working linker))
- (AC_NO_EXECUTABLES (broken linker)): New tests.
- Report by Gary V. Vaughan.
-
- * lib/autom4te.in (Automake-preselections): Trace
- _AM_COND_IF, _AM_COND_ELSE, _AM_COND_ENDIF.
-
-2008-03-20 Eric Blake <ebb9@byu.net>
-
- Kill more CVS references.
- * README-cvs: Delete. See README-hacking instead.
- * README-hacking: Update wording, based on older file.
- * BUGS: Remove CVS mention.
-
-2008-03-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/tools.at (autotools and whitespace in file names): Skip
- if aclocal is not present.
-
-2008-03-20 Eric Blake <ebb9@byu.net>
-
- Sync GNUmakefile with gnulib.
- * GNUmakefile (Makefile.cfg): Rename...
- (cfg.mk): ...to this, and make optional.
- (GNUmakefile.cfg): Delete, redundant with cfg.mk.
- (Makefile.maint): Rename...
- (maint.mk): ...to this.
- (all) [!_have-Makefile]: Rename...
- (abort-due-to-no-makefile): ...to this, and invoke via
- .DEFAULT_GOAL to pick up all targets.
- * Makefile.cfg: Rename...
- * cfg.mk: ...to this.
- * Makefile.maint: Rename...
- * maint.mk ...to this.
- (ME): Reflect name change.
- (makefile-check, m4-check, author_mark_check, msg): Use $(ME)
- rather than hard-coded name.
- * GNUmakefile.cfg: Delete; move rules into cfg.mk.
- * Makefile.am (EXTRA_DIST): Reflect file name changes.
- * .x-sc_prohibit_atoi_atof: Likewise.
- * lib/freeze.mk: Likewise.
-
-2008-03-19 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Introduction): Improve the paraphrase of
- Henry Spencer's quotation.
-
-2008-03-19 Eric Blake <ebb9@byu.net>
-
- AC_CONFIG_HEADERS replaced AC_CONFIG_HEADER.
- * bin/autoscan.in (output): Avoid obsolete spelling.
- * tests/local.at (AC_STATE_SAVE): Update usage.
- * THANKS: Update.
- Reported by John Calcote.
-
- Emphasize that ease of configure triumphs over ease of autoconf.
- * doc/autoconf.texi (Introduction): Expand on primary
- vs. secondary goal of autoconf.
- * THANKS: Update.
- Inspired by Paul Smith.
-
-2008-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/Autom4te/FileUtils.pm (handle_exec_errors): New argument
- $hint, show if the executing program does not exist.
- (xsystem_hint): New function, like xsystem but allows to pass
- a hint.
- * bin/autoreconf.in: Use xsystem_hint for spawning autopoint and
- libtoolize.
- Report by Bruce Korb.
-
-2008-03-14 Stepan Kasal <kasal@ucw.cz>
-
- * lib/Autom4te/ChannelDefs.pm, tests/fortran.at,
- tests/mktests.sh, tests/wrapper.as: Fix typos.
-
-2008-03-12 Eric Blake <ebb9@byu.net>
-
- Fix yesterday's regression in m4_wrap([$1]).
- * lib/m4sugar/m4sugar.m4 (_m4_wrap): Don't directly invoke wrapped
- text, since it may contain text that looks like parameters.
- * tests/m4sh.at (AS@&t@_INIT cleanup): Enhance test.
-
-2008-03-11 Eric Blake <ebb9@byu.net>
-
- Improve error messages for common testsuite bugs.
- * lib/autotest/general.m4 (_AT_DEFINE_INIT, _AT_DEFINE_SETUP): New
- macros for defining order-enforced macros.
- (AT_INIT, AT_SETUP, AT_CLEANUP, AT_BANNER, AT_XFAIL_IF)
- (AT_CAPTURE_FILE, AT_DATA, AT_CHECK, AT_CHECK_NOESCAPE): Add error
- messages when order violations are detected.
- * tests/autotest.at (AT_CHECK_AT_SYNTAX): New helper macro.
- (AT_SETUP without AT_INIT, AT_BANNER without AT_INIT)
- (AT_CLEANUP without AT_INIT, Missing AT_CLEANUP)
- (AT_CHECK without AT_SETUP, AT_DATA without AT_SETUP)
- (AT_XFAIL_IF without AT_DATA, AT_KEYWORDS without AT_SETUP,
- (AT_CLEANUP without AT_SETUP, AT_BANNER inside AT_SETUP)
- (AT_SETUP inside AT_SETUP, Multiple AT_INIT)
- (Banner-only test suite): New tests.
- Reported by Christopher Hulbert.
-
- Tweak m4_wrap to force FIFO or LIFO semantics.
- * lib/m4sugar/m4sugar.m4 (m4_wrap): Override M4 implementation.
- (m4_wrap_lifo, _m4_wrap): New macros.
- * lib/m4sugar/m4sh.m4 (AS_INIT): Combine all cleanup into known
- order, prior to m4sugar's.
- (_AS_DETECT_BETTER_SHELL): Use cleanup parameter, rather than
- m4_wrap.
- * lib/autotest/general.m4 (AT_INIT): Combine all cleanup into
- known order, prior to m4sh's.
- * doc/autoconf.texi (Diagnostic Macros) <m4_fatal>: Document
- argument.
- (Redefined M4 Macros) <m4_wrap>: Rewrite documentation to match
- new behavior.
- * tests/m4sh.at (AS_INIT cleanup): New test.
- * NEWS: Document the change.
-
-2008-03-10 Eric Blake <ebb9@byu.net>
-
- Encode nested autotest data.
- * tests/autotest.at (AT_CHECK_AT_PREP): Avoid raw AT_ in output.
- (unusual file names): Likewise.
- (m4_pattern_allow): Remove loophole, to make it easier to catch
- poorly written tests.
-
- Factor some autotest tests.
- * tests/autotest.at (AT_CHECK_AT_PREP): New macro, to factor out
- common initialization.
- (AT_CHECK_AT, Banners, Keywords and ranges, srcdir propagation)
- (whitespace in absolute testdir, unusual file names): Use it.
-
-2008-03-06 Eric Blake <ebb9@byu.net>
-
- Minor documentation fix.
- * doc/autoconf.texi (Evaluation Macros): Fix typo.
-
-2008-03-04 Eric Blake <ebb9@byu.net>
-
- Make AT_CHECK act like a simple command.
- * lib/autotest/general.m4 (_AT_CHECK): Wrap commands in {;}.
- * tests/torture.at (AT_CHECK_CONFIG_CREATION_NOWRITE): Test it.
-
-2008-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- On MinGW, substitution of CR and 0xFF fails.
- * tests/torture.at (Substitute and define special characters):
- MinGW awk cannot handle 0xFF, and on MinGW, the test does the
- wrong thing for CR.
-
-2008-03-04 Eric Blake <ebb9@byu.net>
-
- Pull in recent maintainer improvements from coreutils.
- * GNUmakefile (_is-dist-target): 'make distclean' should not
- trigger autoreconf.
- (_dummy): Change directories before removing autom4te.cache.
- (check dist distcheck install) [!_have-Makefile]: Provide nicer
- diagnostics.
- * configure.ac (AC_CONFIG_LINKS): Copy GNUmakefile into VPATH
- builds, after initial bootstrap.
- * Makefile.am (distclean-local): Work around current automake bug.
- * Makefile.maint (ME): Allow VPATH usage.
-
- Use git-merge-changelog when available.
- * .gitattributes: New file.
- * README-hacking: Document use of git-merge-changelog.
-
- Work around cygwin bug.
- * tests/atlocal.in (unsupported_fs_chars): Avoid cygwin bug where
- "touch 't\'" creates regular file 't'.
-
- Ignore tests that require read-only directories under root.
- * tests/torture.at (AT_CHECK_CONFIG_CREATION_NOWRITE): Skip
- no-write portion if user has root-like privileges.
-
-2008-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autotest/general.m4 (AT_INIT): Fix detection of '-C -'.
-
-2008-03-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- autoreconf -m now honors $MAKE.
- * bin/autoreconf.in ($run_make): Renamed from ...
- ($make): ... this. Use now as command to run `make',
- overridden by $MAKE. Document this in --help output.
- * doc/autoconf.texi (autoreconf Invocation): Document
- all environment variables honored by autoreconf.
- * NEWS: Update.
- Report by Paul Eggert.
-
-2008-03-03 Eric Blake <ebb9@byu.net>
-
- Documentation improvements.
- * doc/autoconf.texi (Looping constructs): s/recurses/repeats/.
- (Evaluation Macros): Drop `1' suffix from metasyntax variable name
- that preceeds @dots. Improve wording.
- (Text processing Macros): Drop `1' suffix from metasyntax variable
- name that preceeds @dots.
- (Number processing Macros): Drop `1' suffix from metasyntax
- variable name that preceeds @dots. Improve wording.
- * lib/m4sugar/m4sugar.m4 (m4_cmp): Comment wording fix.
- Suggested by Ralf Wildenhues.
-
-2008-03-02 Jim Meyering <meyering@redhat.com>
-
- Don't infloop upon "make dist".
- * GNUmakefile: Merge from coreutils.
- * Makefile.am (dist-hook): Inject .tarball-version into tarball,
- not .version.
- * configure.ac (AC_INIT): Use .tarball-version, not .version.
- * build-aux/git-version-gen: Update from gnulib.
-
-2008-03-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
- Before using /dev/full, check that it is a writable character
- special device.
- Report by Benoit Sigoure and Eric Blake.
-
- Actually test that @configure_input@ is expanded correctly.
- * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
- Actually check generated file contents for the name of the
- generated file, using AC_PROG_FGREP and $FGREP.
-
-2008-03-01 Benoit Sigoure <tsuna@lrde.epita.fr>
-
- Be nice with file systems that don't handle unusual characters.
- * tests/atlocal.in (func_sanitize_file_name)
- (func_sanitize_dir_name): New shell functions.
- * tests/tools.at (autom4te and whitespace in file names)
- (autotools and whitespace in file names): Use them.
- * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
- Cover more potentially problemtic file names. Use the new
- functions.
-
- Properly handle funny file names for headers in config.status.
- The test suite did not cover this bug because the code was not
- quoting properly the arguments of `rm -f' (which "fails" silently)
- as well as the arguments of `diff' (whose output was redirected to
- /dev/null so we couldn't see its error message).
- * lib/autoconf/status.m4 (_AC_OUTPUT_HEADER): Properly quote the
- file names passed to `rm' and `diff'.
- * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
- Add a regression test.
-
-2008-03-01 Benoit Sigoure <tsuna@lrde.epita.fr>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Properly expand @configure_input@ in config.status.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILE, _AC_OUTPUT_MAIN_LOOP):
- Escape the backslashes and ampersands in $configure_input before
- using it in the sed replacement string to expand @configure_input@.
- Report by Eric Blake and Patrick Welche.
-
-2008-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Ignore errors from ./run on w32.
- * tests/autotest.at (whitespace in absolute testdir):
- Ignore stderr for `./run' which fails to remove the
- busy test directory on w32.
-
-2008-02-22 Eric Blake <ebb9@byu.net>
-
- Improve documentation for writing autotest suites.
- * doc/autoconf.texi (Writing Testsuites) <AT_CHECK>: Mention that
- checks must live inside a test group.
- Reported by Christopher Hulbert.
-
-2008-02-21 Eric Blake <ebb9@byu.net>
-
- Sync git-version-gen from upstream.
- * build-aux/git-version-gen: Pull from gnulib.
- * configure.ac (AC_INIT): Adjust to new calling convention.
-
-2008-02-12 Eric Blake <ebb9@byu.net>
-
- Avoid trailing space in config.h with AC_DEFINE([var], []).
- * lib/autoconf/general.m4 (_AC_DEFINE_Q): Explicitly mark empty
- defines with a comment.
-
-2008-02-08 Eric Blake <ebb9@byu.net>
-
- Fix texinfo typos in previous patch.
- * doc/autoconf.texi (Site Defaults): s/[{}]/@&/g.
- Reported by Ralf Wildenhues.
-
- Describe a config.site that can be used for FHS compliance.
- * doc/autoconf.texi (Site Defaults): Fix typo. Add new example
- for FHS.
- * THANKS: Update.
- Reported by Jules Colding and Ralf Wildenhues.
-
-2008-02-02 Eric Blake <ebb9@byu.net>
-
- * doc/autoconf.texi (Limitations of Usual Tools) <grep>: Fix typo.
-
-2008-02-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autotest/general.m4 (AT_INIT): Fix --clean to work
- again, broken since introduction of `-C dir'.
- * tests/autotest.at (Choosing where testsuite is run): Test it.
-
-2008-01-30 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi: Update Back-Cover text to reflect new GNU wording.
-
-2008-01-29 Eric Blake <ebb9@byu.net>
-
- Fix more autotest regressions.
- * lib/autotest/general.m4 (AT_LINE): Fix regression from
- 2007-10-04 when file name is `dnl'.
- (AT_INIT) <PREPARE_TESTS>: Move command-line assignments...
- <TESTS_BEGIN>: ...to this new diversion, to fix regression from
- yesterday in libtool's testsuite.
- (_AT_ARG_OPTION): Detect write failure.
- * doc/autoconf.texi (Diversion support): Document PREPARE_TESTS to
- make libtool's use kosher. Document m4_init.
- (Programming in M4sh): Document AS_INIT.
- (Writing Testsuites): Document limitation of AT_DATA file name.
- * tests/autotest.at (unusual file names): New test.
- (Banners, Keywords and ranges): Use correct shell.
-
- More corner cases in testsuite VAR=VALUE handling.
- * lib/autotest/general.m4 (AT_INIT) <PREPARE_TESTS): Fix quoting
- bug.
- <PARSE_ARGS_END>: Also detect leading digits in assignments.
- * tests/autotest.at (Using atlocal): Enhance test to catch last
- bug.
-
- * doc/autoconf.texi (Limitations of Builtins) <.>: Mention bash
- bug.
-
-2008-01-28 Eric Blake <ebb9@byu.net>
-
- Fix regression in handling VAR=VALUE arguments to testsuite.
- * lib/autotest/general.m4 (AT_INIT) <PARSE_ARGS_END>: Detect
- leading = as invalid. Defer use of command-line variable
- assignments...
- <PREPARE_TESTS>: ...here, after atconfig has been sourced. Fix
- regression in sourcing files.
- * tests/autotest.at (Using atlocal): New test to catch this.
- (Debugging a successful test, Choosing where testsuite is run):
- Use correct shell.
- Reported by Ralf Wildenhues.
-
- Document grep peculiarity.
- * doc/autoconf.texi (Limitations of Usual Tools) <grep>: Document
- BSD behavior on binary input.
-
- Minor testsuite improvements.
- * lib/autotest/general.m4 (AT_INIT) <PREPARE_TESTS>: Use fewer
- forks when sanitizing PATH. Always output machine information,
- not just when atconfig was located.
-
- Add 'testsuite -C dir'.
- * lib/autotest/general.m4 (_AT_ARG_OPTION): Move missing argument
- detection...
- (AT_INIT) <PARSE_ARGS_END>: ...here, since -k always takes
- argument.
- <DEFAULTS>: Delay computation of variables based on $at_dir...
- <PREPARE_TESTS>: ...to here, since -C can change $at_dir.
- <TESTS>: Re-invoke via absolute name, since -C may be in effect.
- <PARSE_ARGS>: Parse new option.
- <HELP_TUNING>: Document it.
- * tests/autotest.at (Choosing where testsuite is run): New test
- for this feature.
- (Keywords and ranges): Add test for missing -k argument.
- * NEWS: Document this.
- * doc/autoconf.texi (testsuite Invocation): Likewise.
-
-2008-01-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * build-aux/config.guess, build-aux/config.sub,
- build-aux/texinfo.tex: Sync from gnulib.
- * doc/fdl.texi, doc/make-stds.texi, doc/standards.texi:
- Likewise.
-
-2008-01-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Particular Programs): Do not mention the
- Autoconf version in which the AC_PROG_INSTALL change was done.
- Suggested by Paul Eggert.
-
-2008-01-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix --help=recursive with multiple AC_CONFIG_SUBDIRS.
- * lib/autoconf/general.m4 (_AC_INIT_HELP): If, for recursive help
- mode, we change to the source directory, also set $ac_pwd so we
- do not go back to the build tree for the next config subdir.
- * tests/torture.at (Deep Package): Extend test to contain two
- config subdirs on the top level.
-
- Fix parallel `maintainer-check'.
- * Makefile.am (maintainer-check-tests): Depend on `all'.
- Use `$(MAKE) $(AM_MAKEFLAGS)' instead of plain `make'.
- * tests/Makefile.am (maintainer-check-c++, maintainer-check-posix):
- Likewise.
- (maintainer-check): Serialize the testsuite runs.
-
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ENABLE2): Accept `+'
- in feature string for --enable/--with. Convert to underscore
- for variable name.
-
- * lib/autoconf/programs.m4 (AC_PROG_INSTALL): Require that
- `install -c file1 file2 dir' works.
- * doc/autoconf.texi (Particular Programs): Document this.
- * NEWS: Update.
-
-2008-01-21 Eric Blake <ebb9@byu.net>
-
- Improve documentation about default include directives.
- * doc/autoconf.texi (Generic Headers, Generic Declarations)
- (Generic Structures, Generic Types)
- (Generic Compiler Characteristics): Add links to
- AC_INCLUDES_DEFAULT.
- Reported by Reuben Thomas.
-
-2008-01-15 Eric Blake <ebb9@byu.net>
-
- * lib/m4sugar/m4sugar.m4 (m4_qlen): Use fewer macros.
-
-2008-01-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/Makefile.am (noinst_SCRIPTS): Renamed from
- check_SCRIPTS. Building the wrappers for `all' allows help2man
- to use them for the manpages.
- Report by Benoit Sigoure.
-
- * bin/autoreconf.in: Discard stderr for $autoconf/$aclocal --help.
-
-2007-12-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix some write failure cases in Autotest.
- * lib/autotest/general.m4 (AT_INIT): Do not exit successfully
- upon write failures for --help, --version, --list.
- Guard against write failures for intermediate created scripts.
- <at_func_create_debugging_script>: Do not make the debugging
- script executable if it is not complete.
-
-2007-12-12 Eric Blake <ebb9@byu.net>
-
- Fix thinko in earlier patch - m4_join isn't defined yet.
- * lib/m4sugar/m4sugar.m4 (m4_expansion_stack_push, _m4_defun_pro)
- (_m4_defun_pro_outer, _m4_defun_epi, _m4_defun_epi_outer)
- (m4_require): Use m4_do, not m4_join.
-
- Fix some whitespace tests on cygwin.
- * tests/tools.at (autom4te and whitespace in file names): Restore
- font-lock. Create $TMPDIR before it might be used.
-
- Fix spurious testsuite failure with M4 1.4.11.
- * tests/local.at (AT_CHECK_M4): Cater to new m4 error message.
-
- Optimize AC_REQUIRE.
- * lib/m4sugar/m4sugar.m4 (m4_expansion_stack_push, _m4_defun_pro)
- (_m4_defun_pro_outer, _m4_defun_epi, _m4_defun_epi_outer)
- (m4_require): Avoid extra macro calls.
-
-2007-12-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/torture.at (srcdir): Fix quoting.
-
- Do not pass top_srcdir to configure scripts in testsuite.
- * tests/autotest.at (srcdir propagation): Copy install-sh to
- source tree.
- (my only test): Drop setting of `top_srcdir'.
- * tests/base.at (Input/Output): Likewise.
- * tests/local.at (AT_CONFIGURE_AC): Copy install-sh,
- config.guess, and config.sub to test source tree.
- Drop AC_CONFIG_AUX_DIR setting.
- (AT_CHECK_CONFIGURE): Drop setting of `top_srcdir'.
- * tests/torture.at (Substitute a 2000-byte string): Drop
- AC_CONFIG_AUX_DIR setting, copy install-sh to test source tree.
- (Substitute a newline, datarootdir workaround): Likewise.
- (Define a newline): Adjust for linenumber changes in configure.ac.
- * tests/foreign.at (Libtool): Adjust comment to reflect changes.
-
- * tests/semantics.at (AC_PATH_PROGS_FEATURE_CHECK): Skip test
- if `pwd` contains whitespace.
-
- Quote $abs_top_srcdir in tests.
- * tests/local.at (AT_CHECK_PERL_SYNTAX): Likewise.
- * tests/tools.at (Syntax of the shell scripts): Likewise.
-
- * tests/m4sh.at (LINENO): Quote $0.
-
- Fix testsuite program wrapper for whitespace in `pwd`.
- The problem here is that the usual mantra is that command
- variables can contain arguments, thus we cannot just escape
- $AUTOCONF, $AUTOM4TE etc. The compromise is to put the
- $top_builddir/tests directory early in $PATH, so that the
- wrappers are found by their plain name.
- * tests/wrapper.as: Put $testdir early in $PATH.
- (AUTOCONF, AUTOHEADER, AUTOM4TE): Set to plain command names.
-
- Proper config.status --file/--header and $srcdir escaping.
- * lib/autoconf/status.m4 (_AC_OUTPUT_MAIN_LOOP): Quote special
- characters in $ac_file_inputs.
- (_AC_OUTPUT_FILE, _AC_OUTPUT_HEADER): eval $ac_file_inputs
- accordingly.
- * tests/torture.at (datarootdir workaround): Adjust.
- (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS): Extend test.
-
- Fix Autotest for whitespace in `pwd`.
- * lib/autotest/general.m4 (AT_INIT)
- <at_func_create_debugging_script, Driver Loop>:
- Quote $at_group_dir.
- * tests/autotest.at (whitespace in absolute testdir): New test.
-
- * lib/autom4te.in: Quote @datadir@.
-
- Proper file name escaping in Autoconf programs and Perl modules.
- This includes escaping of characters special to the shell
- as well as special to Perl, e.g., leading `<' or `>'.
- For example, when $file starts with `>', `open ">$file"'
- wrongly tries to append to a different file.
- * bin/autoconf.as: Fix quoting for autom4te options.
- * lib/Autom4te/General.pm (shell_quote): New function, taken
- from coreutils, written by Jim Meyering.
- (mktmpdir): Use it.
- * bin/autom4te.in (files_to_options, handle_m4): Use shell_quote
- and open_quote.
- * bin/autoreconf.in (parse_args): Likewise.
- * bin/autoscan.in (main): Likewise.
- * bin/autoupdate.in (main): Likewise.
- * bin/autoheader.in: Likewise, fixing old insufficient escaping.
- * bin/ifnames.in: Likewise, XFile usage fixes.
- * tests/tools.at (autom4te and whitespace in file names): Extend
- test. Test twice, with special characters allowed on w32, and the
- rest. Test leading and trailing whitespace, for `open_quote'.
- (autotools and whitespace in file names): New, analogous test.
- Reported by Paul Eggert and Benoit Sigoure, additional suggestions
- by Russ Allbery and Eric Blake.
-
- Sync from Automake.
- * lib/Autom4te/Channels.pm, lib/Autom4te/Configure_ac.pm,
- lib/Autom4te/Struct.pm, lib/Autom4te/XFile.pm: Likewise.
- * lib/Autom4te/FileUtils.pm (open_quote): New function.
- (update_file, contents): Use it.
-
- * Makefile.am (autom4te-update): Rewrite for git.
-
-2007-12-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (autom4te Invocation, Autom4te Cache): Fix typos.
-
- Fix copyright years.
- * Makefile.am, doc/install.texi, lib/autoconf/fortran.m4,
- lib/autoconf/lang.m4, lib/freeze.mk: Likewise.
-
-2007-12-04 Eric Blake <ebb9@byu.net>
-
- Manually resync with gnulib, since 'make cvs-update' no longer works.
- * build-aux/config.guess: New upstream version.
- * build-aux/config.sub: Likewise.
-
- When using older automake, don't downgrade build-aux/texinfo.tex.
- * configure.ac (AM_INIT_AUTOMAKE): Add no-texinfo.tex option.
- * doc/Makefile.am (TEXINFO_TEX): Add.
-
-2007-11-27 Paul Eggert <eggert@cs.ucla.edu>
-
- Fix AC_C_BIGENDIAN bug caused by new awk method of substitution.
- * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Don't comment out the
- #undef as this runs afoul of our new way of creating config.h.
- Problem reported by Jim Meyering in
- <http://lists.gnu.org/archive/html/autoconf-patches/2007-11/msg00164.html>.
-
-2007-11-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix autom4te for unusual characters in input file names.
- * bin/autom4te.in (files_to_options): Quote active characters
- for the shell.
- * tests/tools.at (autom4te and white space in file names):
- New test.
-
- * doc/autoconf.texi (Limitations of Usual Tools) <awk>:
- Document that Tru64 awk always splits $0.
-
-2007-11-24 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autotest/general.m4 (AT_INIT): Do not extract the
- `#AT_STOP_...' line at the end of each test.
-
-2007-11-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autotest/general.m4 (AT_INIT): For awk line number
- extraction script, ensure `$at_group' has a defined value
- even for the empty set, and properly quote its usage inside
- the awk script.
-
-2007-11-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Shell Functions): New chapter. Document
- IRIX sh $0 issue in functions, move content from ...
- (Portable Shell): ... here.
- (Shell Script Compiler): Note that shell functions are not
- totally unportable any more.
-
-2007-11-22 Stepan Kasal <kasal@ucw.cz>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autotest/general.m4 (AT_INIT): Exit awk script after
- extracting the line numbers of the last needed test.
-
-2007-11-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autotest/general.m4 (AT_INIT) <at_func_create_debugging_script>:
- Fix quoting.
-
-2007-11-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix IRIX testsuite debugging failures: $0 in functions.
- * lib/autotest/general.m4 (AT_INIT) <at_func_create_debugging_script>:
- Do not use $0 inside a function, as IRIX sh will set that to the
- function name rather than the script invocation name.
-
-2007-11-19 Paolo Bonzini <bonzini@gnu.org>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autotest/general.m4 (at_func_test): Use cached line numbers
- to extract test scripts.
- (AT_INIT): Extract and cache test script line numbers.
-
-2007-11-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autotest/general.m4: Revert 2007-11-15 patch and
- subsequent fixups; the awk -> here-document conversion trashes
- performance too much with AIX sh.
-
-2007-11-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/local.at: Do not test m4, perl with AT_TESTED.
-
- Diagnose and guard against write errors dealing with config.status.
- The general idea is this: all write failures from `configure'
- writing `config.status' are indicated by $ac_write_error, which
- is only checked at the end. This is safe because config.status
- code is not executed before the file is complete. Other write
- failures, be they inside config.status, or in sub shell/awk
- scripts spawned from configure or config.status, typically need
- earlier checking, as their results are used right afterwards.
- * lib/autoconf/status.m4 (AC_OUTPUT): Initialize `ac_write_fail'
- before writing config.status, check afterwards.
- (_AC_OUTPUT_FILES_PREPARE, _AC_OUTPUT_FILE)
- (_AC_OUTPUT_HEADERS_PREPARE,_AC_OUTPUT_CONFIG_STATUS):
- Set `ac_write_error' for write failures to config.status. Barf
- upon write failures to temporary files.
- Adjust note about closing and reopening the here-document.
- (_AC_OUTPUT_HEADER, _AC_OUTPUT_LINK, _AC_OUTPUT_COMMAND)
- (_AC_OUTPUT_MAIN_LOOP): Likewise, adjust note about closing and
- reopening the here-document.
- * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
- Ensure `ac_write_error' does not escape into config.status.
- Also, add a couple of code paths not yet exercised in the test
- suite: a config file with input from stdin, and a config header
- output to stdout.
- Suggestion for catching write errors by Bruno Haible.
-
-2007-11-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Avoid error with Tru64 awk and testsuite lines with many words.
- * lib/autotest/general.m4 (AT_INIT): In the awk script that
- reads the testsuite, set the field separator to an unusual value,
- in order to not run over the limit of 199 fields. Tru64 4.0D awk
- even splits the input if $i, i>0, was never accessed in the script.
-
- Revert 2007-10-17 change.
- * TODO: Multiline args in config files and headers mean something
- different and are not fixed, see
- <http://lists.gnu.org/archive/html/autoconf-patches/2007-05/msg00017.html>
- Report by Stepan Kasal.
-
- * doc/autoconf.texi (Generic Programs): Fix typo.
-
-2007-11-16 Stepan Kasal <kasal@ucw.cz>
-
- AC_*_TOOL does not canonicalize the prefix
- * doc/autoconf.texi (Generic Programs): Do not say that
- the *_TOOL macros canonicalize, they simply use the `host_alias'.
-
-2007-11-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Diagnose write errors in config.status instantiations.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILE)
- (_AC_OUTPUT_HEADER, _AC_OUTPUT_MAIN_LOOP): Bail out
- on write errors.
- * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
- Extend test to also check for some write error failures, using...
- <AT_CHECK_CONFIG_CREATION_NOWRITE>: ...this new macro.
- Report by Bruno Haible.
-
- Indentation fixups.
- * lib/autotest/general.m4 (AT_INIT) <at_func_log_failure>: Fix
- indentation.
- (_AT_CHECK): Use less indentation, to save space.
-
-2007-11-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Add witness macro for @top_build_prefix@ substitution.
- * lib/autoconf/status.m4 (_AC_HAVE_TOP_BUILD_PREFIX): New macro.
- (_AC_OUTPUT_FILE): Mention it here.
-
-2007-11-15 Paolo Bonzini <bonzini@gnu.org>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autotest/general.m4 (at_func_test): Remove.
- (AT_INIT): Pre-extract test groups into separate files.
- (AT_CLEANUP): Source pre-extracted file instead of calling at_func_test.
- Remove at-test-source files together with the $at_group_dir.
- * tests/autotest.at (Long test source lines): New test.
-
-2007-11-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Shell functions and variables may share a namespace.
- * doc/autoconf.texi (Portable Shell): Mention Solaris sh
- limitation.
-
-2007-11-14 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/types.m4 (_AC_TYPE_LONG_LONG_SNIPPET): Make comment match
- gnulib.
-
-2007-11-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4: Fix a couple of comment typos.
-
- * lib/m4sugar/m4sh.m4 (AS_TMPDIR): Use $as_me, not $me.
-
-2007-11-13 Jim Meyering <meyering@redhat.com>
-
- Clean up the rule to create "expr".
- * tests/Makefile.am (expr): Don't redirect directly to target.
- Redirect just once, not for each echo statement.
- Use $@, not literal "expr".
-
-2007-11-13 Paul Eggert <eggert@cs.ucla.edu>
-
- Don't worry about preprocessor when testing long long.
- See: http://lists.gnu.org/archive/html/bug-gnulib/2007-11/msg00075.html
- * doc/autoconf.texi (Preprocessor Arithmetic): New section.
- (AC_TYPE_LONG_LONG_INT, AC_TYPE_UNSIGNED_LONG_LONG_INT):
- These no longer check for preprocessor flaws.
- * lib/autoconf/types.m4 (_AC_TYPE_LONG_LONG_SNIPPET):
- Do not check for preprocessor flaws.
-
-2007-11-13 Jim Meyering <meyering@redhat.com>
-
- Adapt dependencies, now that a version change doesn't modify configure.ac
- * GNUmakefile: Remove "make clean" kludge.
- * lib/m4sugar/Makefile.am (version.m4): Depend on Makefile, not
- configure.ac.
- Don't redirect directly to target.
- Use $@, not literal "version.m4".
-
-2007-11-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Making testsuite Scripts): Document
- ":;{" shorthand as in previous patch.
-
-2007-11-12 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Builtins): Document problem
- with { ... } a bit more clearly. Suggest ":;{" as a shorthand
- for the workaround.
- * lib/m4sugar/Makefile.am (version.m4): Detect 'echo' failure.
- Use ":;{" shorthand.
- * tests/Makefile.am ($(srcdir)/package.m4): Likewise.
-
-2007-11-12 Jim Meyering <meyering@redhat.com>
-
- Add more non-srcdir build support.
- * GNUmakefile (dummy): Split a long line.
- Add -v option to autoreconf invocation.
-
- Remove the autoreconf-provided INSTALL, so that we regenerate it.
- * GNUmakefile (dummy): Remove INSTALL.
-
- Remove racy commands to build scripts in bin/ and tests/.
- * man/Makefile.am (.x.1): Now that scripts in bin/ and tests/
- are guaranteed to be built, remove the rules that tried to build
- them. Before, with a parallel build, these rules could lead to
- two processes writing tests/wrapper.in concurrently.
-
- Build in man/ only *after* building in bin/ and tests/.
- * Makefile.am (SUBDIRS): The man-page-creation process runs $(MAKE)
- in both bin/ and tests/.
-
- Accommodate non-srcdir build-from-checkout.
- * build-aux/git-version-gen: Require an additional parameter: $srcdir.
- Use git's --git-dir=$srcdir/.git option.
- Add quotes, in case tarball_version_file contains shell meta-characters.
- * GNUmakefile (_curr-ver): Pass $(srcdir) to git-version-gen.
- * configure.ac: Pass "." to git-version-gen.
-
- Avoid spurious test failures due to version skew.
- * GNUmakefile (dummy): Run $(MAKE) clean after autoreconf -i.
-
-2007-11-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Avoid warnings about conftest.dSYM directories on Mac OS X Leopard.
- * lib/autoconf/general.m4 (_AC_LINK_IFELSE, _AC_RUN_IFELSE):
- Remove conftest.dSYM directory.
- * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT)
- (_AC_LANG_PROGRAM_C_, _AC_FC_MAIN, __AC_FC_NAME_MANGLING):
- Remove `conftest.*' recursively.
- * lib/autoconf/lang.m4 (AC_LINK_IFELSE): Likewise.
- * lib/autoconf/specific.m4 (_AC_SYS_LARGEFILE_MACRO_VALUE):
- Likewise.
- (_AC_COMPILER_OBJEXT_REJECT): Reject *.dSYM.
- * THANKS: Update.
- Report and analysis by Jeff Squyres and Peter O'Gorman.
-
-2007-11-12 Benoit Sigoure <tsuna@lrde.epita.fr>
-
- Fix typos in variable names.
- * tests/semantics.at (test for AC_CHECK_LIB): s/at_m/ac_m/.
-
-2007-11-11 Benoit Sigoure <tsuna@lrde.epita.fr>
-
- Document that $((expression)) is not portable.
- * doc/autoconf.texi (Shell Substitutions): Here.
-
-2007-11-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Ignore configure --help* errors due to LINENO-impaired shells.
- * tests/torture.at (Configuring subdirectories, Deep Package):
- In the --help* tests in read-only trees, make `.' temporarily
- writable again for the `stderr' file, and ignore errors due to
- the attempt to write configure.lineno.
- Report by Patrick Welche.
-
-2007-11-10 Jim Meyering <meyering@redhat.com>
-
- Generate package.m4 in build-dir, not srcdir.
- * tests/Makefile.am (package.m4): Adjust target.
- Don't redirect directly to $@.
- (CLEANFILES): Add package.m4.
- ($(TESTSUITE)): Depend on just-built package.m4, not the one
- in $(srcdir).
- When running $(AUTOTEST), search "." before searching $(srcdir).
-
- Avoid a race condition that would make parallel "distclean" fail.
- * tests/Makefile.am (distclean-generic): Replace the default,
- automake-provided rule with an identical one, but with an additional
- dependency on distclean-local. Simply adding the dependency would
- cause automake not to emit the rule at all.
- * BUGS: Building with -jN works, now.
-
- Distribute git-version-gen.
- * Makefile.am (EXTRA_DIST): Add build-aux/git-version-gen,
- since GNUmakefile is distributed, and requires it for dist* rules.
-
- Remove two more generated files from version control.
- * INSTALL: Remove generated file.
- * lib/autoscan/autoscan.list: Remove generated file.
-
-2007-11-09 Paul Eggert <eggert@cs.ucla.edu>
-
- * GNUmakefile (PATH): Remove stray apostrophes; they become
- part of PATH, which isn't wanted here.
-
-2007-11-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- New config files output variable `top_build_prefix'.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILE): Substitute
- `top_build_prefix'.
- * doc/autoconf.texi (Preset Output Variables): Document it.
- * NEWS: Update.
- Report by Bob Friesenhahn.
-
- Avoid expr for arithmetic evaluation if the shell accepts $((...)).
- * lib/autotest/general.m4 (AT_INIT) <at_func_arith>: New
- function, to parametrize arithmetic with expr vs. the shell.
- Use it where possible.
- Suggestion by Benoit Sigoure.
-
-2007-11-03 Benoit Sigoure <tsuna@lrde.epita.fr>
-
- Adjust the documentation of autotest WRT atlocal.
- * doc/autoconf.texi (Making testsuite Scripts): It is not necessary,
- when using Automake, to write a rule to produce atlocal, since it's
- an AC_CONFIG_FILES. Mention that atlocal.in needs to be
- distributed, not atconfig.in.
-
-2007-11-04 Eric Blake <ebb9@byu.net>
-
- Update list information.
- * README: Mention new autoconf-commit list.
- * doc/autoconf.texi (Introduction): Mention autoconf-commit list.
-
-2007-11-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/functions.m4 (_AC_FUNC_MALLOC_IF): Fix comment typo.
-
- * lib/m4sugar/Makefile.am (version.m4): Another bash bug workaround.
-
- * build-aux/.gitignore: Ignore mkinstalldirs.
-
- * doc/autoconf.texi (autoreconf Invocation): Fix an underfull line.
-
-2007-11-03 Jim Meyering <meyering@redhat.com>
-
- s/-/./ in snapshot version string: 2.61a-256-8b556 -> 2.61a.256-8b556
- * build-aux/git-version-gen: This syncs from coreutils.
-
- Adjust the build procedure so "make check" works reliably.
- * README-hacking: Include an extra step between "make" and
- "make check" to ensure that the latter passes.
-
- Use just-built tools, when possible.
- * GNUmakefile (PATH): Set and export here, ...
- (dummy): ... rather than here.
-
-2007-11-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
- and Andreas Schwab <schwab@suse.de>
-
- * tests/Makefile.am ($(srcdir)/package.m4): Work around bash
- exit status bug.
-
-2007-11-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * configure.ac (AC_PREREQ): Require version 2.60, for
- AC_PROG_SED, AC_PROG_GREP.
-
-2007-11-02 Benoit Sigoure <tsuna@lrde.epita.fr>
- and Jim Meyering <meyering@redhat.com>
- and Andreas Schwab <schwab@suse.de>
- and Eric Blake <ebb9@byu.net>
-
- Document a bug in GNU Bash with compound commands and redirections.
- * doc/autoconf.texi (Limitations of Builtins): Mention that GNU
- Bash doesn't properly set $? when `{ ... } >/bad' fails, and give
- workaround.
-
-2007-11-03 Eric Blake <ebb9@byu.net>
-
- Support m4 1.4.5 in testsuite.
- * tests/torture.at (Define a newline): Exclude line numbers in
- error message.
- Reported by Ralf Wildenhues.
-
-2007-11-03 Jim Meyering <meyering@redhat.com>
-
- Remove automake-provided files from version control.
- * build-aux/elisp-comp: Remove file.
- * build-aux/install-sh: Remove file.
- * build-aux/missing: Remove file.
- * build-aux/mdate-sh: Remove file.
- * build-aux/.gitignore: New file.
- Suggestion from Ralf Wildenhues.
-
-2007-11-03 Eric Blake <ebb9@byu.net>
-
- Adjust version comparison to account for git snapshot numbers.
- * lib/m4sugar/m4sugar.m4 (_m4_version_unletter): Also treat - as a
- component separator.
- * doc/autoconf.texi (Number processing Macros)
- <m4_version_compare>: Document this change.
- * tests/m4sugar.at (m4@&t@_version_compare): Test it.
-
-2007-10-30 Bruno Haible <bruno@clisp.org>
-
- * lib/autoconf/types.m4 (_AC_TYPE_LONG_LONG_SNIPPET): New macro,
- extracted from AC_TYPE_LONG_LONG_INT and AC_TYPE_UNSIGNED_LONG_LONG_INT.
- (AC_TYPE_LONG_LONG_INT, AC_TYPE_UNSIGNED_LONG_LONG_INT): Use it.
- Fixes problem with Sun C 5.[0-8] in 32-bit mode, reported in
- <http://lists.gnu.org/archive/html/autoconf-patches/2007-10/msg00210.html>
- Suggested by Paul Eggert.
-
-2007-10-28 Jim Meyering <meyering@redhat.com>
-
- * README-hacking: Autoconf, Automake, and Perl are required to build.
- List Gzip and Tar separately. Suggested by Ralf Wildenhues.
-
-2007-10-28 Jim Meyering <meyering@redhat.com>
-
- README-hacking: Recommend running autoreconf -vi.
- * GNUmakefile (dummy): Use autoreconf -i, with appropriate PATH,
- so that we use just-built tools when they're available.
- Suggestions from Ralf Wildenhues.
-
-2007-10-28 Jim Meyering <meyering@redhat.com>
-
- Make inter-release --version output more useful.
-
- Now, each unofficial build has a version "number" like 2.61a-19-58dd,
- which indicates that it is built using the 19th change set
- (in _some_ repository) following the "v2.61a" tag, and that 58dd
- is a prefix of the commit SHA1.
- * build-aux/git-version-gen: New file.
- * configure.ac: Run it to set the version.
- (AM_INIT_AUTOMAKE): Don't check NEWS here.
- * Makefile.am (dist-hook): Arrange so that .version appears only
- in distribution tarballs, never in a checked-out repository.
- * .gitignore: Add .version here, too. Just in case.
- * tests/Makefile.am ($(srcdir)/package.m4): Depend on Makefile,
- not configure.ac, now that the version number changes automatically.
-
- Ensure that $(VERSION) is up to date for dist-related targets.
- * GNUmakefile: Arrange to rerun autoconf, if the version reported by
- git-version-gen doesn't match $(VERSION), but only for dist targets.
-
-2007-10-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix `Deep Package' failure with a configure script early in PATH
- * tests/torture.at (Deep Package): Add `.' early in PATH.
- Report by Jim Meyering.
-
-2007-10-27 Jim Meyering <meyering@redhat.com>
-
- Remove all generated files from version control.
- * aclocal.m4: Remove.
- * configure: Remove.
- * Makefile.in: Remove, along with all other Makefile.in in subdirs.
- * .gitignore: Add aclocal.m4, configure and Makefile.in. Sort.
- * README-hacking: New file: how to build from just-checked-out sources.
-
-2007-10-23 Eric Blake <ebb9@byu.net>
-
- Improve corner case of m4_expand.
- * lib/m4sugar/m4sugar.m4 (m4_expand, _m4_expand): Rewrite more
- efficiently.
- * tests/m4sh.at (AS@&t@_HELP_STRING): Test overquoted comma.
- * doc/autoconf.texi (Evaluation Macros) <m4_expand>: Update
- documentation.
-
-2007-10-23 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/make-stds.texi: Update from gnulib.
-
-2007-10-22 Paul Eggert <eggert@cs.ucla.edu>
- and Eric Blake <ebb9@byu.net>
-
- * lib/autoconf/c.m4 (AC_C_RESTRICT): Work around Sun C++ compatibility
- problem reported by Bruno Haible in
- <http://lists.gnu.org/archive/html/bug-autoconf/2007-10/msg00027.html>.
-
-2007-10-22 Eric Blake <ebb9@byu.net>
-
- * doc/autoconf.texi (Particular Types): Mention bug in HP-UX 11.00
- preprocessor.
-
-2007-10-22 Paul Eggert <eggert@cs.ucla.edu>
-
- Don't check for bug in HP-UX 11.00 cpp.
- * lib/autoconf/types.m4 (AC_TYPE_UNSIGNED_LONG_LONG_INT):
- Use -1ull rather than -1u, since that causes problems with gnulib; see
- <http://lists.gnu.org/archive/html/bug-gnulib/2007-10/msg00329.html>.
-
-2007-10-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/autotest.at (Backquote command substitution)
- (Multiline backquote command substitution)
- (Parenthetical command substitution)
- (Multiline parenthetical command substitution): Fix typos in
- test names.
-
-2007-10-21 Eric Blake <ebb9@byu.net>
-
- * configure: Regenerate.
-
-2007-10-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix config status generation with Tru64 ksh.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Fix
- escaping of backslash in here-documents.
-
- Fix `Deep Package' test failure on FreeBSD.
- * tests/torture.at (Deep Package): Do not add `.' to $PATH
- unnecessarily. Do not try running `/bin/sh configure' with a
- configure script to be found in $PATH, if the shell does not do
- this resolution. Fixes test failure on FreeBSD.
-
- Fix config header generation with AIX awk.
- * lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS_PREPARE): In awk
- script, use helper array D_is_set, as `" 0"' does not evaluate
- to true for AIX awk.
-
-2007-10-21 Eric Blake <ebb9@byu.net>
-
- * tests/autotest.at (Banners): Reinstate test, with typo
- corrected.
-
-2007-10-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autotest/general.m4 (Defaults): Validate input ranges ...
- <at_func_validate_ranges>: ... using this new function.
- * tests/autotest.at (Keywords and ranges): Test invalid ranges.
- Test --list with ranges and keywords.
- (Banners): Remove one now-failing test.
-
-2007-10-20 Eric Blake <ebb9@byu.net>
-
- Fix testsuite --list subset.
- * lib/autotest/general.m4 (AT_INIT) <at_list_p>: Swap newlines
- back to spaces, before listing subset of tests.
- Reported by Ralf Wildenhues.
-
-2007-10-19 Eric Blake <ebb9@byu.net>
-
- s/parenthesis/parentheses/ where appropriate.
- * doc/autoconf.texi: Fix typos.
- * lib/m4sugar/m4sugar.m4: Likewise.
- Reported by Ralf Wildenhues.
-
- Document m4_expand limitation.
- * lib/m4sugar/m4sugar.m4 (m4_expand): Mention problem with
- unbalanced parse.
- * doc/autoconf.texi (Pretty Help Strings, Evaluation Macros)
- (Writing Testsuites): Mention limitations inherited from
- m4_expand.
-
- Improve AT_BANNER handling.
- * lib/autotest/general.m4 (BANNERS): New named diversion.
- (TESTS_END): Diversion no longer used.
- (AT_INIT) <at_func_banner, BANNERS>: Factor all banners into a
- shell function, which prints only as needed, using an associative
- array of banner text from a special diversion.
- <PARSE_ARGS_END>: No longer need awk to find banners.
- <TESTS>: Banners are no longer processed by main driver loop, so
- we no longer need case statement.
- (AT_BANNER): Rewrite to populate new diversion.
- (AT_SETUP): Each test invokes its own banner. No output is needed
- to the TESTS diversion.
- * doc/autoconf.texi (Writing Testsuites): Document slight
- semantics change.
- * tests/autotest.at (AT_BANNERS): Enhance test.
- * NEWS: Document AT_BANNER.
-
- Document and test AT_BANNER.
- * doc/autoconf.texi (Writing Testsuites): Document AT_BANNER.
- * tests/autotest.at (AT_CHECK_EGREP): Share between tests.
- (AT_CHECK_BANNERS): New test.
-
- Doc touchups.
- * doc/autoconf.texi (Text processing Macros) <m4_strip>
- <m4_text_wrap>: Clarify and fix typos.
-
-2007-10-18 Eric Blake <ebb9@byu.net>
-
- Ignore `make dist' changelogs in testsuite.log.
- * lib/autotest/general.m4 (AT_INIT) <ChangeLogs>: Prune
- directories matching AT_PACKAGE_TARNAME-*.
-
- Fix AT_TESTED, AT_KEYWORDS.
- * lib/m4sugar/m4sugar.m4 (m4_append_uniq): Warn if separator
- occurs in string, as duplicates may be added.
- (_m4_append_uniq): New helper macro.
- (m4_append_uniq_w): New macro.
- * lib/autotest/general.m4 (AT_TESTED, AT_KEYWORDS): Fix
- duplication bug by using new macro.
- (AT_INIT) <at_tested>: Restore newline separators. Invoke tested
- programs with stdin redirected, so programs that don't
- understand --version won't try to behave interactively.
- * tests/autotest.at (Tested programs): Catch this bug.
- * tests/m4sugar.at (m4@&t@_append): Test new macro.
- * tests/local.at (AT_TESTED): Add m4, perl.
- * doc/autoconf.texi (Text processing Macros): Document
- m4_append_uniq_w, and update text on m4_append.
- * NEWS: Document the addition.
-
-2007-10-17 Eric Blake <ebb9@byu.net>
-
- Function cleanup.
- * lib/autotest/general.m4 (_AT_CREATE_DEBUGGING_SCRIPT): Convert
- from m4 macro...
- (AT_INIT) <at_func_create_debugging_script>: ...to shell
- function.
- (AT_INIT): Defer function declarations until after --help,
- --version. Format functions consistently, trying to fit in 80
- columns.
- (TEST_FUNCTIONS): Based on recent changes, rename...
- (TEST_GROUPS): ...to this.
-
- Reject FreeBSD m4.
- * m4/m4.m4 (AC_PROG_GNU_M4): Also check for frozen file support.
- * configure: Regenerate.
- Reported by Bob Friesenhahn.
-
- Test recent additions.
- * tests/m4sugar.at (m4@&t@_map, m4@&t@_combine)
- (m4@&t_max and m4@&t_min): New tests.
- * doc/autoconf.texi (Evaluation Macros) <m4_apply>: Enhance
- description.
-
-2007-10-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * TODO: multiline args in config files and headers work now.
-
- Autotest: do not use shell functions for individual tests.
- * lib/autotest/general.m4 (AT_INIT) <at_func_test>: Merely
- extract the source test source, do not invoke it.
- (AT_SETUP, AT_CLEANUP): Source test code outside shell function.
- * tests/autotest.at (Fallacy): Actually let the inner suite fail,
- expect exit status of 1.
- * tests/autotest.at (Skip): New test, for bogus zsh exit status.
-
- * lib/autotest/general.m4 (at_func_test): Fix test extraction
- script.
-
-2007-10-17 Eric Blake <ebb9@byu.net>
-
- Fix m4_combine for empty suffix list.
- * lib/m4sugar/m4sugar.m4 (m4_combine): Check for suffix list.
- * doc/autoconf.texi (Text processing Macros): Document this.
-
- Add m4_combine, based on Libtool's lt_combine.
- * lib/m4sugar/m4sugar.m4 (m4_combine): New macro.
- * doc/autoconf.texi (Text processing Macros): Document it.
- * NEWS: Likewise.
-
-2007-10-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Fix `configure --help=recursive' in unconfigured/read-only trees.
- * lib/m4sugar/m4sh.m4 (_AS_LN_S_PREPARE): Avoid errors when `.'
- is not writable, use 'cp -p' in this case, in the hope that it
- will not actually be needed. Still try removing files, in case
- of other write errors.
- * lib/autoconf/general.m4 (_AC_INIT_SRCDIR): For ac_confdir,
- use $as_myself, not $0.
- (_AC_INIT_HELP): For --help=recursive, if the subdir does not
- exist, try again in the the source tree. This change assumes
- that the subpackage configure script is capable of running
- --help=recursive in the source tree.
- * tests/torture.at (Configuring subdirectories, Deep Package):
- Adjust tests to expose both issues, also try invocation as
- `sh configure ...' and plain `configure ...' with PATH adjusted.
- * NEWS, THANKS: Update.
- Report by Hans Ulrich Niedermann.
-
-2007-10-16 Paul Eggert <eggert@cs.ucla.edu>
-
- Check for 64-bit int errors in HP-UX 10.20 preprocessor.
- Problem reported by H.Merijn Brand in
- <http://lists.gnu.org/archive/html/bug-tar/2007-10/msg00018.html>.
- * lib/autoconf/types.m4 (AC_TYPE_LONG_LONG_INT):
- (AC_TYPE_UNSIGNED_LONG_LONG_INT):
- Check that preprocessor handles 64-bit ints, too.
-
-2007-10-16 Eric Blake <ebb9@byu.net>
-
- m4_map is a looping construct.
- * lib/m4sugar/m4sugar.m4 (m4_map, _m4_map, m4_map_sep): Move.
-
- Fix m4_map, and add some more utility macros.
- * lib/m4sugar/m4sugar.m4 (m4_apply, m4_count, m4_dquote_elt)
- (m4_echo, m4_make_list): New documented macros.
- (_m4_quote, _m4_shift2): New helper macros.
- (m4_map): Change semantics to allow calling macro without
- arguments.
- (m4_map_sep): Likewise. Also change semantics to quote separator,
- to match m4_join and m4_append.
- (m4_version_unletter): Fix use of m4_map.
- * doc/autoconf.texi (Evaluation Macros): Document m4_apply,
- m4_count, m4_dquote_elt, m4_echo, m4_make_list.
- (Text processing Macros): Mention m4_dquote as a faster
- alternative to joining with commas.
- (Looping constructs): Document m4_map, m4_map_sep.
- * NEWS: Mention new macros.
-
- A few more m4sugar improvements, to benefit libtool.
- * lib/m4sugar/m4sugar.m4 (m4_bpatsubsts, _m4_shiftn): Reduce size
- of expansion by avoiding extra uses of $@.
- (m4_shiftn): Avoid extra dnl, and forbid shifting by 0.
- (_m4_cdr): New helper macro.
- (_m4_map, m4_map_sep): Use it to reduce size of expansion.
- (_m4_shift3): New helper macro.
- (_m4_foreach): Swap argument order, and use new macro to reduce
- size of expansion.
- * doc/autoconf.texi (Looping constructs) <m4_shiftn>: Mention that
- count must be positive.
-
- * doc/autoconf.texi (Evaluation Macros) <m4_expand>: Fix typo.
- Reported by Ralf Wildenhues.
-
-2007-10-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Portable Shell): Improve description of zsh
- 4.x function subshell bug with exit and trap.
-
-2007-10-15 Eric Blake <ebb9@byu.net>
-
- Enhance AS_HELP_STRING.
- * lib/m4sugar/m4sugar.m4 (m4_text_wrap): Don't expand arguments,
- and reduce number of expansions.
- * lib/m4sugar/m4sh.m4 (AS_HELP_STRING): Rework to use m4_expand,
- and to take indent and wrap column numbers.
- * tests/m4sh.at (AS@&t@_HELP_STRING): Update the test.
- * doc/autoconf.texi (Pretty Help Strings): Document details about
- arguments.
- (Text processing Macros): Minor tweaks.
- * NEWS: Document this change.
-
- Fix 2007-10-03 regression with AT_SETUP([a, b]).
- * lib/m4sugar/m4sugar.m4 (m4_expand): New macro.
- (m4_text_box): Use it.
- * lib/autotest/general.m4 (AT_SETUP): Use it.
- * lib/m4sugar/m4sh.m4 (_AS_RUN): Use it.
- * tests/autotest.at (AT_CHECK_AT_TITLE_CHAR): Test this.
- * NEWS: Revert caveat about semantics change on comma.
- * doc/autoconf.texi (Evaluation Macros): Document m4_expand.
-
-2007-10-13 Eric Blake <ebb9@byu.net>
-
- Change m4_join to match libtool's ltsugar semantics.
- * lib/m4sugar/m4sugar.m4 (m4_join): Just define this, not defun.
- Ignore empty arguments, using...
- (_m4_join): ...this new helper.
- * tests/m4sugar.at (m4@&t@_join): New test.
- * doc/autoconf.texi (Text processing Macros): Document new
- semantics of m4_join.
-
- Make AC_PREREQ faster and more robust.
- * lib/m4sugar/m4sugar.m4 (m4_ignore, m4_unquote): New macros.
- (m4_version_prereq): Inline constant expansions.
- (m4_list_cmp): Reduce number of expansions, by avoiding m4_case.
- Rewrite in terms of [] list, not () list.
- (_m4_list_cmp, _m4_version_unletter): New helper macros.
- (m4_version_unletter): Write wrapper around new implementation to
- preserve old semantics.
- (m4_version_compare): Pass correct type of list, and avoid
- overhead of flattening expressions too early.
- (m4_do): Move to be near other quoting macros.
- (m4_max, m4_min): Always result in decimal output.
- * doc/autoconf.texi (Looping constructs): Add m4_car, m4_cdr.
- Move m4_do...
- (Evaluation Macros): ...here. Add m4_ignore, m4_unquote.
- (Text processing Macros): Move m4_version_compare...
- (Number processing Macros): ...to this new node; document m4_cmp,
- m4_list_cmp, m4_sign, m4_max, m4_min.
- * tests/m4sugar.at (m4@&t@_version_compare): Enhance test, to pick
- up on bugs fixed by this patch.
- * NEWS: Document new macros.
-
-2007-10-12 Eric Blake <ebb9@byu.net>
-
- * doc/autoconf.texi (Text processing Macros): Fix bad merge.
- (Reporting Messages): Fix underfull hbox.
-
- Some more m4sugar documentation.
- * lib/m4sugar/m4sugar.m4: Clean up macro order.
- * doc/autoconf.texi (Programming in M4): Lighten the warning on
- using m4sugar; it is stabilizing and useful.
- (Redefined M4 Macros): Touch up wording on M4 builtins; sort. Add
- m4_divert, m4_undivert, __file__, __line__, __oline__.
- (Diagnostics): New node, documenting m4_assert, m4_errprintn,
- m4_fatal, m4_location, m4_warn.
- (Diversion support): New node, documenting m4_divert_push,
- m4_divert_pop, m4_divert_text, m4_divert_once.
- (Text processing Macros): Sort. Add m4_flatten, m4_join,
- m4_newline, m4_strip, m4_text_box, m4_text_wrap.
- (Reporting Messages): Mark AC_DIAGNOSE, AC_WARNING, and AC_FATAL
- as obsolescent.
- (Printing Messages): Change cross-reference.
-
- Document interaction of recent m4_append change with Libtool HEAD.
- * lib/m4sugar/m4sugar.m4 (m4_append): Document semantics change.
- (m4_append_uniq): Add new parameters, based on lt_append_uniq.
- * tests/m4sugar.at (m4@&t@_append): New test.
- * NEWS: Document semantics change.
- * doc/autoconf.texi (Text processing Macros): Likewise.
-
- s/AC_VERSION/AC_AUTOCONF_VERSION/.
- * doc/autoconf.texi (Versioning): Change the name.
- * NEWS: Likewise.
- * lib/autoconf/general.m4 (AC_AUTOCONF_VERSION): Likewise.
- * tests/tools.at (autoconf: AC_AUTOCONF_VERSION): Likewise.
- Suggested by Ralf Wildenhues.
-
- Namespace cleanup.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE)
- (_AC_OUTPUT_HEADERS_PREPARE): Convert here-doc delimiters into
- autoconf namespace.
- * doc/autoconf.texi (Programming in M4sugar, Forbidden Patterns)
- (Programming in M4sh, Macro Names): Beef up description of
- namespaces reserved for autoconf.
- * configure: Regenerate.
-
-2007-10-12 Eric Blake <ebb9@byu.net>
- and Paolo Bonzini <bonzini@gnu.org>
-
- Speed up execution of subset of testsuite.
- * lib/autotest/general.m4 (TEST_FUNCTIONS): New diversion.
- (AT_INIT) <at_func_test>: New shell function.
- (AT_INIT) <at_myself>: New variable, set to absolute $as_myself.
- (AT_INIT) <at_test_source> New variable, names file that holds
- current test function definition.
- (AT_SETUP): Start the shell function at_func_test_#, into the
- TEST_FUNCTIONS diversion.
- (AT_CLEANUP): End the shell function. Simplify the TESTS
- diversion to invoke the function.
-
-2007-10-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * .gitignore: Ignore tags and TAGS files.
-
-2007-10-11 Eric Blake <ebb9@byu.net>
-
- Config header generation followup.
- * lib/autoconf/general.m4 (_AC_DEFINE_Q): Check for raw newlines,
- which won't work with the preprocessor nor with the awk
- implementation.
- * tests/torture.at (Define a newline): Test raw newline detection,
- removing the XFAIL.
- * doc/autoconf.texi (Defining Symbols): Document recent change to
- allow backslash-newline.
- * THANKS: Update.
-
-2007-10-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autotest/general.m4: Put function braces in separate line.
-
-2007-10-10 Eric Blake <ebb9@byu.net>
-
- Avoid some overhead from m4_defn and m4_popdef.
- * lib/m4sugar/m4sugar.m4 (m4_defn, m4_popdef, m4_undefine): Only
- pass on first argument, since we are documented that way.
- (m4_for, m4_append_uniq, m4_text_wrap): Optimize out defined-ness
- check where it is safe to do so.
- (m4_append): Likewise, and quote the separator.
- (m4_text_box): Likewise, and avoid regex, also be robust to
- expansion and quadrigraphs.
-
- Another AC_DEFINE speedup.
- * lib/autoconf/general.m4 (AC_DEFINE_TRACE): Move parameter
- elision...
- (_AC_DEFINE_Q): ...here, and only do it once.
- * lib/autoconf/functions.m4 (AC_CHECK_FUNCS): Avoid overquoting.
- * lib/m4sugar/m4sh.m4 (AS_LITERAL_IF): Fix m4_defn overquoting
- introduced 2007-10-05.
-
- Whitespace cleanup.
- * lib/autoconf/general.m4: Use consistent indentation.
- * configure: Regenerate.
-
- * NEWS: Announce recent round of speed optimizations.
-
-2007-10-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * NEWS: Announce shell function usage in Autotest.
-
-2007-10-10 Eric Blake <ebb9@byu.net>
- and Paul Eggert <eggert@cs.ucla.edu>
-
- Reduce number of forks at startup.
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Speed up NLS
- sanitization.
- * configure: Regenerate.
-
-2007-10-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
- and Paul Eggert <eggert@cs.ucla.edu>
-
- Use awk for config header generation.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Fix comments.
- (_AC_OUTPUT_HEADERS_PREPARE): New macro. Rewrite of the config
- header machinery for use with awk and placement outside the main
- config.status instantiation loop. Retain multi-line defines
- through backslash-newline combinations, do not split the script
- any more.
- (_AC_OUTPUT_HEADER): Simplify accordingly, use $AWK.
- (_AC_OUTPUT_MAIN_LOOP): Call _AC_OUTPUT_HEADERS_PREPARE if
- needed.
- (AC_OUTPUT_MAKE_DEFS): Remove backslash-newline combinations
- from define values.
- * NEWS: Update.
- * tests/torture.at (#define header templates): Extend test by
- several more cases: white space before and after `#', macros
- with parameters in config.hin and as defines, multi-line macro
- values.
- (Torturing config.status): Use a define value twice the length
- in order to exercise the awk literal string limit.
- (Substitute and define special characters): Also try special
- delimiter, to exercise the special-case code.
- Suggestion by Eric Lemings.
-
-2007-10-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/local.at (AT_COPYRIGHT): Bump copyright years.
-
-2007-10-09 Eric Blake <ebb9@byu.net>
-
- Improve header of bin/autoconf.
- * lib/m4sugar/m4sh.m4 (AS_INIT): Add a 'generated from' notice.
- * lib/autoconf/general.m4 (_AC_INIT_NOTICE): Override new notice
- from M4sh.
- * bin/autoconf.as: Put copyright up front in generated file.
-
- * bin/autoconf.as (exit_missing_arg): Font-lock tweak.
-
-2007-10-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/install.texi (Basic Installation): Document `uninstall'.
- * INSTALL: Regenerate.
- Suggestion by Roberto Bagnara.
-
-2007-10-08 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Usual Tools): V7 awk had 'index'.
-
- Adjust doc. to match latest gnulib.
- * build-aux/texinfo.tex: Sync from gnulib.
- * doc/standards.texi: Likewise.
- * doc/autoconf.texi (Copying This Manual): Rename to "GNU Free
- Documentation License" and remove the subsection. This simplifies
- the manual a bit and is more like what other GNU projects do
- nowadays.
-
-2007-10-08 Eric Blake <ebb9@byu.net>
-
- Use recent changes.
- * configure: Regenerate.
-
- Fix regression in m4_text_wrap from 2007-10-05.
- * lib/m4sugar/m4sugar.m4 (m4_max, m4_min): New macros.
- (m4_sign): Sort.
- (m4_text_wrap): Fix off-by-one error in rewrite from m4_for to
- m4_format.
- * lib/autotest/general.m4 (AT_SETUP): Avoid negative width.
- * tests/autotest.at (Long test title, Longer test title): Test
- this fix, beyond what AS_HELP_STRING already tests.
-
- Avoid m4 warnings on bad m4_format usage.
- * lib/m4sugar/m4sugar.m4 (m4_text_wrap): Use %*s, in case width
- evaulates to 0.
- * lib/autotest/general.m4 (AT_SETUP): Likewise; also ensure that
- enough arguments are provided.
-
-2007-10-06 Paolo Bonzini <bonzini@gnu.org>
-
- * doc/autoconf.texi (Shell portability): Document shell function
- portability.
-
-2007-10-06 Paolo Bonzini <bonzini@gnu.org>
-
- * lib/autotest/general.m4 (AT_INIT): Add at_func_diff_devnull,
- at_func_check_skip, at_func_check_status, at_func_filter_trace,
- at_func_log_failure shell functions. Use test -s to avoid
- useless diff invocations.
- (at_func_check_newline): Renamed from at_check_newline.
- (AT_SETUP): Define AT_captured_files to empty.
- (AT_DIFF_STDERR(*), AT_DIFF_STDOUT(*)): New, extracted from _AT_CHECK.
- (_AT_CHECK): Replace m4_case with m4_ifdef/m4_indir. Use all
- the shell functions.
-
-2007-10-05 Paul Eggert <eggert@cs.ucla.edu>
-
- Don't assume "." is writeable, for commands like "autoconf --version".
- * lib/m4sugar/m4sh.m4 (_AS_PATH_SEPARATOR_PREPARE): Use a
- different heuristic instead, one that doesn't rely on creating
- files.
-
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Handle "///"
- correctly.
-
-2007-10-05 Jim Meyering <meyering@redhat.com>
-
- Avoid makeinfo warnings.
- * doc/autoconf.texi (Redefined M4 Macros): Add a `,' after @xref.
- (Looping constructs): Add ` ' after @defmac'd name, m4_do.
-
-2007-10-05 Eric Blake <ebb9@byu.net>
-
- Resolve Python issue 1676135 regarding configure directory args.
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Strip trailing
- slashes from directory arguments.
- * tests/base.at (configure directories): New test.
- * doc/autoconf.texi (Installation Directory Variables): Document
- the change.
- * NEWS: Likewise.
- * THANKS: Update.
- Reported by Björn Lindqvist.
-
- Provide better short-circuiting operation.
- * lib/m4sugar/m4sugar.m4 (m4_cond, m4_newline): New macros.
- (m4_text_wrap): Use it. Also avoid useless m4_for.
- * lib/m4sugar/m4sh.m4 (_AS_QUOTE_IFELSE, AS_LITERAL_IF): Use
- new macro.
- (_AS_IDENTIFIER_IF): Likewise, and fix bug when $1 is [,].
- * lib/autotest/general.m4 (_AT_DECIDE_TRACEABLE): Use new macros
- to avoid regexps.
- * doc/autoconf.texi (Redefined M4 Macros): Expand m4_if
- documentation. Sort m4_mkstemp, m4_undefine. Move m4_ifndef...
- (Conditional constructs): ...here, to new section. Also document
- m4_cond, m4_ifval, m4_n, m4_ifvaln, m4_ifset, m4_case, m4_bmatch,
- m4_bpatsubsts, and m4_default.
- (Looping constructs): Document m4_shiftn, m4_shift2, m4_shift3,
- m4_do.
-
-2007-10-04 Eric Blake <ebb9@byu.net>
-
- Fix recent testsuite failures.
- * lib/autotest/general.m4 (AT_INIT, AT_SETUP): Double-quote text
- that must not be re-expanded after AS_ESCAPE.
- * lib/m4sugar/m4sh.m4 (_AS_IDENTIFIER_IF): Don't expand $1 when
- checking if it is an identifier.
-
- Whitespace cleanup.
- * lib/autotest/general.m4 (_AT_CREATE_DEBUGGING_SCRIPT): Avoid
- leading whitespace, as it caused space-tab in testsuite.
- (AT_INIT): Avoid trailing newlines in testsuite.
-
- One more round of m4_foreach_w speedups.
- * lib/m4sugar/m4sugar.m4 (m4_flatten): Only use regex if newline
- is present.
- (_m4_split): Avoid useless expansions inside definition. Move
- argument defaulting...
- (m4_split): ...here. Change alternate quote to something less
- likely to appear in $1. Also, special case space as regexp...
- (m4_foreach_w): ...to avoid regexp on single-term list.
- (m4_default, m4_defn, m4_popdef, m4_undefine, _m4_foreach): Avoid
- useless expansions inside definition.
- * tests/m4sugar.at (m4@&t@_split): Add tests.
-
-2007-10-04 Paolo Bonzini <bonzini@gnu.org>
-
- * general.m4 (AT_INIT): Add at_check_newline function.
- (_AT_DECIDE_TRACEABLE): Include at_traceon test, use shell function.
- (_AT_CHECK): Don't use at_trace_this.
-
-2007-10-04 Paolo Bonzini <bonzini@gnu.org>
-
- Fix previous commit.
- * lib/autotest/general.m4 (AT_LINE): Fix regex.
-
-2007-10-04 Eric Blake <ebb9@byu.net>
-
- Speed up building testsuites.
- * lib/autotest/general.m4 (AT_LINE): Only use regex when file
- changed since last time. Use simpler regex.
-
-2007-10-03 Eric Blake <ebb9@byu.net>
-
- Optimize checking for identifiers.
- * lib/m4sugar/m4sh.m4 (AS_IDENTIFIER_IF, _AS_IDENTIFIER_IF): New
- macros, more efficient than regex on m4_re_word.
- * lib/autoconf/general.m4 (AC_SUBST, AC_DEFINE_TRACE_LITERAL):
- Rewrite in terms of new macro. As a side-effect, AC_DEFINE can
- now use @&t@.
- * configure: Regenerate.
-
- Remove some XFAILs, and make AT_SETUP output line up.
- * lib/autotest/general.m4 (AT_SETUP): Only expand description
- once; thereafter, use its expansion, properly quoted.
- * tests/autotest.at (AT_CHECK_AT_TITLE): Also check macro
- expansion with arguments, and check for aligned output.
- (AT_CHECK_AT_TITLE_CHAR): Remove XFAILs for tests that now pass.
- Add a test for macros with parameters.
- * NEWS: Document the semantics change.
- * tests/base.at: Fix test titles containing commas.
- * tests/compile.at: Likewise.
- * tests/tools.at: Likewise.
- * tests/torture.at: Likewise.
-
- Another round of regex avoidance.
- * lib/m4sugar/m4sugar.m4 (m4_cr_alnum, m4_cr_all)
- (_m4_define_cr_not, m4_cr_not_letters, m4_cr_not_LETTERS)
- (m4_cr_not_Letters, m4_cr_not_digits, m4_cr_not_alnum)
- (m4_cr_not_symbols1, m4_cr_not_symbols2): New macros, implementing
- character ranges useful in m4_translit.
- (m4_toupper, m4_tolower): Optimize the constant portion of
- definition.
- * lib/m4sugar/m4sh.m4 (AS_LITERAL_IF): Also reject @S|@ because it
- creates $, and reject [] thanks to AS_TR_SH rewrite.
- (AS_TR_SH, AS_TR_CPP): Use just translit, not bpatsubst.
- (AS_ESCAPE): Factor...
- (_AS_ESCAPE): ...into new macro, with second argument required.
- Avoid regex in common case.
- (_AS_QUOTE): Use new macro.
-
- Whitespace cleanup.
- * lib/autoconf/types.m4: Avoid space-tab.
- * lib/m4sugar/m4sh.m4: Use tab consistently.
-
-2007-10-03 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/m4sugar/m4sugar.m4 (m4_shift2, m4_shift3): New macros.
- (m4_shiftn): Remove no-longer-needed optimization. Perhaps we
- should remove m4_shiftn entirely?
- (m4_case, b4_bmatch, m4_map_sep, m4_bpatsubsts, m4_join):
- Prefer m4_shift2 and m4_shift3 to m4_shiftn.
- * lib/autoconf/lang.m4 (_AC_LANG_DISPATCH): Likewise.
- * lib/m4sugar/m4sh.m4 (AS_CASE, AS_IF): Likewise.
- * tests/autotest.at (AT_CHECK_AT_TEST): Likewise.
-
-2007-10-03 Eric Blake <ebb9@byu.net>
-
- Comment touchups.
- * lib/m4sugar/m4sugar.m4: Grammar fixes in comments.
-
-2007-10-02 Eric Blake <ebb9@byu.net>
-
- Optimize appending text.
- * lib/m4sugar/m4sugar.m4 (m4_append_uniq): Use index, not regular
- expressions.
-
- Optimize recursion.
- * lib/m4sugar/m4sugar.m4 (m4_shiftn): This macro is called in a
- lot of hot spots; optimize it for 2 and 3 shifts.
-
- Optimize AC_PREREQ and other m4sugar numerics.
- * lib/m4sugar/m4sugar.m4 (m4_sign): Write with m4_eval.
- (m4_cmp): Compare arbitrary expressions, without overflow.
- (m4_version_unletter): Also recognize capital letters.
- (m4_version_compare): Avoid regex when splitting version number
- string.
-
-2007-10-01 Eric Blake <ebb9@byu.net>
-
- Once again, reject IRIX m4.
- * m4/m4.m4 (AC_PROG_GNU_M4): Use indir builtin to root out non-GNU
- implementations that ignore --trace.
- * configure: Regenerate.
- Reported by Ralf Wildenhues.
-
- Fix regression in AC_DEFINE([macro(with_arg)]).
- * lib/autoconf/general.m4 (AC_DEFINE_TRACE): Don't chop off close
- quotes with a careless m4_substr.
-
-2007-09-30 Eric Blake <ebb9@byu.net>
-
- Allow nameless iteration.
- * lib/m4sugar/m4sugar.m4 (m4_for, _m4_for): Access variable
- indirectly.
- * tests/m4sugar.at (myvar): Test this.
-
-2007-09-29 Eric Blake <ebb9@byu.net>
-
- Speed optimization: avoid m4 regex when other algorithms work.
- * lib/m4sugar/m4sh.m4 (AS_LITERAL_IF): Rewrite without regex.
- (_AS_QUOTE_IFELSE): Likewise.
- * lib/m4sugar/m4sugar.m4 (m4_strip): Reduce from 3 to 2 regex.
- (m4_bpatsubsts): Split...
- (_m4_bpatsubsts): ...so that recursion can avoid patsubst on empty
- regex.
- (_m4_divert()): Define, to avoid m4 warning on `m4_divert'.
- (m4_qlen): Optimize on short strings, to avoid regex.
- (m4_sign): Avoid regex, and fix bug with `01' and `-0'.
- * lib/autoconf/general.m4 (AC_CACHE_VAL): Rewrite without regex.
- (AC_DEFINE_TRACE): Likewise.
-
-2007-09-28 Eric Blake <ebb9@byu.net>
-
- Oops - my earlier 'optimization' caused a regression.
- * tests/local.at (AT_CHECK_M4): Fix typo.
-
-2007-09-27 Eric Blake <ebb9@byu.net>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Catch even more common AC_CACHE_VAL mistakes.
- * lib/autoconf/general.m4 (AC_CACHE_VAL): Warn if cache variable
- lacks '_cv_', or if AC_SUBST appears in body.
- * tests/base.at (AC_CACHE_CHECK): Test this change.
-
-2007-09-27 Stepan Kasal <kasal@ucw.cz>
- and Eric Blake <ebb9@byu.net>
-
- Autotest no longer caters to Ultrix redirection limitation.
- * doc/autoconf.texi (Writing testsuite.at): Remove the
- limitation that the first parameter of AT_CHECK cannot
- contain redirection.
- (File Descriptors): Mention that Ultrix limitation is no longer a
- show-stopper in modern code.
- * tests/local.at (AT_CHECK_M4): Fix for cases when the fourth
- parameter is `stderr' or `experr'. Optimize if it was `ignore'.
- * lib/autotest/general.m4 (AT_CHECK): Update comment.
-
-2007-09-27 Eric Blake <ebb9@byu.net>
-
- Squelch changeword in m4sugar.
- * lib/m4sugar/m4sugar.m4 (changeword): Disable this experimental
- feature of m4 1.4.x.
-
- Configure whitespace touchups.
- * lib/autoconf/general.m4 (_AC_INIT_HELP): Fix alignment of
- installation directories, and avoid TAB, in configure --help
- output.
- * configure.ac: Avoid extra trailing newline.
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Avoid space-tab.
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Avoid TAB in
- config.status --help output.
- * configure: Regenerate.
-
- Fix underquotation in AS_HELP_STRING.
- * lib/m4sugar/m4sh.m4 (AS_HELP_STRING): Don't underquote lhs
- argument.
- * lib/m4sugar/m4sugar.m4 (m4_text_wrap): Don't underquote
- first-prefix argument.
- * tests/m4sh.at (AS@&t@_HELP_STRING): Test this fix.
- * NEWS: Document AS_HELP_STRING fix.
-
- Autotest formatting touchups.
- * lib/autotest/general.m4 (HELP_TUNING): Avoid TAB in terminal
- output.
- (PATH): Simplify computation of new PATH.
-
-2007-09-26 Eric Blake <ebb9@byu.net>
-
- Fix testsuite breakage in last patch.
- * tests/autotest.at (AT_CHECK_AT_TITLE): Properly quote the
- font-lock fix.
- * tests/torture.at (@%:@define header templates): Rename, so that
- output lines up correctly.
-
- More font-lock happiness.
- * tests/autotest.at (AT_CHECK_AT_TITLE_CHAR): Clean up font
- confusion.
-
-2007-09-25 Eric Blake <ebb9@byu.net>
-
- Typo fixes.
- * lib/autoconf/general.m4 (AC_SUBST): Fix typo in comment.
- * lib/m4sugar/m4sh.m4 (AS_VAR_PUSHDEF): Likewise.
-
- Improve documentation of M4 parameter expansion.
- * doc/autoconf.texi (Quoting and Parameters): New section.
- (Quotation and Nested Macros): Improve wording.
-
- Improve C99 detection.
- * lib/autoconf/c.m4 (_AC_PROG_CC_C99): Add support for HP cc, and
- avoid deprecation warning with icc.
- * THANKS: Update.
- Reported by Ted Bullock.
-
-2007-09-24 Jim Meyering <jim@meyering.net>
-
- Whenever possible, use the vertical bar as sed delimiter.
- * lib/autoconf/functions.m4 (GETLOADAVG_LIBS) [AC_FUNC_GETLOADAVG]:
- Use "|", not "!".
- * lib/autoconf/status.m4 (_AC_SRCDIRS) [ac_top_builddir_sub]:
- [ac_dir_suffix]: Use "|", not "," as sed delimiter.
- * tests/mktests.sh (as_me): Likewise.
- * lib/freeze.mk (check-forbidden-patterns): Likewise.
- * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): Likewise.
- * configure: Regenerate.
- * doc/autoconf.texi (Shell Substitutions): Use "|", not "," in examples.
- * lib/autotest/general.m4 (AT_INIT): Use "|", not "&" as sed delimiter
- in the : -> $PATH_SEPARATOR transformation of $AUTOTEST_PATH.
- This is fine, as long as $PATH_SEPARATOR doesn't contain "|".
-
-2007-09-22 Jim Meyering <jim@meyering.net>
-
- Add a comment.
- * lib/autoconf/headers.m4 (HAVE_STDBOOL_H): Document the
- 2004-05-31 change also with a comment in the code.
-
-2007-09-20 Eric Blake <ebb9@byu.net>
-
- More contribution housekeeping.
- * THANKS: Sort.
- * AUTHORS: Sort, reflect recent assignment from Helge Deller.
-
- Ignore additional files, when copying cross-repository.
- * .gitignore: Ignore CVS directories, emacs edits.
- * .cvsignore: Ignore .git directory, emacs edits.
-
-2007-09-15 Eric Blake <ebb9@byu.net>
-
- Provide AC_VERSION, not m4_AUTOCONF_VERSION.
- * doc/autoconf.texi (Text processing Macros): Remove mention of
- m4_AUTOCONF_VERSION, and leave m4_PACKAGE_VERSION undocumented
- once again.
- (Notices): Move AC_PREREQ...
- (Versioning): ...to this new section, alongside the new AC_VERSION
- alias for the undocumented m4_PACKAGE_VERSION.
- * lib/m4sugar/m4sugar.m4 (m4_AUTOCONF_VERSION): Revert change.
- * lib/autoconf/general.m4 (AC_VERSION): New macro.
- * NEWS: Update to match this rename.
- * tests/m4sugar.at (m4@&t@_version_compare): Remove tests of
- m4_PACKAGE_VERSION.
- * tests/tools.at (autoconf: AC_VERSION): New test.
- Suggested by Paolo Bonzini and Benoit Sigoure.
-
-2007-09-14 Eric Blake <ebb9@byu.net>
-
- Prepare for conversion to git.
- * doc/.cvsignore: Avoid multiple listings on one line.
- * bin/.cvsignore: Likewise.
- * .gitignore, bin/.gitignore, config/.gitignore, doc/.gitignore,
- lib/.gitignore, lib/Autom4te/.gitignore, lib/autoconf/.gitignore,
- lib/autoscan/.gitignore, lib/autotest/.gitignore,
- lib/emacs/.gitignore, lib/m4sugar/.gitignore, man/.gitignore,
- tests/.gitignore: New files, identical to .cvsignore counterpart.
-
-2007-09-13 Eric Blake <ebb9@byu.net>
-
- Editing eye-candy.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Restore
- font-lock balance.
- * lib/m4sugar/m4sh.m4 (AS_MKDIR_P): Likewise.
- * lib/autoconf/general.m4 (_AC_DO_ECHO): Likewise.
- * configure: Regenerate.
-
- Clean up 'make dist' of previous patch.
- * tests/Makefile.am (EXTRA_DIST): Distribute mktests.stamp.
- (CLEANFILES): Don't clean the stamp, since we distribute the
- generated files pre-built.
- (MAINTAINERCLEANFILES): Clean it here instead.
- * tests/Makefile.in: Regenerate.
-
- Avoid parallel 'make check' issue.
- * tests/Makefile.am (mktests.stamp): New witness.
- (TESTSUITE_GENERATED_AT): Use it.
- (CLEANFILES): Clean the witness.
- * tests/.cvsignore (mktests.stamp): Ignore the witness.
-
- Document another awk pitfall.
- * doc/autoconf.texi (Limitations of Usual Tools) <awk>: Document
- limitation of field variables in END.
- Reported by Gary V. Vaughan.
-
- * AUTHORS: Add missing entries.
-
-2007-09-12 Eric Blake <ebb9@byu.net>
-
- Publish m4_ifndef, m4_version_compare, m4_AUTOCONF_VERSION.
- * doc/autoconf.texi (Text processing Macros): Document
- m4_version_compare, m4_AUTOCONF_VERSION, m4_PACKAGE_VERSION.
- (Redefined M4 Macros): Document m4_ifndef.
- * lib/m4sugar/m4sugar.m4 (m4_AUTOCONF_VERSION): New macro; we
- can't obsolete m4_PACKAGE_VERSION at this time since Autoconf 1.10
- used it while it was undocumented.
- * NEWS: Document this change.
- * lib/m4sugar/Makefile.am (version.m4): Update copyright dates.
- * lib/m4sugar/Makefile.in: Regenerate.
- * tests/m4sugar.at (m4@&t@_version_compare): New test.
- Reported by Bruno Haible.
-
- * doc/autoconf.texi (Generic Compiler Characteristics): Add
- missing index entries.
-
-2007-09-11 Eric Blake <ebb9@byu.net>
-
- Centralize all system extensions checks.
- * lib/autoconf/specific.m4 (AC_USE_SYSTEM_EXTENSIONS): Inline code
- from AC_AIX, AC_GNU_SOURCE, AC_MINIX. Add Interix support.
- (AC_AIX, AC_GNU_SOURCE, AC_MINIX): Obsolete, and point to
- AC_USE_SYSTEM_EXTENSIONS.
- (AC_ISC_POSIX): Obsolete, and point to AC_SEARCH_LIBS.
- (AC_XENIX_DIR, AC_IRIX_SUN): Promote proper quoting in AU_DEFUN.
- * doc/autoconf.texi (Posix Variants): Reword this section,
- emphasizing that AC_USE_SYSTEM_EXTENSIONS is the preferred method,
- rather than a series of system-specific checks.
- (Obsolete Macros): Add AC_AIX, AC_GNU_SOURCE, AC_ISC_POSIX,
- AC_MINIX.
- * NEWS: Document this change.
- * THANKS: Update.
- Reported by Martin Koeppe.
-
-2007-09-08 Eric Blake <ebb9@byu.net>
-
- Clean up obsolete macros references.
- * doc/autoconf.texi: Add anchors to support better
- cross-referencing.
- (Particular Structures): Move obsolete macros descriptions...
- (External Software): Likewise.
- (Package Options): Likewise.
- (Obsolete Macros): ...to here. Add cross-references to
- documentation on replacements.
- * NEWS: Mention that these macros have been obsolete for a while
- now: AC_STRUCT_ST_BLKSIZE AC_STRUCT_ST_RDEV AC_WITH AC_ENABLE.
-
- Improve M4 path searching during configure.
- * lib/autoconf/programs.m4 (AC_PATH_PROGS_FEATURE_CHECK): New
- macro.
- (_AC_PATH_PROG_FEATURE_CHECK): Rename...
- (_AC_PATH_PROGS_FEATURE_CHECK): ...to this, add defaulted action
- parameter, and kill side effects.
- (_AC_PROG_GREP, AC_PROG_SED): Adjust callers.
- (_AC_FEATURE_CHECK_LENGTH): Kill extra whitespace.
- * m4/m4.m4 (AC_PROG_GNU_M4): Don't stop searching until working m4
- is found.
- (AC_PATH_PROGS_FEATURE_CHECK): Add backwards compatibility hack to
- allow bootstrapping with autoconf 2.61.
- * configure.ac (M4): AC_PROG_GNU_M4 now exits on failure.
- * configure: Regenerate.
- * doc/autoconf.texi (Generic Programs): Document new macro.
- * tests/mktests.sh (au_exclude_script): Exclude auto-testing new
- macro.
- * tests/semantics.at (AC_PATH_PROGS_FEATURE_CHECK): New test.
- * NEWS: Document the change.
- * THANKS: Update.
- Reported by Hans Aberg.
-
- * doc/autoconf.texi (Generic Programs): Fix typo.
-
-2007-09-06 Eric Blake <ebb9@byu.net>
-
- * doc/autoconf.texi (Generic Programs): Use $PATH_SEPARATOR, not
- :, and make it clear that optional @var{path} defaults to $PATH.
- (Erlang Compiler and Interpreter): Likewise.
-
- Texinfo cleanup.
- * doc/autoconf.texi: Avoid lines > 80 columns when possible.
- Reword some paragraphs to avoid overfull, underfull hbox
- warnings. Add index entries to avoid overfull vbox warnings.
-
-2007-09-05 Eric Blake <ebb9@byu.net>
-
- * NEWS: Adjust wording for AC_CONFIG_LINKS.
- Reported by Ralf Wildenhues.
-
-2007-09-03 Eric Blake <ebb9@byu.net>
-
- * NEWS: Document fixes that have been applied since 2.61a.
-
- Housekeeping.
- * THANKS: Update, and convert to UTF-8 encoding.
- * AUTHORS: Likewise.
-
-2007-08-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/general.m4 (AC_SITE_LOAD): Guard against file
- names beginning with `-' again.
-
-2007-08-22 Stepan Kasal <kasal@ucw.cz>
- Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Defining Directories): Mention
- AM_CPPFLAGS, as the way to modify CPPFLAGS when using Automake.
-
-2007-08-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/general.m4 (AC_SITE_LOAD): Do not overwrite "$@"
- here, this macro is expanded by AC_INIT. Fixes 2.60 regression.
- * tests/base.at (configure arguments): New test.
- * THANKS: Update.
- Report by Olaf Lenz.
-
- * lib/autoconf/general.m4 (_AC_ENABLE_IF): Expand macro
- arguments in comment.
- Report by Vincent Torri <vtorri at univ minus evry dot fr>.
-
-2007-08-20 Benoit Sigoure <tsuna@lrde.epita.fr>
-
- * doc/autoconf.texi (File System Conventions): Index the proper
- way of detecting absolute file names.
-
-2007-08-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * build-aux/config.guess, build-aux/config.sub,
- build-aux/elisp-comp, build-aux/install-sh, build-aux/mdate-sh,
- build-aux/missing, build-aux/texinfo.tex, doc/fdl.texi,
- doc/make-stds.texi, doc/standards.texi: Sync from gnulib.
- * doc/autoconf.texi (GNU Free Documentation License): Adjust for
- sectioning change in fdl.texi.
-
- * bin/autoconf.as: Update --version output to match current GCS.
- * bin/autoheader.in: Likewise.
- * bin/autom4te.in: Likewise.
- * bin/autoreconf.in: Likewise.
- * bin/autoscan.in: Likewise.
- * bin/autoupdate.in: Likewise.
- * bin/ifnames.in: Likewise.
-
-2007-08-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_LINK): Do not try to link a
- file to itself if source and build trees coincide.
- * tests/torture.at (AC_CONFIG_LINKS and identical files): New
- test.
- Report by Sebastian Freundt <hroptatyr@gna.org>.
-
-2007-07-20 Paul Eggert <eggert@cs.ucla.edu>
-
- Reword the copyright notices to match what's suggested in GPLv3.
- In ChangeLog files, use more-permissive notice rather than GPL, as
- per usual GNU standards these days.
-
-2007-07-13 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (autoreconf Invocation): Document ACLOCAL_AMFLAGS
- limitation reported by Leo Moisio in
- <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=432941>.
-
-2007-07-03 Paul Eggert <eggert@cs.ucla.edu>
-
- * COPYING: Update to GPLv3. All uses changed.
-
-2007-06-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
- and Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Usual Tools): sed -e ''
- fails on AIX 5.3.
-
-2007-06-17 Noah Misch <noah@cs.caltech.edu>
-
- * lib/autotest/general.m4 (AT_INIT): Handle absolute `srcdir'.
- * tests/autotest.at (srcdir propagation): Test absolute `srcdir' and
- `srcdir' as subdirectory of `builddir'.
-
-2007-06-13 Noah Misch <noah@cs.caltech.edu>
-
- * lib/autotest/general.m4 (AT_INIT): Compute $srcdir correctly.
- * tests/autotest.at (srcdir propagation): New test.
- * THANKS: Update.
- Reported by Mike Frysinger.
-
-2007-06-13 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/m4sugar/m4sh.m4 (_AS_PATH_SEPARATOR_PREPARE): Set FPATH too.
- Problem reported by Fred Kreek in
- <http://lists.gnu.org/archive/html/bug-autoconf/2007-06/msg00009.html>.
- * doc/autoconf.texi (Special Shell Variables): Warn about FPATH.
- (Macro Names, Defining Directories): Don't mention PATH as a name
- for a fully qualified file name, as this usage violates the GNU
- coding standards and we shouldn't recommend it.
-
- * lib/autotest/general.m4 (AT_INIT): Don't set PATH to the empty
- string and then assume shell builtins like "test" will work.
-
-2007-06-12 Noah Misch <noah@cs.caltech.edu>
-
- * lib/autoconf/general.m4 (AC_SUBST): Raise a fatal error if VARIABLE is
- not a valid shell variable name.
- * tests/mktests.sh (ac_exclude_list): Add AC_ARG_VAR.
- * tests/torture.at (AC_SUBST: variable name validation): New test.
- Reported by Andreas Schwab.
-
-2007-06-04 Noah Misch <noah@cs.caltech.edu>
-
- * doc/autoconf.texi (AC_F77_MAIN): Give a specific usage example that
- works with both C and C++.
-
-2007-06-03 Noah Misch <noah@cs.caltech.edu>,
- Bruno Haible <bruno@clisp.org>
-
- * lib/autoconf/c.m4 (AC_OPENMP): Use a simple loop instead of compiler
- brand tests.
-
-2007-05-31 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Particular Types): Give example of use for
- AC_TYPE_INT8_T etc.
-
-2007-05-29 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/types.m4 (_AC_TYPE_UNSIGNED_INT): Fix a typo.
-
-2007-05-28 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Particular Types): AC_TYPE_INT8_T does not
- define HAVE_INT8_T, and likewise for similar macros.
- Problem reported by Patrick Welche in
- <http://lists.gnu.org/archive/html/autoconf/2007-05/msg00062.html>.
-
-2007-05-25 Noah Misch <noah@cs.caltech.edu>
-
- * bin/Makefile.am ($(top_builddir)/bin/autom4te): New dependency.
-
-2007-05-21 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/c.m4 (AC_OPENMP): Don't echo --enable-openmp
- choice, since that's what we do with --enable-largefile etc.
- Redo indenting and assignments to simplify things a bit, and make
- the parens work with Emacs.
-
- * doc/autoconf.texi (Generic Compiler Characteristics): Fix typo
- in my previous change: AC_C_OPENMP -> AC_OPENMP. Reported by Bruno
- Haible.
-
-2007-05-21 Noah Misch <noah@cs.caltech.edu>
-
- * lib/autoconf/c.m4 (AC_OPENMP): Simplify use of AC_ARG_ENABLE.
- * tests/local.at (AT_CHECK_ENV): Exempt OPENMP_CFLAGS.
-
-2007-05-21 Bruno Haible <bruno@clisp.org>
-
- * NEWS: Rename AC_C_OPENMP to AC_OPENMP.
- * lib/autoconf/c.m4 (AC_OPENMP): Renamed from AC_C_OPENMP.
- * doc/autoconf.texi (Generic Compiler Characteristics): Move
- renamed AC_OPENMP documentation here, from "C compiler".
- Mention C++ and Fortran.
-
-2007-05-21 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (C Compiler): Tweak OpenMP documentation a bit.
-
-2007-05-21 Bruno Haible <bruno@clisp.org>
-
- * NEWS: Mention AC_C_OPENMP.
- * lib/autoconf/c.m4 (AC_C_OPENMP): New macro.
- * doc/autoconf.texi (C Compiler): Document AC_C_OPENMP.
- Based in part on Steven G. Johnson's investigations for the AX_OPENMP
- macro in the Autoconf macro archive.
-
-2007-05-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * bin/autom4te.in: Fix typos.
-
-2007-05-16 Noah Misch <noah@cs.caltech.edu>
-
- * bin/autoconf.as: Handle `-' just like other input files.
- * bin/autom4te.in (parse_args): Pass `-' through.
- (handle_output): Skip the forbidden token search if we read from stdin.
- (up_to_date): Always treat stdin as out of date.
- * tests/tools.at (autoconf: input from stdin): New test.
- (autoconf: forbidden tokens, basic): Check a second `autoconf' run.
-
-2007-05-16 Stepan Kasal <kasal@ucw.cz>
-
- * tests/foreign.at tests/semantics.at, tests/tools.at: Remove
- parameters for AT_CLEANUP.
- * tests/local.at (AT_CHECK_AU_MACRO): Likewise.
-
-2007-05-14 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: Document that AC_C_RESTRICT checks 'restrict' last.
- * doc/autoconf.texi (C Compiler): Likewise.
-
-2007-05-14 Noah Misch <noah@cs.caltech.edu>
-
- * lib/autoconf/c.m4 (AC_C_RESTRICT): Check `restrict' last.
-
-2007-05-09 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi: Direntry for "autoconf Invocation"
- renamed to "autoconf-invocation"
-
- * doc/autoconf.texi (Caching Results): The CACHE-ID variable
- in the examples should not use the internal "ac_" prefix.
-
-2007-05-05 Noah Misch <noah@cs.caltech.edu>
-
- * lib/autotest/general.m4 (_AT_NORMALIZE_TEST_GROUP_NUMBER): Use `eval'.
- * doc/autoconf.texi ($@, case): Document Zsh limitations.
-
-2007-05-03 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Put a.out first.
- Reorganize the comments before and in the macro.
-
-2007-05-02 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/lang.m4, lib/autoconf/c.m4,
- lib/autoconf/fortran.m4, lib/autoconf/erlang.m4: Cleanup of
- section titles and other comments; no code change.
-
-2007-05-01 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (Particular Programs): Typo
- @acindex{AC_PROG_MKDIR_P} shouldn't have "AC" in that call.
-
-2007-04-30 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/m4sugar/m4sh.m4 (_AS_SHELL_FN_SPY): Don't imply that
- 'configure' will fail if the shell lacks proper support for shell
- functions. Suggested by RMS.
-
-2007-04-29 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Builtins): Correct the warning
- about Solaris /bin/printf '%010000x' 123. Problem reported by
- Bruno Haible.
-
-2007-04-28 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Don't look
- for a.* when searching for executables, as this prevents users
- from having files like a.c. Problem reported by Ralf Wildenhues in:
- http://lists.gnu.org/archive/html/autoconf-patches/2007-04/msg00029.html
- This fixes a problem introduced on 2000-12-19.
-
-2007-04-26 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Builtins): Warn about Solaris
- /bin/printf '%010000x' 123. Problem reported by Arto C. Nirkko
- via Bruno Haible.
-
-2007-04-12 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: Document recent changes to AC_CHECK_ALIGNOF, AC_CHECK_SIZEOF,
- AC_CHECK_TYPE, AC_CHECK_TYPES.
- * doc/autoconf.texi (Generic types): C types must be type-names
- (the C terminology), not type-ids (the C++ term). C++ types
- must not be anonymous.
- * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW): Remove special case
- for C++; this drops support for anonymous struct and union types,
- which were problematic anyway.
- * tests/semantics.at (AC_CHECK_HEADERS_NEW): Adjust test to work even
- for C++.
-
-2007-04-12 Jim Meyering <jim@meyering.net>
-
- * doc/autoconf.texi (Libraries): Typo fix: insert missing "in".
-
-2007-04-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_LINK): Fix AC_CONFIG_LINKS
- to prefer a link source from the build tree, if it exists.
- Report by Pallav Gupta <pallavgupta@gmail.com>.
-
-2007-04-11 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Generic Types): Document the restrictions
- on types imposed by AC_CHECK_TYPE, AC_CHECK_TYPES.
- (Generic Compiler Characteristics): AC_CHECK_SIZEOF now works
- with objects too. Document the restrictions on its use.
- Document the restrictions on AC_CHECK_ALIGNOF's type argument.
- * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW):
- For C, just try sizeof (TYPE) and sizeof ((TYPE)); if the former
- works but the latter doesn't, then it's a valid type.
- This lets people use function types and so forth.
- For C++ there doesn't seem to be a simple solution, so leave it alone.
- (AC_CHECK_SIZEOF): Allow argument to be a variable.
- (AC_CHECK_SIZEOF, AC_CHECK_ALIGNOF): Don't bother to invoke
- AC_CHECK_TYPE; that wasn't documented or necessary.
-
-2007-04-11 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (_AC_LINK_IFELSE): Skip AS_TEST_X
- when cross-compiling.
-
-2007-04-11 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (External Software): Fix a typo in the
- previous change.
-
-2007-04-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (External Software, Package Options):
- Fix ambiguous wording. Report by Reuben Thomas <rrt@sc3d.org>.
-
-2007-04-06 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Particular Types): AC_C_LONG_DOUBLE is now
- obsolescent. Suggested by Bruno Haible.
- * NEWS: Document this.
-
-2007-03-29 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Here-Documents, Limitations of Builtins):
- (Limitations of Usual Tools): Don't say "older" if Solaris 10 by
- default still has the problem. Problem reported by Bruce Korb.
-
-2007-03-28 Stepan Kasal <kasal@ucw.cz>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Fix a
- comment in the generated config.status.
-
-2007-03-27 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/status.m4 (AC_CONFIG_SUBDIRS): Update comment.
-
-2007-03-26 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Shellology): Rework treatment of the 'test'
- command and case statements to make it a bit clearer and describe
- more pitfalls.
-
-2007-03-23 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (C Compiler): Mention that AC_PROG_CC_C99 also
- checks for unsigned long long int.
-
-2007-03-19 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Warn about other
- nonstandard grep R.E. escape sequences.
-
-2007-03-17 Jim Meyering <jim@meyering.net>
-
- * doc/autoconf.texi: Adjust grammar around use of "heuristics".
- (Limitations of Usual Tools): Also list \< and \>, and mention that
- HP-UX's grep, like the one from Solaris, does not support that syntax.
-
-2007-03-09 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Specifying Names): `--host' does not
- change the build type.
-
-2007-03-05 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (C Compiler): Warn that AC_C_BIGENDIAN
- suggests AC_CONFIG_HEADERS.
- * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Warn if not using
- AC_CONFIG_HEADERS. Problem reported by
- Peter O'Gorman.
-
-2007-02-28 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Fix typo "__LITLE_ENDIAN__".
- Problem reported by Paolo Bonzini in:
- http://lists.gnu.org/archive/html/autoconf-patches/2007-02/msg00024.html
- * tests/semantics.at (AC_C_BIGENDIAN): Don't reject hosts that have
- universal binaries. Problem reported by Elias Pipping.
-
-2007-02-27 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: AC_C_BIGENDIAN now supports universal binaries a la Mac OS X.
- * doc/autoconf.texi (C Compiler): Document this. There is a new
- extra argument ACTION-IF-UNIVERSAL.
- * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Implement this.
- Add support for Solaris-style _LITTLE_ENDIAN and _BIG_ENDIAN.
- Reindent for sanity's sake.
-
-2007-02-24 Eric Blake <ebb9@byu.net>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Update
- copyright.
- * lib/autoconf/general.m4 (_AC_INIT_COPYRIGHT): Likewise.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
- (_AT_DECIDE_TRACEABLE): Fix syntax highlighting.
-
-2007-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autotest/general.m4 (AT_INIT): With --clean, return exit
- status of rm so we know when it failed.
- If cleaning of test dir failed before running the test, warn.
- Output the line separator in verbose mode before the warning
- to make clear the warning belongs to the following test.
-
-2007-02-08 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Parentheses): Mention problem with (( in
- shells.
-
-2007-02-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
- and Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Fix quoting
- errors introduced in last change.
-
-2007-02-07 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Prefer \r to
- an actual carriage return. Use "ac_cr" to contain the actual
- carriage return.
- * doc/autoconf.texi (Limitations of Usual Tools): Document problem
- with traditional Awk and begin.
- * tests/torture.at (Limitations of Builtins): Document the problem
- with Bash 2.03 printf.
- (Substitute and define special characters):
- Remove trailing white space. Work around a bug in Solaris 8 /bin/bash.
-
-2007-02-06 Ralf Menzel <menzel@ls6.cs.uni-dortmund.de> (tiny change)
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Redirect
- input from /dev/null in awk test, so even Solaris /usr/bin/awk
- will not wait for input with a script containing only a BEGIN
- rule.
-
-2007-02-03 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Introduction, Why GNU M4): Clarify M4 version
- requirements.
- * README: Likewise.
-
-2007-02-02 Eric Blake <ebb9@byu.net>
-
- * NEWS: Update copyright.
-
- * m4/m4.m4 (AC_PROG_GNU_M4): Reject M4 1.4 through 1.4.4 as
- broken.
- * configure.ac: Update error message.
- * NEWS: Note that M4 1.4.5 or later is now a hard dependency.
- Reported by Gary Vaughan and Jim Meyering, and problem analyzed
- by Stepan Kasal:
- http://lists.gnu.org/archive/html/bug-autoconf/2006-11/msg00025.html
-
-2007-01-31 Eric Blake <ebb9@byu.net>
-
- * THANKS (people): Update.
-
-2007-01-28 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Shellology): pdksh 5.2.14 is still the
- latest version.
- (Shell Substitutions): Note problems with @{var:=value} etc.
- Add a new section for problems with @{#var} etc. Problem noted
- by Ralf Wildenhues. See:
- http://lists.gnu.org/archive/html/libtool-patches/2005-01/msg00157.html
-
-2007-01-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/programs.m4 (AC_PROG_MKDIR_P): Also
- AC_SUBST([MKDIR_P]), so that Automake < 1.10 will pick up its
- trace, if a package uses AC_PROG_MKDIR_P explicitly. The actual
- substitution will still be done by the special code.
- Report by Jim Meyering.
-
- * doc/autoconf.texi (File System Conventions): Mention that
- $PATH_SEPARATOR is for the build system only.
- Report by Keith Marshall.
-
-2007-01-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Setting Output Variables): Mention that
- all non-NUL characters are ok in substituted values.
- * lib/autoconf/status.m4 (_AC_SED_CMD_LIMIT): Fix comment typo.
- (_AC_OUTPUT_FILES_PREPARE): Test and use backslash escaping of
- carriage return for $AWK, needed for BSD awk.
- * tests/torture.at (Substitute and define special characters):
- Test all 8 bit non-NUL characters.
- Report against Automake by Patrick Welche.
-
-2007-01-15 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi: Direntry for "autoconf Invocation" renamed.
-
-2007-01-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/programs.m4 (AC_PROG_SED): When closing a pipe
- early on the reader side, drop stderr of the input to avoid
- `broken pipe' error output; this may happen even with shell
- builtin `echo' of some bash versions. Reports by Ian Macdonald
- <iamacdo@telkomsa.net> and Sam Sexton <Sam.Sexton@reuters.com>.
-
-2007-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Use newlines to
- separate items of `ac_user_opts', to avoid long lines.
- (_AC_INIT_PARSE_ENABLE2, _AC_ENABLE_IF_ACTION): Adjust.
-
-2007-01-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi: Fix some typos.
-
-2007-01-05 Paul Eggert <eggert@cs.ucla.edu>
-
- Fix some wording problems noted by Paolo Bonzini in:
- http://lists.gnu.org/archive/html/autoconf-patches/2007-01/msg00077.html
- * doc/autoconf.texi (Signed Overflow Examples): Give more
- discussion about the allow_superuser_privileges example,
- and change it a bit to make things clearer.
- (Optimization and Wraparound): Clarify whether the compiler
- will generate an infinite loop for the example derived from
- Autoconf's mktime test.
- (Signed Overflow Advice): Say that -ftrapv is meant for debugging.
- Also, clarify unsigned multiplication overflow.
-
-2007-01-04 Eric Blake <ebb9@byu.net>
-
- * bin/Makefile.am (RELEASE_YEAR): New macro.
- (edit): Use it to supply correct copyright year to scripts.
- * bin/autoconf.as (version): Use it.
- * bin/autoheader.in ($version): Likewise.
- * bin/autom4te.in ($version): Likewise.
- * bin/autoreconf.in ($version): Likewise.
- * bin/autoscan.in ($version): Likewise.
- * bin/autoupdate.in ($version): Likewise.
- * bin/ifnames.in ($version): Likewise.
-
-2007-01-02 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Integer Overflow): Revised based on today's
- feedback. The most important changes document what happens when
- you convert an out-of-range value to a signed integer type, and
- say that (sum < a) != (b < 0) reliably detects overflow when sum =
- a + b.
-
- * doc/autoconf.texi (Integer Overflow): Greatly expand and
- rewrite, taking notions from the recent discussion on the gcc and
- autoconf mailing lists; please see
- http://lists.gnu.org/archive/html/autoconf-patches/2006-12/msg00091.html
- and follow the many links.
- (Integer Overflow Basics, Signed Overflow Examples):
- (Optimization and Wraparound, Signed Overflow Advice):
- (Signed Integer Division): New sections.
-
-2006-12-28 Steven G. Johnson <stevenj@alum.mit.edu>
-
- * lib/autoconf/general.m4 (AC_DEFINE_TRACE): Don't include
- preprocessor macro arguments in traced name.
- * doc/autoconf.texi (Defining symbols): Document longstanding
- support for AC_DEFINE-ing macros with arguments, and document
- behavior when the same variable has multiple AC_DEFINEs.
- * lib/autoconf/fortran.m4 (_AC_FC_WRAPPERS): Revert to the
- old implementation which AC_DEFINEs the FC_FUNC and FC_FUNC_
- macros directly, giving much shorter and simpler code.
-
-2006-12-28 Malcolm Purvis <malcolmp@xemacs.org> (trivial change)
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Insert a
- space before "$ac_configure_args" to prevent a 'config.status
- --recheck' failure if ac_configure_args doesn't contain a leading
- space. This works around a problem with the XEmacs configure.ac,
- which uses the (undocumented) ac_configure_args variable
- inconsistently with Autoconf.
-
-2006-12-22 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/functions.m4 (AC_FUNC_MKTIME):
- Include <limits.h>, and use its INT_MAX to rewrite the
- j loop so that it does not overflow 'int'. Problem reported by
- Ralf Wildenhues in
- <http://lists.gnu.org/archive/html/bug-gnulib/2006-12/msg00084.html>.
- Play it safe by shifting left by 1 rather than multiplying by 2,
- as GCC is less likely to optimize this away when the value
- is signed (when it assumes overflow leads to undefined behavior).
- Also, don't assume time_t uses two's complement.
-
-2006-12-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/torture.at (Substitute a 2000-byte string): Avoid using
- a 10kB long (multi-line) string literal, OpenServer 5.0.7 ksh
- dumps core on it. Report by Tim Rice.
-
-2006-12-18 Steven G. Johnson <stevenj@alum.mit.edu>
-
- * lib/autoconf/general.m4 (AC_ARG_ENABLE): Print help about
- --disable-option-checking to --help output even when
- AC_PRESERVE_HELP_ORDER is not used.
- (_AC_INIT_PARSE_ENABLE2): Print warnings using actual --enable or
- --with argument, rather than argument with [-.] replaced by
- underscores.
- * NEWS: Fix typo in previous change; the news was in the
- wrong section.
-
-2006-12-18 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: Warnings are now generated by default for unknown
- --enable-* and --with-* options.
- * doc/autoconf.texi (Option Checking): Renamed from
- (Configure Option Checking). Tighten up the wording a bit.
- (External Software, Package Options): Cross-reference to Option
- Checking, and use this to shorten our section.
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Prefer test -n
- "$x" to test "x$foo" != x.
- * lib/autoconf/status.m4 (AC_OUTPUT): Likewise.
- Don't warn if $enable_option_checking is "no".
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Initialize
- ac_unrecognized_opts to the empty string.
- Don't echo the unrecognized opts, as this might mishandle
- backslashes or leading -.
- (AC_PRESERVE_HELP_ORDER): Put the --disable-option-checking
- usage next to the other --disable-FEATURE options in the
- help string.
-
-2006-12-18 Steven G. Johnson <stevenj@alum.mit.edu>
-
- * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS, _AC_INIT_PARSE_ARGS):
- (_AC_INIT_PARSE_ENABLE2, _AC_INIT_HELP, _AC_ENABLE_IF):
- Print warning for unrecognized --with and --enable options
- (AC_DISABLE_OPTION_CHECKING): New macro to disable warnings.
- * lib/autoconf/status.m4 (AC_CONFIG_SUBDIRS, _AC_OUTPUT_SUBDIRS):
- Disable option checking when subdirs are configured.
- (AC_OUTPUT): If warnings are enabled, print warning about
- unrecognized --with and --enable options at the end of
- the configure output (as well as at the beginning).
- * doc/autoconf.texi (Option Checking): New node.
- Document new option warning functionality.
-
-2006-12-16 Eric Blake <ebb9@byu.net>
-
- * configure.ac (AC_INIT): Bump version, since 2.61a is released.
- * NEWS: Start news for current version.
-
-2006-12-15 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/functions.m4 (AC_FUNC_GETMNTENT):
- Define HAVE_GETMNTENT to 1, not to the empty string.
- Problem originally reported by Jochen Friedrich in
- <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=403243>.
-
- This change prompted by a problem report by Andrey Simonenko in
- <http://lists.gnu.org/archive/html/bug-autoconf/2006-12/msg00026.html>.
- * doc/autoconf.texi (Defining Symbols): AC_DEFINE works for
- object-like macros only, in the traditional portable character
- set.
- * lib/autoconf/general.m4 (AC_DEFINE_TRACE_LITERAL):
- Warn about attempts to define things that are not identifiers.
- * lib/autoconf/fortran.m4 (_AC_FC_WRAPPERS): Rewrite to avoid
- awful hack that AC_DEFINEd macro names containing parentheses.
-
-2006-12-12 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi: Undo some of the 2006-12-10 change. It was
- too drastic, even if Texinfo in theory requires it for info mode.
-
- (config.status Invocation): Renamed back from Recreating a
- Configuration).
- (Obsolete config.status Use): Renamed back from Obsolete Recreation.
- (Autoconf 2.13): Renamed back from 20th-century Autoconf 2.
-
-2006-12-11 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: Version 2.61a.
-
-2006-12-11 Paul Eggert <eggert@cs.ucla.edu>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * NEWS: Document changes with echo and printf, and the lack
- of limits on the total size of multi-line values of substituted
- variables, and the AC_FUNC_FSEEKO fix.
-
-2006-12-10 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Writing Autoconf Input): Renamed from
- Writing configure.ac.
- (Autoconf Input Layout): Renamed from configure.ac Layout.
- (Recreating a Configuration): Renamed from config.status Invocation.
- (Obsolete Recreation): Renamed from Obsolete config.status Use.
- (acconfig Header): Renamed from acconfig.h.
- (20th-century Autoconf 2): Renamed from Autoconf 2.13.
- (Writing Testsuites): Renamed from Writing testsuite.at.
- (Autom4te Cache): Renamed from autom4te.cache.
-
- * BUGS: Remove mention of VPATH problem, since it's now documented
- not to be a bug in the Autoconf build procedure itself, but rather
- a problem with the proprietary `make' programs.
-
- * doc/autoconf.texi (Build Directories): Add a cross reference
- to VPATH and Make.
-
- * build-aux/config.guess, build-aux/config.sub, build-aux/texinfo.tex:
- * doc/standards.texi: Sync from gnulib.
-
- * man/autoconf.1, man/autoheader.1, man/autom4te.1, man/autoreconf.1:
- * man/autoscan.1, man/autoupdate.1, man/config.guess.1:
- * man/config.sub.1, man/ifnames.1: Remove from CVS, since they're
- generated automatically.
-
-2006-12-06 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/c.m4 (_AC_PROG_CC_C89): Also try -xc99=all, for Sun
- C 5.8 on Solaris 10. Using -xc99=all rather than -xc99 bypasses
- the buggy -xc99 option of Forte Developer 7 C on Solaris 9.
-
-2006-12-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Drop the
- `CEOF$ac_eof' special marker, the awk script cannot contain a
- line matching `^CEOF', so this is not needed any more.
- * tests/torture.at (Substitute a newline): Expose the `%!_!# '
- special marker in the test.
-
-2006-12-06 Stepan Kasal <kasal@ucw.cz>
-
- * tests/tools.at (autom4te preselections): Use `find -newer';
- remove one of the sleeps.
-
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ENABLE): Make it
- more readable, using ...
- (_AC_INIT_PARSE_ENABLE2): ... this new helper macro.
-
- * doc/autoconf.texi (autoheader Invocation): Do not double-
- quote the parameter of `AH_BOTTOM' in the example.
-
-2006-12-05 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Configuration Headers): Remove the
- example with multiple input files.
- (autoheader Invocation): Encourage `AH_BOTTOM', discouraging
- multiple input files.
-
-2006-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): When
- creating the awk substitution script, handle one input line at a
- time, so that the maximum length of a substituted (multi-line)
- value is not limited by the size of the sed pattern space.
- The trade-off is a slightly repetitive sed script.
- * doc/autoconf.texi (Limitations of Usual Tools): Branch labels
- can only have up to 7 characters, due to Solaris 10 /bin/sed.
- * tests/torture.at (Substitute a 2000-byte string): Increase the
- test with several long lines, they should not be caught by sed
- limits any more.
-
- * tests/tools.at (autom4te preselections): New test, to flag
- entries missing from autom4te.cfg.
- Report by David Byron <dbyron@hheld.com>.
-
- * tests/torture.at (Substitute a 2000-byte string): Actually use
- AC_PROG_AWK, so the last change works as intended.
- (Substitute and define special characters): Likewise.
- (Substitute a newline): Likewise.
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Use `$AWK'
- instead of `awk' consistently.
- (_AC_OUTPUT_CONFIG_STATUS): Initialize $AWK.
- * tests/torture.at (Torturing config.status): Test both the
- result of AC_PROG_AWK and plain awk.
- (Substitute a 2000-byte string): Likewise.
- (Substitute and define special characters): Likewise.
- (Substitute a newline): Likewise.
-
-2006-12-04 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/functions.m4 (AC_FUNC_FSEEKO): Check that fseeko
- can be assigned to a function pointer. Problem reported by
- Peter Palfrader in <http://bugs.debian.org/401377>. Based on
- part of a patch by Ralf Wildenhues in that same bug report.
-
-2006-12-01 Paul Eggert <eggert@cs.ucla.edu>
-
- * tests/mktests.sh (ac_exclude_list): Exclude AC_FUNC_SETVBUF_REVERSED.
- * tests/semantics.at (AC_FUNC_SETVBUF_REVERSED): New test.
-
-2006-12-01 Eric Blake <ebb9@byu.net>
-
- * lib/autoconf/c.m4 (AC_LANG_INT_SAVE): Avoid newline, to aid in
- cross-compiling from cygwin to mingw.
- Reported by Bob Rossi. This resurrects the 2000-11-30 patch to
- aclang.m4, which was mistakenly removed in the 2001-09-17 patch
- to lib/autoconf/c.m4.
-
-2006-12-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/m4sugar/m4sh.m4 (_AS_ECHO_PREPARE): Use a longer test
- string for more reliable failure. Wrap the entire test that
- causes the broken Solaris printf to dump core, in a subshell,
- so the segmentation fault message is reliably suppressed.
- Fix shell expansion errors by using /usr/ucb/echo always;
- avoid an error on systems without it by another subshell.
- Avoid m4 expansion of `$1'. Set the zeroth argument of the
- subshell-$as_echo to `as_echo', for better error message.
-
-2006-11-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/general.m4 (_AC_CACHE_DUMP): If `BASH_ARGV' or
- `BASH_SOURCE' contain a newline, set them to empty, as they may
- not be unset.
-
-2006-11-27 Paul Eggert <eggert@cs.ucla.edu>
-
- Turn AC_FUNC_SETVBUF_REVERSED into a noop. It's been obsolete for
- years and is too hard to maintain now. The last straw was
- reported by Jerker Baeck in
- <http://lists.gnu.org/archive/html/autoconf/2006-11/msg00102.html>.
- * NEWS: AC_FUNC_SETVBUF_REVERSED is now obsolete.
- * doc/autoconf.texi (Particular Functions): Move
- AC_FUNC_SETVBUF_REVERSED from here...
- (Obsolete Macros): ... to here. Say that it does nothing now.
- * lib/autoconf/functions.m4 (AC_FUNC_SETVBUF_REVERSED):
- Turn into (almost) a no-op.
-
- * lib/autoconf/c.m4 (AC_PROG_GCC_TRADITIONAL, AC_C_CONST):
- (AC_C_VOLATILE):
- Do not recommend via AN_FUNCTION, AN_IDENTIFIER, or AN_HEADER.
- These macros are obsolescent and new applications shouldn't need them.
- * lib/autoconf/functions.m4 (AC_FUNC_CLOSEDIR_VOID, AC_REPLACE_FNMATCH):
- (AC_FUNC_GETLOADAVG, AC_FUNC_GETPGRP, AC_FUNC_MEMCMP):
- (AC_FUNC_SELECT_ARGTYPES, AC_FUNC_SETPGRP, AC_FUNC_STAT, AC_FUNC_LSTAT):
- (AC_FUNC_STRFTIME, AC_FUNC_SETVBUF_REVERSED, AC_FUNC_UTIME_NULL):
- (AC_FUNC_VPRINTF): Likewise.
- * lib/autoconf/headers.m4 (AC_HEADER_DIRENT, AC_HEADER_STAT):
- (AC_HEADER_STDC, AC_HEADER_SYS_WAIT, AC_HEADER_TIME): Likewise.
- * lib/autoconf/types.m4 (AC_STRUCT_TM): Likewise.
-
- * doc/autoconf.texi (Setting Output Variables): Mention that
- @VAR1@VAR2 has unspecified behavior. Problem reported by
- Ralf Wildenhues.
- * NEWS: Mention this.
-
- * Makefile.am: Put only a single '#' into the copyright notice,
- so that it's also present in the output file. Standardize wording
- in makefile copyright notices to match GNU coding standards.
- * bin/Makefile.am: Likewise.
- * doc/Makefile.am: Likewise.
- * lib/Makefile.am: Likewise.
- * lib/freeze.mk: Likewise.
- * lib/autoconf/Makefile.am: Likewise.
- * lib/autoscan/Makefile.am: Likewise.
- * lib/autotest/Makefile.am: Likewise.
- * lib/m4sugar/Makefile.am: Likewise.
- * man/Makefile.am: Likewise.
- * tests/Makefile.am: Likewise.
- * lib/emacs/Makefile.am: Remove copyright notice; it's just a
- one-line file.
-
-2006-11-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Fix error
- in the sed script that mangles the awk script: delete up to the
- first exclamation mark only.
- * tests/torture.at (Substitute and define special characters):
- Test '!' too.
-
-2006-11-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Rewrite config files generation: avoid quadratic growth in
- the number of substituted variables by using awk instead of sed
- for the bulk of the substitutions.
- * NEWS: Mention this.
- * doc/autoconf.texi (Setting Output Variables): `|#_!!_#|' is also
- forbidden in the output (and thus input) file.
- * lib/autoconf/status.m4 (_AC_AWK_LITERAL_LIMIT): New macro.
- (_AC_OUTPUT_FILES_PREPARE): Instead of several sed scripts,
- generate just one large awk script for substitutions,
- eliminating much of the earlier complexity, while adding some
- new complexity. Only expand the substitution templates at
- configure time, for smaller configure script size. If
- _AC_SUBST_FILES are used, test 'awk' for working getline support
- at config.status time. If absent, interpolate through the
- shell. The awk script was written with much help
- from Paolo Bonzini and Paul Eggert.
- (_AC_SED_CMD_NUM, _AC_SED_DELIM_NUM, _AC_SED_FRAG): Removed.
- (_AC_SED_FRAG_NUM): Likewise.
- (_AC_SUBST_CMDS): Renamed from...
- (_AC_SED_CMDS): ...this.
- (_AC_OUTPUT_FILE): Use _AC_SUBST_CMDS.
- * tests/torture.at (Substitute a 2000-byte string): Also
- substitute a line with 1000 words, and a variable with several
- long lines.
- (Substitute and define special characters): Test awk special
- characters, and put substitution input strings `@foo@' in the
- output, to test that no recursion happens; test several other
- combinations from Paolo Bonzini.
-
-2006-11-25 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autotest/general.m4 (AT_INIT): Undo recent changes
- that replaced echo with AS_ECHO where this wasn't necessary.
- Problem reportd by Ralf Wildenhues.
- * lib/m4sugar/m4sh.m4 (_AS_ECHO_PREPARE): Port to Solaris 7,
- where "/usr/bin/printf '%s\n' S" dumps core if S is long.
- This is Sun bug 4206210. Problem reportd by Ralf Wildenhues.
-
-2006-11-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/freeze.mk (GREP): Removed, no need to initialize this.
-
-2006-11-21 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Don't claim
- that traditional Awk lacks 3-arg "split". It has it.
- Mention that FS must be a single character, and a few other
- 99-byte limits of traditional Awk.
- Mention that if (i in a) doesn't work with traditional Awk.
-
-2006-11-18 Paul Eggert <eggert@cs.ucla.edu>
-
- * tests/autotest.at (BSx641-newline in command):
- (BS-BS-newline in command, BSx640-newline in command):
- (Newline-CODE-BS-newline in command):
- (Single-quote-BS-newline in command):
- (Single-quote-newline-BS-newline in command):
- Use printf '%s\n' instead of echo, for portability to hosts
- where echo interprets backslashes. This will break on hosts
- that lack printf, but for now let's assume all such hosts
- are dead (if not, we should get reports of test failures).
-
-2006-11-17 Paul Eggert <eggert@cs.ucla.edu>
-
- 'echo' has some portability problems, when given a first argument
- with a leading '-', or when given any argument containing '\'.
- Avoid using 'echo' in these cases.
- * bin/Makefile.am $(bin_SCRIPTS): Rewrite to avoid 'echo' entirely.
- * lib/autoconf/c.m4 (AC_PROG_CC, AC_PROG_CXX, AC_PROG_OBJC): Likewise.
- * lib/autoconf/fortran.m4 (_AC_PROG_FC): Likewise.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
- * bin/autoconf.as: Use AS_ECHO rather than plain echo, when the
- argument might be unportable.
- * lib/autoconf/c.m4 (AC_PROG_CC_C_O): Likewise.
- * lib/autoconf/erlang.m4 (AC_LANG(Erlang)): Likewise.
- * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT):
- (_AC_FC_LIBRARY_LDFLAGS): Likewise.
- * lib/autoconf/functions.m4 (AC_FUNC_GETLOADAVG): Likewise.
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ENABLE, _AC_INIT_PREPARE):
- (_AC_ARG_VAR_VALIDATE, AC_ARG_PROGRAM, _AC_MSG_LOG_CONFTEST):
- (AC_RUN_LOG, _AC_RUN_IFELSE, _AC_LIBOBJS_NORMALIZE): Likewise.
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Likewise.
- * lib/autoconf/libs.m4 (_AC_PATH_X_DIRECT): Likewise.
- * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH):
- (AC_PROG_MAKE_SET): Likewise.
- * lib/autoconf/status.m4 (_AC_SRCDIRS, _AC_OUTPUT_HEADER):
- (_AC_OUTPUT_SUBDIRS, _AC_OUTPUT_CONFIG_STATUS): Likewise.
- * lib/autotest/general.m4 (_AT_CREATE_DEBUGGING_SCRIPT, AT_INIT):
- (AT_CLEANUP, _AT_DECIDE_TRACEABLE, _AT_CHECK): Likewise.
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE, _AS_ECHO_UNQUOTED):
- (_AS_BASENAME_SED, _AS_DIRNAME_SED, AS_MKDIR_P, AS_TMPDIR, AS_UNAME):
- (AS_TR_SH, AS_TR_CPP, AS_VAR_GET): Likewise.
- * bin/autoconf.as: Redo verbose flag implementation, as the old
- scheme wouldn't work with AS_ECHO.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
- * lib/autoconf/general.m4 (AC_MSG_RESULT, AC_MSG_RESULT_UNQUOTED):
- Don't use ECHO_T, since ECHO_N is now reliable.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
- * lib/autoconf/general.m4 (AC_ARG_PROGRAM): Use sed "$script"
- rather than using a here-document to put the script into a file.
- (_AC_DO_ECHO): Hoist the eval out of the echo, so that we can
- use AS_ECHO.
- * lib/m4sugar/m4sh.m4 (AS_VAR_GET): Likewise.
- * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH): Use
- AS_ECHO_N rather than ECHO_N and ECHO_C. This doesn't fix any
- bug, but we might as well stop using ECHO_N and ECHO_C internally.
- * lib/autotest/general.m4 (AT_SETUP): Likewise.
- * lib/m4sugar/m4sh.m4 (_AS_ECHO_N): Likewise.
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS):
- (_AC_OUTPUT_MAIN_LOOP): Rework echo so that it has just one
- operand, as AS_ECHO requires. Avoid double file name expansion.
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Invoke _AS_ECHO_PREPARE.
- Don't set as_nl, since _AS_ECHO_PREPARE does that now.
- (_AS_PREPARE): Comment that _AS_ECHO_N_PREPARE is just for user code.
- (AS_ECHO, AS_ECHO_N, _AS_ECHO_PREPARE): New macros.
- * tests/c.at (AC_PROG_CPP without warnings, AC_PROG_CPP via CC):
- Double-quote strings that would otherwise contain M4 comments.
- * tests/m4sh.at (AS_ECHO and AS_ECHO_N): New test.
-
- * configure.ac (AC_INIT): Bump to 2.61a.
- * NEWS: Likewise.
-
-2006-11-17 Paul Eggert <eggert@cs.ucla.edu>
-
- Version 2.61.
-
- * configure.ac (AC_INIT): Bump to 2.61.
- * NEWS: Likewise.
-
- * tests/autotest.at (Macro with backslash in a test title):
- Comment out for now, as this tests neither fails nor passes
- reliably. Problem reported by Ralf Wildenhues.
-
-2006-11-16 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ENABLE): Fix some typos
- in previous change, which caused test failures.
-
-2006-11-16 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Factor out
- code for --enable, --disable, --with, and --without to...
- (_AC_INIT_PARSE_ENABLE): ... a new macro.
- * doc/autoconf.texi (Package Options):
- * NEWS: Document that AC_ARG_ENABLE allows dots, too.
-
-2006-11-16 Paul Eggert <eggert@cs.ucla.edu>
-
- Import these changes from config via gnulib:
-
- 2006-11-15 Ben Elliston <bje@gnu.org>
-
- From Josselin Mouette <joss@debian.org>:
- * build-aux/config.guess (SX-8:SUPER-UX:*:*): New.
-
- 2006-11-08 Ben Elliston <bje@gnu.org>
-
- * build-aux/config.guess (authenticamd:Interix*:[3456]*): Another AMD64.
-
- 2006-11-07 Steve Woodford <scw@NetBSD.org>
- Ben Elliston <bje@gnu.org>
-
- * build-aux/config.guess (*:NetBSD:*:*): Handle sh5el arch.
- * build-aux/config.sub (sh5el): New basic_machine.
-
-
- Import this change from coreutils:
-
- 2006-02-13 Jim Meyering <jim@meyering.net>
-
- * GNUmakefile (all): Emit diagnostics to stderr, not stdout.
-
-
- Import this change from gnustandards via gnulib:
-
- 2006-11-15 Karl Berry <karl@gnu.org>
-
- * standards.texi: core -> memory, throughout.
- (CPU Portability): show correct example of calling write
- on a char value; thanks to Paul Eggert for the code.
- Both of these suggestions from Eugene Y. Vasserman.
-
-
- Import these changes from texinfo via gnulib:
-
- 2006-11-08 Karl Berry <karl@gnu.org>
-
- * build-aux/texinfo.tex (\dopdfimage): look for png, jpg/jpeg/JPG, and
- as well as pdf images, since they are supported in pdftex with
- no further ado.
-
- 2006-11-05 Karl Berry <karl@gnu.org>
-
- * doc/texinfo.tex (Image Syntax): don't mention GIF any more.
-
-2006-11-13 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: Document the AC_ARG_WITH change.
-
-2006-11-13 Bruno Haible <bruno@clisp.org>
-
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): For --with, --without
- options, transliterate also dots to underscores.
- (_AC_ENABLE_IF): Transliterate also dots to underscores.
- * doc/autoconf.texi (External Software): Document that AC_ARG_WITH's
- first argument may also contain dots.
-
-2006-11-09 Paul Eggert <eggert@cs.ucla.edu>
-
- * tests/mktests.sh (ac_exclude_list): Exclude AC_PROG_CXX_C_O, for
- benefit of platforms like Solaris+GCC where it is common to have a
- non-working g++ installation.
-
-2006-11-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
- and Joel E. Denny <jdenny@ces.clemson.edu>
- and Paul Eggert <eggert@cs.ucla.edu>
-
- * tests/autotest.at (AT_CHECK_AT_TITLE): Fix shell quoting bugs
- and non-portable sed scripts, and use $CONFIG_SHELL when invoking
- ./micro-suite.
-
-2006-11-08 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/types.m4 (AC_TYPE_LONG_LONG_INT): Set
- ac_cv_type_long_long_int to 'yes' instead of 'cross-compiling'.
- Imported from a similar patch to gnulib by Bruno Haible.
-
-2006-11-08 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: New macros AC_C_FLEXIBLE_ARRAY_MEMBER, AC_C_VARARRAYS.
- * doc/autoconf.texi (C Compiler): Document them.
- * lib/autoconf/c.m4 (AC_C_FLEXIBLE_ARRAY_MEMBER, AC_C_VARARRAYS):
- New macros, taken from gnulib.
-
-2006-11-07 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/types.m4 (AC_TYPE_LONG_LONG_INT): Detect bug in
- Tandem NonStop Kernel (OSS) cc -O circa 2004, reported by
- Matthew Woehlke.
-
-2006-10-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/torture.at (Configuring subdirectories): Do not skip
- Automake 1.10 nor future Automake 11.1 (sic).
-
-2006-10-26 Joel E. Denny <jdenny@ces.clemson.edu>
- and Stepan Kasal <kasal@ucw.cz>
-
- Handle special characters in test case titles correctly.
- * lib/autotest/general.m4 (AT_INIT): M4-quote and AS_ESCAPE AT_help_all
- properly.
- (AT_SETUP): M4-quote and AS_ESCAPE the title properly everywhere.
- * tests/autotest.at (AT_CHECK_AT_TITLE): Add EXPANDED-TITLE-TO-TEST
- argument. Extend to check titles printed by ./micro-suite and
- ./micro-suite -l and the title in micro-suite.log.
- (Backquote in a test title,
- Single-quote in a test title,
- Double-quote in a test title): Don't expect failure anymore.
- (Backslash in a test title): Put a non-whitespace character after the
- backslash so that Bourne shells might actually see it as an escape
- sequence.
- (Brackets in a test title,
- Pound in a test title,
- Comma in a test title,
- Quoted Macro in a test title,
- Macro in a test title,
- Macro with single-quote in a test title): New tests.
- (Macro with backquote in a test title,
- Macro with double-quote in a test title,
- Macro with backslash in a test title): New tests expected to fail.
- * tests/torture.at (#define header templates): M4-quote this title in
- AT_SETUP call so that no M4 code is commented inadvertently somewhere.
- The visible effect was a stray [] in the testsuite output.
-
-2006-10-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Limitations of Builtins): Do not invoke
- `trap ... 0' inside a function, for AIX sh.
-
-2006-10-26 Paul Eggert <eggert@cs.ucla.edu>
-
- * tests/base.at (AC_COMPUTE_INT): Test **0** rather than 1 / 0,
- since powerpc-apple-darwin8-gcc-4.0.1 (Apple Computer, Inc. build
- 5363) simply issues a warning when dividing by zero at compile
- time. Problem reported by Elias Pipping.
-
-2006-10-26 Eric Blake <ebb9@byu.net>
-
- * THANKS: Update.
- * doc/autoconf.texi (Evaluation Macros): Improve the example to
- show effect on macros that expand with commas.
- Reported by Joel E. Denny.
-
- * tests/m4sugar.at (m4_warn, m4_require: circular dependencies):
- Also work with M4 1.4.8.
-
-2006-10-25 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Slashes): Document Tru64 4.0 bug reported by
- Jim Meyering.
-
-2006-10-25 Stepan Kasal <kasal@ucw.cz>
-
- * tests/tools.at (autom4te --force): New test, verifies that
- `--force' always rewrites the output file.
-
-2006-10-24 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Document that rm
- needs operands on NetBSD 2.0.2. Problem reported by Bruno Haible.
-
-2006-10-24 Stepan Kasal <kasal@ucw.cz>
-
- * tools/trace.at (autoconf --trace: user macros): Test `$%'.
-
-2006-10-24 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/specific.m4 (_AC_SYS_LARGEFILE_MACRO_VALUE):
- If FUNCTION-BODY is nonempty, use AC_LINK_IFELSE rather than
- AC_COMPILE_IFELSE, to work around problem with OSF/1 4.0F fseeko
- reported by Nelson H. F. Beebe for Coreutils 6.4.
-
- * tests/tools.at (autoconf --trace: user macros): Remove test
- for tracing multiline macros, since m4 1.4.7a uses a different
- way to number lines. Problem reported by Ralf Wildenhues.
-
-2006-10-24 Stepan Kasal <kasal@ucw.cz>
-
- * bin/autom4te.in (handle_m4): Do not redirect stdin to
- /dev/null since the heuristics for interactive behaviour was
- fixed in CVS m4.
-
- * bin/autom4te.in: With --force, always refresh the output
- file. Problem reported by Greg Schafer <gschafer@zip.com.au>.
-
- * bin/autoconf.as: Fix the verbose message at the end.
-
-2006-10-23 Paul Eggert <eggert@cs.ucla.edu>
-
- * configure.ac (AC_INIT): Bump to 2.60c.
- * NEWS: Likewise.
-
-2006-10-22 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: Version 2.60b.
-
- Import this change from Texinfo:
- 2006-10-15 Karl Berry <karl@gnu.org>
- * build-aux/texinfo.tex: automake 1.10
-
- * NEWS: Remove AC_CACHE_CHECK_INT.
- * doc/autoconf.texi (Caching Results): Likewise.
- * lib/autoconf/general.m4 (_AC_CACHE_CHECK_INT): Renamed from
- AC_CACHE_CHECK_INT, since it's no longer public.
- * lib/autoconf/types.m4: All uses of AC_CACHE_CHECK_INT changed.
- * tests/base.at (AC_COMPUTE_INT): Test this, not AC_CACHE_CHECK_INT.
-
-2006-10-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Fix two typos.
-
-2006-10-19 Eric Blake <ebb9@byu.net>
-
- * lib/m4sugar/m4sugar.m4 (m4_mkstemp): New macro.
- (m4_maketemp): Avoid warnings with M4 1.9a.
- * lib/emacs/autoconf-mode.el (autoconf-font-lock-keywords): Color
- m4_mkstemp.
- * doc/autoconf.texi (Redefined M4 Macros): Document m4_mkstemp.
- * NEWS: Likewise.
-
-2006-10-16 Eric Blake <ebb9@byu.net>
-
- * doc/autoconf.texi (Setting Output Variables): Fix typo.
-
- * bin/autoconf.as (version): Reword to match GNU Coding
- Standards.
- * bin/autoheader.in (version): Likewise.
- * bin/autom4te.in (version): Likewise.
- * bin/autoreconf.in (version): Likewise.
- * bin/autoscan.in (version): Likewise.
- * bin/autoupdate.in (version): Likewise.
- * bin/ifnames.in (version): Likewise.
-
-2006-10-14 Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sh.m4 (AS_LITERAL_IF): Expand $1 before
- looking for special shell characters.
- * lib/autoconf/functions.m4 (AC_CHECK_FUNC): Do not expand the
- macro defined by AS_VAR_PUSHDEF before passing it as a
- parameter.
- * lib/autoconf/general.m4 (AC_CHECK_FILE, AC_CHECK_DECL):
- * lib/autoconf/libs.m4 (AC_SEARCH_LIBS, AC_CHECK_LIB):
- * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW, AC_CHECK_MEMBER):
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL):
- (_AC_CHECK_HEADER_NEW, _AC_CHECK_HEADER_OLD, _AC_CHECK_HEADER_DIRENT):
- Likewise.
- * lib/autotest/general.m4 (AT_INIT): Quote parameters of
- AS_VAR_* properly.
- * tests/m4sh.at (AS_LITERAL_IF): New test.
-
-2006-10-14 Paul Eggert <eggert@cs.ucla.edu>
-
- (Imported from Automake.)
- * build-aux/install-sh (posix_mkdir): Reject FreeBSD 6.1 mkdir -p -m,
- which incorrectly sets the mode of an existing destination
- directory. In some cases the unpatched install-sh could do the
- equivalent of "chmod 777 /" or "chmod 0 /" on a buggy FreeBSD
- system. We hope this is rare in practice, but it's clearly worth
- fixing. Problem reported by Alex Unleashed in
- <http://lists.gnu.org/archive/html/bug-autoconf/2006-10/msg00012.html>.
- Also, don't bother to check for -m bugs unless we're using -m;
- suggested by Stepan Kasal.
-
-2006-10-14 Paul Eggert <eggert@cs.ucla.edu>
-
- Import this change from Automake:
-
- 2006-08-23 Alexandre Duret-Lutz <adl@gnu.org>
- * lib/Autom4te/ChannelDefs.pm (usage): Mention that -Wportability
- is enabled by default with gnu and gnits strictness.
- Report from Bruno Haible.
-
- 2006-03-10 Alexandre Duret-Lutz <adl@gnu.org>
- * lib/Autom4te/ChannelDefs.pm: Make -Wportability the default in
- gnu and gnits modes.
-
- Import this change from Config:
-
- 2006-09-20 Ben Elliston <bje@gnu.org>
- * build-aux/config.sub (score, score-*): New.
-
- Import this change from Gnulib:
-
- 2006-09-16 Karl Berry <karl@gnu.org>
- * doc/fdl.texi (ADDENDUM): switch to @heading from @appendixsubsec,
- to avoid sectioning errors.
-
- Import these changes from Texinfo:
-
- 2006-10-04 Karl Berry <karl@gnu.org>
- * build-aux/texinfo.tex (\singlequotechar): rename to \codequoteright.
- (\quoteexpand): rename to \rquoteexpand.
- (\codequoteleft): new def, to look for @set codequotebacktick.
- (\lquoteexpand, \quoteexpand): new defs.
- (\lquoteChar, \rquoteChar, \dashChar, \underChar: new \chardef's.
- (\code): must use new \...Char values, since now ` is active.
-
- 2006-08-26 Karl Berry <karl@gnu.org>
- * build-aux/texinfo.tex (\textdegree): New command.
-
- 2006-08-12 Karl Berry <karl@gnu.org>
- * build-aux/texinfo.tex (error \box0): smaller font.
-
-2006-10-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Autoheader Macros): Fix syntax error.
-
-2006-10-13 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Autoheader Macros): Warn that the text
- added to the template can get mangled.
-
-2006-10-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/functions.m4 (AC_FUNC_OBSTACK): In the test,
- include the default headers, and redefine obstack_chunk_alloc
- and obstack_chunk_free. Fixes false failure with glibc.
-
-2006-10-12 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/m4sugar/m4sh.m4 (_AS_TEST_PREPARE): Set as_executable_p,
- for backward compatibility with Libtool 1.5.22. Problem reported
- by Ralf Wildenhues.
-
-2006-10-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/c.m4 (AC_PROG_GCC_TRADITIONAL): Require
- AC_PROG_CC.
- Report by IOhannes m zmoelnig <zmoelnig@iem.at>.
-
-2006-10-11 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: AC_USE_SYSTEM_EXTENSIONS now defines _TANDEM_SOURCE for
- the NonStop platform.
- * doc/autoconf.texi (Posix Variants): Likewise.
- * lib/autoconf/specific.m4 (AC_USE_SYSTEM_EXTENSIONS): Likewise.
-
- * lib/m4sugar/m4sh.m4 (AS_TEST_X): New macro.
- (AS_EXECUTABLE_P): Use as_test_x rather than as_executable_p.
- (_AS_TEST_PREPARE): Set as_test_x rather than as_executable_p.
- Use a better substitute, by inspecting the output of "ls"
- rather than just using ":".
- * lib/autoconf/general.m4 (_AC_LINK_IFELSE): Use AS_TEST_X
- rather than AS_EXECUTABLE_P, since we needn't worry about
- non-regular files here.
-
- * NEWS: Autoconf-generated shell scripts no longer export BIN_SH,
- due to configuration hassles with this. See Tonya Underwood's report
- <http://lists.gnu.org/archive/html/bug-autoconf/2006-10/msg00003.html>.
- * doc/autoconf.texi (Special Shell Variables): Likewise.
-
-2006-10-11 Paul Eggert <eggert@cs.ucla.edu>
- Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sh.m4 (AS_BOURNE_COMPATIBLE): Don't set BIN_SH.
- (_AS_DETECT_BETTER_SHELL): Don't look in /usr/bin/posix.
-
-2006-10-11 Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sh.m4 (AS_BOURNE_COMPATIBLE): Move the
- initialization which is not inherited through the environment
- (_AS_BOURNE_COMPATIBLE): ... to this new macro.
- (_AS_RUN): Call _AS_BOURNE_COMPATIBLE, not AS_BOURNE_COMPATIBLE.
-
-2006-10-09 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Describe
- problems with mkdir -p -m.
-
-2006-10-06 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/c.m4 (_AC_PROG_PREPROC_WORKS_IFELSE): Remove
- comment about ac_cpp_err; it was incorrect, and anyway
- ac_cpp_err is being removed below.
- * lib/autoconf/general.m4 (_AC_PREPROC_IFELSE): Don't
- set ac_cpp_err to 'yesyes' if preproc_warn_flag and werror_flag
- are both 'yes'. In fact, don't bother setting ac_cpp_err at all;
- nobody uses it.
- (_AC_COMPILE_IFELSE, _AC_LINK_IFELSE): Don't log our funky tests
- with werror_flag and conftest.err and so forth. This is more
- compatible with how _AC_PROG_PREPROC_WORKS_IFELSE behaves,
- and anyway the user shouldn't normally want to see this gorp logged.
- Problem reported by Ralf Wildenhues.
- * lib/autoconf/lang.m4 (AC_LANG_WERROR): werror_flag's default is
- empty, not 'no', since the rest of the code uses 'test -z'.
-
-2006-10-04 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/general.m4 (_AC_COMPILE_IFELSE, _AC_LINK_IFELSE):
- Use a single call to AC_DO_TOKENS rather than multiple, for
- efficiency.
- (_AC_LINK_IFELSE): Test that resulting file is executable.
- Problem reported by mwoehlke in
- <http://lists.gnu.org/archive/html/bug-coreutils/2006-10/msg00048.html>.
-
- * lib/m4sugar/m4sh.m4 (_AS_TEST_PREPARE): Use "test -x /" rather
- than creating a file to use with test -x; this is much faster.
-
-2006-10-02 Bruno Haible <bruno@clisp.org>
-
- * lib/autom4te.in (Automake-preselections): Add
- AM_GNU_GETTEXT_INTL_SUBDIR, for automake 1.10.
-
-2006-09-27 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Writing testsuite.at): Fix a typo: for
- standard error, `experr' should be used, not `expout'.
-
-2006-09-26 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/functions.m4 (AC_FUNC_FSEEKO): Don't compile the
- fseeko testing program twice; just use the earlier result.
- * lib/autoconf/specific.m4 (_AC_SYS_LARGEFILE_MACRO_VALUE):
- Set cache var to 'unknown' (not 'no') if leaving the macro unset
- still doesn't let the program compile.
- (AC_SYS_LARGEFILE): Test for _LARGE_FILES only if earlier tests
- failed.
-
- * lib/autoconf/functions.m4: Fix problems reported by Ralf Wildenhues.
- (AC_FUNC_ERROR_AT_LINE): Don't bother to check for error.h. Just
- include it, without including anything else.
- (AC_FUNC_FSEEKO): Avoid gcc -Wall warnings about constant
- expressions.
- (AC_FUNC_STRNLEN): Require AC_USE_SYSTEM_EXTENSIONS.
-
-2006-09-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/functions.m4 (AC_FUNC_ERROR_AT_LINE): Check for
- `error.h', and include it, for a `error_at_line' prototype.
- Use a nonempty format string in the link test.
- * lib/autoconf/functions.m4 (AC_FUNC_WAIT3): Include <sys/wait.h>,
- for a declaration of wait3.
-
-2006-09-26 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: AC_CHECK_DECL now also works with aggregate objects.
- * doc/autoconf.texi (Generic Declarations): Clarify that AC_CHECK_DECL
- can apply to constants too, and that it checks for macro defns.
- * lib/autoconf/general.m4 (AC_CHECK_DECL): Assume C89 or better,
- and simply cast the identifier to void. This handles structure
- values. Problem reported by Ralf Wildenhues.
- * tests/semantics.at (AC_CHECK_DECLS): Also check enums.
-
-2006-09-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/semantics.at (AC_CHECK_DECLS): Also check macros,
- structure, and function symbols.
-
-2006-09-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/semantics.at (AC_CHECK_MEMBERS): Also test with a struct
- member.
-
-2006-09-25 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: Recommend M4 1.4.7 instead of 1.4.6.
- * README: Likewise.
- * doc/autoconf.texi (Introduction, Why GNU M4): Likewise.
-
-2006-09-25 Paul Eggert <eggert@cs.ucla.edu>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/functions.m4 (AC_FUNC_OBSTACK): Avoid `gcc -Wall'
- warnings (uninitialized value).
- (AC_FUNC_UTIME_NULL): Likewise, test for and include <utime.h> if
- present.
- * lib/autoconf/types.m4 (AC_TYPE_LONG_LONG_INT): Likewise, add
- parentheses.
- (AC_STRUCT_TM): Likewise, avoid unused variables.
-
-2006-09-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/c.m4 (_AC_ARG_VAR_LDFLAGS): Update comment.
- (_AC_ARG_VAR_LIBS): New macro: let LIBS be precious.
- (AC_PROG_CC, AC_PROG_CXX, AC_PROG_OBJC): Call _AC_ARG_VAR_LIBS.
- * lib/autoconf/fortran.m4 (AC_PROG_F77, AC_PROG_FC): Likewise.
- Report by Olly Betts.
-
-2006-09-19 Eric Blake <ebb9@byu.net>
-
- * m4/m4.m4: Change copyright.
- * configure: Regenerate.
- * Makefile.in: Likewise.
- * bin/Makefile.in: Likewise.
- * doc/Makefile.in: Likewise.
- * lib/Makefile.in: Likewise.
- * lib/Autom4te/Makefile.in: Likewise.
- * lib/autoconf/Makefile.in: Likewise.
- * lib/autoscan/Makefile.in: Likewise.
- * lib/autotest/Makefile.in: Likewise.
- * lib/emacs/Makefile.in: Likewise.
- * lib/m4sugar/Makefile.in: Likewise.
- * man/Makefile.in: Likewise.
- * tests/Makefile.in: Likewise.
-
- * m4/m4.m4 (AC_PROG_GNU_M4): Check for m4 --debugfile support.
- * bin/Makefile.am (edit): Substitute M4_DEBUGFILE.
- * bin/autom4te.in (handle_m4): Favor --debugfile over misnamed
- --error-output, to avoid warnings with M4 2.0.
-
-2006-09-19 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/libs.m4 (AH_CHECK_LIB): Fix quoting, to be
- consistent with _AH_CHECK_FUNCS and _AH_CHECK_HEADERS.
- * lib/autoconf/headers.m4 (AH_CHECK_HEADERS_DIRENT): Likewise.
-
-2006-09-15 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/functions.m4 (AC_FUNC_GETMNTENT): Eliminate the
- expansion of AC_CHECK_FUNCS.
-
-2006-09-14 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (AC_CONFIG_MACRO_DIR): Remove a
- mistaken comment: the path has to be relative; do not use
- the path at runtime.
-
-2006-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): Quote the
- argument to `--prefix' for sub-configure scripts.
- Pass `--silent' to sub-configure scripts.
- * tests/torture.at (Configuring subdirectories): Add tests
- for both changes.
- * doc/autoconf.texi (Setting Output Variables): Fix example to
- not show `--silent' being passed to a `configure' re-run.
-
-2006-09-12 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Input): Clarify role of AC_CONFIG_MACRO_DIR.
- * lib/autoconf/general.m4 (AC_CONFIG_MACRO_DIR): Do not check
- for the existence of the directory at configure-time. That's
- too late, anyway. Problem reported by Stefan Seefeld.
-
- * lib/m4sugar/m4sh.m4 (_AS_TEST_PREPARE): Avoid bug in UnixWare
- 7.1.4 /usr/bin/posix/sh described by Tim Rice in
- <http://lists.gnu.org/archive/html/bug-autoconf/2006-09/msg00017.html>.
-
-2006-09-11 Stepan Kasal <kasal@ucw.cz>
-
- * tests/local.at (AT_CHECK_M4): Fix this so that the testsuite
- works with GNU M4 1.4.3 again; make the normalized form
- match the current m4 message; fix the description.
- * test/tools.at (autom4te cache): Adapt to the change.
-
-2006-09-08 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/functions.m4 (AC_FUNC_MKTIME): Add year_2050_test
- to catch glibc bug 2821
- <http://sourceware.org/bugzilla/show_bug.cgi?id=2821>.
-
- Merge from gnulib as follows: Use AC_CHECK_HEADERS_ONCE instead of
- AC_CHECK_HEADERS, and likewise for AC_CHECK_FUNCS_ONCE and
- AC_CHECK_FUNCS. Don't check for stdlib.h, since we now
- assume C89.
-
-2006-09-08 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autom4te.in (Autoconf-without-aclocal-m4): Move the
- preselections ...
- (Autoconf): ... here.
- (Autoscan-preselections): Delete.
-
-2006-09-07 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autom4te.in (Automake-preselections): Preselect
- AM_ENABLE_MULTILIB.
-
-2006-09-05 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Preset Output Variables): srcdir and
- top_srcdir are not necessarily relative. Problem reported
- by Dries Kimpe.
-
-2006-09-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/fortran.m4 (_AC_PROG_FC): Prefer xlf90/xlf95 over
- f90/f95 because the latter drivers of AIX Fortran 9.1 do not
- accept files with extension `.f'. For consistency, also prefer
- xlf over f77.
- * doc/autoconf.texi (Fortran Compiler): Remove mention of bug
- from last patch.
-
-2006-09-05 Romain Lenglet <rlenglet@users.forge.objectweb.org>
-
- * lib/autoconf/erlang.m4 (AC_ERLANG_CHECK_LIB): Added substitution
- of ERLANG_LIB_VER_* variables.
- * doc/autoconf.texi (Erlang Libraries): Document ERLANG_LIB_VER_*
- variables.
-
-2006-09-03 Paul Eggert <eggert@cs.ucla.edu>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Limitations of Builtins): Document 'unset'
- bugs of Bash 2.01 and 2.05a.
- (Fortran Compiler): Document that AC_PROG_CC should be called
- before AC_PROG_FC, due to a bug in Autoconf.
-
-2006-09-01 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: New macro AC_CACHE_CHECK_INT. It replaces the
- old AC_COMPUTE_INT, which now behaves like _AC_COMPUTE_INT
- except the first two arguments are reversed.
- * doc/autoconf.texi (Caching Results): New macro AC_CACHE_CHECK_INT.
- (Generic Compiler Characteristics): AC_COMPUTE_INT no longer
- caches nor outputs a diagnostic. Suggested by Bruno Haible.
- * lib/autoconf/general.m4 (AC_CACHE_CHECK_INT): New macro,
- equivalent to the old AC_COMPUTE_INT.
- (AC_COMPUTE_INT): No longer caches or reports. New signature.
- All uses changed to AC_CACHE_CHECK_INT.
- * tests/base.at (AC_CACHE_CHECK_INT): New test.
- * tests/mktests.sh (ac_exclude_list): Add AC_CACHE_CHECK_INT.
-
-2006-08-31 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: AC_FUNC_FNMATCH, AC_FUNC_FNMATCH_GNU, AC_FUNC_GETLOADVG,
- and AC_REPLACE_FNMATCH are now obsolescent in Autoconf. New
- programs should use their Gnulib counterparts.
- * doc/autoconf.texi (Particular Functions): Likewise.
- (Macro Names, testsuite Invocation): Replace uses of these
- obsolete macros with uses of non-obsolete macros.
-
-2006-08-29 Eric Blake <ebb9@byu.net>
-
- * configure.ac (AC_INIT): Bump to 2.60b.
- * NEWS: Update.
-
-2006-08-28 Eric Blake <ebb9@byu.net>
-
- * lib/autoconf/headers.m4 (AC_HEADER_STAT): Fix logic that was
- mistakenly swapped on 2006-08-15.
-
-2006-08-25 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: Version 2.60a.
-
-2006-08-25 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (_AC_LINK_IFELSE): Remove the IPA/IPO
- file created by the PGI compiler.
-
-2006-08-25 Noah Misch <noah@cs.caltech.edu>
-
- * lib/Autom4te/General.pm (END): Use `File::Path::rmtree' to
- simplify the code.
-
-2006-08-25 Paul Eggert <eggert@cs.ucla.edu>
-
- Fix Lex library problem reported to us by Julio Garvia.
- * doc/autoconf.texi (Particular Programs): YYTEXT_POINTER is
- for the default, which the user can override.
- * lib/autoconf/programs.m4 (AC_PROG_LEX): Let _AC_PROG_LEX_YYTEXT_DECL
- deal with LEXLIB.
- (_AC_PROG_LEX_YYTEXT_DECL): Handle caching correctly; the old code
- didn't work if some values were cached but not others. Test for
- broken lex libraries like native ia64-hp-hpux11.22; see
- <http://sources.redhat.com/ml/binutils/2003-12/msg00337.html>, and
- work around the problem by preferring an empty LEXLIB to -lfl or
- -ll. Let the user set LEXLIB='' to indicate no library needed.
-
- * NEWS: Recommend M4 1.4.6 instead of 1.4.5.
- * README: Likewise.
- * doc/autoconf.texi (Introduction, Why GNU M4): Likewise.
-
-2006-08-24 Paul Eggert <eggert@cs.ucla.edu>
-
- Rework to use more-modern build style.
- Many files are renamed; all uses of their names were changed.
- * .x-sc_trailing_blank: Renamed from .x-sc_trailing_space.
- * .x-sc_useless_cpp_parens: New file.
- * build-aux/config.guess: Renamed from config/config.guess. Update.
- * build-aux/config.sub: Renamed from config/config.sub. Update.
- * build-aux/elisp-comp: Renamed from config/elisp-comp.
- * build-aux/install-sh: Renamed from config/install-sh. Update.
- * build-aux/mdate-sh: Renamed from config/mdate-sh.
- * build-aux/missing: Renamed from config/missing.
- * build-aux/texinfo.tex: Renamed from config/texinfo.tex. Update.
- * build-aux/vc-list-files: Renamed from config/vc-list-files.
- * config/Makefile.am: Removed.
- * config/mkinstalldirs: Removed.
- * config/move-if-change: Removed.
- * m4/m4.m4: Renamed from config/m4.m4. Add (C) to copyright notice.
- * Makefile.am (SUBDIRS): Remove config.
- (ACLOCAL_AMFLAGS): Include from m4, not config.
- (EXTRA_DIST): Add config/announce-gen, config/prev-version.txt.
- (WGET, WGETFLAGS): New macros, since Makefile.maint no longer does this.
- (autom4te-update): Rewrite with a loop. Get from gnulib, not automake.
- Fail if there's an error.
- * Makefile.cfg (move_if_change): Remove.
- (wget_files): Remove.
- (cvs_executable_files): New macro.
- (cvs_files): Use it. Remove mkinstalldirs. Add fdl.texi.
- (executable-update): Use $(cvs_executable_files).
- (local-checks-to-skip): Remove.
- * Makefile.maint: Merge from coreutils, plus add our own changes
- (gzip_rsyncable): New macro.
- (GZIP_ENV): Use it.
- (CVS_LIST): Use build-aux/vc-list-files.
- (VERSION_REGEXP): New macro.
- (local-checks-available): Add patch-check, $(syntax-check-rules),
- check-AUTHORS.
- (syntax-check-rules): Compute dynamically.
- (sc_cast_of_x_alloc_return_value): Work even if no source files.
- (sc_cast_of_alloca_return_value): Likewise.
- (sc_prohibit_atoi_atof): Simplify regexp.
- (sc_no_if_have_config_h, sc_require_config_h):
- (sc_prohibit_assert_without_use,
- (sc_obsolete_symbols): Check for O_NDELAY.
- (sc_texi_notab): Remove.
- (sc-changelog): Don't make an exception for '----' lines.
- (.re-list): Remove, so we don't have a junk file behind.
- (sc_system_h_headers): Remove the need for .re-list.
- (sc_the_the): New rule.
- (sc_tight_scope): Simplify.
- (sc_trailing_blank): Renamed from sc_trailing_space.
- (longopt_re): New macro.
- (sc_two_space_separator_in_usage): New rule.
- (sc_unmarked_diagnostics): Look at all files under CVS.
- (sc_useless_cpp_parens, patch-check, check-AUTHORS): New rules.
- (news-date-check, changelog-check): Version is OK.
- (po-check): Look for lib files even if not in CVS.
- (copyright-check): Use $() not ``.
- (maintainer-distcheck): Do not depend on changelog-check.
- (my-distcheck): Depend on $(release_archive_dir)/$(prev-tgz).
- Also check for -Wpointer-arith.
- (WGET, WGETFLAGS, tgz-md5, tgz-sha1, bz2-md5, bz2-sha1):
- (xdelta-md5, xdelta-sha1, tgz-size, bz2-size, xd-size, rel-check):
- Remove.
- (announcement): Add --gpg-key-id arg.
- (cvs-sv): Remove.
- (move_if_change): Just use mv.
- (local_updates: Remove wget-update, po-update.
- (po_repo, do-po-update, po-update, wget_files, get-targets): Remove.
- (config.guess-url_prefix, config.sub-url_prefix): Remove.
- (ansi2knr.c-url_prefix, texinfo.tex-url_prefix):
- (standards.texi-url_prefix, make-stds.texi-url_prefix, target, url):
- ($(get-targets)): Remove.
- (cvs_files): Remove missing, mkinstalldirs, ansi2knr.c.
- (gnulib_repo): Renamed from automake_repo. Get from gnulib now.
- (cvs-update): Get from gnulib.
- (emut_upload_commands): gnupload is in build-aux now.
- (alpha beta major): Add changelog-check. Check version.
- * configure.ac (AC_CONFIG_AUX_DIR): Renamed from config to build-aux.
- (AC_CONFIG_FILES): Remove.
- * bin/autoconf.as: Add spaces to avoid distcheck warning.
- * config/announce-gen: Sync from coreutils.
- * doc/make-stds.texi: Sync from gnulib.
- * doc/standards.texi: Likewise.
- * man/Makefile.am: Adjust for config -> build-aux renaming.
- * tests/Makefile.am: Prefer $(FOO) to @FOO@.
- * tests/local.at: Adjust from config -> build-aux renaming.
- * tests/tools.at: Likewise.
- * tests/torture.at: Likewise.
-
- * NEWS: The C99 check now tests for vararg macros and 64-bit
- preprocessor ints.
- * doc/autoconf.texi (C Compiler): Document // comments, va_copy.
- * lib/autoconf/c.m4 (_AC_PROG_CC_C99): Test varargs macros and
- 64-bit preprocessor ints. Check for static initialization of
- long long. Remove unnecessary casts.
-
-2006-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Particular Programs): Mention that
- @INSTALL@ and @MKDIR_P@ may vary for different output files.
- Reported by Alexandre Duret-Lutz.
-
-2006-08-24 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS): Also ignore
- -lgcc?* and -lSystem, for Darwin/MacOS X. Problem reported by
- Bill Northcott in
- <http://lists.gnu.org/archive/html/autoconf/2006-08/msg00083.html>.
-
-2006-08-22 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/c.m4 (AC_C_CONST): Don't used shadowed vars, to
- pacify insanely picky compilers. Problem reported by Eric Blake.
-
- * doc/autoconf.texi (Posix Variants): INTERACTIVE Unix is no
- longer supported by Sun.
-
-2006-08-15 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: Autoconf now uses constructs like "#ifdef HAVE_STDLIB_H"
- rather than "#if HAVE_STDLIB_H", so that it now works with "gcc
- -Wundef -Werror". Problem reported by David Fang in
- <http://lists.gnu.org/archive/html/autoconf/2006-08/msg00045.html>.
- * doc/autoconf.texi (Header Templates, Default Includes):
- (Particular Functions, Generic Functions, Header Portability):
- (Particular Headers, Generic Headers, Generic Declarations, Guidelines):
- (Obsolete Macros, AC_FOO_IFELSE vs AC_TRY_FOO):
- (Present But Cannot Be Compiled, Preprocessor Symbol Index):
- Prefer #ifdef to #if.
- * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Prefer #ifdef to #if.
- * lib/autoconf/functions.m4 (AC_FUNC_ALLOCA, _AC_FUNC_MALLOC_IF):
- (AC_FUNC_MKTIME, AC_FUNC_MMAP, _AC_FUNC_REALLOC_IF):
- (AC_FUNC_SELECT_ARGTYPES, AC_FUNC_SETVBUF_REVERSED, _AC_FUNC_VFORK):
- Likewise.
- * lib/autoconf/headers.m4 (_AC_INCLUDES_DEFAULT_REQUIREMENTS):
- (AC_HEADER_RESOLV, AC_HEADER_STAT): Likewise.
- * lib/autoconf/specific.m4 (AC_DECL_SYS_SYGLIST):
- (AC_SYS_RESTARTABLE_SYSCALLS): Likewise.
- * lib/autoconf/headers.m4 (AC_HEADER_STAT): Don't assume that
- S_ISDIR etc. are valid for use in #if; POSIX doesn't guarantee
- this.
-
-2006-08-14 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Document sed
- problems with arg script text that doesn't end in newline, and
- with '-e a...'. Problems reported by Ralf Wildenhues.
-
-2006-08-12 Alexandre Julliard <julliard@winehq.org> (tiny change)
-
- * lib/autoconf/libs.m4 (AC_PATH_X_DIRECT): Replace another
- check for libXt by a check for libX11.
-
-2006-08-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (config.status Invocation): Adjust according
- to last change.
-
-2006-08-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): `config.status
- --help' should mention that `--version' outputs configuration
- settings. Report by Bruno Haible.
-
-2006-08-06 Paul Eggert <eggert@cs.ucla.edu>
-
- Fix test suite failures reported by Pierre in
- <http://lists.gnu.org/archive/html/bug-autoconf/2006-08/msg00005.html>.
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Don't claim
- the compiler created a file "b.out" when it didn't create anything
- at all.
- * lib/autoconf/specific.m4 (AC_SYS_INTERPRETER):
- Discard stderr too, when invoking the test script.
-
-2006-08-05 Alexandre Julliard <julliard@winehq.org> (tiny change)
-
- * lib/autoconf/libs.m4 (AC_PATH_XTRA): Fixed a typo
- in the restoring of the werror flag.
-
-2006-07-24 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Volatile Objects): Be even a little
- less skeptical about "volatile", after discussion with
- Bruno Haible on bug-gnulib.
- (Limitations of Usual Tools): Warn about sed stripping
- leading white space from text. From Bruno Haible.
-
-2006-07-20 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/libs.m4 (AC_PATH_XTRA): Don't use -R if the
- compiler complains about it, even if things works after the
- complaint. Problem reported by Peter O'Gorman.
-
- * doc/autoconf.texi (Preset Output Variables): Document CFLAGS,
- CPPFLAGS, and LDFLAGS better. Problem reported by Bruno Haible.
- Similarly for CXXFLAGS, OBJCFLAGS, ERLCFLAGS.
-
-2006-07-17 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/libs.m4 (AC_PATH_XTRA): Do the check for space
- after -R regardless of host. Patrick Welche reports that this
- fixes things on NetBSD 3.99.
-
- * NEWS: Recommend M4 1.4.5.
- * README: Likewise.
- * doc/autoconf.texi (Introduction, Why GNU M4): Likewise.
- * tests/tools.at (autom4te cache): Update wording of diagnostic
- to match M4 1.4.5.
-
-2006-07-07 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (C Compiler): Add a ref to Volatile Objects
- under AC_C_VOLATILE.
- (Volatile Objects): Be a little less skeptical about what
- "volatile" means. Derived from thoughts by Ben Pfaff in
- <http://lists.gnu.org/archive/html/bug-gnulib/2006-07/msg00092.html>.
-
-2006-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi: Fix some typos.
-
-2006-07-07 Paul Eggert <eggert@cs.ucla.edu>
-
- * tests/torture.at (Configuring subdirectories): Set CONFIG_SITE
- more globally, since the 2006-06-30 patch didn't suffice. Problem
- reported by Keith Marshall. Also, don't bother with builddir2,
- since it shouldn't be needed any more.
-
-2006-07-07 Paolo Bonzini <bonzini@gnu.org>
-
- * doc/autoconf.texi (Generic compiler characteristics):
- Document AC_COMPUTE_INT. Fix wrong statements on Default
- Includes for AC_CHECK_SIZEOF and AC_CHECK_ALIGNOF.
-
- * lib/autoconf/general.m4 (AC_COMPUTE_INT): New.
- (_AC_COMPUTE_INT): Add obsoletion warnings.
- * lib/autoconf/types.m4 (AC_CHECK_SIZEOF, AC_CHECK_ALIGNOF): Use
- AC_COMPUTE_INT.
-
- * NEWS: Document change.
-
-2006-07-05 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Volatile Objects): New section.
-
- * NEWS: Document previous change.
-
-2006-07-02 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/types.m4 (AC_TYPE_LONG_LONG_INT):
- Require that long long int be at least 64 bits wide. C99 requires
- this and enough programs depend on it so we should check for it.
- Bruno Haible reports in
- <http://lists.gnu.org/archive/html/bug-gnulib/2006-06/msg00286.html>
- that long long int is 32 bits wide with some nonstandard compilers.
- (AC_TYPE_UNSIGNED_LONG_LONG_INT): Likewise.
-
-2006-06-30 Paul Eggert <eggert@cs.ucla.edu>
-
- * tests/torture.at (Configuring subdirectories): Set CONFIG_SITE
- to a nonexistent file, so that we don't have to worry about
- a local site configuration that doesn't use /usr/local.
- Problem reported by Keith Marshall in
- <http://lists.gnu.org/archive/html/bug-autoconf/2006-06/msg00133.html>.
-
-2006-06-28 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi: Be more consistent about using @acronym with
- "HP" and "HP-UX". Remove mention of OSF; the old version wasn't
- quite right (it talked about "OSF/Tru64", even though the
- operating systems were called OSF/1, Digital UNIX, and Tru64 UNIX,
- and it even mentioned "OSF 4"!) and at this point there's little
- reason to talk about OSF any more, since it died in 1994.
- (Specific Compiler Characteristics): Simplify example of
- negative-size array.
- (File Descriptors): Reorder to make the text flow better.
- Remove joke about "appreciate the various levels"; I didn't get it.
- Add remark about HP-UX sh -x bug with stderr noted by Bob Proulx in
- <http://lists.gnu.org/archive/html/bug-coreutils/2006-06/msg00225.html>.
- (File Descriptors, Limitations of Usual Tools):
- Tone down the advice against renaming or removing open files.
- (Limitations of Usual Tools): Add a new section, on 'rm'.
-
-2006-06-26 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/libs.m4 (_AC_PATH_X_DIRECT): Use -lX11, not
- -lXt in LIBS, idea from Karsten Hopp; this was due since
- this change:
-
- 2005-09-18 Paul Eggert <eggert@cs.ucla.edu>
- * lib/autoconf/libs.m4 (_AC_PATH_X_DIRECT): Look for X11/Xlib.h
- and XrmInitialize rather than X11/Intrinsic.h and XtMalloc
- (which belong to Xt, not X itself). See Debian bug 327655.
-
-2006-06-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * configure.ac (AC_INIT): Bump to 2.60a.
- * NEWS: Update.
-
-2006-06-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Version 2.60.
-
- * configure.ac, NEWS: Update.
-
-2006-06-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * config/texinfo.tex: Sync from upstream.
-
- * bin/autom4te.in (handle_traces): Transform the `@S|@'
- quadrigraph correctly in traces.
-
- * NEWS, lib/Autom4te/C4che.pm, lib/autoconf/functions.m4:
- Fix typos.
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILE): Expand tests for
- datarootdir-related errors only if AC_DATAROOTDIR_CHECKED is
- not defined.
- * doc/autoconf.texi (Changed Directory Variables): New node,
- to document the whole `datarootdir' business a bit better.
- * NEWS: Update.
- * tests/torture.at (datarootdir workaround): Extend test.
- Prompted by report by Alexandre Julliard.
-
-2006-06-22 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/c.m4 (_AC_PROG_CC_C89): Check for C89 incompatibility
- when using default mode of IBM C 6 for AIX. Problem and two-line
- fix reported by Larry Jones.
-
-2006-06-22 Alexandre Julliard <julliard@winehq.org>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILE): Avoid warning
- about literal '${datarootdir}' if a definition is found in the
- output file.
-
-2006-06-20 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: Use "M4" rather than "m4" when appropriate.
- Problem reported by Eric Blake.
- * doc/autoconf.texi: Likewise.
- Use @acronym around BSD, GCC, and GNU when appropriate.
- (Why GNU M4): Renamed from "Why GNU m4".
- (Redefined M4 Macros): Mention that Posix
- m4wrap takes only 1 argument, but GNU M4 1.4.x takes more.
- (Buffer Overruns): Mention size_t and ptrdiff_t as alternatives
- to int.
-
-2006-06-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * bin/autom4te.in (handle_output): Do not forbid the empty
- pattern.
- * tests/tools.at (autoconf: the empty token): New test.
-
-2006-06-20 Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sugar.m4 (m4_init): Merge the two m4_wrap
- calls, so that we do not care whether they are LIFO or FIFO;
- in the m4_wrap, do not check which diversion is the topmost
- one, just check that the stack is balanced at the end.
- * lib/m4sugar/m4sh.m4 (AS_INIT): We are going to change the
- base diversion forever--pop the previous diversion before
- opening the new one; consequently, remove the m4_wrap call.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
- * tests/m4sugar.at: Do not use
- m4_wrap([m4_diversion_pop([..])]), for educational purposes.
-
-2006-06-19 Paul Eggert <eggert@cs.ucla.edu>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * NEWS: Document that m4wrap/m4_wrap might not be LIFO.
- * doc/autoconf.texi (Redefined M4 Macros): Likewise.
- Rework example of m4wrap token-pasting trouble so that it doesn't
- care whether it's LIFO or FIFO.
- Fix some "contrary to"s that are awkward in English.
-
-2006-06-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/types.m4 (_AC_TYPE_INT): Set `$ac_cv_c_int$1_t'
- to `yes' instead of `int$1_t' if the type is found, for more
- consistent configure output (where $1 is the number of bits).
- (_AC_TYPE_UINT): Likewise for `uint$1_t'.
- Suggested by Bruno Haible.
-
- * lib/autoconf/types.m4 (_AC_TYPE_UNSIGNED_INT): Solaris 2.5.1
- needs _UINT8_T and _UINT64_T defines as well, to avoid clashes
- with system headers. Report by Bruno Haible.
-
-2006-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * config/config.guess, config/config.sub: Sync from upstream.
-
- * bin/Makefile.am (autoconf.in): Use `--melt' for autom4te,
- in order to avoid picking up an older installed frozen m4sh.m4f.
- Besides an outdated shell startup, this could have been created
- by an earlier M4 version with incompatible frozen file format.
-
-2006-06-16 Paul Eggert <eggert@cs.ucla.edu>
-
- * README: Recommend m4 1.4.4 instead of 1.4.3..
- * doc/autoconf.texi: Likewise.
- (Special Chars in Names): Say that $(.FOO) is portable, as
- suggested by Stepan Kasal.
- (Installation Directory Variables, Build Directories):
- (Automatic Remaking, Subdirectories, Fortran Compiler):
- (Making testsuite Scripts, Defining Directories):
- Quote variable usages better.
- (Making testsuite Scripts): Add clean-local rule to makefile
- snippet, by Eric Blake.
- (Installation Directory Variables): Fix table item font.
- Reword slightly to clarify. Generalize advice about
- not using special characters to include all file-related
- vars, not just VPATH.
- (Special Chars in Variables): Warn about special characters in
- $(srcdir) too.
- (Assignments): Clarify default-value example as suggested by
- Ralf Wildenhues in
- <http://lists.gnu.org/archive/html/autoconf-patches/2006-06/msg00072.html>.
- (Special Shell Variables): Note leading ./ or ../, as suggested
- by Eric Blake.
- (Limitations of Builtins): Under cd, warn about CDPATH.
- (The Make Macro MAKEFLAGS): Untabify. Problem reported by
- Ralf Wildenhues.
-
-2006-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Configuration Actions): Remove duplicate
- `@var', for texi2html.
- (Systemology): Some more word wrapping, for DVI output.
- (autom4te Invocation): The short option for `--melt' is `-M',
- not `-m'.
-
-2006-06-15 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi: More formatting and English tweaks,
- many suggested by Ralf Wildenhues.
- Reword to avoid "@code{...}'s" and the like, since it's ugly
- with Emacs info mode. discontents -> woes.
- Put a few "will"s back. time stamp -> timestamp.
- side-effect -> side effect.
-
-2006-06-14 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Initializing configure, Shell Substitutions):
- Warn about $@ not persisting. Problem reported by Julien Danjou in
- <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=372179>.
- (Special Chars in Names): Renamed from Leading _ in Macro Names.
- Mention other special chars, too.
-
-2006-06-14 Eric Blake <ebb9@byu.net>
-
- * doc/autoconf.texi (The Make Macro MAKEFLAGS): New node.
-
-2006-06-13 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi: Some systematic minor improvements, as
- follows. Use "makefile" when talking about makefiles
- generally (which might be named "makefile" or "Makefile" or even
- "foo.mk"), "Makefile" when talking about a specific makefile
- called "Makefile". This unclutters the text from weird quotes
- (e.g., "`Makefile's" in info mode). Similarly, use "@var{foo}
- values" rather than "@var{foo}s" and similar constructs containing
- "}s". Use "Make rules" rather than "Makefile rules". Minor
- English-language improvements. Change the prefix "sub-" to "sub"
- and "re-" to "re".
- Put blank lines around examples more consistently.
- Avoid "rather" and "very" as intensifiers.
- Avoid "will" as an auxiliary.
- (Limitations of Make): Split this node into....
- (Portable Make, $< in Ordinary Make Rules, Failure in Make Rules):
- (Leading _ in Macro Names, Backslash-Newline-Newline):
- (Backslash-Newline Comments, Long Lines in Makefiles):
- (Macros and Submakes, The Make Macro SHELL, Comments in Make Rules):
- (obj/ and Make, make -k Status, VPATH and Make):
- (VPATH and Double-colon, $< in Explicit Rules):
- (Automatic Rule Rewriting, OSF/Tru64 Directory Magic):
- (Make Target Lookup, Single Suffix Rules, Timestamps and Make):
- New nodes, resulting from splitup of Limitations of Make.
- All cross-references changed. Raise the top node from
- a section to a chapter, and all subnodes accordingly.
- Redo the introductory wording to match the new organization.
- (Installation Directory Variables): Use an example that is
- closer to what Autoconf actually does. Mention that VPATH's
- value should not contain metacharacters or white space.
- (Fortran Compiler): Fix a VPATH bug in an example.
- (Leading _ in Macro Names): Mention that this problem is no longer
- of practical concern.
- (VPATH and Make): Reword the advice to make it clearer
- that Autoconf and Automake support VPATH in non-GNU make, but
- many packages have bugs in this area.
- ($< in Explicit Rules): Refer to Build Directories rather
- than using a (non-VPATH-safe) example.
- (Automatic Rule Rewriting): Mention the sort of disaster that
- can ensue with Solaris-style rule rewriting with VPATH.
-
-2006-06-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/install.texi (Compilers and Options): Weaken the
- suggestion to use GNU make for VPATH builds.
-
- * lib/autom4te.in (Automake-preselections): Add AM_PROG_CXX_C_O,
- AM_PROG_F77_C_O, AM_PROG_FC_C_O, AC_FC_SRCEXT, AC_FC_FREEFORM.
-
- * lib/autoconf/programs.m4 (AC_PROG_MAKE_SET): Fix M4 quotation
- in regular expression.
-
-2006-06-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Installation Directory Variables):
- Drop extra @samp from `@table @samp' item.
- (Limitations of Usual Tools): Comment fix.
- Do not nest @samp just to point to other table items.
- (Writing testsuite.at) <AT_CHECK>: The second argument to
- `@dvar' is already @samp'ed.
- (Making testsuite Scripts) <AC_CONFIG_TESTDIR>: Likewise,
- do not use @var in the second argument.
-
-2006-06-07 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Look for
- $as_shell.exe too. Problem reported by Andreas Buening in
- <http://lists.gnu.org/archive/html/autoconf/2006-06/msg00038.html>.
-
-2006-06-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/functions.m4 (AC_FUNC_ALLOCA): Work around
- `unused variable' compiler warning, for `-Wall -Werror'.
- Reported by Jaap Haitsma in
- <http://lists.gnu.org/archive/html/bug-autoconf/2006-06/msg00012.html>.
-
-2006-06-06 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/c.m4 (AC_PROG_CC_C_O): Remove core file, in
- case the compiler dumps core. Problem reported for
- OpenServer 5.0.7 by Tim Rice in
- <http://lists.gnu.org/archive/html/bug-autoconf/2006-06/msg00019.html>.
- * lib/autoconf/general.m4 (_AC_COMPILE_IFELSE, _AC_LINK_IFELSE):
- Likewise.
-
-2006-06-06 Tim Rice <tim@multitalents.net>.
-
- * lib/freeze.mk: Quiet check-forbidden-patterns so the string
- "ERROR" only shows up in "make check" output if there is an
- error.
-
-2006-06-06 Eric Blake <ebb9@byu.net>
-
- * tests/tools.at (automatically allowed tokens): Fix typo.
-
-2006-06-05 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: Don't blame non-GNU VPATH compatibility issues on Automake.
-
- * doc/autoconf.texi (Integer Overflow): Mention that INT_MIN % -1
- typically overflows on x86 CPUs, even though the C standard
- requires otherwise.
-
-2006-06-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * configure.ac (AC_INIT): Bump to 2.59e.
- * NEWS: Update.
-
-2006-06-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Version 2.59d.
-
- * config/texinfo.tex: Sync from upstream.
-
- * bin/autoreconf.in: Trace `LT_CONFIG_LTDL_DIR'; if it has been
- seen, invoke libtoolize with `--ltdl' argument.
- * lib/autom4te.in (Autoreconf-preselections): Adjust.
- * NEWS: Update.
- Suggested by Eric Blake.
-
-2006-06-05 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: Whoops! AC_FUNC_STRNLEN isn't obsolescent. Problem
- reported by Ralf Wildenhues.
- * doc/autoconf.texi (AC_FUNC_STRNLEN): Likewise.
-
-2006-06-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * THANKS: Update.
-
-2006-06-05 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi: Modernize some of the references to Solaris.
-
-2006-06-05 Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sugar.m4 (m4_require): Modify the error
- message issued by AC_REQUIRE.
- * tests/m4sugar.at: Check m4_require's error message.
- * tests/base.at: Check AC_REQUIRE's error message.
- * tests/local.at (AT_CHECK_M4): New macro, almost identical
- to...
- (AT_CHECK_AUTOM4TE): ... which is now a thin wrapper around
- AT_CHECK_M4.
- (AT_CHECK_AUTOCONF): Use AT_CHECK_M4; no longer support
- `expout' as the last parameter.
- * tests/tools.at: Adapt to the above change.
-
-2006-06-04 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Correct
- information about race-free implementations of mkdir.
-
-2006-06-04 Eric Blake <ebb9@byu.net>
-
- * bin/autoreconf.in (help): Document M4 environment variable.
- * bin/autoconf.as (Usage): Likewise.
- * bin/autom4te.in (help): Likewise.
- * doc/autoconf.texi (autom4te Invocation): Likewise.
-
-2006-06-04 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: GNU make now recommended for VPATH builds.
- Mention that some macros are now documented to be obsolescent.
- * doc/autoconf.texi:
- Prefer "current" to "modern" to describe
- currently-used (albeit perhaps old-fashioned) hosts.
- Mention which ancient features no longer need to be worried about.
- setgid -> set-group-ID
- setuid -> set-user-ID (these are the Posix terms)
- Fix some misuses of "only".
- (AC_C_BACKSLASH_A, AC_C_CONST, AC_C_PROTOTYPES):
- (AC_C_STRINGIZE, AC_C_VOLATILE, AC_FUNC_CLOSEDIR_VOID):
- (AC_FUNC_GETPGRP, AC_FUNC_LSTAT, AC_FUNC_MEMCMP):
- (AC_FUNC_SELECT_ARGTYPES, AC_FUNC_SETPGRP):
- (AC_FUNC_SETVBUF_REVERSED, AC_FUNC_STAT, AC_FUNC_STRFTIME):
- (AC_FUNC_STRNLEN, AC_FUNC_UTIME_NULL, AC_FUNC_VPRINTF):
- (AC_HEADER_DIRENT, AC_HEADER_STAT, AC_HEADER_STDC):
- (AC_HEADER_SYS_WAIT, AC_HEADER_TIME, AC_ISC_POSIX):
- (AC_PROG_GCC_TRADITIONAL, AC_STRUCT_TM):
- Mention that these macros are obsolescent.
- (Installation Directory Variables): shall -> should
- (File Descriptors): Mention that 0, 1, 2 might get reopened.
- Mention that it's now safe to use 3 and 4.
- (Limitations of Usual Tools): cp -r is now specified by Posix.
- Omit longwinded and obsolescent discussion of cp -f.
- Modernize discussion of expr, ls.
- (Limitations of Make): Modernize discussion of VPATH builds.
- Mention $? as a workaround in some cases.
- * doc/install.texi (Basic Installation):
- Mention "./configure; make; make install" first. Be more
- specific about why this file is generic. Remove unnecessary
- parens. Remove misleading "only". Remove obsolete advice
- about csh. Don't say "configure" takes awhile; say it
- might take a while. Suggest CFLAGS=-g rather than CFLAGS=-O2,
- and CC=c99 rather than CC=c89, as these are blessed by current
- Posix. Recommend GNU make if doing a VPATH build.
-
-2006-06-03 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi: Use a consistent style "$ @kbd{...}" for
- examples involving shell prompts.
-
-2006-06-02 Stepan Kasal <kasal@ucw.cz>
- and Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Here-Documents): Add details about the
- pre-ksh93g bug. Reword slightly to make it clearer. Consistently
- use "here-documents" instead of "here documents".
-
-2006-06-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * config/texinfo.tex, doc/standards.texi: Sync from upstream.
-
-2006-06-01 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (File System Conventions): Warn about ":"
- anywhere in directory names.
-
-2006-05-31 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/general.m4 (_AC_DO_ECHO): Be even more conservative
- about quoting the case statement, just in case.
- * doc/autoconf.texi (Here-Documents): Mention that the ksh bug
- was fixed in ksh93g; reported by Ralf Wildenhues.
-
-2006-05-31 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (System Services): Do not document
- overriding EXEEXT via ac_cv_exeext=ext.
- (Particular Programs) <AC_PROG_MKDIR_P>:
- Document that ${MKDIR_P} understands --.
- * lib/autoconf/programs.m4 (AC_PROG_MKDIR_P): Improve the
- comment.
-
-2006-05-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/m4sugar/m4sh.m4 (_AS_DIRNAME_PREPARE): Guard against test
- argument with leading hyphen. Problem reported by Paul Eggert.
-
-2006-05-30 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/general.m4 (_AC_DO_ECHO): Be more conservative
- about quoting ac_try: quote all of it, if any of it seems suspicious.
- This means we don't have to worry about ${ or sed any more.
- Also, double-quote the case statement, to work around misuses via
- underquoting as reported by Ralf Wildenhues in
- <http://lists.gnu.org/archive/html/autoconf-patches/2006-05/msg00169.html>.
- (_AC_EVAL_STDERR): Revert, since evidently some packages rely on this
- undocumented and dangerous macro.
- Problem reported by Ralf Wildenhues in
- <http://lists.gnu.org/archive/html/autoconf-patches/2006-05/msg00168.html>.
-
-2006-05-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/m4sugar/m4sh.m4 (_AS_DIRNAME_PREPARE): Check whether
- `dirname -- /' returns `/', for SunOS dirname scripts that escaped.
- Report by Sam Sirlin <sam@kalessin.jpl.nasa.gov>.
-
-2006-05-30 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/general.m4: Revert AC_TRY_EVAL and AC_TRY_COMMAND,
- since evidently some packages rely on the old, broken behavior.
- Problem reported by Ralf Wildenhues in
- <http://lists.gnu.org/archive/html/autoconf-patches/2006-05/msg00160.html>.
- (AC_TRY_EVAL, AC_TRY_COMMAND, _AC_EVAL): Go back to the
- pre-2006-05-26 definitions, but leave in the comments that
- these macros are dangerous and should not be used.
- (_AC_DO_ECHO): Renamed from _AC_EVAL_ECHO. All callers changed.
- (_AC_DO): Renamed from _AC_EVAL. All callers changed.
- (_AC_DO_STDERR): Renamed from _AC_EVAL_STDERR. All callers changed.
- (_AC_DO_VAR): Renamed from AC_TRY_EVAL.
- (_AC_DO_TOKENS): Renamed from AC_TRY_COMMAND.
-
-2006-05-29 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/status.m4 (AC_OUTPUT_MAKE_DEFS): Rewrite to avoid
- the use of 'tr', since this is our only use of 'tr'.
-
-2006-05-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
- and Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE):
- Don't assume 'grep' works on long lines, since AIX grep doesn't.
-
-2005-05-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILE): Do not use `grep' on
- the output file in the `${datarootdir}' test.
-
-2005-05-28 Stepan Kasal <kasal@ucw.cz>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILE): If we have not seen
- mention of `datarootdir' in the input file(s), but literal
- `${datarootdir}' in the output file, and we haven't warned yet,
- then warn as well: the user may have (erroneously) used
- `AC_SUBST([mydatadir], [$datadir/my])' instead of the correct
- `AC_SUBST([mydatadir], ['${datadir}/my'])'.
- * tests/torture.at (datarootdir workaround): Extend this test.
- * NEWS: Update.
-
-2006-05-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
- and Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (autoheader Invocation): The first argument to
- `AC_DEFINE_UNQUOTED' need not be a literal. Mention the
- alternatives and clear up the language a bit.
-
-2006-05-27 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: Reword notice for AC_TRY_COMMAND, AC_TRY_EVAL,
- ac_config_guess, ac_config_sub, ac_configure.
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS):
- Fix typo that prevented an unnecessary space from being removed.
- Problems reported by Ralf Wildenhues in:
- http://lists.gnu.org/archive/html/autoconf-patches/2006-05/msg00143.html
-
-2006-05-26 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Particular Programs, Limitations of Usual Tools):
- Use better wording to talk about AC_PROG_MKDIR_P's thread-safety.
- Don't use the term "thread-safe" to talk about mkdir race
- conditions, since the problem is more a process than a thread
- issue. Problem reported by Stepan Kasal in:
- http://lists.gnu.org/archive/html/autoconf-patches/2006-05/msg00088.html
- * lib/autoconf/programs.m4 (AC_PROG_MKDIR_P): Use code that mimics
- the test for 'install' more closely. Look at MKDIR_P first.
- Look in the PATH, and at /opt/sfw/bin.
- Look for a 'gmkdir' program as well (Solaris 10 /opt/sfw/bin/gmkdir).
- Don't bother to try mkdir -p, since we already check mkdir --version;
- just look at the version number. (There's no easy way to check
- for race-free implementations.)
- * tests/tools.at (autoconf: subdirectories): Adjust to above
- changes, since MKDIR_P now might end in "/mkdir -p".
-
- * doc/autoconf.texi (autoheader Invocation): Mention that the
- first arg of AC_DEFINE_UNQUOTED must be a literal.
- Problem reported by Ben Pfaff in
- <http://lists.gnu.org/archive/html/bug-autoconf/2006-05/msg00090.html>.
-
- * NEWS: Mention that AC_TRY_COMMAND and AC_TRY_EVAL may be removed.
- * doc/autoconf.texi (Special Chars in Variables): New section.
- (Preset Output Variables): Warn about special chars in CPPFLAGS.
- (Installation Directory Variables): Quote $(datadir) better.
- (Limitations of Builtins): Describe some of eval's trickiness.
-
- * lib/autoconf/c.m4 (AC_PROG_CC_C_O): Simplify quoting.
- * lib/autoconf/fortram.m4 (_AC_PROG_FC_V_OUTPUT): Likewise.
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Put leading space
- in front of every arg, not just trailing args. Quote apostrophes.
- (_AC_EVAL_ECHO): New macro.
- (_AC_EVAL, AC_EVAL_STDERR): Use it. Quote arg of eval.
- (AC_TRY_EVAL, AC_TRY_COMMAND): Mention that these macros might get
- removed.
- (_AC_LINK_IFELSE): Use proper rule for shell continuation lines,
- exposed by quoting of eval argument. Put the command on line line
- so it logs better.
- * lib/autoconf/libs.m4 (_AC_PATH_X_XMKMF): Use eval more safely.
- (_AC_PATH_X, AC_PATH_X): Quote more safely.
- * lib/autoconf/programs.m4 (AC_PROG_MAKE_SET): Use eval more safely.
- * lib/autoconf/specific.m4 (AC_SYS_LONG_FILE_NAMES): Don't use eval.
- * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): Minor style change.
- Handle special chars in prefix, ac_srcdir, ac_aux_dir.
- Use eval more safely.
- (_AC_OUTPUT_CONFIG_STATUS): Adjust to above changes.
- * lib/m4sugar/m4sh.m4 (AS_VAR_GET): Note that this API needs
- to be replaced.
- * tests/base.at (AC_TRY_COMMAND): Use proper rule for shell continuation
- lines, exposed by quoting of eval argument.
-
-2006-05-26 Stepan Kasal <kasal@ucw.cz>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Drop the
- initialization of `ac_cv_exeext', do not override it if it was
- already set, unless it was set to `no', for compatibility with
- Autoconf-2.13, and comment this.
- Do not export `ac_cv_exeext', Libtool hasn't needed this for years.
- (_AC_COMPILER_EXEEXT_DEFAULT): Likewise, do not export it.
- (_AC_COMPILER_EXEEXT_WORKS, _AC_COMPILER_EXEEXT_CROSS): Typos.
- * doc/autoconf.texi (Compilers and Preprocessors) <EXEEXT>:
- Document that this test may be overridden by setting
- `ac_cv_exeext'.
-
-2006-05-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Revert these two patches:
-
- 2006-04-06 Eric Blake <ebb9@byu.net>
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_O): Inside cache
- check, s/ac_exeext/ac_cv_exeext/. Fixes regression introduced
- 2006-04-01.
-
- 2006-04-01 Stepan Kasal <kasal@ucw.cz>
- Clean up _AC_COMPILER_EXEEXT* macros.
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Don't try to
- detect exeext, it will be done by _AC_COMPILER_EXEEXT_O; just set
- ac_file to the name of the default output file and call
- _AC_COMPILER_EXEEXT_WORKS. Move the definition of ac_files and the
- initial `rm' of the candidate files...
- (_AC_COMPILER_EXEEXT): ... here and simplify them. Moreover, use
- the same list in subsequent `rm' calls, and for the temporary
- redefinition of ac_clean_files; call _AC_COMPILER_OBJEXT at the end,
- and don't call the other _AC_COMPILER_EXEEXT_* macros directly, use...
- (_AC_COMPILER_EXEEXT_TESTS): ... this new macro.
- (_AC_COMPILER_EXEEXT_O): Don't export ac_cv_exeext, it's not needed (or
- no longer needed) by libtool. Make it a cache check.
- (_AC_COMPILER_EXEEXT_CROSS): Remove the comment, it was obviously
- copied here by mistake.
- (AC_NO_EXECUTABLES): Redefine _AC_COMPILER_EXEEXT_TESTS, not
- _AC_COMPILER_EXEEXT.
- * lib/autoconf/c.m4 (AC_PROG_CC, AC_PROG_CXX, AC_PROG_OBJC): Do not call
- _AC_COMPILER_OBJEXT directly.
- * lib/autoconf/fortran.m4 (_AC_PROG_FC): Likewise.
-
-2006-05-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Limitations of Usual Tools) < sed (`t')>:
- Fix description of how the buggy `sed' works.
-
-2006-05-25 Noah Misch <noah@cs.caltech.edu>
-
- Sync from Automake:
-
- * lib/Autom4te/XFile.pm (lock): Allow EOPNOTSUPP, besides
- ENOLCK. Only mention `make -j' when applicable. Only raise
- fatal errors when `make -j' is involved. Improve error message.
-
-2006-05-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Here-Documents): We now know more about
- the variable expansion in here documents bug.
- Thanks to Tim Rice and Stepan Kasal.
-
- * doc/autoconf.texi (Making testsuite Scripts): Add an example
- how to use TESTSUITEFLAGS. Suggested by Eric Blake.
-
-2006-05-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/autotest.at (Multiline command from M4 expansion):
- No failure to be expected if the shell quotes newlines in
- commands in the `set -x' output. Report by Tim Rice.
- * THANKS: Update.
-
-2006-05-23 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_HEADER): Don't use shell
- expansion in the here-documents used by config.status, as that
- runs afoul of the Korn shell version M-12/28/93d bug described in
- the Autoconf manual, and this in turn causes a Coreutils 5.95 build to
- fail as described by Tim Rice and diagnosed by Ralf Wildenhues in
- <http://lists.gnu.org/archive/html/bug-autoconf/2006-05/msg00082.html>.
-
-2006-05-23 Jim Meyering <jim@meyering.net>
-
- * lib/autoconf/functions.m4 (AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK):
- Fix typo introduced with 2006-04-02 change. It reversed the sense
- of the test.
-
-2006-05-23 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_HEADER): Simplify ac_dA and
- ac_dB slightly, to save bytes in the script.
- Max out at 50 lines, rather than 96; this is more likely
- (though not guaranteed) to avoid obscure 'sed' failures.
-
-2006-05-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autotest/general.m4 (AT_INIT): UnixWare `tr' may interpret
- `tr -d -' as bad option argument. Work around this by deleting
- an unrelated character.
- Report by Tim Rice <tim@multitalents.net>.
-
-2006-05-22 Paul Eggert <eggert@cs.ucla.edu>,
- Ralf Wildenhues <Ralf.Wildenhues@gmx.de>,
- Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Particular Programs): Do not promise that
- we always prefer the GNU version of the program, and that we
- search according to PATH; both rules can have exceptions.
- Update description of AC_PROG_GREP, AC_PROG_EGREP, AC_PROG_FGREP,
- AC_PROG_SED. Move descriptions of limitations
- to the Limitations of Usual Tools section.
- (Limitations of Usual Tools) <sed>: Mention script length
- limitations with Solaris /usr/ucb/sed.
- <grep>: Fix wording for empty alternative. Mention that -c and
- -l should not be combined, and that -E and -F should not be
- combined.
-
-2006-05-21 Paul Eggert <eggert@cs.ucla.edu>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/programs.m4 (AC_PROG_SED): Catch script length
- limits in Solaris 8 /usr/ucb/sed by testing a long script.
-
-2006-05-22 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Defining Symbols): Literal parameter of
- AC_DEFINE is now passed to m4_pattern_allow.
- * NEWS: Mention that; likewise for AC_SUBST.
- * lib/autoconf/general.m4 (AC_DEFINE_TRACE_LITERAL): Pass
- the parameter to m4_pattern_allow.
- * tests/tools.at: Add a check for that.
-
-2006-05-22 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/status.m4: Fix typos.
-
-2006-05-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH): Remove
- only the files that this macro generates.
-
-2006-05-21 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Usual Tools) <sed>: For
- the HP-UX sed limitation of 99 commands, labels do not count.
- * lib/autoconf/status.m4 (_AC_SED_CMD_LIMIT): Mention that
- in the comment.
- (_AC_OUTPUT_HEADER): Revert the change from 2006-05-19.
-
-2006-05-21 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/functions.m4 (AC_FUNC_GETMNTENT):
- Import the following fix from coreutils:
-
- 2006-01-13 Jim Meyering <jim@meyering.net>
-
- Invoke AC_CHECK_FUNCS(getmntent) unconditionally so that tests of
- $ac_cv_func_getmntent (e.g., in gl_LIST_MOUNTED_FILE_SYSTEMS) need
- not double-quote uses of that variable, to accommodate the rare
- case in which getmntent is available in none of the libraries
- checked. This happens at least on FreeBSD 5.0.
-
-2006-05-20 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/general.m4 (AC_CONFIG_AUX_DIRS): Bring back
- ac_config_guess, ac_config_sub, and ac_configure, since evidently
- some other programs unwisely rely on these undocumented vars.
- But put in warning comments about them.
- Problem reported by Ralf Wildenhues in
- <http://lists.gnu.org/archive/html/autoconf-patches/2006-05/msg00068.html>.
- * NEWS: Document that these variables are intended to go away.
-
-2006-05-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/c.m4 (AC_PROG_CXX_C_O): Require AC_PROG_CXX,
- and set the language to C++ (analogous to the equivalent Fortran
- tests).
-
- * lib/autoconf/c.m4 (AC_PROG_CXX_C_O): New macro.
- * doc/autoconf.texi (C++ Compiler): Document it.
- * lib/autoconf/fortran.m4 (_AC_PROG_FC_C_O): Adjust comment.
- * NEWS: Update.
-
-2006-05-19 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_HEADER): Fix off-by-one bug
- that caused config.status to generate 100-command sed scripts; the
- portable limit is 99.
-
-2006-05-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/programs.m4 (AC_PROG_MKDIR_P): Name temporary
- variable `ac_d' instead of `d' to avoid infringing namespace.
- Report by Ralf Menzel.
-
-2006-05-18 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILE): Don't prepend
- $ac_top_build_prefix to $MKDIR_P if it's just 'mkdir -p'.
- * tests/tools.at (autoconf: subdirectories): New test, taken from
- the corresponding problem report by Ralf Wildenhues in:
- http://lists.gnu.org/archive/html/autoconf-patches/2006-05/msg00053.html
-
- * lib/autoconf/functions.m4 (AC_REPLACE_FNMATCH, AC_FUNC_FNMATCH_GNU):
- Quote some uses of shell variables if they might suffer unexpected
- globbing. This doesn't fix all instances of quoting problems that
- I found, just the easy ones that look safe.
- * lib/autoconf/general.m4 (_AC_INIT_SRCDIR, _AC_INIT_HELP):
- (AC_CONFIG_AUX_DIR, AC_CONFIG_AUX_DIR_DEFAULT, AC_CONFIG_AUX_DIRS):
- (AC_CANONICAL_BUILD, AC_CANONICAL_HOST, AC_CANONICAL_TARGET):
- (AC_CACHE_LOAD, AC_CACHE_SAVE): Likewise.
- * lib/autoconf/libs.m4 (_AC_PATH_X_XMKMF, _AC_PATH_X_DIRECT): Likewise.
- * lib/autoconf/specific.m4 (AC_SYS_LONG_FILE_NAMES): Likewise.
- * lib/autoconf/status.m4 (_AC_OUTPUT_LINK, _AC_OUTPUT_SUBDIRS):
- Likewise.
- * lib/autotest/general.m4 (_AC_INIT_PARSE_ARGS): Likewise.
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Likewise.
-
-2006-05-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * bin/autoreconf.in ($help): Reword according to the manual.
- Suggested by Olly Betts.
-
-2006-05-17 Olly Betts <olly@survex.com> (tiny change)
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * bin/autoreconf.in: Pass the directory argument to
- `require_configure_ac'. Fix comment.
- * tests/torture.at (Configuring subdirectories): Expose this.
- Reported by Olly Betts.
-
-2006-05-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/Automake/Configure_ac.pm, lib/Automake/Channels.pm,
- lib/Automake/FileUtils.pm, lib/Automake/Struct.pm: Sync from
- Automake as follows:
-
- * lib/Autom4te/Configure_ac.pm (find_configure_ac): Use
- `$configure_in' instead of `configure.in', to preserve
- directory component.
-
-2006-05-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * config/config.guess, config/config.sub, config/texinfo.tex,
- doc/make-stds.texi, doc/standards.texi: Sync from upstream.
-
-2006-05-14 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/headers.m4 (AC_HEADER_STDBOOL): Fix overly-picky
- test for C99 conformance; (bool) 0.5 is an integer constant
- expression, but (bool) -0.5 is not. Problem reported by Fedor
- Sergeev in <http://forum.sun.com/jive/thread.jspa?threadID=96202>.
-
-2006-05-13 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Particular Programs): AC_PROG_MKDIR_P now
- sets MKDIR_P, not mkdir_p, to avoid collisions with Automake.
- Warn about obsolete install-sh files. Remove stray sentence
- fragment and fix cross reference.
- * lib/autoconf/programs.m4 (AC_PROG_INSTALL): Don't insist on
- install -d; this undoes the 2006-05-10 change.
- (MKDIR_P): Mark with AN_MAKEVAR.
- (AC_PROG_MKDIR_P): Fall back on $ac_install_sh, not $INSTALL, so
- that we don't require $INSTALL to be thread-safe. Move comments
- out of generated code. Require AC_CONFIG_AUX_DIR_DEFAULT instead
- of AC_PROG_INSTALL. Output a message saying that we're checking
- mkdir -p. Set MKDIR_P rather than mkdir_p. Do special magic for
- MKDIR_P instead of AC_SUBST.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILE, _AC_OUTPUT_CONFIG_STATUS):
- Special magic for MKDIR_P, too.
- * lib/m4sugar/m4sh.m4 (AS_MKDIR_P): Remove comment that defeated
- a dnl.
- * tests/local.at (AT_CHECK_ENV): mkdir_p -> MKDIR_P.
-
-2006-05-11 Paul Eggert <eggert@cs.ucla.edu>
-
- Sync from Automake, as follows:
-
- 2006-05-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
- * config/install-sh: Initialize IFS, so field splitting isn't
- turned off later.
- * config/mkinstalldirs: Likewise.
- * config/missing: Remove superfluous quotes. Replace all uses of
- `[' by `test', for consistency, and for..
- * config/missing (sed_minuso, sed_output): New variables.
- (autom4te, help2man, makeinfo): Use them. Unifies detection of
- `-o FILE', `--output FILE', `--output=FILE', stricter regex.
- Fixes `missing' to detect `--output' for help2man. Fixes
- PR automake/483. Report by Dennis J. Linse.
- (autom4te): Document in `missing --help'.
-
-2006-05-10 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: New macro AC_PROG_MKDIR_P. AS_MKDIR_P is now more robust.
- * config/install-sh: Don't use 'path' to talk about file names,
- as per GNU coding standards. Close a race condition reported by Ralf
- Wildenhues and Stepan Kasal. There is still a race condition
- on hosts that predate Posix 1003.1-1992, but we can't help this.
- Don't mishandle weird characters like space on pre-Posix hosts.
- Invoke mkdir at most once per dir arg on pre-Posix hosts.
- * doc/autoconf.texi (Programming in M4sh): Cross-reference to
- AC_PROG_MKDIR_P from AS_MKDIR_P.
- (Limitations of Usual Tools): Cross-reference to AC_PROG_MKDIR_P
- from mkdir. Mention that Autoconf 2.60 install-sh is safe but
- earlier editions are not (including Automake 1.8.3).
- Do not suggest mkinstalldirs for thread-safety.
- * lib/autoconf/programs.m4 (AC_PROG_INSTALL): Insist on an 'install'
- that understands -d, so that AC_PROG_MKDIR_P can fall back on $INSTALL.
- * lib/m4sugar/m4sh.m4 (AS_MKDIR_P): Make it more robust in the
- presence of special characters and race conditions.
- * tests/local.at (AT_CHECK_ENV): Add mkdir_p to the list of variables
- in Autoconf's name space.
-
-2006-05-10 Bruno Haible <bruno@clisp.org>
- and Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/programs.m4 (AC_PROG_MKDIR_P): New macro, taken
- from Automake with minor changes.
- * doc/autoconf.texi (Particular Programs): Document AC_PROG_MKDIR_P.
-
-2006-05-10 Paul Eggert <eggert@cs.ucla.edu>
-
- * config/install-sh: Update to Automake CVS version, as follows:
- 2006-04-25 Stepan Kasal <kasal@ucw.cz>
- * lib/install-sh: Simplify the expr implementation of dirname.
- 2006-04-24 Paul Eggert <eggert@cs.ucla.edu>
- * lib/install-sh: Handle --, and diagnose unknown options.
-
-2006-05-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/Makefile.am (AUTOTEST): Use `$(MY_AUTOM4TE)' instead of
- `./autom4te' to create `./testsuite', since the `all' target
- will ensure its presence, but `installcheck' should not create
- the uninstalled wrappers.
-
- * tests/torture.at (Unusual Automake input files): Skip if we
- detect automake < 1.8.
-
-2006-05-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/c.m4 (AC_PROG_CC_STDC): If ac_cv_prog_cc_stdc
- is set to `no', then that overrides and sets ac_cv_prog_cc_c89
- and ac_cv_prog_cc_c99 to `no', for backward compatibility.
- * NEWS: Update.
-
-2006-05-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): Take care not to
- munge (multiple) white space and other oddities.
- * tests/torture.at (AT_CHECK_AC_ARG_VAR): Make sure to M4-escape
- single quotes in variable assignment.
- (AC_ARG_VAR, configure invocation): Adjust tests to expose this
- and similar failures by adding multiple spaces, tabs, and other
- special characters.
- Report and different test suggested by Francesco Romani
- <fromani@gmail.com> and Andrew Church <achurch@achurch.org>.
-
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): When we escape
- single quotes, we only need to search for single quotes; this
- both simplifies the search pattern, and makes us less
- susceptible to `echo' variations for arguments not containing
- single quotes.
- (_AC_ARG_VAR_VALIDATE): Likewise.
-
-2006-05-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Special Shell Variables) <IFS>: Document
- `$*' and IFS concatenation issue with traditional shells and
- bash-2.04. Report by Seanster@Seanster.com.
-
-2006-05-03 Bruno Haible <bruno@clisp.org>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Identify more
- precisely which Mac OS X versions have the od problem.
-
-2006-05-02 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi: Use @option systematically.
-
-2006-05-02 Paul Eggert <eggert@cs.ucla.edu>
- and Bruno Haible <bruno@clisp.org>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Add a paragraph
- about 'od'.
- (Integer Overflow): Mention the special case of integer division
- overflow.
-
-2006-05-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/general.m4 (_AC_CANONICAL_SPLIT): Cater for
- traditional shells like the Solaris one that do not use the
- first IFS character for assembling `$*'.
- Prompted by a related report from autoconf_bug@nro.ca.
-
-2006-05-01 Paul Eggert <eggert@cs.ucla.edu>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Limitations of Builtins, Limitations of Make):
- Mention more problems with the -e option.
-
-2006-04-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * NEWS: Typo.
- * doc/autoconf.texi (Systemology): Mention the Heirloom Project.
-
- * doc/autoconf.texi (Introduction, Pointers): Use `@/' liberally
- in URLs to improve DVI formatted output (requires texinfo 4.6).
- (System Services, Systemology, Shellology): Likewise.
- (Limitations of Usual Tools): Rewrite Mac OS X example for nicer
- output.
-
- * doc/autoconf.texi (Fortran Compiler): Do not use `@ovar' in
- continuous text.
- (Runtime): Fix macro argument names to match description:
- `action-if-found' -> `action-if-true' and similarly.
- (Obsolete Macros): Likewise.
- * lib/autoconf/general.m4 (_AC_COMPILE_IFELSE): Likewise.
- (AC_COMPILE_IFELSE, AC_TRY_COMPILE, _AC_LINK_IFELSE)
- (AC_LINK_IFELSE, AC_TRY_LINK, AC_COMPILE_CHECK): Likewise.
-
-2006-04-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Limitations of Make): Clean up markup.
-
- * ChangeLog: Typo.
- * doc/autoconf.texi (Portable Shell): Allow wrapped URLs, for
- DVI output.
-
-2006-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Limitations of Builtins): Document FreeBSD
- /bin/sh set unsorted output.
- * lib/autoconf/general.m4 (_AC_CACHE_DUMP): Adjust.
- * tests/local.at: Likewise.
-
-2006-04-26 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Portable C and C++, Varieties of Unportability):
- (Integer Overflow, Null Pointers, Buffer Overruns):
- (Floating Point Portability, Exiting Portably): New sections.
- (Writing Test Programs): Fix some langauge. Recommend exiting
- with status 1, not merely nonzero. Clarify exit declaration.
- (Run Time): Move C exit status stuff to new Exiting Portably section.
- (Systemology): Mention Posix and levenez. Update v7 reference.
- (Portable Shell): Mention the Posix shell.
-
-2006-04-25 Stepan Kasal <kasal@ucw.cz>
-
- * bin/autoconf.as (me): Replace by as_me.
-
-2006-04-25 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Don't use AS_ERROR,
- since as_me isn't set yet.
-
-2006-04-23 Paul Eggert <eggert@cs.ucla.edu>
-
- Prepare for deprecation of AS_BASENAME and AS_DIRNAME, and fix
- a few minor bugs in this area.
-
- * doc/autoconf.texi (Programming in M4sh): Comment out the
- documentation of AS_BASENAME, for now.
- (Shell Substitutions): Do not use AS_DIRNAME in an example.
- (Limitations of Builtins) <basename>: Do not refer to
- AS_BASENAME.
- * bin/autoconf.as (me): Don't use AS_BASENAME.
- (dir): Remove the unused variable.
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_REQUIRED): Renamed from
- AS_DETECT_REQUIRED. All uses changed.
- (_AS_DETECT_SUGGESTED): Renamed from AS_DETECT_SUGGESTED.
- All uses changed.
- (_AS_DETECT_BETTER_SHELL): Put ;; at the end of a case.
- (AS_BASENAME): Use "basename --" to protect against leading "-".
- (_AS_BASENAME_EXPR): Renamed from AS_BASENAME_EXPR. All uses changed.
- (_AS_BASENAME_SED): Renamed from AS_BASENAME_SED. All uses changed.
- (_AS_BASENAME_PREPARE): Reject implementations that cannot handle "--".
- (_AS_DIRNAME_PREPARE): Likewise.
- (_AS_DIRNAME_EXPR): Renamed from AS_DIRNAME_EXPR. All uses changed.
- (_AS_DIRNAME_SED): Renamed from AS_DIRNAME_SED. All uses changed.
- (AS_DIRNAME): Use "dirname --".
-
-2006-04-23 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Runtime): Renamed from "Run Time". All uses
- of "run time" and "run-time" changed to "runtime", for consistency.
- * lib/autoconf/fortran.m4: Likewise (in comment).
- * lib/autoconf/functions.m4: Likewise.
- * lib/autoconf/general.m4: Likewise.
- * lib/autoconf/headers.m4: Likewise.
-
- * doc/autoconf.texi (Run Time): Document the exit status situation
- with more accuracy and detail.
-
-2006-04-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Introduction): The GNU Autoconf Macro
- Archive is not officially `GNU' any more. Update URL.
- (Defining Directories): Likewise
- * lib/autoconf/c.m4 (AC_C_RESTRICT): Update URL.
-
-2006-04-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Remove the leading
- newline from the `trap' code to finish `config.log'; the NetBSD
- /bin/sh resets the exit status after an empty command, as
- documented in doc/autoconf.texi.
- Reported by Dalibor Topic <robilad@kaffe.org>.
-
-2006-04-19 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (C Compiler): Clarify AC_C_TYPEOF.
- Suggested by Bruno Haible.
-
-2006-04-18 Paul Eggert <eggert@cs.ucla.edu>
-
- * configure.ac (ac_cv_sh_n_works): Don't try to test for it, since
- some shells (e.g., Solaris 8 /bin/sh) implement it verrrry slowly.
- Instead, just list the shells that we know work.
- * tests/local.at (AT_CHECK_SHELL_SYNTAX): Remove 2nd arg. All uses
- changed. Be more cautious about the _cv_ variable.
- * tests/tools.at (Syntax of the shell scripts): Check the
- _cv_ variable once, at first, to avoid an internal autoconf error
- when sh -n does not work.
-
-2006-04-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/Autom4te/FileUtils.pm: Sync from Automake.
-
-2006-04-16 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/general.m4 (_AC_INIT_CONFIG_LOG): Don't
- use ">&-" since we're only 99.999% sure that this is portable,
- and since the MinGW bug is fixed in a different way.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
-
-2006-04-16 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Handle --recheck
- before opening config.log, to avoid hitting a bug on MinGW.
-
-2006-04-14 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/general.m4 (_AC_INIT_CONFIG_LOG): Close
- AS_MESSAGE_LOG_FD before reopening it onto the log file.
- This works around a MinGW bug reported by Eric Paire.
- Make sure that all writes to the log file append to it,
- rather than possibly losing data.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
-
-2006-04-14 Stepan Kasal <kasal@ucw.cz>
-
- * lib/Autom4te/FileUtils.pm (find_file): Fix a typo in the
- description.
-
-2006-04-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * NEWS: Update.
-
- * configure.ac (AC_INIT): Bump to 2.59d.
-
-2006-04-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- Version 2.59c.
-
- * Makefile.maint (news-date-check): Do not require a leading `*'
- before the release date in NEWS.
-
-2006-04-12 Stepan Kasal <kasal@ucw.cz>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILE): If the templates for
- the instantiated file do not contain the string 'datarootdir'
- but contain @datadir@, @docdir@, @infodir@, @localedir@, or
- @mandir@, replace the reference '${datarootdir}' by the value.
- * tests/torture.at (datarootdir workaround): New test.
- * NEWS: Advertise this temporary fixup.
- Based on a patch by Bruno Haible, reported and analyzed by
- Paul Eggert and Noah Misch.
-
-2006-04-12 Eric Blake <ebb9@byu.net>
-
- * tests/autotest.at (Debugging a failed test): Fix comment.
-
-2006-04-12 Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sh.m4 (_AS_LN_S_PREPARE): Simplify the summary of
- all the changes since 2006-04-07.
-
-2006-04-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/m4sugar/m4sh.m4 (_AS_LN_S_PREPARE): If `ln -s file1 file2'
- succeeded, but `ln -s file dir' failed, take care to remove the
- leftover target before the next test, to prevent its spurious
- failure; also make sure `ln file dir' works before selecting it.
- Thanks to Keith Marshall for pointing this out.
- * THANKS: Update.
-
- * lib/autotest/general.m4 (AT_INIT): Store quoted variable
- assignments in `at_debug_args', so that we put them correctly
- in the `run' script.
- * tests/autotest.at (Debugging a failed test): Unmark XFAIL.
- Reported by Eric Blake.
-
-2006-04-11 Eric Blake <ebb9@byu.net>
-
- * tests/autotest.at (AT_CHECK_AT): Add new argument, to allow
- top-level tests after micro-suite has been run. Used in...
- (Debugging a successful test, Debugging script and environment),
- (Debugging a failed test): ...these new tests. The first of these
- is fixed by...
- * lib/autotest/general.m4 (_AT_CREATE_DEBUGGING_SCRIPT): New
- macro, split out from...
- (AT_INIT): ...here, so that using -d also generates a run script.
- Document that -d inhibits top-level logging.
- * doc/autoconf.texi (testsuite Invocation): Document that -d only
- inhibits top-level logging; debug scripts are created.
-
- * lib/autotest/general.m4 (_AT_CHECK): Avoid syntax error on empty
- check.
- * tests/autotest.at (Empty test, Empty check): New test to check it.
-
- * lib/autoconf/c.m4 (AC_C_CONST, AC_C_VOLATILE): Avoid warnings
- from gcc.
-
-2006-04-10 Stepan Kasal <kasal@ucw.cz>
-
- * tests/mktests.sh: Use "trap '' 0", not "trap 0". Do not touch
- the files if a problem appears. Make the empty *.at files
- read-only, too. Proposed by Ralf Wildenhues.
-
-2006-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * config/Makefile.am: Add comment to force updated Makefile.in.
-
- * lib/freeze.mk: Fix typo in comment. Unlike the last, white
- space only patch to this file, this patch causes the Makefile.in
- files that include freeze.mk to be updated, and thus have a
- newer time stamp again, which in turn makes a pristine CVS
- checkout have correct time stamps.
-
- * Makefile.maint (cvs-sv): New macro, to be used..
- (config.guess-url_prefix, config.sub-url_prefix)
- (texinfo.tex-url_prefix, standards.texi-url_prefix): ..here;
- point to CVS text checkout of Gnulib files.
- (copyright-check): Bump current year.
- (announcement): Do not hard-wire `./announce-gen'.
- (cvs-update): Propagate failures of `cvs' and `move-if-change'
- correctly.
- * Makefile.cfg (executable-update): Use `chmod a+x' instead of
- `chmod +x'.
- (wget_files): Update config.guess, config.sub, texinfo.tex by
- `wget-update', now that their URLs work again.
-
-2006-04-10 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Particular Types): Don't use AC_CHECK_TYPE.
- Problem noted by Paul D. Smith.
-
-2006-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi: Remove unused words from word list.
- * .x-sc_prohibit_atoi_atof, .x-sc_space_tab, .x-sc_sun_os_names,
- .x-sc_trailing_space: New files.
-
- * doc/standards.texi: Sync from gnulib.
-
- * NEWS, doc/autoconf.texi (AC_LIBOBJ vs LIBOBJS): Mark
- `LIBOBJDIR' as experimental.
-
- * lib/m4sugar/m4sh.m4 (_AS_LN_S_PREPARE): MSYS `ln -s' fails
- with a target directory; it's internally implemented as `cp'
- anyway, but since Autoconf advertises the possibility to use
- a target directory when LN_S is `ln -s', we need to find out.
- Reported by Rolf Ebert <rolf.ebert.gcc@gmx.de> against MSYS,
- analyzed by Keith Marshall <keith.marshall@total.com>.
-
- * THANKS: Update.
-
-2006-04-10 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Just output
- confdefs.h as-is. In general, if it has backslash-newline or the
- like, then it doesn't work either to sort or to remove empty
- lines.
-
-2006-04-09 Stepan Kasal <kasal@ucw.cz>
-
- * tests/Makefile.am (AUTOCONF_FILES): Fix typo in the comment.
-
-2006-04-09 Alexandre Duret-Lutz <adl@gnu.org>
-
- * lib/autom4te.in (Automake-preselections): Preselect
- _AM_SUBST_NOTMAKE.
-
-2006-04-08 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Use '\'' for an
- apostrophe within a single-quoted string, as this is the usual
- tradition and is easier to read than '"'"'. Don't rely on the
- shell treating "$/" like '$/'. Use a more-consistent indenting
- style for the trap.
-
-2006-04-09 Eric Blake <ebb9@byu.net>
-
- * tests/autotest.at (Backquote command substitution),
- (Multiline backquote command substitution): Remove mistaken
- AT_NO_CMDSUBST from the 2006-03-14 patch, which was meant to be
- applied...
- (Parenthetical command substitution, Multiline parenthetical
- command substitution): here.
-
-2006-04-08 Paul Eggert <eggert@cs.ucla.edu>
-
- Import macros from gnulib (often changing their name).
-
- * NEWS: AC_C_TYPE_LONG_DOUBLE is now obsolete.
- New macros AC_CHECK_DECLS_ONCE, AC_CHECK_FUNCS_ONCE,
- AC_CHECK_HEADERS_ONCE, AC_FUNC_STRTOLD, AC_HEADER_ASSERT,
- AC_STRUCT_DIRENT_D_INO, AC_STRUCT_DIRENT_D_TYPE,
- AC_TYPE_LONG_DOUBLE, AC_TYPE_LONG_DOUBLE_WIDER, AC_TYPE_INT8_T,
- AC_TYPE_INT16_T, AC_TYPE_INT32_T, AC_TYPE_INT64_T,
- AC_TYPE_INTMAX_T, AC_TYPE_INTPTR_T, AC_TYPE_LONG_LONG_INT,
- AC_TYPE_UINT8_T, AC_TYPE_UINT16_T, AC_TYPE_UINT32_T,
- AC_TYPE_UINT64_T, AC_TYPE_UINTMAX_T, AC_TYPE_UINTPTR_T,
- AC_TYPE_UNSIGNED_LONG_LONG_INT, AC_USE_SYSTEM_EXTENSIONS.
- The manual mentions Gnulib more prominently.
- * doc/autoconf.texi (Gnulib): New node.
- (Pointers): Add Gnulib URL.
- (Particular Functions): Alphabetize. Add AC_FUNC_STRTOLD.
- (Generic Functions): Add AC_CHECK_FUNCS_ONCE. Refer to new
- Gnulib section.
- (Particular Headers): Add AC_HEADER_ASSERT. For stdbool.h,
- suggest a #define rather than a typedef for _Bool, and mention
- Gnulib rather than trying to substitute stdbool code.
- (Generic Headers): Add AC_CHECK_HEADERS_ONCE.
- (Generic Declarations): Add AC_CHECK_DECLS_ONCE.
- (Particular Structures): Add AC_STRUCT_DIRENT_D_INO,
- AC_STRUCT_DIRENT_D_TYPE.
- (Particular Types): Mention stdint.h and inttypes.h as standard
- headers too.
- Add AC_TYPE_INT8_T, AC_TYPE_INT16_T, AC_TYPE_INT32_T, AC_TYPE_INT64_T,
- AC_TYPE_INTMAX_T, AC_TYPE_INTPTR_T, AC_TYPE_LONG_DOUBLE,
- AC_TYPE_LONG_DOUBLE_WIDER, AC_TYPE_LONG_LONG_INT, AC_TYPE_UINT8_T,
- AC_TYPE_UINT16_T, AC_TYPE_UINT32_T, AC_TYPE_UINT64_T,
- AC_TYPE_UINTMAX_T, AC_TYPE_UINTPTR_T, AC_TYPE_UNSIGNED_LONG_LONG_INT.
- (C Compiler): Move AC_C_LONG_DOUBLE to ...
- (Obsolete Macros): here. Under AC_LONG_DOUBLE, mention
- AC_TYPE_LONG_DOUBLE or AC_TYPE_LONG_DOUBLE_WIDER instead.
- (Posix Variants): Add AC_USE_SYSTEM_EXTENSIONS.
- (Coding Style). Don't mention m4_expand_once.
- * lib/autoconf/c.m4 (AC_C_LONG_DOUBLE): Implement via
- AC_TYPE_LONG_DOUBLE_WIDER. Now obsolete.
- * lib/autoconf/functions.m4 (_AH_CHECK_FUNCS): New macro.
- (AC_CHECK_FUNCS): Use it.
- (AC_CHECK_FUNCS_ONCE, AC_FUNC_STRTOLD): New macros.
- (AC_FUNC_WAIT3): "the Open Group standards" -> "POSIX".
- * lib/autoconf/general.m4 (AC_CHECK_DECLS_ONCE): New macro.
- * lib/autoconf/headers.m4 (AC_CHECK_HEADERS_ONCE): New macro.
- (AC_HEADER_ASSERT): New macro.
- (AC_HEADER_STDBOOL): Don't assume "#error" works.
- Catch a bug in IBM AIX xlc compiler version 6.0.0.0.
- Catch a bug in an HP-UX C compiler.
- * lib/autoconf/specific.m4 (AC_USE_SYSTEM_EXTENSIONS): New macro.
- * lib/autoconf/types.m4 (AC_TYPE_INTMAX_T. AC_TYPE_UINTMAX_T):
- (AC_TYPE_INTPTR_T, AC_TYPE_UINTPTR_T. AC_TYPE_LONG_DOUBLE):
- (AC_TYPE_LONG_DOUBLE_WIDER, AC_C_LONG_DOUBLE, AC_TYPE_LONG_LONG_INT):
- (AC_TYPE_UNSIGNED_LONG_LONG_INT, _AC_TYPE_INT, _AC_TYPE_UNSIGNED_INT):
- (_AC_STRUCT_DIRENT, AC_STRUCT_DIRENT_D_INO, AC_STRUCT_DIRENT_D_TYPE):
- New macros.
-
- * tests/mktests.sh (ac_exclude_list, au_exclude_list): Do not
- use /^foo|bar$/, it does not mean /^(foo|bar)$/.
-
-2006-04-08 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Fix the wording
- of the warning introduced by the 2001-08-28 change.
-
-2006-04-08 Stepan Kasal <kasal@ucw.cz>,
- Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/general.m4 (AC_CACHE_SAVE): All `ac_cv_env_foo'
- variables shall be overriden by the cache.
- * tests/torture.at (AC_ARG_VAR): Test also with a first value
- that contains braces.
-
-2006-04-07 Stepan Kasal <kasal@ucw.cz>
-
- Revert the patch from 2006-04-01 and only improve
- _AS_DETECT_BETTER_SHELL:
-
- * lib/m4sugar/m4sh.m4 (_AS_PATH_WALK): Do not optimize; do not
- skip nonexistent directories.
- (_AS_DETECT_BETTER_SHELL): The optimization is moved here--try
- only shell candidates which exist.
- (AS_UNAME): No need to give three parameters to _AS_PATH_WALK.
- * lib/autotest/general.m4 (AT_INIT): No need to give three
- parameters to _AS_PATH_WALK.
-
-2006-04-07 Stepan Kasal <kasal@ucw.cz>,
- Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * bin/autoupdate.in (handle_autoconf_patches): Change the way we
- distinguish m4sugar macros.
- * tests/tools.at (autoupdating with aclocal and m4_include):
- New test. Bug reported by Gary V. Vaughan <gary@gnu.org>,
- test case by Noah Misch <noah@cs.caltech.edu>.
-
-2006-04-07 Stepan Kasal <kasal@ucw.cz>
-
- Revert my change from 2006-03-17, in other words:
- * lib/m4sugar/m4sh.m4 (AS_BOURNE_COMPATIBLE): Insert BIN_SH=xpg4
- and DUALCASE=1.
- (AS_SHELL_SANITIZE): Remove DUALCASE=1.
- * doc/autoconf.texi (Special Shell Variables) <BIN_SH>: Say that
- it is set.
-
-2006-04-07 Eric Blake <ebb9@byu.net>
-
- * doc/autoconf.texi (Programming in M4sh): Document that
- AS_MKDIR_P exits the script on failure.
- * lib/autotest/general.m4: Remove redundant AS_ERROR.
-
-2006-04-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * config/elisp-comp, config/install-sh, config/mdate-sh,
- config/missing, config/mkinstalldirs: Sync from Automake.
-
- * lib/Autom4te/FileUtils.pm, lib/Autom4te/Struct.pm: Sync
- from Automake.
-
- * doc/make-stds.texi: Sync from gnulib.
-
-2006-04-06 Eric Blake <ebb9@byu.net>
-
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_O): Inside cache
- check, s/ac_exeext/ac_cv_exeext/. Fixes regression introduced
- 2006-04-01.
-
-2006-04-06 Stepan Kasal <kasal@ucw.cz>,
- Eric Blake <ebb9@byu.net>,
- Paul Eggert <eggert@cs.ucla.edu>,
- Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * 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.
-
-2006-04-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * config/config.guess, config/config.sub, config/texinfo.tex:
- Sync from upstream.
-
- * tests/mktests.sh: Reword comments.
-
- * 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_SEARCH_LIBS, AC_REPLACE_FUNCS): Need 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: More replacements to
- <tab><space> where this makes sense.
-
-2006-04-06 Stepan Kasal <kasal@ucw.cz>
-
- * tests/Makefile.am (maintainer-check-posix):
- s/POSIXLY_CORRECTLY/POSIXLY_CORRECT/
-
- * 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.
-
- * lib/autoconf/general.m4 (AC_ARG_VAR): Do not use m4_divert_once
- inside m4_expand_once; it is redundant.
-
- * lib/autoconf/general.m4 (_AC_INIT_HELP): Remove the broken support
- for --help from Cygnus `configure.'
-
-2006-04-06 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (C Compiler): Warn about #error. Follows up
- on a patch proposed by Ralf Wildenhues.
-
-2006-04-05 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/status.m4: Replace <space>''<tab> with
- <tab><space> where this makes sense.
-
-2006-04-05 Howard Chu <hyc@highlandsun.com> (trivial change)
- Noah Misch <noah@cs.caltech.edu>
-
- * lib/autoconf/general.m4 (AC_PRESERVE_HELP_ORDER): New macro.
- (AC_ARG_ENABLE, AC_ARG_WITH): Adjust.
- * doc/autoconf.texi (Help Formatting): New node.
- * NEWS: Announce AC_PRESERVE_HELP_ORDER.
-
-2006-04-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * 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@).
-
- * NEWS, TODO, bin/autoreconf.in: `filesystem' -> `file system'.
-
- * doc/autoconf.texi (Shell Substitutions): Document `^' vs. `|'.
-
-2006-04-05 Eric Blake <ebb9@byu.net>
-
- * lib/autotest/general.m4 (AT_INIT): Prep AT_*_all, so that an
- empty test suite works.
- * tests/autotest.at (Empty test suite): Remove xfail.
-
-2006-04-05 Noah Misch <noah@cs.caltech.edu>
-
- * 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.
-
-2006-04-05 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/m4sugar/m4sh.m4 (AS_BASENAME_EXPR, AS_DIRNAME_EXPR):
- Use simplified args that Eric Blake originally suggested.
-
-2006-04-04 Paul Eggert <eggert@cs.ucla.edu>
-
- * 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.
-
- 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.
-
-2006-04-04 Noah Misch <noah@cs.caltech.edu>
-
- * lib/autoconf/general.m4 (_AC_INIT_HELP): Only `configure.in' evidences
- a subdirectory subject to Cygnus `configure'.
- * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): Likewise.
-
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL): Omit the bug
- report request when we have no AC_PACKAGE_BUGREPORT.
-
-2006-04-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * THANKS: Update.
-
- * tests/mktests.sh: Update copyright year in the header of the
- generated files.
-
- * 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.
-
-2006-04-03 Noah Misch <noah@cs.caltech.edu>
-
- * bin/autoscan.in (subdirs): New global.
- (scan_file): Prune directories with configure{,.{ac,in,gnu}}.
- (output): Emit AC_CONFIG_SUBDIRS as needed.
- * tests/autoscan.at (autoscan): Remove XFAIL.
-
-2006-04-03 Noah Misch <noah@cs.caltech.edu>
-
- * lib/autoconf/general.m4 (AC_CACHE_SAVE): Use AC_MSG_NOTICE.
-
-2006-04-03 Eric Blake <ebb9@byu.net>
-
- * THANKS: Add myself.
-
-2006-04-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autotest/general.m4 (AT_INIT): Add `at_testdir' to pointer
- to log, point to testsuite output tree.
-
-2006-04-02 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: AC_PROG_CC and AC_PROG_CXX no longer declare 'exit'.
- * doc/autoconf.texi (Function Portability): Mention that C++
- has trouble with 'exit'.
- (Guidelines): Test programs shouldn't use 'exit'.
- * lib/autoconf/c.m4 (_AC_PROG_CXX_EXIT_DECLARATION):
- Remove; all uses removed.
- (AC_LANG_INT_SAVE(C), AC_C_BIGENDIAN):
- Return from 'main' instead of calling 'exit'.
- * lib/autoconf/functions.m4 (_AC_LIBOBJ_ALLOCA, AC_FUNC_CLOSEDIR_VOID):
- (_AC_FUNC_FNMATCH_IF, AC_FUNC_GETGROUPS):
- (AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK, _AC_FUNC_MALLOC_IF):
- (AC_FUNC_MEMCMP, AC_FUNC_MKTIME, AC_FUNC_MMAP, _AC_FUNC_REALLOC_IF):
- (AC_FUNC_SETPGRP, _AC_FUNC_STAT, AC_FUNC_STRTOD, AC_FUNC_STRERROR_R):
- (AC_FUNC_STRNLEN, AC_FUNC_SETVBUF_REVERSED, AC_FUNC_UTIME_NULL):
- (_AC_FUNC_FORK, _AC_FUNC_VFORK, AC_FUNC_WAIT3): Likewise.
- * lib/autoconf/headers.m4 (AC_HEADER_STDC): Likewise.
- * lib/autoconf/specific.m4 (AC_SYS_RESTARTABLE_SYSCALLS): Likewise.
- * lib/autoconf/types.m4 (AC_TYPE_GETGROUPS): Likewise.
- * tests/compile.at: Likewise.
-
-2006-04-02 Pavel Roskin <proski@gnu.org>
-
- * doc/autoconf.texi (AC_PATH_X): Update per 2005-08-26 change.
-
-2006-04-01 Stepan Kasal <kasal@ucw.cz>
-
- Clean up _AC_COMPILER_EXEEXT* macros.
-
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Don't try to
- detect exeext, it will be done by _AC_COMPILER_EXEEXT_O; just set
- ac_file to the name of the default output file and call
- _AC_COMPILER_EXEEXT_WORKS. Move the definition of ac_files and the
- initial `rm' of the candidate files...
- (_AC_COMPILER_EXEEXT): ... here and simplify them. Moreover, use
- the same list in subsequent `rm' calls, and for the temporary
- redefinition of ac_clean_files; call _AC_COMPILER_OBJEXT at the end,
- and don't call the other _AC_COMPILER_EXEEXT_* macros directly, use...
- (_AC_COMPILER_EXEEXT_TESTS): ... this new macro.
- (_AC_COMPILER_EXEEXT_O): Don't export ac_cv_exeext, it's not needed (or
- no longer needed) by libtool. Make it a cache check.
- (_AC_COMPILER_EXEEXT_CROSS): Remove the comment, it was obviously
- copied here by mistake.
- (AC_NO_EXECUTABLES): Redefine _AC_COMPILER_EXEEXT_TESTS, not
- _AC_COMPILER_EXEEXT.
- * lib/autoconf/c.m4 (AC_PROG_CC, AC_PROG_CXX, AC_PROG_OBJC): Do not call
- _AC_COMPILER_OBJEXT directly.
- * lib/autoconf/fortran.m4 (_AC_PROG_FC): Likewise.
-
-2006-04-01 Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sh.m4 (_AS_DIRNAME_PREPARE): New macro.
- (AS_DIRNAME): Use it.
- (_AS_PREPARE): Add _AS_DIRNAME_PREPARE.
-
- * tests/*.at: Remove the generated ones.
-
-2006-04-01 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autotest/general.m4 (AT_INIT): Don't optimize the first PATH walk.
-
-2006-04-01 Eric Blake <ebb9@byu.net>
-
- * lib/m4sugar/m4sh.m4 (_AS_PATH_WALK): Optimize nonexistent
- directories, unless optional third argument supplied.
- (AS_UNAME): Don't optimize PATH walk.
-
- * lib/Autom4te/Struct.pm, lib/autoconf/c.m4: s/non-existent/nonexistent/
-
-2006-04-01 Eric Blake <ebb9@byu.net>
- and Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sh.m4: Sort sections as implied by the comments,
- and fix some typos.
-
-2006-04-01 Noah Misch <noah@cs.caltech.edu>
-
- * lib/autoconf/general.m4 (_AC_INIT_VERSION): Emit script name and
- Autoconf version number despite a zero- or one-argument AC_INIT.
-
- * bin/autoreconf.in (parse_args): Multiple -v send --verbose to
- subordinate tools.
- * lib/Autom4te/General.pm (getopt): Make -v and -d incremental.
- * doc/autoconf.texi (autoreconf Invocation): Document it.
-
- * doc/autoconf.texi: Use `Cygwin', `MinGW', and `license' consistently.
- Append LocalWords so ispell-buffer passes cleanly. Spelling fixes.
-
-2006-04-01 Eric Blake <ebb9@byu.net>
-
- * lib/m4sugar/m4sh.m4 (AS_MKDIR_P): Allow use in shell lists.
- * lib/autotest/general.m4: Be tolerant of existing directory when
- rm failed to remove it.
-
-2006-04-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * bin/autoupdate.in: Redefine m4_location so that warnings print
- the correct lines of the input file by subtracting..
- (_au__first_line): ..this new definition.
-
- * lib/autoconf/general.m4 (AC_COMPILE_CHECK): Prefer
- AC_MSG_CHECKING over obsolete AC_CHECKING in autoupdated code.
- Remove stray newline in output.
- (AC_FOREACH): AU_DEFUN this as literal for autoupdate, and also
- AC_DEFUN this for autoconf, including the obsoletion diagnose.
- Fixes autoupdating of code where the replacement output contains
- m4sugar macros.
- * lib/autoconf/lang.m4 (AC_LANG_SAVE): Likewise.
- * tests/mktests.sh (ac_exclude_list): Add AC_FOREACH.
- (au_exclude_list): Add AC_LANG_SAVE.
- * tests/tools.at: Several new tests for all of this.
- * doc/autoconf.texi (Obsoleting Macros): Give a hint about the
- hairy details.
- The AC_LANG_SAVE issue was reported against Libtool by
- Dalibor Topic <robilad@kaffe.org>, and against Autoconf 2.57 by
- Kristian Kvilekval <kris@cs.ucsb.edu>.
-
-2006-04-01 Stepan Kasal <kasal@ucw.cz>
-
- * bin/autoupdate.in: Handle m4 builtins and m4sugar macros together--
- switch all of them on and of when necessary. Fixes the bug when
- m4sugar macros (e.g., m4_define) were expanded after the first
- automatic update (e.g., after AC_PREREQ or AC_INIT).
-
-2006-03-31 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Programming in M4sh): Sharpen the descriptions
- of AS_BASENAME and AS_DIRNAME. Reported by Stepan Kasal.
-
- * 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.
-
-2006-03-30 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Programming in M4sh, Limitations of Usual Tools):
- Tighten up the basename/dirname wording.
-
-2006-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * 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.
-
-2006-03-30 Chris Pickett <cpicke@cs.mcgill.ca> (tiny change)
-
- * doc/autoconf.texi (autoreconf Invocation): Mention that -I for
- aclocal cannot be given on the command line.
-
-2006-03-29 Paul Eggert <eggert@cs.ucla.edu>
-
- * 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 Eric Blake.
-
-2006-03-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Quote
- `$0' to protect against spaces.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
- * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Likewise, for
- `$0', $as_me.
-
-2006-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * 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>.
-
-2006-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * bin/autoupdate.in: Fix some typos.
-
-2006-03-21 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Installation Directory Variables): Fix typo.
-
- * lib/autoscan/autoscan.list: Refreshed.
-
-2006-03-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/local.at (AT_CHECK_ENV): Ignore AC_SUBSTed Objective C
- and Erlang related variables.
-
- * lib/autoconf/c.m4 (AC_LANG(Objective C), AC_LANG_OBJC)
- (_AC_LANG_ABBREV(Objective C), _AC_LANG_PREFIX(Objective C))
- (AC_LANG_SOURCE(Objective C), AC_LANG_PROGRAM(Objective C))
- (AC_LANG_CALL(Objective C), AC_LANG_FUNC_LINK_TRY(Objective C))
- (AC_LANG_BOOL_COMPILE_TRY(Objective C))
- (AC_LANG_INT_SAVE(Objective C), AC_LANG_PREPROC(Objective C))
- (AC_PROG_OBJCPP, AC_LANG_COMPILER(Objective C), AC_PROG_OBJC)
- (_AC_PROG_OBJC_G): New macros.
- (_AC_ARG_VAR_CPPFLAGS): Adjusted.
- * doc/autoconf.texi (Objective C Compiler): New node.
- (Preset Output Variables): Document OBJCFLAGS.
- (Language Choice): Document `Objective C' language.
- (Fortran Compiler): Fix typo.
- * NEWS: Updated.
- Inspired by a patch from David M. Lloyd <dmlloyd@tds.net>.
-
-2006-03-20 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Default Includes): Fix typo
- s/AC_HEADERS_STDC/AC_HEADER_STDC/
- (Limitations of Usual Tools): s/unwriteable/unwritable/
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT, _AC_COMPILER_EXEEXT):
- Fix typos in the comments.
-
-2006-03-17 Stepan Kasal <kasal@ucw.cz>
-
- * 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.
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Do not special
- case `ac_delim' when writing the sed script.
-
- * lib/m4sugar/m4sh.m4 (AS_BOURNE_COMPATIBLE): Removed BIN_SH=xpg4,
- moved DUALCASE=1 ...
- (AS_SHELL_SANITIZE): ... here.
- * doc/autoconf.texi (Special Shell Variables) <BIN_SH>: Do not say
- that it is set.
-
- * lib/autoconf/programs.m4 (AC_CHECK_PROG): Quote the parameter of
- AC_SUBST.
- (_AC_PATH_PROG): Store the result to VARIABLE.
- (AC_PATH_PROG): No need to set VARIABLE again.
-
- * tests/local.at (AT_CHECK_MACRO_CROSS): New macro, creates two tests:
- the first one is usual AT_CHECK_MACRO test, the second one checks
- that the same works when cross-compiling.
- * tests/semantics.at (AC_CHECK_ALIGNOF, AC_CHECK_ALIGNOF struct):
- (AC_CHECK_SIZEOF, AC_CHECK_SIZEOF struct): Use it.
-
-2006-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * 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.
-
- * doc/autoconf.texi (contents): To fix texi2html output, hide
- `@setcontentsaftertitlepage' for HTML.
- (Writing Autoconf Macros): Likewise, insert space after `@c'.
- (Leviticus, Numbers, Deuteronomy): Likewise, change `@,c' to
- `@,{c}'.
-
-2006-03-16 Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sh.m4 (_AS_PREPARE): Move the IFS setup and CDPATH
- sanitizing...
- (AS_SHELL_SANITIZE): ...here; mention _AS_PATH_WALK needs IFS set.
- * lib/autoconf/general.m4 (_AC_CANONICAL_SPLIT): Add an explanation
- why IFS is restored so late; thank you, Ralf, for reminding us.
-
-2006-03-15 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Pretty Help Strings): No need to use cached
- variables in the examples.
-
-2006-03-14 Romain Lenglet <rlenglet@users.forge.objectweb.org>
-
- * doc/autoconf.texi (several sections): Cleaned up documentation for
- macros in erlang.m4.
-
-2006-03-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/autotest.at (AT_NO_CMDSUBST): New macro to determine
- failure condition for `$(cmd)' style command substitutions.
- (Parenthetical command substitution, Multiline parenthetical
- command substitution): Use it.
-
- * doc/autoconf.texi (Special Shell Variables): Missing word.
- Reported by Keith Marshall <keith.marshall@total.com>.
-
- * lib/m4sugar/m4sh.m4 (_AS_PATH_WALK): Do not forget to reset
- IFS even in case of empty `$PATH'.
-
-2006-03-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * 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.
-
-2006-03-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * 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.
-
- * 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.
-
- * 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'.
-
- * lib/autoconf/lang.m4 (AC_LANG_CONFTEST): AC_DEFUN this, not
- m4_define, so that the requirements of `AC_INCLUDES_DEFAULT' are
- expanded outside.
-
- * doc/autoconf.texi (autoconf Invocation): Fix typos in trace
- example. Do not emphasize `$%', it is hardly new and special.
- Reported by Edouard Bechetoille <ebecheto@ens-lyon.fr>.
-
- * doc/autoconf.texi (Limitations of Usual Tools): Document
- OpenBSD and traditional `grep' failure to handle multiple
- patterns separated by newlines.
-
-2006-03-10 Romain Lenglet <rlenglet@users.forge.objectweb.org>
-
- * doc/autoconf.texi (several sections): Add documentation for macros
- in erlang.m4.
-
-2006-03-10 Eric Blake <ebb9@byu.net>
-
- * doc/autoconf.texi (Obsolete Macros): Fix wording of
- AC_TRY_LINK_FUNC.
-
-2006-03-10 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi: Use @acronym more consistently for acronyms
- like BSD, GPL, LGPL. Fix minor English typos.
- (AC_STDC_HEADERS, AC_PROG_GCC_TRADITIONAL):
- Mention that these macros are becoming obsolete.
- (AC_STDC_HEADERS, AC_PROG_CC, AC_C_CONST, AC_C_VOLATILE):
- Use more modern terminology for which standard is what.
- (AC_PROG_CC): Mention gcc first, and remove obsolete references to egcs
- and to ansi2knr.
- (AC_PROG_CXX): Likewise.
- (AC_C_PROTOTYPES, Test Functions, AC_LIBOBJ vs LIBOBJS):
- Remove obsolete discussion about how to port to K&R.
- (Guidelines for Test Programs): Suggest AC_HEADER_STDBOOL rather than
- the obsolescent AC_HEADER_STDC.
- (AC_FOO_IFELSE vs AC_TRY_FOO): Don't use #error; test programs
- can't rely on it.
-
-2006-03-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/c.at (AC_PROG_CPP without warnings, AC_PROG_CPP via CC):
- Remove stdin redirection from /dev/null to allow pipe to work.
-
-2006-03-08 Paul Eggert <eggert@cs.ucla.edu>
-
- * tests/c.at (AC_PROG_CPP without warnings, AC_PROG_CPP via CC):
- Require that /lib/cpp include stdio.h correctly. Solaris 10's
- doesn't. Problem reported by D'Arcy A MacIsaac and diagnosed by
- Ralf Wildenhues.
-
-2006-03-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_SED_CMD_LIMIT): The limit for
- HP-UX sed is 99 commands, not 100.
- (_AC_OUTPUT_FILES_PREPARE): Do not count the `}' of an
- _AC_SUBST_FILES fragment. Separate `{' and `r' commands by
- newline for portability.
- * tests/torture.at (Torturing config.status): Also test 100
- AC_SUBST_FILE invocations. Fix test to actually verify the
- AC_CONFIG_FILES output.
- * doc/autoconf.texi (Limitations of Usual Tools): Document HP-UX
- command, label, and read-file `r' limits. Unify HP-UX spelling.
-
- * tests/Makefile.am (edit, $(wrappers)): Do not use `$<' in
- non-suffix rule.
- ($(TESTSUITE_GENERATED_AT)): Use `$(srcdir)` for the benefit of
- non-GNU make.
- (autoconfdir, $(AUTOCONF_FILES)): Likewise.
- * tests/mktests.sh: Small shell portability fixes.
-
-2006-03-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Caching Results): Fix the examples to use a
- recommended quoting style and discard unwanted output.
-
-2006-03-05 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autotest/general.m4 (_AT_NORMALIZE_TEST_GROUP_NUMBER): New macro.
- (AT_INIT): Use it, to remove arbitrary limit of 999,999 test
- cases, and to work around Tru64 expr bug.
-
-2006-03-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Mention Tru64
- expr bug that turns the result of a regex match into a number if
- possible.
-
-2006-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/types.m4 (AC_CHECK_ALIGNOF): Work around
- HPUX compiler bug, similarly to AC_CHECK_SIZEOF, as documented
- in section `Specific Compiler Characteristics'.
-
-2006-03-04 Eric Blake <ebb9@byu.net>
-
- * lib/autoconf/functions.m4 (AC_FUNC_STRERROR_R): Avoid unused
- variable warning.
-
-2006-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_HEADER): Force correct
- order of variable initialization, so even the Solaris 2.6 shell
- can create a config header correctly. Fixes lots of test suite
- failures.
-
-2006-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Text processing Macros): New node to
- document the m4sugar macros m4_re_escape, m4_tolower,
- m4_toupper, m4_split, m4_normalize, m4_append, m4_append_uniq.
-
-2006-02-22 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/libs.m4 (_AC_PATH_X_DIRECT): Fix typo:
- XrmInitialize (0) -> XrmInitialize ().
- Reported by Toshio Kuratomi.
-
-2006-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/m4sugar/m4sh.m4 (AS_IF): Extend to allow more than one
- test, as in `if tests; then cmd1; elif ...; else ...; fi'.
- * doc/autoconf.texi (Programming in M4sh): Adjusted.
- * tests/m4sh.at (AS_IF and AS_CASE): Test this. Also make sure
- both macros are defun'ed so that required macros are evaluated
- outside.
-
- * doc/autoconf.texi (Prerequisite Macros): State more precisely
- where a required macro will be expanded.
- (Coding Style): Another reason not to use `m4_define'.
-
-2006-02-21 Eric Blake <ebb9@byu.net>
-
- * lib/autoconf/general.m4 (_AC_LIBOBJ): Minor optimization.
-
-2006-02-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Looping constructs): New node, to
- document m4_for, m4_foreach, m4_foreach_w, and mention
- obsolete AC_FOREACH.
- (Obsolete Macros): Document AC_FOREACH.
- * lib/m4sugar/m4sugar.m4 (_m4_for): Fix declaration comment.
- (m4_for): Fix to never loop (almost) endlessly, work correctly
- with arithmetic expressions in arguments, a step of zero or
- non-integer multiple of the interval, and avoid integer
- overflow.
- * tests/m4sugar.at: New test for m4_for, m4_foreach, and
- m4_foreach_w.
-
-2006-02-20 Romain Lenglet <rlenglet@users.forge.objectweb.org>
-
- Add basic support for Erlang, both for configuring Erlang/OTP
- tools, and Erlang as a conf test language.
- * lib/autoconf/erlang.m4: New file.
- * lib/autoconf/autoconf.m4: Add erlang.m4.
- * lib/autoconf/Makefile.am (dist_autoconflib_DATA): Likewise.
- * lib/freeze.mk (autoconf_m4f_dependencies): Likewise.
- * NEWS: Add short description of new macros.
- * THANKS: Add Romain Lenglet.
-
-2006-02-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Shellology) <pdksh>: Document that pdksh as
- native /bin/sh may not set KSH_VERSION (seen on OpenBSD).
-
-2006-02-15 Eric Blake <ebb9@byu.net>
-
- * lib/autoconf/general.m4 (AC_CHECK_DECL): Avoid unused variable
- warning.
-
-2006-02-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/m4sugar/m4sh.m4 (AS_CASE): New macro.
- (_AS_CASE): Private helper macro.
- * tests/m4sh.at: Basic tests for AS_IF and AS_CASE.
- * doc/autoconf.texi (Programming in M4sh): Document AS_CASE.
- Fix syntax of AS_IF description
- (Prerequisite Macros): Mention AS_IF and AS_CASE as workarounds
- for the AC_REQUIRE mess.
- * NEWS: Mention AS_CASE, AS_BOURNE_COMPATIBLE, and
- AS_SHELL_SANITIZE.
-
-2006-02-14 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi: Minor style cleanup.
- Be consistent about spaces after commas.
- Insert [] where empty args look a bit funny.
- Fix some "i.e." and "e.g." usages.
- Try to avoid "X/Y" usages.
- Don't be pedantic about "ISO C99"; just say C99.
- Prefer GNU style for spaces in front of parens.
- (Function Portability): Comment about C89 versus C99
- signed integer division.
- (Particular Headers): Use current gnulib style for dirent
- includes.
-
-2006-02-14 Stepan Kasal <kasal@ucw.cz>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * bin/autoupdate.in (handle_autoconf_macros): Fix updating of
- macros without parameters.
- * lib/autoconf/autoupdate.m4 (AU_ALIAS): Likewise.
- * doc/autoconf.texi (Obsoleting Macros): Document AU_ALIAS.
- * tests/tools.at (autoupdating AU_ALIAS): New test for AU_ALIAS
- `$#' bug.
- (autoupdate): Updated to match AU_ALIAS fix.
-
-2006-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
- and Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Programming in M4sh): Document
- AS_BOURNE_COMPATIBLE and AS_SHELL_SANITIZE.
-
-2006-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/m4sugar/m4sh.m4 (_AS_BOURNE_COMPATIBLE): Renamed to..
- (AS_BOURNE_COMPATIBLE): ..this.
- (_AS_RUN, AS_SHELL_SANITIZE): Adjusted all callers.
-
-2006-02-12 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/install.texi (Defining Variables): Tighten up the
- CONFIG_SHELL wording.
-
-2006-02-12 Paul Eggert <eggert@cs.ucla.edu>
- and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/m4sugar/m4sh.m4 (_AS_BOURNE_COMPATIBLE): Look at the output
- of (set -o) rather than testing whether (set -o posix) succeeds,
- to work around a bug in the AIX 5.3 shell. Problem originally
- reportd by Howard Chu for libtool.
-
-2006-02-10 J.T. Conklin <jtc@acorntoolworks.com>
-
- * doc/autoconf.texi (Running the Compiler, Running the Linker):
- Changes the macro arguments in summaries to match the
- descriptions.
-
-2006-02-04 Stepan Kasal <kasal@ucw.cz>
-
- * doc/install.texi (Defining Variables): Classify the `CONFIG_SHELL'
- hint as ``a workaround for a bug.''
-
-2006-01-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * bin/autoreconf.in: New option `--no-recursive'.
- Improve wording for subpackages a bit.
- * doc/autoconf.texi (autoreconf Invocation): Updated.
- * NEWS: Updated.
-
- * doc/install.texi (Defining Variables): Put `CONFIG_SHELL'
- in environment of `configure', not the command line.
- Reported by Howard Chu <hyc@highlandsun.com>.
-
-2006-01-25 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Builtins): Document the
- problem with "trap -".
-
-2006-01-23 Steven G. Johnson <stevenj@fftw.org>
-
- * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS, _AC_FC_DUMMY_MAIN):
- (_AC_FC_MAIN, __AC_FC_NAME_MANGLING): Use _AC_LANG in check
- messages to differentiate Fortran and Fortran 77 tests.
- (AC_FC_SRCEXT, AC_FC_FREEFORM): Use AC_LANG_PUSH/POP instead of
- AC_LANG_ASSERT, to allow use in mixed-language projects.
-
-2006-01-23 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/c.m4 (AC_LANG_FUNC_LINK_TRY(C)): Prefer "defined
- FOO" to "defined (FOO)".
- * lib/autoconf/functions.m4 (_AC_LIBOBJ_ALLOCA): Likewise.
- * lib/autoconf/headers.m4 (AC_HEADER_STAT): Likewise.
- * lib/autoconf/specific.m4 (AC_XENIX_DIR): Likewise.
- * tests/tools.at (ifnames): Likewise.
-
-2006-01-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/m4sugar/m4sh.m4 (AS_TMPDIR): Do not pass `-q' to mktemp.
- * lib/Autom4te/General.pm (mktmpdir): Likewise.
- (END): Improve error message a bit.
- Reported by Bruce Korb <bkorb@gnu.org>.
-
-2006-01-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS): Ignore
- `-LIST:' and `-LNO:', for PathScale 2.3 compilers.
-
-2006-01-11 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Header Portability): On Solaris 8, sys/ptem.h
- requires sys/stream.h. Reported by Oliver Kiddle.
-
-2006-01-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
- Stepan Kasal <kasal@ucw.cz>
-
- * lib/autotest/general.m4 (AT_INIT): When ensuring writability
- before the removals of test dirs, use `find' to avoid modification
- of symlinked directories.
-
-2006-01-11 Steven G. Johnson <stevenj@alum.mit.edu>
-
- * lib/autoconf/fortran.m4 (AC_F77_DUMMY_MAIN, AC_FC_DUMMY_MAIN):
- Don't ignore the macro arguments.
-
-2006-01-11 David Thompson <dthompsn@vizsolutions.com>
-
- * lib/autoconf/c.m4 (_AC_PROG_CXX_EXIT_DECLARATION): Add `exit'
- declaration that works for MSVC.
-
-2006-01-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/lang.m4 (_AC_COMPILER_OBJEXT_REJECT):
- Add `*.map' and `.inf' for Green Hills compiler.
- Reported by Stefan Seefeld <stefan@codesourcery.com>.
-
- * lib/m4sugar/m4sugar.m4 (m4_text_wrap): Handle quadrigraphs
- correctly: pad with spaces after FIRST_PREFIX if necessary,
- and compute string lenghts with `m4_qlen' instead of `m4_len'.
- * lib/m4sugar/m4sh.m4 (AS_HELP_STRING): Comments updated.
- * tests/m4sh.at (AS_HELP_STRING): Test extended.
- * NEWS: Updated.
- Reported by numerous people, numerous times.
-
-2006-01-05 Paul Eggert <eggert@cs.ucla.edu>
-
- * bin/autoconf.as, bin/autoheader.in, bin/autom4te.in
- * bin/autoreconf.in, bin/autoscan.in, bin/autoupdate.in, bin/ifnames.in:
- * lib/autoconf/general.m4, lib/autoconf/status.m4:
- * lib/autotest/general.m4, tests/local.at:
- Update copyright year to 2006.
-
- * Makefile.maint (sc_root_tests): Use the recommended style s/a/b/ for
- sed substitutions.
- * doc/autoconf.texi (Installation Directory Variables): Use s|a|b|
- for file names, again. Reported by Noah Misch.
- (Coding Style): Explain that s|a|b| is preferred for file names.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Prefer s/a/b/.
- (AC_OUTPUT_MAKE_DEFS): Likewise.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
- * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Likewise.
- * tests/local.at (AT_CHECK_AUTOM4TE): Likewise.
-
- Fix Posix-conformance bugs re use of { command in sed scripts,
- and improve the sed-related documentation a bit.
- * doc/autoconf.texi (Installation Directory Variables): Use
- our own style advice re 's,a,b,' versus 's|a|b|'. Use "Sed"
- rather than "sed" when talking about Sed in general.
- (Particular Programs): Likewise.
- (Coding Style): y is like s with respect to / and ,.
- (Limitations of Usual Tools): Document the weird restrictions
- that Posix has about { }. Use better quoting.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE, _AC_OUTPUT_HEADER):
- Rewrite to conform to Posix rules about { } in sed scripts.
- * lib/m4sugar/m4sh.m4 (AS_DIRNAME_SED, AS_BASENAME_SED): Likewise.
- * tests/foreign.at (Libtool): Likewise.
- * tests/semantics.at (AC_CHECK_PROG & AC_CHECK_PROGS):
- Use our own style advice re 's,a,b,' versus 's|a|b|'.
-
-2006-01-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4: Fix typo.
-
- * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS): Ignore
- singly- or doubly-quoted arguments to `-cmdline', `-ignore',
- `-def', for the benefit of Portland `pgf90 -Mipa'.
- Reported by Christopher Hulbert <cchgroupmail@gmail.com>.
-
-2006-01-04 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi: Update copyright (and other) dates to 2006.
- * doc/autoconf.texi (Shellology): Mac OS X 10.2 changed the default
- shell from zsh to bash.
-
-2005-12-31 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/programs.m4 (_AC_PROG_GREP): Use $PATH_SEPARATOR;
- ":" caused problems on OS/2-EMX. Suggested by Andrew Belov.
-
-2005-12-29 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Shell Substitutions): Warn about unbalanced
- parentheses in $(...). Problem reported by Eric Blake.
-
-2005-12-12 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Usual Tools):
- Mention which characters can be escaped with \ in portable regular
- expressions used in grep, sed, expr. Mention the leading ^ problem
- with expr. Clean up some confusing wording. Mention which
- grep options are portable.
-
-2005-12-09 Stepan Kasal <kasal@ucw.cz>
-
- * tests/local.at (AT_CHECK_AUTOM4TE): Fix typo in the comment.
-
-2005-12-02 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Builtins): Fix typos in previous
- patch, noted by Ralf Wildenhues.
-
-2005-12-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/m4sugar/m4sh.m4 (_AS_BOURNE_COMPATIBLE): Try `set -o
- posix' unconditionally, for pdksh in `native sh' emulation.
-
-2005-12-01 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Shellology): Document eval $? problem
- with ash.
- (Limitations of Builtins): Likewise.
-
-2005-11-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Pass
- CONFIG_SHELL in the environment of the configure rerun.
- * doc/autoconf.texi (Here-Documents, config.status Invocation):
- Suggest passing CONFIG_SHELL absolute, and in the environment
- rather than as option.
-
-2005-11-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE):
- Fix quoting of output line (triggered for many AC_SUBST_FILEs).
- Fix macro quoting. Fix output for n * 98 substituted variables.
-
-2005-11-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_MAIN_LOOP): Initialize
- `tmp' to avoid file removal race.
-
-2005-11-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Initialize
- ac_clean_files and LIBOBJS.
-
-2005-11-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/programs.m4 (AC_CHECK_PROG, AC_PATH_PROG):
- Factor functionality to..
- (_AC_CHECK_PROG, _AC_PATH_PROG): these new macros, but only
- `AC_SUBST($1)' in the public version.
- (AC_CHECK_TOOL, AC_PATH_TOOL, AC_PATH_TARGET_TOOL)
- (AC_CHECK_TARGET_TOOL): Use internal versions for ac_ct_* and
- ac_pt_* variables.
-
-2005-11-01 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/c.m4 (AC_PROG_CC_C_O): Remove the comment about 8+3
- filesystems.
-
-2005-11-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * NEWS: Move AH_HEADER mention to right place.
-
-2005-10-27 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/c.m4 (AC_PROG_CC_C_O): "conftst2" -> "conftest2"
- * lib/autoconf/fortran.m4 (_AC_PROG_FC_C_O): Likewise.
-
-2005-10-25 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/c.m4 (AC_PROG_CC_C_O): rm -f conftst2.*, not only
- conftst2.$ac_objext.
- * lib/autoconf/fortran.m4 (_AC_PROG_FC_C_O): Likewise.
-
-2005-10-24 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/c.m4 (AC_PROG_CC_C_O): Use conftst2.o instead of
- conftest.o, to see whether the compiler really obeys; rm the object
- file before and after the test and register it with ac_clean_files.
- * lib/autoconf/fortran.m4 (_AC_PROG_FC_C_O): Likewise.
-
-2005-10-21 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): When determining,
- the delimiter CEOF$ac_eof: fix quoting of CEOF[0-9]* and modify the
- code so that the most common case requires less forks.
-
-2005-10-20 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Shell Substitutions}: Document that ${10} is
- not portable; thanks to Paul Eggert and Alexandre.
-
- * NEWS: Fix an old typo.
-
-2005-10-20 Jim Meyering <jim@meyering.net>
-
- * doc/autoconf.texi: Typo: s/feature/features/ in ``the features of
- the latter'', in two places.
-
-2005-10-19 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Generating Sources): AC_LANG_PROGRAMS ->
- AC_LANG_PROGRAM, fixing a typo. Don't give details about
- the inner workings of AC_LANG_FUNC_LINK_TRY.
- * lib/autoconf/c.m4 (AC_LANG_CALL(C)): Reformat to match
- AC_LANG_FUNC_LINK_TRY. This involves returning the value returned
- by the function rather than ignoring it.
- (AC_LANG_FUNC_LINK_TRY(C)): Call the function rather than simply
- comparing its address. Intel's interprocedural optimization was
- outsmarting the old heuristic. Problem reported by
- Mikulas Patocka.
-
-2005-10-19 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (AC_SUBST): Remove an obsolete comment.
-
-2005-10-05 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/m4sugar/m4sugar.m4 (_m4_map): New macro.
- (m4_map, m4_map_sep): Use it. Handle the empty list correctly.
-
-2005-10-04 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autotest/general.m4 (AT_INIT): Really make the subtree writable
- before removing it (chmod -R u+rwx); there are three instances of this.
-
-2005-10-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
- Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): Balance parentheses.
- * lib/autotest/general.m4 (AT_INIT): If the test dir already exists,
- make its content writable before removing it. Remove an errorneous
- comment from the end, where the logs of the failed tests are copied
- to the main log file.
-
-2005-09-27 Stepan Kasal <kasal@ucw.cz>
-
- * tests/semantics.at (AC_C_BIGENDIAN): Pass --force to autoheader,
- in case the computer is too quick. Double quote the configure.ac
- snippets.
-
- * tests/local.at (AT_CHECK_AUTOCONF): Always pass --force to prevent
- problems if the testsuite were running too fast.
-
-2005-09-18 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/libs.m4 (_AC_PATH_X_DIRECT): Look for X11/Xlib.h
- and XrmInitialize rather than X11/Intrinsic.h and XtMalloc
- (which belong to Xt, not X itself). See Debian bug 327655.
- * NEWS: Mention this.
-
-2005-09-07 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/c.m4 (AC_LANG_SOURCE(C)): Remove an incorrect comment.
-
-2005-09-06 Paul Eggert <eggert@cs.ucla.edu>
-
- * config/move-if-change: Don't output "$2 is unchanged";
- suggested by Ben Elliston. Handle weird characters correctly.
-
-2005-09-06 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/libs.m4 (AC_SEARCH_LIBS): Merge the two AC_LINK_IFELSE
- calls, so that the final expansion of this macro is shorter.
- Create the conftest.$ac_ext outside the `for' loop, to speed the run.
- Do not use `break' in the argument to AC_LINK_IFELSE, it would skip
- the cleanup there. Use AS_VAR_* macros, to be more general.
- * tests/semantics.at (AC_SEARCH_LIBS): Check for the cleanup.
-
- * lib/autoconf/general.m4: Use AS_IF where appropriate.
-
- * lib/m4sugar/m4sh.m4 (AS_IF): Use m4_default.
-
-2005-09-01 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Configuration Headers): Add an index entry
- for AH_HEADER.
-
-2005-08-26 Pavel Roskin <proski@gnu.org>
-
- * lib/autoconf/libs.m4 (_AC_PATH_X_XMKMF): Use shell variable
- XMKMF to locate xmkmf. Make XMKMF precious. Export CC when
- running xmkmf.
-
-2005-08-26 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/m4sugar/m4sh.m4 (_AS_VERSION_COMPARE_PREPARE):
- The previous patch didn't work, so try a better one.
-
-2005-08-26 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Programming in M4sh) <AS_TR_CPP>: Fix m4 quoting
- in the example. Reported by Bruno Haible.
- <AS_TR_SH>: Likewise. Also modify the example to be more convincing:
- "if $undefined_var;" succeeds with my shell.
-
- * lib/autoconf/general.m4 (AC_CANONICAL_BUILD, AC_CANONICAL_HOST,
- AC_CANONICAL_TARGET): Define by AC_DEFUN, no need to use AC_DEFUN_ONCE;
- but change the m4_divert_text to m4_divert_once.
-
-2005-08-25 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/m4sugar/m4sh.m4 (_AS_VERSION_COMPARE_PREPARE):
- Work around bug in Solaris /usr/xpg4/bin/awk.
- The bug is present in at least Solaris 8 through 10.
-
-2005-08-24 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (_AC_CANONICAL_SPLIT): Simplify; rejecting
- some evil values and relying on the fact that $* concatenates the
- parameters by the first character from IFS.
-
-2005-08-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>,
- Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/status.m4 (_AC_CONFIG_REGISTER_DEST): When the
- first header appears, define AH_HEADER.
- * doc/autoconf.texi (Configuration Headers): Document AH_HEADER.
- Update limitations about when to call AC_CONFIG_HEADERS.
- (Configuration Commands): Document that AC_CONFIG_COMMANDS_PRE
- parameter can call AC_SUBST, AC_DEFINE, or AC_CONFIG_FOOS; explain
- that AC_CONFIG_COMMANDS_PRE and AC_CONFIG_COMMANDS_POST are not
- ``Configuration Actions''; fix their index entries.
-
- * lib/autotest/general.m4 (AT_INIT): Process multiple keywords
- options correctly. Process N-M as M-N if M is smaller than N.
- Process ranges correctly so that N-N will run only N.
- Sort and uniquify the tests that will be run. If there is more
- than one test, reinsert the banners for the tests.
- * tests/autotest.at (Keywords): Unmark XFAIL.
-
-2005-08-23 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (_AC_DEFINE_Q): Strip the parameter list
- before passing the macro name to AH_TEMPLATE.
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): config.status
- now opens log after option processing; in particular, --version
- and --help do not touch config.log.
-
- * Makefile.maint: Revert the change from 2005-08-12.
-
-2005-08-22 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (AC_ARG_ENABLE, AC_ARG_WITH): Factor out
- common code to...
- (_AC_ENABLE_IF, _AC_ENABLE_IF_ACTION): ... these new macros.
-
-2005-08-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Using Autotest, testsuite Scripts)
- (Autotest Logs, Writing testsuite.at, testsuite Invocation):
- Language cleanup.
-
- * doc/autoconf.texi (Defining Symbols, Changed Results):
- Prepend to LIBS, not append, in examples.
-
-2005-08-16 Stepan Kasal <kasal@ucw.cz>
-
- When building in place, set srcdir="."; suggested by Tim Van Holder.
-
- * lib/autoconf/general.m4 (_AC_INIT_SRCDIR): Do this; to recognize
- build in place, we need ac_pwd, and thus have to AC_REQUIRE ...
- (_AC_INIT_DIRCHECK): ... this macro and AC_DEFUN both of them.
- * lib/autoconf/status.m4 (_AC_SRCDIRS): Fix a comment: srcdir="."
- does not mean "no --srcdir option".
-
-2005-08-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * tests/autoscan.at (autoscan): New file.
- * tests/suite.at: Use it.
- * tests/Makefile.am (TESTSUITE_HAND_AT): Add it.
- Reported against Libtool by Gideon Go <gideon.go@gmail.com>.
-
- * tests/autotest.at (Keywords): Test keywords combinations.
-
-2005-08-12 Stepan Kasal <kasal@ucw.cz>
-
- * Makefile.maint (GZIP_ENV): When checking the help text of gzip,
- add "2>&1"; gzip 1.2.4 prints help on stderr.
-
-2005-07-27 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autotest/general.m4 (_AT_DECIDE_TRACEABLE): The symbol at_reason
- was pushdef'ed twice while popped only once. Push it only once.
- (_AT_CHECK): Cosmetic changes to the "case $at_status" command.
-
-2005-07-26 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): The message is now
- prefixed by mere "===", not "configure: === ".
-
-2005-07-25 Paul Eggert <eggert@cs.ucla.edu>
-
- * Makefile.maint: Update from Bison.
-
- * lib/m4sugar/m4sugar.m4 (m4_strip): Comment fix---change tab to
- "<tab>" in comment, so that the point is understandable.
-
-2005-07-25 Stepan Kasal <kasal@ucw.cz>
-
- Rewrite substantial part of lib/autoconf/status.m4.
- The main change is that CONFIG_FILES, CONFIG_HEADERS, CONFIG_LINKS,
- and CONFIG_COMMANDS are not processed in four separate loops.
- Instead, there is one main loop. This alows that the common code
- is expanded only once, thus config.status (and configure) is smaller.
-
- The registration mechnism in AC_CONFIG_FILES and cousins also changed;
- the AC_LIST_FILES and cousins macros are no longer used.
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES, _AC_OUTPUT_HEADERS,
- _AC_OUTPUT_LINKS, _AC_OUTPUT_COMMANDS): Renamed to ...
- (_AC_OUTPUT_FILE, _AC_OUTPUT_HEADER, _AC_OUTPUT_LINK,
- _AC_OUTPUT_COMMAND): ..., respectively. These macros no longer
- contain the initialization, nor the for loop, nor the associated
- commands; all these go to ...
- (_AC_OUTPUT_MAIN_LOOP): ... this new macro, called from
- _AC_OUTPUT_CONFIG_STATUS.
- (_AC_CONFIG_SPLIT, _AC_CONFIG_SPLIT_SOURCE_DEST, _AC_CONFIG_SPLIT_FILE_IN):
- Nuked; the code was merged into _AC_OUTPUT_MAIN_LOOP.
- (_AC_OUTPUT_FILE): The creation of the sed script ...
- (AC_OUTPUT): ... and the setup of ac_vpsub goes to ...
- (_AC_OUTPUT_FILES_PREPARE): ... a new macro, also called from
- _AC_OUTPUT_MAIN_LOOP.
- (_AC_CONFIG_FILES, _AC_CONFIG_HEADERS, _AC_CONFIG_LINKS,
- _AC_CONFIG_COMMANDS): Use ...
- (_AC_CONFIG_FOOS): ... this new macro, which uses these ...
- (_AC_CONFIG_REGISTER, _AC_CONFIG_REGISTER_DEST): ... new macros.
- (_AC_CONFIG_FILE, _AC_CONFIG_HEADER, _AC_CONFIG_LINK,
- _AC_CONFIG_COMMAND, _AC_CONFIG_DEPENDENCIES): No longer needed.
- (_AC_CONFIG_DEPENDENCY): Update, it uses these ...
- (_AC_CONFIG_DEPENDENCY_DEFAULT, _AC_FILE_DEPENDENCY_TRACE_COLON):
- ... new macros.
- (_AC_CONFIG_UNIQUE): Update.
- (AC_LIST_FILES, AC_LIST_HEADERS, AC_LIST_LINKS, AC_LIST_COMMANDS):
- Replaced by this ...
- (_AC_LIST_TAGS): ... new common macro.
- (AC_LIST_FILE_COMMANDS, AC_LIST_HEADER_COMMANDS, AC_LIST_LINK_COMMANDS,
- AC_LIST_COMMAND_COMMANDS): Replaced by this ...
- (_AC_LIST_TAG_COMMANDS): ... new common macro.
- (_AC_CONFIG_COMMANDS_INIT): Moved top to the `registration' section;
- this didn't belong to the `config commands' section.
- (_AC_OUTPUT_COMMANDS_INIT): Don't initialize, m4_ifdef is our friend.
- (AC_CONFIG_COMMANDS_PRE, AC_OUTPUT_COMMANDS_PRE,
- AC_CONFIG_COMMANDS_POST): Moved to a new section, these didn't belong
- to the `config commands' section either.
- (AC_CONFIG_SUBDIRS): Don't touch diversion DEFAULTS.
- (_AC_LIST_SUBDIRS): Don't initialize, m4_ifdef is our friend.
-
- ... and many changes to the comments nearby.
-
- * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): At the end of the day,
- set ac_subdirs_all='_AC_LIST_SUBDIRS'.
- * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
- AC_CONFIG_COMMANDS(command:input,...) is no longer allowed.
- (#define header templates): The comment at the top of the generated
- header now includes the name(s) of the source file(s).
-
- Several unrelated small changes:
-
- * lib/autoconf/general.m4 (AC_CACHE_VAL): Be didactic, quote the first
- parameter to AC_DIAGNOSE.
- * lib/autoconf/status.m4 (AC_CONFIG_SUBDIRS): Likewise.
- (_AC_LINK_FILES_CNT): Don't AU_DEFUN this; it causes confusing messages
- with autoupdate; use m4_define_default inside AU_DEFUNed AC_LINK_FILES.
- (AC_OUTPUT): In the compatibility code, use m4_ifvaln, to be consistent
- with AU::AC_OUTPUT.
- (AU::AC_OUTPUT): Don't double-quote $2 and $3, the compatibility code
- in AC_OUTPUT doesn't double-quote it either.
- * tests/tools.at (autoupdate): AU::AC_OUTPUT no longer double-quotes the
- parameters.
-
-2005-07-10 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): Document which
- versions of Portland Group compiler produce single- and double-quoted
- -cmdline argument. Reported by Steven G. Johnson <stevenj@fftw.org>
- and Ole Holm Nielsen <Ole.H.Nielsen@fysik.dtu.dk>.
-
-2005-07-07 Paul Eggert <eggert@cs.ucla.edu>
-
- * tests/local.at (AT_CONFIG_CMP): Ignore lines like "LIBS=''" too.
- This is a corrected version of yesterday's patch.
-
-2005-07-07 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): Report the full
- path, too; insert a "===" to emphasize the line.
-
- * lib/autoconf/general.m4 (AC_CANONICAL_BUILD): Rename
- ac_cv_build_alias to ac_build_alias.
- (AC_CANONICAL_HOST, AC_CANONICAL_TARGET): Simplify.
-
- On 2005-02-24, an unintentional AC_SUBST([CC]) was introduced; this
- change eliminates it. Problem reported by Alexandre Duret-Lutz.
- * lib/autoconf/general.m4 (_AC_ARG_VAR_PRECIOUS): Move the AC_SUBST ...
- (AC_ARG_VAR): ... here.
- (_AC_INIT_PREPARE): Call AC_SUBST for build_alias, host_alias and
- target_alias.
-
- Keep a list of all precious variables and process them with one simple
- for loop, instead of expanding all commands, or, OTOH, complicated
- processing of output of "set".
- * lib/autoconf/general.m4 (_AC_ARG_VAR_PRECIOUS): Acumulate the
- variable names in new macro...
- (_AC_PRECIOUS_VARS): ... which will be assigned to ac_precious_vars.
- (_AC_ARG_VAR_STORE): New macro which writes to diversion PARSE_ARGS
- a loop to assign all ac_env_* and ac_cv_env_* variables.
- (_AC_ARG_VAR_VALIDATE): Use shell variable ac_precious_vars, divert
- to INIT_PREPARE.
- (_AC_INIT_DEFAULTS): At the end, if _AC_PRECIOUS_VARS is set, assign
- its value to shell variable ac_precious_vars and call
- _AC_ARG_VAR_STORE and _AC_ARG_VAR_VALIDATE.
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Don't call
- _AC_ARG_VAR_VALIDATE.
-
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Move AC_LANG_PUSH(C)
- and the AC_SUBSTs ...
- (AC_INIT): ... here.
-
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Changed the title of
- the ac_subst_files section in config.log.
-
- * tests/local.at (AT_CONFIG_CMP): Revert Paul's previous change.
-
-2005-07-06 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: New macro AC_C_TYPEOF.
- * doc/autoconf.texi (C Compiler): Document AC_C_TYPEOF.
- * lib/autoconf/c.m4 (AC_C_TYPEOF): New macro.
- * tests/c.at (C keywords): Test AC_C_TYPEOF.
-
- Fix problems reported by Nicolas Joly.
- * tests/base.at (Input/Output): Ignore 'loading site script' chatter.
- * tests/local.at (AT_CONFIG_CMP): Ignore lines like "LIBS=''" too.
- They are generated by the Tru64 v5.1B shell.
-
-2005-07-05 Stepan Kasal <kasal@ucw.cz>
-
- Fix my changes from 2005-07-01; reported by Noah Misch.
- * lib/autoconf/status.m4 (_AC_CONFIG_DEPENDENCIES): Fix the
- description, the macro now accepts only a single tag.
- (_AC_CONFIG_UNIQUE): Likewise; s/AC_File/[$1]/
-
- Fix cases when the varsions of Autoconf and Autotest don't match.
- Reported by Noah Misch.
- * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Set also
- at_top_builddir, for compatibility with older autotest.
- * lib/autotest/general.m4 (AT_INIT): If at_top_build_prefix
- is not set, use at_top_builddir, for compatibility with older
- versions of autoconf.
-
-2005-07-04 Paul Eggert <eggert@cs.ucla.edu>
-
- * bin/autom4te.in ($m4): Catch usages like --nesting-limit=2048.
- Problem reported by Patrick Welche.
-
-2005-07-03 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/general.m4 (AC_ARG_PROGRAM): Use &, not |, in
- sed substitution command, so that we allow | in program prefixes
- and program suffixes. (& is a problem anyway; we're not fixing
- that here.)
- * lib/autoconf/status.m4 (AC_CONFIG_FILES): Likewise, for
- configure_input, top_builddir, srcdir, etc.
- * lib/autotest/general.m4 (AT_INIT): Likewise, for
- PATH_SEPARATOR in AUTOTEST_PATH.
-
-2005-07-02 Alexandre Duret-Lutz <adl@gnu.org>
-
- * lib/autoconf/general.m4 (AC_SITE_LOAD): Rewrite the
- for loop over config.site files using `set', to allow
- directory names containing IFS characters.
-
-2005-07-01 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/general.m4 (_AC_INIT_DIRCHECK): Remove the tests for
- directories with weird names. Apparently some people like living
- on the edge. However, improve the test that "pwd" actually does
- report a name for the working directory.
- * NEWS: Remove the claim that we test for funny chars in dir names.
-
-2005-07-01 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (AC_FOREACH): Make obsolete; it's
- replaced ...
- * lib/m4sugar/m4sugar.m4 (m4_foreach_w): ... by this new macro.
- * lib/autoconf/status.m4 (_AC_CONFIG_DEPENDENCIES, _AC_CONFIG_UNIQUE):
- Now accept a single tag, not whitespace separated list.
- (AC_CONFIG_SUBDIRS): Call _AC_CONFIG_UNIQUE in a m4_foreach_w loop.
-
-2005-06-30 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Configuration Headers): Change the explanation
- about #include <config.h>.
- (Generic Functions): Mention the Gnulib project.
- (Limitations of Usual Tools) <sed>: Another minor rephrasing.
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Use a here
- document to output the default config_* lists to config.status.
- Don't recognize option --file, if the functionality is not there.
- Likewise for --header; moreover, recognize --he and --h as shortcuts
- for --help in that case.
-
- * lib/autoconf/status.m4: Fix the order of the "sections", so that it
- matches the order of execution. No code changed.
-
-2005-06-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): Fix also for
- single-quoted -cmdline argument in Portland Group compiler.
- Reported against LAM by Ole Holm Nielsen <Ole.H.Nielsen@fysik.dtu.dk>.
-
-2005-06-30 Alexandre Duret-Lutz <adl@gnu.org>
-
- * lib/autom4te.in (Automake-preselections): Preselect AC_SUBST_TRACE.
-
-2005-06-29 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (File Descriptors): ksh doesn't pass open file
- descriptors to child processes; reported by Norman Gray.
-
-2005-06-29 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (AC_ARG_VAR): Move next to _AC_ARG_PRECIOUS.
-
- * lib/autoconf/general.m4 (AC_SUBST_TRACE): New macro, to be traced
- instead of AC_SUBST; proposed by Alexandre Duret-Lutz.
- (AC_SUBST): Call it.
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES): Call AC_SUBST_TRACE for
- the directory specific variables; but don't call it for configure_input.
-
-2005-06-28 Derek Price <derek@ximbiot.com>
-
- * doc/autoconf.texi (Limitations of Usual Tools) <sed>: Reword recent
- addition.
-
-2005-06-23 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: Don't worry about spaces in bindir etc. Only srcdir and working
- directory have inherent problems with special characters like spaces,
- due to limitations in Make syntax. Problem reported by Alexandre
- Duret-Lutz.
- * lib/autoconf/general.m4 (_AC_INIT_DIRCHECK): Implement the above.
- Also, fix Tru64 porting problem with shell patterns,
- reported by Ralf Wildenhues.
-
-2005-06-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Subdirectories): Fix markup typos.
-
-2005-06-23 Paul Eggert <eggert@cs.ucla.edu>
-
- * tests/local.at (AT_CHECK_ENV): Simplify regexp slightly.
-
- Fix some more shell quoting problems. Prompted by a bug report
- from Justace Clutter.
- * lib/autoconf/general.m4 (_AC_INIT_DIRCHECK): Put name of invalid
- variable into diagnostic. Make the diagnostic an error, not a warning,
- because we really don't support spaces and suchlike in dir names.
- (_AC_INIT_SRCDIR): Allow special characters in $ac_unique_file.
- Don't worry about backslashes in srcdir; it can't happen now.
- (_AC_INIT_PARSE_ARGS): Allow weird characters in ac_optarg.
- Simplify ac_optarg handling.
- (_AC_ARG_VAR_VALIDATE): Remove unnecessary and inconsistent quotes.
-
-2005-06-22 Stepan Kasal <kasal@ucw.cz>
-
- Fix AT_CONFIG_CMP for Solaris hosts; idea from Ralf Menzel.
- * configure.ac: Call AC_PROG_EGREP and AC_PROG_SED.
- * tests/atlocal.in: Propagate $EGREP and $SED.
- * tests/local.at (AT_CHECK_ENV): Use $EGREP, not $GREP -E.
- (AT_CONFIG_CMP): Use sed instead of grep plumbing.
-
- * doc/autoconf.texi (Limitations of Usual Tools) <grep>: Mention
- that '\|' is not allowed in BREs; recommend using newline separated
- list of patterns instead of multiple -e options.
-
- * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): Remove an old comment.
-
- * lib/autoconf/general.m4 (_AC_CANONICAL_SPLIT): Use AC_SUBST/2.
-
-2005-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/general.m4 (_AC_CANONICAL_SPLIT): Fix typo.
-
-2005-06-21 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Limitations of Usual Tools) <sed>: Document that
- b, t, r, w commands require single space, while : cannot have any.
- (Special Shell Variables): Fix sed code this in the example.
- * lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS): Likewise; and fix a typo.
- * lib/autotest/general.m4 (AT_ARG_OPTION): Fix typo in the description.
-
- * lib/m4sugar/m4sugar.m4 (m4_split): If the parameter is empty,
- expand to the empty list. Don't use two pairs of m4_changequote,
- it's not necessary.
-
-2005-06-20 Derek Price <derek@ximbiot.com>
-
- * lib/m4/programs.m4 (AC_PROG_YACC): Declare YACC & YFLAGS precious.
-
-2005-06-17 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/m4sugar/m4sh.m4 (as_awk_strverscmp): Port to Solaris /bin/awk.
- * doc/autoconf.texi:
- Don't mention Solaris versions so much, if a
- problem is common to all extant versions of Solaris. Say "SunOS
- 4" instead of "SunOS" for SunOS 4.
- (awk): Mention more of the limitations of traditional Awk.
- (cat): Don't talk about cat -v.
-
-2005-06-16 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/m4sugar/m4sh.m4 (_AS_VERSION_COMPARE_PREPARE): New macro.
- (AS_VERSION_COMPARE): New macro. The API is taken from CVS,
- but the implementation is entirely different and is designed
- to be compatible with glibc strverscmp.
- * tests/m4sh.at (AS_VERSION_COMPARE): New test.
-
- * doc/autoconf.texi (Limitations of Usual Tools): Mention expr bug
- on Mac OS X 10.4 reported by Peter O'Gorman in:
- http://lists.gnu.org/archive/html/autoconf-patches/2005-06/msg00041.html
- * lib/autoconf/general.m4 (_AC_CANONICAL_SPLIT):
- Use shell builtins rather than 'expr', to work around expr bug.
-
-2005-06-10 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi: "filesystem" -> "file system".
- "behaviour" -> "behavior".
- Warn about \(...\)* in Solaris sed (written by Ralf Menzel).
- * lib/autoconf/general.m4: Omit blank after ":" sed command,
- as per POSIX.
- * lib/m4sugar/m4sh.m4: Likewise.
- * lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS): Work around problem
- with Solaris sed. Fix by Ralf Menzel and Stepan Kasal.
-
- * man/Makefile.am (MOSTLYCLEANFILES): Add $(srcdir)/*.t.
- (.x.1): Ignore the time stamp in the .TH line when deciding whether
- to update the man page. That way, we don't have to check in new
- man pages every month.
-
- * lib/m4sugar/m4sh.m4 (AS_VAR_TEST_SET): Work even if $1 contains
- quotes and backslashes. Patch from Derek Price.
-
-2005-06-10 Derek Price <derek@ximbiot.com>
-
- * doc/autoconf.texi (Programming in M4sh): Document AS_TR_CPP &
- AS_TR_SH.
-
-2005-06-08 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autotest/general.m4 (AT_INIT): Don't accept Solaris 9's diff
- -u, since it outputs chatter if the input files are the same.
- Problem reported by Ralf Menzel.
-
-2005-06-08 Derek Price <derek@ximbiot.com>
-
- * lib/m4sugar/m4sugar.m4: Undefine include & sinclude rather than
- renaming them since they are about to be redefined anyhow.
-
-2005-06-08 Derek Price <derek@ximbiot.com>
-
- * doc/autoconf.texi (Redefined M4 Macros): Add index entries for most
- redefined M4 macros to this node. Document m4_include & m4_sinclude.
- Move m4_undefine to alphabetical order.
-
-2005-06-07 Paul Eggert <eggert@cs.ucla.edu>
-
- * README: Recommend GNU M4 1.4.3 or later.
- * doc/autoconf.texi (Introduction): Likewise.
- Reword to avoid some formatting glitches.
- Use "#!/bin/sh", not "#! /bin/sh"; the space isn't needed these days.
- Clarify explanation of HP compiler bug.
- Redo example output tp match current CVS snapshot.
- Use @example.org in email addresses when the examples
- might get inadvertently cut-and-pasted into user code.
- Remove example of autom4te usage that doesn't seem to work now.
- Use modern AC_INIT (except when the example is meant to be
- shown with Autoconf 2.13).
- Update ksh info for Solaris 9 and later.
- KB -> kB.
- Modernize description of Automake versions a bit.
- Don't claim a future version of Autoconf is near.
- * doc/install.texi: Reword to avoid some formatting glitches.
-
-2005-06-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi: Add [] to examples, so that the manual
- follows its own advice about quoting better.
- Reword to avoid some formatting glitches.
- * doc/installt.exi: Reword to avoid some formatting glitches.
-
- * doc/autoconf.texi (Limitations of Builtins) <case>: Mention
- Tru64 ksh pattern matching bug. Reported against Libtool by
- Albert Chin <libtool@mlists.thewrittenword.com> and
- Nicolas Joly <njoly@pasteur.fr>.
-
-2005-06-06 Stepan Kasal <kasal@ucw.cz>
-
- m4_cdr of one-member list was [[]] (one-member list containing an
- empty string) instead of [] (an empty list. Callers were skewed to
- match this misbehaviour. As a consequence of this:
- - m4_foreach([x], [], [foo]) expanded to `foo', while
- - the expansion of m4_foreach([x], [[]], [foo]) was empty.
- This bug has been fixed:
-
- * lib/m4sugar/m4sugar.m4 (m4_cdr): If only one argument is given,
- expand to an empty string; print error msg if called without
- an argument list.
- (m4_foreach, m4_map, m4_map_sep): Don't expect the previous
- misbehaviour; handle [] and [[]] correctly.
-
-2005-06-06 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Nuke ac_max_here_lines.
- * lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS): Simplify the sed
- scripts created and the loop applying them, use _AC_SED_CMD_LIMIT.
-
-2005-06-06 Ralf Menzel <menzel@ls6.cs.uni-dortmund.de> (trivial change)
-
- * doc/autoconf.texi (Limitations of Usual Tools): Solaris' awk cannot
- swallow records with more than 99 fields.
- * lib/autotest/general.m4 (AT_INIT): Use the awk builtin `split' to
- parse the long line.
-
-2005-06-04 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Limitations of Usual Tools): AIX awk cannot
- swallow literals longer than 399. Reported by Ralf Wildenhues.
- * lib/autotest/general.m4 (AT_INIT): Pass $at_groups though stdin,
- to workaround this limitation.
-
-2005-06-03 Steven G. Johnson <stevenj@alum.mit.edu>
-
- * lib/autoconf/fortran.m4 (_AC_PROG_FC): Find g95 in addition
- to gfortran, and make these the first two compiler names
- checked (following the general autoconf preference for gcc).
-
-2005-06-03 Stepan Kasal <kasal@ucw.cz>
-
- * tests/Makefile.am (check_SCRIPTS): Set to $(wrappers).
- (DISTCLEANFILES): Remove $(check_SCRIPTS).
- (testsuite): Make sure autotest.m4f is up-to-date before using it.
-
-2005-06-02 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autotest/general.m4 (AT_INIT): Don't create a regular
- expression of unbounded size when processing the --list
- option. This runs afoul of a limit of 399 bytes per regular
- expression on AIX. Problem reported by Ralf Wildenhues.
-
-2005-06-01 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: Note yesterday's changes to AC_SUBST and AC_SUBST_FILE.
- * doc/autoconf.texi (Particular Headers): Reword example
- for multiline stdbool replacement.
- (Setting Output Variables): Reword text a bit. Don't
- give all the details about |#_!!_#|.
- Reword description of line replacement.
-
-2005-05-31 Dan Manthey <dan_manthey@partech.com>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES): Output variables may
- now contain newlines, and substituted files must be referenced on
- a line alone; the sed scripts to substitute them are now very
- different.
- (_AC_SED_CMD_LIMIT): Added; single place to store limit on how many
- commands can be put in a sed script portably.
- * doc/autoconf.texi (Setting Output Variables): Document above
- changes. (Particular Header Checks) <AC_HEADER_STDBOOL>: Give exaple
- use of multiline substitution.
- * tests/torture.at: No longer expect substitution of newline to fail.
-
-2005-05-27 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/m4sugar/m4sh.m4 (_AS_SHELL_FN_WORK): Fix diagnostics.
- From Ralf Menzel (trivial change).
-
-2005-05-25 Paul Eggert <eggert@cs.ucla.edu>
-
- * tests/local.at: Don't attempt to check for negated character
- classes in shell scripts. The test was too brittle.
-
-2005-05-25 Stepan Kasal <kasal@ucw.cz>
-
- * bin/autoconf.as: Don't use "shift 2"; it's not portable enough.
- * doc/autoconf.texi (Limitations of Builtins): Document this
- limitation.
-
-2005-05-24 Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sh.m4 (_AS_ECHO_LOG): New macro to factor out
- common code; used in many places in the tree.
- (AS_ESCAPE): Make the pattern a bit simpler; use \& insetad of \1.
- (_AS_ECHO_UNQUOTED): Move the macro lower; no code change.
-
- * lib/m4sugar/m4sugar.m4 (m4_ifset): Use m4_ifval.
-
- * lib/autoconf/general.m4 (_AC_INIT_SRCDIR): Merge the two error
- messages when ac_unique_file is not found.
- (AC_CONFIG_MACRO_DIR): Simplify the `if' at the end.
- (AC_MSG_CHECKING, AC_MSG_RESULT): Put braces around the two echo
- commands, for consistency with AC_MSG_ERROR and such.
-
- * bin/autoconf.as: Make more use of "shift 2" in option processing.
-
- * bin/Makefile.am: Merge the two rules for creating scripts.
-
-2005-05-23 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (AC_MSG_RESULT_UNQUOTED): Make
- obsolete; it was never documented.
- (AC_CACHE_CHECK): Use AC_MSG_RESULT instead.
-
-2005-05-20 Stepan Kasal <kasal@ucw.cz>
-
- * NEWS: @top_builddir@ is now a dirname, ac_top_builddir will follow.
- * lib/autoconf/status.m4 (_AC_SRCDIRS): Rename ...
- (ac_top_builddir): ... this ...
- (ac_top_build_prefix): ... to this; the old name is also kept, for
- backward compatibility.
- (ac_top_builddir_sub): New variable, without the trailing slash,
- always nonempty.
- (_AC_OUTPUT_FILES): s/@top_builddir@/$ac_top_builddir_sub/
- * doc/autoconf.texi (Configuration Actions): Rename
- ac_top_builddir to ac_top_build_prefix.
- * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Rename
- at_top_builddir to at_top_build_prefix.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
-
-2005-05-20 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Simplify the init
- of confdefs.h .
-
-2005-05-17 Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sugar.m4 (m4_text_wrap): Don't m4_quote the second
- argument to m4_foreach. I guess it was necessary in the past,
- but I think it's a no-op now.
-
-2005-05-17 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (_AC_INIT_HELP): Merge two consecutive
- ``cat <<_ACEOF'' commands to one.
- (_AC_CANONICAL_SPLIT): Use expr, not ``echo|sed.''
- * lib/autoconf/status.m4: On various places, use expr instead of
- ``echo|sed.''
- (_AC_CONFIG_SPLIT, _AC_CONFIG_SPLIT_SOURCE_DEST):
- (_AC_CONFIG_SPLIT_FILE_IN): New macros, to factor out common code.
- * lib/autotest/general.m4 (AT_INIT): Use expr to get the numbers from
- a range.
- * tests/local.at (AT_CHECK_SHELL_SYNTAX): Use awk to search for
- the wrong patterns between ``case'' and ``esac.'' The previous
- code had false positives.
-
-2005-05-14 Alexandre Duret-Lutz <adl@gnu.org>
-
- * lib/autoconf/functions.m4 (_AC_LIBOBJ_ALLOCA): Prepend ${LIBOBJDIR},
- as on 2005-05-02.
- * doc/autoconf.texi (Particular Functions) <AC_FUNC_ALLOCA>:
- Mention LIBOBJDIR.
-
-2005-05-13 Paul Eggert <eggert@cs.ucla.edu>
-
- * AUTHORS, BUGS, COPYING, ChangeLog, ChangeLog.0, ChangeLog.1,
- ChangeLog.2, GNUmakefile, Makefile.am, Makefile.cfg,
- Makefile.maint, NEWS, README, README-alpha, TODO, configure.ac,
- bin/Makefile.am, bin/autoconf.as, bin/autoheader.in,
- bin/autom4te.in, bin/autoreconf.in, bin/autoscan.in,
- bin/autoupdate.in, bin/ifnames.in, config/Makefile.am,
- config/config.guess, config/config.sub, config/elisp-comp,
- config/m4.m4, config/mdate-sh, config/missing, config/texinfo.tex,
- doc/Makefile.am, doc/fdl.texi, lib/Makefile.am, lib/autom4te.in,
- lib/freeze.mk, lib/Autom4te/C4che.pm, lib/Autom4te/ChannelDefs.pm,
- lib/Autom4te/Channels.pm, lib/Autom4te/Configure_ac.pm,
- lib/Autom4te/FileUtils.pm, lib/Autom4te/General.pm,
- lib/Autom4te/Request.pm, lib/Autom4te/Struct.pm,
- lib/Autom4te/XFile.pm, lib/autoconf/Makefile.am,
- lib/autoconf/autoconf.m4, lib/autoconf/autoheader.m4,
- lib/autoconf/autoscan.m4, lib/autoconf/autotest.m4,
- lib/autoconf/autoupdate.m4, lib/autoconf/c.m4,
- lib/autoconf/fortran.m4, lib/autoconf/functions.m4,
- lib/autoconf/general.m4, lib/autoconf/headers.m4,
- lib/autoconf/lang.m4, lib/autoconf/libs.m4,
- lib/autoconf/oldnames.m4, lib/autoconf/programs.m4,
- lib/autoconf/specific.m4, lib/autoconf/status.m4,
- lib/autoconf/types.m4, lib/autoscan/Makefile.am,
- lib/autoscan/autoscan.list, lib/autoscan/autoscan.pre,
- lib/autotest/Makefile.am, lib/autotest/autotest.m4,
- lib/autotest/general.m4, lib/emacs/Makefile.am,
- lib/emacs/autoconf-mode.el, lib/emacs/autotest-mode.el,
- lib/m4sugar/Makefile.am, lib/m4sugar/m4sh.m4,
- lib/m4sugar/m4sugar.m4, man/Makefile.am, tests/Makefile.am,
- tests/atlocal.in, tests/autotest.at, tests/base.at, tests/c.at,
- tests/compile.at, tests/foreign.at, tests/fortran.at,
- tests/local.at, tests/m4sh.at, tests/m4sugar.at, tests/mktests.sh,
- tests/semantics.at, tests/suite.at, tests/tools.at,
- tests/torture.at, tests/wrapper.as:
- Update FSF postal mail address.
-
-2005-05-13 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (AC_CONFIG_LIBOBJ_DIR): Remove the broken
- check.
- * lib/m4sugar/m4sugar.m4 (m4_bmatch): Halt with error if we don't get
- enough arguments, similarly as in m4_bpatsubsts.
-
-2005-05-12 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/status.m4 (_AC_SRCDIRS): Simplify the computation
- of absolute paths.
-
-2005-05-11 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Make the check
- for absolute directory names in one loop.
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Handle
- abbreviations of --version and --debug.
-
-2005-05-10 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Autoconf Language): Be more precise about
- quoting rules. Problems noted by Stepan Kasal.
- Also, throughout this document, be more careful about white space.
- "blank", "white space", and "space" all have different meanings
- and we should be careful to say what we mean.
-
-2005-05-05 Paul Eggert <eggert@cs.ucla.edu>
-
- Fix C++ related problems reported by Werner Lemberg.
- * doc/autoconf.texi (C++ Compiler): Mention .cpp extension.
- * lib/autoconf/c.m4 (AC_LANG(C++)): Set ac_ext to .cpp, not .cc.
- * lib/autoconf/types.m4 (AC_TYPE_SIGNAL): Simplify test, to
- avoid problems with C++ and throw.
- * tests/compile.at: .cpp, not .cc.
-
- * tests/semantics.at: Prepend LIBOBJDIR, as per 2005-05-02 change.
-
-2005-05-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Generic Functions): Typos.
-
-2005-05-02 Gary V. Vaughan <gary@gnu.org>
-
- * lib/autoconf/general.m4 (_AC_LIBOBJS_NORMALIZE): Prepend each
- object named in LIBOBJS and LTLIBOBJS with the ${LIBOBJDIR}, as
- set by latest automake.
-
-2005-05-01 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Usual Tools): "expr '' \| ''"
- outputs 0 on GNU/Linux these days.
-
-2005-04-29 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Autoconf Language): Add more description
- about quoting heuristics.
- (Limitations of Builtins): Describe "set -" problems.
-
-2005-04-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autotest/general.m4 (AT_KEYWORDS): Separate by space,
- not newline.
-
- * doc/autoconf.texi (External Software): Replace AC_DEFINE_UNQUOTED
- by AC_DEFINE; it was a mistake.
- From bug reported against libtool by Dalibor Topic <robilad@kaffe.org>.
-
-2005-04-25 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS): A tiny optimization.
-
-2005-04-22 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (External Software): Quadrigraphs are not
- processed correctly in AS_HELP_STRING; avoid this in the examples.
- * lib/m4sugar/m4sh.m4 (AS_HELP_STRING): Add a FIXME about quadrigraphs.
- * lib/m4sugar/m4sugar.m4 (m4_text_wrap): Likewise; and rephrase the
- comment and reduce m4_default([foo], []) to [foo].
- (m4_strip): Update the explanation.
-
-2005-04-19 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE, _AC_RUN_IFELSE):
- Remove core.conftest.* too; it's generated by Tru64 5.1.
- Problem reported by Jennis Pruett.
- * lib/autoconf/functions.m4
- (AC_FUNC_SETVBUF_REVERSED, AC_FUNC_UTIME_NULL):
- Don't bother to remove core files; AC_RUN_IFELSE should do that
- for you.
-
-2005-04-19 Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sugar.m4 (m4_bpatsubsts): Add the b- to comment, too.
-
-2005-04-19 Alexandre Duret-Lutz <adl@gnu.org>
-
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Handle --docdir.
- Report from Horst Wente.
-
-2005-04-15 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (_AC_ARG_VAR_VALIDATE): Fixed a typo in
- the comment.
-
-2005-04-14 Gregorio Guidi <greg_g@gentoo.org>
-
- * doc/autoconf.texi (External Software, Package Options): Add
- examples showing how to implement --with-* and --enable-* options.
-
-2005-04-13 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): Look for configure.ac
- as well as configure.in. Problem reported by Gregorio Guidi.
-
-2005-04-10 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Particular Functions): Use gnulib's current
- pattern for alloca snippet.
-
-2005-04-04 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autotest/general.m4 (_AT_DECIDE_TRACEABLE): Fix a typo.
-
-2005-04-01 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Generic Programs): Fix a typo.
-
-2005-04-01 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autotest/general.m4 (AT_INIT): Don't assume that "date +%s"
- fails if %s isn't supported. Problem reported by Ralf Wildenhues.
-
-2005-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS):
- Merge `-z option' as well for the benefit of Solaris link flags. Pass
- whole-archive (-zallextract, -zdefaultextract) options in the hope of
- unique libraries, for the Sun Fortran 95 8.0 compiler. Bug reported
- against Libtool by Yury Puhalsky <pooh@cryptopro.ru>.
-
-2005-03-22 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: The configure command now warns you if you attempt to use
- a directory whose name contains a special character like space,
- newline, or "\".
- * doc/autoconf.texi (Installation Directory Variables): Allow
- "," in file names. Do not use \@; it's not a portable regexp.
- * bin/Makefile.am (edit): Likewise.
- * lib/Makefile.am (edit): Likewise.
- * tests/Makefile.am (edit): Likewise.
- * tests/semantics.at: Likewise.
- * tests/torture.at: Likewise.
- * lib/autoconf/general.m4 (AC_ARG_PROGRAM): Likewise.
- * lib/autoconf/status.m4 (_AC_SRCDIRS): Likewise.
- * doc/autoconf.texi (File System Conventions): Warn about
- unportable file names.
- * lib/autoconf/general.m4 (_AC_INIT_DIRCHECK): New macro.
- (AC_INIT): Use it.
- (_AC_INIT_SRCDIR): Use ac_pwd rather than invoking pwd.
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Propagate
- ac_pwd, and quote srcdir.
- * lib/autotest/general.m4 (AT_INIT): Quote file name args.
-
- * doc/autoconf.texi: Fix some systematic formatting problems.
- ".)" needs a following @: if not at the end of a sentence, and
- similarly for "!)". "etc." should be preceded by a comma.
- "n-th" -> "@var{n}th". pdksh is still buggy, so update its date.
-
-2005-03-22 Bruno Haible <bruno@clisp.org>
-
- * doc/autoconf.texi (Input): Mention that AC_CONFIG_AUX_DIR's
- argument is often called 'build-aux'.
-
-2005-03-07 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Quotation Rule Of Thumb): Mention that the
- macro AC_TRY_LINK is obsolete.
- (Installation Directory Variables): Change `AC_OUTPUT_FILES' to
- `AC_CONFIG_FILES'.
-
-2005-02-24 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/c.m4 (AC_PROG_CC): Be more careful to skip
- `/usr/ucb/cc'; use `cl.exe' to distinguish the MS compiler
- from a Common Lisp's `cl'.
- (AC_PROG_CXX): Behave according to the documentation: don't
- search for $ac_tool_prefix$CCC and $CCC, just set CXX=$CCC;
- make the variable CCC precious; use `cl.exe', not `cl'.
-
-2005-02-23 Paul Eggert <eggert@cs.ucla.edu>
- Alexandre Duret-Lutz <adl@gnu.org>
-
- * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Redirect stdin from
- /dev/null, as "configure" shouldn't read stdin, and this insulates
- us from problems (e.g., when testing for "cl"). Also, do this
- redirection before invoking "hostname" or "uname", and keep the
- original input stream available via...
- (AS_ORIGINAL_STDIN_FD): ... this new macro.
- (_AC_PREPROC_IFELSE, _AC_COMPILE_IFELSE, _AC_LINK_IFELSE): Don't
- bother with "</dev/null" since it's now done at the top of
- 'configure'.
- * lib/autoconf/c.m4 (AC_PROG_CC, AC_PROG_CXX): Likewise.
- * lib/autoconf/fortran.m4 (_AC_PROG_FC): Likewise.
- * lib/autoconf/programs.m4 (_AC_PATH_PROG_FLAVOR_GNU): Likewise.
- * doc/autoconf.texi (File Descriptor Macros): New section.
- (Printing Messages): Mention it.
- * tests/base.at (Input/Output): New test.
-
-2005-02-23 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/m4sugar/m4sh.m4 (_AS_ECHO_N_PREPARE): Don't set ECHO_C to
- newline if neither \c nor -n work, as that would output two
- newlines. Prefer -n to \c. Reported by Stepan Kasal.
-
-2005-02-12 Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sh.m4 (AS_IF): Define by m4_defun, not m4_define.
- This causes that any required macros inside will get before the if.
- * doc/autoconf.texi (autom4te.cache): A typo.
-
-2005-02-12 Paul Eggert <eggert@cs.ucla.edu>
-
- Undo previous change, except keep the change to
- lib/autoconf/programs.m4 that replaced grep with shell
- pattern-matching. This is because net-snmp configure reads stdin.
- Reported by Noah Misch.
-
-2005-02-11 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Redirect stdin
- from /dev/null, as "configure" shouldn't read stdin, and this
- insulates us from problems (e.g., when testing for "cl").
- Suggested by Alexandre Duret-Lutz. Also, do this redirection
- before invoking "hostname" or "uname".
- (_AC_PREPROC_IFELSE, _AC_COMPILE_IFELSE,
- _AC_LINK_IFELSE): Undo previous change, as it's no longer needed.
- * lib/autoconf/c.m4 (AC_PROG_CC, AC_PROG_CXX): Don't bother with
- "</dev/null" since it's now done at the top of 'configure'.
- * lib/autoconf/fortran.m4 (_AC_PROG_FC): Likewise.
- * lib/autoconf/programs.m4 (_AC_PATH_PROG_FLAVOR_GNU): Likewise.
- Also, replace grep with shell pattern-matching, to save a process.
-
-2005-02-10 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/general.m4 (_AC_PREPROC_IFELSE, _AC_COMPILE_IFELSE,
- _AC_LINK_IFELSE): Redirect stdin to /dev/null, in an attempt to
- avoid thinking that Allegro Common Lisp's "cl" command is a C++
- compiler.
-
-2005-02-09 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Document that
- grep -q isn't portable. Improve grep -s explanation.
- Problem reported by Dan Manthey.
-
-2005-02-08 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Special Shell Variables): Clarify
- PATH_SEPARATOR wording; fix typo in IFS. Reported by Gary V. Vaughan.
-
-2005-02-07 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi: Use @acronym for DJGPP.
- Fix some @code's that should have been @env's, and vice versa.
- Sort environment variable names.
- Mention that shells no longer inherit IFS.
- Don't recommend PATH_SEPARATOR=';' so strongly.
- Mention that $RANDOM might expand to the empty string.
- "symlink" and "soft link" -> "symbolic link".
- Improve mktemp description (reported by Bruno Haible).
-
-2005-02-05 Paul Eggert <eggert@cs.ucla.edu>
-
- * tests/foreign.at (Libtool): Don't overquote AT_SETUP arg.
- * tests/m4sh.at (AS_DIRNAME, AS_BASENAME, AS_MKDIR_P, AS_HELP_STRING):
- Likewise.
- * tests/semantics.at (AC_C_BIGENDIAN, AC_PATH_PROG & AC_PATH_PROGS):
- Likewise.
-
-2005-02-04 Paul Eggert <eggert@cs.ucla.edu>
-
- * NEWS: Mention AT_COPYRIGHT.
-
- * tests/local.at (AT_CMP): Use diff directly on input files rather
- than copying them.
-
- * lib/autoconf/programs.m4 (AC_PROG_SED): Don't look in
- /usr/xpg4/bin since that sed dumps core (at least on Solaris 8).
-
-2005-02-04 Noah Misch <noah@cs.caltech.edu>
- and Paul Eggert <eggert@cs.ucla.edu>
-
- * tests/autotest.at (Empty test suite): New test.
- * tests/torture.at (Substitute and define special characters)
- (Substitute a 2000-byte string, Define to a 2000-byte string)
- (Substitute a newline, Define a newline): New tests.
-
-2005-02-04 Noah Misch <noah@cs.caltech.edu>
-
- * lib/m4sugar/m4sugar.m4 (m4_re_string, m4_re_word): Revert 2002-03-04.
- * tests/local.at (AT_CHECK_M4SUGAR): Add `m4sugar' to keywords.
- (AT_CHECK_ENV): Ignore LTLIBOBJS, FC variables, EGREP, FGREP, and SED.
- * tests/m4sugar.at (AT_CHECK_M4SUGAR_TEXT, AT_CHECK_M4RE): New macros.
- (Standard regular expressions): New test.
- (m4_warn, m4_require: circular dependencies, m4_text_wrap): Strip
- excess test name quoting.
- * tests/semantics.at (AC_CHECK_HEADERS_OLD, AC_CHECK_HEADERS_NEW): Pass
- CPPFLAGS to `configure' instead of setting it in `configure'.
-
- * lib/m4sugar/m4sh.m4 (AS_UNAME): Try only /usr/bin/hostinfo, not
- any `hostinfo' in $PATH, since hostinfo.exe is a popular file name
- on some platforms.
-
- * lib/autoconf/fortran.m4 (AC_LANG(Fortran), AC_FC_SRCEXT):
- s/FC_SRCEXT/ac_fc_srcext/; s/FCFLAGS_SRCEXT/ac_fcflags_srcext/.
-
- * tests/local.at (AT_CMP): New macro.
- (AT_DATA_AUTOCONF): Do not call AC_PROG_GREP.
- (AC_SAVE_STATE): Move environment grep...
- (AT_CHECK_ENV): to here. Filter out `'$''. Use AT_CMP.
- (AT_CONFIG_CMP): New macro.
- (AT_CHECK_MACRO): Run `configure' twice with cache and compare results.
- * tests/c.at (Extensions): Do not exit early.
- * tests/atlocal.in: Inherit $GREP.
-
- * lib/autoconf/c.m4 (_AC_C_STD_TRY): New macro.
- (_AC_PROG_CC_C89, _AC_PROG_CC_C99): Use it.
-
- * lib/autoconf/general.m4 (_AC_INIT_COPYRIGHT): Update for 2005.
- (AC_COPYRIGHT): Factor header comment portion out and move into...
- * lib/m4sugar/m4sh.m4 (AS_COPYRIGHT): This.
- * lib/autotest/general.at (AT_COPYRIGHT): New macro.
- (AT_INIT): Add Autotest copyright notice. Display copyright notices in
- --version output.
- * tests/local.at: Add Autoconf test suite copyright notice.
- * doc/autoconf.texi (Writing testsuite.at): Document AT_COPYRIGHT.
-
-2005-02-04 Bruno Haible <bruno@clisp.org>
- and Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Usual Tools): New mkstemp entry.
-
-2005-02-03 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/m4sugar/m4sugar.m4 (m4_re_escape): Escape ?, ^, \, $ too;
- this fixes a bug tickled by the AT_CAPTURE_FILE change noted below.
-
- Try not to generated lines of unlimited length, as POSIX places a
- 2047-byte limit on line length of portable text files.
- * lib/autoconf/general.m4 (AC_SUBST, AC_SUBST_FILE):
- Use newline as a separator, not space.
- * lib/autotest/general.m4 (AT_TESTED, AT_KEYWORDS): Likewise.
- (AT_CAPTURE_FILE): Use space-backslash-newline as a separator, not
- space.
-
-2005-02-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/m4sugar/m4sh.m4 (_AS_SHELL_FN_WORK): Move func_* to
- as_func_*. Add test to check whether positional parameters
- are restored after function return.
-
-2005-02-02 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Special Shell Variables): Mention _,
- BIN_SH, DUALCASE. Say that variables other than "status" are safe
- if they contain a lower-case letter. The DUALCASE problem was
- reported by Ralf Wildenhues.
-
- * bin/autoconf.as: Don't exit with status 0 after write failure
- with --help or --version.
- * lib/autoconf/general.m4 (_AC_INIT_HELP, _AC_INIT_VERSION): Likewise.
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Likewise.
-
-2005-02-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Limitations of Usual Tools):
- Unicos 9 sed limitations.
- * lib/autoconf/fortran.m4 (_AC_PROG_FC): Try cf77 before fort77
- to get the option-enhanced interface on older Crays. Try ftn for
- Fortran 95 (newer Crays).
-
-2005-02-01 Paul Eggert <eggert@cs.ucla.edu>
-
- * man/Makefile.am (.x.1): Go back to the simple solution, but take
- care to echo the commands, so the user knows what's going on.
- Modified from a suggestion by Stepan Kasal.
-
- * doc/autoconf.texi (autoreconf Invocation): Mention autopoint,
- with a cross reference. Derived from a suggestion by Bruce Korb.
-
-2005-01-31 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (config.status Invocation): Warn about
- discrepancy between CONFIG_SHELL and shell used to invoke 'configure'.
- * doc/install.texi (Defining Variables): Likewise.
- Based on a proposed patch by Ralf Wildenhues.
-
- * man/Makefile.am (.x.1): Make sure the required generated files
- are up to date. Problem and original solution proposed by Stepan Kasal.
- $(dist_man_MANS:.1=-bin-prereq), $(dist_man_MANS:.1=-tests-prereq),
- implicit-man-prerequisites): New rules, used by the above.
-
- * doc/make-stds.texi, doc/standards.texi: Sync from gnulib.
- * config/config.guess, config/config.sub, config/install-sh: Likewise.
- * config/missing, config/texinfo.tex: Likewise.
-
-2005-01-29 Stepan Kasal <kasal@ucw.cz>
-
- Simplify the implementation of m4_require (a.k.a. AC_REQUIRE).
- Update the long comment explaining it.
-
- m4_require no longer writes an ``is required by'' line to the
- execution stack. It contains only one bit of non-redundant
- information: that the macro was required, not called. And even
- this bit is useless in most situations: have you ever met a macro
- which both calls and requires the same macro?
-
- * lib/m4sugar/m4sugar.m4 (_m4_defun_pro): Don't push a diversion...
- (_m4_defun_pro_outer): ... only via this macro, for the outermost
- macro.
- (_m4_defun_epi, _m4_defun_epi_outer): Complementarily.
- (m4_expansion_stack_pop): Remove the misplaced comment.
- (m4_require): Don't put the ``is required by'' line to the
- execution stack; slightly improve the out-of-a-defun error message.
- (_m4_divert_grow): New macro, counter for the temporary diversions.
- (_m4_require_call): Use it.
- * tests/m4sugar.at (m4_require): Expect output without the
- ``is required by'' messages.
-
-2005-01-28 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Recommend X
- rather than x for expr.
-
- * lib/autoconf/lang.m4 (_AC_COMPILER_OBJEXT): Avoid subshells when
- this is safe.
- * lib/autoconf/programs.m4 (AC_PROG_EGREP, AC_PROG_FGREP): Likewise.
- * lib/autoconf/specific.m4 (AC_SYS_LONG_FILE_NAMES): Likewise.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
- * lib/m4sugar/m4sh.m4 (_AS_LINENO_WORKS): Likewise.
- * tests/mktests.sh: Likewise.
-
-2005-01-27 Akim Demaille <akim@epita.fr>
-
- Have autoheader honor --force.
-
- * doc/make-stds.texi, doc/standards.texi: Update from masters.
- * lib/Autom4te/Channels.pm, lib/Autom4te/Configure_ac.pm
- * lib/Autom4te/FileUtils.pm, lib/Autom4te/XFile.pm: Update
- from masters, so that FileUtils.pm's update_file provide --force
- support.
- * bin/autoheader.in: Pass $force to update_file so that
- config.h.in is always recreated when --force.
-
-2005-01-24 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Introduction): Update Peter Simons' address.
-
-2005-01-21 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Builtins): Clarify that
- "if test ! -d foo; ..." is portable. Suggested by Stepan Kasal.
-
-2005-01-20 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Shell Substitutions): Fix typo in case statement.
- Warn about newline stripping in `` and $(). Update Solaris
- version to 9.
- (Limitations of Builtins): Use expr "X...", not expr "x...", as
- X insulates us from future changes to Posix.
- (Limitations of Usual Tools): For AS_DIRNAME, warn about newline
- stripping.
-
-2005-01-19 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Defining Symbols): Delete the false comment that
- you cannot use AC_DEFINE to define macros containing `[' or `]'.
-
-2005-01-13 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Document bug
- in Solaris 8 join. Problem reported by Tomohiro Suzuki on
- bug-tar mailing list.
-
-2005-01-05 Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sugar.m4 (m4_copy): Fix the explanation.
-
-2005-01-05 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/c.m4 (AC_LANG_INT_SAVE(C)): Declare longval and
- ulongval to be static, to avoid unwanted GCC warning. Problem
- reported by Michael Jennings via Daniel Reed; see
- <https://bugzilla.redhat.com/beta/show_bug.cgi?id=143852>.
-
-2005-01-05 Alexandre Duret-Lutz <adl@gnu.org>
-
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Define datarootdir,
- docdir, htmldir, dvidir, pdfdir, psdir, and localdir. Update
- datadir, infodir, and mandir. Adjust argument parsing code.
- (_AC_INIT_HELP): Update help text.
- * doc/autoconf.texi (Installation Directory Variables): Document
- new variables.
-
-2005-01-04 Noah Misch <noah@cs.caltech.edu>
-
- * lib/autoconf/programs.m4 (AC_PROG_MAKE_SET): If the Make program does
- not seem to work, assume it does set $(MAKE).
- * doc/autoconf.texi (AC_PROG_MAKE_SET): Update.
-
-2005-01-03 Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sh.m4 (AS_REQUIRE): Add a comment about nesting.
-
-2005-01-03 Stepan Kasal <kasal@ucw.cz>
-
- A cleanup of the diversion support in m4sugar.
-
- * lib/m4sugar/m4sugar.m4 (_m4_divert): A typo in description.
- (_m4_divert_n_stack): New macro; the expansion is
- <newline>m4_divert_stack, if m4_divert_stack is defined, and void
- otherwise.
- (m4_divert, m4_divert_push, m4_divert_pop, m4_init): Use it.
- (m4_divert_push, m4_divert_pop, _m4_defun_epi): Don't expand the word
- stored in _m4_divert_diversion or _m4_divert_dump.
- (m4_divert_pop): When the parameter is given, compare the symbolic
- name with the last diversion pushed on the stack. Previously, the
- current diversion was compared with the numeric value of the
- diversion given as the parameter.
- (m4_require): If the macro hasn't been expanded yet, call ...
- (_m4_require_call): this new macro.
-
-2005-01-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE, _AC_ARG_VAR_VALIDATE):
- Workarounds for documented `case' limitations.
-
-2005-01-03 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Warn about
- sed 'command1;command2'. Problem reported by Ralf Wildenhues.
-
-2005-01-02 Paul Eggert <eggert@cs.ucla.edu>
-
- * bin/autoconf.as, bin/autoheader.in, bin/autom4te.in,
- bin/autoreconf.in, bin/autoscan.in, bin/autoupdate.in,
- bin/ifnames.in, tests/mktests.sh: Update copyright date to 2005.
-
- Patch from Roger Leigh (with some minor changes) as follows:
- * NEWS: New macros AC_PROG_CC_C89, AC_PROG_CC_C99.
- Resurrect AC_PROG_CC_STDC.
- * doc/autoconf.texi (C Compiler): Add AC_PROG_CC_STDC,
- AC_PROG_CC_C89, AC_PROG_CC_C99.
- (Obsolete Macros): Remove AC_PROG_CC_STDC; it's no longer obsolete.
- * lib/autoconf/c.m4 (_AC_PROG_CC_C89, _AC_PROG_CC_C99, AC_PROG_CC_C89,
- AC_PROG_CC_C99): New macros.
- (AC_PROG_CC_STDC): Use them.
- (_AC_PROG_CC_STDC): Remove.
- (AC_C_PROTOTYPES): Use ac_cv_prog_cc_c89, not ac_cv_prog_cc_stdc.
- * THANKS: Add Roger Leigh.
-
-2004-12-30 Noah Misch <noah@cs.caltech.edu>
-
- * bin/autoreconf.in (autoreconf_current_directory): AM_INIT_AUTOMAKE
- signals that the package uses Automake; a `Makefile.am' is typical but
- not essential. Reported by Magnus Therning.
- * tests/torture.at (autoreconf.): New banner.
- (autoreconf and non-AC configure): Rename to `Non-Autoconf
- AC_CONFIG_SUBDIRS'.
- (autoreconf an empty directory): Rename to `Empty directory'.
- (Unusual Automake input files): New test.
-
-2004-12-30 Noah Misch <noah@cs.caltech.edu>
-
- * lib/autotest/general.m4 (AT_CAPTURE_FILE): New macro.
- (AT_SETUP): Clear AT_capture_files.
- (_AT_CHECK): On failure, log each of AT_capture_files. Fix comment.
- (AT_KEYWORDS): Fix comment typo.
- * tests/autotest.at (AT_CHECK_AT): Use AT_CAPTURE_FILE.
- * tests/local.at (AT_CHECK_CONFIGURE): Use AT_CAPTURE_FILE.
- * doc/autoconf.texi (Writing testsuite.at): Document AT_CAPTURE_FILE.
-
-2004-12-29 Albert Chin-A-Young <china@thewrittenword.com>
-
- * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH):
- If the variable to set is already set, set ac_cv_path_$1
- to the preset value so caller can assume ac_cv_path_$1
- is available. (trivial change)
-
-2004-12-27 Noah Misch <noah@cs.caltech.edu>
-
- * BUGS (Minor Problems): Warn about makefile limitations.
- * Makefile.am: Find and update `INSTALL' in $(srcdir).
- * man/Makefile.am: Find and update manual pages in $(srcdir).
-
-2004-12-24 Eric Blake <ebb9@byu.net>
-
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Test candidate
- shells in subshell, to avoid noise from ash. (trivial change)
-
-2004-12-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * doc/autoconf.texi (Limitations of Builtins) <case>: Mention
- problems with SunOS ksh and backslash escaping, Bourne shells and
- closing brackets (both within character classes). Bug reported
- against Libtool by Alexander Kurz <alexander.kurz@qsc.de>.
- <read>: New entry. Mention non-availability of -r.
-
-2004-12-21 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_LINE): Don't add srcdir here, to
- avoid cluttering displayed messages. Rather, prepend srcdir where
- AT_LINE is used for log files.
-
-2004-12-21 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/status.m4: Quote ``$tmp'' in many places.
- * lib/m4sugar/m4sh.m4 (AS_TMPDIR): Fix the comment, as traps are
- no longer part of the macro, quote the occurrence of ``$tmp''.
- * doc/autoconf.texi (Forbidden Patterns): Typo.
-
-2004-12-21 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Make sure the "ok" etc. are
- separated from the test title by forcing a white space.
-
-2004-12-21 Akim Demaille <akim@epita.fr>
-
- Enable Emacs navigation within testsuite.log files.
-
- * lib/autotest/general.m4 (AT_CLEANUP): Add an hint for Emacs to
- use the compilation mode.
- (AT_LINE): Point to the srcdir.
-
-2004-12-19 Noah Misch <noah@cs.caltech.edu>
-
- * tests/Makefile.am (installcheck-local): Use $(bindir).
- (check-local, installcheck-local): Pass TESTSUITEFLAGS.
- * doc/autoconf.texi (Making testsuite Scripts): Recommend the same
- Makefile.am scheme Autoconf now uses.
-
-2004-12-18 Noah Misch <noah@cs.caltech.edu>
-
- * lib/m4sugar/m4sugar.m4 (m4_qlen, m4_qdelta): New macros.
- * lib/autotest/general.m4 (AT_SETUP): Use m4_qdelta.
-
-2004-12-18 Noah Misch <noah@cs.caltech.edu>
-
- * lib/autotest/general.m4 (_AT_DECIDE_TRACEABLE): New macro.
- (_AT_CHECK): Use it.
- * lib/m4sugar/m4sh.m4 (AS_ESCAPE_FOR_EXPAND): Remove.
- (AS_ESCAPE): Fix comment.
- * tests/autotest.at: Adjust section banner comments.
- (AT_CHECK_AT): Accept STATUS and STDERR.
- (AT_CHECK_AT_TEST): Likewise.
- (Invalid brace-enclosed parameter expansion)
- (Multiline command from M4 expansion)
- (Double-M4-quoted command): New tests.
-
-2004-12-17 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi: Update GNU FDL version from 1.1 to 1.2.
-
-2004-12-17 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (AC_SUBST, AC_SUBST_FILES): Pass $1 to
- m4_pattern_allow.
- Suggested by Alexandre Duret-Lutz.
- * doc/autoconf.texi (Setting Output Variables): Catch up.
-
-2004-12-17 Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sh.m4 (_AS_TEST_PREPARE): Fix comment.
-
-2004-12-17 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (_AC_LIBOBJ): We can use AC_SUBST/2,
- remove the comment which said we cannot.
-
-2004-12-17 Stepan Kasal <kasal@ucw.cz>
-
- Add a specialized check for resolv.h. Thanks to Gerrit P. Haase,
- Reini Urban and Paul Eggert for reporting the dependencies.
-
- * lib/autoconf/headers.m4 (AC_HEADER_RESOLV): New macro.
- * doc/autoconf.texi (AC_HEADER_RESOLV): Document it.
- (AC_HEADER_STAT): @cvindex{STAT_MACROS_BROKEN}, not @acindex.
-
-2004-12-17 Stepan Kasal <kasal@ucw.cz>
-
- * bin/autoscan.in: Open autoscan.log only after ``parse_args'';
- so that eg. ``autoscan --help'' doesn't truncate it.
-
-2004-12-15 Nicolas Joly <njoly@pasteur.fr>
-
- * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH): Remove
- generated conftest files.
-
-2004-12-13 Noah Misch <noah@cs.caltech.edu>
-
- * lib/autotest/general.m4 (_AT_CHECK) [--trace]: Do not enable shell
- tracing on commands with possibly-escaped newlines.
- * doc/autoconf.texi (Writing testsuite.at): Delete documentation of the
- discontinued behavior and its implications.
- * tests/autotest.at (BS-newline in command, ^BS-newline in command)
- (BSx641-newline in command, BS-BS-newline in command)
- (BSx640-newline in command, Newline-CODE-BS-newline in command)
- (Single-quote-BS-newline in command)
- (Single-quote-newline-BS-newline in command): New tests.
-
-2004-12-13 Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sh.m4 (AS_EXECUTABLE_P): Use test -f && test -x
- on platforms where it works.
- (_AS_TEST_PREPARE): Test for ``test -x''.
- (_AS_BROKEN_TEST_PREPARE): Nuke.
-
-2004-12-13 Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sh.m4 (AS_TMPDIR): Move the trap commands ...
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): ... here;
- give only 4-letter prefix to AS_TMPDIR, comment fixed.
- * lib/autoconf/programs.m4 (_AC_PATH_PROG_FEATURE_CHECK): Don't
- create the temporary directory.
- (_AC_FEATURE_CHECK_LENGTH): Work in current directory.
-
-2004-12-12 Kelley Cook <kcook@gcc.gnu.org>
-
- * bin/autoheader.in: Exit if no AC_CONFIG_HEADERS was found.
- (trivial change)
-
-2004-12-12 Alexandre Duret-Lutz <adl@gnu.org>
-
- * doc/autoconf.texi (Limitations of Usual Tools) <expr (:)>: Typo.
-
-2004-12-11 Noah Misch <noah@cs.caltech.edu>
-
- * lib/autotest/general.m4 (_AT_CHECK) [--trace]: Rework a shell pattern
- to avoid using a negated character class. Reported by Nicolas Joly.
- * tests/local.at (AT_CHECK_SHELL_SYNTAX): Check for similar constructs.
-
-2004-12-10 Paul Eggert <eggert@cs.ucla.edu>
-
- * man/Makefile.am (autoconf.1, autoheader.1, autom4te.1, autoreconf.1,
- autoscan.1, autoupdate.1, ifnames.1, config.guess.1, config.sub.1):
- Don't depend on .x file explicitly, since "make" does that for us.
- Suggested by Stepan Kasal.
-
- * bin/Makefile.am (MOSTLYCLEANFILES): Renamed from CLEANFILES.
- Add *.tmp.
- (autoconf, autoheader, autom4te, autoreconf, autoscan, autoupdate,
- ifnames): Factor common code. And they said it couldn't be done!
-
-2004-12-09 Paul Eggert <eggert@cs.ucla.edu>
-
- * bin/.cvsignore: Add autoconf.in.
- * tests/.cvsignore: Add wrapper.in.
- * lib/autotest/general.m4: Escape '$' in case pattern.
-
-2004-12-09 Noah Misch <noah@cs.caltech.edu>
-
- * man/Makefile.am (autoconf.1): Regenerate when `autoconf.as' changes.
-
- * lib/autotest/general.m4 [--trace] (AT_INIT): Do not `set -v'.
-
- * tests/autotest.at: New file.
- * tests/suite.at: Include it.
- * tests/Makefile.am: Distribute it.
-
- * lib/autotest/general.m4 [--trace] (_AT_CHECK): Do not enable
- shell tracing on a command that could contain multiple lines.
- * doc/autoconf.text: Document that fact and its implications.
- * lib/m4sugar/m4sh.m4 (AS_ESCAPE_FOR_EXPAND): New macro.
- * tests/autotest.at (Multiline backquote command substitution,
- Multiline parameter expansion, Literal multiline command,
- Multiline parenthetical command substitution): Remove XFAIL.
-
-2004-12-09 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Libraries): Clarify problems with AC_CHECK_LIB
- and suggest AC_SEARCH_LIBS. Suggested by Noah Misch and Stepan Kasal.
-
-2004-12-08 Noah Misch <noah@cs.caltech.edu>
-
- * configure.ac (test suite): Cease to generate wrapper scripts.
- * configure: Regenerate.
- * lib/freeze.mk (MY_AUTOM4TE): Wrap the uninstalled autom4te directly.
- (m4f_dependencies): Adjust accordingly.
- * tests/Makefile.am (Wrappers): Generate wrapper scripts.
- (wrapper.in): Generate it in the build directory.
- (MAINTAINERCLEANFILES): Delete wrapper.in.
- (CLEANFILES): Add wrapper.in.
- * tests/wrapper.as: Move AS_INIT to very top, preserving copyright in
- the output. Replace each $as_me with a @wrap_program@.
- * tests/wrapper.in: Delete it; we always build it.
-
- * bin/Makefile.am (autoconf.in): Generate it in the build directory.
- (EXTRA_DIST): Remove autoconf.in.
- (CLEANFILES): Add autoconf.in.
- (autoconf): Find autoconf.in in the build directory.
- * bin/autoconf.in: Delete it; we always build it.
-
-2004-12-08 Noah Misch <noah@cs.caltech.edu>
-
- * lib/autotest/general.m4 (AT_INIT): Replace a `tr' with a `sed'. Join
- PATH members so as to not prepend an empty element. Move a comment.
- * Makefile.am (SUBDIRS): Build in `tests' last.
- * tests/Makefile.am (installcheck-local): Add check-local dependencies.
-
-2004-12-08 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/mdate-sh: Don't use "set - x`$ls_command /`", as zsh mishandles
- the spaces inside $ls_command. Problem reported by Loulou Pouchet in
- <http://lists.gnu.org/archive/html/autoconf/2004-12/msg00074.html>.
- Don't use "set - x"; plain "set x" is enough, and simplifies debugging.
-
-2004-12-07 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/functions.m4 (AC_FUNC_GETMNTENT): Fix typo in previous
- patch: extra "-l"s.
-
-2004-12-06 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/functions.m4 (AC_FUNC_GETMNTENT): Check libc before
- looking elsewhere for getmntent. Problem reported by Mark D. Baushke.
- * doc/autoconf.texi (Particular Functions): Mention new behavior.
-
-2004-12-03 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/general.m4 (AC_DEFINE, AC_DEFINE_UNQUOTED): Factor
- out the common code to ...
- (_AC_DEFINE_Q): ... a new macro; simplify the condition about the
- value of the #define--default to 1, iff the macro was called
- with exactly one parameter.
-
-2004-12-02 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/functions.m4 (AC_FUNC_MEMCMP): Use
- "char c = '\200';" rather than "char c = 0x80;" as the
- latter doesn't conform to the strict C standard due to
- overflow on signed char hosts.
-
- * lib/autoconf/c.m4 (_AC_PROG_CC_STDC): Prefer -qlanglvl=extc89
- to -qlanglvl=ansi. We don't want to disable extensions.
-
-2004-11-29 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Particular Programs): @code{$PATH} -> @env{PATH}.
- (Using Autotest, testsuite Scripts, Writing testsuite.at):
- Reword slightly to avoid some English-language problems noted
- by Ralf Wildenhues in:
- http://lists.gnu.org/archive/html/autoconf-patches/2004-11/msg00027.html
-
-2004-11-29 Stepan Kasal <kasal@ucw.cz>
-
- * NEWS: Add ^L above each release.
-
-2004-11-28 Paul Eggert <eggert@cs.ucla.edu>
-
- Fix documentation problems reported by Russ Boylan in
- <http://lists.gnu.org/archive/html/bug-autoconf/2004-11/msg00056.html>,
- along with some nearby cruft.
- * doc/autoconf.texi (Libtool): Libtool can be used without
- Automake (not without Autoconf).
- (Introduction): Mention lists.gnu.org.
- * BUGS: Don't mention bugs.gnu.org.
- Remove mention of ancient libtool compatibility problem.
- * NEWS: Mention that bugs.gnu.org is kaput.
- * README: Likewise. Mention where mailing list archives can be found.
-
-2004-11-28 Stepan Kasal <kasal@ucw.cz>
-
- * lib/m4sugar/m4sh.m4 (AS_HELP_STRING): A typo in the comment.
-
-2004-11-26 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Pretty Help Strings): Go back to
- single-quoting assignments to cache variables.
-
-2004-11-23 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Pretty Help Strings): Fix quoting issues
- with the examples; fix the bug in MY_ARG_WITH example reported
- by Alexandre Duret-Lutz.
- * lib/autoconf/general.m4 (AC_ARG_ENABLE, AC_ARG_ENABLE): Enable
- expansion of $1 in the comment emitted to configure.
-
-2004-11-23 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Pretty Help Strings): Fix typo
- in my editing of the previous patch. Problem reported
- by Alexandre Duret-Lutz.
-
-2004-11-22 Stepan Kasal <kasal@ucw.cz>
-
- * doc/autoconf.texi (Autoconf Language): Explain that
- ``descriptions'' may not be double quotes.
- (Quotation Rule Of Thumb): Likewise.
- (Pretty Help Strings): Likewise; remove the wrong comment;
- simplify the examples and improve their quoting.
-
-2004-11-13 Stepan Kasal <kasal@ucw.cz>
-
- * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH): Don't check
- the $1_found variable, don't test whether the file is executable;
- Both things are checked ...
- (_AC_PATH_PROG_FEATURE_CHECK): ... here; AS_EXECUTABLE_P replaces
- the former ``test -f''.
- * lib/m4sugar/m4sh.m4 (_AS_TEST_PREPARE): Fix a typo.
-
-2004-11-10 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Avoid cp -r;
- use cp -R instead.
-
-2004-11-10 Derek R. Price <derek@ximbiot.com>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Note `cp -r'
- limitations. Reorder paragraphs for clarity.
-
-2004-10-11 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi: Standardize spelling of "Posix" (as opposed
- to "POSIX" or "@acronym{POSIX}"), and similarly for "DOS
- variants", "Unix", and some related minor wording fixups.
-
- (Shellology, Special Shell Variables): Document that the Zsh
- problem with NULLCMD was fixed in zsh 3.1.6-dev-18. Thanks
- to Alexandre Duret-Lutz for this info.
-
-2004-10-10 Alexandre Duret-Lutz <adl@gnu.org>
-
- * doc/autoconf.texi (One-Shot Macros): New node.
-
-2004-09-28 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Function Portability): Fix misdescription
- of putenv. Problem reported by Michael Wardle.
-
-2004-09-22 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (auindex): New macro.
- (AU_DEFUN): Use it to fix the bug when the index contained AC_AU_DEFUN.
- Problem reported by Stepan Kasal.
-
-2004-09-05 Paul Eggert <eggert@cs.ucla.edu>
-
- Fix problems reported by Andreas Buening in:
- http://lists.gnu.org/archive/html/autoconf-patches/2004-04/msg00004.html
- * lib/autoconf/programs.m4 (AC_PROG_MAKE_SET): Set SHELL=/bin/sh
- in test makefile.
- * lib/autotest/general.m4 (AT_INIT): Don't assume /dev/null is
- readable; it's not true in OS/2-emx.
-
-2004-09-04 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/libs.m4 (_AC_PATH_X_XMKMF): If xmkmf returns
- "/usr/include", clear ac_x_includes instead of leaving it as "no"
- (trivial change). Problem and patch reported by Andrew Church in:
- http://lists.gnu.org/archive/html/bug-autoconf/2004-04/msg00016.html
-
-2004-09-03 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi: Give AC_DEFINE and AC_DEFINE_UNQUOTED
- three args in examples. Problem reported by Frederik Fouvry in:
- http://lists.gnu.org/archive/html/bug-autoconf/2004-09/msg00017.html
- Also, fix some minor spacing and punctuation bugs.
-
-2004-09-02 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Limitations of Builtins): Swap "cd" and
- "case" to restore ordering.
- Reported by Stepan Kasal.
-
-2004-08-26 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi: Minor typos and stylos.
-
-2004-08-20 Paul Eggert <eggert@cs.ucla.edu>
-
- * configure.ac (AC_INIT): Bump to 2.59c.
-
-2004-08-20 Paul Eggert <eggert@cs.ucla.edu>
-
- Version 2.59b.
-
- * README: Add advice about m4 1.4.2.
-
- * Makefile.cfg (wget_files): Remove config.guess, config.sub,
- texinfo.tex for now (done by hand now).
- * Makefile.maint (wget_files, cvs_files):
- Remove ansi2knr.c; nobody uses it.
- (ansi2knr.c-url_prefix): Remove.
- (cvs-update): Fix test for failure. I don't know why it ever
- worked...
-
- * doc/autoconf.texi: Update URLs, some of which went stale.
- Use @uref rather than @href.
-
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Have configure
- handle "--" as per POSIX. Suggested by Paul Pogonyshev.
-
- * config/config.guess, config/config.sub, config/elisp-comp,
- config/install-sh, config/mkinstalldirs, config/texinfo.tex,
- doc/fdl.texi, doc/standards.texi: Sync with master copy.
-
- * NEWS, TODO, configure.ac, bin/autoscan.in,
- bin/autoupdate.in, bin/ifnames.in, doc/autoconf.texi,
- doc/install.texi, lib/Autom4te/Configure_ac.pm,
- lib/Autom4te/FileUtils.pm, lib/autoconf/general.m4,
- lib/autoconf/programs.m4, lib/autoconf/status.m4,
- lib/autotest/general.m4, lib/m4sugar/m4sh.m4,
- lib/m4sugar/m4sugar.m4, tests/local.at, tests/m4sh.at,
- tests/tools.at, tests/torture.at:
- Use "file name" rather than "filename" or "path",
- to be consistent with the terminology of the GNU coding standards.
-
-2004-08-19 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/c.m4 (AC_LANG_BOOL_COMPILE_TRY(C),
- AC_C_LONG_DOUBLE): Undo 2004-06-04 change, as it didn't work with
- HP-UX 11.23 cc/aCC or Tru64 4.0 cc. Problem reported by Noah Misch in
- <http://lists.gnu.org/archive/html/autoconf/2004-07/msg00004.html>.
-
- More fixes to support spaces in the name of the build directory.
- This isn't a complete fix but it's an improvement.
-
- * bin/autoconf.as (autom4te_options): New var.
- Use it instead of appending to AUTOM4TE, so that we can allow
- spaces in the build directory's absolute name.
- * bin/autoheader.in ($autoconf): Allow spaces in file names.
- * lib/autotest/general.m4 (AT_INIT, AT_CLEANUP, _AT_CHECK,
- AT_CHECK_NOESCAPE): Likewise.
- * tests/wrapper.as (testdir, AUTOM4TE_CFG, autom4te_perllibdir,
- main program): Likewise.
-
-2004-08-18 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/general.m4 (_AC_INIT_HELP): Quote $ac_popdir uses.
- From Ralf Corsepius in:
- http://lists.gnu.org/archive/html/autoconf-patches/2004-08/msg00014.html
-
-2004-08-12 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Function Portability): Document isinf and
- and isnan. From a suggestion by Kevin Ryde.
-
- * lib/Autom4te/General.pm (END): Return correct exit status even
- if unlink succeeds and sets $?. Needed with Solaris 8's perl 5.00503.
-
-2004-08-09 Paul Eggert <eggert@cs.ucla.edu>
-
- * tests/torture.at (Deep Package): Use configure.in, not configure.ac,
- for compatibility with Automake 1.4. Reported by J C Fitzgerald in
- <http://lists.gnu.org/archive/html/bug-autoconf/2003-08/msg00051.html>.
-
-2004-08-04 Alexandre Duret-Lutz <adl@gnu.org>
-
- * lib/autoconf/general.m4 (AC_REQUIRE_AUX_FILE): New empty macro.
- (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.
-
-2004-08-02 Alexandre Duret-Lutz <adl@gnu.org>
-
- * lib/autom4te.in (Automake-preselections): Preselect
- AC_CANONICAL_BUILD and AC_CANONICAL_TARGET. Automake 1.9.1 will
- trace them.
-
-2004-07-29 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/m4sugar/m4sh.m4 (_AS_BOURNE_COMPATIBLE): Set BIN_SH, for
- Tru64.
- * doc/autoconf.texi (Shellology): Mention BIN_SH.
- Document problem with "`""`" in pdksh POSIX mode.
-
-2004-07-27 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/m4sugar/m4sh.m4 (_AS_BOURNE_COMPATIBLE): Use "set -o posix"
- with pdksh, too. Problem reported by Patrick Welche via
- Gary V. Vaughan.
- * doc/autoconf.texi (Shellology): Note that set -o posix is
- useful for pkdsh, too.
-
-2004-06-24 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Require
- _AS_UNSET_PREPARE, so that we can use $as_unset directly.
- Don't fail if ENV or BASH_ENV is readonly.
- (AS_SHELL_SANITIZE): Don't fail if ENV, MAIL, MAILPATH, LC_ALL,
- etc. are read only. Problem reported by Ludovic Courtes.
-
-2004-06-23 Noah Misch <noah@cs.caltech.edu>
-
- * lib/m4sugar/m4sh.m4 (_AS_BOURNE_COMPATIBLE): If the shell is
- zsh, disable GLOB_SUBST to avoid backslash handling problems.
- (trivial change)
-
-2004-06-04 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (File System Conventions): Warn about
- names like "aux". Problem reported by Eric Blake.
-
- * lib/autoconf/c.m4 (AC_LANG_BOOL_COMPILE_TRY (C)): Use division
- by zero instead of array size, so that we can use any arithmetic
- constant expression (instead of requiring an integer constant
- expression). This allows us to test expressions like DBL_MAX <
- LDBL_MAX, which didn't conform to the C standard using the old
- method.
- (AC_C_LONG_DOUBLE): Put back in the tests for LDBL_MAX and LDBL_EPSILON,
- now that we can do floating-point tests at compile time.
-
-2004-06-02 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/c.m4 (AC_C_LONG_DOUBLE): Don't check LDBL_MAX
- and LDBL_EPSILON, as the resulting expression isn't an
- integer constant expression and violates the C standard.
- Problem reported by Nelson H. F. Beebe. Also, check
- for "L" suffix, and check that long double doesn't have
- worse range or precision than double, that mixed-mode
- arithmetic doesn't generate a diagnostic, that double
- constants fit in long double.
-
-2004-06-03 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (Function Portability): Add notes on free(NULL),
- malloc(0) and realloc(NULL,size).
-
- * doc/autoconf.texi (Shell Substitutions): Spelling error reported by
- Bob Proulx.
-
-2004-05-31 Paul Eggert <eggert@cs.ucla.edu>
-
- * lib/autoconf/headers.m4 (HAVE_STDBOOL_H): Detect _Bool bug
- in HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. Problem reported
- by Jim Meyering.
-
-2004-05-26 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Builtins): Mention that ! COMMAND
- can be rewritten using if-then-else. Suggested by Bruno Haible.
-
-2004-05-25 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (testsuite Scripts): Fix typo.
- Problem reported by Stepan Kasal.
-
-2004-05-24 Paul Eggert <eggert@cs.ucla.edu>
-
- * tests/Makefile.am (autoconfdir): Fix to match comment (trivial
- change). Patch reported by Ralf Wildenhues in
- <http://mail.gnu.org/archive/html/bug-autoconf/2004-05/msg00092.html>.
-
- * lib/autoconf/functions.m4 (AC_FUNC_MBRTOWC): Don't assume that a
- function F exists if the compiler and linker let you compile an
- expression like (F != 0). Recent versions of GCC optimize away
- the reference to F in that case, since every function address must
- be nonzero, so the link succeeds even if F does not exist.
- Problem reported by Manu in
- <http://mail.gnu.org/archive/html/bug-gnu-utils/2004-05/msg00060.html>.
-
- * doc/autoconf.texi (Systemology): Standardize on the spelling of
- "Unix". Many uses changed.
- (Limitations of Builtins): Explain better why the ! command isn't
- portable.
-
-2004-05-22 Alexandre Duret-Lutz <adl@gnu.org>
-
- * lib/autom4te.in (Automake-preselections): Preselect
- LT_SUPPORTED_TAG in lieu of AC_LIBTOOL_TAGS.
-
-2004-05-19 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (Function Portability): Add strerror_r, cross
- referencing AC_FUNC_STRERROR_R.
-
- * doc/autoconf.texi (Particular Functions): In AC_FUNC_CLOSEDIR_VOID,
- note pessimistic assumption when cross compiling.
-
-2004-05-16 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Limitations of Make): Note that BSD make
- (until 2004) invoked subcommands with sh -e, contra POSIX.
- Reported by Kevin Ryde.
-
-2004-05-10 Eric Sunshine <sunshine@sunshineco.com>
-
- * programs.m4 (_AC_PROG_GREP): Fixed bug where PATH argument handed to
- _AC_PATH_PROG_FEATURE_CHECK contained leading whitespace (i.e.
- " $PATH:/usr/xpg4/bin"). This resulted in bogus tests, such as
- `test -f " /usr/bin/grep"', which _always_ failed.
- (AC_PROG_SED): Ditto bogus PATH fix.
- * autoconf.texi (AC_PROG_GREP): Properly document that this macro
- requires that grep correctly supports _multiple_ `-e' options, rather
- than stating only that grep should accept `-e'.
-
-2004-05-03 Paul Eggert <eggert@cs.ucla.edu>
-
- Port to C99, which requires that 'exit' be declared.
-
- * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Use AC_INCLUDES_DEFAULT
- to ensure that stdlib.h is included.
- * lib/autoconf/functions.m4 (_AC_LIBOBJ_ALLOCA, AC_FUNC_SETPGRP,
- AC_FUNC_STRTOD, AC_FUNC_SETVBUF_REVERSED, AC_FUNC_FORK, _AC_FUNC_FORK,
- _AC_FUNC_VFORK, AC_FUNC_WAIT3): Likewise.
- * lib/autoconf/specific.m4 (AC_SYS_RESTARTABLE_SYSCALLS): Likewise.
- * lib/autoconf/types.m4 (AC_TYPE_GETGROUPS): Likewise.
- * lib/autoconf/headers.m4 (AC_HEADER_STDC): Include <stdlib.h>
- when using 'exit' in a test; C99 requires that 'exit' be declared.
-
-2004-05-02 Paul Eggert <eggert@cs.ucla.edu>
-
- * doc/autoconf.texi (Particular Programs): AC_PROG_GREP
- now prefers 'grep' implementations that accept -e.
- (Limitations of Usual Tools): Describe problems of traditional
- egrep and fgrep with long input lines, and of traditional grep
- with -e.
- * lib/autoconf/programs.m4 (AC_PROG_GREP): Check for -e, too.
- (_AC_PROG_GREP): Assume 3rd arg is properly quoted for the shell.
- All callers changed. Append /usr/xpg4/bin to the PATH, for
- Solaris.
- (_AC_FEATURE_CHECK_LENGTH): Discard stderr, so we don't bother
- the user with complaints about multiple -e options.
- * tests/local.at (AC_STATE_SAVE): Use $GREP, not grep.
- Define it with AC_PROG_GREP.
- * configure.ac (AC_PROG_GREP): Add.
- * lib/freeze.mk (GREP): New macro.
-
-2004-05-02 Eric Sunshine <sunshine@sunshineco.com>
-
- * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Consult $SHELL as
- a possible candidate only after all others fail, rather than
- consulting it first. This improves backward compatibility by
- better reflecting the way shell selection occurred in previous
- versions of Autoconf, and should help to avoid triggering latent
- problems in other packages, such as the one in Automake where zsh
- is not handled robustly:
- http://mail.gnu.org/archive/html/automake/2004-04/msg00095.html
- Although it is not Autoconf's responsibility to work around
- problems in Automake, it nevertheless makes sense to avoid
- introducing unnecessary incompatibilites.
-
-2004-04-22 Albert Chin-A-Young <china@thewrittenword.com>,
- Gary V. Vaughan <gary@gnu.org>
-
- * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH): Don't guess
- 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.
-
-2004-04-21 Gary V. Vaughan <gary@gnu.org>
-
- * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH): Break out
- of the _AS_PATH_WALK loop too if GNU flavor is found.
-
-2004-04-21 Alexandre Duret-Lutz <adl@gnu.org>
-
- * doc/autoconf.texi (Limitations of Make): Update documentation
- for `$<'. New entry `Long lines', based on a report from Simon
- Josefsson. Augment the documentation for SHELL = @SHELL@ with a
- paragraph about DJGPP, based on a mail from Richard Dawe.
-
-2004-04-20 Paul Eggert <eggert@twinsun.com>
-
- * tests/c.at (C keywords): Don't assume that GCC supports
- "restrict" and "inline", as sufficiently-old GCC versions do not
- (also, GCC configured to be in pedantic C89 mode does not).
- Problem reported by Sumit Pandya in:
- http://mail.gnu.org/archive/html/autoconf/2004-04/msg00092.html
-
- * lib/autoconf/c.m4 (_AC_PROG_CC_G, _AC_PROG_CXX_G): Don't
- consider -g to work if it generates warnings when plain compiles
- don't. Problem reported by Braden McDaniel in:
- http://mail.gnu.org/archive/html/autoconf-patches/2003-07/msg00014.html
-
- * doc/autoconf.texi (Slashes): New section, to document a problem
- reported by Jim Meyering in:
- http://mail.gnu.org/archive/html/bug-coreutils/2004-02/msg00060.html
-
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Remove potential
- linker output files before linking, to work around IRIX 6 linker bug.
- Problem reported by Rainer Orth in:
- http://mail.gnu.org/archive/html/autoconf-patches/2004-02/msg00007.html
-
-2004-04-20 Gary V. Vaughan <gary@gnu.org>
-
- * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH): Make the
- 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.
-
- * lib/autoconf/programs.m4 (_AC_PROG_GREP): Take an additional
- 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$'.
-
-2004-04-20 Albert Chin-A-Young <china@thewrittenword.com>
-
- * lib/autoconf/programs.m4 (AC_PROG_GREP): Cache variable
- is `ac_cv_path_GREP', not `oc_cv_path_GREP'.
-
-2004-03-29 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Particular Headers, Particular Types, Generic
- Types, Specific Compiler Characteristics, System Services,
- Obsolete Macros): Use 'long int', 'short int', 'unsigned int'
- etc. consistently instead of 'long', 'short', 'unsigned' etc.
- * lib/autoconf/c.m4 (AC_LANG_INT_SAVE(C), AC_C_BIGENDIAN): Likewise.
- * lib/autoconf/functions.m4 (AC_FUNC_MMAP, AC_FUNC_SELECT_ARGTYPES):
- Likewise.
- * lib/autoconf/headers.m4 (AC_HEADER_SYS_WAIT): Likewise.
- * lib/autoconf/types.m4 (AC_TYPE_GETGROUPS, AC_TYPE_SIZE_T,
- AC_TYPE_OFF_T): Likewise.
- * tests/semantics.at (AC_CHECK_TYPES: backward compatibility):
- Likewise.
-
- * tests/foreign.at (Libtool): Create an empty aclocal.m4, to
- pacify libtool 1.5.2. Fix quoting problems in sed command.
-
-2004-03-28 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Particular Structures): AC_STRUCT_TIMEZONE
- now defines HAVE_DECL_TZNAME if it is declared, when
- HAVE_STRUCT_TM_TM_ZONE is not defined.
- * lib/autoconf/types.m4 (AC_STRUCT_TIMEZONE): Implement this.
- Do not assume atoi. Rely on HAVE_DECL_TZNAME when testing
- for HAVE_TZNAME.
-
-2004-03-28 Steven G. Johnson <stevenj@fftw.org>
-
- * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): Corrected
- superfluous backslashing of quotes (") in sed expressions;
- thanks to Paul Eggert.
-
-2004-03-26 Steven G. Johnson <stevenj@alum.mit.edu>
-
- * lib/autoconf/fortran.m4 (_AC_PROG_FC): new name of Intel
- Fortran compiler is ifort, also added pghpf; thanks to Nelson
- H. F. Beebe for the bug report.
-
-2004-03-26 Steven G. Johnson <stevenj@fftw.org>
-
- * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): fix for
- quoted -cmdline argument in Portland Group compiler (bug
- reported by Jeffrey J. Barteet).
-
-2004-03-25 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (Specifying Names): Move cross_compiling ovindex to
- (Run Time): ... here, where it's now mentioned.
-
-2004-03-19 Alexandre Duret-Lutz <adl@gnu.org>
-
- * doc/autoconf.texi (autom4te Invocation): Language Autoconf
- inherits from language Autoconf-without-aclocal-m4.
- (Customizing autom4te): Adjust example; the cache must now be
- disabled for language Autoconf-without-aclocal-m4.
-
-2004-03-16 Paolo Bonzini <bonzini@gnu.org>
- Nathanael Nerode <neroden@twcny.rr.com>
-
- * 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.
-
-2004-03-15 Paul Eggert <eggert@bogus.example.com>
-
- * NEWS: New macro AC_CHECK_ALIGNOF.
- * doc/autoconf.texi (Generic Compiler Characteristics): Document it.
- * lib/autoconf/types.m4 (AC_CHECK_SIZEOF): Use long int rather than
- int; avoid "a `$1'" since this isn't grammatical if $1 begins with a
- vowel.
- (AC_CHECK_ALIGNOF): New macro.
- * tests/mktests.sh (ac_exclude_list): Exclude AC_CHECK_ALIGNOF.
- * tests/semantics.at (AC_CHECK_ALIGNOF): Add tests similar to
- those for sizeof.
-
-2004-03-03 Paul Eggert <eggert@twinsun.com>
-
- * bin/Makefile.am (edit): Don't use $< in a context where
- POSIX doesn't require support for it. Use $@.in instead.
- Problem reported by Anthony N. Frasso in
- <http://mail.gnu.org/archive/html/autoconf/2004-03/msg00008.html>.
- * bin/autoscan.in, bin/autoupdate.in: Add @configure_input@ comment.
-
-2004-02-23 Gary V. Vaughan <gary@gnu.org>
-
- * bin/autoreconf.in (autoreconf_current_directory): Recognize LT_INIT
- from the next generation of Libtool.
- * lib/autom4te.in (Autoreconf-preselections): Ditto.
-
-2004-02-20 Alexandre Duret-Lutz <adl@gnu.org>
-
- * doc/autoconf.texi (Limitations of Usual Tools) <mkdir>: `mkdir -p'
- is not always thread-safe. Report from Nathanael Nerode.
-
-2004-02-18 Paul Eggert <eggert@twinsun.com>
-
- Fix a dependencies problem, stemming from a Autoconf 2.59 build
- problem on QNX reported by Stephen Rasku in
- <http://mail.gnu.org/archive/html/bug-autoconf/2004-02/msg00066.html>.
-
- * bin/Makefile.am ($(srcdir)/autoconf.in): Depend on
- $(m4sh_m4f_dependencies); this removes a FIXME.
- * tests/Makefile.am ($(srcdir)/wrapper.in): Likewise.
- (MAINTAINERCLEANFILES): Split into pieces,
- one per related section. Add $(srcdir)/wrapper.in.
-
-2004-02-09 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Setting Output Variables): Emphasize that
- AC_SUBST provides no portable way to escape literal newlines.
-
- * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS): Ignore all
- flags of the form -lcrt*.o, not just -lcrt[01].o and -lcrtbegin.o.
- Darwin uses -lcrt2.o and there's little point to cataloging all
- the system variants. Partial fix reported by Andreas Waechter in:
- http://mail.gnu.org/archive/html/autoconf-patches/2004-02/msg00006.html
- for bug reported by Nelson H. F. Beebe in:
- http://mail.gnu.org/archive/html/bug-autoconf/2003-12/msg00090.html
-
-2004-02-04 Paolo Bonzini <bonzini@gnu.org>
-
- * doc/autoconf.texi (AU_DEFUN): Fix English,
- suggested by Paul Eggert.
- * lib/autoconf/autoupdate.m4: Correct reference to
- acobsolete.m4, suggested by Alexandre Duret-Lutz.
-
-2004-02-02 Paolo Bonzini <bonzini@gnu.org>
-
- * bin/autoupdate.in: Define __file__ so that warnings
- 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).
-
-2004-01-30 Paolo Bonzini <bonzini@gnu.org>
- Eric Sunshine <sunshine@sunshineco.com>
- Paul Eggert <eggert@twinsun.com>
-
- * lib/m4sugar/m4sh.m4 (M4SH-SANITIZE): New diversion.
- (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.
-
-2004-01-30 Paolo Bonzini <bonzini@gnu.org>
-
- * bin/autoupdate.in: Trace AU_DEFINE instead of AU_DEFUN.
- * 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.
-
-2004-01-28 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Add 2004 to
- copyright years.
- * lib/autoconf/general.m4 (_AC_INIT_COPYRIGHT): Add 1992 thorugh
- 2003 (except 1997) to the list of copyright years. This undoes
- the 2003-05-22 change, which removed the older years from the list.
- * lib/autoconf/status.m4 (AC_OUTPUT): Update copyright date to 2004.
-
-2004-01-27 Gary V. Vaughan <gary@gnu.org>
- Albert Chin-A-Young <china@thewrittenword.com>
-
- * lib/autoconf/programs.m4 (AC_PROG_GREP): New macro to test for a
- 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.
-
-2004-01-27 Paul Eggert <eggert@twinsun.com>
-
- * bin/autoconf.as ($version): Update copyright from 2003 to 2004.
- * bin/autoheader.in, bin/autom4te.in, bin/autoreconf.in,
- bin/autoscan.in, bin/autoupdate.in, bin/ifnames.in: Likewise.
- * lib/autoconf/general.m4 (_AC_INIT_COPYRIGHT): Likewise.
-
- * Makefile.in, aclocal.m4, configure, bin/Makefile.in,
- bin/autoconf.in, config/Makefile.in, config/config.guess,
- config/config.sub, config/install-sh, config/mdate-sh,
- config/mkinstalldirs, config/texinfo.tex, doc/Makefile.in,
- lib/Makefile.in, lib/Autom4te/Makefile.in,
- lib/autoconf/Makefile.in, lib/autoscan/Makefile.in,
- lib/autotest/Makefile.in, lib/emacs/Makefile.in,
- lib/m4sugar/Makefile.in, man/Makefile.in, man/autoconf.1,
- man/autoheader.1, man/autom4te.1, man/autoreconf.1,
- man/autoscan.1, man/autoupdate.1, man/config.guess.1,
- man/config.sub.1, man/ifnames.1, tests/Makefile.in,
- tests/acc.at, tests/acfortran.at, tests/acfunctions.at,
- tests/acgeneral.at, tests/acheaders.at, tests/aclang.at,
- tests/aclibs.at, tests/acspecific.at, tests/acstatus.at,
- tests/actypes.at: Regenerate and/or sync with original
- sources.
-
-2004-01-26 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Default Includes): Include <stdint.h> even if
- HAVE_INTTYPES_H is defined. This is needed on Tru64 5.1b with
- Compac C V6.5-207 (dtk), which defines uintmax_t in <stdint.h> but
- not <inttypes.h>. Problem reported by Tim Mooney in
- <http://mail.gnu.org/archive/html/bug-coreutils/2004-01/msg00147.html>.
- * lib/autoconf/headers.m4 (_AC_INCLUDES_DEFAULT_REQUIREMENTS):
- Likewise.
-
- * lib/autoconf/programs.m4 (AC_PROG_SED): Use diff, not sed;
- otherwise "make check" fails because it forbids cmp (I guess
- because cmp treats files as binary on DOS-like systems).
-
- * tests/mktests.sh: Update copyright date to 2004, since some tests
- have changed in 2004.
-
-2004-01-23 Gary V. Vaughan <gary@gnu.org>
-
- * lib/autoconf/programs.m4 (AC_PROG_SED): New macro to test for a
- non-truncating sed or gsed program in PATH.
- * tests/acprograms.at: Add it.
- * doc/autoconf.texi (Particular Programs): Document it.
- * NEWS: Updated.
-
-2004-01-15 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/c.m4 (_AC_PROG_CC_STDC): Try -std, not -std1, since
- -std1 disables some useful extensions on Tru64. Problem reported
- by N. Lichtmaier in
- <http://mail.gnu.org/archive/html/autoconf/2004-01/msg00100.html>.
-
-2004-01-14 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Programming in M4sh): Document that
- AS_MKDIR_P succeeds if the destination is a symbolic link
- to an existing directory.
- (Limitations of Usual Tools): Note that mkdir -p might not
- succeed on symlinks to directories.
-
-2004-01-13 Paul Hilfinger <hilfinger@CS.Berkeley.EDU>
-
- * lib/autoconf/autoupdate.m4 (AU_DEFUN): Grammar fix in comment.
- * bin/autoheader.in: Grammar fix in message.
- * lib/m4sugar/m4sh.m4 (AS_MKDIR_P):
- Test for dir before calling mkdir -p. (trivial changes)
-
-2004-01-13 Eric Blake <ebb9@byu.net>
-
- * doc/autoconf.texi (Obsolete Macros): In AC_TRY_COMPILE and
- AC_TRY_LINK, s/AC_LANG_SOURCE/AC_LANG_PROGRAM/. (trivial change)
-
-2004-01-10 Jim Meyering <jim@meyering.net>
-
- * doc/autoconf.texi (Running the Preprocessor): Correct grammar.
-
-2004-01-09 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/general.m4: Fix bug: AC_CHECK_SIZEOF evokes a warning
- with `autoconf -Wall,error'. Bug reported by Eric Blake in:
- http://mail.gnu.org/archive/html/autoconf-patches/2004-01/msg00000.html
- (_AC_COMPUTE_INT_COMPILE): Invoke _AC_COMPILE_IFELSE, not
- AC_COMPILE_IFELSE, since we now assume our caller invokes
- AC_LANG_COMPILER_REQUIRE, for symmetry with _AC_COMPUTE_INT_RUN.
- (_AC_COMPUTE_INT_RUN): Likewise, for _AC_RUN_IFELSE instead
- of AC_RUN_IFELSE; this avoids the warning mentioned above.
- (_AC_COMPUTE_INT): Invoke AC_LANG_COMPILER_REQUIRE.
-
-2004-01-07 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/general.m4 (_AC_LIBOBJS_NORMALIZE): Avoid \$ inside
- `"'...'"`, as it's confusing (and I suspect it may not work on
- some platforms). The code was incorrect anyway, as it assumed
- that \$ evaluated to itself in that context. Reported by
- Alexandre Duret-Lutz.
-
-2004-01-07 Alexandre Duret-Lutz <adl@gnu.org>
-
- * lib/autom4te.in (Automake-preselections): Preselect AC_LIBTOOL_TAGS
- and _LT_AC_TAGCONFIG.
-
-2004-01-06 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (One Macro Call): Fix an incorrect
- example, and add more examples. Reported by Eric Sunshine.
-
-2004-01-05 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Limitations of Usual Tools):
- Remove warning against "rm -fr" introduced yesterday; it
- was a false alarm.
-
- * bin/Makefile.am (autoconf, autoheader, autom4te, autoreconf,
- autoscan, autoupdate, ifnames): Don't use chmod -w.
- * lib/Makefile.am (autom4te.cfg): Likewise.
- * doc/autoconf.texi (Limitations of Usual Tools): Warn against
- "chmod -w".
-
-2004-01-04 Paul Eggert <eggert@twinsun.com>
- Paolo Bonzini <bonzini@gnu.org>
-
- * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Speed up sed scripts
- by doing lineno substitution only on lines containing "$LINENO".
-
-2004-01-04 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/general.m4 (AC_ARG_PROGRAM):
- Use "rm -f" to remove conftest.sed, not plain "rm".
- Bug reported by David Relson in
- <http://mail.gnu.org/archive/html/autoconf/2004-01/msg00011.html>.
-
- * Makefile.am (autom4te-update):
- Replace "rm -rf" and "rm -fr" with "rm -f -r", as POSIX requires.
- * Makefile.maint (my-distcheck, do-po-update): Likewise.
- * doc/autoconf.texi (Guidelines): Likewise.
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Likewise.
- * lib/autoconf/libs.m4 (_AC_PATH_X_XMKMF): Likewise.
- * lib/autoconf/specific.m4 (AC_SYS_LONG_FILE_NAMES): Likewise.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
- * lib/m4sugar/m4sh.m4 (AS_TMPDIR): Likewise.
- * tests/Makefile.am (clean-local): Likewise.
- * tests/tortue.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS,
- srcdir): Likewise.
- * doc/autoconf.texi (Limitations of Usual Tools):
- Warn against "rm -fr".
-
-2004-01-03 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Mention that cc
- -c -o might not work. From a suggestion by Kevin Ryde.
- (C Compiler, Generating Sources, Limitations
- of Usual Tools, Limitations of Make, Making testsuite Scripts):
- Don't put '-o' after non-options, as POSIX doesn't allow this.
- Mention that cc's name might be gcc or c89 or whatever.
-
-2004-01-04 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi: Add various further index entries.
-
-2003-12-29 Paul Eggert <eggert@twinsun.com>
-
- * bin/autoreconf.in (autoreconf_current_directory):
- Fix typo: mkdir without umask arg.
-
-2003-12-27 Alexandre Duret-Lutz <adl@gnu.org>
-
- * doc/autoconf.texi (Limitations of Make) <Automatic rule rewriting>:
- Documents OSF1/Tru64 make behavior. Replace `VPATH = ../src' by
- `VPATH = ../pkg/src' in examples to make the OSF1/Tru64 make
- explanation clearer.
-
-2003-12-24 Andreas Schwab <schwab@suse.de>
-
- * doc/autoconf.texi (Default Includes): Fix misspelling of
- AC_INCLUDES_DEFAULT.
-
-2003-12-03 Paolo Bonzini <bonzini@gnu.org>
-
- * configure.ac: Test if sh -n works.
- * configure: Regenerate.
- * tests/atlocal.in: Store the result here.
- * tests/local.at (AT_CHECK_SHELL_SYNTAX): Extracted from
- tools.at, looking in atlocal's ac_cv_sh_n_works instead
- of explicitly testing.
- (AT_CHECK_PERL_SYNTAX): Moved from tools.at.
- (AT_CHECK_AUTOCONF): Test for the configure script syntax.
- * tests/tools.at (Syntax of the shell scripts): Simplify
- using AT_CHECK_SHELL_SYNTAX.
- (Syntax of the Perl scripts): Remove definition of
- AT_CHECK_PERL_SYNTAX.
-
-2003-12-03 Paolo Bonzini <bonzini@gnu.org>
-
- * lib/m4sugar/m4sh.m4 (_AS_SHELL_FN_WORK): Redirect
- stderr to /dev/null.
- * bin/autoconf.in: Regenerate.
- * bin/wrapper.in: Regenerate.
-
-2003-11-26 Paolo Bonzini <bonzini@gnu.org>
-
- * 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.
-
-2003-11-24 Akim Demaille <akim@epita.fr>
-
- * config/announce-gen (&print_locations, &print_signatures)
- (&sizes): New.
- Use them.
- No longer rely on Gnus to inline the list of signatures: compute
- them on the fly.
-
-2003-11-24 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Particular Programs): AC_PROG_LEX can
- override some files.
- (Input): AC_CONFIG_AUX_DIR(aux) is a bad idea on DOS.
- From Debian Autoconf 2.58.
-
-2003-11-24 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): Quote $ac_popdir
- uses.
- From Debian Autoconf 2.58.
-
-2003-11-24 Paolo Bonzini <bonzini@gnu.org>
-
- * 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.
-
-2003-11-17 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Put at least 14 bytes
- into the initial confdefs.h, to work around a bug in NextStep 3.3
- patch 3 reported by Eric Sunshine.
-
-2003-11-15 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (Using System Type): Revise, showing $host rather
- than $target since the latter is not usual, add guidelines on when to
- use or not use the system type.
-
-2003-11-12 Derek Price <derek@ximbiot.com>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Fix what looks like a
- typo misrepaired by an auto-spellcheck.
-
-2003-11-12 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.in (&parse_args): Don't call automake with
- --force-missing unless it actually supports it.
- From Debian #219336.
-
-2003-11-12 Akim Demaille <akim@epita.fr>
-
- * configure.ac: Bump to 2.59a.
- Require 2.59.
-
-2003-11-06 Akim Demaille <akim@epita.fr>
-
- Version 2.59.
-
-2003-11-05 Alexandre Duret-Lutz <adl@gnu.org>
-
- * lib/autoconf/status.m4 (_AC_SRCPATHS): Fix use of AS_SET_CATFILE
- 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.
-
-2003-11-05 Akim Demaille <akim@epita.fr>
-
- * configure.ac: Bump to 2.58a.
-
-2003-11-05 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (Using Autotest): Avoid @strong{Note: ...}, since
- it provokes a warning from makeinfo about looking like a cross
- reference in info output.
-
- * doc/autoconf.texi (Function Portability): Add notes on signal
- handler return type, as per AC_TYPE_SIGNAL.
-
-2003-11-04 Akim Demaille <akim@epita.fr>
-
- Version 2.58.
- * doc/standards.texi: Update from master.
-
- * tests/mktests.sh (ac_exclude_list): Add AC_FC_FREEFORM.
-
-2003-11-04 Akim Demaille <akim@epita.fr>
-
- AC_CONFIG_FILE([d1/foo:d2/foo]) triggers error messages when
- 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.
-
-2003-11-03 Pavel Roskin <proski@gnu.org>
-
- * doc/autoconf.texi (Generic Structure Checks): Describe
- action-if-found and action-if-not-found in AC_CHECK_MEMBERS.
-
-2003-10-31 Akim Demaille <akim@epita.fr>
-
- * tests/fortran.at (GNU Fortran 77): Don't run FC macros.
- (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.
-
-2003-10-31 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (&freeze): Use a less likely warning separator
- than `\n\n', so that `\n\n\n' is valid in warnings.
- Reported by Steve Huston.
-
-2003-10-28 Akim Demaille <akim@epita.fr>
-
- * Makefile.cfg (local_updates, executable-update): Tweak to be
- robust to parallel makes.
- Suggested by Alexandre Duret-Lutz.
-
-2003-10-27 Akim Demaille <akim@epita.fr>
-
- * Makefile.cfg (executable-update): New.
- (local_updates): Call it.
-
-2003-10-27 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_AC_RUN_IFELSE, _AC_INIT_PREPARE):
- Don't remove core.* as it may remove valid user files.
- * lib/autoconf/functions.m4 (AC_FUNC_SETVBUF_REVERSED)
- (AC_FUNC_UTIME_NULL): Likewise.
-
-2003-10-23 Akim Demaille <akim@epita.fr>
-
- Version 2.57g.
- * config/config.guess, config/config.sub: Upgrade from masters.
-
-2003-10-23 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/fortran.m4 (AC_FC_SRCEXT): Functions using
- AC_COMPILE_IFELSE that use break skip the clean up. So do it by
- hand...
-
-2003-10-23 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_AC_LINK_IFELSE, _AC_COMPILE_IFELSE):
- Don't forget to remove conftest.err.
-
-2003-10-23 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_AC_LIBOBJ): Don't insert twice the
- same object file in $LIBOBJS.
- Reported by Alexandre Duret-Lutz & Derek Robert Price.
- * doc/autoconf.texi (Generic Functions): Adjust.
-
-2003-10-20 Paul Eggert <eggert@twinsun.com>
-
- * lib/m4sugar/m4sh.m4 (_AS_TR_SH_PREPARE, _AS_TR_CPP_PREPARE):
- Use 'eval', so that the resulting configure scripts work even if
- the current directory has a weird file name like 'y%s+%pp%;s%@%_%g'.
-
-2003-10-20 Daniel Jacobowitz <drow@mvista.com>
-
- * lib/autoconf/lang.m4 (AC_LANG_WERROR): New macro.
- * lib/autoconf/general.m4 (_AC_COMPILE_IFELSE, _AC_PREPROC_IFELSE)
- (_AC_LINK_IFELSE): Check the werror flag.
- * doc/autoconf.texi (Generic Compiler Characteristics): Document
- AC_LANG_WERROR.
- * NEWS: Mention it.
-
-2003-10-20 Daniel Jacobowitz <drow@mvista.com>
-
- * lib/autoconf/lang.m4 (AC_NO_EXECUTABLES): Override
- _AC_COMPILER_EXEEXT to attempt a link. If linking fails,
- override AC_LINK_IFELSE.
-
-2003-10-15 Paul Eggert <eggert@twinsun.com>
-
- * lib/m4sugar/m4sh.m4 (_AS_UNSET_PREPARE): Work around a bug in
- pdksh 5.2.14. Bug reported by Ralf Corsepius.
- * doc/autoconf.texi (Shellology): Mention the Korn shell and pdksh.
- Mention /usr/dt/bin/dtksh on Solaris.
- (Shell Substitutions): Warn about $((...)).
- (Parentheses): New section.
-
-2003-10-15 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (Function Portability): Add @prindex for exit.
- Add putenv and unsetenv. Add sysconf _SC_PAGE_SIZE.
-
-2003-10-13 Nathanael Nerode <neroden@gcc.gnu.org>
-
- * lib/autoconf/functions.m4 (AC_FUNC_FORK): Trivial fix for vfork
- cross test.
-
-2003-10-11 Steven G. Johnson <stevenj@alum.mit.edu>
-
- * lib/autoconf/fortran.m4 (_AC_PROG_FC): Use the new official
- name for the GNU Fortran 95+ compiler, 'gfortran', not 'g95'.
-
-2003-10-10 Andreas Schwab <schwab@suse.de>
-
- * bin/autoheader.in: Avoid empty first line in --version and
- --help output.
- * bin/ifnames.in: Likewise.
-
-2003-10-09 Paul Eggert <eggert@twinsun.com>
-
- * lib/Autom4te/XFile.pm: Don't assume -j is solo.
- Issue a more-informative diagnostic.
- Problems reported by Eric Sunshine.
-
-2003-10-08 Steven G. Johnson <stevenj@alum.mit.edu>
-
- * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): Omit quoted
- -mGLOB_options_string stuff for Intel ifc, which can cause
- _AC_FC_LIBRARY_LDFLAGS to fail. Use (faster) case for
- pattern-matching instead of grep.
-
-2003-10-08 Steven G. Johnson <stevenj@alum.mit.edu>
-
- * doc/autoconf.texi: Document new FC Fortran macros.
-
-2003-10-08 Gary V. Vaughan <gary@gnu.org>
-
- * lib/autoconf/general.m4 (AC_CONFIG_MACRO_DIR): Stub out a macro
- 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.
-
-2003-10-06 Gary V. Vaughan <gary@gnu.org>
-
- * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS): Add
- -lcrtbegin.o to list of ignored flags and fix underquoting of
- -lcrt[01].o.
-
-2003-10-04 Steven G. Johnson <stevenj@ab-initio.mit.edu>
-
- * lib/autoconf/fortran.m4 (_AC_PROG_FC_G): Use language-specific
- cache variable instead of $G77 to decide whether to include -O2,
- since $G77 is specific to Fortran 77.
-
-2003-10-03 Steven G. Johnson <stevenj@alum.mit.edu>
-
- * lib/autoconf/fortran.m4 (AC_FC_FREEFORM): Support Absoft "-f
- free" flag. Re-order flags tested into rough order of popularity.
-
-2003-10-03 Steven G. Johnson <stevenj@alum.mit.edu>
-
- * lib/autoconf/fortran.m4 (AC_PROG_FC): Reverse the order of the
- arguments so that it can be used with syntax identical to
- AC_PROG_F77, and so that we can more easily decide to
- remove/deprecate the DIALECT optional argument in the future if it
- proves troublesome.
- (AC_FC_FREEFORM): Exit 77 upon failure to fix test suite for
- non-freeform-supporting compilers. Document freeform flags.
-
-2003-10-03 Akim Demaille <akim@epita.fr>
-
- * configure.ac: Look for emacs, not macs.
- Reported by Eric Sunshine.
-
-2003-10-03 Akim Demaille <akim@epita.fr>
-
- * lib/autom4te.in (Autoreconf-preselections): Trace AC_CONFIG_AUX_DIR.
- * bin/autoreconf.in (autoreconf_current_directory): Create the
- AUX_DIR if needed, for sake of automake --add-missing etc.
- Suggested by Alexandre Duret-Lutz.
-
-2003-10-03 Akim Demaille <akim@epita.fr>
-
- * configure.ac: Quotation and formatting changes.
- (EMACS): Don't set it if it is not recent enough to support
- autoconf-mode.el.
- From Eric Sunshine.
-
-2003-10-02 Akim Demaille <akim@epita.fr>
-
- * bin/ifnames.in (&scan_file): Skip C++ comments.
- From Jeremy Yallop.
-
-2003-10-01 Pavel Roskin <proski@gnu.org>
-
- * doc/autoconf.texi (Particular Structure Checks):
- Fix misspelling of HAVE_STRUCT_STAT_ST_BLOCKS.
-
-2003-10-01 Akim Demaille <akim@epita.fr>
-
- Version 2.57f.
-
-2003-09-30 Paul Eggert <eggert@twinsun.com>
-
- * lib/Autom4te/XFile.pm: Use Errno.
- (lock): Ignore ENOLCK errors. Problem reported Andreas Schwab in
- <http://mail.gnu.org/archive/html/bug-autoconf/2003-09/msg00141.html>.
-
-2003-09-30 Akim Demaille <akim@epita.fr>
-
- * config/announce-gen (&print_news_deltas): Extracted from...
- (&print_changelog_deltas): here.
- (&news_file): Rename as...
- (@news_file): this.
-
-2003-09-30 Nicolas Joly <njoly@pasteur.fr>
-
- * lib/autoconf/fortran.m4 (_AC_PROG_FC): Remove files which might
- have been created when invoking the compiler.
- * tests/fortran.at (GNU Fortran 77): Quote $G77.
-
-2003-09-29 Akim Demaille <akim@epita.fr>
-
- Version 2.57e.
-
- * config/mkinstalldirs: Upgrade.
-
-2003-09-28 Paul Eggert <eggert@twinsun.com>
-
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Set DUALCASE=1, for MKS sh.
- Problem reported by Lars J. Aas in
- <http://mail.gnu.org/archive/html/autoconf/2003-07/msg00042.html>.
- (_AS_MKDIR_P_PREPARE): Change "rm -fr ./-p" to the more-conservative
- "test -d ./-p && rmdir ./-p". Suggested by Andreas Schwab in:
- http://mail.gnu.org/archive/html/autoconf-patches/2003-09/msg00039.html
-
-2003-09-26 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_COMMANDS): Make sure the
- 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.
-
-2003-09-26 Akim Demaille <akim@epita.fr>
-
- * bin/autoscan.in (Autom4te::FileUtils): Use it for find_file.
- Reported by Ralf Corsepius.
-
-2003-09-26 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (AC_HELP_STRING): Don't overquote the
- arguments.
- Actually, use AU_ALIAS.
- From Bruno Haible.
-
-2003-09-26 Paul Eggert <eggert@twinsun.com>
-
- * lib/m4sugar/m4sh.m4 (_AS_MKDIR_P_PREPARE): If mkdir -p . fails,
- rm -fr ./-p to remove junk left behind on NextStep and OpenStep.
- Problem reported by Eric Sunshine in:
- http://mail.gnu.org/archive/html/autoconf-patches/2002-12/msg00014.html
-
-2003-09-26 Akim Demaille <akim@epita.fr>
-
- The test suite are sometimes assigning timings incorrectly.
- Reported by Henk Krus.
- 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.
-
-2003-09-25 Akim Demaille <akim@epita.fr>
-
- Version 2.57d.
-
- * bin/Makefile.am (edit): Handle '@configure_input@'.
- (autoconf, autoheader, autom4te, autoreconf, autoscan, autoupdate)
- (ifnames): chmod -w.
- * tests/wrapper.as (AUTOCONF, AUTOM4TE, ): Point to tests/
- executables, not bin/ executables! Otherwise all the magic needed
- to find non installed files is turned off. This caused a failure
- of test 40 and 41 that ran aclocal 1.8 which in turn ran autom4te
- as found in its environment (sent by tests/autoreconf): pointing
- to bin/autom4te that could not find its files.
- * tests/mktests.sh: Force the replacement of generated files, for
- the sake of "mv" program that are interactive when overwriting a
- -w file.
- * config/install-sh: Upgrade from CVS Automake.
-
-2003-09-23 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Limitations of Builtins): Document test -h
- versus test -L issues.
-
-2003-09-23 Daniel Jacobowitz <drow@mvista.com> and
- Paul Eggert <eggert@twinsun.com>
-
- Trivial change to support GCC's configuration procedure.
- * lib/autoconf/c.m4 (AC_PROG_CPP_WERROR): New macro.
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL): Don't warn
- about inconsistency if the preprocessor is set to give errors for
- any warning.
- * doc/autoconf.texi (C Compiler Characteristics): Document this.
-
-2003-09-13 Alexandre Duret-Lutz <adl@gnu.org>
-
- * Makefile.am (autom4te-update, autom4te_files): Fetch Struct.pm
- and XFile.pm from Automake.
- * lib/Autom4te/XFile.pm: Update from Automake.
-
-2003-09-12 Akim Demaille <akim@epita.fr>
-
- Version 2.57c.
-
-2003-09-12 Akim Demaille <akim@epita.fr>
-
- * config/config.guess, config/config.sub, config/missing,
- * lib/Autom4te/Channels.pm, lib/Autom4te/Configure_ac.pm: Update
- from masters.
-
-2003-09-12 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Header Portability): Promote linux/types.h,
- not asm/types.h.
-
-2003-09-11 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Header Portability): linux/random.h.
- From Peter Hendrickson.
-
-2003-09-10 Akim Demaille <akim@epita.fr>
-
- * tests/mktests.sh (au_exclude_egrep): Make it harder to be
- willing to edit the output files.
-
-2003-09-10 Akim Demaille <akim@epita.fr>
-
- * tests/fortran.at (GNU Fortran 77): Also exercise AC_FC_SRCEXT
- and AC_FC_FREEFORM.
- * tests/mktests.sh: Skip AC_FC_SRCEXT.
- * lib/autoconf/fortran.m4 (AC_FC_SRCEXT, AC_FC_FREEFORM): Likewise.
-
-2003-09-09 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/FileUtils.pm (&update_file): s/cannot not/cannot/g.
- Reported by Gary Vaughan.
- * bin/autom4te.in (handle_m4): Likewise.
-
-2003-09-09 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/FileUtils.pm (&update_file): Be sure not to leave
- trailing files.
-
-2003-09-07 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/specific.m4 (AC_SYS_RESTARTABLE_SYSCALLS):
- Improve the accuracy of the wording about obsolescence.
- From a suggestion by Ian Lance Taylor in
- <http://mail.gnu.org/archive/html/autoconf/2003-09/msg00044.html>.
-
-2003-09-05 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/fortran.m4 (AC_FC_FREEFORM): Try -ffree-form too,
- for the benefit of g77 3.2. Fix suggested by Steven G. Johnson.
-
-2003-09-04 Akim Demaille <akim@epita.fr>
-
- * tests/mktests.sh (ac_exclude_list): Fix the filtering of
- AC_FUNC_WAIT3.
-
-2003-09-04 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in: Use &fatal where more appropriate than &error.
- (freeze): When exiting, use $exit_code.
- * lib/autoconf/fortran.m4: Comment changes.
-
-2003-09-04 Akim Demaille <akim@epita.fr>
-
- * tests/mktests.sh (ac_exclude_list): Add AC_FC_FUNC.
-
-2003-09-02 Steven G. Johnson <stevenj@alum.mit.edu>
-
- Add support for newer Fortran dialects. The F77 interface is
- unchanged, and continues to support Fortran 77. New FC macros
- correspond to all the old F77 macros, with output variables FC,
- FCFLAGS, and FCLIBS. AC_PROG_FC defaults to picking the newest
- available dialect, but older dialects can be specified. There are
- new macros AC_FC_SRCEXT to set the source extension, and
- AC_FC_FREEFORM to accept free-form source files.
-
- * lib/autoconf/c.m4 (_AC_LANG_PREFIX(C), _AC_LANG_PREFIX(C++)):
- New macros.
- (AC_LANG_PROGRAM(C)): Invoke _AC_LANG_PROGRAM_C_FC_HOOKS if defined.
- * lib/autoconf/fortran.m4 (AC_LANG(Fortran), _AC_FORTRAN_ASSERT,
- _AC_LANG_ABBREV(Fortran), _AC_LANG_PREFIX(Fortran 77),
- _AC_LANG_PREFIX(Fortran), _AC_FC, AC_LANG_SOURCE(Fortran),
- AC_LANG_PROGRAM(Fortran), AC_LANG_CALL(Fortran),
- AC_LANG_PREPROC(Fortran), AC_LANG_COMPILER(Fortran),
- _AC_FC_DIALECT_YEAR, _AC_F95_FC, _AC_F90_FC, _AC_F77_FC,
- _AC_PROG_FC, AC_PROG_FC, _AC_PROG_FC_G, _AC_PROG_FC_C_O,
- AC_PROG_FC_C_O, _AC_PROG_FC_V_OUTPUT, _AC_PROG_FC_V,
- _AC_FC_LIBRARY_LDFLAGS, AC_FC_LIBRARY_LDFLAGS, _AC_FC_DUMMY_MAIN,
- AC_FC_DUMMY_MAIN, _AC_FC_MAIN, AC_FC_MAIN, __AC_FC_NAME_MANGLING,
- _AC_FC_WRAPPERS, AC_FC_WRAPPERS, _AC_FC_FUNC, AC_FC_FUNC,
- AC_FC_SRCEXT, AC_FC_FREEFORM):
- New macros.
- (AC_PROG_F77, AC_PROG_F77_C_O, AC_F77_LIBRARY_LDFLAGS,
- AC_F77_DUMMY_MAIN, AC_F77_MAIN, _AC_F77_NAME_MANGLING,
- AC_F77_NAME_MANGLING, AC_F77_WRAPPERS, AC_F77_FUNC):
- Rewrite in terms of the above.
- (_AC_PROG_F77_G, _AC_PROG_F77_V_OUTPUT, _AC_PROG_F77_V): Remove.
- * lib/autoconf/lang.m4 (_AC_LANG_PREFIX): New macro.
- * tests/acfortran.at: Test AC_FC_FREEFORM, AC_FC_FUNC,
- AC_FC_MAIN, AC_FC_SRCEXT, AC_FC_WRAPPERS, AC_PROG_FC_C_O.
-
-2003-09-02 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Limitations of Usual Tools, Limitations of Make):
- Document problems with timestamp resolution that 'make', 'cp -p', and
- 'touch -r' have.
-
-2003-08-27 Akim Demaille <akim@epita.fr>
-
- * tests/m4sugar.at (cross_warning): Make sure to enable the
- 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.
-
-2003-08-27 Akim Demaille <akim@epita.fr>
-
- * bin/autoheader.in: Issue the "Using auxiliary..." message only
- when -Wobsolete is set.
- Set it on by default.
- Suggested by Klee Dienes.
-
-2003-08-27 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (AC_FUNC_FSEEKO, AC_SYS_LARGEFILE): More
- documentation.
- From Guido Draheim.
-
-2003-08-26 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Output): Make clear that one can run code
- after AC_OUTPUT.
-
-2003-08-25 Akim Demaille <akim@epita.fr>
-
- * config/announce-gen, GNUmakefile, Makefile.maint: Update from
- CVS Bison.
-
-2003-08-25 Alexandre Duret-Lutz <adl@gnu.org>
-
- * bin/autoreconf.in (parse_args): Do not pass --no-force to
- Automake versions prior to 1.8.
-
-2003-08-25 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Header Portability): netinet/if_ether.h.
- From Ville Karaila.
-
-2003-08-24 Akim Demaille <akim@epita.fr>
-
- * configure.ac: Bump to 2.57c.
-
-2003-08-22 Akim Demaille <akim@epita.fr>
-
- Version 2.57b.
-
- * Makefile.cfg (local-checks-to-skip): New.
- * Makefile.maint (local-check): Rename as...
- (local-checks-available): this.
- (local-check): New.
-
- * Makefile.am (EXTRA_DIST): Add Makefile.cfg.
- * configure.ac: Require Automake 1.7.6.
-
-2003-08-22 Akim Demaille <akim@epita.fr>
-
- Output stack traces in warnings.
-
- * lib/m4sugar/m4sugar.m4 (_m4_warn): New.
- Replace the former...
- (m4_warn): Pass the call stack to _m4_warn.
- * bin/autom4te.in: Adjust to output the call stack.
- * tests/m4sugar.at (m4@&t@_warn): Adjust.
-
-2003-08-22 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/Request.pm, lib/Autom4te/C4che.pm: New.
- * bin/autom4te.in: Adjust.
-
-2003-08-21 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/General.pm (&file_name_is_absolute): Remove.
- (&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.
-
-2003-08-21 Akim Demaille <akim@epita.fr>
-
- * bin/autoheader.in (&parse_args): Use &parse_warnings and
- &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.
-
-2003-08-21 Akim Demaille <akim@epita.fr>
-
- First stab at preserving warnings between calls to autom4te,
- 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.
-
-2003-08-21 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.pm (Autom4te::Channels, Autom4te::ChannelDefs):
- Use them.
-
-2003-08-21 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/FileUtils.pm (&find_file): Walk the @include in
- 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.
-
-2003-08-21 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/Configure_ac.pm (&find_configure_ac)
- (&require_configure_ac): Accept an optional directory argument.
- ($configure_ac): Remove.
- * lib/Autom4te/General.pm (&find_configure_ac, &canonfile)
- (&catfile): Remove.
- * bin/autoheader.in, bin/autoreconf.in, bin/autoupdate.in,
- * bin/autoscan.in: Adjust.
-
-2003-08-20 Akim Demaille <akim@epita.fr>
-
- * bin/autoheader.in: Remove duplicate 'use Autom4te::FileUtils'.
- Reported by Alexandre Duret-Lutz.
-
-2003-08-20 Akim Demaille <akim@epita.fr>
-
- * bin/autoupdate.in, bin/autoheader.in, bin/autoreconf.in,
- * 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.
-
-2003-08-20 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/Channels.pm, lib/Autom4te/ChannelDefs.pm
- * lib/Autom4te/Configure_ac.pm, lib/Autom4te/FileUtils.pm: New,
- from CVS Automake.
-
-2003-08-20 Akim Demaille <akim@epita.fr>
-
- * Makefile.am (automake_cvsweb, automake_cvsargs, autom4te_files)
- (autom4te-update): New.
- * Makefile.cfg (update): Bind autom4te-update.
-
-2003-08-19 Derek Price <derek@ximbiot.com>
-
- * lib/autotest/general.m4: Comment various HELP_* diversions.
- (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.
-
-2003-08-19 Akim Demaille <akim@epita.fr>
-
- * config/announce-gen, Makefile.cfg: New.
- * Makefile.am: Adjust.
- * GNUmakefile, Makefile.maint: Update from CVS Coreutils.
-
-2003-08-19 Alexandre Duret-Lutz <adl@gnu.org>
-
- * lib/autom4te.in (Automake-preselections): Preselect
- AC_CONFIG_LIBOBJ_DIR, AC_CONFIG_LINKS, m4_include,
- and m4_sinclude.
-
-2003-08-19 Alexandre Duret-Lutz <adl@gnu.org>
-
- * lib/autom4te.in (Autoconf): Move all args except aclocal.m4? into ...
- (Autoconf-without-aclocal-m4): ... this new language.
- * doc/autoconf.texi (autom4te Invocation): Mention
- Autoconf-without-aclocal-m4.
-
-2003-08-18 Derek Price <derek@ximbiot.com>
-
- * doc/autoconf.texi (Writing testsuite.at): Document RUN-IF-FAIL &
- RUN-IF-PASS optional arguments.
-
-2003-08-18 Derek Price <derek@ximbiot.com>
-
- * doc/autoconf.texi (Programming in M4sh): Add doc for AS_IF.
-
-2003-08-16 Derek Price <derek@ximbiot.com>
-
- * doc/autoconf.texi (Writing testsuite.at): Document defaults for
- STDOUT & STDERR arguments.
-
-2003-08-14 Derek Price <derek@ximbiot.com>
-
- * lib/autotestgeneral.m4 (AT_INIT): Reformat test summary line to print
- DESCRIPTION rather than FILE and LINE. Shorten result to fit in new,
- shorter column three. Add DESCRIPTION to log file content.
-
-2003-08-13 Derek Price <derek@ximbiot.com>
-
- * lib/autotest/general.m4 (AT_INIT): Correct typo in final status
- output.
-
-2003-08-12 Derek Price <derek@ximbiot.com>
-
- * lib/autotest/general.m4 (AT_CHECK): Use new _AT_CHECK API.
- (AT_CHECK_NOESCAPE): Move core functionality to...
- (_AT_CHECK): ...this new macro.
-
-2003-08-07 Derek Price <derek@ximbiot.com>
-
- * lib/autotest/general.m4 (AT_CHECK): Move core functionality...
- (AT_CHECK_NOESCAPE): ...to this new macro.
-
-2003-07-31 Paul Eggert <eggert@twinsun.com>
-
- * lib/m4sugar/m4sh.m4 (_AS_UNSET_PREPARE): Work around a bug
- in Bash 2.01. Problem reported by Brian Gough in
- <http://mail.gnu.org/archive/html/bug-autoconf/2003-07/msg00106.html>.
-
-2003-07-25 John W. Eaton <jwe@bevo.che.wisc.edu>
-
- * lib/autoconf/fortran.m4 (AC_F77_LIBRARY_LDFLAGS): Also ignore
- -lcrt1.o, for OS X. (trivial change)
-
-2003-07-07 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/c.m4 (AC_C_INLINE): Wrap the '#define inline ...'
- inside '#ifndef __cplusplus'. Problem reported by
- Bob Friesenhahn.
-
-2003-07-06 Bill Clarke <llib@computer.org>
-
- * lib/autoconf/functions.m4 (AC_FUNC_MMAP): Cast pointer to
- 'long', not 'int', for benefit of Sun's recent C++ compilers
- (trivial change). See:
- http://mail.gnu.org/archive/html/autoconf-patches/2003-07/msg00007.html
- (This really should be 'intptr_t', not 'long', but that would
- take more work.)
-
-2003-06-25 Akim Demaille <akim@epita.fr>
-
- * lib/Makefile.am (autom4te.cfg): Make it read only.
- 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.
-
-2003-06-25 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Header Portability): sys/mount.h.
- From Gareth McCaughan.
-
-2003-06-23 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Report a single config.log,
- 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.
-
-2003-06-23 Akim Demaille <akim@epita.fr>
-
- * tests/local.at (AT_CHECK_CONFIGURE): Adjust to the verbose being
- always run: output config.log on $at_group_log.
-
-2003-06-23 Akim Demaille <akim@epita.fr>
-
- * tests/torture.at (#define header templates): Don't use quotes in
- C++ comments as it puzzles Emacs' sh font-lock-mode.
-
-2003-06-23 Akim Demaille <akim@epita.fr>
-
- * tests/mktests.sh (au_exclude_egrep): Fix output copyright notice.
- * lib/autom4te.cfg (args): Add local.at? for Autotest args.
- * tests/atspecific.m4: Rename as...
- * tests/local.at: This.
- * tests/suite.at: Move the globals into...
- * tests/local.at: here.
- * tests/Makefile.am: Adjust.
- * doc/autoconf.texi (testsuite Scripts): Adjust.
-
-2003-06-21 Kevin Ryde <user42@zip.com.au>
-
- * lib/autoconf/c.m4 (_AC_PROG_CC_STDC): Extend test program to get an
- error from OSF 4.0 Compaq cc in its default almost-ANSI mode, thereby
- ensuring we add -std1 for full-ANSI.
-
- * doc/autoconf.texi (hdrindex): New macro.
- Add index entries for portability of various standard header files.
-
-2003-06-20 Akim Demaille <akim@epita.fr>
-
- * configure.ac: Bump to 2.57b.
-
-2003-06-20 Akim Demaille <akim@epita.fr>
-
- Version 2.57a.
-
-2003-06-20 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in: Don't rely on $HOME being defined.
- Reported by Marc Espie as PR/233.
-
-2003-06-20 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4: Use at_times_file only if used.
- From Nicolas Joly.
-
-2003-06-20 Akim Demaille <akim@epita.fr>
-
- * config/config.guess, config/config.sub, config/elisp-comp,
- * config/install-sh, config/mkinstalldirs, doc/standards.texi:
- Update from masters.
-
-2003-06-11 Paolo Bonzini <bonzini@gnu.org>
-
- * doc/autoconf.texi (Writing testsuite.at): Document AT_XFAIL_IF
- * lib/autotest/general.m4 (AT_XFAIL_IF): New macro.
- (TEST_SCRIPT): New diversion.
- (AT_SETUP): Divert output to TEST_SCRIPT and move some code...
- (AT_CLEANUP): ...to here. Undivert TEST_SCRIPT.
- (AT_INIT): Support for expected failures.
-
-2003-06-02 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in, bin/autoscan.in, bin/autoheader.in: White space
- changes.
- * lib/Autom4te/General.pm (&backname): Remove, no longer used by
- Autoconf nor Automake.
- (&contents): New, from Automake.
- PODify.
-
-2003-05-28 Paul Eggert <eggert@twinsun.com>
-
- * NEWS, doc/autoconf.texi (Particular Functions),
- lib/autoconf/functions.m4 (AC_FUNC_MKTIME): Check that mktime
- is the inverse of localtime.
-
-2003-05-25 Alexandre Duret-Lutz <adl@gnu.org>
-
- * lib/Autom4te/General.pm (END): Print diagnostics to STDERR.
- (handle_exec_errors): New function. Work around $! being
- altered by WEXITSTATUS.
- (xqx, xsystem): Use handle_exec_errors.
-
-2003-05-23 Alexandre Duret-Lutz <adl@gnu.org>
-
- * lib/Autom4te/General.pm (END): Rewrite exit code processing.
- 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.
-
-2003-05-23 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/status.m4: Prefer "TAB-SP" to "SP-TAB", because of
- Emacs' dangerous whitespace.el behavior (smashing "useless" spaces in
- the middle of a line).
- * lib/m4sugar/m4sugar.m4: Likewise.
- Remove useless spaces in comments.
-
-2003-05-23 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sugar.m4 (m4_version_prereq): Failure causes an
- exit 63, so that we (or Automake's "missing") can tell the
- difference with a plain failure.
- * doc/autoconf.texi (Notices): Adjust.
-
-2003-05-23 Akim Demaille <akim@epita.fr>
-
- * Makefile.am, bin/Makefile.am, config/Makefile.am,
- * doc/Makefile.am, lib/autoconf/Makefile.am, tests/Makefile.am:
- White spaces cleanup.
-
-2003-05-22 Jim Meyering <jim@meyering.net>
- Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/c.m4 (_AC_PROG_CXX_EXIT_DECLARATION):
- 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.
-
-2003-05-23 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Header Portability): ucred.h.
- From Ian Redfern.
-
-2003-05-22 Paolo Bonzini <bonzini@gnu.org>
-
- Overhaul Autotest's logging: generate separate log files
- in testsuite.dir/NNN/testsuite.log, and append them to
- testsuite.log instead of re-running the test verbosely.
-
- * lib/autotest/general.m4 (AT_INIT): Use a single redirected
- file descriptor, write 0 to at_status_file instead of setting
- at_status=0, initialize some new variables (at_status_file,
- at_group_log, at_suite_log, at_tee_pipe). Remove the cruft
- to rerun the tests, instead append the at_group_log to the
- at_suite_log when a test fails.
- (AT_SETUP): pipe the test case's output into at_tee_pipe,
- with the AS_MESSAGE_LOG_FD redirected to stdout.
- (AT_CLEANUP): save the output status in $at_status_file
- and restore it, redirect the AS_MESSAGE_LOG_FD back to
- its original place.
- (AT_CHECK): since tests are run with a redirected stdout,
- and used to be re-run in verbose mode, turn some $at_verbose
- into echo, and don't redirect the output of testing stdout
- and stderr.
-
- * lib/autotest/autoconf.texi (testsuite Scripts): Update
- the name of the debugging directory and information about
- its contents.
-
-2003-05-22 Paolo Bonzini <bonzini@gnu.org>
-
- * lib/m4sugar/m4sh.m4 (AS_REQUIRE): Actually use the 2nd
- parameter.
-
-2003-05-22 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/autotest.m4, lib/autoconf/autoupdate.m4
- * lib/autoconf/fortran.m4 lib/autoconf/general.m4
- * lib/autoconf/headers.m4 lib/autoconf/oldnames.m4
- * lib/autoconf/status.m4: Fix and adjust copyright notices.
-
-2003-05-22 Akim Demaille <akim@epita.fr>
-
- * aclocal.m4, bin/autoconf.as, lib/autoconf/autoconf.m4,
- * lib/autoconf/autoheader.m4, lib/autoconf/autoupdate.m4,
- * lib/autoconf/c.m4, lib/autoconf/fortran.m4,
- * lib/autoconf/general.m4, lib/autoconf/headers.m4,
- * lib/autoconf/lang.m4, lib/autoconf/libs.m4,
- * lib/autoconf/programs.m4, lib/autoconf/specific.m4,
- * lib/autoconf/status.m4, lib/autoconf/types.m4,
- * lib/autotest/general.m4, lib/m4sugar/m4sugar.m4,
- * tests/atspecific.m4, tests/base.at, tests/compile.at,
- * tests/foreign.at, tests/m4sh.at, tests/semantics.at,
- * tests/tools.at, tests/torture.at:
- Whitespace clean up.
- Suggested by Jim Meyering.
-
-2003-05-22 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/functions.m4 (AC_FUNC_GETLOADAVG): Restore smashed
- ' \t' as '\t ' so that Emacs' whitespace.el keep it.
- Reported by Jim Meyering.
-
-2003-05-22 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi: Replace AC_HELP_STRING AS_HELP_STRING.
- Add AC_HELP_STRING to the obsolete macros section.
- Typos.
- Use '@.' for sentences that ended in a capital letter.
- From Art Haas.
-
-2003-05-22 Akim Demaille <akim@epita.fr>
-
- * config/config.guess, config/config.sub, config/elisp-comp,
- * config/install-sh, config/mdate-sh, config/mkinstalldirs,
- * config/texinfo.tex, doc/standards.texi: Update from masters.
-
-2003-05-21 Paolo Bonzini <bonzini@gnu.org>
-
- * lib/m4sugar/m4sh.m4 (AS_VAR_SET): Escape the RHS before passing
- it to eval.
-
-2003-05-21 Akim Demaille <akim@epita.fr>
-
- * bin/autoupdate.in ($m4): Fix quotation.
- Reported by Martin Mokrejs.
-
-2003-05-19 Paul Eggert <eggert@twinsun.com>
-
- * ChangeLog, ChangeLog.2, THANKS, lib/m4sugar/m4sugar.m4:
- Remove non-ASCII characters.
-
-2003-05-18 Paolo Bonzini <bonzini@gnu.org>
-
- * tests/semantics.at (AC_SEARCH_LIBS): New test.
- * tests/semantics.at (AC_CHECK_HEADERS_OLD,
- AC_CHECK_HEADERS_NEW): New tests.
-
-2003-05-17 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/functions.m4: Use the default includes so that
- 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.
-
-2003-05-17 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/specific.m4: Include signal.h and unistd.h.
- * doc/autoconf.texi (Obsolete Macros): Adjust.
- Reported by Werner LEMBERG and Debian Bug 190886.
-
-2003-05-16 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sh.m4 (_AS_UNSET_PREPARE): s/FOO/as_foo/ to avoid
- user name space clashes.
- Reported by Bruno Haible.
-
-2003-05-16 Akim Demaille <akim@epita.fr>
-
- * bin/autoheader.in, bin/autom4te.in, bin/autoreconf.in,
- * bin/autoscan.in, bin/autoupdate.in, bin/ifnames.in (BEGIN): Make
- them uniform, and more robust to Perl special characters.
- Reported by Martin Mokrejs.
-
-2003-05-14 Akim Demaille <akim@epita.fr>
-
- * tests/foreign.at (Libtool): Skip all Libtools pre 1.4.
-
-2003-05-14 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Header Portability): X11/extensions/scrnsaver.h,
- linux/irda.h.
-
-2003-05-12 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Improve the
- message.
- From Matthias Andree.
-
-2003-05-07 Alexandre Duret-Lutz <adl@gnu.org>
-
- * lib/Autom4te/XFile.pm (lock, truncate): Do not pass @_ to flock
- and truncate.
-
-2003-05-06 Akim Demaille <akim@epita.fr>
-
- Don't try to be smart with aclocal 1.8+ because (i) aclocal no
- longer updates aclocal.m4 if useless, (ii) if a file m4_included
- by aclocal.m4 is changed it might require the importing of another
- m4 extension file, i.e., aclocal must be run.
-
- * bin/autoreconf.in (&run_aclocal, $aclocal_supports_force): New.
- (&parse_args): Use --force with aclocal if required and supported.
- (&autoreconf_current_directory): Use &run_aclocal.
-
-2003-05-06 Akim Demaille <akim@epita.fr>
-
- Lock autom4te's cache.
-
- * 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.
-
-2003-04-29 Derek Price <derek@ximbiot.com>
-
- * lib/autotest/general.m4 (AT_KEYWORDS): Don't use a comma as the
- 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.
-
-2003-04-27 Karl Berry <karl@freefriends.org>
-
- * doc/autoconf.texi: Make the dir entries in the autoconf manual
- align better with others. I also made some of the individual
- entries on one line, for brevity and to make it easier for me to
- sort my dir-example file in the Texinfo distribution :).
-
-2003-04-12 Jim Meyering <jim@meyering.net>
-
- * NEWS: Mention the new macro.
- * lib/autoconf/c.m4 (AC_C_RESTRICT): New macro.
- * doc/autoconf.texi (C Compiler): Describe AC_C_RESTRICT.
- * tests/c.at: Test AC_C_RESTRICT.
- * tests/mktests.sh (ac_exclude_list): Add exclusion for AC_C_RESTRICT.
-
-2003-04-08 Akim Demaille <akim@epita.fr>
-
- * bin/ifnames.in: Skip C++ comments.
- From Jeremy Yallop.
-
-2003-04-08 Akim Demaille <akim@epita.fr>
-
- * GNUmakefile (SHELL): Don't assume sh is in /bin/.
- From Ilya Zakharevich.
-
-2003-04-08 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Particular Headers): Some about sys/socket.h,
- net/if.h, stdlib.h.
-
-2003-04-01 Derek Price <derek@ximbiot.com>
-
- * lib/autoconf/programs.m4 (AC_PROG_INSTALL): Correct syntax error
- from Akim's checkin of 2003-03-29.
-
-2003-04-01 Derek Price <derek@ximbiot.com>
-
- * tests/torture.at (Configuring subdirectories): Add missing
- close-quote for Akim's change from 2003-03-28.
-
-2003-04-01 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (ac, at, ms): Rename these indexes as...
- (AC, AT, MS): these.
- (shortindexflag, @acindex, @ahindex, @asindex, @atindex, @msindex):
- New.
- Use them.
- * doc/Makefile.am (CLEANFILES): Adjust.
- (TEXI2DVI): Make it --batch.
-
-2003-03-31 Derek Price <derek@ximbiot.com>
-
- * lib/autotest/general.m4: Revert the checkin from 2003-03-27
- which removed the main loop.
- Thanks to Akim Demaille.
-
-2003-03-29 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/programs.m4 (AC_PROG_INSTALL): Skip OS/2's install,
- that starts a GUI.
- From Ilya Zakharevich.
-
-2003-03-29 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL): The
- documentation to read is Autoconf's.
- Suggested by Paul Eggert.
-
-2003-03-28 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL): Suggest
- reading the section "Present But Cannot Be Compiled" when the
- header causes problems.
-
-2003-03-28 Akim Demaille <akim@epita.fr>
-
- * tests/torture.at (Configuring subdirectories): Require aclocal
- 1.4, otherwise the test fails, as it does support configure.ac.
- This fixes the "test 40 failed" bug reports.
-
-2003-03-28 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (C Compiler): `#line' portability.
- From Paul Eggert and Nelson H. F. Beebe.
-
-2003-03-27 Derek Price <derek@ximbiot.com>
-
- * lib/autotest/general.m4: Eliminate main loop and reorganize test
- layout in order to allow scripting around test groups.
-
-2003-03-27 Derek Price <derek@ximbiot.com>
-
- * lib/autotest/general.m4 (PARSE_ARGS,PARSE_ARGS_END,HELP,HELP_MODES,
- HELP_TUNING,HELP_OTHER,HELP_END,PREPARE_TESTS,TESTS_END): Define and
- use new diversions in preparation for accepting new arguments and
- allowing scripting around tests.
- (OPTIONS,TAIL): Remove these diversions to make way for the ones above.
-
-2003-03-26 Derek Price <derek@ximbiot.com>
-
- * lib/autoconf/general.m4 (AC_ARG_VAR): Use AS_HELP_STRING instead of
- obsolete AC_HELP_STRING.
- (AC_HELP_STRING): AU_DEFUN to...
- * lib/m4sugar/m4sh.m4 (AS_HELP_STRING): ...here.
- * tests/m4sh.at (AS_HELP_STRING): New test.
-
- * tests/acgeneral.at: Regenerated.
-
-2003-03-26 Derek Price <derek@ximbiot.com>
-
- * lib/autotest/general.m4: s/DEFAULT/DEFAULTS/ since it makes more
- sense. Verbosify the diversion definitions comment.
-
-2003-03-26 Derek Price <derek@ximbiot.com>
-
- * lib/autotest/general.m4 (AT_INIT): Remove redundant call to
- AS_PREPARE.
-
-2003-03-21 Eric Siegerman <eric_97@pobox.com>
-
- * doc/autoconf.texi (Present But Cannot Be Compiled):
- Grammar fixes and minor rewording. (trivial change)
-
-2003-03-06 Paul Eggert <eggert@twinsun.com>
-
- Work around a problem noted by Nelson H. F. Beebe with coreutils
- 4.5.9: Sun c89 (Sun WorkShop 6 update 2 C 5.3 Patch 111679-08
- 2002/05/09) rejects '#line 32768 "configure"' because the line
- number overflows.
- * lib/autoconf/c.m4 (AC_LANG_SOURCE(C)): Do not generate
- #line directives.
- * lib/autoconf/lang.m4 (AC_LANG_SOURCE): Fix comment to match this.
- * doc/autoconf.texi (Generating Sources): Document this.
-
-2003-03-01 Richard Dawe <rich@phekda.freeserve.co.uk>
-
- * tests/atspecific.m4 (AT_CHECK_AUTOM4TE): Normalize
- file name for the m4 program, when it has an "exe" file extension.
- DJGPP's error messages include the error code in brackets -
- remove the error code during normalization.
-
-2003-02-28 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Present But Cannot Be Compiled): New.
-
-2003-02-28 Alexandre Duret-Lutz <adl@gnu.org>
-
- * doc/autoconf.texi (Limitations of Make): Remove the section
- about `$<' in inference rules, it was a bogus interpretation of
- an old Automake change. Discuss NetBSD, FreeBSD, OpenBSD, and
- Tru64 make in the "target lookup" section.
- (Automake): Automake 1.5+ no longer requires special tools to be
- present on the developer's host.
-
-2003-02-26 Richard Dawe <rich@phekda.freeserve.co.uk>
-
- * bin/autoheader.in (BEGIN): For DJGPP SHELL may not be set
- 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.
-
-2003-02-25 Pavel Roskin <proski@gnu.org>
-
- * bin/autoheader.in: Add missing newline when printing
- suggestion how change AC_DEFINE call.
-
-2003-02-24 Paul Eggert <eggert@twinsun.com>
-
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Fix typo in
- 2002-09-01 patch by replacing "test -n" with "test -z".
- This fixes a bug found by Jeff Painter and reported by Tom Epperly in
- <http://mail.gnu.org/archive/html/autoconf/2003-02/msg00139.html>.
-
- * doc/autoconf.texi (Shell Substitutions): test -n -> test -z,
- to fix a mismatch between example and discussion.
-
-2003-02-24 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (Limitations of Builtins): Add notes on printf
- format starting with "-".
-
-2003-02-20 Alexandre Duret-Lutz <adl@gnu.org>
-
- * doc/autoconf.texi (Limitations of Make): `foo=bar make -e'
- is not portable inside Makefile.
-
-2003-02-20 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL): When
- 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.
-
-2003-02-20 Klee Dienes <kdienes@apple.com>
-
- * bin/autoreconf.in (autoreconf_current_directory): Properly
- handle an empty aclocal.m4.
-
-2003-02-20 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (AC_PREFIX_PROGRAM): Quote
- $ac_prefix_program.
- From Larry Jones.
-
-2002-12-23 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/c.m4 (AC_LANG_FUNC_LINK_TRY(C)): Define $1 to an
- 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.
-
-2002-12-03 Paul Eggert <eggert@twinsun.com>
-
- Version 2.57.
-
- * NEWS, configure.ac: Update version.
-
- * doc/fdl.texi: Upgrade to FDL version 1.2.
-
- * lib/autoconf/c.m4 (AC_LANG_FUNC_LINK_TRY(C)): Use the function f
- nontrivially in main's body, so that f's external declaration is
- not optimized away in AIX. This should fix the bug reported by
- Martin Frydl in
- <http://mail.gnu.org/pipermail/autoconf/2002-November/014508.html>.
-
- * lib/autoconf/c.m4 (AC_LANG_FUNC_LINK_TRY(C),
- _AC_PROG_PREPROC_WORKS_IFELSE): Use <limits.h> if __STDC__ is
- defined, to support freestanding compilers. This should fix the
- bug reported by Momchil Velkov in
- <http://mail.gnu.org/pipermail/autoconf/2002-November/014490.html>.
-
- * doc/autoconf.texi (Obsolete Macros): Fix typos (insert empty
- arg, AC_DEFINE -> AC_DEFINE_UNQUOTED) in documentation for
- obsolete AC_CHECK_TYPE. The missing empty arg was reported
- by Simon Josefsson in
- <http://mail.gnu.org/pipermail/autoconf-patches/2002-December/008830.html>.
-
- * Makefile.maint (www-gnu): New macro.
- (standards.texi-url_prefix, make-stds.texi-url_prefix): Use it, as
- the location has moved.
-
-2002-12-02 Martin Frydl <martin@systinet.com>
-
- * bin/autom4te.in (at_flatten): rewritten to avoid M4 problem when
- \(.*\) match is too long and there is something more to be checked.
- <http://mail.gnu.org/pipermail/autoconf/2002-November/014524.html>
-
-2002-11-15 Akim Demaille <akim@epita.fr>
-
- Version 2.56.
-
- * config/install-sh: chmod +x.
- From Paul Eggert.
- * config/move-if-change: Indenting changes.
- * Makefile.am (AUTOMAKE_OPTIONS): Move to...
- * configure.ac (AM_INIT_AUTOMAKE): here.
- Require 1.7.1.
-
-2002-11-14 Akim Demaille <akim@epita.fr>
-
- Version 2.55.
-
- * config/config.guess, config/config.sub, config/install-sh:
- Update from masters.
-
-2002-11-14 Akim Demaille <akim@epita.fr>
-
- * Makefile.maint: Sync with Bison, i.e.:
- (po-check): Scan .l and .y files instead of the
- .c and the .h files that they generate. This fixes the bug
- reported by Tim Van Holder in:
- <http://mail.gnu.org/pipermail/bison-patches/2002-November/001352.html>
- Look for N_ as well as for _. Try to avoid matching #define for
- N_ and _.
- From Paul Eggert.
-
-2002-11-14 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (C Compiler): Compiling several files at once.
- From Paul Eggert and Albert Chin-A-Young.
-
-2002-11-14 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (C Compiler): Solitary backslashes.
- From Paul Eggert and Albert Chin-A-Young.
-
-2002-11-14 Kevin Ryde <user42@zip.com.au>
-
- * lib/autoconf/c.m4 (AC_LANG_FUNC_LINK_TRY(C)): Initialize f=$1 rather
- than assigning in main, to avoid HP cc +O3 optimizing it away.
-
-2002-11-12 Peter Eisentraut <peter_e@gmx.net>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Add -q
- 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.
-
-2002-11-07 Alexandre Duret-Lutz <adl@gnu.org>
-
- * bin/autoscan.in (scan_file): Scan Makefile.am too. Ignore
- Makefile.in if Makefile.am exists.
- (output): Strip `.am' from Makefiles. Don't
- output AC_CONFIG_FILES if no Makefiles were found.
-
-2002-11-07 Akim Demaille <akim@epita.fr>
-
- * Makefile.am (cvs_files): Add elisp-comp, mdate-sh.
- (local_updates): New.
- * Makefile.maint: Update, from CVS Bison.
- (local_updates): New.
-
-2002-11-06 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/c.m4 (AC_LANG_FUNC_LINK_TRY): Wrap the `f'
- declaration in extern "C" too.
- Reported by Roberto Bagnara.
-
-2002-11-06 Akim Demaille <akim@epita.fr>
-
- * tests/torture.at (Configuring subdirectories): Don't use grep
- -w.
- * doc/autoconf.texi (Limitations of Usual Tools): Grep -w.
- Reported by Ezra Peisach.
-
-2002-11-05 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/autoheader.m4 (_AH_TEMPLATE_OLD, _AH_VERBATIM_OLD):
- 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.
-
-2002-11-04 Paul Eggert <eggert@twinsun.com>
-
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Set the following variables,
- too: LC_ADDRESS, LC_IDENTIFICATION, LC_MEASUREMENT, LC_MONETARY,
- LC_NAME, LC_PAPER, LC_TELEPHONE.
- * doc/autoconf.texi (Special Shell Variables): Mention those vars.
-
-2002-11-04 Akim Demaille <akim@epita.fr>
-
- Version 2.54c.
-
- * Makefile.maint (update, cvs-update, po-update, do-po-update):
- New.
- * config/texinfo.tex: Update.
-
-2002-11-03 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.in (&autoreconf_current_directory): New, extracted
- from...
- (&autoreconf): here.
- ($help, $make, &parse_args, &autoreconf_current_directory):
- Support -m/--make.
- * doc/autoconf.texi (autoreconf Invocation): Adjust.
-
-2002-10-31 Bruno Haible <bruno@clisp.org>
-
- * lib/autoconf/functions.m4 (_AC_FUNC_MALLOC_IF): Change message.
- 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.
-
-2002-10-31 Akim Demaille <akim@epita.fr>
-
- The test suite was no longer checking for trailing envvars and files.
-
- * tests/atspecific.m4 (AC_STATE_SAVE): Don't use quadrigraphs here.
- (AT_CHECK_ENV): Make sure the `state-ls.before file exists.
-
-2002-10-31 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/programs.m4 (AC_PROG_MAKE_SET): Use and display
- `$(MAKE)' instead of '${MAKE}' to emphasize that we refer to the
- Make variable, not a shell variable.
- Suggested by Bruno Haible.
-
-2002-10-31 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (load_configuration): Reject #args out of any
- language.
-
-2002-10-31 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_AC_MSG_LOG_CONFTEST): New.
- (_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.
-
-2002-10-30 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (&parse_args, $help): Support --no-cache.
- * doc/autoconf.texi (autom4te Invocation): Adjust.
- Suggested by Tim van Holder.
-
-2002-10-29 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Particular Functions): AC_FUNC_MALLOC and
- AC_FUNC_REALLOC check for compatibility with glibc, not POSIX.
- Problem reported by Bruno Haible.
-
-2002-10-29 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Header Templates): Put also in words what the
- pictures says to assist free style readers.
- (Customizing autom4te): s/--cache=/--cache /.
-
-2002-10-29 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/functions.m4 (_AC_FUNC_VFORK): Include stdlib.h and
- sys/wait.h.
- sparc_address_test returns void.
- Use it with an argument, as prototyped.
- From Bruno Haible.
-
-2002-10-29 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Subdirectories): Cygnus dirs have
- configure.in, not configure.ac.
- Reported by Bruno Haible.
-
-2002-10-29 Akim Demaille <akim@epita.fr>
-
- * tests/torture.at (Deep Package): New test.
- (Configuring subdirectories): Don't use a testSubDir as Autotest
- now does it itself.
-
-2002-10-29 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.in (&parse_args, $help): Support --warnings.
- * doc/autoconf.texi (Invoking autom4te): Rename as...
- (autom4te Invocation): this, for consistency with the other nodes.
-
-2002-10-29 Akim Demaille <akim@epita.fr>
-
- * lib/autom4te.in (Autoconf): s/automate/autom4te/.
- Reported by Ralf Corsepius.
-
-2002-10-29 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sh.m4 (_AS_QUOTE): The warning about quoted
- characters is a back as an `obsolete' warning now.
- Reported by Ralf Corsepius.
-
-2002-10-28 Akim Demaille <akim@epita.fr>
-
- * configure.ac: Bump to 2.54c.
-
-2002-10-28 Akim Demaille <akim@epita.fr>
-
- Version 2.54b.
-
- * tests/foreign.at (Libtool): Adjust to broken libtoolize.
-
-2002-10-28 Akim Demaille <akim@epita.fr>
-
- * tests/atspecific.m4 (AT_CHECK_AUTOM4TE): Be robust to different
- m4 executable names, and different GNU M4 version.
- Reported by Ezra Peisach and Paul Jarc.
-
-2002-10-27 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/functions.m4 (_AC_FUNC_VFORK): Really use
- AC_RUN_IFELSE.
-
-2002-10-27 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi: More AC_MSG_FAILURE promotion.
- * 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.
-
-2002-10-27 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Run Time): Document AC_RUN_IFELSE.
- 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.
-
-2002-10-27 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Generating Sources): Document AC_LANG_CALL
- and AC_LANG_FUNC_LINK_TRY.
- (Examining Libraries): Rename as...
- (Running the Linker): this.
- Document AC_LINK_IFELSE.
- Move the documentation of AC_TRY_LINK and AC_TRY_LINK_FUNC to...
- (Obsolete Macros): here.
- * lib/autoconf/fortran.m4 (_AC_F77_NAME_MANGLING): Don't use
- AC_TRY_LINK_FUNC nor AC_TRY_LINK.
- * lib/autoconf/libs.m4 (AC_CHECK_LIB, AC_PATH_XTRA): Likewise.
- * lib/autoconf/headers.m4 (AC_USG): Likewise.
-
-2002-10-27 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/headers.m4 (AC_HEADER_STDC): Don't use AC_TRY_CPP.
-
- More `check config.log' messages.
-
- * lib/autoconf/general.m4 (AC_MSG_FAILURE): New.
- * doc/autoconf.texi (Printing Messages): Document it.
- * lib/autoconf/types.m4 (AC_CHECK_SIZEOF): Use it when
- appropriate.
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT)
- (_AC_COMPILER_EXEEXT_WORKS, _AC_COMPILER_EXEEXT_O)
- (_AC_COMPILER_OBJEXT): Likewise.
- * lib/autoconf/general.m4 (AC_RUN_IFELSE): Likewise.
- * lib/autoconf/fortran.m4 (_AC_LANG_PROGRAM_C_F77_HOOKS):
- Likewise.
- * lib/autoconf/c.m4 (AC_PROG_CPP, AC_PROG_CC, AC_PROG_CXXCPP):
- Likewise.
-
- Deprecate macros with unusual interfaces.
-
- * lib/autoconf/general.m4 (AC_TRY_CPP, AC_TRY_LINK)
- (AC_TRY_COMPILE, AC_TRY_RUN): AU_DEFUN'ed.
-
- Document the new ones, and proper style.
-
- * doc/autoconf.texi (Generating Sources): New.
- Document AC_LANG_CONFTEST, AC_LANG_SOURCE, AC_LANG_PROGRAM.
- (Examining Declarations): Rename as...
- (Running the Preprocessor): this.
- Document AC_PREPROC_IFELSE.
- (Examining Syntax): Rename as...
- (Running the Compiler): this.
- (AC_FOO_IFELSE vs AC_TRY_FOO): New section.
- (Obsolete Macros): Move the definition of AC_TRY_CPP and
- AC_TRY_COMPILE here.
-
-2002-10-27 Akim Demaille <akim@epita.fr>
-
- Move sections around.
-
- * doc/autoconf.texi (Customizing autom4te): Remove a lost
- sentence.
- Reported by Burno Haible.
- (Language Choice): Now the first section of...
- (Writing Tests): this section.
- Make the introduction less C-centric.
- (Guidelines, Test Functions): Move to...
- (Writing Test Programs): this new section.
- (Test Programs): Merge into...
- (Run Time): this.
-
-2002-10-27 Akim Demaille <akim@epita.fr>
-
- * lib/freeze.mk ($(AUTOM4TE_CFG)): Add a missing dependency on
- autom4te.in that resulted in the need for two `make' runs.
-
-2002-10-27 Akim Demaille <akim@epita.fr>
-
- * configure.ac: Bump to 2.54b.
-
-2002-10-25 Akim Demaille <akim@epita.fr>
-
- Version 2.54a.
-
- * Makefile.maint: Update from the Coreutils.
- (AMTAR): Remove, obsolete.
- (automake_repo): Update to redhat.com.
- (cvs_file): New.
- Adjust to the fact that ansi2knr is now hosted by Automake.
- * Makefile.am (cvs_files): Add install-sh and mkinstalldirs.
- * config/config.guess, config/mkinstalldirs, config/texinfo.tex:
- Update from masters.
- * lib/autoscan/Makefile.am (EXTRA_DIST, nodist_autoscanlib_DATA):
- autoscan.pre is not to be installed, and autoscan.list is not to
- be shipped.
- (CLEANFILES): Add autoscan.list.
- (autoscan.list): Disable the cache.
- * bin/Makefile.am: Include freeze.mk.
-
-2002-10-25 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (&load_configuration): Take the file as
- argument.
- (&parse_args): Handle -C, --cache.
- ($help): Adjust.
- (MAIN): Load ~/.autom4te.cfg and ./.autom4te.cfg.
- * lib/autom4te.in (Autoconf): Pass --cache=autom4te.cache.
- * doc/autoconf.texi (Invoking autom4te): Document --cache.
- Now a subsection of...
- (Using autom4te): This new section.
- (Customizing autom4te): New.
- (autom4te.cache): Adjust.
-
-2002-10-25 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Generic Headers): More information on how to
- use AC_CHECK_HEADERS.
-
-2002-10-25 Akim Demaille <akim@epita.fr>
-
- * bin/autoconf.as, bin/autoconf.in, bin/autoupdate.in ($help):
- Space changes.
-
-2002-10-25 Akim Demaille <akim@epita.fr>
-
- * bin/autoscan.in (output): Output AC_PREREQ.
- (%needed_macros): Add AC_PREREQ so that configure.ac without one
- be reported.
-
-2002-10-23 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Particular Headers): In AC_HEADER_STDBOOL,
- document _Bool.
-
-2002-10-23 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (handle_traces): Handle @&t@ in traces.
- Reported by Peter Eisentraut.
-
-2002-10-23 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/headers.m4 (AC_HEADER_STDBOOL): Also look for the
- type _Bool.
- Fix a typo.
- * doc/autoconf.texi (Particular Headers): Adjust according to Paul
- Eggert's recommandations.
-
-2002-10-22 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/headers.m4 (AC_HEADER_STDBOOL): New, based on CVS
- Bison, by Paul Eggert.
- * doc/autoconf.texi (Particular Headers): Document it.
-
-2002-10-22 Aaron M. Ucko <amu@alum.mit.edu>
-
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Avoid duplicates in
- `$ac_configure_args'.
-
-2002-10-22 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi: Use AC_CONFIG_HEADERS in examples.
- (AC_ST_BLKSIZE, AC_ST_RDEV): Directly point to AC_CHECK_MEMBERS.
- From Art Haas.
-
-2002-10-22 Akim Demaille <akim@epita.fr>
-
- Restore the 2002-10-11 Akim Demaille <akim@epita.fr> patch:
-
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL)
- (AC_CHECK_HEADER, _AC_CHECK_HEADER_NEW,_AC_CHECK_HEADER_OLD): Restore.
- (_AC_CHECK_HEADER_NEW): Rename as...
- (AC_CHECK_HEADER): this.
-
-2002-10-22 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Remove incorrect
- words about HP-UX cmp: it was actually a user-written cmp.
-
-2002-10-22 Akim Demaille <akim@epita.fr>
-
- * tests/foreign.at (Libtool): Don't check autoconf's stderr: there
- 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.
-
-2002-10-22 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sh.m4 (_AS_QUOTE): The warning about quoted
- 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.
-
-2002-10-18 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (handle_m4): Pass --fatal-warning to m4, so that
- missing included files _are_ errors.
- Thanks to Alexandre Duret-Lutz.
- * tests/tools.at (autom4te cache): Adjust.
- * tests/atspecific.m4 (AT_CHECK_AUTOM4TE): New.
- (AT_CHECK_M4SUGAR): Use it.
- * tests/m4sugar.at (m4_warn, m4_require: circular dependencies):
- Adjust.
- * tests/tools.at (autom4te): Now it does exit 1.
-
-2002-10-17 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (AC_CACHE_SAVE): Don't use cmp.
- 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.
-
-2002-10-17 Akim Demaille <akim@epita.fr>
-
- * tests/tools.at (autoheader): Put randoms `@' to stress Perl.
-
-2002-10-16 Paul Eggert <eggert@twinsun.com>
-
- * Makefile.maint (wget_files): Remove ansi2knr.c.
- (ansi2knr.c-url_prefix): Remove.
-
-2002-10-16 Akim Demaille <akim@epita.fr>
-
- Because of caching, some files that no longer exist and are no
- longer required can still cause errors.
- Reported by Alexandre Duret-Lutz.
-
- * bin/autom4te.in (&parse_args): Do not prepend `--reload-state'
- to frozen files in @ARGV, as @ARGV must remain being a list of
- files. Rather, at M4 call sites, use this...
- (&files_to_options): New function.
- (&freeze): Use &error.
- (&up_to_date): If a file that was included according to the cache
- is no longer there, then the output is out dated.
- (&main): Don't even check whether a file is up to date is anyway
- --force is given.
- * tests/tools.at (autom4te cache): New.
-
-2002-10-16 Akim Demaille <akim@epita.fr>
-
- * bin/autoconf.as: Kill dead options.
- * 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.
-
-2002-10-11 Akim Demaille <akim@epita.fr>
-
- No longer use CPP to check for the existing of headers: use CC to
- check for compilability.
-
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL)
- (AC_CHECK_HEADER, _AC_CHECK_HEADER_OLD): Remove.
- (_AC_CHECK_HEADER_NEW): Rename as...
- (AC_CHECK_HEADER): this.
-
- * lib/autotest/general.m4 (AT_INIT): Include the failed test
- numbers in the Subject suggestion.
-
-2002-10-11 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/specific.m4 (AC_DECL_SYS_SIGLIST): Obsolete.
- Suggest using AC_CHECK_DECLS instead.
-
-2002-10-11 Akim Demaille <akim@epita.fr>
-
- * tests/torture.at (AC_ARG_VAR): Have configure report the value
- of `precious'.
-
-2002-10-11 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sh.m4 (_AS_PATH_SEPARATOR_PREPARE): Use $$ in the
- file name to enable parallel executions.
- From Sam Varshavchik.
-
-2002-10-08 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.in (&autoreconf): Run autopoint before the first
- aclocal invocation, as Gettext macros might not be visible to
- aclocal.
- Instead of blindly running autopoint, scan configure.ac (not the
- traces) for AM_GNU_GETTEXT_VERSION uses, as autopoint does.
- Reported by Paul D. Smith.
-
-2002-10-08 Paul Eggert <eggert@twinsun.com>
-
- Work around problems found when POSIXLY_CORRECT=1 is set.
- None of this seems to have anything to do with POSIX, really,
- but it's how Perl getopt works.
- * bin/autom4te.in (parse_args): Configure GetOpt with
- "permute", too.
- * doc/autoconf.texi (Invoking autom4te):
- --warning -> --warnings.
- * lib/autom4te.in: --warning -> --warnings.
-
-2002-09-28 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (autom4te.cache): New section.
-
-2002-09-28 Akim Demaille <akim@epita.fr>
-
- * lib/autom4te.in (Autoscan-preselections, Autoreconf-preselections)
- (Automake-preselections): Update.
- * bin/autoreconf.in, bin/autoheader.in: Comment changes.
-
-2002-09-28 Akim Demaille <akim@epita.fr>
-
- * lib/autoscan/autoscan.pre: Move all the remaining rules to...
- * lib/autoconf/c.m4, lib/autoconf/functions.m4,
- * lib/autoconf/headers.m4, lib/autoconf/libs.m4,
- * lib/autoconf/specific.m4, lib/autoconf/types.m4: here.
-
-2002-09-28 Akim Demaille <akim@epita.fr>
-
- * tests/torture.at (Configuring subdirectories): Be robust to
- users who use config.site to require for a cache: in this case,
- the two last configure runs, using two different sets of
- arguments, trigger a legitimate error.
-
-2002-09-28 Akim Demaille <akim@epita.fr>
-
- * tests/m4sh.at (Functions Support, Functions and return Support):
- New.
-
-2002-09-28 Akim Demaille <akim@epita.fr>
-
- * bin/Makefile.am (ETAGS_SH, ETAGS_PERL): Update: ifnames and
- 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.
-
-2002-09-28 Akim Demaille <akim@epita.fr>
-
- * lib/autoscan/autoscan.pre (st_blksize, st_blocks, st_rdev)
- (tm_zone): Move their rules to...
- * lib/autoconf/types.m4: here, using AN_ macros.
- * lib/autoscan/autoscan.pre (AWK, BISON, INSTALL, LEX, LN, MAKE)
- (RANLIB, YACC, awk, bison, byacc, flex, gawk, install, lex, ln)
- (make, mawk, nawk, ranlib, yacc): Similarly, move to...
- * lib/autoconf/programs.m4: here.
- * lib/freeze.mk (ETAGS_FOR_M4, ETAGS_FOR_M4SUGAR)
- (ETAGS_FOR_AUTOCONF): New.
- Use it.
-
-2002-09-28 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/autoscan.m4: New file.
- * 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.
-
-2002-09-28 Akim Demaille <akim@epita.fr>
-
- * bin/autoscan.in (@kinds): Make them singular.
- 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.
-
-2002-09-28 Akim Demaille <akim@epita.fr>
-
- * lib/autoscan/functions, lib/autoscan/headers,
- * lib/autoscan/identifiers, lib/autoscan/makevars,
- * lib/autoscan/programs: Merge into...
- * lib/autoscan/autoscan.list: this.
- * bin/autoscan.in (&init_tables): Adjust.
-
-2002-09-28 Akim Demaille <akim@epita.fr>
-
- * lib/autoscan/functions, lib/autoscan/headers,
- * 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.
-
-2002-09-28 Akim Demaille <akim@epita.fr>
-
- From now on, autoscan files must always map a macro name to a
- 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.
-
-2002-09-28 Akim Demaille <akim@epita.fr>
-
- * bin/autoscan.in (%c_keywords): Remove.
- (&used): Keep only track of the words we might be interested in.
- (&output_kind): It is no longer needed to look for non active
- checks.
-
-2002-09-27 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/functions.m4 (AC_FUNC_MBRTOWC): New, stolen from
- jm_FUNC_MBRTOWC, by Paul Eggert, from the Coreutils 4.5.1.
- * lib/autoscan/functions: Adjust.
- * doc/autoconf.texi (Particular Functions): Adjust.
-
-2002-09-27 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Some about mv
- 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.
-
-2002-09-27 Akim Demaille <akim@epita.fr>
-
- * bin/autoscan.in: Improve the comments.
- (&parse_args): Drop obsolete undocumented options.
- (&output_kind): Output warnings.
- * lib/autoscan/functions: (dcgettext): Now trigger AM_GNU_GETTEXT.
- (getwd): Trigger a warning.
-
-2002-09-26 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.in: Clarify that -s is meaningless without -i.
- Reported by Ralf Corsepius.
- * doc/autoconf.texi (autoreconf Invocation): Likewise.
-
-2002-09-26 Akim Demaille <akim@epita.fr>
-
- Single suffix rules and seperated dependencies are not portable.
-
- * 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.
-
-2002-09-25 Paul Eggert <eggert@twinsun.com>
-
- * BUGS (Interoperability bugs): New section. Mention libtool
- 1.4.2, configure.ac, and AC_CONFIG_AUX_DIR interoperability bug.
-
-2002-09-24 Paul Eggert <eggert@twinsun.com>
-
- Fix a portability bug reported by Alexandre Duret-Lutz: Solaris 8
- make handles suffix-rules differently from GNU make.
-
- * bin/Makefile.am (SUFFIXES, .in): Remove.
- (autoconf autoheader autoreconf autoupdate ifnames autoscan autom4te):
- Move the body of the old .in rule here.
-
-2002-09-16 Akim Demaille <akim@epita.fr>
-
- i960 compilers create `b.out' files by default.
- Reported by Ralf Corsepius.
-
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT): Remove b.out files.
- (_AC_COMPILER_EXEEXT_DEFAULT): Adjust to b.out.
-
-2002-09-13 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Particular Headers): Remove obsolete
- reference to `struct timezone' in the description of
- AC_HEADER_TIME.
-
-2002-09-13 Akim Demaille <akim@epita.fr>
-
- Version 2.54.
-
- * config/config.sub, config/config.guess: Update.
- * Makefile.maint: Update from bits of the Coreutils 4.5.1.
- * Makefile.am: Adjust.
-
-2002-09-13 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Suggest
- reading config.log when the compiler is rejected.
- Suggested by Guido Draheim.
-
-2002-09-13 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.in: Don't use Cwd::chdir, since in its internals
- (chdir_init) might hang when stat'ing mounted directories.
- Reported by Vance Shipley.
-
-2002-09-12 Akim Demaille <akim@epita.fr>
-
- * bin/autoscan.in (&parse_args): Pass a reference to the lists, not
- the lists.
-
-2002-09-12 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Defining Symbols): Present two different
- prototypes for AC_DEFINE and AC_DEFINE_UNQUOTED to emphasize the
- difference between 1 argument calls, and 2-3 argument calls.
-
-2002-09-12 Peter Eisentraut <peter_e@gmx.net>
-
- * doc/autoconf.texi: Review grammar and punctuation.
-
-2002-09-11 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi: Fix minor formatting, spelling, and
- grammatical typos.
- (Defining Symbols): Explain that AC_DEFINE(var) defaults to 1, but
- AC_DEFINE(var,,description) does not; and the AC_DEFINE(var) case
- is obsolescent.
-
-2002-09-11 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Questions): Rename as...
- (FAQ): this.
- (Defining Directories): New.
-
-2002-09-09 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Making testsuite Scripts): Update.
- Suggested by Nishio Futoshi.
-
-2002-09-09 Koji Arai <JCA02266@nifty.ne.jp>
-
- * doc/autoconf.texi (Making testsuite Scripts): Use `@@' where a
- plain `@' is wanted.
-
-2002-09-09 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Keep the
- `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.
-
-2002-09-09 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/functions.m4 (AC_FUNC_GETLOADAVG): Use $srcdir when
- 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.
-
-2002-09-06 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Setting Output Variables): Clarify what
- precious variables are.
- Suggested by Pontus Skoeld.
-
-2002-09-05 Akim Demaille <akim@epita.fr>
-
- * bin/Makefile.am (autoconf, autoheader, autoreconf, autoupdate)
- (ifnames, autoscan, autom4te): Since we don't only depend on
- configure.ac variables (such as VERSION etc.), but also on prefix
- and so forth, depend on Makefile, not configure.ac.
- Reported by Alexandre Duret-Lutz.
- * doc/autoconf.texi (Installation Directory Variables): Adjust.
-
-2002-09-05 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (Limitations of Make): HP-UX trailing backslashes
- doesn't seem to be confined to ia64, just say "some versions".
-
-2002-09-04 Akim Demaille <akim@epita.fr>
-
- * Makefile.am, doc/Makefile.am: Remove pdf targets, handled by
- Automake 1.6c.
- * Makefile.am (maintainer-clean-local): Remove.
- (MAINTAINERCLEANFILES): Remove COPYING.
-
-2002-09-03 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Configuration Commands): Remove obsolete
- example for AC_CONFIG_COMMANDS_PRE. Problem reported by Marcus
- Brinkmann.
-
-2002-09-03 Akim Demaille <akim@epita.fr>
-
- * configure.ac: Bump to 2.53d.
- * Makefile.am (AUTOMAKE_OPTIONS): Require 1.6c, i.e., CVS Automake
- as of today, on Automake's team suggestion.
-
-2002-09-03 Akim Demaille <akim@epita.fr>
-
- Version 2.53c.
-
-2002-09-02 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (parse_args): Don't honor AUTOM4TE_PATH and
- SITE_MACRO_DIR.
- * configure.ac: Disable SITE_MACRO_DIR.
-
-2002-09-02 Jim Meyering <meyering@lucent.com>
-
- * doc/autoconf.texi (AC_SYS_POSIX_TERMIOS): Reflect renaming: s/am/ac/,
- i.e., change am_cv_sys_posix_termios to ac_cv_sys_posix_termios.
- Also, tweak grammar: s/make sure to/be sure to/.
-
-2002-09-02 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Limitations of Builtins): Explain why logical
- directory names are generally preferable to physical names.
-
-2002-09-02 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/General.pm (&update_file): s/die/error/.
- Reported by Raja R. Harinath.
- * bin/autoheader.in, bin/autoreconf.in, bin/autoscan.in,
- * bin/autoupdate.in: Use error instead of die.
-
-2002-09-01 Paul Eggert <eggert@twinsun.com>
-
- * tests/mktests.sh (ac_exclude_egrep, au_exclude_egrep): Use
- ordinary shell concatenation rather than echo+tr+sed command that
- runs afoul of a long-line-related sed bug in Solaris 8.
-
- * bin/autoheader.in (parse_args): --warning -> --warnings.
-
- * bin/autoconf.as: Work even if "ls" outputs "FOO not found" to
- stdout, as traditional "ls" does.
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT,
- _AC_COMPILER_EXEEXT_O): Likewise.
- * doc/autoconf.texi (Limitations of Usual Tools): Add "ls".
-
- * bin/autoconf.as: Add --prepend-include option. This patch was
- applied to bin/autoconf.in in the 2002-07-17 patch by Mark D. Roth,
- but bin/autoconf.in is generated automatically from bin/autoconf.as.
-
- * bin/autoconf.in, configure: Regenerate.
-
- * doc/autoconf.texi (Special Shell Variables): Mention
- ENV, MAIL, MAILPATH, PS1, PS2, PS4. Index PWD.
-
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Unset ENV, MAIL,
- MAILPATH and set PS1, PS2, PS4 to default values, to work
- around bug in pre-3.0 UWIN ksh reported by Bruce Lilly.
- For LC_ALL etc, first try to set to "C" as POSIX requires and as
- the Autoconf documentation specifies; fall back to "unset" only if
- this fails. Use a shell for-loop for this rather than an m4 loop,
- to shorten the output script.
-
-2002-08-30 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Special Shell Variables): Mention POSIX
- 1003.1-2001's requirements for CDPATH. Give a simpler workaround
- for the CDPATH problem. Document PWD.
- (Limitations of Builtins): Document the problem that "cd $foo" and
- "ls $foo" may refer to different directories in shells conforming
- to POSIX 1003.1-2001. Use PS1 rather than CDPATH for "unset"
- example, since the old example is now out of date.
-
- * lib/autoconf/general.m4 (_AC_INIT_SRCDIR): Reject FOO if "cd
- FOO" and "ls FOO" talk about different directories; this catches
- problems when POSIX 1003.1-2001 "cd" fails due to symlink
- spaghetti.
-
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Use AS_UNSET instead
- of rolling our own unset.
- (_AS_PREPARE): $as_unset CDPATH instead of AS_UNSETting it, since
- in practice we needn't worry about CDPATH if unset doesn't work.
-
- * Makefile.in, aclocal.m4, bin/Makefile.in,
- config/Makefile.in, doc/Makefile.in, lib/Makefile.in,
- lib/Autom4te/Makefile.in, lib/autoconf/Makefile.in,
- lib/autoscan/Makefile.in, lib/autotest/Makefile.in,
- lib/emacs/Makefile.in, lib/m4sugar/Makefile.in, man/Makefile.in,
- tests/Makefile.in: Regenerate with Automake 1.6.3.
-
- * config/config.guess, config/config.sub, config/mkinstalldirs:
- Update.
-
- * configure: Regenerate with self.
-
-2002-08-30 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Notes on "cc"
- default output.
-
-2002-08-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- * bin/autom4te.in (Request::load): Correctly test for "do" read
- failure.
-
-2002-08-29 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/General.pm (&xqx): New.
- (&xsystem): Use WIFEXITED and WEXITSTATUS instead of decoding $? by
- hand, which is not portable.
- (&error): New.
- * bin/autom4te.in: Use them.
- Use &error instead of die.
- * tests/m4sugar.at (m4_warn, m4_require: circular dependencies):
- Adjust.
-
-2002-08-17 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/fortran.m4 (AC_PROG_F77): Remove fc from the
- default list of compilers to try, since it was long ago superseded
- by the ksh fc builtin. Suggested by Steven G. Johnson.
-
-2002-07-31 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * doc/autoconf.texi (Invoking autom4te): End the option table,
- fixing a bug introduced by the previous patch.
- (Limitations of Make): Add a 'target lookup' subentry in the
- 'VPATH' entry. Rewrite all `make' occurences as `@command{make}'.
-
-2002-07-29 Mark D. Roth <roth@feep.net>
-
- * bin/autom4te.in: Remove --include-envvar and --site-macro-subdir
- options and use $AUTOM4TE_PATH.
- * doc/autoconf.texi: Remove documentation of autom4te
- --include-envvar and --site-macro-subdir options and document
- use of $AUTOM4TE_PATH.
- * lib/autom4te.in: Remove --include-envvar and --site-macro-subdir
- arguments from each language section.
-
-2002-07-29 Paul Eggert <eggert@twinsun.com>
-
- * doc/install.texi: Include copyright symbol in copyright notice.
-
- * Makefile.am (MAKEINFO): Remove; it's a user-specified macro.
- Replace with:
- (AM_MAKEINFOFLAGS): New macro.
- * doc/Makefile.am (MAKEINFO, AM_MAKEINFOFLAGS): Likewise.
- * Makefile.am (INSTALL): Use the new macros.
- Use -o rather than --output, since "missing" does not grok --output.
-
-2002-07-25 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * doc/autoconf.texi (Limitations of Make): Escaped newlines in
- comments do not always work. Never trust the exit status of
- `make -k'.
-
-2002-07-24 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (Limitations of Make, Making testsuite Scripts):
- Untabify, since tabs are not enjoyed by texi2dvi and makeinfo.
-
-2002-07-23 Paul Eggert <eggert@twinsun.com>
-
- * lib/m4sugar/m4sh.m4 (_AS_PATH_SEPARATOR_PREPARE):
- Use PATH="/nonexistent;.", not PATH=".;.", as FreeBSD ksh2002
- apparently treats PATH="nonexistent" as if it contained ".".
- Bug reported by Stefan `Sec' Zehl.
-
-2002-07-22 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * doc/autoconf.texi (Limitations of Make): Mention the special
- handling of the obj/ directory by BSD make.
-
-2002-07-20 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (Limitations of Make): Add HP-UX IA-64 trailing
- backslashes.
-
-2002-07-19 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Function Portability): `exit'.
- (Programming in M4sh): Ethymology of M4sh.
-
-2002-07-19 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (AC_LIBOBJ vs LIBOBJS): More about $U.
-
-2002-07-18 Akim Demaille <akim@epita.fr>
-
- Version 2.53b.
-
-2002-07-18 Akim Demaille <akim@epita.fr>
-
- * config/config.guess, config/config.sub: Update.
-
-2002-07-18 Akim Demaille <akim@epita.fr>
-
- Handle LIBOBJS and LTLIBOBJS once for all, including Libtool's and
- Automake's parts.
-
- * lib/autoconf/general.m4 (_AC_LIBOBJS_NORMALIZE): New.
- * lib/autoconf/status.m4 (AC_OUTPUT_COMMANDS_PRE): Call it.
- * tests/semantics.at (AC_REPLACE_FUNCS): Adjust.
-
-2002-07-18 Akim Demaille <akim@epita.fr>,
- Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS): Install
- _AC_AM_CONFIG_HEADER_HOOK for Automake 1.7.
-
-2002-07-17 Russ Allbery <rra@stanford.edu>
-
- * doc/autoconf.texi (Initializing configure): Clarify the
- description of the tarname default.
-
-2002-07-17 Andreas Buening <andreas.buening@nexgo.de>
-
- * lib/autoconf/functions.m4 (AC_FUNC_FORK): Don't set
- ac_cv_func_fork_works before running _AC_FUNC_FORK, do it if the
- latter was not run.
-
-2002-07-17 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/General.pm (find_file): Browse the directories in
- the order they are given.
-
-2002-07-17 Akim Demaille <akim@epita.fr>
-
- * tests/wrapsh.as, tests/wrappl.as: Merge into...
- * tests/wrapper.as: this.
- * tests/Makefile.am, configure.ac: Adjust.
-
-2002-07-17 Mark D. Roth <roth@feep.net>
-
- * configure.ac: Add --enable-site-macro-dir option.
- * bin/Makefile.am: Expand @SITE_MACRO_DIR@.
- * bin/autom4te.in: Add --prepend-include, --include-envvar, and
- --site-macro-subdir options.
- * bin/autoconf.in: Add --prepend-include option.
- * bin/autoheader.in: Add --prepend-include option.
- * bin/autoreconf.in: Add --prepend-include option.
- * bin/autoscan.in: Add --prepend-include option.
- * bin/autoupdate.in: Add --prepend-include option.
- * doc/autoconf.texi: Document use of $AC_MACRO_PATH and site
- macro directory, remove note that include path directories are
- used in reverse order, and document --prepend-include option.
- * lib/autom4te.in: Use --prepend-include instead of --include.
- * tests/wrapsh.in: Use --prepend-include instead of --include.
-
-2002-07-17 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_AC_INIT_PACKAGE): `_' is allowed in
- tarnames.
- * doc/autoconf.texi (Initializing configure): Adjust.
-
-2002-07-17 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/functions.m4 (AC_FUNC_REALLOC, _AC_FUNC_REALLOC)
- (_AC_FUNC_MALLOC): New.
- (AC_FUNC_MALLOC): Use the latter.
- Define HAVE_MALLOC to 0 if broken.
- * doc/autoconf.texi (Particular Functions): Adjust.
-
-2002-07-16 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/c.m4 (AC_C_BACKSLASH_A): New.
- * doc/autoconf.texi (C Compiler): Adjust.
-
-2002-07-09 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi: Properly set the ``header'' part.
-
-2002-07-09 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Systemology): Some about Darwin.
-
-2002-07-09 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * lib/autoconf/specific.m4 (AC_CYGWIN, AC_EMXOS2, AC_MINGW32):
- Don't use AC_REQUIRE in AU_DEFUN.
-
-2002-07-09 Art Haas <ahaas@neosoft.com>
-
- * doc/autoconf.texi: Use @enddots{} or @dots{} where appropriate.
-
-2002-07-02 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * bin/autoheader.in, bin/autom4te.in, bin/autoreconf.in,
- bin/autoupdate.in, bin/ifnames.in, lib/Autom4te/General.pm,
- lib/Autom4te/Struct.pm, lib/Autom4te/XFile.pm: Add local variables
- so that Emacs setups GNU style for perl-mode and cperl-mode.
-
-2002-06-27 Paul Eggert <eggert@twinsun.com>
-
- * config/install-sh: Quote $src. Prefer || to test's -o option,
- as per "Limitations of Builtins".
- * tests/atspecific.m4 (AT_CHECK_ENV): Likewise, for && vs test -a.
- * tests/semantics.at (AC_C_BIGENDIAN): Likewise.
-
- * tests/mktests.sh: Use grep instead of fgrep, as per
- "Limitations of Builtins".
-
-2002-06-15 Paul Eggert <eggert@twinsun.com>
-
- * tests/wrapsh.as (AUTOCONF, AUTOHEADER, AUTOM4TE, AUTOM4TE_CFG,
- autom4te_perllibdir): Set to top build dir or src dir as appropriate,
- so that we consistently test the just-built programs.
- * tests/wrappl.as: Likewise.
-
-2002-06-12 Paul Eggert <eggert@twinsun.com>
-
- * bin/autoconf.as (AUTOM4TE): Default to a fully qualified path
- name, so that symlinks to 'autoconf' work properly. Bug reported
- by Bruno Haible.
- * bin/autoheader.in (AUTOM4TE): Likewise.
- * bin/autoreconf.in (autoconf, autoheader): Likewise.
- * bin/autoscan.in (autom4te): Likewise.
- * bin/autoupdate.in (autom4te): Likewise.
-
- * lib/autoconf/functions.m4 (_AC_LIBOBJ_FNMATCH): Also check for
- btowc, to fix a portability bug with diffutils-2.8.2/lib/fnmatch.c
- on Solaris 2.5.1.
-
-2002-06-11 Andreas Schwab <schwab@suse.de>
-
- * doc/autoconf.texi: Add more dir entries.
-
-2002-06-10 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * bin/autom4te.in ($cache): Don't define using `$me', the name
- of the cache should not depend on the name under which autom4te
- was installed.
-
-2002-06-07 Akim Demaille <akim@epita.fr>
-
- * tests/tools.at (autoconf: forbidden tokens, basic)
- (autoconf: forbidden tokens, exceptions): Adjust to the change of
- words in autom4te.in.
-
-2002-06-07 Peter Eisentraut <peter_e@gmx.net>
-
- * lib/autoconf/c.m4 (AC_LANG_PROGRAM(C)): Use
- _AC_LANG_PROGRAM_C_F77_HOOKS.
-
-2002-06-07 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/functions.m4 (AC_REPLACE_FUNC_FNMATCH): Typo,
- rename as...
- (AC_REPLACE_FNMATCH): this.
- * tests/mktests.sh (exclude_list): Exclude AC_REPLACE_FNMATCH,
- AC_FUNC_FNMATCH_GNU.
-
-2002-06-07 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Systemology): Point to Tru64 docs, and the
- Rosetta Stone for Unix.
-
-2002-06-07 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (warn_forbidden): When rejecting a token,
- suggest m4_pattern_allow.
- Suggested by Adam J. Richter.
-
-2002-06-07 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Initialize
- ac_config_libobj_dir.
- (AC_CONFIG_LIBOBJ_DIR): New.
- * lib/autoconf/functions.m4 (_AC_FUNC_FNMATCH): Split into...
- (_AC_FUNC_FNMATCH_IF, _AC_LIBOBJ_FNMATCH): these.
- Use ac_config_libobj_dir to find the replacement files.
- (AC_FUNC_FNMATCH, AC_FUNC_FNMATCH_GNU): Split into...
- (AC_FUNC_FNMATCH, AC_FUNC_FNMATCH_GNU, AC_REPLACE_FNMATCH)
- (AC_REPLACE_FNMATCH_GNU): these.
- (AC_FUNC_GETLOADAVG): Use ac_config_libobj_dir.
- * doc/autoconf.texi (Particular Functions, Generic Functions): Adjust.
- * tests/mktests.sh (ac_exclude_list): Don't check
- AC_FUNC_GETLOADAVG as it requires getloadavg.c which is not shipped.
-
-2002-06-06 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_LINKS): Fall back on cp
- if ln doesn't work.
- * NEWS: Likewise.
- * doc/autoconf.texi (Configuration Links): Likewise.
- (Limitations of Usual Tools): Prefer $(LN_S) to ln -s || ln.
-
-2002-06-05 Paul Eggert <eggert@twinsun.com>
-
- * config/config.guess, config/config.sub, config/texinfo.tex:
- Update from masters.
-
-2002-05-29 Paul Eggert <eggert@twinsun.com>
-
- * bin/autom4te.in ($m4): Do not assume that egrep and fgrep exist.
- * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Likewise.
- * lib/autoconf/general.m4 (_AC_RUN_LOG_STDERR, AC_EGREP_CPP):
- Likewise.
- * lib/autoconf/Makefile.am (check-local): Likewise.
- * lib/autoconf/status.m4 (AC_CONFIG_HEADER): Likewise.
- * lib/autoconf/types.m4 (commentary only): Likewise.
- * lib/autotest/general.m4 (AT_INIT, AT_CHECK): Likewise.
- * lib/autotest/Makefile.am (check-local): Likewise.
- * lib/m4sugar/Makefile.am (check-local): Likewise.
- * tests/atspecific.m4 (AT_CONFIGURE_AC, AT_CHECK_DEFINES): Likewise.
- * tests/mktests.sh (egrep): New var; use it instead of plain egrep.
-
- * lib/autoconf/programs.m4 (AC_PROG_EGREP, AC_PROG_FGREP): New macros.
- * doc/autoconf.texi (Particular Programs): Document them.
- (Limitations of Usual Tools): Warn that egrep and fgrep may not exist.
- * NEWS: Likewise.
-
-2002-05-27 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/types.m4 (AC_TYPE_MBSTATE_T): New macro.
- * NEWS, doc/autoconf.texi (Particular Types): Document it.
- * lib/autoconf/functions.m4 (_AC_FUNC_FNMATCH): Require it
- instead of AC_MBSTATE_T, which never existed.
-
-2002-05-23 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Hosts and Cross-Compilation): Specify the
- version of Autoconf that is discussed.
-
-2002-05-22 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/fortran.m4 (AC_PROG_F77): Remove cf77 and cft77
- from the default list of compilers to try. Suggested by
- Kate Hedstrom.
- * NEWS: Document the above.
- * doc/autoconf.texi (Fortran 77 Compiler): Don't suggest cf77.
-
-2002-05-17 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/types.m4 (AC_CHECK_MEMBER): Work correctly even if
- the member is itself an aggregate. Bug reported by Sergey Poznyakoff.
- This improves on an earlier suggestion by H. Peter Anvin.
-
-2002-05-16 Paul Eggert <eggert@twinsun.com>
-
- AC_FUNC_FNMATCH now tests only for POSIX compatibility.
- AC_FUNC_FNMATCH_GNU also tests for GNU extensions.
- Both macros now accept an optional source-dir arg.
- New macro AC_GNU_SOURCE to define _GNU_SOURCE.
-
- * NEWS: Document this.
- * doc/autoconf.texi (Particular Functions, UNIX Variants): Likewise.
-
- * lib/autoconf/functions.m4 (_AC_FUNC_FNMATCH): New macro.
- (AC_FUNC_FNMATCH): Use it. Test only for POSIX conformance,
- not for GNU extensions; this undoes part of the 2000-11-03 change,
- reverting to 2.13-compatible behavior.
- Add new optional argument DIR.
- (AC_FUNC_FNMATCH_GNU): New macro.
-
- * lib/autoconf/specific.m4 (AC_GNU_SOURCE): New macro.
-
-2002-05-08 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/headers.m4 (AC_HEADER_TIOCGWINSZ):
- Don't require AC_SYS_POSIX_TERMIOS. The test is unnecessary,
- and it causes a 'test' syntax error if it fails.
- Bug reported by Stephen Gildea.
-
- * lib/autoconf/functions.m4 (AC_FUNC_SETVBUF_REVERSED):
- If prototypes are supported, use them to check this at compile-time,
- instead of trying to check it at run-time. If we must do a run-time
- check, assume that setvbuf is standard when cross-compiling, as
- nonstandard setvbuf occurs only on ancient and unlikely hosts.
- Bug reported by Paul D. Smith.
-
- * lib/autoconf/functions.m4 (AC_FUNC_GETLOADAVG): Add optional
- argument specifying location of getloadavg.c. This removes a
- FIXME. This idea was taken from Jim Meyering's implementation in
- textutils.
- * doc/autoconf.texi (Particular Functions): Document this.
- Also, mention HAVE_NLIST_H rather than NLIST_STRUCT, since
- that's what the code does; this fixes a bug reported by
- Paul D. Smith.
-
-2002-05-03 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.in (autoreconf): Rewrite to use Gettext's
- autopoint instead of gettextize.
- ($uses_alocal): Rename as...
- ($uses_aclocal): this.
- * doc/autoconf.texi (autoreconf Invocation): Adjust.
- Suggested by Bruno Haible.
-
-2002-05-03 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sugar.m4 (m4_map_sep): New.
-
-2002-04-29 Paul Eggert <eggert@twinsun.com>
-
- * bin/autoreconf.in (autoreconf): Don't age aclocal.m4's input
- files to be 1 second older; just set them to be the same time.
- Also, sleep 1 second after the first aclocal, to work around
- problems with sub-second time stamps on the input files.
-
-2002-04-29 Thien-Thi Nguyen <ttn@gnu.org>
-
- * doc/autoconf.texi: Mention "set -e -x" lossage
- under node "Limitations of Builtins".
-
-2002-04-29 Akim Demaille <akim@epita.fr>
-
- * doc/install.texi: Better wording for setting variables when
- running configure.
- From Christian Cornelssen.
-
-2002-04-29 Akim Demaille <akim@epita.fr>
-
- * tests/m4sh.at (LINENO): If testsuite itself is rewritten because
- of lack of $LINENO support, then the test will compare the $LINENO
- in testsuite vs. the lineno in the test file. This is wrong, of
- course.
- Be sure to protect it.
- Reported by Patrick Welche.
-
-2002-04-25 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Obsolete Macros): Typo.
- Reported by Vladimir Volovich.
-
-2002-04-25 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.in (autoreconf): Don't let aclocal.m4 be older
- than some of the input files, hence, on the second run of aclocal,
- if some of its input are younger, make them older.
- Suggested by Paul Eggert.
-
-2002-04-25 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Limitations of Usual Tools): sed and `!'.
- Thanks to Paul Eggert.
-
-2002-04-25 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Let ac_subst_files
- 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.
-
-2002-04-24 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.in (autoreconf): Run automake after autoconf and
- autoheader, so that automake does not complain about a missing
- config.h.in that was to be created.
-
-2002-04-23 Akim Demaille <akim@epita.fr>
-
- * bin/autoheader.in (parse_args): --warning takes an argument.
- Fixes PR/220.
-
-2002-04-22 Peter Eisentraut <peter_e@gmx.net>
-
- * lib/autoconf/general.m4 (_AC_RUN_IFELSE): Remove gmon.out
- and bb.out when cleaning up.
-
-2002-04-22 Akim Demaille <akim@epita.fr>
-
- Version 2.53a.
-
-2002-04-22 Akim Demaille <akim@epita.fr>
-
- * tests/m4sh.at (LINENO): Fix the Zsh skip pattern.
-
-2002-04-22 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Pretty Help Strings): Remove a spurious
- comma.
- Reported by Gregory Giannoni.
-
-2002-04-22 Akim Demaille <akim@epita.fr>
-
- * tests/m4sh.at (LINENO): Skip the test if LINENO cannot be unset.
- Fixes false failures on Darwin.
-
-2002-04-21 Paul Eggert <eggert@twinsun.com>
-
- * TODO, bin/autoupdate.in, doc/autoconf.texi,
- lib/autoconf/general.m4, lib/autoconf/libs.m4,
- lib/autoconf/status.m4, lib/m4sugar/m4sugar.m4, tests/m4sh.at,
- tests/tools.at: Minor spelling and grammar fixes.
-
-2002-04-20 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Shell Substitutions): Fix typos in yesterday's
- ZSH_VERSION fixes. Bug reported by Raja R Harinath.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
- * tests/atgeneral.m4 (AT_INIT): Likewise.
-
-2002-04-19 Paul Eggert <eggert@twinsun.com>
-
- * NEWS, TODO, bin/autom4te.in, bin/autoreconf.in, bin/autoupdate.in,
- doc/autoconf.texi, lib/freeze.mk, lib/Autom4te/Struct.pm,
- lib/autoconf/autoheader.m4, lib/autoconf/c.m4,
- lib/autoconf/functions.m4, lib/autoconf/general.m4,
- lib/autoconf/lang.m4, lib/autoconf/libs.m4, lib/autoscan/identifiers,
- lib/autotest/general.m4, lib/m4sugar/m4sh.m4, tests/atgeneral.m4,
- tests/atspecific.m4, tests/semantics.at, tests/torture.at:
- Minor spelling and grammar fixes.
-
- * doc/autoconf.texi: Follow the outline suggested in the GNU
- Sample Texts sections of the Texinfo 4.2 manual. Most
- importantly, this makes sure that the copyright notices appear in
- all output formats. You probably need Texinfo 4.2 to generate
- the manual now.
-
- Fix some bugs when using "$@" when there might be zero positional
- arguments in cases where this matters.
-
- * bin/autoconf.as: Rewrite so that the problem does not come up.
- * lib/autoconf/programs.m4 (AC_CHECK_PROG): Likewise.
- * lib/autoconf/status.m4 (AC_OUTPUT): Likewise.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
-
- * bin/autoheader.in: Use 'case' statement to work around problem.
- * bin/auto4mte.in: Likewise.
- * bin/autoreconf.in: Likewise.
- * bin/autoscan.in: Likewise.
- * bin/autoupdate.in: Likewise.
- * bin/ifnames.in: Likewise.
-
- * doc/autoconf.texi (Shell Substitutions): Document the problem.
-
- * lib/autotest/general.m4 (AT_INIT):
- Use Zsh alias to work around problem.
- * tests/atgeneral.m4 (AT_INIT): Likewise.
-
- * tests/c.at: We can't have zero arguments, so remove workaround
- that is not portable to Zsh.
-
-2002-04-19 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * bin/autoupdate.in (handle_autoconf_macros): Honor AU_DEFUNs
- from aclocal.m4 too.
-
-2002-04-12 Akim Demaille <akim@epita.fr>
-
- * tests/wrappl.as: New, M4sh precursor of wrappl.in.
-
-2002-04-10 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Install the Zsh
- 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.
-
-2002-04-09 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * doc/autoconf.texi (Limitations of Make): Mention the issue
- with indented comments in rules.
-
-2002-04-09 Andreas Schwab <schwab@suse.de>
-
- * lib/autoconf/status.m4 (_AC_SRCPATHS): Handle empty
- ac_top_builddir when setting ac_abs_top_builddir.
-
-2002-04-06 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (Systemology): Add link to Unix V7 online docs.
- (Portable Shell): Cross reference to Systemology.
-
-2002-04-05 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.in (autoreconf): Be sure to accumulate the
- directories when descending in a SUBDIRS.
- Reported by Ezra Peisach.
-
-2002-04-04 Andreas Schwab <schwab@suse.de>
-
- * lib/m4sugar/m4sh.m4 (_AS_PATH_WALK): Only simplify if path
- contains no literal separators.
-
-2002-04-03 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/status.m4 (_AC_CONFIG_FILE, _AC_CONFIG_HEADER)
- (_AC_CONFIG_COMMAND, _AC_CONFIG_LINK): New.
- Use dnl, not the KILL diversion.
- Extracted from...
- (AC_CONFIG_FILES, AC_CONFIG_HEADERS, AC_CONFIG_COMMANDS)
- (AC_CONFIG_LINKS): here.
- Adjust.
- Don't use the KILL diversion, as it kills spurious output, which
- results in failures being hidden.
- Use m4_defn where appropriate.
- (AC_CONFIG_IF_MEMBER): Kill the real bug: a spurious parenthesis
- after the second argument.
- Use m4_defn.
- * lib/autom4te.in (Autoconf, Autotest, M4sh): Don't pass --warning
- syntax, as it is provided by M4sugar.
- * tests/torture.at (Multiple AC_CONFIG_FILES): New.
-
-2002-04-03 Andreas Schwab <schwab@suse.de>
-
- * lib/m4sugar/m4sugar.m4 (m4_bmatch): Make sure m4_bregexp is not
- expanded if $# <= 2.
-
- * bin/autoreconf.in (autoreconf): Run automake after rerunning
- aclocal.
-
-2002-04-03 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/lang.m4 (_AC_COMPILER_OBJEXT_REJECT)
- (_AC_COMPILER_EXEEXT_REJECT): New.
- Also recognize *.bb and *.bbg as compilation byproducts.
- (_AC_COMPILER_EXEEXT_DEFAULT, _AC_COMPILER_EXEEXT_O)
- (_AC_COMPILER_OBJEXT): Use them.
- Fixes Debian #138666.
-
-2002-04-02 Peter Eisentraut <peter_e@gmx.net>
-
- Integrate AC_PROG_CC_STDC into AC_PROG_CC.
-
- * lib/autoconf/c.m4 (AC_PROG_CC_STDC): Rename to _AC_PROG_CC_STDC.
- AU_DEFUN old name. Use _AC_COMPILE_IFELSE.
- (AC_PROG_CC): Call _AC_PROG_CC_STDC.
- (AC_C_INLINE): Do not require AC_PROG_CC_STDC.
- (AC_C_CONST): Same.
- (AC_C_INLINE): Same.
- (AC_C_PROTOTYPES): Same. Require AC_PROG_CC instead.
- * doc/autoconf.texi, NEWS: Document.
- * tests/mktests.sh (au_exclude_list): Add AC_PROG_CC_STDC and
- AC_C_CROSS.
-
-2002-04-02 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Invoke
- _AS_MKDIR_P_PREPARE.
-
-2002-03-28 Kevin Ryde <user42@zip.com.au>
-
- * lib/autoconf/c.m4 (AC_C_INLINE): Test with a typedef return value,
- to avoid versions of HP C which don't allow that.
-
-2002-03-27 Paul Eggert <eggert@twinsun.com>
-
- * lib/m4sugar/m4sh.m4 (_AS_BASENAME_PREPARE): New macro.
- (AS_SHELL_SANITIZE): Invoke it.
- (AS_BASENAME): AS_REQUIRE it, and use $as_basename.
-
-2002-03-26 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Portable Shell): Add pointers to FAQs.
-
-2002-03-26 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Introduction): The GNATS base moved.
-
-2002-03-25 Paul Eggert <eggert@twinsun.com>
-
- * tests/m4sh.at: Don't rely on "PATH=test:$PATH test-1" working
- as POSIX requires, as it doesn't work with Zsh.
- * doc/autoconf.texi (Assignments): Document the problem.
-
-2002-03-25 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * doc/autoconf.texi (Limitations of Make): Mention more issue
- about VPATH, overriding of macros in sub-makes, and handling of
- SHELL.
-
-2002-03-21 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Here-Documents): Mention Solaris 8 dtksh
- problem with here-document buffer boundaries.
-
- * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Unset ENV and BASH_ENV
- when reinvoking the shell, to work around problems with installers
- who put strange things like "cd" commands in their environments.
-
-2002-03-19 Akim Demaille <akim@epita.fr>
-
- * tests/semantics.at (AC_C_BIGENDIAN): s/unknow/unknown/.
- From Aaron Ucko.
-
-2002-03-19 Akim Demaille <akim@epita.fr>
-
- * bin/autoscan.in (scan_file): Specify the location in `&used'
- invocations.
- From Nicolas Joly.
-
-2002-03-19 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi: Adjust @code/@command, @xref/@ref usage.
- From Nishio Futoshi.
-
-2002-03-19 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sugar.m4 (m4_define_default, m4_fst, m4_map): New.
-
-2002-03-18 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Programming in M4sh): Add AS_MKDIR_P.
- (Limitations of Usual Tools): Add mkdir section.
-
- * lib/m4sugar/m4sh.m4 (_AS_MKDIR_P_PREPARE): New macro.
- (AS_MKDIR_P): Require it. Use mkdir -p if available, falling
- back on AS_DIRNAME to compute prefixes otherwise; this is
- roughly what mkinstalldirs does. That way, we need not have
- our own filename disassembler. The old disassembler did not
- work with Solaris 8 dtksh, which is ksh Version M-12/28/93d.
-
- * lib/autotest/general.m4 (AT_INIT, AT_CLEANUP):
- Create at_test_all by a series of assignments,
- not by a single assignment of a long string. The latter causes ksh
- version 11/16/88g to silently misbehave on OpenServer 5.0.6a,
- presumably because of a buffer overrun.
-
-2002-03-14 Paul Eggert <eggert@twinsun.com>
-
- * lib/autotest/general.m4 (at_times_skip):
- Renamed from at_times. Now a boolean.
- ksh93 Version M-12/28/93d doesn't like 'x=times; $x'; it
- says 'times: not found'.
-
-2002-03-14 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.in (&study_gettextize): New.
- (&autoreconf): Handle newest gettextize.
- Rerun aclocal if needed.
- Suggested by Andreas Schwab.
-
-2002-03-13 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Special Shell Variables): More about IFS.
-
-2002-03-13 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Header Portability): New.
- Add information about stdint.h and inttypes.h from Paul Eggert.
-
-2002-03-13 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Some about `cp
- -p'.
- From Bob Proulx.
-
-2002-03-12 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sh.m4 (AS_BASENAME_EXPR): AS_REQUIRE, not
- m4_require.
-
-2002-03-11 Andreas Schwab <schwab@suse.de>
-
- * configure.ac: Explicitly check for EMACS since AM_PATH_LISPDIR
- does not do it if --with-lispdir is given.
-
-2002-03-08 Akim Demaille <akim@epita.fr>
-
- Version 2.53.
-
-2002-03-08 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Subdirectories): Clarify that the
- subdirectory should exist.
-
-2002-03-08 Akim Demaille <akim@epita.fr>
-
- * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
-
-2002-03-08 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (&handle_m4): Do not foreach with `$_' as it
- aliases the actual variables, and modifications of the former
- affect the latter.
-
-2002-03-08 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (&handle_m4): Protect us from corrupted file
- because of C-c: have m4 output in tmp files, then mv them.
-
-2002-03-08 Akim Demaille <akim@epita.fr>
-
- * bin/autoconf.in, bin/autoheader.in, bin/autom4te.in,
- * bin/autoreconf.in, bin/autoscan.in, bin/autoupdate.in,
- * bin/ifnames.in: Copyright update.
-
-2002-03-08 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Invoking autom4te): New.
-
-2002-03-05 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Specifying Names): Clarification suggested by
- Kevin Ryde.
-
-2002-03-05 Akim Demaille <akim@epita.fr>
-
- Version 2.52i.
-
-2002-03-04 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (AC_LIBOBJ vs. LIBOBJS): New.
- * lib/autoconf/general.m4 (AC_INIT): More informative error
- message for LIBOBJ.
-
-2002-03-04 Akim Demaille <akim@epita.fr>
-
- * lib/freeze.mk ($(build_libdir)/m4sugar/version.m4): New, for
- parallel builds.
-
-2002-03-04 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Transforming Names): Equality between 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.
-
-2002-03-04 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Evaluation Macros): New.
- * lib/m4sugar/m4sugar.m4 (m4_lquote): Remove, it is totally
- useless.
- (_m4_foreach): Define the variant with immediate evaluation so
- that it contains exactly the items, not an expression which
- evaluation is the current item.
- (m4_re_string, m4_re_word): Don't over quote them.
-
-2002-03-04 Akim Demaille <akim@epita.fr>
-
- Instead of having stacking `shift's evaluated at the end, let
- `foreach' loops immediately evaluate them.
-
- * lib/m4sugar/m4sugar.m4 (m4_quote, m4_dquote): Use $@ rather than
- $*. This is the n-th time I change my mind, but hopefully this is
- the last...
- (m4_lquote): New.
- (m4_text_wrap): Use m4_foreach, which is finally correct _and_
- efficient.
- (m4_foreach_quoted, m4_car_quoted, _m4_foreach_quoted): Remove, as
- it was only a hack for m4_text_wrap.
- (m4_car2): Remove, replaced by...
- (m4_cdr): New.
- (_m4_foreach): Adjust.
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Adjust, and use
- m4_bpatsubst for clarification.
-
-2002-03-04 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Changequote is Evil): New.
-
-2002-03-03 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (Portable Shell): Mention 32-byte #! length limit
- on old systems like SunOS.
-
-2002-03-01 Peter Eisentraut <peter_e@gmx.net>
-
- * lib/autoconf/c.m4, lib/autoconf/fortran.m4,
- lib/autoconf/functions.m4, lib/autoconf/general.m4,
- lib/autoconf/headers.m4, lib/autoconf/lang.m4,
- lib/autoconf/programs.m4, lib/autoconf/status.m4: Improve spelling
- of messages.
-
-2002-02-28 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Suggest a title to the
- message to be sent.
-
-2002-02-28 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (Function Portability): Add va_copy and va_list.
-
-2002-02-25 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/functions.m4 (AC_FUNC_SETPGRP): Fix the test.
- From Akinori Musha.
-
-2002-02-13 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * lib/Autom4te/XFile.pm (getline, getlines): New functions,
- translate \r\n to \n.
-
-2002-02-07 Akim Demaille <akim@epita.fr>
-
- Version 2.52h.
-
-2002-02-07 Akim Demaille <akim@epita.fr>
-
- Fix Autoconf PR/209.
- Also reported by Frank Denis.
-
- * lib/m4sugar/m4sh.m4 (_AS_PATH_WALK): Don't over quote.
-
-2002-02-07 Akim Demaille <akim@epita.fr>
-
- Fix Autoconf PR/207:
- 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.
-
-2002-02-07 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Limitations of Builtins): More about
- case/esac.
-
-2002-02-06 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_COMMANDS): Don't output empty
- case/esac, some shells don't support it.
- Reported by Zack Weinberg.
- * tests/torture.at (AC_CONFIG_COMMANDS with empty commands): New.
-
-2002-02-06 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): When handling --keywords, be
- sure not to introduce newlines in at_groups.
- * lib/autotest/Makefile.am (autotest.m4f): Typo.
-
-2002-02-06 Akim Demaille <akim@epita.fr>
-
- * tests/torture.at (Configuring subdirectories): Skip if aclocal
- is not available.
-
-2002-02-05 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Specific Compiler Characteristics):
- Describe HP-UX cc bug workaround more accurately.
- * lib/autoconf/types.m4 (AC_CHECK_SIZEOF): Cast to long,
- not unsigned long.
- * tests/semantics.at (AC_CHECK_SIZEOF): Check non-GCC
- cross-compilers, too. This undoes some of the most recent change
- to this file.
-
-2002-02-05 Akim Demaille <akim@epita.fr>
-
- * tests/Makefile.am (check_SCRIPTS): Use it, instead of WRAPPERS,
- to make sure they are up to date when `check' is run.
-
-2002-02-05 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Making testsuite Scripts): Document
- package.m4.
-
-2002-02-05 Akim Demaille <akim@epita.fr>
-
- * lib/freeze.mk: New.
-
-2002-02-05 Akim Demaille <akim@epita.fr>
-
- Implement `autom4te --freeze'.
-
- * bin/autom4te.in (&freeze): New.
- * lib/autoconf/autoconf.m4, lib/autotest/general.m4,
- * lib/m4sugar/m4sh.m4: Don't include files given by autom4te.
-
-2002-02-05 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (&parse_args): Implement `frozen files are
- optional are the sum of the previous files on the command line'.
- Also, pass `--reload-state=' on them, so...
- (handle_m4): don't.
- * lib/autom4te.in (Autotest, Autoconf): Rely on M4sh.
- (M4sh): Rely on M4sugar.
- (Autotest, M4sh, M4sugar): Use frozen files.
-
-2002-01-31 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_AC_INIT_PACKAGE): Accept $4.
- * doc/autoconf.texi (Initializing configure): Adjust.
-
-2002-01-30 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_AC_INIT_PACKAGE): Map non
- alphanumeric to `-' instead of `_'.
-
-2002-01-30 Akim Demaille <akim@epita.fr>
-
- * tests/semantics.at (AC_CHECK_SIZEOF): Split into two tests: one
- for plain code, the other for cross-compilation code. The latter
- is now run with GCC only.
- * doc/autoconf.texi (Compilers and Preprocessors): New.
-
-2002-01-30 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_AC_INIT_PACKAGE): Support pre-defined
- values.
- * doc/autoconf.texi (Initializing configure): Explain how to
- change AC_INIT default values.
-
-2002-01-29 Akim Demaille <akim@epita.fr>
-
- * tests/torture.at (Configuring subdirectories): Use configure.in,
- so that aclocal 1.4 works.
- Reported by Alexandre Duret-Lutz and Larry Schmitt.
-
-2002-01-28 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Writing testsuite.at): AT_CLEANUP no longer
- needs an argument.
-
-2002-01-28 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Don't be ridiculous: adjust
- AUTOTEST_PATH *after* it was set.
- Don't put `.' in the PATH: the user should be precise and `./' if
- needed. In addition, given that the test suite does some `cd', if
- `.' is in the path, the `tested programs' sections will report
- programs found in the test suite's directory, while during the
- tests (performed in their own directory), these programs are no
- longer visible. In other words, the results is confusing and
- useless.
- * tests/m4sh.at: Adjust: don't rely on `.' being in the PATH.
-
-2002-01-24 Akim Demaille <akim@epita.fr>
-
- Version 2.52g.
-
-2002-01-24 Akim Demaille <akim@epita.fr>
-
- * bin/autoheader.in, bin/autoconf.in, bin/autoscan.in,
- * doc/autoconf.texi: Finally add Akim as an author.
-
-2002-01-24 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Use PATH_SEPARATOR.
- (_AS_PATH_SEPARATOR_PREPARE): Don't expect $SHELL to be
- Bourne. Use /bin/sh.
- From Andreas Buening.
-
-2002-01-24 Akim Demaille <akim@epita.fr>
-
- * config/config.guess, config/config.sub, config/texinfo.tex:
- Update from masters.
-
-2002-01-24 Akim Demaille <akim@epita.fr>
-
- * Makefile.am (AUTOMAKE_OPTIONS): 1.5b.
- * config/auxdir.m4, config/cond.m4, config/depend.m4,
- * config/init.m4, config/install-sh.m4, config/lispdir.m4,
- * config/missing.m4, config/sanity.m4, config/select.m4,
- * config/strip.m4: Remove, to ease sync'ing with any version of
- Automake.
-
-2002-01-24 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS)
- (_AC_INIT_PREPARE): Support -n as --no-create, as documented.
- Reported by Geir Ove Myhr.
-
-2002-01-21 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/functions.m4 (AC_FUNC_MMAP): #Undef malloc.
-
-2002-01-21 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/General.pm (getopt): Use a more GNUish error
- message on invalid options.
- * bin/autom4te.in (parse_args): Don't use
- Autoconf::General::getopt with non valid options.
-
-2002-01-17 Jim Meyering <meyering@lucent.com>
-
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Initialize
- $ac_cv_exeext so we don't use an old, invalid, cached value.
-
-2002-01-11 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/functions.m4 (AC_FUNC_STRNLEN): New, from Jim
- Meyering.
- * doc/autoconf.texi (Function Portability): Document the strnlen
- limitation.
- (Particular Functions): Document AC_FUNC_STRNLEN.
- * lib/autoscan/functions: Adjust.
-
-2002-01-06 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Don't create
- package.m4, since is really depends upon configure.ac, not
- configure.
- * doc/autoconf.texi (testsuite Scripts): Adjust.
- * tests/Makefile.am (package.m4): New.
- EXTRA_DIST it since its a source.
-
-2002-01-06 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Move the AC_SUBST
- 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.
-
-2002-01-06 Akim Demaille <akim@epita.fr>
-
- * bin/autoscan.in (scan_file): Use `&used'.
-
-2002-01-03 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Output): Improved wording regarding use of
- AC_OUTPUT.
- From Olly Betts.
-
-2001-12-18 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (Function Portability): Add notes on sscanf
- sometimes needing writable input.
-
-2001-12-17 Jim Meyering <meyering@lucent.com>
-
- * doc/autoconf.texi (New Macros): Tweak wording.
-
-2001-12-14 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): We cleaning up the
- trailing files, don't apply `-rf' to files which might not be
- created by configure (core, core.*, and *.core), but just `rm -f'.
- Suggested by Jonathan Kamens.
-
-2001-12-14 Aaron M. Ucko <amu@alum.mit.edu>
-
- * lib/autoconf/general.m4: Avoid duplicates in `$ac_configure_args'.
-
-2001-12-14 Akim Demaille <akim@epita.fr>
-
- * Makefile.am (MAINTAINERCLEANFILES): Remove configure.
-
-2001-12-13 Peter Eisentraut <peter_e@gmx.net>
-
- * lib/autoconf/status.m4 (_AC_SRCPATHS): Rename buildpath to
- abs_builddir, top_buildpath to abs_top_builddir, srcpath to
- abs_srcdir, top_srcpath to abs_top_srcdir.
- (_AC_OUTPUT_FILES): Adjust.
- * NEWS, doc/autoconf.texi, lib/autoconf/autotest.m4,
- * tests/atspecific.m4, tests/autoreconf.in, tests/tools.at,
- * tests/wrappl.in, tests/wrapsh.in: Adjust.
-
-2001-12-12 Steven G. Johnson <stevenj@alum.mit.edu>
-
- * lib/autoconf/fortran.m4 (_AC_PROG_F77_V_OUTPUT): Fix failed
- C/Fortran linking on HP/UX, by extracting the Fortran library
- search path from the LPATH line in the $F77 -v output.
-
-2001-12-12 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (File Descriptors): Use a clearer layout for the
- forbidden file descriptors table.
-
-2001-11-26 Akim Demaille <akim@epita.fr>
-
- * bin/autoscan.in (%c_keywords): Build it at top level.
- Map to 1 in order to simplify its uses.
-
-2001-11-26 Akim Demaille <akim@epita.fr>
-
- * bin/autoscan.in (&scan_c_file, &scan_sh_file, &scan_makefile):
- Remove $filepath, useless.
- (&scan_makefile): Don't remove the $(FOO), ${FOO} and @FOO@
- variables, they are really part of the tokens.
- Split the input line on spaces and then look for tokens.
- Now autoscan ceases to ask for AC_PROG_LEX for the package Bison
- because of `lex$U.$(OBJEXT)'.
- (&scan_files): Use "@list" instead of join.
- * doc/Makefile.am (CLEANFILES): Add *.fns.
-
-2001-11-26 Akim Demaille <akim@epita.fr>
-
- * tests/autoreconf.in, tests/autom4te.in, tests/autoupdate.in:
- Remove, replaced by...
- * tests/wrappl.in: Be common for all the Perl executables.
- In particular autoscan and autoheader want -I.
- * configure.ac: Adjust.
- * lib/autoscan/headers: errno.h is portable.
-
-2001-11-26 Akim Demaille <akim@epita.fr>
-
- * bin/autoscan.in (used): New.
- Use it.
-
-2001-11-26 Akim Demaille <akim@epita.fr>
-
- * bin/autoscan.in (&scan_c_file): Better parsing of CPP
- directives.
- (&scan_sh_file): Remove a duplicate pattern.
- (&check_configure_ac): Use long options.
- * lib/autoscan/headers (alloca.h): Check with AC_FUNC_ALLOCA.
-
-2001-11-26 Akim Demaille <akim@epita.fr>
-
- * bin/autoscan.in (scan_c_file): Fix the handling of C comments.
- Before, having a line containing the opening of a multi line
- comment made the whole line be ignored.
-
-2001-11-26 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Using an Autotest Test Suite): New.
- (testsuite Scripts): Be one of its subsection.
- (Autotest Logs): New.
-
-2001-11-26 Akim Demaille <akim@epita.fr>
-
- Test groups are now run two directories deeper.
-
- * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Replace srcdir,
- top_srcdir and top_builddir with at_srcdir, at_top_srcdir and
- at_top_builddir.
- * lib/autotest/general.m4 (AT_INIT): Compute srcdir,
- top_srcdir, builddir and top_builddir.
- Use `at_*dir' relatively to the directory containing the
- suite, use `*dir' when relatively to the current group dir.
-
-2001-11-25 Joseph S. Myers <jsm28@cam.ac.uk>
-
- * doc/autoconf.texi, TODO, lib/autoconf/fortran.m4,
- lib/autoconf/functions.m4, lib/autoconf/headers.m4,
- tests/atgeneral.m4, tests/tools.at, tests/atspecific.m4: Fix
- spelling errors.
-
-2001-11-22 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * doc/autoconf.texi (Using System Type): Add an example of `case
- $host' usage so people quit using `case $target' everywhere.
-
-2001-11-22 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Installation Directory Variables): Englishoes
- spotted by Jim Meyering.
-
-2001-11-16 Paul Eggert <eggert@twinsun.com>
-
- This patch implements a `long double' suggestion by Oliver Kiddle.
-
- * lib/autoconf/c.m4 (AC_LANG_BOOL_COMPILE_TRY(C)): Make the array
- static, to catch errors if the value isn't known at compile-time
- and the compiler supports dynamic arrays. Change its name from
- `_array_' to `test_array' to avoid potential name clashes.
- (AC_C_LONG_DOUBLE): Make it a compile-time test, not a run-time
- test. Do not define HAVE_LONG_DOUBLE if `long double' is no
- better than double. Catch a bug in GCC 2.95.2 x86.
- * doc/autoconf.texi (C Compiler): Document the above.
- * NEWS: Likewise.
-
-2001-11-13 Akim Demaille <akim@epita.fr>
-
- * tests/m4sh.at (LINENO): Protect from autom4te's substitution by
- hand.
- * tests/tools.at: Don't protect dnl, AT_DATA_M4SH does.
-
-2001-11-13 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): After having run the test
- group, go back to the initial directory, not to at_suite_dir.
-
-2001-11-13 Akim Demaille <akim@epita.fr>
-
- * tests/atspecific.m4 (AT_DATA_M4SUGAR, AT_DATA_M4SH)
- (AT_DATA_AUTOCONF): Also protect @&t@ from autom4te.
- (AT_CHECK_AUTOCONF, AT_CHECK_AUTOHEADER): Pass no --include
- option.
- (AT_CHECK_CONFIGURE): Use absolute paths.
- (_AT_CHECK_AC_MACRO): Create aclocal.m4 with AC_STATE_SAVE in it.
- The problem is still the old one: there is no means in M4 (that I
- know about) to create a defining macro, because there is no means
- to create `$1' etc., therefore, the defining macro ``swallows''
- all the arguments meant to the defined macro.
-
-2001-11-13 Akim Demaille <akim@epita.fr>
-
- * tests/atspecific.m4 (AT_DATA_AUTOCONF): New.
- (AT_CONFIGURE_AC): Output the definition of AC_STATE_SAVE in
- configure.ac.
- * tests/aclocal.m4: Remove, as it is no longer used.
-
-2001-11-13 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4: Change `tests?' into `groups?' in
- variable names when referring to a single test group, or to
- `suite' when referring to the whole test suite.
- `at_last_test' is removed: m4 compute at_format itself.
- (at_stdout, at_stder1, at_stderr): New variables.
- (AT_CHECK): Use them.
-
-2001-11-13 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Be sure to put `.', relative,
- in PATH.
- Create `testsuite.dir/003/run' instead of `testsuite.003'.
- Do it as soon as a test fails, don't wait till the end of the test
- suite.
- Don't remove $as_me.[0-9]*, since these files no longer exist.
-
-2001-11-13 Akim Demaille <akim@epita.fr>
-
- * tests/tools.at: Use absolute paths, since we are no longer run
- in place.
-
-2001-11-13 Akim Demaille <akim@epita.fr>
-
- Now that tests are running in their own private dir, there is no
- need to list the files to remove at the end of tests groups.
-
- * lib/autotest/general.m4 (_AT_CLEANUP_FILE, AT_CLEANUP_FILES):
- (AT_data_files, at_data_files): Remove.
- (AT_CLEANUP, AT_DATA): Simplify.
- (AT_INIT): Adjust.
- Remove the group dir if !debug && !failed.
- * tests/atspecific.m4: Adjust.
-
-2001-11-13 Akim Demaille <akim@epita.fr>
-
- Start a new layout for Autotest: `testsuite' creates
- `testsuite.dir' in which the at-check-line etc. files are to be
- found, and `testsuite.dir/003' where the test group 3 is run.
-
- * lib/autotest/general.m4 (AT_INIT): at_tests_dir,
- at_check_line_file, at_format, at_test_normalized, at_group_dir
- are new variables.
- Create the directories.
- Use absolute paths for at- files.
- (AT_CHECK): Adjust.
-
-2001-11-11 Michael Matz <matz@kde.org>
-
- * m4sugar.m4 (_m4_foreach): Make it linear instead quadratic.
- (m4_car2): New.
- (m4_car): Properly quote arguments.
-
-2001-11-13 Akim Demaille <akim@epita.fr>
-
- * tests/aclocal.m4 (AC_STATE_SAVE): s/LIBOBJS/LIB@&t@OBJS/ to cope
- with stricter rules on LIBOBJS.
-
-2001-11-12 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/c.m4 (AC_C_PROTOTYPES): Define __PROTOTYPES too.
- * doc/autoconf.texi (C Compiler): AC_C_PROTOTYPES now defines
- __PROTOTYPES too.
-
-2001-11-12 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/functions.m4 (AC_FUNC_GETMNTENT): Use AC_CHECK_FUNCS.
-
-2001-11-12 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/c.m4, lib/autoconf/fortran.m4,
- * lib/autoconf/functions.m4, lib/autoconf/general.m4,
- * lib/autoconf/headers.m4, lib/autoconf/libs.m4,
- * lib/autoconf/programs.m4, lib/autoconf/specific.m4,
- * lib/autoconf/types.m4: When invoking AC_DEFINE and friends,
- specify to what the macro should be defined (typically to 1).
-
-2001-11-12 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/functions.m4 (AC_FUNC_STRTOD): AC_SUBST POW_LIB.
- From Jim Meyering.
-
-2001-11-12 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/programs.m4 (_AC_PROG_LEX_YYTEXT_DECL): Use
- AC_TRY_EVAL to run $LEX, not AC_TRY_COMMAND. This validates the
- definition used by Automake where LEX is +/- "${missing} lex" and
- `missing' itself contains variables.
-
-2001-11-12 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Push KILL at the end.
- Now that M4sh pushes BODY, the comments were output at the end of
- the test suites.
-
-2001-11-08 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.in (&autoreconf): Run aclocal before tracing, so
- that we can trace macros from aclocal.m4.
- Trace AC_PROG_LIBTOOL, not AM_PROG_LIBTOOL, since the latter is
- obsoleted, and redirect to the former anyway.
- Reported by Ralf Corsepius.
-
-2001-11-08 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.in (&autoreconf): AC_CONFIG_SUBIDRS are to be
- processed only if present.
- * tests/torture.at (Configuring subdirectories): Use autoreconf
- instead of successive calls to autoconf.
- Add a nonexistent subdirectory to exercise the patch above.
- Reported by Ralf Corsepius.
-
-2001-11-08 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (Limitations of Usual Tools): Note HP-UX cc
- doesn't accept .S files.
-
-2001-11-07 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sugar.m4 (m4_pattern_forbid): Accepts $2.
- * lib/autoconf/general.m4 (AC_INTI): Forbid LIBOBJS.
- (_AC_LIBOBJ): s/LIBOBJS/LIB@&t@OBJS/.
- * bin/autom4te.in (warn_forbidden): New.
- (handle_output): Use it.
- Read m4_pattern_forbid with messages.
-
-2001-11-05 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (--normalize): Remove.
- * lib/autom4te.in: Adjust.
-
-2001-11-05 Akim Demaille <akim@epita.fr>
-
- * tests/Makefile.am (testsuite): Rename this target as...
- ($(TESTSUITE)): this.
- From Nicolas Joly.
-
-2001-11-05 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): When removing
- the --prefix option, also remove it's argument.
-
-2001-11-05 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (testsuite Invocation): Update.
- (Writing testsuite.at): Update.
-
-2001-11-03 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi: s/@code/@command/ where appropriate.
-
-2001-11-03 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/General.pm: (&catfile, &canonfile)
- (&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.
-
-2001-11-03 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/General.pm (@export_vars, @export_subs)
- (@export_forward_subs): New.
- Add basename, dirname, and fileparse.
- (@EXPORT): Adjust.
- * bin/autoreconf.in (&autoreconf): Fix call to fileparse.
- Don't look for aclocal flags if we already know aclocal is not
- used.
- Move aclocal.m4t only if it exists.
- Reported by Ezra Peisach.
-
-2001-11-03 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.in (&parse_args): Work only on the configure.ac
- passed on command line, defaulting to ./configure.ac if present.
- (&maybe_autoreconf, File::Find): Remove, unused.
- (&autoreconf): If autoconf is not used, don't try to trace.
-
-2001-11-02 Akim Demaille <akim@epita.fr>
-
- * configure.ac: Bump to 2.52g.
-
-2001-11-02 Akim Demaille <akim@epita.fr>
-
- Version 2.52f.
-
-2001-11-02 Akim Demaille <akim@epita.fr>
-
- * config/config.guess, config/config.sub, doc/standards.texi:
- * config/lispdir.m4: Update from masters.
- * configure.ac: Bump to 2.52f.
-
-2001-11-02 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.in (&autoreconf): Set `$aclocal_flags' to ''.
- Don't run aclocal when aclocal.m4 is not from aclocal.
- From Ezra Peisach.
- Don't run libtoolize and gettextize if --install is not given.
-
-2001-11-01 Paul Eggert <eggert@twinsun.com>
-
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): _AS_CR_PREPARE needs to
- be invoked before _AS_LINENO_PREPARE.
- (_AS_LINENO_PREPARE): Use as_cr_digits and as_cr_alnum rather
- than character ranges.
-
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Fix NLS before
- invoking AS_BASENAME. Set the locale variables to 'C' if
- possible, as POSIX requires this to get the traditional
- behavior.
- * doc/autoconf.texi (Special Shell Variables): Describe the above.
-
-2001-10-31 Paul Eggert <eggert@twinsun.com>
-
- * lib/m4sugar/m4sh.m4 (_AS_LINENO_WORKS): Do not surround body
- with {}, as that triggers a bug in Bash 2.05.
-
- (_AS_LINENO_PREPARE): Use Sed rather than
- Awk. Fix the sed prepass to work even if there are multiple
- instances of $LINENO on the same line. Do not substitute for
- other variables like $LINENOT. Do not check file dates; such a
- check is unreliable on sufficiently fast machines, and removing
- the check makes the code simpler and more reliable. Check for
- output and chmod failures.
-
- * doc/autoconf.texi (Special Shell Variables): Document
- the above.
-
-2001-10-31 Akim Demaille <akim@epita.fr>
-
- * tests/Makefile.am (atconfig): Remove this target, Automake
- handles it now.
-
-2001-10-31 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Do not
- AC_CONFIG_FILES(atlocal) as it means a file atlocal.in *must* be
- provided, while it is optional.
- * configure.ac: Adjust.
-
-2001-10-26 Paul Eggert <eggert@twinsun.com>
-
- * NEWS, README, configure.ac, lib/Autom4te/General.pm,
- lib/Autom4te/Struct.pm:
- Require Perl 5.005_03 instead of just 5.005, as some tests fail
- with 5.005_02.
-
- * doc/autoconf.texi (Special Shell Variables): Document some
- more LINENO gotchas, particularly with respect to the Awk+Sed hack.
-
- * lib/m4sugar/m4sh.m4 (_AS_LINENO_WORKS): New macro.
- (_AS_LINENO_PREPARE): Use it instead of shell eval, since
- eval $LINENO is not portable in practice.
-
-2001-10-24 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/General.pm (backname): New.
-
-2001-10-24 Akim Demaille <akim@epita.fr>
-
- * m4/: Remove, merged into...
- * config/: here.
-
-2001-10-23 Tim Van Holder <tim.van.holder@pandora.be>
-
- * doc/autoconf.texi (Shellology): Mention the problems with bash
- 2.05's use of ANSI quoting in its `set' builtin.
-
-2001-10-22 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/functions.m4 (AC_FUNC_STRERROR_R):
- Rename ac_cv_func_strerror_r_works to ac_cv_func_strerror_r_char_p,
- and rename HAVE_WORKING_STRERROR_R to STRERROR_R_CHAR_P, since
- POSIX decided to standardize on the int flavor of strerror_r.
- Always do char* test, as there's no reason not to.
- Assign to a char* var, to catch strerror_r that returns int*.
-
- * doc/autoconf.texi (Particular Functions):
- Document the above changes. Also, document the fact that
- AC_FUNC_STRERROR_R defines HAVE_DECL_STRERROR_R.
-
- * NEWS: Mention HAVE_WORKING_STRERROR_R -> STRERROR_R_CHAR_P.
-
-2001-10-20 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): The name of
- the executable was missing from the log.
-
-2001-10-20 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/General.pm (&update_file): If destination is
- 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.
-
-2001-10-20 Akim Demaille <akim@epita.fr>
-
- * bin/autoheader.in ($localdir, $m4, $SIMPLE_BACKUP_SUFFIX):
- Remove, dead.
- * bin/autoreconf.in (&autoreconf): Do not run gettextize when
- `intl' is already present, as it refuses unless --force.
- (&parse_args): Use -I, --include instead of the old Autoconf
- options.
- ($localdir, $autoconf_dir): Remove.
- (@include): New.
- (&maybe_autoreconf): New, to preserve $_ for File::Find.
-
-2001-10-19 Jens Petersen <petersen@redhat.com>
-
- * lib/autoconf/programs.m4 (AC_PROG_AWK): Prefer gawk to mawk.
- * doc/autoconf.texi (Particular Programs): Likewise.
-
-2001-10-19 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_FILES): Name the generated
- file in @configure_input@.
- Don't mention `automatically' in addition to `generated'.
- * tests/torture.at (#define header templates): Adjust.
-
-2001-10-19 Akim Demaille <akim@epita.fr>
-
- * lib/emacs/autoconf-mode.el, lib/emacs/autotest-mode.el: In a
- comment, explain how to install automatic mode selection.
- From Russ Allbery.
-
-2001-10-19 Ezra Peisach <epeisach@zif.mit.edu>
-
- * bin/autoreconf.in (autoreconf): Display the path to the
- configure.ac being studied.
-
-2001-10-18 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/types.m4 (AC_CHECK_SIZEOF): Cast sizeof to unsigned
- long, to work around a bug in the HP C compiler version HP92453-01
- B.11.11.23709.GP.
-
- * lib/m4sugar/m4sh.m4 (AS_DIRNAME): Use 'dirname' if that works.
- (AS_BASENAME_EXPR): New macro.
- (AS_BASENAME_SED): Do not assume GNU sed semantics.
- (AS_BASENAME): Use 'basename' if that works; then try 'expr';
- and fall back on 'sed' only if the other two fail. This makes
- AS_BASENAME act more like AS_DIRNAME.
- (as_me): Shell-quote the argument of AS_BASENAME, in case $0
- contains white space.
- * lib/autoconf/general.m4 (_AC_INIT_SRCDIR):
- Use AS_DIRNAME, since I think it's now DOS-friendly.
- * tests/m4sh.at (DIRNAME_TEST): New arg $3.
- Allow "dirname //FOO" to return either / or //, as POSIX allows
- either behavior.
-
-2001-10-10 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Recognize
- `a_out.exe' for OpenVMS 7.1, DEC C 5.5 compiler, via GNV.
- From Eric Sharkey.
-
-2001-10-10 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sh.m4 (_AS_ECHO_N_PREPARE): m4_defun, not
- m4_define, since...
- (_AS_ECHO_N): AS_REQUIREs it.
-
-2001-10-10 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_AC_INCLUDES_DEFAULT_REQUIREMENTS)
- (AC_INCLUDES_DEFAULT): Move to...
- * lib/autoconf/headers.m4: here.
- * lib/autoconf/types.m4: Comment changes.
- * doc/autoconf.texi: Specify where the default includes are used
- in the macro prototypes.
-
-2001-10-09 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/autoconf.m4 (m4_patsubst, m4_regexp): New
- transition code.
-
-2001-10-08 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.in (&autoreconf): Remove debugging code.
- (&parse_args): Pass verbosity/debugging options to subtools when
- --debug, not when --verbose.
- * lib/autom4te.in (Autoreconf-preselections): New.
- (Autoconf): Use it.
-
-2001-10-08 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.in (autoreconf): Run libtoolize when appropriate.
-
-2001-10-08 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (autoreconf Invocation): Adjust.
- * bin/autoreconf.in (autoreconf): Run gettextize when appropriate.
-
-2001-10-08 Akim Demaille <akim@epita.fr>
-
- * tests/tools.at (AT_CHECK_PERL_SYNTAX): Check autoreconf.
- (Syntax of the shell scripts): Don't.
- * bin/autoheader.in, bin/autom4te.in, bin/autoreconf.in: Don't
- bother with $force since...
- * lib/Autom4te/General.pm: does.
-
-2001-10-08 Akim Demaille <akim@epita.fr>
-
- * bin/autoreconf.in: Rewrite in Perl.
- * configure.ac: Adjust.
- * lib/Autom4te/General.pm (&up_to_date_p): New.
- * bin/autom4te.in (&up_to_date_p): Use it.
- Rename as...
- (&up_to_date): this.
-
-2001-10-08 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sugar.m4 (m4_case, m4_bmatch, m4_normalize)
- (m4_list_cmp): Use $0 to reinvoke yourself.
- (m4_patsubsts): New.
- (m4_strip, m4_version_unletter): Use it.
- * tests/atspecific.m4 (AT_DATA_M4SUGAR, AT_DATA_M4SH): Likewise.
-
-2001-10-08 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/autoconf.m4, lib/autoconf/general.m4,
- * lib/autoconf/libs.m4, lib/autoconf/status.m4,
- * lib/autoconf/types.m4, lib/autotest/general.m4,
- * lib/m4sugar/m4sh.m4, lib/m4sugar/m4sugar.m4, tests/atspecific.m4,
- * tests/torture.at: Rename m4_regexp, m4_patsubst, and m4_match to
- m4_bregexp, m4_bpatsubst, and m4_bmatch.
- * doc/autoconf.texi (Redefined M4 Macros): Adjust.
-
-2001-10-08 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sh.m4: Use AS_REQUIRE.
-
-2001-10-08 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sh.m4 (AS_DIRNAME_EXPR): Use AS_REQUIRE.
- * tests/tools.at (AT_DATA_FORBIDDEN): Rename/move/duplicate to...
- * tests/atspecific.m4 (AT_DATA_M4SUGAR, AT_DATA_M4SH): here.
- * tests/tools.at, tests/m4sh.at: Use it.
- * tests/m4sh.at: Don't rely on Autoconf macros.
- (DIRNAME_TEST): Also exercise the expr variant.
- * tests/m4sugar.at, tests/atspecific.m4 (AT_CHECK_M4SUGAR): The
- preferred M4sugar extension is now `.4s'.
- * tests/README: Remove.
-
-2001-10-08 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sugar.m4 (m4_provide_ifelse): Rename as...
- (m4_provide_if): this.
- * lib/m4sugar/m4sh.m4 (AS_REQUIRE): New.
- * lib/autoconf/general.m4 (AS_DEFUN, AC_DEFUN_ONCE, AC_BEFORE)
- (AC_REQUIRE, AC_PROVIDE, AC_PROVIDE_IFELSE): Be exact copy of the
- M4sugar peer, i.e., drop the `AC_PROVIDE_$1' broken marker.
-
-2001-10-08 Akim Demaille <akim@epita.fr>
-
- Use `add-log-current-defun-function' for ChangeLog creation.
- Suggested by Tom Tromey.
-
- * lib/emacs/autotest-mode.el (autotest-mode-map): New.
- (autotest-mode): Adjust.
- * lib/emacs/autoconf-mode.el (autoconf-mode-map): Modernize, map
- 'comment-region onto `C-c ;'.
- Comments are `#', not `dnl'.
- (autoconf-current-defun): New.
- (autoconf-font-lock-keywords): Recognize `m4_defun'.
-
-2001-10-08 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_m4_divert(BODY)): Move to...
- * lib/m4sugar/m4sh.m4: here.
- (AS_INIT): Push the BODY diversion, set the #! /bin/sh line.
- * lib/autoconf/general.m4 (AC_PLAIN_SCRIPT) : Remove.
- (AT_INIT): Replace AC_PLAIN_SCRIPT with AS_INIT invocation,
- include handle the m4_pattern_*, no longer push the
- BODY diversion nor set the /bin/sh line, AS_INIT does it.
- * lib/autotest/general.m4 (AT_INIT): Likewise.
- * tests/base.at: Adjust the tests to use AS_INIT.
- * tests/tools.at (AT_DATA_FORBIDDEN): New.
- (autoconf: forbidden tokens): Adjust to work on M4sh instead of
- Autoconf.
-
-2001-10-07 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (config.status Invocation):
- CONFIG_SHELL defaults to a shell that supports LINENO if available.
-
- * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): If the current
- shell does not support LINENO, and if CONFIG_SHELL is unset or
- empty, and if we can find a shell that does support LINENO,
- then set CONFIG_SHELL to that shell and then re-execute
- ourselves with CONFIG_SHELL.
-
-2001-10-05 Paul Eggert <eggert@twinsun.com>
-
- * tests/Makefile.am (clean-local): Don't invoke $(TESTSUITE) if it
- doesn't exist. Remove *.tmp, as a .tmp file is created during the
- build of $(TESTSUITE).
-
-2001-10-05 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Look in the path
- iff we are a bareword.
- Reported by Raja R Harinath.
-
-2001-10-05 Akim Demaille <akim@epita.fr>
-
- * tests/m4sh.at (LINENO): New.
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Be sure to set
- PATH_SEPARATOR before using it.
- Fix the absolute path case/esac pattern.
- Provide $0 as fallback for as_myself.
- Reported by Raja R Harinath.
-
-2001-10-05 Akim Demaille <akim@epita.fr>
-
- * Makefile.am, config/Makefile.am, lib/emacs/Makefile.am,
- * m4/Makefile.am, man/Makefile.am: Add/adjust MAINTAINERCLEANFILES.
-
-2001-10-05 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): New, extracted from...
- (AS_SHELL_SANITIZE): here. Use it.
- (_AS_LINENO_PREPARE): Preserve the exit status of $0.lineno.
- From Paul Eggert.
-
-2001-10-04 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Use a portable
- combination of Awk and sed to replace $LINENO.
-
-2001-10-02 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Limitations of Builtins): You can't use
- "source"; it's not portable. Remove confusing and
- somewhat-incorrect example involving "." and "/".
-
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): "source" -> ".", for
- compatibility with POSIX shells.
-
-2001-10-02 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Just source 40.lineno
- instead of exec'ing to preserve $0 and $@.
-
-2001-10-01 Akim Demaille <akim@epita.fr>
-
- * tests/testsuite (AT_INIT) <at_pass_list>: New.
- Don't run twice the same test.
-
-2001-10-01 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT) <--help>: Catch up with reality.
- No longer output the list of tests.
- <--list>: New option.
- <--full-help>: Remove.
- Complete the short/long options duality.
- Various small adjustments.
-
-2001-10-01 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi: Use @kbd for user input.
- Always use `$' as shell prompt.
-
-2001-09-30 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/status.m4 (AC_OUTPUT_MAKE_DEFS):
- Don't use nested parenthesization. This patch was originally
- suggested to bug-autoconf by Philippe De Muyter on 2000-05-28,
- but somehow it didn't get incorporated then.
- * doc/autoconf.texi (Limitations of Usual Tools):
- Clarify remark about sed and nested parenthesization.
-
- * lib/autoconf/types.m4 (AC_CHECK_SIZEOF):
- Report an error if the size cannot be determined even though
- the type exists.
- * lib/autoconf/general.m4 (_AC_COMPUTE_INT_COMPILE):
- Check for `expr' arithmetic overflow, and for compilation failure,
- and invoke a new argument $4 if either is discovered.
- This makes _AC_COMPUTE_INT_COMPILE more like _AC_COMPUTE_INT_RUN.
- (_AC_COMPUTE_INT): Pass IF-FAILS arg to _AC_COMPUTE_INT_COMPILE.
-
-2001-09-28 Akim Demaille <akim@epita.fr>
-
- * lib/emacs/autoconf-mode.el, lib/emacs/autotest-mode.el: New.
- * m4/lispdir.m4: New.
- * aclocal.m4, configure.ac: Adjust.
-
-2001-09-28 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_VICTIMS): Rename as...
- (AT_TESTED): this.
- (AT_INIT): More the wrapped section to where it will be expanded.
- Output `AT_tested' only when existing.
- Catch unexpanded PACKAGE_STRING and PACKAGE_BUGREPORT.
-
-2001-09-27 Akim Demaille <akim@epita.fr>
-
- Fix the passing of $? to ACTION-IF-FAILED in AC_TRY_RUN, that
- 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.
-
-2001-09-27 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Fix bugs spotted by
- Raja R Harinath:
- Be sure to detect when $LINENO always returns the same value.
- Look for the original script, basename($0) is certainly not
- enough.
- Pass the CLI arguments to `$as_me.lineno'.
-
-2001-09-25 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Dump the whole config.log.
- Be sure the close and reopen the LOG fd before and after using tee
- to extend the log.
- <at_tests_pattern>: Adjust to the new format of at_help_all.
-
-2001-09-23 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (parse_args): There can be several invocations
- of --language now.
-
-2001-09-23 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Top): Wrap in @ifnottex.
-
-2001-09-23 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/status.m4 (_AC_SRCPATHS): Compute and provide
- 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.
-
-2001-09-23 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Common Shell Constructs): Rename as...
- (Programming in M4sh): this.
- Promote to @section.
-
-2001-09-23 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Dump config.log last.
- Pass $at_debug_args to the rerun test suite.
- * lib/m4sugar/Makefile.am (DISTCLEANFILES): New.
- * bin/Makefile.am (ETAGS_SH): Don't use characters ranges.
- From Paul Eggert.
-
-2001-09-23 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (@my_warning): Remove, handled by `autom4te.cfg'.
-
-2001-09-23 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Fix shell
- over-escaping.
-
-2001-09-23 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/General.pm (&debug): New.
- * bin/autom4te.in ($language): Move to...
- (parse_args): here.
- Handle --language in languages.
- * lib/autom4te.in (Automake-selections, Autoheader-selections)
- (Autoscan-selections): New.
- (Autoconf): Adjust.
-
-2001-09-23 Tim Van Holder <tim.van.holder@pandora.be>
-
- * m4/auxdir.m4, m4/cond.m4, m4/depend.m4, m4/init.m4,
- * m4/install-sh.m4, m4/missing.m4, m4/sanity.m4, m4/strip.m4: Updated
- to match current versions from CVS Automake.
-
-2001-09-23 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * doc/autoconf.texi (Special Shell Variables): Add pdksh output
- for $LINENO.
-
-2001-09-22 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/autotest.m4: Create `package.m4'.
- * tests/Makefile.am (package.m4): Remove.
-
-2001-09-22 Akim Demaille <akim@epita.fr>
-
- Rely on `$LINENO' when possible instead of `__oline__'.
-
- * 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.
-
-2001-09-21 Tim Van Holder <tim.van.holder@pandora.be>
-
- * lib/autoconf/functions.m4 (_AC_FUNC_FORK): Replaceded an 8-bit
- character (u: -> ue) in a code comment.
- (AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Only run 'ln -s' if we know
- it works.
-
-2001-09-21 Akim Demaille <akim@epita.fr>
-
- * Makefile.maint (AUTOM4TE): Neutralize autom4te.
- Suggested by Jim Meyering.
-
-2001-09-20 Tim Van Holder <tim.van.holder@pandora.be>
-
- * lib/autoconf/programs.m4: Use extensions listed in
- $ac_executable_extensions when looking for programs.
-
-2001-09-20 Tim Van Holder <tim.van.holder@pandora.be>
-
- * lib/autoconf/general.m4: Fix a small Englisho.
- * lib/autoconf/status.m4: Fix a small typo. Handle DOS paths when
- setting up ac_dir_suffix and ac_top_builddir.
- * lib/m4sugar/m4sh.m4: Default CDPATH to $PATH_SEPARATOR, not ':'.
-
-2001-09-20 Tim Van Holder <tim.van.holder@pandora.be>
-
- * doc/autoconf.texi (File System Conventions): Clarify the use of
- PATH_SEPARATOR.
- (Special Shell Variables[PATH_SEPARATOR]): Ditto.
- (Special Shell Variables[CDPATH]): Mention that $PATH_SEPRATOR should
- be used instead of ':'.
- * lib/autotest/general.m4: Replace occurrences of ':' in
- AUTOTEST_PATH with $PATH_SEPARATOR at test suite startup.
-
-2001-09-20 Tim Van Holder <tim.van.holder@pandora.be>
-
- * tests/atgeneral.m4: Add basic support for test ranges (e.g. 7-34) as
- arguments. Fixed a typo.
-
-2001-09-20 Tim Van Holder <tim.van.holder@pandora.be>
-
- * man/Makefile.am (.x.1): Use @PATH_SEPARATOR@, not ':' to set up
- $PATH. Also set AUTOM4TE_CFG, so we can process autom4te properly.
-
-2001-09-20 Tim Van Holder <tim.van.holder@pandora.be>
-
- * bin/autoscan.in: Add 'exec-perl-if-not-run-by-perl'.
- * bin/autoupdate.in: Ditto.
- * bin/autoheader.in: Reworded a few comments.
- * bin/autoconf.in: Reworded help text for a few options.
- * bin/autoheader.in, bin/autom4te.in, bin/autoreconf.in,
- * bin/autoscan.in, bin/autoupdate.in: Ditto.
-
-2001-09-20 Tim Van Holder <tim.van.holder@pandora.be>
-
- * lib/Autom4te/XFile.pm (open): Simplified the error message (we
- already have $file). Set output files to binary mode (helps avoid
- CR issues on DOSish systems).
-
-2001-09-19 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4: Englishoes.
- From Tim Van Holder and Alexey Mahotkin.
-
-2001-09-18 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Common Shell Constructs): New node,
- documenting AS_DIRNAME.
- (Limitations of Usual Tools): Refer to it when discussing dirname.
- Also, update discussion of POSIX standard to reflect latest draft.
-
- * lib/autoconf/c.m4:
- (AC_LANG_INT_SAVE(C)): Also support negative values, down to LONG_MIN.
-
- * lib/autoconf/general.m4 (_AC_COMPUTE_INT_COMPILE):
- Do not pass a first argument with leading '-'
- to expr, by parenthesizing initial integers that might be negative.
-
- * doc/autoconf.texi (Particular Functions): AC_FUNC_GETPGRP
- now merely checks whether it is an error to pass an argument
- to getpgrp.
-
- * lib/autoconf/functions.m4 (_AC_FUNC_GETPGRP_TEST): Remove.
- (AC_FUNC_GETPGRP): Don't bother with a runtime test. Just check
- whether it is a (compile-time) error to pass an argument to
- getpgrp. This simpler test supports the revised documentation,
- and is all that AC_FUNC_GETPGRP's users really need.
-
-2001-09-18 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Limitations of Make) <$<>: New.
-
-2001-09-18 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Limitations of Usual Tools) <find>: More about
- `{}'.
- * lib/autotest/general.m4 (AT_INIT): Adjust.
-
-2001-09-18 Paul Wagland <paul@wagland.net>
-
- * tests/m4sh.at: Ensure that AS_DIRNAME handles '/', '//' and '///'
- correctly.
- Add test for AS_BASENAME.
- * lib/m4sugar/m4sh.m4: Fix AS_BASENAME so that it passes the previous
- added test. It now correctly handles /1/2/3/, returning '3' not ''.
- Added AS_BASENAME_SED to make the interface the same as AS_DIRNAME.
- * tests/base.at: Fixed the expected responses. The old ones were
- one line out...
- * lib/autoconf/general.m4: Fixed AC_PREFIX_PROGRAM, it now behaves as
- the documentation claims it should (and how it behaved in 2.13).
-
-2001-09-18 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): No INIT-CMDS in
- the AC_CONFIG_COMMANDS invocation.
- This also solves the name clash problems.
- Don't set the package's ID.
- * lib/m4sugar/Makefile.am (version.m4): Revamp.
- No longer to be shipped.
- (version.in): Remove.
- * lib/m4sugar/m4sugar.m4, lib/autoconf/general.m4,
- * lib/autoconf/status.m4: Adjust.
- Use `m4_PACKAGE_STRING'.
- * lib/autotest/general.m4 (AT_INIT): N-th signature change: now
- the only optional argument is the name of the test suite.
- Expect `package.m4' to define the package signature.
- * lib/autom4te.in (Autotest): Add `package.m4?'.
- * tests/Makefile.am (package.m4): New.
- * tests/suite.at: ifnames is a victim.
-
-2001-09-18 Akim Demaille <akim@epita.fr>
-
- * lib/autom4te.in (Autoconf): Preselect AM_CONDITIONAL,
- AC_LIBSOURCE, AC_CONFIG_FILES.
- * lib/autotest/general.m4 (AT_INIT): Don't abort when a tested
- program version string doesn't match the package's.
- * lib/autoconf/general.m4 (AC_CACHE_VAL): Reestablish the space
- after `(cached)'.
-
-2001-09-17 Paul Eggert <eggert@twinsun.com>
-
- * lib/autoconf/c.m4: (AC_LANG_INT_SAVE(C)):
- Allow expression to return any value that can fit into unsigned long
- (not int, as before). Check for output errors.
-
-2001-09-17 Bruno Haible <haible@ilog.fr>
-
- * lib/autoconf/c.m4: (AC_LANG_INT_SAVE(C)):
- Always include <stdio.h> and <stdlib.h>. Evaluate
- the expression in an extra function before these includes. Call
- fprintf "%d" only after ensuring the argument is of type 'int'.
- Reported by Wayne Chapeskie <waynec@spinnaker.com>.
-
-2001-09-17 Paul Eggert <eggert@twinsun.com>
-
- Fix bug reported by Paul Townsend on AIX 4.3.3.0 with CFLAGS=-O4
- or CFLAGS=-O5. In that case, the linker has a relaxed view of
- fatal errors, and AC_CHECK_LIB causes it to include libraries even
- when they don't exist.
-
- * lib/autoconf/headers.m4 (AC_HEADER_DIRENT): Use AC_SEARCH_LIBS,
- not AC_CHECK_LIB, so that we don't use -ldir or -lx if we don't
- need it.
-
- * lib/autoconf/specific.m4 (AC_ISC_POSIX): Replace the old, crufty
- version with the version used by fileutils 4.1, except use
- AC_SEARCH_LIBS, not AC_CHECK_LIB, so that we don't use -lcposix if
- we don't need it.
-
- * doc/autoconf.texi (AC_ISC_POSIX): Describe new behavior.
-
-2001-09-13 Akim Demaille <akim@epita.fr>
-
- * tests/base.at, tests/m4sh.at: Be sure to issue the bangshe line
- _first_.
- Reported by Gerrit P. Haase.
-
-2001-09-13 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Reset `AT_victims' so that
- m4_defn'ing is valid.
-
-2001-09-13 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sugar.m4 (m4_append_uniq): New.
- * lib/autotest/general.m4 (AT_VICTIMS, AT_KEYWORDS, _AT_CLEANUP_FILE):
- Use it.
-
-2001-09-13 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sugar.m4 (_AS_QUOTE_IFELSE, _AS_BOX_INDIR): Use
- m4_match.
- (m4_re_escape): New.
- * lib/autoconf/status.m4 (AC_CONFIG_IF_MEMBER): Use it.
- * lib/autoconf/general.m4 (AC_CACHE_SAVE): Use m4_match.
- * lib/autoconf/status.m4 (AC_CONFIG_IF_MEMBER, AC_CONFIG_LINKS):
- Likewise.
- * lib/autoconf/types.m4 (_AC_CHECK_TYPE_REPLACEMENT_TYPE_P)
- (_AC_CHECK_TYPE_MAYBE_TYPE_P, AC_CHECK_MEMBER): Likewise.
- * lib/autotest/general.m4 (AT_INIT): Rename AT_TESTS_ALL as
- AT_tests_all for consistency.
- Set at_victims.
- (AT_VICTIMS): Similar to AT_KEYWORDS.
- (_AT_CLEANUP_FILE_IF): Use m4_match and m4_re_escape.
-
-2001-09-13 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Fix stupid bugs.
-
-2001-09-13 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Create and remove
- `$as_me.[0-9]+' instead of `debug-[0-9]+.sh', so that multiple
- test suites can cohabit.
-
-2001-09-13 Akim Demaille <akim@epita.fr>
-
- * tests/mktests.sh: Don't output banners for empty test files.
-
-2001-09-13 Akim Demaille <akim@epita.fr>
-
- Test suites can be run independently of configure.
-
- * lib/m4sugar/m4sh.m4 (_AS_ECHO, _AS_ECHO_N_PREPARE): New.
- * lib/autoconf/programs.m4 (_AC_PROG_ECHO): Remove.
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Adjust: AC_SUBST
- ECHO_N etc.
- * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Don't ask for at_n
- and at_c.
- * lib/autotest/general.m4: Use ECHO_*.
-
-2001-09-13 Akim Demaille <akim@epita.fr>
-
- * bin/ifnames.in: Rewrite in Perl.
- * configure.ac: Don't look for AWK.
- * tests/tools.at (AWK portability): Remove.
- (Syntax of the shell scripts): Don't check ifnames.
- (AT_CHECK_PERL_SYNTAX): New.
- (Syntax of the Perl scripts): Check ifnames.
- * tests/ifnames: New.
-
-2001-09-13 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Let --keywords also match
- test group titles.
- * tests/atspecific.m4 (AT_CHECK_AU_MACRO): AT_KEYWORDS(autoupdate).
- Remove all the other keywords.
-
-2001-09-10 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Remove the diversion HELP and
- SETUP: no longer used.
- Support -k, --keywords.
- <at_help>: Be `no', `short', or `long'.
- <at_help_all>: New variable.
- (AT_KEYWORDS): New.
- (AT_CLEANUP_FILE_IFELSE, AT_CLEANUP_FILE): Rename as...
- (_AT_CLEANUP_FILE_IF, _AT_CLEANUP_FILE): these.
- (_AT_CLEANUP_FILE_IF): Simplify the regexp.
- (AT_SETUP): Reset AT_line, AT_keywords, AT_description.
- No longer fill the HELP diversion.
- (AT_CLEANUP): Use them.
- * lib/m4sugar/m4sugar.m4 (m4_append): Support a separator.
- (m4_list_append): Remove.
-
- Spread a few keywords in the Autoconf test suite.
-
-2001-09-10 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Don't pass
- PATH_SEPARATOR, let M4sh compute it.
- * lib/m4sugar/m4sh.m4 (_AS_PATH_SEPARATOR_PREPARE): New.
- * lib/autoconf/programs.m4 (AC_SHELL_PATH_WALK): Use PATH_SEPARATOR.
- Move to...
- * lib/m4sugar/m4sh.m4 (_AS_PATH_WALK): Here.
- Simplify when the path is not a literal.
- (AS_UNAME): Use it to report PATH.
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE_FS_SEPARATORS): Remove.
- (_AC_INIT_DEFAULTS): AC_SUBST PATH_SEPARATOR.
- * lib/autoconf/programs.m4 (AC_PROG_INSTALL): Use _AS_PATH_WALK.
- * lib/autotest/general.m4 (AT_INIT): Use _AS_PATH_WALK to
- normalize the path, and to look for victims.
- * tests/semantics.at (AC_PATH_PROG & AC_PATH_PROGS)
- (AC_CHECK_PROG & AC_CHECK_PROGS): Use PATH_SEPARATOR.
-
-2001-09-07 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (&handle_m4): `< /dev/null' so that GNU M4 1.5
- doesn't neutralize SIGINT, making autoconf etc. non interruptible.
- * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Move the package
- related variables into `at_package_*'.
- * lib/autotest/general.m4 (AT_VICTIMS): New.
- (AT_INIT): Adjust for stand-alone/embedded test suites.
- (AS_MESSAGE_LOG_FD): Define and use it.
- * tests/suite.at (AT_VICTIMS): Use it.
- * tests/tools.at (autoupdating AC_PREREQ): Don't depend upon
- at_version.
-
-2001-09-07 Akim Demaille <akim@epita.fr>
-
- Move toward possibly stand-alone test suites.
-
- * lib/autotest/general.m4: Stop displaying srcdir everywhere as,
- in addition, it introduces useless differences in logs.
- (AT_INIT): Let atconfig and atlocal be both optional.
- Adjust PATH computation.
- * lib/m4sugar/m4sh.m4 (AS_UNAME): More readable display of PATH.
-
-2001-09-07 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/Makefile.am (autoconf.m4f): Depends upon
- m4sugar/version.m4.
-
-2001-09-05 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/c.m4 (AC_LANG_BOOL_COMPILE_TRY(C)): Use `_array_'
- to avoid GCC warnings.
- From Uwe Seimet.
-
-2001-09-05 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in: --language is -l, not -s.
-
-2001-09-05 Akim Demaille <akim@epita.fr>
-
- Be ready to handle filenames as stupid as `dnl.at', for if even
- the maintainer is dumb enough to do that...
-
- * lib/autotest/general.m4 (AT_SETUP, AT_LINE): Demonstrates your
- excellence in M4 quotation: consider `__file__' is active.
-
- And BTW, when invoking m4, pass the --include in the right order:
- the wrong one.
-
- * bin/autom4te.in, bin/autoupdate.in: Use reverse when kingtal to
- 4m.
-
-2001-09-05 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/XFile.pm: New lib file.
- * bin/autoupdate.in, bin/autoscan.pl, bin/autom4te.in,
- * bin/autoheader.in: Use it.
-
-2001-09-05 Akim Demaille <akim@epita.fr>
-
- * bin/autoupdate.in (&handle_m4_macros) <unm4.m4>: Undefine iff
- defined.
-
-2001-09-05 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/General.pm (&getopt): Work around the `-' Getopt bug.
- * bin/autoheader.in, bin/autoupdate.in (&parse_args): Adjust.
-
- * bin/autoscan.in: Use `getopt' and `find_files' etc.
- Add -I, --include support.
- * doc/autoconf.texi (autoscan Invocation): Adjust.
-
-2001-09-05 Akim Demaille <akim@epita.fr>
-
- CVS GNU M4 doesn't like `undefine(undefined)'.
-
- * 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'.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- Version 2.52d.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Fix the
- previous patch.
- * tests/atspecific.m4 (AT_CHECK_AUTOHEADER): Can create `config.hin~'.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): DU 5.0 has
- serious problems handling heredocs in heredocs.
- Reported by Nicolas Joly.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi: Don't promote non `m4_*' M4 macros.
- (Making testsuite Scripts): Update.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * lib/Makefile.am (CLEANFILES): Add autom4te.cfg.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Quadrigraphs): Document `@&t@'.
- (testsuite Scripts): There is no such thing as `atconfig.in'.
- And actually one diagram is missing: test suite runtime.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/General.pm (&find_file): Browse the includes in the
- inverse order.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * bin/autoupdate.in (@include): `installcheck' revealed the path
- to m4sugar was lacking!
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * man/Makefile.am (.x.1): We really have to pass
- autom4te_perllibdir.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Don't pass all the args to
- debug scripts, in particular passing explicitly listed tests to
- run is stupid.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (&parse_args): Strip `.' from `@include'.
- * 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.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * tests/semantics.at (AC_C_BIGENDIAN): Missing eol.
- * bin/autoheader.in (%symbol): Strip arguments of macros.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi: Catch up -I, --include changes.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (&parse_args): Die on unknown languages.
- * bin/autoheader.in: Run directly autom4te --mode=autoconf, no
- need for autoconf.
- Promote --include over --macrodir and other obsolete options.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/General.pm ($version, $help, &getopt): New.
- * bin/autoupdate.in, bin/autoheader.in, bin/autom4te.in: Use them.
- * bin/autom4te.in ($autoconf): Pass --force.
- `print $out' doesn't print `$_' but `$out'.
- * tests/tools.at (Syntax of the Perl scripts): Pass the lib dir.
- (autoheader): Pass --force since the test suite goes too fast for
- the time stamps.
- Adjust to the new autoheader messages.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * bin/autoheader.in: Handle the acconfig.h etc. junk files.
- Check the completeness of the #template.
- * lib/Autom4te/General.pm (&update_file): s/remove/unlink/.
- * tests/semantics.at (AC_C_BIGENDIAN): Adjust AT_CHECK_AUTOHEADER
- invocation.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/General.pm (&find_file, &update_file): New.
- * bin/autoupdate.in, bin/autoheader.in: Adjust.
- Drop AC_MACRODIR dead for real.
- * tests/atspecific.m4 (AT_CHECK_AUTOHEADER): Now autoheader says
- `autoheader: `config.hin' is created'.
- * tests/tools.at (Syntax of the Perl scripts): Check autoheader.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * bin/autoheader.in: Rewrite in Perl.
- * tests/autoheader: Adjust.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * bin/autoconf.in (--include, -I): New option.
- Map --localdir, --autoconf-dir onto it.
- Forward autom4te's options instead of interpreting them.
- * bin/autoconf.in, bin/autoheader.in (AC_MACRODIR, autoconf_dir):
- There is no such envvar since the inception of autom4te.cfg.
- * bin/autom4te.in (&parse_args): Uniquify `@include'.
- * bin/autoupdate.in: Adjust, and perform more control.
- * tests/atspecific.m4 (AT_CHECK_AUTOCONF): Adjust.
- * tests/autoconf: Dittowise.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * bin/autoconf.in: Don't bother with `acsite.m4' and `aclocal.m4'.
- * bin/autom4te.in (&find_file): Support `FILE?' standing for
- optionally `FILE'.
- Use -e, not -f, since /dev/null for instance is OK.
- (&parse_args): Adjust.
- * lib/autom4te.in (Autoconf): Add `acsite.m4?' and `aclocal.m4?'.
-
-2001-08-31 Akim Demaille <akim@epita.fr>
-
- * configure.ac: Also find tested executables in bin.
- * bin/autoconf.in, bin/autoheader.in, bin/autoreconf.in,
- * bin/autoscan.in, autoupdate.in: Use exclusively the name of the
- installed peer executables, only PATH is allowed to resolve it.
- Pass `autoconf_dir' via options, not via invisible envvars.
- * lib/Autom4te/General.pm (&find_peer): Remove.
- * lib/autotest/general.m4 (AT_INIT): `AUTOTEST_PATH=a:b' gives
- `abuild:asrc:bbuild:bsrc', not `abuild:bbuild:asrc:bsrc'.
- * man/Makefile.am: Let help2man rely on PATH instead of trying to
- find the executables for it.
- * tests/Makefile.am: Major cleanup. Too lazy to document...
- * tests/atlocal.in: Remove all the obscure envvar manipulations.
- We only need PERL.
- * tests/atspecific.m4, tests/tools.at: Passing --localdir is
- indeed related to running the test suite, while passing
- --autoconf-dir and others is related to running non installed
- Autoconf executables. So don't do that, leave it to...
- * tests/autoconf, tests/autoheader, tests/autom4te, tests/autoupdate,
- * tests/autoscan: New.
- * tests/atspecific.m4 (AT_CHECK_M4SUGAR, AT_CHECK_M4SH): Don't
- refer to library files: rely on --language.
-
-2001-08-29 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in, lib/autom4te.in, bin/autoconf.in:
- s/--set/--language/.
-
-2001-08-29 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi: Strip the @nodes.
- Suggested by Paul Eggert.
- (Initializing configure): Typo.
-
-2001-08-29 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (&handle_output): s/@__@/@&t@/.
- Suggested by Paul Eggert.
-
-2001-08-29 Akim Demaille <akim@epita.fr>
-
- * Makefile.maint (do-po-update): Wget refuses to overwrite files:
- download in a tmp dir.
-
-2001-08-29 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4: s/AT-devnull/devnull/ since there are
- case insensitive OSes out there :(
- From Tim Van Holder.
-
-2001-08-29 Akim Demaille <akim@epita.fr>
-
- * lib/autom4te.in: New.
- * lib/Makefile.am (edit, autom4te.cfg): New.
- * bin/autom4te.in (BEGIN): Simplify.
- Rely on `AC_MACRODIR' in addition of `autom4te_perllibdir'.
- (&load_configuration): New. Use it.
- (&parse_args): Support --mode, --set, and --melt.
- * bin/autoconf.in: Simplify and adjust.
- * tests/Makefile.am (AUTOMAKE): Use --set.
- * tests/atlocal.in: Adjust.
- * BUGS: distcheck and check are weak.
-
-2001-08-29 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4: Use
- foo=`(command) 2>/dev/null`
- not
- foo=`command` 2>/dev/null
- (at-devnull): Rename as...
- (AT-devnull): this.
- (--clean): Remove AT-* files too.
- * doc/autoconf.texi (Limitations of Usual Tools): Document `date'.
- Reported by Nicolas Joly.
-
-2001-08-28 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Don't use single
- quotes inside single quotes.
- Reported by Nicolas Joly.
-
-2001-08-28 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (Function Portability): Mention C right shifts.
-
-2001-08-27 Tim Van Holder <tim.van.holder@pandora.be>
-
- * lib/autotest/general.m4: Reword some messages.
- (AT_INIT): Check for the `times' builtin before using it.
- Support test ranges as arguments to the testsuite.
- Have -e imply -d as the help text suggested.
-
-2001-08-27 Akim Demaille <akim@epita.fr>
-
- * Makefile.maint: Formatting changes.
- (do-po-update, po-update, cvs-update, update): New targets.
- (AMTAR): Remove.
-
-2001-08-27 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT) <at_cmd_line>: Remove.
- <at_cmd_line>: New.
- Pass it to debug-*.sh scripts.
- <AUTOTEST_PATH>: May contain absolute dir names.
-
-2001-08-27 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Log the command line.
- Support `VAR=VAL' as arguments.
- Compute PATH _after_ the options processing, so that AUTOTEST_PATH
- may be set via the command line.
-
-2001-08-27 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): $2 defaults to $1.
- * lib/autotest/autotest.m4 (AT_INIT): Expand AUTOTEST_PATH into
- first the build dirs, then the src dirs.
- * configure.ac (AC_CONFIG_TESTDIR): Adjust.
-
-2001-08-27 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Output the definition of
- at_data_files earlier.
- (--clean, -c): New option.
- * tests/Makefile.am: Use this option.
-
-2001-08-27 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/status.m4 (_AC_SRCPATHS): Rename `ac_dots' as
- `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.
-
-2001-08-27 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Input) <AC_INIT>: Move to..
- (Initializing configure): this new node.
-
-2001-08-27 Akim Demaille <akim@epita.fr>
-
- * Makefile.am (EXTRA_DIST): INSTALL.txt is a dead hack.
-
-2001-08-27 Akim Demaille <akim@epita.fr>
-
- * m4/atconfig.m4 (AT_CONFIG): Remove, replaced by...
- * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): this.
- New file.
- * m4/Makefile.am (EXTRA_DIST): Oops, adjust...
-
-2001-08-27 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (AU_DEFINE, AU_DEFUN, AU_ALIAS): Move
- to...
- * lib/autoconf/autoheader.m4: this new file.
- * lib/autoconf/general.m4 (AH_OUTPUT, AH_VERBATIM)
- (_AH_VERBATIM_OLD, AH_TEMPLATE, _AH_TEMPLATE_OLD, AH_TOP, AH_BOTTOM):
- Move to...
- * lib/autoconf/autoupdate.m4: this new file.
-
-2001-08-27 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/status.m4 (_AC_SRCPATHS): New.
- (_AC_OUTPUT_LINKS, _AC_OUTPUT_FILES, _AC_OUTPUT_SUBDIRS): Use it.
- Standardize the var names (ac_sub_srcdir -> ac_srcdir, ac_subdir
- -> ac_dir).
- (_AC_OUTPUT_HEADERS): AS_DIRNAME always return a dir name.
- * lib/autoconf/general.m4 (_AC_INIT_HELP): Ditto.
-
-2001-08-27 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/autoconf.m4 (AC_CONFIG_COMMANDS)
- (AC_CONFIG_COMMANDS_POST, AC_CONFIG_COMMANDS_PRE, AC_CONFIG_FILES)
- (AC_CONFIG_HEADER, AC_CONFIG_HEADERS, AC_CONFIG_IF_MEMBER)
- (AC_CONFIG_LINKS, AC_CONFIG_SUBDIRS, AC_FILE_DEPENDENCY_TRACE)
- (AC_LINK_FILES, AC_LIST_COMMANDS, AC_LIST_COMMANDS_COMMANDS)
- (AC_LIST_FILES, AC_LIST_FILES_COMMANDS, AC_LIST_HEADERS)
- (AC_LIST_HEADERS_COMMANDS, AC_LIST_LINKS, AC_LIST_LINKS_COMMANDS)
- (AC_OUTPUT, AC_OUTPUT_COMMANDS, AC_OUTPUT_COMMANDS_POST)
- (AC_OUTPUT_COMMANDS_PRE, AC_OUTPUT_MAKE_DEFS)
- (_AC_CONFIG_COMMANDS_INIT, _AC_CONFIG_DEPENDENCIES)
- (_AC_CONFIG_DEPENDENCY, _AC_CONFIG_UNIQUE, _AC_LINK_FILES_CNT)
- (_AC_LIST_SUBDIRS, _AC_OUTPUT_COMMANDS, _AC_OUTPUT_COMMANDS_CNT)
- (_AC_OUTPUT_COMMANDS_INIT, _AC_OUTPUT_CONFIG_STATUS)
- (_AC_OUTPUT_FILES, _AC_OUTPUT_HEADERS, _AC_OUTPUT_LINKS)
- (_AC_OUTPUT_SUBDIRS): Move to...
- * lib/autoconf/status.m4: this new file.
- * lib/autoconf/general.m4, lib/autoconf/Makefile.am: Adjust.
- * tests/Makefile.am, tests/suite.at: Adjust.
-
-2001-08-27 Akim Demaille <akim@epita.fr>
-
- Automake 1.5.
-
- * Makefile.am (AUTOMAKE_OPTIONS): Add 1.5 and dist-bzip2.
- (AMTAR): Help automake define it.
- (INSTALL, install-data-hook): The INSTALL.txt trick is no longer
- needed, 1.5 can have a macro and a target with the same name.
- * m4/auxdir.m4, m4/cond.m4, m4/depend.m4, m4/install-sh.m4,
- * m4/strip.m4: New.
- * m4/init.m4, m4/sanity.m4: Update.
- * doc/Makefile.am (CLEANFILES): 1.5 knows the texi2dvi files.
- * lib/autoconf/Makefile.am, lib/autotest/Makefile.am,
- * lib/m4sugar/Makefile.am, lib/autoscan/Makefile.am,
- * lib/Autom4te/Makefile.am, man/Makefile.am: Use dist/nodist.
-
-2001-08-27 Akim Demaille <akim@epita.fr>
-
- Provide a mean to ``AC_PREREQ'' for M4sugar, M4sh and Autotest.
-
- * lib/autoconf/version.in: Remove.
- * lib/m4sugar/version.in: New.
- * lib/m4sugar/m4sugar.m4 (m4_acversion, m4_version_prereq): New.
- Adjust callers.
- * bin/autoupdate.in: Distinguish M4sugar vs. Autoconf macros by
- the name of the directory they're in, instead of the filename,
- since version.m4 is now in m4sugar, but m4_acversion must not be
- classified as an Autoconf macro.
- ($input_m4): Don't qualify the path to m4sugar.
- Rather, pass autoconf_dir to m4.
- * tests/Makefile.am (testsuite): Remove -I top_srcdir, unneeded.
- * tests/suite.at: Require 2.52c.
-
-2001-08-27 Akim Demaille <akim@epita.fr>
-
- testsuite.log should include config.log.
-
- * lib/autotest/autotest.m4: New.
- * lib/autotest/general.m4, tests/atspecific.m4: Adjust.
- * tests/suite.at : Adjust.
- (AT_INIT): Log config.log.
- * lib/m4sugar/m4sugar.m4 (m4_text_box): New.
- * lib/m4sugar/m4sh.m4 (_AS_BOX_LITERAL): Adjust.
- * lib/autoconf/general.m4 (_AC_INIT_CONFIG_LOG): Use them.
- (_AC_INIT_PREPARE): Fix the incredibly messy and buggy completion
- of config.log on traps.
- (_AC_OUTPUT_CONFIG_STATUS): Use AS_BOX.
- Use consistently `_ACEOF' for configure's here docs, and `_CSEOF'
- for config.status'.
- Open the log as soon as possible.
- Use the same log introduction as configure's.
-
-2001-08-22 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Indices): New node.
- Move indices out of the top level menu and into this submenu.
-
-2001-08-22 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/programs.m4 (_AC_PROG_LEX_YYTEXT_DECL): Use
- AC_TRY_COMMAND.
- (AC_DECL_YYTEXT): Fix the previous patch: it points to AC_PROG_LEX.
-
-2001-08-22 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (AC_SHELL_PATH_WALK, AC_CHECK_PROG)
- (AC_CHECK_PROGS, AC_PATH_PROG, AC_PATH_PROGS, AC_CHECK_TOOL_PREFIX)
- (AC_PATH_TOOL, AC_CHECK_TOOL, AC_CHECK_TOOLS): Move to...
- * lib/autoconf/programs.m4: here.
- * lib/autoconf/specific.m4 (_AC_PROG_ECHO, AC_PROG_MAKE_SET)
- (AC_PROG_RANLIB, AC_PROG_YACC, AC_PROG_LEX, _AC_DECL_YYTEXT)
- (AC_PROG_INSTALL, AC_PROG_LN_S, AC_RSH): Move to...
- * lib/autoconf/programs.m4: here.
- (_AC_DECL_YYTEXT): Rename as...
- (_AC_PROG_LEX_YYTEXT_DECL): this.
- * lib/autoconf/autoconf.m4, lib/autoconf/Makefile.am
- * tests/Makefile.am, tests/suite.am: Adjust.
-
-2001-08-22 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (AC_LIST_MEMBER_OF, AC_LINKER_OPTION):
- Move to...
- * lib/autoconf/fortran.m4 (_AC_LIST_MEMBER_IF, _AC_LINKER_OPTION):
- here.
- * lib/autoconf/general.m4 (AC_TRY_LINK_FUNC): Move to...
- * lib/autoconf/functions.m4: here.
- * lib/autoconf/general.m4 (AC_SEARCH_LIBS, AC_CHECK_LIB)
- (AH_CHECK_LIB): Move to...
- * lib/autoconf/libs: this new file.
- * lib/autoconf/specific.m4 (_AC_PATH_X_XMKMF, _AC_PATH_X_DIRECT)
- (_AC_PATH_X, AC_PATH_X, AC_PATH_XTRA): Move to...
- * lib/autoconf/libs.m4: here.
- * lib/autoconf/autoconf.m4, lib/autoconf/Makefile.am: Adjust.
-
-2001-08-22 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sh.m4 (AS_MKDIR_P): Fail if fails.
- * lib/autoconf/general.m4 (_AC_OUTPUT_SUBDIRS): Adjust.
- (AC_SITE_LOAD): Better logging of config.site.
-
-2001-08-20 Akim Demaille <akim@epita.fr>
-
- * configure.ac (AT_CONFIG): Fix the path.
- * m4/atconfig.m4 (AT_CONFIG): Don't use EOF but ATEOF so that 2.52
- can be used.
-
-2001-08-20 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Prepare the cross-compile
- program with AC_LANG_PROGRAM before feeding it to
- AC_COMPILE_IFELSE. Cleanup grep usage.
-
-2001-08-20 Akim Demaille <akim@epita.fr>
-
- * ChangeLog, ChangeLog.0, ChangeLog.1, ChangeLog.2, AUTHORS, BUGS,
- * NEWS, README, README-alpha, TODO, tests/README: This package is
- `Autoconf', not `autoconf' (the executable).
-
-2001-08-20 Akim Demaille <akim@epita.fr>
-
- Info readers seem to need `Index' in the index node title :(
-
- * doc/autoconf.texi: Reverse the 2001-08-15 change which
- simplified index node names.
-
-2001-08-20 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_AC_INIT_PACKAGE): Warn if the
- arguments are not literals.
- * doc/autoconf.texi (Input) <AC_INIT>: Arguments must be literals.
- Specify the output variables, and macros defined.
-
-2001-08-20 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Examining Declarations) <AC_TRY_CPP>:
- (Examining Syntax) <AC_TRY_COMPILE>
- (Examining Libraries) <AC_TRY_LINK>
- (Test Programs) <AC_TRY_RUN>: These macros double quote some of
- their arguments.
- Reported by Werner Lemberg.
-
-2001-08-20 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Compute top_builddir,
- top_srcdir and srcdir from at_topbuild_2_topsrc and at_testdir.
- Load atlocal late enough to dump it in the log.
- * m4/atconfig.m4 (AT_CONFIG): Pass them to atconfig.
-
-2001-08-20 Akim Demaille <akim@epita.fr>
-
- * tests/torture.at (Configuring subdirectories): New test.
- * lib/autoconf/general.m4 (_AC_INIT_SRCDIR): Say what you are
- looking for.
- * m4/atconfig.m4: Be sure the let $[0] be expandable.
- (top_srcdir): Fix its computation.
-
-2001-08-20 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/general.m4 (_AC_OUTPUT_COMMANDS): Say what you do.
- * m4/atconfig.m4 (AT_CONFIG): $1 is now the directory where the
- test suite lives.
- Create `atconfig' automagically.
- Configure atlocal.in if present.
- * tests/atconfig.in: Remove.
- * tests/atlocal.in: New.
- * tests/Makefile.am: Adjust.
-
-2001-08-20 Akim Demaille <akim@epita.fr>
-
- Huh!?!?! There are still some user EOF tags used, which prevents
- their use in AC_CONFIG_COMMANDS for instance...
-
- * lib/autoconf/general.m4, lib/autoconf/specific.m4,
- * lib/autotest/general.m4: Rename the EOF tags as `_ACEOF',
- `_CSEOF', or `_ATEOF', as appropriate.
- * lib/m4sugar/Makefile.am, lib/autoconf/Makefile.am,
- * lib/autotest/Makefile.am (check-local): Enforce this constraint.
-
-2001-08-20 Akim Demaille <akim@epita.fr>
-
- * tests/base.at, tests/m4sh.at, tests/m4sugar.at,
- * tests/semantics.at, tests/tools.at, tests/torture.at:
- s/^AT_DATA\(([^][]+),/AT_DATA([$1],/.
-
-2001-08-20 Akim Demaille <akim@epita.fr>
-
- Autotest invokes M4sh's initialization.
-
- * lib/autotest/general.m4: Adjust the diversion names.
- (AT_INIT): Run AS_INIT.
- Use the BINSH diversion to invoke /bin/sh.
- * tests/base.at, tests/m4sh.at, tests/m4sugar.at, tests/tools.at:
- * tests/torture.at: Respect M4sugar and M4sh macro name spaces.
-
-2001-08-20 Akim Demaille <akim@epita.fr>
-
- Let M4sh have its own diversions.
-
- * lib/autoconf/general.m4 (_m4_divert(BINSH), _m4_divert(REVISION))
- (_m4_divert(NOTICE)): Rename as...
- * lib/m4sugar/m4msh.m4 (_m4_divert(BINSH), _m4_divert(HEADER-REVISION))
- (_m4_divert(HEADER-COMMENT)): these.
- (_m4_divert(HEADER-COPYRIGHT), _m4_divert(HEADER-COPYRIGHT)): New.
- (_m4_divert(NOTICE)): New, for Libtool.
- * lib/autoconf/general.m4 (_m4_divert(PREPARE)): Remove, replaced
- long ago with `_m4_divert(GROW)'.
- (AC_COPYRIGHT, AC_REVISION, _AC_INIT_NOTICE): Adjust.
-
-2001-08-20 Akim Demaille <akim@epita.fr>
-
- * tests/base.at, tests/compile.at, tests/foreign.at,
- * tests/m4sh.at, tests/m4sugar.at, tests/mktests.sh,
- * tests/semantics.at, tests/suite.at, tests/tools.at,
- * tests/torture.at: Ask Autotest mode, not Autoconf mode.
-
-2001-08-20 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (handle_output): Handle @__@.
-
-2001-08-20 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/autoconf.m4, lib/autoconf/oldnames.m4,
- * lib/autotest/general.m4: Adjust the license.
-
-2001-08-17 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Function Portability): Mention snprintf,
- following up on a suggestion by Kevin Ryde.
-
-2001-08-17 Akim Demaille <akim@epita.fr>
-
- * doc/install.texi, doc/autoconf.texi: Use `autoconf', not
- `autoconf_manual', as texinfo.tex 2001-06-21.10 chokes on it.
-
-2001-08-17 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Refer to `$as_me.log', not
- `$0.log' as for projects where testsuite is in src, we'd have
- testsuite.log created in src.
-
-2001-08-17 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (&parse_args): Recognize --normalize.
-
-2001-08-17 Akim Demaille <akim@epita.fr>
-
- Start implementing the AC_CHECK_HEADER transition scheme.
-
- * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_NEW)
- (_AC_CHECK_HEADER_OLD, _AC_CHECK_HEADER_MONGREL): New.
- (AC_CHECK_HEADER): Use them.
-
-2001-08-17 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi: Work around Texinfo buglets.
- (Transformation Rules): One example is enough, users are expected
- to have their brains on. And BTW, use DESTDIR.
- (dvar): New macro. Use it.
-
-2001-08-17 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Writing testsuite.at) <AT_CHECK>: Complete.
- * lib/autotest/general.m4 (AT_INIT): Use the relative dir when
- looking for ChangeLogs.
-
-2001-08-17 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in: --normalize is a new option.
- * bin/autoconf.in: Use it.
-
-2001-08-17 Akim Demaille <akim@epita.fr>
-
- * bin/Makefile.am, lib/Autom4te/Makefile.am, lib/autoconf/Makefile.am
- * lib/autotest/Makefile.am, lib/m4sugar/Makefile.am: Add TAGS support.
-
-2001-08-16 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi, doc/install.texi: Put copyright notice at
- start, not at end.
-
-2001-08-15 Akim Demaille <akim@epita.fr>
-
- * doc/Makefile.am (fu): New index, can't use fn because of defmac.
- Use it.
-
-2001-08-15 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (pr): New index.
- (prindex, findex): Use, merge, and output them.
- (Environment Variable Index, Output Variable Index)
- (Preprocessor Symbol Index, Autoconf Macro Index, M4 Macro Index)
- (Autotest Macro Index): Rename as...
- (Environment Variables, Output Variables,Preprocessor Symbols)
- (Autoconf Macros, M4 Macros, Autotest Macros): these.
- * doc/install.texi: Use @command.
- (Environment Variables): Rename as...
- (Defining Variables): this.
-
-2001-08-15 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Function Portability): sprintf's return
- value.
- From Kevin Ryde.
-
-2001-08-15 Akim Demaille <akim@epita.fr>
-
- * Makefile.maint (CVS): New.
- (local-check): Run changelog-check. last.
- (alpha): Don't depend upon local-check, since...
- (cvs-dist): depends upon it.
-
-2001-08-15 Tim Van Holder <tim.van.holder@pandora.be>
-
- * tests/Makefile.am: Use a clean-local rule to remove
- autom4te.cache (it's a directory, not a file.
- * Makefile.am: Ditto (but maintainer-clean-local).
-
-2001-08-15 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (@m4_warning): New.
- (&handle_m4): Use it.
- * tests/m4sugar.at (m4_warn): Pass `-f' to autom4te to ensure the
- warnings are issued at each run.
- * tests/atspecific.m4 (AT_CHECK_M4SUGAR, AT_CHECK_M4SH): M4sugar
- is in the src tree.
-
-2001-08-15 Akim Demaille <akim@epita.fr>
-
- * tests/atspecific.m4 (AT_CHECK_AUTOUPDATE): Perl is now required:
- don't waste time running `autoupdate --version' works.
- * tests/tools.at (autoupdating AC_PREREQ): Likewise.
-
-2001-08-13 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (ma): Rename this index as...
- (ac): this.
-
-2001-08-13 Akim Demaille <akim@epita.fr>
-
- * Makefile.am: Remove dead code and dead comments.
- (pdf, html): New targets.
- * doc/autoconf.texi (Using Autotest): New chapter.
- * doc/Makefile.am (pdf): New targets.
- (CLEANFILES): Adjust.
-
-2001-08-13 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): Log the start/stop dates and
- duration of the test suite.
-
-2001-08-12 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * tests/semantics.at (AC_C_BIGENDIAN): Explicitelly save and load
- endianness for comparison instead of relying on AT_CHECK_ENV.
-
-2001-08-11 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi, doc/install.texi: Add a copyright notice
- to the INSTALL file.
-
-2001-08-11 Paul Eggert <eggert@twinsun.com>
-
- * NEWS: The autoconf manual now is distributed under the terms
- 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.
-
-2001-08-10 Paul Eggert <eggert@twinsun.com>
-
- * AUTHORS, BUGS, ChangeLog, ChangeLog.0, ChangeLog.1,
- ChangeLog.2, GNUmakefile, Makefile.maint, NEWS, README,
- README-alpha, TODO, configure.ac, lib/autoconf/Makefile.am,
- m4/atconfig.m4, m4/init.m4, m4/m4.m4, m4/missing.m4,
- m4/sanity.m4, tests/README, tests/aclocal.m4,
- tests/atspecific.m4, tests/base.at, tests/compile.at,
- tests/foreign.at, tests/m4sh.at, tests/m4sugar.at,
- tests/semantics.at, tests/suite.at, tests/tools.at,
- tests/torture.at: Add copyright notice.
-
- * tests/mktests.sh: Update year in copyright notice.
-
-2001-08-12 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * tests/semantics.at (AC_C_BIGENDIAN): New test.
-
-2001-08-11 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Handle ACTION-IF-TRUE,
- ACTION-IF-FALSE, and ACTION-IF-UNKNOWN.
- * doc/autoconf.texi (C Compiler Characteristics): Update
- documentation for AC_C_BIGENDIAN.
-
-2001-08-11 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Guess endianness by grep'ing
- magic values from an object file when cross-compiling.
- Based on code by Guido Draheim <Guido.Draheim@gmx.de>.
-
-2001-08-10 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in (&handle_output): Don't use `grep' with side
- effects.
- Suggested by Russ Allbery.
-
-2001-08-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
-
- * lib/autoconf/general.m4 (_AC_OUTPUT_SUBDIRS): Propagate the
- current $prefix to the sub-configures.
-
-2001-08-09 Tim Van Holder <tim.van.holder@pandora.be>
-
- * lib/autoconf/lang.m4: Ignore *.xSYM when looking for an executable
- extension (needed on BeOS). Reported by Guido van Rossum.
-
-2001-08-09 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in ($icache): Load it only if older than autom4te.
-
-2001-08-07 Akim Demaille <akim@epita.fr>
-
- * lib/autotest/general.m4 (AT_INIT): All the `at-*' are to be
- removed.
- (at-setup-line): Huh? Be a variable `at_setup_line', not a file.
- No need to remove the files before and after the each test, before
- each test and at the end of the suite is enough.
- Display only the children `times', not the shell's.
- If the test failed or was skipped, at-times is not available.
-
-2001-08-07 Akim Demaille <akim@epita.fr>
-
- Always produce testsuite.log, including when there are no
- failures. This helps getting information on skipped tests, and
- duration of the tests. Err, implement the latter btw.
-
- * lib/autotest/general.m4 (AT_INIT): Set up fd 6 for the log.
- Dump information on the first run of each test.
- (AT_CLEANUP): Create `at-times' containing the duration of the
- test group.
-
-2001-08-07 Akim Demaille <akim@epita.fr>
-
- The use of `dumpstat' revealed that `len' was used although it
- should not. m4_text_wrap was using it, but in the Autoconf world
- where it is legal. Hence (i) test M4sh in its own world, not
- Autoconf's, and (ii), ahem, fix the bug :)
-
- * lib/autotest/general.m4: Be sure the set good quotes, as tracing
- does not like `' instead of [].
- (AT_INIT): Forbid `^_?AT_'.
- And don't output such tokens.
- * tests/Makefile.am (CLEANFILES): Add `script', `script.s4g',
- `script.as', and `autom4te.cache'.
- Remove `empty' and `macro' which are no longer used.
- * tests/atspecific.m4 (AT_CHECK_M4SUGAR, AT_CHECK_M4SH): New.
- * tests/m4sugar.at: Use it.
- * lib/m4sugar/m4sugar.m4: Use `m4_len' not `len'.
-
-2001-08-07 Akim Demaille <akim@epita.fr>
-
- * bin/autoconf.in, bin/autoheader.in: --force, -f is a new option.
-
-2001-08-07 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * bin/autom4te.in (handle_output): Typo in quadrigraph substitution.
-
-2001-08-04 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/functions.m4 (AC_FUNC_ALLOCA, AC_FUNC_ERROR_AT_LINE)
- (AC_FUNC_FSEEKO, AC_FUNC_OBSTACK): Use AC_LANG_IFELSE, not
- AC_TRY_LINK.
- * lib/autoconf/headers.m4 (AC_HEADER_MAJOR): Likewise.
- * lib/autoconf/fortran.m4 (_AC_LANG_PROGRAM_C_F77_HOOKS)
- (AC_F77_MAIN): Likewise.
-
-2001-08-04 Akim Demaille <akim@epita.fr>
-
- Don't rely on M4sugar outputting the patterns in files, since we
- might process the output _without_ running m4, hence without these
- files.
-
- * lib/m4sugar/m4sugar.m4 (m4_init): No need for `m4_tmpdir'.
- * bin/autom4te.in (@Request::includes): Remove, unused.
- (@Request::source): Rename as...
- (@Request::input): this.
- (@preselect): Add `m4_pattern_forbid' and `m4_pattern_allow'.
- (&handle_output): Fetch the patterns from the traces.
- `$forbidden' and `$allowed' are constant: use m//o.
- (&handle_m4): M4sugar no longer wants `m4_tmpdir'.
- (m4_pattern_forbid, m4_pattern_allow): Adjust for tracing only.
-
-2001-08-04 Akim Demaille <akim@epita.fr>
-
- `autoconf && autoheader' is sped up. Now, speed up `autoheader &&
- autoconf', i.e., in addition to caching traces, cache the output.
-
- * bin/autom4te.in (Request::cache): Rename as...
- (Request::id): this.
- ($cache, $icache, $tcache, $ocache): New.
- (&handle_m4): Save M4 output in the cache instead of $tmp.
- (&handle_output): Adjust.
- (&up_to_date_p): Check that the output cache is up to date too.
- (top level): Run `&handle_m4' iff force or the cache is invalid.
- Run `&handle_output' if the output cache is more recent.
-
-2001-08-04 Akim Demaille <akim@epita.fr>
-
- * bin/autom4te.in ($force): New.
- (&parse_args, &print_usage): -f, --force is a new option.
- (&handle_output): CPP directives might have spaces after `#'.
- (&parse_args): The first file only can be frozen.
-
-2001-08-04 Akim Demaille <akim@epita.fr>
-
- Don't let autom4te compute the `include' traces several times:
- first check that the trace cache file is up to date, and then
- compare its timestamp with that of the output.
-
- * bin/autom4te.in, bin/autoupdate.in, bin/autoscan.in: Normalize
- the preamble. Don't require 5.005 as Autom4te::General does it,
- and better yet (use `use', not `require'!).
- * lib/Autom4te/Struct.pm: Rename the last occurrences of
- Class::Struct as Autom4te::Struct.
- * lib/Autom4te/General.pm (File::stat): Use it.
- (&mtime): New, export it.
- * bin/autom4te.in: Use it.
- Declare `$req' is invalid if it is outdated.
- Don't declare it valid before saving it if something went wrong.
-
-2001-08-04 Akim Demaille <akim@epita.fr>
-
- Autom4te shall not encode Autoconf data, and preselecting traces
- must be proposed to the users.
-
- * bin/autom4te.in (@required_trace): Remove.
- (@preselect): New.
- (&parse_args, &print_usage): -p, --preselect is a new option.
- (&up_to_date_p): Adjust.
- * bin/autoconf.in: Preselect some Autoconf macros.
-
-2001-08-04 Akim Demaille <akim@epita.fr>
-
- * tests/tools.at (autoconf --trace: user macros): Check traces on
- macros invoked without arguments, and macros invoked with multiple
- lines arguments.
-
-2001-08-03 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * bin/autom4te.in (handle_traces): Fix rewriting of traces without
- arguments.
-
-2001-08-03 Akim Demaille <akim@epita.fr>
-
- * bin/autoconf.in ($@): Work around the usual sh bug.
- From Nicolas Joly.
-
-2001-08-03 Akim Demaille <akim@epita.fr>
-
- Clean up the handling of the M4 builtins tracing exception.
-
- * bin/autom4te.in (Request::request): Don't complete M4 builtins
- trace requests.
- (@m4_builtins): Rename as...
- (@m4_builtin): this.
- (%m4_builtin_alternate_name): New.
- (&parse_args): Complete the trace requests with alternate names.
- (&handle_traces): Hence no longer do it here.
- (&trace_requests): Remove, unused.
-
-2001-08-03 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Redefined M4 Macros): Document m4_exit,
- m4_if, and m4_wrap.
-
-2001-08-03 Akim Demaille <akim@epita.fr>
-
- * lib/m4sugar/m4sugar.m4 (m4_init): Also forbid `_m4_*' tokens.
- (m4_divert_pop): Dump the whole diversion stack when a diversion
- mismatch happens.
- * bin/autom4te.in (&handle_output): Remember of the first
- occurrence of a possibly undefined macro, not the last.
- Complain about the possibly undefined macros in the same order as
- the appear in the output.
- * lib/autoconf/Makefile.am (autoconf.m4f): List its dependencies.
- * tests/tools.at (autoconf: forbidden tokens, basic)
- (autoconf: forbidden tokens, exceptions): No longer sort
- autoconf's stderr, as it is now deterministic.
- Check that `dnl' is caught.
-
-2001-08-01 Akim Demaille <akim@epita.fr>
-
- * configure.ac: Bump to 2.52c.
-
-2001-08-01 Akim Demaille <akim@epita.fr>
-
- Version 2.52b.
-
- * lib/Autom4te/Makefile.am (perllibdir): s/Autoconf/Autom4te/.
-
-2001-08-01 Akim Demaille <akim@epita.fr>
-
- Version 2.52a.
-
-2001-08-01 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/General.pm: Use `carp' and `croak', not `warn' and
- `die'.
- (&END): New.
- * bin/autoconf.in, bin/autom4te.in, bin/autoupdate.in: Remove your
- `END', as `Autom4te::General::END' will be triggered.
- * bin/autoupdate.in, bin/autoscan.in: Improve error messages accuracy.
- * bin/autoupdate.in (File::Compare, File::Copy): Use them instead of
- system to run `mv', `rm', and `cmp'.
-
-2001-08-01 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/General.pm (&unique): New.
- * bin/autoscan.in (&output): Use it to issue trace requests once.
-
-2001-08-01 Akim Demaille <akim@epita.fr>
-
- * lib/Autom4te/General.pm: New.
- * bin/autom4te.in (Autom4te::General): Use it.
- ($me, $tmp, $verbose, $debug, &mktmpdir, &verbose, &xsystem)
- (&find_configure_ac, &find_slave): Remove.
- * bin/autoscan.in: Likewise.
- * bin/autoupdate.in: Likewise.
-
-2001-08-01 Akim Demaille <akim@epita.fr>
-
- * autoconf.in, autom4te.in, autoscan.in, ifnames.in,
- * autoheader.in, autoreconf.in, autoupdate.in: Move to...
- * bin: here, new directory.
- * lib/Autoconf: Rename as...
- * lib/Autom4te: this, to please case insensitive junkie OSes.
-
-2001-08-01 Akim Demaille <akim@epita.fr>
-
- * autom4te.in ($m4): Handle the --nesting-limit.
- * autoconf.in (M4): Remove.
-
-2001-08-01 Akim Demaille <akim@epita.fr>
-
- * autoconf.in ($AWK): Remove, no longer used.
- * test/tools.at: Use AT_CHECK_AUTOCONF.
- (AWK portability): Remove, for autoconf no longer uses AWK.
- (Syntax of the Perl scripts): New.
- * configure.ac: autoconf no longer needs an AWK with a good
- regexp engine.
- Use a static test on AC_PACKAGE_VERSION.
- * autom4te.in (&up_to_date_p): Output depends on the arguments.
- * lib/autoconf/Makefile.am: Ship version.m4, maintainer file.
- * tests/atconfig.in (PERL): New.
-
-2001-08-01 Akim Demaille <akim@epita.fr>
-
- * lib/autoconf/lang.m4 (AC_LANG(C), AC_LANG_C, _AC_LANG_ABBREV(C))
- (AC_LANG(C++), AC_LANG_CPLUSPLUS, _AC_LANG_ABBREV(C++))
- (AC_LANG_SOURCE(C), AC_LANG_PROGRAM(C), AC_LANG_CALL(C))
- (AC_LANG_FUNC_LINK_TRY(C), AC_LANG_BOOL_COMPILE_TRY(C))
- (AC_LANG_INT_SAVE(C), _AC_ARG_VAR_CPPFLAGS, _AC_ARG_VAR_LDFLAGS)
- (AC_LANG_PREPROC(C), _AC_PROG_PREPROC_WORKS_IFELSE, AC_PROG_CPP)
- (AC_LANG_COMPILER(C), ac_cv_prog_gcc, AC_PROG_CC, _AC_PROG_CC_G)
- (AC_PROG_GCC_TRADITIONAL, AC_PROG_CC_C_O, AC_LANG_PREPROC(C++))
- (AC_PROG_CXXCPP, AC_LANG_COMPILER(C++), ac_cv_prog_gxx)
- (AC_PROG_CXX, _AC_PROG_CXX_G, _AC_PROG_CXX_EXIT_DECLARATION)
- (AC_PROG_CC_STDC, AC_C_CROSS, AC_C_CHAR_UNSIGNED, AC_C_LONG_DOUBLE)
- (AC_C_BIGENDIAN, AC_C_INLINE, AC_C_CONST, AC_C_VOLATILE)
- (AC_C_STRINGIZE, AC_C_PROTOTYPES): Move to...
- * lib/autoconf/c.m4: here, new file.
-
- * lib/autoconf/lang.m4 (AC_LANG(Fortran 77), AC_LANG_FORTRAN77)
- (_AC_LANG_ABBREV(Fortran 77), AC_LANG_SOURCE(Fortran 77))
- (AC_LANG_PROGRAM(Fortran 77), AC_LANG_CALL(Fortran 77))
- (AC_LANG_PREPROC(Fortran 77), AC_LANG_COMPILER(Fortran 77))
- (ac_cv_prog_g77, AC_PROG_F77, _AC_PROG_F77_G, AC_PROG_F77_C_O)
- (_AC_PROG_F77_V_OUTPUT, _AC_PROG_F77_V, AC_F77_LIBRARY_LDFLAGS)
- (AC_F77_DUMMY_MAIN, _AC_LANG_PROGRAM_C_F77_HOOKS, AC_F77_MAIN)
- (_AC_F77_NAME_MANGLING, AC_F77_NAME_MANGLING, AC_F77_WRAPPERS)
- (AC_F77_FUNC): Move to...
- * lib/autoconf/fortran.m4: here, new file.
-
-2001-08-01 Akim Demaille <akim@epita.fr>
-
- * acfunctions.m4: Rename as...
- * lib/autoconf/functions.m4: this.
- * acgeneral.m4: Rename as...
- * lib/autoconf/general.m4: this.
- * acheaders.m4: Rename as...
- * lib/autoconf/headers.m4: this.
- * aclang.m4: Rename as...
- * lib/autoconf/lang.m4: this.
- * acoldnames.m4: Rename as...
- * lib/autoconf/oldnames.m4: this.
- * acspecific.m4: Rename as...
- * lib/autoconf/specific.m4: this.
- * actypes.m4: Rename as...
- * lib/autoconf/types.m4: this.
- * autoconf.m4: Rename as...
- * lib/autoconf/autoconf.m4: this.
-
- * m4sugar.m4: Rename as...
- * lib/m4sugar/m4sugar.m4: this.
- * m4sh.m4: Rename as...
- * lib/m4sugar/m4sh.m4: this.
-
- * tests/atgeneral.m4: Rename as...
- * lib/autotest/general.m4: this.
-
- * acfunctions: Rename as...
- * lib/autoscan/functions: this.
- * acheaders: Rename as...
- * lib/autoscan/headers: this.
- * acidentifiers: Rename as...
- * lib/autoscan/identifiers: this.
- * aclibraries: Rename as...
- * lib/autoscan/libraries: this.
- * acmakevars: Rename as...
- * lib/autoscan/makevars: this.
- * acprograms: Rename as...
- * lib/autoscan/programs: this.
-
-2001-08-01 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi: Moving/deleting open files is not portable.
- Portability issues for `.' (source), and more information about sed.
-
-2001-07-25 Steven G. Johnson <stevenj@alum.mit.edu>
-
- * aclang.m4 (AC_F77_LIBRARY_LDFLAGS): Ignore -libmil (on Solaris),
- which has a special meaning and is not a reference to libibmil.a.
- Reported by Matteo Frigo.
-
-2001-07-25 Pavel Roskin <proski@gnu.org>
-
- * autom4te.in (mktmpdir): Strip trailing newline from mktemp
- output.
-
-2001-07-25 Akim Demaille <akim@epita.fr>
-
- * autoconf.in: Try to define the variables before using them.
- * autom4te.in ($perllibdir): Use `$autom4te_perllibdir' as envvar
- instead of `$perllibdir'.
- * tests/atconfig.in ($autom4te_perllibdir): Export it.
-
-2001-07-25 Akim Demaille <akim@epita.fr>
-
- * autoconf.in (ac_LF_and_DOT): Remove, unused.
-
-2001-07-24 Akim Demaille <akim@epita.fr>
-
- Let autoconf use autom4te for traces.
-
- * autoconf.in ($task, task trace): Remove, merely pass --trace to
- autom4te.
- * autoheader.in: Don't pass `-' to autoconf, rather, a tmp file.
- (Because I found no way for autom4te to accept `-').
- * autom4te.in (&Request::request): Beware of M4 builtins.
- (END): Don't try to remove the content of an empty dir.
- (&parse_args): Default is `$f:$l:$n:$%', not `$f:$l:$n:$*'.
- (&handle_output): Set a default value to `$forbidden'.
- * autoupdate.in (&verbose, &xsystem): New, from autom4te.in.
- ($autoconf): Pass --debug and --verbose.
- * tests/atspecific.m4 (AT_CHECK_AUTOCONF): Clean up autom4te's
- cache.
-
-2001-07-24 Akim Demaille <akim@epita.fr>
-
- Let autoconf use autom4te to create configure.
-
- * autoconf.in ($automate): New var.
- (task script): Use autom4te.
- * autom4te.in (File::Spec): Use it.
- (&find_file): New.
- (&parse_args): --warning is -W, not -w.
- Find the top level files.
- (&handle_m4): Pass the warnings flags.
- Don't report verbosely m4's failures, unless requested.
- (&handle_output): Don't complain for forbidden tokens in comments.
- Be sure to report all the forbidden tokens within a single line.
- (&trace_format_to_m4): Preserve `$_'.
- (&handle_traces): Sort the output macros.
- (&up_to_date_p): Find the files before trying to get its time stamp.
-
-2001-07-24 Akim Demaille <akim@epita.fr>
-
- * Makefile.am: Ship, build and install Autom4te.
- (SUBDIRS): Add lib.
- * lib/Autoconf/Struct.pm: New, from Automake 1.5.
- * configure.in: Require Perl.
- * man/autom4te.in: New.
-
-2001-07-19 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi (Cache Checkpointing): Use AC_MSG_ERROR in
- example, rather than (exit 1); exit (which isn't portable).
-
-2001-07-18 Akim Demaille <akim@epita.fr>
-
- Version 2.52.
-
-2001-07-18 Akim Demaille <akim@epita.fr>
-
- The C-Fortran 77 hooks are available only once AC_F77_DUMMY_MAIN
- was run, while they are needed also when it is expanded.
- Reported by Nicolas Joly.
-
- * aclang.m4 (AC_F77_DUMMY_MAIN): Define _AC_LANG_PROGRAM_C_F77_HOOKS.
- (AC_LANG_PROGRAM(C)): Use it instead of depending upon
- AC_F77_DUMMY_MAIN being expanded.
-
-2001-07-18 Akim Demaille <akim@epita.fr>
-
- * configure.in: Bump to 2.51a.
-
-2001-07-17 Akim Demaille <akim@epita.fr>
-
- Version 2.51.
-
-2001-07-17 Akim Demaille <akim@epita.fr>
-
- * aclang.m4 (AC_F77_DUMMY_MAIN): Let the interface be more
- Autoconfy: $1 = action-if-found, $2 = action-if-not-found.
-
-2001-07-17 Akim Demaille <akim@epita.fr>
-
- The runtime test for AC_FUNC_GETPGRP fails when prototypes are
- 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.
-
-2001-07-17 Akim Demaille <akim@epita.fr>
-
- * actypes.m4 (_AC_CHECK_TYPE_REPLACEMENT_TYPE_P): `foo_t' is a
- replacement type.
- From Paul Eggert.
-
-2001-07-17 Akim Demaille <akim@epita.fr>
-
- * Makefile.maint: Sync. with cppi 1.10.
-
-2001-07-17 Akim Demaille <akim@epita.fr>
-
- * aclang.m4 (AC_LANG_PROGRAM(C)): Output F77_DUMMY_MAIN only when
- AC_F77_DUMMY_MAIN has been run.
- From Pavel Roskin and Steven G. Johnson.
-
-2001-07-17 Akim Demaille <akim@epita.fr>
-
- * configure.in: Rename as...
- * configure.ac: this.
-
-2001-07-17 Akim Demaille <akim@epita.fr>
-
- * Makefile.am (INSTALL.txt): Don't use $@ and $< in non suffix
- rules.
- From Marc Espie.
- * Makefile.maint (release-archive-dir): Rename as...
- (release_archive_dir): this, so that it can be specialized in
- Makefile.
-
-2001-07-14 Akim Demaille <akim@epita.fr>
-
- * configure.in: Bump to 2.50d.
-
-2001-07-14 Akim Demaille <akim@epita.fr>
-
- Version 2.50c.
- * Makefile.maint (alpha): Typo.
-
-2001-07-14 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Limitations of Make): Macro names and underscore.
-
-2001-07-14 Akim Demaille <akim@epita.fr>
-
- * config/config.guess, config/config.sub, config/texinfo.tex
- * doc/standards.texi, doc/make-stds.texi: Update.
-
-2001-07-14 Akim Demaille <akim@epita.fr>
-
- * Makefile.maint (cvs-check, cvs-tag-check, cvs-diff-check): New.
-
-2001-07-14 Akim Demaille <akim@epita.fr>
-
- * Makefile.maint (maintainer-check): Rename as...
- (maintainer-distcheck): this.
- (changelog-check, static-check): New.
- Use them.
-
-2001-07-14 Kevin Ryde <user42@zip.com.au>
-
- * doc/autoconf.texi (C++ Compilers Characteristics): Last resort
- for CXX is g++, not gcc.
-
-2001-07-14 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Files): New subsection.
-
-2001-07-14 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (C Compiler, Fortran 77 Compiler): Be subsections
- of...
- (Generic Compiler Characteristics): this.
- (C++ Compiler): New subsection.
-
-2001-07-14 Akim Demaille <akim@epita.fr>
-
- * autoscan.in: Use IO::File.
- 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.
-
-2001-07-12 Akim Demaille <akim@epita.fr>
-
- For some AWK, such as on HPUX 11, `xfoo' does not match `foo|^bar'.
- Reported by Michael Elizabeth Chastain.
-
- * autoconf.in: Refuse such AWK.
- * configure.in: Likewise.
- * Makefile.am (acversion.m4): Do not use move-if-change this file
- has dependencies.
- * doc/autoconf.texi (Fortran 77 Compiler): Some typos.
-
-2001-07-10 Jens Petersen <petersen@redhat.com>
-
- * autoscan.in (&scan_makefile): Improve programs regexp to parse
- things like "g++", "file.c" and "some-conf" as tokens.
- (&scan_file): Match C++ files extensions.
- If the filename extension is C++ then ask for c++.
-
-2001-07-05 Steven G. Johnson <stevenj@alum.mit.edu>
-
- * aclang.m4 (AC_F77_DUMMY_MAIN): Use AC_TRY_LINK, not
- AC_TRY_LINK_FUNC, to check whether defining a dummy
- main-like routine is needed for linking with F77 libs.
-
-2001-07-05 Pavel Roskin <proski@gnu.org>
-
- * aclocal.m4 (_AC_PROG_CXX_EXIT_DECLARATION): Remove conftest*
- after using break.
- (_AC_PROG_F77_V_OUTPUT): Remove conftest*, not conftest.* after
- linking.
-
-2001-07-05 Akim Demaille <akim@epita.fr>
-
- * Makefile.am (move_if_change): New. Use it instead of `mv'.
- (acversion.m4): Name it `$(srcdir)/acversion.m4' to ease broken
- Makes' lives.
- Reported by Nicolas Joly.
-
-2001-07-04 Akim Demaille <akim@epita.fr>
-
- * acgeneral.m4 (_AC_RUN_IFELSE): Remove conftest.o when cleaning
- 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.
-
-2001-07-04 Akim Demaille <akim@epita.fr>
-
- * acfunctions.m4 (AC_FUNC_STRTOD, AC_FUNC_STRERROR_R)
- (AC_FUNC_STRCOLL, AC_FUNC_WAIT3): Use AC_RUN_IFELSE and
- AC_COMPILE_IFELSE.
-
-2001-07-04 Akim Demaille <akim@epita.fr>
-
- * acgeneral.m4 (_AC_INCLUDES_DEFAULT_REQUIREMENTS): Actually apply
- the ``strings.h'' change claimed below.
-
-2001-07-04 Akim Demaille <akim@epita.fr>
-
- * aclang.m4 (_AC_LANG_COMPILER_GNU): s/-dumpspecs/-v/.
-
-2001-07-04 Akim Demaille <akim@epita.fr>
-
- * acgeneral.m4 (_AC_INCLUDES_DEFAULT_REQUIREMENTS): Include
- strings.h if usable with string.h.
- Suggested by Paul Eggert.
-
-2001-07-04 Akim Demaille <akim@epita.fr>
-
- * autoscan.in (&scan_file): Skip FILE if there is FILE.in.
- From Jens Petersen.
-
-2001-07-03 Akim Demaille <akim@epita.fr>
-
- * acgeneral.m4 (_AC_OUTPUT_CONFIG_STATUS): Specify CONFIG_FILES
- etc. in the log.
-
-2001-07-03 Akim Demaille <akim@epita.fr>
-
- * acheaders.m4 (AC_CHECK_HEADER): When INCLUDES are set, use the
- compiler, not the preprocessor.
- * acgeneral.m4 (_AC_INCLUDES_DEFAULT_REQUIREMENTS): No longer use
- dedicated code to check for inttypes.h, as AC_CHECK_HEADERS does
- the right thing.
- * Makefile.am (.m4.m4f): Emphasize M4 error messages and fail
- earlier if there are.
-
-2001-07-03 Akim Demaille <akim@epita.fr>
-
- * autoscan.in ($initfile): Remove.
- (&find_file): Rename as...
- (&scan_file): this.
- Immediately scan the current file, instead of gathering them, and
- later having them handled by &scan_files.
- (&scan_files): Merely invoke Find::File.
- Adjust.
-
-2001-07-02 Akim Demaille <akim@epita.fr>
-
- * autoscan.in: Formatting changes, matching the invocation order.
- (File::Find): Use it instead of Perl 4's `find.pl'.
- (&wanted): Rename as...
- (&find_file): this.
-
-2001-07-01 Pavel Roskin <proski@gnu.org>
-
- * aclang.m4 (AC_F77_DUMMY_MAIN): Remove conftest* after using
- break in the argument to AC_TRY_LINK_FUNC.
- (AC_F77_MAIN): Remove conftest* after using break in the
- argument to AC_TRY_LINK.
-
-2001-07-01 Steven G. Johnson <stevenj@alum.mit.edu>
-
- Add alternate 'main' routine detection for linking C/C++ with Fortran,
- fixing link failures for e.g. AC_F77_WRAPPERS on NetBSD.
-
- * aclang.m4 (AC_F77_DUMMY_MAIN): New macro to detect whether a
- dummy alternate main is required even if the user provides her own
- 'main'.
- (AC_F77_MAIN): New macro to detect whether it is possible to
- provide an alternate 'main' function name, using the 'main' from
- the Fortran libraries.
- (AC_LANG_PROGRAM(C)): Use F77_DUMMY_MAIN, if it is defined, so that
- cross-language link tests can be performed successfully.
- (_AC_F77_NAME_MANGLING): Require AC_F77_DUMMY_MAIN. Also put $FLIBS
- after $LIBS, for consistency; this should be the general rule since
- the user may want to link to Fortran libraries that require $FLIBS.
- * doc/autoconf.texi: Document AC_F77_DUMMY_MAIN and AC_F77_MAIN.
-
-2001-06-29 Pavel Roskin <proski@gnu.org>
-
- * atgeneral.m4 (AT_CHECK): Add a newline to the end of
- at-stdout and at-stderr instead of removing the newline
- from the echo output, which is not guaranteed to work.
-
-2001-06-28 Jens Petersen <petersen@redhat.com>
-
- * aclang.m4 (_AC_PROG_CXX_EXIT_DECLARATION): Only add declaration to
- confdefs.h when non-zero.
-
-2001-06-28 Akim Demaille <akim@epita.fr>
-
- * configure.in: Bump to 2.50c.
-
-2001-06-26 Akim Demaille <akim@epita.fr>
-
- Version 2.50b.
-
-2001-06-26 Akim Demaille <akim@epita.fr>
-
- Version 2.50a.
-
-2001-06-25 Pavel Roskin <proski@gnu.org>
-
- * tests/atspecific.m4 (AT_CHECK_MACRO): Accept one more
- argument, AUTOCONF-FLAGS.
- * tests/mktests.sh (update_exclude_list): Add
- AC_SYS_RESTARTABLE_SYSCALLS and AC_FUNC_WAIT3.
- * tests/semantics.at: Test AC_SYS_RESTARTABLE_SYSCALLS and
- AC_FUNC_WAIT3 with "-W no-obsolete".
-
-2001-06-25 Akim Demaille <akim@epita.fr>
-
- * tests/foreign.at (libtool): Fix the `libtoolize --version' decoding.
-
-2001-06-25 Akim Demaille <akim@epita.fr>
-
- * autoscan.in (%macro): Now maps from word to list of macros.
- (&init_tables): Die when a word which is already handled by
- explicit macros is mapped to the default macro.
- (&print_unique): Remove, inlined in...
- (&output_kind): here.
- (File::Basename): Use it.
- (&output): Sort the CONFIG_FILES.
- * acheaders: Normalize.
- * acfunctions: Likewise.
-
-2001-06-25 Akim Demaille <akim@epita.fr>
-
- * aclang.m4 (_AC_LANG_COMPILER_GNU): If GNU, dump the compiler
- characteristics in the logs.
- Suggested by Mo DeJong.
-
-2001-06-24 Akim Demaille <akim@epita.fr>
-
- * acfunctions.m4 (AM_FUNC_ERROR_AT_LINE, AM_FUNC_FNMATCH)
- (AM_FUNC_MKTIME, AM_FUNC_OBSTACK, AM_FUNC_STRTOD): Reactivated.
- * doc/autoconf.texi (Autoconf 2.13): New section.
-
-2001-06-24 Akim Demaille <akim@epita.fr>
-
- * autoconf.in (Task traces): Separate the error messages from the
- traces to improve robustness.
-
-2001-06-23 Akim Demaille <akim@epita.fr>
-
- * tests/torture.at (AC_ARG_VAR): Make it a single test instead of
- three as failures are unlikely, and speed matters.
-
-2001-06-23 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Redefined M4 Macros): New.
-
-2001-06-23 Akim Demaille <akim@epita.fr>
-
- * acgeneral.m4 (_AC_INCLUDES_DEFAULT_REQUIREMENTS): Consider
- inttypes.h is missing if it conflicts with sys/types.h, as on IRIX
- 5.3.
-
-2001-06-23 Paolo Bonzini <bonzini@gnu.org>
-
- * acgeneral.m4 (_AC_OUTPUT_CONFIG_STATUS): Defer parsing of
- config.status targets to after the evaluation of the INIT-CMDS.
- Double quote config.status targets (used to be single quoted).
-
-2001-06-23 Akim Demaille <akim@epita.fr>
-
- * tests/torture.at (CONFIG_FILES, HEADERS, LINKS and COMMANDS):
- Check the content of the created file.
- Check the ./config.status command line invocation.
-
-2001-06-23 Akim Demaille <akim@epita.fr>
-
- * tests/foreign.at (Libtool): Reject prehistoric versions.
-
-2001-06-23 Akim Demaille <akim@epita.fr>
-
- * aclang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Try to be robust to
- preexisting files matching a.*.
-
-2001-06-23 Akim Demaille <akim@epita.fr>
-
- * acgeneral.m4 (_AC_ARG_VAR_VALIDATE): Output error messages on
- stderr.
- * doc/autoconf.texi (AC_ARG_VAR): Update.
-
-2001-06-21 Akim Demaille <akim@epita.fr>
-
- * acgeneral.m4 (_AC_ARG_VAR_VALIDATE): Die instead of warning when
- precious variables have changed.
- * tests/torture.at (AC_ARG_VAR): Adjust.
-
-2001-06-21 Akim Demaille <akim@epita.fr>
-
- ./configure --program-suffix=foo produces `transform=s,$$,foo,;',
- 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 `;'.
-
-2001-06-19 Tim Van Holder <tim.van.holder@pandora.be>
-
- * doc/autoconf.texi (Functions Portability): Rename as...
- (Function Portability): this.
- (Function Portability): Document potential problems with unlink().
-
-2001-06-19 Paul Eggert <eggert@twinsun.com>
-
- * NEWS, doc/autoconf.texi: Document quadrigraphs.
-
-2001-06-18 Akim Demaille <akim@epita.fr>
-
- * acfunctions.m4 (AC_FUNC_FORK): Fix typos.
-
-2001-06-18 Ruediger Kuhlmann <info@ruediger-kuhlmann.de>
-
- * acfunctions.m4: (AC_FUNC_VFORK) rename as...
- (_AC_FUNC_VFORK): this.
- Remove AC_DEFINEs and don't guess cross-compilation values.
- (_AC_FUNC_FORK): New, check whether fork() isn't just a stub.
- (AC_FUNC_FORK): New, use _AC_FUNC_VFORK and _AC_FUNC_FORK to
- define HAVE_WORKING_FORK, HAVE_WORKING_VFORK; and vfork to fork if
- vfork doesn't work.
- Guess values if cross-compiling, but warn.
- * acfunctions: Add AC_FUNC_FORK.
- * doc/autoconf.texi: Document AC_FUNC_FORK. Give example to define
- and vfork appropriately.
-
-2001-06-18 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Functions Portability): New section.
-
-2001-06-18 Akim Demaille <akim@epita.fr>
-
- * autoconf.in (M4): Pass --nesting-limit=1024, unless already set
- in $M4.
- Suggested by Andreas Schwab.
-
-2001-06-18 Akim Demaille <akim@epita.fr>
-
- * acfunctions.m4 (AC_FUNC_CHOWN, AC_FUNC_CLOSEDIR_VOID)
- (AC_FUNC_GETPGRP, AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK)
- (AC_FUNC_MMAP, AC_FUNC_SELECT_ARGTYPES, _AC_FUNC_STAT)
- (AC_FUNC_UTIME_NULL): Use AC_INCLUDES_DEFAULT.
- Don't use AC_TRY_RUN, which double quotes, prefer AC_RUN_IFELSE,
- and either AC_LANG_SOURCE or AC_LANG_PROGRAM.
- (AC_FUNC_CLOSEDIR_VOID): Protect C++ from `int closedir ();' (or
- the converse).
-
-2001-06-18 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (ms): New index.
- (Macro Index): Rename as...
- (Autoconf Macro Index): this.
- (M4 Macro Index): New appendix.
- (Programming in M4): New chapter.
- Define M4sugar, M4sh, m4_pattern_forbid, and m4_pattern_allow.
- (Quoting): Rename as...
- (M$ Quotation): this.
- Be part of `Programming in M4).
-
-2001-06-18 Nicolas Joly <njoly@pasteur.fr>
-
- * tests/torture.at (AC_ARG_VAR): Set variables and export them
- in separate statements for compatibility with Tru64 v5.1.
-
-2001-06-17 Akim Demaille <akim@epita.fr>
-
- * acgeneral.m4 (_AC_ARG_VAR_VALIDATE): Be sure to cache the
- 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.
-
-2001-06-15 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi: Move AC_FUNC_WAIT3 and
- 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.
-
-2001-06-15 Akim Demaille <akim@epita.fr>
-
- `build_alias', `host_alias', and `target_alias' are not AC_SUBST'd.
- Reported by Bruno Haible.
-
- * acgeneral.m4 (AC_ARG_VAR): Move the AC_SUBST, from here...
- (_AC_ARG_VAR_PRECIOUS): to here.
-
-2001-06-15 Pavel Roskin <proski@gnu.org>
-
- * acheaders.m4 (_AC_CHECK_HEADER_DIRENT): Instead of defining
- an unused pointer use cast to this type and `if' statement to
- avoid warnings from the compiler.
- (AC_HEADER_TIME): Likewise.
- * actypes.m4 (AC_CHECK_MEMBER): s/foo/ac_aggr/. Use the member
- in `if' statement to avoid warnings from the compiler. Declare
- ac_aggr static to avoid the need to initialize it.
-
-2001-06-14 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Portable Shell): Move to follow `Writing
- Macros'.
-
-2001-06-13 Akim Demaille <akim@epita.fr>
-
- * m4/missing.m4, config/missing: Updated to Automake 1.4g's.
- Suggested by Alexander Mai.
-
-2001-06-13 Akim Demaille <akim@epita.fr>
-
- * acgeneral.m4 (_AC_INCLUDES_DEFAULT_REQUIREMENTS): Guard
- sys/types.h and sys/stat.h, and check for them.
-
-2001-06-13 Akim Demaille <akim@epita.fr>
-
- * acheaders.m4 (AC_CHECK_HEADER, AC_CHECK_HEADERS): Support $4 =
- INCLUDES.
-
-2001-06-12 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
-
- * acspecific.m4 (AC_PATH_XTRA): Check if linking against libX11
- succeeds and only try adding libdnet upon a failure.
-
-2001-06-12 Akim Demaille <akim@epita.fr>
-
- * autoscan.in (&output_kind): Output the comment only if it exists.
- (%kind_comment): Add entry for `programs'.
- (&output_programs): Use &output_kind.
- (&output_functions, &output_identifiers, &output_headers)
- (&output_programs): Inline, and remove.
-
-2001-06-12 Akim Demaille <akim@epita.fr>
-
- * autoscan.in (%kind_comment): New.
- (output_kind): New.
- (output_functions, output_identifiers, output_headers): Use it.
-
-2001-06-12 Akim Demaille <akim@epita.fr>
-
- * autoscan.in (&print_unique): Take `$kind' and `$word' as
- arguments, to factor indirections into `%macro' and `%used'.
- (%generic_macro): Fix a typo.
-
-2001-06-12 Akim Demaille <akim@epita.fr>
-
- * aclibraries: New.
- * autoscan.in (@kinds): Add `libraries'.
- Use `@kinds' instead of hard coded lists.
- (%programs, %headers, %identifiers, %makevars, %libraries, %functions):
- Remove, replaced by...
- (%used): this.
-
-2001-06-12 Akim Demaille <akim@epita.fr>
-
- * autoscan.in (%functions_macros %headers_macros)
- (%identifiers_macros %programs_macros %makevars_macros): Remove,
- replaced by...
- (%macro): New.
-
-2001-06-11 Raja R Harinath <harinath@cs.umn.edu>
-
- * aclang.m4 (AC_NO_EXECUTABLES): Override
- _AC_COMPILER_EXEEXT_WORKS, not _AC_LANG_COMPILER_WORKS.
-
-2001-06-11 Akim Demaille <akim@epita.fr>
-
- * aclang.m4 (AC_NO_EXECUTABLES): Define the macros with their
- trailing new line.
- Reported by Andreas Schwab.
-
-2001-06-11 Akim Demaille <akim@epita.fr>
-
- * Makefile.am, Makefile.maint: Typos.
-
-2001-06-09 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Here-Documents): New section, gathering
- documentation about here-documents.
- Use `href', not `uref', and other changes.
-
-2001-06-09 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Portable Shell Programming): Promoted as a
- chapter.
-
-2001-06-09 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Limitations of Builtins): Complete the
- description of the here-docs penalties with Alexandre Oliva's
- explanations.
-
-2001-06-01 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi: Talk about here documents and speedups.
- Do not use "echo" on arbitrary strings.
- Spell "here-documents" consistently with the standard.
-
-2001-06-09 Akim Demaille <akim@epita.fr>
-
- * doc/autoconf.texi (Concept Index): Introduce it.
- Regenerate the menus.
-
-2001-06-09 Akim Demaille <akim@epita.fr>
-
- * Makefile.maint, GNUmakefile: New, from Jim Meyering.
- * config/prev-version.txt: New.
- * config/move-if-change: New, for GNU libc.
-
-2001-06-06 Pavel Roskin <proski@gnu.org>
-
- * tests/atgeneral.m4 (AT_INIT): Remove "/bin/sh" after $SHELL.
-
-2001-06-06 Akim Demaille <akim@epita.fr>
-
- * acgeneral.m4 (AC_CHECK_LIB): Fix the cache var name to work
- properly when $1 is not a literal.
- Fixes PR Autoconf/187, reported by Bram Moolenaar.
-
-2001-06-06 Akim Demaille <akim@epita.fr>
-
- Invoking AC_COPYRIGHT before AC_INIT fails.
-
- * Makefile.am (.m4.m4f): Pass --fatal-warnings to m4.
- * acgeneral.m4 (_m4_divert(VERSION_FSF))
- (_m4_divert(VERSION_USER)): New.
- (AC_COPYRIGHT): $2 is the diversion to use.
- (_AC_INIT_COPYRIGHT): Use the FSF diversion.
- (AC_INIT): Remove dead comments as now it's commutative.
-
-2001-06-06 Akim Demaille <akim@epita.fr>
-
- * tests/semantics.at (AC_CHECK_LIB): Strengthen to reflect
- PR autoconf/187.
-
-2001-06-05 Akim Demaille <akim@epita.fr>
-
- * acgeneral.m4 (_AC_INIT_PARSE_ARGS): `prefix' and `exec_prefix'
- can be empty.
- `*dir' variables cannot be NONE.
- Reported by Mark Kettenis.
-
-2001-06-05 Paul Eggert <eggert@twinsun.com>
-
- * doc/autoconf.texi: Fix references to Solaris and SunOS versions.
-
-2001-06-04 Akim Demaille <akim@epita.fr>
-
- * acgeneral.m4 (AC_VAR_SET, AC_VAR_GET, AC_VAR_TEST_SET)
- (AC_VAR_SET_IFELSE, AC_VAR_PUSHDEF and AC_VAR_POPDEF, AC_TR_CPP)
- (AC_TR_SH): Move as...
- * m4sh.m4 (AS_VAR_SET, AS_VAR_GET, AS_VAR_TEST_SET)
- (AS_VAR_SET_IF, AC_VAR_PUSHDEF, AS_VAR_POPDEF, AS_TR_CPP)
- (AS_TR_SH): these.
- (_AS_TR_PREPARE, _AS_CR_PREPARE, _AS_TR_CPP_PREPARE)
- (_AS_TR_SH_PREPARE): New.
- (AS_SHELL_SANITIZE): Invoke _AS_TR_PREPARE.
- * tests/aclocal.m4 (AC_STATE_SAVE): `as_' vars can be modified.
-
-2001-06-02 Akim Demaille <akim@epita.fr>
-
- * Makefile.am (.m4.m4f): Pass the options first.
- Fixes PR autoconf/182.
-
-2001-06-02 Nathan Sidwell <nathan@codesourcery.com>
-
- GNU getopt, when POSIXLY_CORRECT does not permute options and
- 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.
-
-2001-06-02 Christian Marquardt <marq@gfz-potsdam.de>
-
- * aclang.m4 (AC_PROG_F77): Add Fujitsu's "frt" to the list of
- Fortran compilers to check.
- (_AC_PROG_F77_V): Add '-###' as a possible option to print
- information on library and object files.
- (AC_PROG_CXX): Add Fujitsu's "FCC" to the list of C++ compilers
- to check.
-
-2001-06-02 Akim Demaille <akim@epita.fr>
-
- * autom4te.in (Request::@request): Declare with `vars', not `my',
- as it prevents updates via `do FILENAME'.
-
-2001-06-02 Akim Demaille <akim@epita.fr>
-
- * configure.in (standards_texi): Remove, dead code.
-
-2001-06-02 Akim Demaille <akim@epita.fr>
-
- * autom4te.in: New.
-
-2001-06-02 Pavel Roskin <proski@gnu.org>
-
- * acgeneral.m4 (_AC_INIT_PREPARE): Don't rely on $? in the traps
- for signals other than 0 - exit with code 1.
- * m4sh.m4 (AS_TMPDIR): Likewise.
- * autoconf.in: Likewise. Also don't rely on exit == exit $?.
- * autoheader.in: Likewise.
- * autoreconf.in: Likewise.
- * tests/torture.at (Signal handling): New test for the above.
-
-2001-06-01 Akim Demaille <akim@epita.fr>
-
- * m4sugar.m4 (m4_defn, m4_undefine, m4_popdef): Clarify the error
- message.
-
-2001-05-31 Akim Demaille <akim@epita.fr>
-
- * acfunctions, acheaders, acidentifiers, acmakevars, acprograms:
- Add copyright and comments.
- * acheaders: Add stdint.h.
- Suggested by Paul Eggert.
-
-2001-05-31 Akim Demaille <akim@epita.fr>
-
- * atgeneral.m4 (AT_INIT): Use $SHELL.
- * atspecific.m4 (AT_CHECK_DEFINES): Skip HAVE_STDINT_H.
-
-2001-05-31 Akim Demaille <akim@epita.fr>
-
- * acgeneral.m4 (_AC_INCLUDES_DEFAULT_REQUIREMENTS): Include
- stdint.h.
- From Paul Eggert and Lars Hecking.
-
-2001-05-31 Akim Demaille <akim@epita.fr>
-
- * tests/base.at: Adjust line numbers in error messages.
-
-2001-05-31 Akim Demaille <akim@epita.fr>
-
- * tests/base.at, tests/m4sh.at: When using AC_PLAIN_SCRIPT be sure
- to emit the bangshe line.
- Reported by David Carter.
-
-2001-05-30 Steven G. Johnson <stevenj@alum.mit.edu>
-
- * aclang.m4 (AC_PROG_F77): Add Compaq's "fort" to the list of
- Fortran (95) compilers to check.
-
-2001-05-29 Alexandre Duret-Lutz <duret_g@epita.fr>
-
- * doc/autoconf.texi (Introduction, Pointers): Update the Autoconf
- Macro Archive URL.
-
-2001-05-23 Pavel Roskin <proski@gnu.org>
-
- * aclang.m4 (AC_PROG_CPP): Use `break' instead of `break 2' since
- _AC_PROG_PREPROC_WORKS_IFELSE expands arguments outside the loop.
- (AC_PROG_CXXCPP): Likewise.
-
-2001-05-22 Akim Demaille <akim@epita.fr>
-
- * config: New directory.
- * configure.in: AC_CONFIG_AUX_DIR it.
- * tests/atspecific.m4 (AT_CONFIGURE_AC): Adjust.
-
-2001-05-22 Akim Demaille <akim@epita.fr>
-
- * autoconf.in, autoreconf.in, autoheader.in, autoscan.in, ifnames.in,
- * autoupdate.in: Specify the Emacs mode.
- * acversion.m4.in: Rename as...
- * acversion.m4: this.
- * tests/Makefile.am (CLEANFILES): More garbage.
-
-2001-05-22 Akim Demaille <akim@epita.fr>
-
- * autoconf.sh, autoreconf.sh, autoheader.sh, autoscan.pl, ifnames.sh:
- Rename as...
- * autoconf.in, autoreconf.in, autoheader.in, autoscan.in, ifnames.in:
- these.
-
-2001-05-21 Akim Demaille <akim@epita.fr>
-
- * configure.in: Bump to 2.50a.
-
-
- -----
-
- Local Variables:
- coding: utf-8
- End:
-
- Copyright (C) 2001-2011 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation, either version 3 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see
- <http://www.gnu.org/licenses/>.
+ * m4/autobuild.m4: Likewise.
+
+2012-01-21 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ maint: make position of gnulib checkout configurable
+ Some gnulib-related tools (most prominently, the gnulib-provided
+ 'bootstrap' script) allow the user to define the position of his
+ gnulib's repository checkout through the use of the 'GNULIB_SRCDIR'
+ environment variable. We should do the same, for consistency and
+ to easily support slightly unusual layouts in developers' source
+ trees.
+
+ * cfg.mk (gnulib_dir): Define to "$GNULIB_SRCDIR" if that's set,
+ and to default value of "'$(abs_srcdir)'/../gnulib" otherwise.
+ Update comments.
+
+2012-01-20 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ getopt: sync from Automake repository
+ * lib/Autom4te/Getopt.am: The master copy of this file has
+ been moved to the Automake repository (see Automake commit
+ 'v1.11-662-g52246cc' 2012-01-18, "cmdline parsing: move into
+ a dedicated perl module"). So we now we sync it from there,
+ by listing it ...
+ * cfg.mk (autom4te_files): ... in this variable.
+
+2012-01-20 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ build: fix automake error due to missing ChangeLog
+ Apparently, Automake does not accept the '$(srcdir)/ChangeLog'
+ target in Makefile.am as a declaration that ChangeLog is
+ automatically generated (and thus does not need to exist at
+ automake time). One has to use a *literal* 'ChangeLog' target.
+
+ Problem introduced in commit v2.68-118-g6ed5195 of 2012-01-17,
+ "maint: generate ChangeLog from git log".
+
+ * Makefile.ma ($(srcdir)/ChangeLog): Renamed ...
+ (ChangeLog): ... to this.
+
+2012-01-17 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ getopt: new Autom4te::Getopt module
+ * lib/Autom4te/General.pm (getopt): Move the guts of its
+ implementation ...
+ * lib/Autom4te/Getopt.pm (parse_options): .. into this function
+ in the new Autom4te::Getopt module. This will make it simpler
+ for the implementation to be shared with other projects (right
+ now, Automake).
+ * lib/Automake/Makefile.am (dist_perllib_DATA): Add the new
+ module.
+
+2012-01-17 Jim Meyering <meyering@redhat.com>
+
+ tests: avoid spurious failure for each gnu-fortran-using test
+ The tests compare pre- and post-run lists of envvars, which must
+ be the same, modulo a list of known, filtered-out exceptions.
+ However, when running fortran-checking tests with GNU fortran, each
+ would fail due to the post-run addition of the GFC symbol added in
+ v2.68-97-gbd962ac.
+ * tests/local.at (AT_CHECK_ENV): Add GFC to the list of symbols
+ that we ignore in pre-/post-run environment diffs.
+
+2012-01-17 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ maint: generate ChangeLog from git log
+ Following the practice set by various other GNU projects, we start
+ to automatically generate the ChangeLog file from the git commit
+ messages. This will avoid duplication (as the ChangeLog entries
+ were always inserted both in the git commit message and in the
+ version-controlled ChangeLog file), and potential problems with
+ spurious merge conflicts (which, although greatly mitigated by
+ Bruno Haible's `git-merge-changelog' helper program, have never
+ been completely solved).
+
+ * ChangeLog: Moved ...
+ * ChangeLog.3: ... to this.
+ * build-aux/gitlog-to-changelog: New script, synced from gnulib.
+ * cfg.mk (gnulib-update): Also sync gitlog-to-changelog.
+ * Makefile.am (gen-ChangeLog): New .PHONY rule, generate the
+ ChangeLog for distribution.
+ (dist-hook): Depend on it.
+ ($(srcdir)/ChangeLog): New dummy rule, to pacify automake "gnu"
+ strictness. Creates a dummy ChangeLog, that will be overridden
+ by the proper one at distribution time.
+ (gen_start_date): New variable, the date starting from which the
+ git log entries are to be copied in the generated ChangeLog.
+ (EXTRA_DIST): Add ChangeLog.3 and gitlog-to-changelog.
+ * configure.ac (AC_CONFIG_SRCDIR): Use 'lib/autoconf/autoconf.m4'
+ instead of 'ChangeLog' as the sentinel file.
+ * .gitignore: Add ChangeLog.
+
+2012-01-15 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ cosmetics: fix some typos in ChangeLog
diff --git a/ChangeLog.2 b/ChangeLog.2
index 1f4560b5..30571bf6 100644
--- a/ChangeLog.2
+++ b/ChangeLog.2
@@ -9901,8 +9901,8 @@
1999-08-22 Matthew D. Langston <langston@SLAC.Stanford.EDU>
- * acspecific.m4 (AC_PROG_CC): Remove uname test for win32/Cygwin,
- and just test for `cl' as a last resort.
+ * acspecific.m4 (AC_PROG_CC): Remove uname test for 32-bit
+ Windows/Cygwin, and just test for `cl' as a last resort.
* autoconf.texi (Particular Programs): Document new optional
argument to AC_PROG_CC, AC_PROG_CXX and AC_PROG_F77. Document
diff --git a/ChangeLog.3 b/ChangeLog.3
new file mode 100644
index 00000000..bedcba38
--- /dev/null
+++ b/ChangeLog.3
@@ -0,0 +1,23224 @@
+2012-01-15 Jim Meyering <meyering@redhat.com>
+
+ getopt: refine syntax of previous change
+ * lib/Autom4te/General.pm (getopt): Use a more concise test.
+
+2011-01-15 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ getopt: remove hack for special handling of "-" argument
+
+ Older versions of Getopt::Long acted bogusly and died when they
+ where configured with the 'bundling' flag and an argument '-' was
+ seen on the command line they were parsing. That is no longer
+ the case though, and has not been for quite a long time: the bug
+ is no longer present in the 5.6.2 version of perl and the 2.25
+ version of Getopt::Long (and today, the latest versions of perl
+ and Getopt::Long are respectively 5.14.2 and 2.38). The obsolete
+ workaround for that Getopt::Long bug can thus be removed from our
+ 'getopt' function.
+
+ It is also worth noting that such a workaround was quite buggy
+ and brittle itself; for example, a command like this:
+ "autom4te --output -"
+ would have caused the incorrect diagnostic:
+ "autom4te: option `--output' requires an argument"
+ Much worse, a command like this:
+ "autom4te --language=autoconf --output - configure.ac"
+ would have caused the standard input of autom4te to be processed
+ and copied into the 'configure.ac' file, deleting its pre-existing
+ content! Surely not what a user would have expected.
+
+ After this change, a command like this:
+ autom4te --language=autoconf --output - - <configure.ac >out
+ works as expected, processing the input from 'configure.ac' and
+ writing it to the 'out' file.
+
+ * lib/Autom4te/General.pm (use): Require perl version 5.6.2.
+ (getopt): Remove the old workaround.
+
+2012-01-15 Jim Meyering <meyering@redhat.com>
+
+ avoid new warning about undefined $ARGV[0]
+ * lib/Autom4te/General.pm (getopt): Avoid warning induced by
+ yesterday's change: $ARGV[0] may not be defined, e.g., when
+ invoked via autoreconf.
+
+2011-01-14 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ getopt: fix diagnostic for missing mandatory option argument
+ Before this change, an incorrect command line usage:
+ "autom4te --output"
+ triggered broken diagnostic like:
+ "autom4te: unrecognized option `--output'"
+ instead of the expected and correct:
+ "autom4te: option `--output' requires an argument"
+ * lib/Autom4te/General.pm (getopt): Give correct diagnostic in
+ case of usage errors due to missing arguments for options for
+ which they are mandatory. Code basically copied from automake's
+ 'parse_arguments' private subroutine.
+
+2012-01-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ doc: mention Bash 2.03 bug with backslash-newline
+ * doc/autoconf.texi (Invoking the Shell): New section.
+ (Backslash-Newline-Empty): Rename from Backslash-Newline-Newline.
+ Mention problem with Bash 2.03.
+
+ doc: clarify sed buffer limit
+ * doc/autoconf.texi (Limitations of Usual Tools):
+ That 4000-byte limit applies to output and internal buffers, too.
+
+2012-01-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ maint: update copyright year
+ All files changed to add 2012, via 'make update-copyright'.
+
+ maint: resync upstream files
+ * ChangeLog, GNUmakefile, build-aux/announce-gen:
+ * build-aux/config.guess, build-aux/config.sub, build-aux/gendocs.sh:
+ * build-aux/git-version-gen, build-aux/move-if-change:
+ * build-aux/texinfo.tex, build-aux/update-copyright:
+ * build-aux/vc-list-files, doc/fdl.texi, doc/gendocs_template:
+ * doc/standards.texi, lib/Autom4te/XFile.pm, m4/autobuild.m4:
+ Regenerated by 'make fetch'.
+
+2012-01-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ autoconf: remove " -link" and ")" from xlf output
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT):
+ Also remove " -link" and trailing ")" from xlf output.
+ Problem and fix reported by Thomas Jahns in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2012-01/msg00000.html>.
+
+2011-12-26 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ configure: will re-execute with $CONFIG_SHELL, if it's set
+ * lib/m4sugar/general.m4 (_AS_DETECT_BETTER_SHELL): Define the macro
+ `_AS_FORCE_REEXEC_WITH_CONFIG_SHELL' to `yes', so that the code in
+ `_AS_DETECT_BETTER_SHELL' will cause autoconf-generated configure
+ scripts to always re-execute themselves with $CONFIG_SHELL, if it's
+ set in the environment.
+ * doc/autoconf.texi (config.status Invocation): Update.
+ * doc/install.texi (Defining Variables): Likewise.
+ * NEWS: Likewise.
+ * tests/m4sh.at: Add tests for the new semantics in ...
+ (Configure re-execs self with CONFIG_SHELL): ... this new
+ test group.
+
+2011-12-26 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ m4sh: allow forced re-execution with $CONFIG_SHELL, if it's set
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): If the m4sh client
+ has defined the macro `_AS_FORCE_REEXEC_WITH_CONFIG_SHELL' to
+ "yes", emit code to always re-execute the current script with
+ $CONFIG_SHELL, if that's set.
+ * tests/m4sh.at: Add tests for the new and old semantics, in ...
+ (Re-exec with CONFIG_SHELL, Forced re-exec with CONFIG_SHELL): ...
+ these new test groups.
+
+2011-12-26 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ m4sh: refactor _AS_DETECT_BETTER_SHELL, for future changes
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Move code to
+ handle the re-execution of the shell ...
+ (_AS_REEXEC_WITH_SHELL): ... in this new macro.
+
+2011-12-24 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ docs: issue with shell functions and here-documents on Solaris
+ * doc/autoconf.texi (Here-Documents): Using a command substitution
+ in a here-documents being fed to a shell function is unportable.
+ Problem revealed by the automake testsuite:
+ <http://lists.gnu.org/archive/html/automake-patches/2011-12/msg00149.html>
+
+2011-12-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ AS_LN_S: fall back on 'cp -pR' (not 'cp -p') if 'ln -s' fails
+ This works better for symlinks to directories.
+ Problem reported by Eli Zaretskii via Werner Lemberg in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2011-12/msg00006.html>.
+ * NEWS:
+ * doc/autoconf.texi (Particular Programs): Document this.
+ * lib/m4sugar/m4sh.m4 (_AS_LN_S_PREPARE): Implement this.
+
+2011-12-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ AC_LANG_BOOL_COMPILE_TRY(C): port to g++ with warnings
+ * lib/autoconf/c.m4 (AC_LANG_BOOL_COMPILE_TRY(C)): Use the
+ array as well as setting it, to pacify g++. Reported by
+ Werner Lemberg in
+ <http://lists.gnu.org/archive/html/autoconf/2011-12/msg00005.html>.
+
+2011-12-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ doc: document GNU make's \#
+ * doc/autoconf.texi (Comments in Make Macros): Also mention \#
+ in the right hand side of a macro, as an unportable usage.
+
+2011-11-11 Eric Blake <eblake@redhat.com>
+
+ doc: tweak previous commit
+ * doc/autoconf.texi (Limitations of Builtins) <export>: Give
+ concrete example of offender, and drop redundant text.
+ Reported by Stefano Lattarini.
+
+ doc: mention export portability hint
+ * doc/autoconf.texi (Limitations of Builtins) <export>: Document
+ export limitation.
+ Suggested by Bruno Haible.
+
+2011-10-21 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ fortran: define $GFC to "yes" if $FC is a GNU compiler
+ * lib/autoconf/fortran.m4 (AC_PROG_FC): Define `$GFC' to "yes" if
+ the detected fortran compiler is a GNU compiler, define it to the
+ empty string otherwise.
+ This is mostly for consistency for what is done for the C, C++
+ and Fortran 77 compilers.
+ * doc/automake.texi: Update.
+
+2011-10-13 Eric Blake <eblake@redhat.com>
+
+ admin: mention recent copyright assignments
+ * AUTHORS: Update list.
+
+2011-10-06 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ docs: we prefer US English spelling over British one
+ * doc/autoconf.texi (Parallel Make): Prefer `behavior' over
+ `behaviour' in a couple of places.
+
+2011-10-06 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ docs: some fixlets in section about shell signal handling
+ * doc/autoconf.texi (Signal handling): Rename ...
+ (Signal Handling): ... to this, for consistency with other node
+ names. Fix some typos and grammaros. Add more URL references
+ in comments.
+
+2011-10-06 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ docs: korn shells can have $? > 256 for signal-terminated children
+ Some Korn shells, when a child process dies due to signal number
+ n, can leave in $? an exit status of 256+n, instead of the more
+ common 128+n. See also Austin Group issue 0000051:
+ <http://www.austingroupbugs.net/view.php?id=51>
+ * doc/autoconf.texi (Signal handling): Document the described Korn
+ Shell behaviour, and some of its possible shortcomings.
+ Suggestion by Eric Blake.
+
+2011-09-26 Eric Blake <eblake@redhat.com>
+
+ docs: relax documentation license by dropping cover text
+ * doc/autoconf.texi (copying): Drop front- and back-cover texts.
+ * NEWS: Document this.
+ Reported by Brian Gough.
+
+2011-09-13 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ docs: signal-related bugs and incompatibilities for the shells
+ Motivated by recent discussion on the bug-autoconf list, as well
+ as work in the automake testsuite:
+ <https://lists.gnu.org/archive/html/bug-autoconf/2011-09/msg00003.html>
+ <https://lists.gnu.org/archive/html/bug-autoconf/2011-09/msg00004.html>
+ <http://lists.gnu.org/archive/html/automake-patches/2011-09/msg00066.html>
+ * doc/autoconf.texi (Signal handling): New paragraph.
+ (@menu at "Portable Shell", @detailmenu): Update.
+
+2011-09-19 Eric Blake <eblake@redhat.com>
+
+ docs: refer to correct AC_RUN_IFELSE parameter name
+ * doc/autoconf.texi (Runtime) <AC_RUN_IFELSE>: Fix wording.
+ Reported by Reuben Thomas.
+
+2011-09-16 Eric Blake <eblake@redhat.com>
+
+ docs: fix typo in shell example
+ * doc/autoconf.texi (Shell Substitutions): Fix typo.
+ * THANKS: Update.
+ Reported by Nick Bowler.
+
+2011-09-14 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ docs: more details about make VPATH rewriting woes
+ * doc/autoconf.texi (Automatic Rule Rewriting): Solaris make
+ VPATH rewriting applies to any whitespace-separated word in a
+ rule, so it might apply also to shell variables, functions
+ and keywords (and automake has already tripped on this once);
+ document this, with an example. Since we are at it, do some
+ minor reformatting of existing text.
+
+2011-09-13 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ docs: document Solaris 10 /bin/ksh and XPG4 sh 'unset' bug
+ * doc/autoconf.texi (Limitations of Builtins): Solaris 10 ksh
+ and XPG4 sh also fails upon `unset' of a variable that is not
+ set.
+
+2011-07-24 Jim Meyering <meyering@redhat.com>
+
+ docs: improve the prose describing _AC_CHECK_TYPE_NEW_BODY
+ * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW_BODY): Improve prose.
+
+2011-08-31 Paul Eggert <eggert@cs.ucla.edu>
+
+ AC_C_CONST: don't reject gcc -Werror -Wall
+ * lib/autoconf/c.m4 (AC_C_CONST): Don't reject gcc when it is used
+ with -Werror -Wall during configuring. It's unwise to use GCC
+ that way, but apparently enough people do it nowadays that it's an
+ issue. These days nobody uses the old compilers that the old
+ tests reject, so we can't test this fix against them, but it's
+ more important to work with modern GCC (even when misused) than to
+ work with no-longer-used compilers. Problem reported by Shevek in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2008-11/msg00007.html>
+ and raised again by Dan Kegel in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2011-08/msg00020.html>.
+
+2011-08-16 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ docs: other issues with parallel BSD make
+ Motivated by automake bug#9245:
+ <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9245>
+ and FreeBSD PR bin/159730:
+ <http://www.freebsd.org/cgi/query-pr.cgi?pr=159730>
+ * doc/autoconf.texi (Parallel Make): Document other BSD make
+ incompatibilities. Reorganize the existing related documentation
+ accordingly.
+
+2011-08-08 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ docs: fix minor typos
+ * doc/autoconf.texi (Shell Functions): Fix a couple of minor typos.
+
+2011-08-04 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ docs: another Solaris sh bug with redirected `:'
+ * doc/autoconf.texi (File Descriptors): Solaris 10 /bin/sh
+ "optimizes" away redirected `:' commands in a shell function
+ after the first call.
+
+2011-07-31 Paul Eggert <eggert@cs.ucla.edu>
+
+ docs: modernize treatment of ns-resolution timestamps
+ * doc/autoconf.texi (Limitations of Usual Tools): ns-resolution time
+ stamps are now routinely supported by coreutils 'cp' etc.
+
+2011-07-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/specific.m4 (AC_SYS_LARGEFILE): Port to Mac OS X 10.5
+ by defining _DARWIN_USE_64_BIT_INODE. Imported from gnulib.
+
+2011-07-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/specific.m4 (AC_USE_SYSTEM_EXTENSIONS): Quote cleanly.
+ This is imported from gnulib. gnulib also has an HP-UX 11.11 fix, but
+ let's see if we can do that another way, as it's pretty heavyweight.
+
+2011-07-22 Eric Blake <eblake@redhat.com>
+
+ docs: fix minor doc problems
+ * doc/autoconf.texi (Why Not Imake): Fix grammar.
+ (autoreconf Invocation): Fix short option for --version.
+ * THANKS: Update.
+ Reported by Christophe Jarry and Russ Allbery.
+
+2011-07-12 Benoit Sigoure <tsunanet@gmail.com> (tiny change)
+
+ docs: fix typo in AC_PATH_PROG
+ * doc/autoconf.texi (Erlang Compiler and Interpreter):
+ s/AC_PROG_PATH/AC_PATH_PROG/.
+ * THANKS: Update.
+
+2011-06-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/semantics.at (AC_REPLACE_FUNCS): Test for just-fixed bug.
+
+2011-06-30 Timo Kamph <timo.kamph@tu-harburg.de> (trivial change)
+
+ * lib/autoconf/functions.m4 (_AC_REPLACE_FUNCS): Fix tr-cpp problem.
+ See http://lists.gnu.org/archive/html/bug-autoconf/2011-06/msg00058.html
+
+2011-06-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/functions.m4 (_AC_LIBOBJ_ALLOCA): Be even smarter.
+ GCC was too smart for the previous patch. See
+ <http://lists.gnu.org/archive/html/bug-autoconf/2011-06/msg00035.html>.
+
+2011-06-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/functions.m4 (_AC_LIBOBJ_ALLOCA): Try to outsmart GCC.
+ Problem with stack-detection code reported by Andy Wingo in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2011-06/msg00032.html>.
+ This fix is imported from gnulib's c-stack module.
+
+ * doc/autoconf.texi (File Descriptors): Fix texinfo typo.
+
+2011-06-14 Eric Blake <eblake@redhat.com>
+
+ doc: mention more about ksh cloexec behavior
+ * doc/autoconf.texi (File Descriptors): Clarify that only the exec
+ builtin suffers from cloexec issues.
+
+ doc: update quoting example
+ * doc/autoconf.texi (Autoconf Language): Add AC_LANG_SOURCE use.
+ * THANKS: Update.
+ Reported by Křištof Želechovski.
+
+2011-05-05 Eric Blake <eblake@redhat.com>
+
+ doc: document dash bug with positional parameters
+ * doc/autoconf.texi (Shell Substitutions) <${10}>: Document
+ a pitfall with $10.
+
+2011-04-27 Eric Blake <eblake@redhat.com>
+
+ docs: document NetBSD join bug
+ * doc/autoconf.texi (Limitations of Usual Tools) <join>: Mention
+ bug in -a parsing.
+ Reported by J.T. Conklin.
+
+2011-04-13 Eric Blake <eblake@redhat.com>
+
+ maint: reflect recent copyright assignments
+ * AUTHORS: Update.
+
+2011-04-05 Eric Blake <eblake@redhat.com>
+
+ maint: reflect recent copyright assignments
+ * AUTHORS: Update.
+
+2011-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ New macro AC_FC_PP_DEFINE for the preprocessor define flag.
+ * lib/autoconf/fortran.m4 (AC_FC_PP_DEFINE): New macro.
+ * lib/autom4te.in (Automake-preselections): Preselect it.
+ * doc/autoconf.texi (Fortran Compiler): Document it.
+ * tests/local.at (_AT_CHECK_ENV): Do not complain about
+ FCFLAGS_F nor FC_DEFINE.
+ * NEWS: Update.
+
+ New macro AC_FC_PP_SRCEXT for preprocessed file extensions.
+ * lib/autoconf/fortran.m4 (AC_FC_PP_SRCEXT): New macro.
+ * lib/autom4te.in (Automake-preselections): Preselect it.
+ * doc/autoconf.texi (Fortran Compiler): Document it, rewriting
+ the documentation for AC_FC_SRCEXT along the way.
+ * tests/fortran.at (AC_FC_PP_SRCEXT usage): New test.
+ * tests/mktests.sh: Exclude the macro from default testing.
+ * NEWS: Update.
+
+ New macro AC_FC_MODULE_OUTPUT_FLAG: module output directory.
+ * lib/autoconf/fortran.m4 (AC_FC_MODULE_OUTPUT_FLAG): New macro.
+ * doc/autoconf.texi (Fortran Compiler): Document it.
+ * tests/local.at (_AT_CHECK_ENV): Do not complain about
+ FC_MODOUT.
+ * NEWS: Update.
+
+2011-04-02 Luc Maisonobe <luc@spaceroots.org>
+ Julian C. Cummings <cummings@cacr.caltech.edu>
+ Alexander Pletzer <pletzer@txcorp.com>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ New macro AC_FC_MODULE_FLAG: Fortran 90 module include path.
+ * lib/autoconf/fortran.m4 (AC_FC_MODULE_FLAG): New macro,
+ adjusted and rewritten from the AX_F90_MODULE_FLAG macro from
+ the Autoconf Macro Archive by Luc Maisonobe, Julian C. Cummings,
+ and Alexander Pletzer.
+ * doc/autoconf.texi (Fortran Compiler): Document it.
+ * tests/fortran.at (AC_FC_MODULE_FLAG): New test.
+ * tests/local.at (AT_CHECK_ENV): Do not complain about FC_MODINC
+ setting.
+ * NEWS, THANKS: Update.
+
+2011-04-02 Luc Maisonobe <luc@spaceroots.org>
+ Alexander Pletzer <pletzer@txcorp.com>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ New macro AC_FC_MODULE_EXTENSION: Fortran 90 module extension.
+ * lib/autoconf/fortran.m4 (AC_FC_MODULE_EXTENSION): New macro,
+ rewritten from the AX_F90_MODULE_EXTENSION macro from the
+ Autoconf Macro Archive by Luc Maisonobe and Alexander Pletzer.
+ * doc/autoconf.texi (Fortran Compiler): Document it.
+ * tests/local.at (_AT_CHECK_ENV): Do not complain about
+ FC_MODEXT setting.
+ * NEWS, THANKS: Update.
+
+2011-03-26 Jim Meyering <meyering@redhat.com>
+
+ README-hacking: fix typo
+ * README-hacking: s/just build/just built/.
+
+2011-03-08 Colin Watson <cjwatson@debian.org> (tiny change)
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Particular Functions): Document AC_FUNC_FORK
+ cache variables.
+ * THANKS: Update.
+
+2011-03-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ docs: BSD and Solaris make trailing space macro issue.
+ * doc/autoconf.texi (Trailing whitespace in Make Macros):
+ Document issue with trailing whitespace in macro settings.
+
+2011-03-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix Cray Fortran flag for AC_FC_IMPLICIT_NONE.
+ * lib/autoconf/fortran.m4 (_AC_FC_IMPLICIT_NONE): Use -e I
+ not -d i, for Cray ftn.
+ * THANKS: Update.
+ Thanks to Tobias Burnus for feedback and testing.
+
+ docs: document several Fortran and OpenMP cache variables.
+ * doc/autoconf.texi (Generic Compiler Characteristics)
+ [AC_OPENMP]: Document associated cache variables.
+ (Fortran Compiler) [AC_PROG_F77, AC_PROG_FC, AC_PROG_F77_C_O]
+ [AC_PROG_FC_C_O, AC_F77_LIBRARY_LDFLAGS, AC_FC_LIBRARY_LDFLAGS]
+ [AC_F77_DUMMY_MAIN, AC_FC_DUMMY_MAIN, AC_F77_MAIN, AC_FC_MAIN]
+ [AC_F77_WRAPPERS, AC_FC_WRAPPERS, AC_FC_FREEFORM]
+ [AC_FC_FIXEDFORM, AC_FC_LINE_LENGTH, AC_FC_CHECK_BOUNDS]
+ [AC_F77_IMPLICIT_NONE, AC_FC_IMPLICIT_NONE]: Document and/or
+ index the cache variables used by these macros.
+
+2011-03-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ and Eric Blake <eblake@redhat.com>
+
+ build: exclude M4 with buggy strstr
+ * m4/m4.m4 (AC_PROG_GNU_M4): When searching PATH, do not accept
+ an m4 that has either the gnulib strstr bug, or the glibc/gnulib
+ strstr bug.
+
+2011-03-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ docs: fix description of AC_F77_IMPLICIT_NONE.
+ * doc/autoconf.texi (Fortran Compiler) [AC_F77_IMPLICIT_NONE]:
+ This macro modifies FFLAGS, not FCFLAGS.
+
+ AC_FC_SRCEXT: allow gfortran to compile .f77 files.
+ * lib/autoconf/fortran.m4 (AC_FC_SRCEXT): Try '-x f77' for .f77
+ files, '-x f95' for others, for gfortran.
+
+ New macros AC_{F77,FC}_IMPLICIT_NONE to disable Fortran implicit int.
+ * lib/autoconf/fortran.m4 (_AC_FC_IMPLICIT_NONE): New internal
+ macro.
+ (AC_F77_IMPLICIT_NONE, AC_FC_IMPLICIT_NONE): New macros.
+ * doc/autoconf.texi (Fortran Compiler): Document them.
+ * NEWS: Update.
+
+ New macro AC_FC_CHECK_BOUNDS to enable Fortran array bounds checking.
+ * lib/autoconf/fortran.m4 (AC_FC_CHECK_BOUNDS): New macro.
+ * doc/autoconf.texi (Fortran Compiler): Document it.
+ * tests/fortran.at (AC_FC_CHECK_BOUNDS): New test.
+ * NEWS: Update.
+ Prompted by report from Eve-Marie Devaliere.
+
+2011-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Update known compiler switches for Fortran and OpenMP macros.
+ * lib/autoconf/c.m4 (AC_OPENMP): Update for Lahey on GNU/Linux.
+ * lib/autoconf/fortran.m4 (_AC_F95_FC): Also try nagfor.
+ (_AC_PROG_FC_V): Update documentation for Lahey switches.
+ (AC_FC_FREEFORM, AC_FC_FIXEDFORM): Add flags for Absoft, Lahey
+ on GNU/Linux, document NAGWare, g95, and f2c switches.
+ (AC_FC_LINE_LENGTH): Document NAGware switch. Update Absoft,
+ Lahey, NAGWare, Open Watcom, g95, and f2c switches.
+
+ tests: accept f2c/fort77 as GNU Fortran 77.
+ * tests/fortran.at (GNU Fortran 77): Try to detect f2c wrapper
+ fort77 as GNU as well: it defines __GNUC__ too. Fixes testsuite
+ failure when f77 is fort77.
+ Report from Giulio Paci.
+
+ docs: macro synopses document default failure cases.
+ * doc/autoconf.texi (Fortran Compiler, Obsolete Macros):
+ Document failure case for AC_F77_DUMMY_MAIN, AC_FC_DUMMY_MAIN,
+ AC_FC_SRCEXT, AC_FC_FREEFORM, AC_FC_FIXEDFORM,
+ AC_FC_LINE_LENGTH, and AC_TRY_RUN macros.
+
+ Reword Fortran macro documentation.
+ * doc/autoconf.texi (Fortran Compiler): Improve wording for
+ AC_FC_FREEFORM, AC_FC_FIXEDFORM, and AC_FC_LINE_LENGTH macros.
+
+2011-02-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ config.status: do not quote $SHELL when rerunning configure.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Allow
+ $SHELL to contain more than one word, when rerunning configure,
+ for debugging purposes like CONFIG_SHELL='/bin/sh -x'.
+
+2011-02-21 Ian Lance Taylor <iant@google.com>
+
+ * lib/autoconf/go.m4: New file.
+ * lib/autoconf/autoconf.m4: Include autoconf/go.m4.
+ * lib/autoconf/Makefile.am (dist_autoconflib_DATA): Add go.m4.
+ * lib/freeze.mk (autoconf_m4f_dependencies): Add
+ $(src_libdir)/autoconf/go.m4.
+ * doc/autoconf.texi: Rebuild menus.
+ (Preset Output Variables): Mention Go. Document GOFLAGS.
+ (Libraries): Mention Go.
+ (Go Compiler): New subsection.
+ (Language Choice): Mention Go.
+ (Generating Sources): Likewise.
+ (Running the Preprocessor): Likewise.
+ * tests/go.at: New file.
+ * tests/suite.at: Include go.at and acgo.at.
+ * tests/local.at (_AT_CHECK_ENV): Add GOC and GOFLAGS.
+ * tests/Makefile.am (TESTSUITE_GENERATED_AT): Add
+ $(srcdir)/acgo.at.
+ (TESTSUITE_HAND_AT): Add go.at.
+ (AUTOCONF_FILES): Add $(autoconfdir)/go.m4.
+ * NEWS: Update.
+
+2011-02-20 Christian Rössel <christian.roessel@gmx.de> (tiny change)
+ Markus Geimer <m.geimer@fz-juelich.de> (tiny change)
+
+ Fix OpenMP flag detection for various Fortran compilers.
+ * lib/autoconf/c.m4 (_AC_LANG_OPENMP(Fortran 77)): Use '!$'
+ OpenMP-conditional compilation construct, to force compile
+ failure with missing OpenMP flag.
+ (AC_OPENMP): Add flags for Cray CCE and NEC SX compilers.
+ * THANKS: Update.
+
+2011-02-18 Eric Blake <eblake@redhat.com>
+
+ docs: document fourth argument of AC_RUN_IFELSE better
+ * doc/autoconf.texi (Runtime) <AC_RUN_IFELSE>: Make synopsis show
+ that the default is configure failure. Rework the text about
+ proper use of the fourth argument.
+
+ long long: don't abort configure when cross-compiling
+ * lib/autoconf/types.m4 (AC_TYPE_LONG_LONG_INT): Provide no-op
+ cross-compiling fallback; fixing regression from 2011-02-16.
+
+2011-02-16 Patrick Welche <prlw1@cam.ac.uk> (tiny change)
+
+ docs: fix a typo
+ * doc/autoconf.texi (Generic Structures): Fix typo.
+
+2011-02-16 Matt Kraai <kraai@ftbfs.org> (tiny change)
+
+ docs: fix some typos
+ * doc/autoconf.texi (testsuite Scripts): Fix typos.
+ * THANKS: Update.
+
+2011-02-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ autoconf: tune long long tests, particularly for c99
+
+ This change is imported from gnulib.
+ * lib/autoconf/types.m4 (AC_TYPE_LONG_LONG_INT): Don't bother compiling
+ or running anything if c99, or if unsigned long long int does not
+ work. In either case, we know the answer without further tests.
+ Do not compile _AC_TYPE_LONG_LONG_SNIPPET twice. Instead, compile
+ it at most once, and use its results for both long long int and
+ unsigned long long int. This is more likely to be efficient in
+ the common case where the program wants to check for both long
+ long int and unsigned long long int.
+ (AC_TYPE_UNSIGNED_LONG_LONG_INT): Don't bother compiling if c99,
+ since the answer is already known.
+
+2011-02-15 Eric Blake <eblake@redhat.com>
+
+ doc: fix debug advice typo
+ * doc/autoconf.texi (Debugging): Put shell option in right place.
+ Reported by Reuben Thomas.
+
+2011-02-12 Giulio Paci <giuliopaci@interfree.it> (tiny change)
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix detection of link flags for fort77 on GNU/Linux.
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): Properly detect
+ the fort77 (f2c wrapper) compiler verbose linking output flag.
+ Fixes also AC_F77_LIBRARY_LDFLAGS and AC_F77_DUMMY_MAIN.
+ * THANKS: Update.
+
+2011-02-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi: Rebuild menus using emacs ^C ^U ^A.
+
+2011-02-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ autoconf: new macro AC_HEADER_CHECK_STDBOOL
+ * NEWS: Document this.
+ * doc/autoconf.texi (Particular Headers): Likewise.
+ In example, don't assume a 'system.h' exists.
+ * lib/autoconf/headers.m4 (AC_CHECK_HEADER_STDBOOL): New macro.
+ Use it with AN_IDENTIFIER, since it's less heavyweight.
+ Reindent to match gnulib, since that's a bit nicer.
+ (AC_HEADER_STDBOOL): Reimplement in terms of it.
+
+2011-01-29 Jim Warhol <jrw@jwarhol.com> (tiny change)
+
+ * doc/autoconf.texi (Introduction): Fix typo.
+ * THANKS: Update.
+
+2011-01-27 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ docs: another parallel make issue
+ * doc/autoconf.texi (Parallel Make): Document that some make
+ implementations, when run in parallel mode, connect stdout and
+ stderr of child processes to pipes or temporary files, and might
+ re-route stderr of spawned processes to stout. Also document
+ that FreeBSD make in parallel mode reuses the same shell for
+ multiple commands within one recipe (like NetBSD make does).
+
+2011-01-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ Eric Blake <eblake@redhat.com>
+
+ docs: advise against HP-UX make due to time stamp semantics.
+ * doc/autoconf.texi (Timestamps and Make): Document HP-UX 11.31
+ make issue with targets having the same time stamps as their
+ prerequisites.
+ * doc/install.texi (Particular Systems): Warn against using
+ HP-UX make.
+
+2011-01-25 Eric Blake <eblake@redhat.com>
+
+ maint: reflect recent copyright assignments
+ * AUTHORS: Update.
+
+2011-01-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ docs: new section about whitespace trimmed from make command-lines.
+ * doc/autoconf.texi (Command-line Macros and whitespace): New
+ section, document trimming of whitespace from macros set on the
+ command line and from the environment.
+
+2011-01-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ docs: document how to use comment characters in rules.
+ * doc/autoconf.texi (Comments in Make Rules): Explain how to
+ produce a `#' in a rule.
+ (Comments in Make Macros): Add cross reference.
+ Suggestion from Eric Blake.
+
+ docs: new sections about comments and whitespace in make macros.
+ * doc/autoconf.texi (Top, Portable Make): Adjust menus.
+ (Comments in Make Macros, Trailing whitespace in Make Macros):
+ New sections.
+ Suggestion by Stefano Lattarini.
+
+ docs: do not use AIX 5.3 cp -R.
+ * doc/autoconf.texi (Limitations of Usual Tools): Document one
+ instance of the cp -R bug on AIX 5.3. This seems to have been
+ fixed in 6.1 and newer releases.
+
+ docs: update entry about unset.
+ * doc/autoconf.texi (Limitations of Builtins): NetBSD sh unset
+ also fails upon `unset' of a variable that is not set. Bash 2.01
+ could also dump core over `unset MAILPATH'.
+ Suggestion by Eric Blake.
+
+2011-01-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix LEXLIB and YYTEXT_POINTER with IRIX 6.5 flex 2.5.4.
+ * lib/autoconf/programs.m4 (_AC_PROG_LEX_YYTEXT_DECL):
+ Overquote nontrivial yyless argument, to compensate for
+ underquoted macro definition in IRIX 6.5 flex 2.5.4
+ leading to compile failure due to incompatible operands.
+ Fixes Automake silent-lex-generic.test failure.
+
+2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ docs: Tru64/OSF sh treats read as special builtin
+ * doc/autoconf.texi (Limitations of Builtins): read may exit
+ upon unreadable or non-existent file with Tru64/OSF 5.1 sh.
+
+2011-01-12 Eric Blake <eblake@redhat.com>
+
+ docs: fix description of m4_ifval
+ * doc/autoconf.texi (Conditional constructs) <m4_ifval>: Use
+ correct argument order.
+ * THANKS: Update.
+ Reported by Mostafa.
+
+2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Avoid reference to $CYGWIN in Fortran macros.
+ * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS): Require
+ AC_CANONICAL_HOST. Replace test for $CYGWIN with $host_s test.
+ * tests/fortran.at (AC_F77_DUMMY_MAIN usage)
+ (AC_FC_DUMMY_MAIN usage, AC_F77_MAIN usage, AC_FC_MAIN usage):
+ Use AT_CONFIGURE_AC and simplify accordingly, so auxiliary
+ scripts are copied into the test directories.
+ (AC_F77_FUNC usage, AC_FC_FUNC usage): Likewise. Adjust to
+ autoheader being used now.
+
+ docs: link to Gnulib configmake documentation.
+ * doc/autoconf.texi (Defining Directories): Use proper crossref,
+ now that the Gnulib manual has a configmake section.
+ Thanks to Karl Berry.
+
+2011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ docs: link to 'set -e' shell behavior overview.
+ * doc/autoconf.texi (Limitations of Builtins): Add link to
+ Sven Mascheck's 'set -e' page. Replace broken Opengroup link.
+ Suggestion by Eric Blake.
+
+ docs: mention configmake module for defining directories.
+ * doc/autoconf.texi (Defining Directories): Mention configmake
+ gnulib module.
+ Suggestion by Karl Berry and Eric Blake.
+
+2011-01-04 Eric Blake <eblake@redhat.com>
+
+ doc: improve install.texi texinfo markup
+ * doc/install.texi: Don't force @firstparagraphindent on all
+ clients; instead, add it only when building INSTALL. Compress
+ copyright.
+ * Makefile.am (INSTALL): Match gnulib's formatting.
+ Reported by Karl Berry.
+
+ maint: update copyright year
+ All files changed to add 2011, via 'make update-copyright'.
+
+ maint: resync upstream files
+ * GNUmakefile: Regenerated by 'make fetch'.
+ * build-aux/config.guess: Likewise.
+ * build-aux/config.sub: Likewise.
+ * build-aux/gendocs.sh: Likewise.
+ * build-aux/git-version-gen: Likewise.
+ * build-aux/texinfo.tex: Likewise.
+ * doc/make-stds.texi: Likewise.
+ * lib/Autom4te/Channels.pm: Likewise.
+ * lib/Autom4te/Configure_ac.pm: Likewise.
+ * lib/Autom4te/FileUtils.pm: Likewise.
+ * lib/Autom4te/Struct.pm: Likewise.
+ * lib/Autom4te/XFile.pm: Likewise.
+
+ maint: document use of copyright ranges
+ * README: Copy coreutils wording for allowing copyright year
+ ranges.
+ * cfg.mk (UPDATE_COPYRIGHT_USE_INTERVALS): Now that GNU Coding
+ Standards permit it, prefer shorthand copyright.
+ * .x-update-copyright: Exempt an imported file.
+
+2011-01-03 Karl Berry <karl@freefriends.org>
+
+ Avoid using @acronym in install.texi.
+ * doc/install.texi (Basic Installation, Multiple Architectures)
+ (Installation Names): Write `GNU' instead of `@acronym{GNU}'.
+
+2010-12-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ autoconf: Use -D_STDC_C99=, not -xc99=all, with Solaris cc
+ * lib/autoconf/c.m4 (_AC_PROG_CC_C99): Use -D_STDC_C99= rather than
+ -xc99=all to convince Solaris Studio cc to compile c99 programs.
+
+2010-11-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ autotest: fix file descriptor leak
+ * lib/autotest/general.m4 (_AT_CHECK): Close AS_MESSAGE_LOG_FD
+ when running the test. Problem reported by Luke Mewburn in
+ <http://lists.gnu.org/archive/html/autoconf/2010-11/msg00036.html>.
+
+2010-11-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ autoconf: don't assume sys/stat.h and sys/types.h when testing C89
+ Problem reported by Patrick Pelissier in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2010-11/msg00019.html>.
+ * lib/autoconf/c.m4 (_AC_PROG_CC_C89): Don't include sys/types.h
+ and sys/stat.h. Instead, define a dummy struct stat. C89 doesn't
+ guarantee sys/types.h and sys/stat.h.
+
+2010-11-10 Reuben Thomas <rrt@sc3d.org> (tiny change)
+
+ docs: avoid first person, and credit history to David MacKenzie
+ * doc/autoconf.texi (History): Add credit.
+
+2010-10-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ docs: Posix now says "((cat))" isn't portable
+ * doc/autoconf.texi (Parenthesis): Update documentation to reflect
+ what Posix 1003.1-2008 says about "((".
+
+2010-10-20 Eric Blake <eblake@redhat.com>
+
+ docs: document dash bug in <>
+ * doc/autoconf.texi (File Descriptors): Dash 0.5.5 truncates on
+ <>; at least this was fixed in dash 0.5.6.
+
+2010-10-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ tests: avoid AC_CACHE_CHECK test failure with dash.
+ * tests/base.at (AC_CACHE_CHECK): Normalize configure exit
+ status in presence of syntax error in sourced site file.
+ Do not error out if configure is aborted at this point.
+ Fixes testsuite failure with dash 0.5.5.1.
+
+2010-10-08 Eric Blake <eblake@redhat.com>
+
+ AS_LITERAL_IF: Treat raw = as literal again.
+ * lib/m4sugar/m4sh.m4 (_AS_LITERAL_IF): Treat = like +.
+ * tests/m4sh.at (AS@&t@_TR_SH and AS@&t@_TR_CPP)
+ (AS@&t@_LITERAL_IF): Expand tests.
+ * NEWS: Document the fix.
+ Reported via Ben Pfaff; originally http://bugs.debian.org/593838
+
+2010-09-24 Joshua G. Hale <jgh.emc@gmail.com> (tiny change)
+
+ docs: fix typo in AC_CONFIG_FILES example code.
+ * doc/autoconf.texi (Configuration Actions): Fix typo.
+ * THANKS: Update.
+
+2010-10-05 Eric Blake <eblake@redhat.com>
+
+ doc: suggest a few more workarounds
+ * doc/autoconf.texi (Limitations of Usual Tools) <tr>: Mention
+ that 'redundant' brackets can work around Solaris bug.
+ (File Descriptors): Mention that {} works as well as () for
+ silencing file-not-found warnings.
+ * THANKS: Update.
+ Suggested by Pádraig Brady.
+
+2010-09-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ tests: normalize trailing spaces in gcc -E -dD output.
+ * tests/compile.at (AC_LANG_SOURCE example)
+ (AC_LANG_PROGRAM example): Remove trailing spaces before
+ comparing with expected output. Fixes testsuite failure
+ with GCC 2.95.3 on Haiku.
+ Report by Scott McCreary.
+
+2010-09-22 Eric Blake <eblake@redhat.com>
+
+ Release Version 2.68.
+ * NEWS: Mention the release.
+
+2010-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ autom4te: add traces for likely future Automake macros
+ * lib/autom4te.in (Automake-preselections): Trace
+ AM_MAKEFILE_INCLUDE, AM_NLS, AM_POT_TOOLS, AM_PATH_GUILE,
+ AM_PROG_MOC, AM_XGETTEXT_OPTION, _AM_MAKEFILE_INCLUDE.
+
+2010-09-22 Eric Blake <eblake@redhat.com>
+
+ AC_REPLACE_FUNCS: allow split lines again
+ * lib/autoconf/functions.m4 (AC_REPLACE_FUNCS): Flatten newlines
+ and move guts...
+ (_AC_REPLACE_FUNCS): ...to new helper.
+ * tests/semantics.at (AC_REPLACE_FUNCS): Enhance test.
+ Reported by Ralf Wildenhues.
+
+2010-09-21 Eric Blake <eblake@redhat.com>
+
+ AC_LIBOBJ: optimize internal use
+ * lib/autoconf/general.m4 (_AC_LIBOBJ): Move literal check...
+ (AC_LIBOBJ): ...into callers.
+ * lib/autoconf/functions.m4 (_AC_REPLACE_FUNC): Likewise, thus
+ avoiding a second call to AS_LITERAL_IF.
+
+ AC_REPLACE_FUNCS: restore shell loop for non-literal
+ * lib/autoconf/functions.m4 (AC_REPLACE_FUNCS): Handle
+ non-literals, which was lost in 2010-02-26 optimization.
+ * tests/semantics.at (AC_REPLACE_FUNCS): Enhance test.
+ * NEWS: Document the fix.
+ * THANKS: Update.
+ Reported by Wiseman Jun.
+
+ maint: resync upstream files
+ * build-aux/gendocs.sh: Resync via 'make fetch'.
+
+ tests: XFAIL in the face of a MacOS X bug
+ * doc/autoconf.texi (Limitations of Usual Tools) <sed>: Mention
+ the issue.
+ * tests/torture.at (Substitute and define special characters):
+ Detect if sed cannot process 8-bit bytes in the C locale.
+ * THANKS: Update.
+ Reported by Rochan.
+
+2010-09-20 Eric Blake <eblake@redhat.com>
+
+ autom4te: don't filter out portions of location traces
+ * bin/autom4te.in (_m4_warn): Pass warnings through the channels
+ machinery as a single chunk, to avoid partial filtering.
+ * lib/m4sugar/m4sugar.m4 (_m4_warn): Document the conventions.
+ * tests/m4sugar.at (m4@&t@_warn): Enhance test to catch this.
+ Reported by Bruno Haible.
+
+2010-09-17 Eric Blake <eblake@redhat.com>
+
+ build: support autobuild
+ * cfg.mk (gnulib-update): Add autobuild.m4.
+ * configure.ac (AB_INIT): Output autobuild header.
+ * m4/autobuild.m4: New file, from gnulib.
+ * build-aux/config.guess: Resync from upstream.
+ * build-aux/config.sub: Likewise.
+ * build-aux/texinfo.tex: Likewise.
+ * doc/fdl.texi: Likewise.
+ * doc/gnu-oids.texi: Likewise.
+ * doc/make-stds.texi: Likewise.
+ * doc/standards.texi: Likewise.
+ * build-aux/gendocs.sh: Likewise.
+
+ config.status: avoid corrupting $ac_t
+ * lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS_PREPARE): Use a
+ different name, so as not to clash with pre-2.50 usage of "$ac_t"
+ as a tab character.
+ Reported by Sam Steingold.
+
+2010-09-17 Bruno Haible <bruno@clisp.org>
+
+ docs: mark several macros obsolete
+ * doc/autoconf.texi (Particular Functions): Mark AC_FUNC_ERROR_AT_LINE,
+ AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK, AC_FUNC_MKTIME, AC_FUNC_STRTOD
+ as obsolete and refer to Gnulib.
+ * NEWS: Mention the change.
+
+ AC_FUNC_STRNLEN: more realistic cross-compilation guess
+ * lib/autoconf/functions.m4 (AC_FUNC_STRNLEN): Require
+ AC_CANONICAL_HOST. When cross-compiling, guess it works everywhere
+ except on AIX.
+
+2010-09-16 Eric Blake <eblake@redhat.com>
+
+ m4sh: fix today's AS_BOX regression
+ * lib/m4sugar/m4sh.m4 (_AS_BOX_LITERAL): Fix underquotation.
+ Reported by Stefano Lattarini.
+
+ fortran: avoid misparsed FCLIBS from Fortran compiler
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): Also skip
+ 'Configured by:' lines from gfortran.
+ * NEWS: Mention it.
+ Reported by Stefano Lattarini.
+
+2010-09-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Add autom4te trace for AM_PROG_AR.
+ * lib/autom4te.in (Automake-preselections): Trace
+ AM_PROG_AR.
+
+2010-09-16 Eric Blake <eblake@redhat.com>
+
+ m4sugar: fix regression in AC_MSG_ERROR expansion
+ * lib/m4sugar/m4sugar.m4 (m4_defun_init): Avoid macro
+ concatenation on subsequent expansions
+ * tests/m4sh.at (AS_WARN and AS_ERROR): New test.
+ * tests/m4sugar.at (m4@&t@_require: one-shot initialization):
+ Enhance test.
+ * NEWS: Document the fix.
+ * THANKS: Update.
+ Reported by Adrian Bunk and and Nishio Futoshi.
+
+2010-09-13 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ tests: simplify grepping of 'automake --version'.
+ * tests/tools.at (autom4te preselections): Remove minor
+ redundancies in regular expressions used to grep the output
+ 'automake --version' for test skipping.
+ * tests/torture.at (Configuring subdirectories)
+ (Unusual Automake input files): Likewise.
+
+2010-09-13 Eric Blake <eblake@redhat.com>
+
+ autotest: work around zsh bug
+ * lib/autotest/general.m4 (AT_DATA): Special case an empty data
+ file, since zsh botches empty here-docs.
+ * doc/autoconf.texi (Writing Testsuites) <AT_DATA>: Document that
+ this allows empty contents.
+ * tests/autotest.at (AT_DATA): New test.
+ Reported by Ralf Wildenhues.
+
+ docs: mention gnulib portability docs
+ * doc/autoconf.texi (Function Portability, Header Portability):
+ Add external links to gnulib.
+
+2010-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ Gary V. Vaughan <gary@gnu.org>
+
+ docs: document zsh specialty with empty here-documents.
+ * doc/autoconf.texi (Here-Documents): zsh 4.3.10 adds a newline
+ to empty here-docs.
+
+2010-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ docs: document zsh special array $options.
+ * doc/autoconf.texi (Special Shell Variables): Add entry for
+ `options'.
+
+ doc: minor updates.
+ * doc/autoconf.texi (Generic Compiler Characteristics): Use
+ second argument of @uref consistently, for nicer OpenMP link.
+ (Polymorphic Variables): Restore font-lock.
+ (Debugging): Add item for bashdb.
+
+ Document and test AT_CHECK args shell execution environment.
+ * doc/autoconf.texi (Writing Testsuites): Document that COMMANDS
+ is run in a subshell, but RUN-IF-FAIL and RUN-IF-PASS are not.
+ * tests/autotest.at (AT@&t@_CHECK execution environment): New
+ test.
+ * NEWS: Update.
+
+ autotest: document and test at_status semantics.
+ * doc/autoconf.texi (Writing Testsuites): Document $at_status.
+ * tests/autotest.at (at_status): New test.
+ * NEWS: Update.
+
+ doc: index entries for non-environment, non-output variables.
+ * doc/autoconf.texi: Clarify the meaning of the various variable
+ indices. Merge variable index `vr' into concept index using
+ syncodeindex.
+ (Configuration Actions, Generic Programs, Generic Functions)
+ (Writing Testsuites): Add index entries for documented shell
+ variables used during in configure and testsuite scripts.
+
+2010-09-12 Fernando Carrijo <fcarrijo@freedesktop.org> (tiny change)
+
+ docs: fix minor typo and 'See See foo' instances
+ * doc/autoconf.texi (Buffer Overruns and Subscript Errors): Fix
+ usage of TeX superscript notation to correctly represent number
+ exponent.
+ (Shell Functions): s/[Ss]ee @xref/@xref/
+ (Limitations of Shell Builtins, Canonicalizing): Likewise.
+ * THANKS: Update.
+
+2010-09-13 Eric Blake <eblake@redhat.com>
+
+ tests: skip broken automake wrapper on MirBSD
+ * tests/tools.at (autom4te preselections): Skip, rather than fail,
+ if 'automake --version' succeeds without printing a version when
+ an environment variable is not set.
+ * tests/torture.at (Configuring subdirectories)
+ (Unusual Automake input files): Likewise.
+
+2010-09-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ doc: minor indexing update.
+ (Shell Substitutions, Site Defaults): Fix markup for indexed
+ entried, using @code and @file as appropriate.
+ (M4 Macro Index): Clarify which of the indexed macros have m4_
+ and which have AS_ prefix.
+
+2010-09-08 Eric Blake <eblake@redhat.com>
+
+ m4sh: preserve set -vx over re-exec
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Trace through
+ re-exec, to make it easier to debug script startup issues.
+ Idea from recent bug-gnulib change to init.sh.
+
+ docs: update alloca recommendations
+ * doc/autoconf.texi (Particular Functions): Don't redeclare alloca
+ on FreeBSD.
+ * THANKS: Update.
+ Reported by Giorgos Keramidas.
+
+ docs: link to GNU Coding Standards in intro
+ * doc/autoconf.texi (Introduction): Actually link to the
+ standards. Make other references consistent.
+
+ docs: mention traditional awk limitation
+ * doc/autoconf.texi (Limitations of Usual Tools) <awk>: Mention
+ that traditional awk lacks ENVIRON. Add reference to awk manual.
+ (Particular Programs) <AC_PROG_AWK>: Add reference to awk section.
+ Reported by Ralf Wildenhues.
+
+2010-09-07 Eric Blake <eblake@redhat.com>
+
+ docs: mention bash vs. POSIXLY_CORRECT
+ * doc/autoconf.texi (Special Shell Variables) <POSIXLY_CORRECT>:
+ Document bash behavior.
+ * THANKS: Update.
+ Reported by Dustin J. Mitchell, via bug-gnulib list.
+
+ docs: enhance recommendations on test usage
+ * doc/autoconf.texi (Limitations of Builtins) <test (strings)>:
+ Mention yet another Solaris issue.
+ Reported by Stefano Lattarini.
+
+2010-08-30 Eric Blake <eblake@redhat.com>
+
+ tests: avoid trashing /
+ * tests/torture.at (AC_CONFIG_COMMANDS with temporary directory):
+ Use a relative path, rather than risking issues with /.
+ Reported by Ralf Wildenhues.
+
+ docs: mention Solaris here-docs vs. ${a-"b c"}
+ * doc/autoconf.texi (Shell Substitutions) <${var:=value}>:
+ Document problem of "" within here-docs.
+ Reported by Ralf Wildenhues.
+
+ fortran: always avoid AC_LANG_CONFTEST warning
+ * lib/autoconf/lang.m4 (AC_LANG_CONFTEST()): Make the default
+ match the fact that the default AC_LANG_SOURCE does not inline
+ confdefs.h in the first place.
+ * lib/autoconf/fortran.m4 (AC_FC_FREEFORM, AC_FC_FIXEDFORM)
+ (AC_FC_LINE_LENGTH, __AC_FC_NAME_MANGLING): Revert previous use of
+ AC_LANG_DEFINES_PROVIDED.
+ Suggested by Ralf Wildenhues.
+
+ config.status: minimize use of $tmp
+ * lib/autoconf/status.m4 (_AC_OUTPUT_MAIN_LOOP)
+ (_AC_OUTPUT_FILES_PREPARE, _AC_OUTPUT_FILE)
+ (_AC_OUTPUT_HEADERS_PREPARE, _AC_OUTPUT_HEADER): Use $ac_tmp
+ internally, while preserving $tmp for existing users.
+ * tests/torture.at (AC_CONFIG_COMMANDS with temporary directory):
+ New test, that $tmp is available but not essential.
+
+ docs: avoid use of $tmp outside of config.status use
+ * doc/autoconf.texi (Polymorphic Variables, Shell Substitutions):
+ Use $var or $t instead.
+ (Limitations of Usual Tools): Use $dir instead.
+ (Initialization Macros) <AS_TMPDIR>: Make good on the NEWS
+ regarding AS_TMPDIR being documented as consuming $tmp.
+ Suggested by Ralf Wildenhues.
+
+2010-08-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ AC_PROG_YACC: fix comment re what "yacc" stands for
+ * lib/autoconf/programs.m4 (AC_PROG_YACC): YACC stands for
+ "Yet Another Compiler Compiler", not "Yet Another C Compiler".
+ Problem reported by Chris Long in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2010-08/msg00134.html>.
+
+2010-08-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Avoid long lines in testsuite script.
+ * lib/autotest/general.m4 (AT_INIT): Remove definition of
+ AT_groups_all. Initialize at_groups from at_help_all, with
+ newlines instead of spaces separating test groups numbers.
+ Adjust all code to newlines.
+ * NEWS: Update.
+ * tests/autotest.at (Huge testsuite): New test.
+
+ Try to update config.cache atomically; respect symlinks.
+ * lib/autoconf/general.m4 (AC_CACHE_SAVE): Use `mv -f' to update
+ the cache file if it is a regular file and not a symlink. Move
+ first to temporary name in the target directory if not in the
+ current directory for atomicity across mount points.
+ * tests/base.at (AC_CACHE_CHECK): Try symlinked cache file.
+ * doc/autoconf.texi (Cache Files): Leftover temporary cache
+ files may be deleted by the user.
+ * NEWS: Update.
+
+2010-08-27 Eric Blake <eblake@redhat.com>
+
+ m4sh: protect LINENO against stray macro
+ * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Double quote entire
+ sed script, to avoid issue uncovered by automake testsuite where
+ 'b' was an m4 macro that broke execution on dash.
+ Reported by Stefano Lattarini.
+
+ m4sh: assume ${a:-b} support
+ * tests/m4sh.at (Null variable substitution): New test.
+ * doc/autoconf.texi (Shell Substitutions) <${var:-value}>: Mention
+ that m4sh guarantees support.
+ (Limitations of Usual Tools) <mktemp>: Use it.
+ * lib/m4sugar/m4sh.m4 (AS_LINENO_POP, AS_VAR_IF, AS_TMPDIR):
+ Exploit use of colon for smaller files.
+
+2010-08-26 Eric Blake <eblake@redhat.com>
+
+ docs: document m4_define_default
+ * doc/autoconf.texi (Conditional constructs) <m4_define_default>:
+ Document it, since gnulib wants to use it.
+ * NEWS: Mention this.
+
+ autoconf: warn if AC_*_IFELSE lacks complete program
+ * lib/autoconf/lang.m4 (AC_LANG_DEFINES_PROVIDED): New macro.
+ (AC_LANG_SOURCE): Call it.
+ (AC_LANG_CONFTEST): Add warning if new macro is not called.
+ * lib/autoconf/c.m4 (_AC_LANG_OPENMP): Add missing AC_LANG_SOURCE.
+ * lib/autoconf/fortran.m4 (AC_FC_FREEFORM, AC_FC_FIXEDFORM)
+ (AC_FC_LINE_LENGTH, __AC_FC_NAME_MANGLING): Intentionally bypass
+ AC_LANG_SOURCE.
+ * lib/autoconf/programs.m4 (_AC_PROG_LEX_YYTEXT_DECL): Likewise.
+ * tests/compile.at (AC_COMPILE_IFELSE): New test.
+ * doc/autoconf.texi (Generating Sources) <AC_LANG_CONFTEST>:
+ Document new warning.
+ <AC_LANG_DEFINES_PROVIDED>: Document new macro.
+ <AC_LANG_SOURCE>: Document use of new macro.
+ * NEWS: Document the improvement.
+ Suggested by Bruno Haible.
+
+ autoconf: fix regression in AC_FUNC_SELECT_ARGTYPES
+ * lib/autoconf/functions.m4 (AC_FUNC_SELECT_ARGTYPES): Fix
+ quoting; regression from yesterday leaked '' into default value.
+ Reported by Ralf Wildenhues.
+
+ docs: mention another issue with variable expansion
+ In particular, see http://austingroupbugs.net/view.php?id=221
+ and http://austingroupbugs.net/view.php?id=255.
+ * doc/autoconf.texi (Shell Substitutions) <${var+value}>: New
+ subsection.
+ <${var=literal}>: Tweak wording. Add mention of an ambiguity
+ allowed by POSIX.
+ * tests/torture.at (Substitute and define special characters):
+ Make test more robust; here, the outer "" is in a here-doc, and
+ does not violate the quoting rules of thumb just documented.
+
+2010-08-25 Eric Blake <eblake@redhat.com>
+
+ m4sh: revert incorrect mix of "${a='b'}"
+ * bin/autoconf.as: Revert leak of literal '' into assignment.
+ * tests/tools.at (autom4te preselections): Likewise.
+
+ m4sh: revert regression in AS_TMPDIR
+ * lib/m4sugar/m4sh.m4 (AS_TMPDIR): The previous patch trying to
+ rename $tmp to $as_tmp was wrong; config.status relies on it.
+
+ m4sh: reduce size of AS_VAR_TEST_SET
+ * lib/m4sugar/m4sh.m4 (AS_VAR_TEST_SET): Make more compact.
+
+ tests: improve some shell assumption testing
+ * tests/m4sh.at (Functions Support, Functions and return Support)
+ (Negated classes in globbing): Update comments.
+ (AS@&t@_VAR basics): Test comparison to empty string.
+
+ docs: mention cost of globbing during variable expansion
+ * doc/autoconf.texi (Shell Substitutions) <${var=literal}>:
+ Recommend quoting substitutions that might trigger globbing.
+ (Limitations of Builtins) <:>: Likewise.
+ * bin/autoconf.as: Follow our own advice.
+ * lib/autoconf/functions.m4 (AC_FUNC_SELECT_ARGTYPES): Likewise.
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Likewise.
+ * lib/autoconf/status.m4 (AC_OUTPUT): Likewise.
+ * lib/autotest/general.m4 (_AT_FINISH): Likewise.
+ * lib/m4sugar/m4sh.m4 (AS_TMPDIR): Likewise.
+ * tests/autotest.at (parallel autotest and signal handling):
+ Likewise.
+ * tests/c.at (AC_OPENMP and C, AC_OPENMP and C++): Likewise.
+ * tests/foreign.at (shtool): Likewise.
+ * tests/fortran.at: Likewise.
+ * tests/tools.at (autom4te preselections): Likewise.
+ * tests/torture.at (VPATH): Likewise.
+
+ m4sh: fix some namespace safety issues
+ * lib/m4sugar/m4sh.m4 (_AS_SHELL_SANITIZE): Avoid problems if
+ as_myself is inherited from environment.
+ (AS_TMPDIR): Be namespace clean.
+
+2010-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ tests: fix AC_CACHE_CHECK to skip with bad shells.
+ * tests/base.at (AC_CACHE_CHECK): Skip test with malformed
+ config.site file if the shell does not report syntax errors
+ from a sourced file. Fixes test failure on AIX and FreeBSD.
+ Report from Rainer Tammer.
+
+2010-08-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ AC_HEADER_STDBOOL: avoid spurious failure with modern xlc
+ * lib/autoconf/headers.m4 (AC_HEADER_STDBOOL): Move the "bool e =
+ &s;" test into the main program, as C99 might plausibly be
+ interpreted as not requiring support for this construction in
+ static initializers. Remove the "#if defined __xlc__" stuff, as
+ the bug is not present in recent xlc implementations, and they
+ reject the test for other (valid) reasons. People using ancient
+ xlc versions, if any, are suggested to update to fixed versions.
+ Reported by Ralf Wildenhues in the thread starting at:
+ http://lists.gnu.org/archive/html/bug-autoconf/2010-08/msg00103.html
+
+2010-08-24 Eric Blake <eblake@redhat.com>
+
+ AC_FUNC_GETLOADAVG: don't define SVR4 on cygwin
+ * lib/autoconf/functions.m4 (_AC_LIBOBJ_GETLOADAVG): Only define
+ SVR4 when -lkvm is required.
+ * THANKS: Update.
+ Reported by Yaakov Selkowitz.
+
+2010-08-23 Eric Blake <eblake@redhat.com>
+
+ AC_HEADER_STDBOOL: avoid spurious clang failure
+ * lib/autoconf/headers.m4 (AC_HEADER_STDBOOL): Drop gcc (and by
+ extension clang) check in favor of a gnulib test. Force failure,
+ rather than merely testing for a compiler extension.
+ * THANKS: Update.
+ Reported by Anders Kaseorg.
+
+2010-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ doc: AIX sed dislikes indented comments.
+ * doc/autoconf.texi (Limitations of Usual Tools) <sed>: Update.
+
+2010-08-19 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ Fix autoreconf docs w.r.t. AUTOM4TE environment variable.
+ * doc/autoconf.texi (Using autoreconf to Update configure
+ Scripts): List `AUTOM4TE' among the environment variables
+ honored by autoreconf.
+ * bin/autoreconf.in ($help): Likewise.
+
+2010-08-17 Eric Blake <eblake@redhat.com>
+
+ doc: improve AS_VAR_IF details
+ * doc/autoconf.texi (Polymorphic Variables) <AS_VAR_IF>: Make it
+ clear that user must supply quotes as needed.
+ * THANKS: Update.
+ Suggested by Randall Cotton.
+
+2010-08-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix Autotest --errexit to exit after XPASSing tests.
+ * lib/autotest/general.m4 (AT_INIT) <at_fn_group_postprocess>:
+ Exit after an unexpected passing test if $at_errexit.
+ * tests/autotest.at (errexit): Also try tests that xpass, skip,
+ xfail, or fail hard.
+
+2010-08-14 Eric Blake <eblake@redhat.com>
+
+ AC_INIT: allow bugreport to contain '?'
+ * lib/autoconf/general.m4 (_AC_INIT_PACKAGE): Relax check.
+ * tests/base.at (AC_INIT with unusual version strings): Enhance
+ test.
+ * doc/autoconf.texi (Initializing configure): Document this.
+ * NEWS: Likewise.
+ * THANKS: Update.
+ Reported by Yavor Doganov and others.
+
+2010-08-10 Peter Rosin <peda@lysator.liu.se>
+
+ Keep testsuite files on unexpected pass.
+ * lib/autotest/general.m4 (AT_INIT) <at_fn_group_postprocess>:
+ Don't cleanup the group directory when a test unexpectedly passes.
+ * tests/autotest.at (Cleanup): Check that an unexpected pass leaves
+ the test group directory intact.
+
+2010-08-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Skip AC_FC_SRCEXT([f90]) tests with a Fortran 77 compiler in $FC.
+ * tests/fortran.at (AC_FC_FREEFORM with AC_FC_SRCEXT)
+ (AC_FC_FIXEDFORM with AC_FC_SRCEXT): Skip if the compiler cannot
+ handle files with .f90 extension.
+ Report by Luke Dalessandro.
+
+ Fix testsuite failures with typical m4-x.y.z program suffix.
+ * tests/local.at (AT_CHECK_M4): Normalize hyphens and digits
+ after the `m4' program name.
+ * THANKS: Update.
+ Report by Luke Dalessandro.
+
+2010-08-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix description of AC_CONFIG_TESTDIR to not mention atconfig.in.
+ * doc/autoconf.texi (Making testsuite Scripts): atconfig is not
+ created from an input template.
+
+2010-08-05 Bruno Haible <bruno@clisp.org>
+ and Eric Blake <eblake@redhat.com>
+
+ AC_FUNC_ALLOCA: modernize
+ * lib/autoconf/functions.m4 (AC_FUNC_ALLOCA): Assume that alloca's
+ return type is 'void *', not 'char *'. Supply C89 prototype.
+ Reported by Thomas Klausner.
+
+2010-08-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix testsuite failure due to bugs in third-party aclocal macros.
+ * tests/torture.at (Non-literal AC_CONFIG_SUBDIRS): Create a
+ hand-written aclocal.m4 file, so the -Werror test doesn't fail
+ over aclocal warnings about errors in third-party macro files.
+ Simplify test accordingly, calling autoreconf throughout.
+ Report by Bob Friesenhahn.
+
+ Fix AC_LANG_SOURCE and AC_LANG_PROGRAM tests.
+ * tests/compile.at (AC_LANG_SOURCE example)
+ (AC_LANG_PROGRAM example): Fix broken sed script for
+ extracting the interesting part of the conftest.c file.
+ Fixes test failure on Haiku.
+ * THANKS: Update.
+ Report by Scott McCreary.
+
+2010-08-03 Eric Blake <eblake@redhat.com>
+
+ docs: mention bash bug with word splitting
+ * doc/autoconf.texi (Shell Substitutions): Document bash bug, and
+ zsh default behavior difference.
+ Reported by Ralf Wildenhues.
+
+ docs: mention ksh bug with function syntax
+ * doc/autoconf.texi (Shell Functions): Document ksh93 limitation.
+
+2010-08-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix typo in Autotest color test, for dash testsuite failure.
+ * tests/autotest.at (colored test results): Use exit not
+ Exit. Fixes test failure with dash 0.5.4.
+
+2010-08-02 Eric Blake <eblake@redhat.com>
+
+ docs: track recent copyright assignment
+ * AUTHORS: Add Peter Rosin.
+
+2010-08-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Add testsuite exposure for last-minute fix in 2.67.
+ * tests/autotest.at (parallel args but non-working mkfifo):
+ New test, to expose the failure v2.66-23-g991183c avoided.
+
+ Ensure unnamed test group categories are separated from previous.
+ * doc/autoconf.texi (Writing Testsuites) <AT_BANNER>: Update
+ description.
+ * lib/autotest/general.m4 (AT_INIT) <at_fn_banner>: Set banner
+ to single space, not empty line, once printed. For empty
+ banners, print a single empty line to separate them from a
+ previous test group category.
+ * tests/autotest.at (Banners): Insert another test group; adjust
+ tests accordingly. Extend test to cover semantic change.
+ * NEWS: Update.
+
+2010-07-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix typos in perlpod docs.
+ * lib/Autom4te/ChannelDefs.pm, lib/Autom4te/Channels.pm,
+ lib/Autom4te/General.pm: Fix typos and spacing in perlpod
+ documentation and in comments.
+
+2010-07-29 Eric Blake <eblake@redhat.com>
+
+ docs: mention ksh file descriptor limitation
+ * doc/autoconf.texi (File Descriptors): Document issue with fd 10
+ and above.
+ Reported by Ralf Wildenhues.
+
+ docs: mention cd limitation
+ * doc/autoconf.texi (Limitations of Builtins) <cd>: Document
+ issues with empty argument.
+
+2010-07-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Add missing index entries to manual.
+ * doc/autoconf.texi (Fortran Compiler, Language Choice): Add
+ index entries for AC_FC_DUMMY_MAIN, AC_LANG; reformat entry for
+ AC_LANG_ASSERT.
+
+2010-07-21 Eric Blake <eblake@redhat.com>
+
+ Release Version 2.67.
+ * NEWS: Mention the release.
+
+ Prepare for release.
+ * maint.mk (PREV_VERSION_REGEXP): New macro, missed when
+ backporting update-NEWS_hash from gnulib.
+ * cfg.mk (old_NEWS_hash): Correctly generate.
+ * build-aux/gendocs.sh: Temporarily break sync from upstream, to
+ avoid including spurious directories in info source tarball.
+
+ Avoid spurious testsuite failures.
+ * doc/autoconf.texi (Generating Sources): Don't mix gcc '-E' and
+ '-o -', since the former already implies stdout, while the latter
+ creates -.exe on cygwin.
+ * tests/compile.at (AC_LANG_SOURCE example)
+ (AC_LANG_PROGRAM example): Likewise. Also prevent any config.site
+ interference.
+
+ Partially revert previous patch.
+ * lib/autotest/general.m4 (AT_INIT) <serial testing>: Changing
+ at_jobs here breaks output if -j2 was requested but shell is
+ insufficient to support parallel testing.
+ Reported by Ralf Wildenhues.
+
+ Minor testsuite size reduction.
+ * lib/autotest/general.m4 (AT_INIT) <serial testing>: Ensure
+ at_jobs is 1.
+ (AT_SETUP, AT_CLEANUP): Factor initialization code...
+ (AT_INIT) <at_fn_group_banner>: ...into new function.
+ Based in part on suggestion by Ralf Wildenhues.
+
+2010-07-20 Eric Blake <eblake@redhat.com>
+
+ Close job control fd before running tests.
+ * doc/autoconf.texi (File Descriptors): Clarify limitations.
+ * lib/autotest/general.m4 (AT_CLEANUP): Avoid leaking job control
+ fifo fd to user tests.
+ (AT_INIT): Delete comment, now that close is done elsewhere.
+ Suggested by Ralf Wildenhues.
+
+2010-07-20 Paul Eggert <eggert@cs.ucla.edu>
+ and Eric Blake <eblake@redhat.com>
+
+ Plug race in parallel autotest.
+ * lib/autotest/general.m4 (AT_INIT) <Fifo job dispatcher>: Track
+ two fds to fifo in parent, to avoid race where parent can see EOF
+ before child opens fifo. Avoid any atomicity problems with tokens
+ larger than one byte.
+ * NEWS: Document the bug fix.
+
+2010-07-20 Eric Blake <eblake@redhat.com>
+
+ Another empty argument through expr workaround.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Detect empty
+ arguments. Reject empty file argument.
+ * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
+ Check for missing argument.
+
+ Also reject ' and newline from AC_INIT strings.
+ * lib/autoconf/general.m4 (_AC_INIT_LITERAL): Reject a couple more
+ problematic characters.
+ * tests/base.at (AC_INIT with unusual version strings): Enhance
+ test.
+ * doc/autoconf.texi (Initializing configure) <AC_INIT>: Further
+ clarifications, and clean up wording about use of m4_esyscmd.
+ * NEWS: Update previous news entry.
+ Suggested by Paolo Bonzini.
+
+2010-07-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Let autoreconf pass warning flags to new-enough aclocal.
+ * bin/autoreconf.in ($aclocal_supports_warnings)
+ ($automake_supports_warnings): New globals.
+ (parse_args): Set and use them. Be sure to invoke `aclocal
+ --help' and `automake --help' just once each.
+ * NEWS: Update.
+ Prompted by report from Bruno Haible.
+
+ Fix parsing of empty variable settings on the command line.
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Work around
+ expr bug returning 0 instead of the empty string.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+
+ Fix typo in the manual.
+ * doc/autoconf.texi (AC_ACT_IFELSE vs AC_TRY_ACT): Fix typo.
+
+2010-07-19 Eric Blake <eblake@redhat.com>
+
+ Fix up AC_INIT vs. " issues, and document it.
+ * doc/autoconf.texi (Initializing configure): Improve
+ documentation on argument restrictions.
+ * NEWS: Tweak information.
+ * lib/autoconf/general.m4 (_AC_INIT_GENERAL): New macro, that also
+ rejects literal ".
+ (_AC_INIT_PACKAGE): Use it to plug hole in last patch.
+ * tests/base.at (AC_INIT with unusual version strings): Enhance
+ test.
+
+2010-07-19 Eric Blake <eblake@redhat.com>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Relax AC_INIT requirements for PACKAGE and VERSION strings again.
+ * lib/m4sugar/m4sh.m4 (AS_LITERAL_HEREDOC_IF): New macro.
+ (_AS_LITERAL_HEREDOC_IF, _AS_LITERAL_HEREDOC_IF_YES)
+ (_AS_LITERAL_HEREDOC_IF_NO): New helper macros.
+ * lib/autoconf/general.m4 (_AC_INIT_PACKAGE): Use
+ AS_LITERAL_HEREDOC_IF for PACKAGE and VERSION strings.
+ * tests/base.at (AC_INIT with unusual version strings): New test.
+ * tests/m4sh.at (AS@&t@_LITERAL_IF): Extend test.
+ * NEWS: Update.
+
+2010-07-19 Eric Blake <eblake@redhat.com>
+
+ Fix testsuite failures from previous patch.
+ * lib/autoconf/c.m4 (_AC_PROG_PREPROC_WORKS_IFELSE): Also remove
+ conftest.i when preprocessor tests break out of a loop.
+
+2010-07-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Allow inspecting AC_PREPROC_IFELSE output in true branch.
+ * lib/autoconf/general.m4 (_AC_PREPROC_IFELSE_BODY): Redirect
+ preprocessor output to conftest.i rather than /dev/null.
+ (_AC_PREPROC_IFELSE): Remove conftest.i in the postprocessing.
+ * tests/compile.at (Order of user actions and cleanup): Extend
+ test in the ACTION-IF-TRUE branch.
+ * doc/autoconf.texi (Running the Preprocessor): Document new
+ feature.
+ * NEWS: Update.
+
+ Fix AC_FC_LIBRARY_LDFLAGS detection for BlueGene xlf -qipa.
+ * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS): Ignore
+ '-link', added spuriously when -qipa is used with the XL
+ Fortran compilers on BlueGene.
+
+ manual: compiler flags -D and -L should not be followed by space
+ * doc/autoconf.texi (Preset Output Variables): Remove space
+ between -D and -L flags and their arguments, traditional cpp
+ implementations like Solaris 10, IRIX 6.5, OSF Tru64 5.1D,
+ AIX 5.3 do not accept it.
+
+2010-07-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix comment typo in the manual.
+ * doc/autoconf.texi (Generic Compiler Characteristics): Refer
+ to the right test in the example marker comment.
+ Spotted by Eric Blake.
+
+2010-07-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ New Fortran macro AC_FC_LINE_LENGTH.
+ * lib/autoconf/fortran.m4 (AC_FC_LINE_LENGTH): New macro.
+ * doc/autoconf.texi (Fortran Compiler): Document it.
+ * tests/fortran.at (AC_FC_LINE_LENGTH): New test.
+ * NEWS: Update.
+
+ Fix wording about AC_CONFIG_SUBDIRS warning.
+ * doc/autoconf.texi (Subdirectories): We warn, not error, about
+ nonexistent config subdirs, but only at configure run time.
+
+2010-07-10 Eric Blake <eblake@redhat.com>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix regression of AC_CHECK_SIZEOF on pointer types.
+ * lib/autoconf/types.m4 (AC_CHECK_SIZEOF): Translate `*' to `p'
+ when checking literal-ness of the type, for pointer types.
+ * lib/m4sugar/m4sh.m4 (_AS_TR_SH): Also consider `*' as literal.
+ (_AS_TR_CPP): Likewise.
+ * tests/semantics.at (AC_CHECK_ALIGNOF struct): When checking
+ for numeric answer, be sure to not allow variable references.
+ (AC_CHECK_SIZEOF struct): Likewise. Also, test the
+ `AC_CHECK_SIZEOF([int *])' example from the manual.
+ * doc/autoconf.texi (Generic Compiler Characteristics): Add
+ example marker.
+ * NEWS: Update.
+ Reports by Nishio Futoshi and Roberto Bagnara.
+
+2010-07-08 Eric Blake <eblake@redhat.com>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix regression of AC_CONFIG_SUBDIRS with multiple arguments.
+ * lib/autoconf/status.m4 (AC_CONFIG_SUBDIRS): Do not assume the
+ argument is a single word.
+ * tests/torture.at (Deep Package): Extend test to cover this.
+ (Non-literal AC_CONFIG_SUBDIRS): New test.
+ * doc/autoconf.texi (Subdirectories): Add example marker.
+ * NEWS: Update.
+ Report by Bruno Haible.
+
+2010-07-04 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ Fix minor copy&paste leftover in m4sh tests.
+ * tests/m4sh.at (AS@&t@_TR_SH and AS@&t@_TR_CPP): Remove
+ useless variables assignements ($var, $vAr, $VAR).
+
+2010-07-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix testsuite to not trigger Solaris sh for bug.
+ * tests/torture.at (Torturing config.status)
+ (Substitute a 2000-byte string)
+ (Substitute and define special characters)
+ (Substitute a newline): Quote first argument in for list so
+ that it does not look like an assignment.
+
+2010-07-02 Eric Blake <eblake@redhat.com>
+
+ Post-release administrivia.
+ * maint.mk (NEWS_hash): Define.
+ * NEWS: Add header line for next release.
+ * .prev-version: Record previous version.
+ * cfg.mk (old_NEWS_hash): Auto-update.
+
+ Release Version 2.66.
+ * NEWS: Mention the release.
+
+2010-07-02 Eric Blake <eblake@redhat.com>
+
+ Pick up some maint.mk improvements from gnulib.
+ * configure.ac (AM_INIT_AUTOMAKE): Require 1.11, and build xz
+ archives by default now.
+ * maint.mk (gzip_rsyncable): Avoid non-portable echo.
+ (VC-tag): Depend on gpg_key_ID.
+ (PREV_VERSION): Don't parse error as version.
+ (announcement): Populate email addresses with defaults.
+ (emit_upload_commands, web-manual): Reflect changes in scripts.
+ (update-NEWS-hash, emit-commit-log, release-prep): New macros.
+ * cfg.mk (announcement_Cc_, announcement_mail_headers_): Override
+ defaults.
+ * HACKING: Modernize a bit.
+
+ Resync upstream files.
+ * GNUmakefile: Run 'make fetch'.
+ * build-aux/announce-gen: Likewise.
+ * build-aux/config.guess: Likewise.
+ * build-aux/config.sub: Likewise.
+ * build-aux/gendocs.sh: Likewise.
+ * build-aux/git-version-gen: Likewise.
+ * build-aux/gnupload: Likewise.
+ * build-aux/texinfo.tex: Likewise.
+ * build-aux/vc-list-files: Likewise.
+ * doc/gendocs_template: Likewise.
+ * doc/gnu-oids.texi: Likewise.
+ * doc/make-stds.texi: Likewise.
+ * doc/standards.texi: Likewise.
+ * lib/Autom4te/Channels.pm: Likewise.
+ * lib/Autom4te/Configure_ac.pm: Likewise.
+ * lib/Autom4te/FileUtils.pm: Likewise.
+ * lib/Autom4te/XFile.pm: Likewise.
+
+ Make AS_TR_SH and AS_TR_CPP similar.
+ * lib/m4sugar/m4sh.m4 (_AS_TR_CPP_LITERAL): Avoid underquoting.
+ (_AS_TR_CPP_INDIR): Handle all polymorphic variables.
+ * tests/m4sh.at (AS@&t@_TR_SH and AS@&t@_TR_CPP): New test.
+ * NEWS: Document the fix.
+ Reported by Bruno Haible.
+
+ Reduce startup cost of autotest.
+ * lib/autotest/general.m4 (_AT_FINISH) <banners>: Rather than
+ doing a recursive find, limit ourselves to top ChangeLog only.
+ Reported by Ralf Wildenhues.
+
+2010-07-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ New macro AC_FC_FIXEDFORM, improved AC_FC_FREEFORM, coverage.
+ * lib/autoconf/fortran.m4 (_AC_FC_DIALECT_YEAR): Fix typo in
+ comment.
+ (AC_FC_FREEFORM): Update list of known options for Sun, HP,
+ Lahey/Fujitsu Fortran compilers. Use M4 quoting consistently.
+ (AC_FC_FIXEDFORM): New macro.
+ * tests/fortran.at (AC_FC_DUMMY_MAIN usage, AC_FC_MAIN usage):
+ Use AC_FC_FIXEDFORM, to avoid testsuite failure with FC=xlf95.
+ (AC_FC_FREEFORM with AC_FC_SRCEXT, AC_FC_FIXEDFORM)
+ (AC_FC_FIXEDFORM with AC_FC_SRCEXT): New tests.
+ * tests/mktests.sh: No need to exclude AC_FC_FREEFORM, it uses
+ AC_LANG_PUSH/AC_LANG_POP.
+ * doc/autoconf.texi (Fortran Compiler): Document it.
+ * NEWS: Update.
+
+2010-07-02 Eric Blake <eblake@redhat.com>
+
+ Optimize AS_BOX.
+ * lib/m4sugar/m4sh.m4 (AS_BOX): Use less m4 time.
+ (_AS_BOX_LITERAL): Use fewer forks in the common case.
+ * doc/autoconf.texi (Common Shell Constructs) <AS_BOX>: Document
+ the macro.
+ * NEWS: Mention it.
+
+ Use new AS_LITERAL_IF argument when appropriate.
+ * lib/m4sugar/m4sh.m4 (AS_VAR_SET): Reduce m4 overhead.
+ (AS_VAR_IF, AS_VAR_TEST_SET): Provide shorter variant for simple
+ references.
+ Suggested by Bruno Haible.
+
+ Add tests for AS_BOX.
+ * tests/m4sugar.at (m4@&t@_text_box): New test.
+ * tests/m4sh.at (AS@&t@_BOX): Likewise.
+ * lib/m4sugar/m4sugar.m4 (m4_text_box): Support comma.
+ * doc/autoconf.texi (Text processing Macros) <m4_text_box>:
+ Document further limitations.
+
+ Add optional argument to AS_LITERAL_IF.
+ * lib/m4sugar/m4sh.m4 (_AS_LITERAL_IF): Rewrite to generate macro
+ name, without using m4_cond.
+ (_AS_LITERAL_IF_, _AS_LITERAL_IF_YES, _AS_LITERAL_IF_NO): New
+ helpers.
+ (AS_LITERAL_IF, AS_LITERAL_WORD_IF, _AS_TR_SH, _AS_TR_CPP)
+ (_AS_VAR_PUSHDEF): Adjust callers.
+ * lib/autoconf/types.m4 (AC_CHECK_ALIGNOF): Relax restrictions on
+ invalid bytes, since this allows inline struct layouts.
+ (_AC_CHECK_ALIGNOF): New helper macro.
+ * tests/m4sh.at (AS@&t@_LITERAL_IF): Update test.
+ * doc/autoconf.texi (Polymorphic Variables) <AS_LITERAL_IF>:
+ Update documentation.
+
+ Use AS_LITERAL_WORD_IF as appropriate.
+ * lib/autoconf/autoheader.m4 (AH_VERBATIM): Use new macro.
+ * lib/autoconf/general.m4 (AC_REQUIRE_AUX_FILE, AC_CACHE_VAL)
+ (AS_CACHE_CHECK, AC_DEFINE_TRACE, _AC_LIBOBJ): Likewise.
+ * lib/autoconf/libs.m4 (AC_CHECK_LIB): Likewise.
+ * lib/autoconf/status.m4 (AC_CONFIG_SUBDIRS): Likewise.
+ * lib/m4sugar/m4sh.m4 (AS_UNSET, AS_VAR_COPY, AS_VAR_GET)
+ (AS_VAR_IF, AS_VAR_SET, AS_VAR_TEST_SET): Likewise.
+
+ Add AS_LITERAL_WORD_IF.
+ * lib/m4sugar/m4sh.m4 (_AS_LITERAL_IF): Also reject shell quoting
+ characters as non-literal, and provide way to reject space.
+ (AS_LITERAL_WORD_IF): New macro.
+ * doc/autoconf.texi (Polymorphic Variables) <AS_LITERAL_IF>:
+ Document new macro. Fix example to match reality.
+ * NEWS: Document change and new macro.
+ * tests/m4sh.at (AS@&t@_LITERAL_IF): Update test.
+
+ Optimize AC_DEFINE.
+ * lib/autoconf/general.m4 (_AC_DEFINE_Q): Avoid overhead of
+ AS_LITERAL_IF.
+
+2010-07-02 Stefano Lattarini <stefano.lattarini@gmail.com>
+ and Eric Blake <eblake@redhat.com>
+
+ Describe a Solaris /bin/sh bug w.r.t. for loops.
+ * doc/autoconf.texi (Limitations of Shell Builtins) <for>:
+ Document a bug of the 'for' builtin in Solaris /bin/sh, w.r.t.
+ tokens seeming variable assignment in the list of arguments.
+
+2010-06-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Improve VPATH handling in config.status for non-Automake projects.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Be sure not
+ to remove references to a subdir of srcdir. Fix treatment of
+ multiple colon-separated VPATH entries.
+ * tests/torture.at (VPATH): New test.
+ Report by Keith Marshall.
+
+ Further improve docs about nested double-quotes and backquotes.
+ * doc/autoconf.texi (Shellology): Remove anchor for pdksh.
+ Move quoting bug example to ...
+ (Shell Substitutions): ... here. Document which behavior is
+ specified by Posix.
+
+ Coverage for Fortran compiler macros.
+ * tests/fortran.at (AC_OPENMP and Fortran 77)
+ (AC_OPENMP and Fortran): Simplify, using AT_CHECK_CONFIGURE.
+ (AC_F77_DUMMY_MAIN usage, AC_FC_DUMMY_MAIN usage)
+ (AC_F77_MAIN usage, AC_FC_MAIN usage, AC_F77_FUNC usage)
+ (AC_FC_FUNC usage, AC_FC_SRCEXT usage, AC_FC_FREEFORM): New
+ tests.
+ * doc/autoconf.texi (Fortran Compiler): Use GNU coding style
+ on C code snippets. Add markers for tested examples.
+ Suggest AC_FC_FREEFORM for source file extensions which the
+ compiler might not natively support but which are accepted
+ with help from AC_FC_SRCEXT. Suggest AC_CONFIG_HEADERS for
+ setups using one of the AC_*MAIN macros.
+
+ Accept any nonzero exit status upon config.status write failure.
+ * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
+ Normalize nonzero status to 1 for writing to /dev/full, for HP-UX
+ 11.31 cat which exits 2.
+
+ Fix testsuite failure with Tru64 preprocessor.
+ * tests/compile.at (Order of user actions and cleanup): Add
+ incomplete comment to provoke failure with Tru64/OSF 5.1 cc
+ preprocessor.
+
+2010-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ and Eric Blake <eblake@redhat.com>
+
+ Further clarification on sed -e portability.
+ * doc/autoconf.texi (Limitations of Usual Tools) <sed>: Clarify
+ more about sed -e and Posix limitations.
+
+2010-06-22 Bruno Haible <bruno@clisp.org>
+
+ Document how to use literal newlines in makefile rules.
+ * doc/autoconf.texi (Newlines in Make Rules): New section.
+
+ Document how to write comments in makefile rules.
+ * doc/autoconf.texi (Comments in Make Rules): Mention a workaround
+ syntax.
+
+2010-06-22 Ben Pfaff <blp@cs.stanford.edu>
+
+ Document how to propagate variables to submakes.
+ * doc/autoconf.texi: Describe technique used by Automake to
+ propagate variables to submakes in more detail.
+
+2010-06-22 Peter Johansson <trojkan@gmail.com> (tiny change)
+
+ Be consistent in doc example.
+ * doc/autoconf.texi: (Polymorphic Variables) be consistent in code
+ example and output
+
+2010-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Add comments for vim syntax highlighting.
+ * doc/autoconf.texi: Restore font-lock in some examples using
+ $$, for vim.
+
+ Formatting cleanups for optional arguments.
+ * doc/autoconf.texi (Configuration Actions, Help Formatting)
+ (External Software): Use @r{} for brackets denoting optional
+ arguments, where @ovar is not safe to use.
+
+ Clarify nested double-quotes and backquotes shell issues.
+ * doc/autoconf.texi (Shellology): New anchor for pdksh.
+ (Shell Substitutions): Link to it for escaped double-quotes
+ within double-quoted backquotes; add ksh example for unescaped
+ inner double-quotes problem.
+
+ Mention Tru64 5.1 fgrep limitation with empty patterns.
+ * doc/autoconf.texi (Limitations of Usual Tools): Update.
+
+ Overhaul the manual, esp. the Autotest chapter.
+ * doc/autoconf.texi (Installation Directory Variables):
+ Replace some uses of @var with @code.
+ (Special Shell Variables): Fix misordered paragraph about IFS.
+ (Writing Testsuites): Include paragraph following AT_TESTED in
+ the macro definition.
+ (testsuite Invocation): Failed tests are not rerun.
+ (testsuite Scripts, Autotest Logs, testsuite Invocation)
+ (Making testsuite Scripts): Minor edits for consistency and
+ language.
+
+2010-06-18 Bruno Haible <bruno@clisp.org>
+
+ Document sed -e limitation.
+ * doc/autoconf.texi (Limitations of Usual Tools): Mention portability
+ problem of sed -e option with script fragments.
+
+2010-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Document, test, and fix AT_ARG_OPTION, AT_ARG_OPTION_ARG.
+ * lib/autotest/general.m4 (_AT_ARG_OPTION): Fix translation of
+ hyphens to underscores when turning option names to variables.
+ Avoid macro name concatenation garbage with trailing `dnl'.
+ (AT_ARG_OPTION, AT_ARG_OPTION_ARG): Overhaul macro description.
+ The OPTIONS are space-separated, not comma-separated. The
+ negative form of AT_ARG_OPTION is prefixed with `--no-'.
+ * tests/autotest.at (AT@&t@_ARG_OPTION, AT@&t@_ARG_OPTION_ARG):
+ New tests.
+ * NEWS: Update.
+ * doc/autoconf.texi (Writing Testsuites): Document AT_ARG_OPTION
+ and AT_ARG_OPTION_ARG.
+ (testsuite Invocation): Call the thingies passed to the
+ testsuite options, not arguments. Note that the testsuite
+ author may add further package-specific options.
+
+ Autotest: enable colored test results.
+ * lib/autotest/general.m4 (HELP_TUNING_BEGIN): New diversion.
+ (HELP_TUNING, HELP_OTHER, HELP_END): Bump diversion numbers.
+ (AT_INIT): Accept
+ --color and --color=never|auto|always. If desired, colorize
+ test results and testsuite summary on standard output.
+ [HELP_TUNING]: Divert content instead to ...
+ [HELP_TUNING_BEGIN]: ... this diversion, m4_wrapped until the
+ end, when we know whether AT_COLOR_TESTS has been specified.
+ (AT_COLOR_TESTS): New macro, set the default for color to auto.
+ * doc/autoconf.texi (Writing Testsuites): Document it.
+ (testsuite Invocation): Document --color* options.
+ * tests/local.at: Call AT_COLOR_TESTS for Autoconf's testsuite.
+ * tests/autotest.at (color test results): New test, mirroring
+ color.test from Automake.
+ * NEWS: Update.
+
+2010-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Avoid texinfo bug with backslashes in macro arguments.
+ * doc/autoconf.texi (Text processing Macros)
+ (Common Shell Constructs): Do not use @dvar with backslashes.
+
+2010-06-14 Eric Blake <eblake@redhat.com>
+
+ Make CONFIG_SITE handling more robust.
+ * lib/autoconf/general.m4 (AC_SITE_LOAD): Avoid leading - and path
+ search, and check for failure to load.
+ * tests/base.at (AC_CACHE_CHECK): Enhance test.
+ * doc/autoconf.texi (Site Defaults): Mention that CONFIG_SITE
+ works best as an absolute path.
+ * NEWS: Document the semantic change.
+
+2010-03-13 Bruno Haible <bruno@clisp.org>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Allow plus signs in AC_ARG_ENABLE and AC_ARG_WITH.
+ * doc/autoconf.texi (External Software): Mention that AC_ARG_WITH
+ accepts packages with a + sign in it.
+ (Package Options): Likewise for AC_ARG_ENABLE.
+ * lib/autoconf/general.m4 (_AC_ENABLE_IF): Also replace '+' with '_'.
+ * tests/base.at (AC_ARG_ENABLE and AC_ARG_WITH): New test.
+ * NEWS: Update.
+
+2010-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Autotest: simplify logic to compute test group result.
+ * lib/autotest/general.m4 (AT_INIT): Compactify result
+ computation logic.
+
+ New Autotest testsuite option --recheck.
+ * lib/autotest/general.m4 (AT_INIT): New variable $at_recheck.
+ Escape hyphen in $at_dir early. Accept command line switch
+ --recheck. Set $at_suite_log early, based on --directory
+ switch; with --recheck, include the list of FAILed and XPASSed
+ tests from old testsuite.log file in $at_groups. Document
+ --recheck in --help output.
+ * tests/autotest.at (recheck): New test.
+ * doc/autoconf.texi (testsuite Invocation): Document --recheck.
+ * NEWS: Update.
+
+2010-06-14 Karl Berry <karl@freefriends.org> (tiny change)
+
+ Clarify comment about old system.
+ * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Prefer GNU/Linux,
+ and note that bug has long since been fixed.
+
+2010-06-08 Eric Blake <eblake@redhat.com>
+
+ Run libtool test with modern libtool.
+ * tests/foreign.at (Libtool): Request that libtoolize install
+ auxiliary files. Assume libtool 2.x is modern.
+
+2010-06-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Coverage and doc fixes for AC_LANG_SOURCE and AC_LANG_PROGRAM.
+ * tests/compile.at (AC_LANG_SOURCE, AC_LANG_SOURCE(C++))
+ (AC_LANG_SOURCE example, AC_LANG_PROGRAM example): New tests.
+ * doc/autoconf.texi (Generating Sources): Add markers for tested
+ examples; update quoting, and update AC_INIT usage to also set
+ optional URL arguments. Mention that the examples require gcc.
+ Prompted by report from Brian J. Murrell.
+
+ Make AS_SET_CATFILE polymorphic, and add testsuite coverage.
+ * lib/m4sugar/m4sh.m4 (AS_SET_CATFILE): Use AS_VAR_SET to set
+ the variable.
+ * tests/m4sh.at (AS@&t@_SET_CATFILE): New test.
+ * doc/autoconf.texi (Common Shell Constructs): Document that
+ AS_SET_CATFILE is polymorphic in its VAR argument now.
+ * NEWS: Update.
+
+ Testsuite coverage for AC_COPYRIGHT and AT_COPYRIGHT.
+ * tests/autotest.at (AT@&t@_COPYRIGHT): New test.
+ * tests/base.at (AC@&t@_COPYRIGHT): Likewise.
+
+ Testsuite coverage for __file__ and __line__.
+ * tests/m4sugar.at (__file__ and __line__): New test.
+
+ Testsuite coverage for AC_CACHE_VAL and caching semantics.
+ * tests/base.at (AC_CACHE_CHECK): Extend test.
+ (AC_CACHE_LOAD): New test.
+ * tests/torture.at (Configuring subdirectories): Also test
+ --config-cache with AC_CONFIG_SUBDIRS.
+ * doc/autoconf.texi (Caching Results): Annotate code snippets
+ which are tested in the test suite.
+ (Cache Files): Documented cache variables may be used on the
+ configure command line to override individual entries in the
+ cache file.
+
+ Clarify OpenBSD sh errexit issue with compound commands.
+ * doc/autoconf.texi (Limitations of Builtins): Only the last
+ command in a compound list is problematic.
+ Tested on OpenBSD 4.4.
+
+2010-06-07 Eric Blake <eblake@redhat.com>
+
+ Properly quote AC_PREREQ during autoupdate.
+ * lib/autoconf/general.m4 (AC_PREREQ): Follow consistent quoting
+ style for AC_PREREQ.
+ * tests/tools.at (autoupdating AC_PREREQ): Update expected
+ results.
+ Reported by NightStrike.
+
+2010-06-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Documentation and tests for the AC_CHECK_DECL change.
+ * lib/autoconf/general.m4 (_AC_CHECK_DECL_BODY): Squash trailing
+ spaces in as_decl_name.
+ (_AC_CHECK_DECLS): Likewise for the define.
+ * tests/semantics.at (AC_CHECK_DECLS): Extend test.
+ * doc/autoconf.texi (Generic Declarations): Update.
+ * NEWS: Update.
+
+2010-06-01 Joern Rennecke <joern.rennecke@embecosm.com> (tiny change)
+
+ Generalize AC_CHECK_DECL for C++: allow optional arguments.
+ * general.m4 (_AC_CHECK_DECL_BODY): Process trailing function
+ argument types as arguments to use for C++.
+ (_AC_CHECK_DECLS): Filter out trailing function argument types
+ when generating the HAVE_DECL_* macro.
+
+2010-05-25 Stefano Lattarini <stefano.lattarini@gmail.com>
+ Eric Blake <eblake@redhat.com>
+
+ Don't expose AC_{COMPILE,LINK}_IFELSE internals in documentation.
+ * doc/autoconf.texi (Runtime) <AC_LINK_IFELSE>: Suggest to use
+ `conftest$EXEEXT' rather than `conftest$ac_exeext' to acces the
+ just-linked program file.
+ (Runtime) <AC_COMPILE_IFELSE>: Suggest to use `conftest.$OBJEXT'
+ rather than `conftest.$ac_object' to access the just-compiled
+ object file. Also, refer to the object file as "just-compiled"
+ rather than "just-linked".
+
+2010-05-20 Eric Blake <eblake@redhat.com>
+
+ Mention another line-counting alternative.
+ * doc/autoconf.texi (Limitations of Usual Tools) <grep>: Mention
+ how to use sed to count lines.
+ Suggested by Paolo Bonzini.
+
+2010-05-12 Eric Blake <eblake@redhat.com>
+
+ Document the grep workaround.
+ * doc/autoconf.texi (Limitations of Usual Tools) <grep>: Document
+ the bug.
+
+2010-05-12 Mark Hessling <mark@rexx.org> (tiny change)
+
+ Work around QNX4 grep bug.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Count ^
+ rather than $ to avoid QNX4 grep bug.
+ * THANKS: Update.
+
+2010-05-11 David Reiss <dreiss@facebook.com> (tiny change)
+
+ Improve Erlang documentation.
+ * doc/autoconf.texi (Erlang Libraries): Document actual default
+ values.
+ * THANKS: Update.
+
+2010-05-11 Eric Blake <eblake@redhat.com>
+
+ Fix typo in previous patch.
+ * doc/autoconf.texi (File Descriptors): Add end '.
+ Reported by Ralf Wildenhues.
+
+ Mention how to silence program probes.
+ * doc/autoconf.texi (File Descriptors): Document how to silence a
+ program probe.
+
+2010-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Error and warning message formatting cleanups.
+ * doc/autoconf.texi (Autoconf Language, Generic Structures):
+ Do not capitalize the first word in error messages, do not end
+ them with a period.
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS, AC_MSG_FAILURE):
+ Likewise.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILE): Likewise.
+ * lib/autotest/general.m4 (AT_INIT, at_fn_group_prepare):
+ Likewise.
+ * m4/m4.m4 (AC_PROG_GNU_M4): Likewise.
+ * tests/base.at (AC_TRY_COMMAND): Likewise.
+ * tests/torture.at (datarootdir workaround): Adjust expected
+ message.
+
+ Fix placing of ellipses in English text.
+ * lib/autoconf/general.m4 (_AC_INIT_HELP): Be sure to add a
+ space before `...' in natural language text.
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL_BODY):
+ Likewise.
+ * lib/autoconf/libs.m4 (_AC_PATH_X_XMKMF): Likewise.
+ * lib/autoconf/programs.m4 (AC_PROG_MAKE_SET): Likewise.
+ * tests/suite.at: Likewise.
+ * tests/torture.at (@%:@define header templates): Likewise.
+
+ Ensure autotest tests have an atconfig file, for testsuite -v.
+ * tests/autotest.at (AT_CHECK_AT_PREP): Create a default
+ atconfig file in the directory of the testsuite.
+ (AT_CHECK_AT_TITLE): Also check that `./micro-suite -v' output
+ does not contain empty $at_srcdir expansion.
+ (srcdir propagation): Remove the atconfig file generated by
+ AT_CHECK_AT_PREP. Check each suite invocation for $at_srcdir
+ expansion.
+
+ Fix autotest testsuite -v output to print test group title.
+ * lib/autotest/general.m4 (AT_CLEANUP): Actually print test
+ title in verbose output. Fixes AUTOCONF-2.57-101-gc102ed8
+ regression.
+ * tests/autotest.at (AT_CHECK_AT_TITLE): Amend macro to check
+ for test title in -v output.
+
+2010-04-26 Eric Blake <eblake@redhat.com>
+
+ Clarify octal escapes with tr.
+ * doc/autoconf.texi (Limitations of Usual Tools): Carriage return
+ is portable in octal, but not newline.
+
+2010-04-22 Joel James Adamson <joel@chondestes.bio.unc.edu> (tiny change)
+
+ Add a paragraph to FAQ on Debugging configure scripts.
+ * doc/autoconf.texi (Debugging): Mention inspecting config.log.
+ * THANKS: Update.
+
+2010-04-21 Mike Frysinger <vapier@gentoo.org> (tiny change)
+
+ Fix typo in doc example.
+ * doc/autoconf.texi (Subdirectories): Fix typo.
+
+2010-04-05 Eric Blake <eblake@redhat.com>
+
+ Fix m4_cr_all for EBCDIC.
+ * lib/m4sugar/m4sugar.m4 (m4_cr_all): Swap * and $, so that we
+ don't end up with $* in EBCDIC.
+ * NEWS: Document the fix.
+ * THANKS: Update.
+ Reported by Steve Goetze.
+
+2010-03-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Do not use @acronym in the manual.
+ * doc/autoconf.texi: Remove all usage of @acronym.
+ Suggested by Karl Berry.
+
+ Do not use @sc in the manual.
+ * doc/autoconf.texi: Remove all usage of @sc in the manual.
+ Suggested by Karl Berry.
+
+2010-03-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix wrong comment in testsuite.
+ * tests/m4sugar.at (m4@&t@_warn): Remove copy&pasted comment.
+
+ Formatting cleanups in macro comments.
+ * lib/autoconf/c.m4, lib/autoconf/erlang.m4,
+ lib/autoconf/fortran.m4, lib/autoconf/functions.m4,
+ lib/autoconf/general.m4, lib/autoconf/lang.m4,
+ lib/autoconf/programs.m4, lib/autoconf/specific.m4,
+ lib/autoconf/status.m4, lib/autoconf/types.m4,
+ lib/autotest/general.m4, lib/autotest/specific.m4,
+ lib/m4sugar/m4sh.m4, lib/m4sugar/m4sugar.m4,
+ tests/autotest.at, tests/local.at, tests/m4sh.at,
+ tests/semantics.at, tests/tools.at, tests/torture.at: Fix macro
+ comment format.
+
+2010-03-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ manual: index strings containing colon in non-info outputs.
+ * doc/autoconf.texi (Quadrigraphs, Shell Substitutions): Produce
+ index entries for concepts containing a colon in output formats
+ other than info.
+
+ Update copyright years for files generated by mktests.sh.
+ * tests/mktests.sh: Update copyright years for generated files.
+
+2010-03-04 Eric Blake <eblake@redhat.com>
+
+ Document AC_LANG_CONFTEST semantic change.
+ * doc/autoconf.texi (Generating Sources) <AC_LANG_CONFTEST>:
+ Enhance documentation, to show that semantic change in 2.63b was
+ intentional.
+ * THANKS: Update.
+ Reported by Brian J. Murrell, analyzed by Ralf Wildenhues.
+
+2010-03-04 Peter Johansson <trojkan@gmail.com> (tiny change)
+
+ Autoconf Macro Archive URL has changed.
+ * doc/autoconf.texi (Introduction, Coding Style, Defining
+ Directories): The Autoconf Macro Archive is officially `GNU'.
+ Update URL.
+
+2010-03-02 Eric Blake <eblake@redhat.com>
+
+ Fix shell code in AS_TR_SH documentation.
+ * doc/autoconf.texi (Common Shell Constructs) <AS_TR_SH>: Fix
+ example to expand to valid shell code.
+ Reported by Ralf Wildenhues.
+
+ Improve documentation on AC_{COMPILE,LINK}_IFELSE.
+ * doc/autoconf.texi (Running the Compiler): Mention that the
+ object file is available after a successful compile.
+ (Running the Linker): Likewise for the linker output.
+ Suggested by Paolo Bonzini.
+
+ Fix typo in docs.
+ * doc/autoconf.texi (Conditional constructs) <m4_ifblank>: Fix
+ typo.
+
+2010-03-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix AS_ERROR for FreeBSD sh.
+ * lib/m4sugar/m4sh.m4 (_AS_ERROR_PREPARE): Rewrite as_fn_error
+ to take additional first argument STATUS instead of transporting
+ $? across shell function entry, which does not work with FreeBSD
+ sh. Shift all other arguments by one, adjust.
+ (AS_ERROR): Pass EXIT-STATUS, defaulting to $?, to as_fn_error.
+ Report by Václav Haisman.
+
+ Fix `autom4te cache creation' testsuite failure on FreeBSD.
+ * tests/tools.at (autom4te cache creation): Normalize exit
+ status of failed redirection to 1, may be 2 with FreeBSD sh.
+ * THANKS: Update.
+ Report by Václav Haisman.
+
+ Fix Autotest tracing of shell pipelines for FreeBSD sh.
+ * lib/autotest/general.m4 (_AT_DECIDE_TRACEABLE): Do not trace
+ commands that contain [^|]|[^|], a likely shell pipeline.
+ * tests/local.at (_AT_CHECK_ENV): Turn off tracing for egrep |
+ grep pipeline.
+ * doc/autoconf.texi (File Descriptors): Document limitation.
+ * tests/autotest.at (Trace output): New test.
+
+2010-03-01 Eric Blake <eblake@redhat.com>
+
+ Update file flow diagram to mention Automake.
+ * doc/autoconf.texi (Making configure Scripts): Avoid confusion
+ with listing Makefile.in twice on one line. Add a diagram showing
+ how automake fits into the picture.
+ Reported by santilín.
+
+2010-02-26 Eric Blake <eblake@redhat.com>
+
+ Optimize AC_REPLACE_FUNCS.
+ * lib/autoconf/functions.m4 (_AC_REPLACE_FUNC): New helper macro.
+ (AC_REPLACE_FUNCS): Use it to reduce forks when checking for
+ replacements, by using literal rather than shell variable.
+
+ Document how to safely override CFLAGS default.
+ * doc/autoconf.texi (C Compiler) <AC_PROG_CC>: Document a way to
+ change the default CFLAGS.
+ (C++ Compiler) <AC_PROG_CXX>: Likewise, for CXXFLAGS.
+ Reported by Monty Taylor; wording suggested by Paolo Bonzini.
+
+ Document that Autoconf relies on IFS.
+ * doc/autoconf.texi (Special Shell Variables) <IFS>: Add details
+ about use of IFS within configure script.
+ * THANKS: Update.
+ Reported by Arkadiusz Miskiewicz.
+
+ Recommend latest m4 release.
+ * README: Bump recommendation to m4 1.4.14 (minimum remains
+ 1.4.6).
+ * doc/autoconf.texi (Introduction): Likewise.
+ * m4/m4.m4 (AC_PROG_GNU_M4): Likewise.
+
+2010-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix testsuite failures due to setting of $U.
+ * tests/local.at (_AT_CHECK_ENV): Ignore setting of $U.
+
+2010-02-10 Eric Blake <ebb9@byu.net>
+
+ Avoid $U if it is not initialized.
+ * lib/autoconf/general.m4 (_AC_LIBOBJS_NORMALIZE): Ensure $U is
+ set if automake did not define it.
+ * THANKS: Update.
+ Reported by Heiko Schlichting, via Julien Élie.
+
+2010-01-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix substitution of carriage return on Darwin.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Set
+ ac_cs_awk_cr to '\\r', so that sed portably expands this to '\r'
+ rather than a literal carriage return, to fix substitution on
+ Darwin. Regression introduced in 2.63b.
+ Report by Peter O'Gorman.
+
+2010-01-21 Dmitry V. Levin <ldv@altlinux.org>
+
+ Fix test failure when a shell uses $TMPDIR for here-documents.
+ * tests/tools.at (autotools and whitespace in file names): Create
+ $TMPDIR before potential use like in other whitespace tests.
+
+2010-01-20 Paolo Bonzini <bonzini@gnu.org>
+
+ Add recommendation on (not) unsetting IFS.
+ * doc/autoconf.texi (Special shell variables): Explain why it's
+ better not to unset IFS.
+
+2010-01-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ config.status: consistent exit status with nonexistent config file input.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_MAIN_LOOP): Ensure we
+ exit with status 1 rather than with that of 'false', for
+ reproducibility.
+ (AC_OUTPUT): Ensure to exit 1 in case of config.status failure.
+ * tests/torture.at (Missing templates): Also test code path
+ for $srcdir != '.'.
+ Report by Tim Rice.
+
+2010-01-13 Eric Blake <ebb9@byu.net>
+
+ Fix previous example.
+ * doc/autoconf.texi (Here-Documents): Touch up the example to
+ match output to sample command line.
+
+ Document here-doc pitfall.
+ * doc/autoconf.texi (Here-Documents): Mention problem with <<-
+ operator.
+ Reported by Jim Meyering.
+
+2010-01-12 Eric Blake <ebb9@byu.net>
+
+ Typo fix in earlier commit.
+ * doc/autoconf.texi (Autoconf Language): Fix typo.
+
+2010-01-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Allow AC_FUNC_MKTIME to work with C++.
+ * lib/autoconf/functions.m4 (AC_FUNC_MKTIME): ANSIfy KnR function
+ definitions. Use `const char*' for character literals; cast them
+ to `char*' for putenv.
+
+2010-01-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Export AUTOM4TE in tests/atlocal.in, for aclocal.
+ * tests/atlocal.in: Set and export $AUTOM4TE, for aclocal.
+ Report by Tim Rice.
+
+2010-01-08 Eric Blake <ebb9@byu.net>
+
+ Make autotest example act better with automake.
+ * doc/autoconf.texi (Making testsuite Scripts): Rely on automake
+ feature for recommended autotest snippet, following our own use.
+
+ Clarify language on handling of opening parenthesis.
+ * doc/autoconf.texi (Autoconf Language): Give an example of
+ improper argument passing.
+ * THANKS: Update.
+ Reported by Juan Carlos Hurtado.
+
+2010-01-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Don't fail autom4te preselection test due to different Automake.
+ * tests/tools.at (autom4te preselections): If the cache test
+ fails, extract the Automake version from the toplevel
+ Makefile.in file of the source tree; skip, rather than fail
+ the test group if the automake program has a different version.
+ * THANKS: Update.
+ Report by Dieter Jurzitza, fix suggested by Eric Blake.
+
+2010-01-06 Peter Breitenlohner <peb@mppmu.mpg.de>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix AC_CONFIG_LINKS to generated files when srcdir is absolute.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_LINK): Check $ac_source,
+ not $srcdir, for being relative or absolute.
+ * tests/torture.at (AC_CONFIG_LINKS): New test.
+ (AC_CONFIG_LINKS and identical files): Extend test, avoid some
+ forks.
+ Report, patch and testcase example by Peter Breitenlohner.
+
+2010-01-05 Eric Blake <ebb9@byu.net>
+
+ Improve release automation.
+ * maint.mk (gnulib_dir, gnulib-version, bootstrap-tools)
+ (announcement): Copy from latest gnulib maint.mk.
+ * cfg.mk (announce_gen, gpg_key_ID): Delete.
+ (bootstrap-tools): Override the default.
+
+ Update upstream files.
+ * GNUmakefile: Update via 'make fetch'.
+ * build-aux/announce-gen: Likewise.
+ * build-aux/config.guess: Likewise.
+ * build-aux/config.sub: Likewise.
+ * build-aux/gendocs.sh: Likewise.
+ * build-aux/gnupload: Likewise.
+ * build-aux/move-if-change: Likewise.
+ * build-aux/update-copyright: Likewise.
+ * build-aux/vc-list-files: Likewise.
+ * doc/standards.texi: Likewise.
+ * cfg.mk (update-copyright-env): Enforce wrap column.
+
+ Update copyright year.
+ All files changed to add 2010, via 'make update-copyright'.
+
+2009-12-31 Bruno Haible <bruno@clisp.org>
+
+ Improve documentation on Solaris tr bugs.
+ * doc/autoconf.texi (Limitations of Usual Tools) <tr>: Refine
+ description of NUL handling by Solaris tr.
+
+2009-12-31 Eric Blake <ebb9@byu.net>
+
+ Another tr tweak.
+ * doc/autoconf.texi (Limitations of Usual Tools) <tr>: Clarify
+ previous commit.
+ Reported by Ralf Wildenhues.
+
+2009-12-29 Eric Blake <ebb9@byu.net>
+
+ Improve documentation on tr portability.
+ * doc/autoconf.texi (Limitations of Usual Tools) <tr>: Refine
+ description of NUL handling. Document set size issue.
+ Reported by Bruno Haible.
+
+ Fix comment in AC_CHECK_DECLS.
+ * lib/autoconf/general.m4 (AC_CHECK_DECL): Document the includes
+ argument to the shell function.
+
+2009-12-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Add testsuite exposure for shtool usage.
+ * tests/foreign.at (shtool): New test.
+ Report by Dmitry Grebeniuk.
+
+2009-12-12 Eric Blake <ebb9@byu.net>
+
+ 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.
+
+2009-12-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ 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.
+ This reverts commit 93d9386de9c1320afed43f1337ac5ddb2d2dcbb4.
+
+2009-12-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix NEWS description for AC_FUNC_MMAP entry.
+ * NEWS: Update.
+
+ Fix 2.65 AC_TYPE_INT*_T macro body text regression.
+ * lib/autoconf/types.m4 (_AC_TYPE_INT_BODY): Move helper enum
+ definition to prologue section, to avoid syntax error.
+ * NEWS, THANKS: Update.
+ Report by Pierre Ynard.
+
+2009-12-09 Paolo Bonzini <bonzini@gnu.org>
+
+ Fix `recursion' test failure.
+ * tests/m4sugar.at (recursion): Use empty diversion, not 0.
+
+2009-12-05 Stefano Lattarini <stefano.lattarini@gmail.com>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ 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.
+
+2009-12-04 Eric Blake <ebb9@byu.net>
+
+ 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.
+
+2009-11-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ manual: AC_SEARCH_LIBS also prepends to LIBS.
+ * doc/autoconf.texi (Libraries): Document that AC_SEARCH_LIBS
+ prepends to LIBS, just like AC_CHECK_LIB.
+
+2009-11-27 Paolo Bonzini <bonzini@gnu.org>
+
+ Bump m4.m4 serial number.
+ * m4/m4: Bump serial number to 10.
+
+2009-11-27 Harald van Dijk <truedfx@gentoo.org>
+
+ Fix m4 detection test on dash.
+ * m4/m4 (AC_PROG_GNU_M4): Use AS_ECHO.
+
+2009-11-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ 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ř.
+
+ Add pgfortran to list of Fortran 95+ compilers.
+ * lib/autoconf/fortran.m4 (_AC_F95_FC): Add pgfortran before
+ pgf95.
+ Based on report by Jeff Squyres.
+
+2009-11-22 Bruno Haible <bruno@clisp.org>
+
+ Fix failure of test 35 when the user has a .autom4te.cfg file.
+ * tests/tools.at (autom4te cache creation): Skip the test if the
+ user has a .autom4te.cfg file.
+
+2009-11-21 Eric Blake <ebb9@byu.net>
+
+ Release Version 2.65.
+ * NEWS: Mention the release.
+
+ Prepare for release.
+ * build-aux/announce-gen: Sync from upstream.
+ * build-aux/config.guess: Likewise.
+ * build-aux/config.sub: Likewise.
+ * cfg.mk (gnu_rel_host, url_dir_list): Move...
+ * maint.mk: ...here, copying ideas from gnulib.
+ (major): Rename...
+ (stable): ...to this, copying gnulib.
+ * HACKING (release): Document changes in process.
+
+ Avoid spurious newline in traced macros.
+ * bin/autoreconf.in (tracing): Drop newline before parsing traced
+ arguments; regression from 2009-11-14.
+
+2009-11-20 Eric Blake <ebb9@byu.net>
+
+ Allow absolute names in AT_TESTED.
+ * lib/autotest/general.m4 (AT_INIT) <PREPARE_TESTS>: Check for
+ absolute names before path walk.
+ * THANKS: Update.
+ Suggested by Allan Clark.
+
+2009-11-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ 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.
+
+2009-11-09 Eric Blake <ebb9@byu.net>
+
+ 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.
+
+2009-11-04 Eric Blake <ebb9@byu.net>
+
+ Redocument AS_DIRNAME, even with its flaws.
+ * doc/autoconf.texi (Common Shell Constructs) <AS_DIRNAME>:
+ Restore documentation, since dirname mentions it.
+ Reported by Peter Johansson.
+
+ Update upstream files.
+ * build-aux/announce-gen: Synchronize from upstream.
+ * build-aux/config.guess: Likewise.
+ * build-aux/config.sub: Likewise.
+ * build-aux/gendocs.sh: Likewise.
+ * build-aux/git-version-gen: Likewise.
+ * build-aux/texinfo.tex: Likewise.
+ * build-aux/update-copyright: Likewise.
+ * doc/standards.texi: Likewise.
+ * lib/Autom4te/Channels.pm: Likewise.
+ * lib/Autom4te/Configure_ac.pm: Likewise.
+ * lib/Autom4te/FileUtils.pm: Likewise.
+ * lib/Autom4te/Struct.pm: Likewise.
+ * lib/Autom4te/XFile.pm: Likewise.
+
+2009-11-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Coverage for autom4te cache creation issues.
+ * tests/tools.at (autom4te cache creation): New test.
+
+2009-11-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix testsuite failures with SHELL=zsh.
+ * tests/statesave.m4 (AC_STATE_SAVE): Ignore argv and ARGC when
+ comparing configure variables.
+
+2009-11-03 Eric Blake <ebb9@byu.net>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Update NEWS for recent fixes.
+ * NEWS: Add some entries.
+
+2009-10-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ 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.
+
+ Fix testsuite failure on AIX 4.3.3.
+ * lib/autoconf/general.m4 (_AC_RUN_LOG_LIMIT): Remove conftest.err
+ also if it is empty.
+
+ 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.
+
+2009-10-31 Eric Blake <ebb9@byu.net>
+
+ Fix cross-manual link to gcc.
+ * doc/autoconf.texi (Portable C and C++): Provide uref rather than
+ xref when building for html.
+ Reported via Karl Berry.
+
+ Update authors.
+ * AUTHORS: Document recent copyright assignments.
+
+2009-10-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix AC_OPENMP configure message for non-C compilers.
+ * lib/autoconf/lang.m4 (AC_LANG_DEFINE): Accept as additional
+ fourth arg the compiler variable name, defined in _AC_CC($1).
+ (_AC_CC): New language dispatch macro.
+ * lib/autoconf/erlang.m4 (AC_LANG(Erlang)): Adjust.
+ * lib/autoconf/fortran.m4 (AC_LANG(Fortran 77), AC_LANG(Fortran)):
+ Likewise.
+ * lib/autoconf/c.m4 (AC_LANG(C), AC_LANG(C++))
+ (AC_LANG(Objective C), AC_LANG(Objective C++)): Likewise.
+ (AC_OPENMP): Use _AC_CC instead of $CC.
+
+ 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.
+
+2009-10-31 Bruno Haible <bruno@clisp.org>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ 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.
+
+2009-10-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ 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.
+
+ Perl coverage convenience targets.
+ * Makefile.am (PERL_COVERAGE_DB, PERL_COVERAGE_FLAGS)
+ (PERL_COVER): New variables.
+ (check-coverage, check-coverage-run, check-coverage-report)
+ (clean-coverage): New phony targets.
+ (clean-local): Depend on clean-coverage.
+
+2009-10-28 Eric Blake <ebb9@byu.net>
+
+ Fix corner cases in AS_LITERAL_IF and AS_TR_SH.
+ * lib/m4sugar/m4sh.m4 (AS_LITERAL_IF): Fix bug with unbalanced
+ parens. Move guts...
+ (_AS_LITERAL_IF): into new helper.
+ (AS_TR_SH, AS_TR_CPP): Fix bugs with expansion of wrong macro.
+ Move guts...
+ (_AS_TR_SH, _AS_TR_SH_LITERAL, _AS_TR_SH_INDIR, _AS_TR_CPP)
+ (_AS_TR_CPP_LITERAL, _AS_TR_CPP_INDIR): ...into new helpers.
+ (AS_VAR_PUSHDEF): Hoist m4_require, by moving guts...
+ (_AS_VAR_PUSHDEF): ...into new helper.
+ * tests/m4sh.at (AS@&t@_LITERAL_IF): Enhance test.
+
+ 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.
+
+ 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.
+
+ 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.
+
+2009-10-27 Eric Blake <ebb9@byu.net>
+
+ 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.
+
+2009-10-26 Paolo Bonzini <bonzini@gnu.org>
+
+ Pass Autom4te path down to programs that autoreconf invokes.
+ * bin/autoreconf.in (autom4te): New variable. Export its value
+ as $ENV{'AUTOM4TE'}. Suggested by Peter Johansson.
+ * THANKS: Update.
+
+2009-10-20 Eric Blake <ebb9@byu.net>
+
+ Fix AC_TYPE_UINT64_T on Tru64 with gcc 3.4.4.
+ * lib/autoconf/types.m4 (_AC_TYPE_UNSIGNED_INT_BODY)
+ (_AC_TYPE_INT_BODY): Avoid undefined behavior of attempting shift
+ wider than type.
+ * NEWS: Document this.
+ Reported by Rainer Orth.
+
+2009-10-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix a couple of index entries in the manual.
+ * doc/autoconf.texi (Polymorphic Variables): Fix index entries
+ for AS_VAR_APPEND, AS_VAR_ARITH.
+
+2009-10-15 Eric Blake <ebb9@byu.net>
+
+ Fix typos in INSTALL.
+ * doc/install.texi (Basic Installation, Installation Names): Fix
+ typos in last patch.
+ Reported by Ralf Wildenhues.
+
+ 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.
+
+2009-10-15 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Fix typos in documentation.
+ * doc/autoconf.texi (Cache Variable Index): Fix typo.
+ (Libraries) <AC_SEARCH_LIBS>: Mention 'none required' result.
+
+2009-10-09 Bruno Haible <bruno@clisp.org>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ 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.
+
+2009-10-05 Bruno Haible <bruno@clisp.org>
+
+ * doc/autoconf.texi (Particular Functions): Swap sections about
+ AC_FUNC_MBRTOWC and AC_FUNC_MEMCMP.
+
+2009-10-01 Paolo Bonzini <bonzini@gnu.org>
+
+ Unconditionally check for junk ./--version after mkdir search loop.
+ * lib/autoconf/programs.m4 (AC_PROG_MKDIR_P): Always check for
+ presence of ./--version. Reported by Eric Blake.
+
+2009-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ 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.
+
+2009-09-21 Eric Blake <ebb9@byu.net>
+
+ Fit configure output in 80 columns.
+ * lib/autoconf/functions.m4
+ (AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Shorten message.
+
+2009-09-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Use consistent notation for cache variables.
+ * doc/autoconf.texi (Generic Programs): Remove `$' before
+ variable name.
+
+ Documentation of specific and general cache variables.
+ * doc/autoconf.texi (Default Includes, Alternative Programs)
+ (Particular Programs, Generic Programs, Files, Libraries)
+ (Function Portability, Particular Functions, Generic Functions)
+ (Particular Headers, Generic Headers, Declarations)
+ (Generic Declarations, Particular Structures, Particular Types)
+ (Specific Compiler Characteristics)
+ (Generic Compiler Characteristics, C Compiler, System Services):
+ Document lots of cache variables.
+ * NEWS: Update.
+ Suggested by Bruno Haible.
+
+ New cache variable index in the manual.
+ * 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.
+
+ New FAQ node: Debugging.
+ * doc/autoconf.texi (Debugging): New node.
+ (Top, FAQ): Adjust menus.
+ Report by Bruno Haible.
+
+ 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.
+
+2009-09-15 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Implement and document Objective C++ support.
+ * lib/autoconf/c.m4 (AC_LANG(Objective C++), AC_LANG_OBJCXX)
+ (AC_LANG_PREPROC(Objective C++), AC_PROG_OBJCXXCPP)
+ (AC_LANG_COMPILER(Objective C++), AC_PROG_OBJCXX)
+ (_AC_PROG_OBJCXX_G): New macros.
+ (_AC_ARG_VAR_CPPFLAGS, _AC_ARG_VAR_LDFLAGS)
+ (_AC_ARG_VAR_LIBS): Adjusted.
+ * doc/autoconf.texi (Objective C++ Compiler): New node.
+ (Preset Output Variables): Document OBJCXXFLAGS.
+ (Language Choice): Document `Objective C++' language.
+ * NEWS: Updated.
+ * tests/local.at (AT_CHECK_ENV): Ignore AC_SUBSTed Objective C++
+ related variables.
+
+2009-09-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ 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.
+
+ DJGPP fix: Do not redirect standard input in configure scripts.
+ * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): If $DJGPP is
+ nonempty, do not dup fd 0 to AS_ORIGINAL_STDIN_FD, do not close
+ fd 0.
+
+2009-09-14 Eric Blake <ebb9@byu.net>
+
+ Quote result of m4_toupper and m4_tolower.
+ * lib/m4sugar/m4sugar.m4 (m4_tolower, m4_toupper): Quote result.
+ * lib/autotest/general.m4 (AT_KEYWORDS): Adjust caller.
+ * tests/m4sugar.at (m4@&t@_toupper and m4@&t@_tolower): New test.
+ * NEWS: Document this.
+ * THANKS: Update.
+ Reported by Sam Steingold.
+
+2009-09-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ DJGPP fix: remove both conftest and conftest.exe.
+ 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.
+
+ testsuite: pass $configure_options to configure invocations.
+ * tests/local.at (AT_CHECK_CONFIGURE): Add $configure_options
+ to configure command line.
+ * tests/autotest.at, tests/base.at, tests/c.at, tests/torture.at:
+ Likewise for each configure invocation.
+ * README-hacking: Document configure_options.
+
+ testsuite: improve Erlang tests portability, overridability.
+ * 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.
+
+2009-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * bin/autoupdate.in: Fix typos in comments.
+
+ Improve autotest testsuite summary message.
+ * lib/autotest/general.m4 (AT_INIT): Hint at the toplevel log
+ only if not $at_debug_p. Always hint at the per-test output.
+
+ Four new autoupdate tests, expected failures.
+ * tests/tools.at (autoupdating macros recursively)
+ (autoupdating with m4@&t@_pushdef, autoupdating with AC_REQUIRE)
+ (autoupdating with complex quoting): New tests.
+
+ Fix description of AC_CHECK_LIB regarding other deplibs.
+ * doc/autoconf.texi (Libraries): Library linking may not fail
+ even without missing additional libs.
+
+2009-09-12 Eric Blake <ebb9@byu.net>
+
+ Track recent copyright assignments.
+ * AUTHORS: Update.
+
+ Improve documentation on quoting.
+ * doc/autoconf.texi (Autoconf Language): Clarify quoting example.
+ * THANKS: Update.
+ Reported by santilín.
+
+2009-09-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ New config.status option --config.
+ * 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.
+
+2009-09-10 Eric Blake <ebb9@byu.net>
+
+ 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.
+
+ Clarify portability pitfall of test.
+ * doc/autoconf.texi (Limitations of Builtins) <test>: Give more
+ reasons why -a and -o are not portable.
+ Reported by Reuben Thomas.
+
+2009-09-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ 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.
+
+ Document temporary directory `$tmp' for use in config.status.
+ * doc/autoconf.texi (Configuration Actions): Document `$tmp'.
+ * NEWS: Update.
+
+2009-09-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Update License to GPLv3+ including new Autoconf Exception.
+ * NEWS, README: Update licensing information.
+ * COPYING.EXCEPTION: New file.
+ * Makefile.am (EXTRA_DIST): Distribute it.
+ * cfg.mk (autom4te-update): Remove copyright change warning.
+ * lib/autoconf/autoconf.m4, lib/autoconf/autoheader.m4,
+ lib/autoconf/autoscan.m4, lib/autoconf/autotest.m4,
+ lib/autoconf/autoupdate.m4, lib/autoconf/c.m4,
+ lib/autoconf/erlang.m4, lib/autoconf/fortran.m4,
+ lib/autoconf/functions.m4, lib/autoconf/general.m4,
+ lib/autoconf/headers.m4, lib/autoconf/lang.m4,
+ lib/autoconf/libs.m4, lib/autoconf/oldnames.m4,
+ lib/autoconf/programs.m4, lib/autoconf/specific.m4,
+ lib/autoconf/status.m4, lib/autoconf/types.m4,
+ lib/autotest/autotest.m4, lib/autotest/general.m4,
+ lib/autotest/specific.m4, lib/m4sugar/foreach.m4,
+ lib/m4sugar/m4sh.m4, lib/m4sugar/m4sugar.m4: Update exception
+ statement, bump to GPLv3.
+ * bin/autoconf.as, bin/autoheader.in, bin/autom4te.in,
+ bin/autoreconf.in, bin/autoscan.in, bin/autoupdate.in,
+ bin/ifnames.in: Bump to GPLv3+, adjust --version output
+ to reflect the GPLv3+ and the Autoconf Exception.
+ * lib/Autom4te/C4che.pm, lib/Autom4te/ChannelDefs.pm,
+ lib/Autom4te/General.pm, lib/Autom4te/Request.pm,
+ lib/autom4te.in, lib/autoscan/autoscan.pre,
+ lib/emacs/autoconf-mode.el, lib/emacs/autotest-mode.el,
+ lib/freeze.mk, tests/atlocal.in, tests/autoscan.at,
+ tests/autotest.at, tests/base.at, tests/c.at,
+ tests/compile.at, tests/erlang.at, tests/foreign.at,
+ tests/fortran.at, tests/local.at, tests/m4sh.at,
+ tests/m4sugar.at, tests/mktests.sh, tests/semantics.at,
+ tests/statesave.m4, tests/suite.at, tests/tools.at,
+ tests/torture.at, tests/wrapper.as: Bump to GPLv3+.
+
+ 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.
+
+2009-09-04 Reuben Thomas <rrt@sc3d.org> (tiny change)
+
+ Mention the Autoconf archive.
+ * doc/autoconf.texi (Coding Style): Add a link.
+
+2009-08-30 Bruno Haible <bruno@clisp.org>
+
+ 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.
+
+2009-09-04 Eric Blake <ebb9@byu.net>
+
+ Improve wording about what goes before AC_INIT.
+ * doc/autoconf.texi (Initializing configure): Update wording.
+ (Versioning) <AC_PREREQ>: Remove misleading text, to match
+ autoscan's behavior.
+ * THANKS: Update.
+ Reported by NightStrike, with input from Ralf Wildenhues.
+
+2009-09-04 Thomas Jahns <jahns@dkrz.de> (tiny change)
+
+ Fix illegal tab character in Fortran source.
+ * lib/autoconf/fortran.m4 (AC_FC_SRCEXT): Change TAB back to
+ multiple spaces; regression introduced 2008-10-23.
+ * NEWS: Mention this.
+ * THANKS: Update.
+
+2009-08-22 Romain Lenglet <romain.lenglet@laposte.net>
+
+ Fix AT_CHECK_EUNIT for versions of Erlang/OTP without init:stop/1.
+ * lib/autotest/specific.m4 (AT_CHECK_EUNIT): Support older
+ versions of Erlang/OTP with an erlang:stop() function that doesn't
+ take arguments.
+
+2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Drop unneeded line in Eunit test.
+ * tests/autotest.at (Erlang Eunit unit tests): Do not copy
+ install-sh.
+
+ Fix build dependencies for Erlang macro files.
+ * lib/freeze.mk (autotest_m4f_dependencies): Add
+ $(src_libdir)/autotest/specific.m4.
+ * tests/Makefile.am (AUTOCONF_FILES): Add erlang.m4.
+
+2009-09-19 Paolo Bonzini <bonzini@gnu.org>
+
+ 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.
+
+2009-08-18 Bruno Haible <bruno@clisp.org>
+
+ Document Solaris tr range and NUL limitations.
+ * doc/autoconf.texi (Limitations of Usual Tools): Mention that
+ Solaris /usr/bin/tr does not support ranges, nor the '\0' octal
+ escape.
+
+2009-08-14 Eric Blake <ebb9@byu.net>
+
+ Simplify version control metadata.
+ * .cvsignore: Delete.
+ * bin/.cvsignore: Likewise.
+ * config/.cvsignore: Likewise.
+ * doc/.cvsignore: Likewise.
+ * lib/.cvsignore: Likewise.
+ * lib/autoconf/.cvsignore: Likewise.
+ * lib/Autom4te/.cvsignore: Likewise.
+ * lib/autoscan/.cvsignore: Likewise.
+ * lib/autotest/.cvsignore: Likewise.
+ * lib/emacs/.cvsignore: Likewise.
+ * lib/m4sugar/.cvsignore: Likewise.
+ * man/.cvsignore: Likewise.
+ * tests/.cvsignore: Likewise.
+ * bin/.gitignore: Likewise.
+ * build-aux/.gitignore: Likewise.
+ * config/.gitignore: Likewise.
+ * doc/.gitignore: Likewise.
+ * lib/.gitignore: Likewise.
+ * lib/autoconf/.gitignore: Likewise.
+ * lib/Autom4te/.gitignore: Likewise.
+ * lib/autoscan/.gitignore: Likewise.
+ * lib/autotest/.gitignore: Likewise.
+ * lib/emacs/.gitignore: Likewise.
+ * lib/m4sugar/.gitignore: Likewise.
+ * man/.gitignore: Likewise.
+ * tests/.gitignore: Likewise.
+ * .gitignore: Consolidate all rules into one file.
+
+ Normalize remaining copyright lines.
+ * BUGS: Reformat copyright line, using UPDATE_COPYRIGHT_FORCE.
+ * NEWS: Likewise.
+ * README-hacking: Likewise.
+ * TODO: Likewise.
+ * lib/Autom4te/ChannelDefs.pm: Likewise.
+ * lib/autoconf/fortran.m4: Likewise.
+ * lib/autoconf/general.m4: Likewise.
+ * lib/autoconf/lang.m4: Likewise.
+ * lib/autotest/general.m4: Likewise.
+ * maint.mk: Likewise.
+ * tests/compile.at: Likewise.
+
+ Improve copyright updating.
+ * build-aux/update-copyright: Resynchronize from upstream.
+ * maint.mk (update-copyright): Simplify based on gnulib.
+ (update-copyright-env): New variable.
+ * cfg.mk (update-copyright-exclude-regexp): Delete.
+ (update-copyright-env): New override.
+ * .x-update-copyright: New file.
+ * lib/Autom4te/Makefile.am: Add copyright.
+ * lib/Autom4te/Channels.pm: Revert copyright update to upstream
+ file.
+ * lib/Autom4te/Configure_ac.pm: Likewise.
+ * lib/Autom4te/FileUtils.pm: Likewise.
+ * lib/Autom4te/Struct.pm: Likewise.
+ * lib/Autom4te/XFile.pm: Likewise.
+
+ Update copyright.
+ * AUTHORS: Include 2009 in copyright.
+ * lib/Autom4te/C4che.pm: Likewise.
+ * lib/Autom4te/Channels.pm: Likewise.
+ * lib/Autom4te/Configure_ac.pm: Likewise.
+ * lib/Autom4te/FileUtils.pm: Likewise.
+ * lib/Autom4te/General.pm: Likewise.
+ * lib/Autom4te/Request.pm: Likewise.
+ * lib/Autom4te/Struct.pm: Likewise.
+ * lib/autoconf/Makefile.am: Likewise.
+ * lib/autoconf/autoconf.m4: Likewise.
+ * lib/autoconf/autoscan.m4: Likewise.
+ * lib/autoconf/autoupdate.m4: Likewise.
+ * lib/autoconf/functions.m4: Likewise.
+ * lib/autoconf/libs.m4: Likewise.
+ * lib/autoconf/oldnames.m4: Likewise.
+ * lib/autoconf/types.m4: Likewise.
+ * lib/autoscan/Makefile.am: Likewise.
+ * lib/autoscan/autoscan.pre: Likewise.
+ * lib/autotest/Makefile.am: Likewise.
+ * lib/autotest/autotest.m4: Likewise.
+ * lib/emacs/autoconf-mode.el: Likewise.
+ * lib/emacs/autotest-mode.el: Likewise.
+ * lib/freeze.mk: Likewise.
+ * lib/m4sugar/foreach.m4: Likewise.
+ * man/Makefile.am: Likewise.
+ * tests/atlocal.in: Likewise.
+ * tests/autoscan.at: Likewise.
+ * tests/foreign.at: Likewise.
+ * tests/fortran.at: Likewise.
+ * tests/mktests.sh: Likewise.
+ * tests/semantics.at: Likewise.
+ * tests/suite.at: Likewise.
+ * tests/wrapper.as: Likewise.
+
+ 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 variable.
+ (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.
+
+2009-08-12 Paolo Bonzini <bonzini@gnu.org>
+
+ Fix testsuite log capturing for tests 183 and 186.
+ * tests/autotest.at (AT_CHECK_AT_PREP): Prepend AT_dir to
+ testsuite log file for AT_CAPTURE_FILE.
+
+2009-08-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Ensure we do not regress with AC_CHECK_MEMBERS.
+ * tests/semantics.at (AC_CHECK_MEMBERS): Expose the recent
+ AC_CHECK_MEMBERS fix.
+ (AC_CHECK_MEMBER): New test group.
+
+2009-08-10 Jeff Squyres <jsquyres@cisco.com> (tiny change)
+
+ Fix typo in AC_REQUIRE description.
+ * doc/autoconf.texi (Prerequisite macros): Fix typo.
+
+2009-08-10 Paolo Bonzini <bonzini@gnu.org>
+
+ Fix description of the macro generated by AC_CHECK_MEMBERS.
+ * lib/autoconf/types.m4 (_AC_CHECK_MEMBERS): Fix regex
+ replacement. Reported by Bruno Haible.
+
+2009-08-07 Romain Lenglet <romain.lenglet@laposte.net>
+
+ * lib/autoconf/erlang.m4 (AC_LANG(Erlang)): Make AC_RUN_IFELSE
+ fail if the test module doesn't compile.
+
+2009-08-02 Paolo Bonzini <bonzini@gnu.org>
+
+ Use exit code to detect no occurrences with grep.
+ * tests/autotest.at (Erlang Eunit unit tests): Fix grep invocation.
+
+2009-08-01 Romain Lenglet <romain.lenglet@laposte.net>
+ Paolo Bonzini <bonzini@gnu.org>
+
+ * lib/autotest/specific.m4 (AT_CHECK_EUNIT): New file.
+ * lib/autotest/Makefile.am (dist_autotestlib_DATA): Add specific.m4.
+ * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Add definitions of
+ variables used by AT_CHECK_EUNIT macro: ERL, ERLC, ERLCFLAGS.
+ * tests/autotest.at (Erlang Eunit unit tests): Add test for macro
+ AT_CHECK_EUNIT.
+ * doc/autoconf.texi (Writing Testsuites): Document macro
+ AT_CHECK_EUNIT.
+ * NEWS: Mention macro AT_CHECK_EUNIT.
+
+2009-07-30 Paolo Bonzini <bonzini@gnu.org>
+ Joel E. Denny <jdenny@clemson.edu>
+
+ Clarify comparison of echo, printf, and AS_ECHO*.
+ * doc/autoconf.texi (Limitations of Builtins): In echo's entry,
+ give a reason why printf is better than echo. In printf's
+ entry, cross-reference echo's entry.
+
+2009-07-30 Paolo Bonzini <bonzini@gnu.org>
+
+ Add back AH_CHECK_HEADERS.
+ * lib/autoconf/general.m4 (AH_CHECK_HEADERS): New.
+ * NEWS: Create new section.
+
+2009-07-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ testsuite: avoid bogus hostname match from inner test logs.
+ * tests/autotest.at (Hard fail): Check more restrictively for
+ passed tests, so that hostnames recorded in the log file do not
+ wrongly match.
+ Report by Ludovic Courtès.
+
+2009-07-26 Eric Blake <ebb9@byu.net>
+
+ Release Version 2.64.
+ * NEWS: Mention the release.
+ * README: This release is stable.
+ * HACKING (release): Use dist-xz, not dist-lzma.
+
+ Document some optional features in INSTALL.
+ * doc/install.texi (Basic Installation): Mention that INSTALL is
+ generic, and that not all packages implement all features.
+ Mention 'make distcheck' for maintainers, and 'make installcheck'
+ for users. Mention the GNU Coding Standards.
+ (Installation Names): Mention DESTDIR vs. 'make prefix= install'
+ as ways to alter the configuration, with caveats of each. Move
+ --program-prefix discussion...
+ (Optional Features): ...here. Mention --enable-silent-rules and
+ use of make V=0.
+
+ Basic improvements to INSTALL.
+ * doc/install.texi (Basic Installation): Use better markup.
+ (Multiple Architectures): Introduce the term VPATH.
+ (Installation Names): Mention that --prefix must be absolute.
+ * doc/autoconf.texi (Preset Output Variables)
+ (Installation Directory Variables): Consistently refer to GNU
+ Coding Standards.
+
+ Update some upstream files.
+ * build-aux/config.guess: Resynchronize from upstream.
+ * build-aux/config.sub: Likewise.
+ * build-aux/texinfo.tex: Likewise.
+ * build-aux/vc-list-files: Likewise.
+ * doc/standards.texi: Likewise.
+
+2009-07-25 Eric Blake <ebb9@byu.net>
+
+ Recognize new m4sugar keywords.
+ * lib/emacs/autoconf-mode.el (autoconf-current-defun): Recognize
+ m4_define_default, m4_defun_init, m4_defun_once.
+ (autoconf-font-lock-keywords): Likewise.
+
+ Require m4 1.4.6, and fix testsuite to support this version.
+ * m4/m4.m4 (AC_PROG_GNU_M4): Reject m4 1.4.5, now that we use
+ regexp it can't handle.
+ * NEWS: Mention minimum version bump.
+ * README: Likewise.
+ * README-hacking: Likewise.
+ * doc/autoconf.texi (Introduction, Why GNU M4): Likewise.
+ * tests/tools.at (autom4te --trace and whitespace): Update test so
+ still work with older m4 line numbers.
+ * tests/m4sugar.at (m4@&t@_require: nested): Likewise.
+ Reported by Ralf Wildenhues.
+
+2009-07-25 Bruno Haible <bruno@clisp.org>
+
+ Clarify autom4te debugging tips.
+ * doc/autoconf.texi (Debugging via autom4te): Fix example from
+ previous commit, and add clarification.
+
+2009-07-25 Eric Blake <ebb9@byu.net>
+
+ Document some autom4te debugging tips.
+ * doc/autoconf.texi (Debugging via autom4te): New node.
+ Suggested by Bruno Haible.
+
+ Fix font-lock.
+ * configure.ac (ac_cv_unsupported_fs_chars): Make editing easier.
+
+ Let autoheader see through m4 macros in AC_DEFINE.
+ * lib/autoconf/general.m4 (AC_DEFINE_TRACE): Expand macro before
+ tracing its name.
+ * lib/autoconf/autoheader.m4 (AH_VERBATIM, AH_TEMPLATE): Likewise,
+ for using the macro in a template file.
+ * tests/tools.at (autoheader and macros): New test.
+ * NEWS: Mention this.
+ Reported by Bruno Haible.
+
+ Improve NEWS wording.
+ * NEWS: Use more accurate statement.
+ Suggestedy by Ralf Wildenhues.
+
+2009-07-24 Eric Blake <ebb9@byu.net>
+
+ Fix AS_EXIT for FreeBSD sh.
+ * lib/m4sugar/m4sh.m4 (AS_EXIT): Always supply an argument to the
+ shell function, since $? is not reliable on function entry.
+ (_AS_EXIT_PREPARE): Simplify to assume argument.
+ Reported by Ralf Wildenhues.
+
+2009-07-23 Eric Blake <ebb9@byu.net>
+
+ Run more tests under Solaris.
+ * tests/local.at (AT_CHECK_AUTOCONF): Don't skip entire test
+ group when passing over syntax checks.
+
+2009-07-23 Romain Lenglet <romain.lenglet@laposte.net>
+
+ Clean up temporary files generated by Erlang macros.
+ * lib/autoconf/erlang.m4 (AC_ERLANG_CHECK_LIB)
+ (AC_ERLANG_SUBST_ROOT_DIR, AC_ERLANG_SUBST_LIB_DIR)
+ (AC_ERLANG_SUBST_ERTS_VER): Delete conftest.out; renamed
+ erlang_cv_* cache variables into ac_cv_erlang_*.
+ * lib/autoconf/general.m4 (AC_RUN_IFELSE): Delete conftest.beam
+ files generated by Erlang compiler.
+ * tests/local.at (AT_CHECK_ENV): Ignore variables defined by
+ Erlang macros.
+ * tests/erlang.at (AT_SETUP_ERLANG): Delete; replace all uses by
+ AT_CHECK_MACRO.
+ * tests/Makefile.am (AUTOCONF_FILES): Revert previous addition of
+ generated Erlang tests; they are all hand-tested.
+
+ Add autotests for Erlang macros.
+ * tests/erlang.at: Added tests for all macros in erlang.m4.
+ * tests/Makefile.am (TESTSUITE_HAND_AT, AUTOCONF_FILES): Added
+ erlang.at.
+ * tests/suite.at: Likewise.
+ * tests/compile.at (AC_LANG, AC_LANG_PUSH & AC_LANG_POP): Added
+ test for extension of Erlang files.
+ (Multiple languages): Use correct m4 quoting.
+ * NEWS: Mention this.
+
+2009-07-22 Eric Blake <ebb9@byu.net>
+
+ Fix test of autom4te from stdin.
+ * tests/tools.at (autom4te cache locking): Make stdin request
+ explicit, so that --force is properly used.
+
+2009-07-16 Eric Blake <ebb9@byu.net>
+
+ Don't hide leading space in autom4te --trace output.
+ * bin/autom4te.in (handle_traces): Don't flatten leading and
+ trailing space, since tracing spacing bugs can be useful.
+ * tests/tools.at (autom4te --trace and whitespace): New test.
+
+2009-07-13 Eric Blake <ebb9@byu.net>
+
+ Document that $srcdir can be used during configure.
+ * doc/autoconf.texi (Preset Output Variables): Add a paragraph.
+ * THANKS: Update.
+ Reported by Monty Taylor.
+
+2009-07-13 Eric Blake <ebb9@byu.net>
+
+ Disable asynchronous job notification for parallel tests.
+ * lib/autotest/general.m4 (AT_INIT) <Driver loop>: Turn off notify
+ mode, since zsh leaves it on after 'emulate sh'.
+ * doc/autoconf.texi (Limitations of Builtins) <set>: Document that
+ job control options are not portable.
+
+ Guarantee that exit status trumps output matching.
+ * doc/autoconf.texi (Writing Testsuites) <AT_CHECK>: Document this
+ better.
+ * tests/autotest.at (Skip, parallel skip): Enhance tests.
+
+ Fix nits in recent patches.
+ * configure.ac (ac_cv_dir_trailing_space): Avoid $status, for
+ zsh.
+ * doc/autoconf.texi (Writing Testsuites) <AT_FAIL_IF, AT_SKIP_IF>:
+ Tweak wording.
+ (Introduction): Recommend m4 1.4.13.
+ * README: Likewise.
+ * m4/m4.m4 (AC_PROG_GNU_M4): Likewise. Use long option --gnu
+ rather than -g.
+
+2009-07-13 Paolo Bonzini <bonzini@gnu.org>
+
+ Introduce AT_SKIP_IF and AT_FAIL_IF
+ * NEWS: Mention AT_SKIP_IF and AT_FAIL_IF.
+ * doc/autoconf.texi (Autotest): Document them.
+ * lib/autotest/general.m4 (_AT_LINE_ESCAPED, AT_SKIP_IF,
+ AT_FAIL_IF, _AT_CHECK_EXIT): New.
+ (AT_CHECK): Use _AT_LINE_ESCAPED.
+ * tests/autotest.at: Add tests for AT_SKIP_IF and AT_FAIL_IF.
+ Use AT_SKIP_IF.
+ * tests/local.at: Use AT_SKIP_IF.
+
+2009-07-13 Paolo Bonzini <bonzini@gnu.org>
+
+ Use m4 -g when available.
+ * m4/m4.m4: Unset POSIXLY_CORRECT during first test. Test for -g.
+ Warn user if he has POSIXLY_CORRECT set but -g is not supported.
+ * bin/Makefile.am: Substitute @M4_GNU@ into generated files.
+ * bin/autom4te.in: Pass @M4_GNU@ to m4.
+
+2009-07-13 Eric Blake <ebb9@byu.net>
+
+ Fix previous patch.
+ * lib/autotest/general.m4 (at_fn_check_prepare_notrace): Use
+ proper m4 quoting.
+ (_AT_DECIDE_TRACEABLE): Likewise.
+
+2009-07-13 Paolo Bonzini <bonzini@gnu.org>
+
+ * lib/autotest/general.m4 (at_fn_check_prepare_notrace): Use
+ $at_trace_echo. Add new REASON argument.
+ (at_fn_check_prepare_trace): Do not call at_fn_check_prepare_notrace.
+ Use $at_check_filter_trace.
+ (at_fn_check_prepare_dynamic): Use at_fn_check_prepare_notrace.
+ (at_traceon): Initialize to ':'.
+ (at_traceoff): Remove, use 'set +x' instead throughout.
+ (at_check_filter_trace, at_trace_echo): New shell variables.
+ Initialize them if tracing is requested.
+ (_AT_DECIDE_TRACEABLE): Adjust call to at_fn_check_prepare_notrace.
+
+2009-07-12 Paolo Bonzini <bonzini@gnu.org>
+
+ Move atlocal feature tests to configure
+ * configure.ac: Test for unsupported characters in files and
+ directories here...
+ * tests/atlocal.in: ... and not here.
+
+2009-07-09 Eric Blake <ebb9@byu.net>
+
+ Fix test typo.
+ * tests/m4sh.at (AS@&t@_INIT_GENERATED): Close fd, rather than
+ creating file named -.
+
+ Fix testsuite under dash.
+ * tests/m4sh.at (LINENO stack, AS@&t@_BASENAME, AS@&t@_DIRNAME)
+ (AS@&t@_ECHO and AS@&t@_ECHO_N, AS@&t@_EXIT, AS@&t@_MKDIR_P)
+ (AS@&t@_VERSION_COMPARE, as_me, Negated classes in globbing)
+ (Functions Support, Functions and return Support)
+ (Nested AS@&t@_REQUIRE_SHELL_FN, Nested AS@&t@_REQUIRE)
+ (AS@&t@_REQUIRE_SHELL_FN and m4@&t@_require, AS@&t@_HELP_STRING)
+ (AS@&t@_IF and AS@&t@_CASE, AS@&t@_FOR, AS@&t@_LITERAL_IF)
+ (AS@&t@_VAR basics, AS@&t@_VAR_APPEND, AS@&t@_VAR_ARITH)
+ (AS@&t@_INIT cleanup, AS@&t@_INIT_GENERATED, AS@&t@_MESSAGE_FD)
+ (_AS@&t@_CLEAN_DIR, ECHO_C): Allow testing different CONFIG_SHELL
+ options during the testsuite run.
+ Reported by Ralf Wildenhues.
+
+2009-07-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Ignore messages on stderr when testing for the zsh issue.
+ * tests/autotest.at (AT_SKIP_PARALLEL_TESTS): Ignore stderr.
+
+2009-07-07 Eric Blake <ebb9@byu.net>
+
+ Skip parallel tests when zsh 'set -m' fails.
+ * tests/autotest.at (AT_SKIP_PARALLEL_TESTS): Skip test if set -m
+ is not supported.
+ Reported by Ralf Wildenhues.
+
+ Make parallel testsuite more portable.
+ * lib/autotest/general.m4 (AT_INIT) <AT_JOB_FIFO_FD>: Avoid <>;
+ instead open write descriptor in each group and read descriptor in
+ main driver.
+ * tests/autotest.at (AT_SKIP_PARALLEL_TESTS): Relax condition.
+
+2009-07-03 Eric Blake <ebb9@byu.net>
+
+ Avoid syntax error in ash.
+ * lib/autotest/general.m4 (AT_INIT) <driver loop>: Avoid syntax
+ errors on shells that don't recognize <>.
+ * tests/autotest.at (AT_SKIP_PARALLEL_TESTS): Also skip parallel
+ tests for this reason. Skip based on the shell to be tested,
+ not the shell driving the testsuite.
+ (parallel syntax error): Rearrange similar to previous patch.
+ (parallel test execution): Defer skip until after serial tests.
+
+2009-07-02 Eric Blake <ebb9@byu.net>
+
+ Skip test on shells that can't catch syntax failure.
+ * tests/autotest.at (Syntax error): Skip test if shell aborts on
+ syntax error (AIX ksh88) or doesn't detect it (zsh).
+ * doc/autoconf.texi (Limitations of Builtins) <.>: Mention these
+ limitations.
+ Reported by Ralf Wildenhues.
+
+2009-06-30 Jan Madzik <jmadzik@gmail.com> (tiny change)
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Avoid AIX 6.1 ksh88 ECHO_C command substitution bug.
+ * lib/m4sugar/m4sh.m4 (_AS_ECHO_N_PREPARE): Ensure more than
+ one character is output with `\c'; reset echo output state
+ if buggy ksh was detected, and set ECHO_T instead of ECHO_C.
+ * doc/autoconf.texi (Limitations of Builtins): Document it.
+ * tests/m4sh.at (ECHO_C): New test.
+ * THANKS: Update.
+
+2009-06-27 William Pursell <bill.pursell@gmail.com> (tiny change)
+
+ Fix grammaro in documenation.
+ * doc/autoconf.texi (Guidelines): Fix grammaro.
+
+2009-06-17 Eric Blake <ebb9@byu.net>
+
+ Fix AC_CHECK_HEADER infloop for gcc.
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_NEW)
+ (_AC_CHECK_HEADER_OLD): Give up on AU_DEFUN, and manually warn
+ about obsoletion, to avoid infinite loop in gcc.
+ Reported by Ralf Wildenhues.
+
+2009-06-15 Eric Blake <ebb9@byu.net>
+
+ Add m4_copy_force, m4_rename_force.
+ * lib/m4sugar/m4sugar.m4 (m4_copy_force, m4_rename_force): New
+ macros.
+ * tests/m4sugar.at (m4@&t@_defn): Test them.
+ * doc/autoconf.texi (Redefined M4 Macros) <m4_copy>: Document
+ them.
+ * NEWS: Likewise.
+ Suggested by Ralf Wildenhues.
+
+ Reinstate _AC_CHECK_HEADER_OLD for gcc.
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_NEW)
+ (_AC_CHECK_HEADER_OLD): Provide autoupdate versions, since gcc and
+ others used these undocumented macros.
+ Reported by Ralf Wildenhues.
+
+2009-06-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix concurrent autom4te.cache directory creation race.
+ * bin/autom4te.in: Do not error out if another `autom4te'
+ instance created the cache directory before we could.
+
+2009-06-11 Steven G. Johnson <stevenj@alum.mit.edu>
+ and Eric Blake <ebb9@byu.net>
+
+ Create a file in test program when detecting cross-compilation.
+ * lib/autoconf/lang.m4 (_AC_LANG_IO_PROGRAM): New macro, returns
+ program that creates a file.
+ (_AC_COMPILER_EXEEXT,_AC_COMPILER_EXEEXT_WORKS): Call new macro
+ and document why it's needed to robustly detect cross-compiling.
+ (AC_LANG_DEFINE): Copy implementation across similar languages.
+ * lib/autoconf/c.m4 (_AC_LANG_IO_PROGRAM(C)): Implement new macro.
+ * lib/autoconf/fortran.m4 (_AC_LANG_IO_PROGRAM(Fortran 77)):
+ Likewise.
+ * lib/autoconf/erlang.m4 (_AC_LANG_IO_PROGRAM(Erlang)): Likewise.
+
+2009-06-11 Eric Blake <ebb9@byu.net>
+
+ Simplify AC_LANG(Fortran).
+ * lib/autoconf/fortran.m4 (AC_LANG(Fortran)): Borrow from Fortran
+ 77, which requires reordering portions of the file.
+ (AC_LANG_PROGRAM(Fortran), AC_LANG_CALL(Fortran)): Now defined
+ automatically.
+
+ Clarify m4_copy semantics.
+ * doc/autoconf.texi (Redefined M4 Macros) <m4_copy>: Update
+ documentation.
+ * tests/m4sugar.at (m4@&t@_defn): Enhance test.
+
+2009-06-06 Eric Blake <ebb9@byu.net>
+
+ Improve documentation on trap pitfalls.
+ * doc/autoconf.texi (Limitations of Builtins) <trap>: Mention new
+ Posix 2008 requirement on trap, and dash bug in implementing it.
+ Mention various shell bugs with traps defined inside subshells.
+ Mention older bash limitation with single-command exit trap.
+ <set>: Mention another 'set -e' limitation.
+ Reported by Jens Schmidt.
+
+2009-06-06 Jim Meyering <meyering@redhat.com>
+
+ Improve testsuite --help
+ * lib/autotest/general.m4: Correct the example in ./testsuite --help.
+ Improve wording.
+
+2009-06-06 Eric Blake <ebb9@byu.net>
+
+ Document fallback behavior of AC_PROG_LEX.
+ * doc/autoconf.texi (Particular Programs) <AC_PROG_LEX>: Mention
+ why fallback is :, and that a --version check must be used to
+ determine whether flex was found.
+ Reported by Patrick Welche.
+
+2009-05-28 Jim Meyering <meyering@redhat.com>
+
+ Fix syntax errors in autoconf.texi.
+ * doc/autoconf.texi (Erlang Libraries): @-escape curly braces
+ in example code.
+
+2009-05-28 Romain Lenglet <romain.lenglet@laposte.net>
+
+ New AC_ERLANG_SUBST_ERTS_VER macro.
+ * lib/autoconf/erlang.m4: Add macro AC_ERLANG_SUBST_ERTS_VER.
+ * doc/autoconf.texi (Erlang Libraries): Document
+ AC_ERLANG_SUBST_ERTS_VER.
+ * NEWS: Likewise.
+ * AUTHORS: Update Romain Lenglet's email address.
+ * THANKS: Update.
+ Suggested by Ruslan Babayev.
+
+2009-05-26 Eric Blake <ebb9@byu.net>
+
+ Sanitize more problematic environment variables.
+ * doc/autoconf.texi (Environment Variable Index): Add more
+ entries, particularly for precious variables and known culprit
+ variables. Needed to avoid overfull vbox.
+ (Special Shell Variables) <CLICOLOR_FORCE, GREP_OPTIONS>: Add
+ variables known to cause misbehavior.
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Unset variables
+ known to cause problems.
+ * THANKS: Update.
+ Based on reports from Ilya Bobir and Joey Mingrone.
+
+2009-05-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Document VPATH = $(variable) issue in VPATH chapter.
+ * doc/autoconf.texi (Variables listed in VPATH): New node.
+ (Top, VPATH and Make): Adjust menus.
+ (Build Directories): Refer to it.
+ Prompted by report from Bruno Haible.
+
+2009-05-19 Eric Blake <ebb9@byu.net>
+
+ Update uses of all-permissive license.
+ * ChangeLog: Relicense under GPL.
+ * ChangeLog.0: Likewise.
+ * ChangeLog.1: Likewise.
+ * ChangeLog.2: Likewise.
+ * THANKS: Likewise.
+ * m4/m4.m4: Use latest wording of FSF all-permissive license.
+ * m4/make-case.m4: Likewise.
+ * doc/install.texi: Likewise.
+ * tests/statesave.m4: Relicense to match rest of testsuite; this
+ file does not need all-permissive license since it is not designed
+ for reuse by other packages.
+ * BUGS: Relicense under all-permissive license.
+ * HACKING: Likewise.
+ * NEWS: Likewise.
+ * README: Likewise.
+ * README-alpha: Likewise.
+ * README-hacking: Likewise.
+ * TODO: Likewise.
+
+ Update some upstream files.
+ * build-aux/config.guess: Resynchronize from upstream.
+ * build-aux/gnupload: Likewise.
+ * build-aux/vc-list-files: Likewise.
+ * build-aux/texinfo.tex: Likewise.
+ * doc/gendocs_template: Likewise.
+
+ Don't mention undocumented interface in NEWS.
+ * NEWS: Correct earlier entry about AS_FOR.
+
+2009-05-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ New manual section `Parallel Make'.
+ * doc/autoconf.texi (Parallel Make): New node, document NetBSD
+ `make -jN' quirks.
+ (Top, Portable Make): Adjust menus.
+
+2009-05-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ testsuite: skip `Multiple languages' test without C++ compiler.
+ * tests/compile.at (Multiple languages): Skip test on systems
+ without a C++ compiler.
+ Report by Jim Meyering.
+
+2009-05-13 Eric Blake <ebb9@byu.net>
+
+ Document zsh bug with empty commands.
+ * doc/autoconf.texi (Special Shell Variables) <?>: Add mention of
+ more problems with $?.
+
+2009-05-11 Patrick Welche <prlw1@cam.ac.uk> (tiny change)
+
+ Also try X11R7 when looking for X11 files, for NetBSD.
+ * lib/autoconf/libs.m4 (_AC_PATH_X_DIRECT): Also try directories
+ with X11R7 in the name.
+
+2009-05-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Limit stderr logging for C compiler version.
+ * lib/autoconf/general.m4 (_AC_RUN_LOG_LIMIT, _AC_DO_LIMIT): New
+ internal macros, equivalent to _AC_RUN_LOG and _AC_DO, but with
+ an optional additional argument to limit the number of lines of
+ stderr output logged, defaulting to 10.
+ * lib/autoconf/c.m4 (AC_PROG_CC, AC_PROG_CXX, AC_PROG_OBJC): Use
+ _AC_DO_LIMIT for capturing compiler version output. Also test
+ -qversion, for the IBM xlc compiler.
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC): Likewise.
+ * THANKS: Update.
+ Report by Christian Rössel and John R. Cary against Libtool.
+
+2009-04-24 Eric Blake <ebb9@byu.net>
+
+ Fix quoting of m4 macros in AT_CHECK.
+ * lib/autotest/general.m4 (AT_CHECK): Expand prior to adding
+ escapes, to avoid shell syntax errors caused by late macro
+ expansion.
+ * NEWS: Document this change.
+ * tests/autotest.at (Metacharacters in command from M4 expansion):
+ New test.
+
+ manual: Use consistent spelling of here-document.
+ * doc/autoconf.texi (Defining Symbols, Programming in M4sh)
+ (Common Shell Constructs, Macro Names, Writing Testsuites): Fix
+ spelling.
+ Reported by Ralf Wildenhues.
+
+ Make AT_CHECK_UNQUOTED more like AC_DEFINE_UNQUOTED.
+ * lib/autotest/general.m4 (AT_CHECK_NOESCAPE): Keep older,
+ undocumented semantics, where unbalanced " cannot be used in the
+ stdout/stderr argument.
+ (AT_CHECK_UNQUOTED): Treat " in stdout/stderr as a literal, since
+ the text is used in double-quoted context.
+ * tests/autotest.at (unquoted output): New test.
+ * doc/autoconf.texi (Writing Testsuites) <AT_CHECK>: Mention which
+ shell expansions are handled.
+
+ Rename AT_CHECK_NOESCAPE to AT_CHECK_UNQUOTED.
+ * lib/autotest/general.m4 (AT_CHECK_NOESCAPE): Deprecate, in favor
+ of new spelling...
+ (AT_CHECK_UNQUOTED): ...for consistency with AC_DEFINE_UNQUOTED.
+ * doc/autoconf.texi (Writing Testsuites) <AT_CHECK>: Document the
+ rename.
+ * NEWS: Likewise.
+ * tests/autotest.at (Binary output, Cleanup): Adjust tests.
+ * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
+ Likewise.
+ Reported by Ralf Wildenhues.
+
+2009-04-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ New test to ensure autom4te cache file locking works.
+ * tests/tools.at (autom4te cache locking): New test.
+ Report by Eric Blake.
+
+2009-04-22 Paolo Bonzini <bonzini@gnu.org>
+
+ manual: another grammar improvement.
+ * doc/autoconf.texi (Fortran Compiler): Avoid dependency on
+ pronunciation of `FCFLAGS_f90'.
+
+2009-04-23 Eric Blake <ebb9@byu.net>
+
+ Change FOO placeholder to use @var{text} instead.
+ * doc/autoconf.texi (Configuration Actions): Rename AC_CONFIG_FOOS
+ to AC_CONFIG_@var{ITEMS}.
+ * doc/autoconf.texi (config.status Invocation): Likewise.
+ (AC_FOO_IFELSE vs AC_TRY_FOO): Rename node...
+ (AC_ACT_IFELSE vs AC_TRY_ACT): ...to this.
+
+2009-04-22 Eric Blake <ebb9@byu.net>
+
+ Add m4_argn.
+ * lib/m4sugar/m4sugar.m4 (m4_argn): New macro.
+ * NEWS: Document it.
+ * doc/autoconf.texi (Looping constructs) <m4_argn>: Likewise.
+ <m4_car, m4_cdr>: Improve documentation.
+ * tests/m4sugar.at (m4 lists): New test.
+
+2009-04-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Improve description of AC_PROG_CC_C89 and AC_PROG_CC_C99.
+ * doc/autoconf.texi (C Compiler): Document that AC_PROG_CC_C89
+ and AC_PROG_CC_C99 prefer extended over strict conformance modes.
+ Report by Vincent Lefèvre.
+
+2009-04-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Revert bogus change in last commit.
+ * doc/autoconf.texi (Initialization Macros): Revert change.
+ Spotted by Eric Blake.
+
+ manual: fix trivial grammar errors.
+ * doc/autoconf.texi (Fortran Compiler, Initialization Macros)
+ (Limitations of Usual Tools, Pretty Help Strings)
+ (config.status Invocation): Fix `a' vs. `an' errors.
+ Report by Eric Blake.
+
+2009-04-21 Eric Blake <ebb9@byu.net>
+
+ Shuffle maintainer-specific rules.
+ * Makefile.am (maintainer-check-tests): Delete.
+ (autom4te-update): Move...
+ * cfg.mk (autom4te-update): ...here.
+ (fetch): Depend on autom4te-update. Split...
+ (gnulib-update): ...into new rule. Import move-if-change from
+ gnulib.
+ * maint.mk (maintainer-distcheck): Absorb former maintainer-check
+ rule.
+ * build-aux/move-if-change: New file, undistributed.
+ * .gitattributes: Handle new upstream file.
+ * .gitignore: Ignore maintainer cruft.
+ * HACKING: Update maintainer instructions.
+ * build-aux/config.guess: Update from upstream.
+ * build-aux/config.sub: Likewise.
+ * build-aux/gendocs.sh: Likewise.
+ * build-aux/texinfo.tex: Likewise.
+ * doc/gendocs_template: Likewise.
+ * doc/standards.texi: Likewise.
+
+2009-04-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Sync autom4te perl modules from Automake.
+ * lib/Autom4te/Channels.pm: Sync from Automake.
+ * lib/Autom4te/FileUtils.pm: Likewise.
+ * lib/Autom4te/XFile.pm: Likewise.
+
+ Adjust channel definitions for new Automake `ordered' flag.
+ * lib/Autom4te/ChannelDefs.pm (Autom4te::ChannelDefs): Set
+ `ordered' flag to zero for channels `fatal', `automake', and
+ `verb'. This has currently no effect on actual semantics but
+ avoids a consistency check needed for Automake's usage of the
+ Channels.pm code.
+
+ manual: clarify m4_if synopsis.
+ * doc/autoconf.texi (Redefined M4 Macros): Rewrite synopsis of
+ m4_if in the presence of more than three arguments.
+
+ Improve and clarify `config.status' usage documentation.
+ * doc/autoconf.texi (config.status Invocation): Fix markup in
+ synopsis. Use `tag' instead of `file' notation for the
+ non-option arguments, to be consistent with the documentation
+ of the AC_CONFIG_* macros.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Likewise,
+ use `tag' notation for non-option arguments.
+ Report by John Calcote.
+
+2009-04-15 Eric Blake <ebb9@byu.net>
+
+ Test that autotest handles binary output.
+ * tests/autotest.at (Binary output): New test.
+ Suggested by Ralf Wildenhues.
+
+ Add stdout-nolog and ignore-nolog to AT_CHECK.
+ * lib/autotest/general.m4 (AT_DIFF_STDERR(stderr-nolog))
+ (AT_DIFF_STDERR(ignore-nolog), AT_DIFF_STDOUT(stdout-nolog))
+ (AT_DIFF_STDOUT(ignore-nolog)): New macros.
+ * tests/autotest.at (Logging): New test.
+ * doc/autoconf.texi (Writing Testsuites) <AT_CHECK>: Document the
+ new logging actions.
+ * NEWS: Likewise.
+ Reported by Ralf Wildenhues.
+
+ Teach AT_CHECK about hard failures.
+ * lib/autotest/general.m4 (AT_INIT) <at_fn_check_skip>
+ <at_fn_check_status, at_fn_group_postprocess>: Handle hard
+ failures.
+ * doc/autoconf.texi (Writing Testsuites) <AT_CHECK>: Document
+ AT_CHECK_NOESCAPE and exit status 99.
+ * NEWS: Likewise.
+ * tests/autotest.at (Hard fail, Cleanup): New tests.
+
+2009-04-14 Eric Blake <ebb9@byu.net>
+
+ Fix yesterday's regression in AS_IF.
+ * lib/m4sugar/m4sh.m4 (_AS_IF_ELSE): Don't corrupt $? in else
+ branch; it is up to the user to avoid syntax errors.
+ * tests/m4sh.at (AS@&t@_IF and AS@&t@_CASE): Adjust test.
+
+2009-04-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Add traces for AM_SILENT_RULES.
+ * lib/autom4te.in (Automake-preselections): Trace
+ AM_SILENT_RULES.
+
+2009-04-13 Eric Blake <ebb9@byu.net>
+
+ Improve documentation related to expanded-before-required.
+ * doc/autoconf.texi (Expanded Before Required): Add a case study.
+ (Running the Compiler) <AC_COMPILE_IFELSE>: Remind users that
+ running a compile test will AC_REQUIRE the compiler check.
+ (Macro Definitions) <AC_DEFUN>: Contrast AC_DEFUN and m4_define.
+ (C Compiler) <AC_PROG_CC>: Mention the fact that only first
+ invocation of this macro checks for $EXEEXT, and that many other
+ macros use it via AC_REQUIRE.
+ Reported by Andreas Schwab.
+
+ Mention latest rules about make and set -e.
+ * doc/autoconf.texi (Failure in Make Rules): Posix is now clear
+ that make must use set -e.
+ (Limitations of Builtins) <set>: Clarify more about set -e
+ behavior.
+
+ Improve documentation about if exit status.
+ * doc/autoconf.texi (Limitations of Builtins) <if>: Mention that
+ exit status bugs don't affect modern targets.
+ Reported by Andreas Schwab.
+
+ Add cross-reference to new macros.
+ * doc/autoconf.texi (Text processing Macros) <m4_normalize>
+ <m4_strip>: Reference the new m4_ifblank.
+ Suggested by Mike Frysinger.
+
+ Make AS_IF, AS_CASE, and AS_FOR more robust to blank arguments.
+ * lib/m4sugar/m4sh.m4 (_AS_CASE, _AS_CASE_DEFAULT, AS_FOR, _AS_IF)
+ (_AS_IF_ELSE, AS_IF): Avoid syntax error on blank argument,
+ including a macro with an empty expansion.
+ * NEWS: Mention this.
+ * tests/m4sh.at (AS@&t@_IF and AS@&t@_CASE, AS@&t@_FOR): Update
+ tests.
+ Reported by Mike Frysinger.
+
+ Add m4_blank and friends.
+ * lib/m4sugar/m4sugar.m4 (m4_blank, m4_nblank, m4_default_nblank)
+ (m4_default_nblank_quoted): New macros.
+ * NEWS: Document them.
+ * doc/autoconf.texi (Conditional constructs): Likewise.
+ * tests/m4sugar.at (m4sugar shorthand conditionals): New test.
+ Suggested by Mike Frysinger.
+
+2009-04-13 Eric Blake <ebb9@byu.net>
+
+ Finish upgrade to GFDL 1.3.
+ * doc/autoconf.texi (copying): Use correct license; comment change
+ was missed on 2008-11-04.
+
+2009-04-10 Eric Blake <ebb9@byu.net>
+
+ Test parallel handling of syntax error.
+ * tests/autotest.at (parallel syntax error): New test.
+ Suggested by Ralf Wildenhues.
+
+2009-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Document awk and config.status line length limitations.
+ * doc/autoconf.texi (Configuration Actions): The input to
+ config.status should have reasonable line length.
+ (Limitations of Usual Tools): Document IRIX, HP-UX awk input
+ line length limit.
+ Report by Bruno Haible.
+
+ Skip `Multiple languages' test if CC is a C++ compiler.
+ * tests/compile.at (Multiple languages): Before starting the
+ test proper, build and run a configure script that tests the
+ C compiler only, and skips the test if this is found to be a
+ C++ compiler.
+ Report by Eric Blake.
+
+ Note that AC_DEFUN is needed for aclocal.
+ * doc/autoconf.texi (Coding Style): Public third-party macros
+ should be AC_DEFUN'ed.
+ Report by John Calcote.
+
+2009-04-10 Eric Blake <ebb9@byu.net>
+
+ Add undocumented _AS_CLEAN_DIR.
+ * lib/m4sugar/m4sh.m4 (_AS_CLEAN_DIR): New macro; fixes m4 quoting
+ in previous patch.
+ * lib/autotest/general.m4 (AT_INIT) <at_fn_group_prepare>: Use new
+ macro.
+ * tests/m4sh.at (_AS@&t@_CLEAN_DIR): New test.
+ Reported by Ralf Wildenhues.
+
+2009-04-09 Eric Blake <ebb9@byu.net>
+
+ Avoid problems caused by deleting in-use directory.
+ * lib/autotest/general.m4 (AT_INIT) <at_fn_group_prepare>: Only
+ remove the contents of $at_group_dir, not the directory itself.
+
+ Fix regression in empty test.
+ * lib/autotest/general.m4 (AT_SETUP): Prep AT_ingroup for fallback
+ use in empty test. Fixes regression introduced 2009-04-06.
+ (_AT_CHECK): Undo fallback when a test is not empty.
+ (AT_CLEANUP): Expand AT_ingroup before deleting.
+
+2009-04-09 Paolo Bonzini <bonzini@gnu.org>
+
+ Make a less conservative cross-compilation guess for AC_FUNC_UTIME_NULL.
+ * lib/autoconf/functions.m4 (AC_FUNC_UTIME_NULL): Assume
+ not crosscompiling to an obsolete system.
+
+2009-04-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Automake relies on the undocumented `_AC_COMPILER_EXEEXT' macro.
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT): Document that
+ Automake relies on this macro.
+
+2009-04-06 Eric Blake <ebb9@byu.net>
+
+ Reduce testsuite size.
+ * tests/statesave.m4: New file.
+ * tests/Makefile.am (EXTRA_DIST): Distribute it.
+ * tests/local.at (AT_CONFIGURE_AC): Reuse file, rather than
+ repeating inline definition of AC_STATE_SAVE.
+ (AT_CHECK_ENV): Factor code...
+ (_AT_CHECK_ENV): ...into shell function.
+ * tests/m4sh.at (AT_DATA_LINENO): Avoid churn in testsuite.
+
+ Handle shell comments in AT_CHECK.
+ * lib/autotest/general.m4 (_AT_DECIDE_TRACEABLE): Handle # in
+ test correctly. Latent bug in handling shell comment was first
+ fixed 2008-11-20, but regressed two patches later.
+ * tests/autotest.at (Shell comment in command): New test.
+ * NEWS: Document the fix.
+
+ Hard fail any test with syntax errors.
+ * lib/autotest/general.m4 (AT_INIT) <at_fn_group_postprocess>:
+ Guarantee test failure on syntax error, rather than inheriting
+ status from previous test.
+ * tests/autotest.at (Syntax error): New test.
+
+2009-03-31 Eric Blake <ebb9@byu.net>
+
+ Beta Release Version 2.63b.
+ * NEWS: Mention the release.
+ * README: Clarify that this is a beta release.
+ * build-aux/texinfo.tex: Synchronize from upstream.
+ * .x-sc_trailing_blank: Exempt more upstream files.
+
+2009-03-30 Eric Blake <ebb9@byu.net>
+
+ Fix testsuite failures under zsh.
+ * tests/local.at (AT_CHECK_ENV): Exempt $argv and $ARGC, which are
+ set by zsh -c 'emulate sh'.
+ Reported by Ralf Wildenhues.
+
+ For now, skip parallel tests under less-tested shells.
+ * tests/autotest.at (AT_CHECK_AT): Add pre-test argument.
+ (Tested programs, Startup error messages, AT_CHECK_AT_TITLE)
+ (Fallacy, Skip, errexit, Long test source lines)
+ (Debugging a successful test, Debugging script and environment)
+ (Debugging a failed test, Using atlocal)
+ (Choosing where testsuite is run): Adjust callers.
+ (AT_SKIP_PARALLEL_TESTS): New macro, to skip parallel tests except
+ under zsh, bash, or when TEST_PARALLEL_AUTOTEST is defined. Makes
+ it easier to avoid testsuite hangs for users with dash or other
+ less-tested shell.
+ (parallel test execution, parallel truth, parallel fallacy)
+ (parallel skip, parallel errexit)
+ (parallel autotest and signal handling): Use it.
+ * BUGS: Mention this.
+
+2009-03-24 Andris Pavenis <andris.pavenis@iki.fi> (tiny change)
+
+ Fix awk substitution of carriage returns on DJGPP.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Fix typo in
+ generation of ac_cs_awk_cr.
+ * THANKS: Update.
+
+2009-03-24 Aaron W. LaFramboise <aaronenvelope277@aaronwl.com> (tiny change)
+
+ Work around cygwin bash igncr mode.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Fall back to
+ bash carriage returns if ac_cr lost \r from ``.
+ * THANKS: Update.
+ Suggested by Eric Blake.
+
+2009-03-24 Eric Blake <ebb9@byu.net>
+
+ Fix underquoted example in manual.
+ * doc/autoconf.texi (Common Shell Constructs) <AS_TR_CPP>:
+ Properly m4-quote #.
+ * THANKS: Update spelling.
+ Reported by Matěj Týč.
+
+2009-03-18 Eric Blake <ebb9@byu.net>
+
+ Manual: mention more expr pitfalls.
+ * doc/autoconf.texi (Limitations of Usual Tools) <expr (:)>:
+ Mention HP-UX limitation, and $ ambiguity.
+ * THANKS: Update.
+ Reported by Jens Schmidt, in http://bugs.debian.org/466990.
+
+2009-03-17 Jim Meyering <meyering@redhat.com>
+
+ Manual: fix a typo.
+ * lib/m4sugar/m4sh.m4: s/are/is/ => "there is no indirection"
+
+2009-03-17 Eric Blake <ebb9@byu.net>
+
+ Use test consistently in examples.
+ * doc/autoconf.texi (Subdirectories, Caching Results)
+ (Common Shell Constructs, Prerequisite Macros, Coding Style)
+ (Changed Results, Particular Programs, Defining Symbols):
+ Protect against arbitrary user strings.
+ (Multiple Cases): Mention why $fstype does not need protection.
+ Reported by Reuben Thomas.
+
+ Improve confusing section names.
+ * doc/autoconf.texi (Specifying Names): Rename node...
+ (Specifying Target Triplets): ...to this.
+ (Generic Programs): Adjust references.
+ * doc/install.texi (System Type): Touch up formatting.
+ * THANKS: Update.
+ Reported by Tim Freeman, in http://bugs.debian.org/312873.
+
+ Remove historical inaccuracy.
+ * doc/autoconf.texi (Portable Shell): Don't perpetuate myth about
+ #!/bin/sh needing a space.
+ Reported by Reuben Thomas.
+
+ Recommend AS_HELP_STRING more prominently.
+ * doc/autoconf.texi (External Software): Reduce mention of
+ hand-written help strings.
+ Reported by Reuben Thomas.
+
+2009-03-16 Eric Blake <ebb9@byu.net>
+
+ Fix 'make pdf'.
+ * doc/autoconf.texi (Balancing Parentheses): Fix usage of
+ @itemize.
+ Reported by Ralf Wildenhues, fix suggested by Karl Berry.
+
+2009-03-14 Eric Blake <ebb9@byu.net>
+
+ Resync upstream files.
+ * GNUmakefile: Run 'make fetch'.
+ * build-aux/announce-gen: Likewise.
+ * build-aux/config.guess: Likewise.
+ * build-aux/config.sub: Likewise.
+ * build-aux/gnupload: Likewise.
+ * build-aux/texinfo.tex: Likewise.
+ * build-aux/vc-list-files: Likewise.
+ * doc/gnu-oids.texi: Likewise.
+ * doc/standards.texi: Likewise.
+
+2009-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ New test for SunStudio `restrict' handling.
+ * tests/c.at (AC_C_RESTRICT and C++): New test.
+ Prompted by bug report from Rolf Vandevaart.
+
+2009-03-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Manual: testsuite depends on package.m4.
+ * doc/autoconf.texi (Making testsuite Scripts): In the example
+ makefile snippet, $(TESTSUITE) depends on $(srcdir)/package.m4.
+
+2009-03-02 Allan Caffee <allan.caffee@gmail.com> (tiny change)
+
+ Fix a typo in comment for AS_LITERAL_IF.
+ * lib/m4sugar/m4sh.m4 (AS_LITERAL_IF): Update a comment that fell
+ out of date when this function was moved/renamed in 59ecd766.
+ * THANKS: Update.
+
+2009-03-02 Eric Blake <ebb9@byu.net>
+
+ Improve wording for AS_ESCAPE.
+ * doc/autoconf.texi (Common Shell Constructs) <AS_ESCAPE>: Touch
+ up documentation.
+ * lib/m4sugar/m4sh.m4 (_AS_ESCAPE): Fix comment typos.
+ Reported by Ralf Wildenhues.
+
+2009-02-24 Eric Blake <ebb9@byu.net>
+
+ Use pkgdatadir consistently.
+ * bin/Makefile.am (edit): Substitute pkgdatadir, not datadir.
+ * lib/Makefile.am (edit): Likewise.
+ * lib/autom4te.in (Autoconf-without-aclocal-m4, Autotest, M4sh)
+ (M4sugar): Use @pkgdatadir@, not @datadir@.
+ * bin/autoheader.in ($datadir): Likewise.
+ * bin/autom4te.in ($datadir): Likewise.
+ * bin/autoreconf.in ($datadir): Likewise.
+ * bin/autoscan.in ($datadir): Likewise.
+ * bin/autoupdate.in ($datadir): Likewise.
+ * bin/ifnames.in ($datadir): Likewise.
+ * doc/autoconf.texi (Installation Directory Variables): Update
+ example to be consistent; focus on $(bindir) as an autoconf
+ variable, and mention that $(pkgdatadir) comes from automake.
+ Reported by Reuben Thomas.
+
+2009-02-19 Eric Blake <ebb9@byu.net>
+
+ Use m4_translit more efficiently in AS_ESCAPE.
+ * lib/m4sugar/m4sh.m4 (_AS_ESCAPE): Alter API to take first byte
+ of set separately from rest.
+ (AS_ESCAPE, _AS_QUOTE_MODERN, AS_TR_SH, AS_VAR_GET): Adjust
+ callers.
+ * lib/autoconf/autoheader.m4 (AH_VERBATIM): Avoid duplicate
+ characters in translit request.
+ * doc/autoconf.texi (Common Shell Constructs) <AS_ESCAPE>:
+ Document the macro.
+ * NEWS: Likewise.
+
+ Mention recently documented macros.
+ * NEWS: Update list of new documentation.
+
+2009-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Add index for config.site.
+ * doc/autoconf.texi (Site Defaults): Add index for config.site.
+ * THANKS: Update.
+ Report by Stephen P. Schaefer.
+
+2009-02-12 Eric Blake <ebb9@byu.net>
+
+ Fix m4_set speed regression introduced 2008-12-18.
+ * lib/m4sugar/m4sugar.m4 (_m4_stack_reverse): Alter API to avoid
+ creating larger argument on each iteration.
+ (m4_stack_foreach_sep, m4_stack_foreach_sep_lifo)
+ (_m4_set_contents_2): Adjust all four-argument callers.
+
+2009-02-05 Eric Blake <ebb9@byu.net>
+
+ Mention new AC_DEFUN_ONCE clients.
+ * NEWS: Mention recent semantic changes.
+ Reported by Ralf Wildenhues.
+
+2009-02-03 Eric Blake <ebb9@byu.net>
+
+ Use AC_DEFUN_ONCE for some one-shot AC_PROG macros.
+ * lib/autoconf/programs.m4 (AC_PROG_MKDIR_P): Switch to
+ AC_DEFUN_ONCE, since this is a one-shot macro.
+ (AC_PROG_INSTALL): Likewise.
+
+2009-02-03 Eric Blake <ebb9@byu.net>
+
+ Mention that packagers should not pre-set CFLAGS.
+ * doc/autoconf.texi (Preset Output Variables) <CFLAGS>: Copy
+ advice given by automake on handling variables reserved by GNU
+ Coding Standards.
+ Reported by Karl Berry.
+
+ Document lib64 in config.site.
+ * doc/autoconf.texi (Site Defaults): Fix typo in FHS sample file.
+ Mention use of lib64.
+ * THANKS: Update.
+ Reported by Tom Browder, with help from Peter Breitenlohner.
+
+2009-01-28 Eric Blake <ebb9@byu.net>
+
+ Use AC_DEFUN_ONCE for uncontroversial one-shot macros.
+ * lib/autoconf/headers.m4 (AC_HEADER_ASSERT): Switch to
+ AC_DEFUN_ONCE, since this is a one-shot macro.
+ * lib/autoconf/specific.m4 (AC_USE_SYSTEM_EXTENSIONS): Likewise.
+ * lib/autoconf/general.m4 (AC_CANONICAL_BUILD)
+ (AC_CANONICAL_HOST, AC_CANONICAL_TARGET): Likewise.
+
+2009-01-28 Eric Blake <ebb9@byu.net>
+
+ Reduce blank lines in AC_DEFUN_ONCE macros.
+ * lib/m4sugar/m4sugar.m4 (m4_defun_once): Avoid redundant blank
+ line when a defun_once macro is required.
+ (_m4_defun_once): New helper macro, for less memory use.
+ * tests/m4sugar.at (m4@&t@_require: nested): Adjust test.
+
+ Silence another false positive expand-before-require.
+ * lib/m4sugar/m4sugar.m4 (_m4_defun_pro_outer)
+ (_m4_defun_epi_outer, _m4_require_call, m4_provide): Track name
+ that caused a diversion change, not just diversion number.
+ (m4_require): Factor...
+ (_m4_require_check): ...into new macro, which also checks whether
+ diversion that performed the expansion has been collected.
+ * tests/m4sugar.at (m4@&t@_require: nested): Enhance test.
+ Reported by Ralf Wildenhues.
+
+2009-01-28 Eric Blake <ebb9@byu.net>
+
+ Fix AC_C_RESTRICT for Sun Studio 12 C++.
+ * lib/autoconf/c.m4 (AC_C_RESTRICT): Newer Sun Studio C provides
+ __restrict__ rather than _Restrict, which still trips up Sun
+ Studio 12 C++.
+ * THANKS: Update.
+ Reported by Rolf Vandevaart.
+
+2009-01-28 Eric Blake <ebb9@byu.net>
+
+ Fix years in copyright notices.
+ * lib/m4sugar/m4sugar.m4 (m4_copyright_condense): New macro,
+ undocumented for now.
+ * lib/m4sugar/Makefile.am (version.m4): Add m4_PACKAGE_YEAR,
+ m4_PACKAGE_URL.
+ (RELEASE_YEAR): New macro, copied from bin/Makefile.am.
+ * lib/autoconf/general.m4 (_AC_COPYRIGHT_YEARS): New macro.
+ (AC_COPYRIGHT): Add undocumented third parameter.
+ (_AC_INIT_COPYRIGHT): Avoid need to bump copyright years.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Likewise.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+ * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Likewise.
+ (AT_COPYRIGHT): Add undocumented third parameter.
+ * tests/local.at (AT_COPYRIGHT): Don't add an extra copyright
+ parameter; the generic copyright given by autotest is sufficient
+ since we are the package that owns autotest.
+
+2009-01-27 Eric Blake <ebb9@byu.net>
+
+ Use URLs in --help output, part 3: testsuite.
+ * doc/autoconf.texi (Writing Testsuites): Mention autotest
+ namespace.
+ (Writing Testsuites) <AT_INIT>: Mention mandatory macros.
+ (Making testsuite Scripts): Document AT_PACKAGE_URL.
+ * tests/Makefile.am (package.m4): Follow our own advice.
+ * lib/autotest/general.m4 (AT_INIT): Give the user a hint about
+ package.m4. Enhance --help output.
+ (_AT_COPYRIGHT_YEARS): New macro, to make copyright bump easier.
+
+ Use URLs in --help output, part 2: configure.
+ * lib/autoconf/general.m4 (_AC_INIT_COPYRIGHT): Bump copyright
+ date.
+ (_AC_INIT_PACKAGE): Support optional URL parameter, mapped to
+ AC_PACKAGE_URL.
+ (_AC_INIT_DEFAULTS, _AC_INIT_PREPARE): Substitute it.
+ (_AC_INIT_HELP): Use it in './configure --help' output.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Likewise, for
+ './config.status --help'. Bump copyright date.
+ * doc/autoconf.texi (Initializing configure) <AC_INIT>: Document
+ new parameter.
+ * NEWS: Likewise.
+ * tests/tools.at (autoheader): Adjust test.
+ * tests/torture.at (@%:@define header templates)
+ (Torturing config.status): Likewise.
+
+ Use URLs in --help output, part 1: autoconf executables.
+ * bin/autoconf.as (usage): Make output consistent with recent
+ change in gnulib version-etc module.
+ * bin/autoheader.in ($help): Likewise.
+ * bin/autom4te.in ($help): Likewise.
+ * bin/autoreconf.in ($help): Likewise.
+ * bin/autoscan.in ($help): Likewise.
+ * bin/autoupdate.in ($help): Likewise.
+ * bin/ifnames.in ($help): Likewise.
+
+2009-01-27 Peter Breitenlohner <peb@mppmu.mpg.de> (tiny change)
+
+ Quote traced macros passed from autom4te to M4.
+ * bin/autom4te (handle_m4): Apply shell_quote to macro names.
+ * tests/tools.at (autom4te --trace and unusual macro names): New
+ test.
+ * THANKS: Update.
+
+2009-01-26 Eric Blake <ebb9@byu.net>
+
+ Improve AC_DEFUN_ONCE semantics.
+ * lib/m4sugar/m4sugar.m4 (m4_defun_once): Rewrite to be no-op,
+ rather than warning, on second use, and make sure first use never
+ occurs out of order.
+ * tests/m4sugar.at (m4@&t@_require: one-shot initialization):
+ Enhance test.
+ * tests/base.at (AC_REQUIRE & AC_DEFUN_ONCE: [Require, expand],
+ (AC_REQUIRE & AC_DEFUN_ONCE: [Expand, require]): Adjust tests.
+ * NEWS: Document this.
+ * doc/autoconf.texi (Macro Definitions) <AC_DEFUN>: Mention
+ AC_DEFUN_ONCE.
+ (Prerequisite Macros) <AC_REQUIRE>: Likewise.
+ (Expanded Before Required): Likewise.
+ (One-Shot Macros) <AC_DEFUN_ONCE>: Document new semantics.
+ Reported by Bruno Haible, with suggestion by Paolo Bonzini.
+
+2009-01-24 Eric Blake <ebb9@byu.net>
+
+ Fix typos in recent patches.
+ * lib/m4sugar/m4sugar.m4: Improve m4_defun comments.
+ * doc/autoconf.texi (Expanded Before Required): Fix typos.
+ Reported by Ralf Wildenhues.
+
+ Revert change to AC_DIR_HEADER.
+ * lib/autoconf/headers.m4 (AC_DIR_HEADER): Explicitly expanding
+ AC_HEADER_DIRENT no longer triggers a warning, and helps the user
+ who decides they don't need the obsolete AC_FUNC_CLOSEDIR_VOID.
+ Reported by Paolo Bonzini.
+
+2009-01-22 Eric Blake <ebb9@byu.net>
+
+ Silence a false positive expand-before-require case.
+ * lib/m4sugar/m4sugar.m4 (m4_provide): Track the diversion in
+ which a macro was provided.
+ (m4_require): Compare diversion numbers, rather than m4_require
+ nesting, when determining direct requires.
+ * tests/m4sugar.at (m4@&t@_require: nested): Test it.
+ Reported by Ralf Wildenhues, affecting Libtool.
+
+2009-01-21 Eric Blake <ebb9@byu.net>
+
+ Fix out-of-order expansion with expand-before-require.
+ * lib/m4sugar/m4sugar.m4 (m4_require): Redundantly expand a
+ required macro when issuing expand-before-require warning.
+ * doc/autoconf.texi (Prerequisite Macros): Adjust documentation.
+ (Expanded Before Required): New node.
+ * tests/m4sugar.at (m4@&t@_require: nested): Adjust test.
+ * NEWS: Mention this fix.
+ Suggested by Bruno Haible.
+
+ Warn if macro is provided before indirectly required.
+ * lib/m4sugar/m4sugar.m4 (m4_provide): Track the set of all macros
+ provided since last outermost defun.
+ (_m4_defun_pro_outer): Empty the set.
+ (_m4_require_call): Distinguish between direct and indirect
+ requires, and remove required macros from the set.
+ (m4_require): Check the set, in order to warn.
+ * tests/m4sugar.at (m4@&t@_require: nested): Remove xfail, and add
+ test case for direct requires.
+
+2009-01-20 Eric Blake <ebb9@byu.net>
+
+ Clean up some bugs caught by preliminary dependency validation.
+ * lib/autoconf/headers.m4 (AC_DIR_HEADER): Don't invoke
+ AC_HEADER_DIRENT, since AC_FUNC_CLOSEDIR_VOID requires it.
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL)
+ (_AS_SHELL_SANITIZE): Fix quoting bugs.
+
+2009-01-19 Eric Blake <ebb9@byu.net>
+
+ Improve AC_REQUIRE documentation.
+ * doc/autoconf.texi (Macro Definitions) <AC_DEFUN>: Add @defmac,
+ and mention interaction with AC_REQUIRE.
+ (Prerequisite Macros) <AC_REQUIRE>: Give more detail on user
+ ordering constraint bug, and how to fix it.
+ * tests/m4sugar.at (m4@&t@_require: nested): New test.
+
+ Speed up m4_require.
+ * lib/m4sugar/m4sugar.m4 (_m4_divert_dump): Change semantics to
+ always be defined, as either empty or a number.
+ (_m4_defun_pro_outer, _m4_defun_epi_outer): Treat _m4_divert_dump
+ as a stack, rather than a one-shot macro.
+ (_m4_require_call): Expect third argument to be pre-expanded.
+ (m4_divert_require, m4_require): Adjust clients accordingly.
+ * lib/m4sugar/m4sh.m4 (AS_REQUIRE): Likewise.
+
+2009-01-17 Eric Blake <ebb9@byu.net>
+
+ Avoid underfull hbox.
+ * doc/autoconf.texi (Installation Directory Variables): Reword to
+ fit on line.
+
+2009-01-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Ignore `set -e'-related failure of NetBSD sh.
+ * tests/m4sh.at (AS@&t@_EXIT): Skip test if (NetBSD) shell
+ fails to finish EXIT trap after set -e.
+
+2009-01-06 Eric Blake <ebb9@byu.net>
+
+ Maintainer cleanups.
+ * cfg.mk (web-manual): Use new feature of gendocs.
+ (fetch): Fetch gendocs.
+ * Makefile.am (EXTRA_DIST): Distribute new file.
+ * doc/Makefile.am (EXTRA_DIST): Likewise.
+ * .gitattributes: Ignore whitespace in upstream files.
+ * HACKING (Other web updates): Update Free Software Directory
+ instructions.
+ (Upload): No longer mention xdelta.
+ * maint.mk (xd-delta): Likewise.
+ * build-aux/gendocs.sh: New upstream file.
+ * doc/gendocs_template: Likewise.
+ * build-aux/announce-gen: Resync from upstream.
+ * build-aux/config.guess: Likewise.
+ * build-aux/config.sub: Likewise.
+ * build-aux/gnupload: Likewise.
+ * build-aux/texinfo.tex: Likewise.
+
+2008-12-30 Eric Blake <ebb9@byu.net>
+
+ Make it easier to track diversion bugs.
+ * lib/m4sugar/m4sugar.m4 (_m4_divert_raw, _m4_undivert): New
+ internal macros, which are easier to trace than m4_builtin.
+ (m4_cleardivert, m4_divert, m4_divert_push, m4_divert_pop)
+ (m4_undivert): Use them.
+ (_m4_require_call): Likewise. Use fewer macros.
+ * lib/autotest/general.m4 (_AT_DECIDE_TRACEABLE): Fix typo.
+
+2008-12-26 Bruno Haible <bruno@clisp.org>
+
+ Improve multiarch detection.
+ * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Make detection of options
+ indicating a universal build more reliable.
+
+2008-12-28 William Pursell <bill.pursell@gmail.com> (tiny change)
+
+ Use AS_CASE in documented example.
+ * doc/autoconf.texi (Using the System Type): Use AS_CASE in
+ example instead of raw case.
+
+2008-12-23 Eric Blake <ebb9@byu.net>
+
+ Make m4_dumpdef more useful with M4 1.6.
+ * lib/m4sugar/m4sugar.m4 (_m4_dumpdef): New macro.
+ (m4_init): Install it for new enough m4.
+ * tests/m4sugar.at (m4@&t@_dumpdef): Enhance test.
+ * doc/autoconf.texi (Redefined M4 Macros) <m4_dumpdef>: Mention
+ lack of sorting.
+
+2008-12-24 Bruno Haible <bruno@clisp.org>
+
+ Improve INSTALL for HP-UX.
+ * doc/install.texi (Particular Systems): For HP-UX, also recommend
+ -D_XOPEN_SOURCE=500. Needed for the declaration of mbstate_t on
+ HP-UX 11.11.
+
+2008-12-22 Bruno Haible <bruno@clisp.org>
+
+ Improve INSTALL for Haiku.
+ * doc/install.texi (Particular Systems): Add a recommendation
+ which prefix to use on Haiku.
+
+2008-12-19 Eric Blake <ebb9@byu.net>
+
+ Fix typo in previous commit.
+ * doc/autoconf.texi (Set manipulation Macros) <m4_set_map_sep>:
+ Fix typo.
+
+ Document some recently added macros.
+ * lib/m4sugar/m4sugar.m4 (m4_map_args_w): Add optional sep
+ parameter.
+ * doc/autoconf.texi (Looping constructs) <m4_map_args_sep>
+ <m4_map_args_w, m4_stack_foreach, m4_stack_foreach_sep>: Document
+ new macros.
+ (Set manipulation Macros) <m4_set_map_sep>: Likewise.
+ * tests/m4sugar.at (m4@&t@_stack, M4 loops): Enhance tests.
+ * NEWS: Document new macros.
+
+2008-12-18 Eric Blake <ebb9@byu.net>
+
+ Fix separator in m4_stack_foreach_sep.
+ * lib/m4sugar/m4sugar.m4 (_m4_stack_reverse): Separate separator
+ from prefix.
+ * tests/m4sugar.at (m4@&t@_stack): Enhance test.
+
+2008-12-18 Eric Blake <ebb9@byu.net>
+
+ Mention limitation of M4 1.4.x on builtin tokens.
+ * doc/autoconf.texi (Redefined M4 Macros) <m4_dumpdef>: Document
+ ramification of M4 1.4.x's inability to pass builtin tokens
+ through text macros.
+ (Evaluation Macros) <m4_curry>: Likewise.
+ * tests/m4sugar.at (m4@&t@_defn): Enhance test.
+ * NEWS: Mention subtle change in m4_dumpdef semantics.
+
+ Document m4_version_prereq.
+ * doc/autoconf.texi (Number processing Macros)
+ <m4_version_prereq>: Add documentation.
+ * NEWS: Mention it.
+ Reported by Bruno Haible.
+
+2008-12-10 Jim Meyering <meyering@redhat.com>
+
+ AC_HEADER_ASSERT: don't say assertions are disabled when they're not
+ * lib/autoconf/headers.m4 (AC_HEADER_ASSERT): Do not make configure
+ report "checking whether to enable assertions... no", when they are
+ in fact enabled. This is solely a bug in the output of configure.
+ In spite of saying "no", NDEBUG was not defined in that case.
+ Also, as noted by Eric Blake, leave assertions enabled upon
+ --enable-assert=INVALID.
+
+2008-12-09 Eric Blake <ebb9@byu.net>
+
+ Fix m4_location inside m4_wrap with m4 1.4.5.
+ * lib/m4sugar/m4sugar.m4 (m4_undefine): Redefine m4_location
+ inside wrapped text if older m4 is detected.
+ Reported by William Pursell.
+
+2008-12-08 William Pursell <bill.pursell@gmail.com> (tiny change)
+ and Eric Blake <ebb9@byu.net>
+
+ Fix AC_HEADER_ASSERT w.r.t. --enable-assert.
+ * lib/autoconf/headers.m4 (AC_HEADER_ASSERT): Honor --enable-assert,
+ rather than treating it as a synonym for --disable-assert.
+ * NEWS: Document the fix.
+
+2008-12-06 William Pursell <bill.pursell@gmail.com> (tiny change)
+
+ Fix AC_HEADER_ASSERT to honor --enable-assert, rather than
+ treat --enable-assert and --disable-assert equivalently.
+ * lib/autoconf/headers.m4 (AC_HEADER_ASSERT): Check value of $enableval.
+
+2008-12-05 William Pursell <bill.pursell@gmail.com> (tiny change)
+
+ Fix some typos and grammatical errors in documentation.
+ * doc/autoconf.texi: Clean up some bad use of English.
+
+2008-12-03 Eric Blake <ebb9@byu.net>
+
+ Improve AC_STATE_SAVE.
+ * tests/local.at (AC_STATE_SAVE): Avoid ls -1, and use one less
+ process by hoisting the uniqueness check into sed.
+ * doc/autoconf.texi (Limitations of Usual Tools) <ls>: Mention
+ MacOS bug.
+
+2008-12-02 Eric Blake <ebb9@byu.net>
+
+ Avoid MacOS readdir bug in testsuite.
+ * tests/local.at (AC_STATE_SAVE): Avoid spurious failures due to
+ duplicated ls entries.
+ * THANKS: Update.
+ Reported by Bruce Dugan and others.
+
+2008-11-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autotest/general.m4 (AT_JOB_FIFO_FD): Hide zsh 4.3.4
+ error messages about `set -m'.
+
+2008-11-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix a couple of test failures with dash.
+ * tests/autotest.at (AT_CHECK_AT_TITLE_CHAR): Normalize
+ exit status of `cd'.
+ * tests/m4sh.at (AS_MESSAGE_LOG_FD): Remove script before
+ regeneration, to avoid timing effects.
+
+2008-11-25 Eric Blake <ebb9@byu.net>
+
+ Add m4_cleardivert.
+ * lib/m4sugar/m4sugar.m4 (m4_cleardivert): New macro.
+ * lib/autotest/general.m4 (AT_INIT): Use it.
+ * lib/autoconf/general.m4 (_AC_INIT_NOTICE): Likewise.
+ * tests/m4sugar.at (m4@&t@_divert_stack): Test it.
+ * doc/autoconf.texi (Diversion support) <m4_cleardivert>: Document
+ it.
+ * NEWS: Likewise.
+ Suggested by Paolo Bonzini.
+
+ Add safety check for m4_expand vs. diversions.
+ * lib/m4sugar/m4sugar.m4 (m4_expand): Make more robust against
+ diverted text.
+ * doc/autoconf.texi (Evaluation Macros) <m4_expand>: Document new
+ safety check.
+
+2008-11-24 Eric Blake <ebb9@byu.net>
+
+ Fix typo in AS_MESSAGE_LOG_FD patch.
+ * lib/m4sugar/m4sh.m4 (AS_ERROR): Check correct condition.
+
+2008-11-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ More reliable signal handling in Autotest.
+ * lib/autotest/general.m4 (Driver loop): Rewrite signal handler.
+ Start parallel jobs in their own process group, enabling job
+ control in the shell if possible, for better signal handling.
+ Deal with INT, TERM, and HUP in the testsuite driver. In the
+ parallel driver, propagate TSTP to jobs either as TSTP or as
+ STOP (to avoid fork bombs with ksh).
+ Inside the job processes, add PIPE handler to write back the
+ job token, so the master process does not hang.
+ Disable the parallel driver if job control is not provided or if
+ trap does not understand signal names.
+ * tests/autotest.at (parallel autotest and signals): New test,
+ exercises INT, TERM, and PIPE, serial and parallel, with and
+ without `make' in the loop.
+ Kudos to Richard Stevens for writing APUE.
+
+2008-11-22 Eric Blake <ebb9@byu.net>
+
+ Fix testsuite failure on Solaris.
+ * tests/torture.at (AT_CHECK_CONFIG_CREATION_NOWRITE): Normalize
+ failure status to 1.
+
+2008-11-21 Eric Blake <ebb9@byu.net>
+
+ Clean up AS_MESSAGE_LOG_FD usage.
+ * lib/m4sugar/m4sh.m4 (AS_MESSAGE_FD, AS_MESSAGE_LOG_FD)
+ (AS_ORIGINAL_STDIN_FD): Provide default M4sh values.
+ (_AS_ECHO_LOG, AS_MESSAGE, _AS_ERROR_PREPARE, AS_ERROR): Simplify
+ usage.
+ (AS_INIT_GENERATED): Don't shuffle an unchanged AS_MESSAGE_FD.
+ * tests/m4sh.at (AS@&t@_INIT_GENERATED): Update test.
+ (AS@&t@_MESSAGE_FD): New test.
+ * doc/autoconf.texi (Initialization Macros) <AS_INIT_GENERATED>:
+ Give more details about fd manipulation.
+ (File Descriptor Macros): Describe M4sh defaults for the fds.
+
+2008-11-21 Eric Blake <ebb9@byu.net>
+
+ Use shell function for AS_ERROR.
+ * lib/m4sugar/m4sh.m4 (_AS_ERROR_PREPARE): New macro, defining a
+ new shell function.
+ (AS_ERROR): Use it.
+ (_AS_LINENO_PREPARE): Break circular dependency.
+ (AS_PREPARE, _AS_PREPARE): Initialize for child scripts.
+
+2008-11-21 Eric Blake <ebb9@byu.net>
+
+ Fix typos in recent testsuite improvements.
+ * lib/autotest/general.m4 (AT_INIT) <at_fn_check_prepare_dynamic>:
+ Fix typo.
+ * NEWS: Clarify the potential impact to users.
+ * tests/autotest.at (AT_DATA_AUTOTEST): New macro, patterned after
+ AT_DATA_M4SUGAR.
+ (AT_CHECK_AT_PREP, AT_CHECK_AT_TITLE): Use it.
+ (unusual file names): Test that the recent echo fix does not
+ regress. Fix quoting bug that made the test a no-op.
+ Reported by Paolo Bonzini and Ralf Wildenhues.
+
+2008-11-21 Eric Blake <ebb9@byu.net>
+
+ Use modern m4sh constructs in autoconf.
+ * bin/autoconf.as (exit_missing_arg, getopt): Use AS_ERROR, rather
+ than AS_EXIT.
+
+ Change the semantics of AS_EXIT without argument.
+ * lib/m4sugar/m4sh.m4 (_AS_EXIT_PREPARE): When defaulting, use $?
+ even if it is 0.
+ (AS_ERROR): Guarantee non-zero status.
+ * bin/autoconf.as (exit_missing_arg, getopt): Revert prior change;
+ we want non-zero status.
+ * tests/m4sh.at (AS@&t@_EXIT): Update test accordingly.
+ * doc/autoconf.texi (Common Shell Constructs) <AS_EXIT>: Update
+ the documentation.
+ <AS_SET_STATUS>: Don't overly restrict implementation.
+ (Printing Messages) <AC_MSG_ERROR>: Describe better default.
+ Suggestions by Paolo Bonzini and Ralf Wildenhues.
+
+2008-11-21 Eric Blake <ebb9@byu.net>
+
+ Add @anchors within Builtins and Usual Tools lists.
+ * doc/autoconf.texi (Limitations of Builtins)
+ (Limitatations of Usual Tools): Add anchors for tools called out
+ by name. Adjust callers to narrow in on tool of interest.
+
+ Move case statement style discussion to m4 quoting section.
+ * doc/autoconf.texi (Limitations of Builtins): Move comparison of
+ quoting styles...
+ (Balancing Parentheses): ...to this new node.
+ Suggested by Ralf Wildenhues.
+
+2008-11-20 Eric Blake <ebb9@byu.net>
+
+ Factor more common code out of AT_CHECK into shell function.
+ * lib/autotest/general.m4 (_AT_CHECK): Avoid echo bug if AT_LINE
+ starts with -. Move preparations...
+ (AT_INIT) <at_fn_check_prepare_trace>
+ <at_fn_check_prepare_notrace, at_fn_check_prepare_dynamic>:
+ ...into these new shell functions.
+ <at_fn_check_newline>: Inline into only caller.
+ (_AT_DECIDE_TRACEABLE): Use them to condense testsuite size.
+
+2008-11-20 Eric Blake <ebb9@byu.net>
+
+ Handle version numbers as decimal, even if they start with 0.
+ * lib/m4sugar/m4sugar.m4 (_m4_version_unletter): Avoid
+ interpreting leading zeros as octal.
+
+2008-11-20 Eric Blake <ebb9@byu.net>
+
+ Speed up AT_CHECK.
+ * lib/autotest/general.m4 (AT_CHECK, AT_CHECK_UNQUOTED): Expand
+ third and fourth arguments once.
+ (_AT_CHECK): Don't re-expand expected output. Rearrange code for
+ fewer scans of arguments.
+ (AT_CHECK): Update caller.
+ (AT_INIT) <at_fn_filter_trace>: Drop parameter.
+ * tests/m4sugar.at (m4@&t@_split): Protect test with
+ quadrigraphs.
+
+ Fix XFAIL related to AT_CHECK.
+ * lib/autotest/general.m4 (AT_CHECK, AT_CHECK_UNQUOTED): Expand
+ first argument once.
+ (_AT_CHECK): Don't re-expand commands.
+ * tests/autotest.at (Multiline command from M4 expansion): Remove
+ XFAIL.
+ * tests/tools.at (autoupdating AU_ALIAS): Quote unbalanced paren.
+ * NEWS: Document the fallout.
+
+2008-11-20 Eric Blake <ebb9@byu.net>
+
+ Reduce forks in AC_DEFINE.
+ * lib/autoconf/general.m4 (_AC_DEFINE_Q_PRINT): New macro.
+ (_AC_DEFINE_Q): Use it to avoid forks for all AC_DEFINE and most
+ AC_DEFINE_UNQUOTED.
+ * lib/autoconf/fortran.m4 (_AC_FC_WRAPPERS): Properly quote #.
+ * tests/torture.at (Substitute and define special characters):
+ (Define to a 2000-byte string): Enhance tests to cover
+ AC_DEFINE_UNQUOTED.
+ (@%:@define header templates): Enhance test to cover #.
+
+2008-11-20 Eric Blake <ebb9@byu.net>
+
+ Improve m4_expand robustness, part 2.
+ * lib/m4sugar/m4sugar.m4 (m4_expand): Support unterminated
+ comments, by wrapping old implementation...
+ (_m4_expand): ...as this, and renaming old core...
+ (_m4_expand_): ...to this.
+ (m4_text_box): Use lighter-weight _m4_expand.
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_EXPAND)
+ (_AS_DETECT_BETTER_SHELL, AS_FUNCTION_DESCRIBE): Likewise.
+ * lib/autotest/general.m4 (AT_KEYWORDS): Likewise.
+ * tests/m4sugar.at (m4@&t@_expand): Enhance test.
+ * tests/autotest.at (AT_CHECK_AT_TITLE_CHAR): Likewise.
+ * doc/autoconf.texi (Evaluation Macros) <m4_expand>: Mention new
+ functionality.
+
+ Improve m4_expand robustness, part 1.
+ * lib/m4sugar/m4sugar.m4 (_m4_expand): Tolerate unquoted
+ unbalanced `)'.
+ * tests/m4sugar.at (m4@&t@_expand): New test.
+
+2008-11-20 Eric Blake <ebb9@byu.net>
+
+ Add m4_chomp, m4_esyscmd_s.
+ * lib/m4sugar/m4sugar.m4 (m4_esyscmd_e, m4_chomp, m4_chomp_all):
+ New macros.
+ * doc/autoconf.texi (Redefined M4 Macros) <m4_esyscmd_s>: Document
+ them.
+ (Text processing Macros) <m4_chomp>: Likewise.
+ * NEWS: Likewise.
+ * tests/m4sugar.at (m4@&t@_esyscmd_s): New test.
+
+ Remove _m4_index.
+ * lib/m4sugar/m4sugar.m4 (_m4_index): Delete; it is more efficient
+ to make callers guarantee a match.
+ (m4_init): Adjust caller.
+ * lib/autoconf/status.m4 (_AC_CONFIG_COMPUTE_DEST): Likewise.
+ * lib/autoconf/general.m4 (_AC_DEFINE_Q): Likewise.
+
+ Describe different hacks for balancing ')' in case statements.
+ * doc/autoconf.texi (Limitations of Builtins) <case>: Add an
+ exposition on various quoting styles.
+
+2008-11-20 Eric Blake <ebb9@byu.net>
+
+ Speed up _AS_QUOTE.
+ * lib/m4sugar/m4sh.m4 (_AS_QUOTE_IFELSE): Inline into...
+ (_AS_QUOTE): ...here, delete unused second parameter, and factor
+ choice into...
+ (_AS_QUOTE_MODERN, _AS_QUOTE_OLD): ...new helpers.
+
+2008-11-20 Alfred G. de Wijn <dwijn@iluvatar.eu.org> (tiny change)
+
+ For consistency, make temporary variable match language name.
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_G, _AC_PROG_FC_V_OUTPUT):
+ Match the save/test variables' names to the FFLAGS/FCFLAGS being
+ saved.
+ * THANKS: Update.
+
+2008-11-19 Eric Blake <ebb9@byu.net>
+
+ Improve testsuite generation.
+ * tests/local.at (AT_DATA_M4SUGAR, AT_DATA_M4SH)
+ (AT_DATA_AUTOCONF): Escape all quadrigraphs, not just @&t@. Use
+ fewer macros.
+
+2008-11-18 Eric Blake <ebb9@byu.net>
+
+ Use fn for shell functions, func for autoconf CHECK_FUNCS.
+ * lib/autoconf/functions.m4 (AC_CHECK_FUNC): Abbreviate shell
+ function names.
+ * lib/autoconf/general.m4 (_AC_PREPROC_IFELSE)
+ (_AC_COMPILE_IFELSE, _AC_LINK_IFELSE, _AC_RUN_IFELSE)
+ (AC_CHECK_DECL, AC_COMPUTE_INT): Likewise.
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL)
+ (_AC_CHECK_HEADER_COMPILE, _AC_CHECK_HEADER_PREPROC): Likewise.
+ * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW, _AC_TYPE_INT)
+ (_AC_TYPE_UNSIGNED_INT, AC_CHECK_MEMBER): Likewise.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+ * lib/m4sugar/m4sh.m4 (_AS_SHELL_FN_WORK, _AS_EXIT_PREPARE)
+ (AS_EXIT, AS_SET_STATUS, _AS_UNSET_PREPARE, _AS_MKDIR_P)
+ (_AS_MKDIR_P_PREPARE, _AS_VAR_APPEND_PREPARE, AS_VAR_APPEND)
+ (_AS_VAR_ARITH_PREPARE, AS_VAR_ARITH): Likewise.
+ * doc/autoconf.texi (Shell Functions): Likewise.
+
+2008-11-18 Eric Blake <ebb9@byu.net>
+
+ Alter default value of AS_EXIT.
+ * lib/m4sugar/m4sh.m4 (_AS_EXIT_PREPARE): Let as_func_exit
+ parameter be optional.
+ (AS_EXIT): Use it to make better default.
+ (_AS_DETECT_BETTER_SHELL): Use new default.
+ * bin/autoconf.as (exit_missing_arg, getopt): Likewise.
+ * lib/autoconf/status.m4 (AC_OUTPUT): Likewise.
+ * tests/m4sh.at (AS@&t@_EXIT): Update test.
+ * doc/autoconf.texi (Common Shell Constructs) <AS_EXIT>: Mention
+ new default behavior.
+ (Limitations of Builtins) <trap>: Adjust to use new default.
+ * NEWS: Mention the semantic change.
+ Suggested by Ralf Wildenhues.
+
+ Update example to match actual Tru64 behavior.
+ * doc/autoconf.texi (Limitations of Builtins) <trap>: Correct
+ the example.
+ Reported by Ralf Wildenhues.
+
+ Add AS_SET_STATUS, make AS_EXIT more efficient.
+ * lib/m4sugar/m4sh.m4 (_AS_EXIT_PREPARE, AS_SET_STATUS): New
+ macros.
+ (AS_EXIT): Rewrite to avoid forks.
+ (_AS_SHELL_SANITIZE): Avoid AS_EXIT prior to shell functions.
+ (AS_PREPARE, _AS_PREPARE): Add new preparation.
+ * doc/autoconf.texi (Common Shell Constructs) <AS_SET_STATUS>:
+ Document.
+ * NEWS: Mention new macro.
+ * tests/m4sh.at (AS@&t@_EXIT): New test.
+ (BASENAME_TEST): Sort.
+
+ Document Tru64 bug with 'set -e'.
+ * doc/autoconf.texi (Limitations of Builtins) <trap>: Mention a
+ bug in mixing 'set -e' with 'trap .. 0'.
+ Reported by Ralf Wildenhues.
+
+ Document a Solaris /bin/sh bug with 'set -e'.
+ * doc/autoconf.texi (Shell Functions): Mention the bug.
+
+2008-11-17 Eric Blake <ebb9@byu.net>
+
+ Detect empty list in AS_FOR.
+ * lib/m4sugar/m4sh.m4 (AS_FOR): Handle iteration over $@
+ properly.
+ * tests/m4sh.at (AS@&t@_FOR): Enhance test to catch it.
+ Reported by Paolo Bonzini.
+
+2008-11-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Use a different workaround for an automake quirk.
+ * tests/Makefile.am (AUTOMAKE_OPTIONS): Remove.
+ (distclean_generic): New helper variable, to fool automake.
+ ($(distclean_generic)): Depend on clean-local, to prevent
+ the race in the two rules with accessing and removing
+ $(TESTSUITE).
+ Report by Eric Blake.
+
+ * lib/m4sugar/m4sh.m4 (_AS_VAR_ARITH_PREPARE): Simplify, avoid
+ unbalanced parentheses from last change.
+ Spotted by Eric Blake, fix suggested by Paolo Bonzini.
+
+ Fix exit status of expr version of as_func_arith.
+ * lib/m4sugar/m4sh.m4 (_AS_VAR_ARITH_PREPARE): Count an exit
+ status of 1 of expr also as success, to avoid failure if the
+ computation result is zero. Fixes test failures with IRIX sh,
+ where the expr variant of as_func_arith is used.
+
+ Do not use read-only variable $status.
+ * tests/compile.at (AC_RUN_IFELSE): Use $estatus instead of
+ $status, for zsh.
+
+2008-11-15 Eric Blake <ebb9@byu.net>
+
+ Use the new AS_FOR function.
+ * lib/autoconf/functions.m4 (AC_CHECK_FUNCS): Use new
+ abstraction for cleaner code.
+ * lib/autoconf/headers.m4 (AC_CHECK_HEADERS): Likewise.
+
+ Add AS_FOR, undocumented for now.
+ * lib/m4sugar/m4sh.m4 (AS_FOR): New macro.
+ * tests/m4sh.at (AS@&t@_FOR): New test.
+ Suggested by Paolo Bonzini.
+
+2008-11-13 Eric Blake <ebb9@byu.net>
+
+ Optimize single-argument loop.
+ * lib/autoconf/functions.m4 (AC_CHECK_FUNCS): Avoid forks when
+ loop only has one argument.
+ * lib/autoconf/headers.m4 (AC_CHECK_HEADERS): Likewise.
+
+2008-11-13 Eric Blake <ebb9@byu.net>
+
+ Fix AS_ESCAPE usage bugs.
+ * lib/m4sugar/m4sh.m4 (_AS_VAR_APPEND_PREPARE)
+ (_AS_VAR_ARITH_PREPARE): Expand macros prior to adding shell
+ escapes.
+ (AS_TR_SH, AS_VAR_GET): Use _AS_ESCAPE for speed.
+ * doc/autoconf.texi (Polymorphic Variables) <AS_VAR_SET>: Document
+ caveat due to conditional AS_ESCAPE.
+ * tests/m4sh.at (AS@&t@_VAR basics): Enhance test.
+
+2008-11-12 Eric Blake <ebb9@byu.net>
+
+ Whitespace reduction in configure.
+ * lib/autoconf/autoheader.m4 (AH_VERBATIM): Avoid empty lines.
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE, AC_CHECK_FILES):
+ Likewise.
+ (_AC_DEFINE_Q): Restore empty line, since some clients in the wild
+ depend on it.
+
+2008-11-12 Eric Blake <ebb9@byu.net>
+
+ Make M4sh, not autoconf, guarantee sane $SHELL.
+ * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Move setting of
+ SHELL...
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): ...to here.
+ * doc/autoconf.texi (Initialization Macros): Document the effect
+ on SHELL.
+ * tests/m4sh.at (AS@&t@_INIT_GENERATED): New test.
+ Reported by Ralf Wildenhues.
+
+2008-11-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Wrap keywords in `testsuite --list' output.
+ * lib/autotest/general.m4 (AT_INIT): Rewrite --list awk script,
+ avoid lint warnings from gawk, wrap keyword lists to stay below
+ 80 characters per line if possible.
+ * tests/autotest.at (Keyword wrapping): New test.
+
+ * tests/local.at (AT_COPYRIGHT): Bump copyright years.
+
+ * doc/autoconf.texi (Conditional constructs, Macro Names): Fix
+ typos.
+
+2008-11-10 Eric Blake <ebb9@byu.net>
+
+ Work around <=m4-1.4.9 bug in m4_format.
+ * lib/m4sugar/m4sugar.m4 (_m4_index): New internal macro.
+ (m4_init): Only use it in older m4.
+ * lib/autoconf/general.m4 (_AC_DEFINE_Q): Use it to avoid
+ m4_format bug in older m4.
+ * lib/autoconf/status.m4 (_AC_CONFIG_COMPUTE_DEST): Likewise.
+ Reported by Bob Proulx.
+
+2008-11-10 Eric Blake <ebb9@byu.net>
+
+ Match upstream standards.texi.
+ * doc/standards.texi: Resync from upstream.
+ * doc/fdl-1.3.texi: Rename...
+ * doc/fdl.texi: ...to this.
+ * doc/Makefile.am (autoconf_TEXINFOS, standards_TEXINFOS): Update
+ users.
+ * doc/autoconf.texi (GNU Free Documentation License): Likewise.
+ * cfg.mk (fetch): Likewise.
+
+ Yet more FDL 1.3 fallout.
+ * NEWS: Mention manual license change.
+
+2008-11-10 Eric Blake <ebb9@byu.net>
+
+ Avoid some regex uses.
+ * lib/autoconf/general.m4 (_AC_DEFINE_Q): Use m4_format rather
+ than m4_bpatsubst to grab string prefix.
+ * lib/autoconf/status.m4 (_AC_CONFIG_REGISTER)
+ (_AC_CONFIG_REGISTER_DEST, AC_CONFIG_SUBDIRS): Likewise.
+ (_AC_FILE_DEPENDENCY_TRACE_COLON): Use m4_translit instead of
+ m4_bpatsubst to change bytes.
+ (_AC_CONFIG_DEPENDENCY_DEFAULT): Use m4_index rather than
+ m4_bmatch to find byte.
+ (_AC_CONFIG_COMPUTE_DEST): New helper macro.
+
+ Use more efficient macros in AC_CONFIG_SUBDIRS.
+ * lib/autoconf/status.m4 (_AC_CONFIG_FOOS, AC_CONFIG_SUBDIRS): Use
+ m4_map_args_w.
+ (_AC_OUTPUT_FILE): Use m4_map_args_sep and m4_map_args.
+ (_AC_OUTPUT_FILE_ADJUST_DIR): New helper macro.
+
+ Use more efficient macros in AC_CHECK_FILES and AC_CHECK_DECLS.
+ * lib/autoconf/general.m4 (AC_CHECK_FILES): Use m4_map_args_w,
+ and avoid typo.
+ (AC_CHECK_DECLS, AC_CHECK_DECLS_ONCE): Use m4_map_args_sep.
+ (_AC_CHECK_FILES, _AC_CHECK_DECLS, _AC_CHECK_DECL_ONCE): New
+ helper macros.
+ (AC_LIBSOURCES): Use m4_map_args.
+
+ Use more efficient macros in AC_CHECK_TYPES.
+ * lib/autoconf/types.m4 (AC_CHECK_TYPES, AC_CHECK_MEMBERS): Use
+ m4_map_args_sep.
+ (_AC_CHECK_TYPES, _AC_CHECK_MEMBERS): New helper macros.
+
+ Use more efficient macros in AC_CHECK_HEADERS.
+ * lib/autoconf/headers.m4 (AH_CHECK_HEADERS)
+ (AH_CHECK_HEADERS_DIRENT): Rename...
+ (_AH_CHECK_HEADER, _AH_CHECK_HEADER_DIRENT): ...and take only one
+ argument, rather than a list.
+ (AC_CHECK_HEADERS, AC_CHECK_HEADERS_ONCE):
+ Adjust callers to use m4_map_args_w.
+ (AC_HEADER_DIRENT): Adjust caller to use m4_map_args.
+ (_AC_CHECK_HEADER_ONCE): New helper macro.
+
+ Use more efficient macros in AC_CHECK_FUNCS.
+ * lib/autoconf/functions.m4 (_AH_CHECK_FUNCS): Rename...
+ (_AH_CHECK_FUNC): ...and take only one argument, rather than a
+ list.
+ (AC_CHECK_FUNCS, AC_CHECK_FUNCS_ONCE): Adjust callers to use
+ m4_map_args_w.
+ (_AC_CHECK_FUNC_ONCE): New helper macro.
+ (AC_REPLACE_FUNCS): Use m4_map_args_w.
+
+ Use more efficient macro in AT_INIT.
+ * lib/autotest/general.m4 (AT_INIT): Use m4_map_args.
+
+2008-11-10 Eric Blake <ebb9@byu.net>
+
+ More FDL 1.3 fallout.
+ * cfg.mk (fetch): Add gnu-oids.texi, drop fdl.texi.
+ * doc/Makefile.am (standards_TEXINFOS): Reflect upstream
+ dependency changes.
+ * doc/fdl.texi: Delete.
+ * doc/gnu-oids.texi: New upstream file.
+ * doc/standards.texi: Resync from upstream.
+ * doc/make-stds.texi: Likewise.
+ * build-aux/announce-gen: Likewise.
+ * build-aux/texinfo.tex: Likewise.
+
+2008-11-10 Clinton Roy <clinton.roy@gmail.com> (tiny change)
+
+ Pass autoreconf -I to aclocal -I
+ * bin/autoreconf.in (parse_args): Pass --include to aclocal.
+ * doc/autoconf.texi (autoreconf Invocation): Updates for above.
+ * NEWS: Document it.
+ * THANKS: Update.
+
+2008-11-10 Eric Blake <ebb9@byu.net>
+
+ Try 'print -r --' as a non-forking variant of 'printf %s\\n'.
+ * lib/m4sugar/m4sh.m4 (_AS_ECHO_PREPARE): Cater to Solaris ksh.
+ * doc/autoconf.texi (Limitations of Builtins) <printf>: Document
+ the print workaround.
+ Idea by Paolo Bonzini.
+
+2008-11-10 Eric Blake <ebb9@byu.net>
+
+ Provide a section on all tools allowed in GNU Coding Standards.
+ * doc/autoconf.texi (Limitations of Builtins) <read>: Sort.
+ <wait>: Add section.
+ (Limitations of Usual Tools) <awk>: Make table entry consistent.
+ <chgrp, mkfifo, rmdir, sleep, sort, tar> Add sections.
+
+2008-11-09 Paolo Bonzini <bonzini@gnu.org>
+
+ Balance parentheses in _AC_CACHE_DUMP.
+ * lib/autoconf/general.m4 (_AC_CACHE_DUMP): Balance parentheses
+ without introducing \).
+
+2008-11-07 Eric Blake <ebb9@byu.net>
+
+ Further doc updates for AC_CHECK_HEADER change.
+ * doc/autoconf.texi (Generic Headers) <AC_CHECK_HEADER>: Mention
+ new default, and make it more obvious that using [-] is generally
+ broken.
+
+2008-11-07 Eric Blake <ebb9@byu.net>
+
+ * ChangeLog: Enforce UTF-8 encoding.
+
+2008-11-06 Eric Blake <ebb9@byu.net>
+
+ Skip preprocessor check in AC_CHECK_HEADERS_ONCE.
+ * lib/autoconf/headers.m4 (_AC_HEADERS_EXPANSION): Provide fourth
+ argument to speed up check.
+
+2008-11-06 Eric Blake <ebb9@byu.net>
+
+ Speed up AC_CHECK_TYPE.
+ * lib/autoconf/types.m4 (AC_CHECK_TYPE): Factor out $@, and avoid
+ regex when enough arguments are present.
+
+2008-11-06 Paolo Bonzini <bonzini@gnu.org>
+
+ Remove three forks per _AC_RUN_LOG_STDERR in the common case.
+ * lib/autoconf/general.m4 (_AC_RUN_LOG_STDERR): Avoid grep/rm/cat
+ sequence when the program's stderr was empty, while providing a
+ conftest.err file even in that case.
+ (_AC_CACHE_DUMP): Fix mismatched parenthesis.
+
+2008-11-06 Paolo Bonzini <bonzini@gnu.org>
+
+ Change `present but cannot be compiled' behavior to use compiler result.
+ * NEWS: Document it.
+ * doc/autoconf.texi (Present But Cannot Be Compiled): Document it.
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL): Implement it
+ and adjust warning.
+ * tests/semantics.at (AC_CHECK_HEADERS): Test new semantics.
+
+2008-11-05 Eric Blake <ebb9@byu.net>
+
+ Add m4_map_args_w.
+ * lib/m4sugar/m4sugar.m4 (m4_map_args_w): New macro, undocumented
+ for now.
+ (_m4_split): Allow user control over separator.
+ (m4_split): Adjust caller.
+ (m4_foreach_w, m4_append_uniq_w, _m4_text_wrap): Rewrite to use
+ m4_map_args_w.
+ * tests/m4sugar.at (m4@&t@_append): Augment test keywords.
+ (M4 loops): Test new interface.
+
+ Use m4_set_map_sep in more places.
+ * lib/m4sugar/m4sugar.m4 (m4_set_difference, m4_set_intersection)
+ (m4_set_union): Use m4_set_map_sep rather than m4_set_foreach.
+ * doc/autoconf.texi (Set manipulation Macros) <m4_set_map>:
+ Enhance documentation.
+ <m4_set_foreach>: Mention faster alternative.
+ (Looping constructs) <m4_foreach>: Likewise.
+
+ Unify m4_set_foreach and m4_set_map.
+ * lib/m4sugar/m4sugar.m4 (m4_set_map_sep): New macro, undocumented
+ for now.
+ (m4_set_contents, m4_set_foreach, m4_set_list, m4_set_listc)
+ (m4_set_map): Adjust callers.
+
+ Use _m4_foreach in more places.
+ * lib/m4sugar/foreach.m4 (m4_dquote_elt, m4_join, m4_joinall)
+ (_m4_minmax, m4_set_add_all): Use _m4_foreach instead of
+ m4_foreach.
+ * lib/m4sugar/m4sugar.m4 (_m4_joinall): Use m4_map_args_sep
+ instead of m4_foreach or m4_map_args.
+
+ Unify _m4_foreach and _m4_map.
+ * lib/m4sugar/m4sugar.m4 (_m4_map): Delete, merged with...
+ (_m4_foreach): ...this.
+ (m4_foreach, m4_map, m4_mapall, m4_map_sep, _m4_mapall_sep)
+ (m4_map_args, m4_map_args_sep): Adjust callers.
+ * lib/m4sugar/foreach.m4 (_m4_map): Rename...
+ (_m4_foreach): ...to this, overwriting old definition.
+
+2008-11-04 Eric Blake <ebb9@byu.net>
+
+ Add m4_map_args_sep, undocumented for now.
+ * lib/m4sugar/m4sugar.m4 (m4_map_args_sep): New macro.
+ (_m4_map): Change API to cover more of m4_map*.
+ * lib/m4sugar/foreach.m4 (_m4_map): Adjust to new API.
+ (m4_map_args): Delete.
+ * tests/m4sugar.at (m4@&t@_map_args and m4@&t@_curry): Enhance
+ test.
+
+ Improve m4_for performance.
+ * lib/m4sugar/m4sugar.m4 (_m4_for): Alter API to make it easier to
+ avoid m4_define by some clients.
+ (m4_for): Adjust caller.
+ * lib/m4sugar/foreach.m4 (_m4_foreach, m4_case, m4_bmatch)
+ (_m4_cond, _m4_bpatsubsts, _m4_shiftn, m4_do, m4_reverse)
+ (_m4_map, m4_map_args, m4_map_args_pair, _m4_list_pad)
+ (_m4_list_cmp): Likewise.
+
+2008-11-04 Eric Blake <ebb9@byu.net>
+
+ Adjust expected output.
+ * tests/torture.at (Missing templates): Reflect added quoting.
+ Detected by Bob Proulx's buildbot.
+
+ Reject arguments with leading =.
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Detect case of
+ missing variable name, with fewer forks. Quote invalid arguments
+ in message, in case they include spaces.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS)
+ (_AC_OUTPUT_MAIN_LOOP): Quote invalid arguments.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+ * tests/base.at (configure arguments): Test this.
+ Reported by Jeff Squyres.
+
+2008-11-04 Eric Blake <ebb9@byu.net>
+
+ Upgrade to FDL 1.3.
+ * cfg.mk (fetch): Add fdl-1.3.texi.
+ * .gitattributes: Likewise.
+ * doc/autoconf.texi (GNU Free Documentation License): Point to new
+ upstream version.
+ * doc/Makefile.am (autoconf_TEXINFOS): Likewise.
+ (standards_TEXINFOS): Mention current dependence on older license.
+ * doc/fdl-1.3.texi: New upstream file.
+ * GNUmakefile: Resync from upstream.
+ * build-aux/announce-gen: Likewise.
+ * build-aux/texinfo.tex: Likewise.
+
+2008-11-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Point at AM_SUBST_NOTMAKE.
+ * doc/autoconf.texi (Setting Output Variables): Add cross
+ reference to new Automake macro AM_SUBST_NOTMAKE.
+
+2008-11-03 Paolo Bonzini <bonzini@gnu.org>
+
+ Eliminate a fork per invocation of AC_LANG_CONFTEST.
+ * lib/autoconf/c.m4 (AC_LANG_CONFTEST(C)): Define instead of
+ AC_LANG_SOURCE(C).
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Add a comment at the
+ top of confdefs.h, which also works around cpp deficiencies.
+ * lib/autoconf/lang.m4 (AC_LANG_DEFINE): Define AC_LANG_CONFTEST(xyz)
+ (AC_LANG_CONFTEST): Dispatch based on _AC_LANG.
+ (AC_LANG_CONFTEST()): New.
+
+2008-11-03 Paolo Bonzini <bonzini@gnu.org>
+
+ Reorganize definition of languages.
+ * lib/autoconf/c.m4 (AC_LANG(C), AC_LANG(C++), AC_LANG(Objective C),
+ _AC_LANG_ABBREV(C), _AC_LANG_ABBREV(C++), _AC_LANG_ABBREV(Objective C),
+ _AC_LANG_PREFIX(C), _AC_LANG_PREFIX(C++), _AC_LANG_PREFIX(Objective C)):
+ Replace definitions with usage of AC_LANG_DEFINE.
+ (Sections 2b, 2c): Delete.
+ (Sections 1b, 1c): Move after section 2a.
+ * lib/autoconf/erlang.m4 (AC_LANG(Erlang), _AC_LANG_ABBREV(Erlang),
+ _AC_LANG_PREFIX(Erlang), AC_LANG_SOURCE(Erlang)): Replace definitions
+ with usage of AC_LANG_DEFINE.
+ (AC_LANG_ERLANG): Define using AU_DEFUN.
+ * lib/autoconf/fortran.m4 (AC_LANG(Fortran), AC_LANG(Fortran 77),
+ _AC_LANG_ABBREV(Fortran), _AC_LANG_ABBREV(Fortran 77),
+ _AC_LANG_PREFIX(Fortran), _AC_LANG_PREFIX(Fortran 77),
+ _AC_LANG_SOURCE(Fortran), AC_LANG_SOURCE(Fortran 77)): Replace
+ definitions with usage of AC_LANG_DEFINE.
+ * lib/autoconf/lang.m4 (AC_LANG_DEFINE, AC_LANG_SOURCE()): New.
+
+2008-11-03 Paolo Bonzini <bonzini@gnu.org>
+
+ Use preprocessor in cpp tests.
+ * tests/c.at (CPP tests): Use AC_CHECK_HEADERS(..., [-]).
+
+2008-10-31 Paolo Bonzini <bonzini@gnu.org>
+
+ Rename _AC_CHECK_HEADER_OLD and _AC_CHECK_HEADER_NEW.
+ * lib/autoconf/headers.m4 (AC_CHECK_HEADER): Adjust naming.
+ (_AC_CHECK_HEADER_PREPROC_BODY): New name of _AC_CHECK_HEADER_OLD_BODY.
+ (_AC_CHECK_HEADER_COMPILE_BODY): New name of _AC_CHECK_HEADER_NEW_BODY.
+ (_AC_CHECK_HEADER_PREPROC): New name of _AC_CHECK_HEADER_OLD.
+ (_AC_CHECK_HEADER_COMPILE): New name of _AC_CHECK_HEADER_NEW.
+ * tests/semantics.at (AC_CHECK_HEADERS_OLD, AC_CHECK_HEADER_NEW):
+ Give better name.
+
+2008-10-31 Eric Blake <ebb9@byu.net>
+
+ Support multiple undiverts and dumpdefs at once.
+ * lib/m4sugar/m4sugar.m4 (m4_dumpdefs, m4_undivert): Allow extra
+ arguments.
+ * doc/autoconf.texi (Redefined M4 Macros) <m4_dumpdef>,
+ <m4_undivert>: Document argument list change.
+ * tests/m4sugar.at (m4@&t@_divert_stack, m4@&t@_dumpdef): Test
+ them.
+
+ Simplify diversion stack handling.
+ * lib/m4sugar/m4sugar.m4 (m4_divert_stack): Use fewer macros, and
+ avoid extra newlines.
+ (m4_divert_stack_push): Compute location here, rather than caller.
+ (m4_divert_push): Update caller.
+ (m4_divert): Likewise, and also adjust current diversion name.
+ (m4_divert_pop): Simplify rule that diversion stack must never go
+ empty.
+ (_m4_require_call): Bypass diversion stack when collecting
+ required macro text.
+ (m4_init): Set current diversion without requiring m4_init.
+ * lib/m4sugar/m4sh.m4 (AS_INIT): Avoid too many pops.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+ * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Schedule wrapped
+ text to run prior to m4sugar cleanup.
+ * doc/autoconf.texi (Text processing Macros) <m4_newline>: Mention
+ optional argument.
+ (Conditional constructs) <m4_ifvaln, m4_n>: Mention use of dnl.
+ * NEWS: Undo blurb about m4_divert.
+ * tests/m4sugar.at (m4@&t@_divert_stack): New test.
+
+ Simplify expansion stack handling.
+ * lib/m4sugar/m4sugar.m4 (m4_expansion_stack): Use fewer macros;
+ always output 'top level'.
+ (_m4_expansion_stack_entry): New macro, to format the string only
+ when needed.
+ (m4_expansion_stack_push): Only push a macro name.
+ (m4_warn, _m4_defun_pro): Update callers.
+ (m4_expansion_stack_pop, m4_expansion_stack_dump): Delete.
+ (_m4_defun_epi, m4_fatal): Inline the calls.
+ * tests/m4sugar.at (m4@&t@_expansion_stack): New test.
+
+2008-10-30 Eric Blake <ebb9@byu.net>
+
+ Better documentation of AC_CHECK_HEADER's fourth argument.
+ * doc/autoconf.texi (Generic Headers) <AC_CHECK_HEADER>: Mention
+ how to suppress compiler or preprocessor header check.
+ Reported by Jeff Squyres.
+
+2008-10-30 Eric Blake <ebb9@byu.net>
+
+ Fix LINENO testsuite failure.
+ * tests/m4sh.at (AT_DATA_LINENO): Use AS_LINENO_PREPARE, not
+ undocumented _AS_PREPARE, and move unset earlier in script.
+
+ Update LINENO documentation.
+ * doc/autoconf.texi (Initialization Macros) <AS_INIT_GENERATED>:
+ (Special Shell Variables) <LINENO>: Mention that LINENO support in
+ child scripts may be broken. Modernize example.
+
+2008-10-30 Paolo Bonzini <bonzini@gnu.org>
+
+ Do not check for $LINENO in generated scripts.
+ * lib/m4sugar/m4sh.m4 (_AS_PREPARE): Do not call _AS_LINENO_PREPARE,
+ and explain why.
+
+2008-10-30 Eric Blake <ebb9@byu.net>
+
+ Don't check for non-POSIX extensions in suggested tests.
+ * lib/m4sugar/m4sh.m4 (_AS_VAR_APPEND_WORKS): Remove suggestion;
+ we still use += if available, but should not reject shells (like
+ dash) that don't provide it.
+ (_AS_DETECT_SUGGESTED): Document a policy for m4sh.
+ Reported by Paolo Bonzini.
+
+2008-10-30 Paolo Bonzini <bonzini@gnu.org>
+
+ Pass CONFIG_SHELL down to generated scripts, and re-export SHELL.
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): If proceeding
+ with a given CONFIG_SHELL, move it to SHELL.
+ (AS_INIT_GENERATED): Re-export SHELL.
+
+2008-10-30 Eric Blake <ebb9@byu.net>
+
+ Work around Solaris /bin/sh case bug.
+ * lib/m4sugar/m4sh.m4 (_AS_CASE, _AS_CASE_DEFAULT): Always provide
+ a non-empty command list.
+ (AS_CASE): Always guarantee that a case will match.
+ * doc/autoconf.texi (Limitations of Builtins) <case>: Document the
+ Solaris bug, and mention AS_CASE.
+
+2008-10-30 Paolo Bonzini <bonzini@gnu.org>
+
+ Require _AS_CR_PREPARE where appropriate.
+ * lib/m4sugar/m4sh.m4 (_AS_PREPARE): Call _AS_CR_PREPARE.
+ (AS_PREPARE): Require _AS_CR_PREPARE.
+
+ Avoid walking the entire PATH when looking for a better shell.
+ * lib/m4sugar/m4sh.m4 (_AS_SHELL_SANITIZE): Test shell characteristics
+ as the PATH is walked.
+
+ Add third argument to _AS_PATH_WALK
+ * lib/m4sugar/m4sh.m4 (_AS_SHELL_SANITIZE): Do not call _AS_CR_PREPARE.
+ (_AS_PATH_WALK): Add third optional argument.
+
+ Trim down the length of the shell function test.
+ * lib/m4sugar/m4sh.m4 (_AS_SHELL_FN_WORK): Condense.
+
+2008-10-29 Eric Blake <ebb9@byu.net>
+
+ Fix LINENO detection to work around bash and pdksh limitations.
+ * lib/m4sugar/m4sh.m4 (_AS_LINENO_WORKS): Enhance the test, so
+ that we can choose which of two tests to trust.
+ (_AS_RUN): Set flag when alternate shell is running.
+ (_AS_DETECT_EXPAND): New macro.
+ (_AS_DETECT_BETTER_SHELL): Use it to massage LINENO tests.
+
+2008-10-29 Eric Blake <ebb9@byu.net>
+
+ Mention proper fix for zsh users.
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Recommend zsh
+ version known to work.
+ Suggested by Paolo Bonzini.
+
+ Document current beta-quality status.
+ * configure.ac: Reflect fact that change to git-version-gen
+ produces -, but not always a letter, on non-release builds.
+ * BUGS: Mention known issues.
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Ask for help in
+ debugging platforms with deficient shells.
+
+2008-10-29 Eric Blake <ebb9@byu.net>
+
+ Alter signature of AS_INIT_GENERATED.
+ * lib/m4sugar/m4sh.m4 (AS_INIT_GENERATED): Add parameters, and
+ manage here-doc and chmod in place. This also allows future
+ changes for optimizing the child via diversion/m4_wrap magic.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Update
+ caller.
+ * doc/autoconf.texi (Initialization Macros) <AS_INIT_GENERATED>:
+ Update the documentation.
+
+2008-10-29 Eric Blake <ebb9@byu.net>
+
+ Use _m4_stack_reverse in m4_set.
+ * lib/m4sugar/m4sugar.m4 (_m4_set_contents_1)
+ (_m4_set_contents_2): Rewrite to share _m4_stack_reverse
+ implementation.
+ (m4_set_contents, m4_set_foreach, m4_set_list, m4_set_listc)
+ (m4_set_map): Adjust callers to new API.
+
+ Add m4_stack_foreach_sep.
+ * lib/m4sugar/m4sugar.m4 (m4_stack_foreach_sep)
+ (m4_stack_foreach_sep_lifo): New macros.
+ (_m4_stack_reverse): Adjust prototype, to support it.
+ (m4_copy): Use fewer macros.
+ * tests/m4sugar.at (m4@&t@_stack_foreach): Rename...
+ (m4@&t@_stack): ...and add m4_stack_foreach_sep tests.
+
+2008-10-29 Bruno Haible <bruno@clisp.org>
+
+ Mention Sun WorkShop 6.2 OpenMP bug.
+ * doc/autoconf.texi (AC_OPENMP): Document portability pitfall.
+
+2008-10-29 Paolo Bonzini <bonzini@gnu.org>
+
+ Rewrite handling of diversion and expansion stack.
+ * NEWS: Document stricter requirement on m4_init.
+ * lib/m4sugar/m4sugar.m4 (m4_divert_stack): New, replacing
+ _m4_divert_n_stack.
+ (_m4_divert_stack_push): New.
+ (m4_divert): Use _m4_divert_stack_push and replace m4_define with
+ m4_popdef.
+ (m4_divert_push): Use _m4_divert_stack_push.
+ (m4_divert_pop): Use m4_divert_stack instead of _m4_divert_n_stack,
+ pop _m4_divert_stack instead of m4_divert_stack.
+ (m4_expansion_stack): New. Update comment above it.
+ (m4_expansion_stack_push, m4_expansion_stack_pop): Work on
+ _m4_expansion_stack instead of m4_expansion_stack.
+ (m4_expansion_stack_dump): Check presence of _m4_expansion_stack
+ instead of m4_expansion_stack. Use m4_expansion_stack's expansion
+ instead of the definition, and compensate for the trailing newline
+ in the expansion.
+ (m4_warn, _m4_defun_pro, _m4_defun_epi): Check presence of
+ _m4_expansion_stack instead of m4_expansion_stack.
+ (m4_newline): Expand first argument after the newline.
+ (m4_init): Use m4_divert_stack instead of _m4_divert_n_stack,
+ * tests/m4sugar.at (m4_append, m4_text_wrap): Invoke m4_init.
+ * tests/tools.at (whitespace in file names, the empty token): Likewise.
+
+2008-10-28 Eric Blake <ebb9@byu.net>
+
+ Reduce forks while searching for better shell.
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_REQUIRED)
+ (_AS_DETECT_SUGGESTED): No need to provide extra subshell; _AS_RUN
+ already does the job.
+ (_AS_DETECT_BETTER_SHELL): Simplify AS_EXIT when not run in a trap
+ 0 context.
+
+ Undo needless efforts to protect $2 in $2_t.
+ * lib/autoconf/types.m4 (_AC_TYPE_INT_BODY)
+ (_AC_TYPE_UNSIGNED_INT_BODY): Reduce extra quoting.
+
+2008-10-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix parallel test execution output lossage.
+ * lib/autotest/general.m4 (_AT_CHECK): Truncate files to hold
+ standard output and standard error before the test, use append
+ mode for writing.
+ * THANKS: Update.
+ Caught by Bob Proulx' build daemons, analysis and suggested fix
+ by Stéphane Chazelas.
+
+2008-10-28 Eric Blake <ebb9@byu.net>
+
+ Use m4_map_args in more places.
+ * lib/m4sugar/m4sugar.m4 (m4_defn, m4_dumpdef, m4_popdef)
+ (m4_undefine, m4_combine): Use m4_map_args, rather than
+ m4_foreach.
+
+2008-10-28 Eric Blake <ebb9@byu.net>
+
+ Override m4 1.4.x dumpdef, as it breaks autom4te.
+ * lib/m4sugar/m4sugar.m4 (m4_dumpdef): New implementation.
+ (m4_copy): Formatting touchup.
+ * doc/autoconf.texi (Redefined M4 Macros) <m4_dumpdef>: Mention
+ semantic differences as well as m4_dumpdefs.
+ * NEWS: Likewise.
+ * tests/m4sugar.at (m4@&t@_dumpdef): New test.
+
+2008-10-28 Eric Blake <ebb9@byu.net>
+
+ Allow m4sugar to be used without autom4te, such as in bison.
+ * lib/m4sugar/m4sugar.m4 (m4_text_wrap, m4_qlen): Document that
+ alternate escape sequences can be used.
+ (m4_text_box): Likewise. Don't output quadrigraphs.
+ (m4_qdelta): Delete unused macro.
+
+2008-10-28 Paolo Bonzini <bonzini@gnu.org>
+
+ Add m4_stack_foreach and m4_stack_foreach_lifo.
+ * lib/m4sugar/m4sugar.m4 (_m4_stack_reverse): New from _m4_copy.
+ (m4_stack_foreach, m4_stack_foreach_lifo): New.
+ (m4_copy): Use m4_stack_foreach and m4_curry.
+ (_m4_dumpdefs_down, _m4_dumpdefs_up): Remove.
+ (m4_dumpdefs): Rewrite using m4_stack_foreach_lifo.
+ * tests/m4sugar.at (m4_stack_foreach): New test.
+
+2008-10-28 Paolo Bonzini <bonzini@gnu.org>
+
+ use a shell function for AC_TYPE_INTx_T
+ * lib/autoconf/types.m4 (_AC_TYPE_INT_BODY, _AC_TYPE_UNSIGNED_INT_BODY):
+ New.
+ (_AC_TYPE_INT, _AC_TYPE_UNSIGNED_INT): Define and use a shell function.
+
+2008-10-28 Paolo Bonzini <bonzini@gnu.org>
+
+ * lib/autoconf/general.m4 (AC_CHECK_DECL): Fix AS_ESCAPE usage.
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL,
+ _AC_CHECK_HEADER_NEW): Likewise.
+ * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW, AC_CHECK_MEMBER): Likewise.
+
+2008-10-28 Paolo Bonzini <bonzini@gnu.org>
+
+ * lib/autoconf/types.m4 (_AC_CHECK_MEMBER_BODY): New.
+ (AC_CHECK_MEMBER): Define and use a shell function.
+
+2008-10-27 Eric Blake <ebb9@byu.net>
+
+ Prefer m4_fatal over AC_FATAL.
+ * lib/autoconf/types.m4 (AC_CHECK_SIZEOF, AC_CHECK_ALIGNOF)
+ (AC_CHECK_MEMBER): Use non-obsolete macro name.
+ * lib/autoconf/fortran.m4 (_AC_LIST_MEMBER_IF): Likewise.
+ * lib/autoconf/general.m4 (AC_REQUIRE_AUX_FILE, AC_SUBST):
+ Likewise.
+ * lib/autoconf/lang.m4 (_AC_LANG_DISPATCH): Likewise.
+ * lib/autoconf/status.m4 (_AC_CONFIG_DEPENDENCY_DEFAULT)
+ (_AC_CONFIG_UNIQUE, _AC_CONFIG_REGISTER_DEST): Likewise.
+
+2008-10-27 Eric Blake <ebb9@byu.net>
+
+ Avoid raw carriage return in scripts.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Generate CR
+ via tr, rather than with literal byte.
+ * THANKS: Update.
+ Reported by Steven R. Loomis; patch suggested by Thomas Dickey.
+
+2008-10-27 Eric Blake <ebb9@byu.net>
+
+ Use AS_VAR_ARITH.
+ * lib/autotest/general.m4 (at_func_arith): Delete; replace all
+ clients with AS_VAR_ARITH instead.
+ * lib/autoconf/general.m4 (_AC_COMPUTE_INT_COMPILE): Use new
+ macro.
+ * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH): Likewise.
+ * tests/torture.at (Torturing config.status): Likewise.
+ * tests/tools.at (autom4te --force): Likewise.
+
+ Add AS_VAR_ARITH.
+ * lib/m4sugar/m4sh.m4 (_AS_VAR_ARITH_PREPARE, _AS_VAR_ARITH_WORKS)
+ (AS_VAR_ARITH): New macros.
+ (_AS_PREPARE, AS_PREPARE): Emit preparation.
+ * tests/m4sh.at (AS@&t@_VAR_ARITH): New test.
+ * doc/autoconf.texi (Polymorphic Variables) <AS_VAR_ARITH>:
+ Document new macro.
+ (Limitations of Usual Tools) <expr>: Mention portability problem
+ if first argument starts with -.
+ (Shell Substitutions) <$((expression))>: Mention it.
+ * NEWS: Likewise.
+
+2008-10-27 Eric Blake <ebb9@byu.net>
+
+ Use read, rather than `cat`, for safe one-line files.
+ * lib/autotest/general.m4 (AT_CLEANUP): Avoid a fork, since it is
+ known that the file has only one line and no \.
+ * lib/autoconf/general.m4 (_AC_COMPUTE_INT_RUN): Likewise.
+
+2008-10-27 Paolo Bonzini <bonzini@gnu.org>
+
+ * lib/autoconf/general.m4 (_AC_COMPUTE_INT_COMPILE,
+ _AC_COMPUTE_INT_RUN): Add IF-SUCCESS argument.
+ (_AC_COMPUTE_INT_BODY): New.
+ (AC_COMPUTE_INT): Define and use a shell function.
+
+2008-10-27 Paolo Bonzini <bonzini@gnu.org>
+
+ * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW_BODY): Extract
+ test body here. Move head comment of _AC_CHECK_TYPE_NEW here.
+ (_AC_CHECK_TYPE_NEW): Define a shell function and call it.
+
+2008-10-27 Paolo Bonzini <bonzini@gnu.org>
+
+ * lib/autoconf/general.m4 (_AC_CHECK_DECL_BODY): New.
+ (AC_CHECK_DECL): Use a shell function.
+
+2008-10-27 Paolo Bonzini <bonzini@gnu.org>
+
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_OLD,
+ _AC_CHECK_HEADER_NEW): Use a shell function.
+
+2008-10-25 Eric Blake <ebb9@byu.net>
+
+ Track recent copyright assignments.
+ * AUTHORS: Update.
+
+2008-10-25 Paolo Bonzini <bonzini@gnu.org>
+ and Eric Blake <ebb9@byu.net>
+
+ Use a shell function for _AC_CHECK_HEADER_MONGREL.
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL_BODY): New
+ macro.
+ (_AC_CHECK_HEADER_MONGREL): Use a shell function.
+
+2008-10-25 Eric Blake <ebb9@byu.net>
+
+ Simplify _AS_PREPARE handling of functions.
+ * lib/m4sugar/m4sh.m4 (AS_REQUIRE_SHELL_FN): Factor...
+ (_AS_REQUIRE_SHELL_FN): ...into new helper macro.
+ (_AS_PREPARE): Temporarily redefine AS_REQUIRE_SHELL_FN to make
+ this task easier.
+ (_AS_LINENO_PREPARE): Make more efficient.
+ (_AS_MKDIR_P_PREPARE): Simplify use in _AS_PREPARE.
+ (_AS_UNSET_PREPARE): Avoid blank newline.
+ (AS_INIT): Emit as_func_unset alongside other functions.
+
+2008-10-25 Eric Blake <ebb9@byu.net>
+
+ Document AS_EXIT.
+ * doc/autoconf.texi (Common Shell Constructs) <AS_EXIT>: Document
+ this macro.
+ (Limitations of Builtins): Mention AS_EXIT.
+ * NEWS: Mention it.
+
+ Use AS_EXIT in autoconf.as.
+ * bin/autoconf.as: Consistently use AS_EXIT.
+
+2008-10-24 Eric Blake <ebb9@byu.net>
+
+ Fix m4 underquoting in AC_PROG_INSTALL.
+ * lib/autoconf/programs.m4 (AC_PROG_INSTALL): Produce accurate
+ character ranges.
+
+ Speed up AC_CHECK_HEADER.
+ * lib/autoconf/headers.m4 (AC_CHECK_HEADER): Factor out $@.
+
+2008-10-24 Paolo Bonzini <bonzini@gnu.org>
+ and Eric Blake <ebb9@byu.net>
+
+ Use a shell function for AC_CHECK_FUNC.
+ * lib/autoconf/functions.m4 (_AC_CHECK_FUNC_BODY): New macro.
+ (AC_CHECK_FUNC): Use a shell function.
+ * lib/autoconf/c.m4 (AC_LANG_SOURCE(C)): Reduce number of forks.
+
+2008-10-24 Eric Blake <ebb9@byu.net>
+
+ Work around fact that gnulib-tool doesn't use m4_copy.
+ * lib/autoconf/general.m4 (AC_LIBOBJ, AC_LIBSOURCES): Defun, not
+ define, so that an initial location is present, to account for
+ fact that gnulib-tool pushes another AC_DEFUN'd macro on top.
+
+ Make m4_defun_init more robust.
+ * lib/m4sugar/m4sugar.m4 (m4_defun_init): Handle indirect macro
+ names, and correct number of arguments.
+ (m4_copy): Also set up location of the copy.
+ (m4_defun): When copied, use current macro name, not original.
+ * tests/m4sugar.at (m4@&t@_require: one-shot initialization):
+ Update test.
+
+ Optimize clients of AS_REQUIRE.
+ * lib/m4sugar/m4sugar.m4 (m4_defun): Add undocumented third
+ argument.
+ (m4_defun_init): New undocumented macro.
+ * lib/m4sugar/m4sh.m4 (_AS_ECHO_LOG, AS_MESSAGE, AS_BASENAME)
+ (_AS_DIRNAME_EXPR, AS_DIRNAME, AS_ECHO, AS_ECHO_N, AS_TEST_X)
+ (AS_LN_S, AS_MKDIR_P, _AS_PATH_WALK, AS_VERSION_COMPARE)
+ (AS_TR_SH, AS_TR_CPP, AS_VAR_APPEND, AS_VAR_PUSHDEF): Use it to
+ simplify these macros once the one-shot initialization is
+ complete.
+ * tests/m4sugar.at (m4@&t@_require: one-shot initialization): New
+ test.
+
+ Improve m4_copy.
+ * lib/m4sugar/m4sugar.m4 (m4_copy): Add second implementation for
+ public use.
+ (_m4_copy): New macro, which preserves pushdef stacks.
+ (_m4_defun_pro_outer): Bypass it, for speed.
+ (m4_init): Bypass new implementation, since it breaks on m4_defn.
+ * bin/autoupdate.in (handle_autoconf_macros): Likewise.
+ * lib/autoconf/general.m4 (AC_PREREQ): Undefine before redefining,
+ now that m4_copy checks this.
+ * doc/autoconf.texi (Redefined M4 Macros) <m4_copy>: Document
+ this, as well as m4_rename.
+ * lib/autoconf/autoconf.m4 (m4_copy): Temporarily redefine when
+ renaming builtins, since it breaks on m4_ifdef.
+ * NEWS: Likewise.
+ * tests/m4sugar.at (m4@&t@_defn): Enhance test.
+
+2008-10-24 Eric Blake <ebb9@byu.net>
+
+ AC_FUNC_GETGROUPS: Revert regression.
+ * lib/autoconf/functions.m4 (AC_FUNC_GETGROUPS): Only set
+ ac_cv_func_getgroups_works=no when it is not available.
+
+2008-10-23 Eric Blake <ebb9@byu.net>
+
+ Whitespace cleanup.
+ * lib/autoconf/fortran.m4: Consistently use tabs.
+
+2008-10-23 Chikama Masaki <masaki.chikama@gmail.com> (tiny change)
+
+ For gfortran on sh, ignore -little.
+ * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS): Add -little to
+ list of ignored arguments.
+ * THANKS: Update.
+
+2008-10-23 Paolo Bonzini <bonzinI@gnu.org>
+
+ Eliminate empty lines after AC_*_IFELSE.
+ * lib/autoconf/general.m4 (_AC_PREPROC_IFELSE, _AC_COMPILE_IFELSE,
+ _AC_LINK_IFELSE, _AC_RUN_IFELSE): Add a dnl at end.
+
+2008-10-23 Paolo Bonzini <bonzinI@gnu.org>
+
+ Avoid a fork in _AC_RUN_LOG and _AC_RUN_LOG_STDERR
+ * lib/autoconf/general.m4 (_AC_RUN_LOG, _AC_RUN_LOG_STDERR):
+ Return a boolean status code based on $ac_status.
+
+2008-10-23 Paolo Bonzini <bonzinI@gnu.org>
+
+ Ensure actions can look at conftest* files.
+ * lib/autoconf/general.m4 (_AC_PREPROC_IFELSE_BODY,
+ _AC_COMPILE_IFELSE_BODY, _AC_LINK_IFELSE_BODY, _AC_RUN_IFELSE_BODY):
+ Move rm commands, except IPA files and Apple debug symbols...
+ (_AC_PREPROC_IFELSE, _AC_COMPILE_IFELSE, _AC_LINK_IFELSE,
+ _AC_RUN_IFELSE): ...in here.
+ * tests/compile.at: Add regression test.
+
+2008-10-23 Eric Blake <ebb9@byu.net>
+
+ Remove excess dnl from m4sh.
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL, _AS_PREPARE)
+ (_AS_SHELL_FN_WORK, _AS_SHELL_SANITIZE, AS_IF, _AS_ECHO_LOG)
+ (AS_MESSAGE, AS_ERROR, AS_BASENAME, _AS_BASENAME_PREPARE)
+ (_AS_DIRNAME_EXPR, AS_DIRNAME, _AS_DIRNAME_PREPARE, AS_ECHO)
+ (AS_ECHO_N, AS_TEST_X, AS_EXECUTABLE_P, _AS_ME_PREPARE)
+ (_AS_LINENO_PREPARE, AS_LN_S, AS_MKDIR_P, _AS_PATH_WALK)
+ (AS_SET_CATFILE, AS_HELP_STRING, AS_TMPDIR, AS_VERSION_COMPARE)
+ (_AS_TR_SH_PREPARE, AS_TR_SH, _AS_TR_CPP_PREPARE, AS_TR_CPP)
+ (_AS_TR_PREPARE, AS_VAR_APPEND, AS_VAR_PUSHDEF)
+ (AS_INIT_GENERATED): Use fewer dnl in m4sh macro bodies.
+
+2008-10-23 Paolo Bonzini <bonzini@gnu.org>
+ and Eric Blake <ebb9@byu.net>
+
+ Use a shell function for _AC_RUN_IFELSE.
+ * lib/autoconf/general.m4 (_AC_RUN_IFELSE_BODY): New macro.
+ (_AC_RUN_IFELSE): Use a shell function.
+ (_AC_RUN_LOG): Avoid subshell for logging.
+
+2008-10-23 Eric Blake <ebb9@byu.net>
+
+ Formatting tweak: balance () with m4sh case statements.
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL)
+ (_AS_SHELL_SANITIZE, _AS_ECHO_N_PREPARE, _AS_ECHO_PREPARE)
+ (AS_SET_CATFILE, _AS_TEST_PREPARE): Add strategic shell comments.
+ (_AS_CASE, _AS_CASE_DEFAULT, AS_CASE): Rearrange newlines, to
+ allow output of strategic shell comments.
+ (AS_VERSION_COMPARE): Use AS_CASE.
+ * tests/m4sh.at (AS@&t@_IF and AS@&t@_CASE): Enhance test.
+
+2008-10-22 Jim Meyering <meyering@redhat.com>
+
+ AC_FUNC_GETGROUPS: always define $ac_cv_func_getgroups_works
+ * lib/autoconf/functions.m4 (AC_FUNC_GETGROUPS): Always define
+ the shell variable, $ac_cv_func_getgroups_works. Otherwise, if
+ it is set to "yes" in the environment and configure is run on
+ a system like mingw that lacks the getgroups function, it would
+ mistakenly define HAVE_GETGROUPS. Reported by Simon Josefsson in
+ <http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/15354>.
+
+2008-10-22 Paolo Bonzini <bonzini@gnu.org>
+ and Eric Blake <ebb9@byu.net>
+
+ Use a shell function for _AC_LINK_IFELSE.
+ * lib/autoconf/general.m4 (_AC_LINK_IFELSE_BODY): New macro.
+ (_AC_LINK_IFELSE): Use a shell function.
+
+2008-10-22 Eric Blake <ebb9@byu.net>
+
+ Fix autoconf logging commands.
+ * lib/autoconf/general.m4 (AC_MSG_RESULT_UNQUOTED, _AC_EVAL)
+ (_AC_EVAL_STDERR, AC_RUN_LOG): Respect as_lineno.
+ (_AC_DO_ECHO): Likewise, and use fewer dnl.
+ (_AC_RUN_LOG_STDERR): Avoid subshell for logging.
+
+2008-10-22 Eric Blake <ebb9@byu.net>
+
+ Fix testsuite failure.
+ * tests/mktests.sh (ac_exclude_list): Don't generate test for
+ AC_REQUIRE_SHELL_FN.
+
+2008-10-21 Eric Blake <ebb9@byu.net>
+
+ Improve wording related to automake and autotest.
+ * doc/autoconf.texi (Making testsuite Scripts): Clarify wording in
+ relation to automake. Mention dependency on package.m4.
+ Consolidate examples. Define AUTOM4TE.
+ * THANKS: Update.
+ Reported by William Pursell.
+
+2008-10-21 Eric Blake <ebb9@byu.net>
+
+ Allow AS_VAR_SET_IF in shell lists.
+ * lib/m4sugar/m4sh.m4 (AS_VAR_SET_IF): Allow continuation of
+ line.
+ * lib/autoconf/general.m4 (AC_CACHE_VAL): Supply newline no longer
+ provided by AS_VAR_SET_IF.
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL): Adjust
+ clients.
+ * lib/autoconf/libs.m4 (AC_SEARCH_LIBS): Likewise.
+ * tests/m4sh.at (AS@&t@_VAR basics): Enhance test.
+
+ Allow AS_VAR_IF in shell lists.
+ * lib/m4sugar/m4sh.m4 (AS_VAR_IF): Allow continuation of line.
+ * lib/autoconf/functions.m4 (AC_CHECK_FUNC): Adjust clients.
+ * lib/autoconf/general.m4 (AC_CHECK_FILE, AC_CHECK_DECL):
+ Likewise.
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL)
+ (_AC_CHECK_HEADER_NEW, _AC_CHECK_HEADER_OLD)
+ (_AC_CHECK_HEADER_DIRENT): Likewise.
+ * lib/autoconf/libs.m4 (AC_CHECK_LIB): Likewise.
+ * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW, AC_CHECK_MEMBER):
+ Likewise.
+ * tests/m4sh.at (AS@&t@_VAR basics): Enhance test.
+
+ Allow AS_CASE in shell lists.
+ * lib/m4sugar/m4sh.m4 (AS_CASE): Always execute test, in case of
+ side effects. Allow continuation of script on same line as esac.
+ * lib/autoconf/c.m4 (AC_PROG_CC_STDC): Adjust client.
+ * tests/m4sh.at (AS@&t@_IF and AS@&t@_CASE): Enhance test.
+ * NEWS: Document the subtle change.
+
+ Allow AS_IF in shell lists.
+ * lib/m4sugar/m4sh.m4 (AS_IF): Always execute test, in case of
+ side effects. Allow continuation of script on same line as fi.
+ (_AS_DETECT_BETTER_SHELL): Adjust clients.
+ (AS_VAR_IF, AS_VAR_SET_IF): For now, supply newline no longer
+ given by AS_IF.
+ * lib/autoconf/c.m4 (_AC_PROG_PREPROC_WORKS_IFELSE): Likewise.
+ * lib/autoconf/general.m4 (_AC_ENABLE_IF): Likewise.
+ (AC_EGREP_CPP, _AC_RUN_IFELSE): Adjust client.
+ * lib/autoconf/libs.m4 (AC_SEARCH_LIBS): Likewise.
+ * doc/autoconf.texi (Common Shell Constructs) <AS_IF>: Fix typo.
+ (Polymorphic Variables): Move mention of dnl to the only two
+ AS_VAR functions that need it.
+
+2008-10-21 Paolo Bonzini <bonzini@gnu.org>
+ and Eric Blake <ebb9@byu.net>
+
+ Use a shell function for _AC_COMPILE_IFELSE.
+ * lib/autoconf/general.m4 (_AC_COMPILE_IFELSE_BODY): New macro.
+ (_AC_COMPILE_IFELSE): Use a shell function.
+
+2008-10-21 Eric Blake <ebb9@byu.net>
+
+ Use AS_VAR_APPEND.
+ * lib/autoconf/functions.m4 (AC_CHECK_FUNCS_ONCE): Use new macro.
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE)
+ (_AC_LIBOBJS_NORMALIZE): Likewise.
+ * lib/autoconf/headers.m4 (AC_CHECK_HEADERS_ONCE): Likewise.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS)
+ (_AC_OUTPUT_CONFIG_STATUS, _AC_OUTPUT_MAIN_LOOP): Likewise.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+
+ Add AS_VAR_APPEND.
+ * lib/m4sugar/m4sh.m4 (_AS_VAR_APPEND_PREPARE)
+ (_AS_VAR_APPEND_WORKS, AS_VAR_APPEND): New macros.
+ (AS_PREPARE, _AS_PREPARE): Emit preparation.
+ * tests/m4sh.at (AS@&t@_VAR_APPEND): New test.
+ * doc/autoconf.texi (Polymorphic Variables) <AS_VAR_APPEND>:
+ Document new macro.
+ <AS_VAR_SET>: Mention ramification of `""` rules.
+ * NEWS: Mention new macro.
+
+2008-10-21 Paolo Bonzini <bonzini@gnu.org>
+ and Eric Blake <ebb9@byu.net>
+
+ Use a shell function for _AC_PREPROC_IFELSE.
+ * lib/autoconf/general.m4 (_AC_PREPROC_IFELSE_BODY): New macro.
+ (_AC_PREPROC_IFELSE): Use a shell function.
+ * lib/m4sugar/m4sh.m4 (AS_REQUIRE): Factor for faster execution.
+ (AS_REQUIRE_SHELL_FN): Bypass AS_REQUIRE if function has already
+ been provided.
+
+2008-10-21 Eric Blake <ebb9@byu.net>
+
+ Add banners to generated files.
+ * lib/m4sugar/m4sh.m4 (_AS_SHELL_SANITIZE): Use m4_text_box for
+ existing banner.
+ (AS_INIT): Add new banners at strategic points.
+ * lib/autoconf/general.m4 (AC_INIT): Alter banner location, and
+ make consistent with other banners.
+ * lib/autotest/general.m4 (AT_INIT): Make banners consistent.
+
+2008-10-20 Paolo Bonzini <bonzini@gnu.org>
+
+ Add AC_REQUIRE_SHELL_FN and the SHELL_FN diversion.
+ * lib/autoconf/general.m4 (AC_REQUIRE_SHELL_FN): New.
+ (m4_divert(SHELL_FN)): New.
+
+2008-10-20 Eric Blake <ebb9@byu.net>
+
+ Avoid unportable use of echo in testsuite.
+ * tests/m4sh.at (AS@&t@_VAR basics): Use AS_ECHO, since string
+ contains backslash.
+
+2008-10-18 Paolo Bonzini <bonzini@gnu.org>
+
+ Make sure that nested AS_REQUIRE do not lose the desired diversion.
+ * lib/m4sugar/m4sh.m4 (AS_REQUIRE): Expand _m4_divert_desired before
+ passing it to m4_divert_require, so that its content is not used
+ anymore.
+ * tests/m4sh.at (Nested AS_REQUIRE): New testcase.
+
+2008-10-18 Eric Blake <ebb9@byu.net>
+
+ Document bugs in { } handling.
+ * doc/autoconf.texi (Limitations of Builtins): Mention bug on
+ empty list.
+
+ Fix some testsuite failures introduced two days ago.
+ * tests/m4sh.at (Nested AS@&t@_REQUIRE_SHELL_FN)
+ (AS@&t@_REQUIRE_SHELL_FN and m4@&t@_require): Adjust to changed
+ API.
+ Reported by Ralf Wildenhues.
+
+2008-10-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Show how to extract single substitutions from config.status.
+ * doc/autoconf.texi (config.status Invocation): Show example
+ using `--file=-'.
+
+2008-10-17 Eric Blake <ebb9@byu.net>
+
+ Add m4_curry.
+ * lib/m4sugar/m4sugar.m4 (m4_curry, _m4_curry): New macros.
+ * tests/m4sugar.at (m4@&t@_map_args): Rename...
+ (m4@&t@_map_args and m4@&t@_curry): ...and add currying tests.
+ * doc/autoconf.texi (Looping constructs) <m4_map_args>: Document
+ currying as a way to add parameters.
+ (Evaluation Macros) <m4_curry>: Document the new macro.
+ * NEWS: Likewise.
+
+ Improve suggested test filtering.
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_SUGGESTED_PRUNE): New macro,
+ extracted from...
+ (_AS_DETECT_BETTER_SHELL): ...here, to use faster API. No need to
+ check for an empty required set.
+
+ Add m4_set_map.
+ * lib/m4sugar/m4sugar.m4 (m4_set_foreach): New macro.
+ * tests/m4sugar.at (m4@&t@_set): Enhance test.
+ * doc/autoconf.texi (Set manipulation Macros) <m4_set_map>:
+ Document it.
+ * NEWS: Likewise.
+
+ Document m4_map_args.
+ * lib/m4sugar/m4sugar.m4 (m4_transform, m4_transform_pair):
+ Rename...
+ (m4_map_args, m4_map_args_pair): ...to these names, and document.
+ (m4_version_unletter): Use the interface.
+ * lib/m4sugar/foreach.m4 (m4_map_args, m4_map_args_pair)
+ (_m4_map_args_, _m4_map_args_pair_, _m4_map_args_pair_end):
+ Perform same renames.
+ * lib/m4sugar/m4sh.m4 (AS_CASE, AS_IF): Adjust callers.
+ * tests/m4sugar.at (m4@&t@_map_args): New test.
+ (recursion): Adjust caller.
+ * tests/m4sh.at (AS@&t@_IF and AS@&t@_CASE): Likewise.
+ * doc/autoconf.texi (Looping constructs) <m4_map_args>: Document
+ this interface.
+ * NEWS: Mention the new macros.
+
+2008-10-17 Eric Blake <ebb9@byu.net>
+
+ Reduce vertical whitespace in configure.
+ * lib/autoconf/general.m4 (AC_INIT): Silence newline output during
+ m4 side effect initializations.
+ * lib/m4sugar/m4sh.m4 (AS_PREPARE): Likewise.
+
+2008-10-17 Eric Blake <ebb9@byu.net>
+
+ Document AS_VAR interfaces.
+ * doc/autoconf.texi (Programming in M4sh): M4sh is now prime-time.
+ (Polymorphic Variables): New node.
+ * NEWS: Update accordingly.
+
+ Test AS_VAR interfaces.
+ * tests/m4sh.at (AS@&t@_VAR): New test.
+ * lib/m4sugar/m4sh.m4 (AS_VAR_PUSHDEF): Force expansion of
+ _AS_TR_SH_PREPARE at top level, rather than argument collection.
+ (AS_TR_SH): Support command substitution.
+
+ Add AS_VAR_COPY.
+ * lib/m4sugar/m4sh.m4 (AS_VAR_COPY): New macro.
+ (AS_VAR_IF): Use it, instead of the broken AS_VAR_GET.
+ * lib/autoconf/general.m4 (AC_CACHE_CHECK): Likewise.
+ * lib/autoconf/libs.m4 (AC_SEARCH_LIBS): Likewise.
+ * lib/autotest/general.m4 (_AT_FINISH): Likewise.
+
+ Sort AS_VAR_* interfaces.
+ * lib/m4sugar/m4sh.m4 (AS_VAR_GET): Reduce output to one line.
+ (AS_VAR_TEST_SET, AS_VAR_SET, AS_VAR_SET_IF, AS_VAR_POPDEF): Sort,
+ no code changes.
+
+2008-10-16 Eric Blake <ebb9@byu.net>
+
+ Allow comments before functions emitted by m4sh.
+ * lib/m4sugar/m4sh.m4 (AS_REQUIRE_SHELL_FN): Add comment
+ argument. Supply closing comment, to ease readability.
+ (_AS_MKDIR_P_PREPARE): Adjust caller.
+ (_AS_UNSET_PREPARE): Add comment.
+
+ Add AS_FUNCTION_DESCRIBE.
+ * lib/m4sugar/m4sh.m4 (AS_FUNCTION_DESCRIBE): New macro.
+ * lib/autotest/general.m4 (AT_INIT): Use it.
+
+2008-10-16 Eric Blake <ebb9@byu.net>
+
+ Speed up m4_qlen with caching.
+ * lib/m4sugar/m4sugar.m4 (_m4_qlen): Renamed from old m4_qlen.
+ (m4_qlen): Cache results for speed.
+
+2008-10-16 Paolo Bonzini <bonzini@gnu.org>
+
+ Add a testcase using more then one language.
+ * tests/compile.at (Multiple languages): New test.
+
+2008-10-16 Paolo Bonzini <bonzini@gnu.org>
+
+ Fix Libtool's config.lt test.
+ * lib/m4sugar/m4sh.m4 (_AS_PREPARE): Disable AS_REQUIRE while
+ expanding it.
+
+2008-10-15 Eric Blake <ebb9@byu.net>
+
+ Break circular require chain in _AS_LINENO_PREPARE.
+ * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Ensure that logging is
+ disabled when reporting LINENO failure, since logging requires
+ LINENO.
+ * doc/autoconf.texi (Initialization Macros): Recommend m4_pushdef,
+ not m4_rename, since the latter is undocumented.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Avoid
+ m4_rename, as it does not yet handle pushdef stacks.
+ Reported by Ralf Wildenhues.
+
+2008-10-15 Eric Blake <ebb9@byu.net>
+
+ Cleanups to previous patches.
+ * doc/autoconf.texi (Portable Shell): Minor edits.
+ (Limitations of Builtins): Touch up wording.
+ * lib/m4sugar/m4sh.m4 (AS_LINENO_PUSH): Nuke trailing whitespace.
+ (_AS_SHELL_SANITIZE): Wrap comments less than 80 columns.
+
+2008-10-15 Paolo Bonzini <bonzini@gnu.org>
+
+ Updates to shell portability documentation.
+ * doc/autoconf.texi: Updates all references to "Portable Shell" and
+ "Limitations of Builtins" to use three-argument commands.
+ (Programming in M4sh): Document AS_ECHO, AS_ECHO_N, AS_UNSET.
+ (Portable Shell): Move here discussion about "Where is the POSIX
+ shell?" Mention that M4sh provides a SVR2 shell and takes care
+ of unsetting variables if necessary. Talk about M4sh and not only
+ Autoconf-generated scripts.
+ (Special Shell Variables): Talk about M4sh and not only
+ Autoconf-generated scripts. Don't talk about things that Autoconf
+ does not do. Mention problems of $LINENO with shell functions.
+ (Limitations of Builtins). Mention AS_ECHO and AS_ECHO_N. Move
+ discussion of eval bugs before discussion on proper use of eval.
+ Mention AS_IF. Reword why not to use "shift N". Mention "foo=;
+ unset foo" trick. Include M4sh code that unsets MAIL for Bash 2.01.
+ * NEWS: Update list of documented M4sh macros.
+
+2008-10-15 Paolo Bonzini <bonzini@gnu.org>
+
+ Assume a (possibly buggy) `unset' is present after a
+ `better shell' was found.
+ * lib/autoconf/general.m4 (_AC_CACHE_DUMP): Use AS_UNSET.
+ * lib/autoconf/programs.m4 (AC_PROG_SED): Use AS_UNSET.
+ * lib/m4sugar/m4sh.m4 (_AS_UNSET_PREPARE): Provide $as_unset as an
+ alias for AS_UNSET, for backwards compatibility.
+ (_AS_DETECT_BETTER_SHELL): Set BASH_ENV and ENV to /dev/null in case
+ the shell does not support unset.
+ (_AS_SHELL_SANITIZE): Work around Bash 2.01 bugs. Unset BASH_ENV.
+ (AS_INIT, _AS_PREPARE, AS_PREPARE): Call it.
+ (AS_UNSET): Assume it is there but it might fail if the variable is
+ not set. Use it throughout instead of $as_unset.
+
+2008-10-15 Paolo Bonzini <bonzini@gnu.org>
+
+ Turn AS_SHELL_SANITIZE into a for-Libtool-only wrapper.
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_REQUIRED, _AS_DETECT_SUGGESTED): Remove
+ m4_require of _AS_DETECT_BETTER_SHELL.
+ (_AS_CLEANUP): Add it here.
+ (_AS_DETECT_BETTER_SHELL): Just expand the test instead of appending it
+ to _AS_CLEANUP.
+ (_AS_SHELL_SANITIZE): New name of the old AS_SHELL_SANITIZE macro.
+ (AS_SHELL_SANITIZE): New macro hacking around Libtool misuse.
+ (AS_PREPARE): Use _AS_SHELL_SANITIZE.
+ (AS_INIT): Add m4_provide of itself.
+
+2008-10-15 Paolo Bonzini <bonzini@gnu.org>
+
+ Use "test x$foo = xyes" to avoid upsetting Libtool's sh.test.
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL, _AS_SHELL_FN_WORK): Use
+ "test x$foo = xyes".
+
+2008-10-15 Paolo Bonzini <bonzini@gnu.org>
+
+ Trim down the size of the better-shell test.
+ * lib/m4sugar/m4sh.at (_AT_DETECT_BETTER_SHELL): Store the common
+ snippets into shell variables.
+ (_AS_RUN): Rewrite.
+
+2008-10-15 Paolo Bonzini <bonzini@gnu.org>
+
+ Support a stack of LINENO values for AS_MESSAGE.
+ * lib/m4sugar/m4sh.m4 (_AS_ECHO_LOG): If defined, use $as_lineno as
+ the line number emitted to the log file.
+ (AS_LINENO_PUSH, AS_LINENO_POP): New.
+ * tests/m4sh.at (LINENO Stack): New test.
+
+2008-10-14 Eric Blake <ebb9@byu.net>
+
+ Correct previous patch.
+ * doc/autoconf.texi (Shell Functions): Bash obeys Posix, after
+ all.
+
+ Document shell function environment pitfall.
+ * doc/autoconf.texi (Shell Functions): Document bugs in bash,
+ Solaris /bin/sh.
+
+2008-10-14 Paolo Bonzini <bonzini@gnu.org>
+
+ Use m4_require to implement AS_REQUIRE.
+ * lib/m4sugar/m4sugar.m4 (_m4_require_call): Accept a third argument.
+ (m4_require): Pass it.
+ (m4_divert_require): New.
+ * lib/m4sugar/m4sh.m4 (AS_REQUIRE): Rewrite using m4_divert_require.
+ Remove comment about differences with m4_require.
+ * tests/m4sh.at (AS_REQUIRE_SHELL_FN and m4_require): Update to test
+ the expected behavior.
+ (Nested AS_REQUIRE_SHELL_FN): New test.
+
+2008-10-13 Paolo Bonzini <bonzini@gnu.org>
+
+ Test AS_LINENO_PREPARE.
+ * tests/m4sh.at: Use documented AS_LINENO_PREPARE.
+
+2008-10-13 Paolo Bonzini <bonzini@gnu.org>
+
+ Test AS_ME_PREPARE.
+ * tests/m4sh.at (as_me): New test.
+
+2008-10-13 Paolo Bonzini <bonzini@gnu.org>
+
+ Add and document AS_INIT_GENERATED.
+ * lib/m4sugar/m4sh.m4 (AS_INIT_GENERATED): New.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Use it.
+ * doc/autoconf.texi (Initialization macros): Document it.
+
+2008-10-13 Eric Blake <ebb9@byu.net>
+
+ Use consistent shell function style.
+ * lib/m4sugar/m4sh.m4 (_AS_PREPARE, AS_REQUIRE_SHELL_FN)
+ (_AS_SHELL_FN_WORK): Imitate GNU Coding Standards for C
+ functions.
+
+2008-10-13 Paolo Bonzini <bonzini@gnu.org>
+
+ * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Place names of
+ contributors under m4 rather than shell comments.
+
+2008-10-10 Paolo Bonzini <bonzini@gnu.org>
+
+ * lib/m4sugar/m4sh.m4 (AS_ME_PREPARE, AS_LINENO_PREPARE): New.
+ * doc/autoconf.texi (Initialization macros): Document them.
+ (Portable Shell): Refer to AS_LINENO_PREPARE.
+ * NEWS: Mention them.
+
+ * bin/autoconf.as: Invoke AS_ME_PREPARE.
+ * lib/autotest/general.m4: Likewise.
+
+2008-10-10 Paolo Bonzini <bonzini@gnu.org>
+
+ * doc/autoconf.texi (Programming in M4sh): Make its own chapter.
+
+2008-10-10 Eric Blake <ebb9@byu.net>
+
+ Fix _AS_MKDIR_P usage.
+ * lib/m4sugar/m4sh.m4 (_AS_MKDIR_P): Correct documentation to
+ match implementation.
+ (_AS_PREPARE, _AS_MKDIR_P_PREPARE): Adjust callers.
+ * doc/autoconf.texi (Programming in M4sh) <AS_MKDIR_P>: Tweak
+ wording to better match behavior.
+
+2008-10-10 Paolo Bonzini <bonzini@gnu.org>
+
+ * doc/autoconf.texi: Be less wary of shell functions.
+ * NEWS: Document the increased use of shell functions.
+
+2008-10-10 Paolo Bonzini <bonzini@gnu.org>
+
+ * m4sugar/m4sh.m4 (_AS_MKDIR_P): New, from AS_MKDIR_P. Adjust
+ meaning of as_mkdir_p to be `false' or a full `mkdir -p' command.
+ (AS_MKDIR_P): Just dispatch to as_func_mkdir_p.
+ (_AS_PREPARE): Define shell functions.
+ (_AS_MKDIR_P_PREPARE): Set as_mkdir_p according to the above change.
+ Define shell functions.
+
+2008-10-09 Eric Blake <ebb9@byu.net>
+
+ Only prepare $as_me if it will be used.
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Avoid unconditional
+ preparation.
+ (_AS_ECHO_LOG): Depend on $LINENO preparation.
+ (AS_MESSAGE): Depend on $as_me preparation.
+ (AS_TMPDIR): Use AS_ERROR, rather than a hand-rolled copy.
+
+2008-10-09 Paolo Bonzini <bonzini@gnu.org>
+
+ * m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Delay setting as_me
+ until the M4SH-INIT diversion using _AS_ME_PREPARE.
+ (_AS_PREPARE): Invoke _AS_EXPR_PREPARE before _AS_BASENAME_PREPARE
+ and _AS_DIRNAME_PREPARE, and _AS_BASENAME_PREPARE and _AS_ME_PREPARE
+ before _AS_LINENO_PREPARE.
+ (AS_PREPARE): Include all the AS_REQUIREs manually.
+ (_AS_ME_PREPARE): New.
+ (_AS_LINENO_PREPARE): Use m4_defun.
+
+2008-10-09 Paolo Bonzini <bonzini@gnu.org>
+
+ * m4sugar/m4sh.m4 (_AS_BASENAME_EXPR, _AS_DIRNAME_EXPR): Do not
+ require _AS_EXPR_PREPARE.
+ (_AS_BASENAME_PREPARE, _AS_DIRNAME_PREPARE): Do it here.
+ (_AS_PREPARE): Add _AS_BASENAME_PREPARE.
+
+2008-10-08 Eric Blake <ebb9@byu.net>
+
+ Resync from gnulib.
+ * cfg.mk (cvs_executable_files, cvs_files): Rewrite...
+ (fetch): ...into new target.
+ (executable-update): Delete, now that it is unused.
+ * maint.mk (update, local_updates, cvs_files, gnulib_repo)
+ (wget-update, cvs-update): Likewise.
+ * HACKING (Update the foreign files): Document new procedure.
+ * GNUmakefile: Resync from upstream, via new 'make fetch'.
+ * build-aux/config.guess: Likewise.
+
+2008-10-08 Paolo Bonzini <bonzini@gnu.org>
+
+ * lib/m4sugar/m4sh.m4 (_AS_SHELL_FN_SPY): Remove.
+ (AS_INIT): Do not call it.
+
+2008-10-08 Paolo Bonzini <bonzini@gnu.org>
+
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Expand
+ _AS_UNSET_PREPARE in M4SH-SANITIZE.
+
+2008-10-08 Eric Blake <ebb9@byu.net>
+
+ Avoid repeating required shell tests in suggested set.
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_REQUIRED, _AS_DETECT_SUGGESTED):
+ Use m4_set, rather than m4_expand_once/m4_append.
+ (_AS_DETECT_SUGGESTED): Adjust to new storage layout, and filter
+ required tests out of suggested tests.
+ Reported by Paolo Bonzini.
+
+2008-10-08 Paolo Bonzini <bonzini@gnu.org>
+
+ Add m4sh keyword to all m4sh.at tests.
+ * tests/m4sh.at: Add m4sh keyword to all tests. Fix comment
+ pastos.
+
+2008-10-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Document AS_VERSION_COMPARE.
+ * doc/autoconf.texi (Programming in M4sh): Document
+ AS_VERSION_COMPARE.
+ * NEWS: Update.
+
+ Do not write to testsuite log fd before initialization.
+ * lib/autotest/general.m4 (AS_MESSAGE_LOG_FD, AT_JOB_FIFO_FD):
+ Define fds only when initializing the log fd so early error
+ messages do not try to write to it.
+ * tests/autotest.at (Startup error messages): New test.
+ * NEWS: Document this 2.63 regression.
+
+2008-10-07 Eric Blake <ebb9@byu.net>
+
+ Ensure _AS_CLEANUP is defined.
+ * lib/m4sugar/m4sh.m4 (_AS_CLEANUP): Give initial definition.
+ * tests/m4sh.at (AS@&t@_INIT cleanup): Expose the need for this.
+
+ Improve m4sh maintainability.
+ * lib/m4sugar/m4sh.m4: Sort macros for sanitizing the shell; no
+ code change.
+
+ Fix m4 quoting in previous patch.
+ * lib/m4sugar/m4sh.m4 (AS_REQUIRE_SHELL_FN): Determine diversion
+ name prior to invoking AS_REQUIRE.
+ Reported by Ralf Wildenhues.
+
+2008-09-18 Paolo Bonzini <bonzini@gnu.org>
+ and Eric Blake <ebb9@byu.net>
+
+ Add a separate diversion for shell functions.
+ * lib/m4sugar/m4sh.m4 (M4SH-INIT-FN): New diversion.
+ (AS_REQUIRE): Accept diversion parameter.
+ (AS_REQUIRE_SHELL_FN): Use it.
+
+2008-10-06 Eric Blake <ebb9@byu.net>
+
+ Add m4_default_quoted.
+ * lib/m4sugar/m4sugar.m4 (m4_default_quoted): New macro.
+ (m4_for, m4_expand_once, m4_text_wrap, m4_text_box): Use it.
+ * doc/autoconf.texi (Conditional constructs): Document it.
+ * NEWS: Likewise.
+
+ Fix build with case-insensitive make, again.
+ * Makefile.am (pkgdata_DATA): Protect by MAKE_CASE_SENSITIVE.
+ Reported via Keith Marshall, originally by newthinker in
+ <http://thread.gmane.org/gmane.comp.gnu.mingw.user/27725>.
+
+2008-10-06 Bruno Haible <bruno@clisp.org>
+
+ Warn about /usr/ucb on Solaris.
+ * doc/install.texi (Particular Systems): Recommend putting
+ /usr/ucb late in PATH, if at all.
+
+2008-10-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix more testsuite hang corner cases.
+ * lib/autotest/general.m4: Use the serial code path if no test
+ is to be run.
+ * tests/autotest.at (parallel test execution): Test -j and -jN
+ with `-k notmatched'.
+
+2008-10-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix hang with `testsuite -k notmatched'.
+ * lib/autotest/general.m4: Do not reset $at_jobs if it is equal
+ to one. Fixes hang with `-k notmatched'.
+
+2008-10-02 Eric Blake <ebb9@byu.net>
+
+ Document more binary file portability traps.
+ * doc/autoconf.texi (Limitations of Usual Tools) <sed>: Remind
+ reader that NUL and sed don't always mix.
+ <tr>: Mention Solaris /usr/ucb/tr bug with \0.
+
+2008-10-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Implement parallel Autotest test execution: testsuite --jobs.
+ * lib/autotest/general.m4 (AT_JOB_FIFO_FD): New macro.
+ (AT_INIT): <at_jobs>: New variable.
+ Accept -j, -jN, --jobs[=N], document them in --help output.
+ Implement parallel driver loop using a FIFO, enabled with --jobs
+ and if mkfifo works; otherwise, fall back to sequential loop.
+ (AT_SETUP): Store, do not output summary progress line if
+ parallel.
+ * tests/autotest.at (parallel test execution, parallel truth)
+ (parallel fallacy, parallel skip): New tests.
+ * doc/autoconf.texi (testsuite Invocation): Document -j, --jobs,
+ the mkfifo requirement, and that --errexit may cause concurrent
+ jobs to finish.
+ * NEWS: Update.
+
+2008-09-20 Eric Blake <ebb9@byu.net>
+
+ Fix sample isinf definition.
+ * doc/autoconf.texi (Function Portability) <isinf>: Filter out NaN
+ first.
+ * THANKS: Update.
+ Reported by David Cournapeau.
+
+2008-09-16 Eric Blake <ebb9@byu.net>
+
+ Fix Erlang regression, introduced 2006-11-17.
+ * lib/autoconf/erlang.m4 (AC_LANG(Erlang)): Avoid M4 comment
+ caused by underquoting.
+ * NEWS: Mention this fix.
+ * THANKS: Update.
+ Reported by BJ Terry.
+
+2008-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/general.m4 (AC_CONFIG_AUX_DIRS): Improve a bit.
+
+ Mention Solaris sh ':' redirection bug.
+ * doc/autoconf.texi (File Descriptors): Redirecting ':'
+ in a loop causes bogus optimization with Solaris sh.
+
+2008-09-10 Eric Blake <ebb9@byu.net>
+
+ Avoid testsuite bug when autom4te cache is disabled by user.
+ * tests/tools.at (autoconf: forbidden tokens, basic): Enable
+ cache, even if user normally disabled it.
+ Reported by Bruno Haible.
+
+ Avoid testsuite bug in presence of verbose config.site.
+ * tests/base.at (Input/Output): Nullify config.site during test.
+ Reported by Bob Friesenhahn.
+
+2008-09-09 Eric Blake <ebb9@byu.net>
+
+ Release Version 2.63.
+ * NEWS: Mention the release.
+
+ Formatting tweaks to the manual.
+ * doc/autoconf.texi (Introduction, Systemology)
+ (File System Conventions, Portable C and C++)
+ (Floating Point Portability): Allow URLs to split as needed.
+ (Indices): Add entries, to work around texinfo bug on indices that
+ start too close to a page break.
+ (Particular Functions): Mention ftello.
+ (Introduction, Language Choice): Use @enddots at sentence end.
+
+ Resync from gnulib.
+ * cfg.mk (cvs_executable_files, cvs_files): Update list of files,
+ although for now, they are still manually sync'd.
+ * build-aux/gnupload: Update.
+ * build-aux/config.sub: Likewise.
+ * GNUmakefile: Likewise.
+
+2008-09-06 Eric Blake <ebb9@byu.net>
+
+ Mention that Automake already supports VPATH.
+ * doc/autoconf.texi (Build Directories): Details in this section
+ only apply to users avoiding automake.
+ * THANKS: Update.
+ Reported by Matej Tyc.
+
+ Relax tone when warning about cross-compiler names.
+ * lib/autoconf/programs.m4 (_AC_TOOL_WARN): Support cross-compiles
+ with poorly named tools; the issue has been reported too many
+ times in the last four years to pull support.
+ * doc/autoconf.texi (Specifying Names, Generic Programs): Update
+ documentation accordingly.
+ * THANKS: Update.
+ Reported by Josef Tran and others, wording suggested by Ralf
+ Wildenhues.
+
+2008-09-01 Eric Blake <ebb9@byu.net>
+
+ Improve AC_C_BIGENDIAN.
+ * doc/autoconf.texi (C Compiler) <AC_C_BIGENDIAN>: Mention that
+ universal builds require a config header.
+ * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Enhance comments. Check
+ AH_HEADER at the last possible moment, so that users can use
+ AC_CONFIG_HEADER after this macro.
+ Reported by Stepan Kasal.
+
+ Fix manual date information.
+ * doc/autoconf.tex: UPDATED refers to the day the manual was
+ built, not the release date of Autoconf.
+ Based on a bison patch by Akim Demaille.
+
+2008-08-27 Eric Blake <ebb9@byu.net>
+
+ Fix off-by-one bug in _m4_shiftn.
+ * lib/m4sugar/foreach.m4 (_m4_shiftn): Handle case when shifting
+ all arguments.
+ * tests/m4sugar.at (M4 loops): Test it.
+ Reported by Akim Demaille.
+
+2008-08-26 Eric Blake <ebb9@byu.net>
+
+ Improve INSTALL formatting.
+ * doc/install.texi [!autoconf]: Ensure first paragraphs are
+ indented like all others in a plain text rendering.
+ * Makefile.am ($(srcdir)/INSTALL): Ensure plaintext formatting.
+ Reported by Bruno Haible.
+
+2008-08-26 Stepan Kasal <skasal@redhat.com>
+
+ Check for case sensitive make.
+ * m4/make-check.m4 (AC_PROG_MAKE_CASE_SENSITIVE): New macro,...
+ * configure.ac: ... called here.
+ * Makefile.am ($(abs_srcdir)/INSTALL, INSTALL): Return to...
+ ($(srcdir)/INSTALL): ...this, but enclose the rule in
+ "if MAKE_CASE_SENSITIVE".
+
+2008-08-26 Eric Blake <ebb9@byu.net>
+
+ Update invocation documentation.
+ * doc/autoconf.texi (autoscan Invocation): Mention --debug.
+ (autoreconf Invocation): Mention -v.
+ (autom4te Invocation): Tie --freeze to -F, not -f.
+ (autoupdate Invocation): Mention --prepend-include.
+ * doc/install.texi (configure Invocation): Mention --help=short,
+ --help=recursive, -n/--no-create, --prefix. Avoid TABs.
+ * bin/autoscan.in ($help): Omit space before `...'.
+ * bin/ifnames.in ($help): Likewise.
+ * bin/autoconf.as (Usage): Likewise.
+ * bin/autoreconf.in ($help): Likewise.
+ * bin/autoheader.in ($help): Likewise.
+ * bin/autom4te.in ($help): Likewise.
+ * bin/autoupdate.in ($help): Likewise.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Use
+ `[OPTION]...', rather than `[OPTIONS]'. Mention --silent. Indent
+ --file correctly.
+
+ Don't let frozen __m4_version__ break downgrade to m4 1.4.x.
+ * bin/autom4te.in: Adjust comments, now that we rely on 1.4.5+.
+ (files_to_options): Avoid inheriting __m4_version__ from frozen
+ file if current M4 does not support it.
+
+2008-08-25 Eric Blake <ebb9@byu.net>
+
+ Adjust to recent m4 1.6 change to support m4_debugmode(d).
+ * lib/m4sugar/m4sugar.m4 (m4_defn, m4_popdef, m4_undefine): Move
+ freeze-time decision of using faster 1.6 implementation...
+ (m4_init): ...to a runtime decision, and add use of new debugmode
+ flag.
+
+2008-08-22 Peter O'Gorman <pogma@thewrittenword.com>
+
+ Limit AC_C_BIGENDIAN univeral checks to Mac OS X.
+ * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Limit the check to
+ __APPLE_CC__ with possible -arch flags.
+ * NEWS: Document it.
+
+2008-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * NEWS: Fix typo.
+
+2008-08-22 Eric Blake <ebb9@byu.net>
+
+ * TODO: Add an item for additional m4sugar looping constructs.
+ Suggested by Ralf Wildenhues.
+
+ Add reminder to keep dual implementations in sync.
+ * lib/m4sugar/m4sugar.m4: Add comments.
+ * lib/m4sugar/foreach.m4: Likewise.
+ Suggested by Ralf Wildenhues.
+
+2008-08-22 Peter Eisentraut <peter_e@gmx.net> (tiny change)
+
+ Format warning and error messages to match GCS.
+ * lib/autoconf/general.m4 (_AC_INIT_DIRCHECK)
+ (_AC_INIT_PARSE_ARGS, _AC_CACHE_DUMP): Start warning and error
+ messages with a lowercase letter, end them without punctuation.
+ * lib/autoconf/lang.m4 (AC_NO_EXECUTABLES): Likewise.
+ * lib/autoconf/libs.m4 (AC_PATH_X): Likewise.
+ * lib/autoconf/status.m4 (AC_OUTPUT, _AC_OUTPUT_MAIN_LOOP):
+ Likewise.
+ * tests/fortran.at (GNU Fortran): Likewise.
+ * tests/torture.at (Deep Package): Likewise.
+
+2008-08-21 Eric Blake <ebb9@byu.net>
+
+ Avoid extra side effects in m4sugar list expansion.
+ * lib/m4sugar/m4sugar.m4 (m4_mapall_sep, m4_list_cmp): Wrap
+ around...
+ (_m4_mapall_sep, _m4_list_cmp_raw): ...new helpers, to avoid
+ duplicate side effects.
+ (m4_version_compare): Adjust caller.
+ * lib/m4sugar/foreach.m4 (m4_list_cmp): Rename...
+ (_m4_list_cmp_raw): ...to match m4sugar.
+ * doc/autoconf.texi (Looping constructs): Document the behavior of
+ side effects.
+ * tests/m4sugar.at (M4 loops, m4@&t@_map, m4@&t@_version_compare):
+ Ensure only one side effect.
+ (recursion): Fix test typo.
+ Reported by Ralf Wildenhues.
+
+2008-08-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * TODO: Add item for compiler default flags.
+ Suggested by Bruno Haible.
+
+ * tests/m4sh.at (AS_IF and AS_CASE): Set the expansion limit
+ back to 1000.
+
+2008-08-21 Eric Blake <ebb9@byu.net>
+
+ Formatting improvements.
+ * doc/autoconf.texi: Use @file and @command, rather than @code,
+ where appropriate.
+
+ Document another make bug.
+ * doc/autoconf.texi (The Make Macro SHELL): Mention bug in BSD
+ make, GNU make <= 3.80.
+
+ Tweak wording about SHELL in Makefile.
+ * doc/autoconf.texi (The Make Macro SHELL): Stronger wording on
+ the importance of proper SHELL settings.
+ Reported by Bruno Haible, in
+ http://lists.gnu.org/archive/html/bug-libtool/2008-04/msg00029.html.
+
+2008-08-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Avoid timestamp races for updated input.
+ * tests/m4sh.at (AS_IF and AS_CASE): Use `autom4te --force' for
+ second script.
+ * tests/tools.at (autotools and whitespace in file names): Add
+ --force for repeated invocations.
+
+2008-08-20 Bruno Haible <bruno@clisp.org>
+
+ Add section to INSTALL about particular systems.
+ * doc/install.texi (Particular systems): New node.
+ * doc/autoconf.texi: Adjust menus.
+
+2008-08-19 Bruno Haible <bruno@clisp.org>
+ and Peter O'Gorman <peter@pogma.com>
+
+ Mention universal binaries in INSTALL.
+ * doc/install.texi (Compiling For Multiple Architectures): Explain
+ how to create universal binaries on MacOS X.
+
+2008-08-19 Jim Meyering <jim@meyering.net>
+ Eric Blake <ebb9@byu.net>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Avoid shell parse errors after interrupt due to empty ``.
+ * doc/autoconf.texi (Shell Substitutions): Document the issue.
+ * lib/m4sugar/m4sh.m4 (AS_VAR_IF): New function.
+ * lib/autoconf/functions.m4 (AC_CHECK_FUNC): Use it in place of
+ "test AS_VAR_GET([...]) = yes"
+ * lib/autoconf/general.m4 (AC_CHECK_FILE, AC_CHECK_DECL): Likewise.
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL): Likewise.
+ (_AC_CHECK_HEADER_NEW, _AC_CHECK_HEADER_OLD): Likewise.
+ (_AC_CHECK_HEADER_DIRENT): Likewise.
+ * lib/autoconf/libs.m4 (AC_CHECK_LIB): Likewise.
+ * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW, AC_CHECK_MEMBER): Likewise.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Use
+ temporary variable to work around the issue.
+ * tests/foreign.at (Libtool): Quote result of command
+ substitution.
+
+2008-08-18 Eric Blake <ebb9@byu.net>
+
+ Test m4_transform without tickling shell bugs.
+ * tests/m4sh.at (AS@&t@_IF and AS@&t@_CASE): Relax test to
+ something more manageable.
+ * tests/m4sugar.at (recursion): Move stress test of
+ m4_transform_pair here.
+ Reported by Ralf Wildenhues.
+
+ Let 'git diff' give better context for doc updates.
+ * .gitattributes (*.texi*): Add new entry.
+ * README-hacking: Mention how to use it.
+ Inspired by a coreutils patch by Jim Meyering.
+
+2008-08-15 Eric Blake <ebb9@byu.net>
+
+ Fix m4_map regression from 2007-10-16.
+ * lib/m4sugar/m4sugar.m4 (_m4_apply): New macro.
+ (m4_map): Ignore empty sublists. For a list consisting of only an
+ empty sublist, this restores 2.61 behavior of being a no-op.
+ (m4_map_sep): Likewise, and expand separator.
+ (m4_mapall, m4_mapall_sep): New macros, to regain 2.62 behavior.
+ (_m4_map): Rewrite, to be common base for all four variants.
+ * lib/m4sugar/foreach.m4 (_m4_map): Adjust to new prototype.
+ * tests/m4sugar.at (m4@&t@_map): Add tests.
+ * doc/autoconf.texi (Looping constructs) <m4_map>: Document new
+ macros, and mention ramifications of expanded separator.
+ * NEWS: Mention the change.
+
+2008-08-14 Eric Blake <ebb9@byu.net>
+
+ Implement m4_transform_pair, to speed up AS_IF.
+ * lib/m4sugar/m4sugar.m4 (m4_transform, m4_transform_pair): New
+ macros, undocumented for now.
+ * lib/m4sugar/foreach.m4 (m4_transform, m4_transform_pair): Also
+ the m4 1.4.x counterparts.
+ * lib/m4sugar/m4sh.m4 (AS_IF, AS_CASE): Use it.
+ * tests/m4sh.at (AS@&t@_IF and AS@&t@_CASE): Test it.
+
+2008-08-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/programs.m4 (AC_PATH_TARGET_TOOL)
+ (AC_CHECK_TARGET_TOOL, AC_CHECK_TARGET_TOOLS): Require, do not
+ warn about previous AC_CANONICAL_TARGET.
+ (AC_CHECK_TARGET_TOOL): Add missing `$' making the macro
+ unusable in the non-cross-compiling case.
+ * NEWS, THANKS: Update.
+ Report by Dave Erickson.
+
+2008-08-12 Eric Blake <ebb9@byu.net>
+
+ Optimize m4_bmatch.
+ * lib/m4sugar/foreach.m4 (m4_bmatch): Provide linear
+ implementation for m4 1.4.x.
+ * tests/m4sugar.at (m4@&t@_bmatch): New test.
+ (recursion): Test the linear nature.
+ * NEWS: Document the fix.
+
+ Fix m4_cond corner case.
+ * lib/m4sugar/foreach.m4 (_m4_cond): Ensure alternate
+ implementation allows concatenation with subsequent text.
+ * tests/m4sugar.at (m4@&t@_cond): Enhance test.
+
+ Add test for m4_cond.
+ * tests/m4sugar.at (m4@&t@_cond): New test.
+ Reported by Ralf Wildenhues.
+
+2008-08-06 Eric Blake <ebb9@byu.net>
+
+ Fix autoheader 2.62 regression on AC_DEFINE([__EXTENSIONS__]).
+ * lib/autoconf/specific.m4 (AC_USE_SYSTEM_EXTENSIONS): Use a
+ unique key for the AH_VERBATIM.
+ * tests/c.at (AC_USE_SYSTEM_EXTENSIONS): New test.
+ * NEWS: Mention the fix.
+ Reported by Andreas Schwab, analyzed by Stepan Kasal.
+
+ Add linear m4_cond for m4 1.4.x.
+ * lib/m4sugar/m4sugar.m4 (m4_cond): Split into...
+ (_m4_cond): ...this, for fewer macros per iteration.
+ * lib/m4sugar/foreach.m4 (_m4_cond): New implementation.
+ * tests/m4sugar.at (recursion): Test it.
+ * NEWS: Document the linear guarantee.
+
+ Speed up diversion handling.
+ * lib/m4sugar/m4sugar.m4 (m4_divert, m4_divert_push)
+ (m4_divert_pop, m4_divert_text): Avoid dnl for fewer macro
+ expansions.
+
+ AC_C_CHAR_UNSIGNED is not strictly necessary.
+ * doc/autoconf.texi (C Compiler) <AC_C_CHAR_UNSIGNED>: Mention a
+ portable alternative to this macro.
+ * THANKS: Update.
+ Reported by Hallvard B Furuseth.
+
+ Update some files from upstream.
+ * GNUmakefile: Update.
+ * build-aux/announce-gen: Likewise.
+ * build-aux/config.guess: Likewise.
+ * build-aux/config.sub: Likewise.
+ * build-aux/git-version-gen: Likewise.
+ * build-aux/texinfo.tex: Likewise.
+ * build-aux/vc-list-files: Likewise.
+ * doc/make-stds.texi: Likewise.
+ * doc/standards.texi: Likewise.
+
+2008-08-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix AC_CONFIG_FILES([$var]) 2.62 regression.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Flatten
+ whitespace in $ac_config_files and $ac_config_headers.
+ * tests/torture.at (Parameterized AC_CONFIG_FILES): New test.
+ Report by Andreas Schwab and Per Øyvind Karlsen.
+ * THANKS: Update.
+
+2008-07-30 Eric Blake <ebb9@byu.net>
+
+ Fix bugs in previous version of m4_bpatsubsts.
+ * lib/m4sugar/foreach.m4 (_m4_bpatsubsts): Don't expand $1, and
+ allow concatenation with subsequent text.
+ * tests/m4sugar.at (m4@&t@_bpatsubsts): Enhance test.
+
+2008-07-29 Eric Blake <ebb9@byu.net>
+
+ Add linear m4_bpatsubsts for m4 1.4.x.
+ * lib/m4sugar/m4sugar.m4 (m4_bpatsubsts): Match documentation
+ about anchors, even for only one substitution.
+ * lib/m4sugar/foreach.m4 (_m4_bpatsubsts): New implementation.
+ * doc/autoconf.texi (Conditional constructs) <m4_bpatsubsts>:
+ Clarify behavior with regard to quoting.
+ * tests/m4sugar.at (recursion): Test scaling of m4_bpatsubsts.
+ (m4@&t@_bpatsubsts): New test.
+ * NEWS: Document the linear guarantee.
+
+ Tweak m4_do semantics.
+ * lib/m4sugar/m4sugar.m4 (m4_do): Don't concat final argument with
+ subsequent text.
+ * lib/m4sugar/foreach.m4 (m4_do): Don't concat intermediate
+ arguments, and avoid infinite loop.
+ * doc/autoconf.texi (Evaluation Macros) <m4_do>: Document the
+ behavior.
+ * tests/m4sugar.at (m4@&t@_do): New test.
+
+ Optimize m4_for.
+ * lib/m4sugar/m4sugar.m4 (m4_for): Use fewer macros.
+ (_m4_for): Take additional parameter, for fewer m4_indir calls.
+ * lib/m4sugar/foreach.m4 (_m4_foreach, _m4_shiftn, m4_do)
+ (m4_reverse, _m4_list_pad, _m4_list_cmp): Adjust all callers.
+ * doc/autoconf.texi (Looping constructs) <m4_for>: Document subtle
+ semantic change caused by the optimization.
+ * tests/m4sugar.at (M4 loops): Test the new semantics.
+
+ One more m4_list_cmp tweak.
+ * lib/m4sugar/m4sugar.m4 (_m4_list_cmp_1): Don't defer shift.
+ * lib/m4sugar/foreach.m4 (m4_list_cmp): Fix comment.
+ * tests/m4sugar.at (recursion): Test both directions of list
+ disparity.
+
+ Add m4_reverse, and improve m4_list_cmp.
+ * lib/m4sugar/m4sugar.m4 (m4_reverse): New macro.
+ (m4_list_cmp): Rewrite to give linear behavior with M4 1.6 on an
+ m4_reverse'd list.
+ * lib/m4sugar/foreach.m4 (m4_reverse): Add the M4 1.4.x
+ counterpart.
+ * tests/m4sugar.at (recursion): Test it.
+ * doc/autoconf.texi (Evaluation Macros) <m4_reverse>: Document
+ it.
+ (Text processing Macros) <m4_append>: Cross-reference to m4_set.
+ * NEWS: Mention new macro.
+
+2008-07-28 Eric Blake <ebb9@byu.net>
+
+ Avoid _m4_shiftn for m4 1.6 speedup.
+ * lib/m4sugar/m4sugar.m4 (m4_foreach, _m4_foreach, m4_map)
+ (_m4_map, m4_map_sep): Rewrite recursion to use one less m4_if.
+ * lib/m4sugar/foreach.m4 (_m4_map): Accomodate changed signature.
+
+ Implement O(n) unique element set creation.
+ * lib/m4sugar/m4sugar.m4 (m4_set_add, m4_set_add_all)
+ (m4_set_contains, m4_set_contents, m4_set_delete)
+ (m4_set_difference, m4_set_dump, m4_set_empty, m4_set_foreach)
+ (m4_set_intersection, m4_set_list, m4_set_listc, m4_set_remove)
+ (m4_set_size, m4_set_union): New macros.
+ * lib/m4sugar/foreach.m4 (m4_set_add_all): Add O(n) fallback for
+ m4 1.4.x.
+ * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS, AC_SUBST): Use
+ new m4_set API for the set most likely to be large.
+ * doc/autoconf.texi (Set manipulation Macros): New node.
+ * NEWS: Mention new macros.
+ * tests/m4sugar.at (m4@&t@_set): New test.
+
+2008-07-25 Eric Blake <ebb9@byu.net>
+
+ Avoid infinite aclocal loop.
+ * lib/m4sugar/m4sugar.m4 (m4_init): Bypass m4_include tracing, so
+ that aclocal doesn't insist on finding m4sugar/foreach.m4.
+
+ Provide O(n) replacement macros for M4 1.4.x.
+ * lib/m4sugar/foreach.m4: New file.
+ (m4_foreach, m4_case, _m4_shiftn, m4_do, m4_dquote_elt, _m4_map)
+ (m4_join, m4_joinall, m4_list_cmp, _m4_minmax): Replace m4sugar
+ macros based on $@ recursion [fast on M4 1.6, but quadratic on M4
+ 1.4.x] with versions based on m4_for/m4_foreach [slow on 1.6, but
+ linear on 1.4.x].
+ * lib/m4sugar/m4sugar.m4 (m4_init): Dynamically load new file if
+ older M4 is assumed.
+ (m4_map_sep): Optimize.
+ (m4_max, m4_min): Refactor, by adding...
+ (_m4_max, _m4_min, _m4_minmax): ...more efficient helpers.
+ (m4_defn, m4_popdef, m4_undefine): Use foreach recursion.
+ * lib/m4sugar/Makefile.am (dist_m4sugarlib_DATA): Distribute new
+ file.
+ * tests/m4sugar.at (M4 loops): Add a stress test that takes
+ forever if m4_foreach and friends are quadratic.
+ * NEWS: Mention this.
+
+2008-07-21 Eric Blake <ebb9@byu.net>
+
+ Ignore undefined macros, necessary with m4 1.6.
+ * bin/autoupdate.in (_au___undefine): New macro,...
+ (_au__undefine): ...wrapped by ifdef to silence m4 warnings.
+ Reported by Ralf Wildenhues.
+
+ Resync with gnulib.
+ * GNUmakefile: Grab from upstream, to fix issue where 'make
+ install' would allow installation of stale version string.
+
+2008-07-19 Eric Blake <ebb9@byu.net>
+
+ Support multiple arguments to m4_defn, m4_popdef, and m4_undefine.
+ * lib/m4sugar/m4sugar.m4 (m4_defn, m4_popdef, m4_undefine): Loop
+ through all variables, per POSIX and newer m4.
+ (_m4_text_wrap): Exploit the looping capabilities.
+ * tests/m4sugar.at (m4@&t@_defn): Test this.
+ * NEWS: Document it.
+ * doc/autoconf.texi (Redefined M4 Macros) <m4_defn, m4_popdef>
+ <m4_undefine>: Likewise.
+
+ Reduce overhead of m4_builtin([defn]).
+ * lib/m4sugar/m4sugar.m4 (_m4_defn, _m4_popdef, _m4_undefine): New
+ internal macros, which are slightly more efficient than
+ m4_builtin([defn]) and company.
+ (m4_defn, m4_popdef, m4_undefine, m4_warn, m4_ifset)
+ (_m4_dumpdefs_up, _m4_dumpdefs_down, _m4_wrap, m4_for)
+ (_m4_divert_n_stack, m4_divert_pop, m4_expansion_stack_push)
+ (m4_expansion_stack_dump, _m4_defun_pro, _m4_defun_epi)
+ (_m4_defun_epi_outer, _m4_require_call, m4_combine, m4_append)
+ (_m4_append_uniq, m4_append_uniq_w, _m4_text_wrap, m4_text_box)
+ (m4_version_prereq): Use them.
+
+ Use warnings from m4 when available.
+ * lib/m4sugar/m4sugar.m4 (m4_defn, m4_popdef, m4_undefine): Don't
+ define slower wrapper if m4 will warn on our behalf; key off of
+ __m4_version__, added alongside the new warnings in m4 1.6.
+ * tests/m4sugar.at (m4@&t@_defn): New test.
+
+2008-07-18 Eric Blake <ebb9@byu.net>
+
+ Add m4_joinall.
+ * lib/m4sugar/m4sugar.m4 (m4_joinall, _m4_joinall): New macros.
+ * tests/m4sugar.at (m4@&t@_join): Test them.
+ * doc/autoconf.texi (Text processing Macros) <m4_join>: Document
+ m4_joinall.
+ * NEWS: Likewise.
+
+2008-07-17 Stepan Kasal <skasal@redhat.com>
+ and Eric Blake <ebb9@byu.net>
+
+ Improve documentation of config.h.in template rules.
+ * doc/autoconf.texi (Header Templates): Mention rules on comments
+ and whitespace, and that the user cannot rely on #undef to survive
+ through config.status.
+
+2008-07-16 Eric Blake <ebb9@byu.net>
+
+ Revert m4_prepend; it is less efficient, and unused by bison.
+ * lib/m4sugar/m4sugar.m4 (m4_prepend, m4_prepend_uniq)
+ (m4_prepend_uniq_w): Delete addition from 2008-07-11.
+ (_m4_grow_uniq_1): Rename back...
+ (_m4_append_uniq): ...to this.
+ * NEWS: Revert NEWS blurb.
+ * doc/autoconf.texi (Text processing Macros) <m4_prepend>: Delete.
+ * tests/m4sugar.at (m4@&t@_prepend): Delete.
+
+2008-07-15 Eric Blake <ebb9@byu.net>
+
+ Avoid failure if version.m4 is omitted but m4_PACKAGE_* unused.
+ * lib/m4sugar/m4sugar.m4 (m4_version_compare): Provide alternate
+ definition for non-Autoconf clients of m4sugar.
+
+2008-07-14 Eric Blake <ebb9@byu.net>
+
+ Tighten bound of potential speed of m4_append.
+ * doc/autoconf.texi (Text processing Macros) <m4_append>
+ <m4_prepend>: If m4 is fixed, m4_append can be linear rather than
+ O(n log n).
+ * lib/m4sugar/m4sugar.m4 (m4_append, m4_append_uniq): Fix comments.
+ Analysis by Bruno Haible.
+
+2008-07-11 Eric Blake <ebb9@byu.net>
+
+ Inherit improvements from bison's fork of m4sugar.
+ * lib/m4sugar/m4sugar.m4 (m4_PACKAGE_VERSION): Ignore failure to
+ find version.texi, since bison does not provide it.
+ (m4_prepend): Add new macro, from bison.
+ (m4_prepend_uniq, m4_prepend_uniq_w): Add new macros, for
+ completeness.
+ (_m4_append_uniq): Rename...
+ (_m4_grow_uniq_1): ...to this to share implementation, and
+ optimize initial assignment.
+ (m4_append_uniq_w): Adjust caller.
+ * NEWS: Document new macros.
+ * doc/autoconf.texi (Text processing Macros) <m4_append>: Mention
+ speed consideration.
+ <m4_prepend>: Document the new prepend variants.
+ * tests/m4sugar.at (m4@&t@_prepend): New test.
+
+ Work around M4 1.6 warning on undefined macros.
+ * lib/m4sugar/m4sugar.m4 (changeword, symbols): Don't rename if
+ not already available as builtins.
+
+2008-07-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (@dvar): Remove trailing newline.
+ (@ovar): Likewise. Fix macro documentation.
+
+2008-07-02 Stepan Kasal <skasal@redhat.com>
+
+ Add quotes to the header of autoscan-generated source.
+ * bin/autoscan.in: Add quotes to AC_PREREQ and AC_INIT.
+
+2008-06-28 Andreas Schwab <schwab@suse.de>
+
+ * doc/autoconf.texi (autoscan Invocation): Fix spacing.
+ (autoconf Invocation): Likewise.
+ (autoreconf Invocation): Likewise.
+ (autoheader Invocation): Likewise.
+ (autom4te Invocation): Likewise.
+
+2008-06-19 Eric Blake <ebb9@byu.net>
+
+ Add comment explaining recent patch.
+ * lib/autotest/general.m4 (AT_INIT) <at_pass_list>: Explain choice
+ of * vs. ? globbing.
+
+2008-06-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_LINK): Do not warn when not
+ linking a file to itself.
+ Report by Bruno Haible.
+
+2008-06-19 Eric Blake <ebb9@byu.net>
+
+ Resync with gnulib.
+ * GNUmakefile: Grab from upstream, to fix VPATH 'make dist' bug.
+ Reported by Stepan Kasal.
+
+2008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Reorganize autotest files, factorize for parallel execution.
+ * lib/autotest/general.m4 (AS_MESSAGE_LOG_FD): Move definition
+ earlier in the file.
+ (AT_INIT): Create line number cache in
+ $at_suite_dir/at-source-lines.
+ <at_helper_dir>: New directory at-groups below $at_suite_dir.
+ Add comment explaining the new directory structure.
+ (at_func_group_prepare, at_func_group_postprocess): New shell
+ functions to factorize per-test group work. Keep the actual
+ test execution outside of a shell function in order to avoid
+ zsh 4.x exit status bugs.
+ <at_check_line_file, at_status_file, at_stdout, at_stder1>
+ <at_stderr, at_test_source>: Turn these into per-group files
+ below $at_helper_dir. Also store test results there in files
+ named pass, fail, xpass, xfail, skip. Let the parent collect
+ results from $at_helper_dir. Adjust summary statistics
+ computation and result output.
+
+2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix '#undef variable /* comment */' transform in config headers.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS_PREPARE): For
+ undefined preprocessor macros that are followed by a comment
+ in the header template, do not create nested comments in the
+ output.
+ * tests/torture.at (@%:@define header templates): Extend test.
+ * NEWS: Update.
+ Report by Karsten Hopp <karsten@redhat.com>.
+
+2008-06-09 Eric Blake <ebb9@byu.net>
+
+ Mark AC_TYPE_SIGNAL as obsolete.
+ * lib/autoconf/types.m4 (AC_TYPE_SIGNAL): Switch to AU_DEFUN.
+ * doc/autoconf.texi (Function Portability): Update documentation.
+ (Particular Types): Move AC_TYPE_SIGNAL...
+ (Obsolete Macros): ...here, and mention why.
+ * NEWS: Mention the change.
+
+ Allow lib64 as a default X library location.
+ * lib/autoconf/libs.m4 (_AC_PATH_X_XMKMF): Add lib64.
+ * NEWS: Mention the change.
+ * THANKS: Update.
+ Reported by Brad Walker.
+
+2008-06-05 Eric Blake <ebb9@byu.net>
+
+ Fix regression in AT_KEYWORDS([Macro]), from 2007-10-18.
+ * lib/autotest/general.m4 (AT_KEYWORDS): Expand argument prior to
+ converting it to lower case.
+ * tests/autotest.at (Keywords and ranges): Test this.
+ * NEWS: Document the fix.
+ * THANKS: Update.
+ Reported via Karsten Hopp, by Jochen Schmitt in
+ https://bugzilla.redhat.com/show_bug.cgi?id=449973
+
+2008-06-03 Eric Blake <ebb9@byu.net>
+
+ Fix 'make dist' regression from 2008-05-08.
+ * Makefile.am (INSTALL): Add rule, to accomodate 'make dist' after
+ GNUmakefile's _autoconf rule removes INSTALL.
+
+2008-05-27 Eric Blake <ebb9@byu.net>
+
+ Document Solaris /bin/sh redirection pitfall.
+ * doc/autoconf.texi (File Descriptors): Mention redirection bug.
+
+2008-05-14 Eric Blake <ebb9@byu.net>
+
+ Improve documentation of ! issues.
+ * doc/autoconf.texi (Limitations of Builtins) <!>: Touch up.
+ Reported by Noah Misch.
+
+ Document some FreeBSD shell bugs.
+ * doc/autoconf.texi (Limitations of Builtins) <!>: Mention ! issue
+ in compound pipe commands.
+ <export>: Mention difference of exporting an undefined variable.
+ (Shell Functions): Mention loss of $? in entry to shell functions.
+ Extracted from the git mailing list.
+
+2008-05-13 Stepan Kasal <kasal@ucw.cz>
+
+ Work around MSYS and Cygwin bugs when dealing with trailing space.
+ * tests/atlocal.in (func_sanitize_dir_name): Let atlocal succeed,
+ even when platform bugs are tickled.
+ Reported by Keith Marshall and Eric Blake.
+
+2008-05-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Let AC_MSG_FAILURE report pwd.
+ * lib/autoconf/general.m4 (_AC_ARG_VAR_VALIDATE, AC_MSG_FAILURE):
+ Output $ac_pwd along with fatal failure.
+ * tests/torture.at (Deep Package): Extend test.
+ Reported numerous times against GCC, and probably other packages.
+
+2008-05-12 Eric Blake <ebb9@byu.net>
+
+ Enforce --help and --version compliance.
+ * configure.ac (AM_INIT_AUTOMAKE): Add std-options option.
+
+2008-05-08 Keith Marshall <keithmarshall@users.sourceforge.net> (tiny change)
+
+ Avoid case-insensitive `make install' vs. `INSTALL' conflict.
+ * Makefile.am ($(srcdir)/INSTALL): Replace all references...
+ ($(abs_srcdir)/INSTALL): ...with this.
+
+2008-05-06 Eric Blake <ebb9@byu.net>
+
+ Fix typo.
+ * doc/autoconf.texi (Shell Substitutions): Drop at_ prefix.
+
+ Avoid overfull \hbox.
+ * doc/autoconf.texi (Versioning): Reword to fit line size.
+
+ Document $(( )) pitfalls.
+ * doc/autoconf.texi (Shell Substitutions): Mention octal
+ vs. decimal. Mention autotest's at_func_arith.
+
+ Improve behavior of './testsuite 01'.
+ * lib/autotest/general.m4 (AT_INIT) <at_func_validate_ranges>:
+ Alter usage to eval its arguments, in order to normalize away
+ leading zero. All callers updated.
+ * tests/autotest.at (Keywords and ranges): Test range
+ normalization with leading 0.
+
+2008-04-26 Eric Blake <ebb9@byu.net>
+
+ Mention Solaris /usr/ucb/tr pitfall.
+ * doc/autoconf.texi (Limitations of Usual Tools) <tr>: Add section.
+ Reported by Bruno Haible and Jim Meyering.
+
+2008-04-24 Eric Blake <ebb9@byu.net>
+
+ Mention m4sugar's internal quote strings.
+ * doc/autoconf.texi (Quadrigraphs): Mention alternate quote used
+ in m4sugar, and how to still output it literally.
+ * tests/m4sugar.at (m4@&t@_split): And test it.
+ Reported by Joel E. Denny.
+
+2008-04-23 Eric Blake <ebb9@byu.net>
+
+ Allow unbalanced () in m4_expand.
+ * lib/m4sugar/m4sugar.m4 (m4_expand, _m4_expand): Use more complex
+ quotes.
+ (m4_noquote, _m4_split): Use consistent complex quote.
+ * tests/autotest.at (Left paren, Right paren): Test this.
+ (Parentheses): Ensure new quadrigraphs still work.
+ (AT_CHECK_AT_TITLE_CHAR): All title char tests exercise m4_expand.
+ * NEWS: Mention the fix.
+ * doc/autoconf.texi (Quadrigraphs): Revert mention of macros that
+ require quadrigraphs for ().
+ (Evaluation Macros) <m4_expand>: Relax the restriction against
+ unbalanced ().
+ (Pretty Help Strings) <AS_HELP_STRING>: Likewise.
+ (Writing Testsuites) <AT_SETUP>: Likewise.
+ Reported by Joel E. Denny, fix suggested by Noah Misch.
+
+2008-04-22 Eric Blake <ebb9@byu.net>
+
+ Support unbalanced () in AT_SETUP by adding two new quadrigraphs.
+ * bin/autom4te.in (handle_output): Substitute @{:@ and @:}@.
+ (handle_traces): Likewise.
+ * lib/m4sugar/m4sugar.m4 (m4_qlen): Account for new quadrigraphs.
+ * tests/autotest.at (AT_CHECK_AT_TITLE_CHAR): Add new tests.
+ * doc/autoconf.texi (Quadrigraphs): Document them.
+ (Evaluation Macros) <m4_expand>: Enhance documentation.
+ (Text processing Macros) <m4_text_box>: Document cases where
+ quadrigraphs can help for problemetic unbalanced parentheses.
+ (Pretty Help Strings) <AS_HELP_STRING>: Likewise.
+ (Writing Testsuites) <AT_SETUP>: Likewise.
+ (Limitations of Builtins) <case>: Consolidate text on unbalanced
+ parentheses, and add an example of creative comments.
+ * NEWS: Document the addition.
+ Reported by Joel E. Denny.
+
+2008-04-16 Eric Blake <ebb9@byu.net>
+
+ Document pdksh exec behavior.
+ * doc/autoconf.texi (Limitations of Builtins) <exec>: New
+ subsection.
+ Discovered by Jim Meyering.
+
+2008-04-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/autotest.at (AT_CHECK_AT): Allow to pass additional
+ arguments to the inner suite.
+ (errexit, input from stdin): New tests.
+
+2008-04-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * NEWS: Post-release update.
+
+2008-04-10 Eric Blake <ebb9@byu.net>
+
+ AC_AUTOCONF_VERSION might contain arbitrary macro names.
+ * doc/autoconf.texi (Versioning): Mention problem with expansion.
+ * tests/tools.at (autoconf: AC_AUTOCONF_VERSION): Adjust test.
+
+2008-04-09 Slava Sysoltsev <Viatcheslav.Sysoltsev@h-d-gmbh.de> (tiny change)
+
+ Flush buffered output before exit.
+ * bin/autom4te.in (handle_output): Explicitly close file.
+ * THANKS: Update.
+ See http://lists.gnu.org/archive/html/autoconf/2008-04/msg00026.html.
+
+2008-04-08 Eric Blake <ebb9@byu.net>
+
+ Generate web docs for 2.62.
+ * doc/autoconf.texi (Evaluation Macros): Fix typo.
+ (Notices): Use recommended means to escape RCS keyword.
+ * cfg.mk (gnulib_dir): New macro.
+ (web-manual): New target.
+
+2008-04-05 Eric Blake <ebb9@byu.net>
+
+ Release Version 2.62.
+ * NEWS: Mention the release.
+
+2008-04-04 Stepan Kasal <kasal@ucw.cz>
+ and Eric Blake <ebb9@byu.net>
+
+ Return back to GPLv2+, until the text of the exceptions is
+ finalized, reverting the change from 2007-07-03 and the first
+ part of the change from 2007-07-20.
+ * COPYING: Revert to GPLv2.
+ * COPYINGv3: New file, since some auxiliary build tools, used for
+ building autoconf and not installed, are GPLv3.
+ * Makefile.am (EXTRA_DIST): Distribute COPYINGv3.
+ * NEWS: Remove mention of GPLv3.
+ * README: Clarify situation regarding GPLv3.
+
+2008-04-05 Eric Blake <ebb9@byu.net>
+
+ Prepare for release.
+ * maint.mk (announcement): Avoid deleted option.
+ * cfg.mk (release_archive_dir): Use default.
+ * build-aux/gnupload: New file, from automake/gnulib.
+ * Makefile.am (EXTRA_DIST): Distribute it.
+ * .x-sc_two_space_separator_in_usage: New file, to exempt gnupload
+ from syntax check.
+
+2008-04-05 Jim Meyering <meyering@redhat.com>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Work around CR EOL markers on OS/2 (www.ecomstation.com Ecs v2 rc4)
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): When CR
+ is the EOL marker, skip a step that would remove and translate
+ carriage return bytes.
+ * THANKS: Update.
+ Reported by Elbert Pol.
+
+2008-04-05 Eric Blake <ebb9@byu.net>
+
+ Avoid some autoreconf -Wall warnings.
+ * configure.ac: Use proper quoting, to be a good example.
+ (PACKAGE_NAME): Remove setting covered by autoconf.
+ (AM_INIT_AUTOMAKE): Bump automake requirement, for html rules.
+ * doc/Makefile.am (TEXI2DVI): Remove settings covered by
+ automake.
+ (html, autoconf_1.html, standards_1.html): Likewise.
+ (TEXI2HTML, TEXI2HTML_FLAGS): Remove unused macros.
+ * Makefile.am (html): Likewise.
+ * doc/autoconf.texi (Quoting and Parameters): Add missing section
+ name.
+ * tests/Makefile.am (AUTOMAKE_OPTIONS): Intentionally ignore
+ warning about our override, until Automake is fixed.
+ * README-hacking: Document minimum requirements for bootstrap.
+
+2008-04-03 Eric Blake <ebb9@byu.net>
+
+ Fix version number generation in man pages.
+ * Makefile.am (EXTRA_DIST): Distribute .version.
+ (.version): New rule.
+ * man/Makefile.am (common_dep): Depend on .version, not
+ configure.ac.
+ (.x.1): Use package name for version string.
+ * GNUmakefile [!_have-Makefile]: Sync from upstream, again.
+ * build-aux/git-version-gen: Sync from upstream.
+
+ More maintainer tweaks: pass 'make maintainer-distcheck'.
+ * GNUmakefile (_is-dist-target): Sync from upstream.
+ * build-aux/vc-list-files: Sync from upstream, yet again.
+ * tests/atlocal.in (unsupported_fs_chars): Always remove tdir.
+ * tests/Makefile.am (EXTRA_DIST): Don't distribute the built
+ package.m4.
+ * lib/autoconf/general.m4 (_AC_INIT_COPYRIGHT): Bump year.
+
+ Fix VPATH 'make syntax-check'.
+ * maint.mk (VC_LIST, VC_LIST_EXCEPT, sc_changelog)
+ (sc_prohibit_jm_in_m4, makefile-check): Support VPATH.
+ (author_mark_check): Avoid error message.
+ * build-aux/vc-list-files: Sync from upstream again.
+ * build-aux/texinfo.tex: Likewise.
+
+ Sync files from upstream, and pass 'make syntax-check'.
+ * config/announce-gen: Move...
+ * build-aux/announce-gen: ...here, and sync from gnulib.
+ * Makefile.am (EXTRA_DIST): Adjust accordingly.
+ * cfg.mk (announce_gen): Likewise.
+ (prev_version_file): Delete, relying on default in maint.mk.
+ (gpg_key_ID): New macro.
+ (url_dir_list): Rewrite to match coreutils.
+ * config/prev-version.txt: Move...
+ * .prev-version: ...here, and adjust to 2.61.
+ * build-aux/vc-list-files: Sync from coreutils.
+ * maint.mk: Resynchronize with coreutils, where possible.
+ (ME): Remove $(srcdir) from definition.
+ (CVS): Delete.
+ (GIT, VC, VC-tag): New macros.
+ (CVS_LIST, CVS_LIST_EXCEPT): Rename...
+ (VC_LIST, VC_LIST_EXCEPT): ...to this.
+ (cvs-tag-check): Delete.
+ (cvs-diff-check): Rename...
+ (vc-diff-check): ...to this.
+ (sc_file_system): Allow FHS acronym.
+ * doc/autoconf.texi (Particular Functions): Recommend
+ unconditional <config.h>.
+ * build-aux/config.guess: Sync from upstream (manually).
+ * build-aux/config.sub: Likewise.
+ * build-aux/texinfo.tex: Likewise.
+ * doc/make-stds.texi: Likewise.
+ * doc/standards.texi: Likewise.
+ * .gitattributes: Ignore whitespace problems in upstream files.
+
+2008-04-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Mention awk %u
+ bug on HP-UX/IA.
+ Report by Peter O'Gorman.
+
+2008-04-02 Eric Blake <ebb9@byu.net>
+
+ Recommend the just-released M4 1.4.11.
+ * NEWS: Update recommendation.
+ * README: Likewise.
+ * doc/autoconf.texi (Introduction): Likewise.
+ * m4/m4.m4 (AC_PROG_GNU_M4): Likewise.
+
+2008-04-01 Eric Blake <ebb9@byu.net>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Bump
+ copyright year.
+
+2008-03-28 Peter O'Gorman <peter@pogma.com>
+
+ Find X11 on Mac OS X too.
+ * lib/autoconf/libs.m4 (_AC_PATH_X_DIRECT,_AC_PATH_X_XMKMF):
+ Check for libX11 with extensions dylib la and dll too.
+ * THANKS: Update.
+ Reported by Martin Costabel.
+
+2008-03-28 Eric Blake <ebb9@byu.net>
+
+ Update TODO based on completed tasks.
+ * TODO (AC_PROG_INSTALL takes multiple files): Done.
+ (AC_GNU_SOURCE deprecation): Done, see AC_USE_SYSTEM_EXTENSIONS.
+ (AC_COMPILE_IFELSE documentation): Done.
+ (Tracing builtins): Done, now that we require M4 1.4.5.
+ (AC_PROG_CC_POSIX suggestion, providing header files)
+ (AC_TYPE_SIGNAL): Not needed; gnulib's approach is better.
+ (cache consistency): Done with precious variables.
+
+2008-03-26 Eric Blake <ebb9@byu.net>
+
+ Document --trace=macro:format in --help output.
+ * bin/autom4te.in (help): Mention optional trace format.
+ * bin/autoconf.as (usage): Likewise.
+
+ * doc/autoconf.texi (Limitations of Usual Tools) <sed>: Fix
+ typos in last patch.
+ Reported by Ralf Wildenhues.
+
+2008-03-26 Jim Meyering <meyering@redhat.com>
+
+ Fix texinfo syntax error.
+ * doc/autoconf.texi (Limitations of Usual Tools): s/@kbd {/@kbd{/
+
+2008-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Warn, not fail on whitespace-only precious variable differences.
+ * lib/autoconf/general.m4 (_AC_ARG_VAR_VALIDATE): Output
+ precious variable differences less ambiguous with `ugly-quotes'.
+ If their settings differ only in whitespace, do not fail, but
+ reuse the old value.
+ * tests/torture.at (AT_CHECK_AC_ARG_VAR): Extend macro to allow
+ an optional status and expected-warning argument. Fix m4
+ quotation for initial value.
+ (AC_ARG_VAR): Also test for whitespace-only differences, and
+ that the old value is retained in this case.
+ * doc/autoconf.texi (Setting Output Variables): Document this.
+ * NEWS: Update.
+ Report and initial patch by Paolo Bonzini.
+
+2008-03-26 Eric Blake <ebb9@byu.net>
+
+ Document busybox sed bug.
+ * doc/autoconf.texi (Limitations of Usual Tools) <sed>: Mention
+ restrictions when using back-references.
+ Reported by Vincent Lefevre:
+ <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13013>.
+
+ Document Automake interaction with AC_CONFIG_MACRO_DIR.
+ * doc/autoconf.texi (Input): Mention ACLOCAL_AMFLAGS for automake
+ users.
+ * THANKS: Update.
+ Reported by Chris Pickett.
+
+2008-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/autotest.at (Using atlocal): Quote instances of `pwd`.
+
+ * tests/local.at (AT_CHECK_M4): Factorize warning output
+ normalization.
+ Suggested by Eric Blake.
+
+2008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix .exe-related test failure on MinGW.
+ * tests/local.at (AT_CHECK_M4): Normalize `/bin/m4.exe' correctly
+ for comparing warning output.
+
+ Fix Fortran testsuite failures with gfortran 4.3.
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): When scanning
+ verbose compiler output, skip lines that set variables; gfortran
+ 4.3 sets LIBRARY_PATH, COMPILER_PATH, COLLECT_GCC_OPTIONS.
+ * THANKS: Update.
+ Report by Vincent Lefèvre.
+
+2008-03-21 Eric Blake <ebb9@byu.net>
+
+ * GNUmakefile: Resynchronize with gnulib.
+
+ Document more uses of $cross_compiling.
+ * doc/autoconf.texi (Runtime): Document that a temporary override
+ is permissible.
+ * THANKS: Update.
+ Reported by Ineiev, example by Ralf Wildenhues.
+
+ Don't swallow $1 in textual local variables.
+ * lib/m4sugar/m4sugar.m4 (m4_combine): Don't use overquoting and
+ expansion of text arguments, as that swallows $1.
+ (m4_text_wrap): Likewise, by splitting out...
+ (_m4_text_wrap): ...new helper macro. Also, allow arbitrary
+ expression for width.
+ * tests/m4sugar.at (m4@&t@_text_wrap): Test this.
+ (m4@&t@_combine): Likewise.
+
+2008-03-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Avoid leftover files on Leopard.
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT): Remove a.out.dSYM
+ directory created on darwin.
+ (AC_NO_EXECUTABLES): Likewise; also remove objects which may be
+ left over from a broken link.
+ * tests/c.at (AC_NO_EXECUTABLES (working linker))
+ (AC_NO_EXECUTABLES (broken linker)): New tests.
+ Report by Gary V. Vaughan.
+
+ * lib/autom4te.in (Automake-preselections): Trace
+ _AM_COND_IF, _AM_COND_ELSE, _AM_COND_ENDIF.
+
+2008-03-20 Eric Blake <ebb9@byu.net>
+
+ Kill more CVS references.
+ * README-cvs: Delete. See README-hacking instead.
+ * README-hacking: Update wording, based on older file.
+ * BUGS: Remove CVS mention.
+
+2008-03-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/tools.at (autotools and whitespace in file names): Skip
+ if aclocal is not present.
+
+2008-03-20 Eric Blake <ebb9@byu.net>
+
+ Sync GNUmakefile with gnulib.
+ * GNUmakefile (Makefile.cfg): Rename...
+ (cfg.mk): ...to this, and make optional.
+ (GNUmakefile.cfg): Delete, redundant with cfg.mk.
+ (Makefile.maint): Rename...
+ (maint.mk): ...to this.
+ (all) [!_have-Makefile]: Rename...
+ (abort-due-to-no-makefile): ...to this, and invoke via
+ .DEFAULT_GOAL to pick up all targets.
+ * Makefile.cfg: Rename...
+ * cfg.mk: ...to this.
+ * Makefile.maint: Rename...
+ * maint.mk ...to this.
+ (ME): Reflect name change.
+ (makefile-check, m4-check, author_mark_check, msg): Use $(ME)
+ rather than hard-coded name.
+ * GNUmakefile.cfg: Delete; move rules into cfg.mk.
+ * Makefile.am (EXTRA_DIST): Reflect file name changes.
+ * .x-sc_prohibit_atoi_atof: Likewise.
+ * lib/freeze.mk: Likewise.
+
+2008-03-19 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Introduction): Improve the paraphrase of
+ Henry Spencer's quotation.
+
+2008-03-19 Eric Blake <ebb9@byu.net>
+
+ AC_CONFIG_HEADERS replaced AC_CONFIG_HEADER.
+ * bin/autoscan.in (output): Avoid obsolete spelling.
+ * tests/local.at (AC_STATE_SAVE): Update usage.
+ * THANKS: Update.
+ Reported by John Calcote.
+
+ Emphasize that ease of configure triumphs over ease of autoconf.
+ * doc/autoconf.texi (Introduction): Expand on primary
+ vs. secondary goal of autoconf.
+ * THANKS: Update.
+ Inspired by Paul Smith.
+
+2008-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/Autom4te/FileUtils.pm (handle_exec_errors): New argument
+ $hint, show if the executing program does not exist.
+ (xsystem_hint): New function, like xsystem but allows to pass
+ a hint.
+ * bin/autoreconf.in: Use xsystem_hint for spawning autopoint and
+ libtoolize.
+ Report by Bruce Korb.
+
+2008-03-14 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/Autom4te/ChannelDefs.pm, tests/fortran.at,
+ tests/mktests.sh, tests/wrapper.as: Fix typos.
+
+2008-03-12 Eric Blake <ebb9@byu.net>
+
+ Fix yesterday's regression in m4_wrap([$1]).
+ * lib/m4sugar/m4sugar.m4 (_m4_wrap): Don't directly invoke wrapped
+ text, since it may contain text that looks like parameters.
+ * tests/m4sh.at (AS@&t@_INIT cleanup): Enhance test.
+
+2008-03-11 Eric Blake <ebb9@byu.net>
+
+ Improve error messages for common testsuite bugs.
+ * lib/autotest/general.m4 (_AT_DEFINE_INIT, _AT_DEFINE_SETUP): New
+ macros for defining order-enforced macros.
+ (AT_INIT, AT_SETUP, AT_CLEANUP, AT_BANNER, AT_XFAIL_IF)
+ (AT_CAPTURE_FILE, AT_DATA, AT_CHECK, AT_CHECK_NOESCAPE): Add error
+ messages when order violations are detected.
+ * tests/autotest.at (AT_CHECK_AT_SYNTAX): New helper macro.
+ (AT_SETUP without AT_INIT, AT_BANNER without AT_INIT)
+ (AT_CLEANUP without AT_INIT, Missing AT_CLEANUP)
+ (AT_CHECK without AT_SETUP, AT_DATA without AT_SETUP)
+ (AT_XFAIL_IF without AT_DATA, AT_KEYWORDS without AT_SETUP,
+ (AT_CLEANUP without AT_SETUP, AT_BANNER inside AT_SETUP)
+ (AT_SETUP inside AT_SETUP, Multiple AT_INIT)
+ (Banner-only test suite): New tests.
+ Reported by Christopher Hulbert.
+
+ Tweak m4_wrap to force FIFO or LIFO semantics.
+ * lib/m4sugar/m4sugar.m4 (m4_wrap): Override M4 implementation.
+ (m4_wrap_lifo, _m4_wrap): New macros.
+ * lib/m4sugar/m4sh.m4 (AS_INIT): Combine all cleanup into known
+ order, prior to m4sugar's.
+ (_AS_DETECT_BETTER_SHELL): Use cleanup parameter, rather than
+ m4_wrap.
+ * lib/autotest/general.m4 (AT_INIT): Combine all cleanup into
+ known order, prior to m4sh's.
+ * doc/autoconf.texi (Diagnostic Macros) <m4_fatal>: Document
+ argument.
+ (Redefined M4 Macros) <m4_wrap>: Rewrite documentation to match
+ new behavior.
+ * tests/m4sh.at (AS_INIT cleanup): New test.
+ * NEWS: Document the change.
+
+2008-03-10 Eric Blake <ebb9@byu.net>
+
+ Encode nested autotest data.
+ * tests/autotest.at (AT_CHECK_AT_PREP): Avoid raw AT_ in output.
+ (unusual file names): Likewise.
+ (m4_pattern_allow): Remove loophole, to make it easier to catch
+ poorly written tests.
+
+ Factor some autotest tests.
+ * tests/autotest.at (AT_CHECK_AT_PREP): New macro, to factor out
+ common initialization.
+ (AT_CHECK_AT, Banners, Keywords and ranges, srcdir propagation)
+ (whitespace in absolute testdir, unusual file names): Use it.
+
+2008-03-06 Eric Blake <ebb9@byu.net>
+
+ Minor documentation fix.
+ * doc/autoconf.texi (Evaluation Macros): Fix typo.
+
+2008-03-04 Eric Blake <ebb9@byu.net>
+
+ Make AT_CHECK act like a simple command.
+ * lib/autotest/general.m4 (_AT_CHECK): Wrap commands in {;}.
+ * tests/torture.at (AT_CHECK_CONFIG_CREATION_NOWRITE): Test it.
+
+2008-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ On MinGW, substitution of CR and 0xFF fails.
+ * tests/torture.at (Substitute and define special characters):
+ MinGW awk cannot handle 0xFF, and on MinGW, the test does the
+ wrong thing for CR.
+
+2008-03-04 Eric Blake <ebb9@byu.net>
+
+ Pull in recent maintainer improvements from coreutils.
+ * GNUmakefile (_is-dist-target): 'make distclean' should not
+ trigger autoreconf.
+ (_dummy): Change directories before removing autom4te.cache.
+ (check dist distcheck install) [!_have-Makefile]: Provide nicer
+ diagnostics.
+ * configure.ac (AC_CONFIG_LINKS): Copy GNUmakefile into VPATH
+ builds, after initial bootstrap.
+ * Makefile.am (distclean-local): Work around current automake bug.
+ * Makefile.maint (ME): Allow VPATH usage.
+
+ Use git-merge-changelog when available.
+ * .gitattributes: New file.
+ * README-hacking: Document use of git-merge-changelog.
+
+ Work around cygwin bug.
+ * tests/atlocal.in (unsupported_fs_chars): Avoid cygwin bug where
+ "touch 't\'" creates regular file 't'.
+
+ Ignore tests that require read-only directories under root.
+ * tests/torture.at (AT_CHECK_CONFIG_CREATION_NOWRITE): Skip
+ no-write portion if user has root-like privileges.
+
+2008-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autotest/general.m4 (AT_INIT): Fix detection of '-C -'.
+
+2008-03-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ autoreconf -m now honors $MAKE.
+ * bin/autoreconf.in ($run_make): Renamed from ...
+ ($make): ... this. Use now as command to run `make',
+ overridden by $MAKE. Document this in --help output.
+ * doc/autoconf.texi (autoreconf Invocation): Document
+ all environment variables honored by autoreconf.
+ * NEWS: Update.
+ Report by Paul Eggert.
+
+2008-03-03 Eric Blake <ebb9@byu.net>
+
+ Documentation improvements.
+ * doc/autoconf.texi (Looping constructs): s/recurses/repeats/.
+ (Evaluation Macros): Drop `1' suffix from metasyntax variable name
+ that preceeds @dots. Improve wording.
+ (Text processing Macros): Drop `1' suffix from metasyntax variable
+ name that preceeds @dots.
+ (Number processing Macros): Drop `1' suffix from metasyntax
+ variable name that preceeds @dots. Improve wording.
+ * lib/m4sugar/m4sugar.m4 (m4_cmp): Comment wording fix.
+ Suggested by Ralf Wildenhues.
+
+2008-03-02 Jim Meyering <meyering@redhat.com>
+
+ Don't infloop upon "make dist".
+ * GNUmakefile: Merge from coreutils.
+ * Makefile.am (dist-hook): Inject .tarball-version into tarball,
+ not .version.
+ * configure.ac (AC_INIT): Use .tarball-version, not .version.
+ * build-aux/git-version-gen: Update from gnulib.
+
+2008-03-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
+ Before using /dev/full, check that it is a writable character
+ special device.
+ Report by Benoit Sigoure and Eric Blake.
+
+ Actually test that @configure_input@ is expanded correctly.
+ * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
+ Actually check generated file contents for the name of the
+ generated file, using AC_PROG_FGREP and $FGREP.
+
+2008-03-01 Benoit Sigoure <tsuna@lrde.epita.fr>
+
+ Be nice with file systems that don't handle unusual characters.
+ * tests/atlocal.in (func_sanitize_file_name)
+ (func_sanitize_dir_name): New shell functions.
+ * tests/tools.at (autom4te and whitespace in file names)
+ (autotools and whitespace in file names): Use them.
+ * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
+ Cover more potentially problemtic file names. Use the new
+ functions.
+
+ Properly handle funny file names for headers in config.status.
+ The test suite did not cover this bug because the code was not
+ quoting properly the arguments of `rm -f' (which "fails" silently)
+ as well as the arguments of `diff' (whose output was redirected to
+ /dev/null so we couldn't see its error message).
+ * lib/autoconf/status.m4 (_AC_OUTPUT_HEADER): Properly quote the
+ file names passed to `rm' and `diff'.
+ * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
+ Add a regression test.
+
+2008-03-01 Benoit Sigoure <tsuna@lrde.epita.fr>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Properly expand @configure_input@ in config.status.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILE, _AC_OUTPUT_MAIN_LOOP):
+ Escape the backslashes and ampersands in $configure_input before
+ using it in the sed replacement string to expand @configure_input@.
+ Report by Eric Blake and Patrick Welche.
+
+2008-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Ignore errors from ./run on w32.
+ * tests/autotest.at (whitespace in absolute testdir):
+ Ignore stderr for `./run' which fails to remove the
+ busy test directory on w32.
+
+2008-02-22 Eric Blake <ebb9@byu.net>
+
+ Improve documentation for writing autotest suites.
+ * doc/autoconf.texi (Writing Testsuites) <AT_CHECK>: Mention that
+ checks must live inside a test group.
+ Reported by Christopher Hulbert.
+
+2008-02-21 Eric Blake <ebb9@byu.net>
+
+ Sync git-version-gen from upstream.
+ * build-aux/git-version-gen: Pull from gnulib.
+ * configure.ac (AC_INIT): Adjust to new calling convention.
+
+2008-02-12 Eric Blake <ebb9@byu.net>
+
+ Avoid trailing space in config.h with AC_DEFINE([var], []).
+ * lib/autoconf/general.m4 (_AC_DEFINE_Q): Explicitly mark empty
+ defines with a comment.
+
+2008-02-08 Eric Blake <ebb9@byu.net>
+
+ Fix texinfo typos in previous patch.
+ * doc/autoconf.texi (Site Defaults): s/[{}]/@&/g.
+ Reported by Ralf Wildenhues.
+
+ Describe a config.site that can be used for FHS compliance.
+ * doc/autoconf.texi (Site Defaults): Fix typo. Add new example
+ for FHS.
+ * THANKS: Update.
+ Reported by Jules Colding and Ralf Wildenhues.
+
+2008-02-02 Eric Blake <ebb9@byu.net>
+
+ * doc/autoconf.texi (Limitations of Usual Tools) <grep>: Fix typo.
+
+2008-02-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autotest/general.m4 (AT_INIT): Fix --clean to work
+ again, broken since introduction of `-C dir'.
+ * tests/autotest.at (Choosing where testsuite is run): Test it.
+
+2008-01-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi: Update Back-Cover text to reflect new GNU wording.
+
+2008-01-29 Eric Blake <ebb9@byu.net>
+
+ Fix more autotest regressions.
+ * lib/autotest/general.m4 (AT_LINE): Fix regression from
+ 2007-10-04 when file name is `dnl'.
+ (AT_INIT) <PREPARE_TESTS>: Move command-line assignments...
+ <TESTS_BEGIN>: ...to this new diversion, to fix regression from
+ yesterday in libtool's testsuite.
+ (_AT_ARG_OPTION): Detect write failure.
+ * doc/autoconf.texi (Diversion support): Document PREPARE_TESTS to
+ make libtool's use kosher. Document m4_init.
+ (Programming in M4sh): Document AS_INIT.
+ (Writing Testsuites): Document limitation of AT_DATA file name.
+ * tests/autotest.at (unusual file names): New test.
+ (Banners, Keywords and ranges): Use correct shell.
+
+ More corner cases in testsuite VAR=VALUE handling.
+ * lib/autotest/general.m4 (AT_INIT) <PREPARE_TESTS): Fix quoting
+ bug.
+ <PARSE_ARGS_END>: Also detect leading digits in assignments.
+ * tests/autotest.at (Using atlocal): Enhance test to catch last
+ bug.
+
+ * doc/autoconf.texi (Limitations of Builtins) <.>: Mention bash
+ bug.
+
+2008-01-28 Eric Blake <ebb9@byu.net>
+
+ Fix regression in handling VAR=VALUE arguments to testsuite.
+ * lib/autotest/general.m4 (AT_INIT) <PARSE_ARGS_END>: Detect
+ leading = as invalid. Defer use of command-line variable
+ assignments...
+ <PREPARE_TESTS>: ...here, after atconfig has been sourced. Fix
+ regression in sourcing files.
+ * tests/autotest.at (Using atlocal): New test to catch this.
+ (Debugging a successful test, Choosing where testsuite is run):
+ Use correct shell.
+ Reported by Ralf Wildenhues.
+
+ Document grep peculiarity.
+ * doc/autoconf.texi (Limitations of Usual Tools) <grep>: Document
+ BSD behavior on binary input.
+
+ Minor testsuite improvements.
+ * lib/autotest/general.m4 (AT_INIT) <PREPARE_TESTS>: Use fewer
+ forks when sanitizing PATH. Always output machine information,
+ not just when atconfig was located.
+
+ Add 'testsuite -C dir'.
+ * lib/autotest/general.m4 (_AT_ARG_OPTION): Move missing argument
+ detection...
+ (AT_INIT) <PARSE_ARGS_END>: ...here, since -k always takes
+ argument.
+ <DEFAULTS>: Delay computation of variables based on $at_dir...
+ <PREPARE_TESTS>: ...to here, since -C can change $at_dir.
+ <TESTS>: Re-invoke via absolute name, since -C may be in effect.
+ <PARSE_ARGS>: Parse new option.
+ <HELP_TUNING>: Document it.
+ * tests/autotest.at (Choosing where testsuite is run): New test
+ for this feature.
+ (Keywords and ranges): Add test for missing -k argument.
+ * NEWS: Document this.
+ * doc/autoconf.texi (testsuite Invocation): Likewise.
+
+2008-01-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * build-aux/config.guess, build-aux/config.sub,
+ build-aux/texinfo.tex: Sync from gnulib.
+ * doc/fdl.texi, doc/make-stds.texi, doc/standards.texi:
+ Likewise.
+
+2008-01-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Particular Programs): Do not mention the
+ Autoconf version in which the AC_PROG_INSTALL change was done.
+ Suggested by Paul Eggert.
+
+2008-01-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix --help=recursive with multiple AC_CONFIG_SUBDIRS.
+ * lib/autoconf/general.m4 (_AC_INIT_HELP): If, for recursive help
+ mode, we change to the source directory, also set $ac_pwd so we
+ do not go back to the build tree for the next config subdir.
+ * tests/torture.at (Deep Package): Extend test to contain two
+ config subdirs on the top level.
+
+ Fix parallel `maintainer-check'.
+ * Makefile.am (maintainer-check-tests): Depend on `all'.
+ Use `$(MAKE) $(AM_MAKEFLAGS)' instead of plain `make'.
+ * tests/Makefile.am (maintainer-check-c++, maintainer-check-posix):
+ Likewise.
+ (maintainer-check): Serialize the testsuite runs.
+
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ENABLE2): Accept `+'
+ in feature string for --enable/--with. Convert to underscore
+ for variable name.
+
+ * lib/autoconf/programs.m4 (AC_PROG_INSTALL): Require that
+ `install -c file1 file2 dir' works.
+ * doc/autoconf.texi (Particular Programs): Document this.
+ * NEWS: Update.
+
+2008-01-21 Eric Blake <ebb9@byu.net>
+
+ Improve documentation about default include directives.
+ * doc/autoconf.texi (Generic Headers, Generic Declarations)
+ (Generic Structures, Generic Types)
+ (Generic Compiler Characteristics): Add links to
+ AC_INCLUDES_DEFAULT.
+ Reported by Reuben Thomas.
+
+2008-01-15 Eric Blake <ebb9@byu.net>
+
+ * lib/m4sugar/m4sugar.m4 (m4_qlen): Use fewer macros.
+
+2008-01-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/Makefile.am (noinst_SCRIPTS): Renamed from
+ check_SCRIPTS. Building the wrappers for `all' allows help2man
+ to use them for the manpages.
+ Report by Benoit Sigoure.
+
+ * bin/autoreconf.in: Discard stderr for $autoconf/$aclocal --help.
+
+2007-12-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix some write failure cases in Autotest.
+ * lib/autotest/general.m4 (AT_INIT): Do not exit successfully
+ upon write failures for --help, --version, --list.
+ Guard against write failures for intermediate created scripts.
+ <at_func_create_debugging_script>: Do not make the debugging
+ script executable if it is not complete.
+
+2007-12-12 Eric Blake <ebb9@byu.net>
+
+ Fix thinko in earlier patch - m4_join isn't defined yet.
+ * lib/m4sugar/m4sugar.m4 (m4_expansion_stack_push, _m4_defun_pro)
+ (_m4_defun_pro_outer, _m4_defun_epi, _m4_defun_epi_outer)
+ (m4_require): Use m4_do, not m4_join.
+
+ Fix some whitespace tests on cygwin.
+ * tests/tools.at (autom4te and whitespace in file names): Restore
+ font-lock. Create $TMPDIR before it might be used.
+
+ Fix spurious testsuite failure with M4 1.4.11.
+ * tests/local.at (AT_CHECK_M4): Cater to new m4 error message.
+
+ Optimize AC_REQUIRE.
+ * lib/m4sugar/m4sugar.m4 (m4_expansion_stack_push, _m4_defun_pro)
+ (_m4_defun_pro_outer, _m4_defun_epi, _m4_defun_epi_outer)
+ (m4_require): Avoid extra macro calls.
+
+2007-12-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/torture.at (srcdir): Fix quoting.
+
+ Do not pass top_srcdir to configure scripts in testsuite.
+ * tests/autotest.at (srcdir propagation): Copy install-sh to
+ source tree.
+ (my only test): Drop setting of `top_srcdir'.
+ * tests/base.at (Input/Output): Likewise.
+ * tests/local.at (AT_CONFIGURE_AC): Copy install-sh,
+ config.guess, and config.sub to test source tree.
+ Drop AC_CONFIG_AUX_DIR setting.
+ (AT_CHECK_CONFIGURE): Drop setting of `top_srcdir'.
+ * tests/torture.at (Substitute a 2000-byte string): Drop
+ AC_CONFIG_AUX_DIR setting, copy install-sh to test source tree.
+ (Substitute a newline, datarootdir workaround): Likewise.
+ (Define a newline): Adjust for linenumber changes in configure.ac.
+ * tests/foreign.at (Libtool): Adjust comment to reflect changes.
+
+ * tests/semantics.at (AC_PATH_PROGS_FEATURE_CHECK): Skip test
+ if `pwd` contains whitespace.
+
+ Quote $abs_top_srcdir in tests.
+ * tests/local.at (AT_CHECK_PERL_SYNTAX): Likewise.
+ * tests/tools.at (Syntax of the shell scripts): Likewise.
+
+ * tests/m4sh.at (LINENO): Quote $0.
+
+ Fix testsuite program wrapper for whitespace in `pwd`.
+ The problem here is that the usual mantra is that command
+ variables can contain arguments, thus we cannot just escape
+ $AUTOCONF, $AUTOM4TE etc. The compromise is to put the
+ $top_builddir/tests directory early in $PATH, so that the
+ wrappers are found by their plain name.
+ * tests/wrapper.as: Put $testdir early in $PATH.
+ (AUTOCONF, AUTOHEADER, AUTOM4TE): Set to plain command names.
+
+ Proper config.status --file/--header and $srcdir escaping.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_MAIN_LOOP): Quote special
+ characters in $ac_file_inputs.
+ (_AC_OUTPUT_FILE, _AC_OUTPUT_HEADER): eval $ac_file_inputs
+ accordingly.
+ * tests/torture.at (datarootdir workaround): Adjust.
+ (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS): Extend test.
+
+ Fix Autotest for whitespace in `pwd`.
+ * lib/autotest/general.m4 (AT_INIT)
+ <at_func_create_debugging_script, Driver Loop>:
+ Quote $at_group_dir.
+ * tests/autotest.at (whitespace in absolute testdir): New test.
+
+ * lib/autom4te.in: Quote @datadir@.
+
+ Proper file name escaping in Autoconf programs and Perl modules.
+ This includes escaping of characters special to the shell
+ as well as special to Perl, e.g., leading `<' or `>'.
+ For example, when $file starts with `>', `open ">$file"'
+ wrongly tries to append to a different file.
+ * bin/autoconf.as: Fix quoting for autom4te options.
+ * lib/Autom4te/General.pm (shell_quote): New function, taken
+ from coreutils, written by Jim Meyering.
+ (mktmpdir): Use it.
+ * bin/autom4te.in (files_to_options, handle_m4): Use shell_quote
+ and open_quote.
+ * bin/autoreconf.in (parse_args): Likewise.
+ * bin/autoscan.in (main): Likewise.
+ * bin/autoupdate.in (main): Likewise.
+ * bin/autoheader.in: Likewise, fixing old insufficient escaping.
+ * bin/ifnames.in: Likewise, XFile usage fixes.
+ * tests/tools.at (autom4te and whitespace in file names): Extend
+ test. Test twice, with special characters allowed on w32, and the
+ rest. Test leading and trailing whitespace, for `open_quote'.
+ (autotools and whitespace in file names): New, analogous test.
+ Reported by Paul Eggert and Benoit Sigoure, additional suggestions
+ by Russ Allbery and Eric Blake.
+
+ Sync from Automake.
+ * lib/Autom4te/Channels.pm, lib/Autom4te/Configure_ac.pm,
+ lib/Autom4te/Struct.pm, lib/Autom4te/XFile.pm: Likewise.
+ * lib/Autom4te/FileUtils.pm (open_quote): New function.
+ (update_file, contents): Use it.
+
+ * Makefile.am (autom4te-update): Rewrite for git.
+
+2007-12-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (autom4te Invocation, Autom4te Cache): Fix typos.
+
+ Fix copyright years.
+ * Makefile.am, doc/install.texi, lib/autoconf/fortran.m4,
+ lib/autoconf/lang.m4, lib/freeze.mk: Likewise.
+
+2007-12-04 Eric Blake <ebb9@byu.net>
+
+ Manually resync with gnulib, since 'make cvs-update' no longer works.
+ * build-aux/config.guess: New upstream version.
+ * build-aux/config.sub: Likewise.
+
+ When using older automake, don't downgrade build-aux/texinfo.tex.
+ * configure.ac (AM_INIT_AUTOMAKE): Add no-texinfo.tex option.
+ * doc/Makefile.am (TEXINFO_TEX): Add.
+
+2007-11-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix AC_C_BIGENDIAN bug caused by new awk method of substitution.
+ * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Don't comment out the
+ #undef as this runs afoul of our new way of creating config.h.
+ Problem reported by Jim Meyering in
+ <http://lists.gnu.org/archive/html/autoconf-patches/2007-11/msg00164.html>.
+
+2007-11-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix autom4te for unusual characters in input file names.
+ * bin/autom4te.in (files_to_options): Quote active characters
+ for the shell.
+ * tests/tools.at (autom4te and white space in file names):
+ New test.
+
+ * doc/autoconf.texi (Limitations of Usual Tools) <awk>:
+ Document that Tru64 awk always splits $0.
+
+2007-11-24 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autotest/general.m4 (AT_INIT): Do not extract the
+ `#AT_STOP_...' line at the end of each test.
+
+2007-11-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autotest/general.m4 (AT_INIT): For awk line number
+ extraction script, ensure `$at_group' has a defined value
+ even for the empty set, and properly quote its usage inside
+ the awk script.
+
+2007-11-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Shell Functions): New chapter. Document
+ IRIX sh $0 issue in functions, move content from ...
+ (Portable Shell): ... here.
+ (Shell Script Compiler): Note that shell functions are not
+ totally unportable any more.
+
+2007-11-22 Stepan Kasal <kasal@ucw.cz>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autotest/general.m4 (AT_INIT): Exit awk script after
+ extracting the line numbers of the last needed test.
+
+2007-11-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autotest/general.m4 (AT_INIT) <at_func_create_debugging_script>:
+ Fix quoting.
+
+2007-11-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix IRIX testsuite debugging failures: $0 in functions.
+ * lib/autotest/general.m4 (AT_INIT) <at_func_create_debugging_script>:
+ Do not use $0 inside a function, as IRIX sh will set that to the
+ function name rather than the script invocation name.
+
+2007-11-19 Paolo Bonzini <bonzini@gnu.org>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autotest/general.m4 (at_func_test): Use cached line numbers
+ to extract test scripts.
+ (AT_INIT): Extract and cache test script line numbers.
+
+2007-11-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autotest/general.m4: Revert 2007-11-15 patch and
+ subsequent fixups; the awk -> here-document conversion trashes
+ performance too much with AIX sh.
+
+2007-11-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/local.at: Do not test m4, perl with AT_TESTED.
+
+ Diagnose and guard against write errors dealing with config.status.
+ The general idea is this: all write failures from `configure'
+ writing `config.status' are indicated by $ac_write_error, which
+ is only checked at the end. This is safe because config.status
+ code is not executed before the file is complete. Other write
+ failures, be they inside config.status, or in sub shell/awk
+ scripts spawned from configure or config.status, typically need
+ earlier checking, as their results are used right afterwards.
+ * lib/autoconf/status.m4 (AC_OUTPUT): Initialize `ac_write_fail'
+ before writing config.status, check afterwards.
+ (_AC_OUTPUT_FILES_PREPARE, _AC_OUTPUT_FILE)
+ (_AC_OUTPUT_HEADERS_PREPARE,_AC_OUTPUT_CONFIG_STATUS):
+ Set `ac_write_error' for write failures to config.status. Barf
+ upon write failures to temporary files.
+ Adjust note about closing and reopening the here-document.
+ (_AC_OUTPUT_HEADER, _AC_OUTPUT_LINK, _AC_OUTPUT_COMMAND)
+ (_AC_OUTPUT_MAIN_LOOP): Likewise, adjust note about closing and
+ reopening the here-document.
+ * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
+ Ensure `ac_write_error' does not escape into config.status.
+ Also, add a couple of code paths not yet exercised in the test
+ suite: a config file with input from stdin, and a config header
+ output to stdout.
+ Suggestion for catching write errors by Bruno Haible.
+
+2007-11-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Avoid error with Tru64 awk and testsuite lines with many words.
+ * lib/autotest/general.m4 (AT_INIT): In the awk script that
+ reads the testsuite, set the field separator to an unusual value,
+ in order to not run over the limit of 199 fields. Tru64 4.0D awk
+ even splits the input if $i, i>0, was never accessed in the script.
+
+ Revert 2007-10-17 change.
+ * TODO: Multiline args in config files and headers mean something
+ different and are not fixed, see
+ <http://lists.gnu.org/archive/html/autoconf-patches/2007-05/msg00017.html>
+ Report by Stepan Kasal.
+
+ * doc/autoconf.texi (Generic Programs): Fix typo.
+
+2007-11-16 Stepan Kasal <kasal@ucw.cz>
+
+ AC_*_TOOL does not canonicalize the prefix
+ * doc/autoconf.texi (Generic Programs): Do not say that
+ the *_TOOL macros canonicalize, they simply use the `host_alias'.
+
+2007-11-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Diagnose write errors in config.status instantiations.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILE)
+ (_AC_OUTPUT_HEADER, _AC_OUTPUT_MAIN_LOOP): Bail out
+ on write errors.
+ * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
+ Extend test to also check for some write error failures, using...
+ <AT_CHECK_CONFIG_CREATION_NOWRITE>: ...this new macro.
+ Report by Bruno Haible.
+
+ Indentation fixups.
+ * lib/autotest/general.m4 (AT_INIT) <at_func_log_failure>: Fix
+ indentation.
+ (_AT_CHECK): Use less indentation, to save space.
+
+2007-11-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Add witness macro for @top_build_prefix@ substitution.
+ * lib/autoconf/status.m4 (_AC_HAVE_TOP_BUILD_PREFIX): New macro.
+ (_AC_OUTPUT_FILE): Mention it here.
+
+2007-11-15 Paolo Bonzini <bonzini@gnu.org>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autotest/general.m4 (at_func_test): Remove.
+ (AT_INIT): Pre-extract test groups into separate files.
+ (AT_CLEANUP): Source pre-extracted file instead of calling at_func_test.
+ Remove at-test-source files together with the $at_group_dir.
+ * tests/autotest.at (Long test source lines): New test.
+
+2007-11-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Shell functions and variables may share a namespace.
+ * doc/autoconf.texi (Portable Shell): Mention Solaris sh
+ limitation.
+
+2007-11-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/types.m4 (_AC_TYPE_LONG_LONG_SNIPPET): Make comment match
+ gnulib.
+
+2007-11-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4: Fix a couple of comment typos.
+
+ * lib/m4sugar/m4sh.m4 (AS_TMPDIR): Use $as_me, not $me.
+
+2007-11-13 Jim Meyering <meyering@redhat.com>
+
+ Clean up the rule to create "expr".
+ * tests/Makefile.am (expr): Don't redirect directly to target.
+ Redirect just once, not for each echo statement.
+ Use $@, not literal "expr".
+
+2007-11-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ Don't worry about preprocessor when testing long long.
+ See: http://lists.gnu.org/archive/html/bug-gnulib/2007-11/msg00075.html
+ * doc/autoconf.texi (Preprocessor Arithmetic): New section.
+ (AC_TYPE_LONG_LONG_INT, AC_TYPE_UNSIGNED_LONG_LONG_INT):
+ These no longer check for preprocessor flaws.
+ * lib/autoconf/types.m4 (_AC_TYPE_LONG_LONG_SNIPPET):
+ Do not check for preprocessor flaws.
+
+2007-11-13 Jim Meyering <meyering@redhat.com>
+
+ Adapt dependencies, now that a version change doesn't modify configure.ac
+ * GNUmakefile: Remove "make clean" kludge.
+ * lib/m4sugar/Makefile.am (version.m4): Depend on Makefile, not
+ configure.ac.
+ Don't redirect directly to target.
+ Use $@, not literal "version.m4".
+
+2007-11-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Making testsuite Scripts): Document
+ ":;{" shorthand as in previous patch.
+
+2007-11-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Builtins): Document problem
+ with { ... } a bit more clearly. Suggest ":;{" as a shorthand
+ for the workaround.
+ * lib/m4sugar/Makefile.am (version.m4): Detect 'echo' failure.
+ Use ":;{" shorthand.
+ * tests/Makefile.am ($(srcdir)/package.m4): Likewise.
+
+2007-11-12 Jim Meyering <meyering@redhat.com>
+
+ Add more non-srcdir build support.
+ * GNUmakefile (dummy): Split a long line.
+ Add -v option to autoreconf invocation.
+
+ Remove the autoreconf-provided INSTALL, so that we regenerate it.
+ * GNUmakefile (dummy): Remove INSTALL.
+
+ Remove racy commands to build scripts in bin/ and tests/.
+ * man/Makefile.am (.x.1): Now that scripts in bin/ and tests/
+ are guaranteed to be built, remove the rules that tried to build
+ them. Before, with a parallel build, these rules could lead to
+ two processes writing tests/wrapper.in concurrently.
+
+ Build in man/ only *after* building in bin/ and tests/.
+ * Makefile.am (SUBDIRS): The man-page-creation process runs $(MAKE)
+ in both bin/ and tests/.
+
+ Accommodate non-srcdir build-from-checkout.
+ * build-aux/git-version-gen: Require an additional parameter: $srcdir.
+ Use git's --git-dir=$srcdir/.git option.
+ Add quotes, in case tarball_version_file contains shell meta-characters.
+ * GNUmakefile (_curr-ver): Pass $(srcdir) to git-version-gen.
+ * configure.ac: Pass "." to git-version-gen.
+
+ Avoid spurious test failures due to version skew.
+ * GNUmakefile (dummy): Run $(MAKE) clean after autoreconf -i.
+
+2007-11-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Avoid warnings about conftest.dSYM directories on Mac OS X Leopard.
+ * lib/autoconf/general.m4 (_AC_LINK_IFELSE, _AC_RUN_IFELSE):
+ Remove conftest.dSYM directory.
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT)
+ (_AC_LANG_PROGRAM_C_, _AC_FC_MAIN, __AC_FC_NAME_MANGLING):
+ Remove `conftest.*' recursively.
+ * lib/autoconf/lang.m4 (AC_LINK_IFELSE): Likewise.
+ * lib/autoconf/specific.m4 (_AC_SYS_LARGEFILE_MACRO_VALUE):
+ Likewise.
+ (_AC_COMPILER_OBJEXT_REJECT): Reject *.dSYM.
+ * THANKS: Update.
+ Report and analysis by Jeff Squyres and Peter O'Gorman.
+
+2007-11-12 Benoit Sigoure <tsuna@lrde.epita.fr>
+
+ Fix typos in variable names.
+ * tests/semantics.at (test for AC_CHECK_LIB): s/at_m/ac_m/.
+
+2007-11-11 Benoit Sigoure <tsuna@lrde.epita.fr>
+
+ Document that $((expression)) is not portable.
+ * doc/autoconf.texi (Shell Substitutions): Here.
+
+2007-11-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Ignore configure --help* errors due to LINENO-impaired shells.
+ * tests/torture.at (Configuring subdirectories, Deep Package):
+ In the --help* tests in read-only trees, make `.' temporarily
+ writable again for the `stderr' file, and ignore errors due to
+ the attempt to write configure.lineno.
+ Report by Patrick Welche.
+
+2007-11-10 Jim Meyering <meyering@redhat.com>
+
+ Generate package.m4 in build-dir, not srcdir.
+ * tests/Makefile.am (package.m4): Adjust target.
+ Don't redirect directly to $@.
+ (CLEANFILES): Add package.m4.
+ ($(TESTSUITE)): Depend on just-built package.m4, not the one
+ in $(srcdir).
+ When running $(AUTOTEST), search "." before searching $(srcdir).
+
+ Avoid a race condition that would make parallel "distclean" fail.
+ * tests/Makefile.am (distclean-generic): Replace the default,
+ automake-provided rule with an identical one, but with an additional
+ dependency on distclean-local. Simply adding the dependency would
+ cause automake not to emit the rule at all.
+ * BUGS: Building with -jN works, now.
+
+ Distribute git-version-gen.
+ * Makefile.am (EXTRA_DIST): Add build-aux/git-version-gen,
+ since GNUmakefile is distributed, and requires it for dist* rules.
+
+ Remove two more generated files from version control.
+ * INSTALL: Remove generated file.
+ * lib/autoscan/autoscan.list: Remove generated file.
+
+2007-11-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * GNUmakefile (PATH): Remove stray apostrophes; they become
+ part of PATH, which isn't wanted here.
+
+2007-11-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ New config files output variable `top_build_prefix'.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILE): Substitute
+ `top_build_prefix'.
+ * doc/autoconf.texi (Preset Output Variables): Document it.
+ * NEWS: Update.
+ Report by Bob Friesenhahn.
+
+ Avoid expr for arithmetic evaluation if the shell accepts $((...)).
+ * lib/autotest/general.m4 (AT_INIT) <at_func_arith>: New
+ function, to parametrize arithmetic with expr vs. the shell.
+ Use it where possible.
+ Suggestion by Benoit Sigoure.
+
+2007-11-03 Benoit Sigoure <tsuna@lrde.epita.fr>
+
+ Adjust the documentation of autotest WRT atlocal.
+ * doc/autoconf.texi (Making testsuite Scripts): It is not necessary,
+ when using Automake, to write a rule to produce atlocal, since it's
+ an AC_CONFIG_FILES. Mention that atlocal.in needs to be
+ distributed, not atconfig.in.
+
+2007-11-04 Eric Blake <ebb9@byu.net>
+
+ Update list information.
+ * README: Mention new autoconf-commit list.
+ * doc/autoconf.texi (Introduction): Mention autoconf-commit list.
+
+2007-11-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/functions.m4 (_AC_FUNC_MALLOC_IF): Fix comment typo.
+
+ * lib/m4sugar/Makefile.am (version.m4): Another bash bug workaround.
+
+ * build-aux/.gitignore: Ignore mkinstalldirs.
+
+ * doc/autoconf.texi (autoreconf Invocation): Fix an underfull line.
+
+2007-11-03 Jim Meyering <meyering@redhat.com>
+
+ s/-/./ in snapshot version string: 2.61a-256-8b556 -> 2.61a.256-8b556
+ * build-aux/git-version-gen: This syncs from coreutils.
+
+ Adjust the build procedure so "make check" works reliably.
+ * README-hacking: Include an extra step between "make" and
+ "make check" to ensure that the latter passes.
+
+ Use just-built tools, when possible.
+ * GNUmakefile (PATH): Set and export here, ...
+ (dummy): ... rather than here.
+
+2007-11-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ and Andreas Schwab <schwab@suse.de>
+
+ * tests/Makefile.am ($(srcdir)/package.m4): Work around bash
+ exit status bug.
+
+2007-11-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure.ac (AC_PREREQ): Require version 2.60, for
+ AC_PROG_SED, AC_PROG_GREP.
+
+2007-11-02 Benoit Sigoure <tsuna@lrde.epita.fr>
+ and Jim Meyering <meyering@redhat.com>
+ and Andreas Schwab <schwab@suse.de>
+ and Eric Blake <ebb9@byu.net>
+
+ Document a bug in GNU Bash with compound commands and redirections.
+ * doc/autoconf.texi (Limitations of Builtins): Mention that GNU
+ Bash doesn't properly set $? when `{ ... } >/bad' fails, and give
+ workaround.
+
+2007-11-03 Eric Blake <ebb9@byu.net>
+
+ Support m4 1.4.5 in testsuite.
+ * tests/torture.at (Define a newline): Exclude line numbers in
+ error message.
+ Reported by Ralf Wildenhues.
+
+2007-11-03 Jim Meyering <meyering@redhat.com>
+
+ Remove automake-provided files from version control.
+ * build-aux/elisp-comp: Remove file.
+ * build-aux/install-sh: Remove file.
+ * build-aux/missing: Remove file.
+ * build-aux/mdate-sh: Remove file.
+ * build-aux/.gitignore: New file.
+ Suggestion from Ralf Wildenhues.
+
+2007-11-03 Eric Blake <ebb9@byu.net>
+
+ Adjust version comparison to account for git snapshot numbers.
+ * lib/m4sugar/m4sugar.m4 (_m4_version_unletter): Also treat - as a
+ component separator.
+ * doc/autoconf.texi (Number processing Macros)
+ <m4_version_compare>: Document this change.
+ * tests/m4sugar.at (m4@&t@_version_compare): Test it.
+
+2007-10-30 Bruno Haible <bruno@clisp.org>
+
+ * lib/autoconf/types.m4 (_AC_TYPE_LONG_LONG_SNIPPET): New macro,
+ extracted from AC_TYPE_LONG_LONG_INT and AC_TYPE_UNSIGNED_LONG_LONG_INT.
+ (AC_TYPE_LONG_LONG_INT, AC_TYPE_UNSIGNED_LONG_LONG_INT): Use it.
+ Fixes problem with Sun C 5.[0-8] in 32-bit mode, reported in
+ <http://lists.gnu.org/archive/html/autoconf-patches/2007-10/msg00210.html>
+ Suggested by Paul Eggert.
+
+2007-10-28 Jim Meyering <meyering@redhat.com>
+
+ * README-hacking: Autoconf, Automake, and Perl are required to build.
+ List Gzip and Tar separately. Suggested by Ralf Wildenhues.
+
+2007-10-28 Jim Meyering <meyering@redhat.com>
+
+ README-hacking: Recommend running autoreconf -vi.
+ * GNUmakefile (dummy): Use autoreconf -i, with appropriate PATH,
+ so that we use just-built tools when they're available.
+ Suggestions from Ralf Wildenhues.
+
+2007-10-28 Jim Meyering <meyering@redhat.com>
+
+ Make inter-release --version output more useful.
+
+ Now, each unofficial build has a version "number" like 2.61a-19-58dd,
+ which indicates that it is built using the 19th change set
+ (in _some_ repository) following the "v2.61a" tag, and that 58dd
+ is a prefix of the commit SHA1.
+ * build-aux/git-version-gen: New file.
+ * configure.ac: Run it to set the version.
+ (AM_INIT_AUTOMAKE): Don't check NEWS here.
+ * Makefile.am (dist-hook): Arrange so that .version appears only
+ in distribution tarballs, never in a checked-out repository.
+ * .gitignore: Add .version here, too. Just in case.
+ * tests/Makefile.am ($(srcdir)/package.m4): Depend on Makefile,
+ not configure.ac, now that the version number changes automatically.
+
+ Ensure that $(VERSION) is up to date for dist-related targets.
+ * GNUmakefile: Arrange to rerun autoconf, if the version reported by
+ git-version-gen doesn't match $(VERSION), but only for dist targets.
+
+2007-10-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix `Deep Package' failure with a configure script early in PATH
+ * tests/torture.at (Deep Package): Add `.' early in PATH.
+ Report by Jim Meyering.
+
+2007-10-27 Jim Meyering <meyering@redhat.com>
+
+ Remove all generated files from version control.
+ * aclocal.m4: Remove.
+ * configure: Remove.
+ * Makefile.in: Remove, along with all other Makefile.in in subdirs.
+ * .gitignore: Add aclocal.m4, configure and Makefile.in. Sort.
+ * README-hacking: New file: how to build from just-checked-out sources.
+
+2007-10-23 Eric Blake <ebb9@byu.net>
+
+ Improve corner case of m4_expand.
+ * lib/m4sugar/m4sugar.m4 (m4_expand, _m4_expand): Rewrite more
+ efficiently.
+ * tests/m4sh.at (AS@&t@_HELP_STRING): Test overquoted comma.
+ * doc/autoconf.texi (Evaluation Macros) <m4_expand>: Update
+ documentation.
+
+2007-10-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/make-stds.texi: Update from gnulib.
+
+2007-10-22 Paul Eggert <eggert@cs.ucla.edu>
+ and Eric Blake <ebb9@byu.net>
+
+ * lib/autoconf/c.m4 (AC_C_RESTRICT): Work around Sun C++ compatibility
+ problem reported by Bruno Haible in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2007-10/msg00027.html>.
+
+2007-10-22 Eric Blake <ebb9@byu.net>
+
+ * doc/autoconf.texi (Particular Types): Mention bug in HP-UX 11.00
+ preprocessor.
+
+2007-10-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ Don't check for bug in HP-UX 11.00 cpp.
+ * lib/autoconf/types.m4 (AC_TYPE_UNSIGNED_LONG_LONG_INT):
+ Use -1ull rather than -1u, since that causes problems with gnulib; see
+ <http://lists.gnu.org/archive/html/bug-gnulib/2007-10/msg00329.html>.
+
+2007-10-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/autotest.at (Backquote command substitution)
+ (Multiline backquote command substitution)
+ (Parenthetical command substitution)
+ (Multiline parenthetical command substitution): Fix typos in
+ test names.
+
+2007-10-21 Eric Blake <ebb9@byu.net>
+
+ * configure: Regenerate.
+
+2007-10-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix config status generation with Tru64 ksh.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Fix
+ escaping of backslash in here-documents.
+
+ Fix `Deep Package' test failure on FreeBSD.
+ * tests/torture.at (Deep Package): Do not add `.' to $PATH
+ unnecessarily. Do not try running `/bin/sh configure' with a
+ configure script to be found in $PATH, if the shell does not do
+ this resolution. Fixes test failure on FreeBSD.
+
+ Fix config header generation with AIX awk.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS_PREPARE): In awk
+ script, use helper array D_is_set, as `" 0"' does not evaluate
+ to true for AIX awk.
+
+2007-10-21 Eric Blake <ebb9@byu.net>
+
+ * tests/autotest.at (Banners): Reinstate test, with typo
+ corrected.
+
+2007-10-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autotest/general.m4 (Defaults): Validate input ranges ...
+ <at_func_validate_ranges>: ... using this new function.
+ * tests/autotest.at (Keywords and ranges): Test invalid ranges.
+ Test --list with ranges and keywords.
+ (Banners): Remove one now-failing test.
+
+2007-10-20 Eric Blake <ebb9@byu.net>
+
+ Fix testsuite --list subset.
+ * lib/autotest/general.m4 (AT_INIT) <at_list_p>: Swap newlines
+ back to spaces, before listing subset of tests.
+ Reported by Ralf Wildenhues.
+
+2007-10-19 Eric Blake <ebb9@byu.net>
+
+ s/parenthesis/parentheses/ where appropriate.
+ * doc/autoconf.texi: Fix typos.
+ * lib/m4sugar/m4sugar.m4: Likewise.
+ Reported by Ralf Wildenhues.
+
+ Document m4_expand limitation.
+ * lib/m4sugar/m4sugar.m4 (m4_expand): Mention problem with
+ unbalanced parse.
+ * doc/autoconf.texi (Pretty Help Strings, Evaluation Macros)
+ (Writing Testsuites): Mention limitations inherited from
+ m4_expand.
+
+ Improve AT_BANNER handling.
+ * lib/autotest/general.m4 (BANNERS): New named diversion.
+ (TESTS_END): Diversion no longer used.
+ (AT_INIT) <at_func_banner, BANNERS>: Factor all banners into a
+ shell function, which prints only as needed, using an associative
+ array of banner text from a special diversion.
+ <PARSE_ARGS_END>: No longer need awk to find banners.
+ <TESTS>: Banners are no longer processed by main driver loop, so
+ we no longer need case statement.
+ (AT_BANNER): Rewrite to populate new diversion.
+ (AT_SETUP): Each test invokes its own banner. No output is needed
+ to the TESTS diversion.
+ * doc/autoconf.texi (Writing Testsuites): Document slight
+ semantics change.
+ * tests/autotest.at (AT_BANNERS): Enhance test.
+ * NEWS: Document AT_BANNER.
+
+ Document and test AT_BANNER.
+ * doc/autoconf.texi (Writing Testsuites): Document AT_BANNER.
+ * tests/autotest.at (AT_CHECK_EGREP): Share between tests.
+ (AT_CHECK_BANNERS): New test.
+
+ Doc touchups.
+ * doc/autoconf.texi (Text processing Macros) <m4_strip>
+ <m4_text_wrap>: Clarify and fix typos.
+
+2007-10-18 Eric Blake <ebb9@byu.net>
+
+ Ignore `make dist' changelogs in testsuite.log.
+ * lib/autotest/general.m4 (AT_INIT) <ChangeLogs>: Prune
+ directories matching AT_PACKAGE_TARNAME-*.
+
+ Fix AT_TESTED, AT_KEYWORDS.
+ * lib/m4sugar/m4sugar.m4 (m4_append_uniq): Warn if separator
+ occurs in string, as duplicates may be added.
+ (_m4_append_uniq): New helper macro.
+ (m4_append_uniq_w): New macro.
+ * lib/autotest/general.m4 (AT_TESTED, AT_KEYWORDS): Fix
+ duplication bug by using new macro.
+ (AT_INIT) <at_tested>: Restore newline separators. Invoke tested
+ programs with stdin redirected, so programs that don't
+ understand --version won't try to behave interactively.
+ * tests/autotest.at (Tested programs): Catch this bug.
+ * tests/m4sugar.at (m4@&t@_append): Test new macro.
+ * tests/local.at (AT_TESTED): Add m4, perl.
+ * doc/autoconf.texi (Text processing Macros): Document
+ m4_append_uniq_w, and update text on m4_append.
+ * NEWS: Document the addition.
+
+2007-10-17 Eric Blake <ebb9@byu.net>
+
+ Function cleanup.
+ * lib/autotest/general.m4 (_AT_CREATE_DEBUGGING_SCRIPT): Convert
+ from m4 macro...
+ (AT_INIT) <at_func_create_debugging_script>: ...to shell
+ function.
+ (AT_INIT): Defer function declarations until after --help,
+ --version. Format functions consistently, trying to fit in 80
+ columns.
+ (TEST_FUNCTIONS): Based on recent changes, rename...
+ (TEST_GROUPS): ...to this.
+
+ Reject FreeBSD m4.
+ * m4/m4.m4 (AC_PROG_GNU_M4): Also check for frozen file support.
+ * configure: Regenerate.
+ Reported by Bob Friesenhahn.
+
+ Test recent additions.
+ * tests/m4sugar.at (m4@&t@_map, m4@&t@_combine)
+ (m4@&t_max and m4@&t_min): New tests.
+ * doc/autoconf.texi (Evaluation Macros) <m4_apply>: Enhance
+ description.
+
+2007-10-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * TODO: multiline args in config files and headers work now.
+
+ Autotest: do not use shell functions for individual tests.
+ * lib/autotest/general.m4 (AT_INIT) <at_func_test>: Merely
+ extract the source test source, do not invoke it.
+ (AT_SETUP, AT_CLEANUP): Source test code outside shell function.
+ * tests/autotest.at (Fallacy): Actually let the inner suite fail,
+ expect exit status of 1.
+ * tests/autotest.at (Skip): New test, for bogus zsh exit status.
+
+ * lib/autotest/general.m4 (at_func_test): Fix test extraction
+ script.
+
+2007-10-17 Eric Blake <ebb9@byu.net>
+
+ Fix m4_combine for empty suffix list.
+ * lib/m4sugar/m4sugar.m4 (m4_combine): Check for suffix list.
+ * doc/autoconf.texi (Text processing Macros): Document this.
+
+ Add m4_combine, based on Libtool's lt_combine.
+ * lib/m4sugar/m4sugar.m4 (m4_combine): New macro.
+ * doc/autoconf.texi (Text processing Macros): Document it.
+ * NEWS: Likewise.
+
+2007-10-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Fix `configure --help=recursive' in unconfigured/read-only trees.
+ * lib/m4sugar/m4sh.m4 (_AS_LN_S_PREPARE): Avoid errors when `.'
+ is not writable, use 'cp -p' in this case, in the hope that it
+ will not actually be needed. Still try removing files, in case
+ of other write errors.
+ * lib/autoconf/general.m4 (_AC_INIT_SRCDIR): For ac_confdir,
+ use $as_myself, not $0.
+ (_AC_INIT_HELP): For --help=recursive, if the subdir does not
+ exist, try again in the the source tree. This change assumes
+ that the subpackage configure script is capable of running
+ --help=recursive in the source tree.
+ * tests/torture.at (Configuring subdirectories, Deep Package):
+ Adjust tests to expose both issues, also try invocation as
+ `sh configure ...' and plain `configure ...' with PATH adjusted.
+ * NEWS, THANKS: Update.
+ Report by Hans Ulrich Niedermann.
+
+2007-10-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ Check for 64-bit int errors in HP-UX 10.20 preprocessor.
+ Problem reported by H.Merijn Brand in
+ <http://lists.gnu.org/archive/html/bug-tar/2007-10/msg00018.html>.
+ * lib/autoconf/types.m4 (AC_TYPE_LONG_LONG_INT):
+ (AC_TYPE_UNSIGNED_LONG_LONG_INT):
+ Check that preprocessor handles 64-bit ints, too.
+
+2007-10-16 Eric Blake <ebb9@byu.net>
+
+ m4_map is a looping construct.
+ * lib/m4sugar/m4sugar.m4 (m4_map, _m4_map, m4_map_sep): Move.
+
+ Fix m4_map, and add some more utility macros.
+ * lib/m4sugar/m4sugar.m4 (m4_apply, m4_count, m4_dquote_elt)
+ (m4_echo, m4_make_list): New documented macros.
+ (_m4_quote, _m4_shift2): New helper macros.
+ (m4_map): Change semantics to allow calling macro without
+ arguments.
+ (m4_map_sep): Likewise. Also change semantics to quote separator,
+ to match m4_join and m4_append.
+ (m4_version_unletter): Fix use of m4_map.
+ * doc/autoconf.texi (Evaluation Macros): Document m4_apply,
+ m4_count, m4_dquote_elt, m4_echo, m4_make_list.
+ (Text processing Macros): Mention m4_dquote as a faster
+ alternative to joining with commas.
+ (Looping constructs): Document m4_map, m4_map_sep.
+ * NEWS: Mention new macros.
+
+ A few more m4sugar improvements, to benefit libtool.
+ * lib/m4sugar/m4sugar.m4 (m4_bpatsubsts, _m4_shiftn): Reduce size
+ of expansion by avoiding extra uses of $@.
+ (m4_shiftn): Avoid extra dnl, and forbid shifting by 0.
+ (_m4_cdr): New helper macro.
+ (_m4_map, m4_map_sep): Use it to reduce size of expansion.
+ (_m4_shift3): New helper macro.
+ (_m4_foreach): Swap argument order, and use new macro to reduce
+ size of expansion.
+ * doc/autoconf.texi (Looping constructs) <m4_shiftn>: Mention that
+ count must be positive.
+
+ * doc/autoconf.texi (Evaluation Macros) <m4_expand>: Fix typo.
+ Reported by Ralf Wildenhues.
+
+2007-10-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Portable Shell): Improve description of zsh
+ 4.x function subshell bug with exit and trap.
+
+2007-10-15 Eric Blake <ebb9@byu.net>
+
+ Enhance AS_HELP_STRING.
+ * lib/m4sugar/m4sugar.m4 (m4_text_wrap): Don't expand arguments,
+ and reduce number of expansions.
+ * lib/m4sugar/m4sh.m4 (AS_HELP_STRING): Rework to use m4_expand,
+ and to take indent and wrap column numbers.
+ * tests/m4sh.at (AS@&t@_HELP_STRING): Update the test.
+ * doc/autoconf.texi (Pretty Help Strings): Document details about
+ arguments.
+ (Text processing Macros): Minor tweaks.
+ * NEWS: Document this change.
+
+ Fix 2007-10-03 regression with AT_SETUP([a, b]).
+ * lib/m4sugar/m4sugar.m4 (m4_expand): New macro.
+ (m4_text_box): Use it.
+ * lib/autotest/general.m4 (AT_SETUP): Use it.
+ * lib/m4sugar/m4sh.m4 (_AS_RUN): Use it.
+ * tests/autotest.at (AT_CHECK_AT_TITLE_CHAR): Test this.
+ * NEWS: Revert caveat about semantics change on comma.
+ * doc/autoconf.texi (Evaluation Macros): Document m4_expand.
+
+2007-10-13 Eric Blake <ebb9@byu.net>
+
+ Change m4_join to match libtool's ltsugar semantics.
+ * lib/m4sugar/m4sugar.m4 (m4_join): Just define this, not defun.
+ Ignore empty arguments, using...
+ (_m4_join): ...this new helper.
+ * tests/m4sugar.at (m4@&t@_join): New test.
+ * doc/autoconf.texi (Text processing Macros): Document new
+ semantics of m4_join.
+
+ Make AC_PREREQ faster and more robust.
+ * lib/m4sugar/m4sugar.m4 (m4_ignore, m4_unquote): New macros.
+ (m4_version_prereq): Inline constant expansions.
+ (m4_list_cmp): Reduce number of expansions, by avoiding m4_case.
+ Rewrite in terms of [] list, not () list.
+ (_m4_list_cmp, _m4_version_unletter): New helper macros.
+ (m4_version_unletter): Write wrapper around new implementation to
+ preserve old semantics.
+ (m4_version_compare): Pass correct type of list, and avoid
+ overhead of flattening expressions too early.
+ (m4_do): Move to be near other quoting macros.
+ (m4_max, m4_min): Always result in decimal output.
+ * doc/autoconf.texi (Looping constructs): Add m4_car, m4_cdr.
+ Move m4_do...
+ (Evaluation Macros): ...here. Add m4_ignore, m4_unquote.
+ (Text processing Macros): Move m4_version_compare...
+ (Number processing Macros): ...to this new node; document m4_cmp,
+ m4_list_cmp, m4_sign, m4_max, m4_min.
+ * tests/m4sugar.at (m4@&t@_version_compare): Enhance test, to pick
+ up on bugs fixed by this patch.
+ * NEWS: Document new macros.
+
+2007-10-12 Eric Blake <ebb9@byu.net>
+
+ * doc/autoconf.texi (Text processing Macros): Fix bad merge.
+ (Reporting Messages): Fix underfull hbox.
+
+ Some more m4sugar documentation.
+ * lib/m4sugar/m4sugar.m4: Clean up macro order.
+ * doc/autoconf.texi (Programming in M4): Lighten the warning on
+ using m4sugar; it is stabilizing and useful.
+ (Redefined M4 Macros): Touch up wording on M4 builtins; sort. Add
+ m4_divert, m4_undivert, __file__, __line__, __oline__.
+ (Diagnostics): New node, documenting m4_assert, m4_errprintn,
+ m4_fatal, m4_location, m4_warn.
+ (Diversion support): New node, documenting m4_divert_push,
+ m4_divert_pop, m4_divert_text, m4_divert_once.
+ (Text processing Macros): Sort. Add m4_flatten, m4_join,
+ m4_newline, m4_strip, m4_text_box, m4_text_wrap.
+ (Reporting Messages): Mark AC_DIAGNOSE, AC_WARNING, and AC_FATAL
+ as obsolescent.
+ (Printing Messages): Change cross-reference.
+
+ Document interaction of recent m4_append change with Libtool HEAD.
+ * lib/m4sugar/m4sugar.m4 (m4_append): Document semantics change.
+ (m4_append_uniq): Add new parameters, based on lt_append_uniq.
+ * tests/m4sugar.at (m4@&t@_append): New test.
+ * NEWS: Document semantics change.
+ * doc/autoconf.texi (Text processing Macros): Likewise.
+
+ s/AC_VERSION/AC_AUTOCONF_VERSION/.
+ * doc/autoconf.texi (Versioning): Change the name.
+ * NEWS: Likewise.
+ * lib/autoconf/general.m4 (AC_AUTOCONF_VERSION): Likewise.
+ * tests/tools.at (autoconf: AC_AUTOCONF_VERSION): Likewise.
+ Suggested by Ralf Wildenhues.
+
+ Namespace cleanup.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE)
+ (_AC_OUTPUT_HEADERS_PREPARE): Convert here-doc delimiters into
+ autoconf namespace.
+ * doc/autoconf.texi (Programming in M4sugar, Forbidden Patterns)
+ (Programming in M4sh, Macro Names): Beef up description of
+ namespaces reserved for autoconf.
+ * configure: Regenerate.
+
+2007-10-12 Eric Blake <ebb9@byu.net>
+ and Paolo Bonzini <bonzini@gnu.org>
+
+ Speed up execution of subset of testsuite.
+ * lib/autotest/general.m4 (TEST_FUNCTIONS): New diversion.
+ (AT_INIT) <at_func_test>: New shell function.
+ (AT_INIT) <at_myself>: New variable, set to absolute $as_myself.
+ (AT_INIT) <at_test_source> New variable, names file that holds
+ current test function definition.
+ (AT_SETUP): Start the shell function at_func_test_#, into the
+ TEST_FUNCTIONS diversion.
+ (AT_CLEANUP): End the shell function. Simplify the TESTS
+ diversion to invoke the function.
+
+2007-10-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * .gitignore: Ignore tags and TAGS files.
+
+2007-10-11 Eric Blake <ebb9@byu.net>
+
+ Config header generation followup.
+ * lib/autoconf/general.m4 (_AC_DEFINE_Q): Check for raw newlines,
+ which won't work with the preprocessor nor with the awk
+ implementation.
+ * tests/torture.at (Define a newline): Test raw newline detection,
+ removing the XFAIL.
+ * doc/autoconf.texi (Defining Symbols): Document recent change to
+ allow backslash-newline.
+ * THANKS: Update.
+
+2007-10-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autotest/general.m4: Put function braces in separate line.
+
+2007-10-10 Eric Blake <ebb9@byu.net>
+
+ Avoid some overhead from m4_defn and m4_popdef.
+ * lib/m4sugar/m4sugar.m4 (m4_defn, m4_popdef, m4_undefine): Only
+ pass on first argument, since we are documented that way.
+ (m4_for, m4_append_uniq, m4_text_wrap): Optimize out defined-ness
+ check where it is safe to do so.
+ (m4_append): Likewise, and quote the separator.
+ (m4_text_box): Likewise, and avoid regex, also be robust to
+ expansion and quadrigraphs.
+
+ Another AC_DEFINE speedup.
+ * lib/autoconf/general.m4 (AC_DEFINE_TRACE): Move parameter
+ elision...
+ (_AC_DEFINE_Q): ...here, and only do it once.
+ * lib/autoconf/functions.m4 (AC_CHECK_FUNCS): Avoid overquoting.
+ * lib/m4sugar/m4sh.m4 (AS_LITERAL_IF): Fix m4_defn overquoting
+ introduced 2007-10-05.
+
+ Whitespace cleanup.
+ * lib/autoconf/general.m4: Use consistent indentation.
+ * configure: Regenerate.
+
+ * NEWS: Announce recent round of speed optimizations.
+
+2007-10-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * NEWS: Announce shell function usage in Autotest.
+
+2007-10-10 Eric Blake <ebb9@byu.net>
+ and Paul Eggert <eggert@cs.ucla.edu>
+
+ Reduce number of forks at startup.
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Speed up NLS
+ sanitization.
+ * configure: Regenerate.
+
+2007-10-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ and Paul Eggert <eggert@cs.ucla.edu>
+
+ Use awk for config header generation.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Fix comments.
+ (_AC_OUTPUT_HEADERS_PREPARE): New macro. Rewrite of the config
+ header machinery for use with awk and placement outside the main
+ config.status instantiation loop. Retain multi-line defines
+ through backslash-newline combinations, do not split the script
+ any more.
+ (_AC_OUTPUT_HEADER): Simplify accordingly, use $AWK.
+ (_AC_OUTPUT_MAIN_LOOP): Call _AC_OUTPUT_HEADERS_PREPARE if
+ needed.
+ (AC_OUTPUT_MAKE_DEFS): Remove backslash-newline combinations
+ from define values.
+ * NEWS: Update.
+ * tests/torture.at (#define header templates): Extend test by
+ several more cases: white space before and after `#', macros
+ with parameters in config.hin and as defines, multi-line macro
+ values.
+ (Torturing config.status): Use a define value twice the length
+ in order to exercise the awk literal string limit.
+ (Substitute and define special characters): Also try special
+ delimiter, to exercise the special-case code.
+ Suggestion by Eric Lemings.
+
+2007-10-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/local.at (AT_COPYRIGHT): Bump copyright years.
+
+2007-10-09 Eric Blake <ebb9@byu.net>
+
+ Improve header of bin/autoconf.
+ * lib/m4sugar/m4sh.m4 (AS_INIT): Add a 'generated from' notice.
+ * lib/autoconf/general.m4 (_AC_INIT_NOTICE): Override new notice
+ from M4sh.
+ * bin/autoconf.as: Put copyright up front in generated file.
+
+ * bin/autoconf.as (exit_missing_arg): Font-lock tweak.
+
+2007-10-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/install.texi (Basic Installation): Document `uninstall'.
+ * INSTALL: Regenerate.
+ Suggestion by Roberto Bagnara.
+
+2007-10-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): V7 awk had 'index'.
+
+ Adjust doc. to match latest gnulib.
+ * build-aux/texinfo.tex: Sync from gnulib.
+ * doc/standards.texi: Likewise.
+ * doc/autoconf.texi (Copying This Manual): Rename to "GNU Free
+ Documentation License" and remove the subsection. This simplifies
+ the manual a bit and is more like what other GNU projects do
+ nowadays.
+
+2007-10-08 Eric Blake <ebb9@byu.net>
+
+ Use recent changes.
+ * configure: Regenerate.
+
+ Fix regression in m4_text_wrap from 2007-10-05.
+ * lib/m4sugar/m4sugar.m4 (m4_max, m4_min): New macros.
+ (m4_sign): Sort.
+ (m4_text_wrap): Fix off-by-one error in rewrite from m4_for to
+ m4_format.
+ * lib/autotest/general.m4 (AT_SETUP): Avoid negative width.
+ * tests/autotest.at (Long test title, Longer test title): Test
+ this fix, beyond what AS_HELP_STRING already tests.
+
+ Avoid m4 warnings on bad m4_format usage.
+ * lib/m4sugar/m4sugar.m4 (m4_text_wrap): Use %*s, in case width
+ evaulates to 0.
+ * lib/autotest/general.m4 (AT_SETUP): Likewise; also ensure that
+ enough arguments are provided.
+
+2007-10-06 Paolo Bonzini <bonzini@gnu.org>
+
+ * doc/autoconf.texi (Shell portability): Document shell function
+ portability.
+
+2007-10-06 Paolo Bonzini <bonzini@gnu.org>
+
+ * lib/autotest/general.m4 (AT_INIT): Add at_func_diff_devnull,
+ at_func_check_skip, at_func_check_status, at_func_filter_trace,
+ at_func_log_failure shell functions. Use test -s to avoid
+ useless diff invocations.
+ (at_func_check_newline): Renamed from at_check_newline.
+ (AT_SETUP): Define AT_captured_files to empty.
+ (AT_DIFF_STDERR(*), AT_DIFF_STDOUT(*)): New, extracted from _AT_CHECK.
+ (_AT_CHECK): Replace m4_case with m4_ifdef/m4_indir. Use all
+ the shell functions.
+
+2007-10-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ Don't assume "." is writeable, for commands like "autoconf --version".
+ * lib/m4sugar/m4sh.m4 (_AS_PATH_SEPARATOR_PREPARE): Use a
+ different heuristic instead, one that doesn't rely on creating
+ files.
+
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Handle "///"
+ correctly.
+
+2007-10-05 Jim Meyering <meyering@redhat.com>
+
+ Avoid makeinfo warnings.
+ * doc/autoconf.texi (Redefined M4 Macros): Add a `,' after @xref.
+ (Looping constructs): Add ` ' after @defmac'd name, m4_do.
+
+2007-10-05 Eric Blake <ebb9@byu.net>
+
+ Resolve Python issue 1676135 regarding configure directory args.
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Strip trailing
+ slashes from directory arguments.
+ * tests/base.at (configure directories): New test.
+ * doc/autoconf.texi (Installation Directory Variables): Document
+ the change.
+ * NEWS: Likewise.
+ * THANKS: Update.
+ Reported by Björn Lindqvist.
+
+ Provide better short-circuiting operation.
+ * lib/m4sugar/m4sugar.m4 (m4_cond, m4_newline): New macros.
+ (m4_text_wrap): Use it. Also avoid useless m4_for.
+ * lib/m4sugar/m4sh.m4 (_AS_QUOTE_IFELSE, AS_LITERAL_IF): Use
+ new macro.
+ (_AS_IDENTIFIER_IF): Likewise, and fix bug when $1 is [,].
+ * lib/autotest/general.m4 (_AT_DECIDE_TRACEABLE): Use new macros
+ to avoid regexps.
+ * doc/autoconf.texi (Redefined M4 Macros): Expand m4_if
+ documentation. Sort m4_mkstemp, m4_undefine. Move m4_ifndef...
+ (Conditional constructs): ...here, to new section. Also document
+ m4_cond, m4_ifval, m4_n, m4_ifvaln, m4_ifset, m4_case, m4_bmatch,
+ m4_bpatsubsts, and m4_default.
+ (Looping constructs): Document m4_shiftn, m4_shift2, m4_shift3,
+ m4_do.
+
+2007-10-04 Eric Blake <ebb9@byu.net>
+
+ Fix recent testsuite failures.
+ * lib/autotest/general.m4 (AT_INIT, AT_SETUP): Double-quote text
+ that must not be re-expanded after AS_ESCAPE.
+ * lib/m4sugar/m4sh.m4 (_AS_IDENTIFIER_IF): Don't expand $1 when
+ checking if it is an identifier.
+
+ Whitespace cleanup.
+ * lib/autotest/general.m4 (_AT_CREATE_DEBUGGING_SCRIPT): Avoid
+ leading whitespace, as it caused space-tab in testsuite.
+ (AT_INIT): Avoid trailing newlines in testsuite.
+
+ One more round of m4_foreach_w speedups.
+ * lib/m4sugar/m4sugar.m4 (m4_flatten): Only use regex if newline
+ is present.
+ (_m4_split): Avoid useless expansions inside definition. Move
+ argument defaulting...
+ (m4_split): ...here. Change alternate quote to something less
+ likely to appear in $1. Also, special case space as regexp...
+ (m4_foreach_w): ...to avoid regexp on single-term list.
+ (m4_default, m4_defn, m4_popdef, m4_undefine, _m4_foreach): Avoid
+ useless expansions inside definition.
+ * tests/m4sugar.at (m4@&t@_split): Add tests.
+
+2007-10-04 Paolo Bonzini <bonzini@gnu.org>
+
+ * general.m4 (AT_INIT): Add at_check_newline function.
+ (_AT_DECIDE_TRACEABLE): Include at_traceon test, use shell function.
+ (_AT_CHECK): Don't use at_trace_this.
+
+2007-10-04 Paolo Bonzini <bonzini@gnu.org>
+
+ Fix previous commit.
+ * lib/autotest/general.m4 (AT_LINE): Fix regex.
+
+2007-10-04 Eric Blake <ebb9@byu.net>
+
+ Speed up building testsuites.
+ * lib/autotest/general.m4 (AT_LINE): Only use regex when file
+ changed since last time. Use simpler regex.
+
+2007-10-03 Eric Blake <ebb9@byu.net>
+
+ Optimize checking for identifiers.
+ * lib/m4sugar/m4sh.m4 (AS_IDENTIFIER_IF, _AS_IDENTIFIER_IF): New
+ macros, more efficient than regex on m4_re_word.
+ * lib/autoconf/general.m4 (AC_SUBST, AC_DEFINE_TRACE_LITERAL):
+ Rewrite in terms of new macro. As a side-effect, AC_DEFINE can
+ now use @&t@.
+ * configure: Regenerate.
+
+ Remove some XFAILs, and make AT_SETUP output line up.
+ * lib/autotest/general.m4 (AT_SETUP): Only expand description
+ once; thereafter, use its expansion, properly quoted.
+ * tests/autotest.at (AT_CHECK_AT_TITLE): Also check macro
+ expansion with arguments, and check for aligned output.
+ (AT_CHECK_AT_TITLE_CHAR): Remove XFAILs for tests that now pass.
+ Add a test for macros with parameters.
+ * NEWS: Document the semantics change.
+ * tests/base.at: Fix test titles containing commas.
+ * tests/compile.at: Likewise.
+ * tests/tools.at: Likewise.
+ * tests/torture.at: Likewise.
+
+ Another round of regex avoidance.
+ * lib/m4sugar/m4sugar.m4 (m4_cr_alnum, m4_cr_all)
+ (_m4_define_cr_not, m4_cr_not_letters, m4_cr_not_LETTERS)
+ (m4_cr_not_Letters, m4_cr_not_digits, m4_cr_not_alnum)
+ (m4_cr_not_symbols1, m4_cr_not_symbols2): New macros, implementing
+ character ranges useful in m4_translit.
+ (m4_toupper, m4_tolower): Optimize the constant portion of
+ definition.
+ * lib/m4sugar/m4sh.m4 (AS_LITERAL_IF): Also reject @S|@ because it
+ creates $, and reject [] thanks to AS_TR_SH rewrite.
+ (AS_TR_SH, AS_TR_CPP): Use just translit, not bpatsubst.
+ (AS_ESCAPE): Factor...
+ (_AS_ESCAPE): ...into new macro, with second argument required.
+ Avoid regex in common case.
+ (_AS_QUOTE): Use new macro.
+
+ Whitespace cleanup.
+ * lib/autoconf/types.m4: Avoid space-tab.
+ * lib/m4sugar/m4sh.m4: Use tab consistently.
+
+2007-10-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/m4sugar/m4sugar.m4 (m4_shift2, m4_shift3): New macros.
+ (m4_shiftn): Remove no-longer-needed optimization. Perhaps we
+ should remove m4_shiftn entirely?
+ (m4_case, b4_bmatch, m4_map_sep, m4_bpatsubsts, m4_join):
+ Prefer m4_shift2 and m4_shift3 to m4_shiftn.
+ * lib/autoconf/lang.m4 (_AC_LANG_DISPATCH): Likewise.
+ * lib/m4sugar/m4sh.m4 (AS_CASE, AS_IF): Likewise.
+ * tests/autotest.at (AT_CHECK_AT_TEST): Likewise.
+
+2007-10-03 Eric Blake <ebb9@byu.net>
+
+ Comment touchups.
+ * lib/m4sugar/m4sugar.m4: Grammar fixes in comments.
+
+2007-10-02 Eric Blake <ebb9@byu.net>
+
+ Optimize appending text.
+ * lib/m4sugar/m4sugar.m4 (m4_append_uniq): Use index, not regular
+ expressions.
+
+ Optimize recursion.
+ * lib/m4sugar/m4sugar.m4 (m4_shiftn): This macro is called in a
+ lot of hot spots; optimize it for 2 and 3 shifts.
+
+ Optimize AC_PREREQ and other m4sugar numerics.
+ * lib/m4sugar/m4sugar.m4 (m4_sign): Write with m4_eval.
+ (m4_cmp): Compare arbitrary expressions, without overflow.
+ (m4_version_unletter): Also recognize capital letters.
+ (m4_version_compare): Avoid regex when splitting version number
+ string.
+
+2007-10-01 Eric Blake <ebb9@byu.net>
+
+ Once again, reject IRIX m4.
+ * m4/m4.m4 (AC_PROG_GNU_M4): Use indir builtin to root out non-GNU
+ implementations that ignore --trace.
+ * configure: Regenerate.
+ Reported by Ralf Wildenhues.
+
+ Fix regression in AC_DEFINE([macro(with_arg)]).
+ * lib/autoconf/general.m4 (AC_DEFINE_TRACE): Don't chop off close
+ quotes with a careless m4_substr.
+
+2007-09-30 Eric Blake <ebb9@byu.net>
+
+ Allow nameless iteration.
+ * lib/m4sugar/m4sugar.m4 (m4_for, _m4_for): Access variable
+ indirectly.
+ * tests/m4sugar.at (myvar): Test this.
+
+2007-09-29 Eric Blake <ebb9@byu.net>
+
+ Speed optimization: avoid m4 regex when other algorithms work.
+ * lib/m4sugar/m4sh.m4 (AS_LITERAL_IF): Rewrite without regex.
+ (_AS_QUOTE_IFELSE): Likewise.
+ * lib/m4sugar/m4sugar.m4 (m4_strip): Reduce from 3 to 2 regex.
+ (m4_bpatsubsts): Split...
+ (_m4_bpatsubsts): ...so that recursion can avoid patsubst on empty
+ regex.
+ (_m4_divert()): Define, to avoid m4 warning on `m4_divert'.
+ (m4_qlen): Optimize on short strings, to avoid regex.
+ (m4_sign): Avoid regex, and fix bug with `01' and `-0'.
+ * lib/autoconf/general.m4 (AC_CACHE_VAL): Rewrite without regex.
+ (AC_DEFINE_TRACE): Likewise.
+
+2007-09-28 Eric Blake <ebb9@byu.net>
+
+ Oops - my earlier 'optimization' caused a regression.
+ * tests/local.at (AT_CHECK_M4): Fix typo.
+
+2007-09-27 Eric Blake <ebb9@byu.net>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Catch even more common AC_CACHE_VAL mistakes.
+ * lib/autoconf/general.m4 (AC_CACHE_VAL): Warn if cache variable
+ lacks '_cv_', or if AC_SUBST appears in body.
+ * tests/base.at (AC_CACHE_CHECK): Test this change.
+
+2007-09-27 Stepan Kasal <kasal@ucw.cz>
+ and Eric Blake <ebb9@byu.net>
+
+ Autotest no longer caters to Ultrix redirection limitation.
+ * doc/autoconf.texi (Writing testsuite.at): Remove the
+ limitation that the first parameter of AT_CHECK cannot
+ contain redirection.
+ (File Descriptors): Mention that Ultrix limitation is no longer a
+ show-stopper in modern code.
+ * tests/local.at (AT_CHECK_M4): Fix for cases when the fourth
+ parameter is `stderr' or `experr'. Optimize if it was `ignore'.
+ * lib/autotest/general.m4 (AT_CHECK): Update comment.
+
+2007-09-27 Eric Blake <ebb9@byu.net>
+
+ Squelch changeword in m4sugar.
+ * lib/m4sugar/m4sugar.m4 (changeword): Disable this experimental
+ feature of m4 1.4.x.
+
+ Configure whitespace touchups.
+ * lib/autoconf/general.m4 (_AC_INIT_HELP): Fix alignment of
+ installation directories, and avoid TAB, in configure --help
+ output.
+ * configure.ac: Avoid extra trailing newline.
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Avoid space-tab.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Avoid TAB in
+ config.status --help output.
+ * configure: Regenerate.
+
+ Fix underquotation in AS_HELP_STRING.
+ * lib/m4sugar/m4sh.m4 (AS_HELP_STRING): Don't underquote lhs
+ argument.
+ * lib/m4sugar/m4sugar.m4 (m4_text_wrap): Don't underquote
+ first-prefix argument.
+ * tests/m4sh.at (AS@&t@_HELP_STRING): Test this fix.
+ * NEWS: Document AS_HELP_STRING fix.
+
+ Autotest formatting touchups.
+ * lib/autotest/general.m4 (HELP_TUNING): Avoid TAB in terminal
+ output.
+ (PATH): Simplify computation of new PATH.
+
+2007-09-26 Eric Blake <ebb9@byu.net>
+
+ Fix testsuite breakage in last patch.
+ * tests/autotest.at (AT_CHECK_AT_TITLE): Properly quote the
+ font-lock fix.
+ * tests/torture.at (@%:@define header templates): Rename, so that
+ output lines up correctly.
+
+ More font-lock happiness.
+ * tests/autotest.at (AT_CHECK_AT_TITLE_CHAR): Clean up font
+ confusion.
+
+2007-09-25 Eric Blake <ebb9@byu.net>
+
+ Typo fixes.
+ * lib/autoconf/general.m4 (AC_SUBST): Fix typo in comment.
+ * lib/m4sugar/m4sh.m4 (AS_VAR_PUSHDEF): Likewise.
+
+ Improve documentation of M4 parameter expansion.
+ * doc/autoconf.texi (Quoting and Parameters): New section.
+ (Quotation and Nested Macros): Improve wording.
+
+ Improve C99 detection.
+ * lib/autoconf/c.m4 (_AC_PROG_CC_C99): Add support for HP cc, and
+ avoid deprecation warning with icc.
+ * THANKS: Update.
+ Reported by Ted Bullock.
+
+2007-09-24 Jim Meyering <jim@meyering.net>
+
+ Whenever possible, use the vertical bar as sed delimiter.
+ * lib/autoconf/functions.m4 (GETLOADAVG_LIBS) [AC_FUNC_GETLOADAVG]:
+ Use "|", not "!".
+ * lib/autoconf/status.m4 (_AC_SRCDIRS) [ac_top_builddir_sub]:
+ [ac_dir_suffix]: Use "|", not "," as sed delimiter.
+ * tests/mktests.sh (as_me): Likewise.
+ * lib/freeze.mk (check-forbidden-patterns): Likewise.
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): Likewise.
+ * configure: Regenerate.
+ * doc/autoconf.texi (Shell Substitutions): Use "|", not "," in examples.
+ * lib/autotest/general.m4 (AT_INIT): Use "|", not "&" as sed delimiter
+ in the : -> $PATH_SEPARATOR transformation of $AUTOTEST_PATH.
+ This is fine, as long as $PATH_SEPARATOR doesn't contain "|".
+
+2007-09-22 Jim Meyering <jim@meyering.net>
+
+ Add a comment.
+ * lib/autoconf/headers.m4 (HAVE_STDBOOL_H): Document the
+ 2004-05-31 change also with a comment in the code.
+
+2007-09-20 Eric Blake <ebb9@byu.net>
+
+ More contribution housekeeping.
+ * THANKS: Sort.
+ * AUTHORS: Sort, reflect recent assignment from Helge Deller.
+
+ Ignore additional files, when copying cross-repository.
+ * .gitignore: Ignore CVS directories, emacs edits.
+ * .cvsignore: Ignore .git directory, emacs edits.
+
+2007-09-15 Eric Blake <ebb9@byu.net>
+
+ Provide AC_VERSION, not m4_AUTOCONF_VERSION.
+ * doc/autoconf.texi (Text processing Macros): Remove mention of
+ m4_AUTOCONF_VERSION, and leave m4_PACKAGE_VERSION undocumented
+ once again.
+ (Notices): Move AC_PREREQ...
+ (Versioning): ...to this new section, alongside the new AC_VERSION
+ alias for the undocumented m4_PACKAGE_VERSION.
+ * lib/m4sugar/m4sugar.m4 (m4_AUTOCONF_VERSION): Revert change.
+ * lib/autoconf/general.m4 (AC_VERSION): New macro.
+ * NEWS: Update to match this rename.
+ * tests/m4sugar.at (m4@&t@_version_compare): Remove tests of
+ m4_PACKAGE_VERSION.
+ * tests/tools.at (autoconf: AC_VERSION): New test.
+ Suggested by Paolo Bonzini and Benoit Sigoure.
+
+2007-09-14 Eric Blake <ebb9@byu.net>
+
+ Prepare for conversion to git.
+ * doc/.cvsignore: Avoid multiple listings on one line.
+ * bin/.cvsignore: Likewise.
+ * .gitignore, bin/.gitignore, config/.gitignore, doc/.gitignore,
+ lib/.gitignore, lib/Autom4te/.gitignore, lib/autoconf/.gitignore,
+ lib/autoscan/.gitignore, lib/autotest/.gitignore,
+ lib/emacs/.gitignore, lib/m4sugar/.gitignore, man/.gitignore,
+ tests/.gitignore: New files, identical to .cvsignore counterpart.
+
+2007-09-13 Eric Blake <ebb9@byu.net>
+
+ Editing eye-candy.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Restore
+ font-lock balance.
+ * lib/m4sugar/m4sh.m4 (AS_MKDIR_P): Likewise.
+ * lib/autoconf/general.m4 (_AC_DO_ECHO): Likewise.
+ * configure: Regenerate.
+
+ Clean up 'make dist' of previous patch.
+ * tests/Makefile.am (EXTRA_DIST): Distribute mktests.stamp.
+ (CLEANFILES): Don't clean the stamp, since we distribute the
+ generated files pre-built.
+ (MAINTAINERCLEANFILES): Clean it here instead.
+ * tests/Makefile.in: Regenerate.
+
+ Avoid parallel 'make check' issue.
+ * tests/Makefile.am (mktests.stamp): New witness.
+ (TESTSUITE_GENERATED_AT): Use it.
+ (CLEANFILES): Clean the witness.
+ * tests/.cvsignore (mktests.stamp): Ignore the witness.
+
+ Document another awk pitfall.
+ * doc/autoconf.texi (Limitations of Usual Tools) <awk>: Document
+ limitation of field variables in END.
+ Reported by Gary V. Vaughan.
+
+ * AUTHORS: Add missing entries.
+
+2007-09-12 Eric Blake <ebb9@byu.net>
+
+ Publish m4_ifndef, m4_version_compare, m4_AUTOCONF_VERSION.
+ * doc/autoconf.texi (Text processing Macros): Document
+ m4_version_compare, m4_AUTOCONF_VERSION, m4_PACKAGE_VERSION.
+ (Redefined M4 Macros): Document m4_ifndef.
+ * lib/m4sugar/m4sugar.m4 (m4_AUTOCONF_VERSION): New macro; we
+ can't obsolete m4_PACKAGE_VERSION at this time since Autoconf 1.10
+ used it while it was undocumented.
+ * NEWS: Document this change.
+ * lib/m4sugar/Makefile.am (version.m4): Update copyright dates.
+ * lib/m4sugar/Makefile.in: Regenerate.
+ * tests/m4sugar.at (m4@&t@_version_compare): New test.
+ Reported by Bruno Haible.
+
+ * doc/autoconf.texi (Generic Compiler Characteristics): Add
+ missing index entries.
+
+2007-09-11 Eric Blake <ebb9@byu.net>
+
+ Centralize all system extensions checks.
+ * lib/autoconf/specific.m4 (AC_USE_SYSTEM_EXTENSIONS): Inline code
+ from AC_AIX, AC_GNU_SOURCE, AC_MINIX. Add Interix support.
+ (AC_AIX, AC_GNU_SOURCE, AC_MINIX): Obsolete, and point to
+ AC_USE_SYSTEM_EXTENSIONS.
+ (AC_ISC_POSIX): Obsolete, and point to AC_SEARCH_LIBS.
+ (AC_XENIX_DIR, AC_IRIX_SUN): Promote proper quoting in AU_DEFUN.
+ * doc/autoconf.texi (Posix Variants): Reword this section,
+ emphasizing that AC_USE_SYSTEM_EXTENSIONS is the preferred method,
+ rather than a series of system-specific checks.
+ (Obsolete Macros): Add AC_AIX, AC_GNU_SOURCE, AC_ISC_POSIX,
+ AC_MINIX.
+ * NEWS: Document this change.
+ * THANKS: Update.
+ Reported by Martin Koeppe.
+
+2007-09-08 Eric Blake <ebb9@byu.net>
+
+ Clean up obsolete macros references.
+ * doc/autoconf.texi: Add anchors to support better
+ cross-referencing.
+ (Particular Structures): Move obsolete macros descriptions...
+ (External Software): Likewise.
+ (Package Options): Likewise.
+ (Obsolete Macros): ...to here. Add cross-references to
+ documentation on replacements.
+ * NEWS: Mention that these macros have been obsolete for a while
+ now: AC_STRUCT_ST_BLKSIZE AC_STRUCT_ST_RDEV AC_WITH AC_ENABLE.
+
+ Improve M4 path searching during configure.
+ * lib/autoconf/programs.m4 (AC_PATH_PROGS_FEATURE_CHECK): New
+ macro.
+ (_AC_PATH_PROG_FEATURE_CHECK): Rename...
+ (_AC_PATH_PROGS_FEATURE_CHECK): ...to this, add defaulted action
+ parameter, and kill side effects.
+ (_AC_PROG_GREP, AC_PROG_SED): Adjust callers.
+ (_AC_FEATURE_CHECK_LENGTH): Kill extra whitespace.
+ * m4/m4.m4 (AC_PROG_GNU_M4): Don't stop searching until working m4
+ is found.
+ (AC_PATH_PROGS_FEATURE_CHECK): Add backwards compatibility hack to
+ allow bootstrapping with autoconf 2.61.
+ * configure.ac (M4): AC_PROG_GNU_M4 now exits on failure.
+ * configure: Regenerate.
+ * doc/autoconf.texi (Generic Programs): Document new macro.
+ * tests/mktests.sh (au_exclude_script): Exclude auto-testing new
+ macro.
+ * tests/semantics.at (AC_PATH_PROGS_FEATURE_CHECK): New test.
+ * NEWS: Document the change.
+ * THANKS: Update.
+ Reported by Hans Aberg.
+
+ * doc/autoconf.texi (Generic Programs): Fix typo.
+
+2007-09-06 Eric Blake <ebb9@byu.net>
+
+ * doc/autoconf.texi (Generic Programs): Use $PATH_SEPARATOR, not
+ :, and make it clear that optional @var{path} defaults to $PATH.
+ (Erlang Compiler and Interpreter): Likewise.
+
+ Texinfo cleanup.
+ * doc/autoconf.texi: Avoid lines > 80 columns when possible.
+ Reword some paragraphs to avoid overfull, underfull hbox
+ warnings. Add index entries to avoid overfull vbox warnings.
+
+2007-09-05 Eric Blake <ebb9@byu.net>
+
+ * NEWS: Adjust wording for AC_CONFIG_LINKS.
+ Reported by Ralf Wildenhues.
+
+2007-09-03 Eric Blake <ebb9@byu.net>
+
+ * NEWS: Document fixes that have been applied since 2.61a.
+
+ Housekeeping.
+ * THANKS: Update, and convert to UTF-8 encoding.
+ * AUTHORS: Likewise.
+
+2007-08-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/general.m4 (AC_SITE_LOAD): Guard against file
+ names beginning with `-' again.
+
+2007-08-22 Stepan Kasal <kasal@ucw.cz>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Defining Directories): Mention
+ AM_CPPFLAGS, as the way to modify CPPFLAGS when using Automake.
+
+2007-08-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/general.m4 (AC_SITE_LOAD): Do not overwrite "$@"
+ here, this macro is expanded by AC_INIT. Fixes 2.60 regression.
+ * tests/base.at (configure arguments): New test.
+ * THANKS: Update.
+ Report by Olaf Lenz.
+
+ * lib/autoconf/general.m4 (_AC_ENABLE_IF): Expand macro
+ arguments in comment.
+ Report by Vincent Torri <vtorri at univ minus evry dot fr>.
+
+2007-08-20 Benoit Sigoure <tsuna@lrde.epita.fr>
+
+ * doc/autoconf.texi (File System Conventions): Index the proper
+ way of detecting absolute file names.
+
+2007-08-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * build-aux/config.guess, build-aux/config.sub,
+ build-aux/elisp-comp, build-aux/install-sh, build-aux/mdate-sh,
+ build-aux/missing, build-aux/texinfo.tex, doc/fdl.texi,
+ doc/make-stds.texi, doc/standards.texi: Sync from gnulib.
+ * doc/autoconf.texi (GNU Free Documentation License): Adjust for
+ sectioning change in fdl.texi.
+
+ * bin/autoconf.as: Update --version output to match current GCS.
+ * bin/autoheader.in: Likewise.
+ * bin/autom4te.in: Likewise.
+ * bin/autoreconf.in: Likewise.
+ * bin/autoscan.in: Likewise.
+ * bin/autoupdate.in: Likewise.
+ * bin/ifnames.in: Likewise.
+
+2007-08-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_LINK): Do not try to link a
+ file to itself if source and build trees coincide.
+ * tests/torture.at (AC_CONFIG_LINKS and identical files): New
+ test.
+ Report by Sebastian Freundt <hroptatyr@gna.org>.
+
+2007-07-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ Reword the copyright notices to match what's suggested in GPLv3.
+ In ChangeLog files, use more-permissive notice rather than GPL, as
+ per usual GNU standards these days.
+
+2007-07-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (autoreconf Invocation): Document ACLOCAL_AMFLAGS
+ limitation reported by Leo Moisio in
+ <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=432941>.
+
+2007-07-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * COPYING: Update to GPLv3. All uses changed.
+
+2007-06-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ and Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): sed -e ''
+ fails on AIX 5.3.
+
+2007-06-17 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/autotest/general.m4 (AT_INIT): Handle absolute `srcdir'.
+ * tests/autotest.at (srcdir propagation): Test absolute `srcdir' and
+ `srcdir' as subdirectory of `builddir'.
+
+2007-06-13 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/autotest/general.m4 (AT_INIT): Compute $srcdir correctly.
+ * tests/autotest.at (srcdir propagation): New test.
+ * THANKS: Update.
+ Reported by Mike Frysinger.
+
+2007-06-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/m4sugar/m4sh.m4 (_AS_PATH_SEPARATOR_PREPARE): Set FPATH too.
+ Problem reported by Fred Kreek in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2007-06/msg00009.html>.
+ * doc/autoconf.texi (Special Shell Variables): Warn about FPATH.
+ (Macro Names, Defining Directories): Don't mention PATH as a name
+ for a fully qualified file name, as this usage violates the GNU
+ coding standards and we shouldn't recommend it.
+
+ * lib/autotest/general.m4 (AT_INIT): Don't set PATH to the empty
+ string and then assume shell builtins like "test" will work.
+
+2007-06-12 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/autoconf/general.m4 (AC_SUBST): Raise a fatal error if VARIABLE is
+ not a valid shell variable name.
+ * tests/mktests.sh (ac_exclude_list): Add AC_ARG_VAR.
+ * tests/torture.at (AC_SUBST: variable name validation): New test.
+ Reported by Andreas Schwab.
+
+2007-06-04 Noah Misch <noah@cs.caltech.edu>
+
+ * doc/autoconf.texi (AC_F77_MAIN): Give a specific usage example that
+ works with both C and C++.
+
+2007-06-03 Noah Misch <noah@cs.caltech.edu>,
+ Bruno Haible <bruno@clisp.org>
+
+ * lib/autoconf/c.m4 (AC_OPENMP): Use a simple loop instead of compiler
+ brand tests.
+
+2007-05-31 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Particular Types): Give example of use for
+ AC_TYPE_INT8_T etc.
+
+2007-05-29 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/types.m4 (_AC_TYPE_UNSIGNED_INT): Fix a typo.
+
+2007-05-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Particular Types): AC_TYPE_INT8_T does not
+ define HAVE_INT8_T, and likewise for similar macros.
+ Problem reported by Patrick Welche in
+ <http://lists.gnu.org/archive/html/autoconf/2007-05/msg00062.html>.
+
+2007-05-25 Noah Misch <noah@cs.caltech.edu>
+
+ * bin/Makefile.am ($(top_builddir)/bin/autom4te): New dependency.
+
+2007-05-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/c.m4 (AC_OPENMP): Don't echo --enable-openmp
+ choice, since that's what we do with --enable-largefile etc.
+ Redo indenting and assignments to simplify things a bit, and make
+ the parens work with Emacs.
+
+ * doc/autoconf.texi (Generic Compiler Characteristics): Fix typo
+ in my previous change: AC_C_OPENMP -> AC_OPENMP. Reported by Bruno
+ Haible.
+
+2007-05-21 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/autoconf/c.m4 (AC_OPENMP): Simplify use of AC_ARG_ENABLE.
+ * tests/local.at (AT_CHECK_ENV): Exempt OPENMP_CFLAGS.
+
+2007-05-21 Bruno Haible <bruno@clisp.org>
+
+ * NEWS: Rename AC_C_OPENMP to AC_OPENMP.
+ * lib/autoconf/c.m4 (AC_OPENMP): Renamed from AC_C_OPENMP.
+ * doc/autoconf.texi (Generic Compiler Characteristics): Move
+ renamed AC_OPENMP documentation here, from "C compiler".
+ Mention C++ and Fortran.
+
+2007-05-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (C Compiler): Tweak OpenMP documentation a bit.
+
+2007-05-21 Bruno Haible <bruno@clisp.org>
+
+ * NEWS: Mention AC_C_OPENMP.
+ * lib/autoconf/c.m4 (AC_C_OPENMP): New macro.
+ * doc/autoconf.texi (C Compiler): Document AC_C_OPENMP.
+ Based in part on Steven G. Johnson's investigations for the AX_OPENMP
+ macro in the Autoconf macro archive.
+
+2007-05-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * bin/autom4te.in: Fix typos.
+
+2007-05-16 Noah Misch <noah@cs.caltech.edu>
+
+ * bin/autoconf.as: Handle `-' just like other input files.
+ * bin/autom4te.in (parse_args): Pass `-' through.
+ (handle_output): Skip the forbidden token search if we read from stdin.
+ (up_to_date): Always treat stdin as out of date.
+ * tests/tools.at (autoconf: input from stdin): New test.
+ (autoconf: forbidden tokens, basic): Check a second `autoconf' run.
+
+2007-05-16 Stepan Kasal <kasal@ucw.cz>
+
+ * tests/foreign.at tests/semantics.at, tests/tools.at: Remove
+ parameters for AT_CLEANUP.
+ * tests/local.at (AT_CHECK_AU_MACRO): Likewise.
+
+2007-05-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Document that AC_C_RESTRICT checks 'restrict' last.
+ * doc/autoconf.texi (C Compiler): Likewise.
+
+2007-05-14 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/autoconf/c.m4 (AC_C_RESTRICT): Check `restrict' last.
+
+2007-05-09 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi: Direntry for "autoconf Invocation"
+ renamed to "autoconf-invocation"
+
+ * doc/autoconf.texi (Caching Results): The CACHE-ID variable
+ in the examples should not use the internal "ac_" prefix.
+
+2007-05-05 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/autotest/general.m4 (_AT_NORMALIZE_TEST_GROUP_NUMBER): Use `eval'.
+ * doc/autoconf.texi ($@, case): Document Zsh limitations.
+
+2007-05-03 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Put a.out first.
+ Reorganize the comments before and in the macro.
+
+2007-05-02 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/lang.m4, lib/autoconf/c.m4,
+ lib/autoconf/fortran.m4, lib/autoconf/erlang.m4: Cleanup of
+ section titles and other comments; no code change.
+
+2007-05-01 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (Particular Programs): Typo
+ @acindex{AC_PROG_MKDIR_P} shouldn't have "AC" in that call.
+
+2007-04-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/m4sugar/m4sh.m4 (_AS_SHELL_FN_SPY): Don't imply that
+ 'configure' will fail if the shell lacks proper support for shell
+ functions. Suggested by RMS.
+
+2007-04-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Builtins): Correct the warning
+ about Solaris /bin/printf '%010000x' 123. Problem reported by
+ Bruno Haible.
+
+2007-04-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Don't look
+ for a.* when searching for executables, as this prevents users
+ from having files like a.c. Problem reported by Ralf Wildenhues in:
+ http://lists.gnu.org/archive/html/autoconf-patches/2007-04/msg00029.html
+ This fixes a problem introduced on 2000-12-19.
+
+2007-04-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Builtins): Warn about Solaris
+ /bin/printf '%010000x' 123. Problem reported by Arto C. Nirkko
+ via Bruno Haible.
+
+2007-04-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Document recent changes to AC_CHECK_ALIGNOF, AC_CHECK_SIZEOF,
+ AC_CHECK_TYPE, AC_CHECK_TYPES.
+ * doc/autoconf.texi (Generic types): C types must be type-names
+ (the C terminology), not type-ids (the C++ term). C++ types
+ must not be anonymous.
+ * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW): Remove special case
+ for C++; this drops support for anonymous struct and union types,
+ which were problematic anyway.
+ * tests/semantics.at (AC_CHECK_HEADERS_NEW): Adjust test to work even
+ for C++.
+
+2007-04-12 Jim Meyering <jim@meyering.net>
+
+ * doc/autoconf.texi (Libraries): Typo fix: insert missing "in".
+
+2007-04-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_LINK): Fix AC_CONFIG_LINKS
+ to prefer a link source from the build tree, if it exists.
+ Report by Pallav Gupta <pallavgupta@gmail.com>.
+
+2007-04-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Generic Types): Document the restrictions
+ on types imposed by AC_CHECK_TYPE, AC_CHECK_TYPES.
+ (Generic Compiler Characteristics): AC_CHECK_SIZEOF now works
+ with objects too. Document the restrictions on its use.
+ Document the restrictions on AC_CHECK_ALIGNOF's type argument.
+ * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW):
+ For C, just try sizeof (TYPE) and sizeof ((TYPE)); if the former
+ works but the latter doesn't, then it's a valid type.
+ This lets people use function types and so forth.
+ For C++ there doesn't seem to be a simple solution, so leave it alone.
+ (AC_CHECK_SIZEOF): Allow argument to be a variable.
+ (AC_CHECK_SIZEOF, AC_CHECK_ALIGNOF): Don't bother to invoke
+ AC_CHECK_TYPE; that wasn't documented or necessary.
+
+2007-04-11 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (_AC_LINK_IFELSE): Skip AS_TEST_X
+ when cross-compiling.
+
+2007-04-11 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (External Software): Fix a typo in the
+ previous change.
+
+2007-04-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (External Software, Package Options):
+ Fix ambiguous wording. Report by Reuben Thomas <rrt@sc3d.org>.
+
+2007-04-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Particular Types): AC_C_LONG_DOUBLE is now
+ obsolescent. Suggested by Bruno Haible.
+ * NEWS: Document this.
+
+2007-03-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Here-Documents, Limitations of Builtins):
+ (Limitations of Usual Tools): Don't say "older" if Solaris 10 by
+ default still has the problem. Problem reported by Bruce Korb.
+
+2007-03-28 Stepan Kasal <kasal@ucw.cz>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Fix a
+ comment in the generated config.status.
+
+2007-03-27 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/status.m4 (AC_CONFIG_SUBDIRS): Update comment.
+
+2007-03-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Shellology): Rework treatment of the 'test'
+ command and case statements to make it a bit clearer and describe
+ more pitfalls.
+
+2007-03-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (C Compiler): Mention that AC_PROG_CC_C99 also
+ checks for unsigned long long int.
+
+2007-03-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Warn about other
+ nonstandard grep R.E. escape sequences.
+
+2007-03-17 Jim Meyering <jim@meyering.net>
+
+ * doc/autoconf.texi: Adjust grammar around use of "heuristics".
+ (Limitations of Usual Tools): Also list \< and \>, and mention that
+ HP-UX's grep, like the one from Solaris, does not support that syntax.
+
+2007-03-09 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Specifying Names): `--host' does not
+ change the build type.
+
+2007-03-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (C Compiler): Warn that AC_C_BIGENDIAN
+ suggests AC_CONFIG_HEADERS.
+ * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Warn if not using
+ AC_CONFIG_HEADERS. Problem reported by
+ Peter O'Gorman.
+
+2007-02-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Fix typo "__LITLE_ENDIAN__".
+ Problem reported by Paolo Bonzini in:
+ http://lists.gnu.org/archive/html/autoconf-patches/2007-02/msg00024.html
+ * tests/semantics.at (AC_C_BIGENDIAN): Don't reject hosts that have
+ universal binaries. Problem reported by Elias Pipping.
+
+2007-02-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: AC_C_BIGENDIAN now supports universal binaries a la Mac OS X.
+ * doc/autoconf.texi (C Compiler): Document this. There is a new
+ extra argument ACTION-IF-UNIVERSAL.
+ * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Implement this.
+ Add support for Solaris-style _LITTLE_ENDIAN and _BIG_ENDIAN.
+ Reindent for sanity's sake.
+
+2007-02-24 Eric Blake <ebb9@byu.net>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Update
+ copyright.
+ * lib/autoconf/general.m4 (_AC_INIT_COPYRIGHT): Likewise.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+ (_AT_DECIDE_TRACEABLE): Fix syntax highlighting.
+
+2007-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autotest/general.m4 (AT_INIT): With --clean, return exit
+ status of rm so we know when it failed.
+ If cleaning of test dir failed before running the test, warn.
+ Output the line separator in verbose mode before the warning
+ to make clear the warning belongs to the following test.
+
+2007-02-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Parentheses): Mention problem with (( in
+ shells.
+
+2007-02-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ and Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Fix quoting
+ errors introduced in last change.
+
+2007-02-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Prefer \r to
+ an actual carriage return. Use "ac_cr" to contain the actual
+ carriage return.
+ * doc/autoconf.texi (Limitations of Usual Tools): Document problem
+ with traditional Awk and begin.
+ * tests/torture.at (Limitations of Builtins): Document the problem
+ with Bash 2.03 printf.
+ (Substitute and define special characters):
+ Remove trailing white space. Work around a bug in Solaris 8 /bin/bash.
+
+2007-02-06 Ralf Menzel <menzel@ls6.cs.uni-dortmund.de> (tiny change)
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Redirect
+ input from /dev/null in awk test, so even Solaris /usr/bin/awk
+ will not wait for input with a script containing only a BEGIN
+ rule.
+
+2007-02-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Introduction, Why GNU M4): Clarify M4 version
+ requirements.
+ * README: Likewise.
+
+2007-02-02 Eric Blake <ebb9@byu.net>
+
+ * NEWS: Update copyright.
+
+ * m4/m4.m4 (AC_PROG_GNU_M4): Reject M4 1.4 through 1.4.4 as
+ broken.
+ * configure.ac: Update error message.
+ * NEWS: Note that M4 1.4.5 or later is now a hard dependency.
+ Reported by Gary Vaughan and Jim Meyering, and problem analyzed
+ by Stepan Kasal:
+ http://lists.gnu.org/archive/html/bug-autoconf/2006-11/msg00025.html
+
+2007-01-31 Eric Blake <ebb9@byu.net>
+
+ * THANKS (people): Update.
+
+2007-01-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Shellology): pdksh 5.2.14 is still the
+ latest version.
+ (Shell Substitutions): Note problems with @{var:=value} etc.
+ Add a new section for problems with @{#var} etc. Problem noted
+ by Ralf Wildenhues. See:
+ http://lists.gnu.org/archive/html/libtool-patches/2005-01/msg00157.html
+
+2007-01-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/programs.m4 (AC_PROG_MKDIR_P): Also
+ AC_SUBST([MKDIR_P]), so that Automake < 1.10 will pick up its
+ trace, if a package uses AC_PROG_MKDIR_P explicitly. The actual
+ substitution will still be done by the special code.
+ Report by Jim Meyering.
+
+ * doc/autoconf.texi (File System Conventions): Mention that
+ $PATH_SEPARATOR is for the build system only.
+ Report by Keith Marshall.
+
+2007-01-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Setting Output Variables): Mention that
+ all non-NUL characters are ok in substituted values.
+ * lib/autoconf/status.m4 (_AC_SED_CMD_LIMIT): Fix comment typo.
+ (_AC_OUTPUT_FILES_PREPARE): Test and use backslash escaping of
+ carriage return for $AWK, needed for BSD awk.
+ * tests/torture.at (Substitute and define special characters):
+ Test all 8 bit non-NUL characters.
+ Report against Automake by Patrick Welche.
+
+2007-01-15 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi: Direntry for "autoconf Invocation" renamed.
+
+2007-01-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/programs.m4 (AC_PROG_SED): When closing a pipe
+ early on the reader side, drop stderr of the input to avoid
+ `broken pipe' error output; this may happen even with shell
+ builtin `echo' of some bash versions. Reports by Ian Macdonald
+ <iamacdo@telkomsa.net> and Sam Sexton <Sam.Sexton@reuters.com>.
+
+2007-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Use newlines to
+ separate items of `ac_user_opts', to avoid long lines.
+ (_AC_INIT_PARSE_ENABLE2, _AC_ENABLE_IF_ACTION): Adjust.
+
+2007-01-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi: Fix some typos.
+
+2007-01-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix some wording problems noted by Paolo Bonzini in:
+ http://lists.gnu.org/archive/html/autoconf-patches/2007-01/msg00077.html
+ * doc/autoconf.texi (Signed Overflow Examples): Give more
+ discussion about the allow_superuser_privileges example,
+ and change it a bit to make things clearer.
+ (Optimization and Wraparound): Clarify whether the compiler
+ will generate an infinite loop for the example derived from
+ Autoconf's mktime test.
+ (Signed Overflow Advice): Say that -ftrapv is meant for debugging.
+ Also, clarify unsigned multiplication overflow.
+
+2007-01-04 Eric Blake <ebb9@byu.net>
+
+ * bin/Makefile.am (RELEASE_YEAR): New macro.
+ (edit): Use it to supply correct copyright year to scripts.
+ * bin/autoconf.as (version): Use it.
+ * bin/autoheader.in ($version): Likewise.
+ * bin/autom4te.in ($version): Likewise.
+ * bin/autoreconf.in ($version): Likewise.
+ * bin/autoscan.in ($version): Likewise.
+ * bin/autoupdate.in ($version): Likewise.
+ * bin/ifnames.in ($version): Likewise.
+
+2007-01-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Integer Overflow): Revised based on today's
+ feedback. The most important changes document what happens when
+ you convert an out-of-range value to a signed integer type, and
+ say that (sum < a) != (b < 0) reliably detects overflow when sum =
+ a + b.
+
+ * doc/autoconf.texi (Integer Overflow): Greatly expand and
+ rewrite, taking notions from the recent discussion on the gcc and
+ autoconf mailing lists; please see
+ http://lists.gnu.org/archive/html/autoconf-patches/2006-12/msg00091.html
+ and follow the many links.
+ (Integer Overflow Basics, Signed Overflow Examples):
+ (Optimization and Wraparound, Signed Overflow Advice):
+ (Signed Integer Division): New sections.
+
+2006-12-28 Steven G. Johnson <stevenj@alum.mit.edu>
+
+ * lib/autoconf/general.m4 (AC_DEFINE_TRACE): Don't include
+ preprocessor macro arguments in traced name.
+ * doc/autoconf.texi (Defining symbols): Document longstanding
+ support for AC_DEFINE-ing macros with arguments, and document
+ behavior when the same variable has multiple AC_DEFINEs.
+ * lib/autoconf/fortran.m4 (_AC_FC_WRAPPERS): Revert to the
+ old implementation which AC_DEFINEs the FC_FUNC and FC_FUNC_
+ macros directly, giving much shorter and simpler code.
+
+2006-12-28 Malcolm Purvis <malcolmp@xemacs.org> (trivial change)
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Insert a
+ space before "$ac_configure_args" to prevent a 'config.status
+ --recheck' failure if ac_configure_args doesn't contain a leading
+ space. This works around a problem with the XEmacs configure.ac,
+ which uses the (undocumented) ac_configure_args variable
+ inconsistently with Autoconf.
+
+2006-12-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_MKTIME):
+ Include <limits.h>, and use its INT_MAX to rewrite the
+ j loop so that it does not overflow 'int'. Problem reported by
+ Ralf Wildenhues in
+ <http://lists.gnu.org/archive/html/bug-gnulib/2006-12/msg00084.html>.
+ Play it safe by shifting left by 1 rather than multiplying by 2,
+ as GCC is less likely to optimize this away when the value
+ is signed (when it assumes overflow leads to undefined behavior).
+ Also, don't assume time_t uses two's complement.
+
+2006-12-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/torture.at (Substitute a 2000-byte string): Avoid using
+ a 10kB long (multi-line) string literal, OpenServer 5.0.7 ksh
+ dumps core on it. Report by Tim Rice.
+
+2006-12-18 Steven G. Johnson <stevenj@alum.mit.edu>
+
+ * lib/autoconf/general.m4 (AC_ARG_ENABLE): Print help about
+ --disable-option-checking to --help output even when
+ AC_PRESERVE_HELP_ORDER is not used.
+ (_AC_INIT_PARSE_ENABLE2): Print warnings using actual --enable or
+ --with argument, rather than argument with [-.] replaced by
+ underscores.
+ * NEWS: Fix typo in previous change; the news was in the
+ wrong section.
+
+2006-12-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Warnings are now generated by default for unknown
+ --enable-* and --with-* options.
+ * doc/autoconf.texi (Option Checking): Renamed from
+ (Configure Option Checking). Tighten up the wording a bit.
+ (External Software, Package Options): Cross-reference to Option
+ Checking, and use this to shorten our section.
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Prefer test -n
+ "$x" to test "x$foo" != x.
+ * lib/autoconf/status.m4 (AC_OUTPUT): Likewise.
+ Don't warn if $enable_option_checking is "no".
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Initialize
+ ac_unrecognized_opts to the empty string.
+ Don't echo the unrecognized opts, as this might mishandle
+ backslashes or leading -.
+ (AC_PRESERVE_HELP_ORDER): Put the --disable-option-checking
+ usage next to the other --disable-FEATURE options in the
+ help string.
+
+2006-12-18 Steven G. Johnson <stevenj@alum.mit.edu>
+
+ * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS, _AC_INIT_PARSE_ARGS):
+ (_AC_INIT_PARSE_ENABLE2, _AC_INIT_HELP, _AC_ENABLE_IF):
+ Print warning for unrecognized --with and --enable options
+ (AC_DISABLE_OPTION_CHECKING): New macro to disable warnings.
+ * lib/autoconf/status.m4 (AC_CONFIG_SUBDIRS, _AC_OUTPUT_SUBDIRS):
+ Disable option checking when subdirs are configured.
+ (AC_OUTPUT): If warnings are enabled, print warning about
+ unrecognized --with and --enable options at the end of
+ the configure output (as well as at the beginning).
+ * doc/autoconf.texi (Option Checking): New node.
+ Document new option warning functionality.
+
+2006-12-16 Eric Blake <ebb9@byu.net>
+
+ * configure.ac (AC_INIT): Bump version, since 2.61a is released.
+ * NEWS: Start news for current version.
+
+2006-12-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_GETMNTENT):
+ Define HAVE_GETMNTENT to 1, not to the empty string.
+ Problem originally reported by Jochen Friedrich in
+ <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=403243>.
+
+ This change prompted by a problem report by Andrey Simonenko in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2006-12/msg00026.html>.
+ * doc/autoconf.texi (Defining Symbols): AC_DEFINE works for
+ object-like macros only, in the traditional portable character
+ set.
+ * lib/autoconf/general.m4 (AC_DEFINE_TRACE_LITERAL):
+ Warn about attempts to define things that are not identifiers.
+ * lib/autoconf/fortran.m4 (_AC_FC_WRAPPERS): Rewrite to avoid
+ awful hack that AC_DEFINEd macro names containing parentheses.
+
+2006-12-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi: Undo some of the 2006-12-10 change. It was
+ too drastic, even if Texinfo in theory requires it for info mode.
+
+ (config.status Invocation): Renamed back from Recreating a
+ Configuration).
+ (Obsolete config.status Use): Renamed back from Obsolete Recreation.
+ (Autoconf 2.13): Renamed back from 20th-century Autoconf 2.
+
+2006-12-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Version 2.61a.
+
+2006-12-11 Paul Eggert <eggert@cs.ucla.edu>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * NEWS: Document changes with echo and printf, and the lack
+ of limits on the total size of multi-line values of substituted
+ variables, and the AC_FUNC_FSEEKO fix.
+
+2006-12-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Writing Autoconf Input): Renamed from
+ Writing configure.ac.
+ (Autoconf Input Layout): Renamed from configure.ac Layout.
+ (Recreating a Configuration): Renamed from config.status Invocation.
+ (Obsolete Recreation): Renamed from Obsolete config.status Use.
+ (acconfig Header): Renamed from acconfig.h.
+ (20th-century Autoconf 2): Renamed from Autoconf 2.13.
+ (Writing Testsuites): Renamed from Writing testsuite.at.
+ (Autom4te Cache): Renamed from autom4te.cache.
+
+ * BUGS: Remove mention of VPATH problem, since it's now documented
+ not to be a bug in the Autoconf build procedure itself, but rather
+ a problem with the proprietary `make' programs.
+
+ * doc/autoconf.texi (Build Directories): Add a cross reference
+ to VPATH and Make.
+
+ * build-aux/config.guess, build-aux/config.sub, build-aux/texinfo.tex:
+ * doc/standards.texi: Sync from gnulib.
+
+ * man/autoconf.1, man/autoheader.1, man/autom4te.1, man/autoreconf.1:
+ * man/autoscan.1, man/autoupdate.1, man/config.guess.1:
+ * man/config.sub.1, man/ifnames.1: Remove from CVS, since they're
+ generated automatically.
+
+2006-12-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/c.m4 (_AC_PROG_CC_C89): Also try -xc99=all, for Sun
+ C 5.8 on Solaris 10. Using -xc99=all rather than -xc99 bypasses
+ the buggy -xc99 option of Forte Developer 7 C on Solaris 9.
+
+2006-12-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Drop the
+ `CEOF$ac_eof' special marker, the awk script cannot contain a
+ line matching `^CEOF', so this is not needed any more.
+ * tests/torture.at (Substitute a newline): Expose the `%!_!# '
+ special marker in the test.
+
+2006-12-06 Stepan Kasal <kasal@ucw.cz>
+
+ * tests/tools.at (autom4te preselections): Use `find -newer';
+ remove one of the sleeps.
+
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ENABLE): Make it
+ more readable, using ...
+ (_AC_INIT_PARSE_ENABLE2): ... this new helper macro.
+
+ * doc/autoconf.texi (autoheader Invocation): Do not double-
+ quote the parameter of `AH_BOTTOM' in the example.
+
+2006-12-05 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Configuration Headers): Remove the
+ example with multiple input files.
+ (autoheader Invocation): Encourage `AH_BOTTOM', discouraging
+ multiple input files.
+
+2006-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): When
+ creating the awk substitution script, handle one input line at a
+ time, so that the maximum length of a substituted (multi-line)
+ value is not limited by the size of the sed pattern space.
+ The trade-off is a slightly repetitive sed script.
+ * doc/autoconf.texi (Limitations of Usual Tools): Branch labels
+ can only have up to 7 characters, due to Solaris 10 /bin/sed.
+ * tests/torture.at (Substitute a 2000-byte string): Increase the
+ test with several long lines, they should not be caught by sed
+ limits any more.
+
+ * tests/tools.at (autom4te preselections): New test, to flag
+ entries missing from autom4te.cfg.
+ Report by David Byron <dbyron@hheld.com>.
+
+ * tests/torture.at (Substitute a 2000-byte string): Actually use
+ AC_PROG_AWK, so the last change works as intended.
+ (Substitute and define special characters): Likewise.
+ (Substitute a newline): Likewise.
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Use `$AWK'
+ instead of `awk' consistently.
+ (_AC_OUTPUT_CONFIG_STATUS): Initialize $AWK.
+ * tests/torture.at (Torturing config.status): Test both the
+ result of AC_PROG_AWK and plain awk.
+ (Substitute a 2000-byte string): Likewise.
+ (Substitute and define special characters): Likewise.
+ (Substitute a newline): Likewise.
+
+2006-12-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_FSEEKO): Check that fseeko
+ can be assigned to a function pointer. Problem reported by
+ Peter Palfrader in <http://bugs.debian.org/401377>. Based on
+ part of a patch by Ralf Wildenhues in that same bug report.
+
+2006-12-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/mktests.sh (ac_exclude_list): Exclude AC_FUNC_SETVBUF_REVERSED.
+ * tests/semantics.at (AC_FUNC_SETVBUF_REVERSED): New test.
+
+2006-12-01 Eric Blake <ebb9@byu.net>
+
+ * lib/autoconf/c.m4 (AC_LANG_INT_SAVE): Avoid newline, to aid in
+ cross-compiling from cygwin to mingw.
+ Reported by Bob Rossi. This resurrects the 2000-11-30 patch to
+ aclang.m4, which was mistakenly removed in the 2001-09-17 patch
+ to lib/autoconf/c.m4.
+
+2006-12-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/m4sugar/m4sh.m4 (_AS_ECHO_PREPARE): Use a longer test
+ string for more reliable failure. Wrap the entire test that
+ causes the broken Solaris printf to dump core, in a subshell,
+ so the segmentation fault message is reliably suppressed.
+ Fix shell expansion errors by using /usr/ucb/echo always;
+ avoid an error on systems without it by another subshell.
+ Avoid m4 expansion of `$1'. Set the zeroth argument of the
+ subshell-$as_echo to `as_echo', for better error message.
+
+2006-11-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/general.m4 (_AC_CACHE_DUMP): If `BASH_ARGV' or
+ `BASH_SOURCE' contain a newline, set them to empty, as they may
+ not be unset.
+
+2006-11-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ Turn AC_FUNC_SETVBUF_REVERSED into a noop. It's been obsolete for
+ years and is too hard to maintain now. The last straw was
+ reported by Jerker Baeck in
+ <http://lists.gnu.org/archive/html/autoconf/2006-11/msg00102.html>.
+ * NEWS: AC_FUNC_SETVBUF_REVERSED is now obsolete.
+ * doc/autoconf.texi (Particular Functions): Move
+ AC_FUNC_SETVBUF_REVERSED from here...
+ (Obsolete Macros): ... to here. Say that it does nothing now.
+ * lib/autoconf/functions.m4 (AC_FUNC_SETVBUF_REVERSED):
+ Turn into (almost) a no-op.
+
+ * lib/autoconf/c.m4 (AC_PROG_GCC_TRADITIONAL, AC_C_CONST):
+ (AC_C_VOLATILE):
+ Do not recommend via AN_FUNCTION, AN_IDENTIFIER, or AN_HEADER.
+ These macros are obsolescent and new applications shouldn't need them.
+ * lib/autoconf/functions.m4 (AC_FUNC_CLOSEDIR_VOID, AC_REPLACE_FNMATCH):
+ (AC_FUNC_GETLOADAVG, AC_FUNC_GETPGRP, AC_FUNC_MEMCMP):
+ (AC_FUNC_SELECT_ARGTYPES, AC_FUNC_SETPGRP, AC_FUNC_STAT, AC_FUNC_LSTAT):
+ (AC_FUNC_STRFTIME, AC_FUNC_SETVBUF_REVERSED, AC_FUNC_UTIME_NULL):
+ (AC_FUNC_VPRINTF): Likewise.
+ * lib/autoconf/headers.m4 (AC_HEADER_DIRENT, AC_HEADER_STAT):
+ (AC_HEADER_STDC, AC_HEADER_SYS_WAIT, AC_HEADER_TIME): Likewise.
+ * lib/autoconf/types.m4 (AC_STRUCT_TM): Likewise.
+
+ * doc/autoconf.texi (Setting Output Variables): Mention that
+ @VAR1@VAR2 has unspecified behavior. Problem reported by
+ Ralf Wildenhues.
+ * NEWS: Mention this.
+
+ * Makefile.am: Put only a single '#' into the copyright notice,
+ so that it's also present in the output file. Standardize wording
+ in makefile copyright notices to match GNU coding standards.
+ * bin/Makefile.am: Likewise.
+ * doc/Makefile.am: Likewise.
+ * lib/Makefile.am: Likewise.
+ * lib/freeze.mk: Likewise.
+ * lib/autoconf/Makefile.am: Likewise.
+ * lib/autoscan/Makefile.am: Likewise.
+ * lib/autotest/Makefile.am: Likewise.
+ * lib/m4sugar/Makefile.am: Likewise.
+ * man/Makefile.am: Likewise.
+ * tests/Makefile.am: Likewise.
+ * lib/emacs/Makefile.am: Remove copyright notice; it's just a
+ one-line file.
+
+2006-11-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Fix error
+ in the sed script that mangles the awk script: delete up to the
+ first exclamation mark only.
+ * tests/torture.at (Substitute and define special characters):
+ Test '!' too.
+
+2006-11-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Rewrite config files generation: avoid quadratic growth in
+ the number of substituted variables by using awk instead of sed
+ for the bulk of the substitutions.
+ * NEWS: Mention this.
+ * doc/autoconf.texi (Setting Output Variables): `|#_!!_#|' is also
+ forbidden in the output (and thus input) file.
+ * lib/autoconf/status.m4 (_AC_AWK_LITERAL_LIMIT): New macro.
+ (_AC_OUTPUT_FILES_PREPARE): Instead of several sed scripts,
+ generate just one large awk script for substitutions,
+ eliminating much of the earlier complexity, while adding some
+ new complexity. Only expand the substitution templates at
+ configure time, for smaller configure script size. If
+ _AC_SUBST_FILES are used, test 'awk' for working getline support
+ at config.status time. If absent, interpolate through the
+ shell. The awk script was written with much help
+ from Paolo Bonzini and Paul Eggert.
+ (_AC_SED_CMD_NUM, _AC_SED_DELIM_NUM, _AC_SED_FRAG): Removed.
+ (_AC_SED_FRAG_NUM): Likewise.
+ (_AC_SUBST_CMDS): Renamed from...
+ (_AC_SED_CMDS): ...this.
+ (_AC_OUTPUT_FILE): Use _AC_SUBST_CMDS.
+ * tests/torture.at (Substitute a 2000-byte string): Also
+ substitute a line with 1000 words, and a variable with several
+ long lines.
+ (Substitute and define special characters): Test awk special
+ characters, and put substitution input strings `@foo@' in the
+ output, to test that no recursion happens; test several other
+ combinations from Paolo Bonzini.
+
+2006-11-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autotest/general.m4 (AT_INIT): Undo recent changes
+ that replaced echo with AS_ECHO where this wasn't necessary.
+ Problem reportd by Ralf Wildenhues.
+ * lib/m4sugar/m4sh.m4 (_AS_ECHO_PREPARE): Port to Solaris 7,
+ where "/usr/bin/printf '%s\n' S" dumps core if S is long.
+ This is Sun bug 4206210. Problem reportd by Ralf Wildenhues.
+
+2006-11-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/freeze.mk (GREP): Removed, no need to initialize this.
+
+2006-11-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Don't claim
+ that traditional Awk lacks 3-arg "split". It has it.
+ Mention that FS must be a single character, and a few other
+ 99-byte limits of traditional Awk.
+ Mention that if (i in a) doesn't work with traditional Awk.
+
+2006-11-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/autotest.at (BSx641-newline in command):
+ (BS-BS-newline in command, BSx640-newline in command):
+ (Newline-CODE-BS-newline in command):
+ (Single-quote-BS-newline in command):
+ (Single-quote-newline-BS-newline in command):
+ Use printf '%s\n' instead of echo, for portability to hosts
+ where echo interprets backslashes. This will break on hosts
+ that lack printf, but for now let's assume all such hosts
+ are dead (if not, we should get reports of test failures).
+
+2006-11-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ 'echo' has some portability problems, when given a first argument
+ with a leading '-', or when given any argument containing '\'.
+ Avoid using 'echo' in these cases.
+ * bin/Makefile.am $(bin_SCRIPTS): Rewrite to avoid 'echo' entirely.
+ * lib/autoconf/c.m4 (AC_PROG_CC, AC_PROG_CXX, AC_PROG_OBJC): Likewise.
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC): Likewise.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+ * bin/autoconf.as: Use AS_ECHO rather than plain echo, when the
+ argument might be unportable.
+ * lib/autoconf/c.m4 (AC_PROG_CC_C_O): Likewise.
+ * lib/autoconf/erlang.m4 (AC_LANG(Erlang)): Likewise.
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT):
+ (_AC_FC_LIBRARY_LDFLAGS): Likewise.
+ * lib/autoconf/functions.m4 (AC_FUNC_GETLOADAVG): Likewise.
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ENABLE, _AC_INIT_PREPARE):
+ (_AC_ARG_VAR_VALIDATE, AC_ARG_PROGRAM, _AC_MSG_LOG_CONFTEST):
+ (AC_RUN_LOG, _AC_RUN_IFELSE, _AC_LIBOBJS_NORMALIZE): Likewise.
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Likewise.
+ * lib/autoconf/libs.m4 (_AC_PATH_X_DIRECT): Likewise.
+ * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH):
+ (AC_PROG_MAKE_SET): Likewise.
+ * lib/autoconf/status.m4 (_AC_SRCDIRS, _AC_OUTPUT_HEADER):
+ (_AC_OUTPUT_SUBDIRS, _AC_OUTPUT_CONFIG_STATUS): Likewise.
+ * lib/autotest/general.m4 (_AT_CREATE_DEBUGGING_SCRIPT, AT_INIT):
+ (AT_CLEANUP, _AT_DECIDE_TRACEABLE, _AT_CHECK): Likewise.
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE, _AS_ECHO_UNQUOTED):
+ (_AS_BASENAME_SED, _AS_DIRNAME_SED, AS_MKDIR_P, AS_TMPDIR, AS_UNAME):
+ (AS_TR_SH, AS_TR_CPP, AS_VAR_GET): Likewise.
+ * bin/autoconf.as: Redo verbose flag implementation, as the old
+ scheme wouldn't work with AS_ECHO.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+ * lib/autoconf/general.m4 (AC_MSG_RESULT, AC_MSG_RESULT_UNQUOTED):
+ Don't use ECHO_T, since ECHO_N is now reliable.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+ * lib/autoconf/general.m4 (AC_ARG_PROGRAM): Use sed "$script"
+ rather than using a here-document to put the script into a file.
+ (_AC_DO_ECHO): Hoist the eval out of the echo, so that we can
+ use AS_ECHO.
+ * lib/m4sugar/m4sh.m4 (AS_VAR_GET): Likewise.
+ * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH): Use
+ AS_ECHO_N rather than ECHO_N and ECHO_C. This doesn't fix any
+ bug, but we might as well stop using ECHO_N and ECHO_C internally.
+ * lib/autotest/general.m4 (AT_SETUP): Likewise.
+ * lib/m4sugar/m4sh.m4 (_AS_ECHO_N): Likewise.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS):
+ (_AC_OUTPUT_MAIN_LOOP): Rework echo so that it has just one
+ operand, as AS_ECHO requires. Avoid double file name expansion.
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Invoke _AS_ECHO_PREPARE.
+ Don't set as_nl, since _AS_ECHO_PREPARE does that now.
+ (_AS_PREPARE): Comment that _AS_ECHO_N_PREPARE is just for user code.
+ (AS_ECHO, AS_ECHO_N, _AS_ECHO_PREPARE): New macros.
+ * tests/c.at (AC_PROG_CPP without warnings, AC_PROG_CPP via CC):
+ Double-quote strings that would otherwise contain M4 comments.
+ * tests/m4sh.at (AS_ECHO and AS_ECHO_N): New test.
+
+ * configure.ac (AC_INIT): Bump to 2.61a.
+ * NEWS: Likewise.
+
+2006-11-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ Version 2.61.
+
+ * configure.ac (AC_INIT): Bump to 2.61.
+ * NEWS: Likewise.
+
+ * tests/autotest.at (Macro with backslash in a test title):
+ Comment out for now, as this tests neither fails nor passes
+ reliably. Problem reported by Ralf Wildenhues.
+
+2006-11-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ENABLE): Fix some typos
+ in previous change, which caused test failures.
+
+2006-11-16 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Factor out
+ code for --enable, --disable, --with, and --without to...
+ (_AC_INIT_PARSE_ENABLE): ... a new macro.
+ * doc/autoconf.texi (Package Options):
+ * NEWS: Document that AC_ARG_ENABLE allows dots, too.
+
+2006-11-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ Import these changes from config via gnulib:
+
+ 2006-11-15 Ben Elliston <bje@gnu.org>
+
+ From Josselin Mouette <joss@debian.org>:
+ * build-aux/config.guess (SX-8:SUPER-UX:*:*): New.
+
+ 2006-11-08 Ben Elliston <bje@gnu.org>
+
+ * build-aux/config.guess (authenticamd:Interix*:[3456]*): Another AMD64.
+
+ 2006-11-07 Steve Woodford <scw@NetBSD.org>
+ Ben Elliston <bje@gnu.org>
+
+ * build-aux/config.guess (*:NetBSD:*:*): Handle sh5el arch.
+ * build-aux/config.sub (sh5el): New basic_machine.
+
+
+ Import this change from coreutils:
+
+ 2006-02-13 Jim Meyering <jim@meyering.net>
+
+ * GNUmakefile (all): Emit diagnostics to stderr, not stdout.
+
+
+ Import this change from gnustandards via gnulib:
+
+ 2006-11-15 Karl Berry <karl@gnu.org>
+
+ * standards.texi: core -> memory, throughout.
+ (CPU Portability): show correct example of calling write
+ on a char value; thanks to Paul Eggert for the code.
+ Both of these suggestions from Eugene Y. Vasserman.
+
+
+ Import these changes from texinfo via gnulib:
+
+ 2006-11-08 Karl Berry <karl@gnu.org>
+
+ * build-aux/texinfo.tex (\dopdfimage): look for png, jpg/jpeg/JPG, and
+ as well as pdf images, since they are supported in pdftex with
+ no further ado.
+
+ 2006-11-05 Karl Berry <karl@gnu.org>
+
+ * doc/texinfo.tex (Image Syntax): don't mention GIF any more.
+
+2006-11-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Document the AC_ARG_WITH change.
+
+2006-11-13 Bruno Haible <bruno@clisp.org>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): For --with, --without
+ options, transliterate also dots to underscores.
+ (_AC_ENABLE_IF): Transliterate also dots to underscores.
+ * doc/autoconf.texi (External Software): Document that AC_ARG_WITH's
+ first argument may also contain dots.
+
+2006-11-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/mktests.sh (ac_exclude_list): Exclude AC_PROG_CXX_C_O, for
+ benefit of platforms like Solaris+GCC where it is common to have a
+ non-working g++ installation.
+
+2006-11-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ and Joel E. Denny <jdenny@ces.clemson.edu>
+ and Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/autotest.at (AT_CHECK_AT_TITLE): Fix shell quoting bugs
+ and non-portable sed scripts, and use $CONFIG_SHELL when invoking
+ ./micro-suite.
+
+2006-11-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/types.m4 (AC_TYPE_LONG_LONG_INT): Set
+ ac_cv_type_long_long_int to 'yes' instead of 'cross-compiling'.
+ Imported from a similar patch to gnulib by Bruno Haible.
+
+2006-11-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: New macros AC_C_FLEXIBLE_ARRAY_MEMBER, AC_C_VARARRAYS.
+ * doc/autoconf.texi (C Compiler): Document them.
+ * lib/autoconf/c.m4 (AC_C_FLEXIBLE_ARRAY_MEMBER, AC_C_VARARRAYS):
+ New macros, taken from gnulib.
+
+2006-11-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/types.m4 (AC_TYPE_LONG_LONG_INT): Detect bug in
+ Tandem NonStop Kernel (OSS) cc -O circa 2004, reported by
+ Matthew Woehlke.
+
+2006-10-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/torture.at (Configuring subdirectories): Do not skip
+ Automake 1.10 nor future Automake 11.1 (sic).
+
+2006-10-26 Joel E. Denny <jdenny@ces.clemson.edu>
+ and Stepan Kasal <kasal@ucw.cz>
+
+ Handle special characters in test case titles correctly.
+ * lib/autotest/general.m4 (AT_INIT): M4-quote and AS_ESCAPE AT_help_all
+ properly.
+ (AT_SETUP): M4-quote and AS_ESCAPE the title properly everywhere.
+ * tests/autotest.at (AT_CHECK_AT_TITLE): Add EXPANDED-TITLE-TO-TEST
+ argument. Extend to check titles printed by ./micro-suite and
+ ./micro-suite -l and the title in micro-suite.log.
+ (Backquote in a test title,
+ Single-quote in a test title,
+ Double-quote in a test title): Don't expect failure anymore.
+ (Backslash in a test title): Put a non-whitespace character after the
+ backslash so that Bourne shells might actually see it as an escape
+ sequence.
+ (Brackets in a test title,
+ Pound in a test title,
+ Comma in a test title,
+ Quoted Macro in a test title,
+ Macro in a test title,
+ Macro with single-quote in a test title): New tests.
+ (Macro with backquote in a test title,
+ Macro with double-quote in a test title,
+ Macro with backslash in a test title): New tests expected to fail.
+ * tests/torture.at (#define header templates): M4-quote this title in
+ AT_SETUP call so that no M4 code is commented inadvertently somewhere.
+ The visible effect was a stray [] in the testsuite output.
+
+2006-10-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Limitations of Builtins): Do not invoke
+ `trap ... 0' inside a function, for AIX sh.
+
+2006-10-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/base.at (AC_COMPUTE_INT): Test **0** rather than 1 / 0,
+ since powerpc-apple-darwin8-gcc-4.0.1 (Apple Computer, Inc. build
+ 5363) simply issues a warning when dividing by zero at compile
+ time. Problem reported by Elias Pipping.
+
+2006-10-26 Eric Blake <ebb9@byu.net>
+
+ * THANKS: Update.
+ * doc/autoconf.texi (Evaluation Macros): Improve the example to
+ show effect on macros that expand with commas.
+ Reported by Joel E. Denny.
+
+ * tests/m4sugar.at (m4_warn, m4_require: circular dependencies):
+ Also work with M4 1.4.8.
+
+2006-10-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Slashes): Document Tru64 4.0 bug reported by
+ Jim Meyering.
+
+2006-10-25 Stepan Kasal <kasal@ucw.cz>
+
+ * tests/tools.at (autom4te --force): New test, verifies that
+ `--force' always rewrites the output file.
+
+2006-10-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Document that rm
+ needs operands on NetBSD 2.0.2. Problem reported by Bruno Haible.
+
+2006-10-24 Stepan Kasal <kasal@ucw.cz>
+
+ * tools/trace.at (autoconf --trace: user macros): Test `$%'.
+
+2006-10-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/specific.m4 (_AC_SYS_LARGEFILE_MACRO_VALUE):
+ If FUNCTION-BODY is nonempty, use AC_LINK_IFELSE rather than
+ AC_COMPILE_IFELSE, to work around problem with OSF/1 4.0F fseeko
+ reported by Nelson H. F. Beebe for Coreutils 6.4.
+
+ * tests/tools.at (autoconf --trace: user macros): Remove test
+ for tracing multiline macros, since m4 1.4.7a uses a different
+ way to number lines. Problem reported by Ralf Wildenhues.
+
+2006-10-24 Stepan Kasal <kasal@ucw.cz>
+
+ * bin/autom4te.in (handle_m4): Do not redirect stdin to
+ /dev/null since the heuristics for interactive behaviour was
+ fixed in CVS m4.
+
+ * bin/autom4te.in: With --force, always refresh the output
+ file. Problem reported by Greg Schafer <gschafer@zip.com.au>.
+
+ * bin/autoconf.as: Fix the verbose message at the end.
+
+2006-10-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * configure.ac (AC_INIT): Bump to 2.60c.
+ * NEWS: Likewise.
+
+2006-10-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Version 2.60b.
+
+ Import this change from Texinfo:
+ 2006-10-15 Karl Berry <karl@gnu.org>
+ * build-aux/texinfo.tex: automake 1.10
+
+ * NEWS: Remove AC_CACHE_CHECK_INT.
+ * doc/autoconf.texi (Caching Results): Likewise.
+ * lib/autoconf/general.m4 (_AC_CACHE_CHECK_INT): Renamed from
+ AC_CACHE_CHECK_INT, since it's no longer public.
+ * lib/autoconf/types.m4: All uses of AC_CACHE_CHECK_INT changed.
+ * tests/base.at (AC_COMPUTE_INT): Test this, not AC_CACHE_CHECK_INT.
+
+2006-10-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Fix two typos.
+
+2006-10-19 Eric Blake <ebb9@byu.net>
+
+ * lib/m4sugar/m4sugar.m4 (m4_mkstemp): New macro.
+ (m4_maketemp): Avoid warnings with M4 1.9a.
+ * lib/emacs/autoconf-mode.el (autoconf-font-lock-keywords): Color
+ m4_mkstemp.
+ * doc/autoconf.texi (Redefined M4 Macros): Document m4_mkstemp.
+ * NEWS: Likewise.
+
+2006-10-16 Eric Blake <ebb9@byu.net>
+
+ * doc/autoconf.texi (Setting Output Variables): Fix typo.
+
+ * bin/autoconf.as (version): Reword to match GNU Coding
+ Standards.
+ * bin/autoheader.in (version): Likewise.
+ * bin/autom4te.in (version): Likewise.
+ * bin/autoreconf.in (version): Likewise.
+ * bin/autoscan.in (version): Likewise.
+ * bin/autoupdate.in (version): Likewise.
+ * bin/ifnames.in (version): Likewise.
+
+2006-10-14 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sh.m4 (AS_LITERAL_IF): Expand $1 before
+ looking for special shell characters.
+ * lib/autoconf/functions.m4 (AC_CHECK_FUNC): Do not expand the
+ macro defined by AS_VAR_PUSHDEF before passing it as a
+ parameter.
+ * lib/autoconf/general.m4 (AC_CHECK_FILE, AC_CHECK_DECL):
+ * lib/autoconf/libs.m4 (AC_SEARCH_LIBS, AC_CHECK_LIB):
+ * lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW, AC_CHECK_MEMBER):
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL):
+ (_AC_CHECK_HEADER_NEW, _AC_CHECK_HEADER_OLD, _AC_CHECK_HEADER_DIRENT):
+ Likewise.
+ * lib/autotest/general.m4 (AT_INIT): Quote parameters of
+ AS_VAR_* properly.
+ * tests/m4sh.at (AS_LITERAL_IF): New test.
+
+2006-10-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ (Imported from Automake.)
+ * build-aux/install-sh (posix_mkdir): Reject FreeBSD 6.1 mkdir -p -m,
+ which incorrectly sets the mode of an existing destination
+ directory. In some cases the unpatched install-sh could do the
+ equivalent of "chmod 777 /" or "chmod 0 /" on a buggy FreeBSD
+ system. We hope this is rare in practice, but it's clearly worth
+ fixing. Problem reported by Alex Unleashed in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2006-10/msg00012.html>.
+ Also, don't bother to check for -m bugs unless we're using -m;
+ suggested by Stepan Kasal.
+
+2006-10-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ Import this change from Automake:
+
+ 2006-08-23 Alexandre Duret-Lutz <adl@gnu.org>
+ * lib/Autom4te/ChannelDefs.pm (usage): Mention that -Wportability
+ is enabled by default with gnu and gnits strictness.
+ Report from Bruno Haible.
+
+ 2006-03-10 Alexandre Duret-Lutz <adl@gnu.org>
+ * lib/Autom4te/ChannelDefs.pm: Make -Wportability the default in
+ gnu and gnits modes.
+
+ Import this change from Config:
+
+ 2006-09-20 Ben Elliston <bje@gnu.org>
+ * build-aux/config.sub (score, score-*): New.
+
+ Import this change from Gnulib:
+
+ 2006-09-16 Karl Berry <karl@gnu.org>
+ * doc/fdl.texi (ADDENDUM): switch to @heading from @appendixsubsec,
+ to avoid sectioning errors.
+
+ Import these changes from Texinfo:
+
+ 2006-10-04 Karl Berry <karl@gnu.org>
+ * build-aux/texinfo.tex (\singlequotechar): rename to \codequoteright.
+ (\quoteexpand): rename to \rquoteexpand.
+ (\codequoteleft): new def, to look for @set codequotebacktick.
+ (\lquoteexpand, \quoteexpand): new defs.
+ (\lquoteChar, \rquoteChar, \dashChar, \underChar: new \chardef's.
+ (\code): must use new \...Char values, since now ` is active.
+
+ 2006-08-26 Karl Berry <karl@gnu.org>
+ * build-aux/texinfo.tex (\textdegree): New command.
+
+ 2006-08-12 Karl Berry <karl@gnu.org>
+ * build-aux/texinfo.tex (error \box0): smaller font.
+
+2006-10-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Autoheader Macros): Fix syntax error.
+
+2006-10-13 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Autoheader Macros): Warn that the text
+ added to the template can get mangled.
+
+2006-10-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_OBSTACK): In the test,
+ include the default headers, and redefine obstack_chunk_alloc
+ and obstack_chunk_free. Fixes false failure with glibc.
+
+2006-10-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/m4sugar/m4sh.m4 (_AS_TEST_PREPARE): Set as_executable_p,
+ for backward compatibility with Libtool 1.5.22. Problem reported
+ by Ralf Wildenhues.
+
+2006-10-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/c.m4 (AC_PROG_GCC_TRADITIONAL): Require
+ AC_PROG_CC.
+ Report by IOhannes m zmoelnig <zmoelnig@iem.at>.
+
+2006-10-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: AC_USE_SYSTEM_EXTENSIONS now defines _TANDEM_SOURCE for
+ the NonStop platform.
+ * doc/autoconf.texi (Posix Variants): Likewise.
+ * lib/autoconf/specific.m4 (AC_USE_SYSTEM_EXTENSIONS): Likewise.
+
+ * lib/m4sugar/m4sh.m4 (AS_TEST_X): New macro.
+ (AS_EXECUTABLE_P): Use as_test_x rather than as_executable_p.
+ (_AS_TEST_PREPARE): Set as_test_x rather than as_executable_p.
+ Use a better substitute, by inspecting the output of "ls"
+ rather than just using ":".
+ * lib/autoconf/general.m4 (_AC_LINK_IFELSE): Use AS_TEST_X
+ rather than AS_EXECUTABLE_P, since we needn't worry about
+ non-regular files here.
+
+ * NEWS: Autoconf-generated shell scripts no longer export BIN_SH,
+ due to configuration hassles with this. See Tonya Underwood's report
+ <http://lists.gnu.org/archive/html/bug-autoconf/2006-10/msg00003.html>.
+ * doc/autoconf.texi (Special Shell Variables): Likewise.
+
+2006-10-11 Paul Eggert <eggert@cs.ucla.edu>
+ Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sh.m4 (AS_BOURNE_COMPATIBLE): Don't set BIN_SH.
+ (_AS_DETECT_BETTER_SHELL): Don't look in /usr/bin/posix.
+
+2006-10-11 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sh.m4 (AS_BOURNE_COMPATIBLE): Move the
+ initialization which is not inherited through the environment
+ (_AS_BOURNE_COMPATIBLE): ... to this new macro.
+ (_AS_RUN): Call _AS_BOURNE_COMPATIBLE, not AS_BOURNE_COMPATIBLE.
+
+2006-10-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Describe
+ problems with mkdir -p -m.
+
+2006-10-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/c.m4 (_AC_PROG_PREPROC_WORKS_IFELSE): Remove
+ comment about ac_cpp_err; it was incorrect, and anyway
+ ac_cpp_err is being removed below.
+ * lib/autoconf/general.m4 (_AC_PREPROC_IFELSE): Don't
+ set ac_cpp_err to 'yesyes' if preproc_warn_flag and werror_flag
+ are both 'yes'. In fact, don't bother setting ac_cpp_err at all;
+ nobody uses it.
+ (_AC_COMPILE_IFELSE, _AC_LINK_IFELSE): Don't log our funky tests
+ with werror_flag and conftest.err and so forth. This is more
+ compatible with how _AC_PROG_PREPROC_WORKS_IFELSE behaves,
+ and anyway the user shouldn't normally want to see this gorp logged.
+ Problem reported by Ralf Wildenhues.
+ * lib/autoconf/lang.m4 (AC_LANG_WERROR): werror_flag's default is
+ empty, not 'no', since the rest of the code uses 'test -z'.
+
+2006-10-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/general.m4 (_AC_COMPILE_IFELSE, _AC_LINK_IFELSE):
+ Use a single call to AC_DO_TOKENS rather than multiple, for
+ efficiency.
+ (_AC_LINK_IFELSE): Test that resulting file is executable.
+ Problem reported by mwoehlke in
+ <http://lists.gnu.org/archive/html/bug-coreutils/2006-10/msg00048.html>.
+
+ * lib/m4sugar/m4sh.m4 (_AS_TEST_PREPARE): Use "test -x /" rather
+ than creating a file to use with test -x; this is much faster.
+
+2006-10-02 Bruno Haible <bruno@clisp.org>
+
+ * lib/autom4te.in (Automake-preselections): Add
+ AM_GNU_GETTEXT_INTL_SUBDIR, for automake 1.10.
+
+2006-09-27 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Writing testsuite.at): Fix a typo: for
+ standard error, `experr' should be used, not `expout'.
+
+2006-09-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_FSEEKO): Don't compile the
+ fseeko testing program twice; just use the earlier result.
+ * lib/autoconf/specific.m4 (_AC_SYS_LARGEFILE_MACRO_VALUE):
+ Set cache var to 'unknown' (not 'no') if leaving the macro unset
+ still doesn't let the program compile.
+ (AC_SYS_LARGEFILE): Test for _LARGE_FILES only if earlier tests
+ failed.
+
+ * lib/autoconf/functions.m4: Fix problems reported by Ralf Wildenhues.
+ (AC_FUNC_ERROR_AT_LINE): Don't bother to check for error.h. Just
+ include it, without including anything else.
+ (AC_FUNC_FSEEKO): Avoid gcc -Wall warnings about constant
+ expressions.
+ (AC_FUNC_STRNLEN): Require AC_USE_SYSTEM_EXTENSIONS.
+
+2006-09-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_ERROR_AT_LINE): Check for
+ `error.h', and include it, for a `error_at_line' prototype.
+ Use a nonempty format string in the link test.
+ * lib/autoconf/functions.m4 (AC_FUNC_WAIT3): Include <sys/wait.h>,
+ for a declaration of wait3.
+
+2006-09-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: AC_CHECK_DECL now also works with aggregate objects.
+ * doc/autoconf.texi (Generic Declarations): Clarify that AC_CHECK_DECL
+ can apply to constants too, and that it checks for macro defns.
+ * lib/autoconf/general.m4 (AC_CHECK_DECL): Assume C89 or better,
+ and simply cast the identifier to void. This handles structure
+ values. Problem reported by Ralf Wildenhues.
+ * tests/semantics.at (AC_CHECK_DECLS): Also check enums.
+
+2006-09-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/semantics.at (AC_CHECK_DECLS): Also check macros,
+ structure, and function symbols.
+
+2006-09-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/semantics.at (AC_CHECK_MEMBERS): Also test with a struct
+ member.
+
+2006-09-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Recommend M4 1.4.7 instead of 1.4.6.
+ * README: Likewise.
+ * doc/autoconf.texi (Introduction, Why GNU M4): Likewise.
+
+2006-09-25 Paul Eggert <eggert@cs.ucla.edu>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_OBSTACK): Avoid `gcc -Wall'
+ warnings (uninitialized value).
+ (AC_FUNC_UTIME_NULL): Likewise, test for and include <utime.h> if
+ present.
+ * lib/autoconf/types.m4 (AC_TYPE_LONG_LONG_INT): Likewise, add
+ parentheses.
+ (AC_STRUCT_TM): Likewise, avoid unused variables.
+
+2006-09-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/c.m4 (_AC_ARG_VAR_LDFLAGS): Update comment.
+ (_AC_ARG_VAR_LIBS): New macro: let LIBS be precious.
+ (AC_PROG_CC, AC_PROG_CXX, AC_PROG_OBJC): Call _AC_ARG_VAR_LIBS.
+ * lib/autoconf/fortran.m4 (AC_PROG_F77, AC_PROG_FC): Likewise.
+ Report by Olly Betts.
+
+2006-09-19 Eric Blake <ebb9@byu.net>
+
+ * m4/m4.m4: Change copyright.
+ * configure: Regenerate.
+ * Makefile.in: Likewise.
+ * bin/Makefile.in: Likewise.
+ * doc/Makefile.in: Likewise.
+ * lib/Makefile.in: Likewise.
+ * lib/Autom4te/Makefile.in: Likewise.
+ * lib/autoconf/Makefile.in: Likewise.
+ * lib/autoscan/Makefile.in: Likewise.
+ * lib/autotest/Makefile.in: Likewise.
+ * lib/emacs/Makefile.in: Likewise.
+ * lib/m4sugar/Makefile.in: Likewise.
+ * man/Makefile.in: Likewise.
+ * tests/Makefile.in: Likewise.
+
+ * m4/m4.m4 (AC_PROG_GNU_M4): Check for m4 --debugfile support.
+ * bin/Makefile.am (edit): Substitute M4_DEBUGFILE.
+ * bin/autom4te.in (handle_m4): Favor --debugfile over misnamed
+ --error-output, to avoid warnings with M4 2.0.
+
+2006-09-19 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/libs.m4 (AH_CHECK_LIB): Fix quoting, to be
+ consistent with _AH_CHECK_FUNCS and _AH_CHECK_HEADERS.
+ * lib/autoconf/headers.m4 (AH_CHECK_HEADERS_DIRENT): Likewise.
+
+2006-09-15 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_GETMNTENT): Eliminate the
+ expansion of AC_CHECK_FUNCS.
+
+2006-09-14 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (AC_CONFIG_MACRO_DIR): Remove a
+ mistaken comment: the path has to be relative; do not use
+ the path at runtime.
+
+2006-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): Quote the
+ argument to `--prefix' for sub-configure scripts.
+ Pass `--silent' to sub-configure scripts.
+ * tests/torture.at (Configuring subdirectories): Add tests
+ for both changes.
+ * doc/autoconf.texi (Setting Output Variables): Fix example to
+ not show `--silent' being passed to a `configure' re-run.
+
+2006-09-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Input): Clarify role of AC_CONFIG_MACRO_DIR.
+ * lib/autoconf/general.m4 (AC_CONFIG_MACRO_DIR): Do not check
+ for the existence of the directory at configure-time. That's
+ too late, anyway. Problem reported by Stefan Seefeld.
+
+ * lib/m4sugar/m4sh.m4 (_AS_TEST_PREPARE): Avoid bug in UnixWare
+ 7.1.4 /usr/bin/posix/sh described by Tim Rice in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2006-09/msg00017.html>.
+
+2006-09-11 Stepan Kasal <kasal@ucw.cz>
+
+ * tests/local.at (AT_CHECK_M4): Fix this so that the testsuite
+ works with GNU M4 1.4.3 again; make the normalized form
+ match the current m4 message; fix the description.
+ * test/tools.at (autom4te cache): Adapt to the change.
+
+2006-09-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_MKTIME): Add year_2050_test
+ to catch glibc bug 2821
+ <http://sourceware.org/bugzilla/show_bug.cgi?id=2821>.
+
+ Merge from gnulib as follows: Use AC_CHECK_HEADERS_ONCE instead of
+ AC_CHECK_HEADERS, and likewise for AC_CHECK_FUNCS_ONCE and
+ AC_CHECK_FUNCS. Don't check for stdlib.h, since we now
+ assume C89.
+
+2006-09-08 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autom4te.in (Autoconf-without-aclocal-m4): Move the
+ preselections ...
+ (Autoconf): ... here.
+ (Autoscan-preselections): Delete.
+
+2006-09-07 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autom4te.in (Automake-preselections): Preselect
+ AM_ENABLE_MULTILIB.
+
+2006-09-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Preset Output Variables): srcdir and
+ top_srcdir are not necessarily relative. Problem reported
+ by Dries Kimpe.
+
+2006-09-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC): Prefer xlf90/xlf95 over
+ f90/f95 because the latter drivers of AIX Fortran 9.1 do not
+ accept files with extension `.f'. For consistency, also prefer
+ xlf over f77.
+ * doc/autoconf.texi (Fortran Compiler): Remove mention of bug
+ from last patch.
+
+2006-09-05 Romain Lenglet <rlenglet@users.forge.objectweb.org>
+
+ * lib/autoconf/erlang.m4 (AC_ERLANG_CHECK_LIB): Added substitution
+ of ERLANG_LIB_VER_* variables.
+ * doc/autoconf.texi (Erlang Libraries): Document ERLANG_LIB_VER_*
+ variables.
+
+2006-09-03 Paul Eggert <eggert@cs.ucla.edu>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Limitations of Builtins): Document 'unset'
+ bugs of Bash 2.01 and 2.05a.
+ (Fortran Compiler): Document that AC_PROG_CC should be called
+ before AC_PROG_FC, due to a bug in Autoconf.
+
+2006-09-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: New macro AC_CACHE_CHECK_INT. It replaces the
+ old AC_COMPUTE_INT, which now behaves like _AC_COMPUTE_INT
+ except the first two arguments are reversed.
+ * doc/autoconf.texi (Caching Results): New macro AC_CACHE_CHECK_INT.
+ (Generic Compiler Characteristics): AC_COMPUTE_INT no longer
+ caches nor outputs a diagnostic. Suggested by Bruno Haible.
+ * lib/autoconf/general.m4 (AC_CACHE_CHECK_INT): New macro,
+ equivalent to the old AC_COMPUTE_INT.
+ (AC_COMPUTE_INT): No longer caches or reports. New signature.
+ All uses changed to AC_CACHE_CHECK_INT.
+ * tests/base.at (AC_CACHE_CHECK_INT): New test.
+ * tests/mktests.sh (ac_exclude_list): Add AC_CACHE_CHECK_INT.
+
+2006-08-31 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: AC_FUNC_FNMATCH, AC_FUNC_FNMATCH_GNU, AC_FUNC_GETLOADVG,
+ and AC_REPLACE_FNMATCH are now obsolescent in Autoconf. New
+ programs should use their Gnulib counterparts.
+ * doc/autoconf.texi (Particular Functions): Likewise.
+ (Macro Names, testsuite Invocation): Replace uses of these
+ obsolete macros with uses of non-obsolete macros.
+
+2006-08-29 Eric Blake <ebb9@byu.net>
+
+ * configure.ac (AC_INIT): Bump to 2.60b.
+ * NEWS: Update.
+
+2006-08-28 Eric Blake <ebb9@byu.net>
+
+ * lib/autoconf/headers.m4 (AC_HEADER_STAT): Fix logic that was
+ mistakenly swapped on 2006-08-15.
+
+2006-08-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Version 2.60a.
+
+2006-08-25 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (_AC_LINK_IFELSE): Remove the IPA/IPO
+ file created by the PGI compiler.
+
+2006-08-25 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/Autom4te/General.pm (END): Use `File::Path::rmtree' to
+ simplify the code.
+
+2006-08-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix Lex library problem reported to us by Julio Garvia.
+ * doc/autoconf.texi (Particular Programs): YYTEXT_POINTER is
+ for the default, which the user can override.
+ * lib/autoconf/programs.m4 (AC_PROG_LEX): Let _AC_PROG_LEX_YYTEXT_DECL
+ deal with LEXLIB.
+ (_AC_PROG_LEX_YYTEXT_DECL): Handle caching correctly; the old code
+ didn't work if some values were cached but not others. Test for
+ broken lex libraries like native ia64-hp-hpux11.22; see
+ <http://sources.redhat.com/ml/binutils/2003-12/msg00337.html>, and
+ work around the problem by preferring an empty LEXLIB to -lfl or
+ -ll. Let the user set LEXLIB='' to indicate no library needed.
+
+ * NEWS: Recommend M4 1.4.6 instead of 1.4.5.
+ * README: Likewise.
+ * doc/autoconf.texi (Introduction, Why GNU M4): Likewise.
+
+2006-08-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ Rework to use more-modern build style.
+ Many files are renamed; all uses of their names were changed.
+ * .x-sc_trailing_blank: Renamed from .x-sc_trailing_space.
+ * .x-sc_useless_cpp_parens: New file.
+ * build-aux/config.guess: Renamed from config/config.guess. Update.
+ * build-aux/config.sub: Renamed from config/config.sub. Update.
+ * build-aux/elisp-comp: Renamed from config/elisp-comp.
+ * build-aux/install-sh: Renamed from config/install-sh. Update.
+ * build-aux/mdate-sh: Renamed from config/mdate-sh.
+ * build-aux/missing: Renamed from config/missing.
+ * build-aux/texinfo.tex: Renamed from config/texinfo.tex. Update.
+ * build-aux/vc-list-files: Renamed from config/vc-list-files.
+ * config/Makefile.am: Removed.
+ * config/mkinstalldirs: Removed.
+ * config/move-if-change: Removed.
+ * m4/m4.m4: Renamed from config/m4.m4. Add (C) to copyright notice.
+ * Makefile.am (SUBDIRS): Remove config.
+ (ACLOCAL_AMFLAGS): Include from m4, not config.
+ (EXTRA_DIST): Add config/announce-gen, config/prev-version.txt.
+ (WGET, WGETFLAGS): New macros, since Makefile.maint no longer does this.
+ (autom4te-update): Rewrite with a loop. Get from gnulib, not automake.
+ Fail if there's an error.
+ * Makefile.cfg (move_if_change): Remove.
+ (wget_files): Remove.
+ (cvs_executable_files): New macro.
+ (cvs_files): Use it. Remove mkinstalldirs. Add fdl.texi.
+ (executable-update): Use $(cvs_executable_files).
+ (local-checks-to-skip): Remove.
+ * Makefile.maint: Merge from coreutils, plus add our own changes
+ (gzip_rsyncable): New macro.
+ (GZIP_ENV): Use it.
+ (CVS_LIST): Use build-aux/vc-list-files.
+ (VERSION_REGEXP): New macro.
+ (local-checks-available): Add patch-check, $(syntax-check-rules),
+ check-AUTHORS.
+ (syntax-check-rules): Compute dynamically.
+ (sc_cast_of_x_alloc_return_value): Work even if no source files.
+ (sc_cast_of_alloca_return_value): Likewise.
+ (sc_prohibit_atoi_atof): Simplify regexp.
+ (sc_no_if_have_config_h, sc_require_config_h):
+ (sc_prohibit_assert_without_use,
+ (sc_obsolete_symbols): Check for O_NDELAY.
+ (sc_texi_notab): Remove.
+ (sc-changelog): Don't make an exception for '----' lines.
+ (.re-list): Remove, so we don't have a junk file behind.
+ (sc_system_h_headers): Remove the need for .re-list.
+ (sc_the_the): New rule.
+ (sc_tight_scope): Simplify.
+ (sc_trailing_blank): Renamed from sc_trailing_space.
+ (longopt_re): New macro.
+ (sc_two_space_separator_in_usage): New rule.
+ (sc_unmarked_diagnostics): Look at all files under CVS.
+ (sc_useless_cpp_parens, patch-check, check-AUTHORS): New rules.
+ (news-date-check, changelog-check): Version is OK.
+ (po-check): Look for lib files even if not in CVS.
+ (copyright-check): Use $() not ``.
+ (maintainer-distcheck): Do not depend on changelog-check.
+ (my-distcheck): Depend on $(release_archive_dir)/$(prev-tgz).
+ Also check for -Wpointer-arith.
+ (WGET, WGETFLAGS, tgz-md5, tgz-sha1, bz2-md5, bz2-sha1):
+ (xdelta-md5, xdelta-sha1, tgz-size, bz2-size, xd-size, rel-check):
+ Remove.
+ (announcement): Add --gpg-key-id arg.
+ (cvs-sv): Remove.
+ (move_if_change): Just use mv.
+ (local_updates: Remove wget-update, po-update.
+ (po_repo, do-po-update, po-update, wget_files, get-targets): Remove.
+ (config.guess-url_prefix, config.sub-url_prefix): Remove.
+ (ansi2knr.c-url_prefix, texinfo.tex-url_prefix):
+ (standards.texi-url_prefix, make-stds.texi-url_prefix, target, url):
+ ($(get-targets)): Remove.
+ (cvs_files): Remove missing, mkinstalldirs, ansi2knr.c.
+ (gnulib_repo): Renamed from automake_repo. Get from gnulib now.
+ (cvs-update): Get from gnulib.
+ (emut_upload_commands): gnupload is in build-aux now.
+ (alpha beta major): Add changelog-check. Check version.
+ * configure.ac (AC_CONFIG_AUX_DIR): Renamed from config to build-aux.
+ (AC_CONFIG_FILES): Remove.
+ * bin/autoconf.as: Add spaces to avoid distcheck warning.
+ * config/announce-gen: Sync from coreutils.
+ * doc/make-stds.texi: Sync from gnulib.
+ * doc/standards.texi: Likewise.
+ * man/Makefile.am: Adjust for config -> build-aux renaming.
+ * tests/Makefile.am: Prefer $(FOO) to @FOO@.
+ * tests/local.at: Adjust from config -> build-aux renaming.
+ * tests/tools.at: Likewise.
+ * tests/torture.at: Likewise.
+
+ * NEWS: The C99 check now tests for vararg macros and 64-bit
+ preprocessor ints.
+ * doc/autoconf.texi (C Compiler): Document // comments, va_copy.
+ * lib/autoconf/c.m4 (_AC_PROG_CC_C99): Test varargs macros and
+ 64-bit preprocessor ints. Check for static initialization of
+ long long. Remove unnecessary casts.
+
+2006-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Particular Programs): Mention that
+ @INSTALL@ and @MKDIR_P@ may vary for different output files.
+ Reported by Alexandre Duret-Lutz.
+
+2006-08-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS): Also ignore
+ -lgcc?* and -lSystem, for Darwin/MacOS X. Problem reported by
+ Bill Northcott in
+ <http://lists.gnu.org/archive/html/autoconf/2006-08/msg00083.html>.
+
+2006-08-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/c.m4 (AC_C_CONST): Don't used shadowed vars, to
+ pacify insanely picky compilers. Problem reported by Eric Blake.
+
+ * doc/autoconf.texi (Posix Variants): INTERACTIVE Unix is no
+ longer supported by Sun.
+
+2006-08-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Autoconf now uses constructs like "#ifdef HAVE_STDLIB_H"
+ rather than "#if HAVE_STDLIB_H", so that it now works with "gcc
+ -Wundef -Werror". Problem reported by David Fang in
+ <http://lists.gnu.org/archive/html/autoconf/2006-08/msg00045.html>.
+ * doc/autoconf.texi (Header Templates, Default Includes):
+ (Particular Functions, Generic Functions, Header Portability):
+ (Particular Headers, Generic Headers, Generic Declarations, Guidelines):
+ (Obsolete Macros, AC_FOO_IFELSE vs AC_TRY_FOO):
+ (Present But Cannot Be Compiled, Preprocessor Symbol Index):
+ Prefer #ifdef to #if.
+ * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Prefer #ifdef to #if.
+ * lib/autoconf/functions.m4 (AC_FUNC_ALLOCA, _AC_FUNC_MALLOC_IF):
+ (AC_FUNC_MKTIME, AC_FUNC_MMAP, _AC_FUNC_REALLOC_IF):
+ (AC_FUNC_SELECT_ARGTYPES, AC_FUNC_SETVBUF_REVERSED, _AC_FUNC_VFORK):
+ Likewise.
+ * lib/autoconf/headers.m4 (_AC_INCLUDES_DEFAULT_REQUIREMENTS):
+ (AC_HEADER_RESOLV, AC_HEADER_STAT): Likewise.
+ * lib/autoconf/specific.m4 (AC_DECL_SYS_SYGLIST):
+ (AC_SYS_RESTARTABLE_SYSCALLS): Likewise.
+ * lib/autoconf/headers.m4 (AC_HEADER_STAT): Don't assume that
+ S_ISDIR etc. are valid for use in #if; POSIX doesn't guarantee
+ this.
+
+2006-08-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Document sed
+ problems with arg script text that doesn't end in newline, and
+ with '-e a...'. Problems reported by Ralf Wildenhues.
+
+2006-08-12 Alexandre Julliard <julliard@winehq.org> (tiny change)
+
+ * lib/autoconf/libs.m4 (AC_PATH_X_DIRECT): Replace another
+ check for libXt by a check for libX11.
+
+2006-08-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (config.status Invocation): Adjust according
+ to last change.
+
+2006-08-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): `config.status
+ --help' should mention that `--version' outputs configuration
+ settings. Report by Bruno Haible.
+
+2006-08-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix test suite failures reported by Pierre in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2006-08/msg00005.html>.
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Don't claim
+ the compiler created a file "b.out" when it didn't create anything
+ at all.
+ * lib/autoconf/specific.m4 (AC_SYS_INTERPRETER):
+ Discard stderr too, when invoking the test script.
+
+2006-08-05 Alexandre Julliard <julliard@winehq.org> (tiny change)
+
+ * lib/autoconf/libs.m4 (AC_PATH_XTRA): Fixed a typo
+ in the restoring of the werror flag.
+
+2006-07-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Volatile Objects): Be even a little
+ less skeptical about "volatile", after discussion with
+ Bruno Haible on bug-gnulib.
+ (Limitations of Usual Tools): Warn about sed stripping
+ leading white space from text. From Bruno Haible.
+
+2006-07-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/libs.m4 (AC_PATH_XTRA): Don't use -R if the
+ compiler complains about it, even if things works after the
+ complaint. Problem reported by Peter O'Gorman.
+
+ * doc/autoconf.texi (Preset Output Variables): Document CFLAGS,
+ CPPFLAGS, and LDFLAGS better. Problem reported by Bruno Haible.
+ Similarly for CXXFLAGS, OBJCFLAGS, ERLCFLAGS.
+
+2006-07-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/libs.m4 (AC_PATH_XTRA): Do the check for space
+ after -R regardless of host. Patrick Welche reports that this
+ fixes things on NetBSD 3.99.
+
+ * NEWS: Recommend M4 1.4.5.
+ * README: Likewise.
+ * doc/autoconf.texi (Introduction, Why GNU M4): Likewise.
+ * tests/tools.at (autom4te cache): Update wording of diagnostic
+ to match M4 1.4.5.
+
+2006-07-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (C Compiler): Add a ref to Volatile Objects
+ under AC_C_VOLATILE.
+ (Volatile Objects): Be a little less skeptical about what
+ "volatile" means. Derived from thoughts by Ben Pfaff in
+ <http://lists.gnu.org/archive/html/bug-gnulib/2006-07/msg00092.html>.
+
+2006-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi: Fix some typos.
+
+2006-07-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/torture.at (Configuring subdirectories): Set CONFIG_SITE
+ more globally, since the 2006-06-30 patch didn't suffice. Problem
+ reported by Keith Marshall. Also, don't bother with builddir2,
+ since it shouldn't be needed any more.
+
+2006-07-07 Paolo Bonzini <bonzini@gnu.org>
+
+ * doc/autoconf.texi (Generic compiler characteristics):
+ Document AC_COMPUTE_INT. Fix wrong statements on Default
+ Includes for AC_CHECK_SIZEOF and AC_CHECK_ALIGNOF.
+
+ * lib/autoconf/general.m4 (AC_COMPUTE_INT): New.
+ (_AC_COMPUTE_INT): Add obsoletion warnings.
+ * lib/autoconf/types.m4 (AC_CHECK_SIZEOF, AC_CHECK_ALIGNOF): Use
+ AC_COMPUTE_INT.
+
+ * NEWS: Document change.
+
+2006-07-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Volatile Objects): New section.
+
+ * NEWS: Document previous change.
+
+2006-07-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/types.m4 (AC_TYPE_LONG_LONG_INT):
+ Require that long long int be at least 64 bits wide. C99 requires
+ this and enough programs depend on it so we should check for it.
+ Bruno Haible reports in
+ <http://lists.gnu.org/archive/html/bug-gnulib/2006-06/msg00286.html>
+ that long long int is 32 bits wide with some nonstandard compilers.
+ (AC_TYPE_UNSIGNED_LONG_LONG_INT): Likewise.
+
+2006-06-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/torture.at (Configuring subdirectories): Set CONFIG_SITE
+ to a nonexistent file, so that we don't have to worry about
+ a local site configuration that doesn't use /usr/local.
+ Problem reported by Keith Marshall in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2006-06/msg00133.html>.
+
+2006-06-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi: Be more consistent about using @acronym with
+ "HP" and "HP-UX". Remove mention of OSF; the old version wasn't
+ quite right (it talked about "OSF/Tru64", even though the
+ operating systems were called OSF/1, Digital UNIX, and Tru64 UNIX,
+ and it even mentioned "OSF 4"!) and at this point there's little
+ reason to talk about OSF any more, since it died in 1994.
+ (Specific Compiler Characteristics): Simplify example of
+ negative-size array.
+ (File Descriptors): Reorder to make the text flow better.
+ Remove joke about "appreciate the various levels"; I didn't get it.
+ Add remark about HP-UX sh -x bug with stderr noted by Bob Proulx in
+ <http://lists.gnu.org/archive/html/bug-coreutils/2006-06/msg00225.html>.
+ (File Descriptors, Limitations of Usual Tools):
+ Tone down the advice against renaming or removing open files.
+ (Limitations of Usual Tools): Add a new section, on 'rm'.
+
+2006-06-26 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/libs.m4 (_AC_PATH_X_DIRECT): Use -lX11, not
+ -lXt in LIBS, idea from Karsten Hopp; this was due since
+ this change:
+
+ 2005-09-18 Paul Eggert <eggert@cs.ucla.edu>
+ * lib/autoconf/libs.m4 (_AC_PATH_X_DIRECT): Look for X11/Xlib.h
+ and XrmInitialize rather than X11/Intrinsic.h and XtMalloc
+ (which belong to Xt, not X itself). See Debian bug 327655.
+
+2006-06-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure.ac (AC_INIT): Bump to 2.60a.
+ * NEWS: Update.
+
+2006-06-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Version 2.60.
+
+ * configure.ac, NEWS: Update.
+
+2006-06-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * config/texinfo.tex: Sync from upstream.
+
+ * bin/autom4te.in (handle_traces): Transform the `@S|@'
+ quadrigraph correctly in traces.
+
+ * NEWS, lib/Autom4te/C4che.pm, lib/autoconf/functions.m4:
+ Fix typos.
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILE): Expand tests for
+ datarootdir-related errors only if AC_DATAROOTDIR_CHECKED is
+ not defined.
+ * doc/autoconf.texi (Changed Directory Variables): New node,
+ to document the whole `datarootdir' business a bit better.
+ * NEWS: Update.
+ * tests/torture.at (datarootdir workaround): Extend test.
+ Prompted by report by Alexandre Julliard.
+
+2006-06-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/c.m4 (_AC_PROG_CC_C89): Check for C89 incompatibility
+ when using default mode of IBM C 6 for AIX. Problem and two-line
+ fix reported by Larry Jones.
+
+2006-06-22 Alexandre Julliard <julliard@winehq.org>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILE): Avoid warning
+ about literal '${datarootdir}' if a definition is found in the
+ output file.
+
+2006-06-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Use "M4" rather than "m4" when appropriate.
+ Problem reported by Eric Blake.
+ * doc/autoconf.texi: Likewise.
+ Use @acronym around BSD, GCC, and GNU when appropriate.
+ (Why GNU M4): Renamed from "Why GNU m4".
+ (Redefined M4 Macros): Mention that Posix
+ m4wrap takes only 1 argument, but GNU M4 1.4.x takes more.
+ (Buffer Overruns): Mention size_t and ptrdiff_t as alternatives
+ to int.
+
+2006-06-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * bin/autom4te.in (handle_output): Do not forbid the empty
+ pattern.
+ * tests/tools.at (autoconf: the empty token): New test.
+
+2006-06-20 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sugar.m4 (m4_init): Merge the two m4_wrap
+ calls, so that we do not care whether they are LIFO or FIFO;
+ in the m4_wrap, do not check which diversion is the topmost
+ one, just check that the stack is balanced at the end.
+ * lib/m4sugar/m4sh.m4 (AS_INIT): We are going to change the
+ base diversion forever--pop the previous diversion before
+ opening the new one; consequently, remove the m4_wrap call.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+ * tests/m4sugar.at: Do not use
+ m4_wrap([m4_diversion_pop([..])]), for educational purposes.
+
+2006-06-19 Paul Eggert <eggert@cs.ucla.edu>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * NEWS: Document that m4wrap/m4_wrap might not be LIFO.
+ * doc/autoconf.texi (Redefined M4 Macros): Likewise.
+ Rework example of m4wrap token-pasting trouble so that it doesn't
+ care whether it's LIFO or FIFO.
+ Fix some "contrary to"s that are awkward in English.
+
+2006-06-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/types.m4 (_AC_TYPE_INT): Set `$ac_cv_c_int$1_t'
+ to `yes' instead of `int$1_t' if the type is found, for more
+ consistent configure output (where $1 is the number of bits).
+ (_AC_TYPE_UINT): Likewise for `uint$1_t'.
+ Suggested by Bruno Haible.
+
+ * lib/autoconf/types.m4 (_AC_TYPE_UNSIGNED_INT): Solaris 2.5.1
+ needs _UINT8_T and _UINT64_T defines as well, to avoid clashes
+ with system headers. Report by Bruno Haible.
+
+2006-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * config/config.guess, config/config.sub: Sync from upstream.
+
+ * bin/Makefile.am (autoconf.in): Use `--melt' for autom4te,
+ in order to avoid picking up an older installed frozen m4sh.m4f.
+ Besides an outdated shell startup, this could have been created
+ by an earlier M4 version with incompatible frozen file format.
+
+2006-06-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * README: Recommend m4 1.4.4 instead of 1.4.3..
+ * doc/autoconf.texi: Likewise.
+ (Special Chars in Names): Say that $(.FOO) is portable, as
+ suggested by Stepan Kasal.
+ (Installation Directory Variables, Build Directories):
+ (Automatic Remaking, Subdirectories, Fortran Compiler):
+ (Making testsuite Scripts, Defining Directories):
+ Quote variable usages better.
+ (Making testsuite Scripts): Add clean-local rule to makefile
+ snippet, by Eric Blake.
+ (Installation Directory Variables): Fix table item font.
+ Reword slightly to clarify. Generalize advice about
+ not using special characters to include all file-related
+ vars, not just VPATH.
+ (Special Chars in Variables): Warn about special characters in
+ $(srcdir) too.
+ (Assignments): Clarify default-value example as suggested by
+ Ralf Wildenhues in
+ <http://lists.gnu.org/archive/html/autoconf-patches/2006-06/msg00072.html>.
+ (Special Shell Variables): Note leading ./ or ../, as suggested
+ by Eric Blake.
+ (Limitations of Builtins): Under cd, warn about CDPATH.
+ (The Make Macro MAKEFLAGS): Untabify. Problem reported by
+ Ralf Wildenhues.
+
+2006-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Configuration Actions): Remove duplicate
+ `@var', for texi2html.
+ (Systemology): Some more word wrapping, for DVI output.
+ (autom4te Invocation): The short option for `--melt' is `-M',
+ not `-m'.
+
+2006-06-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi: More formatting and English tweaks,
+ many suggested by Ralf Wildenhues.
+ Reword to avoid "@code{...}'s" and the like, since it's ugly
+ with Emacs info mode. discontents -> woes.
+ Put a few "will"s back. time stamp -> timestamp.
+ side-effect -> side effect.
+
+2006-06-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Initializing configure, Shell Substitutions):
+ Warn about $@ not persisting. Problem reported by Julien Danjou in
+ <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=372179>.
+ (Special Chars in Names): Renamed from Leading _ in Macro Names.
+ Mention other special chars, too.
+
+2006-06-14 Eric Blake <ebb9@byu.net>
+
+ * doc/autoconf.texi (The Make Macro MAKEFLAGS): New node.
+
+2006-06-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi: Some systematic minor improvements, as
+ follows. Use "makefile" when talking about makefiles
+ generally (which might be named "makefile" or "Makefile" or even
+ "foo.mk"), "Makefile" when talking about a specific makefile
+ called "Makefile". This unclutters the text from weird quotes
+ (e.g., "`Makefile's" in info mode). Similarly, use "@var{foo}
+ values" rather than "@var{foo}s" and similar constructs containing
+ "}s". Use "Make rules" rather than "Makefile rules". Minor
+ English-language improvements. Change the prefix "sub-" to "sub"
+ and "re-" to "re".
+ Put blank lines around examples more consistently.
+ Avoid "rather" and "very" as intensifiers.
+ Avoid "will" as an auxiliary.
+ (Limitations of Make): Split this node into....
+ (Portable Make, $< in Ordinary Make Rules, Failure in Make Rules):
+ (Leading _ in Macro Names, Backslash-Newline-Newline):
+ (Backslash-Newline Comments, Long Lines in Makefiles):
+ (Macros and Submakes, The Make Macro SHELL, Comments in Make Rules):
+ (obj/ and Make, make -k Status, VPATH and Make):
+ (VPATH and Double-colon, $< in Explicit Rules):
+ (Automatic Rule Rewriting, OSF/Tru64 Directory Magic):
+ (Make Target Lookup, Single Suffix Rules, Timestamps and Make):
+ New nodes, resulting from splitup of Limitations of Make.
+ All cross-references changed. Raise the top node from
+ a section to a chapter, and all subnodes accordingly.
+ Redo the introductory wording to match the new organization.
+ (Installation Directory Variables): Use an example that is
+ closer to what Autoconf actually does. Mention that VPATH's
+ value should not contain metacharacters or white space.
+ (Fortran Compiler): Fix a VPATH bug in an example.
+ (Leading _ in Macro Names): Mention that this problem is no longer
+ of practical concern.
+ (VPATH and Make): Reword the advice to make it clearer
+ that Autoconf and Automake support VPATH in non-GNU make, but
+ many packages have bugs in this area.
+ ($< in Explicit Rules): Refer to Build Directories rather
+ than using a (non-VPATH-safe) example.
+ (Automatic Rule Rewriting): Mention the sort of disaster that
+ can ensue with Solaris-style rule rewriting with VPATH.
+
+2006-06-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/install.texi (Compilers and Options): Weaken the
+ suggestion to use GNU make for VPATH builds.
+
+ * lib/autom4te.in (Automake-preselections): Add AM_PROG_CXX_C_O,
+ AM_PROG_F77_C_O, AM_PROG_FC_C_O, AC_FC_SRCEXT, AC_FC_FREEFORM.
+
+ * lib/autoconf/programs.m4 (AC_PROG_MAKE_SET): Fix M4 quotation
+ in regular expression.
+
+2006-06-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Installation Directory Variables):
+ Drop extra @samp from `@table @samp' item.
+ (Limitations of Usual Tools): Comment fix.
+ Do not nest @samp just to point to other table items.
+ (Writing testsuite.at) <AT_CHECK>: The second argument to
+ `@dvar' is already @samp'ed.
+ (Making testsuite Scripts) <AC_CONFIG_TESTDIR>: Likewise,
+ do not use @var in the second argument.
+
+2006-06-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Look for
+ $as_shell.exe too. Problem reported by Andreas Buening in
+ <http://lists.gnu.org/archive/html/autoconf/2006-06/msg00038.html>.
+
+2006-06-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_ALLOCA): Work around
+ `unused variable' compiler warning, for `-Wall -Werror'.
+ Reported by Jaap Haitsma in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2006-06/msg00012.html>.
+
+2006-06-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/c.m4 (AC_PROG_CC_C_O): Remove core file, in
+ case the compiler dumps core. Problem reported for
+ OpenServer 5.0.7 by Tim Rice in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2006-06/msg00019.html>.
+ * lib/autoconf/general.m4 (_AC_COMPILE_IFELSE, _AC_LINK_IFELSE):
+ Likewise.
+
+2006-06-06 Tim Rice <tim@multitalents.net>.
+
+ * lib/freeze.mk: Quiet check-forbidden-patterns so the string
+ "ERROR" only shows up in "make check" output if there is an
+ error.
+
+2006-06-06 Eric Blake <ebb9@byu.net>
+
+ * tests/tools.at (automatically allowed tokens): Fix typo.
+
+2006-06-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Don't blame non-GNU VPATH compatibility issues on Automake.
+
+ * doc/autoconf.texi (Integer Overflow): Mention that INT_MIN % -1
+ typically overflows on x86 CPUs, even though the C standard
+ requires otherwise.
+
+2006-06-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure.ac (AC_INIT): Bump to 2.59e.
+ * NEWS: Update.
+
+2006-06-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Version 2.59d.
+
+ * config/texinfo.tex: Sync from upstream.
+
+ * bin/autoreconf.in: Trace `LT_CONFIG_LTDL_DIR'; if it has been
+ seen, invoke libtoolize with `--ltdl' argument.
+ * lib/autom4te.in (Autoreconf-preselections): Adjust.
+ * NEWS: Update.
+ Suggested by Eric Blake.
+
+2006-06-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Whoops! AC_FUNC_STRNLEN isn't obsolescent. Problem
+ reported by Ralf Wildenhues.
+ * doc/autoconf.texi (AC_FUNC_STRNLEN): Likewise.
+
+2006-06-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * THANKS: Update.
+
+2006-06-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi: Modernize some of the references to Solaris.
+
+2006-06-05 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sugar.m4 (m4_require): Modify the error
+ message issued by AC_REQUIRE.
+ * tests/m4sugar.at: Check m4_require's error message.
+ * tests/base.at: Check AC_REQUIRE's error message.
+ * tests/local.at (AT_CHECK_M4): New macro, almost identical
+ to...
+ (AT_CHECK_AUTOM4TE): ... which is now a thin wrapper around
+ AT_CHECK_M4.
+ (AT_CHECK_AUTOCONF): Use AT_CHECK_M4; no longer support
+ `expout' as the last parameter.
+ * tests/tools.at: Adapt to the above change.
+
+2006-06-04 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Correct
+ information about race-free implementations of mkdir.
+
+2006-06-04 Eric Blake <ebb9@byu.net>
+
+ * bin/autoreconf.in (help): Document M4 environment variable.
+ * bin/autoconf.as (Usage): Likewise.
+ * bin/autom4te.in (help): Likewise.
+ * doc/autoconf.texi (autom4te Invocation): Likewise.
+
+2006-06-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: GNU make now recommended for VPATH builds.
+ Mention that some macros are now documented to be obsolescent.
+ * doc/autoconf.texi:
+ Prefer "current" to "modern" to describe
+ currently-used (albeit perhaps old-fashioned) hosts.
+ Mention which ancient features no longer need to be worried about.
+ setgid -> set-group-ID
+ setuid -> set-user-ID (these are the Posix terms)
+ Fix some misuses of "only".
+ (AC_C_BACKSLASH_A, AC_C_CONST, AC_C_PROTOTYPES):
+ (AC_C_STRINGIZE, AC_C_VOLATILE, AC_FUNC_CLOSEDIR_VOID):
+ (AC_FUNC_GETPGRP, AC_FUNC_LSTAT, AC_FUNC_MEMCMP):
+ (AC_FUNC_SELECT_ARGTYPES, AC_FUNC_SETPGRP):
+ (AC_FUNC_SETVBUF_REVERSED, AC_FUNC_STAT, AC_FUNC_STRFTIME):
+ (AC_FUNC_STRNLEN, AC_FUNC_UTIME_NULL, AC_FUNC_VPRINTF):
+ (AC_HEADER_DIRENT, AC_HEADER_STAT, AC_HEADER_STDC):
+ (AC_HEADER_SYS_WAIT, AC_HEADER_TIME, AC_ISC_POSIX):
+ (AC_PROG_GCC_TRADITIONAL, AC_STRUCT_TM):
+ Mention that these macros are obsolescent.
+ (Installation Directory Variables): shall -> should
+ (File Descriptors): Mention that 0, 1, 2 might get reopened.
+ Mention that it's now safe to use 3 and 4.
+ (Limitations of Usual Tools): cp -r is now specified by Posix.
+ Omit longwinded and obsolescent discussion of cp -f.
+ Modernize discussion of expr, ls.
+ (Limitations of Make): Modernize discussion of VPATH builds.
+ Mention $? as a workaround in some cases.
+ * doc/install.texi (Basic Installation):
+ Mention "./configure; make; make install" first. Be more
+ specific about why this file is generic. Remove unnecessary
+ parens. Remove misleading "only". Remove obsolete advice
+ about csh. Don't say "configure" takes awhile; say it
+ might take a while. Suggest CFLAGS=-g rather than CFLAGS=-O2,
+ and CC=c99 rather than CC=c89, as these are blessed by current
+ Posix. Recommend GNU make if doing a VPATH build.
+
+2006-06-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi: Use a consistent style "$ @kbd{...}" for
+ examples involving shell prompts.
+
+2006-06-02 Stepan Kasal <kasal@ucw.cz>
+ and Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Here-Documents): Add details about the
+ pre-ksh93g bug. Reword slightly to make it clearer. Consistently
+ use "here-documents" instead of "here documents".
+
+2006-06-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * config/texinfo.tex, doc/standards.texi: Sync from upstream.
+
+2006-06-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (File System Conventions): Warn about ":"
+ anywhere in directory names.
+
+2006-05-31 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/general.m4 (_AC_DO_ECHO): Be even more conservative
+ about quoting the case statement, just in case.
+ * doc/autoconf.texi (Here-Documents): Mention that the ksh bug
+ was fixed in ksh93g; reported by Ralf Wildenhues.
+
+2006-05-31 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (System Services): Do not document
+ overriding EXEEXT via ac_cv_exeext=ext.
+ (Particular Programs) <AC_PROG_MKDIR_P>:
+ Document that ${MKDIR_P} understands --.
+ * lib/autoconf/programs.m4 (AC_PROG_MKDIR_P): Improve the
+ comment.
+
+2006-05-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/m4sugar/m4sh.m4 (_AS_DIRNAME_PREPARE): Guard against test
+ argument with leading hyphen. Problem reported by Paul Eggert.
+
+2006-05-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/general.m4 (_AC_DO_ECHO): Be more conservative
+ about quoting ac_try: quote all of it, if any of it seems suspicious.
+ This means we don't have to worry about ${ or sed any more.
+ Also, double-quote the case statement, to work around misuses via
+ underquoting as reported by Ralf Wildenhues in
+ <http://lists.gnu.org/archive/html/autoconf-patches/2006-05/msg00169.html>.
+ (_AC_EVAL_STDERR): Revert, since evidently some packages rely on this
+ undocumented and dangerous macro.
+ Problem reported by Ralf Wildenhues in
+ <http://lists.gnu.org/archive/html/autoconf-patches/2006-05/msg00168.html>.
+
+2006-05-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/m4sugar/m4sh.m4 (_AS_DIRNAME_PREPARE): Check whether
+ `dirname -- /' returns `/', for SunOS dirname scripts that escaped.
+ Report by Sam Sirlin <sam@kalessin.jpl.nasa.gov>.
+
+2006-05-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/general.m4: Revert AC_TRY_EVAL and AC_TRY_COMMAND,
+ since evidently some packages rely on the old, broken behavior.
+ Problem reported by Ralf Wildenhues in
+ <http://lists.gnu.org/archive/html/autoconf-patches/2006-05/msg00160.html>.
+ (AC_TRY_EVAL, AC_TRY_COMMAND, _AC_EVAL): Go back to the
+ pre-2006-05-26 definitions, but leave in the comments that
+ these macros are dangerous and should not be used.
+ (_AC_DO_ECHO): Renamed from _AC_EVAL_ECHO. All callers changed.
+ (_AC_DO): Renamed from _AC_EVAL. All callers changed.
+ (_AC_DO_STDERR): Renamed from _AC_EVAL_STDERR. All callers changed.
+ (_AC_DO_VAR): Renamed from AC_TRY_EVAL.
+ (_AC_DO_TOKENS): Renamed from AC_TRY_COMMAND.
+
+2006-05-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/status.m4 (AC_OUTPUT_MAKE_DEFS): Rewrite to avoid
+ the use of 'tr', since this is our only use of 'tr'.
+
+2006-05-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ and Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE):
+ Don't assume 'grep' works on long lines, since AIX grep doesn't.
+
+2005-05-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILE): Do not use `grep' on
+ the output file in the `${datarootdir}' test.
+
+2005-05-28 Stepan Kasal <kasal@ucw.cz>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILE): If we have not seen
+ mention of `datarootdir' in the input file(s), but literal
+ `${datarootdir}' in the output file, and we haven't warned yet,
+ then warn as well: the user may have (erroneously) used
+ `AC_SUBST([mydatadir], [$datadir/my])' instead of the correct
+ `AC_SUBST([mydatadir], ['${datadir}/my'])'.
+ * tests/torture.at (datarootdir workaround): Extend this test.
+ * NEWS: Update.
+
+2006-05-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ and Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (autoheader Invocation): The first argument to
+ `AC_DEFINE_UNQUOTED' need not be a literal. Mention the
+ alternatives and clear up the language a bit.
+
+2006-05-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Reword notice for AC_TRY_COMMAND, AC_TRY_EVAL,
+ ac_config_guess, ac_config_sub, ac_configure.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS):
+ Fix typo that prevented an unnecessary space from being removed.
+ Problems reported by Ralf Wildenhues in:
+ http://lists.gnu.org/archive/html/autoconf-patches/2006-05/msg00143.html
+
+2006-05-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Particular Programs, Limitations of Usual Tools):
+ Use better wording to talk about AC_PROG_MKDIR_P's thread-safety.
+ Don't use the term "thread-safe" to talk about mkdir race
+ conditions, since the problem is more a process than a thread
+ issue. Problem reported by Stepan Kasal in:
+ http://lists.gnu.org/archive/html/autoconf-patches/2006-05/msg00088.html
+ * lib/autoconf/programs.m4 (AC_PROG_MKDIR_P): Use code that mimics
+ the test for 'install' more closely. Look at MKDIR_P first.
+ Look in the PATH, and at /opt/sfw/bin.
+ Look for a 'gmkdir' program as well (Solaris 10 /opt/sfw/bin/gmkdir).
+ Don't bother to try mkdir -p, since we already check mkdir --version;
+ just look at the version number. (There's no easy way to check
+ for race-free implementations.)
+ * tests/tools.at (autoconf: subdirectories): Adjust to above
+ changes, since MKDIR_P now might end in "/mkdir -p".
+
+ * doc/autoconf.texi (autoheader Invocation): Mention that the
+ first arg of AC_DEFINE_UNQUOTED must be a literal.
+ Problem reported by Ben Pfaff in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2006-05/msg00090.html>.
+
+ * NEWS: Mention that AC_TRY_COMMAND and AC_TRY_EVAL may be removed.
+ * doc/autoconf.texi (Special Chars in Variables): New section.
+ (Preset Output Variables): Warn about special chars in CPPFLAGS.
+ (Installation Directory Variables): Quote $(datadir) better.
+ (Limitations of Builtins): Describe some of eval's trickiness.
+
+ * lib/autoconf/c.m4 (AC_PROG_CC_C_O): Simplify quoting.
+ * lib/autoconf/fortram.m4 (_AC_PROG_FC_V_OUTPUT): Likewise.
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Put leading space
+ in front of every arg, not just trailing args. Quote apostrophes.
+ (_AC_EVAL_ECHO): New macro.
+ (_AC_EVAL, AC_EVAL_STDERR): Use it. Quote arg of eval.
+ (AC_TRY_EVAL, AC_TRY_COMMAND): Mention that these macros might get
+ removed.
+ (_AC_LINK_IFELSE): Use proper rule for shell continuation lines,
+ exposed by quoting of eval argument. Put the command on line line
+ so it logs better.
+ * lib/autoconf/libs.m4 (_AC_PATH_X_XMKMF): Use eval more safely.
+ (_AC_PATH_X, AC_PATH_X): Quote more safely.
+ * lib/autoconf/programs.m4 (AC_PROG_MAKE_SET): Use eval more safely.
+ * lib/autoconf/specific.m4 (AC_SYS_LONG_FILE_NAMES): Don't use eval.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): Minor style change.
+ Handle special chars in prefix, ac_srcdir, ac_aux_dir.
+ Use eval more safely.
+ (_AC_OUTPUT_CONFIG_STATUS): Adjust to above changes.
+ * lib/m4sugar/m4sh.m4 (AS_VAR_GET): Note that this API needs
+ to be replaced.
+ * tests/base.at (AC_TRY_COMMAND): Use proper rule for shell continuation
+ lines, exposed by quoting of eval argument.
+
+2006-05-26 Stepan Kasal <kasal@ucw.cz>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Drop the
+ initialization of `ac_cv_exeext', do not override it if it was
+ already set, unless it was set to `no', for compatibility with
+ Autoconf-2.13, and comment this.
+ Do not export `ac_cv_exeext', Libtool hasn't needed this for years.
+ (_AC_COMPILER_EXEEXT_DEFAULT): Likewise, do not export it.
+ (_AC_COMPILER_EXEEXT_WORKS, _AC_COMPILER_EXEEXT_CROSS): Typos.
+ * doc/autoconf.texi (Compilers and Preprocessors) <EXEEXT>:
+ Document that this test may be overridden by setting
+ `ac_cv_exeext'.
+
+2006-05-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Revert these two patches:
+
+ 2006-04-06 Eric Blake <ebb9@byu.net>
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_O): Inside cache
+ check, s/ac_exeext/ac_cv_exeext/. Fixes regression introduced
+ 2006-04-01.
+
+ 2006-04-01 Stepan Kasal <kasal@ucw.cz>
+ Clean up _AC_COMPILER_EXEEXT* macros.
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Don't try to
+ detect exeext, it will be done by _AC_COMPILER_EXEEXT_O; just set
+ ac_file to the name of the default output file and call
+ _AC_COMPILER_EXEEXT_WORKS. Move the definition of ac_files and the
+ initial `rm' of the candidate files...
+ (_AC_COMPILER_EXEEXT): ... here and simplify them. Moreover, use
+ the same list in subsequent `rm' calls, and for the temporary
+ redefinition of ac_clean_files; call _AC_COMPILER_OBJEXT at the end,
+ and don't call the other _AC_COMPILER_EXEEXT_* macros directly, use...
+ (_AC_COMPILER_EXEEXT_TESTS): ... this new macro.
+ (_AC_COMPILER_EXEEXT_O): Don't export ac_cv_exeext, it's not needed (or
+ no longer needed) by libtool. Make it a cache check.
+ (_AC_COMPILER_EXEEXT_CROSS): Remove the comment, it was obviously
+ copied here by mistake.
+ (AC_NO_EXECUTABLES): Redefine _AC_COMPILER_EXEEXT_TESTS, not
+ _AC_COMPILER_EXEEXT.
+ * lib/autoconf/c.m4 (AC_PROG_CC, AC_PROG_CXX, AC_PROG_OBJC): Do not call
+ _AC_COMPILER_OBJEXT directly.
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC): Likewise.
+
+2006-05-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Limitations of Usual Tools) < sed (`t')>:
+ Fix description of how the buggy `sed' works.
+
+2006-05-25 Noah Misch <noah@cs.caltech.edu>
+
+ Sync from Automake:
+
+ * lib/Autom4te/XFile.pm (lock): Allow EOPNOTSUPP, besides
+ ENOLCK. Only mention `make -j' when applicable. Only raise
+ fatal errors when `make -j' is involved. Improve error message.
+
+2006-05-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Here-Documents): We now know more about
+ the variable expansion in here documents bug.
+ Thanks to Tim Rice and Stepan Kasal.
+
+ * doc/autoconf.texi (Making testsuite Scripts): Add an example
+ how to use TESTSUITEFLAGS. Suggested by Eric Blake.
+
+2006-05-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/autotest.at (Multiline command from M4 expansion):
+ No failure to be expected if the shell quotes newlines in
+ commands in the `set -x' output. Report by Tim Rice.
+ * THANKS: Update.
+
+2006-05-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_HEADER): Don't use shell
+ expansion in the here-documents used by config.status, as that
+ runs afoul of the Korn shell version M-12/28/93d bug described in
+ the Autoconf manual, and this in turn causes a Coreutils 5.95 build to
+ fail as described by Tim Rice and diagnosed by Ralf Wildenhues in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2006-05/msg00082.html>.
+
+2006-05-23 Jim Meyering <jim@meyering.net>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK):
+ Fix typo introduced with 2006-04-02 change. It reversed the sense
+ of the test.
+
+2006-05-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_HEADER): Simplify ac_dA and
+ ac_dB slightly, to save bytes in the script.
+ Max out at 50 lines, rather than 96; this is more likely
+ (though not guaranteed) to avoid obscure 'sed' failures.
+
+2006-05-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autotest/general.m4 (AT_INIT): UnixWare `tr' may interpret
+ `tr -d -' as bad option argument. Work around this by deleting
+ an unrelated character.
+ Report by Tim Rice <tim@multitalents.net>.
+
+2006-05-22 Paul Eggert <eggert@cs.ucla.edu>,
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>,
+ Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Particular Programs): Do not promise that
+ we always prefer the GNU version of the program, and that we
+ search according to PATH; both rules can have exceptions.
+ Update description of AC_PROG_GREP, AC_PROG_EGREP, AC_PROG_FGREP,
+ AC_PROG_SED. Move descriptions of limitations
+ to the Limitations of Usual Tools section.
+ (Limitations of Usual Tools) <sed>: Mention script length
+ limitations with Solaris /usr/ucb/sed.
+ <grep>: Fix wording for empty alternative. Mention that -c and
+ -l should not be combined, and that -E and -F should not be
+ combined.
+
+2006-05-21 Paul Eggert <eggert@cs.ucla.edu>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/programs.m4 (AC_PROG_SED): Catch script length
+ limits in Solaris 8 /usr/ucb/sed by testing a long script.
+
+2006-05-22 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Defining Symbols): Literal parameter of
+ AC_DEFINE is now passed to m4_pattern_allow.
+ * NEWS: Mention that; likewise for AC_SUBST.
+ * lib/autoconf/general.m4 (AC_DEFINE_TRACE_LITERAL): Pass
+ the parameter to m4_pattern_allow.
+ * tests/tools.at: Add a check for that.
+
+2006-05-22 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/status.m4: Fix typos.
+
+2006-05-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH): Remove
+ only the files that this macro generates.
+
+2006-05-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Usual Tools) <sed>: For
+ the HP-UX sed limitation of 99 commands, labels do not count.
+ * lib/autoconf/status.m4 (_AC_SED_CMD_LIMIT): Mention that
+ in the comment.
+ (_AC_OUTPUT_HEADER): Revert the change from 2006-05-19.
+
+2006-05-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_GETMNTENT):
+ Import the following fix from coreutils:
+
+ 2006-01-13 Jim Meyering <jim@meyering.net>
+
+ Invoke AC_CHECK_FUNCS(getmntent) unconditionally so that tests of
+ $ac_cv_func_getmntent (e.g., in gl_LIST_MOUNTED_FILE_SYSTEMS) need
+ not double-quote uses of that variable, to accommodate the rare
+ case in which getmntent is available in none of the libraries
+ checked. This happens at least on FreeBSD 5.0.
+
+2006-05-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/general.m4 (AC_CONFIG_AUX_DIRS): Bring back
+ ac_config_guess, ac_config_sub, and ac_configure, since evidently
+ some other programs unwisely rely on these undocumented vars.
+ But put in warning comments about them.
+ Problem reported by Ralf Wildenhues in
+ <http://lists.gnu.org/archive/html/autoconf-patches/2006-05/msg00068.html>.
+ * NEWS: Document that these variables are intended to go away.
+
+2006-05-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/c.m4 (AC_PROG_CXX_C_O): Require AC_PROG_CXX,
+ and set the language to C++ (analogous to the equivalent Fortran
+ tests).
+
+ * lib/autoconf/c.m4 (AC_PROG_CXX_C_O): New macro.
+ * doc/autoconf.texi (C++ Compiler): Document it.
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_C_O): Adjust comment.
+ * NEWS: Update.
+
+2006-05-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_HEADER): Fix off-by-one bug
+ that caused config.status to generate 100-command sed scripts; the
+ portable limit is 99.
+
+2006-05-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/programs.m4 (AC_PROG_MKDIR_P): Name temporary
+ variable `ac_d' instead of `d' to avoid infringing namespace.
+ Report by Ralf Menzel.
+
+2006-05-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILE): Don't prepend
+ $ac_top_build_prefix to $MKDIR_P if it's just 'mkdir -p'.
+ * tests/tools.at (autoconf: subdirectories): New test, taken from
+ the corresponding problem report by Ralf Wildenhues in:
+ http://lists.gnu.org/archive/html/autoconf-patches/2006-05/msg00053.html
+
+ * lib/autoconf/functions.m4 (AC_REPLACE_FNMATCH, AC_FUNC_FNMATCH_GNU):
+ Quote some uses of shell variables if they might suffer unexpected
+ globbing. This doesn't fix all instances of quoting problems that
+ I found, just the easy ones that look safe.
+ * lib/autoconf/general.m4 (_AC_INIT_SRCDIR, _AC_INIT_HELP):
+ (AC_CONFIG_AUX_DIR, AC_CONFIG_AUX_DIR_DEFAULT, AC_CONFIG_AUX_DIRS):
+ (AC_CANONICAL_BUILD, AC_CANONICAL_HOST, AC_CANONICAL_TARGET):
+ (AC_CACHE_LOAD, AC_CACHE_SAVE): Likewise.
+ * lib/autoconf/libs.m4 (_AC_PATH_X_XMKMF, _AC_PATH_X_DIRECT): Likewise.
+ * lib/autoconf/specific.m4 (AC_SYS_LONG_FILE_NAMES): Likewise.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_LINK, _AC_OUTPUT_SUBDIRS):
+ Likewise.
+ * lib/autotest/general.m4 (_AC_INIT_PARSE_ARGS): Likewise.
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Likewise.
+
+2006-05-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * bin/autoreconf.in ($help): Reword according to the manual.
+ Suggested by Olly Betts.
+
+2006-05-17 Olly Betts <olly@survex.com> (tiny change)
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * bin/autoreconf.in: Pass the directory argument to
+ `require_configure_ac'. Fix comment.
+ * tests/torture.at (Configuring subdirectories): Expose this.
+ Reported by Olly Betts.
+
+2006-05-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/Automake/Configure_ac.pm, lib/Automake/Channels.pm,
+ lib/Automake/FileUtils.pm, lib/Automake/Struct.pm: Sync from
+ Automake as follows:
+
+ * lib/Autom4te/Configure_ac.pm (find_configure_ac): Use
+ `$configure_in' instead of `configure.in', to preserve
+ directory component.
+
+2006-05-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * config/config.guess, config/config.sub, config/texinfo.tex,
+ doc/make-stds.texi, doc/standards.texi: Sync from upstream.
+
+2006-05-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/headers.m4 (AC_HEADER_STDBOOL): Fix overly-picky
+ test for C99 conformance; (bool) 0.5 is an integer constant
+ expression, but (bool) -0.5 is not. Problem reported by Fedor
+ Sergeev in <http://forum.sun.com/jive/thread.jspa?threadID=96202>.
+
+2006-05-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Particular Programs): AC_PROG_MKDIR_P now
+ sets MKDIR_P, not mkdir_p, to avoid collisions with Automake.
+ Warn about obsolete install-sh files. Remove stray sentence
+ fragment and fix cross reference.
+ * lib/autoconf/programs.m4 (AC_PROG_INSTALL): Don't insist on
+ install -d; this undoes the 2006-05-10 change.
+ (MKDIR_P): Mark with AN_MAKEVAR.
+ (AC_PROG_MKDIR_P): Fall back on $ac_install_sh, not $INSTALL, so
+ that we don't require $INSTALL to be thread-safe. Move comments
+ out of generated code. Require AC_CONFIG_AUX_DIR_DEFAULT instead
+ of AC_PROG_INSTALL. Output a message saying that we're checking
+ mkdir -p. Set MKDIR_P rather than mkdir_p. Do special magic for
+ MKDIR_P instead of AC_SUBST.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILE, _AC_OUTPUT_CONFIG_STATUS):
+ Special magic for MKDIR_P, too.
+ * lib/m4sugar/m4sh.m4 (AS_MKDIR_P): Remove comment that defeated
+ a dnl.
+ * tests/local.at (AT_CHECK_ENV): mkdir_p -> MKDIR_P.
+
+2006-05-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ Sync from Automake, as follows:
+
+ 2006-05-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ * config/install-sh: Initialize IFS, so field splitting isn't
+ turned off later.
+ * config/mkinstalldirs: Likewise.
+ * config/missing: Remove superfluous quotes. Replace all uses of
+ `[' by `test', for consistency, and for..
+ * config/missing (sed_minuso, sed_output): New variables.
+ (autom4te, help2man, makeinfo): Use them. Unifies detection of
+ `-o FILE', `--output FILE', `--output=FILE', stricter regex.
+ Fixes `missing' to detect `--output' for help2man. Fixes
+ PR automake/483. Report by Dennis J. Linse.
+ (autom4te): Document in `missing --help'.
+
+2006-05-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: New macro AC_PROG_MKDIR_P. AS_MKDIR_P is now more robust.
+ * config/install-sh: Don't use 'path' to talk about file names,
+ as per GNU coding standards. Close a race condition reported by Ralf
+ Wildenhues and Stepan Kasal. There is still a race condition
+ on hosts that predate Posix 1003.1-1992, but we can't help this.
+ Don't mishandle weird characters like space on pre-Posix hosts.
+ Invoke mkdir at most once per dir arg on pre-Posix hosts.
+ * doc/autoconf.texi (Programming in M4sh): Cross-reference to
+ AC_PROG_MKDIR_P from AS_MKDIR_P.
+ (Limitations of Usual Tools): Cross-reference to AC_PROG_MKDIR_P
+ from mkdir. Mention that Autoconf 2.60 install-sh is safe but
+ earlier editions are not (including Automake 1.8.3).
+ Do not suggest mkinstalldirs for thread-safety.
+ * lib/autoconf/programs.m4 (AC_PROG_INSTALL): Insist on an 'install'
+ that understands -d, so that AC_PROG_MKDIR_P can fall back on $INSTALL.
+ * lib/m4sugar/m4sh.m4 (AS_MKDIR_P): Make it more robust in the
+ presence of special characters and race conditions.
+ * tests/local.at (AT_CHECK_ENV): Add mkdir_p to the list of variables
+ in Autoconf's name space.
+
+2006-05-10 Bruno Haible <bruno@clisp.org>
+ and Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/programs.m4 (AC_PROG_MKDIR_P): New macro, taken
+ from Automake with minor changes.
+ * doc/autoconf.texi (Particular Programs): Document AC_PROG_MKDIR_P.
+
+2006-05-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * config/install-sh: Update to Automake CVS version, as follows:
+ 2006-04-25 Stepan Kasal <kasal@ucw.cz>
+ * lib/install-sh: Simplify the expr implementation of dirname.
+ 2006-04-24 Paul Eggert <eggert@cs.ucla.edu>
+ * lib/install-sh: Handle --, and diagnose unknown options.
+
+2006-05-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/Makefile.am (AUTOTEST): Use `$(MY_AUTOM4TE)' instead of
+ `./autom4te' to create `./testsuite', since the `all' target
+ will ensure its presence, but `installcheck' should not create
+ the uninstalled wrappers.
+
+ * tests/torture.at (Unusual Automake input files): Skip if we
+ detect automake < 1.8.
+
+2006-05-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/c.m4 (AC_PROG_CC_STDC): If ac_cv_prog_cc_stdc
+ is set to `no', then that overrides and sets ac_cv_prog_cc_c89
+ and ac_cv_prog_cc_c99 to `no', for backward compatibility.
+ * NEWS: Update.
+
+2006-05-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): Take care not to
+ munge (multiple) white space and other oddities.
+ * tests/torture.at (AT_CHECK_AC_ARG_VAR): Make sure to M4-escape
+ single quotes in variable assignment.
+ (AC_ARG_VAR, configure invocation): Adjust tests to expose this
+ and similar failures by adding multiple spaces, tabs, and other
+ special characters.
+ Report and different test suggested by Francesco Romani
+ <fromani@gmail.com> and Andrew Church <achurch@achurch.org>.
+
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): When we escape
+ single quotes, we only need to search for single quotes; this
+ both simplifies the search pattern, and makes us less
+ susceptible to `echo' variations for arguments not containing
+ single quotes.
+ (_AC_ARG_VAR_VALIDATE): Likewise.
+
+2006-05-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Special Shell Variables) <IFS>: Document
+ `$*' and IFS concatenation issue with traditional shells and
+ bash-2.04. Report by Seanster@Seanster.com.
+
+2006-05-03 Bruno Haible <bruno@clisp.org>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Identify more
+ precisely which Mac OS X versions have the od problem.
+
+2006-05-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi: Use @option systematically.
+
+2006-05-02 Paul Eggert <eggert@cs.ucla.edu>
+ and Bruno Haible <bruno@clisp.org>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Add a paragraph
+ about 'od'.
+ (Integer Overflow): Mention the special case of integer division
+ overflow.
+
+2006-05-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/general.m4 (_AC_CANONICAL_SPLIT): Cater for
+ traditional shells like the Solaris one that do not use the
+ first IFS character for assembling `$*'.
+ Prompted by a related report from autoconf_bug@nro.ca.
+
+2006-05-01 Paul Eggert <eggert@cs.ucla.edu>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Limitations of Builtins, Limitations of Make):
+ Mention more problems with the -e option.
+
+2006-04-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * NEWS: Typo.
+ * doc/autoconf.texi (Systemology): Mention the Heirloom Project.
+
+ * doc/autoconf.texi (Introduction, Pointers): Use `@/' liberally
+ in URLs to improve DVI formatted output (requires texinfo 4.6).
+ (System Services, Systemology, Shellology): Likewise.
+ (Limitations of Usual Tools): Rewrite Mac OS X example for nicer
+ output.
+
+ * doc/autoconf.texi (Fortran Compiler): Do not use `@ovar' in
+ continuous text.
+ (Runtime): Fix macro argument names to match description:
+ `action-if-found' -> `action-if-true' and similarly.
+ (Obsolete Macros): Likewise.
+ * lib/autoconf/general.m4 (_AC_COMPILE_IFELSE): Likewise.
+ (AC_COMPILE_IFELSE, AC_TRY_COMPILE, _AC_LINK_IFELSE)
+ (AC_LINK_IFELSE, AC_TRY_LINK, AC_COMPILE_CHECK): Likewise.
+
+2006-04-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Limitations of Make): Clean up markup.
+
+ * ChangeLog: Typo.
+ * doc/autoconf.texi (Portable Shell): Allow wrapped URLs, for
+ DVI output.
+
+2006-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Limitations of Builtins): Document FreeBSD
+ /bin/sh set unsorted output.
+ * lib/autoconf/general.m4 (_AC_CACHE_DUMP): Adjust.
+ * tests/local.at: Likewise.
+
+2006-04-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Portable C and C++, Varieties of Unportability):
+ (Integer Overflow, Null Pointers, Buffer Overruns):
+ (Floating Point Portability, Exiting Portably): New sections.
+ (Writing Test Programs): Fix some langauge. Recommend exiting
+ with status 1, not merely nonzero. Clarify exit declaration.
+ (Run Time): Move C exit status stuff to new Exiting Portably section.
+ (Systemology): Mention Posix and levenez. Update v7 reference.
+ (Portable Shell): Mention the Posix shell.
+
+2006-04-25 Stepan Kasal <kasal@ucw.cz>
+
+ * bin/autoconf.as (me): Replace by as_me.
+
+2006-04-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Don't use AS_ERROR,
+ since as_me isn't set yet.
+
+2006-04-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ Prepare for deprecation of AS_BASENAME and AS_DIRNAME, and fix
+ a few minor bugs in this area.
+
+ * doc/autoconf.texi (Programming in M4sh): Comment out the
+ documentation of AS_BASENAME, for now.
+ (Shell Substitutions): Do not use AS_DIRNAME in an example.
+ (Limitations of Builtins) <basename>: Do not refer to
+ AS_BASENAME.
+ * bin/autoconf.as (me): Don't use AS_BASENAME.
+ (dir): Remove the unused variable.
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_REQUIRED): Renamed from
+ AS_DETECT_REQUIRED. All uses changed.
+ (_AS_DETECT_SUGGESTED): Renamed from AS_DETECT_SUGGESTED.
+ All uses changed.
+ (_AS_DETECT_BETTER_SHELL): Put ;; at the end of a case.
+ (AS_BASENAME): Use "basename --" to protect against leading "-".
+ (_AS_BASENAME_EXPR): Renamed from AS_BASENAME_EXPR. All uses changed.
+ (_AS_BASENAME_SED): Renamed from AS_BASENAME_SED. All uses changed.
+ (_AS_BASENAME_PREPARE): Reject implementations that cannot handle "--".
+ (_AS_DIRNAME_PREPARE): Likewise.
+ (_AS_DIRNAME_EXPR): Renamed from AS_DIRNAME_EXPR. All uses changed.
+ (_AS_DIRNAME_SED): Renamed from AS_DIRNAME_SED. All uses changed.
+ (AS_DIRNAME): Use "dirname --".
+
+2006-04-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Runtime): Renamed from "Run Time". All uses
+ of "run time" and "run-time" changed to "runtime", for consistency.
+ * lib/autoconf/fortran.m4: Likewise (in comment).
+ * lib/autoconf/functions.m4: Likewise.
+ * lib/autoconf/general.m4: Likewise.
+ * lib/autoconf/headers.m4: Likewise.
+
+ * doc/autoconf.texi (Run Time): Document the exit status situation
+ with more accuracy and detail.
+
+2006-04-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Introduction): The GNU Autoconf Macro
+ Archive is not officially `GNU' any more. Update URL.
+ (Defining Directories): Likewise
+ * lib/autoconf/c.m4 (AC_C_RESTRICT): Update URL.
+
+2006-04-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Remove the leading
+ newline from the `trap' code to finish `config.log'; the NetBSD
+ /bin/sh resets the exit status after an empty command, as
+ documented in doc/autoconf.texi.
+ Reported by Dalibor Topic <robilad@kaffe.org>.
+
+2006-04-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (C Compiler): Clarify AC_C_TYPEOF.
+ Suggested by Bruno Haible.
+
+2006-04-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * configure.ac (ac_cv_sh_n_works): Don't try to test for it, since
+ some shells (e.g., Solaris 8 /bin/sh) implement it verrrry slowly.
+ Instead, just list the shells that we know work.
+ * tests/local.at (AT_CHECK_SHELL_SYNTAX): Remove 2nd arg. All uses
+ changed. Be more cautious about the _cv_ variable.
+ * tests/tools.at (Syntax of the shell scripts): Check the
+ _cv_ variable once, at first, to avoid an internal autoconf error
+ when sh -n does not work.
+
+2006-04-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/Autom4te/FileUtils.pm: Sync from Automake.
+
+2006-04-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/general.m4 (_AC_INIT_CONFIG_LOG): Don't
+ use ">&-" since we're only 99.999% sure that this is portable,
+ and since the MinGW bug is fixed in a different way.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+
+2006-04-16 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Handle --recheck
+ before opening config.log, to avoid hitting a bug on MinGW.
+
+2006-04-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/general.m4 (_AC_INIT_CONFIG_LOG): Close
+ AS_MESSAGE_LOG_FD before reopening it onto the log file.
+ This works around a MinGW bug reported by Eric Paire.
+ Make sure that all writes to the log file append to it,
+ rather than possibly losing data.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+
+2006-04-14 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/Autom4te/FileUtils.pm (find_file): Fix a typo in the
+ description.
+
+2006-04-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * NEWS: Update.
+
+ * configure.ac (AC_INIT): Bump to 2.59d.
+
+2006-04-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ Version 2.59c.
+
+ * Makefile.maint (news-date-check): Do not require a leading `*'
+ before the release date in NEWS.
+
+2006-04-12 Stepan Kasal <kasal@ucw.cz>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILE): If the templates for
+ the instantiated file do not contain the string 'datarootdir'
+ but contain @datadir@, @docdir@, @infodir@, @localedir@, or
+ @mandir@, replace the reference '${datarootdir}' by the value.
+ * tests/torture.at (datarootdir workaround): New test.
+ * NEWS: Advertise this temporary fixup.
+ Based on a patch by Bruno Haible, reported and analyzed by
+ Paul Eggert and Noah Misch.
+
+2006-04-12 Eric Blake <ebb9@byu.net>
+
+ * tests/autotest.at (Debugging a failed test): Fix comment.
+
+2006-04-12 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sh.m4 (_AS_LN_S_PREPARE): Simplify the summary of
+ all the changes since 2006-04-07.
+
+2006-04-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/m4sugar/m4sh.m4 (_AS_LN_S_PREPARE): If `ln -s file1 file2'
+ succeeded, but `ln -s file dir' failed, take care to remove the
+ leftover target before the next test, to prevent its spurious
+ failure; also make sure `ln file dir' works before selecting it.
+ Thanks to Keith Marshall for pointing this out.
+ * THANKS: Update.
+
+ * lib/autotest/general.m4 (AT_INIT): Store quoted variable
+ assignments in `at_debug_args', so that we put them correctly
+ in the `run' script.
+ * tests/autotest.at (Debugging a failed test): Unmark XFAIL.
+ Reported by Eric Blake.
+
+2006-04-11 Eric Blake <ebb9@byu.net>
+
+ * tests/autotest.at (AT_CHECK_AT): Add new argument, to allow
+ top-level tests after micro-suite has been run. Used in...
+ (Debugging a successful test, Debugging script and environment),
+ (Debugging a failed test): ...these new tests. The first of these
+ is fixed by...
+ * lib/autotest/general.m4 (_AT_CREATE_DEBUGGING_SCRIPT): New
+ macro, split out from...
+ (AT_INIT): ...here, so that using -d also generates a run script.
+ Document that -d inhibits top-level logging.
+ * doc/autoconf.texi (testsuite Invocation): Document that -d only
+ inhibits top-level logging; debug scripts are created.
+
+ * lib/autotest/general.m4 (_AT_CHECK): Avoid syntax error on empty
+ check.
+ * tests/autotest.at (Empty test, Empty check): New test to check it.
+
+ * lib/autoconf/c.m4 (AC_C_CONST, AC_C_VOLATILE): Avoid warnings
+ from gcc.
+
+2006-04-10 Stepan Kasal <kasal@ucw.cz>
+
+ * tests/mktests.sh: Use "trap '' 0", not "trap 0". Do not touch
+ the files if a problem appears. Make the empty *.at files
+ read-only, too. Proposed by Ralf Wildenhues.
+
+2006-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * config/Makefile.am: Add comment to force updated Makefile.in.
+
+ * lib/freeze.mk: Fix typo in comment. Unlike the last, white
+ space only patch to this file, this patch causes the Makefile.in
+ files that include freeze.mk to be updated, and thus have a
+ newer time stamp again, which in turn makes a pristine CVS
+ checkout have correct time stamps.
+
+ * Makefile.maint (cvs-sv): New macro, to be used..
+ (config.guess-url_prefix, config.sub-url_prefix)
+ (texinfo.tex-url_prefix, standards.texi-url_prefix): ..here;
+ point to CVS text checkout of Gnulib files.
+ (copyright-check): Bump current year.
+ (announcement): Do not hard-wire `./announce-gen'.
+ (cvs-update): Propagate failures of `cvs' and `move-if-change'
+ correctly.
+ * Makefile.cfg (executable-update): Use `chmod a+x' instead of
+ `chmod +x'.
+ (wget_files): Update config.guess, config.sub, texinfo.tex by
+ `wget-update', now that their URLs work again.
+
+2006-04-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Particular Types): Don't use AC_CHECK_TYPE.
+ Problem noted by Paul D. Smith.
+
+2006-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi: Remove unused words from word list.
+ * .x-sc_prohibit_atoi_atof, .x-sc_space_tab, .x-sc_sun_os_names,
+ .x-sc_trailing_space: New files.
+
+ * doc/standards.texi: Sync from gnulib.
+
+ * NEWS, doc/autoconf.texi (AC_LIBOBJ vs LIBOBJS): Mark
+ `LIBOBJDIR' as experimental.
+
+ * lib/m4sugar/m4sh.m4 (_AS_LN_S_PREPARE): MSYS `ln -s' fails
+ with a target directory; it's internally implemented as `cp'
+ anyway, but since Autoconf advertises the possibility to use
+ a target directory when LN_S is `ln -s', we need to find out.
+ Reported by Rolf Ebert <rolf.ebert.gcc@gmx.de> against MSYS,
+ analyzed by Keith Marshall <keith.marshall@total.com>.
+
+ * THANKS: Update.
+
+2006-04-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Just output
+ confdefs.h as-is. In general, if it has backslash-newline or the
+ like, then it doesn't work either to sort or to remove empty
+ lines.
+
+2006-04-09 Stepan Kasal <kasal@ucw.cz>
+
+ * tests/Makefile.am (AUTOCONF_FILES): Fix typo in the comment.
+
+2006-04-09 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * lib/autom4te.in (Automake-preselections): Preselect
+ _AM_SUBST_NOTMAKE.
+
+2006-04-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Use '\'' for an
+ apostrophe within a single-quoted string, as this is the usual
+ tradition and is easier to read than '"'"'. Don't rely on the
+ shell treating "$/" like '$/'. Use a more-consistent indenting
+ style for the trap.
+
+2006-04-09 Eric Blake <ebb9@byu.net>
+
+ * tests/autotest.at (Backquote command substitution),
+ (Multiline backquote command substitution): Remove mistaken
+ AT_NO_CMDSUBST from the 2006-03-14 patch, which was meant to be
+ applied...
+ (Parenthetical command substitution, Multiline parenthetical
+ command substitution): here.
+
+2006-04-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ Import macros from gnulib (often changing their name).
+
+ * NEWS: AC_C_TYPE_LONG_DOUBLE is now obsolete.
+ New macros AC_CHECK_DECLS_ONCE, AC_CHECK_FUNCS_ONCE,
+ AC_CHECK_HEADERS_ONCE, AC_FUNC_STRTOLD, AC_HEADER_ASSERT,
+ AC_STRUCT_DIRENT_D_INO, AC_STRUCT_DIRENT_D_TYPE,
+ AC_TYPE_LONG_DOUBLE, AC_TYPE_LONG_DOUBLE_WIDER, AC_TYPE_INT8_T,
+ AC_TYPE_INT16_T, AC_TYPE_INT32_T, AC_TYPE_INT64_T,
+ AC_TYPE_INTMAX_T, AC_TYPE_INTPTR_T, AC_TYPE_LONG_LONG_INT,
+ AC_TYPE_UINT8_T, AC_TYPE_UINT16_T, AC_TYPE_UINT32_T,
+ AC_TYPE_UINT64_T, AC_TYPE_UINTMAX_T, AC_TYPE_UINTPTR_T,
+ AC_TYPE_UNSIGNED_LONG_LONG_INT, AC_USE_SYSTEM_EXTENSIONS.
+ The manual mentions Gnulib more prominently.
+ * doc/autoconf.texi (Gnulib): New node.
+ (Pointers): Add Gnulib URL.
+ (Particular Functions): Alphabetize. Add AC_FUNC_STRTOLD.
+ (Generic Functions): Add AC_CHECK_FUNCS_ONCE. Refer to new
+ Gnulib section.
+ (Particular Headers): Add AC_HEADER_ASSERT. For stdbool.h,
+ suggest a #define rather than a typedef for _Bool, and mention
+ Gnulib rather than trying to substitute stdbool code.
+ (Generic Headers): Add AC_CHECK_HEADERS_ONCE.
+ (Generic Declarations): Add AC_CHECK_DECLS_ONCE.
+ (Particular Structures): Add AC_STRUCT_DIRENT_D_INO,
+ AC_STRUCT_DIRENT_D_TYPE.
+ (Particular Types): Mention stdint.h and inttypes.h as standard
+ headers too.
+ Add AC_TYPE_INT8_T, AC_TYPE_INT16_T, AC_TYPE_INT32_T, AC_TYPE_INT64_T,
+ AC_TYPE_INTMAX_T, AC_TYPE_INTPTR_T, AC_TYPE_LONG_DOUBLE,
+ AC_TYPE_LONG_DOUBLE_WIDER, AC_TYPE_LONG_LONG_INT, AC_TYPE_UINT8_T,
+ AC_TYPE_UINT16_T, AC_TYPE_UINT32_T, AC_TYPE_UINT64_T,
+ AC_TYPE_UINTMAX_T, AC_TYPE_UINTPTR_T, AC_TYPE_UNSIGNED_LONG_LONG_INT.
+ (C Compiler): Move AC_C_LONG_DOUBLE to ...
+ (Obsolete Macros): here. Under AC_LONG_DOUBLE, mention
+ AC_TYPE_LONG_DOUBLE or AC_TYPE_LONG_DOUBLE_WIDER instead.
+ (Posix Variants): Add AC_USE_SYSTEM_EXTENSIONS.
+ (Coding Style). Don't mention m4_expand_once.
+ * lib/autoconf/c.m4 (AC_C_LONG_DOUBLE): Implement via
+ AC_TYPE_LONG_DOUBLE_WIDER. Now obsolete.
+ * lib/autoconf/functions.m4 (_AH_CHECK_FUNCS): New macro.
+ (AC_CHECK_FUNCS): Use it.
+ (AC_CHECK_FUNCS_ONCE, AC_FUNC_STRTOLD): New macros.
+ (AC_FUNC_WAIT3): "the Open Group standards" -> "POSIX".
+ * lib/autoconf/general.m4 (AC_CHECK_DECLS_ONCE): New macro.
+ * lib/autoconf/headers.m4 (AC_CHECK_HEADERS_ONCE): New macro.
+ (AC_HEADER_ASSERT): New macro.
+ (AC_HEADER_STDBOOL): Don't assume "#error" works.
+ Catch a bug in IBM AIX xlc compiler version 6.0.0.0.
+ Catch a bug in an HP-UX C compiler.
+ * lib/autoconf/specific.m4 (AC_USE_SYSTEM_EXTENSIONS): New macro.
+ * lib/autoconf/types.m4 (AC_TYPE_INTMAX_T. AC_TYPE_UINTMAX_T):
+ (AC_TYPE_INTPTR_T, AC_TYPE_UINTPTR_T. AC_TYPE_LONG_DOUBLE):
+ (AC_TYPE_LONG_DOUBLE_WIDER, AC_C_LONG_DOUBLE, AC_TYPE_LONG_LONG_INT):
+ (AC_TYPE_UNSIGNED_LONG_LONG_INT, _AC_TYPE_INT, _AC_TYPE_UNSIGNED_INT):
+ (_AC_STRUCT_DIRENT, AC_STRUCT_DIRENT_D_INO, AC_STRUCT_DIRENT_D_TYPE):
+ New macros.
+
+ * tests/mktests.sh (ac_exclude_list, au_exclude_list): Do not
+ use /^foo|bar$/, it does not mean /^(foo|bar)$/.
+
+2006-04-08 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Fix the wording
+ of the warning introduced by the 2001-08-28 change.
+
+2006-04-08 Stepan Kasal <kasal@ucw.cz>,
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/general.m4 (AC_CACHE_SAVE): All `ac_cv_env_foo'
+ variables shall be overriden by the cache.
+ * tests/torture.at (AC_ARG_VAR): Test also with a first value
+ that contains braces.
+
+2006-04-07 Stepan Kasal <kasal@ucw.cz>
+
+ Revert the patch from 2006-04-01 and only improve
+ _AS_DETECT_BETTER_SHELL:
+
+ * lib/m4sugar/m4sh.m4 (_AS_PATH_WALK): Do not optimize; do not
+ skip nonexistent directories.
+ (_AS_DETECT_BETTER_SHELL): The optimization is moved here--try
+ only shell candidates which exist.
+ (AS_UNAME): No need to give three parameters to _AS_PATH_WALK.
+ * lib/autotest/general.m4 (AT_INIT): No need to give three
+ parameters to _AS_PATH_WALK.
+
+2006-04-07 Stepan Kasal <kasal@ucw.cz>,
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * bin/autoupdate.in (handle_autoconf_patches): Change the way we
+ distinguish m4sugar macros.
+ * tests/tools.at (autoupdating with aclocal and m4_include):
+ New test. Bug reported by Gary V. Vaughan <gary@gnu.org>,
+ test case by Noah Misch <noah@cs.caltech.edu>.
+
+2006-04-07 Stepan Kasal <kasal@ucw.cz>
+
+ Revert my change from 2006-03-17, in other words:
+ * lib/m4sugar/m4sh.m4 (AS_BOURNE_COMPATIBLE): Insert BIN_SH=xpg4
+ and DUALCASE=1.
+ (AS_SHELL_SANITIZE): Remove DUALCASE=1.
+ * doc/autoconf.texi (Special Shell Variables) <BIN_SH>: Say that
+ it is set.
+
+2006-04-07 Eric Blake <ebb9@byu.net>
+
+ * doc/autoconf.texi (Programming in M4sh): Document that
+ AS_MKDIR_P exits the script on failure.
+ * lib/autotest/general.m4: Remove redundant AS_ERROR.
+
+2006-04-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * config/elisp-comp, config/install-sh, config/mdate-sh,
+ config/missing, config/mkinstalldirs: Sync from Automake.
+
+ * lib/Autom4te/FileUtils.pm, lib/Autom4te/Struct.pm: Sync
+ from Automake.
+
+ * doc/make-stds.texi: Sync from gnulib.
+
+2006-04-06 Eric Blake <ebb9@byu.net>
+
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_O): Inside cache
+ check, s/ac_exeext/ac_cv_exeext/. Fixes regression introduced
+ 2006-04-01.
+
+2006-04-06 Stepan Kasal <kasal@ucw.cz>,
+ Eric Blake <ebb9@byu.net>,
+ Paul Eggert <eggert@cs.ucla.edu>,
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * 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.
+
+2006-04-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * config/config.guess, config/config.sub, config/texinfo.tex:
+ Sync from upstream.
+
+ * tests/mktests.sh: Reword comments.
+
+ * 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_SEARCH_LIBS, AC_REPLACE_FUNCS): Need 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: More replacements to
+ <tab><space> where this makes sense.
+
+2006-04-06 Stepan Kasal <kasal@ucw.cz>
+
+ * tests/Makefile.am (maintainer-check-posix):
+ s/POSIXLY_CORRECTLY/POSIXLY_CORRECT/
+
+ * 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.
+
+ * lib/autoconf/general.m4 (AC_ARG_VAR): Do not use m4_divert_once
+ inside m4_expand_once; it is redundant.
+
+ * lib/autoconf/general.m4 (_AC_INIT_HELP): Remove the broken support
+ for --help from Cygnus `configure.'
+
+2006-04-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (C Compiler): Warn about #error. Follows up
+ on a patch proposed by Ralf Wildenhues.
+
+2006-04-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/status.m4: Replace <space>''<tab> with
+ <tab><space> where this makes sense.
+
+2006-04-05 Howard Chu <hyc@highlandsun.com> (trivial change)
+ Noah Misch <noah@cs.caltech.edu>
+
+ * lib/autoconf/general.m4 (AC_PRESERVE_HELP_ORDER): New macro.
+ (AC_ARG_ENABLE, AC_ARG_WITH): Adjust.
+ * doc/autoconf.texi (Help Formatting): New node.
+ * NEWS: Announce AC_PRESERVE_HELP_ORDER.
+
+2006-04-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * 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@).
+
+ * NEWS, TODO, bin/autoreconf.in: `filesystem' -> `file system'.
+
+ * doc/autoconf.texi (Shell Substitutions): Document `^' vs. `|'.
+
+2006-04-05 Eric Blake <ebb9@byu.net>
+
+ * lib/autotest/general.m4 (AT_INIT): Prep AT_*_all, so that an
+ empty test suite works.
+ * tests/autotest.at (Empty test suite): Remove xfail.
+
+2006-04-05 Noah Misch <noah@cs.caltech.edu>
+
+ * 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.
+
+2006-04-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/m4sugar/m4sh.m4 (AS_BASENAME_EXPR, AS_DIRNAME_EXPR):
+ Use simplified args that Eric Blake originally suggested.
+
+2006-04-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ * 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.
+
+ 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.
+
+2006-04-04 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/autoconf/general.m4 (_AC_INIT_HELP): Only `configure.in' evidences
+ a subdirectory subject to Cygnus `configure'.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): Likewise.
+
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL): Omit the bug
+ report request when we have no AC_PACKAGE_BUGREPORT.
+
+2006-04-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * THANKS: Update.
+
+ * tests/mktests.sh: Update copyright year in the header of the
+ generated files.
+
+ * 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.
+
+2006-04-03 Noah Misch <noah@cs.caltech.edu>
+
+ * bin/autoscan.in (subdirs): New global.
+ (scan_file): Prune directories with configure{,.{ac,in,gnu}}.
+ (output): Emit AC_CONFIG_SUBDIRS as needed.
+ * tests/autoscan.at (autoscan): Remove XFAIL.
+
+2006-04-03 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/autoconf/general.m4 (AC_CACHE_SAVE): Use AC_MSG_NOTICE.
+
+2006-04-03 Eric Blake <ebb9@byu.net>
+
+ * THANKS: Add myself.
+
+2006-04-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autotest/general.m4 (AT_INIT): Add `at_testdir' to pointer
+ to log, point to testsuite output tree.
+
+2006-04-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: AC_PROG_CC and AC_PROG_CXX no longer declare 'exit'.
+ * doc/autoconf.texi (Function Portability): Mention that C++
+ has trouble with 'exit'.
+ (Guidelines): Test programs shouldn't use 'exit'.
+ * lib/autoconf/c.m4 (_AC_PROG_CXX_EXIT_DECLARATION):
+ Remove; all uses removed.
+ (AC_LANG_INT_SAVE(C), AC_C_BIGENDIAN):
+ Return from 'main' instead of calling 'exit'.
+ * lib/autoconf/functions.m4 (_AC_LIBOBJ_ALLOCA, AC_FUNC_CLOSEDIR_VOID):
+ (_AC_FUNC_FNMATCH_IF, AC_FUNC_GETGROUPS):
+ (AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK, _AC_FUNC_MALLOC_IF):
+ (AC_FUNC_MEMCMP, AC_FUNC_MKTIME, AC_FUNC_MMAP, _AC_FUNC_REALLOC_IF):
+ (AC_FUNC_SETPGRP, _AC_FUNC_STAT, AC_FUNC_STRTOD, AC_FUNC_STRERROR_R):
+ (AC_FUNC_STRNLEN, AC_FUNC_SETVBUF_REVERSED, AC_FUNC_UTIME_NULL):
+ (_AC_FUNC_FORK, _AC_FUNC_VFORK, AC_FUNC_WAIT3): Likewise.
+ * lib/autoconf/headers.m4 (AC_HEADER_STDC): Likewise.
+ * lib/autoconf/specific.m4 (AC_SYS_RESTARTABLE_SYSCALLS): Likewise.
+ * lib/autoconf/types.m4 (AC_TYPE_GETGROUPS): Likewise.
+ * tests/compile.at: Likewise.
+
+2006-04-02 Pavel Roskin <proski@gnu.org>
+
+ * doc/autoconf.texi (AC_PATH_X): Update per 2005-08-26 change.
+
+2006-04-01 Stepan Kasal <kasal@ucw.cz>
+
+ Clean up _AC_COMPILER_EXEEXT* macros.
+
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Don't try to
+ detect exeext, it will be done by _AC_COMPILER_EXEEXT_O; just set
+ ac_file to the name of the default output file and call
+ _AC_COMPILER_EXEEXT_WORKS. Move the definition of ac_files and the
+ initial `rm' of the candidate files...
+ (_AC_COMPILER_EXEEXT): ... here and simplify them. Moreover, use
+ the same list in subsequent `rm' calls, and for the temporary
+ redefinition of ac_clean_files; call _AC_COMPILER_OBJEXT at the end,
+ and don't call the other _AC_COMPILER_EXEEXT_* macros directly, use...
+ (_AC_COMPILER_EXEEXT_TESTS): ... this new macro.
+ (_AC_COMPILER_EXEEXT_O): Don't export ac_cv_exeext, it's not needed (or
+ no longer needed) by libtool. Make it a cache check.
+ (_AC_COMPILER_EXEEXT_CROSS): Remove the comment, it was obviously
+ copied here by mistake.
+ (AC_NO_EXECUTABLES): Redefine _AC_COMPILER_EXEEXT_TESTS, not
+ _AC_COMPILER_EXEEXT.
+ * lib/autoconf/c.m4 (AC_PROG_CC, AC_PROG_CXX, AC_PROG_OBJC): Do not call
+ _AC_COMPILER_OBJEXT directly.
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC): Likewise.
+
+2006-04-01 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sh.m4 (_AS_DIRNAME_PREPARE): New macro.
+ (AS_DIRNAME): Use it.
+ (_AS_PREPARE): Add _AS_DIRNAME_PREPARE.
+
+ * tests/*.at: Remove the generated ones.
+
+2006-04-01 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autotest/general.m4 (AT_INIT): Don't optimize the first PATH walk.
+
+2006-04-01 Eric Blake <ebb9@byu.net>
+
+ * lib/m4sugar/m4sh.m4 (_AS_PATH_WALK): Optimize nonexistent
+ directories, unless optional third argument supplied.
+ (AS_UNAME): Don't optimize PATH walk.
+
+ * lib/Autom4te/Struct.pm, lib/autoconf/c.m4: s/non-existent/nonexistent/
+
+2006-04-01 Eric Blake <ebb9@byu.net>
+ and Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sh.m4: Sort sections as implied by the comments,
+ and fix some typos.
+
+2006-04-01 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/autoconf/general.m4 (_AC_INIT_VERSION): Emit script name and
+ Autoconf version number despite a zero- or one-argument AC_INIT.
+
+ * bin/autoreconf.in (parse_args): Multiple -v send --verbose to
+ subordinate tools.
+ * lib/Autom4te/General.pm (getopt): Make -v and -d incremental.
+ * doc/autoconf.texi (autoreconf Invocation): Document it.
+
+ * doc/autoconf.texi: Use `Cygwin', `MinGW', and `license' consistently.
+ Append LocalWords so ispell-buffer passes cleanly. Spelling fixes.
+
+2006-04-01 Eric Blake <ebb9@byu.net>
+
+ * lib/m4sugar/m4sh.m4 (AS_MKDIR_P): Allow use in shell lists.
+ * lib/autotest/general.m4: Be tolerant of existing directory when
+ rm failed to remove it.
+
+2006-04-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * bin/autoupdate.in: Redefine m4_location so that warnings print
+ the correct lines of the input file by subtracting..
+ (_au__first_line): ..this new definition.
+
+ * lib/autoconf/general.m4 (AC_COMPILE_CHECK): Prefer
+ AC_MSG_CHECKING over obsolete AC_CHECKING in autoupdated code.
+ Remove stray newline in output.
+ (AC_FOREACH): AU_DEFUN this as literal for autoupdate, and also
+ AC_DEFUN this for autoconf, including the obsoletion diagnose.
+ Fixes autoupdating of code where the replacement output contains
+ m4sugar macros.
+ * lib/autoconf/lang.m4 (AC_LANG_SAVE): Likewise.
+ * tests/mktests.sh (ac_exclude_list): Add AC_FOREACH.
+ (au_exclude_list): Add AC_LANG_SAVE.
+ * tests/tools.at: Several new tests for all of this.
+ * doc/autoconf.texi (Obsoleting Macros): Give a hint about the
+ hairy details.
+ The AC_LANG_SAVE issue was reported against Libtool by
+ Dalibor Topic <robilad@kaffe.org>, and against Autoconf 2.57 by
+ Kristian Kvilekval <kris@cs.ucsb.edu>.
+
+2006-04-01 Stepan Kasal <kasal@ucw.cz>
+
+ * bin/autoupdate.in: Handle m4 builtins and m4sugar macros together--
+ switch all of them on and of when necessary. Fixes the bug when
+ m4sugar macros (e.g., m4_define) were expanded after the first
+ automatic update (e.g., after AC_PREREQ or AC_INIT).
+
+2006-03-31 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Programming in M4sh): Sharpen the descriptions
+ of AS_BASENAME and AS_DIRNAME. Reported by Stepan Kasal.
+
+ * 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.
+
+2006-03-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Programming in M4sh, Limitations of Usual Tools):
+ Tighten up the basename/dirname wording.
+
+2006-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * 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.
+
+2006-03-30 Chris Pickett <cpicke@cs.mcgill.ca> (tiny change)
+
+ * doc/autoconf.texi (autoreconf Invocation): Mention that -I for
+ aclocal cannot be given on the command line.
+
+2006-03-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * 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 Eric Blake.
+
+2006-03-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Quote
+ `$0' to protect against spaces.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+ * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Likewise, for
+ `$0', $as_me.
+
+2006-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * 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>.
+
+2006-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * bin/autoupdate.in: Fix some typos.
+
+2006-03-21 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Installation Directory Variables): Fix typo.
+
+ * lib/autoscan/autoscan.list: Refreshed.
+
+2006-03-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/local.at (AT_CHECK_ENV): Ignore AC_SUBSTed Objective C
+ and Erlang related variables.
+
+ * lib/autoconf/c.m4 (AC_LANG(Objective C), AC_LANG_OBJC)
+ (_AC_LANG_ABBREV(Objective C), _AC_LANG_PREFIX(Objective C))
+ (AC_LANG_SOURCE(Objective C), AC_LANG_PROGRAM(Objective C))
+ (AC_LANG_CALL(Objective C), AC_LANG_FUNC_LINK_TRY(Objective C))
+ (AC_LANG_BOOL_COMPILE_TRY(Objective C))
+ (AC_LANG_INT_SAVE(Objective C), AC_LANG_PREPROC(Objective C))
+ (AC_PROG_OBJCPP, AC_LANG_COMPILER(Objective C), AC_PROG_OBJC)
+ (_AC_PROG_OBJC_G): New macros.
+ (_AC_ARG_VAR_CPPFLAGS): Adjusted.
+ * doc/autoconf.texi (Objective C Compiler): New node.
+ (Preset Output Variables): Document OBJCFLAGS.
+ (Language Choice): Document `Objective C' language.
+ (Fortran Compiler): Fix typo.
+ * NEWS: Updated.
+ Inspired by a patch from David M. Lloyd <dmlloyd@tds.net>.
+
+2006-03-20 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Default Includes): Fix typo
+ s/AC_HEADERS_STDC/AC_HEADER_STDC/
+ (Limitations of Usual Tools): s/unwriteable/unwritable/
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT, _AC_COMPILER_EXEEXT):
+ Fix typos in the comments.
+
+2006-03-17 Stepan Kasal <kasal@ucw.cz>
+
+ * 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.
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Do not special
+ case `ac_delim' when writing the sed script.
+
+ * lib/m4sugar/m4sh.m4 (AS_BOURNE_COMPATIBLE): Removed BIN_SH=xpg4,
+ moved DUALCASE=1 ...
+ (AS_SHELL_SANITIZE): ... here.
+ * doc/autoconf.texi (Special Shell Variables) <BIN_SH>: Do not say
+ that it is set.
+
+ * lib/autoconf/programs.m4 (AC_CHECK_PROG): Quote the parameter of
+ AC_SUBST.
+ (_AC_PATH_PROG): Store the result to VARIABLE.
+ (AC_PATH_PROG): No need to set VARIABLE again.
+
+ * tests/local.at (AT_CHECK_MACRO_CROSS): New macro, creates two tests:
+ the first one is usual AT_CHECK_MACRO test, the second one checks
+ that the same works when cross-compiling.
+ * tests/semantics.at (AC_CHECK_ALIGNOF, AC_CHECK_ALIGNOF struct):
+ (AC_CHECK_SIZEOF, AC_CHECK_SIZEOF struct): Use it.
+
+2006-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * 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.
+
+ * doc/autoconf.texi (contents): To fix texi2html output, hide
+ `@setcontentsaftertitlepage' for HTML.
+ (Writing Autoconf Macros): Likewise, insert space after `@c'.
+ (Leviticus, Numbers, Deuteronomy): Likewise, change `@,c' to
+ `@,{c}'.
+
+2006-03-16 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sh.m4 (_AS_PREPARE): Move the IFS setup and CDPATH
+ sanitizing...
+ (AS_SHELL_SANITIZE): ...here; mention _AS_PATH_WALK needs IFS set.
+ * lib/autoconf/general.m4 (_AC_CANONICAL_SPLIT): Add an explanation
+ why IFS is restored so late; thank you, Ralf, for reminding us.
+
+2006-03-15 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Pretty Help Strings): No need to use cached
+ variables in the examples.
+
+2006-03-14 Romain Lenglet <rlenglet@users.forge.objectweb.org>
+
+ * doc/autoconf.texi (several sections): Cleaned up documentation for
+ macros in erlang.m4.
+
+2006-03-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/autotest.at (AT_NO_CMDSUBST): New macro to determine
+ failure condition for `$(cmd)' style command substitutions.
+ (Parenthetical command substitution, Multiline parenthetical
+ command substitution): Use it.
+
+ * doc/autoconf.texi (Special Shell Variables): Missing word.
+ Reported by Keith Marshall <keith.marshall@total.com>.
+
+ * lib/m4sugar/m4sh.m4 (_AS_PATH_WALK): Do not forget to reset
+ IFS even in case of empty `$PATH'.
+
+2006-03-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * 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.
+
+2006-03-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * 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.
+
+ * 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.
+
+ * 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'.
+
+ * lib/autoconf/lang.m4 (AC_LANG_CONFTEST): AC_DEFUN this, not
+ m4_define, so that the requirements of `AC_INCLUDES_DEFAULT' are
+ expanded outside.
+
+ * doc/autoconf.texi (autoconf Invocation): Fix typos in trace
+ example. Do not emphasize `$%', it is hardly new and special.
+ Reported by Edouard Bechetoille <ebecheto@ens-lyon.fr>.
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Document
+ OpenBSD and traditional `grep' failure to handle multiple
+ patterns separated by newlines.
+
+2006-03-10 Romain Lenglet <rlenglet@users.forge.objectweb.org>
+
+ * doc/autoconf.texi (several sections): Add documentation for macros
+ in erlang.m4.
+
+2006-03-10 Eric Blake <ebb9@byu.net>
+
+ * doc/autoconf.texi (Obsolete Macros): Fix wording of
+ AC_TRY_LINK_FUNC.
+
+2006-03-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi: Use @acronym more consistently for acronyms
+ like BSD, GPL, LGPL. Fix minor English typos.
+ (AC_STDC_HEADERS, AC_PROG_GCC_TRADITIONAL):
+ Mention that these macros are becoming obsolete.
+ (AC_STDC_HEADERS, AC_PROG_CC, AC_C_CONST, AC_C_VOLATILE):
+ Use more modern terminology for which standard is what.
+ (AC_PROG_CC): Mention gcc first, and remove obsolete references to egcs
+ and to ansi2knr.
+ (AC_PROG_CXX): Likewise.
+ (AC_C_PROTOTYPES, Test Functions, AC_LIBOBJ vs LIBOBJS):
+ Remove obsolete discussion about how to port to K&R.
+ (Guidelines for Test Programs): Suggest AC_HEADER_STDBOOL rather than
+ the obsolescent AC_HEADER_STDC.
+ (AC_FOO_IFELSE vs AC_TRY_FOO): Don't use #error; test programs
+ can't rely on it.
+
+2006-03-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/c.at (AC_PROG_CPP without warnings, AC_PROG_CPP via CC):
+ Remove stdin redirection from /dev/null to allow pipe to work.
+
+2006-03-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/c.at (AC_PROG_CPP without warnings, AC_PROG_CPP via CC):
+ Require that /lib/cpp include stdio.h correctly. Solaris 10's
+ doesn't. Problem reported by D'Arcy A MacIsaac and diagnosed by
+ Ralf Wildenhues.
+
+2006-03-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_SED_CMD_LIMIT): The limit for
+ HP-UX sed is 99 commands, not 100.
+ (_AC_OUTPUT_FILES_PREPARE): Do not count the `}' of an
+ _AC_SUBST_FILES fragment. Separate `{' and `r' commands by
+ newline for portability.
+ * tests/torture.at (Torturing config.status): Also test 100
+ AC_SUBST_FILE invocations. Fix test to actually verify the
+ AC_CONFIG_FILES output.
+ * doc/autoconf.texi (Limitations of Usual Tools): Document HP-UX
+ command, label, and read-file `r' limits. Unify HP-UX spelling.
+
+ * tests/Makefile.am (edit, $(wrappers)): Do not use `$<' in
+ non-suffix rule.
+ ($(TESTSUITE_GENERATED_AT)): Use `$(srcdir)` for the benefit of
+ non-GNU make.
+ (autoconfdir, $(AUTOCONF_FILES)): Likewise.
+ * tests/mktests.sh: Small shell portability fixes.
+
+2006-03-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Caching Results): Fix the examples to use a
+ recommended quoting style and discard unwanted output.
+
+2006-03-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autotest/general.m4 (_AT_NORMALIZE_TEST_GROUP_NUMBER): New macro.
+ (AT_INIT): Use it, to remove arbitrary limit of 999,999 test
+ cases, and to work around Tru64 expr bug.
+
+2006-03-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Mention Tru64
+ expr bug that turns the result of a regex match into a number if
+ possible.
+
+2006-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/types.m4 (AC_CHECK_ALIGNOF): Work around
+ HPUX compiler bug, similarly to AC_CHECK_SIZEOF, as documented
+ in section `Specific Compiler Characteristics'.
+
+2006-03-04 Eric Blake <ebb9@byu.net>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_STRERROR_R): Avoid unused
+ variable warning.
+
+2006-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_HEADER): Force correct
+ order of variable initialization, so even the Solaris 2.6 shell
+ can create a config header correctly. Fixes lots of test suite
+ failures.
+
+2006-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Text processing Macros): New node to
+ document the m4sugar macros m4_re_escape, m4_tolower,
+ m4_toupper, m4_split, m4_normalize, m4_append, m4_append_uniq.
+
+2006-02-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/libs.m4 (_AC_PATH_X_DIRECT): Fix typo:
+ XrmInitialize (0) -> XrmInitialize ().
+ Reported by Toshio Kuratomi.
+
+2006-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/m4sugar/m4sh.m4 (AS_IF): Extend to allow more than one
+ test, as in `if tests; then cmd1; elif ...; else ...; fi'.
+ * doc/autoconf.texi (Programming in M4sh): Adjusted.
+ * tests/m4sh.at (AS_IF and AS_CASE): Test this. Also make sure
+ both macros are defun'ed so that required macros are evaluated
+ outside.
+
+ * doc/autoconf.texi (Prerequisite Macros): State more precisely
+ where a required macro will be expanded.
+ (Coding Style): Another reason not to use `m4_define'.
+
+2006-02-21 Eric Blake <ebb9@byu.net>
+
+ * lib/autoconf/general.m4 (_AC_LIBOBJ): Minor optimization.
+
+2006-02-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Looping constructs): New node, to
+ document m4_for, m4_foreach, m4_foreach_w, and mention
+ obsolete AC_FOREACH.
+ (Obsolete Macros): Document AC_FOREACH.
+ * lib/m4sugar/m4sugar.m4 (_m4_for): Fix declaration comment.
+ (m4_for): Fix to never loop (almost) endlessly, work correctly
+ with arithmetic expressions in arguments, a step of zero or
+ non-integer multiple of the interval, and avoid integer
+ overflow.
+ * tests/m4sugar.at: New test for m4_for, m4_foreach, and
+ m4_foreach_w.
+
+2006-02-20 Romain Lenglet <rlenglet@users.forge.objectweb.org>
+
+ Add basic support for Erlang, both for configuring Erlang/OTP
+ tools, and Erlang as a conf test language.
+ * lib/autoconf/erlang.m4: New file.
+ * lib/autoconf/autoconf.m4: Add erlang.m4.
+ * lib/autoconf/Makefile.am (dist_autoconflib_DATA): Likewise.
+ * lib/freeze.mk (autoconf_m4f_dependencies): Likewise.
+ * NEWS: Add short description of new macros.
+ * THANKS: Add Romain Lenglet.
+
+2006-02-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Shellology) <pdksh>: Document that pdksh as
+ native /bin/sh may not set KSH_VERSION (seen on OpenBSD).
+
+2006-02-15 Eric Blake <ebb9@byu.net>
+
+ * lib/autoconf/general.m4 (AC_CHECK_DECL): Avoid unused variable
+ warning.
+
+2006-02-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/m4sugar/m4sh.m4 (AS_CASE): New macro.
+ (_AS_CASE): Private helper macro.
+ * tests/m4sh.at: Basic tests for AS_IF and AS_CASE.
+ * doc/autoconf.texi (Programming in M4sh): Document AS_CASE.
+ Fix syntax of AS_IF description
+ (Prerequisite Macros): Mention AS_IF and AS_CASE as workarounds
+ for the AC_REQUIRE mess.
+ * NEWS: Mention AS_CASE, AS_BOURNE_COMPATIBLE, and
+ AS_SHELL_SANITIZE.
+
+2006-02-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi: Minor style cleanup.
+ Be consistent about spaces after commas.
+ Insert [] where empty args look a bit funny.
+ Fix some "i.e." and "e.g." usages.
+ Try to avoid "X/Y" usages.
+ Don't be pedantic about "ISO C99"; just say C99.
+ Prefer GNU style for spaces in front of parens.
+ (Function Portability): Comment about C89 versus C99
+ signed integer division.
+ (Particular Headers): Use current gnulib style for dirent
+ includes.
+
+2006-02-14 Stepan Kasal <kasal@ucw.cz>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * bin/autoupdate.in (handle_autoconf_macros): Fix updating of
+ macros without parameters.
+ * lib/autoconf/autoupdate.m4 (AU_ALIAS): Likewise.
+ * doc/autoconf.texi (Obsoleting Macros): Document AU_ALIAS.
+ * tests/tools.at (autoupdating AU_ALIAS): New test for AU_ALIAS
+ `$#' bug.
+ (autoupdate): Updated to match AU_ALIAS fix.
+
+2006-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ and Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Programming in M4sh): Document
+ AS_BOURNE_COMPATIBLE and AS_SHELL_SANITIZE.
+
+2006-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/m4sugar/m4sh.m4 (_AS_BOURNE_COMPATIBLE): Renamed to..
+ (AS_BOURNE_COMPATIBLE): ..this.
+ (_AS_RUN, AS_SHELL_SANITIZE): Adjusted all callers.
+
+2006-02-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/install.texi (Defining Variables): Tighten up the
+ CONFIG_SHELL wording.
+
+2006-02-12 Paul Eggert <eggert@cs.ucla.edu>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/m4sugar/m4sh.m4 (_AS_BOURNE_COMPATIBLE): Look at the output
+ of (set -o) rather than testing whether (set -o posix) succeeds,
+ to work around a bug in the AIX 5.3 shell. Problem originally
+ reportd by Howard Chu for libtool.
+
+2006-02-10 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * doc/autoconf.texi (Running the Compiler, Running the Linker):
+ Changes the macro arguments in summaries to match the
+ descriptions.
+
+2006-02-04 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/install.texi (Defining Variables): Classify the `CONFIG_SHELL'
+ hint as ``a workaround for a bug.''
+
+2006-01-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * bin/autoreconf.in: New option `--no-recursive'.
+ Improve wording for subpackages a bit.
+ * doc/autoconf.texi (autoreconf Invocation): Updated.
+ * NEWS: Updated.
+
+ * doc/install.texi (Defining Variables): Put `CONFIG_SHELL'
+ in environment of `configure', not the command line.
+ Reported by Howard Chu <hyc@highlandsun.com>.
+
+2006-01-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Builtins): Document the
+ problem with "trap -".
+
+2006-01-23 Steven G. Johnson <stevenj@fftw.org>
+
+ * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS, _AC_FC_DUMMY_MAIN):
+ (_AC_FC_MAIN, __AC_FC_NAME_MANGLING): Use _AC_LANG in check
+ messages to differentiate Fortran and Fortran 77 tests.
+ (AC_FC_SRCEXT, AC_FC_FREEFORM): Use AC_LANG_PUSH/POP instead of
+ AC_LANG_ASSERT, to allow use in mixed-language projects.
+
+2006-01-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/c.m4 (AC_LANG_FUNC_LINK_TRY(C)): Prefer "defined
+ FOO" to "defined (FOO)".
+ * lib/autoconf/functions.m4 (_AC_LIBOBJ_ALLOCA): Likewise.
+ * lib/autoconf/headers.m4 (AC_HEADER_STAT): Likewise.
+ * lib/autoconf/specific.m4 (AC_XENIX_DIR): Likewise.
+ * tests/tools.at (ifnames): Likewise.
+
+2006-01-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/m4sugar/m4sh.m4 (AS_TMPDIR): Do not pass `-q' to mktemp.
+ * lib/Autom4te/General.pm (mktmpdir): Likewise.
+ (END): Improve error message a bit.
+ Reported by Bruce Korb <bkorb@gnu.org>.
+
+2006-01-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS): Ignore
+ `-LIST:' and `-LNO:', for PathScale 2.3 compilers.
+
+2006-01-11 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Header Portability): On Solaris 8, sys/ptem.h
+ requires sys/stream.h. Reported by Oliver Kiddle.
+
+2006-01-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autotest/general.m4 (AT_INIT): When ensuring writability
+ before the removals of test dirs, use `find' to avoid modification
+ of symlinked directories.
+
+2006-01-11 Steven G. Johnson <stevenj@alum.mit.edu>
+
+ * lib/autoconf/fortran.m4 (AC_F77_DUMMY_MAIN, AC_FC_DUMMY_MAIN):
+ Don't ignore the macro arguments.
+
+2006-01-11 David Thompson <dthompsn@vizsolutions.com>
+
+ * lib/autoconf/c.m4 (_AC_PROG_CXX_EXIT_DECLARATION): Add `exit'
+ declaration that works for MSVC.
+
+2006-01-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/lang.m4 (_AC_COMPILER_OBJEXT_REJECT):
+ Add `*.map' and `.inf' for Green Hills compiler.
+ Reported by Stefan Seefeld <stefan@codesourcery.com>.
+
+ * lib/m4sugar/m4sugar.m4 (m4_text_wrap): Handle quadrigraphs
+ correctly: pad with spaces after FIRST_PREFIX if necessary,
+ and compute string lenghts with `m4_qlen' instead of `m4_len'.
+ * lib/m4sugar/m4sh.m4 (AS_HELP_STRING): Comments updated.
+ * tests/m4sh.at (AS_HELP_STRING): Test extended.
+ * NEWS: Updated.
+ Reported by numerous people, numerous times.
+
+2006-01-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bin/autoconf.as, bin/autoheader.in, bin/autom4te.in
+ * bin/autoreconf.in, bin/autoscan.in, bin/autoupdate.in, bin/ifnames.in:
+ * lib/autoconf/general.m4, lib/autoconf/status.m4:
+ * lib/autotest/general.m4, tests/local.at:
+ Update copyright year to 2006.
+
+ * Makefile.maint (sc_root_tests): Use the recommended style s/a/b/ for
+ sed substitutions.
+ * doc/autoconf.texi (Installation Directory Variables): Use s|a|b|
+ for file names, again. Reported by Noah Misch.
+ (Coding Style): Explain that s|a|b| is preferred for file names.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Prefer s/a/b/.
+ (AC_OUTPUT_MAKE_DEFS): Likewise.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+ * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Likewise.
+ * tests/local.at (AT_CHECK_AUTOM4TE): Likewise.
+
+ Fix Posix-conformance bugs re use of { command in sed scripts,
+ and improve the sed-related documentation a bit.
+ * doc/autoconf.texi (Installation Directory Variables): Use
+ our own style advice re 's,a,b,' versus 's|a|b|'. Use "Sed"
+ rather than "sed" when talking about Sed in general.
+ (Particular Programs): Likewise.
+ (Coding Style): y is like s with respect to / and ,.
+ (Limitations of Usual Tools): Document the weird restrictions
+ that Posix has about { }. Use better quoting.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE, _AC_OUTPUT_HEADER):
+ Rewrite to conform to Posix rules about { } in sed scripts.
+ * lib/m4sugar/m4sh.m4 (AS_DIRNAME_SED, AS_BASENAME_SED): Likewise.
+ * tests/foreign.at (Libtool): Likewise.
+ * tests/semantics.at (AC_CHECK_PROG & AC_CHECK_PROGS):
+ Use our own style advice re 's,a,b,' versus 's|a|b|'.
+
+2006-01-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4: Fix typo.
+
+ * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS): Ignore
+ singly- or doubly-quoted arguments to `-cmdline', `-ignore',
+ `-def', for the benefit of Portland `pgf90 -Mipa'.
+ Reported by Christopher Hulbert <cchgroupmail@gmail.com>.
+
+2006-01-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi: Update copyright (and other) dates to 2006.
+ * doc/autoconf.texi (Shellology): Mac OS X 10.2 changed the default
+ shell from zsh to bash.
+
+2005-12-31 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/programs.m4 (_AC_PROG_GREP): Use $PATH_SEPARATOR;
+ ":" caused problems on OS/2-EMX. Suggested by Andrew Belov.
+
+2005-12-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Shell Substitutions): Warn about unbalanced
+ parentheses in $(...). Problem reported by Eric Blake.
+
+2005-12-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Usual Tools):
+ Mention which characters can be escaped with \ in portable regular
+ expressions used in grep, sed, expr. Mention the leading ^ problem
+ with expr. Clean up some confusing wording. Mention which
+ grep options are portable.
+
+2005-12-09 Stepan Kasal <kasal@ucw.cz>
+
+ * tests/local.at (AT_CHECK_AUTOM4TE): Fix typo in the comment.
+
+2005-12-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Builtins): Fix typos in previous
+ patch, noted by Ralf Wildenhues.
+
+2005-12-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/m4sugar/m4sh.m4 (_AS_BOURNE_COMPATIBLE): Try `set -o
+ posix' unconditionally, for pdksh in `native sh' emulation.
+
+2005-12-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Shellology): Document eval $? problem
+ with ash.
+ (Limitations of Builtins): Likewise.
+
+2005-11-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Pass
+ CONFIG_SHELL in the environment of the configure rerun.
+ * doc/autoconf.texi (Here-Documents, config.status Invocation):
+ Suggest passing CONFIG_SHELL absolute, and in the environment
+ rather than as option.
+
+2005-11-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE):
+ Fix quoting of output line (triggered for many AC_SUBST_FILEs).
+ Fix macro quoting. Fix output for n * 98 substituted variables.
+
+2005-11-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_MAIN_LOOP): Initialize
+ `tmp' to avoid file removal race.
+
+2005-11-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Initialize
+ ac_clean_files and LIBOBJS.
+
+2005-11-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/programs.m4 (AC_CHECK_PROG, AC_PATH_PROG):
+ Factor functionality to..
+ (_AC_CHECK_PROG, _AC_PATH_PROG): these new macros, but only
+ `AC_SUBST($1)' in the public version.
+ (AC_CHECK_TOOL, AC_PATH_TOOL, AC_PATH_TARGET_TOOL)
+ (AC_CHECK_TARGET_TOOL): Use internal versions for ac_ct_* and
+ ac_pt_* variables.
+
+2005-11-01 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/c.m4 (AC_PROG_CC_C_O): Remove the comment about 8+3
+ filesystems.
+
+2005-11-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * NEWS: Move AH_HEADER mention to right place.
+
+2005-10-27 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/c.m4 (AC_PROG_CC_C_O): "conftst2" -> "conftest2"
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_C_O): Likewise.
+
+2005-10-25 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/c.m4 (AC_PROG_CC_C_O): rm -f conftst2.*, not only
+ conftst2.$ac_objext.
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_C_O): Likewise.
+
+2005-10-24 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/c.m4 (AC_PROG_CC_C_O): Use conftst2.o instead of
+ conftest.o, to see whether the compiler really obeys; rm the object
+ file before and after the test and register it with ac_clean_files.
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_C_O): Likewise.
+
+2005-10-21 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): When determining,
+ the delimiter CEOF$ac_eof: fix quoting of CEOF[0-9]* and modify the
+ code so that the most common case requires less forks.
+
+2005-10-20 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Shell Substitutions}: Document that ${10} is
+ not portable; thanks to Paul Eggert and Alexandre.
+
+ * NEWS: Fix an old typo.
+
+2005-10-20 Jim Meyering <jim@meyering.net>
+
+ * doc/autoconf.texi: Typo: s/feature/features/ in ``the features of
+ the latter'', in two places.
+
+2005-10-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Generating Sources): AC_LANG_PROGRAMS ->
+ AC_LANG_PROGRAM, fixing a typo. Don't give details about
+ the inner workings of AC_LANG_FUNC_LINK_TRY.
+ * lib/autoconf/c.m4 (AC_LANG_CALL(C)): Reformat to match
+ AC_LANG_FUNC_LINK_TRY. This involves returning the value returned
+ by the function rather than ignoring it.
+ (AC_LANG_FUNC_LINK_TRY(C)): Call the function rather than simply
+ comparing its address. Intel's interprocedural optimization was
+ outsmarting the old heuristic. Problem reported by
+ Mikulas Patocka.
+
+2005-10-19 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (AC_SUBST): Remove an obsolete comment.
+
+2005-10-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/m4sugar/m4sugar.m4 (_m4_map): New macro.
+ (m4_map, m4_map_sep): Use it. Handle the empty list correctly.
+
+2005-10-04 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autotest/general.m4 (AT_INIT): Really make the subtree writable
+ before removing it (chmod -R u+rwx); there are three instances of this.
+
+2005-10-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): Balance parentheses.
+ * lib/autotest/general.m4 (AT_INIT): If the test dir already exists,
+ make its content writable before removing it. Remove an errorneous
+ comment from the end, where the logs of the failed tests are copied
+ to the main log file.
+
+2005-09-27 Stepan Kasal <kasal@ucw.cz>
+
+ * tests/semantics.at (AC_C_BIGENDIAN): Pass --force to autoheader,
+ in case the computer is too quick. Double quote the configure.ac
+ snippets.
+
+ * tests/local.at (AT_CHECK_AUTOCONF): Always pass --force to prevent
+ problems if the testsuite were running too fast.
+
+2005-09-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/libs.m4 (_AC_PATH_X_DIRECT): Look for X11/Xlib.h
+ and XrmInitialize rather than X11/Intrinsic.h and XtMalloc
+ (which belong to Xt, not X itself). See Debian bug 327655.
+ * NEWS: Mention this.
+
+2005-09-07 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/c.m4 (AC_LANG_SOURCE(C)): Remove an incorrect comment.
+
+2005-09-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ * config/move-if-change: Don't output "$2 is unchanged";
+ suggested by Ben Elliston. Handle weird characters correctly.
+
+2005-09-06 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/libs.m4 (AC_SEARCH_LIBS): Merge the two AC_LINK_IFELSE
+ calls, so that the final expansion of this macro is shorter.
+ Create the conftest.$ac_ext outside the `for' loop, to speed the run.
+ Do not use `break' in the argument to AC_LINK_IFELSE, it would skip
+ the cleanup there. Use AS_VAR_* macros, to be more general.
+ * tests/semantics.at (AC_SEARCH_LIBS): Check for the cleanup.
+
+ * lib/autoconf/general.m4: Use AS_IF where appropriate.
+
+ * lib/m4sugar/m4sh.m4 (AS_IF): Use m4_default.
+
+2005-09-01 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Configuration Headers): Add an index entry
+ for AH_HEADER.
+
+2005-08-26 Pavel Roskin <proski@gnu.org>
+
+ * lib/autoconf/libs.m4 (_AC_PATH_X_XMKMF): Use shell variable
+ XMKMF to locate xmkmf. Make XMKMF precious. Export CC when
+ running xmkmf.
+
+2005-08-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/m4sugar/m4sh.m4 (_AS_VERSION_COMPARE_PREPARE):
+ The previous patch didn't work, so try a better one.
+
+2005-08-26 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Programming in M4sh) <AS_TR_CPP>: Fix m4 quoting
+ in the example. Reported by Bruno Haible.
+ <AS_TR_SH>: Likewise. Also modify the example to be more convincing:
+ "if $undefined_var;" succeeds with my shell.
+
+ * lib/autoconf/general.m4 (AC_CANONICAL_BUILD, AC_CANONICAL_HOST,
+ AC_CANONICAL_TARGET): Define by AC_DEFUN, no need to use AC_DEFUN_ONCE;
+ but change the m4_divert_text to m4_divert_once.
+
+2005-08-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/m4sugar/m4sh.m4 (_AS_VERSION_COMPARE_PREPARE):
+ Work around bug in Solaris /usr/xpg4/bin/awk.
+ The bug is present in at least Solaris 8 through 10.
+
+2005-08-24 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (_AC_CANONICAL_SPLIT): Simplify; rejecting
+ some evil values and relying on the fact that $* concatenates the
+ parameters by the first character from IFS.
+
+2005-08-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>,
+ Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/status.m4 (_AC_CONFIG_REGISTER_DEST): When the
+ first header appears, define AH_HEADER.
+ * doc/autoconf.texi (Configuration Headers): Document AH_HEADER.
+ Update limitations about when to call AC_CONFIG_HEADERS.
+ (Configuration Commands): Document that AC_CONFIG_COMMANDS_PRE
+ parameter can call AC_SUBST, AC_DEFINE, or AC_CONFIG_FOOS; explain
+ that AC_CONFIG_COMMANDS_PRE and AC_CONFIG_COMMANDS_POST are not
+ ``Configuration Actions''; fix their index entries.
+
+ * lib/autotest/general.m4 (AT_INIT): Process multiple keywords
+ options correctly. Process N-M as M-N if M is smaller than N.
+ Process ranges correctly so that N-N will run only N.
+ Sort and uniquify the tests that will be run. If there is more
+ than one test, reinsert the banners for the tests.
+ * tests/autotest.at (Keywords): Unmark XFAIL.
+
+2005-08-23 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (_AC_DEFINE_Q): Strip the parameter list
+ before passing the macro name to AH_TEMPLATE.
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): config.status
+ now opens log after option processing; in particular, --version
+ and --help do not touch config.log.
+
+ * Makefile.maint: Revert the change from 2005-08-12.
+
+2005-08-22 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (AC_ARG_ENABLE, AC_ARG_WITH): Factor out
+ common code to...
+ (_AC_ENABLE_IF, _AC_ENABLE_IF_ACTION): ... these new macros.
+
+2005-08-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Using Autotest, testsuite Scripts)
+ (Autotest Logs, Writing testsuite.at, testsuite Invocation):
+ Language cleanup.
+
+ * doc/autoconf.texi (Defining Symbols, Changed Results):
+ Prepend to LIBS, not append, in examples.
+
+2005-08-16 Stepan Kasal <kasal@ucw.cz>
+
+ When building in place, set srcdir="."; suggested by Tim Van Holder.
+
+ * lib/autoconf/general.m4 (_AC_INIT_SRCDIR): Do this; to recognize
+ build in place, we need ac_pwd, and thus have to AC_REQUIRE ...
+ (_AC_INIT_DIRCHECK): ... this macro and AC_DEFUN both of them.
+ * lib/autoconf/status.m4 (_AC_SRCDIRS): Fix a comment: srcdir="."
+ does not mean "no --srcdir option".
+
+2005-08-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * tests/autoscan.at (autoscan): New file.
+ * tests/suite.at: Use it.
+ * tests/Makefile.am (TESTSUITE_HAND_AT): Add it.
+ Reported against Libtool by Gideon Go <gideon.go@gmail.com>.
+
+ * tests/autotest.at (Keywords): Test keywords combinations.
+
+2005-08-12 Stepan Kasal <kasal@ucw.cz>
+
+ * Makefile.maint (GZIP_ENV): When checking the help text of gzip,
+ add "2>&1"; gzip 1.2.4 prints help on stderr.
+
+2005-07-27 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autotest/general.m4 (_AT_DECIDE_TRACEABLE): The symbol at_reason
+ was pushdef'ed twice while popped only once. Push it only once.
+ (_AT_CHECK): Cosmetic changes to the "case $at_status" command.
+
+2005-07-26 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): The message is now
+ prefixed by mere "===", not "configure: === ".
+
+2005-07-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.maint: Update from Bison.
+
+ * lib/m4sugar/m4sugar.m4 (m4_strip): Comment fix---change tab to
+ "<tab>" in comment, so that the point is understandable.
+
+2005-07-25 Stepan Kasal <kasal@ucw.cz>
+
+ Rewrite substantial part of lib/autoconf/status.m4.
+ The main change is that CONFIG_FILES, CONFIG_HEADERS, CONFIG_LINKS,
+ and CONFIG_COMMANDS are not processed in four separate loops.
+ Instead, there is one main loop. This allows that the common code
+ is expanded only once, thus config.status (and configure) is smaller.
+
+ The registration mechanism in AC_CONFIG_FILES and cousins also
+ changed; the AC_LIST_FILES and cousins macros are no longer used.
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES, _AC_OUTPUT_HEADERS,
+ _AC_OUTPUT_LINKS, _AC_OUTPUT_COMMANDS): Renamed to ...
+ (_AC_OUTPUT_FILE, _AC_OUTPUT_HEADER, _AC_OUTPUT_LINK,
+ _AC_OUTPUT_COMMAND): ..., respectively. These macros no longer
+ contain the initialization, nor the for loop, nor the associated
+ commands; all these go to ...
+ (_AC_OUTPUT_MAIN_LOOP): ... this new macro, called from
+ _AC_OUTPUT_CONFIG_STATUS.
+ (_AC_CONFIG_SPLIT, _AC_CONFIG_SPLIT_SOURCE_DEST, _AC_CONFIG_SPLIT_FILE_IN):
+ Nuked; the code was merged into _AC_OUTPUT_MAIN_LOOP.
+ (_AC_OUTPUT_FILE): The creation of the sed script ...
+ (AC_OUTPUT): ... and the setup of ac_vpsub goes to ...
+ (_AC_OUTPUT_FILES_PREPARE): ... a new macro, also called from
+ _AC_OUTPUT_MAIN_LOOP.
+ (_AC_CONFIG_FILES, _AC_CONFIG_HEADERS, _AC_CONFIG_LINKS,
+ _AC_CONFIG_COMMANDS): Use ...
+ (_AC_CONFIG_FOOS): ... this new macro, which uses these ...
+ (_AC_CONFIG_REGISTER, _AC_CONFIG_REGISTER_DEST): ... new macros.
+ (_AC_CONFIG_FILE, _AC_CONFIG_HEADER, _AC_CONFIG_LINK,
+ _AC_CONFIG_COMMAND, _AC_CONFIG_DEPENDENCIES): No longer needed.
+ (_AC_CONFIG_DEPENDENCY): Update, it uses these ...
+ (_AC_CONFIG_DEPENDENCY_DEFAULT, _AC_FILE_DEPENDENCY_TRACE_COLON):
+ ... new macros.
+ (_AC_CONFIG_UNIQUE): Update.
+ (AC_LIST_FILES, AC_LIST_HEADERS, AC_LIST_LINKS, AC_LIST_COMMANDS):
+ Replaced by this ...
+ (_AC_LIST_TAGS): ... new common macro.
+ (AC_LIST_FILE_COMMANDS, AC_LIST_HEADER_COMMANDS, AC_LIST_LINK_COMMANDS,
+ AC_LIST_COMMAND_COMMANDS): Replaced by this ...
+ (_AC_LIST_TAG_COMMANDS): ... new common macro.
+ (_AC_CONFIG_COMMANDS_INIT): Moved top to the `registration' section;
+ this didn't belong to the `config commands' section.
+ (_AC_OUTPUT_COMMANDS_INIT): Don't initialize, m4_ifdef is our friend.
+ (AC_CONFIG_COMMANDS_PRE, AC_OUTPUT_COMMANDS_PRE,
+ AC_CONFIG_COMMANDS_POST): Moved to a new section, these didn't belong
+ to the `config commands' section either.
+ (AC_CONFIG_SUBDIRS): Don't touch diversion DEFAULTS.
+ (_AC_LIST_SUBDIRS): Don't initialize, m4_ifdef is our friend.
+
+ ... and many changes to the comments nearby.
+
+ * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): At the end of the day,
+ set ac_subdirs_all='_AC_LIST_SUBDIRS'.
+ * tests/torture.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
+ AC_CONFIG_COMMANDS(command:input,...) is no longer allowed.
+ (#define header templates): The comment at the top of the generated
+ header now includes the name(s) of the source file(s).
+
+ Several unrelated small changes:
+
+ * lib/autoconf/general.m4 (AC_CACHE_VAL): Be didactic, quote the first
+ parameter to AC_DIAGNOSE.
+ * lib/autoconf/status.m4 (AC_CONFIG_SUBDIRS): Likewise.
+ (_AC_LINK_FILES_CNT): Don't AU_DEFUN this; it causes confusing messages
+ with autoupdate; use m4_define_default inside AU_DEFUNed AC_LINK_FILES.
+ (AC_OUTPUT): In the compatibility code, use m4_ifvaln, to be consistent
+ with AU::AC_OUTPUT.
+ (AU::AC_OUTPUT): Don't double-quote $2 and $3, the compatibility code
+ in AC_OUTPUT doesn't double-quote it either.
+ * tests/tools.at (autoupdate): AU::AC_OUTPUT no longer double-quotes the
+ parameters.
+
+2005-07-10 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): Document which
+ versions of Portland Group compiler produce single- and double-quoted
+ -cmdline argument. Reported by Steven G. Johnson <stevenj@fftw.org>
+ and Ole Holm Nielsen <Ole.H.Nielsen@fysik.dtu.dk>.
+
+2005-07-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/local.at (AT_CONFIG_CMP): Ignore lines like "LIBS=''" too.
+ This is a corrected version of yesterday's patch.
+
+2005-07-07 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): Report the full
+ path, too; insert a "===" to emphasize the line.
+
+ * lib/autoconf/general.m4 (AC_CANONICAL_BUILD): Rename
+ ac_cv_build_alias to ac_build_alias.
+ (AC_CANONICAL_HOST, AC_CANONICAL_TARGET): Simplify.
+
+ On 2005-02-24, an unintentional AC_SUBST([CC]) was introduced; this
+ change eliminates it. Problem reported by Alexandre Duret-Lutz.
+ * lib/autoconf/general.m4 (_AC_ARG_VAR_PRECIOUS): Move the AC_SUBST ...
+ (AC_ARG_VAR): ... here.
+ (_AC_INIT_PREPARE): Call AC_SUBST for build_alias, host_alias and
+ target_alias.
+
+ Keep a list of all precious variables and process them with one simple
+ for loop, instead of expanding all commands, or, OTOH, complicated
+ processing of output of "set".
+ * lib/autoconf/general.m4 (_AC_ARG_VAR_PRECIOUS): Accumulate the
+ variable names in new macro...
+ (_AC_PRECIOUS_VARS): ... which will be assigned to ac_precious_vars.
+ (_AC_ARG_VAR_STORE): New macro which writes to diversion PARSE_ARGS
+ a loop to assign all ac_env_* and ac_cv_env_* variables.
+ (_AC_ARG_VAR_VALIDATE): Use shell variable ac_precious_vars, divert
+ to INIT_PREPARE.
+ (_AC_INIT_DEFAULTS): At the end, if _AC_PRECIOUS_VARS is set, assign
+ its value to shell variable ac_precious_vars and call
+ _AC_ARG_VAR_STORE and _AC_ARG_VAR_VALIDATE.
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Don't call
+ _AC_ARG_VAR_VALIDATE.
+
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Move AC_LANG_PUSH(C)
+ and the AC_SUBSTs ...
+ (AC_INIT): ... here.
+
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Changed the title of
+ the ac_subst_files section in config.log.
+
+ * tests/local.at (AT_CONFIG_CMP): Revert Paul's previous change.
+
+2005-07-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: New macro AC_C_TYPEOF.
+ * doc/autoconf.texi (C Compiler): Document AC_C_TYPEOF.
+ * lib/autoconf/c.m4 (AC_C_TYPEOF): New macro.
+ * tests/c.at (C keywords): Test AC_C_TYPEOF.
+
+ Fix problems reported by Nicolas Joly.
+ * tests/base.at (Input/Output): Ignore 'loading site script' chatter.
+ * tests/local.at (AT_CONFIG_CMP): Ignore lines like "LIBS=''" too.
+ They are generated by the Tru64 v5.1B shell.
+
+2005-07-05 Stepan Kasal <kasal@ucw.cz>
+
+ Fix my changes from 2005-07-01; reported by Noah Misch.
+ * lib/autoconf/status.m4 (_AC_CONFIG_DEPENDENCIES): Fix the
+ description, the macro now accepts only a single tag.
+ (_AC_CONFIG_UNIQUE): Likewise; s/AC_File/[$1]/
+
+ Fix cases when the varsions of Autoconf and Autotest don't match.
+ Reported by Noah Misch.
+ * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Set also
+ at_top_builddir, for compatibility with older autotest.
+ * lib/autotest/general.m4 (AT_INIT): If at_top_build_prefix
+ is not set, use at_top_builddir, for compatibility with older
+ versions of autoconf.
+
+2005-07-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bin/autom4te.in ($m4): Catch usages like --nesting-limit=2048.
+ Problem reported by Patrick Welche.
+
+2005-07-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/general.m4 (AC_ARG_PROGRAM): Use &, not |, in
+ sed substitution command, so that we allow | in program prefixes
+ and program suffixes. (& is a problem anyway; we're not fixing
+ that here.)
+ * lib/autoconf/status.m4 (AC_CONFIG_FILES): Likewise, for
+ configure_input, top_builddir, srcdir, etc.
+ * lib/autotest/general.m4 (AT_INIT): Likewise, for
+ PATH_SEPARATOR in AUTOTEST_PATH.
+
+2005-07-02 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * lib/autoconf/general.m4 (AC_SITE_LOAD): Rewrite the
+ for loop over config.site files using `set', to allow
+ directory names containing IFS characters.
+
+2005-07-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/general.m4 (_AC_INIT_DIRCHECK): Remove the tests for
+ directories with weird names. Apparently some people like living
+ on the edge. However, improve the test that "pwd" actually does
+ report a name for the working directory.
+ * NEWS: Remove the claim that we test for funny chars in dir names.
+
+2005-07-01 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (AC_FOREACH): Make obsolete; it's
+ replaced ...
+ * lib/m4sugar/m4sugar.m4 (m4_foreach_w): ... by this new macro.
+ * lib/autoconf/status.m4 (_AC_CONFIG_DEPENDENCIES, _AC_CONFIG_UNIQUE):
+ Now accept a single tag, not whitespace separated list.
+ (AC_CONFIG_SUBDIRS): Call _AC_CONFIG_UNIQUE in a m4_foreach_w loop.
+
+2005-06-30 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Configuration Headers): Change the explanation
+ about #include <config.h>.
+ (Generic Functions): Mention the Gnulib project.
+ (Limitations of Usual Tools) <sed>: Another minor rephrasing.
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Use a here
+ document to output the default config_* lists to config.status.
+ Don't recognize option --file, if the functionality is not there.
+ Likewise for --header; moreover, recognize --he and --h as shortcuts
+ for --help in that case.
+
+ * lib/autoconf/status.m4: Fix the order of the "sections", so that it
+ matches the order of execution. No code changed.
+
+2005-06-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): Fix also for
+ single-quoted -cmdline argument in Portland Group compiler.
+ Reported against LAM by Ole Holm Nielsen <Ole.H.Nielsen@fysik.dtu.dk>.
+
+2005-06-30 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * lib/autom4te.in (Automake-preselections): Preselect AC_SUBST_TRACE.
+
+2005-06-29 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (File Descriptors): ksh doesn't pass open file
+ descriptors to child processes; reported by Norman Gray.
+
+2005-06-29 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (AC_ARG_VAR): Move next to _AC_ARG_PRECIOUS.
+
+ * lib/autoconf/general.m4 (AC_SUBST_TRACE): New macro, to be traced
+ instead of AC_SUBST; proposed by Alexandre Duret-Lutz.
+ (AC_SUBST): Call it.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES): Call AC_SUBST_TRACE for
+ the directory specific variables; but don't call it for configure_input.
+
+2005-06-28 Derek Price <derek@ximbiot.com>
+
+ * doc/autoconf.texi (Limitations of Usual Tools) <sed>: Reword recent
+ addition.
+
+2005-06-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Don't worry about spaces in bindir etc. Only srcdir and working
+ directory have inherent problems with special characters like spaces,
+ due to limitations in Make syntax. Problem reported by Alexandre
+ Duret-Lutz.
+ * lib/autoconf/general.m4 (_AC_INIT_DIRCHECK): Implement the above.
+ Also, fix Tru64 porting problem with shell patterns,
+ reported by Ralf Wildenhues.
+
+2005-06-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Subdirectories): Fix markup typos.
+
+2005-06-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/local.at (AT_CHECK_ENV): Simplify regexp slightly.
+
+ Fix some more shell quoting problems. Prompted by a bug report
+ from Justace Clutter.
+ * lib/autoconf/general.m4 (_AC_INIT_DIRCHECK): Put name of invalid
+ variable into diagnostic. Make the diagnostic an error, not a warning,
+ because we really don't support spaces and suchlike in dir names.
+ (_AC_INIT_SRCDIR): Allow special characters in $ac_unique_file.
+ Don't worry about backslashes in srcdir; it can't happen now.
+ (_AC_INIT_PARSE_ARGS): Allow weird characters in ac_optarg.
+ Simplify ac_optarg handling.
+ (_AC_ARG_VAR_VALIDATE): Remove unnecessary and inconsistent quotes.
+
+2005-06-22 Stepan Kasal <kasal@ucw.cz>
+
+ Fix AT_CONFIG_CMP for Solaris hosts; idea from Ralf Menzel.
+ * configure.ac: Call AC_PROG_EGREP and AC_PROG_SED.
+ * tests/atlocal.in: Propagate $EGREP and $SED.
+ * tests/local.at (AT_CHECK_ENV): Use $EGREP, not $GREP -E.
+ (AT_CONFIG_CMP): Use sed instead of grep plumbing.
+
+ * doc/autoconf.texi (Limitations of Usual Tools) <grep>: Mention
+ that '\|' is not allowed in BREs; recommend using newline separated
+ list of patterns instead of multiple -e options.
+
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): Remove an old comment.
+
+ * lib/autoconf/general.m4 (_AC_CANONICAL_SPLIT): Use AC_SUBST/2.
+
+2005-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/general.m4 (_AC_CANONICAL_SPLIT): Fix typo.
+
+2005-06-21 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Limitations of Usual Tools) <sed>: Document that
+ b, t, r, w commands require single space, while : cannot have any.
+ (Special Shell Variables): Fix sed code this in the example.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS): Likewise; and fix a typo.
+ * lib/autotest/general.m4 (AT_ARG_OPTION): Fix typo in the description.
+
+ * lib/m4sugar/m4sugar.m4 (m4_split): If the parameter is empty,
+ expand to the empty list. Don't use two pairs of m4_changequote,
+ it's not necessary.
+
+2005-06-20 Derek Price <derek@ximbiot.com>
+
+ * lib/m4/programs.m4 (AC_PROG_YACC): Declare YACC & YFLAGS precious.
+
+2005-06-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/m4sugar/m4sh.m4 (as_awk_strverscmp): Port to Solaris /bin/awk.
+ * doc/autoconf.texi:
+ Don't mention Solaris versions so much, if a
+ problem is common to all extant versions of Solaris. Say "SunOS
+ 4" instead of "SunOS" for SunOS 4.
+ (awk): Mention more of the limitations of traditional Awk.
+ (cat): Don't talk about cat -v.
+
+2005-06-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/m4sugar/m4sh.m4 (_AS_VERSION_COMPARE_PREPARE): New macro.
+ (AS_VERSION_COMPARE): New macro. The API is taken from CVS,
+ but the implementation is entirely different and is designed
+ to be compatible with glibc strverscmp.
+ * tests/m4sh.at (AS_VERSION_COMPARE): New test.
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Mention expr bug
+ on Mac OS X 10.4 reported by Peter O'Gorman in:
+ http://lists.gnu.org/archive/html/autoconf-patches/2005-06/msg00041.html
+ * lib/autoconf/general.m4 (_AC_CANONICAL_SPLIT):
+ Use shell builtins rather than 'expr', to work around expr bug.
+
+2005-06-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi: "filesystem" -> "file system".
+ "behaviour" -> "behavior".
+ Warn about \(...\)* in Solaris sed (written by Ralf Menzel).
+ * lib/autoconf/general.m4: Omit blank after ":" sed command,
+ as per POSIX.
+ * lib/m4sugar/m4sh.m4: Likewise.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS): Work around problem
+ with Solaris sed. Fix by Ralf Menzel and Stepan Kasal.
+
+ * man/Makefile.am (MOSTLYCLEANFILES): Add $(srcdir)/*.t.
+ (.x.1): Ignore the time stamp in the .TH line when deciding whether
+ to update the man page. That way, we don't have to check in new
+ man pages every month.
+
+ * lib/m4sugar/m4sh.m4 (AS_VAR_TEST_SET): Work even if $1 contains
+ quotes and backslashes. Patch from Derek Price.
+
+2005-06-10 Derek Price <derek@ximbiot.com>
+
+ * doc/autoconf.texi (Programming in M4sh): Document AS_TR_CPP &
+ AS_TR_SH.
+
+2005-06-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autotest/general.m4 (AT_INIT): Don't accept Solaris 9's diff
+ -u, since it outputs chatter if the input files are the same.
+ Problem reported by Ralf Menzel.
+
+2005-06-08 Derek Price <derek@ximbiot.com>
+
+ * lib/m4sugar/m4sugar.m4: Undefine include & sinclude rather than
+ renaming them since they are about to be redefined anyhow.
+
+2005-06-08 Derek Price <derek@ximbiot.com>
+
+ * doc/autoconf.texi (Redefined M4 Macros): Add index entries for most
+ redefined M4 macros to this node. Document m4_include & m4_sinclude.
+ Move m4_undefine to alphabetical order.
+
+2005-06-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * README: Recommend GNU M4 1.4.3 or later.
+ * doc/autoconf.texi (Introduction): Likewise.
+ Reword to avoid some formatting glitches.
+ Use "#!/bin/sh", not "#! /bin/sh"; the space isn't needed these days.
+ Clarify explanation of HP compiler bug.
+ Redo example output tp match current CVS snapshot.
+ Use @example.org in email addresses when the examples
+ might get inadvertently cut-and-pasted into user code.
+ Remove example of autom4te usage that doesn't seem to work now.
+ Use modern AC_INIT (except when the example is meant to be
+ shown with Autoconf 2.13).
+ Update ksh info for Solaris 9 and later.
+ KB -> kB.
+ Modernize description of Automake versions a bit.
+ Don't claim a future version of Autoconf is near.
+ * doc/install.texi: Reword to avoid some formatting glitches.
+
+2005-06-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi: Add [] to examples, so that the manual
+ follows its own advice about quoting better.
+ Reword to avoid some formatting glitches.
+ * doc/installt.exi: Reword to avoid some formatting glitches.
+
+ * doc/autoconf.texi (Limitations of Builtins) <case>: Mention
+ Tru64 ksh pattern matching bug. Reported against Libtool by
+ Albert Chin <libtool@mlists.thewrittenword.com> and
+ Nicolas Joly <njoly@pasteur.fr>.
+
+2005-06-06 Stepan Kasal <kasal@ucw.cz>
+
+ m4_cdr of one-member list was [[]] (one-member list containing an
+ empty string) instead of [] (an empty list. Callers were skewed to
+ match this misbehaviour. As a consequence of this:
+ - m4_foreach([x], [], [foo]) expanded to `foo', while
+ - the expansion of m4_foreach([x], [[]], [foo]) was empty.
+ This bug has been fixed:
+
+ * lib/m4sugar/m4sugar.m4 (m4_cdr): If only one argument is given,
+ expand to an empty string; print error msg if called without
+ an argument list.
+ (m4_foreach, m4_map, m4_map_sep): Don't expect the previous
+ misbehaviour; handle [] and [[]] correctly.
+
+2005-06-06 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Nuke ac_max_here_lines.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS): Simplify the sed
+ scripts created and the loop applying them, use _AC_SED_CMD_LIMIT.
+
+2005-06-06 Ralf Menzel <menzel@ls6.cs.uni-dortmund.de> (trivial change)
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Solaris' awk cannot
+ swallow records with more than 99 fields.
+ * lib/autotest/general.m4 (AT_INIT): Use the awk builtin `split' to
+ parse the long line.
+
+2005-06-04 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): AIX awk cannot
+ swallow literals longer than 399. Reported by Ralf Wildenhues.
+ * lib/autotest/general.m4 (AT_INIT): Pass $at_groups though stdin,
+ to workaround this limitation.
+
+2005-06-03 Steven G. Johnson <stevenj@alum.mit.edu>
+
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC): Find g95 in addition
+ to gfortran, and make these the first two compiler names
+ checked (following the general autoconf preference for gcc).
+
+2005-06-03 Stepan Kasal <kasal@ucw.cz>
+
+ * tests/Makefile.am (check_SCRIPTS): Set to $(wrappers).
+ (DISTCLEANFILES): Remove $(check_SCRIPTS).
+ (testsuite): Make sure autotest.m4f is up-to-date before using it.
+
+2005-06-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autotest/general.m4 (AT_INIT): Don't create a regular
+ expression of unbounded size when processing the --list
+ option. This runs afoul of a limit of 399 bytes per regular
+ expression on AIX. Problem reported by Ralf Wildenhues.
+
+2005-06-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Note yesterday's changes to AC_SUBST and AC_SUBST_FILE.
+ * doc/autoconf.texi (Particular Headers): Reword example
+ for multiline stdbool replacement.
+ (Setting Output Variables): Reword text a bit. Don't
+ give all the details about |#_!!_#|.
+ Reword description of line replacement.
+
+2005-05-31 Dan Manthey <dan_manthey@partech.com>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES): Output variables may
+ now contain newlines, and substituted files must be referenced on
+ a line alone; the sed scripts to substitute them are now very
+ different.
+ (_AC_SED_CMD_LIMIT): Added; single place to store limit on how many
+ commands can be put in a sed script portably.
+ * doc/autoconf.texi (Setting Output Variables): Document above
+ changes. (Particular Header Checks) <AC_HEADER_STDBOOL>: Give exaple
+ use of multiline substitution.
+ * tests/torture.at: No longer expect substitution of newline to fail.
+
+2005-05-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/m4sugar/m4sh.m4 (_AS_SHELL_FN_WORK): Fix diagnostics.
+ From Ralf Menzel (trivial change).
+
+2005-05-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/local.at: Don't attempt to check for negated character
+ classes in shell scripts. The test was too brittle.
+
+2005-05-25 Stepan Kasal <kasal@ucw.cz>
+
+ * bin/autoconf.as: Don't use "shift 2"; it's not portable enough.
+ * doc/autoconf.texi (Limitations of Builtins): Document this
+ limitation.
+
+2005-05-24 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sh.m4 (_AS_ECHO_LOG): New macro to factor out
+ common code; used in many places in the tree.
+ (AS_ESCAPE): Make the pattern a bit simpler; use \& insetad of \1.
+ (_AS_ECHO_UNQUOTED): Move the macro lower; no code change.
+
+ * lib/m4sugar/m4sugar.m4 (m4_ifset): Use m4_ifval.
+
+ * lib/autoconf/general.m4 (_AC_INIT_SRCDIR): Merge the two error
+ messages when ac_unique_file is not found.
+ (AC_CONFIG_MACRO_DIR): Simplify the `if' at the end.
+ (AC_MSG_CHECKING, AC_MSG_RESULT): Put braces around the two echo
+ commands, for consistency with AC_MSG_ERROR and such.
+
+ * bin/autoconf.as: Make more use of "shift 2" in option processing.
+
+ * bin/Makefile.am: Merge the two rules for creating scripts.
+
+2005-05-23 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (AC_MSG_RESULT_UNQUOTED): Make
+ obsolete; it was never documented.
+ (AC_CACHE_CHECK): Use AC_MSG_RESULT instead.
+
+2005-05-20 Stepan Kasal <kasal@ucw.cz>
+
+ * NEWS: @top_builddir@ is now a dirname, ac_top_builddir will follow.
+ * lib/autoconf/status.m4 (_AC_SRCDIRS): Rename ...
+ (ac_top_builddir): ... this ...
+ (ac_top_build_prefix): ... to this; the old name is also kept, for
+ backward compatibility.
+ (ac_top_builddir_sub): New variable, without the trailing slash,
+ always nonempty.
+ (_AC_OUTPUT_FILES): s/@top_builddir@/$ac_top_builddir_sub/
+ * doc/autoconf.texi (Configuration Actions): Rename
+ ac_top_builddir to ac_top_build_prefix.
+ * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Rename
+ at_top_builddir to at_top_build_prefix.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+
+2005-05-20 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Simplify the init
+ of confdefs.h .
+
+2005-05-17 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sugar.m4 (m4_text_wrap): Don't m4_quote the second
+ argument to m4_foreach. I guess it was necessary in the past,
+ but I think it's a no-op now.
+
+2005-05-17 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (_AC_INIT_HELP): Merge two consecutive
+ ``cat <<_ACEOF'' commands to one.
+ (_AC_CANONICAL_SPLIT): Use expr, not ``echo|sed.''
+ * lib/autoconf/status.m4: On various places, use expr instead of
+ ``echo|sed.''
+ (_AC_CONFIG_SPLIT, _AC_CONFIG_SPLIT_SOURCE_DEST):
+ (_AC_CONFIG_SPLIT_FILE_IN): New macros, to factor out common code.
+ * lib/autotest/general.m4 (AT_INIT): Use expr to get the numbers from
+ a range.
+ * tests/local.at (AT_CHECK_SHELL_SYNTAX): Use awk to search for
+ the wrong patterns between ``case'' and ``esac.'' The previous
+ code had false positives.
+
+2005-05-14 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * lib/autoconf/functions.m4 (_AC_LIBOBJ_ALLOCA): Prepend ${LIBOBJDIR},
+ as on 2005-05-02.
+ * doc/autoconf.texi (Particular Functions) <AC_FUNC_ALLOCA>:
+ Mention LIBOBJDIR.
+
+2005-05-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * AUTHORS, BUGS, COPYING, ChangeLog, ChangeLog.0, ChangeLog.1,
+ ChangeLog.2, GNUmakefile, Makefile.am, Makefile.cfg,
+ Makefile.maint, NEWS, README, README-alpha, TODO, configure.ac,
+ bin/Makefile.am, bin/autoconf.as, bin/autoheader.in,
+ bin/autom4te.in, bin/autoreconf.in, bin/autoscan.in,
+ bin/autoupdate.in, bin/ifnames.in, config/Makefile.am,
+ config/config.guess, config/config.sub, config/elisp-comp,
+ config/m4.m4, config/mdate-sh, config/missing, config/texinfo.tex,
+ doc/Makefile.am, doc/fdl.texi, lib/Makefile.am, lib/autom4te.in,
+ lib/freeze.mk, lib/Autom4te/C4che.pm, lib/Autom4te/ChannelDefs.pm,
+ lib/Autom4te/Channels.pm, lib/Autom4te/Configure_ac.pm,
+ lib/Autom4te/FileUtils.pm, lib/Autom4te/General.pm,
+ lib/Autom4te/Request.pm, lib/Autom4te/Struct.pm,
+ lib/Autom4te/XFile.pm, lib/autoconf/Makefile.am,
+ lib/autoconf/autoconf.m4, lib/autoconf/autoheader.m4,
+ lib/autoconf/autoscan.m4, lib/autoconf/autotest.m4,
+ lib/autoconf/autoupdate.m4, lib/autoconf/c.m4,
+ lib/autoconf/fortran.m4, lib/autoconf/functions.m4,
+ lib/autoconf/general.m4, lib/autoconf/headers.m4,
+ lib/autoconf/lang.m4, lib/autoconf/libs.m4,
+ lib/autoconf/oldnames.m4, lib/autoconf/programs.m4,
+ lib/autoconf/specific.m4, lib/autoconf/status.m4,
+ lib/autoconf/types.m4, lib/autoscan/Makefile.am,
+ lib/autoscan/autoscan.list, lib/autoscan/autoscan.pre,
+ lib/autotest/Makefile.am, lib/autotest/autotest.m4,
+ lib/autotest/general.m4, lib/emacs/Makefile.am,
+ lib/emacs/autoconf-mode.el, lib/emacs/autotest-mode.el,
+ lib/m4sugar/Makefile.am, lib/m4sugar/m4sh.m4,
+ lib/m4sugar/m4sugar.m4, man/Makefile.am, tests/Makefile.am,
+ tests/atlocal.in, tests/autotest.at, tests/base.at, tests/c.at,
+ tests/compile.at, tests/foreign.at, tests/fortran.at,
+ tests/local.at, tests/m4sh.at, tests/m4sugar.at, tests/mktests.sh,
+ tests/semantics.at, tests/suite.at, tests/tools.at,
+ tests/torture.at, tests/wrapper.as:
+ Update FSF postal mail address.
+
+2005-05-13 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (AC_CONFIG_LIBOBJ_DIR): Remove the broken
+ check.
+ * lib/m4sugar/m4sugar.m4 (m4_bmatch): Halt with error if we don't get
+ enough arguments, similarly as in m4_bpatsubsts.
+
+2005-05-12 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/status.m4 (_AC_SRCDIRS): Simplify the computation
+ of absolute paths.
+
+2005-05-11 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Make the check
+ for absolute directory names in one loop.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Handle
+ abbreviations of --version and --debug.
+
+2005-05-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Autoconf Language): Be more precise about
+ quoting rules. Problems noted by Stepan Kasal.
+ Also, throughout this document, be more careful about white space.
+ "blank", "white space", and "space" all have different meanings
+ and we should be careful to say what we mean.
+
+2005-05-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix C++ related problems reported by Werner Lemberg.
+ * doc/autoconf.texi (C++ Compiler): Mention .cpp extension.
+ * lib/autoconf/c.m4 (AC_LANG(C++)): Set ac_ext to .cpp, not .cc.
+ * lib/autoconf/types.m4 (AC_TYPE_SIGNAL): Simplify test, to
+ avoid problems with C++ and throw.
+ * tests/compile.at: .cpp, not .cc.
+
+ * tests/semantics.at: Prepend LIBOBJDIR, as per 2005-05-02 change.
+
+2005-05-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Generic Functions): Typos.
+
+2005-05-02 Gary V. Vaughan <gary@gnu.org>
+
+ * lib/autoconf/general.m4 (_AC_LIBOBJS_NORMALIZE): Prepend each
+ object named in LIBOBJS and LTLIBOBJS with the ${LIBOBJDIR}, as
+ set by latest automake.
+
+2005-05-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): "expr '' \| ''"
+ outputs 0 on GNU/Linux these days.
+
+2005-04-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Autoconf Language): Add more description
+ about quoting heuristics.
+ (Limitations of Builtins): Describe "set -" problems.
+
+2005-04-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autotest/general.m4 (AT_KEYWORDS): Separate by space,
+ not newline.
+
+ * doc/autoconf.texi (External Software): Replace AC_DEFINE_UNQUOTED
+ by AC_DEFINE; it was a mistake.
+ From bug reported against libtool by Dalibor Topic <robilad@kaffe.org>.
+
+2005-04-25 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS): A tiny optimization.
+
+2005-04-22 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (External Software): Quadrigraphs are not
+ processed correctly in AS_HELP_STRING; avoid this in the examples.
+ * lib/m4sugar/m4sh.m4 (AS_HELP_STRING): Add a FIXME about quadrigraphs.
+ * lib/m4sugar/m4sugar.m4 (m4_text_wrap): Likewise; and rephrase the
+ comment and reduce m4_default([foo], []) to [foo].
+ (m4_strip): Update the explanation.
+
+2005-04-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE, _AC_RUN_IFELSE):
+ Remove core.conftest.* too; it's generated by Tru64 5.1.
+ Problem reported by Jennis Pruett.
+ * lib/autoconf/functions.m4
+ (AC_FUNC_SETVBUF_REVERSED, AC_FUNC_UTIME_NULL):
+ Don't bother to remove core files; AC_RUN_IFELSE should do that
+ for you.
+
+2005-04-19 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sugar.m4 (m4_bpatsubsts): Add the b- to comment, too.
+
+2005-04-19 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Handle --docdir.
+ Report from Horst Wente.
+
+2005-04-15 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (_AC_ARG_VAR_VALIDATE): Fixed a typo in
+ the comment.
+
+2005-04-14 Gregorio Guidi <greg_g@gentoo.org>
+
+ * doc/autoconf.texi (External Software, Package Options): Add
+ examples showing how to implement --with-* and --enable-* options.
+
+2005-04-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): Look for configure.ac
+ as well as configure.in. Problem reported by Gregorio Guidi.
+
+2005-04-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Particular Functions): Use gnulib's current
+ pattern for alloca snippet.
+
+2005-04-04 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autotest/general.m4 (_AT_DECIDE_TRACEABLE): Fix a typo.
+
+2005-04-01 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Generic Programs): Fix a typo.
+
+2005-04-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autotest/general.m4 (AT_INIT): Don't assume that "date +%s"
+ fails if %s isn't supported. Problem reported by Ralf Wildenhues.
+
+2005-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS):
+ Merge `-z option' as well for the benefit of Solaris link flags. Pass
+ whole-archive (-zallextract, -zdefaultextract) options in the hope of
+ unique libraries, for the Sun Fortran 95 8.0 compiler. Bug reported
+ against Libtool by Yury Puhalsky <pooh@cryptopro.ru>.
+
+2005-03-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: The configure command now warns you if you attempt to use
+ a directory whose name contains a special character like space,
+ newline, or "\".
+ * doc/autoconf.texi (Installation Directory Variables): Allow
+ "," in file names. Do not use \@; it's not a portable regexp.
+ * bin/Makefile.am (edit): Likewise.
+ * lib/Makefile.am (edit): Likewise.
+ * tests/Makefile.am (edit): Likewise.
+ * tests/semantics.at: Likewise.
+ * tests/torture.at: Likewise.
+ * lib/autoconf/general.m4 (AC_ARG_PROGRAM): Likewise.
+ * lib/autoconf/status.m4 (_AC_SRCDIRS): Likewise.
+ * doc/autoconf.texi (File System Conventions): Warn about
+ unportable file names.
+ * lib/autoconf/general.m4 (_AC_INIT_DIRCHECK): New macro.
+ (AC_INIT): Use it.
+ (_AC_INIT_SRCDIR): Use ac_pwd rather than invoking pwd.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Propagate
+ ac_pwd, and quote srcdir.
+ * lib/autotest/general.m4 (AT_INIT): Quote file name args.
+
+ * doc/autoconf.texi: Fix some systematic formatting problems.
+ ".)" needs a following @: if not at the end of a sentence, and
+ similarly for "!)". "etc." should be preceded by a comma.
+ "n-th" -> "@var{n}th". pdksh is still buggy, so update its date.
+
+2005-03-22 Bruno Haible <bruno@clisp.org>
+
+ * doc/autoconf.texi (Input): Mention that AC_CONFIG_AUX_DIR's
+ argument is often called 'build-aux'.
+
+2005-03-07 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Quotation Rule Of Thumb): Mention that the
+ macro AC_TRY_LINK is obsolete.
+ (Installation Directory Variables): Change `AC_OUTPUT_FILES' to
+ `AC_CONFIG_FILES'.
+
+2005-02-24 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/c.m4 (AC_PROG_CC): Be more careful to skip
+ `/usr/ucb/cc'; use `cl.exe' to distinguish the MS compiler
+ from a Common Lisp's `cl'.
+ (AC_PROG_CXX): Behave according to the documentation: don't
+ search for $ac_tool_prefix$CCC and $CCC, just set CXX=$CCC;
+ make the variable CCC precious; use `cl.exe', not `cl'.
+
+2005-02-23 Paul Eggert <eggert@cs.ucla.edu>
+ Alexandre Duret-Lutz <adl@gnu.org>
+
+ * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Redirect stdin from
+ /dev/null, as "configure" shouldn't read stdin, and this insulates
+ us from problems (e.g., when testing for "cl"). Also, do this
+ redirection before invoking "hostname" or "uname", and keep the
+ original input stream available via...
+ (AS_ORIGINAL_STDIN_FD): ... this new macro.
+ (_AC_PREPROC_IFELSE, _AC_COMPILE_IFELSE, _AC_LINK_IFELSE): Don't
+ bother with "</dev/null" since it's now done at the top of
+ 'configure'.
+ * lib/autoconf/c.m4 (AC_PROG_CC, AC_PROG_CXX): Likewise.
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC): Likewise.
+ * lib/autoconf/programs.m4 (_AC_PATH_PROG_FLAVOR_GNU): Likewise.
+ * doc/autoconf.texi (File Descriptor Macros): New section.
+ (Printing Messages): Mention it.
+ * tests/base.at (Input/Output): New test.
+
+2005-02-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/m4sugar/m4sh.m4 (_AS_ECHO_N_PREPARE): Don't set ECHO_C to
+ newline if neither \c nor -n work, as that would output two
+ newlines. Prefer -n to \c. Reported by Stepan Kasal.
+
+2005-02-12 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sh.m4 (AS_IF): Define by m4_defun, not m4_define.
+ This causes that any required macros inside will get before the if.
+ * doc/autoconf.texi (autom4te.cache): A typo.
+
+2005-02-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ Undo previous change, except keep the change to
+ lib/autoconf/programs.m4 that replaced grep with shell
+ pattern-matching. This is because net-snmp configure reads stdin.
+ Reported by Noah Misch.
+
+2005-02-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Redirect stdin
+ from /dev/null, as "configure" shouldn't read stdin, and this
+ insulates us from problems (e.g., when testing for "cl").
+ Suggested by Alexandre Duret-Lutz. Also, do this redirection
+ before invoking "hostname" or "uname".
+ (_AC_PREPROC_IFELSE, _AC_COMPILE_IFELSE,
+ _AC_LINK_IFELSE): Undo previous change, as it's no longer needed.
+ * lib/autoconf/c.m4 (AC_PROG_CC, AC_PROG_CXX): Don't bother with
+ "</dev/null" since it's now done at the top of 'configure'.
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC): Likewise.
+ * lib/autoconf/programs.m4 (_AC_PATH_PROG_FLAVOR_GNU): Likewise.
+ Also, replace grep with shell pattern-matching, to save a process.
+
+2005-02-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/general.m4 (_AC_PREPROC_IFELSE, _AC_COMPILE_IFELSE,
+ _AC_LINK_IFELSE): Redirect stdin to /dev/null, in an attempt to
+ avoid thinking that Allegro Common Lisp's "cl" command is a C++
+ compiler.
+
+2005-02-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Document that
+ grep -q isn't portable. Improve grep -s explanation.
+ Problem reported by Dan Manthey.
+
+2005-02-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Special Shell Variables): Clarify
+ PATH_SEPARATOR wording; fix typo in IFS. Reported by Gary V. Vaughan.
+
+2005-02-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi: Use @acronym for DJGPP.
+ Fix some @code's that should have been @env's, and vice versa.
+ Sort environment variable names.
+ Mention that shells no longer inherit IFS.
+ Don't recommend PATH_SEPARATOR=';' so strongly.
+ Mention that $RANDOM might expand to the empty string.
+ "symlink" and "soft link" -> "symbolic link".
+ Improve mktemp description (reported by Bruno Haible).
+
+2005-02-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/foreign.at (Libtool): Don't overquote AT_SETUP arg.
+ * tests/m4sh.at (AS_DIRNAME, AS_BASENAME, AS_MKDIR_P, AS_HELP_STRING):
+ Likewise.
+ * tests/semantics.at (AC_C_BIGENDIAN, AC_PATH_PROG & AC_PATH_PROGS):
+ Likewise.
+
+2005-02-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: Mention AT_COPYRIGHT.
+
+ * tests/local.at (AT_CMP): Use diff directly on input files rather
+ than copying them.
+
+ * lib/autoconf/programs.m4 (AC_PROG_SED): Don't look in
+ /usr/xpg4/bin since that sed dumps core (at least on Solaris 8).
+
+2005-02-04 Noah Misch <noah@cs.caltech.edu>
+ and Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/autotest.at (Empty test suite): New test.
+ * tests/torture.at (Substitute and define special characters)
+ (Substitute a 2000-byte string, Define to a 2000-byte string)
+ (Substitute a newline, Define a newline): New tests.
+
+2005-02-04 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/m4sugar/m4sugar.m4 (m4_re_string, m4_re_word): Revert 2002-03-04.
+ * tests/local.at (AT_CHECK_M4SUGAR): Add `m4sugar' to keywords.
+ (AT_CHECK_ENV): Ignore LTLIBOBJS, FC variables, EGREP, FGREP, and SED.
+ * tests/m4sugar.at (AT_CHECK_M4SUGAR_TEXT, AT_CHECK_M4RE): New macros.
+ (Standard regular expressions): New test.
+ (m4_warn, m4_require: circular dependencies, m4_text_wrap): Strip
+ excess test name quoting.
+ * tests/semantics.at (AC_CHECK_HEADERS_OLD, AC_CHECK_HEADERS_NEW): Pass
+ CPPFLAGS to `configure' instead of setting it in `configure'.
+
+ * lib/m4sugar/m4sh.m4 (AS_UNAME): Try only /usr/bin/hostinfo, not
+ any `hostinfo' in $PATH, since hostinfo.exe is a popular file name
+ on some platforms.
+
+ * lib/autoconf/fortran.m4 (AC_LANG(Fortran), AC_FC_SRCEXT):
+ s/FC_SRCEXT/ac_fc_srcext/; s/FCFLAGS_SRCEXT/ac_fcflags_srcext/.
+
+ * tests/local.at (AT_CMP): New macro.
+ (AT_DATA_AUTOCONF): Do not call AC_PROG_GREP.
+ (AC_SAVE_STATE): Move environment grep...
+ (AT_CHECK_ENV): to here. Filter out `'$''. Use AT_CMP.
+ (AT_CONFIG_CMP): New macro.
+ (AT_CHECK_MACRO): Run `configure' twice with cache and compare results.
+ * tests/c.at (Extensions): Do not exit early.
+ * tests/atlocal.in: Inherit $GREP.
+
+ * lib/autoconf/c.m4 (_AC_C_STD_TRY): New macro.
+ (_AC_PROG_CC_C89, _AC_PROG_CC_C99): Use it.
+
+ * lib/autoconf/general.m4 (_AC_INIT_COPYRIGHT): Update for 2005.
+ (AC_COPYRIGHT): Factor header comment portion out and move into...
+ * lib/m4sugar/m4sh.m4 (AS_COPYRIGHT): This.
+ * lib/autotest/general.at (AT_COPYRIGHT): New macro.
+ (AT_INIT): Add Autotest copyright notice. Display copyright notices in
+ --version output.
+ * tests/local.at: Add Autoconf test suite copyright notice.
+ * doc/autoconf.texi (Writing testsuite.at): Document AT_COPYRIGHT.
+
+2005-02-04 Bruno Haible <bruno@clisp.org>
+ and Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): New mkstemp entry.
+
+2005-02-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/m4sugar/m4sugar.m4 (m4_re_escape): Escape ?, ^, \, $ too;
+ this fixes a bug tickled by the AT_CAPTURE_FILE change noted below.
+
+ Try not to generated lines of unlimited length, as POSIX places a
+ 2047-byte limit on line length of portable text files.
+ * lib/autoconf/general.m4 (AC_SUBST, AC_SUBST_FILE):
+ Use newline as a separator, not space.
+ * lib/autotest/general.m4 (AT_TESTED, AT_KEYWORDS): Likewise.
+ (AT_CAPTURE_FILE): Use space-backslash-newline as a separator, not
+ space.
+
+2005-02-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/m4sugar/m4sh.m4 (_AS_SHELL_FN_WORK): Move func_* to
+ as_func_*. Add test to check whether positional parameters
+ are restored after function return.
+
+2005-02-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Special Shell Variables): Mention _,
+ BIN_SH, DUALCASE. Say that variables other than "status" are safe
+ if they contain a lower-case letter. The DUALCASE problem was
+ reported by Ralf Wildenhues.
+
+ * bin/autoconf.as: Don't exit with status 0 after write failure
+ with --help or --version.
+ * lib/autoconf/general.m4 (_AC_INIT_HELP, _AC_INIT_VERSION): Likewise.
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Likewise.
+
+2005-02-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Limitations of Usual Tools):
+ Unicos 9 sed limitations.
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC): Try cf77 before fort77
+ to get the option-enhanced interface on older Crays. Try ftn for
+ Fortran 95 (newer Crays).
+
+2005-02-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * man/Makefile.am (.x.1): Go back to the simple solution, but take
+ care to echo the commands, so the user knows what's going on.
+ Modified from a suggestion by Stepan Kasal.
+
+ * doc/autoconf.texi (autoreconf Invocation): Mention autopoint,
+ with a cross reference. Derived from a suggestion by Bruce Korb.
+
+2005-01-31 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (config.status Invocation): Warn about
+ discrepancy between CONFIG_SHELL and shell used to invoke 'configure'.
+ * doc/install.texi (Defining Variables): Likewise.
+ Based on a proposed patch by Ralf Wildenhues.
+
+ * man/Makefile.am (.x.1): Make sure the required generated files
+ are up to date. Problem and original solution proposed by Stepan Kasal.
+ $(dist_man_MANS:.1=-bin-prereq), $(dist_man_MANS:.1=-tests-prereq),
+ implicit-man-prerequisites): New rules, used by the above.
+
+ * doc/make-stds.texi, doc/standards.texi: Sync from gnulib.
+ * config/config.guess, config/config.sub, config/install-sh: Likewise.
+ * config/missing, config/texinfo.tex: Likewise.
+
+2005-01-29 Stepan Kasal <kasal@ucw.cz>
+
+ Simplify the implementation of m4_require (a.k.a. AC_REQUIRE).
+ Update the long comment explaining it.
+
+ m4_require no longer writes an ``is required by'' line to the
+ execution stack. It contains only one bit of non-redundant
+ information: that the macro was required, not called. And even
+ this bit is useless in most situations: have you ever met a macro
+ which both calls and requires the same macro?
+
+ * lib/m4sugar/m4sugar.m4 (_m4_defun_pro): Don't push a diversion...
+ (_m4_defun_pro_outer): ... only via this macro, for the outermost
+ macro.
+ (_m4_defun_epi, _m4_defun_epi_outer): Complementarily.
+ (m4_expansion_stack_pop): Remove the misplaced comment.
+ (m4_require): Don't put the ``is required by'' line to the
+ execution stack; slightly improve the out-of-a-defun error message.
+ (_m4_divert_grow): New macro, counter for the temporary diversions.
+ (_m4_require_call): Use it.
+ * tests/m4sugar.at (m4_require): Expect output without the
+ ``is required by'' messages.
+
+2005-01-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Recommend X
+ rather than x for expr.
+
+ * lib/autoconf/lang.m4 (_AC_COMPILER_OBJEXT): Avoid subshells when
+ this is safe.
+ * lib/autoconf/programs.m4 (AC_PROG_EGREP, AC_PROG_FGREP): Likewise.
+ * lib/autoconf/specific.m4 (AC_SYS_LONG_FILE_NAMES): Likewise.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+ * lib/m4sugar/m4sh.m4 (_AS_LINENO_WORKS): Likewise.
+ * tests/mktests.sh: Likewise.
+
+2005-01-27 Akim Demaille <akim@epita.fr>
+
+ Have autoheader honor --force.
+
+ * doc/make-stds.texi, doc/standards.texi: Update from masters.
+ * lib/Autom4te/Channels.pm, lib/Autom4te/Configure_ac.pm
+ * lib/Autom4te/FileUtils.pm, lib/Autom4te/XFile.pm: Update
+ from masters, so that FileUtils.pm's update_file provide --force
+ support.
+ * bin/autoheader.in: Pass $force to update_file so that
+ config.h.in is always recreated when --force.
+
+2005-01-24 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Introduction): Update Peter Simons' address.
+
+2005-01-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Builtins): Clarify that
+ "if test ! -d foo; ..." is portable. Suggested by Stepan Kasal.
+
+2005-01-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Shell Substitutions): Fix typo in case statement.
+ Warn about newline stripping in `` and $(). Update Solaris
+ version to 9.
+ (Limitations of Builtins): Use expr "X...", not expr "x...", as
+ X insulates us from future changes to Posix.
+ (Limitations of Usual Tools): For AS_DIRNAME, warn about newline
+ stripping.
+
+2005-01-19 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Defining Symbols): Delete the false comment that
+ you cannot use AC_DEFINE to define macros containing `[' or `]'.
+
+2005-01-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Document bug
+ in Solaris 8 join. Problem reported by Tomohiro Suzuki on
+ bug-tar mailing list.
+
+2005-01-05 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sugar.m4 (m4_copy): Fix the explanation.
+
+2005-01-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/c.m4 (AC_LANG_INT_SAVE(C)): Declare longval and
+ ulongval to be static, to avoid unwanted GCC warning. Problem
+ reported by Michael Jennings via Daniel Reed; see
+ <https://bugzilla.redhat.com/beta/show_bug.cgi?id=143852>.
+
+2005-01-05 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Define datarootdir,
+ docdir, htmldir, dvidir, pdfdir, psdir, and localdir. Update
+ datadir, infodir, and mandir. Adjust argument parsing code.
+ (_AC_INIT_HELP): Update help text.
+ * doc/autoconf.texi (Installation Directory Variables): Document
+ new variables.
+
+2005-01-04 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/autoconf/programs.m4 (AC_PROG_MAKE_SET): If the Make program does
+ not seem to work, assume it does set $(MAKE).
+ * doc/autoconf.texi (AC_PROG_MAKE_SET): Update.
+
+2005-01-03 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sh.m4 (AS_REQUIRE): Add a comment about nesting.
+
+2005-01-03 Stepan Kasal <kasal@ucw.cz>
+
+ A cleanup of the diversion support in m4sugar.
+
+ * lib/m4sugar/m4sugar.m4 (_m4_divert): A typo in description.
+ (_m4_divert_n_stack): New macro; the expansion is
+ <newline>m4_divert_stack, if m4_divert_stack is defined, and void
+ otherwise.
+ (m4_divert, m4_divert_push, m4_divert_pop, m4_init): Use it.
+ (m4_divert_push, m4_divert_pop, _m4_defun_epi): Don't expand the word
+ stored in _m4_divert_diversion or _m4_divert_dump.
+ (m4_divert_pop): When the parameter is given, compare the symbolic
+ name with the last diversion pushed on the stack. Previously, the
+ current diversion was compared with the numeric value of the
+ diversion given as the parameter.
+ (m4_require): If the macro hasn't been expanded yet, call ...
+ (_m4_require_call): this new macro.
+
+2005-01-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE, _AC_ARG_VAR_VALIDATE):
+ Workarounds for documented `case' limitations.
+
+2005-01-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Warn about
+ sed 'command1;command2'. Problem reported by Ralf Wildenhues.
+
+2005-01-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bin/autoconf.as, bin/autoheader.in, bin/autom4te.in,
+ bin/autoreconf.in, bin/autoscan.in, bin/autoupdate.in,
+ bin/ifnames.in, tests/mktests.sh: Update copyright date to 2005.
+
+ Patch from Roger Leigh (with some minor changes) as follows:
+ * NEWS: New macros AC_PROG_CC_C89, AC_PROG_CC_C99.
+ Resurrect AC_PROG_CC_STDC.
+ * doc/autoconf.texi (C Compiler): Add AC_PROG_CC_STDC,
+ AC_PROG_CC_C89, AC_PROG_CC_C99.
+ (Obsolete Macros): Remove AC_PROG_CC_STDC; it's no longer obsolete.
+ * lib/autoconf/c.m4 (_AC_PROG_CC_C89, _AC_PROG_CC_C99, AC_PROG_CC_C89,
+ AC_PROG_CC_C99): New macros.
+ (AC_PROG_CC_STDC): Use them.
+ (_AC_PROG_CC_STDC): Remove.
+ (AC_C_PROTOTYPES): Use ac_cv_prog_cc_c89, not ac_cv_prog_cc_stdc.
+ * THANKS: Add Roger Leigh.
+
+2004-12-30 Noah Misch <noah@cs.caltech.edu>
+
+ * bin/autoreconf.in (autoreconf_current_directory): AM_INIT_AUTOMAKE
+ signals that the package uses Automake; a `Makefile.am' is typical but
+ not essential. Reported by Magnus Therning.
+ * tests/torture.at (autoreconf.): New banner.
+ (autoreconf and non-AC configure): Rename to `Non-Autoconf
+ AC_CONFIG_SUBDIRS'.
+ (autoreconf an empty directory): Rename to `Empty directory'.
+ (Unusual Automake input files): New test.
+
+2004-12-30 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/autotest/general.m4 (AT_CAPTURE_FILE): New macro.
+ (AT_SETUP): Clear AT_capture_files.
+ (_AT_CHECK): On failure, log each of AT_capture_files. Fix comment.
+ (AT_KEYWORDS): Fix comment typo.
+ * tests/autotest.at (AT_CHECK_AT): Use AT_CAPTURE_FILE.
+ * tests/local.at (AT_CHECK_CONFIGURE): Use AT_CAPTURE_FILE.
+ * doc/autoconf.texi (Writing testsuite.at): Document AT_CAPTURE_FILE.
+
+2004-12-29 Albert Chin-A-Young <china@thewrittenword.com>
+
+ * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH):
+ If the variable to set is already set, set ac_cv_path_$1
+ to the preset value so caller can assume ac_cv_path_$1
+ is available. (trivial change)
+
+2004-12-27 Noah Misch <noah@cs.caltech.edu>
+
+ * BUGS (Minor Problems): Warn about makefile limitations.
+ * Makefile.am: Find and update `INSTALL' in $(srcdir).
+ * man/Makefile.am: Find and update manual pages in $(srcdir).
+
+2004-12-24 Eric Blake <ebb9@byu.net>
+
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Test candidate
+ shells in subshell, to avoid noise from ash. (trivial change)
+
+2004-12-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/autoconf.texi (Limitations of Builtins) <case>: Mention
+ problems with SunOS ksh and backslash escaping, Bourne shells and
+ closing brackets (both within character classes). Bug reported
+ against Libtool by Alexander Kurz <alexander.kurz@qsc.de>.
+ <read>: New entry. Mention non-availability of -r.
+
+2004-12-21 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_LINE): Don't add srcdir here, to
+ avoid cluttering displayed messages. Rather, prepend srcdir where
+ AT_LINE is used for log files.
+
+2004-12-21 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/status.m4: Quote ``$tmp'' in many places.
+ * lib/m4sugar/m4sh.m4 (AS_TMPDIR): Fix the comment, as traps are
+ no longer part of the macro, quote the occurrence of ``$tmp''.
+ * doc/autoconf.texi (Forbidden Patterns): Typo.
+
+2004-12-21 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Make sure the "ok" etc. are
+ separated from the test title by forcing a white space.
+
+2004-12-21 Akim Demaille <akim@epita.fr>
+
+ Enable Emacs navigation within testsuite.log files.
+
+ * lib/autotest/general.m4 (AT_CLEANUP): Add an hint for Emacs to
+ use the compilation mode.
+ (AT_LINE): Point to the srcdir.
+
+2004-12-19 Noah Misch <noah@cs.caltech.edu>
+
+ * tests/Makefile.am (installcheck-local): Use $(bindir).
+ (check-local, installcheck-local): Pass TESTSUITEFLAGS.
+ * doc/autoconf.texi (Making testsuite Scripts): Recommend the same
+ Makefile.am scheme Autoconf now uses.
+
+2004-12-18 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/m4sugar/m4sugar.m4 (m4_qlen, m4_qdelta): New macros.
+ * lib/autotest/general.m4 (AT_SETUP): Use m4_qdelta.
+
+2004-12-18 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/autotest/general.m4 (_AT_DECIDE_TRACEABLE): New macro.
+ (_AT_CHECK): Use it.
+ * lib/m4sugar/m4sh.m4 (AS_ESCAPE_FOR_EXPAND): Remove.
+ (AS_ESCAPE): Fix comment.
+ * tests/autotest.at: Adjust section banner comments.
+ (AT_CHECK_AT): Accept STATUS and STDERR.
+ (AT_CHECK_AT_TEST): Likewise.
+ (Invalid brace-enclosed parameter expansion)
+ (Multiline command from M4 expansion)
+ (Double-M4-quoted command): New tests.
+
+2004-12-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi: Update GNU FDL version from 1.1 to 1.2.
+
+2004-12-17 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (AC_SUBST, AC_SUBST_FILES): Pass $1 to
+ m4_pattern_allow.
+ Suggested by Alexandre Duret-Lutz.
+ * doc/autoconf.texi (Setting Output Variables): Catch up.
+
+2004-12-17 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sh.m4 (_AS_TEST_PREPARE): Fix comment.
+
+2004-12-17 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (_AC_LIBOBJ): We can use AC_SUBST/2,
+ remove the comment which said we cannot.
+
+2004-12-17 Stepan Kasal <kasal@ucw.cz>
+
+ Add a specialized check for resolv.h. Thanks to Gerrit P. Haase,
+ Reini Urban and Paul Eggert for reporting the dependencies.
+
+ * lib/autoconf/headers.m4 (AC_HEADER_RESOLV): New macro.
+ * doc/autoconf.texi (AC_HEADER_RESOLV): Document it.
+ (AC_HEADER_STAT): @cvindex{STAT_MACROS_BROKEN}, not @acindex.
+
+2004-12-17 Stepan Kasal <kasal@ucw.cz>
+
+ * bin/autoscan.in: Open autoscan.log only after ``parse_args'';
+ so that eg. ``autoscan --help'' doesn't truncate it.
+
+2004-12-15 Nicolas Joly <njoly@pasteur.fr>
+
+ * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH): Remove
+ generated conftest files.
+
+2004-12-13 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/autotest/general.m4 (_AT_CHECK) [--trace]: Do not enable shell
+ tracing on commands with possibly-escaped newlines.
+ * doc/autoconf.texi (Writing testsuite.at): Delete documentation of the
+ discontinued behavior and its implications.
+ * tests/autotest.at (BS-newline in command, ^BS-newline in command)
+ (BSx641-newline in command, BS-BS-newline in command)
+ (BSx640-newline in command, Newline-CODE-BS-newline in command)
+ (Single-quote-BS-newline in command)
+ (Single-quote-newline-BS-newline in command): New tests.
+
+2004-12-13 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sh.m4 (AS_EXECUTABLE_P): Use test -f && test -x
+ on platforms where it works.
+ (_AS_TEST_PREPARE): Test for ``test -x''.
+ (_AS_BROKEN_TEST_PREPARE): Nuke.
+
+2004-12-13 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sh.m4 (AS_TMPDIR): Move the trap commands ...
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): ... here;
+ give only 4-letter prefix to AS_TMPDIR, comment fixed.
+ * lib/autoconf/programs.m4 (_AC_PATH_PROG_FEATURE_CHECK): Don't
+ create the temporary directory.
+ (_AC_FEATURE_CHECK_LENGTH): Work in current directory.
+
+2004-12-12 Kelley Cook <kcook@gcc.gnu.org>
+
+ * bin/autoheader.in: Exit if no AC_CONFIG_HEADERS was found.
+ (trivial change)
+
+2004-12-12 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * doc/autoconf.texi (Limitations of Usual Tools) <expr (:)>: Typo.
+
+2004-12-11 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/autotest/general.m4 (_AT_CHECK) [--trace]: Rework a shell pattern
+ to avoid using a negated character class. Reported by Nicolas Joly.
+ * tests/local.at (AT_CHECK_SHELL_SYNTAX): Check for similar constructs.
+
+2004-12-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * man/Makefile.am (autoconf.1, autoheader.1, autom4te.1, autoreconf.1,
+ autoscan.1, autoupdate.1, ifnames.1, config.guess.1, config.sub.1):
+ Don't depend on .x file explicitly, since "make" does that for us.
+ Suggested by Stepan Kasal.
+
+ * bin/Makefile.am (MOSTLYCLEANFILES): Renamed from CLEANFILES.
+ Add *.tmp.
+ (autoconf, autoheader, autom4te, autoreconf, autoscan, autoupdate,
+ ifnames): Factor common code. And they said it couldn't be done!
+
+2004-12-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bin/.cvsignore: Add autoconf.in.
+ * tests/.cvsignore: Add wrapper.in.
+ * lib/autotest/general.m4: Escape '$' in case pattern.
+
+2004-12-09 Noah Misch <noah@cs.caltech.edu>
+
+ * man/Makefile.am (autoconf.1): Regenerate when `autoconf.as' changes.
+
+ * lib/autotest/general.m4 [--trace] (AT_INIT): Do not `set -v'.
+
+ * tests/autotest.at: New file.
+ * tests/suite.at: Include it.
+ * tests/Makefile.am: Distribute it.
+
+ * lib/autotest/general.m4 [--trace] (_AT_CHECK): Do not enable
+ shell tracing on a command that could contain multiple lines.
+ * doc/autoconf.text: Document that fact and its implications.
+ * lib/m4sugar/m4sh.m4 (AS_ESCAPE_FOR_EXPAND): New macro.
+ * tests/autotest.at (Multiline backquote command substitution,
+ Multiline parameter expansion, Literal multiline command,
+ Multiline parenthetical command substitution): Remove XFAIL.
+
+2004-12-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Libraries): Clarify problems with AC_CHECK_LIB
+ and suggest AC_SEARCH_LIBS. Suggested by Noah Misch and Stepan Kasal.
+
+2004-12-08 Noah Misch <noah@cs.caltech.edu>
+
+ * configure.ac (test suite): Cease to generate wrapper scripts.
+ * configure: Regenerate.
+ * lib/freeze.mk (MY_AUTOM4TE): Wrap the uninstalled autom4te directly.
+ (m4f_dependencies): Adjust accordingly.
+ * tests/Makefile.am (Wrappers): Generate wrapper scripts.
+ (wrapper.in): Generate it in the build directory.
+ (MAINTAINERCLEANFILES): Delete wrapper.in.
+ (CLEANFILES): Add wrapper.in.
+ * tests/wrapper.as: Move AS_INIT to very top, preserving copyright in
+ the output. Replace each $as_me with a @wrap_program@.
+ * tests/wrapper.in: Delete it; we always build it.
+
+ * bin/Makefile.am (autoconf.in): Generate it in the build directory.
+ (EXTRA_DIST): Remove autoconf.in.
+ (CLEANFILES): Add autoconf.in.
+ (autoconf): Find autoconf.in in the build directory.
+ * bin/autoconf.in: Delete it; we always build it.
+
+2004-12-08 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/autotest/general.m4 (AT_INIT): Replace a `tr' with a `sed'. Join
+ PATH members so as to not prepend an empty element. Move a comment.
+ * Makefile.am (SUBDIRS): Build in `tests' last.
+ * tests/Makefile.am (installcheck-local): Add check-local dependencies.
+
+2004-12-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/mdate-sh: Don't use "set - x`$ls_command /`", as zsh mishandles
+ the spaces inside $ls_command. Problem reported by Loulou Pouchet in
+ <http://lists.gnu.org/archive/html/autoconf/2004-12/msg00074.html>.
+ Don't use "set - x"; plain "set x" is enough, and simplifies debugging.
+
+2004-12-07 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_GETMNTENT): Fix typo in previous
+ patch: extra "-l"s.
+
+2004-12-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_GETMNTENT): Check libc before
+ looking elsewhere for getmntent. Problem reported by Mark D. Baushke.
+ * doc/autoconf.texi (Particular Functions): Mention new behavior.
+
+2004-12-03 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/general.m4 (AC_DEFINE, AC_DEFINE_UNQUOTED): Factor
+ out the common code to ...
+ (_AC_DEFINE_Q): ... a new macro; simplify the condition about the
+ value of the #define--default to 1, iff the macro was called
+ with exactly one parameter.
+
+2004-12-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_MEMCMP): Use
+ "char c = '\200';" rather than "char c = 0x80;" as the
+ latter doesn't conform to the strict C standard due to
+ overflow on signed char hosts.
+
+ * lib/autoconf/c.m4 (_AC_PROG_CC_STDC): Prefer -qlanglvl=extc89
+ to -qlanglvl=ansi. We don't want to disable extensions.
+
+2004-11-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Particular Programs): @code{$PATH} -> @env{PATH}.
+ (Using Autotest, testsuite Scripts, Writing testsuite.at):
+ Reword slightly to avoid some English-language problems noted
+ by Ralf Wildenhues in:
+ http://lists.gnu.org/archive/html/autoconf-patches/2004-11/msg00027.html
+
+2004-11-29 Stepan Kasal <kasal@ucw.cz>
+
+ * NEWS: Add ^L above each release.
+
+2004-11-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix documentation problems reported by Russ Boylan in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2004-11/msg00056.html>,
+ along with some nearby cruft.
+ * doc/autoconf.texi (Libtool): Libtool can be used without
+ Automake (not without Autoconf).
+ (Introduction): Mention lists.gnu.org.
+ * BUGS: Don't mention bugs.gnu.org.
+ Remove mention of ancient libtool compatibility problem.
+ * NEWS: Mention that bugs.gnu.org is kaput.
+ * README: Likewise. Mention where mailing list archives can be found.
+
+2004-11-28 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/m4sugar/m4sh.m4 (AS_HELP_STRING): A typo in the comment.
+
+2004-11-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Pretty Help Strings): Go back to
+ single-quoting assignments to cache variables.
+
+2004-11-23 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Pretty Help Strings): Fix quoting issues
+ with the examples; fix the bug in MY_ARG_WITH example reported
+ by Alexandre Duret-Lutz.
+ * lib/autoconf/general.m4 (AC_ARG_ENABLE, AC_ARG_ENABLE): Enable
+ expansion of $1 in the comment emitted to configure.
+
+2004-11-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Pretty Help Strings): Fix typo
+ in my editing of the previous patch. Problem reported
+ by Alexandre Duret-Lutz.
+
+2004-11-22 Stepan Kasal <kasal@ucw.cz>
+
+ * doc/autoconf.texi (Autoconf Language): Explain that
+ ``descriptions'' may not be double quotes.
+ (Quotation Rule Of Thumb): Likewise.
+ (Pretty Help Strings): Likewise; remove the wrong comment;
+ simplify the examples and improve their quoting.
+
+2004-11-13 Stepan Kasal <kasal@ucw.cz>
+
+ * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH): Don't check
+ the $1_found variable, don't test whether the file is executable;
+ Both things are checked ...
+ (_AC_PATH_PROG_FEATURE_CHECK): ... here; AS_EXECUTABLE_P replaces
+ the former ``test -f''.
+ * lib/m4sugar/m4sh.m4 (_AS_TEST_PREPARE): Fix a typo.
+
+2004-11-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Avoid cp -r;
+ use cp -R instead.
+
+2004-11-10 Derek R. Price <derek@ximbiot.com>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Note `cp -r'
+ limitations. Reorder paragraphs for clarity.
+
+2004-10-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi: Standardize spelling of "Posix" (as opposed
+ to "POSIX" or "@acronym{POSIX}"), and similarly for "DOS
+ variants", "Unix", and some related minor wording fixups.
+
+ (Shellology, Special Shell Variables): Document that the Zsh
+ problem with NULLCMD was fixed in zsh 3.1.6-dev-18. Thanks
+ to Alexandre Duret-Lutz for this info.
+
+2004-10-10 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * doc/autoconf.texi (One-Shot Macros): New node.
+
+2004-09-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Function Portability): Fix misdescription
+ of putenv. Problem reported by Michael Wardle.
+
+2004-09-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (auindex): New macro.
+ (AU_DEFUN): Use it to fix the bug when the index contained AC_AU_DEFUN.
+ Problem reported by Stepan Kasal.
+
+2004-09-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix problems reported by Andreas Buening in:
+ http://lists.gnu.org/archive/html/autoconf-patches/2004-04/msg00004.html
+ * lib/autoconf/programs.m4 (AC_PROG_MAKE_SET): Set SHELL=/bin/sh
+ in test makefile.
+ * lib/autotest/general.m4 (AT_INIT): Don't assume /dev/null is
+ readable; it's not true in OS/2-emx.
+
+2004-09-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/libs.m4 (_AC_PATH_X_XMKMF): If xmkmf returns
+ "/usr/include", clear ac_x_includes instead of leaving it as "no"
+ (trivial change). Problem and patch reported by Andrew Church in:
+ http://lists.gnu.org/archive/html/bug-autoconf/2004-04/msg00016.html
+
+2004-09-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi: Give AC_DEFINE and AC_DEFINE_UNQUOTED
+ three args in examples. Problem reported by Frederik Fouvry in:
+ http://lists.gnu.org/archive/html/bug-autoconf/2004-09/msg00017.html
+ Also, fix some minor spacing and punctuation bugs.
+
+2004-09-02 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Limitations of Builtins): Swap "cd" and
+ "case" to restore ordering.
+ Reported by Stepan Kasal.
+
+2004-08-26 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi: Minor typos and stylos.
+
+2004-08-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * configure.ac (AC_INIT): Bump to 2.59c.
+
+2004-08-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ Version 2.59b.
+
+ * README: Add advice about m4 1.4.2.
+
+ * Makefile.cfg (wget_files): Remove config.guess, config.sub,
+ texinfo.tex for now (done by hand now).
+ * Makefile.maint (wget_files, cvs_files):
+ Remove ansi2knr.c; nobody uses it.
+ (ansi2knr.c-url_prefix): Remove.
+ (cvs-update): Fix test for failure. I don't know why it ever
+ worked...
+
+ * doc/autoconf.texi: Update URLs, some of which went stale.
+ Use @uref rather than @href.
+
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Have configure
+ handle "--" as per POSIX. Suggested by Paul Pogonyshev.
+
+ * config/config.guess, config/config.sub, config/elisp-comp,
+ config/install-sh, config/mkinstalldirs, config/texinfo.tex,
+ doc/fdl.texi, doc/standards.texi: Sync with master copy.
+
+ * NEWS, TODO, configure.ac, bin/autoscan.in,
+ bin/autoupdate.in, bin/ifnames.in, doc/autoconf.texi,
+ doc/install.texi, lib/Autom4te/Configure_ac.pm,
+ lib/Autom4te/FileUtils.pm, lib/autoconf/general.m4,
+ lib/autoconf/programs.m4, lib/autoconf/status.m4,
+ lib/autotest/general.m4, lib/m4sugar/m4sh.m4,
+ lib/m4sugar/m4sugar.m4, tests/local.at, tests/m4sh.at,
+ tests/tools.at, tests/torture.at:
+ Use "file name" rather than "filename" or "path",
+ to be consistent with the terminology of the GNU coding standards.
+
+2004-08-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/c.m4 (AC_LANG_BOOL_COMPILE_TRY(C),
+ AC_C_LONG_DOUBLE): Undo 2004-06-04 change, as it didn't work with
+ HP-UX 11.23 cc/aCC or Tru64 4.0 cc. Problem reported by Noah Misch in
+ <http://lists.gnu.org/archive/html/autoconf/2004-07/msg00004.html>.
+
+ More fixes to support spaces in the name of the build directory.
+ This isn't a complete fix but it's an improvement.
+
+ * bin/autoconf.as (autom4te_options): New var.
+ Use it instead of appending to AUTOM4TE, so that we can allow
+ spaces in the build directory's absolute name.
+ * bin/autoheader.in ($autoconf): Allow spaces in file names.
+ * lib/autotest/general.m4 (AT_INIT, AT_CLEANUP, _AT_CHECK,
+ AT_CHECK_NOESCAPE): Likewise.
+ * tests/wrapper.as (testdir, AUTOM4TE_CFG, autom4te_perllibdir,
+ main program): Likewise.
+
+2004-08-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/general.m4 (_AC_INIT_HELP): Quote $ac_popdir uses.
+ From Ralf Corsepius in:
+ http://lists.gnu.org/archive/html/autoconf-patches/2004-08/msg00014.html
+
+2004-08-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Function Portability): Document isinf and
+ and isnan. From a suggestion by Kevin Ryde.
+
+ * lib/Autom4te/General.pm (END): Return correct exit status even
+ if unlink succeeds and sets $?. Needed with Solaris 8's perl 5.00503.
+
+2004-08-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/torture.at (Deep Package): Use configure.in, not configure.ac,
+ for compatibility with Automake 1.4. Reported by J C Fitzgerald in
+ <http://lists.gnu.org/archive/html/bug-autoconf/2003-08/msg00051.html>.
+
+2004-08-04 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * lib/autoconf/general.m4 (AC_REQUIRE_AUX_FILE): New empty macro.
+ (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.
+
+2004-08-02 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * lib/autom4te.in (Automake-preselections): Preselect
+ AC_CANONICAL_BUILD and AC_CANONICAL_TARGET. Automake 1.9.1 will
+ trace them.
+
+2004-07-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/m4sugar/m4sh.m4 (_AS_BOURNE_COMPATIBLE): Set BIN_SH, for
+ Tru64.
+ * doc/autoconf.texi (Shellology): Mention BIN_SH.
+ Document problem with "`""`" in pdksh POSIX mode.
+
+2004-07-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/m4sugar/m4sh.m4 (_AS_BOURNE_COMPATIBLE): Use "set -o posix"
+ with pdksh, too. Problem reported by Patrick Welche via
+ Gary V. Vaughan.
+ * doc/autoconf.texi (Shellology): Note that set -o posix is
+ useful for pkdsh, too.
+
+2004-06-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Require
+ _AS_UNSET_PREPARE, so that we can use $as_unset directly.
+ Don't fail if ENV or BASH_ENV is readonly.
+ (AS_SHELL_SANITIZE): Don't fail if ENV, MAIL, MAILPATH, LC_ALL,
+ etc. are read only. Problem reported by Ludovic Courtes.
+
+2004-06-23 Noah Misch <noah@cs.caltech.edu>
+
+ * lib/m4sugar/m4sh.m4 (_AS_BOURNE_COMPATIBLE): If the shell is
+ zsh, disable GLOB_SUBST to avoid backslash handling problems.
+ (trivial change)
+
+2004-06-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (File System Conventions): Warn about
+ names like "aux". Problem reported by Eric Blake.
+
+ * lib/autoconf/c.m4 (AC_LANG_BOOL_COMPILE_TRY (C)): Use division
+ by zero instead of array size, so that we can use any arithmetic
+ constant expression (instead of requiring an integer constant
+ expression). This allows us to test expressions like DBL_MAX <
+ LDBL_MAX, which didn't conform to the C standard using the old
+ method.
+ (AC_C_LONG_DOUBLE): Put back in the tests for LDBL_MAX and LDBL_EPSILON,
+ now that we can do floating-point tests at compile time.
+
+2004-06-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/c.m4 (AC_C_LONG_DOUBLE): Don't check LDBL_MAX
+ and LDBL_EPSILON, as the resulting expression isn't an
+ integer constant expression and violates the C standard.
+ Problem reported by Nelson H. F. Beebe. Also, check
+ for "L" suffix, and check that long double doesn't have
+ worse range or precision than double, that mixed-mode
+ arithmetic doesn't generate a diagnostic, that double
+ constants fit in long double.
+
+2004-06-03 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (Function Portability): Add notes on free(NULL),
+ malloc(0) and realloc(NULL,size).
+
+ * doc/autoconf.texi (Shell Substitutions): Spelling error reported by
+ Bob Proulx.
+
+2004-05-31 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/autoconf/headers.m4 (HAVE_STDBOOL_H): Detect _Bool bug
+ in HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. Problem reported
+ by Jim Meyering.
+
+2004-05-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Builtins): Mention that ! COMMAND
+ can be rewritten using if-then-else. Suggested by Bruno Haible.
+
+2004-05-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (testsuite Scripts): Fix typo.
+ Problem reported by Stepan Kasal.
+
+2004-05-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/Makefile.am (autoconfdir): Fix to match comment (trivial
+ change). Patch reported by Ralf Wildenhues in
+ <http://mail.gnu.org/archive/html/bug-autoconf/2004-05/msg00092.html>.
+
+ * lib/autoconf/functions.m4 (AC_FUNC_MBRTOWC): Don't assume that a
+ function F exists if the compiler and linker let you compile an
+ expression like (F != 0). Recent versions of GCC optimize away
+ the reference to F in that case, since every function address must
+ be nonzero, so the link succeeds even if F does not exist.
+ Problem reported by Manu in
+ <http://mail.gnu.org/archive/html/bug-gnu-utils/2004-05/msg00060.html>.
+
+ * doc/autoconf.texi (Systemology): Standardize on the spelling of
+ "Unix". Many uses changed.
+ (Limitations of Builtins): Explain better why the ! command isn't
+ portable.
+
+2004-05-22 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * lib/autom4te.in (Automake-preselections): Preselect
+ LT_SUPPORTED_TAG in lieu of AC_LIBTOOL_TAGS.
+
+2004-05-19 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (Function Portability): Add strerror_r, cross
+ referencing AC_FUNC_STRERROR_R.
+
+ * doc/autoconf.texi (Particular Functions): In AC_FUNC_CLOSEDIR_VOID,
+ note pessimistic assumption when cross compiling.
+
+2004-05-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Limitations of Make): Note that BSD make
+ (until 2004) invoked subcommands with sh -e, contra POSIX.
+ Reported by Kevin Ryde.
+
+2004-05-10 Eric Sunshine <sunshine@sunshineco.com>
+
+ * programs.m4 (_AC_PROG_GREP): Fixed bug where PATH argument handed to
+ _AC_PATH_PROG_FEATURE_CHECK contained leading whitespace (i.e.
+ " $PATH:/usr/xpg4/bin"). This resulted in bogus tests, such as
+ `test -f " /usr/bin/grep"', which _always_ failed.
+ (AC_PROG_SED): Ditto bogus PATH fix.
+ * autoconf.texi (AC_PROG_GREP): Properly document that this macro
+ requires that grep correctly supports _multiple_ `-e' options, rather
+ than stating only that grep should accept `-e'.
+
+2004-05-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ Port to C99, which requires that 'exit' be declared.
+
+ * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Use AC_INCLUDES_DEFAULT
+ to ensure that stdlib.h is included.
+ * lib/autoconf/functions.m4 (_AC_LIBOBJ_ALLOCA, AC_FUNC_SETPGRP,
+ AC_FUNC_STRTOD, AC_FUNC_SETVBUF_REVERSED, AC_FUNC_FORK, _AC_FUNC_FORK,
+ _AC_FUNC_VFORK, AC_FUNC_WAIT3): Likewise.
+ * lib/autoconf/specific.m4 (AC_SYS_RESTARTABLE_SYSCALLS): Likewise.
+ * lib/autoconf/types.m4 (AC_TYPE_GETGROUPS): Likewise.
+ * lib/autoconf/headers.m4 (AC_HEADER_STDC): Include <stdlib.h>
+ when using 'exit' in a test; C99 requires that 'exit' be declared.
+
+2004-05-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/autoconf.texi (Particular Programs): AC_PROG_GREP
+ now prefers 'grep' implementations that accept -e.
+ (Limitations of Usual Tools): Describe problems of traditional
+ egrep and fgrep with long input lines, and of traditional grep
+ with -e.
+ * lib/autoconf/programs.m4 (AC_PROG_GREP): Check for -e, too.
+ (_AC_PROG_GREP): Assume 3rd arg is properly quoted for the shell.
+ All callers changed. Append /usr/xpg4/bin to the PATH, for
+ Solaris.
+ (_AC_FEATURE_CHECK_LENGTH): Discard stderr, so we don't bother
+ the user with complaints about multiple -e options.
+ * tests/local.at (AC_STATE_SAVE): Use $GREP, not grep.
+ Define it with AC_PROG_GREP.
+ * configure.ac (AC_PROG_GREP): Add.
+ * lib/freeze.mk (GREP): New macro.
+
+2004-05-02 Eric Sunshine <sunshine@sunshineco.com>
+
+ * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Consult $SHELL as
+ a possible candidate only after all others fail, rather than
+ consulting it first. This improves backward compatibility by
+ better reflecting the way shell selection occurred in previous
+ versions of Autoconf, and should help to avoid triggering latent
+ problems in other packages, such as the one in Automake where zsh
+ is not handled robustly:
+ http://mail.gnu.org/archive/html/automake/2004-04/msg00095.html
+ Although it is not Autoconf's responsibility to work around
+ problems in Automake, it nevertheless makes sense to avoid
+ introducing unnecessary incompatibilites.
+
+2004-04-22 Albert Chin-A-Young <china@thewrittenword.com>,
+ Gary V. Vaughan <gary@gnu.org>
+
+ * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH): Don't guess
+ 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.
+
+2004-04-21 Gary V. Vaughan <gary@gnu.org>
+
+ * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH): Break out
+ of the _AS_PATH_WALK loop too if GNU flavor is found.
+
+2004-04-21 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * doc/autoconf.texi (Limitations of Make): Update documentation
+ for `$<'. New entry `Long lines', based on a report from Simon
+ Josefsson. Augment the documentation for SHELL = @SHELL@ with a
+ paragraph about DJGPP, based on a mail from Richard Dawe.
+
+2004-04-20 Paul Eggert <eggert@twinsun.com>
+
+ * tests/c.at (C keywords): Don't assume that GCC supports
+ "restrict" and "inline", as sufficiently-old GCC versions do not
+ (also, GCC configured to be in pedantic C89 mode does not).
+ Problem reported by Sumit Pandya in:
+ http://mail.gnu.org/archive/html/autoconf/2004-04/msg00092.html
+
+ * lib/autoconf/c.m4 (_AC_PROG_CC_G, _AC_PROG_CXX_G): Don't
+ consider -g to work if it generates warnings when plain compiles
+ don't. Problem reported by Braden McDaniel in:
+ http://mail.gnu.org/archive/html/autoconf-patches/2003-07/msg00014.html
+
+ * doc/autoconf.texi (Slashes): New section, to document a problem
+ reported by Jim Meyering in:
+ http://mail.gnu.org/archive/html/bug-coreutils/2004-02/msg00060.html
+
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Remove potential
+ linker output files before linking, to work around IRIX 6 linker bug.
+ Problem reported by Rainer Orth in:
+ http://mail.gnu.org/archive/html/autoconf-patches/2004-02/msg00007.html
+
+2004-04-20 Gary V. Vaughan <gary@gnu.org>
+
+ * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH): Make the
+ 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.
+
+ * lib/autoconf/programs.m4 (_AC_PROG_GREP): Take an additional
+ 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$'.
+
+2004-04-20 Albert Chin-A-Young <china@thewrittenword.com>
+
+ * lib/autoconf/programs.m4 (AC_PROG_GREP): Cache variable
+ is `ac_cv_path_GREP', not `oc_cv_path_GREP'.
+
+2004-03-29 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Particular Headers, Particular Types, Generic
+ Types, Specific Compiler Characteristics, System Services,
+ Obsolete Macros): Use 'long int', 'short int', 'unsigned int'
+ etc. consistently instead of 'long', 'short', 'unsigned' etc.
+ * lib/autoconf/c.m4 (AC_LANG_INT_SAVE(C), AC_C_BIGENDIAN): Likewise.
+ * lib/autoconf/functions.m4 (AC_FUNC_MMAP, AC_FUNC_SELECT_ARGTYPES):
+ Likewise.
+ * lib/autoconf/headers.m4 (AC_HEADER_SYS_WAIT): Likewise.
+ * lib/autoconf/types.m4 (AC_TYPE_GETGROUPS, AC_TYPE_SIZE_T,
+ AC_TYPE_OFF_T): Likewise.
+ * tests/semantics.at (AC_CHECK_TYPES: backward compatibility):
+ Likewise.
+
+ * tests/foreign.at (Libtool): Create an empty aclocal.m4, to
+ pacify libtool 1.5.2. Fix quoting problems in sed command.
+
+2004-03-28 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Particular Structures): AC_STRUCT_TIMEZONE
+ now defines HAVE_DECL_TZNAME if it is declared, when
+ HAVE_STRUCT_TM_TM_ZONE is not defined.
+ * lib/autoconf/types.m4 (AC_STRUCT_TIMEZONE): Implement this.
+ Do not assume atoi. Rely on HAVE_DECL_TZNAME when testing
+ for HAVE_TZNAME.
+
+2004-03-28 Steven G. Johnson <stevenj@fftw.org>
+
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): Corrected
+ superfluous backslashing of quotes (") in sed expressions;
+ thanks to Paul Eggert.
+
+2004-03-26 Steven G. Johnson <stevenj@alum.mit.edu>
+
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC): new name of Intel
+ Fortran compiler is ifort, also added pghpf; thanks to Nelson
+ H. F. Beebe for the bug report.
+
+2004-03-26 Steven G. Johnson <stevenj@fftw.org>
+
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): fix for
+ quoted -cmdline argument in Portland Group compiler (bug
+ reported by Jeffrey J. Barteet).
+
+2004-03-25 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (Specifying Names): Move cross_compiling ovindex to
+ (Run Time): ... here, where it's now mentioned.
+
+2004-03-19 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * doc/autoconf.texi (autom4te Invocation): Language Autoconf
+ inherits from language Autoconf-without-aclocal-m4.
+ (Customizing autom4te): Adjust example; the cache must now be
+ disabled for language Autoconf-without-aclocal-m4.
+
+2004-03-16 Paolo Bonzini <bonzini@gnu.org>
+ Nathanael Nerode <neroden@twcny.rr.com>
+
+ * 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.
+
+2004-03-15 Paul Eggert <eggert@bogus.example.com>
+
+ * NEWS: New macro AC_CHECK_ALIGNOF.
+ * doc/autoconf.texi (Generic Compiler Characteristics): Document it.
+ * lib/autoconf/types.m4 (AC_CHECK_SIZEOF): Use long int rather than
+ int; avoid "a `$1'" since this isn't grammatical if $1 begins with a
+ vowel.
+ (AC_CHECK_ALIGNOF): New macro.
+ * tests/mktests.sh (ac_exclude_list): Exclude AC_CHECK_ALIGNOF.
+ * tests/semantics.at (AC_CHECK_ALIGNOF): Add tests similar to
+ those for sizeof.
+
+2004-03-03 Paul Eggert <eggert@twinsun.com>
+
+ * bin/Makefile.am (edit): Don't use $< in a context where
+ POSIX doesn't require support for it. Use $@.in instead.
+ Problem reported by Anthony N. Frasso in
+ <http://mail.gnu.org/archive/html/autoconf/2004-03/msg00008.html>.
+ * bin/autoscan.in, bin/autoupdate.in: Add @configure_input@ comment.
+
+2004-02-23 Gary V. Vaughan <gary@gnu.org>
+
+ * bin/autoreconf.in (autoreconf_current_directory): Recognize LT_INIT
+ from the next generation of Libtool.
+ * lib/autom4te.in (Autoreconf-preselections): Ditto.
+
+2004-02-20 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * doc/autoconf.texi (Limitations of Usual Tools) <mkdir>: `mkdir -p'
+ is not always thread-safe. Report from Nathanael Nerode.
+
+2004-02-18 Paul Eggert <eggert@twinsun.com>
+
+ Fix a dependencies problem, stemming from a Autoconf 2.59 build
+ problem on QNX reported by Stephen Rasku in
+ <http://mail.gnu.org/archive/html/bug-autoconf/2004-02/msg00066.html>.
+
+ * bin/Makefile.am ($(srcdir)/autoconf.in): Depend on
+ $(m4sh_m4f_dependencies); this removes a FIXME.
+ * tests/Makefile.am ($(srcdir)/wrapper.in): Likewise.
+ (MAINTAINERCLEANFILES): Split into pieces,
+ one per related section. Add $(srcdir)/wrapper.in.
+
+2004-02-09 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Setting Output Variables): Emphasize that
+ AC_SUBST provides no portable way to escape literal newlines.
+
+ * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS): Ignore all
+ flags of the form -lcrt*.o, not just -lcrt[01].o and -lcrtbegin.o.
+ Darwin uses -lcrt2.o and there's little point to cataloging all
+ the system variants. Partial fix reported by Andreas Waechter in:
+ http://mail.gnu.org/archive/html/autoconf-patches/2004-02/msg00006.html
+ for bug reported by Nelson H. F. Beebe in:
+ http://mail.gnu.org/archive/html/bug-autoconf/2003-12/msg00090.html
+
+2004-02-04 Paolo Bonzini <bonzini@gnu.org>
+
+ * doc/autoconf.texi (AU_DEFUN): Fix English,
+ suggested by Paul Eggert.
+ * lib/autoconf/autoupdate.m4: Correct reference to
+ acobsolete.m4, suggested by Alexandre Duret-Lutz.
+
+2004-02-02 Paolo Bonzini <bonzini@gnu.org>
+
+ * bin/autoupdate.in: Define __file__ so that warnings
+ 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).
+
+2004-01-30 Paolo Bonzini <bonzini@gnu.org>
+ Eric Sunshine <sunshine@sunshineco.com>
+ Paul Eggert <eggert@twinsun.com>
+
+ * lib/m4sugar/m4sh.m4 (M4SH-SANITIZE): New diversion.
+ (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.
+
+2004-01-30 Paolo Bonzini <bonzini@gnu.org>
+
+ * bin/autoupdate.in: Trace AU_DEFINE instead of AU_DEFUN.
+ * 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.
+
+2004-01-28 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Add 2004 to
+ copyright years.
+ * lib/autoconf/general.m4 (_AC_INIT_COPYRIGHT): Add 1992 thorugh
+ 2003 (except 1997) to the list of copyright years. This undoes
+ the 2003-05-22 change, which removed the older years from the list.
+ * lib/autoconf/status.m4 (AC_OUTPUT): Update copyright date to 2004.
+
+2004-01-27 Gary V. Vaughan <gary@gnu.org>
+ Albert Chin-A-Young <china@thewrittenword.com>
+
+ * lib/autoconf/programs.m4 (AC_PROG_GREP): New macro to test for a
+ 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.
+
+2004-01-27 Paul Eggert <eggert@twinsun.com>
+
+ * bin/autoconf.as ($version): Update copyright from 2003 to 2004.
+ * bin/autoheader.in, bin/autom4te.in, bin/autoreconf.in,
+ bin/autoscan.in, bin/autoupdate.in, bin/ifnames.in: Likewise.
+ * lib/autoconf/general.m4 (_AC_INIT_COPYRIGHT): Likewise.
+
+ * Makefile.in, aclocal.m4, configure, bin/Makefile.in,
+ bin/autoconf.in, config/Makefile.in, config/config.guess,
+ config/config.sub, config/install-sh, config/mdate-sh,
+ config/mkinstalldirs, config/texinfo.tex, doc/Makefile.in,
+ lib/Makefile.in, lib/Autom4te/Makefile.in,
+ lib/autoconf/Makefile.in, lib/autoscan/Makefile.in,
+ lib/autotest/Makefile.in, lib/emacs/Makefile.in,
+ lib/m4sugar/Makefile.in, man/Makefile.in, man/autoconf.1,
+ man/autoheader.1, man/autom4te.1, man/autoreconf.1,
+ man/autoscan.1, man/autoupdate.1, man/config.guess.1,
+ man/config.sub.1, man/ifnames.1, tests/Makefile.in,
+ tests/acc.at, tests/acfortran.at, tests/acfunctions.at,
+ tests/acgeneral.at, tests/acheaders.at, tests/aclang.at,
+ tests/aclibs.at, tests/acspecific.at, tests/acstatus.at,
+ tests/actypes.at: Regenerate and/or sync with original
+ sources.
+
+2004-01-26 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Default Includes): Include <stdint.h> even if
+ HAVE_INTTYPES_H is defined. This is needed on Tru64 5.1b with
+ Compac C V6.5-207 (dtk), which defines uintmax_t in <stdint.h> but
+ not <inttypes.h>. Problem reported by Tim Mooney in
+ <http://mail.gnu.org/archive/html/bug-coreutils/2004-01/msg00147.html>.
+ * lib/autoconf/headers.m4 (_AC_INCLUDES_DEFAULT_REQUIREMENTS):
+ Likewise.
+
+ * lib/autoconf/programs.m4 (AC_PROG_SED): Use diff, not sed;
+ otherwise "make check" fails because it forbids cmp (I guess
+ because cmp treats files as binary on DOS-like systems).
+
+ * tests/mktests.sh: Update copyright date to 2004, since some tests
+ have changed in 2004.
+
+2004-01-23 Gary V. Vaughan <gary@gnu.org>
+
+ * lib/autoconf/programs.m4 (AC_PROG_SED): New macro to test for a
+ non-truncating sed or gsed program in PATH.
+ * tests/acprograms.at: Add it.
+ * doc/autoconf.texi (Particular Programs): Document it.
+ * NEWS: Updated.
+
+2004-01-15 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/c.m4 (_AC_PROG_CC_STDC): Try -std, not -std1, since
+ -std1 disables some useful extensions on Tru64. Problem reported
+ by N. Lichtmaier in
+ <http://mail.gnu.org/archive/html/autoconf/2004-01/msg00100.html>.
+
+2004-01-14 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Programming in M4sh): Document that
+ AS_MKDIR_P succeeds if the destination is a symbolic link
+ to an existing directory.
+ (Limitations of Usual Tools): Note that mkdir -p might not
+ succeed on symlinks to directories.
+
+2004-01-13 Paul Hilfinger <hilfinger@CS.Berkeley.EDU>
+
+ * lib/autoconf/autoupdate.m4 (AU_DEFUN): Grammar fix in comment.
+ * bin/autoheader.in: Grammar fix in message.
+ * lib/m4sugar/m4sh.m4 (AS_MKDIR_P):
+ Test for dir before calling mkdir -p. (trivial changes)
+
+2004-01-13 Eric Blake <ebb9@byu.net>
+
+ * doc/autoconf.texi (Obsolete Macros): In AC_TRY_COMPILE and
+ AC_TRY_LINK, s/AC_LANG_SOURCE/AC_LANG_PROGRAM/. (trivial change)
+
+2004-01-10 Jim Meyering <jim@meyering.net>
+
+ * doc/autoconf.texi (Running the Preprocessor): Correct grammar.
+
+2004-01-09 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/general.m4: Fix bug: AC_CHECK_SIZEOF evokes a warning
+ with `autoconf -Wall,error'. Bug reported by Eric Blake in:
+ http://mail.gnu.org/archive/html/autoconf-patches/2004-01/msg00000.html
+ (_AC_COMPUTE_INT_COMPILE): Invoke _AC_COMPILE_IFELSE, not
+ AC_COMPILE_IFELSE, since we now assume our caller invokes
+ AC_LANG_COMPILER_REQUIRE, for symmetry with _AC_COMPUTE_INT_RUN.
+ (_AC_COMPUTE_INT_RUN): Likewise, for _AC_RUN_IFELSE instead
+ of AC_RUN_IFELSE; this avoids the warning mentioned above.
+ (_AC_COMPUTE_INT): Invoke AC_LANG_COMPILER_REQUIRE.
+
+2004-01-07 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/general.m4 (_AC_LIBOBJS_NORMALIZE): Avoid \$ inside
+ `"'...'"`, as it's confusing (and I suspect it may not work on
+ some platforms). The code was incorrect anyway, as it assumed
+ that \$ evaluated to itself in that context. Reported by
+ Alexandre Duret-Lutz.
+
+2004-01-07 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * lib/autom4te.in (Automake-preselections): Preselect AC_LIBTOOL_TAGS
+ and _LT_AC_TAGCONFIG.
+
+2004-01-06 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (One Macro Call): Fix an incorrect
+ example, and add more examples. Reported by Eric Sunshine.
+
+2004-01-05 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Limitations of Usual Tools):
+ Remove warning against "rm -fr" introduced yesterday; it
+ was a false alarm.
+
+ * bin/Makefile.am (autoconf, autoheader, autom4te, autoreconf,
+ autoscan, autoupdate, ifnames): Don't use chmod -w.
+ * lib/Makefile.am (autom4te.cfg): Likewise.
+ * doc/autoconf.texi (Limitations of Usual Tools): Warn against
+ "chmod -w".
+
+2004-01-04 Paul Eggert <eggert@twinsun.com>
+ Paolo Bonzini <bonzini@gnu.org>
+
+ * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Speed up sed scripts
+ by doing lineno substitution only on lines containing "$LINENO".
+
+2004-01-04 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/general.m4 (AC_ARG_PROGRAM):
+ Use "rm -f" to remove conftest.sed, not plain "rm".
+ Bug reported by David Relson in
+ <http://mail.gnu.org/archive/html/autoconf/2004-01/msg00011.html>.
+
+ * Makefile.am (autom4te-update):
+ Replace "rm -rf" and "rm -fr" with "rm -f -r", as POSIX requires.
+ * Makefile.maint (my-distcheck, do-po-update): Likewise.
+ * doc/autoconf.texi (Guidelines): Likewise.
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Likewise.
+ * lib/autoconf/libs.m4 (_AC_PATH_X_XMKMF): Likewise.
+ * lib/autoconf/specific.m4 (AC_SYS_LONG_FILE_NAMES): Likewise.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+ * lib/m4sugar/m4sh.m4 (AS_TMPDIR): Likewise.
+ * tests/Makefile.am (clean-local): Likewise.
+ * tests/tortue.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS,
+ srcdir): Likewise.
+ * doc/autoconf.texi (Limitations of Usual Tools):
+ Warn against "rm -fr".
+
+2004-01-03 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Mention that cc
+ -c -o might not work. From a suggestion by Kevin Ryde.
+ (C Compiler, Generating Sources, Limitations
+ of Usual Tools, Limitations of Make, Making testsuite Scripts):
+ Don't put '-o' after non-options, as POSIX doesn't allow this.
+ Mention that cc's name might be gcc or c89 or whatever.
+
+2004-01-04 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi: Add various further index entries.
+
+2003-12-29 Paul Eggert <eggert@twinsun.com>
+
+ * bin/autoreconf.in (autoreconf_current_directory):
+ Fix typo: mkdir without umask arg.
+
+2003-12-27 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * doc/autoconf.texi (Limitations of Make) <Automatic rule rewriting>:
+ Documents OSF1/Tru64 make behavior. Replace `VPATH = ../src' by
+ `VPATH = ../pkg/src' in examples to make the OSF1/Tru64 make
+ explanation clearer.
+
+2003-12-24 Andreas Schwab <schwab@suse.de>
+
+ * doc/autoconf.texi (Default Includes): Fix misspelling of
+ AC_INCLUDES_DEFAULT.
+
+2003-12-03 Paolo Bonzini <bonzini@gnu.org>
+
+ * configure.ac: Test if sh -n works.
+ * configure: Regenerate.
+ * tests/atlocal.in: Store the result here.
+ * tests/local.at (AT_CHECK_SHELL_SYNTAX): Extracted from
+ tools.at, looking in atlocal's ac_cv_sh_n_works instead
+ of explicitly testing.
+ (AT_CHECK_PERL_SYNTAX): Moved from tools.at.
+ (AT_CHECK_AUTOCONF): Test for the configure script syntax.
+ * tests/tools.at (Syntax of the shell scripts): Simplify
+ using AT_CHECK_SHELL_SYNTAX.
+ (Syntax of the Perl scripts): Remove definition of
+ AT_CHECK_PERL_SYNTAX.
+
+2003-12-03 Paolo Bonzini <bonzini@gnu.org>
+
+ * lib/m4sugar/m4sh.m4 (_AS_SHELL_FN_WORK): Redirect
+ stderr to /dev/null.
+ * bin/autoconf.in: Regenerate.
+ * bin/wrapper.in: Regenerate.
+
+2003-11-26 Paolo Bonzini <bonzini@gnu.org>
+
+ * 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.
+
+2003-11-24 Akim Demaille <akim@epita.fr>
+
+ * config/announce-gen (&print_locations, &print_signatures)
+ (&sizes): New.
+ Use them.
+ No longer rely on Gnus to inline the list of signatures: compute
+ them on the fly.
+
+2003-11-24 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Particular Programs): AC_PROG_LEX can
+ override some files.
+ (Input): AC_CONFIG_AUX_DIR(aux) is a bad idea on DOS.
+ From Debian Autoconf 2.58.
+
+2003-11-24 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): Quote $ac_popdir
+ uses.
+ From Debian Autoconf 2.58.
+
+2003-11-24 Paolo Bonzini <bonzini@gnu.org>
+
+ * 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.
+
+2003-11-17 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Put at least 14 bytes
+ into the initial confdefs.h, to work around a bug in NextStep 3.3
+ patch 3 reported by Eric Sunshine.
+
+2003-11-15 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (Using System Type): Revise, showing $host rather
+ than $target since the latter is not usual, add guidelines on when to
+ use or not use the system type.
+
+2003-11-12 Derek Price <derek@ximbiot.com>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Fix what looks like a
+ typo misrepaired by an auto-spellcheck.
+
+2003-11-12 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.in (&parse_args): Don't call automake with
+ --force-missing unless it actually supports it.
+ From Debian #219336.
+
+2003-11-12 Akim Demaille <akim@epita.fr>
+
+ * configure.ac: Bump to 2.59a.
+ Require 2.59.
+
+2003-11-06 Akim Demaille <akim@epita.fr>
+
+ Version 2.59.
+
+2003-11-05 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * lib/autoconf/status.m4 (_AC_SRCPATHS): Fix use of AS_SET_CATFILE
+ 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.
+
+2003-11-05 Akim Demaille <akim@epita.fr>
+
+ * configure.ac: Bump to 2.58a.
+
+2003-11-05 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (Using Autotest): Avoid @strong{Note: ...}, since
+ it provokes a warning from makeinfo about looking like a cross
+ reference in info output.
+
+ * doc/autoconf.texi (Function Portability): Add notes on signal
+ handler return type, as per AC_TYPE_SIGNAL.
+
+2003-11-04 Akim Demaille <akim@epita.fr>
+
+ Version 2.58.
+ * doc/standards.texi: Update from master.
+
+ * tests/mktests.sh (ac_exclude_list): Add AC_FC_FREEFORM.
+
+2003-11-04 Akim Demaille <akim@epita.fr>
+
+ AC_CONFIG_FILE([d1/foo:d2/foo]) triggers error messages when
+ 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.
+
+2003-11-03 Pavel Roskin <proski@gnu.org>
+
+ * doc/autoconf.texi (Generic Structure Checks): Describe
+ action-if-found and action-if-not-found in AC_CHECK_MEMBERS.
+
+2003-10-31 Akim Demaille <akim@epita.fr>
+
+ * tests/fortran.at (GNU Fortran 77): Don't run FC macros.
+ (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.
+
+2003-10-31 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (&freeze): Use a less likely warning separator
+ than `\n\n', so that `\n\n\n' is valid in warnings.
+ Reported by Steve Huston.
+
+2003-10-28 Akim Demaille <akim@epita.fr>
+
+ * Makefile.cfg (local_updates, executable-update): Tweak to be
+ robust to parallel makes.
+ Suggested by Alexandre Duret-Lutz.
+
+2003-10-27 Akim Demaille <akim@epita.fr>
+
+ * Makefile.cfg (executable-update): New.
+ (local_updates): Call it.
+
+2003-10-27 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_AC_RUN_IFELSE, _AC_INIT_PREPARE):
+ Don't remove core.* as it may remove valid user files.
+ * lib/autoconf/functions.m4 (AC_FUNC_SETVBUF_REVERSED)
+ (AC_FUNC_UTIME_NULL): Likewise.
+
+2003-10-23 Akim Demaille <akim@epita.fr>
+
+ Version 2.57g.
+ * config/config.guess, config/config.sub: Upgrade from masters.
+
+2003-10-23 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/fortran.m4 (AC_FC_SRCEXT): Functions using
+ AC_COMPILE_IFELSE that use break skip the clean up. So do it by
+ hand...
+
+2003-10-23 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_AC_LINK_IFELSE, _AC_COMPILE_IFELSE):
+ Don't forget to remove conftest.err.
+
+2003-10-23 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_AC_LIBOBJ): Don't insert twice the
+ same object file in $LIBOBJS.
+ Reported by Alexandre Duret-Lutz & Derek Robert Price.
+ * doc/autoconf.texi (Generic Functions): Adjust.
+
+2003-10-20 Paul Eggert <eggert@twinsun.com>
+
+ * lib/m4sugar/m4sh.m4 (_AS_TR_SH_PREPARE, _AS_TR_CPP_PREPARE):
+ Use 'eval', so that the resulting configure scripts work even if
+ the current directory has a weird file name like 'y%s+%pp%;s%@%_%g'.
+
+2003-10-20 Daniel Jacobowitz <drow@mvista.com>
+
+ * lib/autoconf/lang.m4 (AC_LANG_WERROR): New macro.
+ * lib/autoconf/general.m4 (_AC_COMPILE_IFELSE, _AC_PREPROC_IFELSE)
+ (_AC_LINK_IFELSE): Check the werror flag.
+ * doc/autoconf.texi (Generic Compiler Characteristics): Document
+ AC_LANG_WERROR.
+ * NEWS: Mention it.
+
+2003-10-20 Daniel Jacobowitz <drow@mvista.com>
+
+ * lib/autoconf/lang.m4 (AC_NO_EXECUTABLES): Override
+ _AC_COMPILER_EXEEXT to attempt a link. If linking fails,
+ override AC_LINK_IFELSE.
+
+2003-10-15 Paul Eggert <eggert@twinsun.com>
+
+ * lib/m4sugar/m4sh.m4 (_AS_UNSET_PREPARE): Work around a bug in
+ pdksh 5.2.14. Bug reported by Ralf Corsepius.
+ * doc/autoconf.texi (Shellology): Mention the Korn shell and pdksh.
+ Mention /usr/dt/bin/dtksh on Solaris.
+ (Shell Substitutions): Warn about $((...)).
+ (Parentheses): New section.
+
+2003-10-15 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (Function Portability): Add @prindex for exit.
+ Add putenv and unsetenv. Add sysconf _SC_PAGE_SIZE.
+
+2003-10-13 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_FORK): Trivial fix for vfork
+ cross test.
+
+2003-10-11 Steven G. Johnson <stevenj@alum.mit.edu>
+
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC): Use the new official
+ name for the GNU Fortran 95+ compiler, 'gfortran', not 'g95'.
+
+2003-10-10 Andreas Schwab <schwab@suse.de>
+
+ * bin/autoheader.in: Avoid empty first line in --version and
+ --help output.
+ * bin/ifnames.in: Likewise.
+
+2003-10-09 Paul Eggert <eggert@twinsun.com>
+
+ * lib/Autom4te/XFile.pm: Don't assume -j is solo.
+ Issue a more-informative diagnostic.
+ Problems reported by Eric Sunshine.
+
+2003-10-08 Steven G. Johnson <stevenj@alum.mit.edu>
+
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): Omit quoted
+ -mGLOB_options_string stuff for Intel ifc, which can cause
+ _AC_FC_LIBRARY_LDFLAGS to fail. Use (faster) case for
+ pattern-matching instead of grep.
+
+2003-10-08 Steven G. Johnson <stevenj@alum.mit.edu>
+
+ * doc/autoconf.texi: Document new FC Fortran macros.
+
+2003-10-08 Gary V. Vaughan <gary@gnu.org>
+
+ * lib/autoconf/general.m4 (AC_CONFIG_MACRO_DIR): Stub out a macro
+ 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.
+
+2003-10-06 Gary V. Vaughan <gary@gnu.org>
+
+ * lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS): Add
+ -lcrtbegin.o to list of ignored flags and fix underquoting of
+ -lcrt[01].o.
+
+2003-10-04 Steven G. Johnson <stevenj@ab-initio.mit.edu>
+
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC_G): Use language-specific
+ cache variable instead of $G77 to decide whether to include -O2,
+ since $G77 is specific to Fortran 77.
+
+2003-10-03 Steven G. Johnson <stevenj@alum.mit.edu>
+
+ * lib/autoconf/fortran.m4 (AC_FC_FREEFORM): Support Absoft "-f
+ free" flag. Re-order flags tested into rough order of popularity.
+
+2003-10-03 Steven G. Johnson <stevenj@alum.mit.edu>
+
+ * lib/autoconf/fortran.m4 (AC_PROG_FC): Reverse the order of the
+ arguments so that it can be used with syntax identical to
+ AC_PROG_F77, and so that we can more easily decide to
+ remove/deprecate the DIALECT optional argument in the future if it
+ proves troublesome.
+ (AC_FC_FREEFORM): Exit 77 upon failure to fix test suite for
+ non-freeform-supporting compilers. Document freeform flags.
+
+2003-10-03 Akim Demaille <akim@epita.fr>
+
+ * configure.ac: Look for emacs, not macs.
+ Reported by Eric Sunshine.
+
+2003-10-03 Akim Demaille <akim@epita.fr>
+
+ * lib/autom4te.in (Autoreconf-preselections): Trace AC_CONFIG_AUX_DIR.
+ * bin/autoreconf.in (autoreconf_current_directory): Create the
+ AUX_DIR if needed, for sake of automake --add-missing etc.
+ Suggested by Alexandre Duret-Lutz.
+
+2003-10-03 Akim Demaille <akim@epita.fr>
+
+ * configure.ac: Quotation and formatting changes.
+ (EMACS): Don't set it if it is not recent enough to support
+ autoconf-mode.el.
+ From Eric Sunshine.
+
+2003-10-02 Akim Demaille <akim@epita.fr>
+
+ * bin/ifnames.in (&scan_file): Skip C++ comments.
+ From Jeremy Yallop.
+
+2003-10-01 Pavel Roskin <proski@gnu.org>
+
+ * doc/autoconf.texi (Particular Structure Checks):
+ Fix misspelling of HAVE_STRUCT_STAT_ST_BLOCKS.
+
+2003-10-01 Akim Demaille <akim@epita.fr>
+
+ Version 2.57f.
+
+2003-09-30 Paul Eggert <eggert@twinsun.com>
+
+ * lib/Autom4te/XFile.pm: Use Errno.
+ (lock): Ignore ENOLCK errors. Problem reported Andreas Schwab in
+ <http://mail.gnu.org/archive/html/bug-autoconf/2003-09/msg00141.html>.
+
+2003-09-30 Akim Demaille <akim@epita.fr>
+
+ * config/announce-gen (&print_news_deltas): Extracted from...
+ (&print_changelog_deltas): here.
+ (&news_file): Rename as...
+ (@news_file): this.
+
+2003-09-30 Nicolas Joly <njoly@pasteur.fr>
+
+ * lib/autoconf/fortran.m4 (_AC_PROG_FC): Remove files which might
+ have been created when invoking the compiler.
+ * tests/fortran.at (GNU Fortran 77): Quote $G77.
+
+2003-09-29 Akim Demaille <akim@epita.fr>
+
+ Version 2.57e.
+
+ * config/mkinstalldirs: Upgrade.
+
+2003-09-28 Paul Eggert <eggert@twinsun.com>
+
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Set DUALCASE=1, for MKS sh.
+ Problem reported by Lars J. Aas in
+ <http://mail.gnu.org/archive/html/autoconf/2003-07/msg00042.html>.
+ (_AS_MKDIR_P_PREPARE): Change "rm -fr ./-p" to the more-conservative
+ "test -d ./-p && rmdir ./-p". Suggested by Andreas Schwab in:
+ http://mail.gnu.org/archive/html/autoconf-patches/2003-09/msg00039.html
+
+2003-09-26 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_COMMANDS): Make sure the
+ 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.
+
+2003-09-26 Akim Demaille <akim@epita.fr>
+
+ * bin/autoscan.in (Autom4te::FileUtils): Use it for find_file.
+ Reported by Ralf Corsepius.
+
+2003-09-26 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (AC_HELP_STRING): Don't overquote the
+ arguments.
+ Actually, use AU_ALIAS.
+ From Bruno Haible.
+
+2003-09-26 Paul Eggert <eggert@twinsun.com>
+
+ * lib/m4sugar/m4sh.m4 (_AS_MKDIR_P_PREPARE): If mkdir -p . fails,
+ rm -fr ./-p to remove junk left behind on NextStep and OpenStep.
+ Problem reported by Eric Sunshine in:
+ http://mail.gnu.org/archive/html/autoconf-patches/2002-12/msg00014.html
+
+2003-09-26 Akim Demaille <akim@epita.fr>
+
+ The test suite are sometimes assigning timings incorrectly.
+ Reported by Henk Krus.
+ 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.
+
+2003-09-25 Akim Demaille <akim@epita.fr>
+
+ Version 2.57d.
+
+ * bin/Makefile.am (edit): Handle '@configure_input@'.
+ (autoconf, autoheader, autom4te, autoreconf, autoscan, autoupdate)
+ (ifnames): chmod -w.
+ * tests/wrapper.as (AUTOCONF, AUTOM4TE, ): Point to tests/
+ executables, not bin/ executables! Otherwise all the magic needed
+ to find non installed files is turned off. This caused a failure
+ of test 40 and 41 that ran aclocal 1.8 which in turn ran autom4te
+ as found in its environment (sent by tests/autoreconf): pointing
+ to bin/autom4te that could not find its files.
+ * tests/mktests.sh: Force the replacement of generated files, for
+ the sake of "mv" program that are interactive when overwriting a
+ -w file.
+ * config/install-sh: Upgrade from CVS Automake.
+
+2003-09-23 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Limitations of Builtins): Document test -h
+ versus test -L issues.
+
+2003-09-23 Daniel Jacobowitz <drow@mvista.com> and
+ Paul Eggert <eggert@twinsun.com>
+
+ Trivial change to support GCC's configuration procedure.
+ * lib/autoconf/c.m4 (AC_PROG_CPP_WERROR): New macro.
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL): Don't warn
+ about inconsistency if the preprocessor is set to give errors for
+ any warning.
+ * doc/autoconf.texi (C Compiler Characteristics): Document this.
+
+2003-09-13 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * Makefile.am (autom4te-update, autom4te_files): Fetch Struct.pm
+ and XFile.pm from Automake.
+ * lib/Autom4te/XFile.pm: Update from Automake.
+
+2003-09-12 Akim Demaille <akim@epita.fr>
+
+ Version 2.57c.
+
+2003-09-12 Akim Demaille <akim@epita.fr>
+
+ * config/config.guess, config/config.sub, config/missing,
+ * lib/Autom4te/Channels.pm, lib/Autom4te/Configure_ac.pm: Update
+ from masters.
+
+2003-09-12 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Header Portability): Promote linux/types.h,
+ not asm/types.h.
+
+2003-09-11 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Header Portability): linux/random.h.
+ From Peter Hendrickson.
+
+2003-09-10 Akim Demaille <akim@epita.fr>
+
+ * tests/mktests.sh (au_exclude_egrep): Make it harder to be
+ willing to edit the output files.
+
+2003-09-10 Akim Demaille <akim@epita.fr>
+
+ * tests/fortran.at (GNU Fortran 77): Also exercise AC_FC_SRCEXT
+ and AC_FC_FREEFORM.
+ * tests/mktests.sh: Skip AC_FC_SRCEXT.
+ * lib/autoconf/fortran.m4 (AC_FC_SRCEXT, AC_FC_FREEFORM): Likewise.
+
+2003-09-09 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/FileUtils.pm (&update_file): s/cannot not/cannot/g.
+ Reported by Gary Vaughan.
+ * bin/autom4te.in (handle_m4): Likewise.
+
+2003-09-09 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/FileUtils.pm (&update_file): Be sure not to leave
+ trailing files.
+
+2003-09-07 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/specific.m4 (AC_SYS_RESTARTABLE_SYSCALLS):
+ Improve the accuracy of the wording about obsolescence.
+ From a suggestion by Ian Lance Taylor in
+ <http://mail.gnu.org/archive/html/autoconf/2003-09/msg00044.html>.
+
+2003-09-05 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/fortran.m4 (AC_FC_FREEFORM): Try -ffree-form too,
+ for the benefit of g77 3.2. Fix suggested by Steven G. Johnson.
+
+2003-09-04 Akim Demaille <akim@epita.fr>
+
+ * tests/mktests.sh (ac_exclude_list): Fix the filtering of
+ AC_FUNC_WAIT3.
+
+2003-09-04 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in: Use &fatal where more appropriate than &error.
+ (freeze): When exiting, use $exit_code.
+ * lib/autoconf/fortran.m4: Comment changes.
+
+2003-09-04 Akim Demaille <akim@epita.fr>
+
+ * tests/mktests.sh (ac_exclude_list): Add AC_FC_FUNC.
+
+2003-09-02 Steven G. Johnson <stevenj@alum.mit.edu>
+
+ Add support for newer Fortran dialects. The F77 interface is
+ unchanged, and continues to support Fortran 77. New FC macros
+ correspond to all the old F77 macros, with output variables FC,
+ FCFLAGS, and FCLIBS. AC_PROG_FC defaults to picking the newest
+ available dialect, but older dialects can be specified. There are
+ new macros AC_FC_SRCEXT to set the source extension, and
+ AC_FC_FREEFORM to accept free-form source files.
+
+ * lib/autoconf/c.m4 (_AC_LANG_PREFIX(C), _AC_LANG_PREFIX(C++)):
+ New macros.
+ (AC_LANG_PROGRAM(C)): Invoke _AC_LANG_PROGRAM_C_FC_HOOKS if defined.
+ * lib/autoconf/fortran.m4 (AC_LANG(Fortran), _AC_FORTRAN_ASSERT,
+ _AC_LANG_ABBREV(Fortran), _AC_LANG_PREFIX(Fortran 77),
+ _AC_LANG_PREFIX(Fortran), _AC_FC, AC_LANG_SOURCE(Fortran),
+ AC_LANG_PROGRAM(Fortran), AC_LANG_CALL(Fortran),
+ AC_LANG_PREPROC(Fortran), AC_LANG_COMPILER(Fortran),
+ _AC_FC_DIALECT_YEAR, _AC_F95_FC, _AC_F90_FC, _AC_F77_FC,
+ _AC_PROG_FC, AC_PROG_FC, _AC_PROG_FC_G, _AC_PROG_FC_C_O,
+ AC_PROG_FC_C_O, _AC_PROG_FC_V_OUTPUT, _AC_PROG_FC_V,
+ _AC_FC_LIBRARY_LDFLAGS, AC_FC_LIBRARY_LDFLAGS, _AC_FC_DUMMY_MAIN,
+ AC_FC_DUMMY_MAIN, _AC_FC_MAIN, AC_FC_MAIN, __AC_FC_NAME_MANGLING,
+ _AC_FC_WRAPPERS, AC_FC_WRAPPERS, _AC_FC_FUNC, AC_FC_FUNC,
+ AC_FC_SRCEXT, AC_FC_FREEFORM):
+ New macros.
+ (AC_PROG_F77, AC_PROG_F77_C_O, AC_F77_LIBRARY_LDFLAGS,
+ AC_F77_DUMMY_MAIN, AC_F77_MAIN, _AC_F77_NAME_MANGLING,
+ AC_F77_NAME_MANGLING, AC_F77_WRAPPERS, AC_F77_FUNC):
+ Rewrite in terms of the above.
+ (_AC_PROG_F77_G, _AC_PROG_F77_V_OUTPUT, _AC_PROG_F77_V): Remove.
+ * lib/autoconf/lang.m4 (_AC_LANG_PREFIX): New macro.
+ * tests/acfortran.at: Test AC_FC_FREEFORM, AC_FC_FUNC,
+ AC_FC_MAIN, AC_FC_SRCEXT, AC_FC_WRAPPERS, AC_PROG_FC_C_O.
+
+2003-09-02 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Limitations of Usual Tools, Limitations of Make):
+ Document problems with timestamp resolution that 'make', 'cp -p', and
+ 'touch -r' have.
+
+2003-08-27 Akim Demaille <akim@epita.fr>
+
+ * tests/m4sugar.at (cross_warning): Make sure to enable the
+ 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.
+
+2003-08-27 Akim Demaille <akim@epita.fr>
+
+ * bin/autoheader.in: Issue the "Using auxiliary..." message only
+ when -Wobsolete is set.
+ Set it on by default.
+ Suggested by Klee Dienes.
+
+2003-08-27 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (AC_FUNC_FSEEKO, AC_SYS_LARGEFILE): More
+ documentation.
+ From Guido Draheim.
+
+2003-08-26 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Output): Make clear that one can run code
+ after AC_OUTPUT.
+
+2003-08-25 Akim Demaille <akim@epita.fr>
+
+ * config/announce-gen, GNUmakefile, Makefile.maint: Update from
+ CVS Bison.
+
+2003-08-25 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * bin/autoreconf.in (parse_args): Do not pass --no-force to
+ Automake versions prior to 1.8.
+
+2003-08-25 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Header Portability): netinet/if_ether.h.
+ From Ville Karaila.
+
+2003-08-24 Akim Demaille <akim@epita.fr>
+
+ * configure.ac: Bump to 2.57c.
+
+2003-08-22 Akim Demaille <akim@epita.fr>
+
+ Version 2.57b.
+
+ * Makefile.cfg (local-checks-to-skip): New.
+ * Makefile.maint (local-check): Rename as...
+ (local-checks-available): this.
+ (local-check): New.
+
+ * Makefile.am (EXTRA_DIST): Add Makefile.cfg.
+ * configure.ac: Require Automake 1.7.6.
+
+2003-08-22 Akim Demaille <akim@epita.fr>
+
+ Output stack traces in warnings.
+
+ * lib/m4sugar/m4sugar.m4 (_m4_warn): New.
+ Replace the former...
+ (m4_warn): Pass the call stack to _m4_warn.
+ * bin/autom4te.in: Adjust to output the call stack.
+ * tests/m4sugar.at (m4@&t@_warn): Adjust.
+
+2003-08-22 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/Request.pm, lib/Autom4te/C4che.pm: New.
+ * bin/autom4te.in: Adjust.
+
+2003-08-21 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/General.pm (&file_name_is_absolute): Remove.
+ (&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.
+
+2003-08-21 Akim Demaille <akim@epita.fr>
+
+ * bin/autoheader.in (&parse_args): Use &parse_warnings and
+ &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.
+
+2003-08-21 Akim Demaille <akim@epita.fr>
+
+ First stab at preserving warnings between calls to autom4te,
+ 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.
+
+2003-08-21 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.pm (Autom4te::Channels, Autom4te::ChannelDefs):
+ Use them.
+
+2003-08-21 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/FileUtils.pm (&find_file): Walk the @include in
+ 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.
+
+2003-08-21 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/Configure_ac.pm (&find_configure_ac)
+ (&require_configure_ac): Accept an optional directory argument.
+ ($configure_ac): Remove.
+ * lib/Autom4te/General.pm (&find_configure_ac, &canonfile)
+ (&catfile): Remove.
+ * bin/autoheader.in, bin/autoreconf.in, bin/autoupdate.in,
+ * bin/autoscan.in: Adjust.
+
+2003-08-20 Akim Demaille <akim@epita.fr>
+
+ * bin/autoheader.in: Remove duplicate 'use Autom4te::FileUtils'.
+ Reported by Alexandre Duret-Lutz.
+
+2003-08-20 Akim Demaille <akim@epita.fr>
+
+ * bin/autoupdate.in, bin/autoheader.in, bin/autoreconf.in,
+ * 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.
+
+2003-08-20 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/Channels.pm, lib/Autom4te/ChannelDefs.pm
+ * lib/Autom4te/Configure_ac.pm, lib/Autom4te/FileUtils.pm: New,
+ from CVS Automake.
+
+2003-08-20 Akim Demaille <akim@epita.fr>
+
+ * Makefile.am (automake_cvsweb, automake_cvsargs, autom4te_files)
+ (autom4te-update): New.
+ * Makefile.cfg (update): Bind autom4te-update.
+
+2003-08-19 Derek Price <derek@ximbiot.com>
+
+ * lib/autotest/general.m4: Comment various HELP_* diversions.
+ (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.
+
+2003-08-19 Akim Demaille <akim@epita.fr>
+
+ * config/announce-gen, Makefile.cfg: New.
+ * Makefile.am: Adjust.
+ * GNUmakefile, Makefile.maint: Update from CVS Coreutils.
+
+2003-08-19 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * lib/autom4te.in (Automake-preselections): Preselect
+ AC_CONFIG_LIBOBJ_DIR, AC_CONFIG_LINKS, m4_include,
+ and m4_sinclude.
+
+2003-08-19 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * lib/autom4te.in (Autoconf): Move all args except aclocal.m4? into ...
+ (Autoconf-without-aclocal-m4): ... this new language.
+ * doc/autoconf.texi (autom4te Invocation): Mention
+ Autoconf-without-aclocal-m4.
+
+2003-08-18 Derek Price <derek@ximbiot.com>
+
+ * doc/autoconf.texi (Writing testsuite.at): Document RUN-IF-FAIL &
+ RUN-IF-PASS optional arguments.
+
+2003-08-18 Derek Price <derek@ximbiot.com>
+
+ * doc/autoconf.texi (Programming in M4sh): Add doc for AS_IF.
+
+2003-08-16 Derek Price <derek@ximbiot.com>
+
+ * doc/autoconf.texi (Writing testsuite.at): Document defaults for
+ STDOUT & STDERR arguments.
+
+2003-08-14 Derek Price <derek@ximbiot.com>
+
+ * lib/autotestgeneral.m4 (AT_INIT): Reformat test summary line to print
+ DESCRIPTION rather than FILE and LINE. Shorten result to fit in new,
+ shorter column three. Add DESCRIPTION to log file content.
+
+2003-08-13 Derek Price <derek@ximbiot.com>
+
+ * lib/autotest/general.m4 (AT_INIT): Correct typo in final status
+ output.
+
+2003-08-12 Derek Price <derek@ximbiot.com>
+
+ * lib/autotest/general.m4 (AT_CHECK): Use new _AT_CHECK API.
+ (AT_CHECK_NOESCAPE): Move core functionality to...
+ (_AT_CHECK): ...this new macro.
+
+2003-08-07 Derek Price <derek@ximbiot.com>
+
+ * lib/autotest/general.m4 (AT_CHECK): Move core functionality...
+ (AT_CHECK_NOESCAPE): ...to this new macro.
+
+2003-07-31 Paul Eggert <eggert@twinsun.com>
+
+ * lib/m4sugar/m4sh.m4 (_AS_UNSET_PREPARE): Work around a bug
+ in Bash 2.01. Problem reported by Brian Gough in
+ <http://mail.gnu.org/archive/html/bug-autoconf/2003-07/msg00106.html>.
+
+2003-07-25 John W. Eaton <jwe@bevo.che.wisc.edu>
+
+ * lib/autoconf/fortran.m4 (AC_F77_LIBRARY_LDFLAGS): Also ignore
+ -lcrt1.o, for OS X. (trivial change)
+
+2003-07-07 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/c.m4 (AC_C_INLINE): Wrap the '#define inline ...'
+ inside '#ifndef __cplusplus'. Problem reported by
+ Bob Friesenhahn.
+
+2003-07-06 Bill Clarke <llib@computer.org>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_MMAP): Cast pointer to
+ 'long', not 'int', for benefit of Sun's recent C++ compilers
+ (trivial change). See:
+ http://mail.gnu.org/archive/html/autoconf-patches/2003-07/msg00007.html
+ (This really should be 'intptr_t', not 'long', but that would
+ take more work.)
+
+2003-06-25 Akim Demaille <akim@epita.fr>
+
+ * lib/Makefile.am (autom4te.cfg): Make it read only.
+ 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.
+
+2003-06-25 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Header Portability): sys/mount.h.
+ From Gareth McCaughan.
+
+2003-06-23 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Report a single config.log,
+ 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.
+
+2003-06-23 Akim Demaille <akim@epita.fr>
+
+ * tests/local.at (AT_CHECK_CONFIGURE): Adjust to the verbose being
+ always run: output config.log on $at_group_log.
+
+2003-06-23 Akim Demaille <akim@epita.fr>
+
+ * tests/torture.at (#define header templates): Don't use quotes in
+ C++ comments as it puzzles Emacs' sh font-lock-mode.
+
+2003-06-23 Akim Demaille <akim@epita.fr>
+
+ * tests/mktests.sh (au_exclude_egrep): Fix output copyright notice.
+ * lib/autom4te.cfg (args): Add local.at? for Autotest args.
+ * tests/atspecific.m4: Rename as...
+ * tests/local.at: This.
+ * tests/suite.at: Move the globals into...
+ * tests/local.at: here.
+ * tests/Makefile.am: Adjust.
+ * doc/autoconf.texi (testsuite Scripts): Adjust.
+
+2003-06-21 Kevin Ryde <user42@zip.com.au>
+
+ * lib/autoconf/c.m4 (_AC_PROG_CC_STDC): Extend test program to get an
+ error from OSF 4.0 Compaq cc in its default almost-ANSI mode, thereby
+ ensuring we add -std1 for full-ANSI.
+
+ * doc/autoconf.texi (hdrindex): New macro.
+ Add index entries for portability of various standard header files.
+
+2003-06-20 Akim Demaille <akim@epita.fr>
+
+ * configure.ac: Bump to 2.57b.
+
+2003-06-20 Akim Demaille <akim@epita.fr>
+
+ Version 2.57a.
+
+2003-06-20 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in: Don't rely on $HOME being defined.
+ Reported by Marc Espie as PR/233.
+
+2003-06-20 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4: Use at_times_file only if used.
+ From Nicolas Joly.
+
+2003-06-20 Akim Demaille <akim@epita.fr>
+
+ * config/config.guess, config/config.sub, config/elisp-comp,
+ * config/install-sh, config/mkinstalldirs, doc/standards.texi:
+ Update from masters.
+
+2003-06-11 Paolo Bonzini <bonzini@gnu.org>
+
+ * doc/autoconf.texi (Writing testsuite.at): Document AT_XFAIL_IF
+ * lib/autotest/general.m4 (AT_XFAIL_IF): New macro.
+ (TEST_SCRIPT): New diversion.
+ (AT_SETUP): Divert output to TEST_SCRIPT and move some code...
+ (AT_CLEANUP): ...to here. Undivert TEST_SCRIPT.
+ (AT_INIT): Support for expected failures.
+
+2003-06-02 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in, bin/autoscan.in, bin/autoheader.in: White space
+ changes.
+ * lib/Autom4te/General.pm (&backname): Remove, no longer used by
+ Autoconf nor Automake.
+ (&contents): New, from Automake.
+ PODify.
+
+2003-05-28 Paul Eggert <eggert@twinsun.com>
+
+ * NEWS, doc/autoconf.texi (Particular Functions),
+ lib/autoconf/functions.m4 (AC_FUNC_MKTIME): Check that mktime
+ is the inverse of localtime.
+
+2003-05-25 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * lib/Autom4te/General.pm (END): Print diagnostics to STDERR.
+ (handle_exec_errors): New function. Work around $! being
+ altered by WEXITSTATUS.
+ (xqx, xsystem): Use handle_exec_errors.
+
+2003-05-23 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * lib/Autom4te/General.pm (END): Rewrite exit code processing.
+ 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.
+
+2003-05-23 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/status.m4: Prefer "TAB-SP" to "SP-TAB", because of
+ Emacs' dangerous whitespace.el behavior (smashing "useless" spaces in
+ the middle of a line).
+ * lib/m4sugar/m4sugar.m4: Likewise.
+ Remove useless spaces in comments.
+
+2003-05-23 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sugar.m4 (m4_version_prereq): Failure causes an
+ exit 63, so that we (or Automake's "missing") can tell the
+ difference with a plain failure.
+ * doc/autoconf.texi (Notices): Adjust.
+
+2003-05-23 Akim Demaille <akim@epita.fr>
+
+ * Makefile.am, bin/Makefile.am, config/Makefile.am,
+ * doc/Makefile.am, lib/autoconf/Makefile.am, tests/Makefile.am:
+ White spaces cleanup.
+
+2003-05-22 Jim Meyering <jim@meyering.net>
+ Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/c.m4 (_AC_PROG_CXX_EXIT_DECLARATION):
+ 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.
+
+2003-05-23 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Header Portability): ucred.h.
+ From Ian Redfern.
+
+2003-05-22 Paolo Bonzini <bonzini@gnu.org>
+
+ Overhaul Autotest's logging: generate separate log files
+ in testsuite.dir/NNN/testsuite.log, and append them to
+ testsuite.log instead of re-running the test verbosely.
+
+ * lib/autotest/general.m4 (AT_INIT): Use a single redirected
+ file descriptor, write 0 to at_status_file instead of setting
+ at_status=0, initialize some new variables (at_status_file,
+ at_group_log, at_suite_log, at_tee_pipe). Remove the cruft
+ to rerun the tests, instead append the at_group_log to the
+ at_suite_log when a test fails.
+ (AT_SETUP): pipe the test case's output into at_tee_pipe,
+ with the AS_MESSAGE_LOG_FD redirected to stdout.
+ (AT_CLEANUP): save the output status in $at_status_file
+ and restore it, redirect the AS_MESSAGE_LOG_FD back to
+ its original place.
+ (AT_CHECK): since tests are run with a redirected stdout,
+ and used to be re-run in verbose mode, turn some $at_verbose
+ into echo, and don't redirect the output of testing stdout
+ and stderr.
+
+ * lib/autotest/autoconf.texi (testsuite Scripts): Update
+ the name of the debugging directory and information about
+ its contents.
+
+2003-05-22 Paolo Bonzini <bonzini@gnu.org>
+
+ * lib/m4sugar/m4sh.m4 (AS_REQUIRE): Actually use the 2nd
+ parameter.
+
+2003-05-22 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/autotest.m4, lib/autoconf/autoupdate.m4
+ * lib/autoconf/fortran.m4 lib/autoconf/general.m4
+ * lib/autoconf/headers.m4 lib/autoconf/oldnames.m4
+ * lib/autoconf/status.m4: Fix and adjust copyright notices.
+
+2003-05-22 Akim Demaille <akim@epita.fr>
+
+ * aclocal.m4, bin/autoconf.as, lib/autoconf/autoconf.m4,
+ * lib/autoconf/autoheader.m4, lib/autoconf/autoupdate.m4,
+ * lib/autoconf/c.m4, lib/autoconf/fortran.m4,
+ * lib/autoconf/general.m4, lib/autoconf/headers.m4,
+ * lib/autoconf/lang.m4, lib/autoconf/libs.m4,
+ * lib/autoconf/programs.m4, lib/autoconf/specific.m4,
+ * lib/autoconf/status.m4, lib/autoconf/types.m4,
+ * lib/autotest/general.m4, lib/m4sugar/m4sugar.m4,
+ * tests/atspecific.m4, tests/base.at, tests/compile.at,
+ * tests/foreign.at, tests/m4sh.at, tests/semantics.at,
+ * tests/tools.at, tests/torture.at:
+ Whitespace clean up.
+ Suggested by Jim Meyering.
+
+2003-05-22 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_GETLOADAVG): Restore smashed
+ ' \t' as '\t ' so that Emacs' whitespace.el keep it.
+ Reported by Jim Meyering.
+
+2003-05-22 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi: Replace AC_HELP_STRING AS_HELP_STRING.
+ Add AC_HELP_STRING to the obsolete macros section.
+ Typos.
+ Use '@.' for sentences that ended in a capital letter.
+ From Art Haas.
+
+2003-05-22 Akim Demaille <akim@epita.fr>
+
+ * config/config.guess, config/config.sub, config/elisp-comp,
+ * config/install-sh, config/mdate-sh, config/mkinstalldirs,
+ * config/texinfo.tex, doc/standards.texi: Update from masters.
+
+2003-05-21 Paolo Bonzini <bonzini@gnu.org>
+
+ * lib/m4sugar/m4sh.m4 (AS_VAR_SET): Escape the RHS before passing
+ it to eval.
+
+2003-05-21 Akim Demaille <akim@epita.fr>
+
+ * bin/autoupdate.in ($m4): Fix quotation.
+ Reported by Martin Mokrejs.
+
+2003-05-19 Paul Eggert <eggert@twinsun.com>
+
+ * ChangeLog, ChangeLog.2, THANKS, lib/m4sugar/m4sugar.m4:
+ Remove non-ASCII characters.
+
+2003-05-18 Paolo Bonzini <bonzini@gnu.org>
+
+ * tests/semantics.at (AC_SEARCH_LIBS): New test.
+ * tests/semantics.at (AC_CHECK_HEADERS_OLD,
+ AC_CHECK_HEADERS_NEW): New tests.
+
+2003-05-17 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/functions.m4: Use the default includes so that
+ 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.
+
+2003-05-17 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/specific.m4: Include signal.h and unistd.h.
+ * doc/autoconf.texi (Obsolete Macros): Adjust.
+ Reported by Werner LEMBERG and Debian Bug 190886.
+
+2003-05-16 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sh.m4 (_AS_UNSET_PREPARE): s/FOO/as_foo/ to avoid
+ user name space clashes.
+ Reported by Bruno Haible.
+
+2003-05-16 Akim Demaille <akim@epita.fr>
+
+ * bin/autoheader.in, bin/autom4te.in, bin/autoreconf.in,
+ * bin/autoscan.in, bin/autoupdate.in, bin/ifnames.in (BEGIN): Make
+ them uniform, and more robust to Perl special characters.
+ Reported by Martin Mokrejs.
+
+2003-05-14 Akim Demaille <akim@epita.fr>
+
+ * tests/foreign.at (Libtool): Skip all Libtools pre 1.4.
+
+2003-05-14 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Header Portability): X11/extensions/scrnsaver.h,
+ linux/irda.h.
+
+2003-05-12 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Improve the
+ message.
+ From Matthias Andree.
+
+2003-05-07 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * lib/Autom4te/XFile.pm (lock, truncate): Do not pass @_ to flock
+ and truncate.
+
+2003-05-06 Akim Demaille <akim@epita.fr>
+
+ Don't try to be smart with aclocal 1.8+ because (i) aclocal no
+ longer updates aclocal.m4 if useless, (ii) if a file m4_included
+ by aclocal.m4 is changed it might require the importing of another
+ m4 extension file, i.e., aclocal must be run.
+
+ * bin/autoreconf.in (&run_aclocal, $aclocal_supports_force): New.
+ (&parse_args): Use --force with aclocal if required and supported.
+ (&autoreconf_current_directory): Use &run_aclocal.
+
+2003-05-06 Akim Demaille <akim@epita.fr>
+
+ Lock autom4te's cache.
+
+ * 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.
+
+2003-04-29 Derek Price <derek@ximbiot.com>
+
+ * lib/autotest/general.m4 (AT_KEYWORDS): Don't use a comma as the
+ 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.
+
+2003-04-27 Karl Berry <karl@freefriends.org>
+
+ * doc/autoconf.texi: Make the dir entries in the autoconf manual
+ align better with others. I also made some of the individual
+ entries on one line, for brevity and to make it easier for me to
+ sort my dir-example file in the Texinfo distribution :).
+
+2003-04-12 Jim Meyering <jim@meyering.net>
+
+ * NEWS: Mention the new macro.
+ * lib/autoconf/c.m4 (AC_C_RESTRICT): New macro.
+ * doc/autoconf.texi (C Compiler): Describe AC_C_RESTRICT.
+ * tests/c.at: Test AC_C_RESTRICT.
+ * tests/mktests.sh (ac_exclude_list): Add exclusion for AC_C_RESTRICT.
+
+2003-04-08 Akim Demaille <akim@epita.fr>
+
+ * bin/ifnames.in: Skip C++ comments.
+ From Jeremy Yallop.
+
+2003-04-08 Akim Demaille <akim@epita.fr>
+
+ * GNUmakefile (SHELL): Don't assume sh is in /bin/.
+ From Ilya Zakharevich.
+
+2003-04-08 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Particular Headers): Some about sys/socket.h,
+ net/if.h, stdlib.h.
+
+2003-04-01 Derek Price <derek@ximbiot.com>
+
+ * lib/autoconf/programs.m4 (AC_PROG_INSTALL): Correct syntax error
+ from Akim's checkin of 2003-03-29.
+
+2003-04-01 Derek Price <derek@ximbiot.com>
+
+ * tests/torture.at (Configuring subdirectories): Add missing
+ close-quote for Akim's change from 2003-03-28.
+
+2003-04-01 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (ac, at, ms): Rename these indexes as...
+ (AC, AT, MS): these.
+ (shortindexflag, @acindex, @ahindex, @asindex, @atindex, @msindex):
+ New.
+ Use them.
+ * doc/Makefile.am (CLEANFILES): Adjust.
+ (TEXI2DVI): Make it --batch.
+
+2003-03-31 Derek Price <derek@ximbiot.com>
+
+ * lib/autotest/general.m4: Revert the checkin from 2003-03-27
+ which removed the main loop.
+ Thanks to Akim Demaille.
+
+2003-03-29 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/programs.m4 (AC_PROG_INSTALL): Skip OS/2's install,
+ that starts a GUI.
+ From Ilya Zakharevich.
+
+2003-03-29 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL): The
+ documentation to read is Autoconf's.
+ Suggested by Paul Eggert.
+
+2003-03-28 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL): Suggest
+ reading the section "Present But Cannot Be Compiled" when the
+ header causes problems.
+
+2003-03-28 Akim Demaille <akim@epita.fr>
+
+ * tests/torture.at (Configuring subdirectories): Require aclocal
+ 1.4, otherwise the test fails, as it does support configure.ac.
+ This fixes the "test 40 failed" bug reports.
+
+2003-03-28 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (C Compiler): `#line' portability.
+ From Paul Eggert and Nelson H. F. Beebe.
+
+2003-03-27 Derek Price <derek@ximbiot.com>
+
+ * lib/autotest/general.m4: Eliminate main loop and reorganize test
+ layout in order to allow scripting around test groups.
+
+2003-03-27 Derek Price <derek@ximbiot.com>
+
+ * lib/autotest/general.m4 (PARSE_ARGS,PARSE_ARGS_END,HELP,HELP_MODES,
+ HELP_TUNING,HELP_OTHER,HELP_END,PREPARE_TESTS,TESTS_END): Define and
+ use new diversions in preparation for accepting new arguments and
+ allowing scripting around tests.
+ (OPTIONS,TAIL): Remove these diversions to make way for the ones above.
+
+2003-03-26 Derek Price <derek@ximbiot.com>
+
+ * lib/autoconf/general.m4 (AC_ARG_VAR): Use AS_HELP_STRING instead of
+ obsolete AC_HELP_STRING.
+ (AC_HELP_STRING): AU_DEFUN to...
+ * lib/m4sugar/m4sh.m4 (AS_HELP_STRING): ...here.
+ * tests/m4sh.at (AS_HELP_STRING): New test.
+
+ * tests/acgeneral.at: Regenerated.
+
+2003-03-26 Derek Price <derek@ximbiot.com>
+
+ * lib/autotest/general.m4: s/DEFAULT/DEFAULTS/ since it makes more
+ sense. Verbosify the diversion definitions comment.
+
+2003-03-26 Derek Price <derek@ximbiot.com>
+
+ * lib/autotest/general.m4 (AT_INIT): Remove redundant call to
+ AS_PREPARE.
+
+2003-03-21 Eric Siegerman <eric_97@pobox.com>
+
+ * doc/autoconf.texi (Present But Cannot Be Compiled):
+ Grammar fixes and minor rewording. (trivial change)
+
+2003-03-06 Paul Eggert <eggert@twinsun.com>
+
+ Work around a problem noted by Nelson H. F. Beebe with coreutils
+ 4.5.9: Sun c89 (Sun WorkShop 6 update 2 C 5.3 Patch 111679-08
+ 2002/05/09) rejects '#line 32768 "configure"' because the line
+ number overflows.
+ * lib/autoconf/c.m4 (AC_LANG_SOURCE(C)): Do not generate
+ #line directives.
+ * lib/autoconf/lang.m4 (AC_LANG_SOURCE): Fix comment to match this.
+ * doc/autoconf.texi (Generating Sources): Document this.
+
+2003-03-01 Richard Dawe <rich@phekda.freeserve.co.uk>
+
+ * tests/atspecific.m4 (AT_CHECK_AUTOM4TE): Normalize
+ file name for the m4 program, when it has an "exe" file extension.
+ DJGPP's error messages include the error code in brackets -
+ remove the error code during normalization.
+
+2003-02-28 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Present But Cannot Be Compiled): New.
+
+2003-02-28 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * doc/autoconf.texi (Limitations of Make): Remove the section
+ about `$<' in inference rules, it was a bogus interpretation of
+ an old Automake change. Discuss NetBSD, FreeBSD, OpenBSD, and
+ Tru64 make in the "target lookup" section.
+ (Automake): Automake 1.5+ no longer requires special tools to be
+ present on the developer's host.
+
+2003-02-26 Richard Dawe <rich@phekda.freeserve.co.uk>
+
+ * bin/autoheader.in (BEGIN): For DJGPP SHELL may not be set
+ 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.
+
+2003-02-25 Pavel Roskin <proski@gnu.org>
+
+ * bin/autoheader.in: Add missing newline when printing
+ suggestion how change AC_DEFINE call.
+
+2003-02-24 Paul Eggert <eggert@twinsun.com>
+
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Fix typo in
+ 2002-09-01 patch by replacing "test -n" with "test -z".
+ This fixes a bug found by Jeff Painter and reported by Tom Epperly in
+ <http://mail.gnu.org/archive/html/autoconf/2003-02/msg00139.html>.
+
+ * doc/autoconf.texi (Shell Substitutions): test -n -> test -z,
+ to fix a mismatch between example and discussion.
+
+2003-02-24 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (Limitations of Builtins): Add notes on printf
+ format starting with "-".
+
+2003-02-20 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * doc/autoconf.texi (Limitations of Make): `foo=bar make -e'
+ is not portable inside Makefile.
+
+2003-02-20 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL): When
+ 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.
+
+2003-02-20 Klee Dienes <kdienes@apple.com>
+
+ * bin/autoreconf.in (autoreconf_current_directory): Properly
+ handle an empty aclocal.m4.
+
+2003-02-20 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (AC_PREFIX_PROGRAM): Quote
+ $ac_prefix_program.
+ From Larry Jones.
+
+2002-12-23 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/c.m4 (AC_LANG_FUNC_LINK_TRY(C)): Define $1 to an
+ 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.
+
+2002-12-03 Paul Eggert <eggert@twinsun.com>
+
+ Version 2.57.
+
+ * NEWS, configure.ac: Update version.
+
+ * doc/fdl.texi: Upgrade to FDL version 1.2.
+
+ * lib/autoconf/c.m4 (AC_LANG_FUNC_LINK_TRY(C)): Use the function f
+ nontrivially in main's body, so that f's external declaration is
+ not optimized away in AIX. This should fix the bug reported by
+ Martin Frydl in
+ <http://mail.gnu.org/pipermail/autoconf/2002-November/014508.html>.
+
+ * lib/autoconf/c.m4 (AC_LANG_FUNC_LINK_TRY(C),
+ _AC_PROG_PREPROC_WORKS_IFELSE): Use <limits.h> if __STDC__ is
+ defined, to support freestanding compilers. This should fix the
+ bug reported by Momchil Velkov in
+ <http://mail.gnu.org/pipermail/autoconf/2002-November/014490.html>.
+
+ * doc/autoconf.texi (Obsolete Macros): Fix typos (insert empty
+ arg, AC_DEFINE -> AC_DEFINE_UNQUOTED) in documentation for
+ obsolete AC_CHECK_TYPE. The missing empty arg was reported
+ by Simon Josefsson in
+ <http://mail.gnu.org/pipermail/autoconf-patches/2002-December/008830.html>.
+
+ * Makefile.maint (www-gnu): New macro.
+ (standards.texi-url_prefix, make-stds.texi-url_prefix): Use it, as
+ the location has moved.
+
+2002-12-02 Martin Frydl <martin@systinet.com>
+
+ * bin/autom4te.in (at_flatten): rewritten to avoid M4 problem when
+ \(.*\) match is too long and there is something more to be checked.
+ <http://mail.gnu.org/pipermail/autoconf/2002-November/014524.html>
+
+2002-11-15 Akim Demaille <akim@epita.fr>
+
+ Version 2.56.
+
+ * config/install-sh: chmod +x.
+ From Paul Eggert.
+ * config/move-if-change: Indenting changes.
+ * Makefile.am (AUTOMAKE_OPTIONS): Move to...
+ * configure.ac (AM_INIT_AUTOMAKE): here.
+ Require 1.7.1.
+
+2002-11-14 Akim Demaille <akim@epita.fr>
+
+ Version 2.55.
+
+ * config/config.guess, config/config.sub, config/install-sh:
+ Update from masters.
+
+2002-11-14 Akim Demaille <akim@epita.fr>
+
+ * Makefile.maint: Sync with Bison, i.e.:
+ (po-check): Scan .l and .y files instead of the
+ .c and the .h files that they generate. This fixes the bug
+ reported by Tim Van Holder in:
+ <http://mail.gnu.org/pipermail/bison-patches/2002-November/001352.html>
+ Look for N_ as well as for _. Try to avoid matching #define for
+ N_ and _.
+ From Paul Eggert.
+
+2002-11-14 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (C Compiler): Compiling several files at once.
+ From Paul Eggert and Albert Chin-A-Young.
+
+2002-11-14 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (C Compiler): Solitary backslashes.
+ From Paul Eggert and Albert Chin-A-Young.
+
+2002-11-14 Kevin Ryde <user42@zip.com.au>
+
+ * lib/autoconf/c.m4 (AC_LANG_FUNC_LINK_TRY(C)): Initialize f=$1 rather
+ than assigning in main, to avoid HP cc +O3 optimizing it away.
+
+2002-11-12 Peter Eisentraut <peter_e@gmx.net>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Add -q
+ 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.
+
+2002-11-07 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * bin/autoscan.in (scan_file): Scan Makefile.am too. Ignore
+ Makefile.in if Makefile.am exists.
+ (output): Strip `.am' from Makefiles. Don't
+ output AC_CONFIG_FILES if no Makefiles were found.
+
+2002-11-07 Akim Demaille <akim@epita.fr>
+
+ * Makefile.am (cvs_files): Add elisp-comp, mdate-sh.
+ (local_updates): New.
+ * Makefile.maint: Update, from CVS Bison.
+ (local_updates): New.
+
+2002-11-06 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/c.m4 (AC_LANG_FUNC_LINK_TRY): Wrap the `f'
+ declaration in extern "C" too.
+ Reported by Roberto Bagnara.
+
+2002-11-06 Akim Demaille <akim@epita.fr>
+
+ * tests/torture.at (Configuring subdirectories): Don't use grep
+ -w.
+ * doc/autoconf.texi (Limitations of Usual Tools): Grep -w.
+ Reported by Ezra Peisach.
+
+2002-11-05 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/autoheader.m4 (_AH_TEMPLATE_OLD, _AH_VERBATIM_OLD):
+ 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.
+
+2002-11-04 Paul Eggert <eggert@twinsun.com>
+
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Set the following variables,
+ too: LC_ADDRESS, LC_IDENTIFICATION, LC_MEASUREMENT, LC_MONETARY,
+ LC_NAME, LC_PAPER, LC_TELEPHONE.
+ * doc/autoconf.texi (Special Shell Variables): Mention those vars.
+
+2002-11-04 Akim Demaille <akim@epita.fr>
+
+ Version 2.54c.
+
+ * Makefile.maint (update, cvs-update, po-update, do-po-update):
+ New.
+ * config/texinfo.tex: Update.
+
+2002-11-03 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.in (&autoreconf_current_directory): New, extracted
+ from...
+ (&autoreconf): here.
+ ($help, $make, &parse_args, &autoreconf_current_directory):
+ Support -m/--make.
+ * doc/autoconf.texi (autoreconf Invocation): Adjust.
+
+2002-10-31 Bruno Haible <bruno@clisp.org>
+
+ * lib/autoconf/functions.m4 (_AC_FUNC_MALLOC_IF): Change message.
+ 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.
+
+2002-10-31 Akim Demaille <akim@epita.fr>
+
+ The test suite was no longer checking for trailing envvars and files.
+
+ * tests/atspecific.m4 (AC_STATE_SAVE): Don't use quadrigraphs here.
+ (AT_CHECK_ENV): Make sure the `state-ls.before file exists.
+
+2002-10-31 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/programs.m4 (AC_PROG_MAKE_SET): Use and display
+ `$(MAKE)' instead of '${MAKE}' to emphasize that we refer to the
+ Make variable, not a shell variable.
+ Suggested by Bruno Haible.
+
+2002-10-31 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (load_configuration): Reject #args out of any
+ language.
+
+2002-10-31 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_AC_MSG_LOG_CONFTEST): New.
+ (_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.
+
+2002-10-30 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (&parse_args, $help): Support --no-cache.
+ * doc/autoconf.texi (autom4te Invocation): Adjust.
+ Suggested by Tim van Holder.
+
+2002-10-29 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Particular Functions): AC_FUNC_MALLOC and
+ AC_FUNC_REALLOC check for compatibility with glibc, not POSIX.
+ Problem reported by Bruno Haible.
+
+2002-10-29 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Header Templates): Put also in words what the
+ pictures says to assist free style readers.
+ (Customizing autom4te): s/--cache=/--cache /.
+
+2002-10-29 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/functions.m4 (_AC_FUNC_VFORK): Include stdlib.h and
+ sys/wait.h.
+ sparc_address_test returns void.
+ Use it with an argument, as prototyped.
+ From Bruno Haible.
+
+2002-10-29 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Subdirectories): Cygnus dirs have
+ configure.in, not configure.ac.
+ Reported by Bruno Haible.
+
+2002-10-29 Akim Demaille <akim@epita.fr>
+
+ * tests/torture.at (Deep Package): New test.
+ (Configuring subdirectories): Don't use a testSubDir as Autotest
+ now does it itself.
+
+2002-10-29 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.in (&parse_args, $help): Support --warnings.
+ * doc/autoconf.texi (Invoking autom4te): Rename as...
+ (autom4te Invocation): this, for consistency with the other nodes.
+
+2002-10-29 Akim Demaille <akim@epita.fr>
+
+ * lib/autom4te.in (Autoconf): s/automate/autom4te/.
+ Reported by Ralf Corsepius.
+
+2002-10-29 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sh.m4 (_AS_QUOTE): The warning about quoted
+ characters is a back as an `obsolete' warning now.
+ Reported by Ralf Corsepius.
+
+2002-10-28 Akim Demaille <akim@epita.fr>
+
+ * configure.ac: Bump to 2.54c.
+
+2002-10-28 Akim Demaille <akim@epita.fr>
+
+ Version 2.54b.
+
+ * tests/foreign.at (Libtool): Adjust to broken libtoolize.
+
+2002-10-28 Akim Demaille <akim@epita.fr>
+
+ * tests/atspecific.m4 (AT_CHECK_AUTOM4TE): Be robust to different
+ m4 executable names, and different GNU M4 version.
+ Reported by Ezra Peisach and Paul Jarc.
+
+2002-10-27 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/functions.m4 (_AC_FUNC_VFORK): Really use
+ AC_RUN_IFELSE.
+
+2002-10-27 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi: More AC_MSG_FAILURE promotion.
+ * 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.
+
+2002-10-27 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Run Time): Document AC_RUN_IFELSE.
+ 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.
+
+2002-10-27 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Generating Sources): Document AC_LANG_CALL
+ and AC_LANG_FUNC_LINK_TRY.
+ (Examining Libraries): Rename as...
+ (Running the Linker): this.
+ Document AC_LINK_IFELSE.
+ Move the documentation of AC_TRY_LINK and AC_TRY_LINK_FUNC to...
+ (Obsolete Macros): here.
+ * lib/autoconf/fortran.m4 (_AC_F77_NAME_MANGLING): Don't use
+ AC_TRY_LINK_FUNC nor AC_TRY_LINK.
+ * lib/autoconf/libs.m4 (AC_CHECK_LIB, AC_PATH_XTRA): Likewise.
+ * lib/autoconf/headers.m4 (AC_USG): Likewise.
+
+2002-10-27 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/headers.m4 (AC_HEADER_STDC): Don't use AC_TRY_CPP.
+
+ More `check config.log' messages.
+
+ * lib/autoconf/general.m4 (AC_MSG_FAILURE): New.
+ * doc/autoconf.texi (Printing Messages): Document it.
+ * lib/autoconf/types.m4 (AC_CHECK_SIZEOF): Use it when
+ appropriate.
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT)
+ (_AC_COMPILER_EXEEXT_WORKS, _AC_COMPILER_EXEEXT_O)
+ (_AC_COMPILER_OBJEXT): Likewise.
+ * lib/autoconf/general.m4 (AC_RUN_IFELSE): Likewise.
+ * lib/autoconf/fortran.m4 (_AC_LANG_PROGRAM_C_F77_HOOKS):
+ Likewise.
+ * lib/autoconf/c.m4 (AC_PROG_CPP, AC_PROG_CC, AC_PROG_CXXCPP):
+ Likewise.
+
+ Deprecate macros with unusual interfaces.
+
+ * lib/autoconf/general.m4 (AC_TRY_CPP, AC_TRY_LINK)
+ (AC_TRY_COMPILE, AC_TRY_RUN): AU_DEFUN'ed.
+
+ Document the new ones, and proper style.
+
+ * doc/autoconf.texi (Generating Sources): New.
+ Document AC_LANG_CONFTEST, AC_LANG_SOURCE, AC_LANG_PROGRAM.
+ (Examining Declarations): Rename as...
+ (Running the Preprocessor): this.
+ Document AC_PREPROC_IFELSE.
+ (Examining Syntax): Rename as...
+ (Running the Compiler): this.
+ (AC_FOO_IFELSE vs AC_TRY_FOO): New section.
+ (Obsolete Macros): Move the definition of AC_TRY_CPP and
+ AC_TRY_COMPILE here.
+
+2002-10-27 Akim Demaille <akim@epita.fr>
+
+ Move sections around.
+
+ * doc/autoconf.texi (Customizing autom4te): Remove a lost
+ sentence.
+ Reported by Burno Haible.
+ (Language Choice): Now the first section of...
+ (Writing Tests): this section.
+ Make the introduction less C-centric.
+ (Guidelines, Test Functions): Move to...
+ (Writing Test Programs): this new section.
+ (Test Programs): Merge into...
+ (Run Time): this.
+
+2002-10-27 Akim Demaille <akim@epita.fr>
+
+ * lib/freeze.mk ($(AUTOM4TE_CFG)): Add a missing dependency on
+ autom4te.in that resulted in the need for two `make' runs.
+
+2002-10-27 Akim Demaille <akim@epita.fr>
+
+ * configure.ac: Bump to 2.54b.
+
+2002-10-25 Akim Demaille <akim@epita.fr>
+
+ Version 2.54a.
+
+ * Makefile.maint: Update from the Coreutils.
+ (AMTAR): Remove, obsolete.
+ (automake_repo): Update to redhat.com.
+ (cvs_file): New.
+ Adjust to the fact that ansi2knr is now hosted by Automake.
+ * Makefile.am (cvs_files): Add install-sh and mkinstalldirs.
+ * config/config.guess, config/mkinstalldirs, config/texinfo.tex:
+ Update from masters.
+ * lib/autoscan/Makefile.am (EXTRA_DIST, nodist_autoscanlib_DATA):
+ autoscan.pre is not to be installed, and autoscan.list is not to
+ be shipped.
+ (CLEANFILES): Add autoscan.list.
+ (autoscan.list): Disable the cache.
+ * bin/Makefile.am: Include freeze.mk.
+
+2002-10-25 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (&load_configuration): Take the file as
+ argument.
+ (&parse_args): Handle -C, --cache.
+ ($help): Adjust.
+ (MAIN): Load ~/.autom4te.cfg and ./.autom4te.cfg.
+ * lib/autom4te.in (Autoconf): Pass --cache=autom4te.cache.
+ * doc/autoconf.texi (Invoking autom4te): Document --cache.
+ Now a subsection of...
+ (Using autom4te): This new section.
+ (Customizing autom4te): New.
+ (autom4te.cache): Adjust.
+
+2002-10-25 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Generic Headers): More information on how to
+ use AC_CHECK_HEADERS.
+
+2002-10-25 Akim Demaille <akim@epita.fr>
+
+ * bin/autoconf.as, bin/autoconf.in, bin/autoupdate.in ($help):
+ Space changes.
+
+2002-10-25 Akim Demaille <akim@epita.fr>
+
+ * bin/autoscan.in (output): Output AC_PREREQ.
+ (%needed_macros): Add AC_PREREQ so that configure.ac without one
+ be reported.
+
+2002-10-23 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Particular Headers): In AC_HEADER_STDBOOL,
+ document _Bool.
+
+2002-10-23 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (handle_traces): Handle @&t@ in traces.
+ Reported by Peter Eisentraut.
+
+2002-10-23 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/headers.m4 (AC_HEADER_STDBOOL): Also look for the
+ type _Bool.
+ Fix a typo.
+ * doc/autoconf.texi (Particular Headers): Adjust according to Paul
+ Eggert's recommandations.
+
+2002-10-22 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/headers.m4 (AC_HEADER_STDBOOL): New, based on CVS
+ Bison, by Paul Eggert.
+ * doc/autoconf.texi (Particular Headers): Document it.
+
+2002-10-22 Aaron M. Ucko <amu@alum.mit.edu>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Avoid duplicates in
+ `$ac_configure_args'.
+
+2002-10-22 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi: Use AC_CONFIG_HEADERS in examples.
+ (AC_ST_BLKSIZE, AC_ST_RDEV): Directly point to AC_CHECK_MEMBERS.
+ From Art Haas.
+
+2002-10-22 Akim Demaille <akim@epita.fr>
+
+ Restore the 2002-10-11 Akim Demaille <akim@epita.fr> patch:
+
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL)
+ (AC_CHECK_HEADER, _AC_CHECK_HEADER_NEW,_AC_CHECK_HEADER_OLD): Restore.
+ (_AC_CHECK_HEADER_NEW): Rename as...
+ (AC_CHECK_HEADER): this.
+
+2002-10-22 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Remove incorrect
+ words about HP-UX cmp: it was actually a user-written cmp.
+
+2002-10-22 Akim Demaille <akim@epita.fr>
+
+ * tests/foreign.at (Libtool): Don't check autoconf's stderr: there
+ 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.
+
+2002-10-22 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sh.m4 (_AS_QUOTE): The warning about quoted
+ 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.
+
+2002-10-18 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (handle_m4): Pass --fatal-warning to m4, so that
+ missing included files _are_ errors.
+ Thanks to Alexandre Duret-Lutz.
+ * tests/tools.at (autom4te cache): Adjust.
+ * tests/atspecific.m4 (AT_CHECK_AUTOM4TE): New.
+ (AT_CHECK_M4SUGAR): Use it.
+ * tests/m4sugar.at (m4_warn, m4_require: circular dependencies):
+ Adjust.
+ * tests/tools.at (autom4te): Now it does exit 1.
+
+2002-10-17 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (AC_CACHE_SAVE): Don't use cmp.
+ 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.
+
+2002-10-17 Akim Demaille <akim@epita.fr>
+
+ * tests/tools.at (autoheader): Put randoms `@' to stress Perl.
+
+2002-10-16 Paul Eggert <eggert@twinsun.com>
+
+ * Makefile.maint (wget_files): Remove ansi2knr.c.
+ (ansi2knr.c-url_prefix): Remove.
+
+2002-10-16 Akim Demaille <akim@epita.fr>
+
+ Because of caching, some files that no longer exist and are no
+ longer required can still cause errors.
+ Reported by Alexandre Duret-Lutz.
+
+ * bin/autom4te.in (&parse_args): Do not prepend `--reload-state'
+ to frozen files in @ARGV, as @ARGV must remain being a list of
+ files. Rather, at M4 call sites, use this...
+ (&files_to_options): New function.
+ (&freeze): Use &error.
+ (&up_to_date): If a file that was included according to the cache
+ is no longer there, then the output is out dated.
+ (&main): Don't even check whether a file is up to date is anyway
+ --force is given.
+ * tests/tools.at (autom4te cache): New.
+
+2002-10-16 Akim Demaille <akim@epita.fr>
+
+ * bin/autoconf.as: Kill dead options.
+ * 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.
+
+2002-10-11 Akim Demaille <akim@epita.fr>
+
+ No longer use CPP to check for the existing of headers: use CC to
+ check for compilability.
+
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL)
+ (AC_CHECK_HEADER, _AC_CHECK_HEADER_OLD): Remove.
+ (_AC_CHECK_HEADER_NEW): Rename as...
+ (AC_CHECK_HEADER): this.
+
+ * lib/autotest/general.m4 (AT_INIT): Include the failed test
+ numbers in the Subject suggestion.
+
+2002-10-11 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/specific.m4 (AC_DECL_SYS_SIGLIST): Obsolete.
+ Suggest using AC_CHECK_DECLS instead.
+
+2002-10-11 Akim Demaille <akim@epita.fr>
+
+ * tests/torture.at (AC_ARG_VAR): Have configure report the value
+ of `precious'.
+
+2002-10-11 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sh.m4 (_AS_PATH_SEPARATOR_PREPARE): Use $$ in the
+ file name to enable parallel executions.
+ From Sam Varshavchik.
+
+2002-10-08 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.in (&autoreconf): Run autopoint before the first
+ aclocal invocation, as Gettext macros might not be visible to
+ aclocal.
+ Instead of blindly running autopoint, scan configure.ac (not the
+ traces) for AM_GNU_GETTEXT_VERSION uses, as autopoint does.
+ Reported by Paul D. Smith.
+
+2002-10-08 Paul Eggert <eggert@twinsun.com>
+
+ Work around problems found when POSIXLY_CORRECT=1 is set.
+ None of this seems to have anything to do with POSIX, really,
+ but it's how Perl getopt works.
+ * bin/autom4te.in (parse_args): Configure GetOpt with
+ "permute", too.
+ * doc/autoconf.texi (Invoking autom4te):
+ --warning -> --warnings.
+ * lib/autom4te.in: --warning -> --warnings.
+
+2002-09-28 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (autom4te.cache): New section.
+
+2002-09-28 Akim Demaille <akim@epita.fr>
+
+ * lib/autom4te.in (Autoscan-preselections, Autoreconf-preselections)
+ (Automake-preselections): Update.
+ * bin/autoreconf.in, bin/autoheader.in: Comment changes.
+
+2002-09-28 Akim Demaille <akim@epita.fr>
+
+ * lib/autoscan/autoscan.pre: Move all the remaining rules to...
+ * lib/autoconf/c.m4, lib/autoconf/functions.m4,
+ * lib/autoconf/headers.m4, lib/autoconf/libs.m4,
+ * lib/autoconf/specific.m4, lib/autoconf/types.m4: here.
+
+2002-09-28 Akim Demaille <akim@epita.fr>
+
+ * tests/torture.at (Configuring subdirectories): Be robust to
+ users who use config.site to require for a cache: in this case,
+ the two last configure runs, using two different sets of
+ arguments, trigger a legitimate error.
+
+2002-09-28 Akim Demaille <akim@epita.fr>
+
+ * tests/m4sh.at (Functions Support, Functions and return Support):
+ New.
+
+2002-09-28 Akim Demaille <akim@epita.fr>
+
+ * bin/Makefile.am (ETAGS_SH, ETAGS_PERL): Update: ifnames and
+ 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.
+
+2002-09-28 Akim Demaille <akim@epita.fr>
+
+ * lib/autoscan/autoscan.pre (st_blksize, st_blocks, st_rdev)
+ (tm_zone): Move their rules to...
+ * lib/autoconf/types.m4: here, using AN_ macros.
+ * lib/autoscan/autoscan.pre (AWK, BISON, INSTALL, LEX, LN, MAKE)
+ (RANLIB, YACC, awk, bison, byacc, flex, gawk, install, lex, ln)
+ (make, mawk, nawk, ranlib, yacc): Similarly, move to...
+ * lib/autoconf/programs.m4: here.
+ * lib/freeze.mk (ETAGS_FOR_M4, ETAGS_FOR_M4SUGAR)
+ (ETAGS_FOR_AUTOCONF): New.
+ Use it.
+
+2002-09-28 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/autoscan.m4: New file.
+ * 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.
+
+2002-09-28 Akim Demaille <akim@epita.fr>
+
+ * bin/autoscan.in (@kinds): Make them singular.
+ 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.
+
+2002-09-28 Akim Demaille <akim@epita.fr>
+
+ * lib/autoscan/functions, lib/autoscan/headers,
+ * lib/autoscan/identifiers, lib/autoscan/makevars,
+ * lib/autoscan/programs: Merge into...
+ * lib/autoscan/autoscan.list: this.
+ * bin/autoscan.in (&init_tables): Adjust.
+
+2002-09-28 Akim Demaille <akim@epita.fr>
+
+ * lib/autoscan/functions, lib/autoscan/headers,
+ * 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.
+
+2002-09-28 Akim Demaille <akim@epita.fr>
+
+ From now on, autoscan files must always map a macro name to a
+ 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.
+
+2002-09-28 Akim Demaille <akim@epita.fr>
+
+ * bin/autoscan.in (%c_keywords): Remove.
+ (&used): Keep only track of the words we might be interested in.
+ (&output_kind): It is no longer needed to look for non active
+ checks.
+
+2002-09-27 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_MBRTOWC): New, stolen from
+ jm_FUNC_MBRTOWC, by Paul Eggert, from the Coreutils 4.5.1.
+ * lib/autoscan/functions: Adjust.
+ * doc/autoconf.texi (Particular Functions): Adjust.
+
+2002-09-27 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Some about mv
+ 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.
+
+2002-09-27 Akim Demaille <akim@epita.fr>
+
+ * bin/autoscan.in: Improve the comments.
+ (&parse_args): Drop obsolete undocumented options.
+ (&output_kind): Output warnings.
+ * lib/autoscan/functions: (dcgettext): Now trigger AM_GNU_GETTEXT.
+ (getwd): Trigger a warning.
+
+2002-09-26 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.in: Clarify that -s is meaningless without -i.
+ Reported by Ralf Corsepius.
+ * doc/autoconf.texi (autoreconf Invocation): Likewise.
+
+2002-09-26 Akim Demaille <akim@epita.fr>
+
+ Single suffix rules and seperated dependencies are not portable.
+
+ * 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.
+
+2002-09-25 Paul Eggert <eggert@twinsun.com>
+
+ * BUGS (Interoperability bugs): New section. Mention libtool
+ 1.4.2, configure.ac, and AC_CONFIG_AUX_DIR interoperability bug.
+
+2002-09-24 Paul Eggert <eggert@twinsun.com>
+
+ Fix a portability bug reported by Alexandre Duret-Lutz: Solaris 8
+ make handles suffix-rules differently from GNU make.
+
+ * bin/Makefile.am (SUFFIXES, .in): Remove.
+ (autoconf autoheader autoreconf autoupdate ifnames autoscan autom4te):
+ Move the body of the old .in rule here.
+
+2002-09-16 Akim Demaille <akim@epita.fr>
+
+ i960 compilers create `b.out' files by default.
+ Reported by Ralf Corsepius.
+
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT): Remove b.out files.
+ (_AC_COMPILER_EXEEXT_DEFAULT): Adjust to b.out.
+
+2002-09-13 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Particular Headers): Remove obsolete
+ reference to `struct timezone' in the description of
+ AC_HEADER_TIME.
+
+2002-09-13 Akim Demaille <akim@epita.fr>
+
+ Version 2.54.
+
+ * config/config.sub, config/config.guess: Update.
+ * Makefile.maint: Update from bits of the Coreutils 4.5.1.
+ * Makefile.am: Adjust.
+
+2002-09-13 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Suggest
+ reading config.log when the compiler is rejected.
+ Suggested by Guido Draheim.
+
+2002-09-13 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.in: Don't use Cwd::chdir, since in its internals
+ (chdir_init) might hang when stat'ing mounted directories.
+ Reported by Vance Shipley.
+
+2002-09-12 Akim Demaille <akim@epita.fr>
+
+ * bin/autoscan.in (&parse_args): Pass a reference to the lists, not
+ the lists.
+
+2002-09-12 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Defining Symbols): Present two different
+ prototypes for AC_DEFINE and AC_DEFINE_UNQUOTED to emphasize the
+ difference between 1 argument calls, and 2-3 argument calls.
+
+2002-09-12 Peter Eisentraut <peter_e@gmx.net>
+
+ * doc/autoconf.texi: Review grammar and punctuation.
+
+2002-09-11 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi: Fix minor formatting, spelling, and
+ grammatical typos.
+ (Defining Symbols): Explain that AC_DEFINE(var) defaults to 1, but
+ AC_DEFINE(var,,description) does not; and the AC_DEFINE(var) case
+ is obsolescent.
+
+2002-09-11 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Questions): Rename as...
+ (FAQ): this.
+ (Defining Directories): New.
+
+2002-09-09 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Making testsuite Scripts): Update.
+ Suggested by Nishio Futoshi.
+
+2002-09-09 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * doc/autoconf.texi (Making testsuite Scripts): Use `@@' where a
+ plain `@' is wanted.
+
+2002-09-09 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Keep the
+ `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.
+
+2002-09-09 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_GETLOADAVG): Use $srcdir when
+ 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.
+
+2002-09-06 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Setting Output Variables): Clarify what
+ precious variables are.
+ Suggested by Pontus Skoeld.
+
+2002-09-05 Akim Demaille <akim@epita.fr>
+
+ * bin/Makefile.am (autoconf, autoheader, autoreconf, autoupdate)
+ (ifnames, autoscan, autom4te): Since we don't only depend on
+ configure.ac variables (such as VERSION etc.), but also on prefix
+ and so forth, depend on Makefile, not configure.ac.
+ Reported by Alexandre Duret-Lutz.
+ * doc/autoconf.texi (Installation Directory Variables): Adjust.
+
+2002-09-05 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (Limitations of Make): HP-UX trailing backslashes
+ doesn't seem to be confined to ia64, just say "some versions".
+
+2002-09-04 Akim Demaille <akim@epita.fr>
+
+ * Makefile.am, doc/Makefile.am: Remove pdf targets, handled by
+ Automake 1.6c.
+ * Makefile.am (maintainer-clean-local): Remove.
+ (MAINTAINERCLEANFILES): Remove COPYING.
+
+2002-09-03 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Configuration Commands): Remove obsolete
+ example for AC_CONFIG_COMMANDS_PRE. Problem reported by Marcus
+ Brinkmann.
+
+2002-09-03 Akim Demaille <akim@epita.fr>
+
+ * configure.ac: Bump to 2.53d.
+ * Makefile.am (AUTOMAKE_OPTIONS): Require 1.6c, i.e., CVS Automake
+ as of today, on Automake's team suggestion.
+
+2002-09-03 Akim Demaille <akim@epita.fr>
+
+ Version 2.53c.
+
+2002-09-02 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (parse_args): Don't honor AUTOM4TE_PATH and
+ SITE_MACRO_DIR.
+ * configure.ac: Disable SITE_MACRO_DIR.
+
+2002-09-02 Jim Meyering <meyering@lucent.com>
+
+ * doc/autoconf.texi (AC_SYS_POSIX_TERMIOS): Reflect renaming: s/am/ac/,
+ i.e., change am_cv_sys_posix_termios to ac_cv_sys_posix_termios.
+ Also, tweak grammar: s/make sure to/be sure to/.
+
+2002-09-02 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Limitations of Builtins): Explain why logical
+ directory names are generally preferable to physical names.
+
+2002-09-02 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/General.pm (&update_file): s/die/error/.
+ Reported by Raja R. Harinath.
+ * bin/autoheader.in, bin/autoreconf.in, bin/autoscan.in,
+ * bin/autoupdate.in: Use error instead of die.
+
+2002-09-01 Paul Eggert <eggert@twinsun.com>
+
+ * tests/mktests.sh (ac_exclude_egrep, au_exclude_egrep): Use
+ ordinary shell concatenation rather than echo+tr+sed command that
+ runs afoul of a long-line-related sed bug in Solaris 8.
+
+ * bin/autoheader.in (parse_args): --warning -> --warnings.
+
+ * bin/autoconf.as: Work even if "ls" outputs "FOO not found" to
+ stdout, as traditional "ls" does.
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT,
+ _AC_COMPILER_EXEEXT_O): Likewise.
+ * doc/autoconf.texi (Limitations of Usual Tools): Add "ls".
+
+ * bin/autoconf.as: Add --prepend-include option. This patch was
+ applied to bin/autoconf.in in the 2002-07-17 patch by Mark D. Roth,
+ but bin/autoconf.in is generated automatically from bin/autoconf.as.
+
+ * bin/autoconf.in, configure: Regenerate.
+
+ * doc/autoconf.texi (Special Shell Variables): Mention
+ ENV, MAIL, MAILPATH, PS1, PS2, PS4. Index PWD.
+
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Unset ENV, MAIL,
+ MAILPATH and set PS1, PS2, PS4 to default values, to work
+ around bug in pre-3.0 UWIN ksh reported by Bruce Lilly.
+ For LC_ALL etc, first try to set to "C" as POSIX requires and as
+ the Autoconf documentation specifies; fall back to "unset" only if
+ this fails. Use a shell for-loop for this rather than an m4 loop,
+ to shorten the output script.
+
+2002-08-30 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Special Shell Variables): Mention POSIX
+ 1003.1-2001's requirements for CDPATH. Give a simpler workaround
+ for the CDPATH problem. Document PWD.
+ (Limitations of Builtins): Document the problem that "cd $foo" and
+ "ls $foo" may refer to different directories in shells conforming
+ to POSIX 1003.1-2001. Use PS1 rather than CDPATH for "unset"
+ example, since the old example is now out of date.
+
+ * lib/autoconf/general.m4 (_AC_INIT_SRCDIR): Reject FOO if "cd
+ FOO" and "ls FOO" talk about different directories; this catches
+ problems when POSIX 1003.1-2001 "cd" fails due to symlink
+ spaghetti.
+
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Use AS_UNSET instead
+ of rolling our own unset.
+ (_AS_PREPARE): $as_unset CDPATH instead of AS_UNSETting it, since
+ in practice we needn't worry about CDPATH if unset doesn't work.
+
+ * Makefile.in, aclocal.m4, bin/Makefile.in,
+ config/Makefile.in, doc/Makefile.in, lib/Makefile.in,
+ lib/Autom4te/Makefile.in, lib/autoconf/Makefile.in,
+ lib/autoscan/Makefile.in, lib/autotest/Makefile.in,
+ lib/emacs/Makefile.in, lib/m4sugar/Makefile.in, man/Makefile.in,
+ tests/Makefile.in: Regenerate with Automake 1.6.3.
+
+ * config/config.guess, config/config.sub, config/mkinstalldirs:
+ Update.
+
+ * configure: Regenerate with self.
+
+2002-08-30 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Notes on "cc"
+ default output.
+
+2002-08-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * bin/autom4te.in (Request::load): Correctly test for "do" read
+ failure.
+
+2002-08-29 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/General.pm (&xqx): New.
+ (&xsystem): Use WIFEXITED and WEXITSTATUS instead of decoding $? by
+ hand, which is not portable.
+ (&error): New.
+ * bin/autom4te.in: Use them.
+ Use &error instead of die.
+ * tests/m4sugar.at (m4_warn, m4_require: circular dependencies):
+ Adjust.
+
+2002-08-17 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/fortran.m4 (AC_PROG_F77): Remove fc from the
+ default list of compilers to try, since it was long ago superseded
+ by the ksh fc builtin. Suggested by Steven G. Johnson.
+
+2002-07-31 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * doc/autoconf.texi (Invoking autom4te): End the option table,
+ fixing a bug introduced by the previous patch.
+ (Limitations of Make): Add a 'target lookup' subentry in the
+ 'VPATH' entry. Rewrite all `make' occurences as `@command{make}'.
+
+2002-07-29 Mark D. Roth <roth@feep.net>
+
+ * bin/autom4te.in: Remove --include-envvar and --site-macro-subdir
+ options and use $AUTOM4TE_PATH.
+ * doc/autoconf.texi: Remove documentation of autom4te
+ --include-envvar and --site-macro-subdir options and document
+ use of $AUTOM4TE_PATH.
+ * lib/autom4te.in: Remove --include-envvar and --site-macro-subdir
+ arguments from each language section.
+
+2002-07-29 Paul Eggert <eggert@twinsun.com>
+
+ * doc/install.texi: Include copyright symbol in copyright notice.
+
+ * Makefile.am (MAKEINFO): Remove; it's a user-specified macro.
+ Replace with:
+ (AM_MAKEINFOFLAGS): New macro.
+ * doc/Makefile.am (MAKEINFO, AM_MAKEINFOFLAGS): Likewise.
+ * Makefile.am (INSTALL): Use the new macros.
+ Use -o rather than --output, since "missing" does not grok --output.
+
+2002-07-25 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * doc/autoconf.texi (Limitations of Make): Escaped newlines in
+ comments do not always work. Never trust the exit status of
+ `make -k'.
+
+2002-07-24 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (Limitations of Make, Making testsuite Scripts):
+ Untabify, since tabs are not enjoyed by texi2dvi and makeinfo.
+
+2002-07-23 Paul Eggert <eggert@twinsun.com>
+
+ * lib/m4sugar/m4sh.m4 (_AS_PATH_SEPARATOR_PREPARE):
+ Use PATH="/nonexistent;.", not PATH=".;.", as FreeBSD ksh2002
+ apparently treats PATH="nonexistent" as if it contained ".".
+ Bug reported by Stefan `Sec' Zehl.
+
+2002-07-22 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * doc/autoconf.texi (Limitations of Make): Mention the special
+ handling of the obj/ directory by BSD make.
+
+2002-07-20 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (Limitations of Make): Add HP-UX IA-64 trailing
+ backslashes.
+
+2002-07-19 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Function Portability): `exit'.
+ (Programming in M4sh): Ethymology of M4sh.
+
+2002-07-19 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (AC_LIBOBJ vs LIBOBJS): More about $U.
+
+2002-07-18 Akim Demaille <akim@epita.fr>
+
+ Version 2.53b.
+
+2002-07-18 Akim Demaille <akim@epita.fr>
+
+ * config/config.guess, config/config.sub: Update.
+
+2002-07-18 Akim Demaille <akim@epita.fr>
+
+ Handle LIBOBJS and LTLIBOBJS once for all, including Libtool's and
+ Automake's parts.
+
+ * lib/autoconf/general.m4 (_AC_LIBOBJS_NORMALIZE): New.
+ * lib/autoconf/status.m4 (AC_OUTPUT_COMMANDS_PRE): Call it.
+ * tests/semantics.at (AC_REPLACE_FUNCS): Adjust.
+
+2002-07-18 Akim Demaille <akim@epita.fr>,
+ Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS): Install
+ _AC_AM_CONFIG_HEADER_HOOK for Automake 1.7.
+
+2002-07-17 Russ Allbery <rra@stanford.edu>
+
+ * doc/autoconf.texi (Initializing configure): Clarify the
+ description of the tarname default.
+
+2002-07-17 Andreas Buening <andreas.buening@nexgo.de>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_FORK): Don't set
+ ac_cv_func_fork_works before running _AC_FUNC_FORK, do it if the
+ latter was not run.
+
+2002-07-17 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/General.pm (find_file): Browse the directories in
+ the order they are given.
+
+2002-07-17 Akim Demaille <akim@epita.fr>
+
+ * tests/wrapsh.as, tests/wrappl.as: Merge into...
+ * tests/wrapper.as: this.
+ * tests/Makefile.am, configure.ac: Adjust.
+
+2002-07-17 Mark D. Roth <roth@feep.net>
+
+ * configure.ac: Add --enable-site-macro-dir option.
+ * bin/Makefile.am: Expand @SITE_MACRO_DIR@.
+ * bin/autom4te.in: Add --prepend-include, --include-envvar, and
+ --site-macro-subdir options.
+ * bin/autoconf.in: Add --prepend-include option.
+ * bin/autoheader.in: Add --prepend-include option.
+ * bin/autoreconf.in: Add --prepend-include option.
+ * bin/autoscan.in: Add --prepend-include option.
+ * bin/autoupdate.in: Add --prepend-include option.
+ * doc/autoconf.texi: Document use of $AC_MACRO_PATH and site
+ macro directory, remove note that include path directories are
+ used in reverse order, and document --prepend-include option.
+ * lib/autom4te.in: Use --prepend-include instead of --include.
+ * tests/wrapsh.in: Use --prepend-include instead of --include.
+
+2002-07-17 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PACKAGE): `_' is allowed in
+ tarnames.
+ * doc/autoconf.texi (Initializing configure): Adjust.
+
+2002-07-17 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_REALLOC, _AC_FUNC_REALLOC)
+ (_AC_FUNC_MALLOC): New.
+ (AC_FUNC_MALLOC): Use the latter.
+ Define HAVE_MALLOC to 0 if broken.
+ * doc/autoconf.texi (Particular Functions): Adjust.
+
+2002-07-16 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/c.m4 (AC_C_BACKSLASH_A): New.
+ * doc/autoconf.texi (C Compiler): Adjust.
+
+2002-07-09 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi: Properly set the ``header'' part.
+
+2002-07-09 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Systemology): Some about Darwin.
+
+2002-07-09 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * lib/autoconf/specific.m4 (AC_CYGWIN, AC_EMXOS2, AC_MINGW32):
+ Don't use AC_REQUIRE in AU_DEFUN.
+
+2002-07-09 Art Haas <ahaas@neosoft.com>
+
+ * doc/autoconf.texi: Use @enddots{} or @dots{} where appropriate.
+
+2002-07-02 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * bin/autoheader.in, bin/autom4te.in, bin/autoreconf.in,
+ bin/autoupdate.in, bin/ifnames.in, lib/Autom4te/General.pm,
+ lib/Autom4te/Struct.pm, lib/Autom4te/XFile.pm: Add local variables
+ so that Emacs setups GNU style for perl-mode and cperl-mode.
+
+2002-06-27 Paul Eggert <eggert@twinsun.com>
+
+ * config/install-sh: Quote $src. Prefer || to test's -o option,
+ as per "Limitations of Builtins".
+ * tests/atspecific.m4 (AT_CHECK_ENV): Likewise, for && vs test -a.
+ * tests/semantics.at (AC_C_BIGENDIAN): Likewise.
+
+ * tests/mktests.sh: Use grep instead of fgrep, as per
+ "Limitations of Builtins".
+
+2002-06-15 Paul Eggert <eggert@twinsun.com>
+
+ * tests/wrapsh.as (AUTOCONF, AUTOHEADER, AUTOM4TE, AUTOM4TE_CFG,
+ autom4te_perllibdir): Set to top build dir or src dir as appropriate,
+ so that we consistently test the just-built programs.
+ * tests/wrappl.as: Likewise.
+
+2002-06-12 Paul Eggert <eggert@twinsun.com>
+
+ * bin/autoconf.as (AUTOM4TE): Default to a fully qualified path
+ name, so that symlinks to 'autoconf' work properly. Bug reported
+ by Bruno Haible.
+ * bin/autoheader.in (AUTOM4TE): Likewise.
+ * bin/autoreconf.in (autoconf, autoheader): Likewise.
+ * bin/autoscan.in (autom4te): Likewise.
+ * bin/autoupdate.in (autom4te): Likewise.
+
+ * lib/autoconf/functions.m4 (_AC_LIBOBJ_FNMATCH): Also check for
+ btowc, to fix a portability bug with diffutils-2.8.2/lib/fnmatch.c
+ on Solaris 2.5.1.
+
+2002-06-11 Andreas Schwab <schwab@suse.de>
+
+ * doc/autoconf.texi: Add more dir entries.
+
+2002-06-10 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * bin/autom4te.in ($cache): Don't define using `$me', the name
+ of the cache should not depend on the name under which autom4te
+ was installed.
+
+2002-06-07 Akim Demaille <akim@epita.fr>
+
+ * tests/tools.at (autoconf: forbidden tokens, basic)
+ (autoconf: forbidden tokens, exceptions): Adjust to the change of
+ words in autom4te.in.
+
+2002-06-07 Peter Eisentraut <peter_e@gmx.net>
+
+ * lib/autoconf/c.m4 (AC_LANG_PROGRAM(C)): Use
+ _AC_LANG_PROGRAM_C_F77_HOOKS.
+
+2002-06-07 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/functions.m4 (AC_REPLACE_FUNC_FNMATCH): Typo,
+ rename as...
+ (AC_REPLACE_FNMATCH): this.
+ * tests/mktests.sh (exclude_list): Exclude AC_REPLACE_FNMATCH,
+ AC_FUNC_FNMATCH_GNU.
+
+2002-06-07 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Systemology): Point to Tru64 docs, and the
+ Rosetta Stone for Unix.
+
+2002-06-07 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (warn_forbidden): When rejecting a token,
+ suggest m4_pattern_allow.
+ Suggested by Adam J. Richter.
+
+2002-06-07 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Initialize
+ ac_config_libobj_dir.
+ (AC_CONFIG_LIBOBJ_DIR): New.
+ * lib/autoconf/functions.m4 (_AC_FUNC_FNMATCH): Split into...
+ (_AC_FUNC_FNMATCH_IF, _AC_LIBOBJ_FNMATCH): these.
+ Use ac_config_libobj_dir to find the replacement files.
+ (AC_FUNC_FNMATCH, AC_FUNC_FNMATCH_GNU): Split into...
+ (AC_FUNC_FNMATCH, AC_FUNC_FNMATCH_GNU, AC_REPLACE_FNMATCH)
+ (AC_REPLACE_FNMATCH_GNU): these.
+ (AC_FUNC_GETLOADAVG): Use ac_config_libobj_dir.
+ * doc/autoconf.texi (Particular Functions, Generic Functions): Adjust.
+ * tests/mktests.sh (ac_exclude_list): Don't check
+ AC_FUNC_GETLOADAVG as it requires getloadavg.c which is not shipped.
+
+2002-06-06 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_LINKS): Fall back on cp
+ if ln doesn't work.
+ * NEWS: Likewise.
+ * doc/autoconf.texi (Configuration Links): Likewise.
+ (Limitations of Usual Tools): Prefer $(LN_S) to ln -s || ln.
+
+2002-06-05 Paul Eggert <eggert@twinsun.com>
+
+ * config/config.guess, config/config.sub, config/texinfo.tex:
+ Update from masters.
+
+2002-05-29 Paul Eggert <eggert@twinsun.com>
+
+ * bin/autom4te.in ($m4): Do not assume that egrep and fgrep exist.
+ * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Likewise.
+ * lib/autoconf/general.m4 (_AC_RUN_LOG_STDERR, AC_EGREP_CPP):
+ Likewise.
+ * lib/autoconf/Makefile.am (check-local): Likewise.
+ * lib/autoconf/status.m4 (AC_CONFIG_HEADER): Likewise.
+ * lib/autoconf/types.m4 (commentary only): Likewise.
+ * lib/autotest/general.m4 (AT_INIT, AT_CHECK): Likewise.
+ * lib/autotest/Makefile.am (check-local): Likewise.
+ * lib/m4sugar/Makefile.am (check-local): Likewise.
+ * tests/atspecific.m4 (AT_CONFIGURE_AC, AT_CHECK_DEFINES): Likewise.
+ * tests/mktests.sh (egrep): New var; use it instead of plain egrep.
+
+ * lib/autoconf/programs.m4 (AC_PROG_EGREP, AC_PROG_FGREP): New macros.
+ * doc/autoconf.texi (Particular Programs): Document them.
+ (Limitations of Usual Tools): Warn that egrep and fgrep may not exist.
+ * NEWS: Likewise.
+
+2002-05-27 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/types.m4 (AC_TYPE_MBSTATE_T): New macro.
+ * NEWS, doc/autoconf.texi (Particular Types): Document it.
+ * lib/autoconf/functions.m4 (_AC_FUNC_FNMATCH): Require it
+ instead of AC_MBSTATE_T, which never existed.
+
+2002-05-23 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Hosts and Cross-Compilation): Specify the
+ version of Autoconf that is discussed.
+
+2002-05-22 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/fortran.m4 (AC_PROG_F77): Remove cf77 and cft77
+ from the default list of compilers to try. Suggested by
+ Kate Hedstrom.
+ * NEWS: Document the above.
+ * doc/autoconf.texi (Fortran 77 Compiler): Don't suggest cf77.
+
+2002-05-17 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/types.m4 (AC_CHECK_MEMBER): Work correctly even if
+ the member is itself an aggregate. Bug reported by Sergey Poznyakoff.
+ This improves on an earlier suggestion by H. Peter Anvin.
+
+2002-05-16 Paul Eggert <eggert@twinsun.com>
+
+ AC_FUNC_FNMATCH now tests only for POSIX compatibility.
+ AC_FUNC_FNMATCH_GNU also tests for GNU extensions.
+ Both macros now accept an optional source-dir arg.
+ New macro AC_GNU_SOURCE to define _GNU_SOURCE.
+
+ * NEWS: Document this.
+ * doc/autoconf.texi (Particular Functions, UNIX Variants): Likewise.
+
+ * lib/autoconf/functions.m4 (_AC_FUNC_FNMATCH): New macro.
+ (AC_FUNC_FNMATCH): Use it. Test only for POSIX conformance,
+ not for GNU extensions; this undoes part of the 2000-11-03 change,
+ reverting to 2.13-compatible behavior.
+ Add new optional argument DIR.
+ (AC_FUNC_FNMATCH_GNU): New macro.
+
+ * lib/autoconf/specific.m4 (AC_GNU_SOURCE): New macro.
+
+2002-05-08 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/headers.m4 (AC_HEADER_TIOCGWINSZ):
+ Don't require AC_SYS_POSIX_TERMIOS. The test is unnecessary,
+ and it causes a 'test' syntax error if it fails.
+ Bug reported by Stephen Gildea.
+
+ * lib/autoconf/functions.m4 (AC_FUNC_SETVBUF_REVERSED):
+ If prototypes are supported, use them to check this at compile-time,
+ instead of trying to check it at run-time. If we must do a run-time
+ check, assume that setvbuf is standard when cross-compiling, as
+ nonstandard setvbuf occurs only on ancient and unlikely hosts.
+ Bug reported by Paul D. Smith.
+
+ * lib/autoconf/functions.m4 (AC_FUNC_GETLOADAVG): Add optional
+ argument specifying location of getloadavg.c. This removes a
+ FIXME. This idea was taken from Jim Meyering's implementation in
+ textutils.
+ * doc/autoconf.texi (Particular Functions): Document this.
+ Also, mention HAVE_NLIST_H rather than NLIST_STRUCT, since
+ that's what the code does; this fixes a bug reported by
+ Paul D. Smith.
+
+2002-05-03 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.in (autoreconf): Rewrite to use Gettext's
+ autopoint instead of gettextize.
+ ($uses_alocal): Rename as...
+ ($uses_aclocal): this.
+ * doc/autoconf.texi (autoreconf Invocation): Adjust.
+ Suggested by Bruno Haible.
+
+2002-05-03 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sugar.m4 (m4_map_sep): New.
+
+2002-04-29 Paul Eggert <eggert@twinsun.com>
+
+ * bin/autoreconf.in (autoreconf): Don't age aclocal.m4's input
+ files to be 1 second older; just set them to be the same time.
+ Also, sleep 1 second after the first aclocal, to work around
+ problems with sub-second time stamps on the input files.
+
+2002-04-29 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * doc/autoconf.texi: Mention "set -e -x" lossage
+ under node "Limitations of Builtins".
+
+2002-04-29 Akim Demaille <akim@epita.fr>
+
+ * doc/install.texi: Better wording for setting variables when
+ running configure.
+ From Christian Cornelssen.
+
+2002-04-29 Akim Demaille <akim@epita.fr>
+
+ * tests/m4sh.at (LINENO): If testsuite itself is rewritten because
+ of lack of $LINENO support, then the test will compare the $LINENO
+ in testsuite vs. the lineno in the test file. This is wrong, of
+ course.
+ Be sure to protect it.
+ Reported by Patrick Welche.
+
+2002-04-25 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Obsolete Macros): Typo.
+ Reported by Vladimir Volovich.
+
+2002-04-25 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.in (autoreconf): Don't let aclocal.m4 be older
+ than some of the input files, hence, on the second run of aclocal,
+ if some of its input are younger, make them older.
+ Suggested by Paul Eggert.
+
+2002-04-25 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): sed and `!'.
+ Thanks to Paul Eggert.
+
+2002-04-25 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Let ac_subst_files
+ 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.
+
+2002-04-24 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.in (autoreconf): Run automake after autoconf and
+ autoheader, so that automake does not complain about a missing
+ config.h.in that was to be created.
+
+2002-04-23 Akim Demaille <akim@epita.fr>
+
+ * bin/autoheader.in (parse_args): --warning takes an argument.
+ Fixes PR/220.
+
+2002-04-22 Peter Eisentraut <peter_e@gmx.net>
+
+ * lib/autoconf/general.m4 (_AC_RUN_IFELSE): Remove gmon.out
+ and bb.out when cleaning up.
+
+2002-04-22 Akim Demaille <akim@epita.fr>
+
+ Version 2.53a.
+
+2002-04-22 Akim Demaille <akim@epita.fr>
+
+ * tests/m4sh.at (LINENO): Fix the Zsh skip pattern.
+
+2002-04-22 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Pretty Help Strings): Remove a spurious
+ comma.
+ Reported by Gregory Giannoni.
+
+2002-04-22 Akim Demaille <akim@epita.fr>
+
+ * tests/m4sh.at (LINENO): Skip the test if LINENO cannot be unset.
+ Fixes false failures on Darwin.
+
+2002-04-21 Paul Eggert <eggert@twinsun.com>
+
+ * TODO, bin/autoupdate.in, doc/autoconf.texi,
+ lib/autoconf/general.m4, lib/autoconf/libs.m4,
+ lib/autoconf/status.m4, lib/m4sugar/m4sugar.m4, tests/m4sh.at,
+ tests/tools.at: Minor spelling and grammar fixes.
+
+2002-04-20 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Shell Substitutions): Fix typos in yesterday's
+ ZSH_VERSION fixes. Bug reported by Raja R Harinath.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+ * tests/atgeneral.m4 (AT_INIT): Likewise.
+
+2002-04-19 Paul Eggert <eggert@twinsun.com>
+
+ * NEWS, TODO, bin/autom4te.in, bin/autoreconf.in, bin/autoupdate.in,
+ doc/autoconf.texi, lib/freeze.mk, lib/Autom4te/Struct.pm,
+ lib/autoconf/autoheader.m4, lib/autoconf/c.m4,
+ lib/autoconf/functions.m4, lib/autoconf/general.m4,
+ lib/autoconf/lang.m4, lib/autoconf/libs.m4, lib/autoscan/identifiers,
+ lib/autotest/general.m4, lib/m4sugar/m4sh.m4, tests/atgeneral.m4,
+ tests/atspecific.m4, tests/semantics.at, tests/torture.at:
+ Minor spelling and grammar fixes.
+
+ * doc/autoconf.texi: Follow the outline suggested in the GNU
+ Sample Texts sections of the Texinfo 4.2 manual. Most
+ importantly, this makes sure that the copyright notices appear in
+ all output formats. You probably need Texinfo 4.2 to generate
+ the manual now.
+
+ Fix some bugs when using "$@" when there might be zero positional
+ arguments in cases where this matters.
+
+ * bin/autoconf.as: Rewrite so that the problem does not come up.
+ * lib/autoconf/programs.m4 (AC_CHECK_PROG): Likewise.
+ * lib/autoconf/status.m4 (AC_OUTPUT): Likewise.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+
+ * bin/autoheader.in: Use 'case' statement to work around problem.
+ * bin/auto4mte.in: Likewise.
+ * bin/autoreconf.in: Likewise.
+ * bin/autoscan.in: Likewise.
+ * bin/autoupdate.in: Likewise.
+ * bin/ifnames.in: Likewise.
+
+ * doc/autoconf.texi (Shell Substitutions): Document the problem.
+
+ * lib/autotest/general.m4 (AT_INIT):
+ Use Zsh alias to work around problem.
+ * tests/atgeneral.m4 (AT_INIT): Likewise.
+
+ * tests/c.at: We can't have zero arguments, so remove workaround
+ that is not portable to Zsh.
+
+2002-04-19 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * bin/autoupdate.in (handle_autoconf_macros): Honor AU_DEFUNs
+ from aclocal.m4 too.
+
+2002-04-12 Akim Demaille <akim@epita.fr>
+
+ * tests/wrappl.as: New, M4sh precursor of wrappl.in.
+
+2002-04-10 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Install the Zsh
+ 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.
+
+2002-04-09 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * doc/autoconf.texi (Limitations of Make): Mention the issue
+ with indented comments in rules.
+
+2002-04-09 Andreas Schwab <schwab@suse.de>
+
+ * lib/autoconf/status.m4 (_AC_SRCPATHS): Handle empty
+ ac_top_builddir when setting ac_abs_top_builddir.
+
+2002-04-06 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (Systemology): Add link to Unix V7 online docs.
+ (Portable Shell): Cross reference to Systemology.
+
+2002-04-05 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.in (autoreconf): Be sure to accumulate the
+ directories when descending in a SUBDIRS.
+ Reported by Ezra Peisach.
+
+2002-04-04 Andreas Schwab <schwab@suse.de>
+
+ * lib/m4sugar/m4sh.m4 (_AS_PATH_WALK): Only simplify if path
+ contains no literal separators.
+
+2002-04-03 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/status.m4 (_AC_CONFIG_FILE, _AC_CONFIG_HEADER)
+ (_AC_CONFIG_COMMAND, _AC_CONFIG_LINK): New.
+ Use dnl, not the KILL diversion.
+ Extracted from...
+ (AC_CONFIG_FILES, AC_CONFIG_HEADERS, AC_CONFIG_COMMANDS)
+ (AC_CONFIG_LINKS): here.
+ Adjust.
+ Don't use the KILL diversion, as it kills spurious output, which
+ results in failures being hidden.
+ Use m4_defn where appropriate.
+ (AC_CONFIG_IF_MEMBER): Kill the real bug: a spurious parenthesis
+ after the second argument.
+ Use m4_defn.
+ * lib/autom4te.in (Autoconf, Autotest, M4sh): Don't pass --warning
+ syntax, as it is provided by M4sugar.
+ * tests/torture.at (Multiple AC_CONFIG_FILES): New.
+
+2002-04-03 Andreas Schwab <schwab@suse.de>
+
+ * lib/m4sugar/m4sugar.m4 (m4_bmatch): Make sure m4_bregexp is not
+ expanded if $# <= 2.
+
+ * bin/autoreconf.in (autoreconf): Run automake after rerunning
+ aclocal.
+
+2002-04-03 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/lang.m4 (_AC_COMPILER_OBJEXT_REJECT)
+ (_AC_COMPILER_EXEEXT_REJECT): New.
+ Also recognize *.bb and *.bbg as compilation byproducts.
+ (_AC_COMPILER_EXEEXT_DEFAULT, _AC_COMPILER_EXEEXT_O)
+ (_AC_COMPILER_OBJEXT): Use them.
+ Fixes Debian #138666.
+
+2002-04-02 Peter Eisentraut <peter_e@gmx.net>
+
+ Integrate AC_PROG_CC_STDC into AC_PROG_CC.
+
+ * lib/autoconf/c.m4 (AC_PROG_CC_STDC): Rename to _AC_PROG_CC_STDC.
+ AU_DEFUN old name. Use _AC_COMPILE_IFELSE.
+ (AC_PROG_CC): Call _AC_PROG_CC_STDC.
+ (AC_C_INLINE): Do not require AC_PROG_CC_STDC.
+ (AC_C_CONST): Same.
+ (AC_C_INLINE): Same.
+ (AC_C_PROTOTYPES): Same. Require AC_PROG_CC instead.
+ * doc/autoconf.texi, NEWS: Document.
+ * tests/mktests.sh (au_exclude_list): Add AC_PROG_CC_STDC and
+ AC_C_CROSS.
+
+2002-04-02 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Invoke
+ _AS_MKDIR_P_PREPARE.
+
+2002-03-28 Kevin Ryde <user42@zip.com.au>
+
+ * lib/autoconf/c.m4 (AC_C_INLINE): Test with a typedef return value,
+ to avoid versions of HP C which don't allow that.
+
+2002-03-27 Paul Eggert <eggert@twinsun.com>
+
+ * lib/m4sugar/m4sh.m4 (_AS_BASENAME_PREPARE): New macro.
+ (AS_SHELL_SANITIZE): Invoke it.
+ (AS_BASENAME): AS_REQUIRE it, and use $as_basename.
+
+2002-03-26 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Portable Shell): Add pointers to FAQs.
+
+2002-03-26 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Introduction): The GNATS base moved.
+
+2002-03-25 Paul Eggert <eggert@twinsun.com>
+
+ * tests/m4sh.at: Don't rely on "PATH=test:$PATH test-1" working
+ as POSIX requires, as it doesn't work with Zsh.
+ * doc/autoconf.texi (Assignments): Document the problem.
+
+2002-03-25 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * doc/autoconf.texi (Limitations of Make): Mention more issue
+ about VPATH, overriding of macros in sub-makes, and handling of
+ SHELL.
+
+2002-03-21 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Here-Documents): Mention Solaris 8 dtksh
+ problem with here-document buffer boundaries.
+
+ * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Unset ENV and BASH_ENV
+ when reinvoking the shell, to work around problems with installers
+ who put strange things like "cd" commands in their environments.
+
+2002-03-19 Akim Demaille <akim@epita.fr>
+
+ * tests/semantics.at (AC_C_BIGENDIAN): s/unknow/unknown/.
+ From Aaron Ucko.
+
+2002-03-19 Akim Demaille <akim@epita.fr>
+
+ * bin/autoscan.in (scan_file): Specify the location in `&used'
+ invocations.
+ From Nicolas Joly.
+
+2002-03-19 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi: Adjust @code/@command, @xref/@ref usage.
+ From Nishio Futoshi.
+
+2002-03-19 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sugar.m4 (m4_define_default, m4_fst, m4_map): New.
+
+2002-03-18 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Programming in M4sh): Add AS_MKDIR_P.
+ (Limitations of Usual Tools): Add mkdir section.
+
+ * lib/m4sugar/m4sh.m4 (_AS_MKDIR_P_PREPARE): New macro.
+ (AS_MKDIR_P): Require it. Use mkdir -p if available, falling
+ back on AS_DIRNAME to compute prefixes otherwise; this is
+ roughly what mkinstalldirs does. That way, we need not have
+ our own filename disassembler. The old disassembler did not
+ work with Solaris 8 dtksh, which is ksh Version M-12/28/93d.
+
+ * lib/autotest/general.m4 (AT_INIT, AT_CLEANUP):
+ Create at_test_all by a series of assignments,
+ not by a single assignment of a long string. The latter causes ksh
+ version 11/16/88g to silently misbehave on OpenServer 5.0.6a,
+ presumably because of a buffer overrun.
+
+2002-03-14 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autotest/general.m4 (at_times_skip):
+ Renamed from at_times. Now a boolean.
+ ksh93 Version M-12/28/93d doesn't like 'x=times; $x'; it
+ says 'times: not found'.
+
+2002-03-14 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.in (&study_gettextize): New.
+ (&autoreconf): Handle newest gettextize.
+ Rerun aclocal if needed.
+ Suggested by Andreas Schwab.
+
+2002-03-13 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Special Shell Variables): More about IFS.
+
+2002-03-13 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Header Portability): New.
+ Add information about stdint.h and inttypes.h from Paul Eggert.
+
+2002-03-13 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Some about `cp
+ -p'.
+ From Bob Proulx.
+
+2002-03-12 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sh.m4 (AS_BASENAME_EXPR): AS_REQUIRE, not
+ m4_require.
+
+2002-03-11 Andreas Schwab <schwab@suse.de>
+
+ * configure.ac: Explicitly check for EMACS since AM_PATH_LISPDIR
+ does not do it if --with-lispdir is given.
+
+2002-03-08 Akim Demaille <akim@epita.fr>
+
+ Version 2.53.
+
+2002-03-08 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Subdirectories): Clarify that the
+ subdirectory should exist.
+
+2002-03-08 Akim Demaille <akim@epita.fr>
+
+ * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
+
+2002-03-08 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (&handle_m4): Do not foreach with `$_' as it
+ aliases the actual variables, and modifications of the former
+ affect the latter.
+
+2002-03-08 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (&handle_m4): Protect us from corrupted file
+ because of C-c: have m4 output in tmp files, then mv them.
+
+2002-03-08 Akim Demaille <akim@epita.fr>
+
+ * bin/autoconf.in, bin/autoheader.in, bin/autom4te.in,
+ * bin/autoreconf.in, bin/autoscan.in, bin/autoupdate.in,
+ * bin/ifnames.in: Copyright update.
+
+2002-03-08 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Invoking autom4te): New.
+
+2002-03-05 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Specifying Names): Clarification suggested by
+ Kevin Ryde.
+
+2002-03-05 Akim Demaille <akim@epita.fr>
+
+ Version 2.52i.
+
+2002-03-04 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (AC_LIBOBJ vs. LIBOBJS): New.
+ * lib/autoconf/general.m4 (AC_INIT): More informative error
+ message for LIBOBJ.
+
+2002-03-04 Akim Demaille <akim@epita.fr>
+
+ * lib/freeze.mk ($(build_libdir)/m4sugar/version.m4): New, for
+ parallel builds.
+
+2002-03-04 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Transforming Names): Equality between 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.
+
+2002-03-04 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Evaluation Macros): New.
+ * lib/m4sugar/m4sugar.m4 (m4_lquote): Remove, it is totally
+ useless.
+ (_m4_foreach): Define the variant with immediate evaluation so
+ that it contains exactly the items, not an expression which
+ evaluation is the current item.
+ (m4_re_string, m4_re_word): Don't over quote them.
+
+2002-03-04 Akim Demaille <akim@epita.fr>
+
+ Instead of having stacking `shift's evaluated at the end, let
+ `foreach' loops immediately evaluate them.
+
+ * lib/m4sugar/m4sugar.m4 (m4_quote, m4_dquote): Use $@ rather than
+ $*. This is the n-th time I change my mind, but hopefully this is
+ the last...
+ (m4_lquote): New.
+ (m4_text_wrap): Use m4_foreach, which is finally correct _and_
+ efficient.
+ (m4_foreach_quoted, m4_car_quoted, _m4_foreach_quoted): Remove, as
+ it was only a hack for m4_text_wrap.
+ (m4_car2): Remove, replaced by...
+ (m4_cdr): New.
+ (_m4_foreach): Adjust.
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Adjust, and use
+ m4_bpatsubst for clarification.
+
+2002-03-04 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Changequote is Evil): New.
+
+2002-03-03 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (Portable Shell): Mention 32-byte #! length limit
+ on old systems like SunOS.
+
+2002-03-01 Peter Eisentraut <peter_e@gmx.net>
+
+ * lib/autoconf/c.m4, lib/autoconf/fortran.m4,
+ lib/autoconf/functions.m4, lib/autoconf/general.m4,
+ lib/autoconf/headers.m4, lib/autoconf/lang.m4,
+ lib/autoconf/programs.m4, lib/autoconf/status.m4: Improve spelling
+ of messages.
+
+2002-02-28 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Suggest a title to the
+ message to be sent.
+
+2002-02-28 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (Function Portability): Add va_copy and va_list.
+
+2002-02-25 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_SETPGRP): Fix the test.
+ From Akinori Musha.
+
+2002-02-13 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * lib/Autom4te/XFile.pm (getline, getlines): New functions,
+ translate \r\n to \n.
+
+2002-02-07 Akim Demaille <akim@epita.fr>
+
+ Version 2.52h.
+
+2002-02-07 Akim Demaille <akim@epita.fr>
+
+ Fix Autoconf PR/209.
+ Also reported by Frank Denis.
+
+ * lib/m4sugar/m4sh.m4 (_AS_PATH_WALK): Don't over quote.
+
+2002-02-07 Akim Demaille <akim@epita.fr>
+
+ Fix Autoconf PR/207:
+ 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.
+
+2002-02-07 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Limitations of Builtins): More about
+ case/esac.
+
+2002-02-06 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_COMMANDS): Don't output empty
+ case/esac, some shells don't support it.
+ Reported by Zack Weinberg.
+ * tests/torture.at (AC_CONFIG_COMMANDS with empty commands): New.
+
+2002-02-06 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): When handling --keywords, be
+ sure not to introduce newlines in at_groups.
+ * lib/autotest/Makefile.am (autotest.m4f): Typo.
+
+2002-02-06 Akim Demaille <akim@epita.fr>
+
+ * tests/torture.at (Configuring subdirectories): Skip if aclocal
+ is not available.
+
+2002-02-05 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Specific Compiler Characteristics):
+ Describe HP-UX cc bug workaround more accurately.
+ * lib/autoconf/types.m4 (AC_CHECK_SIZEOF): Cast to long,
+ not unsigned long.
+ * tests/semantics.at (AC_CHECK_SIZEOF): Check non-GCC
+ cross-compilers, too. This undoes some of the most recent change
+ to this file.
+
+2002-02-05 Akim Demaille <akim@epita.fr>
+
+ * tests/Makefile.am (check_SCRIPTS): Use it, instead of WRAPPERS,
+ to make sure they are up to date when `check' is run.
+
+2002-02-05 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Making testsuite Scripts): Document
+ package.m4.
+
+2002-02-05 Akim Demaille <akim@epita.fr>
+
+ * lib/freeze.mk: New.
+
+2002-02-05 Akim Demaille <akim@epita.fr>
+
+ Implement `autom4te --freeze'.
+
+ * bin/autom4te.in (&freeze): New.
+ * lib/autoconf/autoconf.m4, lib/autotest/general.m4,
+ * lib/m4sugar/m4sh.m4: Don't include files given by autom4te.
+
+2002-02-05 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (&parse_args): Implement `frozen files are
+ optional are the sum of the previous files on the command line'.
+ Also, pass `--reload-state=' on them, so...
+ (handle_m4): don't.
+ * lib/autom4te.in (Autotest, Autoconf): Rely on M4sh.
+ (M4sh): Rely on M4sugar.
+ (Autotest, M4sh, M4sugar): Use frozen files.
+
+2002-01-31 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PACKAGE): Accept $4.
+ * doc/autoconf.texi (Initializing configure): Adjust.
+
+2002-01-30 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PACKAGE): Map non
+ alphanumeric to `-' instead of `_'.
+
+2002-01-30 Akim Demaille <akim@epita.fr>
+
+ * tests/semantics.at (AC_CHECK_SIZEOF): Split into two tests: one
+ for plain code, the other for cross-compilation code. The latter
+ is now run with GCC only.
+ * doc/autoconf.texi (Compilers and Preprocessors): New.
+
+2002-01-30 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PACKAGE): Support pre-defined
+ values.
+ * doc/autoconf.texi (Initializing configure): Explain how to
+ change AC_INIT default values.
+
+2002-01-29 Akim Demaille <akim@epita.fr>
+
+ * tests/torture.at (Configuring subdirectories): Use configure.in,
+ so that aclocal 1.4 works.
+ Reported by Alexandre Duret-Lutz and Larry Schmitt.
+
+2002-01-28 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Writing testsuite.at): AT_CLEANUP no longer
+ needs an argument.
+
+2002-01-28 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Don't be ridiculous: adjust
+ AUTOTEST_PATH *after* it was set.
+ Don't put `.' in the PATH: the user should be precise and `./' if
+ needed. In addition, given that the test suite does some `cd', if
+ `.' is in the path, the `tested programs' sections will report
+ programs found in the test suite's directory, while during the
+ tests (performed in their own directory), these programs are no
+ longer visible. In other words, the results is confusing and
+ useless.
+ * tests/m4sh.at: Adjust: don't rely on `.' being in the PATH.
+
+2002-01-24 Akim Demaille <akim@epita.fr>
+
+ Version 2.52g.
+
+2002-01-24 Akim Demaille <akim@epita.fr>
+
+ * bin/autoheader.in, bin/autoconf.in, bin/autoscan.in,
+ * doc/autoconf.texi: Finally add Akim as an author.
+
+2002-01-24 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Use PATH_SEPARATOR.
+ (_AS_PATH_SEPARATOR_PREPARE): Don't expect $SHELL to be
+ Bourne. Use /bin/sh.
+ From Andreas Buening.
+
+2002-01-24 Akim Demaille <akim@epita.fr>
+
+ * config/config.guess, config/config.sub, config/texinfo.tex:
+ Update from masters.
+
+2002-01-24 Akim Demaille <akim@epita.fr>
+
+ * Makefile.am (AUTOMAKE_OPTIONS): 1.5b.
+ * config/auxdir.m4, config/cond.m4, config/depend.m4,
+ * config/init.m4, config/install-sh.m4, config/lispdir.m4,
+ * config/missing.m4, config/sanity.m4, config/select.m4,
+ * config/strip.m4: Remove, to ease sync'ing with any version of
+ Automake.
+
+2002-01-24 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS)
+ (_AC_INIT_PREPARE): Support -n as --no-create, as documented.
+ Reported by Geir Ove Myhr.
+
+2002-01-21 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_MMAP): #Undef malloc.
+
+2002-01-21 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/General.pm (getopt): Use a more GNUish error
+ message on invalid options.
+ * bin/autom4te.in (parse_args): Don't use
+ Autoconf::General::getopt with non valid options.
+
+2002-01-17 Jim Meyering <meyering@lucent.com>
+
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Initialize
+ $ac_cv_exeext so we don't use an old, invalid, cached value.
+
+2002-01-11 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_STRNLEN): New, from Jim
+ Meyering.
+ * doc/autoconf.texi (Function Portability): Document the strnlen
+ limitation.
+ (Particular Functions): Document AC_FUNC_STRNLEN.
+ * lib/autoscan/functions: Adjust.
+
+2002-01-06 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Don't create
+ package.m4, since is really depends upon configure.ac, not
+ configure.
+ * doc/autoconf.texi (testsuite Scripts): Adjust.
+ * tests/Makefile.am (package.m4): New.
+ EXTRA_DIST it since its a source.
+
+2002-01-06 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Move the AC_SUBST
+ 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.
+
+2002-01-06 Akim Demaille <akim@epita.fr>
+
+ * bin/autoscan.in (scan_file): Use `&used'.
+
+2002-01-03 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Output): Improved wording regarding use of
+ AC_OUTPUT.
+ From Olly Betts.
+
+2001-12-18 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (Function Portability): Add notes on sscanf
+ sometimes needing writable input.
+
+2001-12-17 Jim Meyering <meyering@lucent.com>
+
+ * doc/autoconf.texi (New Macros): Tweak wording.
+
+2001-12-14 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): We cleaning up the
+ trailing files, don't apply `-rf' to files which might not be
+ created by configure (core, core.*, and *.core), but just `rm -f'.
+ Suggested by Jonathan Kamens.
+
+2001-12-14 Aaron M. Ucko <amu@alum.mit.edu>
+
+ * lib/autoconf/general.m4: Avoid duplicates in `$ac_configure_args'.
+
+2001-12-14 Akim Demaille <akim@epita.fr>
+
+ * Makefile.am (MAINTAINERCLEANFILES): Remove configure.
+
+2001-12-13 Peter Eisentraut <peter_e@gmx.net>
+
+ * lib/autoconf/status.m4 (_AC_SRCPATHS): Rename buildpath to
+ abs_builddir, top_buildpath to abs_top_builddir, srcpath to
+ abs_srcdir, top_srcpath to abs_top_srcdir.
+ (_AC_OUTPUT_FILES): Adjust.
+ * NEWS, doc/autoconf.texi, lib/autoconf/autotest.m4,
+ * tests/atspecific.m4, tests/autoreconf.in, tests/tools.at,
+ * tests/wrappl.in, tests/wrapsh.in: Adjust.
+
+2001-12-12 Steven G. Johnson <stevenj@alum.mit.edu>
+
+ * lib/autoconf/fortran.m4 (_AC_PROG_F77_V_OUTPUT): Fix failed
+ C/Fortran linking on HP/UX, by extracting the Fortran library
+ search path from the LPATH line in the $F77 -v output.
+
+2001-12-12 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (File Descriptors): Use a clearer layout for the
+ forbidden file descriptors table.
+
+2001-11-26 Akim Demaille <akim@epita.fr>
+
+ * bin/autoscan.in (%c_keywords): Build it at top level.
+ Map to 1 in order to simplify its uses.
+
+2001-11-26 Akim Demaille <akim@epita.fr>
+
+ * bin/autoscan.in (&scan_c_file, &scan_sh_file, &scan_makefile):
+ Remove $filepath, useless.
+ (&scan_makefile): Don't remove the $(FOO), ${FOO} and @FOO@
+ variables, they are really part of the tokens.
+ Split the input line on spaces and then look for tokens.
+ Now autoscan ceases to ask for AC_PROG_LEX for the package Bison
+ because of `lex$U.$(OBJEXT)'.
+ (&scan_files): Use "@list" instead of join.
+ * doc/Makefile.am (CLEANFILES): Add *.fns.
+
+2001-11-26 Akim Demaille <akim@epita.fr>
+
+ * tests/autoreconf.in, tests/autom4te.in, tests/autoupdate.in:
+ Remove, replaced by...
+ * tests/wrappl.in: Be common for all the Perl executables.
+ In particular autoscan and autoheader want -I.
+ * configure.ac: Adjust.
+ * lib/autoscan/headers: errno.h is portable.
+
+2001-11-26 Akim Demaille <akim@epita.fr>
+
+ * bin/autoscan.in (used): New.
+ Use it.
+
+2001-11-26 Akim Demaille <akim@epita.fr>
+
+ * bin/autoscan.in (&scan_c_file): Better parsing of CPP
+ directives.
+ (&scan_sh_file): Remove a duplicate pattern.
+ (&check_configure_ac): Use long options.
+ * lib/autoscan/headers (alloca.h): Check with AC_FUNC_ALLOCA.
+
+2001-11-26 Akim Demaille <akim@epita.fr>
+
+ * bin/autoscan.in (scan_c_file): Fix the handling of C comments.
+ Before, having a line containing the opening of a multi line
+ comment made the whole line be ignored.
+
+2001-11-26 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Using an Autotest Test Suite): New.
+ (testsuite Scripts): Be one of its subsection.
+ (Autotest Logs): New.
+
+2001-11-26 Akim Demaille <akim@epita.fr>
+
+ Test groups are now run two directories deeper.
+
+ * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Replace srcdir,
+ top_srcdir and top_builddir with at_srcdir, at_top_srcdir and
+ at_top_builddir.
+ * lib/autotest/general.m4 (AT_INIT): Compute srcdir,
+ top_srcdir, builddir and top_builddir.
+ Use `at_*dir' relatively to the directory containing the
+ suite, use `*dir' when relatively to the current group dir.
+
+2001-11-25 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * doc/autoconf.texi, TODO, lib/autoconf/fortran.m4,
+ lib/autoconf/functions.m4, lib/autoconf/headers.m4,
+ tests/atgeneral.m4, tests/tools.at, tests/atspecific.m4: Fix
+ spelling errors.
+
+2001-11-22 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * doc/autoconf.texi (Using System Type): Add an example of `case
+ $host' usage so people quit using `case $target' everywhere.
+
+2001-11-22 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Installation Directory Variables): Englishoes
+ spotted by Jim Meyering.
+
+2001-11-16 Paul Eggert <eggert@twinsun.com>
+
+ This patch implements a `long double' suggestion by Oliver Kiddle.
+
+ * lib/autoconf/c.m4 (AC_LANG_BOOL_COMPILE_TRY(C)): Make the array
+ static, to catch errors if the value isn't known at compile-time
+ and the compiler supports dynamic arrays. Change its name from
+ `_array_' to `test_array' to avoid potential name clashes.
+ (AC_C_LONG_DOUBLE): Make it a compile-time test, not a run-time
+ test. Do not define HAVE_LONG_DOUBLE if `long double' is no
+ better than double. Catch a bug in GCC 2.95.2 x86.
+ * doc/autoconf.texi (C Compiler): Document the above.
+ * NEWS: Likewise.
+
+2001-11-13 Akim Demaille <akim@epita.fr>
+
+ * tests/m4sh.at (LINENO): Protect from autom4te's substitution by
+ hand.
+ * tests/tools.at: Don't protect dnl, AT_DATA_M4SH does.
+
+2001-11-13 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): After having run the test
+ group, go back to the initial directory, not to at_suite_dir.
+
+2001-11-13 Akim Demaille <akim@epita.fr>
+
+ * tests/atspecific.m4 (AT_DATA_M4SUGAR, AT_DATA_M4SH)
+ (AT_DATA_AUTOCONF): Also protect @&t@ from autom4te.
+ (AT_CHECK_AUTOCONF, AT_CHECK_AUTOHEADER): Pass no --include
+ option.
+ (AT_CHECK_CONFIGURE): Use absolute paths.
+ (_AT_CHECK_AC_MACRO): Create aclocal.m4 with AC_STATE_SAVE in it.
+ The problem is still the old one: there is no means in M4 (that I
+ know about) to create a defining macro, because there is no means
+ to create `$1' etc., therefore, the defining macro ``swallows''
+ all the arguments meant to the defined macro.
+
+2001-11-13 Akim Demaille <akim@epita.fr>
+
+ * tests/atspecific.m4 (AT_DATA_AUTOCONF): New.
+ (AT_CONFIGURE_AC): Output the definition of AC_STATE_SAVE in
+ configure.ac.
+ * tests/aclocal.m4: Remove, as it is no longer used.
+
+2001-11-13 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4: Change `tests?' into `groups?' in
+ variable names when referring to a single test group, or to
+ `suite' when referring to the whole test suite.
+ `at_last_test' is removed: m4 compute at_format itself.
+ (at_stdout, at_stder1, at_stderr): New variables.
+ (AT_CHECK): Use them.
+
+2001-11-13 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Be sure to put `.', relative,
+ in PATH.
+ Create `testsuite.dir/003/run' instead of `testsuite.003'.
+ Do it as soon as a test fails, don't wait till the end of the test
+ suite.
+ Don't remove $as_me.[0-9]*, since these files no longer exist.
+
+2001-11-13 Akim Demaille <akim@epita.fr>
+
+ * tests/tools.at: Use absolute paths, since we are no longer run
+ in place.
+
+2001-11-13 Akim Demaille <akim@epita.fr>
+
+ Now that tests are running in their own private dir, there is no
+ need to list the files to remove at the end of tests groups.
+
+ * lib/autotest/general.m4 (_AT_CLEANUP_FILE, AT_CLEANUP_FILES):
+ (AT_data_files, at_data_files): Remove.
+ (AT_CLEANUP, AT_DATA): Simplify.
+ (AT_INIT): Adjust.
+ Remove the group dir if !debug && !failed.
+ * tests/atspecific.m4: Adjust.
+
+2001-11-13 Akim Demaille <akim@epita.fr>
+
+ Start a new layout for Autotest: `testsuite' creates
+ `testsuite.dir' in which the at-check-line etc. files are to be
+ found, and `testsuite.dir/003' where the test group 3 is run.
+
+ * lib/autotest/general.m4 (AT_INIT): at_tests_dir,
+ at_check_line_file, at_format, at_test_normalized, at_group_dir
+ are new variables.
+ Create the directories.
+ Use absolute paths for at- files.
+ (AT_CHECK): Adjust.
+
+2001-11-11 Michael Matz <matz@kde.org>
+
+ * m4sugar.m4 (_m4_foreach): Make it linear instead quadratic.
+ (m4_car2): New.
+ (m4_car): Properly quote arguments.
+
+2001-11-13 Akim Demaille <akim@epita.fr>
+
+ * tests/aclocal.m4 (AC_STATE_SAVE): s/LIBOBJS/LIB@&t@OBJS/ to cope
+ with stricter rules on LIBOBJS.
+
+2001-11-12 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/c.m4 (AC_C_PROTOTYPES): Define __PROTOTYPES too.
+ * doc/autoconf.texi (C Compiler): AC_C_PROTOTYPES now defines
+ __PROTOTYPES too.
+
+2001-11-12 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_GETMNTENT): Use AC_CHECK_FUNCS.
+
+2001-11-12 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/c.m4, lib/autoconf/fortran.m4,
+ * lib/autoconf/functions.m4, lib/autoconf/general.m4,
+ * lib/autoconf/headers.m4, lib/autoconf/libs.m4,
+ * lib/autoconf/programs.m4, lib/autoconf/specific.m4,
+ * lib/autoconf/types.m4: When invoking AC_DEFINE and friends,
+ specify to what the macro should be defined (typically to 1).
+
+2001-11-12 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_STRTOD): AC_SUBST POW_LIB.
+ From Jim Meyering.
+
+2001-11-12 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/programs.m4 (_AC_PROG_LEX_YYTEXT_DECL): Use
+ AC_TRY_EVAL to run $LEX, not AC_TRY_COMMAND. This validates the
+ definition used by Automake where LEX is +/- "${missing} lex" and
+ `missing' itself contains variables.
+
+2001-11-12 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Push KILL at the end.
+ Now that M4sh pushes BODY, the comments were output at the end of
+ the test suites.
+
+2001-11-08 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.in (&autoreconf): Run aclocal before tracing, so
+ that we can trace macros from aclocal.m4.
+ Trace AC_PROG_LIBTOOL, not AM_PROG_LIBTOOL, since the latter is
+ obsoleted, and redirect to the former anyway.
+ Reported by Ralf Corsepius.
+
+2001-11-08 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.in (&autoreconf): AC_CONFIG_SUBIDRS are to be
+ processed only if present.
+ * tests/torture.at (Configuring subdirectories): Use autoreconf
+ instead of successive calls to autoconf.
+ Add a nonexistent subdirectory to exercise the patch above.
+ Reported by Ralf Corsepius.
+
+2001-11-08 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (Limitations of Usual Tools): Note HP-UX cc
+ doesn't accept .S files.
+
+2001-11-07 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sugar.m4 (m4_pattern_forbid): Accepts $2.
+ * lib/autoconf/general.m4 (AC_INTI): Forbid LIBOBJS.
+ (_AC_LIBOBJ): s/LIBOBJS/LIB@&t@OBJS/.
+ * bin/autom4te.in (warn_forbidden): New.
+ (handle_output): Use it.
+ Read m4_pattern_forbid with messages.
+
+2001-11-05 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (--normalize): Remove.
+ * lib/autom4te.in: Adjust.
+
+2001-11-05 Akim Demaille <akim@epita.fr>
+
+ * tests/Makefile.am (testsuite): Rename this target as...
+ ($(TESTSUITE)): this.
+ From Nicolas Joly.
+
+2001-11-05 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): When removing
+ the --prefix option, also remove it's argument.
+
+2001-11-05 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (testsuite Invocation): Update.
+ (Writing testsuite.at): Update.
+
+2001-11-03 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi: s/@code/@command/ where appropriate.
+
+2001-11-03 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/General.pm: (&catfile, &canonfile)
+ (&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.
+
+2001-11-03 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/General.pm (@export_vars, @export_subs)
+ (@export_forward_subs): New.
+ Add basename, dirname, and fileparse.
+ (@EXPORT): Adjust.
+ * bin/autoreconf.in (&autoreconf): Fix call to fileparse.
+ Don't look for aclocal flags if we already know aclocal is not
+ used.
+ Move aclocal.m4t only if it exists.
+ Reported by Ezra Peisach.
+
+2001-11-03 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.in (&parse_args): Work only on the configure.ac
+ passed on command line, defaulting to ./configure.ac if present.
+ (&maybe_autoreconf, File::Find): Remove, unused.
+ (&autoreconf): If autoconf is not used, don't try to trace.
+
+2001-11-02 Akim Demaille <akim@epita.fr>
+
+ * configure.ac: Bump to 2.52g.
+
+2001-11-02 Akim Demaille <akim@epita.fr>
+
+ Version 2.52f.
+
+2001-11-02 Akim Demaille <akim@epita.fr>
+
+ * config/config.guess, config/config.sub, doc/standards.texi:
+ * config/lispdir.m4: Update from masters.
+ * configure.ac: Bump to 2.52f.
+
+2001-11-02 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.in (&autoreconf): Set `$aclocal_flags' to ''.
+ Don't run aclocal when aclocal.m4 is not from aclocal.
+ From Ezra Peisach.
+ Don't run libtoolize and gettextize if --install is not given.
+
+2001-11-01 Paul Eggert <eggert@twinsun.com>
+
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): _AS_CR_PREPARE needs to
+ be invoked before _AS_LINENO_PREPARE.
+ (_AS_LINENO_PREPARE): Use as_cr_digits and as_cr_alnum rather
+ than character ranges.
+
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Fix NLS before
+ invoking AS_BASENAME. Set the locale variables to 'C' if
+ possible, as POSIX requires this to get the traditional
+ behavior.
+ * doc/autoconf.texi (Special Shell Variables): Describe the above.
+
+2001-10-31 Paul Eggert <eggert@twinsun.com>
+
+ * lib/m4sugar/m4sh.m4 (_AS_LINENO_WORKS): Do not surround body
+ with {}, as that triggers a bug in Bash 2.05.
+
+ (_AS_LINENO_PREPARE): Use Sed rather than
+ Awk. Fix the sed prepass to work even if there are multiple
+ instances of $LINENO on the same line. Do not substitute for
+ other variables like $LINENOT. Do not check file dates; such a
+ check is unreliable on sufficiently fast machines, and removing
+ the check makes the code simpler and more reliable. Check for
+ output and chmod failures.
+
+ * doc/autoconf.texi (Special Shell Variables): Document
+ the above.
+
+2001-10-31 Akim Demaille <akim@epita.fr>
+
+ * tests/Makefile.am (atconfig): Remove this target, Automake
+ handles it now.
+
+2001-10-31 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Do not
+ AC_CONFIG_FILES(atlocal) as it means a file atlocal.in *must* be
+ provided, while it is optional.
+ * configure.ac: Adjust.
+
+2001-10-26 Paul Eggert <eggert@twinsun.com>
+
+ * NEWS, README, configure.ac, lib/Autom4te/General.pm,
+ lib/Autom4te/Struct.pm:
+ Require Perl 5.005_03 instead of just 5.005, as some tests fail
+ with 5.005_02.
+
+ * doc/autoconf.texi (Special Shell Variables): Document some
+ more LINENO gotchas, particularly with respect to the Awk+Sed hack.
+
+ * lib/m4sugar/m4sh.m4 (_AS_LINENO_WORKS): New macro.
+ (_AS_LINENO_PREPARE): Use it instead of shell eval, since
+ eval $LINENO is not portable in practice.
+
+2001-10-24 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/General.pm (backname): New.
+
+2001-10-24 Akim Demaille <akim@epita.fr>
+
+ * m4/: Remove, merged into...
+ * config/: here.
+
+2001-10-23 Tim Van Holder <tim.van.holder@pandora.be>
+
+ * doc/autoconf.texi (Shellology): Mention the problems with bash
+ 2.05's use of ANSI quoting in its `set' builtin.
+
+2001-10-22 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_STRERROR_R):
+ Rename ac_cv_func_strerror_r_works to ac_cv_func_strerror_r_char_p,
+ and rename HAVE_WORKING_STRERROR_R to STRERROR_R_CHAR_P, since
+ POSIX decided to standardize on the int flavor of strerror_r.
+ Always do char* test, as there's no reason not to.
+ Assign to a char* var, to catch strerror_r that returns int*.
+
+ * doc/autoconf.texi (Particular Functions):
+ Document the above changes. Also, document the fact that
+ AC_FUNC_STRERROR_R defines HAVE_DECL_STRERROR_R.
+
+ * NEWS: Mention HAVE_WORKING_STRERROR_R -> STRERROR_R_CHAR_P.
+
+2001-10-20 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): The name of
+ the executable was missing from the log.
+
+2001-10-20 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/General.pm (&update_file): If destination is
+ 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.
+
+2001-10-20 Akim Demaille <akim@epita.fr>
+
+ * bin/autoheader.in ($localdir, $m4, $SIMPLE_BACKUP_SUFFIX):
+ Remove, dead.
+ * bin/autoreconf.in (&autoreconf): Do not run gettextize when
+ `intl' is already present, as it refuses unless --force.
+ (&parse_args): Use -I, --include instead of the old Autoconf
+ options.
+ ($localdir, $autoconf_dir): Remove.
+ (@include): New.
+ (&maybe_autoreconf): New, to preserve $_ for File::Find.
+
+2001-10-19 Jens Petersen <petersen@redhat.com>
+
+ * lib/autoconf/programs.m4 (AC_PROG_AWK): Prefer gawk to mawk.
+ * doc/autoconf.texi (Particular Programs): Likewise.
+
+2001-10-19 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_FILES): Name the generated
+ file in @configure_input@.
+ Don't mention `automatically' in addition to `generated'.
+ * tests/torture.at (#define header templates): Adjust.
+
+2001-10-19 Akim Demaille <akim@epita.fr>
+
+ * lib/emacs/autoconf-mode.el, lib/emacs/autotest-mode.el: In a
+ comment, explain how to install automatic mode selection.
+ From Russ Allbery.
+
+2001-10-19 Ezra Peisach <epeisach@zif.mit.edu>
+
+ * bin/autoreconf.in (autoreconf): Display the path to the
+ configure.ac being studied.
+
+2001-10-18 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/types.m4 (AC_CHECK_SIZEOF): Cast sizeof to unsigned
+ long, to work around a bug in the HP C compiler version HP92453-01
+ B.11.11.23709.GP.
+
+ * lib/m4sugar/m4sh.m4 (AS_DIRNAME): Use 'dirname' if that works.
+ (AS_BASENAME_EXPR): New macro.
+ (AS_BASENAME_SED): Do not assume GNU sed semantics.
+ (AS_BASENAME): Use 'basename' if that works; then try 'expr';
+ and fall back on 'sed' only if the other two fail. This makes
+ AS_BASENAME act more like AS_DIRNAME.
+ (as_me): Shell-quote the argument of AS_BASENAME, in case $0
+ contains white space.
+ * lib/autoconf/general.m4 (_AC_INIT_SRCDIR):
+ Use AS_DIRNAME, since I think it's now DOS-friendly.
+ * tests/m4sh.at (DIRNAME_TEST): New arg $3.
+ Allow "dirname //FOO" to return either / or //, as POSIX allows
+ either behavior.
+
+2001-10-10 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Recognize
+ `a_out.exe' for OpenVMS 7.1, DEC C 5.5 compiler, via GNV.
+ From Eric Sharkey.
+
+2001-10-10 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sh.m4 (_AS_ECHO_N_PREPARE): m4_defun, not
+ m4_define, since...
+ (_AS_ECHO_N): AS_REQUIREs it.
+
+2001-10-10 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_AC_INCLUDES_DEFAULT_REQUIREMENTS)
+ (AC_INCLUDES_DEFAULT): Move to...
+ * lib/autoconf/headers.m4: here.
+ * lib/autoconf/types.m4: Comment changes.
+ * doc/autoconf.texi: Specify where the default includes are used
+ in the macro prototypes.
+
+2001-10-09 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/autoconf.m4 (m4_patsubst, m4_regexp): New
+ transition code.
+
+2001-10-08 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.in (&autoreconf): Remove debugging code.
+ (&parse_args): Pass verbosity/debugging options to subtools when
+ --debug, not when --verbose.
+ * lib/autom4te.in (Autoreconf-preselections): New.
+ (Autoconf): Use it.
+
+2001-10-08 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.in (autoreconf): Run libtoolize when appropriate.
+
+2001-10-08 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (autoreconf Invocation): Adjust.
+ * bin/autoreconf.in (autoreconf): Run gettextize when appropriate.
+
+2001-10-08 Akim Demaille <akim@epita.fr>
+
+ * tests/tools.at (AT_CHECK_PERL_SYNTAX): Check autoreconf.
+ (Syntax of the shell scripts): Don't.
+ * bin/autoheader.in, bin/autom4te.in, bin/autoreconf.in: Don't
+ bother with $force since...
+ * lib/Autom4te/General.pm: does.
+
+2001-10-08 Akim Demaille <akim@epita.fr>
+
+ * bin/autoreconf.in: Rewrite in Perl.
+ * configure.ac: Adjust.
+ * lib/Autom4te/General.pm (&up_to_date_p): New.
+ * bin/autom4te.in (&up_to_date_p): Use it.
+ Rename as...
+ (&up_to_date): this.
+
+2001-10-08 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sugar.m4 (m4_case, m4_bmatch, m4_normalize)
+ (m4_list_cmp): Use $0 to reinvoke yourself.
+ (m4_patsubsts): New.
+ (m4_strip, m4_version_unletter): Use it.
+ * tests/atspecific.m4 (AT_DATA_M4SUGAR, AT_DATA_M4SH): Likewise.
+
+2001-10-08 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/autoconf.m4, lib/autoconf/general.m4,
+ * lib/autoconf/libs.m4, lib/autoconf/status.m4,
+ * lib/autoconf/types.m4, lib/autotest/general.m4,
+ * lib/m4sugar/m4sh.m4, lib/m4sugar/m4sugar.m4, tests/atspecific.m4,
+ * tests/torture.at: Rename m4_regexp, m4_patsubst, and m4_match to
+ m4_bregexp, m4_bpatsubst, and m4_bmatch.
+ * doc/autoconf.texi (Redefined M4 Macros): Adjust.
+
+2001-10-08 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sh.m4: Use AS_REQUIRE.
+
+2001-10-08 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sh.m4 (AS_DIRNAME_EXPR): Use AS_REQUIRE.
+ * tests/tools.at (AT_DATA_FORBIDDEN): Rename/move/duplicate to...
+ * tests/atspecific.m4 (AT_DATA_M4SUGAR, AT_DATA_M4SH): here.
+ * tests/tools.at, tests/m4sh.at: Use it.
+ * tests/m4sh.at: Don't rely on Autoconf macros.
+ (DIRNAME_TEST): Also exercise the expr variant.
+ * tests/m4sugar.at, tests/atspecific.m4 (AT_CHECK_M4SUGAR): The
+ preferred M4sugar extension is now `.4s'.
+ * tests/README: Remove.
+
+2001-10-08 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sugar.m4 (m4_provide_ifelse): Rename as...
+ (m4_provide_if): this.
+ * lib/m4sugar/m4sh.m4 (AS_REQUIRE): New.
+ * lib/autoconf/general.m4 (AS_DEFUN, AC_DEFUN_ONCE, AC_BEFORE)
+ (AC_REQUIRE, AC_PROVIDE, AC_PROVIDE_IFELSE): Be exact copy of the
+ M4sugar peer, i.e., drop the `AC_PROVIDE_$1' broken marker.
+
+2001-10-08 Akim Demaille <akim@epita.fr>
+
+ Use `add-log-current-defun-function' for ChangeLog creation.
+ Suggested by Tom Tromey.
+
+ * lib/emacs/autotest-mode.el (autotest-mode-map): New.
+ (autotest-mode): Adjust.
+ * lib/emacs/autoconf-mode.el (autoconf-mode-map): Modernize, map
+ 'comment-region onto `C-c ;'.
+ Comments are `#', not `dnl'.
+ (autoconf-current-defun): New.
+ (autoconf-font-lock-keywords): Recognize `m4_defun'.
+
+2001-10-08 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_m4_divert(BODY)): Move to...
+ * lib/m4sugar/m4sh.m4: here.
+ (AS_INIT): Push the BODY diversion, set the #! /bin/sh line.
+ * lib/autoconf/general.m4 (AC_PLAIN_SCRIPT) : Remove.
+ (AT_INIT): Replace AC_PLAIN_SCRIPT with AS_INIT invocation,
+ include handle the m4_pattern_*, no longer push the
+ BODY diversion nor set the /bin/sh line, AS_INIT does it.
+ * lib/autotest/general.m4 (AT_INIT): Likewise.
+ * tests/base.at: Adjust the tests to use AS_INIT.
+ * tests/tools.at (AT_DATA_FORBIDDEN): New.
+ (autoconf: forbidden tokens): Adjust to work on M4sh instead of
+ Autoconf.
+
+2001-10-07 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (config.status Invocation):
+ CONFIG_SHELL defaults to a shell that supports LINENO if available.
+
+ * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): If the current
+ shell does not support LINENO, and if CONFIG_SHELL is unset or
+ empty, and if we can find a shell that does support LINENO,
+ then set CONFIG_SHELL to that shell and then re-execute
+ ourselves with CONFIG_SHELL.
+
+2001-10-05 Paul Eggert <eggert@twinsun.com>
+
+ * tests/Makefile.am (clean-local): Don't invoke $(TESTSUITE) if it
+ doesn't exist. Remove *.tmp, as a .tmp file is created during the
+ build of $(TESTSUITE).
+
+2001-10-05 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Look in the path
+ iff we are a bareword.
+ Reported by Raja R Harinath.
+
+2001-10-05 Akim Demaille <akim@epita.fr>
+
+ * tests/m4sh.at (LINENO): New.
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Be sure to set
+ PATH_SEPARATOR before using it.
+ Fix the absolute path case/esac pattern.
+ Provide $0 as fallback for as_myself.
+ Reported by Raja R Harinath.
+
+2001-10-05 Akim Demaille <akim@epita.fr>
+
+ * Makefile.am, config/Makefile.am, lib/emacs/Makefile.am,
+ * m4/Makefile.am, man/Makefile.am: Add/adjust MAINTAINERCLEANFILES.
+
+2001-10-05 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): New, extracted from...
+ (AS_SHELL_SANITIZE): here. Use it.
+ (_AS_LINENO_PREPARE): Preserve the exit status of $0.lineno.
+ From Paul Eggert.
+
+2001-10-04 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Use a portable
+ combination of Awk and sed to replace $LINENO.
+
+2001-10-02 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Limitations of Builtins): You can't use
+ "source"; it's not portable. Remove confusing and
+ somewhat-incorrect example involving "." and "/".
+
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): "source" -> ".", for
+ compatibility with POSIX shells.
+
+2001-10-02 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Just source 40.lineno
+ instead of exec'ing to preserve $0 and $@.
+
+2001-10-01 Akim Demaille <akim@epita.fr>
+
+ * tests/testsuite (AT_INIT) <at_pass_list>: New.
+ Don't run twice the same test.
+
+2001-10-01 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT) <--help>: Catch up with reality.
+ No longer output the list of tests.
+ <--list>: New option.
+ <--full-help>: Remove.
+ Complete the short/long options duality.
+ Various small adjustments.
+
+2001-10-01 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi: Use @kbd for user input.
+ Always use `$' as shell prompt.
+
+2001-09-30 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/status.m4 (AC_OUTPUT_MAKE_DEFS):
+ Don't use nested parenthesization. This patch was originally
+ suggested to bug-autoconf by Philippe De Muyter on 2000-05-28,
+ but somehow it didn't get incorporated then.
+ * doc/autoconf.texi (Limitations of Usual Tools):
+ Clarify remark about sed and nested parenthesization.
+
+ * lib/autoconf/types.m4 (AC_CHECK_SIZEOF):
+ Report an error if the size cannot be determined even though
+ the type exists.
+ * lib/autoconf/general.m4 (_AC_COMPUTE_INT_COMPILE):
+ Check for `expr' arithmetic overflow, and for compilation failure,
+ and invoke a new argument $4 if either is discovered.
+ This makes _AC_COMPUTE_INT_COMPILE more like _AC_COMPUTE_INT_RUN.
+ (_AC_COMPUTE_INT): Pass IF-FAILS arg to _AC_COMPUTE_INT_COMPILE.
+
+2001-09-28 Akim Demaille <akim@epita.fr>
+
+ * lib/emacs/autoconf-mode.el, lib/emacs/autotest-mode.el: New.
+ * m4/lispdir.m4: New.
+ * aclocal.m4, configure.ac: Adjust.
+
+2001-09-28 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_VICTIMS): Rename as...
+ (AT_TESTED): this.
+ (AT_INIT): More the wrapped section to where it will be expanded.
+ Output `AT_tested' only when existing.
+ Catch unexpanded PACKAGE_STRING and PACKAGE_BUGREPORT.
+
+2001-09-27 Akim Demaille <akim@epita.fr>
+
+ Fix the passing of $? to ACTION-IF-FAILED in AC_TRY_RUN, that
+ 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.
+
+2001-09-27 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Fix bugs spotted by
+ Raja R Harinath:
+ Be sure to detect when $LINENO always returns the same value.
+ Look for the original script, basename($0) is certainly not
+ enough.
+ Pass the CLI arguments to `$as_me.lineno'.
+
+2001-09-25 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Dump the whole config.log.
+ Be sure the close and reopen the LOG fd before and after using tee
+ to extend the log.
+ <at_tests_pattern>: Adjust to the new format of at_help_all.
+
+2001-09-23 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (parse_args): There can be several invocations
+ of --language now.
+
+2001-09-23 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Top): Wrap in @ifnottex.
+
+2001-09-23 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/status.m4 (_AC_SRCPATHS): Compute and provide
+ 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.
+
+2001-09-23 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Common Shell Constructs): Rename as...
+ (Programming in M4sh): this.
+ Promote to @section.
+
+2001-09-23 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Dump config.log last.
+ Pass $at_debug_args to the rerun test suite.
+ * lib/m4sugar/Makefile.am (DISTCLEANFILES): New.
+ * bin/Makefile.am (ETAGS_SH): Don't use characters ranges.
+ From Paul Eggert.
+
+2001-09-23 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (@my_warning): Remove, handled by `autom4te.cfg'.
+
+2001-09-23 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Fix shell
+ over-escaping.
+
+2001-09-23 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/General.pm (&debug): New.
+ * bin/autom4te.in ($language): Move to...
+ (parse_args): here.
+ Handle --language in languages.
+ * lib/autom4te.in (Automake-selections, Autoheader-selections)
+ (Autoscan-selections): New.
+ (Autoconf): Adjust.
+
+2001-09-23 Tim Van Holder <tim.van.holder@pandora.be>
+
+ * m4/auxdir.m4, m4/cond.m4, m4/depend.m4, m4/init.m4,
+ * m4/install-sh.m4, m4/missing.m4, m4/sanity.m4, m4/strip.m4: Updated
+ to match current versions from CVS Automake.
+
+2001-09-23 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * doc/autoconf.texi (Special Shell Variables): Add pdksh output
+ for $LINENO.
+
+2001-09-22 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/autotest.m4: Create `package.m4'.
+ * tests/Makefile.am (package.m4): Remove.
+
+2001-09-22 Akim Demaille <akim@epita.fr>
+
+ Rely on `$LINENO' when possible instead of `__oline__'.
+
+ * 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.
+
+2001-09-21 Tim Van Holder <tim.van.holder@pandora.be>
+
+ * lib/autoconf/functions.m4 (_AC_FUNC_FORK): Replaceded an 8-bit
+ character (u: -> ue) in a code comment.
+ (AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Only run 'ln -s' if we know
+ it works.
+
+2001-09-21 Akim Demaille <akim@epita.fr>
+
+ * Makefile.maint (AUTOM4TE): Neutralize autom4te.
+ Suggested by Jim Meyering.
+
+2001-09-20 Tim Van Holder <tim.van.holder@pandora.be>
+
+ * lib/autoconf/programs.m4: Use extensions listed in
+ $ac_executable_extensions when looking for programs.
+
+2001-09-20 Tim Van Holder <tim.van.holder@pandora.be>
+
+ * lib/autoconf/general.m4: Fix a small Englisho.
+ * lib/autoconf/status.m4: Fix a small typo. Handle DOS paths when
+ setting up ac_dir_suffix and ac_top_builddir.
+ * lib/m4sugar/m4sh.m4: Default CDPATH to $PATH_SEPARATOR, not ':'.
+
+2001-09-20 Tim Van Holder <tim.van.holder@pandora.be>
+
+ * doc/autoconf.texi (File System Conventions): Clarify the use of
+ PATH_SEPARATOR.
+ (Special Shell Variables[PATH_SEPARATOR]): Ditto.
+ (Special Shell Variables[CDPATH]): Mention that $PATH_SEPRATOR should
+ be used instead of ':'.
+ * lib/autotest/general.m4: Replace occurrences of ':' in
+ AUTOTEST_PATH with $PATH_SEPARATOR at test suite startup.
+
+2001-09-20 Tim Van Holder <tim.van.holder@pandora.be>
+
+ * tests/atgeneral.m4: Add basic support for test ranges (e.g. 7-34) as
+ arguments. Fixed a typo.
+
+2001-09-20 Tim Van Holder <tim.van.holder@pandora.be>
+
+ * man/Makefile.am (.x.1): Use @PATH_SEPARATOR@, not ':' to set up
+ $PATH. Also set AUTOM4TE_CFG, so we can process autom4te properly.
+
+2001-09-20 Tim Van Holder <tim.van.holder@pandora.be>
+
+ * bin/autoscan.in: Add 'exec-perl-if-not-run-by-perl'.
+ * bin/autoupdate.in: Ditto.
+ * bin/autoheader.in: Reworded a few comments.
+ * bin/autoconf.in: Reworded help text for a few options.
+ * bin/autoheader.in, bin/autom4te.in, bin/autoreconf.in,
+ * bin/autoscan.in, bin/autoupdate.in: Ditto.
+
+2001-09-20 Tim Van Holder <tim.van.holder@pandora.be>
+
+ * lib/Autom4te/XFile.pm (open): Simplified the error message (we
+ already have $file). Set output files to binary mode (helps avoid
+ CR issues on DOSish systems).
+
+2001-09-19 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4: Englishoes.
+ From Tim Van Holder and Alexey Mahotkin.
+
+2001-09-18 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Common Shell Constructs): New node,
+ documenting AS_DIRNAME.
+ (Limitations of Usual Tools): Refer to it when discussing dirname.
+ Also, update discussion of POSIX standard to reflect latest draft.
+
+ * lib/autoconf/c.m4:
+ (AC_LANG_INT_SAVE(C)): Also support negative values, down to LONG_MIN.
+
+ * lib/autoconf/general.m4 (_AC_COMPUTE_INT_COMPILE):
+ Do not pass a first argument with leading '-'
+ to expr, by parenthesizing initial integers that might be negative.
+
+ * doc/autoconf.texi (Particular Functions): AC_FUNC_GETPGRP
+ now merely checks whether it is an error to pass an argument
+ to getpgrp.
+
+ * lib/autoconf/functions.m4 (_AC_FUNC_GETPGRP_TEST): Remove.
+ (AC_FUNC_GETPGRP): Don't bother with a runtime test. Just check
+ whether it is a (compile-time) error to pass an argument to
+ getpgrp. This simpler test supports the revised documentation,
+ and is all that AC_FUNC_GETPGRP's users really need.
+
+2001-09-18 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Limitations of Make) <$<>: New.
+
+2001-09-18 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Limitations of Usual Tools) <find>: More about
+ `{}'.
+ * lib/autotest/general.m4 (AT_INIT): Adjust.
+
+2001-09-18 Paul Wagland <paul@wagland.net>
+
+ * tests/m4sh.at: Ensure that AS_DIRNAME handles '/', '//' and '///'
+ correctly.
+ Add test for AS_BASENAME.
+ * lib/m4sugar/m4sh.m4: Fix AS_BASENAME so that it passes the previous
+ added test. It now correctly handles /1/2/3/, returning '3' not ''.
+ Added AS_BASENAME_SED to make the interface the same as AS_DIRNAME.
+ * tests/base.at: Fixed the expected responses. The old ones were
+ one line out...
+ * lib/autoconf/general.m4: Fixed AC_PREFIX_PROGRAM, it now behaves as
+ the documentation claims it should (and how it behaved in 2.13).
+
+2001-09-18 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): No INIT-CMDS in
+ the AC_CONFIG_COMMANDS invocation.
+ This also solves the name clash problems.
+ Don't set the package's ID.
+ * lib/m4sugar/Makefile.am (version.m4): Revamp.
+ No longer to be shipped.
+ (version.in): Remove.
+ * lib/m4sugar/m4sugar.m4, lib/autoconf/general.m4,
+ * lib/autoconf/status.m4: Adjust.
+ Use `m4_PACKAGE_STRING'.
+ * lib/autotest/general.m4 (AT_INIT): N-th signature change: now
+ the only optional argument is the name of the test suite.
+ Expect `package.m4' to define the package signature.
+ * lib/autom4te.in (Autotest): Add `package.m4?'.
+ * tests/Makefile.am (package.m4): New.
+ * tests/suite.at: ifnames is a victim.
+
+2001-09-18 Akim Demaille <akim@epita.fr>
+
+ * lib/autom4te.in (Autoconf): Preselect AM_CONDITIONAL,
+ AC_LIBSOURCE, AC_CONFIG_FILES.
+ * lib/autotest/general.m4 (AT_INIT): Don't abort when a tested
+ program version string doesn't match the package's.
+ * lib/autoconf/general.m4 (AC_CACHE_VAL): Reestablish the space
+ after `(cached)'.
+
+2001-09-17 Paul Eggert <eggert@twinsun.com>
+
+ * lib/autoconf/c.m4: (AC_LANG_INT_SAVE(C)):
+ Allow expression to return any value that can fit into unsigned long
+ (not int, as before). Check for output errors.
+
+2001-09-17 Bruno Haible <haible@ilog.fr>
+
+ * lib/autoconf/c.m4: (AC_LANG_INT_SAVE(C)):
+ Always include <stdio.h> and <stdlib.h>. Evaluate
+ the expression in an extra function before these includes. Call
+ fprintf "%d" only after ensuring the argument is of type 'int'.
+ Reported by Wayne Chapeskie <waynec@spinnaker.com>.
+
+2001-09-17 Paul Eggert <eggert@twinsun.com>
+
+ Fix bug reported by Paul Townsend on AIX 4.3.3.0 with CFLAGS=-O4
+ or CFLAGS=-O5. In that case, the linker has a relaxed view of
+ fatal errors, and AC_CHECK_LIB causes it to include libraries even
+ when they don't exist.
+
+ * lib/autoconf/headers.m4 (AC_HEADER_DIRENT): Use AC_SEARCH_LIBS,
+ not AC_CHECK_LIB, so that we don't use -ldir or -lx if we don't
+ need it.
+
+ * lib/autoconf/specific.m4 (AC_ISC_POSIX): Replace the old, crufty
+ version with the version used by fileutils 4.1, except use
+ AC_SEARCH_LIBS, not AC_CHECK_LIB, so that we don't use -lcposix if
+ we don't need it.
+
+ * doc/autoconf.texi (AC_ISC_POSIX): Describe new behavior.
+
+2001-09-13 Akim Demaille <akim@epita.fr>
+
+ * tests/base.at, tests/m4sh.at: Be sure to issue the bangshe line
+ _first_.
+ Reported by Gerrit P. Haase.
+
+2001-09-13 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Reset `AT_victims' so that
+ m4_defn'ing is valid.
+
+2001-09-13 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sugar.m4 (m4_append_uniq): New.
+ * lib/autotest/general.m4 (AT_VICTIMS, AT_KEYWORDS, _AT_CLEANUP_FILE):
+ Use it.
+
+2001-09-13 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sugar.m4 (_AS_QUOTE_IFELSE, _AS_BOX_INDIR): Use
+ m4_match.
+ (m4_re_escape): New.
+ * lib/autoconf/status.m4 (AC_CONFIG_IF_MEMBER): Use it.
+ * lib/autoconf/general.m4 (AC_CACHE_SAVE): Use m4_match.
+ * lib/autoconf/status.m4 (AC_CONFIG_IF_MEMBER, AC_CONFIG_LINKS):
+ Likewise.
+ * lib/autoconf/types.m4 (_AC_CHECK_TYPE_REPLACEMENT_TYPE_P)
+ (_AC_CHECK_TYPE_MAYBE_TYPE_P, AC_CHECK_MEMBER): Likewise.
+ * lib/autotest/general.m4 (AT_INIT): Rename AT_TESTS_ALL as
+ AT_tests_all for consistency.
+ Set at_victims.
+ (AT_VICTIMS): Similar to AT_KEYWORDS.
+ (_AT_CLEANUP_FILE_IF): Use m4_match and m4_re_escape.
+
+2001-09-13 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Fix stupid bugs.
+
+2001-09-13 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Create and remove
+ `$as_me.[0-9]+' instead of `debug-[0-9]+.sh', so that multiple
+ test suites can cohabit.
+
+2001-09-13 Akim Demaille <akim@epita.fr>
+
+ * tests/mktests.sh: Don't output banners for empty test files.
+
+2001-09-13 Akim Demaille <akim@epita.fr>
+
+ Test suites can be run independently of configure.
+
+ * lib/m4sugar/m4sh.m4 (_AS_ECHO, _AS_ECHO_N_PREPARE): New.
+ * lib/autoconf/programs.m4 (_AC_PROG_ECHO): Remove.
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Adjust: AC_SUBST
+ ECHO_N etc.
+ * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Don't ask for at_n
+ and at_c.
+ * lib/autotest/general.m4: Use ECHO_*.
+
+2001-09-13 Akim Demaille <akim@epita.fr>
+
+ * bin/ifnames.in: Rewrite in Perl.
+ * configure.ac: Don't look for AWK.
+ * tests/tools.at (AWK portability): Remove.
+ (Syntax of the shell scripts): Don't check ifnames.
+ (AT_CHECK_PERL_SYNTAX): New.
+ (Syntax of the Perl scripts): Check ifnames.
+ * tests/ifnames: New.
+
+2001-09-13 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Let --keywords also match
+ test group titles.
+ * tests/atspecific.m4 (AT_CHECK_AU_MACRO): AT_KEYWORDS(autoupdate).
+ Remove all the other keywords.
+
+2001-09-10 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Remove the diversion HELP and
+ SETUP: no longer used.
+ Support -k, --keywords.
+ <at_help>: Be `no', `short', or `long'.
+ <at_help_all>: New variable.
+ (AT_KEYWORDS): New.
+ (AT_CLEANUP_FILE_IFELSE, AT_CLEANUP_FILE): Rename as...
+ (_AT_CLEANUP_FILE_IF, _AT_CLEANUP_FILE): these.
+ (_AT_CLEANUP_FILE_IF): Simplify the regexp.
+ (AT_SETUP): Reset AT_line, AT_keywords, AT_description.
+ No longer fill the HELP diversion.
+ (AT_CLEANUP): Use them.
+ * lib/m4sugar/m4sugar.m4 (m4_append): Support a separator.
+ (m4_list_append): Remove.
+
+ Spread a few keywords in the Autoconf test suite.
+
+2001-09-10 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Don't pass
+ PATH_SEPARATOR, let M4sh compute it.
+ * lib/m4sugar/m4sh.m4 (_AS_PATH_SEPARATOR_PREPARE): New.
+ * lib/autoconf/programs.m4 (AC_SHELL_PATH_WALK): Use PATH_SEPARATOR.
+ Move to...
+ * lib/m4sugar/m4sh.m4 (_AS_PATH_WALK): Here.
+ Simplify when the path is not a literal.
+ (AS_UNAME): Use it to report PATH.
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE_FS_SEPARATORS): Remove.
+ (_AC_INIT_DEFAULTS): AC_SUBST PATH_SEPARATOR.
+ * lib/autoconf/programs.m4 (AC_PROG_INSTALL): Use _AS_PATH_WALK.
+ * lib/autotest/general.m4 (AT_INIT): Use _AS_PATH_WALK to
+ normalize the path, and to look for victims.
+ * tests/semantics.at (AC_PATH_PROG & AC_PATH_PROGS)
+ (AC_CHECK_PROG & AC_CHECK_PROGS): Use PATH_SEPARATOR.
+
+2001-09-07 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (&handle_m4): `< /dev/null' so that GNU M4 1.5
+ doesn't neutralize SIGINT, making autoconf etc. non interruptible.
+ * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Move the package
+ related variables into `at_package_*'.
+ * lib/autotest/general.m4 (AT_VICTIMS): New.
+ (AT_INIT): Adjust for stand-alone/embedded test suites.
+ (AS_MESSAGE_LOG_FD): Define and use it.
+ * tests/suite.at (AT_VICTIMS): Use it.
+ * tests/tools.at (autoupdating AC_PREREQ): Don't depend upon
+ at_version.
+
+2001-09-07 Akim Demaille <akim@epita.fr>
+
+ Move toward possibly stand-alone test suites.
+
+ * lib/autotest/general.m4: Stop displaying srcdir everywhere as,
+ in addition, it introduces useless differences in logs.
+ (AT_INIT): Let atconfig and atlocal be both optional.
+ Adjust PATH computation.
+ * lib/m4sugar/m4sh.m4 (AS_UNAME): More readable display of PATH.
+
+2001-09-07 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/Makefile.am (autoconf.m4f): Depends upon
+ m4sugar/version.m4.
+
+2001-09-05 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/c.m4 (AC_LANG_BOOL_COMPILE_TRY(C)): Use `_array_'
+ to avoid GCC warnings.
+ From Uwe Seimet.
+
+2001-09-05 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in: --language is -l, not -s.
+
+2001-09-05 Akim Demaille <akim@epita.fr>
+
+ Be ready to handle filenames as stupid as `dnl.at', for if even
+ the maintainer is dumb enough to do that...
+
+ * lib/autotest/general.m4 (AT_SETUP, AT_LINE): Demonstrates your
+ excellence in M4 quotation: consider `__file__' is active.
+
+ And BTW, when invoking m4, pass the --include in the right order:
+ the wrong one.
+
+ * bin/autom4te.in, bin/autoupdate.in: Use reverse when kingtal to
+ 4m.
+
+2001-09-05 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/XFile.pm: New lib file.
+ * bin/autoupdate.in, bin/autoscan.pl, bin/autom4te.in,
+ * bin/autoheader.in: Use it.
+
+2001-09-05 Akim Demaille <akim@epita.fr>
+
+ * bin/autoupdate.in (&handle_m4_macros) <unm4.m4>: Undefine iff
+ defined.
+
+2001-09-05 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/General.pm (&getopt): Work around the `-' Getopt bug.
+ * bin/autoheader.in, bin/autoupdate.in (&parse_args): Adjust.
+
+ * bin/autoscan.in: Use `getopt' and `find_files' etc.
+ Add -I, --include support.
+ * doc/autoconf.texi (autoscan Invocation): Adjust.
+
+2001-09-05 Akim Demaille <akim@epita.fr>
+
+ CVS GNU M4 doesn't like `undefine(undefined)'.
+
+ * 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'.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ Version 2.52d.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Fix the
+ previous patch.
+ * tests/atspecific.m4 (AT_CHECK_AUTOHEADER): Can create `config.hin~'.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): DU 5.0 has
+ serious problems handling heredocs in heredocs.
+ Reported by Nicolas Joly.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi: Don't promote non `m4_*' M4 macros.
+ (Making testsuite Scripts): Update.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * lib/Makefile.am (CLEANFILES): Add autom4te.cfg.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Quadrigraphs): Document `@&t@'.
+ (testsuite Scripts): There is no such thing as `atconfig.in'.
+ And actually one diagram is missing: test suite runtime.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/General.pm (&find_file): Browse the includes in the
+ inverse order.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * bin/autoupdate.in (@include): `installcheck' revealed the path
+ to m4sugar was lacking!
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * man/Makefile.am (.x.1): We really have to pass
+ autom4te_perllibdir.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Don't pass all the args to
+ debug scripts, in particular passing explicitly listed tests to
+ run is stupid.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (&parse_args): Strip `.' from `@include'.
+ * 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.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * tests/semantics.at (AC_C_BIGENDIAN): Missing eol.
+ * bin/autoheader.in (%symbol): Strip arguments of macros.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi: Catch up -I, --include changes.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (&parse_args): Die on unknown languages.
+ * bin/autoheader.in: Run directly autom4te --mode=autoconf, no
+ need for autoconf.
+ Promote --include over --macrodir and other obsolete options.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/General.pm ($version, $help, &getopt): New.
+ * bin/autoupdate.in, bin/autoheader.in, bin/autom4te.in: Use them.
+ * bin/autom4te.in ($autoconf): Pass --force.
+ `print $out' doesn't print `$_' but `$out'.
+ * tests/tools.at (Syntax of the Perl scripts): Pass the lib dir.
+ (autoheader): Pass --force since the test suite goes too fast for
+ the time stamps.
+ Adjust to the new autoheader messages.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * bin/autoheader.in: Handle the acconfig.h etc. junk files.
+ Check the completeness of the #template.
+ * lib/Autom4te/General.pm (&update_file): s/remove/unlink/.
+ * tests/semantics.at (AC_C_BIGENDIAN): Adjust AT_CHECK_AUTOHEADER
+ invocation.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/General.pm (&find_file, &update_file): New.
+ * bin/autoupdate.in, bin/autoheader.in: Adjust.
+ Drop AC_MACRODIR dead for real.
+ * tests/atspecific.m4 (AT_CHECK_AUTOHEADER): Now autoheader says
+ `autoheader: `config.hin' is created'.
+ * tests/tools.at (Syntax of the Perl scripts): Check autoheader.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * bin/autoheader.in: Rewrite in Perl.
+ * tests/autoheader: Adjust.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * bin/autoconf.in (--include, -I): New option.
+ Map --localdir, --autoconf-dir onto it.
+ Forward autom4te's options instead of interpreting them.
+ * bin/autoconf.in, bin/autoheader.in (AC_MACRODIR, autoconf_dir):
+ There is no such envvar since the inception of autom4te.cfg.
+ * bin/autom4te.in (&parse_args): Uniquify `@include'.
+ * bin/autoupdate.in: Adjust, and perform more control.
+ * tests/atspecific.m4 (AT_CHECK_AUTOCONF): Adjust.
+ * tests/autoconf: Dittowise.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * bin/autoconf.in: Don't bother with `acsite.m4' and `aclocal.m4'.
+ * bin/autom4te.in (&find_file): Support `FILE?' standing for
+ optionally `FILE'.
+ Use -e, not -f, since /dev/null for instance is OK.
+ (&parse_args): Adjust.
+ * lib/autom4te.in (Autoconf): Add `acsite.m4?' and `aclocal.m4?'.
+
+2001-08-31 Akim Demaille <akim@epita.fr>
+
+ * configure.ac: Also find tested executables in bin.
+ * bin/autoconf.in, bin/autoheader.in, bin/autoreconf.in,
+ * bin/autoscan.in, autoupdate.in: Use exclusively the name of the
+ installed peer executables, only PATH is allowed to resolve it.
+ Pass `autoconf_dir' via options, not via invisible envvars.
+ * lib/Autom4te/General.pm (&find_peer): Remove.
+ * lib/autotest/general.m4 (AT_INIT): `AUTOTEST_PATH=a:b' gives
+ `abuild:asrc:bbuild:bsrc', not `abuild:bbuild:asrc:bsrc'.
+ * man/Makefile.am: Let help2man rely on PATH instead of trying to
+ find the executables for it.
+ * tests/Makefile.am: Major cleanup. Too lazy to document...
+ * tests/atlocal.in: Remove all the obscure envvar manipulations.
+ We only need PERL.
+ * tests/atspecific.m4, tests/tools.at: Passing --localdir is
+ indeed related to running the test suite, while passing
+ --autoconf-dir and others is related to running non installed
+ Autoconf executables. So don't do that, leave it to...
+ * tests/autoconf, tests/autoheader, tests/autom4te, tests/autoupdate,
+ * tests/autoscan: New.
+ * tests/atspecific.m4 (AT_CHECK_M4SUGAR, AT_CHECK_M4SH): Don't
+ refer to library files: rely on --language.
+
+2001-08-29 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in, lib/autom4te.in, bin/autoconf.in:
+ s/--set/--language/.
+
+2001-08-29 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi: Strip the @nodes.
+ Suggested by Paul Eggert.
+ (Initializing configure): Typo.
+
+2001-08-29 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (&handle_output): s/@__@/@&t@/.
+ Suggested by Paul Eggert.
+
+2001-08-29 Akim Demaille <akim@epita.fr>
+
+ * Makefile.maint (do-po-update): Wget refuses to overwrite files:
+ download in a tmp dir.
+
+2001-08-29 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4: s/AT-devnull/devnull/ since there are
+ case insensitive OSes out there :(
+ From Tim Van Holder.
+
+2001-08-29 Akim Demaille <akim@epita.fr>
+
+ * lib/autom4te.in: New.
+ * lib/Makefile.am (edit, autom4te.cfg): New.
+ * bin/autom4te.in (BEGIN): Simplify.
+ Rely on `AC_MACRODIR' in addition of `autom4te_perllibdir'.
+ (&load_configuration): New. Use it.
+ (&parse_args): Support --mode, --set, and --melt.
+ * bin/autoconf.in: Simplify and adjust.
+ * tests/Makefile.am (AUTOMAKE): Use --set.
+ * tests/atlocal.in: Adjust.
+ * BUGS: distcheck and check are weak.
+
+2001-08-29 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4: Use
+ foo=`(command) 2>/dev/null`
+ not
+ foo=`command` 2>/dev/null
+ (at-devnull): Rename as...
+ (AT-devnull): this.
+ (--clean): Remove AT-* files too.
+ * doc/autoconf.texi (Limitations of Usual Tools): Document `date'.
+ Reported by Nicolas Joly.
+
+2001-08-28 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PREPARE): Don't use single
+ quotes inside single quotes.
+ Reported by Nicolas Joly.
+
+2001-08-28 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (Function Portability): Mention C right shifts.
+
+2001-08-27 Tim Van Holder <tim.van.holder@pandora.be>
+
+ * lib/autotest/general.m4: Reword some messages.
+ (AT_INIT): Check for the `times' builtin before using it.
+ Support test ranges as arguments to the testsuite.
+ Have -e imply -d as the help text suggested.
+
+2001-08-27 Akim Demaille <akim@epita.fr>
+
+ * Makefile.maint: Formatting changes.
+ (do-po-update, po-update, cvs-update, update): New targets.
+ (AMTAR): Remove.
+
+2001-08-27 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT) <at_cmd_line>: Remove.
+ <at_cmd_line>: New.
+ Pass it to debug-*.sh scripts.
+ <AUTOTEST_PATH>: May contain absolute dir names.
+
+2001-08-27 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Log the command line.
+ Support `VAR=VAL' as arguments.
+ Compute PATH _after_ the options processing, so that AUTOTEST_PATH
+ may be set via the command line.
+
+2001-08-27 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): $2 defaults to $1.
+ * lib/autotest/autotest.m4 (AT_INIT): Expand AUTOTEST_PATH into
+ first the build dirs, then the src dirs.
+ * configure.ac (AC_CONFIG_TESTDIR): Adjust.
+
+2001-08-27 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Output the definition of
+ at_data_files earlier.
+ (--clean, -c): New option.
+ * tests/Makefile.am: Use this option.
+
+2001-08-27 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/status.m4 (_AC_SRCPATHS): Rename `ac_dots' as
+ `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.
+
+2001-08-27 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Input) <AC_INIT>: Move to..
+ (Initializing configure): this new node.
+
+2001-08-27 Akim Demaille <akim@epita.fr>
+
+ * Makefile.am (EXTRA_DIST): INSTALL.txt is a dead hack.
+
+2001-08-27 Akim Demaille <akim@epita.fr>
+
+ * m4/atconfig.m4 (AT_CONFIG): Remove, replaced by...
+ * lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): this.
+ New file.
+ * m4/Makefile.am (EXTRA_DIST): Oops, adjust...
+
+2001-08-27 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (AU_DEFINE, AU_DEFUN, AU_ALIAS): Move
+ to...
+ * lib/autoconf/autoheader.m4: this new file.
+ * lib/autoconf/general.m4 (AH_OUTPUT, AH_VERBATIM)
+ (_AH_VERBATIM_OLD, AH_TEMPLATE, _AH_TEMPLATE_OLD, AH_TOP, AH_BOTTOM):
+ Move to...
+ * lib/autoconf/autoupdate.m4: this new file.
+
+2001-08-27 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/status.m4 (_AC_SRCPATHS): New.
+ (_AC_OUTPUT_LINKS, _AC_OUTPUT_FILES, _AC_OUTPUT_SUBDIRS): Use it.
+ Standardize the var names (ac_sub_srcdir -> ac_srcdir, ac_subdir
+ -> ac_dir).
+ (_AC_OUTPUT_HEADERS): AS_DIRNAME always return a dir name.
+ * lib/autoconf/general.m4 (_AC_INIT_HELP): Ditto.
+
+2001-08-27 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/autoconf.m4 (AC_CONFIG_COMMANDS)
+ (AC_CONFIG_COMMANDS_POST, AC_CONFIG_COMMANDS_PRE, AC_CONFIG_FILES)
+ (AC_CONFIG_HEADER, AC_CONFIG_HEADERS, AC_CONFIG_IF_MEMBER)
+ (AC_CONFIG_LINKS, AC_CONFIG_SUBDIRS, AC_FILE_DEPENDENCY_TRACE)
+ (AC_LINK_FILES, AC_LIST_COMMANDS, AC_LIST_COMMANDS_COMMANDS)
+ (AC_LIST_FILES, AC_LIST_FILES_COMMANDS, AC_LIST_HEADERS)
+ (AC_LIST_HEADERS_COMMANDS, AC_LIST_LINKS, AC_LIST_LINKS_COMMANDS)
+ (AC_OUTPUT, AC_OUTPUT_COMMANDS, AC_OUTPUT_COMMANDS_POST)
+ (AC_OUTPUT_COMMANDS_PRE, AC_OUTPUT_MAKE_DEFS)
+ (_AC_CONFIG_COMMANDS_INIT, _AC_CONFIG_DEPENDENCIES)
+ (_AC_CONFIG_DEPENDENCY, _AC_CONFIG_UNIQUE, _AC_LINK_FILES_CNT)
+ (_AC_LIST_SUBDIRS, _AC_OUTPUT_COMMANDS, _AC_OUTPUT_COMMANDS_CNT)
+ (_AC_OUTPUT_COMMANDS_INIT, _AC_OUTPUT_CONFIG_STATUS)
+ (_AC_OUTPUT_FILES, _AC_OUTPUT_HEADERS, _AC_OUTPUT_LINKS)
+ (_AC_OUTPUT_SUBDIRS): Move to...
+ * lib/autoconf/status.m4: this new file.
+ * lib/autoconf/general.m4, lib/autoconf/Makefile.am: Adjust.
+ * tests/Makefile.am, tests/suite.at: Adjust.
+
+2001-08-27 Akim Demaille <akim@epita.fr>
+
+ Automake 1.5.
+
+ * Makefile.am (AUTOMAKE_OPTIONS): Add 1.5 and dist-bzip2.
+ (AMTAR): Help automake define it.
+ (INSTALL, install-data-hook): The INSTALL.txt trick is no longer
+ needed, 1.5 can have a macro and a target with the same name.
+ * m4/auxdir.m4, m4/cond.m4, m4/depend.m4, m4/install-sh.m4,
+ * m4/strip.m4: New.
+ * m4/init.m4, m4/sanity.m4: Update.
+ * doc/Makefile.am (CLEANFILES): 1.5 knows the texi2dvi files.
+ * lib/autoconf/Makefile.am, lib/autotest/Makefile.am,
+ * lib/m4sugar/Makefile.am, lib/autoscan/Makefile.am,
+ * lib/Autom4te/Makefile.am, man/Makefile.am: Use dist/nodist.
+
+2001-08-27 Akim Demaille <akim@epita.fr>
+
+ Provide a mean to ``AC_PREREQ'' for M4sugar, M4sh and Autotest.
+
+ * lib/autoconf/version.in: Remove.
+ * lib/m4sugar/version.in: New.
+ * lib/m4sugar/m4sugar.m4 (m4_acversion, m4_version_prereq): New.
+ Adjust callers.
+ * bin/autoupdate.in: Distinguish M4sugar vs. Autoconf macros by
+ the name of the directory they're in, instead of the filename,
+ since version.m4 is now in m4sugar, but m4_acversion must not be
+ classified as an Autoconf macro.
+ ($input_m4): Don't qualify the path to m4sugar.
+ Rather, pass autoconf_dir to m4.
+ * tests/Makefile.am (testsuite): Remove -I top_srcdir, unneeded.
+ * tests/suite.at: Require 2.52c.
+
+2001-08-27 Akim Demaille <akim@epita.fr>
+
+ testsuite.log should include config.log.
+
+ * lib/autotest/autotest.m4: New.
+ * lib/autotest/general.m4, tests/atspecific.m4: Adjust.
+ * tests/suite.at : Adjust.
+ (AT_INIT): Log config.log.
+ * lib/m4sugar/m4sugar.m4 (m4_text_box): New.
+ * lib/m4sugar/m4sh.m4 (_AS_BOX_LITERAL): Adjust.
+ * lib/autoconf/general.m4 (_AC_INIT_CONFIG_LOG): Use them.
+ (_AC_INIT_PREPARE): Fix the incredibly messy and buggy completion
+ of config.log on traps.
+ (_AC_OUTPUT_CONFIG_STATUS): Use AS_BOX.
+ Use consistently `_ACEOF' for configure's here docs, and `_CSEOF'
+ for config.status'.
+ Open the log as soon as possible.
+ Use the same log introduction as configure's.
+
+2001-08-22 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Indices): New node.
+ Move indices out of the top level menu and into this submenu.
+
+2001-08-22 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/programs.m4 (_AC_PROG_LEX_YYTEXT_DECL): Use
+ AC_TRY_COMMAND.
+ (AC_DECL_YYTEXT): Fix the previous patch: it points to AC_PROG_LEX.
+
+2001-08-22 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (AC_SHELL_PATH_WALK, AC_CHECK_PROG)
+ (AC_CHECK_PROGS, AC_PATH_PROG, AC_PATH_PROGS, AC_CHECK_TOOL_PREFIX)
+ (AC_PATH_TOOL, AC_CHECK_TOOL, AC_CHECK_TOOLS): Move to...
+ * lib/autoconf/programs.m4: here.
+ * lib/autoconf/specific.m4 (_AC_PROG_ECHO, AC_PROG_MAKE_SET)
+ (AC_PROG_RANLIB, AC_PROG_YACC, AC_PROG_LEX, _AC_DECL_YYTEXT)
+ (AC_PROG_INSTALL, AC_PROG_LN_S, AC_RSH): Move to...
+ * lib/autoconf/programs.m4: here.
+ (_AC_DECL_YYTEXT): Rename as...
+ (_AC_PROG_LEX_YYTEXT_DECL): this.
+ * lib/autoconf/autoconf.m4, lib/autoconf/Makefile.am
+ * tests/Makefile.am, tests/suite.am: Adjust.
+
+2001-08-22 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (AC_LIST_MEMBER_OF, AC_LINKER_OPTION):
+ Move to...
+ * lib/autoconf/fortran.m4 (_AC_LIST_MEMBER_IF, _AC_LINKER_OPTION):
+ here.
+ * lib/autoconf/general.m4 (AC_TRY_LINK_FUNC): Move to...
+ * lib/autoconf/functions.m4: here.
+ * lib/autoconf/general.m4 (AC_SEARCH_LIBS, AC_CHECK_LIB)
+ (AH_CHECK_LIB): Move to...
+ * lib/autoconf/libs: this new file.
+ * lib/autoconf/specific.m4 (_AC_PATH_X_XMKMF, _AC_PATH_X_DIRECT)
+ (_AC_PATH_X, AC_PATH_X, AC_PATH_XTRA): Move to...
+ * lib/autoconf/libs.m4: here.
+ * lib/autoconf/autoconf.m4, lib/autoconf/Makefile.am: Adjust.
+
+2001-08-22 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sh.m4 (AS_MKDIR_P): Fail if fails.
+ * lib/autoconf/general.m4 (_AC_OUTPUT_SUBDIRS): Adjust.
+ (AC_SITE_LOAD): Better logging of config.site.
+
+2001-08-20 Akim Demaille <akim@epita.fr>
+
+ * configure.ac (AT_CONFIG): Fix the path.
+ * m4/atconfig.m4 (AT_CONFIG): Don't use EOF but ATEOF so that 2.52
+ can be used.
+
+2001-08-20 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Prepare the cross-compile
+ program with AC_LANG_PROGRAM before feeding it to
+ AC_COMPILE_IFELSE. Cleanup grep usage.
+
+2001-08-20 Akim Demaille <akim@epita.fr>
+
+ * ChangeLog, ChangeLog.0, ChangeLog.1, ChangeLog.2, AUTHORS, BUGS,
+ * NEWS, README, README-alpha, TODO, tests/README: This package is
+ `Autoconf', not `autoconf' (the executable).
+
+2001-08-20 Akim Demaille <akim@epita.fr>
+
+ Info readers seem to need `Index' in the index node title :(
+
+ * doc/autoconf.texi: Reverse the 2001-08-15 change which
+ simplified index node names.
+
+2001-08-20 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_AC_INIT_PACKAGE): Warn if the
+ arguments are not literals.
+ * doc/autoconf.texi (Input) <AC_INIT>: Arguments must be literals.
+ Specify the output variables, and macros defined.
+
+2001-08-20 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Examining Declarations) <AC_TRY_CPP>:
+ (Examining Syntax) <AC_TRY_COMPILE>
+ (Examining Libraries) <AC_TRY_LINK>
+ (Test Programs) <AC_TRY_RUN>: These macros double quote some of
+ their arguments.
+ Reported by Werner Lemberg.
+
+2001-08-20 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Compute top_builddir,
+ top_srcdir and srcdir from at_topbuild_2_topsrc and at_testdir.
+ Load atlocal late enough to dump it in the log.
+ * m4/atconfig.m4 (AT_CONFIG): Pass them to atconfig.
+
+2001-08-20 Akim Demaille <akim@epita.fr>
+
+ * tests/torture.at (Configuring subdirectories): New test.
+ * lib/autoconf/general.m4 (_AC_INIT_SRCDIR): Say what you are
+ looking for.
+ * m4/atconfig.m4: Be sure the let $[0] be expandable.
+ (top_srcdir): Fix its computation.
+
+2001-08-20 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/general.m4 (_AC_OUTPUT_COMMANDS): Say what you do.
+ * m4/atconfig.m4 (AT_CONFIG): $1 is now the directory where the
+ test suite lives.
+ Create `atconfig' automagically.
+ Configure atlocal.in if present.
+ * tests/atconfig.in: Remove.
+ * tests/atlocal.in: New.
+ * tests/Makefile.am: Adjust.
+
+2001-08-20 Akim Demaille <akim@epita.fr>
+
+ Huh!?!?! There are still some user EOF tags used, which prevents
+ their use in AC_CONFIG_COMMANDS for instance...
+
+ * lib/autoconf/general.m4, lib/autoconf/specific.m4,
+ * lib/autotest/general.m4: Rename the EOF tags as `_ACEOF',
+ `_CSEOF', or `_ATEOF', as appropriate.
+ * lib/m4sugar/Makefile.am, lib/autoconf/Makefile.am,
+ * lib/autotest/Makefile.am (check-local): Enforce this constraint.
+
+2001-08-20 Akim Demaille <akim@epita.fr>
+
+ * tests/base.at, tests/m4sh.at, tests/m4sugar.at,
+ * tests/semantics.at, tests/tools.at, tests/torture.at:
+ s/^AT_DATA\(([^][]+),/AT_DATA([$1],/.
+
+2001-08-20 Akim Demaille <akim@epita.fr>
+
+ Autotest invokes M4sh's initialization.
+
+ * lib/autotest/general.m4: Adjust the diversion names.
+ (AT_INIT): Run AS_INIT.
+ Use the BINSH diversion to invoke /bin/sh.
+ * tests/base.at, tests/m4sh.at, tests/m4sugar.at, tests/tools.at:
+ * tests/torture.at: Respect M4sugar and M4sh macro name spaces.
+
+2001-08-20 Akim Demaille <akim@epita.fr>
+
+ Let M4sh have its own diversions.
+
+ * lib/autoconf/general.m4 (_m4_divert(BINSH), _m4_divert(REVISION))
+ (_m4_divert(NOTICE)): Rename as...
+ * lib/m4sugar/m4msh.m4 (_m4_divert(BINSH), _m4_divert(HEADER-REVISION))
+ (_m4_divert(HEADER-COMMENT)): these.
+ (_m4_divert(HEADER-COPYRIGHT), _m4_divert(HEADER-COPYRIGHT)): New.
+ (_m4_divert(NOTICE)): New, for Libtool.
+ * lib/autoconf/general.m4 (_m4_divert(PREPARE)): Remove, replaced
+ long ago with `_m4_divert(GROW)'.
+ (AC_COPYRIGHT, AC_REVISION, _AC_INIT_NOTICE): Adjust.
+
+2001-08-20 Akim Demaille <akim@epita.fr>
+
+ * tests/base.at, tests/compile.at, tests/foreign.at,
+ * tests/m4sh.at, tests/m4sugar.at, tests/mktests.sh,
+ * tests/semantics.at, tests/suite.at, tests/tools.at,
+ * tests/torture.at: Ask Autotest mode, not Autoconf mode.
+
+2001-08-20 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (handle_output): Handle @__@.
+
+2001-08-20 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/autoconf.m4, lib/autoconf/oldnames.m4,
+ * lib/autotest/general.m4: Adjust the license.
+
+2001-08-17 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Function Portability): Mention snprintf,
+ following up on a suggestion by Kevin Ryde.
+
+2001-08-17 Akim Demaille <akim@epita.fr>
+
+ * doc/install.texi, doc/autoconf.texi: Use `autoconf', not
+ `autoconf_manual', as texinfo.tex 2001-06-21.10 chokes on it.
+
+2001-08-17 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Refer to `$as_me.log', not
+ `$0.log' as for projects where testsuite is in src, we'd have
+ testsuite.log created in src.
+
+2001-08-17 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (&parse_args): Recognize --normalize.
+
+2001-08-17 Akim Demaille <akim@epita.fr>
+
+ Start implementing the AC_CHECK_HEADER transition scheme.
+
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_NEW)
+ (_AC_CHECK_HEADER_OLD, _AC_CHECK_HEADER_MONGREL): New.
+ (AC_CHECK_HEADER): Use them.
+
+2001-08-17 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi: Work around Texinfo buglets.
+ (Transformation Rules): One example is enough, users are expected
+ to have their brains on. And BTW, use DESTDIR.
+ (dvar): New macro. Use it.
+
+2001-08-17 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Writing testsuite.at) <AT_CHECK>: Complete.
+ * lib/autotest/general.m4 (AT_INIT): Use the relative dir when
+ looking for ChangeLogs.
+
+2001-08-17 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in: --normalize is a new option.
+ * bin/autoconf.in: Use it.
+
+2001-08-17 Akim Demaille <akim@epita.fr>
+
+ * bin/Makefile.am, lib/Autom4te/Makefile.am, lib/autoconf/Makefile.am
+ * lib/autotest/Makefile.am, lib/m4sugar/Makefile.am: Add TAGS support.
+
+2001-08-16 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi, doc/install.texi: Put copyright notice at
+ start, not at end.
+
+2001-08-15 Akim Demaille <akim@epita.fr>
+
+ * doc/Makefile.am (fu): New index, can't use fn because of defmac.
+ Use it.
+
+2001-08-15 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (pr): New index.
+ (prindex, findex): Use, merge, and output them.
+ (Environment Variable Index, Output Variable Index)
+ (Preprocessor Symbol Index, Autoconf Macro Index, M4 Macro Index)
+ (Autotest Macro Index): Rename as...
+ (Environment Variables, Output Variables,Preprocessor Symbols)
+ (Autoconf Macros, M4 Macros, Autotest Macros): these.
+ * doc/install.texi: Use @command.
+ (Environment Variables): Rename as...
+ (Defining Variables): this.
+
+2001-08-15 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Function Portability): sprintf's return
+ value.
+ From Kevin Ryde.
+
+2001-08-15 Akim Demaille <akim@epita.fr>
+
+ * Makefile.maint (CVS): New.
+ (local-check): Run changelog-check. last.
+ (alpha): Don't depend upon local-check, since...
+ (cvs-dist): depends upon it.
+
+2001-08-15 Tim Van Holder <tim.van.holder@pandora.be>
+
+ * tests/Makefile.am: Use a clean-local rule to remove
+ autom4te.cache (it's a directory, not a file.
+ * Makefile.am: Ditto (but maintainer-clean-local).
+
+2001-08-15 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (@m4_warning): New.
+ (&handle_m4): Use it.
+ * tests/m4sugar.at (m4_warn): Pass `-f' to autom4te to ensure the
+ warnings are issued at each run.
+ * tests/atspecific.m4 (AT_CHECK_M4SUGAR, AT_CHECK_M4SH): M4sugar
+ is in the src tree.
+
+2001-08-15 Akim Demaille <akim@epita.fr>
+
+ * tests/atspecific.m4 (AT_CHECK_AUTOUPDATE): Perl is now required:
+ don't waste time running `autoupdate --version' works.
+ * tests/tools.at (autoupdating AC_PREREQ): Likewise.
+
+2001-08-13 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (ma): Rename this index as...
+ (ac): this.
+
+2001-08-13 Akim Demaille <akim@epita.fr>
+
+ * Makefile.am: Remove dead code and dead comments.
+ (pdf, html): New targets.
+ * doc/autoconf.texi (Using Autotest): New chapter.
+ * doc/Makefile.am (pdf): New targets.
+ (CLEANFILES): Adjust.
+
+2001-08-13 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): Log the start/stop dates and
+ duration of the test suite.
+
+2001-08-12 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * tests/semantics.at (AC_C_BIGENDIAN): Explicitelly save and load
+ endianness for comparison instead of relying on AT_CHECK_ENV.
+
+2001-08-11 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi, doc/install.texi: Add a copyright notice
+ to the INSTALL file.
+
+2001-08-11 Paul Eggert <eggert@twinsun.com>
+
+ * NEWS: The autoconf manual now is distributed under the terms
+ 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.
+
+2001-08-10 Paul Eggert <eggert@twinsun.com>
+
+ * AUTHORS, BUGS, ChangeLog, ChangeLog.0, ChangeLog.1,
+ ChangeLog.2, GNUmakefile, Makefile.maint, NEWS, README,
+ README-alpha, TODO, configure.ac, lib/autoconf/Makefile.am,
+ m4/atconfig.m4, m4/init.m4, m4/m4.m4, m4/missing.m4,
+ m4/sanity.m4, tests/README, tests/aclocal.m4,
+ tests/atspecific.m4, tests/base.at, tests/compile.at,
+ tests/foreign.at, tests/m4sh.at, tests/m4sugar.at,
+ tests/semantics.at, tests/suite.at, tests/tools.at,
+ tests/torture.at: Add copyright notice.
+
+ * tests/mktests.sh: Update year in copyright notice.
+
+2001-08-12 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * tests/semantics.at (AC_C_BIGENDIAN): New test.
+
+2001-08-11 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Handle ACTION-IF-TRUE,
+ ACTION-IF-FALSE, and ACTION-IF-UNKNOWN.
+ * doc/autoconf.texi (C Compiler Characteristics): Update
+ documentation for AC_C_BIGENDIAN.
+
+2001-08-11 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * lib/autoconf/c.m4 (AC_C_BIGENDIAN): Guess endianness by grep'ing
+ magic values from an object file when cross-compiling.
+ Based on code by Guido Draheim <Guido.Draheim@gmx.de>.
+
+2001-08-10 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in (&handle_output): Don't use `grep' with side
+ effects.
+ Suggested by Russ Allbery.
+
+2001-08-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
+
+ * lib/autoconf/general.m4 (_AC_OUTPUT_SUBDIRS): Propagate the
+ current $prefix to the sub-configures.
+
+2001-08-09 Tim Van Holder <tim.van.holder@pandora.be>
+
+ * lib/autoconf/lang.m4: Ignore *.xSYM when looking for an executable
+ extension (needed on BeOS). Reported by Guido van Rossum.
+
+2001-08-09 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in ($icache): Load it only if older than autom4te.
+
+2001-08-07 Akim Demaille <akim@epita.fr>
+
+ * lib/autotest/general.m4 (AT_INIT): All the `at-*' are to be
+ removed.
+ (at-setup-line): Huh? Be a variable `at_setup_line', not a file.
+ No need to remove the files before and after the each test, before
+ each test and at the end of the suite is enough.
+ Display only the children `times', not the shell's.
+ If the test failed or was skipped, at-times is not available.
+
+2001-08-07 Akim Demaille <akim@epita.fr>
+
+ Always produce testsuite.log, including when there are no
+ failures. This helps getting information on skipped tests, and
+ duration of the tests. Err, implement the latter btw.
+
+ * lib/autotest/general.m4 (AT_INIT): Set up fd 6 for the log.
+ Dump information on the first run of each test.
+ (AT_CLEANUP): Create `at-times' containing the duration of the
+ test group.
+
+2001-08-07 Akim Demaille <akim@epita.fr>
+
+ The use of `dumpstat' revealed that `len' was used although it
+ should not. m4_text_wrap was using it, but in the Autoconf world
+ where it is legal. Hence (i) test M4sh in its own world, not
+ Autoconf's, and (ii), ahem, fix the bug :)
+
+ * lib/autotest/general.m4: Be sure the set good quotes, as tracing
+ does not like `' instead of [].
+ (AT_INIT): Forbid `^_?AT_'.
+ And don't output such tokens.
+ * tests/Makefile.am (CLEANFILES): Add `script', `script.s4g',
+ `script.as', and `autom4te.cache'.
+ Remove `empty' and `macro' which are no longer used.
+ * tests/atspecific.m4 (AT_CHECK_M4SUGAR, AT_CHECK_M4SH): New.
+ * tests/m4sugar.at: Use it.
+ * lib/m4sugar/m4sugar.m4: Use `m4_len' not `len'.
+
+2001-08-07 Akim Demaille <akim@epita.fr>
+
+ * bin/autoconf.in, bin/autoheader.in: --force, -f is a new option.
+
+2001-08-07 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * bin/autom4te.in (handle_output): Typo in quadrigraph substitution.
+
+2001-08-04 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/functions.m4 (AC_FUNC_ALLOCA, AC_FUNC_ERROR_AT_LINE)
+ (AC_FUNC_FSEEKO, AC_FUNC_OBSTACK): Use AC_LANG_IFELSE, not
+ AC_TRY_LINK.
+ * lib/autoconf/headers.m4 (AC_HEADER_MAJOR): Likewise.
+ * lib/autoconf/fortran.m4 (_AC_LANG_PROGRAM_C_F77_HOOKS)
+ (AC_F77_MAIN): Likewise.
+
+2001-08-04 Akim Demaille <akim@epita.fr>
+
+ Don't rely on M4sugar outputting the patterns in files, since we
+ might process the output _without_ running m4, hence without these
+ files.
+
+ * lib/m4sugar/m4sugar.m4 (m4_init): No need for `m4_tmpdir'.
+ * bin/autom4te.in (@Request::includes): Remove, unused.
+ (@Request::source): Rename as...
+ (@Request::input): this.
+ (@preselect): Add `m4_pattern_forbid' and `m4_pattern_allow'.
+ (&handle_output): Fetch the patterns from the traces.
+ `$forbidden' and `$allowed' are constant: use m//o.
+ (&handle_m4): M4sugar no longer wants `m4_tmpdir'.
+ (m4_pattern_forbid, m4_pattern_allow): Adjust for tracing only.
+
+2001-08-04 Akim Demaille <akim@epita.fr>
+
+ `autoconf && autoheader' is sped up. Now, speed up `autoheader &&
+ autoconf', i.e., in addition to caching traces, cache the output.
+
+ * bin/autom4te.in (Request::cache): Rename as...
+ (Request::id): this.
+ ($cache, $icache, $tcache, $ocache): New.
+ (&handle_m4): Save M4 output in the cache instead of $tmp.
+ (&handle_output): Adjust.
+ (&up_to_date_p): Check that the output cache is up to date too.
+ (top level): Run `&handle_m4' iff force or the cache is invalid.
+ Run `&handle_output' if the output cache is more recent.
+
+2001-08-04 Akim Demaille <akim@epita.fr>
+
+ * bin/autom4te.in ($force): New.
+ (&parse_args, &print_usage): -f, --force is a new option.
+ (&handle_output): CPP directives might have spaces after `#'.
+ (&parse_args): The first file only can be frozen.
+
+2001-08-04 Akim Demaille <akim@epita.fr>
+
+ Don't let autom4te compute the `include' traces several times:
+ first check that the trace cache file is up to date, and then
+ compare its timestamp with that of the output.
+
+ * bin/autom4te.in, bin/autoupdate.in, bin/autoscan.in: Normalize
+ the preamble. Don't require 5.005 as Autom4te::General does it,
+ and better yet (use `use', not `require'!).
+ * lib/Autom4te/Struct.pm: Rename the last occurrences of
+ Class::Struct as Autom4te::Struct.
+ * lib/Autom4te/General.pm (File::stat): Use it.
+ (&mtime): New, export it.
+ * bin/autom4te.in: Use it.
+ Declare `$req' is invalid if it is outdated.
+ Don't declare it valid before saving it if something went wrong.
+
+2001-08-04 Akim Demaille <akim@epita.fr>
+
+ Autom4te shall not encode Autoconf data, and preselecting traces
+ must be proposed to the users.
+
+ * bin/autom4te.in (@required_trace): Remove.
+ (@preselect): New.
+ (&parse_args, &print_usage): -p, --preselect is a new option.
+ (&up_to_date_p): Adjust.
+ * bin/autoconf.in: Preselect some Autoconf macros.
+
+2001-08-04 Akim Demaille <akim@epita.fr>
+
+ * tests/tools.at (autoconf --trace: user macros): Check traces on
+ macros invoked without arguments, and macros invoked with multiple
+ lines arguments.
+
+2001-08-03 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * bin/autom4te.in (handle_traces): Fix rewriting of traces without
+ arguments.
+
+2001-08-03 Akim Demaille <akim@epita.fr>
+
+ * bin/autoconf.in ($@): Work around the usual sh bug.
+ From Nicolas Joly.
+
+2001-08-03 Akim Demaille <akim@epita.fr>
+
+ Clean up the handling of the M4 builtins tracing exception.
+
+ * bin/autom4te.in (Request::request): Don't complete M4 builtins
+ trace requests.
+ (@m4_builtins): Rename as...
+ (@m4_builtin): this.
+ (%m4_builtin_alternate_name): New.
+ (&parse_args): Complete the trace requests with alternate names.
+ (&handle_traces): Hence no longer do it here.
+ (&trace_requests): Remove, unused.
+
+2001-08-03 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Redefined M4 Macros): Document m4_exit,
+ m4_if, and m4_wrap.
+
+2001-08-03 Akim Demaille <akim@epita.fr>
+
+ * lib/m4sugar/m4sugar.m4 (m4_init): Also forbid `_m4_*' tokens.
+ (m4_divert_pop): Dump the whole diversion stack when a diversion
+ mismatch happens.
+ * bin/autom4te.in (&handle_output): Remember of the first
+ occurrence of a possibly undefined macro, not the last.
+ Complain about the possibly undefined macros in the same order as
+ the appear in the output.
+ * lib/autoconf/Makefile.am (autoconf.m4f): List its dependencies.
+ * tests/tools.at (autoconf: forbidden tokens, basic)
+ (autoconf: forbidden tokens, exceptions): No longer sort
+ autoconf's stderr, as it is now deterministic.
+ Check that `dnl' is caught.
+
+2001-08-01 Akim Demaille <akim@epita.fr>
+
+ * configure.ac: Bump to 2.52c.
+
+2001-08-01 Akim Demaille <akim@epita.fr>
+
+ Version 2.52b.
+
+ * lib/Autom4te/Makefile.am (perllibdir): s/Autoconf/Autom4te/.
+
+2001-08-01 Akim Demaille <akim@epita.fr>
+
+ Version 2.52a.
+
+2001-08-01 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/General.pm: Use `carp' and `croak', not `warn' and
+ `die'.
+ (&END): New.
+ * bin/autoconf.in, bin/autom4te.in, bin/autoupdate.in: Remove your
+ `END', as `Autom4te::General::END' will be triggered.
+ * bin/autoupdate.in, bin/autoscan.in: Improve error messages accuracy.
+ * bin/autoupdate.in (File::Compare, File::Copy): Use them instead of
+ system to run `mv', `rm', and `cmp'.
+
+2001-08-01 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/General.pm (&unique): New.
+ * bin/autoscan.in (&output): Use it to issue trace requests once.
+
+2001-08-01 Akim Demaille <akim@epita.fr>
+
+ * lib/Autom4te/General.pm: New.
+ * bin/autom4te.in (Autom4te::General): Use it.
+ ($me, $tmp, $verbose, $debug, &mktmpdir, &verbose, &xsystem)
+ (&find_configure_ac, &find_slave): Remove.
+ * bin/autoscan.in: Likewise.
+ * bin/autoupdate.in: Likewise.
+
+2001-08-01 Akim Demaille <akim@epita.fr>
+
+ * autoconf.in, autom4te.in, autoscan.in, ifnames.in,
+ * autoheader.in, autoreconf.in, autoupdate.in: Move to...
+ * bin: here, new directory.
+ * lib/Autoconf: Rename as...
+ * lib/Autom4te: this, to please case insensitive junkie OSes.
+
+2001-08-01 Akim Demaille <akim@epita.fr>
+
+ * autom4te.in ($m4): Handle the --nesting-limit.
+ * autoconf.in (M4): Remove.
+
+2001-08-01 Akim Demaille <akim@epita.fr>
+
+ * autoconf.in ($AWK): Remove, no longer used.
+ * test/tools.at: Use AT_CHECK_AUTOCONF.
+ (AWK portability): Remove, for autoconf no longer uses AWK.
+ (Syntax of the Perl scripts): New.
+ * configure.ac: autoconf no longer needs an AWK with a good
+ regexp engine.
+ Use a static test on AC_PACKAGE_VERSION.
+ * autom4te.in (&up_to_date_p): Output depends on the arguments.
+ * lib/autoconf/Makefile.am: Ship version.m4, maintainer file.
+ * tests/atconfig.in (PERL): New.
+
+2001-08-01 Akim Demaille <akim@epita.fr>
+
+ * lib/autoconf/lang.m4 (AC_LANG(C), AC_LANG_C, _AC_LANG_ABBREV(C))
+ (AC_LANG(C++), AC_LANG_CPLUSPLUS, _AC_LANG_ABBREV(C++))
+ (AC_LANG_SOURCE(C), AC_LANG_PROGRAM(C), AC_LANG_CALL(C))
+ (AC_LANG_FUNC_LINK_TRY(C), AC_LANG_BOOL_COMPILE_TRY(C))
+ (AC_LANG_INT_SAVE(C), _AC_ARG_VAR_CPPFLAGS, _AC_ARG_VAR_LDFLAGS)
+ (AC_LANG_PREPROC(C), _AC_PROG_PREPROC_WORKS_IFELSE, AC_PROG_CPP)
+ (AC_LANG_COMPILER(C), ac_cv_prog_gcc, AC_PROG_CC, _AC_PROG_CC_G)
+ (AC_PROG_GCC_TRADITIONAL, AC_PROG_CC_C_O, AC_LANG_PREPROC(C++))
+ (AC_PROG_CXXCPP, AC_LANG_COMPILER(C++), ac_cv_prog_gxx)
+ (AC_PROG_CXX, _AC_PROG_CXX_G, _AC_PROG_CXX_EXIT_DECLARATION)
+ (AC_PROG_CC_STDC, AC_C_CROSS, AC_C_CHAR_UNSIGNED, AC_C_LONG_DOUBLE)
+ (AC_C_BIGENDIAN, AC_C_INLINE, AC_C_CONST, AC_C_VOLATILE)
+ (AC_C_STRINGIZE, AC_C_PROTOTYPES): Move to...
+ * lib/autoconf/c.m4: here, new file.
+
+ * lib/autoconf/lang.m4 (AC_LANG(Fortran 77), AC_LANG_FORTRAN77)
+ (_AC_LANG_ABBREV(Fortran 77), AC_LANG_SOURCE(Fortran 77))
+ (AC_LANG_PROGRAM(Fortran 77), AC_LANG_CALL(Fortran 77))
+ (AC_LANG_PREPROC(Fortran 77), AC_LANG_COMPILER(Fortran 77))
+ (ac_cv_prog_g77, AC_PROG_F77, _AC_PROG_F77_G, AC_PROG_F77_C_O)
+ (_AC_PROG_F77_V_OUTPUT, _AC_PROG_F77_V, AC_F77_LIBRARY_LDFLAGS)
+ (AC_F77_DUMMY_MAIN, _AC_LANG_PROGRAM_C_F77_HOOKS, AC_F77_MAIN)
+ (_AC_F77_NAME_MANGLING, AC_F77_NAME_MANGLING, AC_F77_WRAPPERS)
+ (AC_F77_FUNC): Move to...
+ * lib/autoconf/fortran.m4: here, new file.
+
+2001-08-01 Akim Demaille <akim@epita.fr>
+
+ * acfunctions.m4: Rename as...
+ * lib/autoconf/functions.m4: this.
+ * acgeneral.m4: Rename as...
+ * lib/autoconf/general.m4: this.
+ * acheaders.m4: Rename as...
+ * lib/autoconf/headers.m4: this.
+ * aclang.m4: Rename as...
+ * lib/autoconf/lang.m4: this.
+ * acoldnames.m4: Rename as...
+ * lib/autoconf/oldnames.m4: this.
+ * acspecific.m4: Rename as...
+ * lib/autoconf/specific.m4: this.
+ * actypes.m4: Rename as...
+ * lib/autoconf/types.m4: this.
+ * autoconf.m4: Rename as...
+ * lib/autoconf/autoconf.m4: this.
+
+ * m4sugar.m4: Rename as...
+ * lib/m4sugar/m4sugar.m4: this.
+ * m4sh.m4: Rename as...
+ * lib/m4sugar/m4sh.m4: this.
+
+ * tests/atgeneral.m4: Rename as...
+ * lib/autotest/general.m4: this.
+
+ * acfunctions: Rename as...
+ * lib/autoscan/functions: this.
+ * acheaders: Rename as...
+ * lib/autoscan/headers: this.
+ * acidentifiers: Rename as...
+ * lib/autoscan/identifiers: this.
+ * aclibraries: Rename as...
+ * lib/autoscan/libraries: this.
+ * acmakevars: Rename as...
+ * lib/autoscan/makevars: this.
+ * acprograms: Rename as...
+ * lib/autoscan/programs: this.
+
+2001-08-01 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi: Moving/deleting open files is not portable.
+ Portability issues for `.' (source), and more information about sed.
+
+2001-07-25 Steven G. Johnson <stevenj@alum.mit.edu>
+
+ * aclang.m4 (AC_F77_LIBRARY_LDFLAGS): Ignore -libmil (on Solaris),
+ which has a special meaning and is not a reference to libibmil.a.
+ Reported by Matteo Frigo.
+
+2001-07-25 Pavel Roskin <proski@gnu.org>
+
+ * autom4te.in (mktmpdir): Strip trailing newline from mktemp
+ output.
+
+2001-07-25 Akim Demaille <akim@epita.fr>
+
+ * autoconf.in: Try to define the variables before using them.
+ * autom4te.in ($perllibdir): Use `$autom4te_perllibdir' as envvar
+ instead of `$perllibdir'.
+ * tests/atconfig.in ($autom4te_perllibdir): Export it.
+
+2001-07-25 Akim Demaille <akim@epita.fr>
+
+ * autoconf.in (ac_LF_and_DOT): Remove, unused.
+
+2001-07-24 Akim Demaille <akim@epita.fr>
+
+ Let autoconf use autom4te for traces.
+
+ * autoconf.in ($task, task trace): Remove, merely pass --trace to
+ autom4te.
+ * autoheader.in: Don't pass `-' to autoconf, rather, a tmp file.
+ (Because I found no way for autom4te to accept `-').
+ * autom4te.in (&Request::request): Beware of M4 builtins.
+ (END): Don't try to remove the content of an empty dir.
+ (&parse_args): Default is `$f:$l:$n:$%', not `$f:$l:$n:$*'.
+ (&handle_output): Set a default value to `$forbidden'.
+ * autoupdate.in (&verbose, &xsystem): New, from autom4te.in.
+ ($autoconf): Pass --debug and --verbose.
+ * tests/atspecific.m4 (AT_CHECK_AUTOCONF): Clean up autom4te's
+ cache.
+
+2001-07-24 Akim Demaille <akim@epita.fr>
+
+ Let autoconf use autom4te to create configure.
+
+ * autoconf.in ($automate): New var.
+ (task script): Use autom4te.
+ * autom4te.in (File::Spec): Use it.
+ (&find_file): New.
+ (&parse_args): --warning is -W, not -w.
+ Find the top level files.
+ (&handle_m4): Pass the warnings flags.
+ Don't report verbosely m4's failures, unless requested.
+ (&handle_output): Don't complain for forbidden tokens in comments.
+ Be sure to report all the forbidden tokens within a single line.
+ (&trace_format_to_m4): Preserve `$_'.
+ (&handle_traces): Sort the output macros.
+ (&up_to_date_p): Find the files before trying to get its time stamp.
+
+2001-07-24 Akim Demaille <akim@epita.fr>
+
+ * Makefile.am: Ship, build and install Autom4te.
+ (SUBDIRS): Add lib.
+ * lib/Autoconf/Struct.pm: New, from Automake 1.5.
+ * configure.in: Require Perl.
+ * man/autom4te.in: New.
+
+2001-07-19 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi (Cache Checkpointing): Use AC_MSG_ERROR in
+ example, rather than (exit 1); exit (which isn't portable).
+
+2001-07-18 Akim Demaille <akim@epita.fr>
+
+ Version 2.52.
+
+2001-07-18 Akim Demaille <akim@epita.fr>
+
+ The C-Fortran 77 hooks are available only once AC_F77_DUMMY_MAIN
+ was run, while they are needed also when it is expanded.
+ Reported by Nicolas Joly.
+
+ * aclang.m4 (AC_F77_DUMMY_MAIN): Define _AC_LANG_PROGRAM_C_F77_HOOKS.
+ (AC_LANG_PROGRAM(C)): Use it instead of depending upon
+ AC_F77_DUMMY_MAIN being expanded.
+
+2001-07-18 Akim Demaille <akim@epita.fr>
+
+ * configure.in: Bump to 2.51a.
+
+2001-07-17 Akim Demaille <akim@epita.fr>
+
+ Version 2.51.
+
+2001-07-17 Akim Demaille <akim@epita.fr>
+
+ * aclang.m4 (AC_F77_DUMMY_MAIN): Let the interface be more
+ Autoconfy: $1 = action-if-found, $2 = action-if-not-found.
+
+2001-07-17 Akim Demaille <akim@epita.fr>
+
+ The runtime test for AC_FUNC_GETPGRP fails when prototypes are
+ 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.
+
+2001-07-17 Akim Demaille <akim@epita.fr>
+
+ * actypes.m4 (_AC_CHECK_TYPE_REPLACEMENT_TYPE_P): `foo_t' is a
+ replacement type.
+ From Paul Eggert.
+
+2001-07-17 Akim Demaille <akim@epita.fr>
+
+ * Makefile.maint: Sync. with cppi 1.10.
+
+2001-07-17 Akim Demaille <akim@epita.fr>
+
+ * aclang.m4 (AC_LANG_PROGRAM(C)): Output F77_DUMMY_MAIN only when
+ AC_F77_DUMMY_MAIN has been run.
+ From Pavel Roskin and Steven G. Johnson.
+
+2001-07-17 Akim Demaille <akim@epita.fr>
+
+ * configure.in: Rename as...
+ * configure.ac: this.
+
+2001-07-17 Akim Demaille <akim@epita.fr>
+
+ * Makefile.am (INSTALL.txt): Don't use $@ and $< in non suffix
+ rules.
+ From Marc Espie.
+ * Makefile.maint (release-archive-dir): Rename as...
+ (release_archive_dir): this, so that it can be specialized in
+ Makefile.
+
+2001-07-14 Akim Demaille <akim@epita.fr>
+
+ * configure.in: Bump to 2.50d.
+
+2001-07-14 Akim Demaille <akim@epita.fr>
+
+ Version 2.50c.
+ * Makefile.maint (alpha): Typo.
+
+2001-07-14 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Limitations of Make): Macro names and underscore.
+
+2001-07-14 Akim Demaille <akim@epita.fr>
+
+ * config/config.guess, config/config.sub, config/texinfo.tex
+ * doc/standards.texi, doc/make-stds.texi: Update.
+
+2001-07-14 Akim Demaille <akim@epita.fr>
+
+ * Makefile.maint (cvs-check, cvs-tag-check, cvs-diff-check): New.
+
+2001-07-14 Akim Demaille <akim@epita.fr>
+
+ * Makefile.maint (maintainer-check): Rename as...
+ (maintainer-distcheck): this.
+ (changelog-check, static-check): New.
+ Use them.
+
+2001-07-14 Kevin Ryde <user42@zip.com.au>
+
+ * doc/autoconf.texi (C++ Compilers Characteristics): Last resort
+ for CXX is g++, not gcc.
+
+2001-07-14 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Files): New subsection.
+
+2001-07-14 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (C Compiler, Fortran 77 Compiler): Be subsections
+ of...
+ (Generic Compiler Characteristics): this.
+ (C++ Compiler): New subsection.
+
+2001-07-14 Akim Demaille <akim@epita.fr>
+
+ * autoscan.in: Use IO::File.
+ 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.
+
+2001-07-12 Akim Demaille <akim@epita.fr>
+
+ For some AWK, such as on HPUX 11, `xfoo' does not match `foo|^bar'.
+ Reported by Michael Elizabeth Chastain.
+
+ * autoconf.in: Refuse such AWK.
+ * configure.in: Likewise.
+ * Makefile.am (acversion.m4): Do not use move-if-change this file
+ has dependencies.
+ * doc/autoconf.texi (Fortran 77 Compiler): Some typos.
+
+2001-07-10 Jens Petersen <petersen@redhat.com>
+
+ * autoscan.in (&scan_makefile): Improve programs regexp to parse
+ things like "g++", "file.c" and "some-conf" as tokens.
+ (&scan_file): Match C++ files extensions.
+ If the filename extension is C++ then ask for c++.
+
+2001-07-05 Steven G. Johnson <stevenj@alum.mit.edu>
+
+ * aclang.m4 (AC_F77_DUMMY_MAIN): Use AC_TRY_LINK, not
+ AC_TRY_LINK_FUNC, to check whether defining a dummy
+ main-like routine is needed for linking with F77 libs.
+
+2001-07-05 Pavel Roskin <proski@gnu.org>
+
+ * aclocal.m4 (_AC_PROG_CXX_EXIT_DECLARATION): Remove conftest*
+ after using break.
+ (_AC_PROG_F77_V_OUTPUT): Remove conftest*, not conftest.* after
+ linking.
+
+2001-07-05 Akim Demaille <akim@epita.fr>
+
+ * Makefile.am (move_if_change): New. Use it instead of `mv'.
+ (acversion.m4): Name it `$(srcdir)/acversion.m4' to ease broken
+ Makes' lives.
+ Reported by Nicolas Joly.
+
+2001-07-04 Akim Demaille <akim@epita.fr>
+
+ * acgeneral.m4 (_AC_RUN_IFELSE): Remove conftest.o when cleaning
+ 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.
+
+2001-07-04 Akim Demaille <akim@epita.fr>
+
+ * acfunctions.m4 (AC_FUNC_STRTOD, AC_FUNC_STRERROR_R)
+ (AC_FUNC_STRCOLL, AC_FUNC_WAIT3): Use AC_RUN_IFELSE and
+ AC_COMPILE_IFELSE.
+
+2001-07-04 Akim Demaille <akim@epita.fr>
+
+ * acgeneral.m4 (_AC_INCLUDES_DEFAULT_REQUIREMENTS): Actually apply
+ the ``strings.h'' change claimed below.
+
+2001-07-04 Akim Demaille <akim@epita.fr>
+
+ * aclang.m4 (_AC_LANG_COMPILER_GNU): s/-dumpspecs/-v/.
+
+2001-07-04 Akim Demaille <akim@epita.fr>
+
+ * acgeneral.m4 (_AC_INCLUDES_DEFAULT_REQUIREMENTS): Include
+ strings.h if usable with string.h.
+ Suggested by Paul Eggert.
+
+2001-07-04 Akim Demaille <akim@epita.fr>
+
+ * autoscan.in (&scan_file): Skip FILE if there is FILE.in.
+ From Jens Petersen.
+
+2001-07-03 Akim Demaille <akim@epita.fr>
+
+ * acgeneral.m4 (_AC_OUTPUT_CONFIG_STATUS): Specify CONFIG_FILES
+ etc. in the log.
+
+2001-07-03 Akim Demaille <akim@epita.fr>
+
+ * acheaders.m4 (AC_CHECK_HEADER): When INCLUDES are set, use the
+ compiler, not the preprocessor.
+ * acgeneral.m4 (_AC_INCLUDES_DEFAULT_REQUIREMENTS): No longer use
+ dedicated code to check for inttypes.h, as AC_CHECK_HEADERS does
+ the right thing.
+ * Makefile.am (.m4.m4f): Emphasize M4 error messages and fail
+ earlier if there are.
+
+2001-07-03 Akim Demaille <akim@epita.fr>
+
+ * autoscan.in ($initfile): Remove.
+ (&find_file): Rename as...
+ (&scan_file): this.
+ Immediately scan the current file, instead of gathering them, and
+ later having them handled by &scan_files.
+ (&scan_files): Merely invoke Find::File.
+ Adjust.
+
+2001-07-02 Akim Demaille <akim@epita.fr>
+
+ * autoscan.in: Formatting changes, matching the invocation order.
+ (File::Find): Use it instead of Perl 4's `find.pl'.
+ (&wanted): Rename as...
+ (&find_file): this.
+
+2001-07-01 Pavel Roskin <proski@gnu.org>
+
+ * aclang.m4 (AC_F77_DUMMY_MAIN): Remove conftest* after using
+ break in the argument to AC_TRY_LINK_FUNC.
+ (AC_F77_MAIN): Remove conftest* after using break in the
+ argument to AC_TRY_LINK.
+
+2001-07-01 Steven G. Johnson <stevenj@alum.mit.edu>
+
+ Add alternate 'main' routine detection for linking C/C++ with Fortran,
+ fixing link failures for e.g. AC_F77_WRAPPERS on NetBSD.
+
+ * aclang.m4 (AC_F77_DUMMY_MAIN): New macro to detect whether a
+ dummy alternate main is required even if the user provides her own
+ 'main'.
+ (AC_F77_MAIN): New macro to detect whether it is possible to
+ provide an alternate 'main' function name, using the 'main' from
+ the Fortran libraries.
+ (AC_LANG_PROGRAM(C)): Use F77_DUMMY_MAIN, if it is defined, so that
+ cross-language link tests can be performed successfully.
+ (_AC_F77_NAME_MANGLING): Require AC_F77_DUMMY_MAIN. Also put $FLIBS
+ after $LIBS, for consistency; this should be the general rule since
+ the user may want to link to Fortran libraries that require $FLIBS.
+ * doc/autoconf.texi: Document AC_F77_DUMMY_MAIN and AC_F77_MAIN.
+
+2001-06-29 Pavel Roskin <proski@gnu.org>
+
+ * atgeneral.m4 (AT_CHECK): Add a newline to the end of
+ at-stdout and at-stderr instead of removing the newline
+ from the echo output, which is not guaranteed to work.
+
+2001-06-28 Jens Petersen <petersen@redhat.com>
+
+ * aclang.m4 (_AC_PROG_CXX_EXIT_DECLARATION): Only add declaration to
+ confdefs.h when non-zero.
+
+2001-06-28 Akim Demaille <akim@epita.fr>
+
+ * configure.in: Bump to 2.50c.
+
+2001-06-26 Akim Demaille <akim@epita.fr>
+
+ Version 2.50b.
+
+2001-06-26 Akim Demaille <akim@epita.fr>
+
+ Version 2.50a.
+
+2001-06-25 Pavel Roskin <proski@gnu.org>
+
+ * tests/atspecific.m4 (AT_CHECK_MACRO): Accept one more
+ argument, AUTOCONF-FLAGS.
+ * tests/mktests.sh (update_exclude_list): Add
+ AC_SYS_RESTARTABLE_SYSCALLS and AC_FUNC_WAIT3.
+ * tests/semantics.at: Test AC_SYS_RESTARTABLE_SYSCALLS and
+ AC_FUNC_WAIT3 with "-W no-obsolete".
+
+2001-06-25 Akim Demaille <akim@epita.fr>
+
+ * tests/foreign.at (libtool): Fix the `libtoolize --version' decoding.
+
+2001-06-25 Akim Demaille <akim@epita.fr>
+
+ * autoscan.in (%macro): Now maps from word to list of macros.
+ (&init_tables): Die when a word which is already handled by
+ explicit macros is mapped to the default macro.
+ (&print_unique): Remove, inlined in...
+ (&output_kind): here.
+ (File::Basename): Use it.
+ (&output): Sort the CONFIG_FILES.
+ * acheaders: Normalize.
+ * acfunctions: Likewise.
+
+2001-06-25 Akim Demaille <akim@epita.fr>
+
+ * aclang.m4 (_AC_LANG_COMPILER_GNU): If GNU, dump the compiler
+ characteristics in the logs.
+ Suggested by Mo DeJong.
+
+2001-06-24 Akim Demaille <akim@epita.fr>
+
+ * acfunctions.m4 (AM_FUNC_ERROR_AT_LINE, AM_FUNC_FNMATCH)
+ (AM_FUNC_MKTIME, AM_FUNC_OBSTACK, AM_FUNC_STRTOD): Reactivated.
+ * doc/autoconf.texi (Autoconf 2.13): New section.
+
+2001-06-24 Akim Demaille <akim@epita.fr>
+
+ * autoconf.in (Task traces): Separate the error messages from the
+ traces to improve robustness.
+
+2001-06-23 Akim Demaille <akim@epita.fr>
+
+ * tests/torture.at (AC_ARG_VAR): Make it a single test instead of
+ three as failures are unlikely, and speed matters.
+
+2001-06-23 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Redefined M4 Macros): New.
+
+2001-06-23 Akim Demaille <akim@epita.fr>
+
+ * acgeneral.m4 (_AC_INCLUDES_DEFAULT_REQUIREMENTS): Consider
+ inttypes.h is missing if it conflicts with sys/types.h, as on IRIX
+ 5.3.
+
+2001-06-23 Paolo Bonzini <bonzini@gnu.org>
+
+ * acgeneral.m4 (_AC_OUTPUT_CONFIG_STATUS): Defer parsing of
+ config.status targets to after the evaluation of the INIT-CMDS.
+ Double quote config.status targets (used to be single quoted).
+
+2001-06-23 Akim Demaille <akim@epita.fr>
+
+ * tests/torture.at (CONFIG_FILES, HEADERS, LINKS and COMMANDS):
+ Check the content of the created file.
+ Check the ./config.status command line invocation.
+
+2001-06-23 Akim Demaille <akim@epita.fr>
+
+ * tests/foreign.at (Libtool): Reject prehistoric versions.
+
+2001-06-23 Akim Demaille <akim@epita.fr>
+
+ * aclang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Try to be robust to
+ preexisting files matching a.*.
+
+2001-06-23 Akim Demaille <akim@epita.fr>
+
+ * acgeneral.m4 (_AC_ARG_VAR_VALIDATE): Output error messages on
+ stderr.
+ * doc/autoconf.texi (AC_ARG_VAR): Update.
+
+2001-06-21 Akim Demaille <akim@epita.fr>
+
+ * acgeneral.m4 (_AC_ARG_VAR_VALIDATE): Die instead of warning when
+ precious variables have changed.
+ * tests/torture.at (AC_ARG_VAR): Adjust.
+
+2001-06-21 Akim Demaille <akim@epita.fr>
+
+ ./configure --program-suffix=foo produces `transform=s,$$,foo,;',
+ 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 `;'.
+
+2001-06-19 Tim Van Holder <tim.van.holder@pandora.be>
+
+ * doc/autoconf.texi (Functions Portability): Rename as...
+ (Function Portability): this.
+ (Function Portability): Document potential problems with unlink().
+
+2001-06-19 Paul Eggert <eggert@twinsun.com>
+
+ * NEWS, doc/autoconf.texi: Document quadrigraphs.
+
+2001-06-18 Akim Demaille <akim@epita.fr>
+
+ * acfunctions.m4 (AC_FUNC_FORK): Fix typos.
+
+2001-06-18 Ruediger Kuhlmann <info@ruediger-kuhlmann.de>
+
+ * acfunctions.m4: (AC_FUNC_VFORK) rename as...
+ (_AC_FUNC_VFORK): this.
+ Remove AC_DEFINEs and don't guess cross-compilation values.
+ (_AC_FUNC_FORK): New, check whether fork() isn't just a stub.
+ (AC_FUNC_FORK): New, use _AC_FUNC_VFORK and _AC_FUNC_FORK to
+ define HAVE_WORKING_FORK, HAVE_WORKING_VFORK; and vfork to fork if
+ vfork doesn't work.
+ Guess values if cross-compiling, but warn.
+ * acfunctions: Add AC_FUNC_FORK.
+ * doc/autoconf.texi: Document AC_FUNC_FORK. Give example to define
+ and vfork appropriately.
+
+2001-06-18 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Functions Portability): New section.
+
+2001-06-18 Akim Demaille <akim@epita.fr>
+
+ * autoconf.in (M4): Pass --nesting-limit=1024, unless already set
+ in $M4.
+ Suggested by Andreas Schwab.
+
+2001-06-18 Akim Demaille <akim@epita.fr>
+
+ * acfunctions.m4 (AC_FUNC_CHOWN, AC_FUNC_CLOSEDIR_VOID)
+ (AC_FUNC_GETPGRP, AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK)
+ (AC_FUNC_MMAP, AC_FUNC_SELECT_ARGTYPES, _AC_FUNC_STAT)
+ (AC_FUNC_UTIME_NULL): Use AC_INCLUDES_DEFAULT.
+ Don't use AC_TRY_RUN, which double quotes, prefer AC_RUN_IFELSE,
+ and either AC_LANG_SOURCE or AC_LANG_PROGRAM.
+ (AC_FUNC_CLOSEDIR_VOID): Protect C++ from `int closedir ();' (or
+ the converse).
+
+2001-06-18 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (ms): New index.
+ (Macro Index): Rename as...
+ (Autoconf Macro Index): this.
+ (M4 Macro Index): New appendix.
+ (Programming in M4): New chapter.
+ Define M4sugar, M4sh, m4_pattern_forbid, and m4_pattern_allow.
+ (Quoting): Rename as...
+ (M$ Quotation): this.
+ Be part of `Programming in M4).
+
+2001-06-18 Nicolas Joly <njoly@pasteur.fr>
+
+ * tests/torture.at (AC_ARG_VAR): Set variables and export them
+ in separate statements for compatibility with Tru64 v5.1.
+
+2001-06-17 Akim Demaille <akim@epita.fr>
+
+ * acgeneral.m4 (_AC_ARG_VAR_VALIDATE): Be sure to cache the
+ 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.
+
+2001-06-15 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi: Move AC_FUNC_WAIT3 and
+ 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.
+
+2001-06-15 Akim Demaille <akim@epita.fr>
+
+ `build_alias', `host_alias', and `target_alias' are not AC_SUBST'd.
+ Reported by Bruno Haible.
+
+ * acgeneral.m4 (AC_ARG_VAR): Move the AC_SUBST, from here...
+ (_AC_ARG_VAR_PRECIOUS): to here.
+
+2001-06-15 Pavel Roskin <proski@gnu.org>
+
+ * acheaders.m4 (_AC_CHECK_HEADER_DIRENT): Instead of defining
+ an unused pointer use cast to this type and `if' statement to
+ avoid warnings from the compiler.
+ (AC_HEADER_TIME): Likewise.
+ * actypes.m4 (AC_CHECK_MEMBER): s/foo/ac_aggr/. Use the member
+ in `if' statement to avoid warnings from the compiler. Declare
+ ac_aggr static to avoid the need to initialize it.
+
+2001-06-14 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Portable Shell): Move to follow `Writing
+ Macros'.
+
+2001-06-13 Akim Demaille <akim@epita.fr>
+
+ * m4/missing.m4, config/missing: Updated to Automake 1.4g's.
+ Suggested by Alexander Mai.
+
+2001-06-13 Akim Demaille <akim@epita.fr>
+
+ * acgeneral.m4 (_AC_INCLUDES_DEFAULT_REQUIREMENTS): Guard
+ sys/types.h and sys/stat.h, and check for them.
+
+2001-06-13 Akim Demaille <akim@epita.fr>
+
+ * acheaders.m4 (AC_CHECK_HEADER, AC_CHECK_HEADERS): Support $4 =
+ INCLUDES.
+
+2001-06-12 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
+
+ * acspecific.m4 (AC_PATH_XTRA): Check if linking against libX11
+ succeeds and only try adding libdnet upon a failure.
+
+2001-06-12 Akim Demaille <akim@epita.fr>
+
+ * autoscan.in (&output_kind): Output the comment only if it exists.
+ (%kind_comment): Add entry for `programs'.
+ (&output_programs): Use &output_kind.
+ (&output_functions, &output_identifiers, &output_headers)
+ (&output_programs): Inline, and remove.
+
+2001-06-12 Akim Demaille <akim@epita.fr>
+
+ * autoscan.in (%kind_comment): New.
+ (output_kind): New.
+ (output_functions, output_identifiers, output_headers): Use it.
+
+2001-06-12 Akim Demaille <akim@epita.fr>
+
+ * autoscan.in (&print_unique): Take `$kind' and `$word' as
+ arguments, to factor indirections into `%macro' and `%used'.
+ (%generic_macro): Fix a typo.
+
+2001-06-12 Akim Demaille <akim@epita.fr>
+
+ * aclibraries: New.
+ * autoscan.in (@kinds): Add `libraries'.
+ Use `@kinds' instead of hard coded lists.
+ (%programs, %headers, %identifiers, %makevars, %libraries, %functions):
+ Remove, replaced by...
+ (%used): this.
+
+2001-06-12 Akim Demaille <akim@epita.fr>
+
+ * autoscan.in (%functions_macros %headers_macros)
+ (%identifiers_macros %programs_macros %makevars_macros): Remove,
+ replaced by...
+ (%macro): New.
+
+2001-06-11 Raja R Harinath <harinath@cs.umn.edu>
+
+ * aclang.m4 (AC_NO_EXECUTABLES): Override
+ _AC_COMPILER_EXEEXT_WORKS, not _AC_LANG_COMPILER_WORKS.
+
+2001-06-11 Akim Demaille <akim@epita.fr>
+
+ * aclang.m4 (AC_NO_EXECUTABLES): Define the macros with their
+ trailing new line.
+ Reported by Andreas Schwab.
+
+2001-06-11 Akim Demaille <akim@epita.fr>
+
+ * Makefile.am, Makefile.maint: Typos.
+
+2001-06-09 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Here-Documents): New section, gathering
+ documentation about here-documents.
+ Use `href', not `uref', and other changes.
+
+2001-06-09 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Portable Shell Programming): Promoted as a
+ chapter.
+
+2001-06-09 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Limitations of Builtins): Complete the
+ description of the here-docs penalties with Alexandre Oliva's
+ explanations.
+
+2001-06-01 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi: Talk about here documents and speedups.
+ Do not use "echo" on arbitrary strings.
+ Spell "here-documents" consistently with the standard.
+
+2001-06-09 Akim Demaille <akim@epita.fr>
+
+ * doc/autoconf.texi (Concept Index): Introduce it.
+ Regenerate the menus.
+
+2001-06-09 Akim Demaille <akim@epita.fr>
+
+ * Makefile.maint, GNUmakefile: New, from Jim Meyering.
+ * config/prev-version.txt: New.
+ * config/move-if-change: New, for GNU libc.
+
+2001-06-06 Pavel Roskin <proski@gnu.org>
+
+ * tests/atgeneral.m4 (AT_INIT): Remove "/bin/sh" after $SHELL.
+
+2001-06-06 Akim Demaille <akim@epita.fr>
+
+ * acgeneral.m4 (AC_CHECK_LIB): Fix the cache var name to work
+ properly when $1 is not a literal.
+ Fixes PR Autoconf/187, reported by Bram Moolenaar.
+
+2001-06-06 Akim Demaille <akim@epita.fr>
+
+ Invoking AC_COPYRIGHT before AC_INIT fails.
+
+ * Makefile.am (.m4.m4f): Pass --fatal-warnings to m4.
+ * acgeneral.m4 (_m4_divert(VERSION_FSF))
+ (_m4_divert(VERSION_USER)): New.
+ (AC_COPYRIGHT): $2 is the diversion to use.
+ (_AC_INIT_COPYRIGHT): Use the FSF diversion.
+ (AC_INIT): Remove dead comments as now it's commutative.
+
+2001-06-06 Akim Demaille <akim@epita.fr>
+
+ * tests/semantics.at (AC_CHECK_LIB): Strengthen to reflect
+ PR autoconf/187.
+
+2001-06-05 Akim Demaille <akim@epita.fr>
+
+ * acgeneral.m4 (_AC_INIT_PARSE_ARGS): `prefix' and `exec_prefix'
+ can be empty.
+ `*dir' variables cannot be NONE.
+ Reported by Mark Kettenis.
+
+2001-06-05 Paul Eggert <eggert@twinsun.com>
+
+ * doc/autoconf.texi: Fix references to Solaris and SunOS versions.
+
+2001-06-04 Akim Demaille <akim@epita.fr>
+
+ * acgeneral.m4 (AC_VAR_SET, AC_VAR_GET, AC_VAR_TEST_SET)
+ (AC_VAR_SET_IFELSE, AC_VAR_PUSHDEF and AC_VAR_POPDEF, AC_TR_CPP)
+ (AC_TR_SH): Move as...
+ * m4sh.m4 (AS_VAR_SET, AS_VAR_GET, AS_VAR_TEST_SET)
+ (AS_VAR_SET_IF, AC_VAR_PUSHDEF, AS_VAR_POPDEF, AS_TR_CPP)
+ (AS_TR_SH): these.
+ (_AS_TR_PREPARE, _AS_CR_PREPARE, _AS_TR_CPP_PREPARE)
+ (_AS_TR_SH_PREPARE): New.
+ (AS_SHELL_SANITIZE): Invoke _AS_TR_PREPARE.
+ * tests/aclocal.m4 (AC_STATE_SAVE): `as_' vars can be modified.
+
+2001-06-02 Akim Demaille <akim@epita.fr>
+
+ * Makefile.am (.m4.m4f): Pass the options first.
+ Fixes PR autoconf/182.
+
+2001-06-02 Nathan Sidwell <nathan@codesourcery.com>
+
+ GNU getopt, when POSIXLY_CORRECT does not permute options and
+ 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.
+
+2001-06-02 Christian Marquardt <marq@gfz-potsdam.de>
+
+ * aclang.m4 (AC_PROG_F77): Add Fujitsu's "frt" to the list of
+ Fortran compilers to check.
+ (_AC_PROG_F77_V): Add '-###' as a possible option to print
+ information on library and object files.
+ (AC_PROG_CXX): Add Fujitsu's "FCC" to the list of C++ compilers
+ to check.
+
+2001-06-02 Akim Demaille <akim@epita.fr>
+
+ * autom4te.in (Request::@request): Declare with `vars', not `my',
+ as it prevents updates via `do FILENAME'.
+
+2001-06-02 Akim Demaille <akim@epita.fr>
+
+ * configure.in (standards_texi): Remove, dead code.
+
+2001-06-02 Akim Demaille <akim@epita.fr>
+
+ * autom4te.in: New.
+
+2001-06-02 Pavel Roskin <proski@gnu.org>
+
+ * acgeneral.m4 (_AC_INIT_PREPARE): Don't rely on $? in the traps
+ for signals other than 0 - exit with code 1.
+ * m4sh.m4 (AS_TMPDIR): Likewise.
+ * autoconf.in: Likewise. Also don't rely on exit == exit $?.
+ * autoheader.in: Likewise.
+ * autoreconf.in: Likewise.
+ * tests/torture.at (Signal handling): New test for the above.
+
+2001-06-01 Akim Demaille <akim@epita.fr>
+
+ * m4sugar.m4 (m4_defn, m4_undefine, m4_popdef): Clarify the error
+ message.
+
+2001-05-31 Akim Demaille <akim@epita.fr>
+
+ * acfunctions, acheaders, acidentifiers, acmakevars, acprograms:
+ Add copyright and comments.
+ * acheaders: Add stdint.h.
+ Suggested by Paul Eggert.
+
+2001-05-31 Akim Demaille <akim@epita.fr>
+
+ * atgeneral.m4 (AT_INIT): Use $SHELL.
+ * atspecific.m4 (AT_CHECK_DEFINES): Skip HAVE_STDINT_H.
+
+2001-05-31 Akim Demaille <akim@epita.fr>
+
+ * acgeneral.m4 (_AC_INCLUDES_DEFAULT_REQUIREMENTS): Include
+ stdint.h.
+ From Paul Eggert and Lars Hecking.
+
+2001-05-31 Akim Demaille <akim@epita.fr>
+
+ * tests/base.at: Adjust line numbers in error messages.
+
+2001-05-31 Akim Demaille <akim@epita.fr>
+
+ * tests/base.at, tests/m4sh.at: When using AC_PLAIN_SCRIPT be sure
+ to emit the bangshe line.
+ Reported by David Carter.
+
+2001-05-30 Steven G. Johnson <stevenj@alum.mit.edu>
+
+ * aclang.m4 (AC_PROG_F77): Add Compaq's "fort" to the list of
+ Fortran (95) compilers to check.
+
+2001-05-29 Alexandre Duret-Lutz <duret_g@epita.fr>
+
+ * doc/autoconf.texi (Introduction, Pointers): Update the Autoconf
+ Macro Archive URL.
+
+2001-05-23 Pavel Roskin <proski@gnu.org>
+
+ * aclang.m4 (AC_PROG_CPP): Use `break' instead of `break 2' since
+ _AC_PROG_PREPROC_WORKS_IFELSE expands arguments outside the loop.
+ (AC_PROG_CXXCPP): Likewise.
+
+2001-05-22 Akim Demaille <akim@epita.fr>
+
+ * config: New directory.
+ * configure.in: AC_CONFIG_AUX_DIR it.
+ * tests/atspecific.m4 (AT_CONFIGURE_AC): Adjust.
+
+2001-05-22 Akim Demaille <akim@epita.fr>
+
+ * autoconf.in, autoreconf.in, autoheader.in, autoscan.in, ifnames.in,
+ * autoupdate.in: Specify the Emacs mode.
+ * acversion.m4.in: Rename as...
+ * acversion.m4: this.
+ * tests/Makefile.am (CLEANFILES): More garbage.
+
+2001-05-22 Akim Demaille <akim@epita.fr>
+
+ * autoconf.sh, autoreconf.sh, autoheader.sh, autoscan.pl, ifnames.sh:
+ Rename as...
+ * autoconf.in, autoreconf.in, autoheader.in, autoscan.in, ifnames.in:
+ these.
+
+2001-05-21 Akim Demaille <akim@epita.fr>
+
+ * configure.in: Bump to 2.50a.
+
+
+ -----
+
+ Local Variables:
+ coding: utf-8
+ End:
+
+ Copyright (C) 2001-2012 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see
+ <http://www.gnu.org/licenses/>.
diff --git a/GNUmakefile b/GNUmakefile
index 0394d986..58f2ead4 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -1,11 +1,11 @@
-# Having a separate GNUmakefile lets me `include' the dynamically
+# Having a separate GNUmakefile lets me 'include' the dynamically
# generated rules created via cfg.mk (package-local configuration)
# as well as maint.mk (generic maintainer rules).
# This makefile is used only if you run GNU Make.
# It is necessary if you want to build targets usually of interest
# only to the maintainer.
-# Copyright (C) 2001, 2003, 2006-2010 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2006-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -20,20 +20,10 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Systems where /bin/sh is not the default shell need this. The $(shell)
-# command below won't work with e.g. stock DOS/Windows shells.
-ifeq ($(wildcard /bin/s[h]),/bin/sh)
-SHELL = /bin/sh
-else
-# will be used only with the next shell-test line, then overwritten
-# by a configured-in value
-SHELL = sh
-endif
-
# If the user runs GNU make but has not yet run ./configure,
# give them a diagnostic.
-_have-Makefile := $(shell test -f Makefile && echo yes)
-ifeq ($(_have-Makefile),yes)
+_gl-Makefile := $(wildcard [M]akefile)
+ifneq ($(_gl-Makefile),)
# Make tar archive easier to reproduce.
export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
@@ -45,12 +35,13 @@ include Makefile
# Some projects override e.g., _autoreconf here.
-include $(srcdir)/cfg.mk
-include $(srcdir)/maint.mk
# Allow cfg.mk to override these.
_build-aux ?= build-aux
_autoreconf ?= autoreconf -v
+include $(srcdir)/maint.mk
+
# Ensure that $(VERSION) is up to date for dist-related targets, but not
# for others: rerunning autoreconf and recompiling everything isn't cheap.
_have-git-version-gen := \
@@ -100,6 +91,11 @@ srcdir = .
# The package can override .DEFAULT_GOAL to run actions like autoreconf.
-include ./cfg.mk
+
+# Allow cfg.mk to override these.
+_build-aux ?= build-aux
+_autoreconf ?= autoreconf -v
+
include ./maint.mk
ifeq ($(.DEFAULT_GOAL),abort-due-to-no-makefile)
@@ -108,7 +104,7 @@ endif
abort-due-to-no-makefile:
@echo There seems to be no Makefile in this directory. 1>&2
- @echo "You must run ./configure before running \`make'." 1>&2
+ @echo "You must run ./configure before running 'make'." 1>&2
@exit 1
endif
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 00000000..d60e29ab
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,370 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994-1996, 1999-2002, 2004-2012 Free Software Foundation,
+Inc.
+
+ Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved. This file is offered as-is,
+without warranty of any kind.
+
+Basic Installation
+==================
+
+ Briefly, the shell commands './configure; make; make install' should
+configure, build, and install this package. The following
+more-detailed instructions are generic; see the 'README' file for
+instructions specific to this package. Some packages provide this
+'INSTALL' file but do not implement all of the features documented
+below. The lack of an optional feature in a given package is not
+necessarily a bug. More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
+
+ The 'configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a 'Makefile' in each directory of the package.
+It may also create one or more '.h' files containing system-dependent
+definitions. Finally, it creates a shell script 'config.status' that
+you can run in the future to recreate the current configuration, and a
+file 'config.log' containing compiler output (useful mainly for
+debugging 'configure').
+
+ It can also use an optional file (typically called 'config.cache'
+and enabled with '--cache-file=config.cache' or simply '-C') that saves
+the results of its tests to speed up reconfiguring. Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+ If you need to do unusual things to compile the package, please try
+to figure out how 'configure' could check whether to do them, and mail
+diffs or instructions to the address given in the 'README' so they can
+be considered for the next release. If you are using the cache, and at
+some point 'config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file 'configure.ac' (or 'configure.in') is used to create
+'configure' by a program called 'autoconf'. You need 'configure.ac' if
+you want to change it or regenerate 'configure' using a newer version
+of 'autoconf'.
+
+ The simplest way to compile this package is:
+
+ 1. 'cd' to the directory containing the package's source code and type
+ './configure' to configure the package for your system.
+
+ Running 'configure' might take a while. While running, it prints
+ some messages telling which features it is checking for.
+
+ 2. Type 'make' to compile the package.
+
+ 3. Optionally, type 'make check' to run any self-tests that come with
+ the package, generally using the just-built uninstalled binaries.
+
+ 4. Type 'make install' to install the programs and any data files and
+ documentation. When installing into a prefix owned by root, it is
+ recommended that the package be configured and built as a regular
+ user, and only the 'make install' phase executed with root
+ privileges.
+
+ 5. Optionally, type 'make installcheck' to repeat any self-tests, but
+ this time using the binaries in their final installed location.
+ This target does not install anything. Running this target as a
+ regular user, particularly if the prior 'make install' required
+ root privileges, verifies that the installation completed
+ correctly.
+
+ 6. You can remove the program binaries and object files from the
+ source code directory by typing 'make clean'. To also remove the
+ files that 'configure' created (so you can compile the package for
+ a different kind of computer), type 'make distclean'. There is
+ also a 'make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+ 7. Often, you can also type 'make uninstall' to remove the installed
+ files again. In practice, not all packages have tested that
+ uninstallation works correctly, even though it is required by the
+ GNU Coding Standards.
+
+ 8. Some packages, particularly those that use Automake, provide `make
+ distcheck', which can by used by developers to test that all other
+ targets like 'make install' and 'make uninstall' work correctly.
+ This target is generally not run by end users.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the 'configure' script does not know about. Run './configure --help'
+for details on some of the pertinent environment variables.
+
+ You can give 'configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you can use GNU 'make'. 'cd' to the
+directory where you want the object files and executables to go and run
+the 'configure' script. 'configure' automatically checks for the
+source code in the directory that 'configure' is in and in '..'. This
+is known as a "VPATH" build.
+
+ With a non-GNU 'make', it is safer to compile the package for one
+architecture at a time in the source code directory. After you have
+installed the package for one architecture, use 'make distclean' before
+reconfiguring for another architecture.
+
+ On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple '-arch' options to the
+compiler but only a single '-arch' option to the preprocessor. Like
+this:
+
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CPP="gcc -E" CXXCPP="g++ -E"
+
+ This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the 'lipo' tool if you have problems.
+
+Installation Names
+==================
+
+ By default, 'make install' installs the package's commands under
+'/usr/local/bin', include files under '/usr/local/include', etc. You
+can specify an installation prefix other than '/usr/local' by giving
+'configure' the option '--prefix=PREFIX', where PREFIX must be an
+absolute file name.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like '--bindir=DIR' to specify different values for particular
+kinds of files. Run 'configure --help' for a list of the directories
+you can set and what kinds of files go in them. In general, the
+default for these options is expressed in terms of '${prefix}', so that
+specifying just '--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+ The most portable way to affect installation locations is to pass the
+correct locations to 'configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+'make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+ The first method involves providing an override variable for each
+affected directory. For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+'${prefix}'. Any directories that were specified during 'configure',
+but not in terms of '${prefix}', must each be overridden at install
+time for the entire installation to be relocated. The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+ The second method involves providing the 'DESTDIR' variable. For
+example, 'make install DESTDIR=/alternate/directory' will prepend
+'/alternate/directory' before all installation names. The approach of
+'DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters. On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of '${prefix}'
+at 'configure' time.
+
+Optional Features
+=================
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving 'configure' the
+option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
+
+ Some packages pay attention to '--enable-FEATURE' options to
+'configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to '--with-PACKAGE' options, where PACKAGE
+is something like 'gnu-as' or 'x' (for the X Window System). The
+'README' should mention any '--enable-' and '--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, 'configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the 'configure' options '--x-includes=DIR' and
+'--x-libraries=DIR' to specify their locations.
+
+ Some packages offer the ability to configure how verbose the
+execution of 'make' will be. For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with 'make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with 'make V=0'.
+
+Particular systems
+==================
+
+ On HP-UX, the default C compiler is not ANSI C compatible. If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+ ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+ HP-UX 'make' updates targets which have the same time stamps as
+their prerequisites, which makes it generally unusable when shipped
+generated files such as 'configure' are involved. Use GNU 'make'
+instead.
+
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its '<wchar.h>' header file. The option '-nodtk' can be used as
+a workaround. If GNU CC is not installed, it is therefore recommended
+to try
+
+ ./configure CC="cc"
+
+and if that doesn't work, try
+
+ ./configure CC="cc -nodtk"
+
+ On Solaris, don't put '/usr/ucb' early in your 'PATH'. This
+directory contains several dysfunctional programs; working variants of
+these programs are available in '/usr/bin'. So, if you need '/usr/ucb'
+in your 'PATH', put it _after_ '/usr/bin'.
+
+ On Haiku, software installed for all users goes in '/boot/common',
+not '/usr/local'. It is recommended to use the following options:
+
+ ./configure --prefix=/boot/common
+
+Specifying the System Type
+==========================
+
+ There may be some features 'configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, 'configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+'--build=TYPE' option. TYPE can either be a short name for the system
+type, such as 'sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS
+ KERNEL-OS
+
+ See the file 'config.sub' for the possible values of each field. If
+'config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the option '--target=TYPE' to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with '--host=TYPE'.
+
+Sharing Defaults
+================
+
+ If you want to set default values for 'configure' scripts to share,
+you can create a site shell script called 'config.site' that gives
+default values for variables like 'CC', 'cache_file', and 'prefix'.
+'configure' looks for 'PREFIX/share/config.site' if it exists, then
+'PREFIX/etc/config.site' if it exists. Or, you can set the
+'CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all 'configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+ Variables not defined in a site shell script can be set in the
+environment passed to 'configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the 'configure' command line, using 'VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+causes the specified 'gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for 'CONFIG_SHELL' due to
+an Autoconf limitation. Until the limitation is lifted, you can use
+this workaround:
+
+ CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+'configure' Invocation
+======================
+
+ 'configure' recognizes the following options to control how it
+operates.
+
+'--help'
+'-h'
+ Print a summary of all of the options to 'configure', and exit.
+
+'--help=short'
+'--help=recursive'
+ Print a summary of the options unique to this package's
+ 'configure', and exit. The 'short' variant lists options used
+ only in the top level, while the 'recursive' variant lists options
+ also present in any nested packages.
+
+'--version'
+'-V'
+ Print the version of Autoconf used to generate the 'configure'
+ script, and exit.
+
+'--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally 'config.cache'. FILE defaults to '/dev/null' to
+ disable caching.
+
+'--config-cache'
+'-C'
+ Alias for '--cache-file=config.cache'.
+
+'--quiet'
+'--silent'
+'-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to '/dev/null' (any error
+ messages will still be shown).
+
+'--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ 'configure' can determine that directory automatically.
+
+'--prefix=DIR'
+ Use DIR as the installation prefix. *note Installation Names::
+ for more details, including other options available for fine-tuning
+ the installation locations.
+
+'--no-create'
+'-n'
+ Run the configure checks, but stop before creating any output
+ files.
+
+'configure' also accepts some other, not widely useful, options. Run
+'configure --help' for more details.
diff --git a/Makefile.am b/Makefile.am
index fcd5a169..bed0b6c1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
# Make Autoconf.
-# Copyright (C) 1999-2004, 2006-2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2004, 2006-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,12 +22,13 @@ SUBDIRS = bin . lib doc tests man
ACLOCAL_AMFLAGS = -I m4
-EXTRA_DIST = ChangeLog.0 ChangeLog.1 ChangeLog.2 \
+EXTRA_DIST = ChangeLog.0 ChangeLog.1 ChangeLog.2 ChangeLog.3 \
BUGS COPYINGv3 COPYING.EXCEPTION \
GNUmakefile maint.mk cfg.mk \
build-aux/gendocs.sh \
build-aux/git-version-gen \
build-aux/announce-gen build-aux/gnupload \
+ build-aux/gitlog-to-changelog \
.prev-version .version
## --------- ##
@@ -38,16 +39,40 @@ AM_MAKEINFOFLAGS = --no-headers --no-validate --no-split
if MAKE_CASE_SENSITIVE
pkgdata_DATA = $(srcdir)/INSTALL
-
MAINTAINERCLEANFILES = $(srcdir)/INSTALL
+
+# Don't leave blank line at end of file.
+OMIT_TRAILING_EMPTY_LINES = '/^$$/H; /^$$/d; x; s/\n//p; s/\n*//; x'
+# Prefer 'plain quotes' over `makeinfo quotes'.
+CONVERT_QUOTES = "s/\`\([^']*\)'/'\1'/g"
+
$(srcdir)/INSTALL: $(top_srcdir)/doc/install.texi
- echo @firstparagraphindent insert \
+ echo @firstparagraphindent insert \
| cat - $(top_srcdir)/doc/install.texi > tmp.texi
- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
- --plaintext -o $@ tmp.texi
+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
+ --plaintext tmp.texi \
+ | sed -e $(CONVERT_QUOTES) -e $(OMIT_TRAILING_EMPTY_LINES) \
+ > $@-t && mv $@-t $@
rm -f tmp.texi
endif
+# Generate the ChangeLog from git history.
+gen_start_date = 2012-01-15 18:00:00 UTC
+.PHONY: gen-ChangeLog
+gen-ChangeLog:
+ if test -d $(top_srcdir)/.git; then \
+ $(top_srcdir)/build-aux/gitlog-to-changelog \
+ --since='$(gen_start_date)' > $(distdir)/cl-t \
+ && rm -f $(distdir)/ChangeLog \
+ && mv $(distdir)/cl-t $(distdir)/ChangeLog; \
+ fi
+
+# Dummy rule, to pacify automake "gnu" strictness and allow a clean
+# bootstrap. Creates a dummy ChangeLog (unless one is already present,
+# as might be the case for users of vc-dwim) that will be overridden
+# with a proper one at distribution time.
+ChangeLog:
+ @echo dummy > $@
# Version string management. There are two files to be aware of:
# .tarball-version - present only in a distribution tarball, and not in
@@ -69,7 +94,7 @@ $(top_srcdir)/.version:
# Arrange so that .tarball-version appears only in distribution tarballs,
# never in a checked-out repository.
-dist-hook:
+dist-hook: gen-ChangeLog
echo $(VERSION) > $(distdir)/.tarball-version
# Arrange to remove the symlink to GNUmakefile in VPATH builds.
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 00000000..b77d9390
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,853 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Make Autoconf.
+
+# Copyright (C) 1999-2004, 2006-2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = .
+DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \
+ ChangeLog INSTALL NEWS THANKS TODO build-aux/config.guess \
+ build-aux/config.sub build-aux/elisp-comp build-aux/install-sh \
+ build-aux/mdate-sh build-aux/missing build-aux/texinfo.tex
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
+ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/make-case.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pkgdatadir)"
+DATA = $(pkgdata_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir dist dist-all distcheck
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ { test ! -d "$(distdir)" \
+ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -fr "$(distdir)"; }; }
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.xz
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EMACS = @EMACS@
+EMACSLOADPATH = @EMACSLOADPATH@
+EXPR = @EXPR@
+GREP = @GREP@
+HELP2MAN = @HELP2MAN@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+M4_DEBUGFILE = @M4_DEBUGFILE@
+M4_GNU = @M4_GNU@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PERL_FLOCK = @PERL_FLOCK@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TEST_EMACS = @TEST_EMACS@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_cv_dir_trailing_space = @ac_cv_dir_trailing_space@
+ac_cv_sh_n_works = @ac_cv_sh_n_works@
+ac_cv_unsupported_fs_chars = @ac_cv_unsupported_fs_chars@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+lispdir = @lispdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+
+# bin/ must be run first, as it builds executables needed for tests.
+# autom4te uses autotest.m4f to generate `testsuite', so build tests last.
+# Rules in man/ use scripts from both bin/ and tests/, so *it* goes last.
+SUBDIRS = bin . lib doc tests man
+ACLOCAL_AMFLAGS = -I m4
+EXTRA_DIST = ChangeLog.0 ChangeLog.1 ChangeLog.2 ChangeLog.3 \
+ BUGS COPYINGv3 COPYING.EXCEPTION \
+ GNUmakefile maint.mk cfg.mk \
+ build-aux/gendocs.sh \
+ build-aux/git-version-gen \
+ build-aux/announce-gen build-aux/gnupload \
+ build-aux/gitlog-to-changelog \
+ .prev-version .version
+
+AM_MAKEINFOFLAGS = --no-headers --no-validate --no-split
+@MAKE_CASE_SENSITIVE_TRUE@pkgdata_DATA = $(srcdir)/INSTALL
+@MAKE_CASE_SENSITIVE_TRUE@MAINTAINERCLEANFILES = $(srcdir)/INSTALL
+
+# Don't leave blank line at end of file.
+@MAKE_CASE_SENSITIVE_TRUE@OMIT_TRAILING_EMPTY_LINES = '/^$$/H; /^$$/d; x; s/\n//p; s/\n*//; x'
+# Prefer 'plain quotes' over `makeinfo quotes'.
+@MAKE_CASE_SENSITIVE_TRUE@CONVERT_QUOTES = "s/\`\([^']*\)'/'\1'/g"
+
+# Generate the ChangeLog from git history.
+gen_start_date = 2012-01-15 18:00:00 UTC
+
+# Version string management. There are two files to be aware of:
+# .tarball-version - present only in a distribution tarball, and not in
+# a checked-out repository. Created with contents that were learned at
+# the last time autoconf was run, and used by git-version-gen. Must not
+# be present in either $(srcdir) or $(builddir) for git-version-gen to
+# give accurate answers during normal development with a checked out tree,
+# but must be present in a tarball when there is no version control system.
+# Therefore, it cannot be used in any dependencies. GNUmakefile has
+# hooks to force a reconfigure at distribution time to get the value
+# correct, without penalizing normal development with extra reconfigures.
+# .version - present in a checked-out repository and in a distribution
+# tarball. At least as current as the most recent .tarball-version
+# creation. Usable in dependencies, particularly for files that don't
+# want to depend on config.h but do want to track version changes.
+BUILT_SOURCES = $(top_srcdir)/.version
+
+# Perl coverage statistics.
+PERL_COVERAGE_DB = `pwd`/cover_db
+PERL_COVERAGE_FLAGS = -MDevel::Cover=-db,$(PERL_COVERAGE_DB),-silent,on,-summary,off
+PERL_COVER = cover
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+am--refresh:
+ @:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+install-pkgdataDATA: $(pkgdata_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)"
+ @list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgdatadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgdatadir)" || exit $$?; \
+ done
+
+uninstall-pkgdataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(pkgdatadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(pkgdatadir)" && rm -f $$files
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(am__remove_distdir)
+ test -d "$(distdir)" || mkdir "$(distdir)"
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-hook
+ -test -n "$(am__skip_mode_fix)" \
+ || find "$(distdir)" -type d ! -perm -755 \
+ -exec chmod u+rwx,go+rx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__remove_distdir)
+
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+
+dist-lzma: distdir
+ tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
+ $(am__remove_distdir)
+dist-xz: distdir
+ tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
+ $(am__remove_distdir)
+
+dist-tarZ: distdir
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__remove_distdir)
+
+dist-shar: distdir
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__remove_distdir)
+
+dist dist-all: distdir
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
+ $(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.lzma*) \
+ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
+ *.tar.xz*) \
+ xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
+ chmod -R a-w $(distdir); chmod a+w $(distdir)
+ mkdir $(distdir)/_build
+ mkdir $(distdir)/_inst
+ chmod a-w $(distdir)
+ test -d $(distdir)/_build || exit 0; \
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && am__cwd=`pwd` \
+ && $(am__cd) $(distdir)/_build \
+ && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+ && cd "$$am__cwd" \
+ || exit 1
+ $(am__remove_distdir)
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+ @$(am__cd) '$(distuninstallcheck_dir)' \
+ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-recursive
+all-am: Makefile $(DATA)
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(pkgdatadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-recursive
+
+clean-am: clean-generic clean-local mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-local \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-pkgdataDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-pkgdataDATA
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
+ ctags-recursive install install-am install-strip \
+ tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am am--refresh check check-am clean clean-generic \
+ clean-local ctags ctags-recursive dist dist-all dist-bzip2 \
+ dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-xz \
+ dist-zip distcheck distclean distclean-generic distclean-local \
+ distclean-tags distcleancheck distdir distuninstallcheck dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-pkgdataDATA install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
+ tags-recursive uninstall uninstall-am uninstall-pkgdataDATA
+
+
+@MAKE_CASE_SENSITIVE_TRUE@$(srcdir)/INSTALL: $(top_srcdir)/doc/install.texi
+@MAKE_CASE_SENSITIVE_TRUE@ echo @firstparagraphindent insert \
+@MAKE_CASE_SENSITIVE_TRUE@ | cat - $(top_srcdir)/doc/install.texi > tmp.texi
+@MAKE_CASE_SENSITIVE_TRUE@ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
+@MAKE_CASE_SENSITIVE_TRUE@ --plaintext tmp.texi \
+@MAKE_CASE_SENSITIVE_TRUE@ | sed -e $(CONVERT_QUOTES) -e $(OMIT_TRAILING_EMPTY_LINES) \
+@MAKE_CASE_SENSITIVE_TRUE@ > $@-t && mv $@-t $@
+@MAKE_CASE_SENSITIVE_TRUE@ rm -f tmp.texi
+.PHONY: gen-ChangeLog
+gen-ChangeLog:
+ if test -d $(top_srcdir)/.git; then \
+ $(top_srcdir)/build-aux/gitlog-to-changelog \
+ --since='$(gen_start_date)' > $(distdir)/cl-t \
+ && rm -f $(distdir)/ChangeLog \
+ && mv $(distdir)/cl-t $(distdir)/ChangeLog; \
+ fi
+
+# Dummy rule, to pacify automake "gnu" strictness and allow a clean
+# bootstrap. Creates a dummy ChangeLog (unless one is already present,
+# as might be the case for users of vc-dwim) that will be overridden
+# with a proper one at distribution time.
+ChangeLog:
+ @echo dummy > $@
+$(top_srcdir)/.version:
+ echo $(VERSION) > $@-t && mv $@-t $@
+
+# Arrange so that .tarball-version appears only in distribution tarballs,
+# never in a checked-out repository.
+dist-hook: gen-ChangeLog
+ echo $(VERSION) > $(distdir)/.tarball-version
+
+# Arrange to remove the symlink to GNUmakefile in VPATH builds.
+# TODO remove this once automake vs. AC_CONFIG_LINKS issue is fixed.
+distclean-local:
+ if test x"$(VPATH)" != x ; then rm -f GNUmakefile ; fi
+
+check-coverage-run: all
+ $(mkinstalldirs) $(PERL_COVERAGE_DB)
+ PERL5OPT="$(PERL_COVERAGE_FLAGS)"; export PERL5OPT; \
+ $(MAKE) $(AM_MAKEFLAGS) check
+
+check-coverage-report:
+ @if test ! -d $(PERL_COVERAGE_DB); then \
+ echo "No coverage database found in \`$(PERL_COVERAGE_DB)'." >&2; \
+ echo "Please run \`make check-coverage' first" >&2; \
+ exit 1; \
+ fi
+ $(PERL_COVER) $(PERL_COVERAGE_DB) $(PERL_COVER_FLAGS)
+
+# We don't use direct dependencies here because we'd like to be able
+# to invoke the report even after interrupted check-coverage.
+check-coverage: check-coverage-run
+ $(MAKE) $(AM_MAKEFLAGS) check-coverage-report
+
+clean-local: clean-coverage
+clean-coverage:
+ rm -rf $(PERL_COVERAGE_DB)
+
+.PHONY: check-coverage check-coverage-run check-coverage-report clean-coverage
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/NEWS b/NEWS
index 858601a4..86f728ae 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,15 @@
GNU Autoconf NEWS - User visible changes.
-* Noteworthy changes in release ?.? (????-??-??) [?]
+* Noteworthy changes in release 2.69 (2012-04-24) [stable]
+
+** Autoconf now requires perl 5.6 or better (but generated configure
+ scripts continue to run without perl).
+
+* Noteworthy changes in release 2.68b (2012-03-01) [beta]
+ Released by Eric Blake, based on git versions 2.68.*.
+
+** Autoconf-generated configure scripts now unconditionally re-execute
+ themselves with $CONFIG_SHELL, if that's set in the environment.
** The texinfo documentation no longer specifies "front-cover" or
"back-cover" texts, so that it may now be included in Debian's
@@ -12,8 +21,13 @@ GNU Autoconf NEWS - User visible changes.
** AS_LITERAL_IF again treats '=' as a literal. Regression introduced in
2.66.
+** The macro AS_EXECUTABLE_P, present since 2.50, is now documented.
+
** Macros
+- AC_PROG_LN_S and AS_LN_S now fall back on 'cp -pR' (not 'cp -p') if 'ln -s'
+ does not work. This works better for symlinks to directories.
+
- New macro AC_HEADER_CHECK_STDBOOL.
- New and updated macros for Fortran support:
@@ -1249,7 +1263,7 @@ Release tips:
** Misc.
- config.log
- Now contains the list of ouput variables and files (AC_SUBST,
+ Now contains the list of output variables and files (AC_SUBST,
AC_SUBST_FILES).
* Major changes in Autoconf 2.53
@@ -1338,7 +1352,7 @@ Release tips:
- AC_C_BIGENDIAN supports the cross-compiling case.
- AC_C_BIGENDIAN accepts ACTION-IF-TRUE, ACTION-IF-FALSE, and
- ACTION-IF-UNKNOWN arguments. All are facultative, and the default
+ ACTION-IF-UNKNOWN arguments. All are optional, and the default
for ACTION-IF-TRUE is to define WORDS_BIGENDIAN like AC_C_BIGENDIAN
always did.
- AC_C_LONG_DOUBLE now succeeds only if `long double' has more range or
@@ -1681,12 +1695,12 @@ Major changes in Autoconf 2.13:
Released 1999-05-01 by Ben Elliston.
-* Support for building on Win32 systems where the only available C or
+* Support for building on 32-bit Windows systems where the only available C or
C++ compiler is the Microsoft Visual C++ command line compiler
- (`cl'). Additional support for building on Win32 systems which are
+ (`cl'). Additional support for building on 32-bit Windows systems which are
using the Cygwin or Mingw32 environments.
* Support for alternative object file and executable file extensions.
- On Win32, for example, these are .obj and .exe. These are discovered
+ On 32-bit Windows, for example, these are .obj and .exe. These are discovered
using AC_OBJEXT and AC_EXEEXT, which substitute @OBJEXT@ and
@EXEEXT@ in the output, respectively.
* New macros: AC_CACHE_LOAD, AC_CACHE_SAVE, AC_FUNC_SELECT_ARGTYPES,
@@ -2088,7 +2102,7 @@ Various bug fixes.
-----
-Copyright (C) 1993-1996, 1998-2011 Free Software Foundation, Inc.
+Copyright (C) 1993-1996, 1998-2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/README b/README
index 4c71803c..6fb53a98 100644
--- a/README
+++ b/README
@@ -12,7 +12,7 @@ macro calls.
Producing configuration scripts using Autoconf requires GNU M4 and
Perl. You should install GNU M4 (version 1.4.6 or later is required;
-1.4.14 or later is recommended) and Perl (5.005_03 or later) before
+1.4.14 or later is recommended) and Perl (5.006 or later) before
configuring Autoconf, so that Autoconf's configure script can find
them. The configuration scripts produced by Autoconf are
self-contained, so their users do not need to have Autoconf (or GNU
@@ -57,8 +57,7 @@ note that the range specifies every single year in that closed interval.
-----
-Copyright (C) 1992-1994, 1998, 2000-2011 Free Software Foundation,
-Inc.
+Copyright (C) 1992-1994, 1998, 2000-2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/THANKS b/THANKS
index 867c0d8f..c3abc72b 100644
--- a/THANKS
+++ b/THANKS
@@ -448,7 +448,7 @@ mode: text
coding: utf-8
End:
-Copyright (C) 1999-2011 Free Software Foundation, Inc.
+Copyright (C) 1999-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TODO b/TODO
index a8abf943..cb124b27 100644
--- a/TODO
+++ b/TODO
@@ -592,7 +592,7 @@ with autoconf scripts.
------------------------------------------------------------------------------
-Copyright (C) 1994-1996, 1999-2002, 2007-2011 Free Software Foundation,
+Copyright (C) 1994-1996, 1999-2002, 2007-2012 Free Software Foundation,
Inc.
Copying and distribution of this file, with or without modification,
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644
index 00000000..bf6339bb
--- /dev/null
+++ b/aclocal.m4
@@ -0,0 +1,691 @@
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
+You have another version of autoconf. It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically `autoreconf'.])])
+
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.11'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version. Point them to the right macro.
+m4_if([$1], [1.11.1], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too. Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 9
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 16
+
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.62])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES(OBJC)],
+ [define([AC_PROG_OBJC],
+ defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+])
+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
+dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+])
+
+dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+AC_SUBST(install_sh)])
+
+# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+# 2006 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 10
+
+# AM_PATH_LISPDIR
+# ---------------
+AC_DEFUN([AM_PATH_LISPDIR],
+[AC_PREREQ([2.60])dnl
+ # If set to t, that means we are running in a shell under Emacs.
+ # If you have an Emacs named "t", then use the full path.
+ test x"$EMACS" = xt && EMACS=
+ AC_CHECK_PROGS([EMACS], [emacs xemacs], [no])
+ AC_ARG_VAR([EMACS], [the Emacs editor command])
+ AC_ARG_VAR([EMACSLOADPATH], [the Emacs library search path])
+ AC_ARG_WITH([lispdir],
+ [ --with-lispdir override the default lisp directory],
+ [ lispdir="$withval"
+ AC_MSG_CHECKING([where .elc files should go])
+ AC_MSG_RESULT([$lispdir])],
+ [
+ AC_CACHE_CHECK([where .elc files should go], [am_cv_lispdir], [
+ if test $EMACS != "no"; then
+ if test x${lispdir+set} != xset; then
+ # If $EMACS isn't GNU Emacs or XEmacs, this can blow up pretty badly
+ # Some emacsen will start up in interactive mode, requiring C-x C-c to exit,
+ # which is non-obvious for non-emacs users.
+ # Redirecting /dev/null should help a bit; pity we can't detect "broken"
+ # emacsen earlier and avoid running this altogether.
+ AC_RUN_LOG([$EMACS -batch -q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' </dev/null >conftest.out])
+ am_cv_lispdir=`sed -n \
+ -e 's,/$,,' \
+ -e '/.*\/lib\/x*emacs\/site-lisp$/{s,.*/lib/\(x*emacs/site-lisp\)$,${libdir}/\1,;p;q;}' \
+ -e '/.*\/share\/x*emacs\/site-lisp$/{s,.*/share/\(x*emacs/site-lisp\),${datarootdir}/\1,;p;q;}' \
+ conftest.out`
+ rm conftest.out
+ fi
+ fi
+ test -z "$am_cv_lispdir" && am_cv_lispdir='${datadir}/emacs/site-lisp'
+ ])
+ lispdir="$am_cv_lispdir"
+])
+AC_SUBST([lispdir])
+])# AM_PATH_LISPDIR
+
+AU_DEFUN([ud_PATH_LISPDIR], [AM_PATH_LISPDIR])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 6
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check for `mkdir -p'.
+AC_DEFUN([AM_PROG_MKDIR_P],
+[AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+ [[\\/$]]* | ?:[[\\/]]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[[\\\"\#\$\&\'\`$am_lf]]*)
+ AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
+ AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([m4/autobuild.m4])
+m4_include([m4/m4.m4])
+m4_include([m4/make-case.m4])
diff --git a/autoconf.morph~ b/autoconf.morph~
new file mode 100644
index 00000000..c5d8d365
--- /dev/null
+++ b/autoconf.morph~
@@ -0,0 +1,8 @@
+{
+ "name": "autoconf",
+ "kind": "chunk",
+ "build-system": "autotools",
+ "configure-commands": [
+ "./configure --prefix=\"$PREFIX\"
+ ]
+}
diff --git a/bin/Makefile.am b/bin/Makefile.am
index d19dc125..a6e3b22a 100644
--- a/bin/Makefile.am
+++ b/bin/Makefile.am
@@ -1,6 +1,6 @@
# Make Autoconf commands.
-# Copyright (C) 1999-2007, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2007, 2009-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/bin/Makefile.in b/bin/Makefile.in
new file mode 100644
index 00000000..4201b5af
--- /dev/null
+++ b/bin/Makefile.in
@@ -0,0 +1,662 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Make Autoconf commands.
+
+# Copyright (C) 1999-2007, 2009-2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Freeze M4 files.
+
+# Copyright (C) 2002, 2004, 2006-2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/../lib/freeze.mk $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+subdir = bin
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
+ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/make-case.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(bindir)"
+SCRIPTS = $(bin_SCRIPTS)
+SOURCES =
+DIST_SOURCES =
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EMACS = @EMACS@
+EMACSLOADPATH = @EMACSLOADPATH@
+EXPR = @EXPR@
+GREP = @GREP@
+HELP2MAN = @HELP2MAN@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+M4_DEBUGFILE = @M4_DEBUGFILE@
+M4_GNU = @M4_GNU@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PERL_FLOCK = @PERL_FLOCK@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TEST_EMACS = @TEST_EMACS@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_cv_dir_trailing_space = @ac_cv_dir_trailing_space@
+ac_cv_sh_n_works = @ac_cv_sh_n_works@
+ac_cv_unsupported_fs_chars = @ac_cv_unsupported_fs_chars@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+lispdir = @lispdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUFFIXES = .m4 .m4f
+AUTOM4TE_CFG = $(top_builddir)/lib/autom4te.cfg
+
+# Do not use AUTOM4TE here, since maint.mk (my-distcheck)
+# checks if we are independent of Autoconf by defining AUTOM4TE (and
+# others) to `false'. Autoconf provides autom4te, so that doesn't
+# apply to us.
+MY_AUTOM4TE = \
+ autom4te_perllibdir='$(top_srcdir)'/lib \
+ AUTOM4TE_CFG='$(AUTOM4TE_CFG)' $(top_builddir)/bin/autom4te \
+ -B '$(top_builddir)'/lib -B '$(top_srcdir)'/lib # keep ` '
+
+
+# Factor the dependencies between all the frozen files.
+# Some day we should explain to Automake how to use autom4te to compute
+# the dependencies...
+src_libdir = $(top_srcdir)/lib
+build_libdir = $(top_builddir)/lib
+m4f_dependencies = $(top_builddir)/bin/autom4te $(AUTOM4TE_CFG)
+m4sugar_m4f_dependencies = \
+ $(m4f_dependencies) \
+ $(src_libdir)/m4sugar/m4sugar.m4 \
+ $(build_libdir)/m4sugar/version.m4
+
+m4sh_m4f_dependencies = \
+ $(m4sugar_m4f_dependencies) \
+ $(src_libdir)/m4sugar/m4sh.m4
+
+autotest_m4f_dependencies = \
+ $(m4sh_m4f_dependencies) \
+ $(src_libdir)/autotest/autotest.m4 \
+ $(src_libdir)/autotest/general.m4 \
+ $(src_libdir)/autotest/specific.m4
+
+autoconf_m4f_dependencies = \
+ $(m4sh_m4f_dependencies) \
+ $(src_libdir)/autoconf/autoscan.m4 \
+ $(src_libdir)/autoconf/general.m4 \
+ $(src_libdir)/autoconf/autoheader.m4 \
+ $(src_libdir)/autoconf/autoupdate.m4 \
+ $(src_libdir)/autoconf/autotest.m4 \
+ $(src_libdir)/autoconf/status.m4 \
+ $(src_libdir)/autoconf/oldnames.m4 \
+ $(src_libdir)/autoconf/specific.m4 \
+ $(src_libdir)/autoconf/lang.m4 \
+ $(src_libdir)/autoconf/c.m4 \
+ $(src_libdir)/autoconf/fortran.m4 \
+ $(src_libdir)/autoconf/erlang.m4 \
+ $(src_libdir)/autoconf/go.m4 \
+ $(src_libdir)/autoconf/functions.m4 \
+ $(src_libdir)/autoconf/headers.m4 \
+ $(src_libdir)/autoconf/types.m4 \
+ $(src_libdir)/autoconf/libs.m4 \
+ $(src_libdir)/autoconf/programs.m4 \
+ $(src_libdir)/autoconf/autoconf.m4
+
+ETAGS_FOR_M4 = \
+ --lang=none \
+ --regex='/\(m4_define\|define\)(\[\([^]]*\)\]/\2/'
+
+ETAGS_FOR_M4SUGAR = \
+ $(ETAGS_FOR_M4) \
+ --regex='/m4_defun(\[\([^]]*\)\]/\1/'
+
+ETAGS_FOR_AUTOCONF = \
+ $(ETAGS_FOR_M4SUGAR) \
+ --regex='/\(A[CU]_DEFUN\|AU_ALIAS\)(\[\([^]]*\)\]/\2/' \
+ --regex='/AN_\(FUNCTION\|HEADER\|IDENTIFIER\|LIBRARY\|MAKEVAR\|PROGRAM\)(\[\([^]]*\)\]/\2/'
+
+bin_SCRIPTS = autom4te \
+ autoconf autoheader autoreconf ifnames autoscan autoupdate
+
+EXTRA_DIST = autoconf.as autoheader.in autoreconf.in autoupdate.in ifnames.in \
+ autoscan.in autom4te.in
+
+
+# Files that should be removed, but which Automake does not know.
+MOSTLYCLEANFILES = $(bin_SCRIPTS) autoconf.in *.tmp
+
+# Get the release year from ../ChangeLog.
+RELEASE_YEAR = \
+ `sed 's/^\([0-9][0-9][0-9][0-9]\).*/\1/;q' $(top_srcdir)/ChangeLog`
+
+edit = sed \
+ -e 's|@SHELL[@]|$(SHELL)|g' \
+ -e 's|@PERL[@]|$(PERL)|g' \
+ -e 's|@PERL_FLOCK[@]|$(PERL_FLOCK)|g' \
+ -e 's|@bindir[@]|$(bindir)|g' \
+ -e 's|@pkgdatadir[@]|$(pkgdatadir)|g' \
+ -e 's|@prefix[@]|$(prefix)|g' \
+ -e 's|@autoconf-name[@]|'`echo autoconf | sed '$(transform)'`'|g' \
+ -e 's|@autoheader-name[@]|'`echo autoheader | sed '$(transform)'`'|g' \
+ -e 's|@autom4te-name[@]|'`echo autom4te | sed '$(transform)'`'|g' \
+ -e 's|@M4[@]|$(M4)|g' \
+ -e 's|@M4_DEBUGFILE[@]|$(M4_DEBUGFILE)|g' \
+ -e 's|@M4_GNU[@]|$(M4_GNU)|g' \
+ -e 's|@AWK[@]|$(AWK)|g' \
+ -e 's|@RELEASE_YEAR[@]|'$(RELEASE_YEAR)'|g' \
+ -e 's|@VERSION[@]|$(VERSION)|g' \
+ -e 's|@PACKAGE_NAME[@]|$(PACKAGE_NAME)|g' \
+ -e 's|@configure_input[@]|Generated from $@.in; do not edit by hand.|g'
+
+TAGS_DEPENDENCIES = $(EXTRA_DIST)
+letters = abcdefghijklmnopqrstuvwxyz
+LETTERS = ABCDEFGHIJKLMNOPQRSTUVWXYZ
+DIGITS = 0123456789
+WORD_REGEXP = [$(LETTERS)$(letters)_][$(LETTERS)$(letters)$(DIGITS)_]*
+ETAGS_PERL = --lang=perl \
+ autoheader.in autoreconf.in autoupdate.in autoscan.in autom4te.in \
+ ifnames.in
+
+ETAGS_SH = --lang=none --regex='/\($(WORD_REGEXP)\)=/\1/' \
+ autoconf.in
+
+ETAGS_ARGS = $(ETAGS_PERL) $(ETAGS_SH)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .m4 .m4f
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../lib/freeze.mk $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bin/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu bin/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-binSCRIPTS: $(bin_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binSCRIPTS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+installcheck-binSCRIPTS: $(bin_SCRIPTS)
+ bad=0; pid=$$$$; list="$(bin_SCRIPTS)"; for p in $$list; do \
+ case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \
+ *" $$p "* | *" $(srcdir)/$$p "*) continue;; \
+ esac; \
+ f=`echo "$$p" | sed 's,^.*/,,;$(transform)'`; \
+ for opt in --help --version; do \
+ if "$(DESTDIR)$(bindir)/$$f" $$opt >c$${pid}_.out \
+ 2>c$${pid}_.err </dev/null \
+ && test -n "`cat c$${pid}_.out`" \
+ && test -z "`cat c$${pid}_.err`"; then :; \
+ else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
+ done; \
+ done; rm -f c$${pid}_.???; exit $$bad
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binSCRIPTS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am: installcheck-binSCRIPTS
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binSCRIPTS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ ctags distclean distclean-generic distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-binSCRIPTS install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am \
+ installcheck-binSCRIPTS installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-binSCRIPTS
+
+$(AUTOM4TE_CFG): $(top_srcdir)/lib/autom4te.in
+ cd $(top_builddir)/lib && $(MAKE) $(AM_MAKEFLAGS) autom4te.cfg
+
+# When processing the file with diversion disabled, there must be no
+# output but comments and empty lines.
+# If freezing produces output, something went wrong: a bad `divert',
+# or an improper paren etc.
+# It may happen that the output does not end with an end of line, hence
+# force an end of line when reporting errors.
+.m4.m4f:
+ $(MY_AUTOM4TE) \
+ --language=$* \
+ --freeze \
+ --output=$@
+
+# For parallel builds.
+$(build_libdir)/m4sugar/version.m4:
+ cd $(build_libdir)/m4sugar && $(MAKE) $(AM_MAKEFLAGS) version.m4
+
+check-forbidden-patterns:
+ @if (cd $(srcdir) && \
+ $(GREP) $(forbidden_patterns) $(forbidden_patterns_files)) \
+ >forbidden.log; then \
+ echo "ERROR: forbidden patterns were found:" >&2; \
+ sed "s|^|$*.m4: |" <forbidden.log >&2; \
+ echo >&2; \
+ exit 1; \
+ else \
+ rm -f forbidden.log; \
+ fi
+
+$(top_builddir)/bin/autom4te: autom4te
+
+# autoconf is written in M4sh.
+# FIXME: this target should depend on the frozen files below lib/m4sugar,
+# otherwise autom4te may pick up a frozen m4sh.m4f from an earlier
+# installation below the same $(prefix); work around this with --melt.
+autoconf.in: $(srcdir)/autoconf.as $(m4sh_m4f_dependencies)
+ $(MY_AUTOM4TE) --language M4sh --cache '' --melt $(srcdir)/autoconf.as -o $@
+
+$(bin_SCRIPTS): Makefile
+ rm -f $@ $@.tmp
+ srcdir=''; \
+ test -f ./$@.in || srcdir=$(srcdir)/; \
+ $(edit) $${srcdir}$@.in >$@.tmp
+ chmod +x $@.tmp
+ chmod a-w $@.tmp
+ mv $@.tmp $@
+
+autoconf: autoconf.in
+autoheader: $(srcdir)/autoheader.in
+autom4te: $(srcdir)/autom4te.in
+autoreconf: $(srcdir)/autoreconf.in
+autoscan: $(srcdir)/autoscan.in
+autoupdate: $(srcdir)/autoupdate.in
+ifnames: $(srcdir)/ifnames.in
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/bin/autoconf.as b/bin/autoconf.as
index 956fc22c..aa853949 100644
--- a/bin/autoconf.as
+++ b/bin/autoconf.as
@@ -3,7 +3,7 @@ m4_divert_push([HEADER-COPYRIGHT])dnl
# @configure_input@
# autoconf -- create `configure' using m4 macros
-# Copyright (C) 1992-1994, 1996, 1999-2011 Free Software Foundation,
+# Copyright (C) 1992-1994, 1996, 1999-2012 Free Software Foundation,
# Inc.
# This program is free software: you can redistribute it and/or modify
diff --git a/bin/autoheader.in b/bin/autoheader.in
index 7086a9b7..d81a3138 100644
--- a/bin/autoheader.in
+++ b/bin/autoheader.in
@@ -7,7 +7,7 @@ eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
# autoheader -- create `config.h.in' from `configure.ac'
-# Copyright (C) 1992-1994, 1996, 1998-2011 Free Software Foundation,
+# Copyright (C) 1992-1994, 1996, 1998-2012 Free Software Foundation,
# Inc.
# This program is free software: you can redistribute it and/or modify
diff --git a/bin/autom4te.in b/bin/autom4te.in
index 4ad9570e..11773c99 100644
--- a/bin/autom4te.in
+++ b/bin/autom4te.in
@@ -6,7 +6,7 @@ eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
if 0;
# autom4te - Wrapper around M4 libraries.
-# Copyright (C) 2001-2003, 2005-2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2003, 2005-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -838,7 +838,7 @@ EOF
# This is dubious: should we really transform the quadrigraphs in
# traces? It might break balanced [ ] etc. in the output. The
- # consensus seeems to be that traces are more useful this way.
+ # consensus seems to be that traces are more useful this way.
while ($_ = $in->getline)
{
# It makes no sense to try to transform __oline__.
diff --git a/bin/autoreconf.in b/bin/autoreconf.in
index 03f9ecd1..acf25d48 100644
--- a/bin/autoreconf.in
+++ b/bin/autoreconf.in
@@ -6,7 +6,7 @@ eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
if 0;
# autoreconf - install the GNU Build System in a directory tree
-# Copyright (C) 1994, 1999-2011 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1999-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/bin/autoscan.in b/bin/autoscan.in
index fcd189cd..a67c48d0 100644
--- a/bin/autoscan.in
+++ b/bin/autoscan.in
@@ -3,7 +3,7 @@
# @configure_input@
# autoscan - Create configure.scan (a preliminary configure.ac) for a package.
-# Copyright (C) 1994, 1999-2011 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1999-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -253,7 +253,7 @@ sub scan_c_file ($)
{
$in_comment = 0;
}
- # The whole line is inside a commment.
+ # The whole line is inside a comment.
next if $in_comment;
# All on one line.
s,/\*.*?\*/,,g;
diff --git a/bin/autoupdate.in b/bin/autoupdate.in
index dd01861e..9737d494 100644
--- a/bin/autoupdate.in
+++ b/bin/autoupdate.in
@@ -3,7 +3,7 @@
# @configure_input@
# autoupdate - modernize an Autoconf file.
-# Copyright (C) 1994, 1999-2011 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1999-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/bin/ifnames.in b/bin/ifnames.in
index 4e948e9a..ba2cd056 100644
--- a/bin/ifnames.in
+++ b/bin/ifnames.in
@@ -7,7 +7,7 @@ eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
# ifnames - print the identifiers used in C preprocessor conditionals
-# Copyright (C) 1994-1995, 1999-2003, 2005-2011 Free Software
+# Copyright (C) 1994-1995, 1999-2003, 2005-2012 Free Software
# Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
diff --git a/build-aux/announce-gen b/build-aux/announce-gen
index 7f9ec86d..8c6ed368 100755
--- a/build-aux/announce-gen
+++ b/build-aux/announce-gen
@@ -3,13 +3,13 @@ eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
if 0;
# Generate a release announcement message.
-my $VERSION = '2010-05-03 20:17'; # UTC
+my $VERSION = '2012-04-19 14:36'; # UTC
# The definition above must lie within the first 8 lines in order
# for the Emacs time-stamp write hook (at end) to update it.
# If you change this file with Emacs, please let the write hook
# do its job. Otherwise, update this string manually.
-# Copyright (C) 2002-2010 Free Software Foundation, Inc.
+# Copyright (C) 2002-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -30,7 +30,8 @@ use strict;
use Getopt::Long;
use Digest::MD5;
-use Digest::SHA1;
+eval { require Digest::SHA; }
+ or eval 'use Digest::SHA1';
use POSIX qw(strftime);
(my $ME = $0) =~ s|.*/||;
@@ -44,7 +45,7 @@ sub usage ($)
my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
if ($exit_code != 0)
{
- print $STREAM "Try `$ME --help' for more information.\n";
+ print $STREAM "Try '$ME --help' for more information.\n";
}
else
{
@@ -106,7 +107,7 @@ sub sizes (@)
my $t = `$cmd`;
# FIXME-someday: give a better diagnostic, a la $PROCESS_STATUS
$@
- and (warn "$ME: command failed: `$cmd'\n"), $fail = 1;
+ and (warn "$ME: command failed: '$cmd'\n"), $fail = 1;
chomp $t;
$t =~ s/^([\d.]+[MkK]).*/${1}B/;
$res{$f} = $t;
@@ -128,12 +129,12 @@ sub print_locations ($\@\%@)
foreach my $url (@{$url})
{
for my $file (@file)
- {
- print " $url/$file";
- print " (", $$size{$file}, ")"
- if exists $$size{$file};
- print "\n";
- }
+ {
+ print " $url/$file";
+ print " (", $$size{$file}, ")"
+ if exists $$size{$file};
+ print "\n";
+ }
}
print "\n";
}
@@ -154,17 +155,17 @@ sub print_checksums (@)
foreach my $meth (qw (md5 sha1))
{
foreach my $f (@file)
- {
- open IN, '<', $f
- or die "$ME: $f: cannot open for reading: $!\n";
- binmode IN;
- my $dig =
- ($meth eq 'md5'
- ? Digest::MD5->new->addfile(*IN)->hexdigest
- : Digest::SHA1->new->addfile(*IN)->hexdigest);
- close IN;
- print "$dig $f\n";
- }
+ {
+ open IN, '<', $f
+ or die "$ME: $f: cannot open for reading: $!\n";
+ binmode IN;
+ my $dig =
+ ($meth eq 'md5'
+ ? Digest::MD5->new->addfile(*IN)->hexdigest
+ : Digest::SHA1->new->addfile(*IN)->hexdigest);
+ close IN;
+ print "$dig $f\n";
+ }
}
print "\n";
}
@@ -180,7 +181,10 @@ sub print_news_deltas ($$$)
{
my ($news_file, $prev_version, $curr_version) = @_;
- print "\n$news_file\n\n";
+ my $news_name = $news_file;
+ $news_name =~ s|^\./||;
+
+ print "\n$news_name\n\n";
# Print all lines from $news_file, starting with the first one
# that mentions $curr_version up to but not including
@@ -189,34 +193,39 @@ sub print_news_deltas ($$$)
my $re_prefix = qr/(?:\* )?(?:Noteworthy c|Major c|C)(?i:hanges)/;
+ my $found_news;
open NEWS, '<', $news_file
or die "$ME: $news_file: cannot open for reading: $!\n";
while (defined (my $line = <NEWS>))
{
if ( ! $in_items)
- {
- # Match lines like these:
- # * Major changes in release 5.0.1:
- # * Noteworthy changes in release 6.6 (2006-11-22) [stable]
- $line =~ /^$re_prefix.*(?:[^\d.]|$)\Q$curr_version\E(?:[^\d.]|$)/o
- or next;
- $in_items = 1;
- print $line;
- }
+ {
+ # Match lines like these:
+ # * Major changes in release 5.0.1:
+ # * Noteworthy changes in release 6.6 (2006-11-22) [stable]
+ $line =~ /^$re_prefix.*(?:[^\d.]|$)\Q$curr_version\E(?:[^\d.]|$)/o
+ or next;
+ $in_items = 1;
+ print $line;
+ }
else
- {
- # This regexp must not match version numbers in NEWS items.
- # For example, they might well say `introduced in 4.5.5',
- # and we don't want that to match.
- $line =~ /^$re_prefix.*(?:[^\d.]|$)\Q$prev_version\E(?:[^\d.]|$)/o
- and last;
- print $line;
- }
+ {
+ # This regexp must not match version numbers in NEWS items.
+ # For example, they might well say "introduced in 4.5.5",
+ # and we don't want that to match.
+ $line =~ /^$re_prefix.*(?:[^\d.]|$)\Q$prev_version\E(?:[^\d.]|$)/o
+ and last;
+ print $line;
+ $line =~ /\S/
+ and $found_news = 1;
+ }
}
close NEWS;
$in_items
- or die "$ME: $news_file: no matching lines for `$curr_version'\n";
+ or die "$ME: $news_file: no matching lines for '$curr_version'\n";
+ $found_news
+ or die "$ME: $news_file: no news item found for '$curr_version'\n";
}
sub print_changelog_deltas ($$)
@@ -229,8 +238,8 @@ sub print_changelog_deltas ($$)
use File::Find;
my @changelog;
find ({wanted => sub {$_ eq 'ChangeLog' && -d 'CVS'
- and push @changelog, $File::Find::name}},
- '.');
+ and push @changelog, $File::Find::name}},
+ '.');
# If there are no ChangeLog files, we're done.
@changelog
@@ -255,13 +264,13 @@ sub print_changelog_deltas ($$)
my $dot_slash = $d eq '.' ? $d : "./$d";
my $target = "$dot_slash/ChangeLog";
delete $changelog{$target}
- and push @reordered, $target;
+ and push @reordered, $target;
}
# Append any remaining ChangeLog files.
push @reordered, sort keys %changelog;
- # Remove leading `./'.
+ # Remove leading './'.
@reordered = map { s!^\./!!; $_ } @reordered;
print "\nChangeLog entries:\n\n";
@@ -272,37 +281,37 @@ sub print_changelog_deltas ($$)
my $cmd = "cvs -n diff -u -r$prev_cvs_tag -rHEAD @reordered";
open DIFF, '-|', $cmd
- or die "$ME: cannot run `$cmd': $!\n";
+ or die "$ME: cannot run '$cmd': $!\n";
# Print two types of lines, making minor changes:
- # Lines starting with `+++ ', e.g.,
+ # Lines starting with '+++ ', e.g.,
# +++ ChangeLog 22 Feb 2003 16:52:51 -0000 1.247
- # and those starting with `+'.
+ # and those starting with '+'.
# Don't print the others.
my $prev_printed_line_empty = 1;
while (defined (my $line = <DIFF>))
{
if ($line =~ /^\+\+\+ /)
- {
- my $separator = "*"x70 ."\n";
- $line =~ s///;
- $line =~ s/\s.*//;
- $prev_printed_line_empty
- or print "\n";
- print $separator, $line, $separator;
- }
+ {
+ my $separator = "*"x70 ."\n";
+ $line =~ s///;
+ $line =~ s/\s.*//;
+ $prev_printed_line_empty
+ or print "\n";
+ print $separator, $line, $separator;
+ }
elsif ($line =~ /^\+/)
- {
- $line =~ s///;
- print $line;
- $prev_printed_line_empty = ($line =~ /^$/);
- }
+ {
+ $line =~ s///;
+ print $line;
+ $prev_printed_line_empty = ($line =~ /^$/);
+ }
}
close DIFF;
# The exit code should be 1.
# Allow in case there are no modified ChangeLog entries.
$? == 256 || $? == 128
- or warn "$ME: warning: `cmd' had unexpected exit code or signal ($?)\n";
+ or warn "$ME: warning: '$cmd' had unexpected exit code or signal ($?)\n";
}
sub get_tool_versions ($$)
@@ -316,25 +325,25 @@ sub get_tool_versions ($$)
foreach my $t (@$tool_list)
{
if ($t eq 'gnulib')
- {
- push @tool_version_pair, ucfirst $t . ' ' . $gnulib_version;
- next;
- }
+ {
+ push @tool_version_pair, ucfirst $t . ' ' . $gnulib_version;
+ next;
+ }
# Assume that the last "word" on the first line of
- # `tool --version` output is the version string.
+ # 'tool --version' output is the version string.
my ($first_line, undef) = split ("\n", `$t --version`);
if ($first_line =~ /.* (\d[\w.-]+)$/)
- {
- $t = ucfirst $t;
- push @tool_version_pair, "$t $1";
- }
+ {
+ $t = ucfirst $t;
+ push @tool_version_pair, "$t $1";
+ }
else
- {
- defined $first_line
- and $first_line = '';
- warn "$ME: $t: unexpected --version output\n:$first_line";
- $fail = 1;
- }
+ {
+ defined $first_line
+ and $first_line = '';
+ warn "$ME: $t: unexpected --version output\n:$first_line";
+ $fail = 1;
+ }
}
$fail
@@ -398,11 +407,11 @@ sub get_tool_versions ($$)
grep (/^gnulib$/, @tool_list) ^ defined $gnulib_version
and (warn "$ME: when specifying gnulib as a tool, you must also specify\n"
- . "--gnulib-version=V, where V is the result of running git describe\n"
- . "in the gnulib source directory.\n"), $fail = 1;
+ . "--gnulib-version=V, where V is the result of running git describe\n"
+ . "in the gnulib source directory.\n"), $fail = 1;
exists $valid_release_types{$release_type}
- or (warn "$ME: `$release_type': invalid release type\n"), $fail = 1;
+ or (warn "$ME: '$release_type': invalid release type\n"), $fail = 1;
@ARGV
and (warn "$ME: too many arguments:\n", join ("\n", @ARGV), "\n"),
@@ -445,28 +454,50 @@ FIXME: put comments here
EOF
- print_locations ("compressed sources", @url_dir_list, %size, @tarballs);
- -f $xd
- and print_locations ("xdelta diffs (useful? if so, "
- . "please tell bug-gnulib\@gnu.org)",
- @url_dir_list, %size, $xd);
- my @sig_files = map { "$_.sig" } @tarballs;
- print_locations ("GPG detached signatures[*]", @url_dir_list, %size,
- @sig_files);
+ if (@url_dir_list == 1 && @tarballs == 1)
+ {
+ # When there's only one tarball and one URL, use a more concise form.
+ my $m = "$url_dir_list[0]/$tarballs[0]";
+ print "Here are the compressed sources and a GPG detached signature[*]:\n"
+ . " $m\n"
+ . " $m.sig\n\n";
+ }
+ else
+ {
+ print_locations ("compressed sources", @url_dir_list, %size, @tarballs);
+ -f $xd
+ and print_locations ("xdelta diffs (useful? if so, "
+ . "please tell bug-gnulib\@gnu.org)",
+ @url_dir_list, %size, $xd);
+ my @sig_files = map { "$_.sig" } @tarballs;
+ print_locations ("GPG detached signatures[*]", @url_dir_list, %size,
+ @sig_files);
+ }
+
if ($url_dir_list[0] =~ "gnu\.org")
{
- print "To reduce load on the main server, use a mirror listed at:\n";
- print " http://www.gnu.org/order/ftp.html\n\n";
+ print "Use a mirror for higher download bandwidth:\n";
+ if (@tarballs == 1 && $url_dir_list[0] =~ m!http://ftp\.gnu\.org/gnu/!)
+ {
+ (my $m = "$url_dir_list[0]/$tarballs[0]")
+ =~ s!http://ftp\.gnu\.org/gnu/!http://ftpmirror\.gnu\.org/!;
+ print " $m\n"
+ . " $m.sig\n\n";
+
+ }
+ else
+ {
+ print " http://www.gnu.org/order/ftp.html\n\n";
+ }
}
$print_checksums_p
and print_checksums (@sizable);
print <<EOF;
-[*] You can use either of the above signature files to verify that
-the corresponding file (without the .sig suffix) is intact. First,
-be sure to download both the .sig file and the corresponding tarball.
-Then, run a command like this:
+[*] Use a .sig file to verify that the corresponding file (without the
+.sig suffix) is intact. First, be sure to download both the .sig file
+and the corresponding tarball. Then, run a command like this:
gpg --verify $tarballs[0].sig
@@ -475,7 +506,7 @@ then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys $gpg_key_id
-and rerun the \`gpg --verify' command.
+and rerun the 'gpg --verify' command.
EOF
my @tool_versions = get_tool_versions (\@tool_list, $gnulib_version);
diff --git a/build-aux/config.guess b/build-aux/config.guess
index 4c8f032e..d622a44e 100755
--- a/build-aux/config.guess
+++ b/build-aux/config.guess
@@ -1,10 +1,10 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-# Free Software Foundation, Inc.
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+# 2011, 2012 Free Software Foundation, Inc.
-timestamp='2010-09-24'
+timestamp='2012-02-10'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -17,9 +17,7 @@ timestamp='2010-09-24'
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -57,8 +55,8 @@ GNU config.guess ($timestamp)
Originally written by Per Bothner.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-Software Foundation, Inc.
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -92,7 +90,7 @@ if test $# != 0; then
exit 1
fi
-trap 'exit 1' HUP INT TERM
+trap 'exit 1' 1 2 15
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
@@ -106,7 +104,7 @@ trap 'exit 1' HUP INT TERM
set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
@@ -145,7 +143,7 @@ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
# switched to ELF, *-*-netbsd* would select the old
# object file format. This provides both forward
@@ -181,7 +179,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
fi
;;
*)
- os=netbsd
+ os=netbsd
;;
esac
# The OS release
@@ -224,7 +222,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
;;
*5.*)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
;;
esac
# According to Compaq, /usr/sbin/psrinfo has been available on
@@ -270,7 +268,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit ;;
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ exitcode=$?
+ trap '' 0
+ exit $exitcode ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
@@ -296,7 +297,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
echo s390-ibm-zvmoe
exit ;;
*:OS400:*:*)
- echo powerpc-ibm-os400
+ echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
@@ -395,23 +396,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
+ exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit ;;
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit ;;
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit ;;
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit ;;
m68k:machten:*:*)
echo m68k-apple-machten${UNAME_RELEASE}
exit ;;
@@ -481,8 +482,8 @@ EOF
echo m88k-motorola-sysv3
exit ;;
AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
@@ -495,7 +496,7 @@ EOF
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
- exit ;;
+ exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit ;;
@@ -595,52 +596,52 @@ EOF
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
- 532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
- 32) HP_ARCH="hppa2.0n" ;;
- 64) HP_ARCH="hppa2.0w" ;;
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
- esac ;;
- esac
+ esac ;;
+ esac
fi
if [ "${HP_ARCH}" = "" ]; then
eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ sed 's/^ //' << EOF >$dummy.c
- #define _HPUX_SOURCE
- #include <stdlib.h>
- #include <unistd.h>
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
EOF
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
test -z "$HP_ARCH" && HP_ARCH=hppa
@@ -731,22 +732,22 @@ EOF
exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
- exit ;;
+ exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
- exit ;;
+ exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
- exit ;;
+ exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
- exit ;;
+ exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
- exit ;;
+ exit ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
@@ -770,14 +771,14 @@ EOF
exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
5000:UNIX_System_V:4.*:*)
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
@@ -789,13 +790,12 @@ EOF
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit ;;
*:FreeBSD:*:*)
- case ${UNAME_MACHINE} in
- pc98)
- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ case ${UNAME_PROCESSOR} in
amd64)
echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
esac
exit ;;
i*:CYGWIN*:*)
@@ -804,15 +804,18 @@ EOF
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
+ i*:MSYS*:*)
+ echo ${UNAME_MACHINE}-pc-msys
+ exit ;;
i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
*:Interix*:*)
- case ${UNAME_MACHINE} in
+ case ${UNAME_MACHINE} in
x86)
echo i586-pc-interix${UNAME_RELEASE}
exit ;;
@@ -858,6 +861,13 @@ EOF
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
exit ;;
+ aarch64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ aarch64_be:Linux:*:*)
+ UNAME_MACHINE=aarch64_be
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;;
@@ -867,7 +877,7 @@ EOF
EV6) UNAME_MACHINE=alphaev6 ;;
EV67) UNAME_MACHINE=alphaev67 ;;
EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
+ esac
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
@@ -879,20 +889,29 @@ EOF
then
echo ${UNAME_MACHINE}-unknown-linux-gnu
else
- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+ else
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+ fi
fi
exit ;;
avr32*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
cris:Linux:*:*)
- echo cris-axis-linux-gnu
+ echo ${UNAME_MACHINE}-axis-linux-gnu
exit ;;
crisv32:Linux:*:*)
- echo crisv32-axis-linux-gnu
+ echo ${UNAME_MACHINE}-axis-linux-gnu
exit ;;
frv:Linux:*:*)
- echo frv-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ hexagon:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
i*86:Linux:*:*)
LIBC=gnu
@@ -934,7 +953,7 @@ EOF
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;;
or32:Linux:*:*)
- echo or32-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
padre:Linux:*:*)
echo sparc-unknown-linux-gnu
@@ -960,7 +979,7 @@ EOF
echo ${UNAME_MACHINE}-ibm-linux
exit ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
@@ -969,16 +988,16 @@ EOF
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
tile*:Linux:*:*)
- echo ${UNAME_MACHINE}-tilera-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
vax:Linux:*:*)
echo ${UNAME_MACHINE}-dec-linux-gnu
exit ;;
x86_64:Linux:*:*)
- echo x86_64-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -987,11 +1006,11 @@ EOF
echo i386-sequent-sysv4
exit ;;
i*86:UNIX_SV:4.2MP:2.*)
- # Unixware is an offshoot of SVR4, but it has its own version
- # number series starting with 2...
- # I am not positive that other SVR4 systems won't match this,
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
- # Use sysv4.2uw... so that sysv4* matches it.
+ # Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit ;;
i*86:OS/2:*:*)
@@ -1023,7 +1042,7 @@ EOF
fi
exit ;;
i*86:*:5:[678]*)
- # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
@@ -1051,13 +1070,13 @@ EOF
exit ;;
pc:*:*:*)
# Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i586.
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i586.
# Note: whatever this is, it MUST be the same as what config.sub
# prints for the "djgpp" host, or else GDB configury will decide that
# this is a cross-build.
echo i586-pc-msdosdjgpp
- exit ;;
+ exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
exit ;;
@@ -1092,8 +1111,8 @@ EOF
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4; exit; } ;;
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4; exit; } ;;
NCR*:*:4.2:* | MPRAS*:*:4.2:*)
OS_REL='.3'
test -r /etc/.relid \
@@ -1136,10 +1155,10 @@ EOF
echo ns32k-sni-sysv
fi
exit ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
@@ -1165,11 +1184,11 @@ EOF
exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
+ echo mips-nec-sysv${UNAME_RELEASE}
else
- echo mips-unknown-sysv${UNAME_RELEASE}
+ echo mips-unknown-sysv${UNAME_RELEASE}
fi
- exit ;;
+ exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
exit ;;
@@ -1282,13 +1301,13 @@ EOF
echo pdp10-unknown-its
exit ;;
SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
+ echo mips-sei-seiux${UNAME_RELEASE}
exit ;;
*:DragonFly:*:*)
echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit ;;
*:*VMS:*:*)
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
case "${UNAME_MACHINE}" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;
@@ -1306,6 +1325,9 @@ EOF
i*86:AROS:*:*)
echo ${UNAME_MACHINE}-pc-aros
exit ;;
+ x86_64:VMkernel:*:*)
+ echo ${UNAME_MACHINE}-unknown-esx
+ exit ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1328,11 +1350,11 @@ main ()
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
- "4"
+ "4"
#else
- ""
+ ""
#endif
- ); exit (0);
+ ); exit (0);
#endif
#endif
diff --git a/build-aux/config.sub b/build-aux/config.sub
index 3ec94f18..59bb593f 100755
--- a/build-aux/config.sub
+++ b/build-aux/config.sub
@@ -1,10 +1,10 @@
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-# Free Software Foundation, Inc.
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+# 2011, 2012 Free Software Foundation, Inc.
-timestamp='2010-12-11'
+timestamp='2012-04-18'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -21,9 +21,7 @@ timestamp='2010-12-11'
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -76,8 +74,8 @@ version="\
GNU config.sub ($timestamp)
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-Software Foundation, Inc.
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -132,6 +130,10 @@ case $maybe_os in
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
+ android-linux)
+ os=-linux-android
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+ ;;
*)
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
if [ $basic_machine != $1 ]
@@ -158,8 +160,8 @@ case $os in
os=
basic_machine=$1
;;
- -bluegene*)
- os=-cnk
+ -bluegene*)
+ os=-cnk
;;
-sim | -cisco | -oki | -wec | -winbond)
os=
@@ -175,10 +177,10 @@ case $os in
os=-chorusos
basic_machine=$1
;;
- -chorusrdb)
- os=-chorusrdb
+ -chorusrdb)
+ os=-chorusrdb
basic_machine=$1
- ;;
+ ;;
-hiux*)
os=-hiuxwe2
;;
@@ -223,6 +225,12 @@ case $os in
-isc*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
+ -lynx*178)
+ os=-lynxos178
+ ;;
+ -lynx*5)
+ os=-lynxos5
+ ;;
-lynx*)
os=-lynxos
;;
@@ -247,17 +255,22 @@ case $basic_machine in
# Some are omitted here because they have special meanings below.
1750a | 580 \
| a29k \
+ | aarch64 | aarch64_be \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+ | be32 | be64 \
| bfin \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
+ | epiphany \
| fido | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
+ | le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
| maxq | mb | microblaze | mcore | mep | metag \
@@ -286,22 +299,23 @@ case $basic_machine in
| nds32 | nds32le | nds32be \
| nios | nios2 \
| ns16k | ns32k \
+ | open8 \
| or32 \
| pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ | powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
- | rx \
+ | rl78 | rx \
| score \
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
- | spu | strongarm \
- | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+ | spu \
+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
| ubicom32 \
- | v850 | v850e \
+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
| we32k \
- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+ | x86 | xc16x | xstormy16 | xtensa \
| z8k | z80)
basic_machine=$basic_machine-unknown
;;
@@ -314,8 +328,7 @@ case $basic_machine in
c6x)
basic_machine=tic6x-unknown
;;
- m6811 | m68hc11 | m6812 | m68hc12 | picochip)
- # Motorola 68HC11/12.
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
@@ -325,6 +338,21 @@ case $basic_machine in
basic_machine=mt-unknown
;;
+ strongarm | thumb | xscale)
+ basic_machine=arm-unknown
+ ;;
+ xgate)
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ xscaleeb)
+ basic_machine=armeb-unknown
+ ;;
+
+ xscaleel)
+ basic_machine=armel-unknown
+ ;;
+
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
@@ -339,11 +367,13 @@ case $basic_machine in
# Recognize the basic CPU types with company name.
580-* \
| a29k-* \
+ | aarch64-* | aarch64_be-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
+ | be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
| clipper-* | craynv-* | cydra-* \
@@ -352,8 +382,10 @@ case $basic_machine in
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
+ | le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
@@ -382,24 +414,26 @@ case $basic_machine in
| nds32-* | nds32le-* | nds32be-* \
| nios-* | nios2-* \
| none-* | np1-* | ns16k-* | ns32k-* \
+ | open8-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
| pyramid-* \
- | romp-* | rs6000-* | rx-* \
+ | rl78-* | romp-* | rs6000-* | rx-* \
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
| sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
- | tahoe-* | thumb-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+ | tahoe-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
- | tile-* | tilegx-* \
+ | tile*-* \
| tron-* \
| ubicom32-* \
- | v850-* | v850e-* | vax-* \
+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+ | vax-* \
| we32k-* \
- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+ | x86-* | x86_64-* | xc16x-* | xps100-* \
| xstormy16-* | xtensa*-* \
| ymp-* \
| z8k-* | z80-*)
@@ -424,7 +458,7 @@ case $basic_machine in
basic_machine=a29k-amd
os=-udi
;;
- abacus)
+ abacus)
basic_machine=abacus-unknown
;;
adobe68k)
@@ -507,7 +541,7 @@ case $basic_machine in
basic_machine=c90-cray
os=-unicos
;;
- cegcc)
+ cegcc)
basic_machine=arm-unknown
os=-cegcc
;;
@@ -697,7 +731,6 @@ case $basic_machine in
i370-ibm* | ibm*)
basic_machine=i370-ibm
;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
i*86v32)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv32
@@ -755,7 +788,7 @@ case $basic_machine in
basic_machine=ns32k-utek
os=-sysv
;;
- microblaze)
+ microblaze)
basic_machine=microblaze-xilinx
;;
mingw32)
@@ -794,10 +827,18 @@ case $basic_machine in
ms1-*)
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;;
+ msys)
+ basic_machine=i386-pc
+ os=-msys
+ ;;
mvs)
basic_machine=i370-ibm
os=-mvs
;;
+ nacl)
+ basic_machine=le32-unknown
+ os=-nacl
+ ;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
@@ -862,10 +903,10 @@ case $basic_machine in
np1)
basic_machine=np1-gould
;;
- neo-tandem)
+ neo-tandem)
basic_machine=neo-tandem
;;
- nse-tandem)
+ nse-tandem)
basic_machine=nse-tandem
;;
nsr-tandem)
@@ -950,9 +991,10 @@ case $basic_machine in
;;
power) basic_machine=power-ibm
;;
- ppc) basic_machine=powerpc-unknown
+ ppc | ppcbe) basic_machine=powerpc-unknown
;;
- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ppc-* | ppcbe-*)
+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle | ppc-le | powerpc-little)
basic_machine=powerpcle-unknown
@@ -1046,6 +1088,9 @@ case $basic_machine in
basic_machine=i860-stratus
os=-sysv4
;;
+ strongarm-* | thumb-*)
+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
sun2)
basic_machine=m68000-sun
;;
@@ -1102,13 +1147,8 @@ case $basic_machine in
basic_machine=t90-cray
os=-unicos
;;
- # This must be matched before tile*.
- tilegx*)
- basic_machine=tilegx-unknown
- os=-linux-gnu
- ;;
tile*)
- basic_machine=tile-unknown
+ basic_machine=$basic_machine-unknown
os=-linux-gnu
;;
tx39)
@@ -1178,6 +1218,9 @@ case $basic_machine in
xps | xps100)
basic_machine=xps100-honeywell
;;
+ xscale-* | xscalee[bl]-*)
+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+ ;;
ymp)
basic_machine=ymp-cray
os=-unicos
@@ -1275,11 +1318,11 @@ esac
if [ x"$os" != x"" ]
then
case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
+ # First match some system type aliases
+ # that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
- -auroraux)
- os=-auroraux
+ -auroraux)
+ os=-auroraux
;;
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
@@ -1315,7 +1358,7 @@ case $os in
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -linux-android* \
| -linux-newlib* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* \
@@ -1364,7 +1407,7 @@ case $os in
-opened*)
os=-openedition
;;
- -os400*)
+ -os400*)
os=-os400
;;
-wince*)
@@ -1413,7 +1456,7 @@ case $os in
-sinix*)
os=-sysv4
;;
- -tpf*)
+ -tpf*)
os=-tpf
;;
-triton*)
@@ -1458,8 +1501,8 @@ case $os in
-dicos*)
os=-dicos
;;
- -nacl*)
- ;;
+ -nacl*)
+ ;;
-none)
;;
*)
@@ -1482,10 +1525,10 @@ else
# system, and we'll never get to this point.
case $basic_machine in
- score-*)
+ score-*)
os=-elf
;;
- spu-*)
+ spu-*)
os=-elf
;;
*-acorn)
@@ -1497,8 +1540,8 @@ case $basic_machine in
arm*-semi)
os=-aout
;;
- c4x-* | tic4x-*)
- os=-coff
+ c4x-* | tic4x-*)
+ os=-coff
;;
tic54x-*)
os=-coff
@@ -1527,14 +1570,11 @@ case $basic_machine in
;;
m68000-sun)
os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
;;
m68*-cisco)
os=-aout
;;
- mep-*)
+ mep-*)
os=-elf
;;
mips*-cisco)
@@ -1561,7 +1601,7 @@ case $basic_machine in
*-ibm)
os=-aix
;;
- *-knuth)
+ *-knuth)
os=-mmixware
;;
*-wec)
diff --git a/build-aux/elisp-comp b/build-aux/elisp-comp
new file mode 100755
index 00000000..7766db46
--- /dev/null
+++ b/build-aux/elisp-comp
@@ -0,0 +1,93 @@
+#!/bin/sh
+# Copyright (C) 1995-2012 Free Software Foundation, Inc.
+
+scriptversion=2010-02-06.18; # UTC
+
+# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1995.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+case $1 in
+ '')
+ echo "$0: No files. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: elisp-comp [--help] [--version] FILES...
+
+This script byte-compiles all '.el' files listed as FILES using GNU
+Emacs, and put the resulting '.elc' files into the current directory,
+so disregarding the original directories used in '.el' arguments.
+
+This script manages in such a way that all Emacs LISP files to
+be compiled are made visible between themselves, in the event
+they require or load-library one another.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "elisp-comp $scriptversion"
+ exit $?
+ ;;
+esac
+
+if test -z "$EMACS" || test "$EMACS" = "t"; then
+ # Value of "t" means we are running in a shell under Emacs.
+ # Just assume Emacs is called "emacs".
+ EMACS=emacs
+fi
+
+tempdir=elc.$$
+
+# Cleanup the temporary directory on exit.
+trap 'ret=$?; rm -rf "$tempdir" && exit $ret' 0
+do_exit='(exit $ret); exit $ret'
+trap "ret=129; $do_exit" 1
+trap "ret=130; $do_exit" 2
+trap "ret=141; $do_exit" 13
+trap "ret=143; $do_exit" 15
+
+mkdir $tempdir
+cp "$@" $tempdir
+
+(
+ cd $tempdir
+ echo "(setq load-path (cons nil load-path))" > script
+ $EMACS -batch -q -l script -f batch-byte-compile *.el || exit $?
+ mv *.elc ..
+) || exit $?
+
+(exit 0); exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/build-aux/gendocs.sh b/build-aux/gendocs.sh
index 34ef112e..c8abd55f 100755
--- a/build-aux/gendocs.sh
+++ b/build-aux/gendocs.sh
@@ -2,7 +2,7 @@
# gendocs.sh -- generate a GNU manual in many formats. This script is
# mentioned in maintain.texi. See the help message below for usage details.
-scriptversion=2010-11-29.11
+scriptversion=2011-04-08.14
# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
# Foundation, Inc.
@@ -305,10 +305,10 @@ if test -n "$docbook"; then
docbook_xml_gz_size=`calcsize "$outdir/$PACKAGE-db.xml.gz"`
mv $PACKAGE-db.xml "$outdir/"
+ split_html_db_dir=html_node_db
cmd="${DOCBOOK2HTML} -o $split_html_db_dir \"${outdir}/$PACKAGE-db.xml\""
echo "Generating docbook HTML... ($cmd)"
eval "$cmd"
- split_html_db_dir=html_node_db
(
cd ${split_html_db_dir} || exit 1
tar -czf "$abs_outdir/${PACKAGE}.html_node_db.tar.gz" -- *.html
diff --git a/build-aux/git-version-gen b/build-aux/git-version-gen
index 795a98b3..0fa90636 100755
--- a/build-aux/git-version-gen
+++ b/build-aux/git-version-gen
@@ -1,8 +1,8 @@
#!/bin/sh
# Print a version string.
-scriptversion=2010-10-13.20; # UTC
+scriptversion=2012-03-18.17; # UTC
-# Copyright (C) 2007-2010 Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -44,8 +44,10 @@ scriptversion=2010-10-13.20; # UTC
# files to pick up a version string change; and leave it stale to
# minimize rebuild time after unrelated changes to configure sources.
#
-# It is probably wise to add these two files to .gitignore, so that you
-# don't accidentally commit either generated file.
+# As with any generated file in a VC'd directory, you should add
+# /.version to .gitignore, so that you don't accidentally commit it.
+# .tarball-version is never generated in a VC'd directory, so needn't
+# be listed there.
#
# Use the following line in your configure.ac, so that $(VERSION) will
# automatically be up-to-date each time configure is run (and note that
@@ -57,42 +59,89 @@ scriptversion=2010-10-13.20; # UTC
# [bug-project@example])
#
# Then use the following lines in your Makefile.am, so that .version
-# will be present for dependencies, and so that .tarball-version will
-# exist in distribution tarballs.
+# will be present for dependencies, and so that .version and
+# .tarball-version will exist in distribution tarballs.
#
+# EXTRA_DIST = $(top_srcdir)/.version
# BUILT_SOURCES = $(top_srcdir)/.version
# $(top_srcdir)/.version:
# echo $(VERSION) > $@-t && mv $@-t $@
# dist-hook:
# echo $(VERSION) > $(distdir)/.tarball-version
-case $# in
- 1|2) ;;
- *) echo 1>&2 "Usage: $0 \$srcdir/.tarball-version" \
- '[TAG-NORMALIZATION-SED-SCRIPT]'
- exit 1;;
-esac
-tarball_version_file=$1
-tag_sed_script="${2:-s/x/x/}"
+me=$0
+
+version="git-version-gen $scriptversion
+
+Copyright 2011 Free Software Foundation, Inc.
+There is NO warranty. You may redistribute this software
+under the terms of the GNU General Public License.
+For more information about these matters, see the files named COPYING."
+
+usage="\
+Usage: $me [OPTION]... \$srcdir/.tarball-version [TAG-NORMALIZATION-SED-SCRIPT]
+Print a version string.
+
+Options:
+
+ --prefix prefix of git tags (default 'v')
+
+ --help display this help and exit
+ --version output version information and exit
+
+Running without arguments will suffice in most cases."
+
+prefix=v
+
+while test $# -gt 0; do
+ case $1 in
+ --help) echo "$usage"; exit 0;;
+ --version) echo "$version"; exit 0;;
+ --prefix) shift; prefix="$1";;
+ -*)
+ echo "$0: Unknown option '$1'." >&2
+ echo "$0: Try '--help' for more information." >&2
+ exit 1;;
+ *)
+ if test -z "$tarball_version_file"; then
+ tarball_version_file="$1"
+ elif test -z "$tag_sed_script"; then
+ tag_sed_script="$1"
+ else
+ echo "$0: extra non-option argument '$1'." >&2
+ exit 1
+ fi;;
+ esac
+ shift
+done
+
+if test -z "$tarball_version_file"; then
+ echo "$usage"
+ exit 1
+fi
+
+tag_sed_script="${tag_sed_script:-s/x/x/}"
+
nl='
'
# Avoid meddling by environment variable of the same name.
v=
+v_from_git=
# First see if there is a tarball-only version file.
# then try "git describe", then default.
if test -f $tarball_version_file
then
- v=`cat $tarball_version_file` || exit 1
+ v=`cat $tarball_version_file` || v=
case $v in
- *$nl*) v= ;; # reject multi-line output
- [0-9]*) ;;
- *) v= ;;
+ *$nl*) v= ;; # reject multi-line output
+ [0-9]*) ;;
+ *) v= ;;
esac
test -z "$v" \
- && echo "$0: WARNING: $tarball_version_file seems to be damaged" 1>&2
+ && echo "$0: WARNING: $tarball_version_file is missing or damaged" 1>&2
fi
if test -n "$v"
@@ -102,12 +151,12 @@ then
# directory, and "git describe" output looks sensible, use that to
# derive a version string.
elif test "`git log -1 --pretty=format:x . 2>&1`" = x \
- && v=`git describe --abbrev=4 --match='v*' HEAD 2>/dev/null \
- || git describe --abbrev=4 HEAD 2>/dev/null` \
+ && v=`git describe --abbrev=4 --match="$prefix*" HEAD 2>/dev/null \
+ || git describe --abbrev=4 HEAD 2>/dev/null` \
&& v=`printf '%s\n' "$v" | sed "$tag_sed_script"` \
&& case $v in
- v[0-9]*) ;;
- *) (exit 1) ;;
+ $prefix[0-9]*) ;;
+ *) (exit 1) ;;
esac
then
# Is this a new git that lists number of commits since the last
@@ -115,39 +164,49 @@ then
# Newer: v6.10-77-g0f8faeb
# Older: v6.10-g0f8faeb
case $v in
- *-*-*) : git describe is okay three part flavor ;;
- *-*)
- : git describe is older two part flavor
- # Recreate the number of commits and rewrite such that the
- # result is the same as if we were using the newer version
- # of git describe.
- vtag=`echo "$v" | sed 's/-.*//'`
- numcommits=`git rev-list "$vtag"..HEAD | wc -l`
- v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`;
- ;;
+ *-*-*) : git describe is okay three part flavor ;;
+ *-*)
+ : git describe is older two part flavor
+ # Recreate the number of commits and rewrite such that the
+ # result is the same as if we were using the newer version
+ # of git describe.
+ vtag=`echo "$v" | sed 's/-.*//'`
+ commit_list=`git rev-list "$vtag"..HEAD 2>/dev/null` \
+ || { commit_list=failed;
+ echo "$0: WARNING: git rev-list failed" 1>&2; }
+ numcommits=`echo "$commit_list" | wc -l`
+ v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`;
+ test "$commit_list" = failed && v=UNKNOWN
+ ;;
esac
# Change the first '-' to a '.', so version-comparing tools work properly.
# Remove the "g" in git describe's output string, to save a byte.
v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`;
+ v_from_git=1
else
v=UNKNOWN
fi
-v=`echo "$v" |sed 's/^v//'`
+v=`echo "$v" |sed "s/^$prefix//"`
-# Don't declare a version "dirty" merely because a time stamp has changed.
-git update-index --refresh > /dev/null 2>&1
+# Test whether to append the "-dirty" suffix only if the version
+# string we're using came from git. I.e., skip the test if it's "UNKNOWN"
+# or if it came from .tarball-version.
+if test -n "$v_from_git"; then
+ # Don't declare a version "dirty" merely because a time stamp has changed.
+ git update-index --refresh > /dev/null 2>&1
-dirty=`sh -c 'git diff-index --name-only HEAD' 2>/dev/null` || dirty=
-case "$dirty" in
- '') ;;
- *) # Append the suffix only if there isn't one already.
- case $v in
- *-dirty) ;;
- *) v="$v-dirty" ;;
- esac ;;
-esac
+ dirty=`exec 2>/dev/null;git diff-index --name-only HEAD` || dirty=
+ case "$dirty" in
+ '') ;;
+ *) # Append the suffix only if there isn't one already.
+ case $v in
+ *-dirty) ;;
+ *) v="$v-dirty" ;;
+ esac ;;
+ esac
+fi
# Omit the trailing newline, so that m4_esyscmd can use the result directly.
echo "$v" | tr -d "$nl"
diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog
new file mode 100755
index 00000000..38c6f3aa
--- /dev/null
+++ b/build-aux/gitlog-to-changelog
@@ -0,0 +1,385 @@
+eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
+ & eval 'exec perl -wS "$0" $argv:q'
+ if 0;
+# Convert git log output to ChangeLog format.
+
+my $VERSION = '2012-01-18 07:50'; # UTC
+# The definition above must lie within the first 8 lines in order
+# for the Emacs time-stamp write hook (at end) to update it.
+# If you change this file with Emacs, please let the write hook
+# do its job. Otherwise, update this string manually.
+
+# Copyright (C) 2008-2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Written by Jim Meyering
+
+use strict;
+use warnings;
+use Getopt::Long;
+use POSIX qw(strftime);
+
+(my $ME = $0) =~ s|.*/||;
+
+# use File::Coda; # http://meyering.net/code/Coda/
+END {
+ defined fileno STDOUT or return;
+ close STDOUT and return;
+ warn "$ME: failed to close standard output: $!\n";
+ $? ||= 1;
+}
+
+sub usage ($)
+{
+ my ($exit_code) = @_;
+ my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
+ if ($exit_code != 0)
+ {
+ print $STREAM "Try '$ME --help' for more information.\n";
+ }
+ else
+ {
+ print $STREAM <<EOF;
+Usage: $ME [OPTIONS] [ARGS]
+
+Convert git log output to ChangeLog format. If present, any ARGS
+are passed to "git log". To avoid ARGS being parsed as options to
+$ME, they may be preceded by '--'.
+
+OPTIONS:
+
+ --amend=FILE FILE maps from an SHA1 to perl code (i.e., s/old/new/) that
+ makes a change to SHA1's commit log text or metadata.
+ --append-dot append a dot to the first line of each commit message if
+ there is no other punctuation or blank at the end.
+ --no-cluster never cluster commit messages under the same date/author
+ header; the default is to cluster adjacent commit messages
+ if their headers are the same and neither commit message
+ contains multiple paragraphs.
+ --since=DATE convert only the logs since DATE;
+ the default is to convert all log entries.
+ --format=FMT set format string for commit subject and body;
+ see 'man git-log' for the list of format metacharacters;
+ the default is '%s%n%b%n'
+
+ --help display this help and exit
+ --version output version information and exit
+
+EXAMPLE:
+
+ $ME --since=2008-01-01 > ChangeLog
+ $ME -- -n 5 foo > last-5-commits-to-branch-foo
+
+SPECIAL SYNTAX:
+
+The following types of strings are interpreted specially when they appear
+at the beginning of a log message line. They are not copied to the output.
+
+ Copyright-paperwork-exempt: Yes
+ Append the "(tiny change)" notation to the usual "date name email"
+ ChangeLog header to mark a change that does not require a copyright
+ assignment.
+ Co-authored-by: Joe User <user\@example.com>
+ List the specified name and email address on a second
+ ChangeLog header, denoting a co-author.
+ Signed-off-by: Joe User <user\@example.com>
+ These lines are simply elided.
+
+In a FILE specified via --amend, comment lines (starting with "#") are ignored.
+FILE must consist of <SHA,CODE+> pairs where SHA is a 40-byte SHA1 (alone on
+a line) referring to a commit in the current project, and CODE refers to one
+or more consecutive lines of Perl code. Pairs must be separated by one or
+more blank line.
+
+Here is sample input for use with --amend=FILE, from coreutils:
+
+3a169f4c5d9159283548178668d2fae6fced3030
+# fix typo in title:
+s/all tile types/all file types/
+
+1379ed974f1fa39b12e2ffab18b3f7a607082202
+# Due to a bug in vc-dwim, I mis-attributed a patch by Paul to myself.
+# Change the author to be Paul. Note the escaped "@":
+s,Jim .*>,Paul Eggert <eggert\\\@cs.ucla.edu>,
+
+EOF
+ }
+ exit $exit_code;
+}
+
+# If the string $S is a well-behaved file name, simply return it.
+# If it contains white space, quotes, etc., quote it, and return the new string.
+sub shell_quote($)
+{
+ my ($s) = @_;
+ if ($s =~ m![^\w+/.,-]!)
+ {
+ # Convert each single quote to '\''
+ $s =~ s/\'/\'\\\'\'/g;
+ # Then single quote the string.
+ $s = "'$s'";
+ }
+ return $s;
+}
+
+sub quoted_cmd(@)
+{
+ return join (' ', map {shell_quote $_} @_);
+}
+
+# Parse file F.
+# Comment lines (starting with "#") are ignored.
+# F must consist of <SHA,CODE+> pairs where SHA is a 40-byte SHA1
+# (alone on a line) referring to a commit in the current project, and
+# CODE refers to one or more consecutive lines of Perl code.
+# Pairs must be separated by one or more blank line.
+sub parse_amend_file($)
+{
+ my ($f) = @_;
+
+ open F, '<', $f
+ or die "$ME: $f: failed to open for reading: $!\n";
+
+ my $fail;
+ my $h = {};
+ my $in_code = 0;
+ my $sha;
+ while (defined (my $line = <F>))
+ {
+ $line =~ /^\#/
+ and next;
+ chomp $line;
+ $line eq ''
+ and $in_code = 0, next;
+
+ if (!$in_code)
+ {
+ $line =~ /^([0-9a-fA-F]{40})$/
+ or (warn "$ME: $f:$.: invalid line; expected an SHA1\n"),
+ $fail = 1, next;
+ $sha = lc $1;
+ $in_code = 1;
+ exists $h->{$sha}
+ and (warn "$ME: $f:$.: duplicate SHA1\n"),
+ $fail = 1, next;
+ }
+ else
+ {
+ $h->{$sha} ||= '';
+ $h->{$sha} .= "$line\n";
+ }
+ }
+ close F;
+
+ $fail
+ and exit 1;
+
+ return $h;
+}
+
+{
+ my $since_date;
+ my $format_string = '%s%n%b%n';
+ my $amend_file;
+ my $append_dot = 0;
+ my $cluster = 1;
+ GetOptions
+ (
+ help => sub { usage 0 },
+ version => sub { print "$ME version $VERSION\n"; exit },
+ 'since=s' => \$since_date,
+ 'format=s' => \$format_string,
+ 'amend=s' => \$amend_file,
+ 'append-dot' => \$append_dot,
+ 'cluster!' => \$cluster,
+ ) or usage 1;
+
+
+ defined $since_date
+ and unshift @ARGV, "--since=$since_date";
+
+ # This is a hash that maps an SHA1 to perl code (i.e., s/old/new/)
+ # that makes a correction in the log or attribution of that commit.
+ my $amend_code = defined $amend_file ? parse_amend_file $amend_file : {};
+
+ my @cmd = (qw (git log --log-size),
+ '--pretty=format:%H:%ct %an <%ae>%n%n'.$format_string, @ARGV);
+ open PIPE, '-|', @cmd
+ or die ("$ME: failed to run '". quoted_cmd (@cmd) ."': $!\n"
+ . "(Is your Git too old? Version 1.5.1 or later is required.)\n");
+
+ my $prev_multi_paragraph;
+ my $prev_date_line = '';
+ my @prev_coauthors = ();
+ while (1)
+ {
+ defined (my $in = <PIPE>)
+ or last;
+ $in =~ /^log size (\d+)$/
+ or die "$ME:$.: Invalid line (expected log size):\n$in";
+ my $log_nbytes = $1;
+
+ my $log;
+ my $n_read = read PIPE, $log, $log_nbytes;
+ $n_read == $log_nbytes
+ or die "$ME:$.: unexpected EOF\n";
+
+ # Extract leading hash.
+ my ($sha, $rest) = split ':', $log, 2;
+ defined $sha
+ or die "$ME:$.: malformed log entry\n";
+ $sha =~ /^[0-9a-fA-F]{40}$/
+ or die "$ME:$.: invalid SHA1: $sha\n";
+
+ # If this commit's log requires any transformation, do it now.
+ my $code = $amend_code->{$sha};
+ if (defined $code)
+ {
+ eval 'use Safe';
+ my $s = new Safe;
+ # Put the unpreprocessed entry into "$_".
+ $_ = $rest;
+
+ # Let $code operate on it, safely.
+ my $r = $s->reval("$code")
+ or die "$ME:$.:$sha: failed to eval \"$code\":\n$@\n";
+
+ # Note that we've used this entry.
+ delete $amend_code->{$sha};
+
+ # Update $rest upon success.
+ $rest = $_;
+ }
+
+ my @line = split "\n", $rest;
+ my $author_line = shift @line;
+ defined $author_line
+ or die "$ME:$.: unexpected EOF\n";
+ $author_line =~ /^(\d+) (.*>)$/
+ or die "$ME:$.: Invalid line "
+ . "(expected date/author/email):\n$author_line\n";
+
+ # Format 'Copyright-paperwork-exempt: Yes' as a standard ChangeLog
+ # `(tiny change)' annotation.
+ my $tiny = (grep (/^Copyright-paperwork-exempt:\s+[Yy]es$/, @line)
+ ? ' (tiny change)' : '');
+
+ my $date_line = sprintf "%s %s$tiny\n",
+ strftime ("%F", localtime ($1)), $2;
+
+ my @coauthors = grep /^Co-authored-by:.*$/, @line;
+ # Omit meta-data lines we've already interpreted.
+ @line = grep !/^(?:Signed-off-by:[ ].*>$
+ |Co-authored-by:[ ]
+ |Copyright-paperwork-exempt:[ ]
+ )/x, @line;
+
+ # Remove leading and trailing blank lines.
+ if (@line)
+ {
+ while ($line[0] =~ /^\s*$/) { shift @line; }
+ while ($line[$#line] =~ /^\s*$/) { pop @line; }
+ }
+
+ # Record whether there are two or more paragraphs.
+ my $multi_paragraph = grep /^\s*$/, @line;
+
+ # Format 'Co-authored-by: A U Thor <email@example.com>' lines in
+ # standard multi-author ChangeLog format.
+ for (@coauthors)
+ {
+ s/^Co-authored-by:\s*/\t /;
+ s/\s*</ </;
+
+ /<.*?@.*\..*>/
+ or warn "$ME: warning: missing email address for "
+ . substr ($_, 5) . "\n";
+ }
+
+ # If clustering of commit messages has been disabled, if this header
+ # would be different from the previous date/name/email/coauthors header,
+ # or if this or the previous entry consists of two or more paragraphs,
+ # then print the header.
+ if ( ! $cluster
+ || $date_line ne $prev_date_line
+ || "@coauthors" ne "@prev_coauthors"
+ || $multi_paragraph
+ || $prev_multi_paragraph)
+ {
+ $prev_date_line eq ''
+ or print "\n";
+ print $date_line;
+ @coauthors
+ and print join ("\n", @coauthors), "\n";
+ }
+ $prev_date_line = $date_line;
+ @prev_coauthors = @coauthors;
+ $prev_multi_paragraph = $multi_paragraph;
+
+ # If there were any lines
+ if (@line == 0)
+ {
+ warn "$ME: warning: empty commit message:\n $date_line\n";
+ }
+ else
+ {
+ if ($append_dot)
+ {
+ # If the first line of the message has enough room, then
+ if (length $line[0] < 72)
+ {
+ # append a dot if there is no other punctuation or blank
+ # at the end.
+ $line[0] =~ /[[:punct:]\s]$/
+ or $line[0] .= '.';
+ }
+ }
+
+ # Prefix each non-empty line with a TAB.
+ @line = map { length $_ ? "\t$_" : '' } @line;
+
+ print "\n", join ("\n", @line), "\n";
+ }
+
+ defined ($in = <PIPE>)
+ or last;
+ $in ne "\n"
+ and die "$ME:$.: unexpected line:\n$in";
+ }
+
+ close PIPE
+ or die "$ME: error closing pipe from " . quoted_cmd (@cmd) . "\n";
+ # FIXME-someday: include $PROCESS_STATUS in the diagnostic
+
+ # Complain about any unused entry in the --amend=F specified file.
+ my $fail = 0;
+ foreach my $sha (keys %$amend_code)
+ {
+ warn "$ME:$amend_file: unused entry: $sha\n";
+ $fail = 1;
+ }
+
+ exit $fail;
+}
+
+# Local Variables:
+# mode: perl
+# indent-tabs-mode: nil
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "my $VERSION = '"
+# time-stamp-format: "%:y-%02m-%02d %02H:%02M"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "'; # UTC"
+# End:
diff --git a/build-aux/gnupload b/build-aux/gnupload
index edb4b56b..b71ddfda 100755
--- a/build-aux/gnupload
+++ b/build-aux/gnupload
@@ -1,10 +1,9 @@
#!/bin/sh
# Sign files and upload them.
-scriptversion=2010-05-23.15; # UTC
+scriptversion=2012-01-15.15; # UTC
-# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 2004-2012 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -20,6 +19,8 @@ scriptversion=2010-05-23.15; # UTC
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Originally written by Alexandre Duret-Lutz <adl@gnu.org>.
+# The master copy of this file is maintained in the gnulib Git repository.
+# Please send bug reports and feature requests to bug-gnulib@gnu.org.
set -e
@@ -57,7 +58,7 @@ Options:
--version output version information and exit
If --symlink-regex is given without EXPR, then the link target name
-is created by replacing the version information with \`-latest', e.g.:
+is created by replacing the version information with '-latest', e.g.:
foo-1.3.4.tar.gz -> foo-latest.tar.gz
@@ -105,8 +106,7 @@ happen to have an ncftp package installed, the ncftpput-ftp script in
the build-aux/ directory of the gnulib package
(http://savannah.gnu.org/projects/gnulib) may serve as a replacement.
-Report bugs to <bug-automake@gnu.org>.
-Send patches to <automake-patches@gnu.org>."
+Send patches and bug reports to <bug-gnulib@gnu.org>."
# Read local configuration file
if test -r "$conffile"; then
@@ -170,7 +170,7 @@ while test -n "$1"; do
break
;;
-*)
- echo "$0: Unknown option \`$1', try \`$0 --help'" 1>&2
+ echo "$0: Unknown option '$1', try '$0 --help'" 1>&2
exit 1
;;
esac
@@ -219,7 +219,7 @@ else
for file
do
if test ! -f $file; then
- echo "$0: Cannot find \`$file'" 1>&2
+ echo "$0: Cannot find '$file'" 1>&2
exit 1
elif test -n "$symlink_expr"; then
linkname=`echo $file | sed "$symlink_expr"`
@@ -238,10 +238,10 @@ fi
unset passphrase
# Reset PATH to be sure that echo is a built-in. We will later use
-# `echo $passphrase' to output the passphrase, so it is important that
-# it is a built-in (third-party programs tend to appear in `ps'
+# 'echo $passphrase' to output the passphrase, so it is important that
+# it is a built-in (third-party programs tend to appear in 'ps'
# listings with their arguments...).
-# Remember this script runs with `set -e', so if echo is not built-in
+# Remember this script runs with 'set -e', so if echo is not built-in
# it will exit now.
PATH=/empty echo -n "Enter GPG passphrase: "
stty -echo
diff --git a/build-aux/install-sh b/build-aux/install-sh
new file mode 100755
index 00000000..377bb868
--- /dev/null
+++ b/build-aux/install-sh
@@ -0,0 +1,527 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2011-11-20.07; # UTC
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# 'make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+nl='
+'
+IFS=" "" $nl"
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit=${DOITPROG-}
+if test -z "$doit"; then
+ doit_exec=exec
+else
+ doit_exec=$doit
+fi
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+ test "$posix_glob" != "?" || {
+ if (set -f) 2>/dev/null; then
+ posix_glob=
+ else
+ posix_glob=:
+ fi
+ }
+'
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+no_target_directory=
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+ or: $0 [OPTION]... SRCFILES... DIRECTORY
+ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+ or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+ --help display this help and exit.
+ --version display version info and exit.
+
+ -c (ignored)
+ -C install only if different (preserve the last data modification time)
+ -d create directories instead of installing files.
+ -g GROUP $chgrpprog installed files to GROUP.
+ -m MODE $chmodprog installed files to MODE.
+ -o USER $chownprog installed files to USER.
+ -s $stripprog installed files.
+ -t DIRECTORY install into DIRECTORY.
+ -T report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+ CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+ RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+ case $1 in
+ -c) ;;
+
+ -C) copy_on_change=true;;
+
+ -d) dir_arg=true;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift;;
+
+ --help) echo "$usage"; exit $?;;
+
+ -m) mode=$2
+ case $mode in
+ *' '* | *' '* | *'
+'* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
+
+ -o) chowncmd="$chownprog $2"
+ shift;;
+
+ -s) stripcmd=$stripprog;;
+
+ -t) dst_arg=$2
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ shift;;
+
+ -T) no_target_directory=true;;
+
+ --version) echo "$0 $scriptversion"; exit $?;;
+
+ --) shift
+ break;;
+
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
+
+ *) break;;
+ esac
+ shift
+done
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+ # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dst_arg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dst_arg"
+ shift # fnord
+ fi
+ shift # arg
+ dst_arg=$arg
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ done
+fi
+
+if test $# -eq 0; then
+ if test -z "$dir_arg"; then
+ echo "$0: no input file specified." >&2
+ exit 1
+ fi
+ # It's OK to call 'install-sh -d' without argument.
+ # This can happen when creating conditional directories.
+ exit 0
+fi
+
+if test -z "$dir_arg"; then
+ do_exit='(exit $ret); exit $ret'
+ trap "ret=129; $do_exit" 1
+ trap "ret=130; $do_exit" 2
+ trap "ret=141; $do_exit" 13
+ trap "ret=143; $do_exit" 15
+
+ # Set umask so as not to create temps with too-generous modes.
+ # However, 'strip' requires both read and write access to temps.
+ case $mode in
+ # Optimize common cases.
+ *644) cp_umask=133;;
+ *755) cp_umask=22;;
+
+ *[0-7])
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw='% 200'
+ fi
+ cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+ *)
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw=,u+rw
+ fi
+ cp_umask=$mode$u_plus_rw;;
+ esac
+fi
+
+for src
+do
+ # Protect names problematic for 'test' and other utilities.
+ case $src in
+ -* | [=\(\)!]) src=./$src;;
+ esac
+
+ if test -n "$dir_arg"; then
+ dst=$src
+ dstdir=$dst
+ test -d "$dstdir"
+ dstdir_status=$?
+ else
+
+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+ # might cause directories to be created, which would be especially bad
+ # if $src (and thus $dsttmp) contains '*'.
+ if test ! -f "$src" && test ! -d "$src"; then
+ echo "$0: $src does not exist." >&2
+ exit 1
+ fi
+
+ if test -z "$dst_arg"; then
+ echo "$0: no destination specified." >&2
+ exit 1
+ fi
+ dst=$dst_arg
+
+ # If destination is a directory, append the input filename; won't work
+ # if double slashes aren't ignored.
+ if test -d "$dst"; then
+ if test -n "$no_target_directory"; then
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
+ fi
+ dstdir=$dst
+ dst=$dstdir/`basename "$src"`
+ dstdir_status=0
+ else
+ # Prefer dirname, but fall back on a substitute if dirname fails.
+ dstdir=`
+ (dirname "$dst") 2>/dev/null ||
+ expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$dst" : 'X\(//\)[^/]' \| \
+ X"$dst" : 'X\(//\)$' \| \
+ X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+ echo X"$dst" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'
+ `
+
+ test -d "$dstdir"
+ dstdir_status=$?
+ fi
+ fi
+
+ obsolete_mkdir_used=false
+
+ if test $dstdir_status != 0; then
+ case $posix_mkdir in
+ '')
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ if (umask $mkdir_umask &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/d" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
+ esac
+
+ if
+ $posix_mkdir && (
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ )
+ then :
+ else
+
+ # The umask is ridiculous, or mkdir does not conform to POSIX,
+ # or it failed possibly due to a race condition. Create the
+ # directory the slow way, step by step, checking for races as we go.
+
+ case $dstdir in
+ /*) prefix='/';;
+ [-=\(\)!]*) prefix='./';;
+ *) prefix='';;
+ esac
+
+ eval "$initialize_posix_glob"
+
+ oIFS=$IFS
+ IFS=/
+ $posix_glob set -f
+ set fnord $dstdir
+ shift
+ $posix_glob set +f
+ IFS=$oIFS
+
+ prefixes=
+
+ for d
+ do
+ test X"$d" = X && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask=$mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
+ done
+
+ if test -n "$prefixes"; then
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
+ fi
+ fi
+ fi
+
+ if test -n "$dir_arg"; then
+ { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+ { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+ else
+
+ # Make a couple of temp file names in the proper directory.
+ dsttmp=$dstdir/_inst.$$_
+ rmtmp=$dstdir/_rm.$$_
+
+ # Trap to clean up those temp files at exit.
+ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+ # Copy the file name to the temp name.
+ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+ # and set any options; do chmod last to preserve setuid bits.
+ #
+ # If any of these fail, we abort the whole thing. If we want to
+ # ignore errors from any of these, just make sure not to ignore
+ # errors from the above "$doit $cpprog $src $dsttmp" command.
+ #
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+ { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+ { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+ # If -C, don't bother to copy if it wouldn't change the file.
+ if $copy_on_change &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+
+ eval "$initialize_posix_glob" &&
+ $posix_glob set -f &&
+ set X $old && old=:$2:$4:$5:$6 &&
+ set X $new && new=:$2:$4:$5:$6 &&
+ $posix_glob set +f &&
+
+ test "$old" = "$new" &&
+ $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+ then
+ rm -f "$dsttmp"
+ else
+ # Rename the file to the real destination.
+ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+ # The rename failed, perhaps because mv can't rename something else
+ # to itself, or perhaps because mv is so ancient that it does not
+ # support -f.
+ {
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
+ }
+ fi || exit 1
+
+ trap '' 0
+ fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/build-aux/mdate-sh b/build-aux/mdate-sh
new file mode 100755
index 00000000..4614441d
--- /dev/null
+++ b/build-aux/mdate-sh
@@ -0,0 +1,224 @@
+#!/bin/sh
+# Get modification time of a file or directory and pretty-print it.
+
+scriptversion=2010-08-21.06; # UTC
+
+# Copyright (C) 1995-2012 Free Software Foundation, Inc.
+# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+fi
+
+case $1 in
+ '')
+ echo "$0: No file. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: mdate-sh [--help] [--version] FILE
+
+Pretty-print the modification day of FILE, in the format:
+1 January 1970
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "mdate-sh $scriptversion"
+ exit $?
+ ;;
+esac
+
+error ()
+{
+ echo "$0: $1" >&2
+ exit 1
+}
+
+
+# Prevent date giving response in another language.
+LANG=C
+export LANG
+LC_ALL=C
+export LC_ALL
+LC_TIME=C
+export LC_TIME
+
+# GNU ls changes its time format in response to the TIME_STYLE
+# variable. Since we cannot assume 'unset' works, revert this
+# variable to its documented default.
+if test "${TIME_STYLE+set}" = set; then
+ TIME_STYLE=posix-long-iso
+ export TIME_STYLE
+fi
+
+save_arg1=$1
+
+# Find out how to get the extended ls output of a file or directory.
+if ls -L /dev/null 1>/dev/null 2>&1; then
+ ls_command='ls -L -l -d'
+else
+ ls_command='ls -l -d'
+fi
+# Avoid user/group names that might have spaces, when possible.
+if ls -n /dev/null 1>/dev/null 2>&1; then
+ ls_command="$ls_command -n"
+fi
+
+# A 'ls -l' line looks as follows on OS/2.
+# drwxrwx--- 0 Aug 11 2001 foo
+# This differs from Unix, which adds ownership information.
+# drwxrwx--- 2 root root 4096 Aug 11 2001 foo
+#
+# To find the date, we split the line on spaces and iterate on words
+# until we find a month. This cannot work with files whose owner is a
+# user named "Jan", or "Feb", etc. However, it's unlikely that '/'
+# will be owned by a user whose name is a month. So we first look at
+# the extended ls output of the root directory to decide how many
+# words should be skipped to get the date.
+
+# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
+set x`$ls_command /`
+
+# Find which argument is the month.
+month=
+command=
+until test $month
+do
+ test $# -gt 0 || error "failed parsing '$ls_command /' output"
+ shift
+ # Add another shift to the command.
+ command="$command shift;"
+ case $1 in
+ Jan) month=January; nummonth=1;;
+ Feb) month=February; nummonth=2;;
+ Mar) month=March; nummonth=3;;
+ Apr) month=April; nummonth=4;;
+ May) month=May; nummonth=5;;
+ Jun) month=June; nummonth=6;;
+ Jul) month=July; nummonth=7;;
+ Aug) month=August; nummonth=8;;
+ Sep) month=September; nummonth=9;;
+ Oct) month=October; nummonth=10;;
+ Nov) month=November; nummonth=11;;
+ Dec) month=December; nummonth=12;;
+ esac
+done
+
+test -n "$month" || error "failed parsing '$ls_command /' output"
+
+# Get the extended ls output of the file or directory.
+set dummy x`eval "$ls_command \"\\\$save_arg1\""`
+
+# Remove all preceding arguments
+eval $command
+
+# Because of the dummy argument above, month is in $2.
+#
+# On a POSIX system, we should have
+#
+# $# = 5
+# $1 = file size
+# $2 = month
+# $3 = day
+# $4 = year or time
+# $5 = filename
+#
+# On Darwin 7.7.0 and 7.6.0, we have
+#
+# $# = 4
+# $1 = day
+# $2 = month
+# $3 = year or time
+# $4 = filename
+
+# Get the month.
+case $2 in
+ Jan) month=January; nummonth=1;;
+ Feb) month=February; nummonth=2;;
+ Mar) month=March; nummonth=3;;
+ Apr) month=April; nummonth=4;;
+ May) month=May; nummonth=5;;
+ Jun) month=June; nummonth=6;;
+ Jul) month=July; nummonth=7;;
+ Aug) month=August; nummonth=8;;
+ Sep) month=September; nummonth=9;;
+ Oct) month=October; nummonth=10;;
+ Nov) month=November; nummonth=11;;
+ Dec) month=December; nummonth=12;;
+esac
+
+case $3 in
+ ???*) day=$1;;
+ *) day=$3; shift;;
+esac
+
+# Here we have to deal with the problem that the ls output gives either
+# the time of day or the year.
+case $3 in
+ *:*) set `date`; eval year=\$$#
+ case $2 in
+ Jan) nummonthtod=1;;
+ Feb) nummonthtod=2;;
+ Mar) nummonthtod=3;;
+ Apr) nummonthtod=4;;
+ May) nummonthtod=5;;
+ Jun) nummonthtod=6;;
+ Jul) nummonthtod=7;;
+ Aug) nummonthtod=8;;
+ Sep) nummonthtod=9;;
+ Oct) nummonthtod=10;;
+ Nov) nummonthtod=11;;
+ Dec) nummonthtod=12;;
+ esac
+ # For the first six month of the year the time notation can also
+ # be used for files modified in the last year.
+ if (expr $nummonth \> $nummonthtod) > /dev/null;
+ then
+ year=`expr $year - 1`
+ fi;;
+ *) year=$3;;
+esac
+
+# The result.
+echo $day $month $year
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/build-aux/missing b/build-aux/missing
new file mode 100755
index 00000000..9a556482
--- /dev/null
+++ b/build-aux/missing
@@ -0,0 +1,330 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+
+scriptversion=2012-01-06.18; # UTC
+
+# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+ echo 1>&2 "Try '$0 --help' for more information"
+ exit 1
+fi
+
+run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
+
+# In the cases where this matters, 'missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+ configure_ac=configure.ac
+else
+ configure_ac=configure.in
+fi
+
+msg="missing on your system"
+
+case $1 in
+--run)
+ # Try to run requested program, and just exit if it succeeds.
+ run=
+ shift
+ "$@" && exit 0
+ # Exit code 63 means version mismatch. This often happens
+ # when the user try to use an ancient version of a tool on
+ # a file that requires a minimum version. In this case we
+ # we should proceed has if the program had been absent, or
+ # if --run hadn't been passed.
+ if test $? = 63; then
+ run=:
+ msg="probably too old"
+ fi
+ ;;
+
+ -h|--h|--he|--hel|--help)
+ echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+ -h, --help display this help and exit
+ -v, --version output version information and exit
+ --run try to run the given command, and emulate it if it fails
+
+Supported PROGRAM values:
+ aclocal touch file 'aclocal.m4'
+ autoconf touch file 'configure'
+ autoheader touch file 'config.h.in'
+ autom4te touch the output file, or create a stub one
+ automake touch all 'Makefile.in' files
+ bison create 'y.tab.[ch]', if possible, from existing .[ch]
+ flex create 'lex.yy.c', if possible, from existing .c
+ help2man touch the output file
+ lex create 'lex.yy.c', if possible, from existing .c
+ makeinfo touch the output file
+ yacc create 'y.tab.[ch]', if possible, from existing .[ch]
+
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
+
+Send bug reports to <bug-automake@gnu.org>."
+ exit $?
+ ;;
+
+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+ echo "missing $scriptversion (GNU Automake)"
+ exit $?
+ ;;
+
+ -*)
+ echo 1>&2 "$0: Unknown '$1' option"
+ echo 1>&2 "Try '$0 --help' for more information"
+ exit 1
+ ;;
+
+esac
+
+# normalize program name to check for.
+program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+# Now exit if we have it, but it failed. Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program). This is about non-GNU programs, so use $1 not
+# $program.
+case $1 in
+ lex*|yacc*)
+ # Not GNU programs, they don't have --version.
+ ;;
+
+ *)
+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+ # We have it, but it failed.
+ exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ # Could not run --version or --help. This is probably someone
+ # running '$TOOL --version' or '$TOOL --help' to check whether
+ # $TOOL exists and not knowing $TOOL uses missing.
+ exit 1
+ fi
+ ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case $program in
+ aclocal*)
+ echo 1>&2 "\
+WARNING: '$1' is $msg. You should only need it if
+ you modified 'acinclude.m4' or '${configure_ac}'. You might want
+ to install the Automake and Perl packages. Grab them from
+ any GNU archive site."
+ touch aclocal.m4
+ ;;
+
+ autoconf*)
+ echo 1>&2 "\
+WARNING: '$1' is $msg. You should only need it if
+ you modified '${configure_ac}'. You might want to install the
+ Autoconf and GNU m4 packages. Grab them from any GNU
+ archive site."
+ touch configure
+ ;;
+
+ autoheader*)
+ echo 1>&2 "\
+WARNING: '$1' is $msg. You should only need it if
+ you modified 'acconfig.h' or '${configure_ac}'. You might want
+ to install the Autoconf and GNU m4 packages. Grab them
+ from any GNU archive site."
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+ test -z "$files" && files="config.h"
+ touch_files=
+ for f in $files; do
+ case $f in
+ *:*) touch_files="$touch_files "`echo "$f" |
+ sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+ *) touch_files="$touch_files $f.in";;
+ esac
+ done
+ touch $touch_files
+ ;;
+
+ automake*)
+ echo 1>&2 "\
+WARNING: '$1' is $msg. You should only need it if
+ you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'.
+ You might want to install the Automake and Perl packages.
+ Grab them from any GNU archive site."
+ find . -type f -name Makefile.am -print |
+ sed 's/\.am$/.in/' |
+ while read f; do touch "$f"; done
+ ;;
+
+ autom4te*)
+ echo 1>&2 "\
+WARNING: '$1' is needed, but is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them.
+ You can get '$1' as part of Autoconf from any GNU
+ archive site."
+
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -f "$file"; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo "#! /bin/sh"
+ echo "# Created by GNU Automake missing as a replacement of"
+ echo "# $ $@"
+ echo "exit 0"
+ chmod +x $file
+ exit 1
+ fi
+ ;;
+
+ bison*|yacc*)
+ echo 1>&2 "\
+WARNING: '$1' $msg. You should only need it if
+ you modified a '.y' file. You may need the Bison package
+ in order for those modifications to take effect. You can get
+ Bison from any GNU archive site."
+ rm -f y.tab.c y.tab.h
+ if test $# -ne 1; then
+ eval LASTARG=\${$#}
+ case $LASTARG in
+ *.y)
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" y.tab.c
+ fi
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" y.tab.h
+ fi
+ ;;
+ esac
+ fi
+ if test ! -f y.tab.h; then
+ echo >y.tab.h
+ fi
+ if test ! -f y.tab.c; then
+ echo 'main() { return 0; }' >y.tab.c
+ fi
+ ;;
+
+ lex*|flex*)
+ echo 1>&2 "\
+WARNING: '$1' is $msg. You should only need it if
+ you modified a '.l' file. You may need the Flex package
+ in order for those modifications to take effect. You can get
+ Flex from any GNU archive site."
+ rm -f lex.yy.c
+ if test $# -ne 1; then
+ eval LASTARG=\${$#}
+ case $LASTARG in
+ *.l)
+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" lex.yy.c
+ fi
+ ;;
+ esac
+ fi
+ if test ! -f lex.yy.c; then
+ echo 'main() { return 0; }' >lex.yy.c
+ fi
+ ;;
+
+ help2man*)
+ echo 1>&2 "\
+WARNING: '$1' is $msg. You should only need it if
+ you modified a dependency of a manual page. You may need the
+ Help2man package in order for those modifications to take
+ effect. You can get Help2man from any GNU archive site."
+
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -f "$file"; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo ".ab help2man is required to generate this page"
+ exit $?
+ fi
+ ;;
+
+ makeinfo*)
+ echo 1>&2 "\
+WARNING: '$1' is $msg. You should only need it if
+ you modified a '.texi' or '.texinfo' file, or any other file
+ indirectly affecting the aspect of the manual. The spurious
+ call might also be the consequence of using a buggy 'make' (AIX,
+ DU, IRIX). You might want to install the Texinfo package or
+ the GNU make package. Grab either from any GNU archive site."
+ # The file to touch is that specified with -o ...
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -z "$file"; then
+ # ... or it is the one specified with @setfilename ...
+ infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '
+ /^@setfilename/{
+ s/.* \([^ ]*\) *$/\1/
+ p
+ q
+ }' $infile`
+ # ... or it is derived from the source name (dir/f.texi becomes f.info)
+ test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
+ fi
+ # If the file does not exist, the user really needs makeinfo;
+ # let's fail without touching anything.
+ test -f $file || exit 1
+ touch $file
+ ;;
+
+ *)
+ echo 1>&2 "\
+WARNING: '$1' is needed, and is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them. Check the 'README' file,
+ it often tells you about the needed prerequisites for installing
+ this package. You may also peek at any GNU archive site, in case
+ some other package would contain this missing '$1' program."
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/build-aux/texinfo.tex b/build-aux/texinfo.tex
index 1130b8fc..e4dca02c 100644
--- a/build-aux/texinfo.tex
+++ b/build-aux/texinfo.tex
@@ -3,11 +3,11 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2010-12-23.17}
+\def\texinfoversion{2012-04-06.11}
%
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+% 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
%
% This texinfo.tex file is free software: you can redistribute it and/or
% modify it under the terms of the GNU General Public License as
@@ -116,10 +116,11 @@
% Set up fixed words for English if not already set.
\ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi
\ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi
+\ifx\putworderror\undefined \gdef\putworderror{error}\fi
\ifx\putwordfile\undefined \gdef\putwordfile{file}\fi
\ifx\putwordin\undefined \gdef\putwordin{in}\fi
-\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
-\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi
+\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
+\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi
\ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi
\ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi
\ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi
@@ -158,15 +159,18 @@
\def\spaceisspace{\catcode`\ =\spacecat}
% sometimes characters are active, so we need control sequences.
+\chardef\ampChar = `\&
\chardef\colonChar = `\:
\chardef\commaChar = `\,
\chardef\dashChar = `\-
\chardef\dotChar = `\.
\chardef\exclamChar= `\!
+\chardef\hashChar = `\#
\chardef\lquoteChar= `\`
\chardef\questChar = `\?
\chardef\rquoteChar= `\'
\chardef\semiChar = `\;
+\chardef\slashChar = `\/
\chardef\underChar = `\_
% Ignore a token.
@@ -215,7 +219,7 @@
\tracingmacros2
\tracingrestores1
\showboxbreadth\maxdimen \showboxdepth\maxdimen
- \ifx\eTeXversion\undefined\else % etex gives us more logging
+ \ifx\eTeXversion\thisisundefined\else % etex gives us more logging
\tracingscantokens1
\tracingifs1
\tracinggroups1
@@ -226,6 +230,13 @@
\errorcontextlines16
}%
+% @errormsg{MSG}. Do the index-like expansions on MSG, but if things
+% aren't perfect, it's not the end of the world, being an error message,
+% after all.
+%
+\def\errormsg{\begingroup \indexnofonts \doerrormsg}
+\def\doerrormsg#1{\errmessage{#1}}
+
% add check for \lastpenalty to plain's definitions. If the last thing
% we did was a \nobreak, we don't want to insert more space.
%
@@ -545,7 +556,7 @@
}
\def\inenvironment#1{%
\ifx#1\empty
- out of any environment%
+ outside of any environment%
\else
in environment \expandafter\string#1%
\fi
@@ -557,7 +568,7 @@
\parseargdef\end{%
\if 1\csname iscond.#1\endcsname
\else
- % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03
+ % The general wording of \badenverr may not be ideal.
\expandafter\checkenv\csname#1\endcsname
\csname E#1\endcsname
\endgroup
@@ -608,7 +619,7 @@
\else\ifx\temp\offword \plainnonfrenchspacing
\else
\errhelp = \EMsimple
- \errmessage{Unknown @frenchspacing option `\temp', must be on/off}%
+ \errmessage{Unknown @frenchspacing option `\temp', must be on|off}%
\fi\fi
}
@@ -690,15 +701,6 @@ where each line of input produces a line of output.}
\newdimen\mil \mil=0.001in
-% Old definition--didn't work.
-%\parseargdef\need{\par %
-%% This method tries to make TeX break the page naturally
-%% if the depth of the box does not fit.
-%{\baselineskip=0pt%
-%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak
-%\prevdepth=-1000pt
-%}}
-
\parseargdef\need{%
% Ensure vertical mode, so we don't make a big box in the middle of a
% paragraph.
@@ -849,6 +851,7 @@ where each line of input produces a line of output.}
\makevalueexpandable % we want to expand any @value in FILE.
\turnoffactive % and allow special characters in the expansion
\indexnofonts % Allow `@@' and other weird things in file names.
+ \wlog{texinfo.tex: doing @include of #1^^J}%
\edef\temp{\noexpand\input #1 }%
%
% This trickery is to read FILE outside of a group, in case it makes
@@ -884,7 +887,7 @@ where each line of input produces a line of output.}
\def\popthisfilestack{\errthisfilestackempty}
\def\errthisfilestackempty{\errmessage{Internal error:
the stack of filenames is empty.}}
-
+%
\def\thisfile{}
% @center line
@@ -892,36 +895,46 @@ where each line of input produces a line of output.}
%
\parseargdef\center{%
\ifhmode
- \let\next\centerH
+ \let\centersub\centerH
\else
- \let\next\centerV
+ \let\centersub\centerV
\fi
- \next{\hfil \ignorespaces#1\unskip \hfil}%
+ \centersub{\hfil \ignorespaces#1\unskip \hfil}%
+ \let\centersub\relax % don't let the definition persist, just in case
}
-\def\centerH#1{%
- {%
- \hfil\break
- \advance\hsize by -\leftskip
- \advance\hsize by -\rightskip
- \line{#1}%
- \break
- }%
+\def\centerH#1{{%
+ \hfil\break
+ \advance\hsize by -\leftskip
+ \advance\hsize by -\rightskip
+ \line{#1}%
+ \break
+}}
+%
+\newcount\centerpenalty
+\def\centerV#1{%
+ % The idea here is the same as in \startdefun, \cartouche, etc.: if
+ % @center is the first thing after a section heading, we need to wipe
+ % out the negative parskip inserted by \sectionheading, but still
+ % prevent a page break here.
+ \centerpenalty = \lastpenalty
+ \ifnum\centerpenalty>10000 \vskip\parskip \fi
+ \ifnum\centerpenalty>9999 \penalty\centerpenalty \fi
+ \line{\kern\leftskip #1\kern\rightskip}%
}
-\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}}
% @sp n outputs n lines of vertical space
-
+%
\parseargdef\sp{\vskip #1\baselineskip}
% @comment ...line which is ignored...
% @c is the same as @comment
% @ignore ... @end ignore is another way to write a comment
-
+%
\def\comment{\begingroup \catcode`\^^M=\other%
\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
\commentxxx}
{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
-
+%
\let\c=\comment
% @paragraphindent NCHARS
@@ -1078,9 +1091,8 @@ where each line of input produces a line of output.}
\newif\ifpdfmakepagedest
% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1
-% can be set). So we test for \relax and 0 as well as \undefined,
-% borrowed from ifpdf.sty.
-\ifx\pdfoutput\undefined
+% can be set). So we test for \relax and 0 as well as being undefined.
+\ifx\pdfoutput\thisisundefined
\else
\ifx\pdfoutput\relax
\else
@@ -1095,50 +1107,24 @@ where each line of input produces a line of output.}
% for display in the outlines, and in other places. Thus, we have to
% double any backslashes. Otherwise, a name like "\node" will be
% interpreted as a newline (\n), followed by o, d, e. Not good.
-% http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html
-% (and related messages, the final outcome is that it is up to the TeX
-% user to double the backslashes and otherwise make the string valid, so
-% that's what we do).
-
-% double active backslashes.
-%
-{\catcode`\@=0 \catcode`\\=\active
- @gdef@activebackslashdouble{%
- @catcode`@\=@active
- @let\=@doublebackslash}
-}
-
-% To handle parens, we must adopt a different approach, since parens are
-% not active characters. hyperref.dtx (which has the same problem as
-% us) handles it with this amazing macro to replace tokens, with minor
-% changes for Texinfo. It is included here under the GPL by permission
-% from the author, Heiko Oberdiek.
-%
-% #1 is the tokens to replace.
-% #2 is the replacement.
-% #3 is the control sequence with the string.
-%
-\def\HyPsdSubst#1#2#3{%
- \def\HyPsdReplace##1#1##2\END{%
- ##1%
- \ifx\\##2\\%
- \else
- #2%
- \HyReturnAfterFi{%
- \HyPsdReplace##2\END
- }%
- \fi
- }%
- \xdef#3{\expandafter\HyPsdReplace#3#1\END}%
-}
-\long\def\HyReturnAfterFi#1\fi{\fi#1}
-
-% #1 is a control sequence in which to do the replacements.
-\def\backslashparens#1{%
- \xdef#1{#1}% redefine it as its expansion; the definition is simply
- % \lastnode when called from \setref -> \pdfmkdest.
- \HyPsdSubst{(}{\realbackslash(}{#1}%
- \HyPsdSubst{)}{\realbackslash)}{#1}%
+%
+% See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and
+% related messages. The final outcome is that it is up to the TeX user
+% to double the backslashes and otherwise make the string valid, so
+% that's what we do. pdftex 1.30.0 (ca.2005) introduced a primitive to
+% do this reliably, so we use it.
+
+% #1 is a control sequence in which to do the replacements,
+% which we \xdef.
+\def\txiescapepdf#1{%
+ \ifx\pdfescapestring\relax
+ % No primitive available; should we give a warning or log?
+ % Many times it won't matter.
+ \else
+ % The expandable \pdfescapestring primitive escapes parentheses,
+ % backslashes, and other special chars.
+ \xdef#1{\pdfescapestring{#1}}%
+ \fi
}
\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images
@@ -1197,32 +1183,34 @@ output) for that.)}
%
% #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
\def\dopdfimage#1#2#3{%
- \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
- \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
+ \def\pdfimagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
+ \def\pdfimageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
%
- % pdftex (and the PDF format) support .png, .jpg, .pdf (among
- % others). Let's try in that order.
+ % pdftex (and the PDF format) support .pdf, .png, .jpg (among
+ % others). Let's try in that order, PDF first since if
+ % someone has a scalable image, presumably better to use that than a
+ % bitmap.
\let\pdfimgext=\empty
\begingroup
- \openin 1 #1.png \ifeof 1
- \openin 1 #1.jpg \ifeof 1
- \openin 1 #1.jpeg \ifeof 1
- \openin 1 #1.JPG \ifeof 1
- \openin 1 #1.pdf \ifeof 1
- \openin 1 #1.PDF \ifeof 1
+ \openin 1 #1.pdf \ifeof 1
+ \openin 1 #1.PDF \ifeof 1
+ \openin 1 #1.png \ifeof 1
+ \openin 1 #1.jpg \ifeof 1
+ \openin 1 #1.jpeg \ifeof 1
+ \openin 1 #1.JPG \ifeof 1
\errhelp = \nopdfimagehelp
\errmessage{Could not find image file #1 for pdf}%
- \else \gdef\pdfimgext{PDF}%
+ \else \gdef\pdfimgext{JPG}%
\fi
- \else \gdef\pdfimgext{pdf}%
+ \else \gdef\pdfimgext{jpeg}%
\fi
- \else \gdef\pdfimgext{JPG}%
+ \else \gdef\pdfimgext{jpg}%
\fi
- \else \gdef\pdfimgext{jpeg}%
+ \else \gdef\pdfimgext{png}%
\fi
- \else \gdef\pdfimgext{jpg}%
+ \else \gdef\pdfimgext{PDF}%
\fi
- \else \gdef\pdfimgext{png}%
+ \else \gdef\pdfimgext{pdf}%
\fi
\closein 1
\endgroup
@@ -1234,8 +1222,8 @@ output) for that.)}
\else
\immediate\pdfximage
\fi
- \ifdim \wd0 >0pt width \imagewidth \fi
- \ifdim \wd2 >0pt height \imageheight \fi
+ \ifdim \wd0 >0pt width \pdfimagewidth \fi
+ \ifdim \wd2 >0pt height \pdfimageheight \fi
\ifnum\pdftexversion<13
#1.\pdfimgext
\else
@@ -1250,10 +1238,9 @@ output) for that.)}
% such as \, aren't expanded when present in a section title.
\indexnofonts
\turnoffactive
- \activebackslashdouble
\makevalueexpandable
\def\pdfdestname{#1}%
- \backslashparens\pdfdestname
+ \txiescapepdf\pdfdestname
\safewhatsit{\pdfdest name{\pdfdestname} xyz}%
}}
%
@@ -1285,28 +1272,22 @@ output) for that.)}
% page number. We could generate a destination for the section
% text in the case where a section has no node, but it doesn't
% seem worth the trouble, since most documents are normally structured.
- \def\pdfoutlinedest{#3}%
+ \edef\pdfoutlinedest{#3}%
\ifx\pdfoutlinedest\empty
\def\pdfoutlinedest{#4}%
\else
- % Doubled backslashes in the name.
- {\activebackslashdouble \xdef\pdfoutlinedest{#3}%
- \backslashparens\pdfoutlinedest}%
+ \txiescapepdf\pdfoutlinedest
\fi
%
- % Also double the backslashes in the display string.
- {\activebackslashdouble \xdef\pdfoutlinetext{#1}%
- \backslashparens\pdfoutlinetext}%
+ % Also escape PDF chars in the display string.
+ \edef\pdfoutlinetext{#1}%
+ \txiescapepdf\pdfoutlinetext
%
\pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
}
%
\def\pdfmakeoutlines{%
\begingroup
- % Thanh's hack / proper braces in bookmarks
- \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
- \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
- %
% Read toc silently, to get counts of subentries for \pdfoutline.
\def\partentry##1##2##3##4{}% ignore parts in the outlines
\def\numchapentry##1##2##3##4{%
@@ -1362,15 +1343,26 @@ output) for that.)}
% Latin 2 (0xea) gets translated to a | character. Info from
% Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100.
%
- % xx to do this right, we have to translate 8-bit characters to
- % their "best" equivalent, based on the @documentencoding. Right
- % now, I guess we'll just let the pdf reader have its way.
+ % TODO this right, we have to translate 8-bit characters to
+ % their "best" equivalent, based on the @documentencoding. Too
+ % much work for too little return. Just use the ASCII equivalents
+ % we use for the index sort strings.
+ %
\indexnofonts
\setupdatafile
+ % We can have normal brace characters in the PDF outlines, unlike
+ % Texinfo index files. So set that up.
+ \def\{{\lbracecharliteral}%
+ \def\}{\rbracecharliteral}%
\catcode`\\=\active \otherbackslash
\input \tocreadfilename
\endgroup
}
+ {\catcode`[=1 \catcode`]=2
+ \catcode`{=\other \catcode`}=\other
+ \gdef\lbracecharliteral[{]%
+ \gdef\rbracecharliteral[}]%
+ ]
%
\def\skipspaces#1{\def\PP{#1}\def\D{|}%
\ifx\PP\D\let\nextsp\relax
@@ -1380,7 +1372,13 @@ output) for that.)}
\fi
\fi
\nextsp}
- \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
+ \def\getfilename#1{%
+ \filenamelength=0
+ % If we don't expand the argument now, \skipspaces will get
+ % snagged on things like "@value{foo}".
+ \edef\temp{#1}%
+ \expandafter\skipspaces\temp|\relax
+ }
\ifnum\pdftexversion < 14
\let \startlink \pdfannotlink
\else
@@ -1512,7 +1510,7 @@ output) for that.)}
% if we are producing pdf, and we have \pdffontattr, then define cmaps.
% (\pdffontattr was introduced many years ago, but people still run
% older pdftex's; it's easy to conditionalize, so we do.)
-\ifpdf \ifx\pdffontattr\undefined \else
+\ifpdf \ifx\pdffontattr\thisisundefined \else
\begingroup
\catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
\catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
@@ -1779,7 +1777,7 @@ end
% Use cm as the default font prefix.
% To specify the font prefix, you must define \fontprefix
% before you read in texinfo.tex.
-\ifx\fontprefix\undefined
+\ifx\fontprefix\thisisundefined
\def\fontprefix{cm}
\fi
% Support font families that don't use the same naming scheme as CM.
@@ -2070,7 +2068,7 @@ end
%
\parseargdef\fonttextsize{%
\def\textsizearg{#1}%
- \wlog{doing @fonttextsize \textsizearg}%
+ %\wlog{doing @fonttextsize \textsizearg}%
%
% Set \globaldefs so that documents can use this inside @tex, since
% makeinfo 4.8 does not support it, but we need it nonetheless.
@@ -2252,12 +2250,14 @@ end
% Markup style setup for left and right quotes.
\defmarkupstylesetup\markupsetuplq{%
- \expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname
+ \expandafter\let\expandafter \temp
+ \csname markupsetuplq\currentmarkupstyle\endcsname
\ifx\temp\relax \markupsetuplqdefault \else \temp \fi
}
\defmarkupstylesetup\markupsetuprq{%
- \expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname
+ \expandafter\let\expandafter \temp
+ \csname markupsetuprq\currentmarkupstyle\endcsname
\ifx\temp\relax \markupsetuprqdefault \else \temp \fi
}
@@ -2291,12 +2291,11 @@ end
\let\markupsetuplqkbd \markupsetnoligaturesquoteleft
-% Allow an option to not replace quotes with a regular directed right
-% quote/apostrophe (char 0x27), but instead use the undirected quote
-% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it
-% the default, but it works for pasting with more pdf viewers (at least
-% evince), the lilypond developers report. xpdf does work with the
-% regular 0x27.
+% Allow an option to not use regular directed right quote/apostrophe
+% (char 0x27), but instead the undirected quote from cmtt (char 0x0d).
+% The undirected quote is ugly, so don't make it the default, but it
+% works for pasting with more pdf viewers (at least evince), the
+% lilypond developers report. xpdf does work with the regular 0x27.
%
\def\codequoteright{%
\expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
@@ -2320,6 +2319,36 @@ end
\else \char'22 \fi
}
+% Commands to set the quote options.
+%
+\parseargdef\codequoteundirected{%
+ \def\temp{#1}%
+ \ifx\temp\onword
+ \expandafter\let\csname SETtxicodequoteundirected\endcsname
+ = t%
+ \else\ifx\temp\offword
+ \expandafter\let\csname SETtxicodequoteundirected\endcsname
+ = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @codequoteundirected value `\temp', must be on|off}%
+ \fi\fi
+}
+%
+\parseargdef\codequotebacktick{%
+ \def\temp{#1}%
+ \ifx\temp\onword
+ \expandafter\let\csname SETtxicodequotebacktick\endcsname
+ = t%
+ \else\ifx\temp\offword
+ \expandafter\let\csname SETtxicodequotebacktick\endcsname
+ = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @codequotebacktick value `\temp', must be on|off}%
+ \fi\fi
+}
+
% [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font.
\def\noligaturesquoteleft{\relax\lq}
@@ -2347,7 +2376,9 @@ end
\else\ifx\next-%
\else\ifx\next.%
\else\ptexslash
- \fi\fi\fi}
+ \fi\fi\fi
+ \aftersmartic
+}
% like \smartslanted except unconditionally uses \ttsl, and no ic.
% @var is set to this for defun arguments.
@@ -2357,9 +2388,15 @@ end
% ttsl for book titles, do we?
\def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection}
+\def\aftersmartic{}
+\def\var#1{%
+ \let\saveaftersmartic = \aftersmartic
+ \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}%
+ \smartslanted{#1}%
+}
+
\let\i=\smartitalic
\let\slanted=\smartslanted
-\def\var#1{\smartslanted{#1}}
\let\dfn=\smartslanted
\let\emph=\smartitalic
@@ -2455,7 +2492,7 @@ end
\plainfrenchspacing
#1%
}%
- \null
+ \null % reset spacefactor to 1000
}
% We *must* turn on hyphenation at `-' and `_' in @code.
@@ -2487,6 +2524,8 @@ end
}
}
+\def\codex #1{\tclose{#1}\endgroup}
+
\def\realdash{-}
\def\codedash{-\discretionary{}{}{}}
\def\codeunder{%
@@ -2500,7 +2539,6 @@ end
\discretionary{}{}{}}%
{\_}%
}
-\def\codex #1{\tclose{#1}\endgroup}
% An additional complication: the above will allow breaks after, e.g.,
% each of the four underscores in __typeof__. This is undesirable in
@@ -2520,63 +2558,18 @@ end
\allowcodebreaksfalse
\else
\errhelp = \EMsimple
- \errmessage{Unknown @allowcodebreaks option `\txiarg'}%
+ \errmessage{Unknown @allowcodebreaks option `\txiarg', must be true|false}%
\fi\fi
}
-% @kbd is like @code, except that if the argument is just one @key command,
-% then @kbd has no effect.
-\def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}}
-
-% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
-% `example' (@kbd uses ttsl only inside of @example and friends),
-% or `code' (@kbd uses normal tty font always).
-\parseargdef\kbdinputstyle{%
- \def\txiarg{#1}%
- \ifx\txiarg\worddistinct
- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
- \else\ifx\txiarg\wordexample
- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
- \else\ifx\txiarg\wordcode
- \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
- \else
- \errhelp = \EMsimple
- \errmessage{Unknown @kbdinputstyle option `\txiarg'}%
- \fi\fi\fi
-}
-\def\worddistinct{distinct}
-\def\wordexample{example}
-\def\wordcode{code}
-
-% Default is `distinct'.
-\kbdinputstyle distinct
-
-\def\xkey{\key}
-\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
-\ifx\one\xkey\ifx\threex\three \key{#2}%
-\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
-\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi}
-
-% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
-\let\indicateurl=\code
-\let\env=\code
-\let\command=\code
-
-% @clicksequence{File @click{} Open ...}
-\def\clicksequence#1{\begingroup #1\endgroup}
-
-% @clickstyle @arrow (by default)
-\parseargdef\clickstyle{\def\click{#1}}
-\def\click{\arrow}
-
% @uref (abbreviation for `urlref') takes an optional (comma-separated)
% second argument specifying the text to display and an optional third
% arg as text to display instead of (rather than in addition to) the url
-% itself. First (mandatory) arg is the url. Perhaps eventually put in
-% a hypertex \special here.
-%
-\def\uref#1{\douref #1,,,\finish}
-\def\douref#1,#2,#3,#4\finish{\begingroup
+% itself. First (mandatory) arg is the url.
+% (This \urefnobreak definition isn't used now, leaving it for a while
+% for comparison.)
+\def\urefnobreak#1{\dourefnobreak #1,,,\finish}
+\def\dourefnobreak#1,#2,#3,#4\finish{\begingroup
\unsepspaces
\pdfurl{#1}%
\setbox0 = \hbox{\ignorespaces #3}%
@@ -2597,6 +2590,103 @@ end
\endlink
\endgroup}
+% This \urefbreak definition is the active one.
+\def\urefbreak{\begingroup \urefcatcodes \dourefbreak}
+\let\uref=\urefbreak
+\def\dourefbreak#1{\urefbreakfinish #1,,,\finish}
+\def\urefbreakfinish#1,#2,#3,#4\finish{% doesn't work in @example
+ \unsepspaces
+ \pdfurl{#1}%
+ \setbox0 = \hbox{\ignorespaces #3}%
+ \ifdim\wd0 > 0pt
+ \unhbox0 % third arg given, show only that
+ \else
+ \setbox0 = \hbox{\ignorespaces #2}%
+ \ifdim\wd0 > 0pt
+ \ifpdf
+ \unhbox0 % PDF: 2nd arg given, show only it
+ \else
+ \unhbox0\ (\urefcode{#1})% DVI: 2nd arg given, show both it and url
+ \fi
+ \else
+ \urefcode{#1}% only url given, so show it
+ \fi
+ \fi
+ \endlink
+\endgroup}
+
+% Allow line breaks around only a few characters (only).
+\def\urefcatcodes{%
+ \catcode\ampChar=\active \catcode\dotChar=\active
+ \catcode\hashChar=\active \catcode\questChar=\active
+ \catcode\slashChar=\active
+}
+{
+ \urefcatcodes
+ %
+ \global\def\urefcode{\begingroup
+ \setupmarkupstyle{code}%
+ \urefcatcodes
+ \let&\urefcodeamp
+ \let.\urefcodedot
+ \let#\urefcodehash
+ \let?\urefcodequest
+ \let/\urefcodeslash
+ \codex
+ }
+ %
+ % By default, they are just regular characters.
+ \global\def&{\normalamp}
+ \global\def.{\normaldot}
+ \global\def#{\normalhash}
+ \global\def?{\normalquest}
+ \global\def/{\normalslash}
+}
+
+% we put a little stretch before and after the breakable chars, to help
+% line breaking of long url's. The unequal skips make look better in
+% cmtt at least, especially for dots.
+\def\urefprestretch{\urefprebreak \hskip0pt plus.13em }
+\def\urefpoststretch{\urefpostbreak \hskip0pt plus.1em }
+%
+\def\urefcodeamp{\urefprestretch \&\urefpoststretch}
+\def\urefcodedot{\urefprestretch .\urefpoststretch}
+\def\urefcodehash{\urefprestretch \#\urefpoststretch}
+\def\urefcodequest{\urefprestretch ?\urefpoststretch}
+\def\urefcodeslash{\futurelet\next\urefcodeslashfinish}
+{
+ \catcode`\/=\active
+ \global\def\urefcodeslashfinish{%
+ \urefprestretch \slashChar
+ % Allow line break only after the final / in a sequence of
+ % slashes, to avoid line break between the slashes in http://.
+ \ifx\next/\else \urefpoststretch \fi
+ }
+}
+
+% One more complication: by default we'll break after the special
+% characters, but some people like to break before the special chars, so
+% allow that. Also allow no breaking at all, for manual control.
+%
+\parseargdef\urefbreakstyle{%
+ \def\txiarg{#1}%
+ \ifx\txiarg\wordnone
+ \def\urefprebreak{\nobreak}\def\urefpostbreak{\nobreak}
+ \else\ifx\txiarg\wordbefore
+ \def\urefprebreak{\allowbreak}\def\urefpostbreak{\nobreak}
+ \else\ifx\txiarg\wordafter
+ \def\urefprebreak{\nobreak}\def\urefpostbreak{\allowbreak}
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @urefbreakstyle setting `\txiarg'}%
+ \fi\fi\fi
+}
+\def\wordafter{after}
+\def\wordbefore{before}
+\def\wordnone{none}
+
+\urefbreakstyle after
+
% @url synonym for @uref, since that's how everyone uses it.
%
\let\url=\uref
@@ -2618,6 +2708,51 @@ end
\let\email=\uref
\fi
+% @kbd is like @code, except that if the argument is just one @key command,
+% then @kbd has no effect.
+\def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}}
+
+% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
+% `example' (@kbd uses ttsl only inside of @example and friends),
+% or `code' (@kbd uses normal tty font always).
+\parseargdef\kbdinputstyle{%
+ \def\txiarg{#1}%
+ \ifx\txiarg\worddistinct
+ \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
+ \else\ifx\txiarg\wordexample
+ \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
+ \else\ifx\txiarg\wordcode
+ \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @kbdinputstyle setting `\txiarg'}%
+ \fi\fi\fi
+}
+\def\worddistinct{distinct}
+\def\wordexample{example}
+\def\wordcode{code}
+
+% Default is `distinct'.
+\kbdinputstyle distinct
+
+\def\xkey{\key}
+\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
+\ifx\one\xkey\ifx\threex\three \key{#2}%
+\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
+\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi}
+
+% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
+\let\indicateurl=\code
+\let\env=\code
+\let\command=\code
+
+% @clicksequence{File @click{} Open ...}
+\def\clicksequence#1{\begingroup #1\endgroup}
+
+% @clickstyle @arrow (by default)
+\parseargdef\clickstyle{\def\click{#1}}
+\def\click{\arrow}
+
% Typeset a dimension, e.g., `in' or `pt'. The only reason for the
% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt.
%
@@ -2639,6 +2774,7 @@ end
\ifx\temp\empty \else
\space ({\unsepspaces \ignorespaces \temp \unskip})%
\fi
+ \null % reset \spacefactor=1000
}
% @abbr for "Comput. J." and the like.
@@ -2651,6 +2787,7 @@ end
\ifx\temp\empty \else
\space ({\unsepspaces \ignorespaces \temp \unskip})%
\fi
+ \null % reset \spacefactor=1000
}
% @asis just yields its argument. Used with @table, for example.
@@ -2715,20 +2852,48 @@ end
}
}
+% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
+% Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
+% except specified as a normal braced arg, so no newlines to worry about.
+%
+\def\outfmtnametex{tex}
+%
+\long\def\inlinefmt#1{\doinlinefmt #1,\finish}
+\long\def\doinlinefmt#1,#2,\finish{%
+ \def\inlinefmtname{#1}%
+ \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi
+}
+% For raw, must switch into @tex before parsing the argument, to avoid
+% setting catcodes prematurely. Doing it this way means that, for
+% example, @inlineraw{html, foo{bar} gets a parse error instead of being
+% ignored. But this isn't important because if people want a literal
+% *right* brace they would have to use a command anyway, so they may as
+% well use a command to get a left brace too. We could re-use the
+% delimiter character idea from \verb, but it seems like overkill.
+%
+\long\def\inlineraw{\tex \doinlineraw}
+\long\def\doinlineraw#1{\doinlinerawtwo #1,\finish}
+\def\doinlinerawtwo#1,#2,\finish{%
+ \def\inlinerawname{#1}%
+ \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi
+ \endgroup % close group opened by \tex.
+}
+
\message{glyphs,}
% and logos.
-% @@ prints an @.
+% @@ prints an @, as does @atchar{}.
\def\@{\char64 }
+\let\atchar=\@
-% Used to generate quoted braces. Unless we're in typewriter, use
-% \ecfont because the CM text fonts do not have braces, and we don't
-% want to switch into math.
+% @{ @} @lbracechar{} @rbracechar{} all generate brace characters.
+% Unless we're in typewriter, use \ecfont because the CM text fonts do
+% not have braces, and we don't want to switch into math.
\def\mylbrace{{\ifmonospace\else\ecfont\fi \char123}}
\def\myrbrace{{\ifmonospace\else\ecfont\fi \char125}}
-\let\{=\mylbrace
-\let\}=\myrbrace
+\let\{=\mylbrace \let\lbracechar=\{
+\let\}=\myrbrace \let\rbracechar=\}
\begingroup
% Definitions to produce \{ and \} commands for indices,
% and @{ and @} for the aux/toc files.
@@ -2856,7 +3021,7 @@ end
{\tentt \global\dimen0 = 3em}% Width of the box.
\dimen2 = .55pt % Thickness of rules
% The text. (`r' is open on the right, `e' somewhat less so on the left.)
-\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt}
+\setbox0 = \hbox{\kern-.75pt \reducedsf \putworderror\kern-1.5pt}
%
\setbox\errorbox=\hbox to \dimen0{\hfil
\hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
@@ -3005,7 +3170,7 @@ end
% Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38
% so we'll define it if necessary.
%
-\ifx\Orb\undefined
+\ifx\Orb\thisisundefined
\def\Orb{\mathhexbox20D}
\fi
@@ -3033,8 +3198,9 @@ end
\newif\ifsetshortcontentsaftertitlepage
\let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
-\parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
- \endgroup\page\hbox{}\page}
+\parseargdef\shorttitlepage{%
+ \begingroup \hbox{}\vskip 1.5in \chaprm \centerline{#1}%
+ \endgroup\page\hbox{}\page}
\envdef\titlepage{%
% Open one extra group, as we want to close it in the middle of \Etitlepage.
@@ -3094,7 +3260,7 @@ end
\finishedtitlepagetrue
}
-%%% Macros to be used within @titlepage:
+% Macros to be used within @titlepage:
\let\subtitlerm=\tenrm
\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
@@ -3127,7 +3293,7 @@ end
}
-%%% Set up page headings and footings.
+% Set up page headings and footings.
\let\thispage=\folio
@@ -3279,7 +3445,7 @@ end
% This produces Day Month Year style of output.
% Only define if not already defined, in case a txi-??.tex file has set
% up a different format (e.g., txi-cs.tex does this).
-\ifx\today\undefined
+\ifx\today\thisisundefined
\def\today{%
\number\day\space
\ifcase\month
@@ -3826,18 +3992,18 @@ end
\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
\global\advance\multitablelinespace by-\ht0
\fi
-%% Test to see if parskip is larger than space between lines of
-%% table. If not, do nothing.
-%% If so, set to same dimension as multitablelinespace.
+% Test to see if parskip is larger than space between lines of
+% table. If not, do nothing.
+% If so, set to same dimension as multitablelinespace.
\ifdim\multitableparskip>\multitablelinespace
\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
- %% than skip between lines in the table.
+\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller
+ % than skip between lines in the table.
\fi%
\ifdim\multitableparskip=0pt
\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
- %% than skip between lines in the table.
+\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller
+ % than skip between lines in the table.
\fi}
@@ -4285,6 +4451,7 @@ end
\definedummyword\guillemetright
\definedummyword\guilsinglleft
\definedummyword\guilsinglright
+ \definedummyword\lbracechar
\definedummyword\leq
\definedummyword\minus
\definedummyword\ogonek
@@ -4297,6 +4464,7 @@ end
\definedummyword\quoteleft
\definedummyword\quoteright
\definedummyword\quotesinglbase
+ \definedummyword\rbracechar
\definedummyword\result
\definedummyword\textdegree
%
@@ -4348,7 +4516,9 @@ end
\definedummyword\t
%
% Commands that take arguments.
+ \definedummyword\abbr
\definedummyword\acronym
+ \definedummyword\anchor
\definedummyword\cite
\definedummyword\code
\definedummyword\command
@@ -4358,7 +4528,9 @@ end
\definedummyword\emph
\definedummyword\env
\definedummyword\file
+ \definedummyword\image
\definedummyword\indicateurl
+ \definedummyword\inforef
\definedummyword\kbd
\definedummyword\key
\definedummyword\math
@@ -4405,7 +4577,10 @@ end
% content at all. So for index sorting, we map @{ and @} to strings
% starting with |, since that ASCII character is between ASCII { and }.
\def\{{|a}%
+ \def\lbracechar{|a}%
+ %
\def\}{|b}%
+ \def\rbracechar{|b}%
%
% Non-English letters.
\def\AA{AA}%
@@ -4581,10 +4756,9 @@ end
%
% ..., ready, GO:
%
-\def\safewhatsit#1{%
-\ifhmode
+\def\safewhatsit#1{\ifhmode
#1%
-\else
+ \else
% \lastskip and \lastpenalty cannot both be nonzero simultaneously.
\whatsitskip = \lastskip
\edef\lastskipmacro{\the\lastskip}%
@@ -4608,7 +4782,6 @@ end
% to re-insert the same penalty (values >10000 are used for various
% signals); since we just inserted a non-discardable item, any
% following glue (such as a \parskip) would be a breakpoint. For example:
- %
% @deffn deffn-whatever
% @vindex index-whatever
% Description.
@@ -4621,8 +4794,7 @@ end
% (the whatsit from the \write), so we must insert a \nobreak.
\nobreak\vskip\whatsitskip
\fi
-\fi
-}
+\fi}
% The index entry written in the file actually looks like
% \entry {sortstring}{page}{topic}
@@ -5242,7 +5414,8 @@ end
\global\let\subsubsection = \appendixsubsubsec
}
-\outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
+% normally unnmhead0 calls unnumberedzzz:
+\outer\parseargdef\unnumbered{\unnmhead0{#1}}
\def\unnumberedzzz#1{%
\global\secno=0 \global\subsecno=0 \global\subsubsecno=0
\global\advance\unnumberedno by 1
@@ -5286,40 +5459,47 @@ end
\let\top\unnumbered
% Sections.
+%
\outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz
\def\seczzz#1{%
\global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
\sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}%
}
-\outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz
+% normally calls appendixsectionzzz:
+\outer\parseargdef\appendixsection{\apphead1{#1}}
\def\appendixsectionzzz#1{%
\global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
\sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}%
}
\let\appendixsec\appendixsection
-\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz
+% normally calls unnumberedseczzz:
+\outer\parseargdef\unnumberedsec{\unnmhead1{#1}}
\def\unnumberedseczzz#1{%
\global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
\sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}%
}
% Subsections.
-\outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz
+%
+% normally calls numberedsubseczzz:
+\outer\parseargdef\numberedsubsec{\numhead2{#1}}
\def\numberedsubseczzz#1{%
\global\subsubsecno=0 \global\advance\subsecno by 1
\sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}%
}
-\outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz
+% normally calls appendixsubseczzz:
+\outer\parseargdef\appendixsubsec{\apphead2{#1}}
\def\appendixsubseczzz#1{%
\global\subsubsecno=0 \global\advance\subsecno by 1
\sectionheading{#1}{subsec}{Yappendix}%
{\appendixletter.\the\secno.\the\subsecno}%
}
-\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
+% normally calls unnumberedsubseczzz:
+\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}}
\def\unnumberedsubseczzz#1{%
\global\subsubsecno=0 \global\advance\subsecno by 1
\sectionheading{#1}{subsec}{Ynothing}%
@@ -5327,21 +5507,25 @@ end
}
% Subsubsections.
-\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz
+%
+% normally numberedsubsubseczzz:
+\outer\parseargdef\numberedsubsubsec{\numhead3{#1}}
\def\numberedsubsubseczzz#1{%
\global\advance\subsubsecno by 1
\sectionheading{#1}{subsubsec}{Ynumbered}%
{\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}%
}
-\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz
+% normally appendixsubsubseczzz:
+\outer\parseargdef\appendixsubsubsec{\apphead3{#1}}
\def\appendixsubsubseczzz#1{%
\global\advance\subsubsecno by 1
\sectionheading{#1}{subsubsec}{Yappendix}%
{\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}%
}
-\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
+% normally unnumberedsubsubseczzz:
+\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}}
\def\unnumberedsubsubseczzz#1{%
\global\advance\subsubsecno by 1
\sectionheading{#1}{subsubsec}{Ynothing}%
@@ -5391,14 +5575,13 @@ end
% (including whitespace, linebreaking, etc. around it),
% given all the information in convenient, parsed form.
-%%% Args are the skip and penalty (usually negative)
+% Args are the skip and penalty (usually negative)
\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
-%%% Define plain chapter starts, and page on/off switching for it
% Parameter controlling skip before chapter headings (if needed)
-
\newskip\chapheadingskip
+% Define plain chapter starts, and page on/off switching for it.
\def\chapbreak{\dobreak \chapheadingskip {-4000}}
\def\chappager{\par\vfill\supereject}
% Because \domark is called before \chapoddpage, the filler page will
@@ -5601,6 +5784,8 @@ end
%
\def\sectionheading#1#2#3#4{%
{%
+ \checkenv{}% should not be in an environment.
+ %
% Switch to the right set of fonts.
\csname #2fonts\endcsname \rmisbold
%
@@ -5712,15 +5897,15 @@ end
%
% We'll almost certainly start a paragraph next, so don't let that
% glue accumulate. (Not a breakpoint because it's preceded by a
- % discardable item.)
+ % discardable item.) However, when a paragraph is not started next
+ % (\startdefun, \cartouche, \center, etc.), this needs to be wiped out
+ % or the negative glue will cause weirdly wrong output, typically
+ % obscuring the section heading with something else.
\vskip-\parskip
%
- % This is purely so the last item on the list is a known \penalty >
- % 10000. This is so \startdefun can avoid allowing breakpoints after
- % section headings. Otherwise, it would insert a valid breakpoint between:
- %
- % @section sec-whatever
- % @deffn def-whatever
+ % This is so the last item on the main vertical list is a known
+ % \penalty > 10000, so \startdefun, etc., can recognize the situation
+ % and do the needful.
\penalty 10001
}
@@ -6136,6 +6321,12 @@ end
\normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
% Flag to tell @lisp, etc., not to narrow margin.
\let\nonarrowing = t%
+ %
+ % If this cartouche directly follows a sectioning command, we need the
+ % \parskip glue (backspaced over by default) or the cartouche can
+ % collide with the section heading.
+ \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi
+ %
\vbox\bgroup
\baselineskip=0pt\parskip=0pt\lineskip=0pt
\carttop
@@ -6149,7 +6340,7 @@ end
\lineskip=\normlskip
\parskip=\normpskip
\vskip -\parskip
- \comment % For explanation, see the end of \def\group.
+ \comment % For explanation, see the end of def\group.
}
\def\Ecartouche{%
\ifhmode\par\fi
@@ -6346,7 +6537,7 @@ end
%
\def\Equotation{%
\par
- \ifx\quotationauthor\undefined\else
+ \ifx\quotationauthor\thisisundefined\else
% indent a bit.
\leftline{\kern 2\leftskip \sl ---\quotationauthor}%
\fi
@@ -6505,6 +6696,7 @@ end
\makevalueexpandable
\setupverbatim
\indexnofonts % Allow `@@' and other weird things in file names.
+ \wlog{texinfo.tex: doing @verbatiminclude of #1^^J}%
\input #1
\afterenvbreak
}%
@@ -6554,7 +6746,7 @@ end
% commands also insert a nobreak penalty, and we don't want to allow
% a break between a section heading and a defun.
%
- % As a minor refinement, we avoid "club" headers by signalling
+ % As a further refinement, we avoid "club" headers by signalling
% with penalty of 10003 after the very first @deffn in the
% sequence (see above), and penalty of 10002 after any following
% @def command.
@@ -6621,13 +6813,36 @@ end
\def\domakedefun#1#2#3{%
\envdef#1{%
\startdefun
+ \doingtypefnfalse % distinguish typed functions from all else
\parseargusing\activeparens{\printdefunline#3}%
}%
\def#2{\dodefunx#1}%
\def#3%
}
-%%% Untyped functions:
+\newif\ifdoingtypefn % doing typed function?
+\newif\ifrettypeownline % typeset return type on its own line?
+
+% @deftypefnnewline on|off says whether the return type of typed functions
+% are printed on their own line. This affects @deftypefn, @deftypefun,
+% @deftypeop, and @deftypemethod.
+%
+\parseargdef\deftypefnnewline{%
+ \def\temp{#1}%
+ \ifx\temp\onword
+ \expandafter\let\csname SETtxideftypefnnl\endcsname
+ = \empty
+ \else\ifx\temp\offword
+ \expandafter\let\csname SETtxideftypefnnl\endcsname
+ = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @txideftypefnnl value `\temp',
+ must be on|off}%
+ \fi\fi
+}
+
+% Untyped functions:
% @deffn category name args
\makedefun{deffn}{\deffngeneral{}}
@@ -6646,7 +6861,7 @@ end
\defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}%
}
-%%% Typed functions:
+% Typed functions:
% @deftypefn category type name args
\makedefun{deftypefn}{\deftypefngeneral{}}
@@ -6661,10 +6876,11 @@ end
%
\def\deftypefngeneral#1#2 #3 #4 #5\endheader{%
\dosubind{fn}{\code{#4}}{#1}%
+ \doingtypefntrue
\defname{#2}{#3}{#4}\defunargs{#5\unskip}%
}
-%%% Typed variables:
+% Typed variables:
% @deftypevr category type var args
\makedefun{deftypevr}{\deftypecvgeneral{}}
@@ -6682,7 +6898,7 @@ end
\defname{#2}{#3}{#4}\defunargs{#5\unskip}%
}
-%%% Untyped variables:
+% Untyped variables:
% @defvr category var args
\makedefun{defvr}#1 {\deftypevrheader{#1} {} }
@@ -6693,7 +6909,8 @@ end
% \defcvof {category of}class var args
\def\defcvof#1#2 {\deftypecvof{#1}#2 {} }
-%%% Type:
+% Types:
+
% @deftp category name args
\makedefun{deftp}#1 #2 #3\endheader{%
\doind{tp}{\code{#2}}%
@@ -6721,25 +6938,49 @@ end
% We are followed by (but not passed) the arguments, if any.
%
\def\defname#1#2#3{%
+ \par
% Get the values of \leftskip and \rightskip as they were outside the @def...
\advance\leftskip by -\defbodyindent
%
- % How we'll format the type name. Putting it in brackets helps
+ % Determine if we are typesetting the return type of a typed function
+ % on a line by itself.
+ \rettypeownlinefalse
+ \ifdoingtypefn % doing a typed function specifically?
+ % then check user option for putting return type on its own line:
+ \expandafter\ifx\csname SETtxideftypefnnl\endcsname\relax \else
+ \rettypeownlinetrue
+ \fi
+ \fi
+ %
+ % How we'll format the category name. Putting it in brackets helps
% distinguish it from the body text that may end up on the next line
% just below it.
\def\temp{#1}%
\setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi}
%
- % Figure out line sizes for the paragraph shape.
+ % Figure out line sizes for the paragraph shape. We'll always have at
+ % least two.
+ \tempnum = 2
+ %
% The first line needs space for \box0; but if \rightskip is nonzero,
% we need only space for the part of \box0 which exceeds it:
\dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip
+ %
+ % If doing a return type on its own line, we'll have another line.
+ \ifrettypeownline
+ \advance\tempnum by 1
+ \def\maybeshapeline{0in \hsize}%
+ \else
+ \def\maybeshapeline{}%
+ \fi
+ %
% The continuations:
\dimen2=\hsize \advance\dimen2 by -\defargsindent
- % (plain.tex says that \dimen1 should be used only as global.)
- \parshape 2 0in \dimen0 \defargsindent \dimen2
%
- % Put the type name to the right margin.
+ % The final paragraph shape:
+ \parshape \tempnum 0in \dimen0 \maybeshapeline \defargsindent \dimen2
+ %
+ % Put the category name at the right margin.
\noindent
\hbox to 0pt{%
\hfil\box0 \kern-\hsize
@@ -6761,8 +7002,16 @@ end
% . this still does not fix the ?` and !` ligatures, but so far no
% one has made identifiers using them :).
\df \tt
- \def\temp{#2}% return value type
- \ifx\temp\empty\else \tclose{\temp} \fi
+ \def\temp{#2}% text of the return type
+ \ifx\temp\empty\else
+ \tclose{\temp}% typeset the return type
+ \ifrettypeownline
+ % put return type on its own line; prohibit line break following:
+ \hfil\vadjust{\nobreak}\break
+ \else
+ \space % type on same line, so just followed by a space
+ \fi
+ \fi % no return type
#3% output function name
}%
{\rm\enskip}% hskip 0.5 em of \tenrm
@@ -6880,7 +7129,7 @@ end
% To do this right we need a feature of e-TeX, \scantokens,
% which we arrange to emulate with a temporary file in ordinary TeX.
-\ifx\eTeXversion\undefined
+\ifx\eTeXversion\thisisundefined
\newwrite\macscribble
\def\scantokens#1{%
\toks0={#1}%
@@ -6905,12 +7154,14 @@ end
% ... and for \example:
\spaceisspace
%
- % The \empty here causes a following catcode 5 newline to be eaten
- % as part of reading whitespace after a control sequence. It does
- % not eat a catcode 13 newline. There's no good way to handle the
- % two cases. See the Macro Details node in the manual for the
- % workaround we currently have to recommend for macros and
+ % The \empty here causes a following catcode 5 newline to be eaten as
+ % part of reading whitespace after a control sequence. It does not
+ % eat a catcode 13 newline. There's no good way to handle the two
+ % cases (untried: maybe e-TeX's \everyeof could help, though plain TeX
+ % would then have different behavior). See the Macro Details node in
+ % the manual for the workaround we recommend for macros and
% line-oriented commands.
+ %
\scantokens{#1\empty}%
\endgroup}
@@ -7045,9 +7296,15 @@ end
\def\macroxxx#1{%
\getargs{#1}% now \macname is the macname and \argl the arglist
\ifx\argl\empty % no arguments
- \paramno=0
+ \paramno=0\relax
\else
\expandafter\parsemargdef \argl;%
+ \if\paramno>256\relax
+ \ifx\eTeXversion\thisisundefined
+ \errhelp = \EMsimple
+ \errmessage{You need eTeX to compile a file with macros with more than 256 arguments}
+ \fi
+ \fi
\fi
\if1\csname ismacro.\the\macname\endcsname
\message{Warning: redefining \the\macname}%
@@ -7097,9 +7354,17 @@ end
\def\getmacname#1 #2\relax{\macname={#1}}
\def\getmacargs#1{\def\argl{#1}}
+% For macro processing make @ a letter so that we can make Texinfo private macro names.
+\edef\texiatcatcode{\the\catcode`\@}
+\catcode `@=11\relax
+
% Parse the optional {params} list. Set up \paramno and \paramlist
-% so \defmacro knows what to do. Define \macarg.blah for each blah
-% in the params list to be ##N where N is the position in that list.
+% so \defmacro knows what to do. Define \macarg.BLAH for each BLAH
+% in the params list to some hook where the argument si to be expanded. If
+% there are less than 10 arguments that hook is to be replaced by ##N where N
+% is the position in that list, that is to say the macro arguments are to be
+% defined `a la TeX in the macro body.
+%
% That gets used by \mbodybackslash (above).
%
% We need to get `macro parameter char #' into several definitions.
@@ -7109,12 +7374,33 @@ end
%
% The same technique is used to protect \eatspaces till just before
% the macro is used.
-
+%
+% If there are 10 or more arguments, a different technique is used, where the
+% hook remains in the body, and when macro is to be expanded the body is
+% processed again to replace the arguments.
+%
+% In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the
+% argument N value and then \edef the body (nothing else will expand because of
+% the catcode regime underwhich the body was input).
+%
+% If you compile with TeX (not eTeX), and you have macros with 10 or more
+% arguments, you need that no macro has more than 256 arguments, otherwise an
+% error is produced.
\def\parsemargdef#1;{%
\paramno=0\def\paramlist{}%
\let\hash\relax
\let\xeatspaces\relax
\parsemargdefxxx#1,;,%
+ % In case that there are 10 or more arguments we parse again the arguments
+ % list to set new definitions for the \macarg.BLAH macros corresponding to
+ % each BLAH argument. It was anyhow needed to parse already once this list
+ % in order to count the arguments, and as macros with at most 9 arguments
+ % are by far more frequent than macro with 10 or more arguments, defining
+ % twice the \macarg.BLAH macros does not cost too much processing power.
+ \ifnum\paramno<10\relax\else
+ \paramno0\relax
+ \parsemmanyargdef@@#1,;,% 10 or more arguments
+ \fi
}
\def\parsemargdefxxx#1,{%
\if#1;\let\next=\relax
@@ -7125,16 +7411,205 @@ end
\edef\paramlist{\paramlist\hash\the\paramno,}%
\fi\next}
+\def\parsemmanyargdef@@#1,{%
+ \if#1;\let\next=\relax
+ \else
+ \let\next=\parsemmanyargdef@@
+ \edef\tempb{\eatspaces{#1}}%
+ \expandafter\def\expandafter\tempa
+ \expandafter{\csname macarg.\tempb\endcsname}%
+ % Note that we need some extra \noexpand\noexpand, this is because we
+ % don't want \the to be expanded in the \parsermacbody as it uses an
+ % \xdef .
+ \expandafter\edef\tempa
+ {\noexpand\noexpand\noexpand\the\toks\the\paramno}%
+ \advance\paramno by 1\relax
+ \fi\next}
+
% These two commands read recursive and nonrecursive macro bodies.
% (They're different since rec and nonrec macros end differently.)
%
+
+\catcode `\@\texiatcatcode
\long\def\parsemacbody#1@end macro%
{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
\long\def\parsermacbody#1@end rmacro%
{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
+\catcode `\@=11\relax
+
+\let\endargs@\relax
+\let\nil@\relax
+\def\nilm@{\nil@}%
+\long\def\nillm@{\nil@}%
+
+% This macro is expanded during the Texinfo macro expansion, not during its
+% definition. It gets all the arguments values and assigns them to macros
+% macarg.ARGNAME
+%
+% #1 is the macro name
+% #2 is the list of argument names
+% #3 is the list of argument values
+\def\getargvals@#1#2#3{%
+ \def\macargdeflist@{}%
+ \def\saveparamlist@{#2}% Need to keep a copy for parameter expansion.
+ \def\paramlist{#2,\nil@}%
+ \def\macroname{#1}%
+ \begingroup
+ \macroargctxt
+ \def\argvaluelist{#3,\nil@}%
+ \def\@tempa{#3}%
+ \ifx\@tempa\empty
+ \setemptyargvalues@
+ \else
+ \getargvals@@
+ \fi
+}
-% This defines the macro itself. There are six cases: recursive and
-% nonrecursive macros of zero, one, and many arguments.
+%
+\def\getargvals@@{%
+ \ifx\paramlist\nilm@
+ % Some sanity check needed here that \argvaluelist is also empty.
+ \ifx\argvaluelist\nillm@
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Too many arguments in macro `\macroname'!}%
+ \fi
+ \let\next\macargexpandinbody@
+ \else
+ \ifx\argvaluelist\nillm@
+ % No more arguments values passed to macro. Set remaining named-arg
+ % macros to empty.
+ \let\next\setemptyargvalues@
+ \else
+ % pop current arg name into \@tempb
+ \def\@tempa##1{\pop@{\@tempb}{\paramlist}##1\endargs@}%
+ \expandafter\@tempa\expandafter{\paramlist}%
+ % pop current argument value into \@tempc
+ \def\@tempa##1{\longpop@{\@tempc}{\argvaluelist}##1\endargs@}%
+ \expandafter\@tempa\expandafter{\argvaluelist}%
+ % Here \@tempb is the current arg name and \@tempc is the current arg value.
+ % First place the new argument macro definition into \@tempd
+ \expandafter\macname\expandafter{\@tempc}%
+ \expandafter\let\csname macarg.\@tempb\endcsname\relax
+ \expandafter\def\expandafter\@tempe\expandafter{%
+ \csname macarg.\@tempb\endcsname}%
+ \edef\@tempd{\long\def\@tempe{\the\macname}}%
+ \push@\@tempd\macargdeflist@
+ \let\next\getargvals@@
+ \fi
+ \fi
+ \next
+}
+
+\def\push@#1#2{%
+ \expandafter\expandafter\expandafter\def
+ \expandafter\expandafter\expandafter#2%
+ \expandafter\expandafter\expandafter{%
+ \expandafter#1#2}%
+}
+
+% Replace arguments by their values in the macro body, and place the result
+% in macro \@tempa
+\def\macvalstoargs@{%
+ % To do this we use the property that token registers that are \the'ed
+ % within an \edef expand only once. So we are going to place all argument
+ % values into respective token registers.
+ %
+ % First we save the token context, and initialize argument numbering.
+ \begingroup
+ \paramno0\relax
+ % Then, for each argument number #N, we place the corresponding argument
+ % value into a new token list register \toks#N
+ \expandafter\putargsintokens@\saveparamlist@,;,%
+ % Then, we expand the body so that argument are replaced by their
+ % values. The trick for values not to be expanded themselves is that they
+ % are within tokens and that tokens expand only once in an \edef .
+ \edef\@tempc{\csname mac.\macroname .body\endcsname}%
+ % Now we restore the token stack pointer to free the token list registers
+ % which we have used, but we make sure that expanded body is saved after
+ % group.
+ \expandafter
+ \endgroup
+ \expandafter\def\expandafter\@tempa\expandafter{\@tempc}%
+ }
+
+\def\macargexpandinbody@{%
+ %% Define the named-macro outside of this group and then close this group.
+ \expandafter
+ \endgroup
+ \macargdeflist@
+ % First the replace in body the macro arguments by their values, the result
+ % is in \@tempa .
+ \macvalstoargs@
+ % Then we point at the \norecurse or \gobble (for recursive) macro value
+ % with \@tempb .
+ \expandafter\let\expandafter\@tempb\csname mac.\macroname .recurse\endcsname
+ % Depending on whether it is recursive or not, we need some tailing
+ % \egroup .
+ \ifx\@tempb\gobble
+ \let\@tempc\relax
+ \else
+ \let\@tempc\egroup
+ \fi
+ % And now we do the real job:
+ \edef\@tempd{\noexpand\@tempb{\macroname}\noexpand\scanmacro{\@tempa}\@tempc}%
+ \@tempd
+}
+
+\def\putargsintokens@#1,{%
+ \if#1;\let\next\relax
+ \else
+ \let\next\putargsintokens@
+ % First we allocate the new token list register, and give it a temporary
+ % alias \@tempb .
+ \toksdef\@tempb\the\paramno
+ % Then we place the argument value into that token list register.
+ \expandafter\let\expandafter\@tempa\csname macarg.#1\endcsname
+ \expandafter\@tempb\expandafter{\@tempa}%
+ \advance\paramno by 1\relax
+ \fi
+ \next
+}
+
+% Save the token stack pointer into macro #1
+\def\texisavetoksstackpoint#1{\edef#1{\the\@cclvi}}
+% Restore the token stack pointer from number in macro #1
+\def\texirestoretoksstackpoint#1{\expandafter\mathchardef\expandafter\@cclvi#1\relax}
+% newtoks that can be used non \outer .
+\def\texinonouternewtoks{\alloc@ 5\toks \toksdef \@cclvi}
+
+% Tailing missing arguments are set to empty
+\def\setemptyargvalues@{%
+ \ifx\paramlist\nilm@
+ \let\next\macargexpandinbody@
+ \else
+ \expandafter\setemptyargvaluesparser@\paramlist\endargs@
+ \let\next\setemptyargvalues@
+ \fi
+ \next
+}
+
+\def\setemptyargvaluesparser@#1,#2\endargs@{%
+ \expandafter\def\expandafter\@tempa\expandafter{%
+ \expandafter\def\csname macarg.#1\endcsname{}}%
+ \push@\@tempa\macargdeflist@
+ \def\paramlist{#2}%
+}
+
+% #1 is the element target macro
+% #2 is the list macro
+% #3,#4\endargs@ is the list value
+\def\pop@#1#2#3,#4\endargs@{%
+ \def#1{#3}%
+ \def#2{#4}%
+}
+\long\def\longpop@#1#2#3,#4\endargs@{%
+ \long\def#1{#3}%
+ \long\def#2{#4}%
+}
+
+% This defines a Texinfo @macro. There are eight cases: recursive and
+% nonrecursive macros of zero, one, up to nine, and many arguments.
% Much magic with \expandafter here.
% \xdef is used so that macro definitions will survive the file
% they're defined in; @include reads the file inside a group.
@@ -7153,17 +7628,25 @@ end
\expandafter\noexpand\csname\the\macname xxx\endcsname}%
\expandafter\xdef\csname\the\macname xxx\endcsname##1{%
\egroup\noexpand\scanmacro{\temp}}%
- \else % many
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \noexpand\csname\the\macname xx\endcsname}%
- \expandafter\xdef\csname\the\macname xx\endcsname##1{%
- \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
- \expandafter\expandafter
- \expandafter\xdef
- \expandafter\expandafter
- \csname\the\macname xxx\endcsname
- \paramlist{\egroup\noexpand\scanmacro{\temp}}%
+ \else
+ \ifnum\paramno<10\relax % at most 9
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup\noexpand\macroargctxt
+ \noexpand\csname\the\macname xx\endcsname}%
+ \expandafter\xdef\csname\the\macname xx\endcsname##1{%
+ \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+ \expandafter\expandafter
+ \expandafter\xdef
+ \expandafter\expandafter
+ \csname\the\macname xxx\endcsname
+ \paramlist{\egroup\noexpand\scanmacro{\temp}}%
+ \else % 10 or more
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \noexpand\getargvals@{\the\macname}{\argl}%
+ }%
+ \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp
+ \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble
+ \fi
\fi
\else
\ifcase\paramno
@@ -7180,23 +7663,33 @@ end
\egroup
\noexpand\norecurse{\the\macname}%
\noexpand\scanmacro{\temp}\egroup}%
- \else % many
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \expandafter\noexpand\csname\the\macname xx\endcsname}%
- \expandafter\xdef\csname\the\macname xx\endcsname##1{%
- \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
- \expandafter\expandafter
- \expandafter\xdef
- \expandafter\expandafter
- \csname\the\macname xxx\endcsname
- \paramlist{%
- \egroup
- \noexpand\norecurse{\the\macname}%
- \noexpand\scanmacro{\temp}\egroup}%
+ \else % at most 9
+ \ifnum\paramno<10\relax
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup\noexpand\macroargctxt
+ \expandafter\noexpand\csname\the\macname xx\endcsname}%
+ \expandafter\xdef\csname\the\macname xx\endcsname##1{%
+ \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+ \expandafter\expandafter
+ \expandafter\xdef
+ \expandafter\expandafter
+ \csname\the\macname xxx\endcsname
+ \paramlist{%
+ \egroup
+ \noexpand\norecurse{\the\macname}%
+ \noexpand\scanmacro{\temp}\egroup}%
+ \else % 10 or more:
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \noexpand\getargvals@{\the\macname}{\argl}%
+ }%
+ \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp
+ \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\norecurse
+ \fi
\fi
\fi}
+\catcode `\@\texiatcatcode\relax
+
\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
% \braceorline decides whether the next nonwhitespace character is a
@@ -7235,7 +7728,8 @@ end
% @inforef is relatively simple.
\def\inforef #1{\inforefzzz #1,,,,**}
-\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
+\def\inforefzzz #1,#2,#3,#4**{%
+ \putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
node \samp{\ignorespaces#1{}}}
% @node's only job in TeX is to define \lastnode, which is used in
@@ -7296,11 +7790,32 @@ end
\toks0 = \expandafter{\lastsection}%
\immediate \writexrdef{title}{\the\toks0 }%
\immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
- \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout
+ \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout
}%
\fi
}
+% @xrefautosectiontitle on|off says whether @section(ing) names are used
+% automatically in xrefs, if the third arg is not explicitly specified.
+% This was provided as a "secret" @set xref-automatic-section-title
+% variable, now it's official.
+%
+\parseargdef\xrefautomaticsectiontitle{%
+ \def\temp{#1}%
+ \ifx\temp\onword
+ \expandafter\let\csname SETxref-automatic-section-title\endcsname
+ = \empty
+ \else\ifx\temp\offword
+ \expandafter\let\csname SETxref-automatic-section-title\endcsname
+ = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @xrefautomaticsectiontitle value `\temp',
+ must be on|off}%
+ \fi\fi
+}
+
+%
% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is
% the node name, #2 the name of the Info cross-reference, #3 the printed
% node name, #4 the name of the Info file, #5 the name of the printed
@@ -7309,26 +7824,41 @@ end
\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
\def\ref#1{\xrefX[#1,,,,,,,]}
+%
+\newbox\toprefbox
+\newbox\printedrefnamebox
+\newbox\infofilenamebox
+\newbox\printedmanualbox
+%
\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
\unsepspaces
- \def\printedmanual{\ignorespaces #5}%
+ %
+ % Get args without leading/trailing spaces.
\def\printedrefname{\ignorespaces #3}%
- \setbox1=\hbox{\printedmanual\unskip}%
- \setbox0=\hbox{\printedrefname\unskip}%
- \ifdim \wd0 = 0pt
+ \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}%
+ %
+ \def\infofilename{\ignorespaces #4}%
+ \setbox\infofilenamebox = \hbox{\infofilename\unskip}%
+ %
+ \def\printedmanual{\ignorespaces #5}%
+ \setbox\printedmanualbox = \hbox{\printedmanual\unskip}%
+ %
+ % If the printed reference name (arg #3) was not explicitly given in
+ % the @xref, figure out what we want to use.
+ \ifdim \wd\printedrefnamebox = 0pt
% No printed node name was explicitly given.
- \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
- % Use the node name inside the square brackets.
+ \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax
+ % Not auto section-title: use node name inside the square brackets.
\def\printedrefname{\ignorespaces #1}%
\else
- % Use the actual chapter/section title appear inside
- % the square brackets. Use the real section title if we have it.
- \ifdim \wd1 > 0pt
- % It is in another manual, so we don't have it.
+ % Auto section-title: use chapter/section title inside
+ % the square brackets if we have it.
+ \ifdim \wd\printedmanualbox > 0pt
+ % It is in another manual, so we don't have it; use node name.
\def\printedrefname{\ignorespaces #1}%
\else
\ifhavexrefs
- % We know the real title if we have the xref values.
+ % We (should) know the real title if we have the xref values.
\def\printedrefname{\refx{#1-title}{}}%
\else
% Otherwise just copy the Info node name.
@@ -7342,13 +7872,20 @@ end
\ifpdf
{\indexnofonts
\turnoffactive
+ \makevalueexpandable
% This expands tokens, so do it after making catcode changes, so _
- % etc. don't get their TeX definitions.
+ % etc. don't get their TeX definitions. This ignores all spaces in
+ % #4, including (wrongly) those in the middle of the filename.
\getfilename{#4}%
%
- % See comments at \activebackslashdouble.
- {\activebackslashdouble \xdef\pdfxrefdest{#1}%
- \backslashparens\pdfxrefdest}%
+ % This (wrongly) does not take account of leading or trailing
+ % spaces in #1, which should be ignored.
+ \edef\pdfxrefdest{#1}%
+ \ifx\pdfxrefdest\empty
+ \def\pdfxrefdest{Top}% no empty targets
+ \else
+ \txiescapepdf\pdfxrefdest % escape PDF special chars
+ \fi
%
\leavevmode
\startlink attr{/Border [0 0 0]}%
@@ -7375,29 +7912,42 @@ end
\iffloat\Xthisreftitle
% If the user specified the print name (third arg) to the ref,
% print it instead of our usual "Figure 1.2".
- \ifdim\wd0 = 0pt
+ \ifdim\wd\printedrefnamebox = 0pt
\refx{#1-snt}{}%
\else
\printedrefname
\fi
%
- % if the user also gave the printed manual name (fifth arg), append
+ % If the user also gave the printed manual name (fifth arg), append
% "in MANUALNAME".
- \ifdim \wd1 > 0pt
+ \ifdim \wd\printedmanualbox > 0pt
\space \putwordin{} \cite{\printedmanual}%
\fi
\else
% node/anchor (non-float) references.
+ %
+ % If we use \unhbox to print the node names, TeX does not insert
+ % empty discretionaries after hyphens, which means that it will not
+ % find a line break at a hyphen in a node names. Since some manuals
+ % are best written with fairly long node names, containing hyphens,
+ % this is a loss. Therefore, we give the text of the node name
+ % again, so it is as if TeX is seeing it for the first time.
+ %
+ \ifdim \wd\printedmanualbox > 0pt
+ % Cross-manual reference with a printed manual name.
+ %
+ \crossmanualxref{\cite{\printedmanual\unskip}}%
+ %
+ \else\ifdim \wd\infofilenamebox > 0pt
+ % Cross-manual reference with only an info filename (arg 4), no
+ % printed manual name (arg 5). This is essentially the same as
+ % the case above; we output the filename, since we have nothing else.
+ %
+ \crossmanualxref{\code{\infofilename\unskip}}%
%
- % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
- % insert empty discretionaries after hyphens, which means that it will
- % not find a line break at a hyphen in a node names. Since some manuals
- % are best written with fairly long node names, containing hyphens, this
- % is a loss. Therefore, we give the text of the node name again, so it
- % is as if TeX is seeing it for the first time.
- \ifdim \wd1 > 0pt
- \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
\else
+ % Reference within this manual.
+ %
% _ (for example) has to be the character _ for the purposes of the
% control sequence corresponding to the node, but it has to expand
% into the usual \leavevmode...\vrule stuff for purposes of
@@ -7409,7 +7959,7 @@ end
\setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
\ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
}%
- % output the `[mynode]' via a macro so it can be overridden.
+ % output the `[mynode]' via the macro below so it can be overridden.
\xrefprintnodename\printedrefname
%
% But we always want a comma and a space:
@@ -7417,11 +7967,37 @@ end
%
% output the `page 3'.
\turnoffactive \putwordpage\tie\refx{#1-pg}{}%
- \fi
+ \fi\fi
\fi
\endlink
\endgroup}
+% Output a cross-manual xref to #1. Used just above (twice).
+%
+% Only include the text "Section ``foo'' in" if the foo is neither
+% missing or Top. Thus, @xref{,,,foo,The Foo Manual} outputs simply
+% "see The Foo Manual", the idea being to refer to the whole manual.
+%
+% But, this being TeX, we can't easily compare our node name against the
+% string "Top" while ignoring the possible spaces before and after in
+% the input. By adding the arbitrary 7sp below, we make it much less
+% likely that a real node name would have the same width as "Top" (e.g.,
+% in a monospaced font). Hopefully it will never happen in practice.
+%
+% For the same basic reason, we retypeset the "Top" at every
+% reference, since the current font is indeterminate.
+%
+\def\crossmanualxref#1{%
+ \setbox\toprefbox = \hbox{Top\kern7sp}%
+ \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}%
+ \ifdim \wd2 > 7sp % nonempty?
+ \ifdim \wd2 = \wd\toprefbox \else % same as Top?
+ \putwordSection{} ``\printedrefname'' \putwordin{}\space
+ \fi
+ \fi
+ #1%
+}
+
% This macro is called from \xrefX for the `[nodename]' part of xref
% output. It's a separate macro only so it can be changed more easily,
% since square brackets don't work well in some documents. Particularly
@@ -7637,7 +8213,7 @@ end
% space to prevent strange expansion errors.)
\def\supereject{\par\penalty -20000\footnoteno =0 }
-% @footnotestyle is meaningful for info output only.
+% @footnotestyle is meaningful for Info output only.
\let\footnotestyle=\comment
{\catcode `\@=11
@@ -7700,6 +8276,8 @@ end
% expands into a box, it must come within the paragraph, lest it
% provide a place where TeX can split the footnote.
\footstrut
+ %
+ % Invoke rest of plain TeX footnote routine.
\futurelet\next\fo@t
}
}%end \catcode `\@=11
@@ -7787,7 +8365,7 @@ end
it from ftp://tug.org/tex/epsf.tex.}
%
\def\image#1{%
- \ifx\epsfbox\undefined
+ \ifx\epsfbox\thisisundefined
\ifwarnednoepsf \else
\errhelp = \noepsfhelp
\errmessage{epsf.tex not found, images will be ignored}%
@@ -7811,6 +8389,13 @@ end
% If the image is by itself, center it.
\ifvmode
\imagevmodetrue
+ \else \ifx\centersub\centerV
+ % for @center @image, we need a vbox so we can have our vertical space
+ \imagevmodetrue
+ \vbox\bgroup % vbox has better behavior than vtop herev
+ \fi\fi
+ %
+ \ifimagevmode
\nobreak\medskip
% Usually we'll have text after the image which will insert
% \parskip glue, so insert it here too to equalize the space
@@ -7820,9 +8405,13 @@ end
\fi
%
% Leave vertical mode so that indentation from an enclosing
- % environment such as @quotation is respected. On the other hand, if
- % it's at the top level, we don't want the normal paragraph indentation.
- \noindent
+ % environment such as @quotation is respected.
+ % However, if we're at the top level, we don't want the
+ % normal paragraph indentation.
+ % On the other hand, if we are in the case of @center @image, we don't
+ % want to start a paragraph, which will create a hsize-width box and
+ % eradicate the centering.
+ \ifx\centersub\centerV\else \noindent \fi
%
% Output the image.
\ifpdf
@@ -7834,7 +8423,10 @@ end
\epsfbox{#1.eps}%
\fi
%
- \ifimagevmode \medskip \fi % space after the standalone image
+ \ifimagevmode
+ \medskip % space after a standalone image
+ \fi
+ \ifx\centersub\centerV \egroup \fi
\endgroup}
@@ -8252,7 +8844,7 @@ directory should work if nowhere else does.}
%
% Latin1 (ISO-8859-1) character definitions.
\def\latonechardefs{%
- \gdef^^a0{~}
+ \gdef^^a0{\tie}
\gdef^^a1{\exclamdown}
\gdef^^a2{\missingcharmsg{CENT SIGN}}
\gdef^^a3{{\pounds}}
@@ -8282,7 +8874,7 @@ directory should work if nowhere else does.}
\gdef^^b9{$^1$}
\gdef^^ba{\ordm}
%
- \gdef^^bb{\guilletright}
+ \gdef^^bb{\guillemetright}
\gdef^^bc{$1\over4$}
\gdef^^bd{$1\over2$}
\gdef^^be{$3\over4$}
@@ -8374,7 +8966,7 @@ directory should work if nowhere else does.}
% Latin2 (ISO-8859-2) character definitions.
\def\lattwochardefs{%
- \gdef^^a0{~}
+ \gdef^^a0{\tie}
\gdef^^a1{\ogonek{A}}
\gdef^^a2{\u{}}
\gdef^^a3{\L}
@@ -8547,7 +9139,7 @@ directory should work if nowhere else does.}
\gdef\DeclareUnicodeCharacter#1#2{%
\countUTFz = "#1\relax
- \wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
+ %\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
\begingroup
\parseXMLCharref
\def\UTFviiiTwoOctets##1##2{%
@@ -9223,28 +9815,21 @@ directory should work if nowhere else does.}
\message{and turning on texinfo input format.}
+\def^^L{\par} % remove \outer, so ^L can appear in an @comment
+
% DEL is a comment character, in case @c does not suffice.
\catcode`\^^? = 14
% Define macros to output various characters with catcode for normal text.
-\catcode`\"=\other
-\catcode`\~=\other
-\catcode`\^=\other
-\catcode`\_=\other
-\catcode`\|=\other
-\catcode`\<=\other
-\catcode`\>=\other
-\catcode`\+=\other
-\catcode`\$=\other
-\def\normaldoublequote{"}
-\def\normaltilde{~}
-\def\normalcaret{^}
-\def\normalunderscore{_}
-\def\normalverticalbar{|}
-\def\normalless{<}
-\def\normalgreater{>}
-\def\normalplus{+}
-\def\normaldollar{$}%$ font-lock fix
+\catcode`\"=\other \def\normaldoublequote{"}
+\catcode`\$=\other \def\normaldollar{$}%$ font-lock fix
+\catcode`\+=\other \def\normalplus{+}
+\catcode`\<=\other \def\normalless{<}
+\catcode`\>=\other \def\normalgreater{>}
+\catcode`\^=\other \def\normalcaret{^}
+\catcode`\_=\other \def\normalunderscore{_}
+\catcode`\|=\other \def\normalverticalbar{|}
+\catcode`\~=\other \def\normaltilde{~}
% This macro is used to make a character print one way in \tt
% (where it can probably be output as-is), and another way in other fonts,
@@ -9322,14 +9907,24 @@ directory should work if nowhere else does.}
% In texinfo, backslash is an active character; it prints the backslash
% in fixed width font.
-\catcode`\\=\active
-@def@normalbackslash{{@tt@backslashcurfont}}
+\catcode`\\=\active % @ for escape char from now on.
+
+% The story here is that in math mode, the \char of \backslashcurfont
+% ends up printing the roman \ from the math symbol font (because \char
+% in math mode uses the \mathcode, and plain.tex sets
+% \mathcode`\\="026E). It seems better for @backslashchar{} to always
+% print a typewriter backslash, hence we use an explicit \mathchar,
+% which is the decimal equivalent of "715c (class 7, e.g., use \fam;
+% ignored family value; char position "5C). We can't use " for the
+% usual hex value because it has already been made active.
+@def@normalbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}}
+@let@backslashchar = @normalbackslash % @backslashchar{} is for user documents.
+
% On startup, @fixbackslash assigns:
% @let \ = @normalbackslash
-
% \rawbackslash defines an active \ to do \backslashcurfont.
% \otherbackslash defines an active \ to be a literal `\' character with
-% catcode other.
+% catcode other. We switch back and forth between these.
@gdef@rawbackslash{@let\=@backslashcurfont}
@gdef@otherbackslash{@let\=@realbackslash}
@@ -9337,16 +9932,16 @@ directory should work if nowhere else does.}
% the literal character `\'.
%
@def@normalturnoffactive{%
- @let\=@normalbackslash
@let"=@normaldoublequote
- @let~=@normaltilde
+ @let$=@normaldollar %$ font-lock fix
+ @let+=@normalplus
+ @let<=@normalless
+ @let>=@normalgreater
+ @let\=@normalbackslash
@let^=@normalcaret
@let_=@normalunderscore
@let|=@normalverticalbar
- @let<=@normalless
- @let>=@normalgreater
- @let+=@normalplus
- @let$=@normaldollar %$ font-lock fix
+ @let~=@normaltilde
@markupsetuplqdefault
@markupsetuprqdefault
@unsepspaces
@@ -9378,10 +9973,19 @@ directory should work if nowhere else does.}
% Say @foo, not \foo, in error messages.
@escapechar = `@@
+% These (along with & and #) are made active for url-breaking, so need
+% active definitions as the normal characters.
+@def@normaldot{.}
+@def@normalquest{?}
+@def@normalslash{/}
+
% These look ok in all fonts, so just make them not special.
-@catcode`@& = @other
-@catcode`@# = @other
-@catcode`@% = @other
+% @hashchar{} gets its own user-level command, because of #line.
+@catcode`@& = @other @def@normalamp{&}
+@catcode`@# = @other @def@normalhash{#}
+@catcode`@% = @other @def@normalpercent{%}
+
+@let @hashchar = @normalhash
@c Finally, make ` and ' active, so that txicodequoteundirected and
@c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we
diff --git a/cfg.mk b/cfg.mk
index 750ca2c1..e79ff556 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -1,6 +1,6 @@
# Customize maint.mk for Autoconf. -*- Makefile -*-
-# Copyright (C) 2003, 2004, 2006, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 2003-2004, 2006, 2008-2012 Free Software Foundation,
+# Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -26,9 +26,11 @@ _autoreconf = autoreconf -i -v && rm -f INSTALL
# Used in maint.mk's web-manual rule
manual_title = Creating Automatic Configuration Scripts
-# The local directory containing the checked-out copy of gnulib used in this
-# release (override the default).
-gnulib_dir = '$(abs_srcdir)'/../gnulib
+# The local directory containing the checked-out copy of gnulib used
+# in this release (override the default). The $GNULIB_SRCDIR variable
+# is also honored by the gnulib-provided bootstrap script, so using it
+# here is consistent.
+gnulib_dir = $${GNULIB_SRCDIR-'$(abs_srcdir)'/../gnulib}
# The bootstrap tools (override the default).
bootstrap-tools = automake
@@ -55,6 +57,7 @@ gnulib-update:
cp $(gnulib_dir)/build-aux/elisp-comp $(srcdir)/build-aux
cp $(gnulib_dir)/build-aux/gendocs.sh $(srcdir)/build-aux
cp $(gnulib_dir)/build-aux/git-version-gen $(srcdir)/build-aux
+ cp $(gnulib_dir)/build-aux/gitlog-to-changelog $(srcdir)/build-aux
cp $(gnulib_dir)/build-aux/gnupload $(srcdir)/build-aux
cp $(gnulib_dir)/build-aux/install-sh $(srcdir)/build-aux
cp $(gnulib_dir)/build-aux/mdate-sh $(srcdir)/build-aux
@@ -62,6 +65,7 @@ gnulib-update:
cp $(gnulib_dir)/build-aux/move-if-change $(srcdir)/build-aux
cp $(gnulib_dir)/build-aux/texinfo.tex $(srcdir)/build-aux
cp $(gnulib_dir)/build-aux/update-copyright $(srcdir)/build-aux
+ cp $(gnulib_dir)/build-aux/useless-if-before-free $(srcdir)/build-aux
cp $(gnulib_dir)/build-aux/vc-list-files $(srcdir)/build-aux
cp $(gnulib_dir)/doc/fdl.texi $(srcdir)/doc
cp $(gnulib_dir)/doc/gendocs_template $(srcdir)/doc
@@ -70,6 +74,7 @@ gnulib-update:
cp $(gnulib_dir)/doc/standards.texi $(srcdir)/doc
cp $(gnulib_dir)/m4/autobuild.m4 $(srcdir)/m4
cp $(gnulib_dir)/top/GNUmakefile $(srcdir)
+ cp $(gnulib_dir)/top/maint.mk $(srcdir)
WGET = wget
WGETFLAGS = -C off
@@ -81,7 +86,7 @@ autom4te_files = \
Autom4te/Configure_ac.pm \
Autom4te/Channels.pm \
Autom4te/FileUtils.pm \
- Autom4te/Struct.pm \
+ Autom4te/Getopt.pm \
Autom4te/XFile.pm
move_if_change = '$(abs_srcdir)'/build-aux/move-if-change
@@ -103,7 +108,18 @@ autom4te-update:
# Tests not to run.
local-checks-to-skip ?= \
- changelog-check sc_unmarked_diagnostics
+ changelog-check \
+ sc_GPL_version \
+ sc_cast_of_alloca_return_value \
+ sc_m4_quote_check \
+ sc_makefile_at_at_check \
+ sc_prohibit_HAVE_MBRTOWC \
+ sc_prohibit_always-defined_macros \
+ sc_prohibit_always_true_header_tests \
+ sc_prohibit_magic_number_exit \
+ sc_prohibit_stat_st_blocks \
+ sc_unmarked_diagnostics
+
# Always use shorthand copyrights.
update-copyright-env = \
@@ -111,4 +127,15 @@ update-copyright-env = \
UPDATE_COPYRIGHT_MAX_LINE_LENGTH=72
# Prevent incorrect NEWS edits.
-old_NEWS_hash = 6a8aa950938fba063f3dc2b0e11e67e8
+old_NEWS_hash = 54ad39275441a2a3fcbe6182da4f84fb
+
+exclude_file_name_regexp--sc_prohibit_undesirable_word_seq = \
+ ^(maint\.mk|build-aux/texinfo\.tex)$$
+exclude_file_name_regexp--sc_prohibit_test_minus_ao = \
+ ^(maint\.mk|doc/autoconf\.texi)$$
+exclude_file_name_regexp--sc_prohibit_atoi_atof = ^doc/autoconf\.texi$$
+exclude_file_name_regexp--sc_useless_cpp_parens = \
+ ^(build-aux/config\.guess|doc/standards\.texi)$$
+exclude_file_name_regexp--sc_trailing_blank = ^build-aux/texinfo\.tex$$
+exclude_file_name_regexp--sc_two_space_separator_in_usage = \
+ ^build-aux/gnupload$$
diff --git a/configure b/configure
new file mode 100755
index 00000000..402f0fbb
--- /dev/null
+++ b/configure
@@ -0,0 +1,4390 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69 for GNU Autoconf 2.69.
+#
+# Report bugs to <bug-autoconf@gnu.org>.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='GNU Autoconf'
+PACKAGE_TARNAME='autoconf'
+PACKAGE_VERSION='2.69'
+PACKAGE_STRING='GNU Autoconf 2.69'
+PACKAGE_BUGREPORT='bug-autoconf@gnu.org'
+PACKAGE_URL='http://www.gnu.org/software/autoconf/'
+
+ac_unique_file="lib/autoconf/autoconf.m4"
+ac_subst_vars='LTLIBOBJS
+LIBOBJS
+MAKE_CASE_SENSITIVE_FALSE
+MAKE_CASE_SENSITIVE_TRUE
+SED
+EGREP
+GREP
+lispdir
+EMACSLOADPATH
+EMACS
+TEST_EMACS
+PERL_FLOCK
+PERL
+HELP2MAN
+M4_DEBUGFILE
+M4_GNU
+M4
+EXPR
+ac_cv_dir_trailing_space
+ac_cv_unsupported_fs_chars
+ac_cv_sh_n_works
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+with_lispdir
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+M4
+EMACS
+EMACSLOADPATH'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures GNU Autoconf 2.69 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking ...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/autoconf]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of GNU Autoconf 2.69:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-lispdir override the default lisp directory
+
+Some influential environment variables:
+ M4 Location of GNU M4 1.4.6 or later. Defaults to the first program
+ of `m4', `gm4', or `gnum4' on PATH that meets Autoconf needs.
+ EMACS the Emacs editor command
+ EMACSLOADPATH
+ the Emacs library search path
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <bug-autoconf@gnu.org>.
+GNU Autoconf home page: <http://www.gnu.org/software/autoconf/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+GNU Autoconf configure 2.69
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by GNU Autoconf $as_me 2.69, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+ac_aux_dir=
+for ac_dir in build-aux "$srcdir"/build-aux; do
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+
+am__api_version='1.11'
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+alias in your environment" "$LINENO" 5
+ fi
+
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+ [\\/$]* | ?:[\\/]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='autoconf'
+ VERSION='2.69'
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+
+
+
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+
+
+
+
+ if test -z "$AB_PACKAGE"; then
+ AB_PACKAGE=${PACKAGE_NAME:-$PACKAGE}
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: autobuild project... $AB_PACKAGE" >&5
+$as_echo "$as_me: autobuild project... $AB_PACKAGE" >&6;}
+
+ if test -z "$AB_VERSION"; then
+ AB_VERSION=${PACKAGE_VERSION:-$VERSION}
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: autobuild revision... $AB_VERSION" >&5
+$as_echo "$as_me: autobuild revision... $AB_VERSION" >&6;}
+
+ hostname=`hostname`
+ if test "$hostname"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: autobuild hostname... $hostname" >&5
+$as_echo "$as_me: autobuild hostname... $hostname" >&6;}
+ fi
+
+
+
+ date=`TZ=UTC0 date +%Y%m%dT%H%M%SZ`
+ if test "$?" != 0; then
+ date=`date`
+ fi
+ if test "$date"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: autobuild timestamp... $date" >&5
+$as_echo "$as_me: autobuild timestamp... $date" >&6;}
+ fi
+
+
+# We use `/bin/sh -n script' to check that there are no syntax errors
+# in the scripts. Although incredible, there are /bin/sh that go into
+# endless loops with `-n', e.g., SunOS's:
+#
+# $ uname -a
+# SunOS ondine 4.1.3 2 sun4m unknown
+# $ cat endless.sh
+# while false
+# do
+# :
+# done
+# exit 0
+# $ time sh endless.sh
+# sh endless.sh 0,02s user 0,03s system 78% cpu 0,064 total
+# $ time sh -nx endless.sh
+# ^Csh -nx endless.sh 3,67s user 0,03s system 63% cpu 5,868 total
+#
+# Also, some implementations of /bin/sh (e.g., Solaris 8) are soooo slow
+# that they are unusable on large scripts like our testsuite.
+
+# So before using `/bin/sh -n' to check our scripts, we first check
+# that `/bin/sh -n' is known to not have these problems.
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether /bin/sh -n is known to work" >&5
+$as_echo_n "checking whether /bin/sh -n is known to work... " >&6; }
+if ${ac_cv_sh_n_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if (
+ unset BASH_VERSION ZSH_VERSION
+ /bin/sh -c '
+ test -n "${BASH_VERSION+set}" || # Bash
+ test -n "${KSH_VERSION+set}" || # pdksh
+ test -n "${ZSH_VERSION+set}" || # zsh
+ test -n "${.sh.version}" # ksh93; put this last since its syntax is dodgy
+ '
+ ) 2>/dev/null
+then ac_cv_sh_n_works=yes
+else ac_cv_sh_n_works=no
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sh_n_works" >&5
+$as_echo "$ac_cv_sh_n_works" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for characters that cannot appear in file names" >&5
+$as_echo_n "checking for characters that cannot appear in file names... " >&6; }
+if ${ac_cv_unsupported_fs_chars+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_unsupported_fs_chars=
+for c in '\\' \" '<' '>' '*' '?' '|'
+do
+ touch "conftest.t${c}t" 2>/dev/null
+ test -f "conftest.t${c}t" && rm -f "conftest.t${c}t" && continue
+ # $c cannot be used in a file name.
+ ac_cv_unsupported_fs_chars=$ac_cv_unsupported_fs_chars$c
+done
+
+fi
+
+if test -n "$ac_cv_unsupported_fs_chars"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_unsupported_fs_chars" >&5
+$as_echo "$ac_cv_unsupported_fs_chars" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+fi
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether directories can have trailing spaces" >&5
+$as_echo_n "checking whether directories can have trailing spaces... " >&6; }
+if ${ac_cv_dir_trailing_space+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf 'conftest.d ' && mkdir 'conftest.d ' && touch 'conftest.d /tfile' 2>/dev/null
+stat=$?
+rm -rf 'conftest.d '
+case $stat$? in #(
+ 00) ac_cv_dir_trailing_space=yes ;; #(
+ *) ac_cv_dir_trailing_space=no ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_dir_trailing_space" >&5
+$as_echo "$ac_cv_dir_trailing_space" >&6; }
+
+
+# Initialize the test suite.
+ac_config_commands="$ac_config_commands tests/atconfig"
+
+ac_config_files="$ac_config_files tests/Makefile tests/atlocal"
+
+# Extract the first word of "expr", so it can be a program name with args.
+set dummy expr; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_EXPR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $EXPR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_EXPR="$EXPR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_EXPR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+EXPR=$ac_cv_path_EXPR
+if test -n "$EXPR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EXPR" >&5
+$as_echo "$EXPR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+## ---- ##
+## M4. ##
+## ---- ##
+
+# We use an absolute name for GNU m4 so even if users have another m4 first in
+# their path, the installer can configure with a path that has GNU m4
+# on it and get that path embedded in the installed autoconf and
+# autoheader scripts.
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU M4 that supports accurate traces" >&5
+$as_echo_n "checking for GNU M4 that supports accurate traces... " >&6; }
+if ${ac_cv_path_M4+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -f conftest.m4f
+ac_had_posixly_correct=${POSIXLY_CORRECT:+yes}
+{ POSIXLY_CORRECT=; unset POSIXLY_CORRECT;}
+if test -z "$M4"; then
+ ac_path_M4_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in m4 gm4 gnum4; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_M4="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_M4" || continue
+ # Root out GNU M4 1.4.5, as well as non-GNU m4 that ignore -t, -F.
+ # Root out GNU M4 1.4.15 with buggy false negative replacement strstr.
+ # Root out Glibc 2.9 - 2.12 and GNU M4 1.4.11 - 1.4.15 with buggy
+ # false positive strstr.
+ ac_snippet=change'quote(<,>)in''dir(<if''def>,mac,bug)'
+ ac_snippet=${ac_snippet}pat'subst(a,\(b\)\|\(a\),\1)d'nl
+ ac_snippet=${ac_snippet}${as_nl}if'else(in''dex(..wi.d.,.d.),-1,bug)'
+ ac_snippet=${ac_snippet}${as_nl}if'else(in''dex(;:11-:12-:12-:12-:12-:12-:12-:12-:12.:12.:12.:12.:12.:12.:12.:12.:12-,:12-:12-:12-:12-:12-:12-:12-:12-),-1,,strstr-bug2)'
+ test -z "`$ac_path_M4 -F conftest.m4f </dev/null 2>&1`" \
+ && test -z "`$as_echo $ac_snippet | $ac_path_M4 --trace=mac 2>&1`" \
+ && test -f conftest.m4f \
+ && ac_cv_path_M4=$ac_path_M4 ac_path_M4_found=:
+ rm -f conftest.m4f
+ $ac_path_M4_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_M4"; then
+ as_fn_error $? "no acceptable m4 could be found in \$PATH.
+GNU M4 1.4.6 or later is required; 1.4.16 or newer is recommended.
+GNU M4 1.4.15 uses a buggy replacement strstr on some systems.
+Glibc 2.9 - 2.12 and GNU M4 1.4.11 - 1.4.15 have another strstr bug." "$LINENO" 5
+ fi
+else
+ ac_cv_path_M4=$M4
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_M4" >&5
+$as_echo "$ac_cv_path_M4" >&6; }
+ M4=$ac_cv_path_M4
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $ac_cv_path_M4 accepts --gnu" >&5
+$as_echo_n "checking whether $ac_cv_path_M4 accepts --gnu... " >&6; }
+if ${ac_cv_prog_gnu_m4_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case `$M4 --help < /dev/null 2>&1` in
+ *--gnu*) ac_cv_prog_gnu_m4_gnu=yes ;;
+ *) ac_cv_prog_gnu_m4_gnu=no ;;
+ esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gnu_m4_gnu" >&5
+$as_echo "$ac_cv_prog_gnu_m4_gnu" >&6; }
+ if test "$ac_cv_prog_gnu_m4_gnu" = yes; then
+ M4_GNU=--gnu
+ else
+ M4_GNU=
+ fi
+
+ if test x$ac_had_posixly_correct = xyes; then
+ POSIXLY_CORRECT=:
+ if test $ac_cv_prog_gnu_m4_gnu = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: the version of M4 that was found does not support -g" >&5
+$as_echo "$as_me: WARNING: the version of M4 that was found does not support -g" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using it with POSIXLY_CORRECT set may cause problems" >&5
+$as_echo "$as_me: WARNING: using it with POSIXLY_CORRECT set may cause problems" >&2;}
+ fi
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how m4 supports trace files" >&5
+$as_echo_n "checking how m4 supports trace files... " >&6; }
+if ${ac_cv_prog_gnu_m4_debugfile+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case `$M4 --help < /dev/null 2>&1` in
+ *debugfile*) ac_cv_prog_gnu_m4_debugfile=--debugfile ;;
+ *) ac_cv_prog_gnu_m4_debugfile=--error-output ;;
+ esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gnu_m4_debugfile" >&5
+$as_echo "$ac_cv_prog_gnu_m4_debugfile" >&6; }
+ M4_DEBUGFILE=$ac_cv_prog_gnu_m4_debugfile
+
+
+
+## ----------- ##
+## Man pages. ##
+## ----------- ##
+
+ac_config_files="$ac_config_files man/Makefile"
+
+
+HELP2MAN=${HELP2MAN-"${am_missing_run}help2man"}
+
+
+
+## ------ ##
+## Perl. ##
+## ------ ##
+
+# We use an absolute name for perl so the #! line in autoscan will work.
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PERL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PERL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="no"
+ ;;
+esac
+fi
+PERL=$ac_cv_path_PERL
+if test -n "$PERL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+$as_echo "$PERL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test "$PERL" = no; then
+ as_fn_error $? "perl is not found" "$LINENO" 5
+fi
+$PERL -e 'require 5.006;' || {
+ as_fn_error $? "Perl 5.006 or better is required" "$LINENO" 5
+}
+
+# Find out whether the system supports flock
+# Note this test does not try to find out whether it works with this
+# particular file system. It merely avoids us running flock on systems
+# where that bails out.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PERL Fcntl::flock is implemented" >&5
+$as_echo_n "checking whether $PERL Fcntl::flock is implemented... " >&6; }
+if ${ac_cv_perl_flock_implemented+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ echo lock me > conftest.fil
+ if $PERL -e 'use Fcntl ":flock"; flock("conftest.fil", LOCK_EX); 1;'; then
+ ac_cv_perl_flock_implemented=yes
+ else
+ ac_cv_perl_flock_implemented=no
+ fi
+ rm -f conftest.fil
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_perl_flock_implemented" >&5
+$as_echo "$ac_cv_perl_flock_implemented" >&6; }
+PERL_FLOCK=$ac_cv_perl_flock_implemented
+
+
+
+## ------- ##
+## Emacs. ##
+## ------- ##
+
+ac_config_files="$ac_config_files lib/emacs/Makefile"
+
+TEST_EMACS=$EMACS
+test x"$TEST_EMACS" = xt && TEST_EMACS=
+for ac_prog in emacs xemacs
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_TEST_EMACS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$TEST_EMACS"; then
+ ac_cv_prog_TEST_EMACS="$TEST_EMACS" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_TEST_EMACS="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+TEST_EMACS=$ac_cv_prog_TEST_EMACS
+if test -n "$TEST_EMACS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TEST_EMACS" >&5
+$as_echo "$TEST_EMACS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$TEST_EMACS" && break
+done
+test -n "$TEST_EMACS" || TEST_EMACS="no"
+
+
+# autoconf-mode.el and autotest-mode.el do not work with older version of
+# Emacs (i.e. 18.x.x). During byte-compilation, Emacs complains:
+# "Variable (broken nil) seen on pass 2 of byte compiler but not pass 1"
+# We detect this problem here.
+if test "$TEST_EMACS" != no; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $TEST_EMACS is sufficiently recent" >&5
+$as_echo_n "checking whether $TEST_EMACS is sufficiently recent... " >&6; }
+if ${ac_cv_prog_emacs_ok+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Note: The quoted "EOF" is intentional. It protects the ` in the text.
+ cat >conftest.el << "EOF"
+ (defvar broken)
+ (defun broken-mode () (setq broken-defaults `(broken nil)))
+EOF
+ if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$TEST_EMACS -batch -q -f batch-byte-compile conftest.el 1>&2"; } >&5
+ ($TEST_EMACS -batch -q -f batch-byte-compile conftest.el 1>&2) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ ac_cv_prog_emacs_ok=yes
+else
+ ac_cv_prog_emacs_ok=no
+fi
+ rm -f conftest.el conftest.elc
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_emacs_ok" >&5
+$as_echo "$ac_cv_prog_emacs_ok" >&6; }
+ if test $ac_cv_prog_emacs_ok = no; then :
+ TEST_EMACS=no
+fi
+fi
+
+EMACS=$TEST_EMACS
+
+
+ # If set to t, that means we are running in a shell under Emacs.
+ # If you have an Emacs named "t", then use the full path.
+ test x"$EMACS" = xt && EMACS=
+ for ac_prog in emacs xemacs
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_EMACS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$EMACS"; then
+ ac_cv_prog_EMACS="$EMACS" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_EMACS="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+EMACS=$ac_cv_prog_EMACS
+if test -n "$EMACS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EMACS" >&5
+$as_echo "$EMACS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$EMACS" && break
+done
+test -n "$EMACS" || EMACS="no"
+
+
+
+
+# Check whether --with-lispdir was given.
+if test "${with_lispdir+set}" = set; then :
+ withval=$with_lispdir; lispdir="$withval"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking where .elc files should go" >&5
+$as_echo_n "checking where .elc files should go... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lispdir" >&5
+$as_echo "$lispdir" >&6; }
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking where .elc files should go" >&5
+$as_echo_n "checking where .elc files should go... " >&6; }
+if ${am_cv_lispdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $EMACS != "no"; then
+ if test x${lispdir+set} != xset; then
+ # If $EMACS isn't GNU Emacs or XEmacs, this can blow up pretty badly
+ # Some emacsen will start up in interactive mode, requiring C-x C-c to exit,
+ # which is non-obvious for non-emacs users.
+ # Redirecting /dev/null should help a bit; pity we can't detect "broken"
+ # emacsen earlier and avoid running this altogether.
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$EMACS -batch -q -eval '(while load-path (princ (concat (car load-path) \"\\n\")) (setq load-path (cdr load-path)))' </dev/null >conftest.out"; } >&5
+ ($EMACS -batch -q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' </dev/null >conftest.out) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ am_cv_lispdir=`sed -n \
+ -e 's,/$,,' \
+ -e '/.*\/lib\/x*emacs\/site-lisp$/{s,.*/lib/\(x*emacs/site-lisp\)$,${libdir}/\1,;p;q;}' \
+ -e '/.*\/share\/x*emacs\/site-lisp$/{s,.*/share/\(x*emacs/site-lisp\),${datarootdir}/\1,;p;q;}' \
+ conftest.out`
+ rm conftest.out
+ fi
+ fi
+ test -z "$am_cv_lispdir" && am_cv_lispdir='${datadir}/emacs/site-lisp'
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_lispdir" >&5
+$as_echo "$am_cv_lispdir" >&6; }
+ lispdir="$am_cv_lispdir"
+
+fi
+
+
+
+
+
+## ------------ ##
+## Grep & sed. ##
+## ------------ ##
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for ac_i in 1 2 3 4 5 6 7; do
+ ac_script="$ac_script$as_nl$ac_script"
+ done
+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+ { ac_script=; unset ac_script;}
+ if test -z "$SED"; then
+ ac_path_SED_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_SED" || continue
+# Check for GNU ac_path_SED and select it if it is found.
+ # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo '' >> "conftest.nl"
+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_SED_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_SED="$ac_path_SED"
+ ac_path_SED_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_SED_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_SED"; then
+ as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ fi
+else
+ ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+ rm -f conftest.sed
+
+
+
+## ----- ##
+## Make. ##
+## ----- ##
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} is case sensitive" >&5
+$as_echo_n "checking whether ${MAKE-make} is case sensitive... " >&6; }
+if eval \${ac_cv_prog_make_${ac_make}_case+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ echo all: >conftest.make
+if ${MAKE-make} -f conftest.make ALL >/dev/null 2>&1; then
+ ac_res=no
+else
+ ac_res=yes
+fi
+eval ac_cv_prog_make_${ac_make}_case=$ac_res
+rm -f conftest.make
+fi
+eval ac_res=\$ac_cv_prog_make_${ac_make}_case
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \$ac_cv_prog_make_${ac_make}_case = yes; then
+ MAKE_CASE_SENSITIVE_TRUE=
+ MAKE_CASE_SENSITIVE_FALSE='#'
+else
+ MAKE_CASE_SENSITIVE_TRUE='#'
+ MAKE_CASE_SENSITIVE_FALSE=
+fi
+
+
+
+
+## ------------ ##
+## Conclusion. ##
+## ------------ ##
+
+GNUmakefile=GNUmakefile
+ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile"
+
+
+ac_config_files="$ac_config_files Makefile doc/Makefile lib/Makefile lib/Autom4te/Makefile lib/autoscan/Makefile lib/m4sugar/Makefile lib/autoconf/Makefile lib/autotest/Makefile bin/Makefile"
+
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then branch to the quote section. Otherwise,
+# look for a macro that doesn't take arguments.
+ac_script='
+:mline
+/\\$/{
+ N
+ s,\\\n,,
+ b mline
+}
+t clear
+:clear
+s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g
+t quote
+s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g
+t quote
+b any
+:quote
+s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g
+s/\[/\\&/g
+s/\]/\\&/g
+s/\$/$$/g
+H
+:any
+${
+ g
+ s/^\n//
+ s/\n/ /g
+ p
+}
+'
+DEFS=`sed -n "$ac_script" confdefs.h`
+
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+if test -z "${MAKE_CASE_SENSITIVE_TRUE}" && test -z "${MAKE_CASE_SENSITIVE_FALSE}"; then
+ as_fn_error $? "conditional \"MAKE_CASE_SENSITIVE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by GNU Autoconf $as_me 2.69, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_links="$ac_config_links"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+
+Configuration files:
+$config_files
+
+Configuration links:
+$config_links
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-autoconf@gnu.org>.
+GNU Autoconf home page: <http://www.gnu.org/software/autoconf/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+GNU Autoconf config.status 2.69
+configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=?*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h | --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+
+GNUmakefile=$GNUmakefile
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "tests/atconfig") CONFIG_COMMANDS="$CONFIG_COMMANDS tests/atconfig" ;;
+ "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
+ "tests/atlocal") CONFIG_FILES="$CONFIG_FILES tests/atlocal" ;;
+ "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;
+ "lib/emacs/Makefile") CONFIG_FILES="$CONFIG_FILES lib/emacs/Makefile" ;;
+ "$GNUmakefile") CONFIG_LINKS="$CONFIG_LINKS $GNUmakefile:$GNUmakefile" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+ "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
+ "lib/Autom4te/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Autom4te/Makefile" ;;
+ "lib/autoscan/Makefile") CONFIG_FILES="$CONFIG_FILES lib/autoscan/Makefile" ;;
+ "lib/m4sugar/Makefile") CONFIG_FILES="$CONFIG_FILES lib/m4sugar/Makefile" ;;
+ "lib/autoconf/Makefile") CONFIG_FILES="$CONFIG_FILES lib/autoconf/Makefile" ;;
+ "lib/autotest/Makefile") CONFIG_FILES="$CONFIG_FILES lib/autotest/Makefile" ;;
+ "bin/Makefile") CONFIG_FILES="$CONFIG_FILES bin/Makefile" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+
+eval set X " :F $CONFIG_FILES :L $CONFIG_LINKS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+
+ :L)
+ #
+ # CONFIG_LINK
+ #
+
+ if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then
+ :
+ else
+ # Prefer the file from the source tree if names are identical.
+ if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then
+ ac_source=$srcdir/$ac_source
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5
+$as_echo "$as_me: linking $ac_source to $ac_file" >&6;}
+
+ if test ! -r "$ac_source"; then
+ as_fn_error $? "$ac_source: file not found" "$LINENO" 5
+ fi
+ rm -f "$ac_file"
+
+ # Try a relative symlink, then a hard link, then a copy.
+ case $ac_source in
+ [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;;
+ *) ac_rel_source=$ac_top_build_prefix$ac_source ;;
+ esac
+ ln -s "$ac_rel_source" "$ac_file" 2>/dev/null ||
+ ln "$ac_source" "$ac_file" 2>/dev/null ||
+ cp -p "$ac_source" "$ac_file" ||
+ as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5
+ fi
+ ;;
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "tests/atconfig":C) cat >tests/atconfig <<ATEOF
+# Configurable variable values for building test suites.
+# Generated by $0.
+# Copyright (C) 2012 Free Software Foundation, Inc.
+
+# The test suite will define top_srcdir=$at_top_srcdir/../.. etc.
+at_testdir='tests'
+abs_builddir='$ac_abs_builddir'
+at_srcdir='$ac_srcdir'
+abs_srcdir='$ac_abs_srcdir'
+at_top_srcdir='$ac_top_srcdir'
+abs_top_srcdir='$ac_abs_top_srcdir'
+at_top_build_prefix='$ac_top_build_prefix'
+abs_top_builddir='$ac_abs_top_builddir'
+
+# Backward compatibility with Autotest <= 2.59b:
+at_top_builddir=\$at_top_build_prefix
+
+AUTOTEST_PATH='tests'
+
+SHELL=\${CONFIG_SHELL-'$SHELL'}
+ATEOF
+ ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+# Report the state of this version of Autoconf if this is a beta.
diff --git a/configure.ac b/configure.ac
index 5816d4bd..696e513e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,7 @@
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
-# Copyright (C) 1992-1995, 1999-2011 Free Software Foundation, Inc.
+# Copyright (C) 1992-1995, 1999-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,12 +22,11 @@ AC_PREREQ([2.60])
AC_INIT([GNU Autoconf],
m4_esyscmd([build-aux/git-version-gen .tarball-version]),
[bug-autoconf@gnu.org])
-AC_CONFIG_SRCDIR([ChangeLog])
+AC_CONFIG_SRCDIR([lib/autoconf/autoconf.m4])
AC_CONFIG_AUX_DIR([build-aux])
-AM_INIT_AUTOMAKE([1.11 dist-bzip2 dist-xz
-readme-alpha no-texinfo.tex std-options])
+AM_INIT_AUTOMAKE([1.11 dist-xz readme-alpha no-texinfo.tex std-options])
AB_INIT
@@ -135,8 +134,8 @@ AC_SUBST([PERL])dnl
if test "$PERL" = no; then
AC_MSG_ERROR([perl is not found])
fi
-$PERL -e 'require 5.005_03;' || {
- AC_MSG_ERROR([Perl 5.005_03 or better is required])
+$PERL -e 'require 5.006;' || {
+ AC_MSG_ERROR([Perl 5.006 or better is required])
}
# Find out whether the system supports flock
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 35febaa0..a3075ffb 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,6 +1,6 @@
# Make Autoconf documentation.
-# Copyright (C) 2000-2003, 2007-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2003, 2007-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/doc/Makefile.in b/doc/Makefile.in
new file mode 100644
index 00000000..647c92c6
--- /dev/null
+++ b/doc/Makefile.in
@@ -0,0 +1,665 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Make Autoconf documentation.
+
+# Copyright (C) 2000-2003, 2007-2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = doc
+DIST_COMMON = $(autoconf_TEXINFOS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(srcdir)/stamp-vti \
+ $(srcdir)/version.texi $(standards_TEXINFOS)
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
+ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/make-case.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+INFO_DEPS = $(srcdir)/autoconf.info $(srcdir)/standards.info
+am__TEXINFO_TEX_DIR = $(srcdir)/../build-aux
+DVIS = autoconf.dvi standards.dvi
+PDFS = autoconf.pdf standards.pdf
+PSS = autoconf.ps standards.ps
+HTMLS = autoconf.html standards.html
+TEXINFOS = autoconf.texi standards.texi
+TEXI2DVI = texi2dvi
+TEXI2PDF = $(TEXI2DVI) --pdf --batch
+MAKEINFOHTML = $(MAKEINFO) --html
+AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
+DVIPS = dvips
+am__installdirs = "$(DESTDIR)$(infodir)"
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EMACS = @EMACS@
+EMACSLOADPATH = @EMACSLOADPATH@
+EXPR = @EXPR@
+GREP = @GREP@
+HELP2MAN = @HELP2MAN@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+M4_DEBUGFILE = @M4_DEBUGFILE@
+M4_GNU = @M4_GNU@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PERL_FLOCK = @PERL_FLOCK@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TEST_EMACS = @TEST_EMACS@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_cv_dir_trailing_space = @ac_cv_dir_trailing_space@
+ac_cv_sh_n_works = @ac_cv_sh_n_works@
+ac_cv_unsupported_fs_chars = @ac_cv_unsupported_fs_chars@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+lispdir = @lispdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_MAKEINFOFLAGS = --no-split
+TEXI2HTML_FLAGS = -split_chapter
+TEXINFO_TEX = ../build-aux/texinfo.tex
+info_TEXINFOS = autoconf.texi standards.texi
+autoconf_TEXINFOS = fdl.texi install.texi
+standards_TEXINFOS = fdl.texi gnu-oids.texi make-stds.texi
+EXTRA_DIST = gendocs_template
+
+# Files from texi2dvi that should be removed, but which Automake does
+# not know.
+CLEANFILES = autoconf.ACs autoconf.cvs autoconf.MSs autoconf.prs \
+ autoconf.ATs autoconf.evs autoconf.fns autoconf.ovs \
+ autoconf.ca autoconf.CA autoconf.cas autoconf.CAs \
+ autoconf.tmp
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .dvi .html .info .pdf .ps .texi
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu doc/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+.texi.info:
+ restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+ am__cwd=`pwd` && $(am__cd) $(srcdir) && \
+ rm -rf $$backupdir && mkdir $$backupdir && \
+ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
+ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+ done; \
+ else :; fi && \
+ cd "$$am__cwd"; \
+ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ -o $@ $<; \
+ then \
+ rc=0; \
+ $(am__cd) $(srcdir); \
+ else \
+ rc=$$?; \
+ $(am__cd) $(srcdir) && \
+ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+ fi; \
+ rm -rf $$backupdir; exit $$rc
+
+.texi.dvi:
+ TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+ $(TEXI2DVI) $<
+
+.texi.pdf:
+ TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+ $(TEXI2PDF) $<
+
+.texi.html:
+ rm -rf $(@:.html=.htp)
+ if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ -o $(@:.html=.htp) $<; \
+ then \
+ rm -rf $@; \
+ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+ mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
+ else \
+ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+ rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
+ exit 1; \
+ fi
+$(srcdir)/autoconf.info: autoconf.texi $(srcdir)/version.texi $(autoconf_TEXINFOS)
+autoconf.dvi: autoconf.texi $(srcdir)/version.texi $(autoconf_TEXINFOS)
+autoconf.pdf: autoconf.texi $(srcdir)/version.texi $(autoconf_TEXINFOS)
+autoconf.html: autoconf.texi $(srcdir)/version.texi $(autoconf_TEXINFOS)
+$(srcdir)/version.texi: $(srcdir)/stamp-vti
+$(srcdir)/stamp-vti: autoconf.texi $(top_srcdir)/configure
+ @(dir=.; test -f ./autoconf.texi || dir=$(srcdir); \
+ set `$(SHELL) $(top_srcdir)/build-aux/mdate-sh $$dir/autoconf.texi`; \
+ echo "@set UPDATED $$1 $$2 $$3"; \
+ echo "@set UPDATED-MONTH $$2 $$3"; \
+ echo "@set EDITION $(VERSION)"; \
+ echo "@set VERSION $(VERSION)") > vti.tmp
+ @cmp -s vti.tmp $(srcdir)/version.texi \
+ || (echo "Updating $(srcdir)/version.texi"; \
+ cp vti.tmp $(srcdir)/version.texi)
+ -@rm -f vti.tmp
+ @cp $(srcdir)/version.texi $@
+
+mostlyclean-vti:
+ -rm -f vti.tmp
+
+maintainer-clean-vti:
+ -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
+$(srcdir)/standards.info: standards.texi $(standards_TEXINFOS)
+standards.dvi: standards.texi $(standards_TEXINFOS)
+standards.pdf: standards.texi $(standards_TEXINFOS)
+standards.html: standards.texi $(standards_TEXINFOS)
+.dvi.ps:
+ TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+ $(DVIPS) -o $@ $<
+
+uninstall-dvi-am:
+ @$(NORMAL_UNINSTALL)
+ @list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \
+ rm -f "$(DESTDIR)$(dvidir)/$$f"; \
+ done
+
+uninstall-html-am:
+ @$(NORMAL_UNINSTALL)
+ @list='$(HTMLS)'; test -n "$(htmldir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \
+ rm -rf "$(DESTDIR)$(htmldir)/$$f"; \
+ done
+
+uninstall-info-am:
+ @$(PRE_UNINSTALL)
+ @if test -d '$(DESTDIR)$(infodir)' && \
+ (install-info --version && \
+ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+ list='$(INFO_DEPS)'; \
+ for file in $$list; do \
+ relfile=`echo "$$file" | sed 's|^.*/||'`; \
+ echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \
+ if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \
+ then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \
+ done; \
+ else :; fi
+ @$(NORMAL_UNINSTALL)
+ @list='$(INFO_DEPS)'; \
+ for file in $$list; do \
+ relfile=`echo "$$file" | sed 's|^.*/||'`; \
+ relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
+ (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \
+ echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \
+ rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
+ else :; fi); \
+ done
+
+uninstall-pdf-am:
+ @$(NORMAL_UNINSTALL)
+ @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(pdfdir)/$$f"; \
+ done
+
+uninstall-ps-am:
+ @$(NORMAL_UNINSTALL)
+ @list='$(PSS)'; test -n "$(psdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(psdir)/$$f"; \
+ done
+
+dist-info: $(INFO_DEPS)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ list='$(INFO_DEPS)'; \
+ for base in $$list; do \
+ case $$base in \
+ $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
+ esac; \
+ if test -f $$base; then d=.; else d=$(srcdir); fi; \
+ base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \
+ for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \
+ if test -f $$file; then \
+ relfile=`expr "$$file" : "$$d/\(.*\)"`; \
+ test -f "$(distdir)/$$relfile" || \
+ cp -p $$file "$(distdir)/$$relfile"; \
+ else :; fi; \
+ done; \
+ done
+
+mostlyclean-aminfo:
+ -rm -rf autoconf.AC autoconf.ACs autoconf.AT autoconf.ATs autoconf.CA \
+ autoconf.CAs autoconf.MS autoconf.MSs autoconf.aux \
+ autoconf.cp autoconf.cps autoconf.cv autoconf.cvs \
+ autoconf.ev autoconf.evs autoconf.fn autoconf.fns \
+ autoconf.ky autoconf.kys autoconf.log autoconf.ov \
+ autoconf.ovs autoconf.pg autoconf.pgs autoconf.pr \
+ autoconf.prs autoconf.tmp autoconf.toc autoconf.tp \
+ autoconf.tps autoconf.vr standards.aux standards.cp \
+ standards.cps standards.fn standards.ky standards.log \
+ standards.pg standards.tmp standards.toc standards.tp \
+ standards.tps standards.vr
+
+clean-aminfo:
+ -test -z "autoconf.dvi autoconf.pdf autoconf.ps autoconf.html standards.dvi \
+ standards.pdf standards.ps standards.html" \
+ || rm -rf autoconf.dvi autoconf.pdf autoconf.ps autoconf.html standards.dvi \
+ standards.pdf standards.ps standards.html
+
+maintainer-clean-aminfo:
+ @list='$(INFO_DEPS)'; for i in $$list; do \
+ i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \
+ echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
+ rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
+ done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-info
+check-am: all-am
+check: check-am
+all-am: Makefile $(INFO_DEPS)
+installdirs:
+ for dir in "$(DESTDIR)$(infodir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-aminfo clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am: $(DVIS)
+
+html: html-am
+
+html-am: $(HTMLS)
+
+info: info-am
+
+info-am: $(INFO_DEPS)
+
+install-data-am: install-info-am
+
+install-dvi: install-dvi-am
+
+install-dvi-am: $(DVIS)
+ @$(NORMAL_INSTALL)
+ test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)"
+ @list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \
+ done
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am: $(HTMLS)
+ @$(NORMAL_INSTALL)
+ test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"
+ @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ $(am__strip_dir) \
+ if test -d "$$d$$p"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \
+ $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
+ echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
+ $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \
+ else \
+ list2="$$list2 $$d$$p"; \
+ fi; \
+ done; \
+ test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \
+ done; }
+install-info: install-info-am
+
+install-info-am: $(INFO_DEPS)
+ @$(NORMAL_INSTALL)
+ test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)"
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
+ for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ esac; \
+ if test -f $$file; then d=.; else d=$(srcdir); fi; \
+ file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \
+ for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \
+ $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
+ if test -f $$ifile; then \
+ echo "$$ifile"; \
+ else : ; fi; \
+ done; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done
+ @$(POST_INSTALL)
+ @if (install-info --version && \
+ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
+ for file in $$list; do \
+ relfile=`echo "$$file" | sed 's|^.*/||'`; \
+ echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\
+ install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
+ done; \
+ else : ; fi
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am: $(PDFS)
+ @$(NORMAL_INSTALL)
+ test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)"
+ @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done
+install-ps: install-ps-am
+
+install-ps-am: $(PSS)
+ @$(NORMAL_INSTALL)
+ test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)"
+ @list='$(PSS)'; test -n "$(psdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-aminfo \
+ maintainer-clean-generic maintainer-clean-vti
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-aminfo mostlyclean-generic mostlyclean-vti
+
+pdf: pdf-am
+
+pdf-am: $(PDFS)
+
+ps: ps-am
+
+ps-am: $(PSS)
+
+uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
+ uninstall-pdf-am uninstall-ps-am
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-aminfo clean-generic \
+ dist-info distclean distclean-generic distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-aminfo maintainer-clean-generic \
+ maintainer-clean-vti mostlyclean mostlyclean-aminfo \
+ mostlyclean-generic mostlyclean-vti pdf pdf-am ps ps-am \
+ uninstall uninstall-am uninstall-dvi-am uninstall-html-am \
+ uninstall-info-am uninstall-pdf-am uninstall-ps-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/doc/autoconf.info b/doc/autoconf.info
new file mode 100644
index 00000000..1ba3bfd7
--- /dev/null
+++ b/doc/autoconf.info
@@ -0,0 +1,25690 @@
+This is autoconf.info, produced by makeinfo version 4.13 from
+autoconf.texi.
+
+This manual (24 April 2012) is for GNU Autoconf (version 2.69), a
+package for creating scripts to configure source code packages using
+templates and an M4 macro package.
+
+ Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU Free Documentation License,
+ Version 1.3 or any later version published by the Free Software
+ Foundation; with no Invariant Sections, no Front-Cover texts, and
+ no Back-Cover Texts. A copy of the license is included in the
+ section entitled "GNU Free Documentation License."
+
+INFO-DIR-SECTION Software development
+START-INFO-DIR-ENTRY
+* Autoconf: (autoconf). Create source code configuration scripts.
+END-INFO-DIR-ENTRY
+
+INFO-DIR-SECTION Individual utilities
+START-INFO-DIR-ENTRY
+* autoscan: (autoconf)autoscan Invocation.
+ Semi-automatic `configure.ac' writing
+* ifnames: (autoconf)ifnames Invocation. Listing conditionals in source.
+* autoconf-invocation: (autoconf)autoconf Invocation.
+ How to create configuration scripts
+* autoreconf: (autoconf)autoreconf Invocation.
+ Remaking multiple `configure' scripts
+* autoheader: (autoconf)autoheader Invocation.
+ How to create configuration templates
+* autom4te: (autoconf)autom4te Invocation.
+ The Autoconf executables backbone
+* configure: (autoconf)configure Invocation. Configuring a package.
+* autoupdate: (autoconf)autoupdate Invocation.
+ Automatic update of `configure.ac'
+* config.status: (autoconf)config.status Invocation. Recreating configurations.
+* testsuite: (autoconf)testsuite Invocation. Running an Autotest test suite.
+END-INFO-DIR-ENTRY
+
+
+File: autoconf.info, Node: Top, Next: Introduction, Up: (dir)
+
+Autoconf
+********
+
+This manual (24 April 2012) is for GNU Autoconf (version 2.69), a
+package for creating scripts to configure source code packages using
+templates and an M4 macro package.
+
+ Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU Free Documentation License,
+ Version 1.3 or any later version published by the Free Software
+ Foundation; with no Invariant Sections, no Front-Cover texts, and
+ no Back-Cover Texts. A copy of the license is included in the
+ section entitled "GNU Free Documentation License."
+
+* Menu:
+
+* Introduction:: Autoconf's purpose, strengths, and weaknesses
+* The GNU Build System:: A set of tools for portable software packages
+* Making configure Scripts:: How to organize and produce Autoconf scripts
+* Setup:: Initialization and output
+* Existing Tests:: Macros that check for particular features
+* Writing Tests:: How to write new feature checks
+* Results:: What to do with results from feature checks
+* Programming in M4:: Layers on top of which Autoconf is written
+* Programming in M4sh:: Shell portability layer
+* Writing Autoconf Macros:: Adding new macros to Autoconf
+* Portable Shell:: Shell script portability pitfalls
+* Portable Make:: Makefile portability pitfalls
+* Portable C and C++:: C and C++ portability pitfalls
+* Manual Configuration:: Selecting features that can't be guessed
+* Site Configuration:: Local defaults for `configure'
+* Running configure Scripts:: How to use the Autoconf output
+* config.status Invocation:: Recreating a configuration
+* Obsolete Constructs:: Kept for backward compatibility
+* Using Autotest:: Creating portable test suites
+* FAQ:: Frequent Autoconf Questions, with answers
+* History:: History of Autoconf
+* GNU Free Documentation License:: License for copying this manual
+* Indices:: Indices of symbols, concepts, etc.
+
+ --- The Detailed Node Listing ---
+
+The GNU Build System
+
+* Automake:: Escaping makefile hell
+* Gnulib:: The GNU portability library
+* Libtool:: Building libraries portably
+* Pointers:: More info on the GNU build system
+
+Making `configure' Scripts
+
+* Writing Autoconf Input:: What to put in an Autoconf input file
+* autoscan Invocation:: Semi-automatic `configure.ac' writing
+* ifnames Invocation:: Listing the conditionals in source code
+* autoconf Invocation:: How to create configuration scripts
+* autoreconf Invocation:: Remaking multiple `configure' scripts
+
+Writing `configure.ac'
+
+* Shell Script Compiler:: Autoconf as solution of a problem
+* Autoconf Language:: Programming in Autoconf
+* Autoconf Input Layout:: Standard organization of `configure.ac'
+
+Initialization and Output Files
+
+* Initializing configure:: Option processing etc.
+* Versioning:: Dealing with Autoconf versions
+* Notices:: Copyright, version numbers in `configure'
+* Input:: Where Autoconf should find files
+* Output:: Outputting results from the configuration
+* Configuration Actions:: Preparing the output based on results
+* Configuration Files:: Creating output files
+* Makefile Substitutions:: Using output variables in makefiles
+* Configuration Headers:: Creating a configuration header file
+* Configuration Commands:: Running arbitrary instantiation commands
+* Configuration Links:: Links depending on the configuration
+* Subdirectories:: Configuring independent packages together
+* Default Prefix:: Changing the default installation prefix
+
+Substitutions in Makefiles
+
+* Preset Output Variables:: Output variables that are always set
+* Installation Directory Variables:: Other preset output variables
+* Changed Directory Variables:: Warnings about `datarootdir'
+* Build Directories:: Supporting multiple concurrent compiles
+* Automatic Remaking:: Makefile rules for configuring
+
+Configuration Header Files
+
+* Header Templates:: Input for the configuration headers
+* autoheader Invocation:: How to create configuration templates
+* Autoheader Macros:: How to specify CPP templates
+
+Existing Tests
+
+* Common Behavior:: Macros' standard schemes
+* Alternative Programs:: Selecting between alternative programs
+* Files:: Checking for the existence of files
+* Libraries:: Library archives that might be missing
+* Library Functions:: C library functions that might be missing
+* Header Files:: Header files that might be missing
+* Declarations:: Declarations that may be missing
+* Structures:: Structures or members that might be missing
+* Types:: Types that might be missing
+* Compilers and Preprocessors:: Checking for compiling programs
+* System Services:: Operating system services
+* Posix Variants:: Special kludges for specific Posix variants
+* Erlang Libraries:: Checking for the existence of Erlang libraries
+
+Common Behavior
+
+* Standard Symbols:: Symbols defined by the macros
+* Default Includes:: Includes used by the generic macros
+
+Alternative Programs
+
+* Particular Programs:: Special handling to find certain programs
+* Generic Programs:: How to find other programs
+
+Library Functions
+
+* Function Portability:: Pitfalls with usual functions
+* Particular Functions:: Special handling to find certain functions
+* Generic Functions:: How to find other functions
+
+Header Files
+
+* Header Portability:: Collected knowledge on common headers
+* Particular Headers:: Special handling to find certain headers
+* Generic Headers:: How to find other headers
+
+Declarations
+
+* Particular Declarations:: Macros to check for certain declarations
+* Generic Declarations:: How to find other declarations
+
+Structures
+
+* Particular Structures:: Macros to check for certain structure members
+* Generic Structures:: How to find other structure members
+
+Types
+
+* Particular Types:: Special handling to find certain types
+* Generic Types:: How to find other types
+
+Compilers and Preprocessors
+
+* Specific Compiler Characteristics:: Some portability issues
+* Generic Compiler Characteristics:: Language independent tests and features
+* C Compiler:: Checking its characteristics
+* C++ Compiler:: Likewise
+* Objective C Compiler:: Likewise
+* Objective C++ Compiler:: Likewise
+* Erlang Compiler and Interpreter:: Likewise
+* Fortran Compiler:: Likewise
+* Go Compiler:: Likewise
+
+Writing Tests
+
+* Language Choice:: Selecting which language to use for testing
+* Writing Test Programs:: Forging source files for compilers
+* Running the Preprocessor:: Detecting preprocessor symbols
+* Running the Compiler:: Detecting language or header features
+* Running the Linker:: Detecting library features
+* Runtime:: Testing for runtime features
+* Systemology:: A zoology of operating systems
+* Multiple Cases:: Tests for several possible values
+
+Writing Test Programs
+
+* Guidelines:: General rules for writing test programs
+* Test Functions:: Avoiding pitfalls in test programs
+* Generating Sources:: Source program boilerplate
+
+Results of Tests
+
+* Defining Symbols:: Defining C preprocessor symbols
+* Setting Output Variables:: Replacing variables in output files
+* Special Chars in Variables:: Characters to beware of in variables
+* Caching Results:: Speeding up subsequent `configure' runs
+* Printing Messages:: Notifying `configure' users
+
+Caching Results
+
+* Cache Variable Names:: Shell variables used in caches
+* Cache Files:: Files `configure' uses for caching
+* Cache Checkpointing:: Loading and saving the cache file
+
+Programming in M4
+
+* M4 Quotation:: Protecting macros from unwanted expansion
+* Using autom4te:: The Autoconf executables backbone
+* Programming in M4sugar:: Convenient pure M4 macros
+* Debugging via autom4te:: Figuring out what M4 was doing
+
+M4 Quotation
+
+* Active Characters:: Characters that change the behavior of M4
+* One Macro Call:: Quotation and one macro call
+* Quoting and Parameters:: M4 vs. shell parameters
+* Quotation and Nested Macros:: Macros calling macros
+* Changequote is Evil:: Worse than INTERCAL: M4 + changequote
+* Quadrigraphs:: Another way to escape special characters
+* Balancing Parentheses:: Dealing with unbalanced parentheses
+* Quotation Rule Of Thumb:: One parenthesis, one quote
+
+Using `autom4te'
+
+* autom4te Invocation:: A GNU M4 wrapper
+* Customizing autom4te:: Customizing the Autoconf package
+
+Programming in M4sugar
+
+* Redefined M4 Macros:: M4 builtins changed in M4sugar
+* Diagnostic Macros:: Diagnostic messages from M4sugar
+* Diversion support:: Diversions in M4sugar
+* Conditional constructs:: Conditions in M4
+* Looping constructs:: Iteration in M4
+* Evaluation Macros:: More quotation and evaluation control
+* Text processing Macros:: String manipulation in M4
+* Number processing Macros:: Arithmetic computation in M4
+* Set manipulation Macros:: Set manipulation in M4
+* Forbidden Patterns:: Catching unexpanded macros
+
+Programming in M4sh
+
+* Common Shell Constructs:: Portability layer for common shell constructs
+* Polymorphic Variables:: Support for indirect variable names
+* Initialization Macros:: Macros to establish a sane shell environment
+* File Descriptor Macros:: File descriptor macros for input and output
+
+Writing Autoconf Macros
+
+* Macro Definitions:: Basic format of an Autoconf macro
+* Macro Names:: What to call your new macros
+* Reporting Messages:: Notifying `autoconf' users
+* Dependencies Between Macros:: What to do when macros depend on other macros
+* Obsoleting Macros:: Warning about old ways of doing things
+* Coding Style:: Writing Autoconf macros a` la Autoconf
+
+Dependencies Between Macros
+
+* Prerequisite Macros:: Ensuring required information
+* Suggested Ordering:: Warning about possible ordering problems
+* One-Shot Macros:: Ensuring a macro is called only once
+
+Portable Shell Programming
+
+* Shellology:: A zoology of shells
+* Invoking the Shell:: Invoking the shell as a command
+* Here-Documents:: Quirks and tricks
+* File Descriptors:: FDs and redirections
+* Signal Handling:: Shells, signals, and headaches
+* File System Conventions:: File names
+* Shell Pattern Matching:: Pattern matching
+* Shell Substitutions:: Variable and command expansions
+* Assignments:: Varying side effects of assignments
+* Parentheses:: Parentheses in shell scripts
+* Slashes:: Slashes in shell scripts
+* Special Shell Variables:: Variables you should not change
+* Shell Functions:: What to look out for if you use them
+* Limitations of Builtins:: Portable use of not so portable /bin/sh
+* Limitations of Usual Tools:: Portable use of portable tools
+
+Portable Make Programming
+
+* $< in Ordinary Make Rules:: $< in ordinary rules
+* Failure in Make Rules:: Failing portably in rules
+* Special Chars in Names:: Special Characters in Macro Names
+* Backslash-Newline-Empty:: Empty lines after backslash-newline
+* Backslash-Newline Comments:: Spanning comments across line boundaries
+* Long Lines in Makefiles:: Line length limitations
+* Macros and Submakes:: `make macro=value' and submakes
+* The Make Macro MAKEFLAGS:: `$(MAKEFLAGS)' portability issues
+* The Make Macro SHELL:: `$(SHELL)' portability issues
+* Parallel Make:: Parallel `make' quirks
+* Comments in Make Rules:: Other problems with Make comments
+* Newlines in Make Rules:: Using literal newlines in rules
+* Comments in Make Macros:: Other problems with Make comments in macros
+* Trailing whitespace in Make Macros:: Macro substitution problems
+* Command-line Macros and whitespace:: Whitespace trimming of values
+* obj/ and Make:: Don't name a subdirectory `obj'
+* make -k Status:: Exit status of `make -k'
+* VPATH and Make:: `VPATH' woes
+* Single Suffix Rules:: Single suffix rules and separated dependencies
+* Timestamps and Make:: Subsecond timestamp resolution
+
+`VPATH' and Make
+
+* Variables listed in VPATH:: `VPATH' must be literal on ancient hosts
+* VPATH and Double-colon:: Problems with `::' on ancient hosts
+* $< in Explicit Rules:: `$<' does not work in ordinary rules
+* Automatic Rule Rewriting:: `VPATH' goes wild on Solaris
+* Tru64 Directory Magic:: `mkdir' goes wild on Tru64
+* Make Target Lookup:: More details about `VPATH' lookup
+
+Portable C and C++ Programming
+
+* Varieties of Unportability:: How to make your programs unportable
+* Integer Overflow:: When integers get too large
+* Preprocessor Arithmetic:: `#if' expression problems
+* Null Pointers:: Properties of null pointers
+* Buffer Overruns:: Subscript errors and the like
+* Volatile Objects:: `volatile' and signals
+* Floating Point Portability:: Portable floating-point arithmetic
+* Exiting Portably:: Exiting and the exit status
+
+Integer Overflow
+
+* Integer Overflow Basics:: Why integer overflow is a problem
+* Signed Overflow Examples:: Examples of code assuming wraparound
+* Optimization and Wraparound:: Optimizations that break uses of wraparound
+* Signed Overflow Advice:: Practical advice for signed overflow issues
+* Signed Integer Division:: `INT_MIN / -1' and `INT_MIN % -1'
+
+Manual Configuration
+
+* Specifying Target Triplets:: Specifying target triplets
+* Canonicalizing:: Getting the canonical system type
+* Using System Type:: What to do with the system type
+
+Site Configuration
+
+* Help Formatting:: Customizing `configure --help'
+* External Software:: Working with other optional software
+* Package Options:: Selecting optional features
+* Pretty Help Strings:: Formatting help string
+* Option Checking:: Controlling checking of `configure' options
+* Site Details:: Configuring site details
+* Transforming Names:: Changing program names when installing
+* Site Defaults:: Giving `configure' local defaults
+
+Transforming Program Names When Installing
+
+* Transformation Options:: `configure' options to transform names
+* Transformation Examples:: Sample uses of transforming names
+* Transformation Rules:: Makefile uses of transforming names
+
+Running `configure' Scripts
+
+* Basic Installation:: Instructions for typical cases
+* Compilers and Options:: Selecting compilers and optimization
+* Multiple Architectures:: Compiling for multiple architectures at once
+* Installation Names:: Installing in different directories
+* Optional Features:: Selecting optional features
+* Particular Systems:: Particular systems
+* System Type:: Specifying the system type
+* Sharing Defaults:: Setting site-wide defaults for `configure'
+* Defining Variables:: Specifying the compiler etc.
+* configure Invocation:: Changing how `configure' runs
+
+Obsolete Constructs
+
+* Obsolete config.status Use:: Obsolete convention for `config.status'
+* acconfig Header:: Additional entries in `config.h.in'
+* autoupdate Invocation:: Automatic update of `configure.ac'
+* Obsolete Macros:: Backward compatibility macros
+* Autoconf 1:: Tips for upgrading your files
+* Autoconf 2.13:: Some fresher tips
+
+Upgrading From Version 1
+
+* Changed File Names:: Files you might rename
+* Changed Makefiles:: New things to put in `Makefile.in'
+* Changed Macros:: Macro calls you might replace
+* Changed Results:: Changes in how to check test results
+* Changed Macro Writing:: Better ways to write your own macros
+
+Upgrading From Version 2.13
+
+* Changed Quotation:: Broken code which used to work
+* New Macros:: Interaction with foreign macros
+* Hosts and Cross-Compilation:: Bugward compatibility kludges
+* AC_LIBOBJ vs LIBOBJS:: LIBOBJS is a forbidden token
+* AC_ACT_IFELSE vs AC_TRY_ACT:: A more generic scheme for testing sources
+
+Generating Test Suites with Autotest
+
+* Using an Autotest Test Suite:: Autotest and the user
+* Writing Testsuites:: Autotest macros
+* testsuite Invocation:: Running `testsuite' scripts
+* Making testsuite Scripts:: Using autom4te to create `testsuite'
+
+Using an Autotest Test Suite
+
+* testsuite Scripts:: The concepts of Autotest
+* Autotest Logs:: Their contents
+
+Frequent Autoconf Questions, with answers
+
+* Distributing:: Distributing `configure' scripts
+* Why GNU M4:: Why not use the standard M4?
+* Bootstrapping:: Autoconf and GNU M4 require each other?
+* Why Not Imake:: Why GNU uses `configure' instead of Imake
+* Defining Directories:: Passing `datadir' to program
+* Autom4te Cache:: What is it? Can I remove it?
+* Present But Cannot Be Compiled:: Compiler and Preprocessor Disagree
+* Expanded Before Required:: Expanded Before Required
+* Debugging:: Debugging `configure' scripts
+
+History of Autoconf
+
+* Genesis:: Prehistory and naming of `configure'
+* Exodus:: The plagues of M4 and Perl
+* Leviticus:: The priestly code of portability arrives
+* Numbers:: Growth and contributors
+* Deuteronomy:: Approaching the promises of easy configuration
+
+Indices
+
+* Environment Variable Index:: Index of environment variables used
+* Output Variable Index:: Index of variables set in output files
+* Preprocessor Symbol Index:: Index of C preprocessor symbols defined
+* Cache Variable Index:: Index of documented cache variables
+* Autoconf Macro Index:: Index of Autoconf macros
+* M4 Macro Index:: Index of M4, M4sugar, and M4sh macros
+* Autotest Macro Index:: Index of Autotest macros
+* Program & Function Index:: Index of those with portability problems
+* Concept Index:: General index
+
+
+File: autoconf.info, Node: Introduction, Next: The GNU Build System, Prev: Top, Up: Top
+
+1 Introduction
+**************
+
+ A physicist, an engineer, and a computer scientist were discussing the
+ nature of God. "Surely a Physicist," said the physicist, "because
+ early in the Creation, God made Light; and you know, Maxwell's
+ equations, the dual nature of electromagnetic waves, the relativistic
+ consequences..." "An Engineer!," said the engineer, "because
+before making Light, God split the Chaos into Land and Water; it takes a
+ hell of an engineer to handle that big amount of mud, and orderly
+ separation of solids from liquids..." The computer scientist
+ shouted: "And the Chaos, where do you think it was coming from, hmm?"
+
+ --Anonymous
+
+ Autoconf is a tool for producing shell scripts that automatically
+configure software source code packages to adapt to many kinds of
+Posix-like systems. The configuration scripts produced by Autoconf are
+independent of Autoconf when they are run, so their users do not need
+to have Autoconf.
+
+ The configuration scripts produced by Autoconf require no manual user
+intervention when run; they do not normally even need an argument
+specifying the system type. Instead, they individually test for the
+presence of each feature that the software package they are for might
+need. (Before each check, they print a one-line message stating what
+they are checking for, so the user doesn't get too bored while waiting
+for the script to finish.) As a result, they deal well with systems
+that are hybrids or customized from the more common Posix variants.
+There is no need to maintain files that list the features supported by
+each release of each variant of Posix.
+
+ For each software package that Autoconf is used with, it creates a
+configuration script from a template file that lists the system features
+that the package needs or can use. After the shell code to recognize
+and respond to a system feature has been written, Autoconf allows it to
+be shared by many software packages that can use (or need) that feature.
+If it later turns out that the shell code needs adjustment for some
+reason, it needs to be changed in only one place; all of the
+configuration scripts can be regenerated automatically to take advantage
+of the updated code.
+
+ Those who do not understand Autoconf are condemned to reinvent it,
+poorly. The primary goal of Autoconf is making the _user's_ life
+easier; making the _maintainer's_ life easier is only a secondary goal.
+Put another way, the primary goal is not to make the generation of
+`configure' automatic for package maintainers (although patches along
+that front are welcome, since package maintainers form the user base of
+Autoconf); rather, the goal is to make `configure' painless, portable,
+and predictable for the end user of each "autoconfiscated" package.
+And to this degree, Autoconf is highly successful at its goal -- most
+complaints to the Autoconf list are about difficulties in writing
+Autoconf input, and not in the behavior of the resulting `configure'.
+Even packages that don't use Autoconf will generally provide a
+`configure' script, and the most common complaint about these
+alternative home-grown scripts is that they fail to meet one or more of
+the GNU Coding Standards (*note Configuration:
+(standards)Configuration.) that users have come to expect from
+Autoconf-generated `configure' scripts.
+
+ The Metaconfig package is similar in purpose to Autoconf, but the
+scripts it produces require manual user intervention, which is quite
+inconvenient when configuring large source trees. Unlike Metaconfig
+scripts, Autoconf scripts can support cross-compiling, if some care is
+taken in writing them.
+
+ Autoconf does not solve all problems related to making portable
+software packages--for a more complete solution, it should be used in
+concert with other GNU build tools like Automake and Libtool. These
+other tools take on jobs like the creation of a portable, recursive
+makefile with all of the standard targets, linking of shared libraries,
+and so on. *Note The GNU Build System::, for more information.
+
+ Autoconf imposes some restrictions on the names of macros used with
+`#if' in C programs (*note Preprocessor Symbol Index::).
+
+ Autoconf requires GNU M4 version 1.4.6 or later in order to generate
+the scripts. It uses features that some versions of M4, including GNU
+M4 1.3, do not have. Autoconf works better with GNU M4 version 1.4.14
+or later, though this is not required.
+
+ *Note Autoconf 1::, for information about upgrading from version 1.
+*Note History::, for the story of Autoconf's development. *Note FAQ::,
+for answers to some common questions about Autoconf.
+
+ See the Autoconf web page (http://www.gnu.org/software/autoconf/)
+for up-to-date information, details on the mailing lists, pointers to a
+list of known bugs, etc.
+
+ Mail suggestions to the Autoconf mailing list <autoconf@gnu.org>.
+Past suggestions are archived
+(http://lists.gnu.org/archive/html/autoconf/).
+
+ Mail bug reports to the Autoconf Bugs mailing list
+<bug-autoconf@gnu.org>. Past bug reports are archived
+(http://lists.gnu.org/archive/html/bug-autoconf/).
+
+ If possible, first check that your bug is not already solved in
+current development versions, and that it has not been reported yet.
+Be sure to include all the needed information and a short
+`configure.ac' that demonstrates the problem.
+
+ Autoconf's development tree is accessible via `git'; see the
+Autoconf Summary (http://savannah.gnu.org/projects/autoconf/) for
+details, or view the actual repository
+(http://git.sv.gnu.org/gitweb/?p=autoconf.git). Anonymous CVS access
+is also available, see `README' for more details. Patches relative to
+the current `git' version can be sent for review to the Autoconf
+Patches mailing list <autoconf-patches@gnu.org>, with discussion on
+prior patches archived
+(http://lists.gnu.org/archive/html/autoconf-patches/); and all commits
+are posted in the read-only Autoconf Commit mailing list
+<autoconf-commit@gnu.org>, which is also archived
+(http://lists.gnu.org/archive/html/autoconf-commit/).
+
+ Because of its mission, the Autoconf package itself includes only a
+set of often-used macros that have already demonstrated their
+usefulness. Nevertheless, if you wish to share your macros, or find
+existing ones, see the Autoconf Macro Archive
+(http://www.gnu.org/software/autoconf-archive/), which is kindly run by
+Peter Simons <simons@cryp.to>.
+
+
+File: autoconf.info, Node: The GNU Build System, Next: Making configure Scripts, Prev: Introduction, Up: Top
+
+2 The GNU Build System
+**********************
+
+Autoconf solves an important problem--reliable discovery of
+system-specific build and runtime information--but this is only one
+piece of the puzzle for the development of portable software. To this
+end, the GNU project has developed a suite of integrated utilities to
+finish the job Autoconf started: the GNU build system, whose most
+important components are Autoconf, Automake, and Libtool. In this
+chapter, we introduce you to those tools, point you to sources of more
+information, and try to convince you to use the entire GNU build system
+for your software.
+
+* Menu:
+
+* Automake:: Escaping makefile hell
+* Gnulib:: The GNU portability library
+* Libtool:: Building libraries portably
+* Pointers:: More info on the GNU build system
+
+
+File: autoconf.info, Node: Automake, Next: Gnulib, Up: The GNU Build System
+
+2.1 Automake
+============
+
+The ubiquity of `make' means that a makefile is almost the only viable
+way to distribute automatic build rules for software, but one quickly
+runs into its numerous limitations. Its lack of support for automatic
+dependency tracking, recursive builds in subdirectories, reliable
+timestamps (e.g., for network file systems), and so on, mean that
+developers must painfully (and often incorrectly) reinvent the wheel
+for each project. Portability is non-trivial, thanks to the quirks of
+`make' on many systems. On top of all this is the manual labor
+required to implement the many standard targets that users have come to
+expect (`make install', `make distclean', `make uninstall', etc.).
+Since you are, of course, using Autoconf, you also have to insert
+repetitive code in your `Makefile.in' to recognize `@CC@', `@CFLAGS@',
+and other substitutions provided by `configure'. Into this mess steps
+"Automake".
+
+ Automake allows you to specify your build needs in a `Makefile.am'
+file with a vastly simpler and more powerful syntax than that of a plain
+makefile, and then generates a portable `Makefile.in' for use with
+Autoconf. For example, the `Makefile.am' to build and install a simple
+"Hello world" program might look like:
+
+ bin_PROGRAMS = hello
+ hello_SOURCES = hello.c
+
+The resulting `Makefile.in' (~400 lines) automatically supports all the
+standard targets, the substitutions provided by Autoconf, automatic
+dependency tracking, `VPATH' building, and so on. `make' builds the
+`hello' program, and `make install' installs it in `/usr/local/bin' (or
+whatever prefix was given to `configure', if not `/usr/local').
+
+ The benefits of Automake increase for larger packages (especially
+ones with subdirectories), but even for small programs the added
+convenience and portability can be substantial. And that's not all...
+
+
+File: autoconf.info, Node: Gnulib, Next: Libtool, Prev: Automake, Up: The GNU Build System
+
+2.2 Gnulib
+==========
+
+GNU software has a well-deserved reputation for running on many
+different types of systems. While our primary goal is to write
+software for the GNU system, many users and developers have been
+introduced to us through the systems that they were already using.
+
+ Gnulib is a central location for common GNU code, intended to be
+shared among free software packages. Its components are typically
+shared at the source level, rather than being a library that gets built,
+installed, and linked against. The idea is to copy files from Gnulib
+into your own source tree. There is no distribution tarball; developers
+should just grab source modules from the repository. The source files
+are available online, under various licenses, mostly GNU GPL or GNU
+LGPL.
+
+ Gnulib modules typically contain C source code along with Autoconf
+macros used to configure the source code. For example, the Gnulib
+`stdbool' module implements a `stdbool.h' header that nearly conforms
+to C99, even on old-fashioned hosts that lack `stdbool.h'. This module
+contains a source file for the replacement header, along with an
+Autoconf macro that arranges to use the replacement header on
+old-fashioned systems.
+
+
+File: autoconf.info, Node: Libtool, Next: Pointers, Prev: Gnulib, Up: The GNU Build System
+
+2.3 Libtool
+===========
+
+Often, one wants to build not only programs, but libraries, so that
+other programs can benefit from the fruits of your labor. Ideally, one
+would like to produce _shared_ (dynamically linked) libraries, which
+can be used by multiple programs without duplication on disk or in
+memory and can be updated independently of the linked programs.
+Producing shared libraries portably, however, is the stuff of
+nightmares--each system has its own incompatible tools, compiler flags,
+and magic incantations. Fortunately, GNU provides a solution:
+"Libtool".
+
+ Libtool handles all the requirements of building shared libraries for
+you, and at this time seems to be the _only_ way to do so with any
+portability. It also handles many other headaches, such as: the
+interaction of Make rules with the variable suffixes of shared
+libraries, linking reliably with shared libraries before they are
+installed by the superuser, and supplying a consistent versioning system
+(so that different versions of a library can be installed or upgraded
+without breaking binary compatibility). Although Libtool, like
+Autoconf, can be used without Automake, it is most simply utilized in
+conjunction with Automake--there, Libtool is used automatically
+whenever shared libraries are needed, and you need not know its syntax.
+
+
+File: autoconf.info, Node: Pointers, Prev: Libtool, Up: The GNU Build System
+
+2.4 Pointers
+============
+
+Developers who are used to the simplicity of `make' for small projects
+on a single system might be daunted at the prospect of learning to use
+Automake and Autoconf. As your software is distributed to more and
+more users, however, you otherwise quickly find yourself putting lots
+of effort into reinventing the services that the GNU build tools
+provide, and making the same mistakes that they once made and overcame.
+(Besides, since you're already learning Autoconf, Automake is a piece
+of cake.)
+
+ There are a number of places that you can go to for more information
+on the GNU build tools.
+
+ - Web
+
+ The project home pages for Autoconf
+ (http://www.gnu.org/software/autoconf/), Automake
+ (http://www.gnu.org/software/automake/), Gnulib
+ (http://www.gnu.org/software/gnulib/), and Libtool
+ (http://www.gnu.org/software/libtool/).
+
+ - Automake Manual
+
+ *Note Automake: (automake)Top, for more information on Automake.
+
+ - Books
+
+ The book `GNU Autoconf, Automake and Libtool'(1) describes the
+ complete GNU build environment. You can also find the entire book
+ on-line (http://sources.redhat.com/autobook/).
+
+
+ ---------- Footnotes ----------
+
+ (1) `GNU Autoconf, Automake and Libtool', by G. V. Vaughan, B.
+Elliston, T. Tromey, and I. L. Taylor. SAMS (originally New Riders),
+2000, ISBN 1578701902.
+
+
+File: autoconf.info, Node: Making configure Scripts, Next: Setup, Prev: The GNU Build System, Up: Top
+
+3 Making `configure' Scripts
+****************************
+
+The configuration scripts that Autoconf produces are by convention
+called `configure'. When run, `configure' creates several files,
+replacing configuration parameters in them with appropriate values.
+The files that `configure' creates are:
+
+ - one or more `Makefile' files, usually one in each subdirectory of
+ the package (*note Makefile Substitutions::);
+
+ - optionally, a C header file, the name of which is configurable,
+ containing `#define' directives (*note Configuration Headers::);
+
+ - a shell script called `config.status' that, when run, recreates
+ the files listed above (*note config.status Invocation::);
+
+ - an optional shell script normally called `config.cache' (created
+ when using `configure --config-cache') that saves the results of
+ running many of the tests (*note Cache Files::);
+
+ - a file called `config.log' containing any messages produced by
+ compilers, to help debugging if `configure' makes a mistake.
+
+ To create a `configure' script with Autoconf, you need to write an
+Autoconf input file `configure.ac' (or `configure.in') and run
+`autoconf' on it. If you write your own feature tests to supplement
+those that come with Autoconf, you might also write files called
+`aclocal.m4' and `acsite.m4'. If you use a C header file to contain
+`#define' directives, you might also run `autoheader', and you can
+distribute the generated file `config.h.in' with the package.
+
+ Here is a diagram showing how the files that can be used in
+configuration are produced. Programs that are executed are suffixed by
+`*'. Optional files are enclosed in square brackets (`[]').
+`autoconf' and `autoheader' also read the installed Autoconf macro
+files (by reading `autoconf.m4').
+
+Files used in preparing a software package for distribution, when using
+just Autoconf:
+ your source files --> [autoscan*] --> [configure.scan] --> configure.ac
+
+ configure.ac --.
+ | .------> autoconf* -----> configure
+ [aclocal.m4] --+---+
+ | `-----> [autoheader*] --> [config.h.in]
+ [acsite.m4] ---'
+
+ Makefile.in
+
+Additionally, if you use Automake, the following additional productions
+come into play:
+
+ [acinclude.m4] --.
+ |
+ [local macros] --+--> aclocal* --> aclocal.m4
+ |
+ configure.ac ----'
+
+ configure.ac --.
+ +--> automake* --> Makefile.in
+ Makefile.am ---'
+
+Files used in configuring a software package:
+ .-------------> [config.cache]
+ configure* ------------+-------------> config.log
+ |
+ [config.h.in] -. v .-> [config.h] -.
+ +--> config.status* -+ +--> make*
+ Makefile.in ---' `-> Makefile ---'
+
+* Menu:
+
+* Writing Autoconf Input:: What to put in an Autoconf input file
+* autoscan Invocation:: Semi-automatic `configure.ac' writing
+* ifnames Invocation:: Listing the conditionals in source code
+* autoconf Invocation:: How to create configuration scripts
+* autoreconf Invocation:: Remaking multiple `configure' scripts
+
+
+File: autoconf.info, Node: Writing Autoconf Input, Next: autoscan Invocation, Up: Making configure Scripts
+
+3.1 Writing `configure.ac'
+==========================
+
+To produce a `configure' script for a software package, create a file
+called `configure.ac' that contains invocations of the Autoconf macros
+that test the system features your package needs or can use. Autoconf
+macros already exist to check for many features; see *note Existing
+Tests::, for their descriptions. For most other features, you can use
+Autoconf template macros to produce custom checks; see *note Writing
+Tests::, for information about them. For especially tricky or
+specialized features, `configure.ac' might need to contain some
+hand-crafted shell commands; see *note Portable Shell Programming:
+Portable Shell. The `autoscan' program can give you a good start in
+writing `configure.ac' (*note autoscan Invocation::, for more
+information).
+
+ Previous versions of Autoconf promoted the name `configure.in',
+which is somewhat ambiguous (the tool needed to process this file is not
+described by its extension), and introduces a slight confusion with
+`config.h.in' and so on (for which `.in' means "to be processed by
+`configure'"). Using `configure.ac' is now preferred.
+
+* Menu:
+
+* Shell Script Compiler:: Autoconf as solution of a problem
+* Autoconf Language:: Programming in Autoconf
+* Autoconf Input Layout:: Standard organization of `configure.ac'
+
+
+File: autoconf.info, Node: Shell Script Compiler, Next: Autoconf Language, Up: Writing Autoconf Input
+
+3.1.1 A Shell Script Compiler
+-----------------------------
+
+Just as for any other computer language, in order to properly program
+`configure.ac' in Autoconf you must understand _what_ problem the
+language tries to address and _how_ it does so.
+
+ The problem Autoconf addresses is that the world is a mess. After
+all, you are using Autoconf in order to have your package compile
+easily on all sorts of different systems, some of them being extremely
+hostile. Autoconf itself bears the price for these differences:
+`configure' must run on all those systems, and thus `configure' must
+limit itself to their lowest common denominator of features.
+
+ Naturally, you might then think of shell scripts; who needs
+`autoconf'? A set of properly written shell functions is enough to
+make it easy to write `configure' scripts by hand. Sigh!
+Unfortunately, even in 2008, where shells without any function support
+are far and few between, there are pitfalls to avoid when making use of
+them. Also, finding a Bourne shell that accepts shell functions is not
+trivial, even though there is almost always one on interesting porting
+targets.
+
+ So, what is really needed is some kind of compiler, `autoconf', that
+takes an Autoconf program, `configure.ac', and transforms it into a
+portable shell script, `configure'.
+
+ How does `autoconf' perform this task?
+
+ There are two obvious possibilities: creating a brand new language or
+extending an existing one. The former option is attractive: all sorts
+of optimizations could easily be implemented in the compiler and many
+rigorous checks could be performed on the Autoconf program (e.g.,
+rejecting any non-portable construct). Alternatively, you can extend
+an existing language, such as the `sh' (Bourne shell) language.
+
+ Autoconf does the latter: it is a layer on top of `sh'. It was
+therefore most convenient to implement `autoconf' as a macro expander:
+a program that repeatedly performs "macro expansions" on text input,
+replacing macro calls with macro bodies and producing a pure `sh'
+script in the end. Instead of implementing a dedicated Autoconf macro
+expander, it is natural to use an existing general-purpose macro
+language, such as M4, and implement the extensions as a set of M4
+macros.
+
+
+File: autoconf.info, Node: Autoconf Language, Next: Autoconf Input Layout, Prev: Shell Script Compiler, Up: Writing Autoconf Input
+
+3.1.2 The Autoconf Language
+---------------------------
+
+The Autoconf language differs from many other computer languages
+because it treats actual code the same as plain text. Whereas in C,
+for instance, data and instructions have different syntactic status, in
+Autoconf their status is rigorously the same. Therefore, we need a
+means to distinguish literal strings from text to be expanded:
+quotation.
+
+ When calling macros that take arguments, there must not be any white
+space between the macro name and the open parenthesis.
+
+ AC_INIT ([oops], [1.0]) # incorrect
+ AC_INIT([hello], [1.0]) # good
+
+ Arguments should be enclosed within the quote characters `[' and
+`]', and be separated by commas. Any leading blanks or newlines in
+arguments are ignored, unless they are quoted. You should always quote
+an argument that might contain a macro name, comma, parenthesis, or a
+leading blank or newline. This rule applies recursively for every macro
+call, including macros called from other macros. For more details on
+quoting rules, see *note Programming in M4::.
+
+ For instance:
+
+ AC_CHECK_HEADER([stdio.h],
+ [AC_DEFINE([HAVE_STDIO_H], [1],
+ [Define to 1 if you have <stdio.h>.])],
+ [AC_MSG_ERROR([sorry, can't do anything for you])])
+
+is quoted properly. You may safely simplify its quotation to:
+
+ AC_CHECK_HEADER([stdio.h],
+ [AC_DEFINE([HAVE_STDIO_H], 1,
+ [Define to 1 if you have <stdio.h>.])],
+ [AC_MSG_ERROR([sorry, can't do anything for you])])
+
+because `1' cannot contain a macro call. Here, the argument of
+`AC_MSG_ERROR' must be quoted; otherwise, its comma would be
+interpreted as an argument separator. Also, the second and third
+arguments of `AC_CHECK_HEADER' must be quoted, since they contain macro
+calls. The three arguments `HAVE_STDIO_H', `stdio.h', and `Define to 1
+if you have <stdio.h>.' do not need quoting, but if you unwisely
+defined a macro with a name like `Define' or `stdio' then they would
+need quoting. Cautious Autoconf users would keep the quotes, but many
+Autoconf users find such precautions annoying, and would rewrite the
+example as follows:
+
+ AC_CHECK_HEADER(stdio.h,
+ [AC_DEFINE(HAVE_STDIO_H, 1,
+ [Define to 1 if you have <stdio.h>.])],
+ [AC_MSG_ERROR([sorry, can't do anything for you])])
+
+This is safe, so long as you adopt good naming conventions and do not
+define macros with names like `HAVE_STDIO_H', `stdio', or `h'. Though
+it is also safe here to omit the quotes around `Define to 1 if you have
+<stdio.h>.' this is not recommended, as message strings are more likely
+to inadvertently contain commas.
+
+ The following example is wrong and dangerous, as it is underquoted:
+
+ AC_CHECK_HEADER(stdio.h,
+ AC_DEFINE(HAVE_STDIO_H, 1,
+ Define to 1 if you have <stdio.h>.),
+ AC_MSG_ERROR([sorry, can't do anything for you]))
+
+ In other cases, you may have to use text that also resembles a macro
+call. You must quote that text even when it is not passed as a macro
+argument. For example, these two approaches in `configure.ac' (quoting
+just the potential problems, or quoting the entire line) will protect
+your script in case autoconf ever adds a macro `AC_DC':
+
+ echo "Hard rock was here! --[AC_DC]"
+ [echo "Hard rock was here! --AC_DC"]
+
+which results in this text in `configure':
+
+ echo "Hard rock was here! --AC_DC"
+ echo "Hard rock was here! --AC_DC"
+
+When you use the same text in a macro argument, you must therefore have
+an extra quotation level (since one is stripped away by the macro
+substitution). In general, then, it is a good idea to _use double
+quoting for all literal string arguments_, either around just the
+problematic portions, or over the entire argument:
+
+ AC_MSG_WARN([[AC_DC] stinks --Iron Maiden])
+ AC_MSG_WARN([[AC_DC stinks --Iron Maiden]])
+
+ However, the above example triggers a warning about a possibly
+unexpanded macro when running `autoconf', because it collides with the
+namespace of macros reserved for the Autoconf language. To be really
+safe, you can use additional escaping (either a quadrigraph, or
+creative shell constructs) to silence that particular warning:
+
+ echo "Hard rock was here! --AC""_DC"
+ AC_MSG_WARN([[AC@&t@_DC stinks --Iron Maiden]])
+
+ You are now able to understand one of the constructs of Autoconf that
+has been continually misunderstood... The rule of thumb is that
+_whenever you expect macro expansion, expect quote expansion_; i.e.,
+expect one level of quotes to be lost. For instance:
+
+ AC_COMPILE_IFELSE(AC_LANG_SOURCE([char b[10];]), [],
+ [AC_MSG_ERROR([you lose])])
+
+is incorrect: here, the first argument of `AC_LANG_SOURCE' is `char
+b[10];' and is expanded once, which results in `char b10;'; and the
+`AC_LANG_SOURCE' is also expanded prior to being passed to
+`AC_COMPILE_IFELSE'. (There was an idiom common in Autoconf's past to
+address this issue via the M4 `changequote' primitive, but do not use
+it!) Let's take a closer look: the author meant the first argument to
+be understood as a literal, and therefore it must be quoted twice;
+likewise, the intermediate `AC_LANG_SOURCE' macro should be quoted once
+so that it is only expanded after the rest of the body of
+`AC_COMPILE_IFELSE' is in place:
+
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[char b[10];]])], [],
+ [AC_MSG_ERROR([you lose])])
+
+Voila`, you actually produce `char b[10];' this time!
+
+ On the other hand, descriptions (e.g., the last parameter of
+`AC_DEFINE' or `AS_HELP_STRING') are not literals--they are subject to
+line breaking, for example--and should not be double quoted. Even if
+these descriptions are short and are not actually broken, double
+quoting them yields weird results.
+
+ Some macros take optional arguments, which this documentation
+represents as [ARG] (not to be confused with the quote characters).
+You may just leave them empty, or use `[]' to make the emptiness of the
+argument explicit, or you may simply omit the trailing commas. The
+three lines below are equivalent:
+
+ AC_CHECK_HEADERS([stdio.h], [], [], [])
+ AC_CHECK_HEADERS([stdio.h],,,)
+ AC_CHECK_HEADERS([stdio.h])
+
+ It is best to put each macro call on its own line in `configure.ac'.
+Most of the macros don't add extra newlines; they rely on the newline
+after the macro call to terminate the commands. This approach makes
+the generated `configure' script a little easier to read by not
+inserting lots of blank lines. It is generally safe to set shell
+variables on the same line as a macro call, because the shell allows
+assignments without intervening newlines.
+
+ You can include comments in `configure.ac' files by starting them
+with the `#'. For example, it is helpful to begin `configure.ac' files
+with a line like this:
+
+ # Process this file with autoconf to produce a configure script.
+
+
+File: autoconf.info, Node: Autoconf Input Layout, Prev: Autoconf Language, Up: Writing Autoconf Input
+
+3.1.3 Standard `configure.ac' Layout
+------------------------------------
+
+The order in which `configure.ac' calls the Autoconf macros is not
+important, with a few exceptions. Every `configure.ac' must contain a
+call to `AC_INIT' before the checks, and a call to `AC_OUTPUT' at the
+end (*note Output::). Additionally, some macros rely on other macros
+having been called first, because they check previously set values of
+some variables to decide what to do. These macros are noted in the
+individual descriptions (*note Existing Tests::), and they also warn
+you when `configure' is created if they are called out of order.
+
+ To encourage consistency, here is a suggested order for calling the
+Autoconf macros. Generally speaking, the things near the end of this
+list are those that could depend on things earlier in it. For example,
+library functions could be affected by types and libraries.
+
+ Autoconf requirements
+ `AC_INIT(PACKAGE, VERSION, BUG-REPORT-ADDRESS)'
+ information on the package
+ checks for programs
+ checks for libraries
+ checks for header files
+ checks for types
+ checks for structures
+ checks for compiler characteristics
+ checks for library functions
+ checks for system services
+ `AC_CONFIG_FILES([FILE...])'
+ `AC_OUTPUT'
+
+
+File: autoconf.info, Node: autoscan Invocation, Next: ifnames Invocation, Prev: Writing Autoconf Input, Up: Making configure Scripts
+
+3.2 Using `autoscan' to Create `configure.ac'
+=============================================
+
+The `autoscan' program can help you create and/or maintain a
+`configure.ac' file for a software package. `autoscan' examines source
+files in the directory tree rooted at a directory given as a command
+line argument, or the current directory if none is given. It searches
+the source files for common portability problems and creates a file
+`configure.scan' which is a preliminary `configure.ac' for that
+package, and checks a possibly existing `configure.ac' for completeness.
+
+ When using `autoscan' to create a `configure.ac', you should
+manually examine `configure.scan' before renaming it to `configure.ac';
+it probably needs some adjustments. Occasionally, `autoscan' outputs a
+macro in the wrong order relative to another macro, so that `autoconf'
+produces a warning; you need to move such macros manually. Also, if
+you want the package to use a configuration header file, you must add a
+call to `AC_CONFIG_HEADERS' (*note Configuration Headers::). You might
+also have to change or add some `#if' directives to your program in
+order to make it work with Autoconf (*note ifnames Invocation::, for
+information about a program that can help with that job).
+
+ When using `autoscan' to maintain a `configure.ac', simply consider
+adding its suggestions. The file `autoscan.log' contains detailed
+information on why a macro is requested.
+
+ `autoscan' uses several data files (installed along with Autoconf)
+to determine which macros to output when it finds particular symbols in
+a package's source files. These data files all have the same format:
+each line consists of a symbol, one or more blanks, and the Autoconf
+macro to output if that symbol is encountered. Lines starting with `#'
+are comments.
+
+ `autoscan' accepts the following options:
+
+`--help'
+`-h'
+ Print a summary of the command line options and exit.
+
+`--version'
+`-V'
+ Print the version number of Autoconf and exit.
+
+`--verbose'
+`-v'
+ Print the names of the files it examines and the potentially
+ interesting symbols it finds in them. This output can be
+ voluminous.
+
+`--debug'
+`-d'
+ Don't remove temporary files.
+
+`--include=DIR'
+`-I DIR'
+ Append DIR to the include path. Multiple invocations accumulate.
+
+`--prepend-include=DIR'
+`-B DIR'
+ Prepend DIR to the include path. Multiple invocations accumulate.
+
+
+File: autoconf.info, Node: ifnames Invocation, Next: autoconf Invocation, Prev: autoscan Invocation, Up: Making configure Scripts
+
+3.3 Using `ifnames' to List Conditionals
+========================================
+
+`ifnames' can help you write `configure.ac' for a software package. It
+prints the identifiers that the package already uses in C preprocessor
+conditionals. If a package has already been set up to have some
+portability, `ifnames' can thus help you figure out what its
+`configure' needs to check for. It may help fill in some gaps in a
+`configure.ac' generated by `autoscan' (*note autoscan Invocation::).
+
+ `ifnames' scans all of the C source files named on the command line
+(or the standard input, if none are given) and writes to the standard
+output a sorted list of all the identifiers that appear in those files
+in `#if', `#elif', `#ifdef', or `#ifndef' directives. It prints each
+identifier on a line, followed by a space-separated list of the files
+in which that identifier occurs.
+
+`ifnames' accepts the following options:
+
+`--help'
+`-h'
+ Print a summary of the command line options and exit.
+
+`--version'
+`-V'
+ Print the version number of Autoconf and exit.
+
+
+File: autoconf.info, Node: autoconf Invocation, Next: autoreconf Invocation, Prev: ifnames Invocation, Up: Making configure Scripts
+
+3.4 Using `autoconf' to Create `configure'
+==========================================
+
+To create `configure' from `configure.ac', run the `autoconf' program
+with no arguments. `autoconf' processes `configure.ac' with the M4
+macro processor, using the Autoconf macros. If you give `autoconf' an
+argument, it reads that file instead of `configure.ac' and writes the
+configuration script to the standard output instead of to `configure'.
+If you give `autoconf' the argument `-', it reads from the standard
+input instead of `configure.ac' and writes the configuration script to
+the standard output.
+
+ The Autoconf macros are defined in several files. Some of the files
+are distributed with Autoconf; `autoconf' reads them first. Then it
+looks for the optional file `acsite.m4' in the directory that contains
+the distributed Autoconf macro files, and for the optional file
+`aclocal.m4' in the current directory. Those files can contain your
+site's or the package's own Autoconf macro definitions (*note Writing
+Autoconf Macros::, for more information). If a macro is defined in
+more than one of the files that `autoconf' reads, the last definition
+it reads overrides the earlier ones.
+
+ `autoconf' accepts the following options:
+
+`--help'
+`-h'
+ Print a summary of the command line options and exit.
+
+`--version'
+`-V'
+ Print the version number of Autoconf and exit.
+
+`--verbose'
+`-v'
+ Report processing steps.
+
+`--debug'
+`-d'
+ Don't remove the temporary files.
+
+`--force'
+`-f'
+ Remake `configure' even if newer than its input files.
+
+`--include=DIR'
+`-I DIR'
+ Append DIR to the include path. Multiple invocations accumulate.
+
+`--prepend-include=DIR'
+`-B DIR'
+ Prepend DIR to the include path. Multiple invocations accumulate.
+
+`--output=FILE'
+`-o FILE'
+ Save output (script or trace) to FILE. The file `-' stands for
+ the standard output.
+
+`--warnings=CATEGORY'
+`-W CATEGORY'
+ Report the warnings related to CATEGORY (which can actually be a
+ comma separated list). *Note Reporting Messages::, macro
+ `AC_DIAGNOSE', for a comprehensive list of categories. Special
+ values include:
+
+ `all'
+ report all the warnings
+
+ `none'
+ report none
+
+ `error'
+ treats warnings as errors
+
+ `no-CATEGORY'
+ disable warnings falling into CATEGORY
+
+ Warnings about `syntax' are enabled by default, and the environment
+ variable `WARNINGS', a comma separated list of categories, is
+ honored as well. Passing `-W CATEGORY' actually behaves as if you
+ had passed `--warnings syntax,$WARNINGS,CATEGORY'. To disable the
+ defaults and `WARNINGS', and then enable warnings about obsolete
+ constructs, use `-W none,obsolete'.
+
+ Because `autoconf' uses `autom4te' behind the scenes, it displays
+ a back trace for errors, but not for warnings; if you want them,
+ just pass `-W error'. *Note autom4te Invocation::, for some
+ examples.
+
+`--trace=MACRO[:FORMAT]'
+`-t MACRO[:FORMAT]'
+ Do not create the `configure' script, but list the calls to MACRO
+ according to the FORMAT. Multiple `--trace' arguments can be used
+ to list several macros. Multiple `--trace' arguments for a single
+ macro are not cumulative; instead, you should just make FORMAT as
+ long as needed.
+
+ The FORMAT is a regular string, with newlines if desired, and
+ several special escape codes. It defaults to `$f:$l:$n:$%'; see
+ *note autom4te Invocation::, for details on the FORMAT.
+
+`--initialization'
+`-i'
+ By default, `--trace' does not trace the initialization of the
+ Autoconf macros (typically the `AC_DEFUN' definitions). This
+ results in a noticeable speedup, but can be disabled by this
+ option.
+
+ It is often necessary to check the content of a `configure.ac' file,
+but parsing it yourself is extremely fragile and error-prone. It is
+suggested that you rely upon `--trace' to scan `configure.ac'. For
+instance, to find the list of variables that are substituted, use:
+
+ $ autoconf -t AC_SUBST
+ configure.ac:2:AC_SUBST:ECHO_C
+ configure.ac:2:AC_SUBST:ECHO_N
+ configure.ac:2:AC_SUBST:ECHO_T
+ More traces deleted
+
+The example below highlights the difference between `$@', `$*', and
+`$%'.
+
+ $ cat configure.ac
+ AC_DEFINE(This, is, [an
+ [example]])
+ $ autoconf -t 'AC_DEFINE:@: $@
+ *: $*
+ %: $%'
+ @: [This],[is],[an
+ [example]]
+ *: This,is,an
+ [example]
+ %: This:is:an [example]
+
+The FORMAT gives you a lot of freedom:
+
+ $ autoconf -t 'AC_SUBST:$$ac_subst{"$1"} = "$f:$l";'
+ $ac_subst{"ECHO_C"} = "configure.ac:2";
+ $ac_subst{"ECHO_N"} = "configure.ac:2";
+ $ac_subst{"ECHO_T"} = "configure.ac:2";
+ More traces deleted
+
+A long SEPARATOR can be used to improve the readability of complex
+structures, and to ease their parsing (for instance when no single
+character is suitable as a separator):
+
+ $ autoconf -t 'AM_MISSING_PROG:${|:::::|}*'
+ ACLOCAL|:::::|aclocal|:::::|$missing_dir
+ AUTOCONF|:::::|autoconf|:::::|$missing_dir
+ AUTOMAKE|:::::|automake|:::::|$missing_dir
+ More traces deleted
+
+
+File: autoconf.info, Node: autoreconf Invocation, Prev: autoconf Invocation, Up: Making configure Scripts
+
+3.5 Using `autoreconf' to Update `configure' Scripts
+====================================================
+
+Installing the various components of the GNU Build System can be
+tedious: running `autopoint' for Gettext, `automake' for `Makefile.in'
+etc. in each directory. It may be needed either because some tools
+such as `automake' have been updated on your system, or because some of
+the sources such as `configure.ac' have been updated, or finally,
+simply in order to install the GNU Build System in a fresh tree.
+
+ `autoreconf' runs `autoconf', `autoheader', `aclocal', `automake',
+`libtoolize', and `autopoint' (when appropriate) repeatedly to update
+the GNU Build System in the specified directories and their
+subdirectories (*note Subdirectories::). By default, it only remakes
+those files that are older than their sources. The environment
+variables `AUTOM4TE', `AUTOCONF', `AUTOHEADER', `AUTOMAKE', `ACLOCAL',
+`AUTOPOINT', `LIBTOOLIZE', `M4', and `MAKE' may be used to override the
+invocation of the respective tools.
+
+ If you install a new version of some tool, you can make `autoreconf'
+remake _all_ of the files by giving it the `--force' option.
+
+ *Note Automatic Remaking::, for Make rules to automatically rebuild
+`configure' scripts when their source files change. That method
+handles the timestamps of configuration header templates properly, but
+does not pass `--autoconf-dir=DIR' or `--localdir=DIR'.
+
+ Gettext supplies the `autopoint' command to add translation
+infrastructure to a source package. If you use `autopoint', your
+`configure.ac' should invoke both `AM_GNU_GETTEXT' and
+`AM_GNU_GETTEXT_VERSION(GETTEXT-VERSION)'. *Note Invoking the
+`autopoint' Program: (gettext)autopoint Invocation, for further details.
+
+`autoreconf' accepts the following options:
+
+`--help'
+`-h'
+ Print a summary of the command line options and exit.
+
+`--version'
+`-V'
+ Print the version number of Autoconf and exit.
+
+`--verbose'
+`-v'
+ Print the name of each directory `autoreconf' examines and the
+ commands it runs. If given two or more times, pass `--verbose' to
+ subordinate tools that support it.
+
+`--debug'
+`-d'
+ Don't remove the temporary files.
+
+`--force'
+`-f'
+ Remake even `configure' scripts and configuration headers that are
+ newer than their input files (`configure.ac' and, if present,
+ `aclocal.m4').
+
+`--install'
+`-i'
+ Install the missing auxiliary files in the package. By default,
+ files are copied; this can be changed with `--symlink'.
+
+ If deemed appropriate, this option triggers calls to `automake
+ --add-missing', `libtoolize', `autopoint', etc.
+
+`--no-recursive'
+ Do not rebuild files in subdirectories to configure (see *note
+ Subdirectories::, macro `AC_CONFIG_SUBDIRS').
+
+`--symlink'
+`-s'
+ When used with `--install', install symbolic links to the missing
+ auxiliary files instead of copying them.
+
+`--make'
+`-m'
+ When the directories were configured, update the configuration by
+ running `./config.status --recheck && ./config.status', and then
+ run `make'.
+
+`--include=DIR'
+`-I DIR'
+ Append DIR to the include path. Multiple invocations accumulate.
+ Passed on to `aclocal', `autoconf' and `autoheader' internally.
+
+`--prepend-include=DIR'
+`-B DIR'
+ Prepend DIR to the include path. Multiple invocations accumulate.
+ Passed on to `autoconf' and `autoheader' internally.
+
+`--warnings=CATEGORY'
+`-W CATEGORY'
+ Report the warnings related to CATEGORY (which can actually be a
+ comma separated list).
+
+ `cross'
+ related to cross compilation issues.
+
+ `obsolete'
+ report the uses of obsolete constructs.
+
+ `portability'
+ portability issues
+
+ `syntax'
+ dubious syntactic constructs.
+
+ `all'
+ report all the warnings
+
+ `none'
+ report none
+
+ `error'
+ treats warnings as errors
+
+ `no-CATEGORY'
+ disable warnings falling into CATEGORY
+
+ Warnings about `syntax' are enabled by default, and the environment
+ variable `WARNINGS', a comma separated list of categories, is
+ honored as well. Passing `-W CATEGORY' actually behaves as if you
+ had passed `--warnings syntax,$WARNINGS,CATEGORY'. To disable the
+ defaults and `WARNINGS', and then enable warnings about obsolete
+ constructs, use `-W none,obsolete'.
+
+ If you want `autoreconf' to pass flags that are not listed here on
+to `aclocal', set `ACLOCAL_AMFLAGS' in your `Makefile.am'. Due to a
+limitation in the Autoconf implementation these flags currently must be
+set on a single line in `Makefile.am', without any backslash-newlines.
+
+
+File: autoconf.info, Node: Setup, Next: Existing Tests, Prev: Making configure Scripts, Up: Top
+
+4 Initialization and Output Files
+*********************************
+
+Autoconf-generated `configure' scripts need some information about how
+to initialize, such as how to find the package's source files and about
+the output files to produce. The following sections describe the
+initialization and the creation of output files.
+
+* Menu:
+
+* Initializing configure:: Option processing etc.
+* Versioning:: Dealing with Autoconf versions
+* Notices:: Copyright, version numbers in `configure'
+* Input:: Where Autoconf should find files
+* Output:: Outputting results from the configuration
+* Configuration Actions:: Preparing the output based on results
+* Configuration Files:: Creating output files
+* Makefile Substitutions:: Using output variables in makefiles
+* Configuration Headers:: Creating a configuration header file
+* Configuration Commands:: Running arbitrary instantiation commands
+* Configuration Links:: Links depending on the configuration
+* Subdirectories:: Configuring independent packages together
+* Default Prefix:: Changing the default installation prefix
+
+
+File: autoconf.info, Node: Initializing configure, Next: Versioning, Up: Setup
+
+4.1 Initializing `configure'
+============================
+
+Every `configure' script must call `AC_INIT' before doing anything else
+that produces output. Calls to silent macros, such as `AC_DEFUN', may
+also occur prior to `AC_INIT', although these are generally used via
+`aclocal.m4', since that is implicitly included before the start of
+`configure.ac'. The only other required macro is `AC_OUTPUT' (*note
+Output::).
+
+ -- Macro: AC_INIT (PACKAGE, VERSION, [BUG-REPORT], [TARNAME], [URL])
+ Process any command-line arguments and perform initialization and
+ verification.
+
+ Set the name of the PACKAGE and its VERSION. These are typically
+ used in `--version' support, including that of `configure'. The
+ optional argument BUG-REPORT should be the email to which users
+ should send bug reports. The package TARNAME differs from
+ PACKAGE: the latter designates the full package name (e.g., `GNU
+ Autoconf'), while the former is meant for distribution tar ball
+ names (e.g., `autoconf'). It defaults to PACKAGE with `GNU '
+ stripped, lower-cased, and all characters other than alphanumerics
+ and underscores are changed to `-'. If provided, URL should be
+ the home page for the package.
+
+ The arguments of `AC_INIT' must be static, i.e., there should not
+ be any shell computation, quotes, or newlines, but they can be
+ computed by M4. This is because the package information strings
+ are expanded at M4 time into several contexts, and must give the
+ same text at shell time whether used in single-quoted strings,
+ double-quoted strings, quoted here-documents, or unquoted
+ here-documents. It is permissible to use `m4_esyscmd' or
+ `m4_esyscmd_s' for computing a version string that changes with
+ every commit to a version control system (in fact, Autoconf does
+ just that, for all builds of the development tree made between
+ releases).
+
+ The following M4 macros (e.g., `AC_PACKAGE_NAME'), output variables
+ (e.g., `PACKAGE_NAME'), and preprocessor symbols (e.g.,
+ `PACKAGE_NAME'), are defined by `AC_INIT':
+
+ `AC_PACKAGE_NAME', `PACKAGE_NAME'
+ Exactly PACKAGE.
+
+ `AC_PACKAGE_TARNAME', `PACKAGE_TARNAME'
+ Exactly TARNAME, possibly generated from PACKAGE.
+
+ `AC_PACKAGE_VERSION', `PACKAGE_VERSION'
+ Exactly VERSION.
+
+ `AC_PACKAGE_STRING', `PACKAGE_STRING'
+ Exactly `PACKAGE VERSION'.
+
+ `AC_PACKAGE_BUGREPORT', `PACKAGE_BUGREPORT'
+ Exactly BUG-REPORT, if one was provided. Typically an email
+ address, or URL to a bug management web page.
+
+ `AC_PACKAGE_URL', `PACKAGE_URL'
+ Exactly URL, if one was provided. If URL was empty, but
+ PACKAGE begins with `GNU ', then this defaults to
+ `http://www.gnu.org/software/TARNAME/', otherwise, no URL is
+ assumed.
+
+ If your `configure' script does its own option processing, it should
+inspect `$@' or `$*' immediately after calling `AC_INIT', because other
+Autoconf macros liberally use the `set' command to process strings, and
+this has the side effect of updating `$@' and `$*'. However, we
+suggest that you use standard macros like `AC_ARG_ENABLE' instead of
+attempting to implement your own option processing. *Note Site
+Configuration::.
+
+
+File: autoconf.info, Node: Versioning, Next: Notices, Prev: Initializing configure, Up: Setup
+
+4.2 Dealing with Autoconf versions
+==================================
+
+The following optional macros can be used to help choose the minimum
+version of Autoconf that can successfully compile a given
+`configure.ac'.
+
+ -- Macro: AC_PREREQ (VERSION)
+ Ensure that a recent enough version of Autoconf is being used. If
+ the version of Autoconf being used to create `configure' is
+ earlier than VERSION, print an error message to the standard error
+ output and exit with failure (exit status is 63). For example:
+
+ AC_PREREQ([2.69])
+
+ This macro may be used before `AC_INIT'.
+
+ -- Macro: AC_AUTOCONF_VERSION
+ This macro was introduced in Autoconf 2.62. It identifies the
+ version of Autoconf that is currently parsing the input file, in a
+ format suitable for `m4_version_compare' (*note
+ m4_version_compare::); in other words, for this release of
+ Autoconf, its value is `2.69'. One potential use of this macro is
+ for writing conditional fallbacks based on when a feature was
+ added to Autoconf, rather than using `AC_PREREQ' to require the
+ newer version of Autoconf. However, remember that the Autoconf
+ philosophy favors feature checks over version checks.
+
+ You should not expand this macro directly; use
+ `m4_defn([AC_AUTOCONF_VERSION])' instead. This is because some
+ users might have a beta version of Autoconf installed, with
+ arbitrary letters included in its version string. This means it
+ is possible for the version string to contain the name of a
+ defined macro, such that expanding `AC_AUTOCONF_VERSION' would
+ trigger the expansion of that macro during rescanning, and change
+ the version string to be different than what you intended to check.
+
+
+File: autoconf.info, Node: Notices, Next: Input, Prev: Versioning, Up: Setup
+
+4.3 Notices in `configure'
+==========================
+
+The following macros manage version numbers for `configure' scripts.
+Using them is optional.
+
+ -- Macro: AC_COPYRIGHT (COPYRIGHT-NOTICE)
+ State that, in addition to the Free Software Foundation's
+ copyright on the Autoconf macros, parts of your `configure' are
+ covered by the COPYRIGHT-NOTICE.
+
+ The COPYRIGHT-NOTICE shows up in both the head of `configure' and
+ in `configure --version'.
+
+ -- Macro: AC_REVISION (REVISION-INFO)
+ Copy revision stamp REVISION-INFO into the `configure' script,
+ with any dollar signs or double-quotes removed. This macro lets
+ you put a revision stamp from `configure.ac' into `configure'
+ without RCS or CVS changing it when you check in `configure'.
+ That way, you can determine easily which revision of
+ `configure.ac' a particular `configure' corresponds to.
+
+ For example, this line in `configure.ac':
+
+ AC_REVISION([$Revision: 1.30 $])
+
+ produces this in `configure':
+
+ #!/bin/sh
+ # From configure.ac Revision: 1.30
+
+
+File: autoconf.info, Node: Input, Next: Output, Prev: Notices, Up: Setup
+
+4.4 Finding `configure' Input
+=============================
+
+ -- Macro: AC_CONFIG_SRCDIR (UNIQUE-FILE-IN-SOURCE-DIR)
+ UNIQUE-FILE-IN-SOURCE-DIR is some file that is in the package's
+ source directory; `configure' checks for this file's existence to
+ make sure that the directory that it is told contains the source
+ code in fact does. Occasionally people accidentally specify the
+ wrong directory with `--srcdir'; this is a safety check. *Note
+ configure Invocation::, for more information.
+
+ Packages that do manual configuration or use the `install' program
+might need to tell `configure' where to find some other shell scripts
+by calling `AC_CONFIG_AUX_DIR', though the default places it looks are
+correct for most cases.
+
+ -- Macro: AC_CONFIG_AUX_DIR (DIR)
+ Use the auxiliary build tools (e.g., `install-sh', `config.sub',
+ `config.guess', Cygnus `configure', Automake and Libtool scripts,
+ etc.) that are in directory DIR. These are auxiliary files used
+ in configuration. DIR can be either absolute or relative to
+ `SRCDIR'. The default is `SRCDIR' or `SRCDIR/..' or
+ `SRCDIR/../..', whichever is the first that contains `install-sh'.
+ The other files are not checked for, so that using
+ `AC_PROG_INSTALL' does not automatically require distributing the
+ other auxiliary files. It checks for `install.sh' also, but that
+ name is obsolete because some `make' have a rule that creates
+ `install' from it if there is no makefile.
+
+ The auxiliary directory is commonly named `build-aux'. If you
+ need portability to DOS variants, do not name the auxiliary
+ directory `aux'. *Note File System Conventions::.
+
+ -- Macro: AC_REQUIRE_AUX_FILE (FILE)
+ Declares that FILE is expected in the directory defined above. In
+ Autoconf proper, this macro does nothing: its sole purpose is to be
+ traced by third-party tools to produce a list of expected auxiliary
+ files. For instance it is called by macros like `AC_PROG_INSTALL'
+ (*note Particular Programs::) or `AC_CANONICAL_BUILD' (*note
+ Canonicalizing::) to register the auxiliary files they need.
+
+ Similarly, packages that use `aclocal' should declare where local
+macros can be found using `AC_CONFIG_MACRO_DIR'.
+
+ -- Macro: AC_CONFIG_MACRO_DIR (DIR)
+ Specify DIR as the location of additional local Autoconf macros.
+ This macro is intended for use by future versions of commands like
+ `autoreconf' that trace macro calls. It should be called directly
+ from `configure.ac' so that tools that install macros for
+ `aclocal' can find the macros' declarations.
+
+ Note that if you use `aclocal' from Automake to generate
+ `aclocal.m4', you must also set `ACLOCAL_AMFLAGS = -I DIR' in your
+ top-level `Makefile.am'. Due to a limitation in the Autoconf
+ implementation of `autoreconf', these include directives currently
+ must be set on a single line in `Makefile.am', without any
+ backslash-newlines.
+
+
+File: autoconf.info, Node: Output, Next: Configuration Actions, Prev: Input, Up: Setup
+
+4.5 Outputting Files
+====================
+
+Every Autoconf script, e.g., `configure.ac', should finish by calling
+`AC_OUTPUT'. That is the macro that generates and runs
+`config.status', which in turn creates the makefiles and any other
+files resulting from configuration. This is the only required macro
+besides `AC_INIT' (*note Input::).
+
+ -- Macro: AC_OUTPUT
+ Generate `config.status' and launch it. Call this macro once, at
+ the end of `configure.ac'.
+
+ `config.status' performs all the configuration actions: all the
+ output files (see *note Configuration Files::, macro
+ `AC_CONFIG_FILES'), header files (see *note Configuration
+ Headers::, macro `AC_CONFIG_HEADERS'), commands (see *note
+ Configuration Commands::, macro `AC_CONFIG_COMMANDS'), links (see
+ *note Configuration Links::, macro `AC_CONFIG_LINKS'),
+ subdirectories to configure (see *note Subdirectories::, macro
+ `AC_CONFIG_SUBDIRS') are honored.
+
+ The location of your `AC_OUTPUT' invocation is the exact point
+ where configuration actions are taken: any code afterwards is
+ executed by `configure' once `config.status' was run. If you want
+ to bind actions to `config.status' itself (independently of
+ whether `configure' is being run), see *note Running Arbitrary
+ Configuration Commands: Configuration Commands.
+
+ Historically, the usage of `AC_OUTPUT' was somewhat different.
+*Note Obsolete Macros::, for a description of the arguments that
+`AC_OUTPUT' used to support.
+
+ If you run `make' in subdirectories, you should run it using the
+`make' variable `MAKE'. Most versions of `make' set `MAKE' to the name
+of the `make' program plus any options it was given. (But many do not
+include in it the values of any variables set on the command line, so
+those are not passed on automatically.) Some old versions of `make' do
+not set this variable. The following macro allows you to use it even
+with those versions.
+
+ -- Macro: AC_PROG_MAKE_SET
+ If the Make command, `$MAKE' if set or else `make', predefines
+ `$(MAKE)', define output variable `SET_MAKE' to be empty.
+ Otherwise, define `SET_MAKE' to a macro definition that sets
+ `$(MAKE)', such as `MAKE=make'. Calls `AC_SUBST' for `SET_MAKE'.
+
+ If you use this macro, place a line like this in each `Makefile.in'
+that runs `MAKE' on other directories:
+
+ @SET_MAKE@
+
+
+File: autoconf.info, Node: Configuration Actions, Next: Configuration Files, Prev: Output, Up: Setup
+
+4.6 Performing Configuration Actions
+====================================
+
+`configure' is designed so that it appears to do everything itself, but
+there is actually a hidden slave: `config.status'. `configure' is in
+charge of examining your system, but it is `config.status' that
+actually takes the proper actions based on the results of `configure'.
+The most typical task of `config.status' is to _instantiate_ files.
+
+ This section describes the common behavior of the four standard
+instantiating macros: `AC_CONFIG_FILES', `AC_CONFIG_HEADERS',
+`AC_CONFIG_COMMANDS' and `AC_CONFIG_LINKS'. They all have this
+prototype:
+
+ AC_CONFIG_ITEMS(TAG..., [COMMANDS], [INIT-CMDS])
+
+where the arguments are:
+
+TAG...
+ A blank-or-newline-separated list of tags, which are typically the
+ names of the files to instantiate.
+
+ You are encouraged to use literals as TAGS. In particular, you
+ should avoid
+
+ ... && my_foos="$my_foos fooo"
+ ... && my_foos="$my_foos foooo"
+ AC_CONFIG_ITEMS([$my_foos])
+
+ and use this instead:
+
+ ... && AC_CONFIG_ITEMS([fooo])
+ ... && AC_CONFIG_ITEMS([foooo])
+
+ The macros `AC_CONFIG_FILES' and `AC_CONFIG_HEADERS' use special
+ TAG values: they may have the form `OUTPUT' or `OUTPUT:INPUTS'.
+ The file OUTPUT is instantiated from its templates, INPUTS
+ (defaulting to `OUTPUT.in').
+
+ `AC_CONFIG_FILES([Makefile:boiler/top.mk:boiler/bot.mk])', for
+ example, asks for the creation of the file `Makefile' that
+ contains the expansion of the output variables in the
+ concatenation of `boiler/top.mk' and `boiler/bot.mk'.
+
+ The special value `-' might be used to denote the standard output
+ when used in OUTPUT, or the standard input when used in the
+ INPUTS. You most probably don't need to use this in
+ `configure.ac', but it is convenient when using the command line
+ interface of `./config.status', see *note config.status
+ Invocation::, for more details.
+
+ The INPUTS may be absolute or relative file names. In the latter
+ case they are first looked for in the build tree, and then in the
+ source tree. Input files should be text files, and a line length
+ below 2000 bytes should be safe.
+
+COMMANDS
+ Shell commands output literally into `config.status', and
+ associated with a tag that the user can use to tell `config.status'
+ which commands to run. The commands are run each time a TAG
+ request is given to `config.status', typically each time the file
+ `TAG' is created.
+
+ The variables set during the execution of `configure' are _not_
+ available here: you first need to set them via the INIT-CMDS.
+ Nonetheless the following variables are precomputed:
+
+ `srcdir'
+ The name of the top source directory, assuming that the
+ working directory is the top build directory. This is what
+ the `configure' option `--srcdir' sets.
+
+ `ac_top_srcdir'
+ The name of the top source directory, assuming that the
+ working directory is the current build directory.
+
+ `ac_top_build_prefix'
+ The name of the top build directory, assuming that the working
+ directory is the current build directory. It can be empty,
+ or else ends with a slash, so that you may concatenate it.
+
+ `ac_srcdir'
+ The name of the corresponding source directory, assuming that
+ the working directory is the current build directory.
+
+ `tmp'
+ The name of a temporary directory within the build tree,
+ which you can use if you need to create additional temporary
+ files. The directory is cleaned up when `config.status' is
+ done or interrupted. Please use package-specific file name
+ prefixes to avoid clashing with files that `config.status'
+ may use internally.
+
+ The "current" directory refers to the directory (or
+ pseudo-directory) containing the input part of TAGS. For
+ instance, running
+
+ AC_CONFIG_COMMANDS([deep/dir/out:in/in.in], [...], [...])
+
+ with `--srcdir=../package' produces the following values:
+
+ # Argument of --srcdir
+ srcdir='../package'
+ # Reversing deep/dir
+ ac_top_build_prefix='../../'
+ # Concatenation of $ac_top_build_prefix and srcdir
+ ac_top_srcdir='../../../package'
+ # Concatenation of $ac_top_srcdir and deep/dir
+ ac_srcdir='../../../package/deep/dir'
+
+ independently of `in/in.in'.
+
+INIT-CMDS
+ Shell commands output _unquoted_ near the beginning of
+ `config.status', and executed each time `config.status' runs
+ (regardless of the tag). Because they are unquoted, for example,
+ `$var' is output as the value of `var'. INIT-CMDS is typically
+ used by `configure' to give `config.status' some variables it
+ needs to run the COMMANDS.
+
+ You should be extremely cautious in your variable names: all the
+ INIT-CMDS share the same name space and may overwrite each other
+ in unpredictable ways. Sorry...
+
+ All these macros can be called multiple times, with different TAG
+values, of course!
+
+
+File: autoconf.info, Node: Configuration Files, Next: Makefile Substitutions, Prev: Configuration Actions, Up: Setup
+
+4.7 Creating Configuration Files
+================================
+
+Be sure to read the previous section, *note Configuration Actions::.
+
+ -- Macro: AC_CONFIG_FILES (FILE..., [CMDS], [INIT-CMDS])
+ Make `AC_OUTPUT' create each `FILE' by copying an input file (by
+ default `FILE.in'), substituting the output variable values. This
+ macro is one of the instantiating macros; see *note Configuration
+ Actions::. *Note Makefile Substitutions::, for more information
+ on using output variables. *Note Setting Output Variables::, for
+ more information on creating them. This macro creates the
+ directory that the file is in if it doesn't exist. Usually,
+ makefiles are created this way, but other files, such as
+ `.gdbinit', can be specified as well.
+
+ Typical calls to `AC_CONFIG_FILES' look like this:
+
+ AC_CONFIG_FILES([Makefile src/Makefile man/Makefile X/Imakefile])
+ AC_CONFIG_FILES([autoconf], [chmod +x autoconf])
+
+ You can override an input file name by appending to FILE a
+ colon-separated list of input files. Examples:
+
+ AC_CONFIG_FILES([Makefile:boiler/top.mk:boiler/bot.mk]
+ [lib/Makefile:boiler/lib.mk])
+
+ Doing this allows you to keep your file names acceptable to DOS
+ variants, or to prepend and/or append boilerplate to the file.
+
+
+File: autoconf.info, Node: Makefile Substitutions, Next: Configuration Headers, Prev: Configuration Files, Up: Setup
+
+4.8 Substitutions in Makefiles
+==============================
+
+Each subdirectory in a distribution that contains something to be
+compiled or installed should come with a file `Makefile.in', from which
+`configure' creates a file `Makefile' in that directory. To create
+`Makefile', `configure' performs a simple variable substitution,
+replacing occurrences of `@VARIABLE@' in `Makefile.in' with the value
+that `configure' has determined for that variable. Variables that are
+substituted into output files in this way are called "output
+variables". They are ordinary shell variables that are set in
+`configure'. To make `configure' substitute a particular variable into
+the output files, the macro `AC_SUBST' must be called with that
+variable name as an argument. Any occurrences of `@VARIABLE@' for
+other variables are left unchanged. *Note Setting Output Variables::,
+for more information on creating output variables with `AC_SUBST'.
+
+ A software package that uses a `configure' script should be
+distributed with a file `Makefile.in', but no makefile; that way, the
+user has to properly configure the package for the local system before
+compiling it.
+
+ *Note Makefile Conventions: (standards)Makefile Conventions, for
+more information on what to put in makefiles.
+
+* Menu:
+
+* Preset Output Variables:: Output variables that are always set
+* Installation Directory Variables:: Other preset output variables
+* Changed Directory Variables:: Warnings about `datarootdir'
+* Build Directories:: Supporting multiple concurrent compiles
+* Automatic Remaking:: Makefile rules for configuring
+
+
+File: autoconf.info, Node: Preset Output Variables, Next: Installation Directory Variables, Up: Makefile Substitutions
+
+4.8.1 Preset Output Variables
+-----------------------------
+
+Some output variables are preset by the Autoconf macros. Some of the
+Autoconf macros set additional output variables, which are mentioned in
+the descriptions for those macros. *Note Output Variable Index::, for a
+complete list of output variables. *Note Installation Directory
+Variables::, for the list of the preset ones related to installation
+directories. Below are listed the other preset ones, many of which are
+precious variables (*note Setting Output Variables::, `AC_ARG_VAR').
+
+ The preset variables which are available during `config.status'
+(*note Configuration Actions::) may also be used during `configure'
+tests. For example, it is permissible to reference `$srcdir' when
+constructing a list of directories to pass via option `-I' during a
+compiler feature check. When used in this manner, coupled with the
+fact that `configure' is always run from the top build directory, it is
+sufficient to use just `$srcdir' instead of `$top_srcdir'.
+
+ -- Variable: CFLAGS
+ Debugging and optimization options for the C compiler. If it is
+ not set in the environment when `configure' runs, the default
+ value is set when you call `AC_PROG_CC' (or empty if you don't).
+ `configure' uses this variable when compiling or linking programs
+ to test for C features.
+
+ If a compiler option affects only the behavior of the preprocessor
+ (e.g., `-DNAME'), it should be put into `CPPFLAGS' instead. If it
+ affects only the linker (e.g., `-LDIRECTORY'), it should be put
+ into `LDFLAGS' instead. If it affects only the compiler proper,
+ `CFLAGS' is the natural home for it. If an option affects
+ multiple phases of the compiler, though, matters get tricky. One
+ approach to put such options directly into `CC', e.g., `CC='gcc
+ -m64''. Another is to put them into both `CPPFLAGS' and
+ `LDFLAGS', but not into `CFLAGS'.
+
+ However, remember that some `Makefile' variables are reserved by
+ the GNU Coding Standards for the use of the "user"--the person
+ building the package. For instance, `CFLAGS' is one such variable.
+
+ Sometimes package developers are tempted to set user variables
+ such as `CFLAGS' because it appears to make their job easier.
+ However, the package itself should never set a user variable,
+ particularly not to include switches that are required for proper
+ compilation of the package. Since these variables are documented
+ as being for the package builder, that person rightfully expects
+ to be able to override any of these variables at build time. If
+ the package developer needs to add switches without interfering
+ with the user, the proper way to do that is to introduce an
+ additional variable. Automake makes this easy by introducing
+ `AM_CFLAGS' (*note Flag Variables Ordering: (automake)Flag
+ Variables Ordering.), but the concept is the same even if Automake
+ is not used.
+
+ -- Variable: configure_input
+ A comment saying that the file was generated automatically by
+ `configure' and giving the name of the input file. `AC_OUTPUT'
+ adds a comment line containing this variable to the top of every
+ makefile it creates. For other files, you should reference this
+ variable in a comment at the top of each input file. For example,
+ an input shell script should begin like this:
+
+ #!/bin/sh
+ # @configure_input@
+
+ The presence of that line also reminds people editing the file
+ that it needs to be processed by `configure' in order to be used.
+
+ -- Variable: CPPFLAGS
+ Preprocessor options for the C, C++, Objective C, and Objective C++
+ preprocessors and compilers. If it is not set in the environment
+ when `configure' runs, the default value is empty. `configure'
+ uses this variable when preprocessing or compiling programs to
+ test for C, C++, Objective C, and Objective C++ features.
+
+ This variable's contents should contain options like `-I', `-D',
+ and `-U' that affect only the behavior of the preprocessor.
+ Please see the explanation of `CFLAGS' for what you can do if an
+ option affects other phases of the compiler as well.
+
+ Currently, `configure' always links as part of a single invocation
+ of the compiler that also preprocesses and compiles, so it uses
+ this variable also when linking programs. However, it is unwise to
+ depend on this behavior because the GNU Coding Standards do not
+ require it and many packages do not use `CPPFLAGS' when linking
+ programs.
+
+ *Note Special Chars in Variables::, for limitations that `CPPFLAGS'
+ might run into.
+
+ -- Variable: CXXFLAGS
+ Debugging and optimization options for the C++ compiler. It acts
+ like `CFLAGS', but for C++ instead of C.
+
+ -- Variable: DEFS
+ `-D' options to pass to the C compiler. If `AC_CONFIG_HEADERS' is
+ called, `configure' replaces `@DEFS@' with `-DHAVE_CONFIG_H'
+ instead (*note Configuration Headers::). This variable is not
+ defined while `configure' is performing its tests, only when
+ creating the output files. *Note Setting Output Variables::, for
+ how to check the results of previous tests.
+
+ -- Variable: ECHO_C
+ -- Variable: ECHO_N
+ -- Variable: ECHO_T
+ How does one suppress the trailing newline from `echo' for
+ question-answer message pairs? These variables provide a way:
+
+ echo $ECHO_N "And the winner is... $ECHO_C"
+ sleep 100000000000
+ echo "${ECHO_T}dead."
+
+ Some old and uncommon `echo' implementations offer no means to
+ achieve this, in which case `ECHO_T' is set to tab. You might not
+ want to use it.
+
+ -- Variable: ERLCFLAGS
+ Debugging and optimization options for the Erlang compiler. If it
+ is not set in the environment when `configure' runs, the default
+ value is empty. `configure' uses this variable when compiling
+ programs to test for Erlang features.
+
+ -- Variable: FCFLAGS
+ Debugging and optimization options for the Fortran compiler. If it
+ is not set in the environment when `configure' runs, the default
+ value is set when you call `AC_PROG_FC' (or empty if you don't).
+ `configure' uses this variable when compiling or linking programs
+ to test for Fortran features.
+
+ -- Variable: FFLAGS
+ Debugging and optimization options for the Fortran 77 compiler.
+ If it is not set in the environment when `configure' runs, the
+ default value is set when you call `AC_PROG_F77' (or empty if you
+ don't). `configure' uses this variable when compiling or linking
+ programs to test for Fortran 77 features.
+
+ -- Variable: LDFLAGS
+ Options for the linker. If it is not set in the environment when
+ `configure' runs, the default value is empty. `configure' uses
+ this variable when linking programs to test for C, C++, Objective
+ C, Objective C++, Fortran, and Go features.
+
+ This variable's contents should contain options like `-s' and `-L'
+ that affect only the behavior of the linker. Please see the
+ explanation of `CFLAGS' for what you can do if an option also
+ affects other phases of the compiler.
+
+ Don't use this variable to pass library names (`-l') to the
+ linker; use `LIBS' instead.
+
+ -- Variable: LIBS
+ `-l' options to pass to the linker. The default value is empty,
+ but some Autoconf macros may prepend extra libraries to this
+ variable if those libraries are found and provide necessary
+ functions, see *note Libraries::. `configure' uses this variable
+ when linking programs to test for C, C++, Objective C, Objective
+ C++, Fortran, and Go features.
+
+ -- Variable: OBJCFLAGS
+ Debugging and optimization options for the Objective C compiler.
+ It acts like `CFLAGS', but for Objective C instead of C.
+
+ -- Variable: OBJCXXFLAGS
+ Debugging and optimization options for the Objective C++ compiler.
+ It acts like `CXXFLAGS', but for Objective C++ instead of C++.
+
+ -- Variable: GOFLAGS
+ Debugging and optimization options for the Go compiler. It acts
+ like `CFLAGS', but for Go instead of C.
+
+ -- Variable: builddir
+ Rigorously equal to `.'. Added for symmetry only.
+
+ -- Variable: abs_builddir
+ Absolute name of `builddir'.
+
+ -- Variable: top_builddir
+ The relative name of the top level of the current build tree. In
+ the top-level directory, this is the same as `builddir'.
+
+ -- Variable: top_build_prefix
+ The relative name of the top level of the current build tree with
+ final slash if nonempty. This is the same as `top_builddir',
+ except that it contains zero or more runs of `../', so it should
+ not be appended with a slash for concatenation. This helps for
+ `make' implementations that otherwise do not treat `./file' and
+ `file' as equal in the toplevel build directory.
+
+ -- Variable: abs_top_builddir
+ Absolute name of `top_builddir'.
+
+ -- Variable: srcdir
+ The name of the directory that contains the source code for that
+ makefile.
+
+ -- Variable: abs_srcdir
+ Absolute name of `srcdir'.
+
+ -- Variable: top_srcdir
+ The name of the top-level source code directory for the package.
+ In the top-level directory, this is the same as `srcdir'.
+
+ -- Variable: abs_top_srcdir
+ Absolute name of `top_srcdir'.
+
+
+File: autoconf.info, Node: Installation Directory Variables, Next: Changed Directory Variables, Prev: Preset Output Variables, Up: Makefile Substitutions
+
+4.8.2 Installation Directory Variables
+--------------------------------------
+
+The following variables specify the directories for package
+installation, see *note Variables for Installation Directories:
+(standards)Directory Variables, for more information. Each variable
+corresponds to an argument of `configure'; trailing slashes are
+stripped so that expressions such as `${prefix}/lib' expand with only
+one slash between directory names. See the end of this section for
+details on when and how to use these variables.
+
+ -- Variable: bindir
+ The directory for installing executables that users run.
+
+ -- Variable: datadir
+ The directory for installing idiosyncratic read-only
+ architecture-independent data.
+
+ -- Variable: datarootdir
+ The root of the directory tree for read-only
+ architecture-independent data files.
+
+ -- Variable: docdir
+ The directory for installing documentation files (other than Info
+ and man).
+
+ -- Variable: dvidir
+ The directory for installing documentation files in DVI format.
+
+ -- Variable: exec_prefix
+ The installation prefix for architecture-dependent files. By
+ default it's the same as `prefix'. You should avoid installing
+ anything directly to `exec_prefix'. However, the default value for
+ directories containing architecture-dependent files should be
+ relative to `exec_prefix'.
+
+ -- Variable: htmldir
+ The directory for installing HTML documentation.
+
+ -- Variable: includedir
+ The directory for installing C header files.
+
+ -- Variable: infodir
+ The directory for installing documentation in Info format.
+
+ -- Variable: libdir
+ The directory for installing object code libraries.
+
+ -- Variable: libexecdir
+ The directory for installing executables that other programs run.
+
+ -- Variable: localedir
+ The directory for installing locale-dependent but
+ architecture-independent data, such as message catalogs. This
+ directory usually has a subdirectory per locale.
+
+ -- Variable: localstatedir
+ The directory for installing modifiable single-machine data.
+
+ -- Variable: mandir
+ The top-level directory for installing documentation in man format.
+
+ -- Variable: oldincludedir
+ The directory for installing C header files for non-GCC compilers.
+
+ -- Variable: pdfdir
+ The directory for installing PDF documentation.
+
+ -- Variable: prefix
+ The common installation prefix for all files. If `exec_prefix' is
+ defined to a different value, `prefix' is used only for
+ architecture-independent files.
+
+ -- Variable: psdir
+ The directory for installing PostScript documentation.
+
+ -- Variable: sbindir
+ The directory for installing executables that system
+ administrators run.
+
+ -- Variable: sharedstatedir
+ The directory for installing modifiable architecture-independent
+ data.
+
+ -- Variable: sysconfdir
+ The directory for installing read-only single-machine data.
+
+ Most of these variables have values that rely on `prefix' or
+`exec_prefix'. It is deliberate that the directory output variables
+keep them unexpanded: typically `@datarootdir@' is replaced by
+`${prefix}/share', not `/usr/local/share', and `@datadir@' is replaced
+by `${datarootdir}'.
+
+ This behavior is mandated by the GNU Coding Standards, so that when
+the user runs:
+
+`make'
+ she can still specify a different prefix from the one specified to
+ `configure', in which case, if needed, the package should hard
+ code dependencies corresponding to the make-specified prefix.
+
+`make install'
+ she can specify a different installation location, in which case
+ the package _must_ still depend on the location which was compiled
+ in (i.e., never recompile when `make install' is run). This is an
+ extremely important feature, as many people may decide to install
+ all the files of a package grouped together, and then install
+ links from the final locations to there.
+
+ In order to support these features, it is essential that
+`datarootdir' remains defined as `${prefix}/share', so that its value
+can be expanded based on the current value of `prefix'.
+
+ A corollary is that you should not use these variables except in
+makefiles. For instance, instead of trying to evaluate `datadir' in
+`configure' and hard-coding it in makefiles using e.g.,
+`AC_DEFINE_UNQUOTED([DATADIR], ["$datadir"], [Data directory.])', you
+should add `-DDATADIR='$(datadir)'' to your makefile's definition of
+`CPPFLAGS' (`AM_CPPFLAGS' if you are also using Automake).
+
+ Similarly, you should not rely on `AC_CONFIG_FILES' to replace
+`bindir' and friends in your shell scripts and other files; instead,
+let `make' manage their replacement. For instance Autoconf ships
+templates of its shell scripts ending with `.in', and uses a makefile
+snippet similar to the following to build scripts like `autoheader' and
+`autom4te':
+
+ edit = sed \
+ -e 's|@bindir[@]|$(bindir)|g' \
+ -e 's|@pkgdatadir[@]|$(pkgdatadir)|g' \
+ -e 's|@prefix[@]|$(prefix)|g'
+
+ autoheader autom4te: Makefile
+ rm -f $@ $@.tmp
+ srcdir=''; \
+ test -f ./$@.in || srcdir=$(srcdir)/; \
+ $(edit) $${srcdir}$@.in >$@.tmp
+ chmod +x $@.tmp
+ chmod a-w $@.tmp
+ mv $@.tmp $@
+
+ autoheader: $(srcdir)/autoheader.in
+ autom4te: $(srcdir)/autom4te.in
+
+ Some details are noteworthy:
+
+`@bindir[@]'
+ The brackets prevent `configure' from replacing `@bindir@' in the
+ Sed expression itself. Brackets are preferable to a backslash
+ here, since Posix says `\@' is not portable.
+
+`$(bindir)'
+ Don't use `@bindir@'! Use the matching makefile variable instead.
+
+`$(pkgdatadir)'
+ The example takes advantage of the variable `$(pkgdatadir)'
+ provided by Automake; it is equivalent to `$(datadir)/$(PACKAGE)'.
+
+`/'
+ Don't use `/' in the Sed expressions that replace file names since
+ most likely the variables you use, such as `$(bindir)', contain
+ `/'. Use a shell metacharacter instead, such as `|'.
+
+special characters
+ File names, file name components, and the value of `VPATH' should
+ not contain shell metacharacters or white space. *Note Special
+ Chars in Variables::.
+
+dependency on `Makefile'
+ Since `edit' uses values that depend on the configuration specific
+ values (`prefix', etc.) and not only on `VERSION' and so forth,
+ the output depends on `Makefile', not `configure.ac'.
+
+`$@'
+ The main rule is generic, and uses `$@' extensively to avoid the
+ need for multiple copies of the rule.
+
+Separated dependencies and single suffix rules
+ You can't use them! The above snippet cannot be (portably)
+ rewritten as:
+
+ autoconf autoheader: Makefile
+ .in:
+ rm -f $@ $@.tmp
+ $(edit) $< >$@.tmp
+ chmod +x $@.tmp
+ mv $@.tmp $@
+
+ *Note Single Suffix Rules::, for details.
+
+`$(srcdir)'
+ Be sure to specify the name of the source directory, otherwise the
+ package won't support separated builds.
+
+ For the more specific installation of Erlang libraries, the
+following variables are defined:
+
+ -- Variable: ERLANG_INSTALL_LIB_DIR
+ The common parent directory of Erlang library installation
+ directories. This variable is set by calling the
+ `AC_ERLANG_SUBST_INSTALL_LIB_DIR' macro in `configure.ac'.
+
+ -- Variable: ERLANG_INSTALL_LIB_DIR_LIBRARY
+ The installation directory for Erlang library LIBRARY. This
+ variable is set by using the `AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR'
+ macro in `configure.ac'.
+
+ *Note Erlang Libraries::, for details.
+
+
+File: autoconf.info, Node: Changed Directory Variables, Next: Build Directories, Prev: Installation Directory Variables, Up: Makefile Substitutions
+
+4.8.3 Changed Directory Variables
+---------------------------------
+
+In Autoconf 2.60, the set of directory variables has changed, and the
+defaults of some variables have been adjusted (*note Installation
+Directory Variables::) to changes in the GNU Coding Standards.
+Notably, `datadir', `infodir', and `mandir' are now expressed in terms
+of `datarootdir'. If you are upgrading from an earlier Autoconf
+version, you may need to adjust your files to ensure that the directory
+variables are substituted correctly (*note Defining Directories::), and
+that a definition of `datarootdir' is in place. For example, in a
+`Makefile.in', adding
+
+ datarootdir = @datarootdir@
+
+is usually sufficient. If you use Automake to create `Makefile.in', it
+will add this for you.
+
+ To help with the transition, Autoconf warns about files that seem to
+use `datarootdir' without defining it. In some cases, it then expands
+the value of `$datarootdir' in substitutions of the directory
+variables. The following example shows such a warning:
+
+ $ cat configure.ac
+ AC_INIT
+ AC_CONFIG_FILES([Makefile])
+ AC_OUTPUT
+ $ cat Makefile.in
+ prefix = @prefix@
+ datadir = @datadir@
+ $ autoconf
+ $ configure
+ configure: creating ./config.status
+ config.status: creating Makefile
+ config.status: WARNING:
+ Makefile.in seems to ignore the --datarootdir setting
+ $ cat Makefile
+ prefix = /usr/local
+ datadir = ${prefix}/share
+
+ Usually one can easily change the file to accommodate both older and
+newer Autoconf releases:
+
+ $ cat Makefile.in
+ prefix = @prefix@
+ datarootdir = @datarootdir@
+ datadir = @datadir@
+ $ configure
+ configure: creating ./config.status
+ config.status: creating Makefile
+ $ cat Makefile
+ prefix = /usr/local
+ datarootdir = ${prefix}/share
+ datadir = ${datarootdir}
+
+ In some cases, however, the checks may not be able to detect that a
+suitable initialization of `datarootdir' is in place, or they may fail
+to detect that such an initialization is necessary in the output file.
+If, after auditing your package, there are still spurious `configure'
+warnings about `datarootdir', you may add the line
+
+ AC_DEFUN([AC_DATAROOTDIR_CHECKED])
+
+to your `configure.ac' to disable the warnings. This is an exception
+to the usual rule that you should not define a macro whose name begins
+with `AC_' (*note Macro Names::).
+
+
+File: autoconf.info, Node: Build Directories, Next: Automatic Remaking, Prev: Changed Directory Variables, Up: Makefile Substitutions
+
+4.8.4 Build Directories
+-----------------------
+
+You can support compiling a software package for several architectures
+simultaneously from the same copy of the source code. The object files
+for each architecture are kept in their own directory.
+
+ To support doing this, `make' uses the `VPATH' variable to find the
+files that are in the source directory. GNU Make can do this. Most
+other recent `make' programs can do this as well, though they may have
+difficulties and it is often simpler to recommend GNU `make' (*note
+VPATH and Make::). Older `make' programs do not support `VPATH'; when
+using them, the source code must be in the same directory as the object
+files.
+
+ If you are using GNU Automake, the remaining details in this section
+are already covered for you, based on the contents of your
+`Makefile.am'. But if you are using Autoconf in isolation, then
+supporting `VPATH' requires the following in your `Makefile.in':
+
+ srcdir = @srcdir@
+ VPATH = @srcdir@
+
+ Do not set `VPATH' to the value of another variable (*note Variables
+listed in VPATH::.
+
+ `configure' substitutes the correct value for `srcdir' when it
+produces `Makefile'.
+
+ Do not use the `make' variable `$<', which expands to the file name
+of the file in the source directory (found with `VPATH'), except in
+implicit rules. (An implicit rule is one such as `.c.o', which tells
+how to create a `.o' file from a `.c' file.) Some versions of `make'
+do not set `$<' in explicit rules; they expand it to an empty value.
+
+ Instead, Make command lines should always refer to source files by
+prefixing them with `$(srcdir)/'. For example:
+
+ time.info: time.texinfo
+ $(MAKEINFO) '$(srcdir)/time.texinfo'
+
+
+File: autoconf.info, Node: Automatic Remaking, Prev: Build Directories, Up: Makefile Substitutions
+
+4.8.5 Automatic Remaking
+------------------------
+
+You can put rules like the following in the top-level `Makefile.in' for
+a package to automatically update the configuration information when
+you change the configuration files. This example includes all of the
+optional files, such as `aclocal.m4' and those related to configuration
+header files. Omit from the `Makefile.in' rules for any of these files
+that your package does not use.
+
+ The `$(srcdir)/' prefix is included because of limitations in the
+`VPATH' mechanism.
+
+ The `stamp-' files are necessary because the timestamps of
+`config.h.in' and `config.h' are not changed if remaking them does not
+change their contents. This feature avoids unnecessary recompilation.
+You should include the file `stamp-h.in' in your package's
+distribution, so that `make' considers `config.h.in' up to date. Don't
+use `touch' (*note Limitations of Usual Tools: touch.); instead, use
+`echo' (using `date' would cause needless differences, hence CVS
+conflicts, etc.).
+
+ $(srcdir)/configure: configure.ac aclocal.m4
+ cd '$(srcdir)' && autoconf
+
+ # autoheader might not change config.h.in, so touch a stamp file.
+ $(srcdir)/config.h.in: stamp-h.in
+ $(srcdir)/stamp-h.in: configure.ac aclocal.m4
+ cd '$(srcdir)' && autoheader
+ echo timestamp > '$(srcdir)/stamp-h.in'
+
+ config.h: stamp-h
+ stamp-h: config.h.in config.status
+ ./config.status
+
+ Makefile: Makefile.in config.status
+ ./config.status
+
+ config.status: configure
+ ./config.status --recheck
+
+(Be careful if you copy these lines directly into your makefile, as you
+need to convert the indented lines to start with the tab character.)
+
+ In addition, you should use
+
+ AC_CONFIG_FILES([stamp-h], [echo timestamp > stamp-h])
+
+so `config.status' ensures that `config.h' is considered up to date.
+*Note Output::, for more information about `AC_OUTPUT'.
+
+ *Note config.status Invocation::, for more examples of handling
+configuration-related dependencies.
+
+
+File: autoconf.info, Node: Configuration Headers, Next: Configuration Commands, Prev: Makefile Substitutions, Up: Setup
+
+4.9 Configuration Header Files
+==============================
+
+When a package contains more than a few tests that define C preprocessor
+symbols, the command lines to pass `-D' options to the compiler can get
+quite long. This causes two problems. One is that the `make' output
+is hard to visually scan for errors. More seriously, the command lines
+can exceed the length limits of some operating systems. As an
+alternative to passing `-D' options to the compiler, `configure'
+scripts can create a C header file containing `#define' directives.
+The `AC_CONFIG_HEADERS' macro selects this kind of output. Though it
+can be called anywhere between `AC_INIT' and `AC_OUTPUT', it is
+customary to call it right after `AC_INIT'.
+
+ The package should `#include' the configuration header file before
+any other header files, to prevent inconsistencies in declarations (for
+example, if it redefines `const').
+
+ To provide for VPATH builds, remember to pass the C compiler a `-I.'
+option (or `-I..'; whichever directory contains `config.h'). Even if
+you use `#include "config.h"', the preprocessor searches only the
+directory of the currently read file, i.e., the source directory, not
+the build directory.
+
+ With the appropriate `-I' option, you can use `#include <config.h>'.
+Actually, it's a good habit to use it, because in the rare case when
+the source directory contains another `config.h', the build directory
+should be searched first.
+
+ -- Macro: AC_CONFIG_HEADERS (HEADER ..., [CMDS], [INIT-CMDS])
+ This macro is one of the instantiating macros; see *note
+ Configuration Actions::. Make `AC_OUTPUT' create the file(s) in
+ the blank-or-newline-separated list HEADER containing C
+ preprocessor `#define' statements, and replace `@DEFS@' in
+ generated files with `-DHAVE_CONFIG_H' instead of the value of
+ `DEFS'. The usual name for HEADER is `config.h'.
+
+ If HEADER already exists and its contents are identical to what
+ `AC_OUTPUT' would put in it, it is left alone. Doing this allows
+ making some changes in the configuration without needlessly causing
+ object files that depend on the header file to be recompiled.
+
+ Usually the input file is named `HEADER.in'; however, you can
+ override the input file name by appending to HEADER a
+ colon-separated list of input files. For example, you might need
+ to make the input file name acceptable to DOS variants:
+
+ AC_CONFIG_HEADERS([config.h:config.hin])
+
+
+ -- Macro: AH_HEADER
+ This macro is defined as the name of the first declared config
+ header and undefined if no config headers have been declared up to
+ this point. A third-party macro may, for example, require use of
+ a config header without invoking AC_CONFIG_HEADERS twice, like
+ this:
+
+ AC_CONFIG_COMMANDS_PRE(
+ [m4_ifndef([AH_HEADER], [AC_CONFIG_HEADERS([config.h])])])
+
+
+ *Note Configuration Actions::, for more details on HEADER.
+
+* Menu:
+
+* Header Templates:: Input for the configuration headers
+* autoheader Invocation:: How to create configuration templates
+* Autoheader Macros:: How to specify CPP templates
+
+
+File: autoconf.info, Node: Header Templates, Next: autoheader Invocation, Up: Configuration Headers
+
+4.9.1 Configuration Header Templates
+------------------------------------
+
+Your distribution should contain a template file that looks as you want
+the final header file to look, including comments, with `#undef'
+statements which are used as hooks. For example, suppose your
+`configure.ac' makes these calls:
+
+ AC_CONFIG_HEADERS([conf.h])
+ AC_CHECK_HEADERS([unistd.h])
+
+Then you could have code like the following in `conf.h.in'. The
+`conf.h' created by `configure' defines `HAVE_UNISTD_H' to 1, if and
+only if the system has `unistd.h'.
+
+ /* Define as 1 if you have unistd.h. */
+ #undef HAVE_UNISTD_H
+
+ The format of the template file is stricter than what the C
+preprocessor is required to accept. A directive line should contain
+only whitespace, `#undef', and `HAVE_UNISTD_H'. The use of `#define'
+instead of `#undef', or of comments on the same line as `#undef', is
+strongly discouraged. Each hook should only be listed once. Other
+preprocessor lines, such as `#ifdef' or `#include', are copied verbatim
+from the template into the generated header.
+
+ Since it is a tedious task to keep a template header up to date, you
+may use `autoheader' to generate it, see *note autoheader Invocation::.
+
+ During the instantiation of the header, each `#undef' line in the
+template file for each symbol defined by `AC_DEFINE' is changed to an
+appropriate `#define'. If the corresponding `AC_DEFINE' has not been
+executed during the `configure' run, the `#undef' line is commented
+out. (This is important, e.g., for `_POSIX_SOURCE': on many systems,
+it can be implicitly defined by the compiler, and undefining it in the
+header would then break compilation of subsequent headers.)
+
+ Currently, _all_ remaining `#undef' lines in the header template are
+commented out, whether or not there was a corresponding `AC_DEFINE' for
+the macro name; but this behavior is not guaranteed for future releases
+of Autoconf.
+
+ Generally speaking, since you should not use `#define', and you
+cannot guarantee whether a `#undef' directive in the header template
+will be converted to a `#define' or commented out in the generated
+header file, the template file cannot be used for conditional
+definition effects. Consequently, if you need to use the construct
+
+ #ifdef THIS
+ # define THAT
+ #endif
+
+you must place it outside of the template. If you absolutely need to
+hook it to the config header itself, please put the directives to a
+separate file, and `#include' that file from the config header
+template. If you are using `autoheader', you would probably use
+`AH_BOTTOM' to append the `#include' directive.
+
+
+File: autoconf.info, Node: autoheader Invocation, Next: Autoheader Macros, Prev: Header Templates, Up: Configuration Headers
+
+4.9.2 Using `autoheader' to Create `config.h.in'
+------------------------------------------------
+
+The `autoheader' program can create a template file of C `#define'
+statements for `configure' to use. It searches for the first
+invocation of `AC_CONFIG_HEADERS' in `configure' sources to determine
+the name of the template. (If the first call of `AC_CONFIG_HEADERS'
+specifies more than one input file name, `autoheader' uses the first
+one.)
+
+ It is recommended that only one input file is used. If you want to
+append a boilerplate code, it is preferable to use `AH_BOTTOM([#include
+<conf_post.h>])'. File `conf_post.h' is not processed during the
+configuration then, which make things clearer. Analogically, `AH_TOP'
+can be used to prepend a boilerplate code.
+
+ In order to do its job, `autoheader' needs you to document all of
+the symbols that you might use. Typically this is done via an
+`AC_DEFINE' or `AC_DEFINE_UNQUOTED' call whose first argument is a
+literal symbol and whose third argument describes the symbol (*note
+Defining Symbols::). Alternatively, you can use `AH_TEMPLATE' (*note
+Autoheader Macros::), or you can supply a suitable input file for a
+subsequent configuration header file. Symbols defined by Autoconf's
+builtin tests are already documented properly; you need to document
+only those that you define yourself.
+
+ You might wonder why `autoheader' is needed: after all, why would
+`configure' need to "patch" a `config.h.in' to produce a `config.h'
+instead of just creating `config.h' from scratch? Well, when
+everything rocks, the answer is just that we are wasting our time
+maintaining `autoheader': generating `config.h' directly is all that is
+needed. When things go wrong, however, you'll be thankful for the
+existence of `autoheader'.
+
+ The fact that the symbols are documented is important in order to
+_check_ that `config.h' makes sense. The fact that there is a
+well-defined list of symbols that should be defined (or not) is also
+important for people who are porting packages to environments where
+`configure' cannot be run: they just have to _fill in the blanks_.
+
+ But let's come back to the point: the invocation of `autoheader'...
+
+ If you give `autoheader' an argument, it uses that file instead of
+`configure.ac' and writes the header file to the standard output
+instead of to `config.h.in'. If you give `autoheader' an argument of
+`-', it reads the standard input instead of `configure.ac' and writes
+the header file to the standard output.
+
+ `autoheader' accepts the following options:
+
+`--help'
+`-h'
+ Print a summary of the command line options and exit.
+
+`--version'
+`-V'
+ Print the version number of Autoconf and exit.
+
+`--verbose'
+`-v'
+ Report processing steps.
+
+`--debug'
+`-d'
+ Don't remove the temporary files.
+
+`--force'
+`-f'
+ Remake the template file even if newer than its input files.
+
+`--include=DIR'
+`-I DIR'
+ Append DIR to the include path. Multiple invocations accumulate.
+
+`--prepend-include=DIR'
+`-B DIR'
+ Prepend DIR to the include path. Multiple invocations accumulate.
+
+`--warnings=CATEGORY'
+`-W CATEGORY'
+ Report the warnings related to CATEGORY (which can actually be a
+ comma separated list). Current categories include:
+
+ `obsolete'
+ report the uses of obsolete constructs
+
+ `all'
+ report all the warnings
+
+ `none'
+ report none
+
+ `error'
+ treats warnings as errors
+
+ `no-CATEGORY'
+ disable warnings falling into CATEGORY
+
+
+
+File: autoconf.info, Node: Autoheader Macros, Prev: autoheader Invocation, Up: Configuration Headers
+
+4.9.3 Autoheader Macros
+-----------------------
+
+`autoheader' scans `configure.ac' and figures out which C preprocessor
+symbols it might define. It knows how to generate templates for
+symbols defined by `AC_CHECK_HEADERS', `AC_CHECK_FUNCS' etc., but if
+you `AC_DEFINE' any additional symbol, you must define a template for
+it. If there are missing templates, `autoheader' fails with an error
+message.
+
+ The template for a SYMBOL is created by `autoheader' from the
+DESCRIPTION argument to an `AC_DEFINE'; see *note Defining Symbols::.
+
+ For special needs, you can use the following macros.
+
+ -- Macro: AH_TEMPLATE (KEY, DESCRIPTION)
+ Tell `autoheader' to generate a template for KEY. This macro
+ generates standard templates just like `AC_DEFINE' when a
+ DESCRIPTION is given.
+
+ For example:
+
+ AH_TEMPLATE([CRAY_STACKSEG_END],
+ [Define to one of _getb67, GETB67, getb67
+ for Cray-2 and Cray-YMP systems. This
+ function is required for alloca.c support
+ on those systems.])
+
+ generates the following template, with the description properly
+ justified.
+
+ /* Define to one of _getb67, GETB67, getb67 for Cray-2 and
+ Cray-YMP systems. This function is required for alloca.c
+ support on those systems. */
+ #undef CRAY_STACKSEG_END
+
+ -- Macro: AH_VERBATIM (KEY, TEMPLATE)
+ Tell `autoheader' to include the TEMPLATE as-is in the header
+ template file. This TEMPLATE is associated with the KEY, which is
+ used to sort all the different templates and guarantee their
+ uniqueness. It should be a symbol that can be defined via
+ `AC_DEFINE'.
+
+ -- Macro: AH_TOP (TEXT)
+ Include TEXT at the top of the header template file.
+
+ -- Macro: AH_BOTTOM (TEXT)
+ Include TEXT at the bottom of the header template file.
+
+ Please note that TEXT gets included "verbatim" to the template file,
+not to the resulting config header, so it can easily get mangled when
+the template is processed. There is rarely a need for something other
+than
+
+ AH_BOTTOM([#include <custom.h>])
+
+
+File: autoconf.info, Node: Configuration Commands, Next: Configuration Links, Prev: Configuration Headers, Up: Setup
+
+4.10 Running Arbitrary Configuration Commands
+=============================================
+
+You can execute arbitrary commands before, during, and after
+`config.status' is run. The three following macros accumulate the
+commands to run when they are called multiple times.
+`AC_CONFIG_COMMANDS' replaces the obsolete macro `AC_OUTPUT_COMMANDS';
+see *note Obsolete Macros::, for details.
+
+ -- Macro: AC_CONFIG_COMMANDS (TAG..., [CMDS], [INIT-CMDS])
+ Specify additional shell commands to run at the end of
+ `config.status', and shell commands to initialize any variables
+ from `configure'. Associate the commands with TAG. Since
+ typically the CMDS create a file, TAG should naturally be the name
+ of that file. If needed, the directory hosting TAG is created.
+ This macro is one of the instantiating macros; see *note
+ Configuration Actions::.
+
+ Here is an unrealistic example:
+ fubar=42
+ AC_CONFIG_COMMANDS([fubar],
+ [echo this is extra $fubar, and so on.],
+ [fubar=$fubar])
+
+ Here is a better one:
+ AC_CONFIG_COMMANDS([timestamp], [date >timestamp])
+
+ The following two macros look similar, but in fact they are not of
+the same breed: they are executed directly by `configure', so you
+cannot use `config.status' to rerun them.
+
+ -- Macro: AC_CONFIG_COMMANDS_PRE (CMDS)
+ Execute the CMDS right before creating `config.status'.
+
+ This macro presents the last opportunity to call `AC_SUBST',
+ `AC_DEFINE', or `AC_CONFIG_ITEMS' macros.
+
+ -- Macro: AC_CONFIG_COMMANDS_POST (CMDS)
+ Execute the CMDS right after creating `config.status'.
+
+
+File: autoconf.info, Node: Configuration Links, Next: Subdirectories, Prev: Configuration Commands, Up: Setup
+
+4.11 Creating Configuration Links
+=================================
+
+You may find it convenient to create links whose destinations depend
+upon results of tests. One can use `AC_CONFIG_COMMANDS' but the
+creation of relative symbolic links can be delicate when the package is
+built in a directory different from the source directory.
+
+ -- Macro: AC_CONFIG_LINKS (DEST:SOURCE..., [CMDS], [INIT-CMDS])
+ Make `AC_OUTPUT' link each of the existing files SOURCE to the
+ corresponding link name DEST. Makes a symbolic link if possible,
+ otherwise a hard link if possible, otherwise a copy. The DEST and
+ SOURCE names should be relative to the top level source or build
+ directory. This macro is one of the instantiating macros; see
+ *note Configuration Actions::.
+
+ For example, this call:
+
+ AC_CONFIG_LINKS([host.h:config/$machine.h
+ object.h:config/$obj_format.h])
+
+ creates in the current directory `host.h' as a link to
+ `SRCDIR/config/$machine.h', and `object.h' as a link to
+ `SRCDIR/config/$obj_format.h'.
+
+ The tempting value `.' for DEST is invalid: it makes it impossible
+ for `config.status' to guess the links to establish.
+
+ One can then run:
+ ./config.status host.h object.h
+ to create the links.
+
+
+File: autoconf.info, Node: Subdirectories, Next: Default Prefix, Prev: Configuration Links, Up: Setup
+
+4.12 Configuring Other Packages in Subdirectories
+=================================================
+
+In most situations, calling `AC_OUTPUT' is sufficient to produce
+makefiles in subdirectories. However, `configure' scripts that control
+more than one independent package can use `AC_CONFIG_SUBDIRS' to run
+`configure' scripts for other packages in subdirectories.
+
+ -- Macro: AC_CONFIG_SUBDIRS (DIR ...)
+ Make `AC_OUTPUT' run `configure' in each subdirectory DIR in the
+ given blank-or-newline-separated list. Each DIR should be a
+ literal, i.e., please do not use:
+
+ if test "x$package_foo_enabled" = xyes; then
+ my_subdirs="$my_subdirs foo"
+ fi
+ AC_CONFIG_SUBDIRS([$my_subdirs])
+
+ because this prevents `./configure --help=recursive' from
+ displaying the options of the package `foo'. Instead, you should
+ write:
+
+ if test "x$package_foo_enabled" = xyes; then
+ AC_CONFIG_SUBDIRS([foo])
+ fi
+
+ If a given DIR is not found at `configure' run time, a warning is
+ reported; if the subdirectory is optional, write:
+
+ if test -d "$srcdir/foo"; then
+ AC_CONFIG_SUBDIRS([foo])
+ fi
+
+ If a given DIR contains `configure.gnu', it is run instead of
+ `configure'. This is for packages that might use a non-Autoconf
+ script `Configure', which can't be called through a wrapper
+ `configure' since it would be the same file on case-insensitive
+ file systems. Likewise, if a DIR contains `configure.in' but no
+ `configure', the Cygnus `configure' script found by
+ `AC_CONFIG_AUX_DIR' is used.
+
+ The subdirectory `configure' scripts are given the same command
+ line options that were given to this `configure' script, with minor
+ changes if needed, which include:
+
+ - adjusting a relative name for the cache file;
+
+ - adjusting a relative name for the source directory;
+
+ - propagating the current value of `$prefix', including if it
+ was defaulted, and if the default values of the top level and
+ of the subdirectory `configure' differ.
+
+ This macro also sets the output variable `subdirs' to the list of
+ directories `DIR ...'. Make rules can use this variable to
+ determine which subdirectories to recurse into.
+
+ This macro may be called multiple times.
+
+
+File: autoconf.info, Node: Default Prefix, Prev: Subdirectories, Up: Setup
+
+4.13 Default Prefix
+===================
+
+By default, `configure' sets the prefix for files it installs to
+`/usr/local'. The user of `configure' can select a different prefix
+using the `--prefix' and `--exec-prefix' options. There are two ways
+to change the default: when creating `configure', and when running it.
+
+ Some software packages might want to install in a directory other
+than `/usr/local' by default. To accomplish that, use the
+`AC_PREFIX_DEFAULT' macro.
+
+ -- Macro: AC_PREFIX_DEFAULT (PREFIX)
+ Set the default installation prefix to PREFIX instead of
+ `/usr/local'.
+
+ It may be convenient for users to have `configure' guess the
+installation prefix from the location of a related program that they
+have already installed. If you wish to do that, you can call
+`AC_PREFIX_PROGRAM'.
+
+ -- Macro: AC_PREFIX_PROGRAM (PROGRAM)
+ If the user did not specify an installation prefix (using the
+ `--prefix' option), guess a value for it by looking for PROGRAM in
+ `PATH', the way the shell does. If PROGRAM is found, set the
+ prefix to the parent of the directory containing PROGRAM, else
+ default the prefix as described above (`/usr/local' or
+ `AC_PREFIX_DEFAULT'). For example, if PROGRAM is `gcc' and the
+ `PATH' contains `/usr/local/gnu/bin/gcc', set the prefix to
+ `/usr/local/gnu'.
+
+
+File: autoconf.info, Node: Existing Tests, Next: Writing Tests, Prev: Setup, Up: Top
+
+5 Existing Tests
+****************
+
+These macros test for particular system features that packages might
+need or want to use. If you need to test for a kind of feature that
+none of these macros check for, you can probably do it by calling
+primitive test macros with appropriate arguments (*note Writing
+Tests::).
+
+ These tests print messages telling the user which feature they're
+checking for, and what they find. They cache their results for future
+`configure' runs (*note Caching Results::).
+
+ Some of these macros set output variables. *Note Makefile
+Substitutions::, for how to get their values. The phrase "define NAME"
+is used below as a shorthand to mean "define the C preprocessor symbol
+NAME to the value 1". *Note Defining Symbols::, for how to get those
+symbol definitions into your program.
+
+* Menu:
+
+* Common Behavior:: Macros' standard schemes
+* Alternative Programs:: Selecting between alternative programs
+* Files:: Checking for the existence of files
+* Libraries:: Library archives that might be missing
+* Library Functions:: C library functions that might be missing
+* Header Files:: Header files that might be missing
+* Declarations:: Declarations that may be missing
+* Structures:: Structures or members that might be missing
+* Types:: Types that might be missing
+* Compilers and Preprocessors:: Checking for compiling programs
+* System Services:: Operating system services
+* Posix Variants:: Special kludges for specific Posix variants
+* Erlang Libraries:: Checking for the existence of Erlang libraries
+
+
+File: autoconf.info, Node: Common Behavior, Next: Alternative Programs, Up: Existing Tests
+
+5.1 Common Behavior
+===================
+
+Much effort has been expended to make Autoconf easy to learn. The most
+obvious way to reach this goal is simply to enforce standard interfaces
+and behaviors, avoiding exceptions as much as possible. Because of
+history and inertia, unfortunately, there are still too many exceptions
+in Autoconf; nevertheless, this section describes some of the common
+rules.
+
+* Menu:
+
+* Standard Symbols:: Symbols defined by the macros
+* Default Includes:: Includes used by the generic macros
+
+
+File: autoconf.info, Node: Standard Symbols, Next: Default Includes, Up: Common Behavior
+
+5.1.1 Standard Symbols
+----------------------
+
+All the generic macros that `AC_DEFINE' a symbol as a result of their
+test transform their ARGUMENT values to a standard alphabet. First,
+ARGUMENT is converted to upper case and any asterisks (`*') are each
+converted to `P'. Any remaining characters that are not alphanumeric
+are converted to underscores.
+
+ For instance,
+
+ AC_CHECK_TYPES([struct $Expensive*])
+
+defines the symbol `HAVE_STRUCT__EXPENSIVEP' if the check succeeds.
+
+
+File: autoconf.info, Node: Default Includes, Prev: Standard Symbols, Up: Common Behavior
+
+5.1.2 Default Includes
+----------------------
+
+Several tests depend upon a set of header files. Since these headers
+are not universally available, tests actually have to provide a set of
+protected includes, such as:
+
+ #ifdef TIME_WITH_SYS_TIME
+ # include <sys/time.h>
+ # include <time.h>
+ #else
+ # ifdef HAVE_SYS_TIME_H
+ # include <sys/time.h>
+ # else
+ # include <time.h>
+ # endif
+ #endif
+
+Unless you know exactly what you are doing, you should avoid using
+unconditional includes, and check the existence of the headers you
+include beforehand (*note Header Files::).
+
+ Most generic macros use the following macro to provide the default
+set of includes:
+
+ -- Macro: AC_INCLUDES_DEFAULT ([INCLUDE-DIRECTIVES])
+ Expand to INCLUDE-DIRECTIVES if defined, otherwise to:
+
+ #include <stdio.h>
+ #ifdef HAVE_SYS_TYPES_H
+ # include <sys/types.h>
+ #endif
+ #ifdef HAVE_SYS_STAT_H
+ # include <sys/stat.h>
+ #endif
+ #ifdef STDC_HEADERS
+ # include <stdlib.h>
+ # include <stddef.h>
+ #else
+ # ifdef HAVE_STDLIB_H
+ # include <stdlib.h>
+ # endif
+ #endif
+ #ifdef HAVE_STRING_H
+ # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+ # include <memory.h>
+ # endif
+ # include <string.h>
+ #endif
+ #ifdef HAVE_STRINGS_H
+ # include <strings.h>
+ #endif
+ #ifdef HAVE_INTTYPES_H
+ # include <inttypes.h>
+ #endif
+ #ifdef HAVE_STDINT_H
+ # include <stdint.h>
+ #endif
+ #ifdef HAVE_UNISTD_H
+ # include <unistd.h>
+ #endif
+
+ If the default includes are used, then check for the presence of
+ these headers and their compatibility, i.e., you don't need to run
+ `AC_HEADER_STDC', nor check for `stdlib.h' etc.
+
+ These headers are checked for in the same order as they are
+ included. For instance, on some systems `string.h' and
+ `strings.h' both exist, but conflict. Then `HAVE_STRING_H' is
+ defined, not `HAVE_STRINGS_H'.
+
+
+File: autoconf.info, Node: Alternative Programs, Next: Files, Prev: Common Behavior, Up: Existing Tests
+
+5.2 Alternative Programs
+========================
+
+These macros check for the presence or behavior of particular programs.
+They are used to choose between several alternative programs and to
+decide what to do once one has been chosen. If there is no macro
+specifically defined to check for a program you need, and you don't need
+to check for any special properties of it, then you can use one of the
+general program-check macros.
+
+* Menu:
+
+* Particular Programs:: Special handling to find certain programs
+* Generic Programs:: How to find other programs
+
+
+File: autoconf.info, Node: Particular Programs, Next: Generic Programs, Up: Alternative Programs
+
+5.2.1 Particular Program Checks
+-------------------------------
+
+These macros check for particular programs--whether they exist, and in
+some cases whether they support certain features.
+
+ -- Macro: AC_PROG_AWK
+ Check for `gawk', `mawk', `nawk', and `awk', in that order, and
+ set output variable `AWK' to the first one that is found. It
+ tries `gawk' first because that is reported to be the best
+ implementation. The result can be overridden by setting the
+ variable `AWK' or the cache variable `ac_cv_prog_AWK'.
+
+ Using this macro is sufficient to avoid the pitfalls of traditional
+ `awk' (*note Limitations of Usual Tools: awk.).
+
+ -- Macro: AC_PROG_GREP
+ Look for the best available `grep' or `ggrep' that accepts the
+ longest input lines possible, and that supports multiple `-e'
+ options. Set the output variable `GREP' to whatever is chosen.
+ *Note Limitations of Usual Tools: grep, for more information about
+ portability problems with the `grep' command family. The result
+ can be overridden by setting the `GREP' variable and is cached in
+ the `ac_cv_path_GREP' variable.
+
+ -- Macro: AC_PROG_EGREP
+ Check whether `$GREP -E' works, or else look for the best available
+ `egrep' or `gegrep' that accepts the longest input lines possible.
+ Set the output variable `EGREP' to whatever is chosen. The result
+ can be overridden by setting the `EGREP' variable and is cached in
+ the `ac_cv_path_EGREP' variable.
+
+ -- Macro: AC_PROG_FGREP
+ Check whether `$GREP -F' works, or else look for the best available
+ `fgrep' or `gfgrep' that accepts the longest input lines possible.
+ Set the output variable `FGREP' to whatever is chosen. The result
+ can be overridden by setting the `FGREP' variable and is cached in
+ the `ac_cv_path_FGREP' variable.
+
+ -- Macro: AC_PROG_INSTALL
+ Set output variable `INSTALL' to the name of a BSD-compatible
+ `install' program, if one is found in the current `PATH'.
+ Otherwise, set `INSTALL' to `DIR/install-sh -c', checking the
+ directories specified to `AC_CONFIG_AUX_DIR' (or its default
+ directories) to determine DIR (*note Output::). Also set the
+ variables `INSTALL_PROGRAM' and `INSTALL_SCRIPT' to `${INSTALL}'
+ and `INSTALL_DATA' to `${INSTALL} -m 644'.
+
+ `@INSTALL@' is special, as its value may vary for different
+ configuration files.
+
+ This macro screens out various instances of `install' known not to
+ work. It prefers to find a C program rather than a shell script,
+ for speed. Instead of `install-sh', it can also use `install.sh',
+ but that name is obsolete because some `make' programs have a rule
+ that creates `install' from it if there is no makefile. Further,
+ this macro requires `install' to be able to install multiple files
+ into a target directory in a single invocation.
+
+ Autoconf comes with a copy of `install-sh' that you can use. If
+ you use `AC_PROG_INSTALL', you must include either `install-sh' or
+ `install.sh' in your distribution; otherwise `configure' produces
+ an error message saying it can't find them--even if the system
+ you're on has a good `install' program. This check is a safety
+ measure to prevent you from accidentally leaving that file out,
+ which would prevent your package from installing on systems that
+ don't have a BSD-compatible `install' program.
+
+ If you need to use your own installation program because it has
+ features not found in standard `install' programs, there is no
+ reason to use `AC_PROG_INSTALL'; just put the file name of your
+ program into your `Makefile.in' files.
+
+ The result of the test can be overridden by setting the variable
+ `INSTALL' or the cache variable `ac_cv_path_install'.
+
+ -- Macro: AC_PROG_MKDIR_P
+ Set output variable `MKDIR_P' to a program that ensures that for
+ each argument, a directory named by this argument exists, creating
+ it and its parent directories if needed, and without race
+ conditions when two instances of the program attempt to make the
+ same directory at nearly the same time.
+
+ This macro uses the `mkdir -p' command if possible. Otherwise, it
+ falls back on invoking `install-sh' with the `-d' option, so your
+ package should contain `install-sh' as described under
+ `AC_PROG_INSTALL'. An `install-sh' file that predates Autoconf
+ 2.60 or Automake 1.10 is vulnerable to race conditions, so if you
+ want to support parallel installs from different packages into the
+ same directory you need to make sure you have an up-to-date
+ `install-sh'. In particular, be careful about using `autoreconf
+ -if' if your Automake predates Automake 1.10.
+
+ This macro is related to the `AS_MKDIR_P' macro (*note Programming
+ in M4sh::), but it sets an output variable intended for use in
+ other files, whereas `AS_MKDIR_P' is intended for use in scripts
+ like `configure'. Also, `AS_MKDIR_P' does not accept options, but
+ `MKDIR_P' supports the `-m' option, e.g., a makefile might invoke
+ `$(MKDIR_P) -m 0 dir' to create an inaccessible directory, and
+ conversely a makefile should use `$(MKDIR_P) -- $(FOO)' if FOO
+ might yield a value that begins with `-'. Finally, `AS_MKDIR_P'
+ does not check for race condition vulnerability, whereas
+ `AC_PROG_MKDIR_P' does.
+
+ `@MKDIR_P@' is special, as its value may vary for different
+ configuration files.
+
+ The result of the test can be overridden by setting the variable
+ `MKDIR_P' or the cache variable `ac_cv_path_mkdir'.
+
+ -- Macro: AC_PROG_LEX
+ If `flex' is found, set output variable `LEX' to `flex' and
+ `LEXLIB' to `-lfl', if that library is in a standard place.
+ Otherwise set `LEX' to `lex' and `LEXLIB' to `-ll', if found. If
+ neither variant is available, set `LEX' to `:'; for packages that
+ ship the generated `file.yy.c' alongside the source `file.l', this
+ default allows users without a lexer generator to still build the
+ package even if the timestamp for `file.l' is inadvertently
+ changed.
+
+ Define `YYTEXT_POINTER' if `yytext' defaults to `char *' instead
+ of to `char []'. Also set output variable `LEX_OUTPUT_ROOT' to
+ the base of the file name that the lexer generates; usually
+ `lex.yy', but sometimes something else. These results vary
+ according to whether `lex' or `flex' is being used.
+
+ You are encouraged to use Flex in your sources, since it is both
+ more pleasant to use than plain Lex and the C source it produces
+ is portable. In order to ensure portability, however, you must
+ either provide a function `yywrap' or, if you don't use it (e.g.,
+ your scanner has no `#include'-like feature), simply include a
+ `%noyywrap' statement in the scanner's source. Once this done,
+ the scanner is portable (unless _you_ felt free to use nonportable
+ constructs) and does not depend on any library. In this case, and
+ in this case only, it is suggested that you use this Autoconf
+ snippet:
+
+ AC_PROG_LEX
+ if test "x$LEX" != xflex; then
+ LEX="$SHELL $missing_dir/missing flex"
+ AC_SUBST([LEX_OUTPUT_ROOT], [lex.yy])
+ AC_SUBST([LEXLIB], [''])
+ fi
+
+ The shell script `missing' can be found in the Automake
+ distribution.
+
+ Remember that the user may have supplied an alternate location in
+ `LEX', so if Flex is required, it is better to check that the user
+ provided something sufficient by parsing the output of `$LEX
+ --version' than by simply relying on `test "x$LEX" = xflex'.
+
+ To ensure backward compatibility, Automake's `AM_PROG_LEX' invokes
+ (indirectly) this macro twice, which causes an annoying but benign
+ "`AC_PROG_LEX' invoked multiple times" warning. Future versions
+ of Automake will fix this issue; meanwhile, just ignore this
+ message.
+
+ As part of running the test, this macro may delete any file in the
+ configuration directory named `lex.yy.c' or `lexyy.c'.
+
+ The result of this test can be influenced by setting the variable
+ `LEX' or the cache variable `ac_cv_prog_LEX'.
+
+ -- Macro: AC_PROG_LN_S
+ If `ln -s' works on the current file system (the operating system
+ and file system support symbolic links), set the output variable
+ `LN_S' to `ln -s'; otherwise, if `ln' works, set `LN_S' to `ln',
+ and otherwise set it to `cp -pR'.
+
+ If you make a link in a directory other than the current
+ directory, its meaning depends on whether `ln' or `ln -s' is used.
+ To safely create links using `$(LN_S)', either find out which form
+ is used and adjust the arguments, or always invoke `ln' in the
+ directory where the link is to be created.
+
+ In other words, it does not work to do:
+ $(LN_S) foo /x/bar
+
+ Instead, do:
+
+ (cd /x && $(LN_S) foo bar)
+
+ -- Macro: AC_PROG_RANLIB
+ Set output variable `RANLIB' to `ranlib' if `ranlib' is found, and
+ otherwise to `:' (do nothing).
+
+ -- Macro: AC_PROG_SED
+ Set output variable `SED' to a Sed implementation that conforms to
+ Posix and does not have arbitrary length limits. Report an error
+ if no acceptable Sed is found. *Note Limitations of Usual Tools:
+ sed, for more information about portability problems with Sed.
+
+ The result of this test can be overridden by setting the `SED'
+ variable and is cached in the `ac_cv_path_SED' variable.
+
+ -- Macro: AC_PROG_YACC
+ If `bison' is found, set output variable `YACC' to `bison -y'.
+ Otherwise, if `byacc' is found, set `YACC' to `byacc'. Otherwise
+ set `YACC' to `yacc'. The result of this test can be influenced
+ by setting the variable `YACC' or the cache variable
+ `ac_cv_prog_YACC'.
+
+
+File: autoconf.info, Node: Generic Programs, Prev: Particular Programs, Up: Alternative Programs
+
+5.2.2 Generic Program and File Checks
+-------------------------------------
+
+These macros are used to find programs not covered by the "particular"
+test macros. If you need to check the behavior of a program as well as
+find out whether it is present, you have to write your own test for it
+(*note Writing Tests::). By default, these macros use the environment
+variable `PATH'. If you need to check for a program that might not be
+in the user's `PATH', you can pass a modified path to use instead, like
+this:
+
+ AC_PATH_PROG([INETD], [inetd], [/usr/libexec/inetd],
+ [$PATH$PATH_SEPARATOR/usr/libexec$PATH_SEPARATOR]dnl
+ [/usr/sbin$PATH_SEPARATOR/usr/etc$PATH_SEPARATOR/etc])
+
+ You are strongly encouraged to declare the VARIABLE passed to
+`AC_CHECK_PROG' etc. as precious. *Note Setting Output Variables::,
+`AC_ARG_VAR', for more details.
+
+ -- Macro: AC_CHECK_PROG (VARIABLE, PROG-TO-CHECK-FOR, VALUE-IF-FOUND,
+ [VALUE-IF-NOT-FOUND], [PATH = `$PATH'], [REJECT])
+ Check whether program PROG-TO-CHECK-FOR exists in PATH. If it is
+ found, set VARIABLE to VALUE-IF-FOUND, otherwise to
+ VALUE-IF-NOT-FOUND, if given. Always pass over REJECT (an
+ absolute file name) even if it is the first found in the search
+ path; in that case, set VARIABLE using the absolute file name of
+ the PROG-TO-CHECK-FOR found that is not REJECT. If VARIABLE was
+ already set, do nothing. Calls `AC_SUBST' for VARIABLE. The
+ result of this test can be overridden by setting the VARIABLE
+ variable or the cache variable `ac_cv_prog_VARIABLE'.
+
+ -- Macro: AC_CHECK_PROGS (VARIABLE, PROGS-TO-CHECK-FOR,
+ [VALUE-IF-NOT-FOUND], [PATH = `$PATH'])
+ Check for each program in the blank-separated list
+ PROGS-TO-CHECK-FOR existing in the PATH. If one is found, set
+ VARIABLE to the name of that program. Otherwise, continue
+ checking the next program in the list. If none of the programs in
+ the list are found, set VARIABLE to VALUE-IF-NOT-FOUND; if
+ VALUE-IF-NOT-FOUND is not specified, the value of VARIABLE is not
+ changed. Calls `AC_SUBST' for VARIABLE. The result of this test
+ can be overridden by setting the VARIABLE variable or the cache
+ variable `ac_cv_prog_VARIABLE'.
+
+ -- Macro: AC_CHECK_TARGET_TOOL (VARIABLE, PROG-TO-CHECK-FOR,
+ [VALUE-IF-NOT-FOUND], [PATH = `$PATH'])
+ Like `AC_CHECK_PROG', but first looks for PROG-TO-CHECK-FOR with a
+ prefix of the target type as determined by `AC_CANONICAL_TARGET',
+ followed by a dash (*note Canonicalizing::). If the tool cannot
+ be found with a prefix, and if the build and target types are
+ equal, then it is also searched for without a prefix.
+
+ As noted in *note Specifying Target Triplets::, the target is
+ rarely specified, because most of the time it is the same as the
+ host: it is the type of system for which any compiler tool in the
+ package produces code. What this macro looks for is, for example,
+ _a tool (assembler, linker, etc.) that the compiler driver (`gcc'
+ for the GNU C Compiler) uses to produce objects, archives or
+ executables_.
+
+ -- Macro: AC_CHECK_TOOL (VARIABLE, PROG-TO-CHECK-FOR,
+ [VALUE-IF-NOT-FOUND], [PATH = `$PATH'])
+ Like `AC_CHECK_PROG', but first looks for PROG-TO-CHECK-FOR with a
+ prefix of the host type as specified by `--host', followed by a
+ dash. For example, if the user runs `configure --build=x86_64-gnu
+ --host=i386-gnu', then this call:
+ AC_CHECK_TOOL([RANLIB], [ranlib], [:])
+ sets `RANLIB' to `i386-gnu-ranlib' if that program exists in PATH,
+ or otherwise to `ranlib' if that program exists in PATH, or to `:'
+ if neither program exists.
+
+ When cross-compiling, this macro will issue a warning if no program
+ prefixed with the host type could be found. For more information,
+ see *note Specifying Target Triplets::.
+
+ -- Macro: AC_CHECK_TARGET_TOOLS (VARIABLE, PROGS-TO-CHECK-FOR,
+ [VALUE-IF-NOT-FOUND], [PATH = `$PATH'])
+ Like `AC_CHECK_TARGET_TOOL', each of the tools in the list
+ PROGS-TO-CHECK-FOR are checked with a prefix of the target type as
+ determined by `AC_CANONICAL_TARGET', followed by a dash (*note
+ Canonicalizing::). If none of the tools can be found with a
+ prefix, and if the build and target types are equal, then the
+ first one without a prefix is used. If a tool is found, set
+ VARIABLE to the name of that program. If none of the tools in the
+ list are found, set VARIABLE to VALUE-IF-NOT-FOUND; if
+ VALUE-IF-NOT-FOUND is not specified, the value of VARIABLE is not
+ changed. Calls `AC_SUBST' for VARIABLE.
+
+ -- Macro: AC_CHECK_TOOLS (VARIABLE, PROGS-TO-CHECK-FOR,
+ [VALUE-IF-NOT-FOUND], [PATH = `$PATH'])
+ Like `AC_CHECK_TOOL', each of the tools in the list
+ PROGS-TO-CHECK-FOR are checked with a prefix of the host type as
+ determined by `AC_CANONICAL_HOST', followed by a dash (*note
+ Canonicalizing::). If none of the tools can be found with a
+ prefix, then the first one without a prefix is used. If a tool is
+ found, set VARIABLE to the name of that program. If none of the
+ tools in the list are found, set VARIABLE to VALUE-IF-NOT-FOUND; if
+ VALUE-IF-NOT-FOUND is not specified, the value of VARIABLE is not
+ changed. Calls `AC_SUBST' for VARIABLE.
+
+ When cross-compiling, this macro will issue a warning if no program
+ prefixed with the host type could be found. For more information,
+ see *note Specifying Target Triplets::.
+
+ -- Macro: AC_PATH_PROG (VARIABLE, PROG-TO-CHECK-FOR,
+ [VALUE-IF-NOT-FOUND], [PATH = `$PATH'])
+ Like `AC_CHECK_PROG', but set VARIABLE to the absolute name of
+ PROG-TO-CHECK-FOR if found. The result of this test can be
+ overridden by setting the VARIABLE variable. A positive result of
+ this test is cached in the `ac_cv_path_VARIABLE' variable.
+
+ -- Macro: AC_PATH_PROGS (VARIABLE, PROGS-TO-CHECK-FOR,
+ [VALUE-IF-NOT-FOUND], [PATH = `$PATH'])
+ Like `AC_CHECK_PROGS', but if any of PROGS-TO-CHECK-FOR are found,
+ set VARIABLE to the absolute name of the program found. The
+ result of this test can be overridden by setting the VARIABLE
+ variable. A positive result of this test is cached in the
+ `ac_cv_path_VARIABLE' variable.
+
+ -- Macro: AC_PATH_PROGS_FEATURE_CHECK (VARIABLE, PROGS-TO-CHECK-FOR,
+ FEATURE-TEST, [ACTION-IF-NOT-FOUND], [PATH = `$PATH'])
+ This macro was introduced in Autoconf 2.62. If VARIABLE is not
+ empty, then set the cache variable `ac_cv_path_VARIABLE' to its
+ value. Otherwise, check for each program in the blank-separated
+ list PROGS-TO-CHECK-FOR existing in PATH. For each program found,
+ execute FEATURE-TEST with `ac_path_VARIABLE' set to the absolute
+ name of the candidate program. If no invocation of FEATURE-TEST
+ sets the shell variable `ac_cv_path_VARIABLE', then
+ ACTION-IF-NOT-FOUND is executed. FEATURE-TEST will be run even
+ when `ac_cv_path_VARIABLE' is set, to provide the ability to
+ choose a better candidate found later in PATH; to accept the
+ current setting and bypass all further checks, FEATURE-TEST can
+ execute `ac_path_VARIABLE_found=:'.
+
+ Note that this macro has some subtle differences from
+ `AC_CHECK_PROGS'. It is designed to be run inside `AC_CACHE_VAL',
+ therefore, it should have no side effects. In particular,
+ VARIABLE is not set to the final value of `ac_cv_path_VARIABLE',
+ nor is `AC_SUBST' automatically run. Also, on failure, any action
+ can be performed, whereas `AC_CHECK_PROGS' only performs
+ `VARIABLE=VALUE-IF-NOT-FOUND'.
+
+ Here is an example, similar to what Autoconf uses in its own
+ configure script. It will search for an implementation of `m4'
+ that supports the `indir' builtin, even if it goes by the name
+ `gm4' or is not the first implementation on `PATH'.
+
+ AC_CACHE_CHECK([for m4 that supports indir], [ac_cv_path_M4],
+ [AC_PATH_PROGS_FEATURE_CHECK([M4], [m4 gm4],
+ [[m4out=`echo 'changequote([,])indir([divnum])' | $ac_path_M4`
+ test "x$m4out" = x0 \
+ && ac_cv_path_M4=$ac_path_M4 ac_path_M4_found=:]],
+ [AC_MSG_ERROR([could not find m4 that supports indir])])])
+ AC_SUBST([M4], [$ac_cv_path_M4])
+
+ -- Macro: AC_PATH_TARGET_TOOL (VARIABLE, PROG-TO-CHECK-FOR,
+ [VALUE-IF-NOT-FOUND], [PATH = `$PATH'])
+ Like `AC_CHECK_TARGET_TOOL', but set VARIABLE to the absolute name
+ of the program if it is found.
+
+ -- Macro: AC_PATH_TOOL (VARIABLE, PROG-TO-CHECK-FOR,
+ [VALUE-IF-NOT-FOUND], [PATH = `$PATH'])
+ Like `AC_CHECK_TOOL', but set VARIABLE to the absolute name of the
+ program if it is found.
+
+ When cross-compiling, this macro will issue a warning if no program
+ prefixed with the host type could be found. For more information,
+ see *note Specifying Target Triplets::.
+
+
+File: autoconf.info, Node: Files, Next: Libraries, Prev: Alternative Programs, Up: Existing Tests
+
+5.3 Files
+=========
+
+You might also need to check for the existence of files. Before using
+these macros, ask yourself whether a runtime test might not be a better
+solution. Be aware that, like most Autoconf macros, they test a feature
+of the host machine, and therefore, they die when cross-compiling.
+
+ -- Macro: AC_CHECK_FILE (FILE, [ACTION-IF-FOUND],
+ [ACTION-IF-NOT-FOUND])
+ Check whether file FILE exists on the native system. If it is
+ found, execute ACTION-IF-FOUND, otherwise do ACTION-IF-NOT-FOUND,
+ if given. The result of this test is cached in the
+ `ac_cv_file_FILE' variable, with characters not suitable for a
+ variable name mapped to underscores.
+
+ -- Macro: AC_CHECK_FILES (FILES, [ACTION-IF-FOUND],
+ [ACTION-IF-NOT-FOUND])
+ Executes `AC_CHECK_FILE' once for each file listed in FILES.
+ Additionally, defines `HAVE_FILE' (*note Standard Symbols::) for
+ each file found. The results of each test are cached in the
+ `ac_cv_file_FILE' variable, with characters not suitable for a
+ variable name mapped to underscores.
+
+
+File: autoconf.info, Node: Libraries, Next: Library Functions, Prev: Files, Up: Existing Tests
+
+5.4 Library Files
+=================
+
+The following macros check for the presence of certain C, C++, Fortran,
+or Go library archive files.
+
+ -- Macro: AC_CHECK_LIB (LIBRARY, FUNCTION, [ACTION-IF-FOUND],
+ [ACTION-IF-NOT-FOUND], [OTHER-LIBRARIES])
+ Test whether the library LIBRARY is available by trying to link a
+ test program that calls function FUNCTION with the library.
+ FUNCTION should be a function provided by the library. Use the
+ base name of the library; e.g., to check for `-lmp', use `mp' as
+ the LIBRARY argument.
+
+ ACTION-IF-FOUND is a list of shell commands to run if the link
+ with the library succeeds; ACTION-IF-NOT-FOUND is a list of shell
+ commands to run if the link fails. If ACTION-IF-FOUND is not
+ specified, the default action prepends `-lLIBRARY' to `LIBS' and
+ defines `HAVE_LIBLIBRARY' (in all capitals). This macro is
+ intended to support building `LIBS' in a right-to-left
+ (least-dependent to most-dependent) fashion such that library
+ dependencies are satisfied as a natural side effect of consecutive
+ tests. Linkers are sensitive to library ordering so the order in
+ which `LIBS' is generated is important to reliable detection of
+ libraries.
+
+ If linking with LIBRARY results in unresolved symbols that would
+ be resolved by linking with additional libraries, give those
+ libraries as the OTHER-LIBRARIES argument, separated by spaces:
+ e.g., `-lXt -lX11'. Otherwise, this macro may fail to detect that
+ LIBRARY is present, because linking the test program can fail with
+ unresolved symbols. The OTHER-LIBRARIES argument should be
+ limited to cases where it is desirable to test for one library in
+ the presence of another that is not already in `LIBS'.
+
+ `AC_CHECK_LIB' requires some care in usage, and should be avoided
+ in some common cases. Many standard functions like `gethostbyname'
+ appear in the standard C library on some hosts, and in special
+ libraries like `nsl' on other hosts. On some hosts the special
+ libraries contain variant implementations that you may not want to
+ use. These days it is normally better to use
+ `AC_SEARCH_LIBS([gethostbyname], [nsl])' instead of
+ `AC_CHECK_LIB([nsl], [gethostbyname])'.
+
+ The result of this test is cached in the
+ `ac_cv_lib_LIBRARY_FUNCTION' variable.
+
+ -- Macro: AC_SEARCH_LIBS (FUNCTION, SEARCH-LIBS, [ACTION-IF-FOUND],
+ [ACTION-IF-NOT-FOUND], [OTHER-LIBRARIES])
+ Search for a library defining FUNCTION if it's not already
+ available. This equates to calling
+ `AC_LINK_IFELSE([AC_LANG_CALL([], [FUNCTION])])' first with no
+ libraries, then for each library listed in SEARCH-LIBS.
+
+ Prepend `-lLIBRARY' to `LIBS' for the first library found to
+ contain FUNCTION, and run ACTION-IF-FOUND. If the function is not
+ found, run ACTION-IF-NOT-FOUND.
+
+ If linking with LIBRARY results in unresolved symbols that would
+ be resolved by linking with additional libraries, give those
+ libraries as the OTHER-LIBRARIES argument, separated by spaces:
+ e.g., `-lXt -lX11'. Otherwise, this macro fails to detect that
+ FUNCTION is present, because linking the test program always fails
+ with unresolved symbols.
+
+ The result of this test is cached in the `ac_cv_search_FUNCTION'
+ variable as `none required' if FUNCTION is already available, as
+ `no' if no library containing FUNCTION was found, otherwise as the
+ `-lLIBRARY' option that needs to be prepended to `LIBS'.
+
+
+File: autoconf.info, Node: Library Functions, Next: Header Files, Prev: Libraries, Up: Existing Tests
+
+5.5 Library Functions
+=====================
+
+The following macros check for particular C library functions. If
+there is no macro specifically defined to check for a function you need,
+and you don't need to check for any special properties of it, then you
+can use one of the general function-check macros.
+
+* Menu:
+
+* Function Portability:: Pitfalls with usual functions
+* Particular Functions:: Special handling to find certain functions
+* Generic Functions:: How to find other functions
+
+
+File: autoconf.info, Node: Function Portability, Next: Particular Functions, Up: Library Functions
+
+5.5.1 Portability of C Functions
+--------------------------------
+
+Most usual functions can either be missing, or be buggy, or be limited
+on some architectures. This section tries to make an inventory of these
+portability issues. By definition, this list always requires
+additions. A much more complete list is maintained by the Gnulib
+project (*note Gnulib::), covering *note Current Posix Functions:
+(gnulib)Function Substitutes, *note Legacy Functions: (gnulib)Legacy
+Function Substitutes, and *note Glibc Functions: (gnulib)Glibc Function
+Substitutes. Please help us keep the gnulib list as complete as
+possible.
+
+`exit'
+ On ancient hosts, `exit' returned `int'. This is because `exit'
+ predates `void', and there was a long tradition of it returning
+ `int'.
+
+ On current hosts, the problem more likely is that `exit' is not
+ declared, due to C++ problems of some sort or another. For this
+ reason we suggest that test programs not invoke `exit', but return
+ from `main' instead.
+
+`free'
+ The C standard says a call `free (NULL)' does nothing, but some
+ old systems don't support this (e.g., NextStep).
+
+`isinf'
+`isnan'
+ The C99 standard says that `isinf' and `isnan' are macros. On
+ some systems just macros are available (e.g., HP-UX and Solaris
+ 10), on some systems both macros and functions (e.g., glibc
+ 2.3.2), and on some systems only functions (e.g., IRIX 6 and
+ Solaris 9). In some cases these functions are declared in
+ nonstandard headers like `<sunmath.h>' and defined in non-default
+ libraries like `-lm' or `-lsunmath'.
+
+ The C99 `isinf' and `isnan' macros work correctly with `long
+ double' arguments, but pre-C99 systems that use functions
+ typically assume `double' arguments. On such a system, `isinf'
+ incorrectly returns true for a finite `long double' argument that
+ is outside the range of `double'.
+
+ The best workaround for these issues is to use gnulib modules
+ `isinf' and `isnan' (*note Gnulib::). But a lighter weight
+ solution involves code like the following.
+
+ #include <math.h>
+
+ #ifndef isnan
+ # define isnan(x) \
+ (sizeof (x) == sizeof (long double) ? isnan_ld (x) \
+ : sizeof (x) == sizeof (double) ? isnan_d (x) \
+ : isnan_f (x))
+ static inline int isnan_f (float x) { return x != x; }
+ static inline int isnan_d (double x) { return x != x; }
+ static inline int isnan_ld (long double x) { return x != x; }
+ #endif
+
+ #ifndef isinf
+ # define isinf(x) \
+ (sizeof (x) == sizeof (long double) ? isinf_ld (x) \
+ : sizeof (x) == sizeof (double) ? isinf_d (x) \
+ : isinf_f (x))
+ static inline int isinf_f (float x)
+ { return !isnan (x) && isnan (x - x); }
+ static inline int isinf_d (double x)
+ { return !isnan (x) && isnan (x - x); }
+ static inline int isinf_ld (long double x)
+ { return !isnan (x) && isnan (x - x); }
+ #endif
+
+ Use `AC_C_INLINE' (*note C Compiler::) so that this code works on
+ compilers that lack the `inline' keyword. Some optimizing
+ compilers mishandle these definitions, but systems with that bug
+ typically have many other floating point corner-case compliance
+ problems anyway, so it's probably not worth worrying about.
+
+`malloc'
+ The C standard says a call `malloc (0)' is implementation
+ dependent. It can return either `NULL' or a new non-null pointer.
+ The latter is more common (e.g., the GNU C Library) but is by no
+ means universal. `AC_FUNC_MALLOC' can be used to insist on
+ non-`NULL' (*note Particular Functions::).
+
+`putenv'
+ Posix prefers `setenv' to `putenv'; among other things, `putenv'
+ is not required of all Posix implementations, but `setenv' is.
+
+ Posix specifies that `putenv' puts the given string directly in
+ `environ', but some systems make a copy of it instead (e.g., glibc
+ 2.0, or BSD). And when a copy is made, `unsetenv' might not free
+ it, causing a memory leak (e.g., FreeBSD 4).
+
+ On some systems `putenv ("FOO")' removes `FOO' from the
+ environment, but this is not standard usage and it dumps core on
+ some systems (e.g., AIX).
+
+ On MinGW, a call `putenv ("FOO=")' removes `FOO' from the
+ environment, rather than inserting it with an empty value.
+
+`realloc'
+ The C standard says a call `realloc (NULL, size)' is equivalent to
+ `malloc (size)', but some old systems don't support this (e.g.,
+ NextStep).
+
+`signal' handler
+ Normally `signal' takes a handler function with a return type of
+ `void', but some old systems required `int' instead. Any actual
+ `int' value returned is not used; this is only a difference in the
+ function prototype demanded.
+
+ All systems we know of in current use return `void'. The `int'
+ was to support K&R C, where of course `void' is not available.
+ The obsolete macro `AC_TYPE_SIGNAL' (*note AC_TYPE_SIGNAL::) can
+ be used to establish the correct type in all cases.
+
+ In most cases, it is more robust to use `sigaction' when it is
+ available, rather than `signal'.
+
+`snprintf'
+ The C99 standard says that if the output array isn't big enough
+ and if no other errors occur, `snprintf' and `vsnprintf' truncate
+ the output and return the number of bytes that ought to have been
+ produced. Some older systems return the truncated length (e.g.,
+ GNU C Library 2.0.x or IRIX 6.5), some a negative value (e.g.,
+ earlier GNU C Library versions), and some the buffer length
+ without truncation (e.g., 32-bit Solaris 7). Also, some buggy
+ older systems ignore the length and overrun the buffer (e.g.,
+ 64-bit Solaris 7).
+
+`sprintf'
+ The C standard says `sprintf' and `vsprintf' return the number of
+ bytes written. On some ancient systems (SunOS 4 for instance)
+ they return the buffer pointer instead, but these no longer need
+ to be worried about.
+
+`sscanf'
+ On various old systems, e.g., HP-UX 9, `sscanf' requires that its
+ input string be writable (though it doesn't actually change it).
+ This can be a problem when using `gcc' since it normally puts
+ constant strings in read-only memory (*note Incompatibilities of
+ GCC: (gcc)Incompatibilities.). Apparently in some cases even
+ having format strings read-only can be a problem.
+
+`strerror_r'
+ Posix specifies that `strerror_r' returns an `int', but many
+ systems (e.g., GNU C Library version 2.2.4) provide a different
+ version returning a `char *'. `AC_FUNC_STRERROR_R' can detect
+ which is in use (*note Particular Functions::).
+
+`strnlen'
+ AIX 4.3 provides a broken version which produces the following
+ results:
+
+ strnlen ("foobar", 0) = 0
+ strnlen ("foobar", 1) = 3
+ strnlen ("foobar", 2) = 2
+ strnlen ("foobar", 3) = 1
+ strnlen ("foobar", 4) = 0
+ strnlen ("foobar", 5) = 6
+ strnlen ("foobar", 6) = 6
+ strnlen ("foobar", 7) = 6
+ strnlen ("foobar", 8) = 6
+ strnlen ("foobar", 9) = 6
+
+`sysconf'
+ `_SC_PAGESIZE' is standard, but some older systems (e.g., HP-UX 9)
+ have `_SC_PAGE_SIZE' instead. This can be tested with `#ifdef'.
+
+`unlink'
+ The Posix spec says that `unlink' causes the given file to be
+ removed only after there are no more open file handles for it.
+ Some non-Posix hosts have trouble with this requirement, though,
+ and some DOS variants even corrupt the file system.
+
+`unsetenv'
+ On MinGW, `unsetenv' is not available, but a variable `FOO' can be
+ removed with a call `putenv ("FOO=")', as described under `putenv'
+ above.
+
+`va_copy'
+ The C99 standard provides `va_copy' for copying `va_list'
+ variables. It may be available in older environments too, though
+ possibly as `__va_copy' (e.g., `gcc' in strict pre-C99 mode).
+ These can be tested with `#ifdef'. A fallback to `memcpy (&dst,
+ &src, sizeof (va_list))' gives maximum portability.
+
+`va_list'
+ `va_list' is not necessarily just a pointer. It can be a `struct'
+ (e.g., `gcc' on Alpha), which means `NULL' is not portable. Or it
+ can be an array (e.g., `gcc' in some PowerPC configurations),
+ which means as a function parameter it can be effectively
+ call-by-reference and library routines might modify the value back
+ in the caller (e.g., `vsnprintf' in the GNU C Library 2.1).
+
+Signed `>>'
+ Normally the C `>>' right shift of a signed type replicates the
+ high bit, giving a so-called "arithmetic" shift. But care should
+ be taken since Standard C doesn't require that behavior. On those
+ few processors without a native arithmetic shift (for instance Cray
+ vector systems) zero bits may be shifted in, the same as a shift
+ of an unsigned type.
+
+Integer `/'
+ C divides signed integers by truncating their quotient toward zero,
+ yielding the same result as Fortran. However, before C99 the
+ standard allowed C implementations to take the floor or ceiling of
+ the quotient in some cases. Hardly any implementations took
+ advantage of this freedom, though, and it's probably not worth
+ worrying about this issue nowadays.
+
+
+File: autoconf.info, Node: Particular Functions, Next: Generic Functions, Prev: Function Portability, Up: Library Functions
+
+5.5.2 Particular Function Checks
+--------------------------------
+
+These macros check for particular C functions--whether they exist, and
+in some cases how they respond when given certain arguments.
+
+ -- Macro: AC_FUNC_ALLOCA
+ Check how to get `alloca'. Tries to get a builtin version by
+ checking for `alloca.h' or the predefined C preprocessor macros
+ `__GNUC__' and `_AIX'. If this macro finds `alloca.h', it defines
+ `HAVE_ALLOCA_H'.
+
+ If those attempts fail, it looks for the function in the standard C
+ library. If any of those methods succeed, it defines
+ `HAVE_ALLOCA'. Otherwise, it sets the output variable `ALLOCA' to
+ `${LIBOBJDIR}alloca.o' and defines `C_ALLOCA' (so programs can
+ periodically call `alloca (0)' to garbage collect). This variable
+ is separate from `LIBOBJS' so multiple programs can share the
+ value of `ALLOCA' without needing to create an actual library, in
+ case only some of them use the code in `LIBOBJS'. The
+ `${LIBOBJDIR}' prefix serves the same purpose as in `LIBOBJS'
+ (*note AC_LIBOBJ vs LIBOBJS::).
+
+ This macro does not try to get `alloca' from the System V R3
+ `libPW' or the System V R4 `libucb' because those libraries
+ contain some incompatible functions that cause trouble. Some
+ versions do not even contain `alloca' or contain a buggy version.
+ If you still want to use their `alloca', use `ar' to extract
+ `alloca.o' from them instead of compiling `alloca.c'.
+
+ Source files that use `alloca' should start with a piece of code
+ like the following, to declare it properly.
+
+ #ifdef STDC_HEADERS
+ # include <stdlib.h>
+ # include <stddef.h>
+ #else
+ # ifdef HAVE_STDLIB_H
+ # include <stdlib.h>
+ # endif
+ #endif
+ #ifdef HAVE_ALLOCA_H
+ # include <alloca.h>
+ #elif !defined alloca
+ # ifdef __GNUC__
+ # define alloca __builtin_alloca
+ # elif defined _AIX
+ # define alloca __alloca
+ # elif defined _MSC_VER
+ # include <malloc.h>
+ # define alloca _alloca
+ # elif !defined HAVE_ALLOCA
+ # ifdef __cplusplus
+ extern "C"
+ # endif
+ void *alloca (size_t);
+ # endif
+ #endif
+
+ -- Macro: AC_FUNC_CHOWN
+ If the `chown' function is available and works (in particular, it
+ should accept `-1' for `uid' and `gid'), define `HAVE_CHOWN'. The
+ result of this macro is cached in the `ac_cv_func_chown_works'
+ variable.
+
+ -- Macro: AC_FUNC_CLOSEDIR_VOID
+ If the `closedir' function does not return a meaningful value,
+ define `CLOSEDIR_VOID'. Otherwise, callers ought to check its
+ return value for an error indicator.
+
+ Currently this test is implemented by running a test program. When
+ cross compiling the pessimistic assumption that `closedir' does not
+ return a meaningful value is made.
+
+ The result of this macro is cached in the
+ `ac_cv_func_closedir_void' variable.
+
+ This macro is obsolescent, as `closedir' returns a meaningful value
+ on current systems. New programs need not use this macro.
+
+ -- Macro: AC_FUNC_ERROR_AT_LINE
+ If the `error_at_line' function is not found, require an
+ `AC_LIBOBJ' replacement of `error'.
+
+ The result of this macro is cached in the `ac_cv_lib_error_at_line'
+ variable.
+
+ The `AC_FUNC_ERROR_AT_LINE' macro is obsolescent. New programs
+ should use Gnulib's `error' module. *Note Gnulib::.
+
+ -- Macro: AC_FUNC_FNMATCH
+ If the `fnmatch' function conforms to Posix, define
+ `HAVE_FNMATCH'. Detect common implementation bugs, for example,
+ the bugs in Solaris 2.4.
+
+ Unlike the other specific `AC_FUNC' macros, `AC_FUNC_FNMATCH' does
+ not replace a broken/missing `fnmatch'. This is for historical
+ reasons. See `AC_REPLACE_FNMATCH' below.
+
+ The result of this macro is cached in the
+ `ac_cv_func_fnmatch_works' variable.
+
+ This macro is obsolescent. New programs should use Gnulib's
+ `fnmatch-posix' module. *Note Gnulib::.
+
+ -- Macro: AC_FUNC_FNMATCH_GNU
+ Behave like `AC_REPLACE_FNMATCH' (_replace_) but also test whether
+ `fnmatch' supports GNU extensions. Detect common implementation
+ bugs, for example, the bugs in the GNU C Library 2.1.
+
+ The result of this macro is cached in the `ac_cv_func_fnmatch_gnu'
+ variable.
+
+ This macro is obsolescent. New programs should use Gnulib's
+ `fnmatch-gnu' module. *Note Gnulib::.
+
+ -- Macro: AC_FUNC_FORK
+ This macro checks for the `fork' and `vfork' functions. If a
+ working `fork' is found, define `HAVE_WORKING_FORK'. This macro
+ checks whether `fork' is just a stub by trying to run it.
+
+ If `vfork.h' is found, define `HAVE_VFORK_H'. If a working
+ `vfork' is found, define `HAVE_WORKING_VFORK'. Otherwise, define
+ `vfork' to be `fork' for backward compatibility with previous
+ versions of `autoconf'. This macro checks for several known
+ errors in implementations of `vfork' and considers the system to
+ not have a working `vfork' if it detects any of them. It is not
+ considered to be an implementation error if a child's invocation
+ of `signal' modifies the parent's signal handler, since child
+ processes rarely change their signal handlers.
+
+ Since this macro defines `vfork' only for backward compatibility
+ with previous versions of `autoconf' you're encouraged to define it
+ yourself in new code:
+ #ifndef HAVE_WORKING_VFORK
+ # define vfork fork
+ #endif
+
+ The results of this macro are cached in the `ac_cv_func_fork_works'
+ and `ac_cv_func_vfork_works' variables. In order to override the
+ test, you also need to set the `ac_cv_func_fork' and
+ `ac_cv_func_vfork' variables.
+
+ -- Macro: AC_FUNC_FSEEKO
+ If the `fseeko' function is available, define `HAVE_FSEEKO'.
+ Define `_LARGEFILE_SOURCE' if necessary to make the prototype
+ visible on some systems (e.g., glibc 2.2). Otherwise linkage
+ problems may occur when compiling with `AC_SYS_LARGEFILE' on
+ largefile-sensitive systems where `off_t' does not default to a
+ 64bit entity. All systems with `fseeko' also supply `ftello'.
+
+ -- Macro: AC_FUNC_GETGROUPS
+ If the `getgroups' function is available and works (unlike on
+ Ultrix 4.3, where `getgroups (0, 0)' always fails), define
+ `HAVE_GETGROUPS'. Set `GETGROUPS_LIBS' to any libraries needed to
+ get that function. This macro runs `AC_TYPE_GETGROUPS'.
+
+ -- Macro: AC_FUNC_GETLOADAVG
+ Check how to get the system load averages. To perform its tests
+ properly, this macro needs the file `getloadavg.c'; therefore, be
+ sure to set the `AC_LIBOBJ' replacement directory properly (see
+ *note Generic Functions::, `AC_CONFIG_LIBOBJ_DIR').
+
+ If the system has the `getloadavg' function, define
+ `HAVE_GETLOADAVG', and set `GETLOADAVG_LIBS' to any libraries
+ necessary to get that function. Also add `GETLOADAVG_LIBS' to
+ `LIBS'. Otherwise, require an `AC_LIBOBJ' replacement for
+ `getloadavg' with source code in `DIR/getloadavg.c', and possibly
+ define several other C preprocessor macros and output variables:
+
+ 1. Define `C_GETLOADAVG'.
+
+ 2. Define `SVR4', `DGUX', `UMAX', or `UMAX4_3' if on those
+ systems.
+
+ 3. If `nlist.h' is found, define `HAVE_NLIST_H'.
+
+ 4. If `struct nlist' has an `n_un.n_name' member, define
+ `HAVE_STRUCT_NLIST_N_UN_N_NAME'. The obsolete symbol
+ `NLIST_NAME_UNION' is still defined, but do not depend upon
+ it.
+
+ 5. Programs may need to be installed set-group-ID (or
+ set-user-ID) for `getloadavg' to work. In this case, define
+ `GETLOADAVG_PRIVILEGED', set the output variable `NEED_SETGID'
+ to `true' (and otherwise to `false'), and set `KMEM_GROUP' to
+ the name of the group that should own the installed program.
+
+ The `AC_FUNC_GETLOADAVG' macro is obsolescent. New programs should
+ use Gnulib's `getloadavg' module. *Note Gnulib::.
+
+ -- Macro: AC_FUNC_GETMNTENT
+ Check for `getmntent' in the standard C library, and then in the
+ `sun', `seq', and `gen' libraries, for UNICOS, IRIX 4, PTX, and
+ UnixWare, respectively. Then, if `getmntent' is available, define
+ `HAVE_GETMNTENT' and set `ac_cv_func_getmntent' to `yes'.
+ Otherwise set `ac_cv_func_getmntent' to `no'.
+
+ The result of this macro can be overridden by setting the cache
+ variable `ac_cv_search_getmntent'.
+
+ -- Macro: AC_FUNC_GETPGRP
+ Define `GETPGRP_VOID' if it is an error to pass 0 to `getpgrp';
+ this is the Posix behavior. On older BSD systems, you must pass 0
+ to `getpgrp', as it takes an argument and behaves like Posix's
+ `getpgid'.
+
+ #ifdef GETPGRP_VOID
+ pid = getpgrp ();
+ #else
+ pid = getpgrp (0);
+ #endif
+
+ This macro does not check whether `getpgrp' exists at all; if you
+ need to work in that situation, first call `AC_CHECK_FUNC' for
+ `getpgrp'.
+
+ The result of this macro is cached in the `ac_cv_func_getpgrp_void'
+ variable.
+
+ This macro is obsolescent, as current systems have a `getpgrp'
+ whose signature conforms to Posix. New programs need not use this
+ macro.
+
+ -- Macro: AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
+ If `link' is a symbolic link, then `lstat' should treat `link/'
+ the same as `link/.'. However, many older `lstat' implementations
+ incorrectly ignore trailing slashes.
+
+ It is safe to assume that if `lstat' incorrectly ignores trailing
+ slashes, then other symbolic-link-aware functions like `unlink'
+ also incorrectly ignore trailing slashes.
+
+ If `lstat' behaves properly, define
+ `LSTAT_FOLLOWS_SLASHED_SYMLINK', otherwise require an `AC_LIBOBJ'
+ replacement of `lstat'.
+
+ The result of this macro is cached in the
+ `ac_cv_func_lstat_dereferences_slashed_symlink' variable.
+
+ The `AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' macro is obsolescent.
+ New programs should use Gnulib's `lstat' module. *Note Gnulib::.
+
+ -- Macro: AC_FUNC_MALLOC
+ If the `malloc' function is compatible with the GNU C library
+ `malloc' (i.e., `malloc (0)' returns a valid pointer), define
+ `HAVE_MALLOC' to 1. Otherwise define `HAVE_MALLOC' to 0, ask for
+ an `AC_LIBOBJ' replacement for `malloc', and define `malloc' to
+ `rpl_malloc' so that the native `malloc' is not used in the main
+ project.
+
+ Typically, the replacement file `malloc.c' should look like (note
+ the `#undef malloc'):
+
+ #include <config.h>
+ #undef malloc
+
+ #include <sys/types.h>
+
+ void *malloc ();
+
+ /* Allocate an N-byte block of memory from the heap.
+ If N is zero, allocate a 1-byte block. */
+
+ void *
+ rpl_malloc (size_t n)
+ {
+ if (n == 0)
+ n = 1;
+ return malloc (n);
+ }
+
+ The result of this macro is cached in the
+ `ac_cv_func_malloc_0_nonnull' variable.
+
+ -- Macro: AC_FUNC_MBRTOWC
+ Define `HAVE_MBRTOWC' to 1 if the function `mbrtowc' and the type
+ `mbstate_t' are properly declared.
+
+ The result of this macro is cached in the `ac_cv_func_mbrtowc'
+ variable.
+
+ -- Macro: AC_FUNC_MEMCMP
+ If the `memcmp' function is not available, or does not work on
+ 8-bit data (like the one on SunOS 4.1.3), or fails when comparing
+ 16 bytes or more and with at least one buffer not starting on a
+ 4-byte boundary (such as the one on NeXT x86 OpenStep), require an
+ `AC_LIBOBJ' replacement for `memcmp'.
+
+ The result of this macro is cached in the
+ `ac_cv_func_memcmp_working' variable.
+
+ This macro is obsolescent, as current systems have a working
+ `memcmp'. New programs need not use this macro.
+
+ -- Macro: AC_FUNC_MKTIME
+ If the `mktime' function is not available, or does not work
+ correctly, require an `AC_LIBOBJ' replacement for `mktime'. For
+ the purposes of this test, `mktime' should conform to the Posix
+ standard and should be the inverse of `localtime'.
+
+ The result of this macro is cached in the
+ `ac_cv_func_working_mktime' variable.
+
+ The `AC_FUNC_MKTIME' macro is obsolescent. New programs should
+ use Gnulib's `mktime' module. *Note Gnulib::.
+
+ -- Macro: AC_FUNC_MMAP
+ If the `mmap' function exists and works correctly, define
+ `HAVE_MMAP'. This checks only private fixed mapping of
+ already-mapped memory.
+
+ The result of this macro is cached in the
+ `ac_cv_func_mmap_fixed_mapped' variable.
+
+ -- Macro: AC_FUNC_OBSTACK
+ If the obstacks are found, define `HAVE_OBSTACK', else require an
+ `AC_LIBOBJ' replacement for `obstack'.
+
+ The result of this macro is cached in the `ac_cv_func_obstack'
+ variable.
+
+ -- Macro: AC_FUNC_REALLOC
+ If the `realloc' function is compatible with the GNU C library
+ `realloc' (i.e., `realloc (NULL, 0)' returns a valid pointer),
+ define `HAVE_REALLOC' to 1. Otherwise define `HAVE_REALLOC' to 0,
+ ask for an `AC_LIBOBJ' replacement for `realloc', and define
+ `realloc' to `rpl_realloc' so that the native `realloc' is not
+ used in the main project. See `AC_FUNC_MALLOC' for details.
+
+ The result of this macro is cached in the
+ `ac_cv_func_realloc_0_nonnull' variable.
+
+ -- Macro: AC_FUNC_SELECT_ARGTYPES
+ Determines the correct type to be passed for each of the `select'
+ function's arguments, and defines those types in
+ `SELECT_TYPE_ARG1', `SELECT_TYPE_ARG234', and `SELECT_TYPE_ARG5'
+ respectively. `SELECT_TYPE_ARG1' defaults to `int',
+ `SELECT_TYPE_ARG234' defaults to `int *', and `SELECT_TYPE_ARG5'
+ defaults to `struct timeval *'.
+
+ This macro is obsolescent, as current systems have a `select' whose
+ signature conforms to Posix. New programs need not use this macro.
+
+ -- Macro: AC_FUNC_SETPGRP
+ If `setpgrp' takes no argument (the Posix version), define
+ `SETPGRP_VOID'. Otherwise, it is the BSD version, which takes two
+ process IDs as arguments. This macro does not check whether
+ `setpgrp' exists at all; if you need to work in that situation,
+ first call `AC_CHECK_FUNC' for `setpgrp'.
+
+ The result of this macro is cached in the `ac_cv_func_setpgrp_void'
+ variable.
+
+ This macro is obsolescent, as current systems have a `setpgrp'
+ whose signature conforms to Posix. New programs need not use this
+ macro.
+
+ -- Macro: AC_FUNC_STAT
+ -- Macro: AC_FUNC_LSTAT
+ Determine whether `stat' or `lstat' have the bug that it succeeds
+ when given the zero-length file name as argument. The `stat' and
+ `lstat' from SunOS 4.1.4 and the Hurd (as of 1998-11-01) do this.
+
+ If it does, then define `HAVE_STAT_EMPTY_STRING_BUG' (or
+ `HAVE_LSTAT_EMPTY_STRING_BUG') and ask for an `AC_LIBOBJ'
+ replacement of it.
+
+ The results of these macros are cached in the
+ `ac_cv_func_stat_empty_string_bug' and the
+ `ac_cv_func_lstat_empty_string_bug' variables, respectively.
+
+ These macros are obsolescent, as no current systems have the bug.
+ New programs need not use these macros.
+
+ -- Macro: AC_FUNC_STRCOLL
+ If the `strcoll' function exists and works correctly, define
+ `HAVE_STRCOLL'. This does a bit more than
+ `AC_CHECK_FUNCS(strcoll)', because some systems have incorrect
+ definitions of `strcoll' that should not be used.
+
+ The result of this macro is cached in the
+ `ac_cv_func_strcoll_works' variable.
+
+ -- Macro: AC_FUNC_STRERROR_R
+ If `strerror_r' is available, define `HAVE_STRERROR_R', and if it
+ is declared, define `HAVE_DECL_STRERROR_R'. If it returns a `char
+ *' message, define `STRERROR_R_CHAR_P'; otherwise it returns an
+ `int' error number. The Thread-Safe Functions option of Posix
+ requires `strerror_r' to return `int', but many systems
+ (including, for example, version 2.2.4 of the GNU C Library)
+ return a `char *' value that is not necessarily equal to the
+ buffer argument.
+
+ The result of this macro is cached in the
+ `ac_cv_func_strerror_r_char_p' variable.
+
+ -- Macro: AC_FUNC_STRFTIME
+ Check for `strftime' in the `intl' library, for SCO Unix. Then,
+ if `strftime' is available, define `HAVE_STRFTIME'.
+
+ This macro is obsolescent, as no current systems require the `intl'
+ library for `strftime'. New programs need not use this macro.
+
+ -- Macro: AC_FUNC_STRTOD
+ If the `strtod' function does not exist or doesn't work correctly,
+ ask for an `AC_LIBOBJ' replacement of `strtod'. In this case,
+ because `strtod.c' is likely to need `pow', set the output
+ variable `POW_LIB' to the extra library needed.
+
+ This macro caches its result in the `ac_cv_func_strtod' variable
+ and depends upon the result in the `ac_cv_func_pow' variable.
+
+ The `AC_FUNC_STRTOD' macro is obsolescent. New programs should
+ use Gnulib's `strtod' module. *Note Gnulib::.
+
+ -- Macro: AC_FUNC_STRTOLD
+ If the `strtold' function exists and conforms to C99, define
+ `HAVE_STRTOLD'.
+
+ This macro caches its result in the `ac_cv_func_strtold' variable.
+
+ -- Macro: AC_FUNC_STRNLEN
+ If the `strnlen' function is not available, or is buggy (like the
+ one from AIX 4.3), require an `AC_LIBOBJ' replacement for it.
+
+ This macro caches its result in the `ac_cv_func_strnlen_working'
+ variable.
+
+ -- Macro: AC_FUNC_UTIME_NULL
+ If `utime (FILE, NULL)' sets FILE's timestamp to the present,
+ define `HAVE_UTIME_NULL'.
+
+ This macro caches its result in the `ac_cv_func_utime_null'
+ variable.
+
+ This macro is obsolescent, as all current systems have a `utime'
+ that behaves this way. New programs need not use this macro.
+
+ -- Macro: AC_FUNC_VPRINTF
+ If `vprintf' is found, define `HAVE_VPRINTF'. Otherwise, if
+ `_doprnt' is found, define `HAVE_DOPRNT'. (If `vprintf' is
+ available, you may assume that `vfprintf' and `vsprintf' are also
+ available.)
+
+ This macro is obsolescent, as all current systems have `vprintf'.
+ New programs need not use this macro.
+
+ -- Macro: AC_REPLACE_FNMATCH
+ If the `fnmatch' function does not conform to Posix (see
+ `AC_FUNC_FNMATCH'), ask for its `AC_LIBOBJ' replacement.
+
+ The files `fnmatch.c', `fnmatch_loop.c', and `fnmatch_.h' in the
+ `AC_LIBOBJ' replacement directory are assumed to contain a copy of
+ the source code of GNU `fnmatch'. If necessary, this source code
+ is compiled as an `AC_LIBOBJ' replacement, and the `fnmatch_.h'
+ file is linked to `fnmatch.h' so that it can be included in place
+ of the system `<fnmatch.h>'.
+
+ This macro caches its result in the `ac_cv_func_fnmatch_works'
+ variable.
+
+ This macro is obsolescent, as it assumes the use of particular
+ source files. New programs should use Gnulib's `fnmatch-posix'
+ module, which provides this macro along with the source files.
+ *Note Gnulib::.
+
+
+File: autoconf.info, Node: Generic Functions, Prev: Particular Functions, Up: Library Functions
+
+5.5.3 Generic Function Checks
+-----------------------------
+
+These macros are used to find functions not covered by the "particular"
+test macros. If the functions might be in libraries other than the
+default C library, first call `AC_CHECK_LIB' for those libraries. If
+you need to check the behavior of a function as well as find out
+whether it is present, you have to write your own test for it (*note
+Writing Tests::).
+
+ -- Macro: AC_CHECK_FUNC (FUNCTION, [ACTION-IF-FOUND],
+ [ACTION-IF-NOT-FOUND])
+ If C function FUNCTION is available, run shell commands
+ ACTION-IF-FOUND, otherwise ACTION-IF-NOT-FOUND. If you just want
+ to define a symbol if the function is available, consider using
+ `AC_CHECK_FUNCS' instead. This macro checks for functions with C
+ linkage even when `AC_LANG(C++)' has been called, since C is more
+ standardized than C++. (*note Language Choice::, for more
+ information about selecting the language for checks.)
+
+ This macro caches its result in the `ac_cv_func_FUNCTION' variable.
+
+ -- Macro: AC_CHECK_FUNCS (FUNCTION..., [ACTION-IF-FOUND],
+ [ACTION-IF-NOT-FOUND])
+ For each FUNCTION enumerated in the blank-or-newline-separated
+ argument list, define `HAVE_FUNCTION' (in all capitals) if it is
+ available. If ACTION-IF-FOUND is given, it is additional shell
+ code to execute when one of the functions is found. You can give
+ it a value of `break' to break out of the loop on the first match.
+ If ACTION-IF-NOT-FOUND is given, it is executed when one of the
+ functions is not found.
+
+ Results are cached for each FUNCTION as in `AC_CHECK_FUNC'.
+
+ -- Macro: AC_CHECK_FUNCS_ONCE (FUNCTION...)
+ For each FUNCTION enumerated in the blank-or-newline-separated
+ argument list, define `HAVE_FUNCTION' (in all capitals) if it is
+ available. This is a once-only variant of `AC_CHECK_FUNCS'. It
+ generates the checking code at most once, so that `configure' is
+ smaller and faster; but the checks cannot be conditionalized and
+ are always done once, early during the `configure' run.
+
+
+ Autoconf follows a philosophy that was formed over the years by those
+who have struggled for portability: isolate the portability issues in
+specific files, and then program as if you were in a Posix environment.
+Some functions may be missing or unfixable, and your package must be
+ready to replace them.
+
+ Suitable replacements for many such problem functions are available
+from Gnulib (*note Gnulib::).
+
+ -- Macro: AC_LIBOBJ (FUNCTION)
+ Specify that `FUNCTION.c' must be included in the executables to
+ replace a missing or broken implementation of FUNCTION.
+
+ Technically, it adds `FUNCTION.$ac_objext' to the output variable
+ `LIBOBJS' if it is not already in, and calls `AC_LIBSOURCE' for
+ `FUNCTION.c'. You should not directly change `LIBOBJS', since
+ this is not traceable.
+
+ -- Macro: AC_LIBSOURCE (FILE)
+ Specify that FILE might be needed to compile the project. If you
+ need to know what files might be needed by a `configure.ac', you
+ should trace `AC_LIBSOURCE'. FILE must be a literal.
+
+ This macro is called automatically from `AC_LIBOBJ', but you must
+ call it explicitly if you pass a shell variable to `AC_LIBOBJ'. In
+ that case, since shell variables cannot be traced statically, you
+ must pass to `AC_LIBSOURCE' any possible files that the shell
+ variable might cause `AC_LIBOBJ' to need. For example, if you
+ want to pass a variable `$foo_or_bar' to `AC_LIBOBJ' that holds
+ either `"foo"' or `"bar"', you should do:
+
+ AC_LIBSOURCE([foo.c])
+ AC_LIBSOURCE([bar.c])
+ AC_LIBOBJ([$foo_or_bar])
+
+ There is usually a way to avoid this, however, and you are
+ encouraged to simply call `AC_LIBOBJ' with literal arguments.
+
+ Note that this macro replaces the obsolete `AC_LIBOBJ_DECL', with
+ slightly different semantics: the old macro took the function name,
+ e.g., `foo', as its argument rather than the file name.
+
+ -- Macro: AC_LIBSOURCES (FILES)
+ Like `AC_LIBSOURCE', but accepts one or more FILES in a
+ comma-separated M4 list. Thus, the above example might be
+ rewritten:
+
+ AC_LIBSOURCES([foo.c, bar.c])
+ AC_LIBOBJ([$foo_or_bar])
+
+ -- Macro: AC_CONFIG_LIBOBJ_DIR (DIRECTORY)
+ Specify that `AC_LIBOBJ' replacement files are to be found in
+ DIRECTORY, a name relative to the top level of the source tree.
+ The replacement directory defaults to `.', the top level
+ directory, and the most typical value is `lib', corresponding to
+ `AC_CONFIG_LIBOBJ_DIR([lib])'.
+
+ `configure' might need to know the replacement directory for the
+ following reasons: (i) some checks use the replacement files, (ii)
+ some macros bypass broken system headers by installing links to the
+ replacement headers (iii) when used in conjunction with Automake,
+ within each makefile, DIRECTORY is used as a relative path from
+ `$(top_srcdir)' to each object named in `LIBOBJS' and `LTLIBOBJS',
+ etc.
+
+
+ It is common to merely check for the existence of a function, and ask
+for its `AC_LIBOBJ' replacement if missing. The following macro is a
+convenient shorthand.
+
+ -- Macro: AC_REPLACE_FUNCS (FUNCTION...)
+ Like `AC_CHECK_FUNCS', but uses `AC_LIBOBJ(FUNCTION)' as
+ ACTION-IF-NOT-FOUND. You can declare your replacement function by
+ enclosing the prototype in `#ifndef HAVE_FUNCTION'. If the system
+ has the function, it probably declares it in a header file you
+ should be including, so you shouldn't redeclare it lest your
+ declaration conflict.
+
+
+File: autoconf.info, Node: Header Files, Next: Declarations, Prev: Library Functions, Up: Existing Tests
+
+5.6 Header Files
+================
+
+The following macros check for the presence of certain C header files.
+If there is no macro specifically defined to check for a header file
+you need, and you don't need to check for any special properties of it,
+then you can use one of the general header-file check macros.
+
+* Menu:
+
+* Header Portability:: Collected knowledge on common headers
+* Particular Headers:: Special handling to find certain headers
+* Generic Headers:: How to find other headers
+
+
+File: autoconf.info, Node: Header Portability, Next: Particular Headers, Up: Header Files
+
+5.6.1 Portability of Headers
+----------------------------
+
+This section documents some collected knowledge about common headers,
+and the problems they cause. By definition, this list always requires
+additions. A much more complete list is maintained by the Gnulib
+project (*note Gnulib::), covering *note Posix Headers: (gnulib)Header
+File Substitutes. and *note Glibc Headers: (gnulib)Glibc Header File
+Substitutes. Please help us keep the gnulib list as complete as
+possible.
+
+`limits.h'
+ C99 says that `limits.h' defines `LLONG_MIN', `LLONG_MAX', and
+ `ULLONG_MAX', but many almost-C99 environments (e.g., default GCC
+ 4.0.2 + glibc 2.4) do not define them.
+
+`inttypes.h' vs. `stdint.h'
+ The C99 standard says that `inttypes.h' includes `stdint.h', so
+ there's no need to include `stdint.h' separately in a standard
+ environment. Some implementations have `inttypes.h' but not
+ `stdint.h' (e.g., Solaris 7), but we don't know of any
+ implementation that has `stdint.h' but not `inttypes.h'.
+
+`linux/irda.h'
+ It requires `linux/types.h' and `sys/socket.h'.
+
+`linux/random.h'
+ It requires `linux/types.h'.
+
+`net/if.h'
+ On Darwin, this file requires that `sys/socket.h' be included
+ beforehand. One should run:
+
+ AC_CHECK_HEADERS([sys/socket.h])
+ AC_CHECK_HEADERS([net/if.h], [], [],
+ [#include <stdio.h>
+ #ifdef STDC_HEADERS
+ # include <stdlib.h>
+ # include <stddef.h>
+ #else
+ # ifdef HAVE_STDLIB_H
+ # include <stdlib.h>
+ # endif
+ #endif
+ #ifdef HAVE_SYS_SOCKET_H
+ # include <sys/socket.h>
+ #endif
+ ])
+
+`netinet/if_ether.h'
+ On Darwin, this file requires that `stdio.h' and `sys/socket.h' be
+ included beforehand. One should run:
+
+ AC_CHECK_HEADERS([sys/socket.h])
+ AC_CHECK_HEADERS([netinet/if_ether.h], [], [],
+ [#include <stdio.h>
+ #ifdef STDC_HEADERS
+ # include <stdlib.h>
+ # include <stddef.h>
+ #else
+ # ifdef HAVE_STDLIB_H
+ # include <stdlib.h>
+ # endif
+ #endif
+ #ifdef HAVE_SYS_SOCKET_H
+ # include <sys/socket.h>
+ #endif
+ ])
+
+`stdint.h'
+ See above, item `inttypes.h' vs. `stdint.h'.
+
+`stdlib.h'
+ On many systems (e.g., Darwin), `stdio.h' is a prerequisite.
+
+`sys/mount.h'
+ On FreeBSD 4.8 on ia32 and using gcc version 2.95.4,
+ `sys/params.h' is a prerequisite.
+
+`sys/ptem.h'
+ On Solaris 8, `sys/stream.h' is a prerequisite.
+
+`sys/socket.h'
+ On Darwin, `stdlib.h' is a prerequisite.
+
+`sys/ucred.h'
+ On Tru64 5.1, `sys/types.h' is a prerequisite.
+
+`X11/extensions/scrnsaver.h'
+ Using XFree86, this header requires `X11/Xlib.h', which is probably
+ so required that you might not even consider looking for it.
+
+ AC_CHECK_HEADERS([X11/extensions/scrnsaver.h], [], [],
+ [[#include <X11/Xlib.h>
+ ]])
+
+
+File: autoconf.info, Node: Particular Headers, Next: Generic Headers, Prev: Header Portability, Up: Header Files
+
+5.6.2 Particular Header Checks
+------------------------------
+
+These macros check for particular system header files--whether they
+exist, and in some cases whether they declare certain symbols.
+
+ -- Macro: AC_CHECK_HEADER_STDBOOL
+ Check whether `stdbool.h' exists and conforms to C99, and cache the
+ result in the `ac_cv_header_stdbool_h' variable. If the type
+ `_Bool' is defined, define `HAVE__BOOL' to 1.
+
+ This macro is intended for use by Gnulib (*note Gnulib::) and other
+ packages that supply a substitute `stdbool.h' on platforms lacking
+ a conforming one. The `AC_HEADER_STDBOOL' macro is better for code
+ that explicitly checks for `stdbool.h'.
+
+ -- Macro: AC_HEADER_ASSERT
+ Check whether to enable assertions in the style of `assert.h'.
+ Assertions are enabled by default, but the user can override this
+ by invoking `configure' with the `--disable-assert' option.
+
+ -- Macro: AC_HEADER_DIRENT
+ Check for the following header files. For the first one that is
+ found and defines `DIR', define the listed C preprocessor macro:
+
+ `dirent.h' `HAVE_DIRENT_H'
+ `sys/ndir.h' `HAVE_SYS_NDIR_H'
+ `sys/dir.h' `HAVE_SYS_DIR_H'
+ `ndir.h' `HAVE_NDIR_H'
+
+ The directory-library declarations in your source code should look
+ something like the following:
+
+ #include <sys/types.h>
+ #ifdef HAVE_DIRENT_H
+ # include <dirent.h>
+ # define NAMLEN(dirent) strlen ((dirent)->d_name)
+ #else
+ # define dirent direct
+ # define NAMLEN(dirent) ((dirent)->d_namlen)
+ # ifdef HAVE_SYS_NDIR_H
+ # include <sys/ndir.h>
+ # endif
+ # ifdef HAVE_SYS_DIR_H
+ # include <sys/dir.h>
+ # endif
+ # ifdef HAVE_NDIR_H
+ # include <ndir.h>
+ # endif
+ #endif
+
+ Using the above declarations, the program would declare variables
+ to be of type `struct dirent', not `struct direct', and would
+ access the length of a directory entry name by passing a pointer
+ to a `struct dirent' to the `NAMLEN' macro.
+
+ This macro also checks for the SCO Xenix `dir' and `x' libraries.
+
+ This macro is obsolescent, as all current systems with directory
+ libraries have `<dirent.h>'. New programs need not use this macro.
+
+ Also see `AC_STRUCT_DIRENT_D_INO' and `AC_STRUCT_DIRENT_D_TYPE'
+ (*note Particular Structures::).
+
+ -- Macro: AC_HEADER_MAJOR
+ If `sys/types.h' does not define `major', `minor', and `makedev',
+ but `sys/mkdev.h' does, define `MAJOR_IN_MKDEV'; otherwise, if
+ `sys/sysmacros.h' does, define `MAJOR_IN_SYSMACROS'.
+
+ -- Macro: AC_HEADER_RESOLV
+ Checks for header `resolv.h', checking for prerequisites first.
+ To properly use `resolv.h', your code should contain something like
+ the following:
+
+ #ifdef HAVE_SYS_TYPES_H
+ # include <sys/types.h>
+ #endif
+ #ifdef HAVE_NETINET_IN_H
+ # include <netinet/in.h> /* inet_ functions / structs */
+ #endif
+ #ifdef HAVE_ARPA_NAMESER_H
+ # include <arpa/nameser.h> /* DNS HEADER struct */
+ #endif
+ #ifdef HAVE_NETDB_H
+ # include <netdb.h>
+ #endif
+ #include <resolv.h>
+
+ -- Macro: AC_HEADER_STAT
+ If the macros `S_ISDIR', `S_ISREG', etc. defined in `sys/stat.h'
+ do not work properly (returning false positives), define
+ `STAT_MACROS_BROKEN'. This is the case on Tektronix UTekV, Amdahl
+ UTS and Motorola System V/88.
+
+ This macro is obsolescent, as no current systems have the bug.
+ New programs need not use this macro.
+
+ -- Macro: AC_HEADER_STDBOOL
+ If `stdbool.h' exists and conforms to C99, define `HAVE_STDBOOL_H'
+ to 1; if the type `_Bool' is defined, define `HAVE__BOOL' to 1.
+ To fulfill the C99 requirements, your program could contain the
+ following code:
+
+ #ifdef HAVE_STDBOOL_H
+ # include <stdbool.h>
+ #else
+ # ifndef HAVE__BOOL
+ # ifdef __cplusplus
+ typedef bool _Bool;
+ # else
+ # define _Bool signed char
+ # endif
+ # endif
+ # define bool _Bool
+ # define false 0
+ # define true 1
+ # define __bool_true_false_are_defined 1
+ #endif
+
+ Alternatively you can use the `stdbool' package of Gnulib (*note
+ Gnulib::). It simplifies your code so that it can say just
+ `#include <stdbool.h>', and it adds support for less-common
+ platforms.
+
+ This macro caches its result in the `ac_cv_header_stdbool_h'
+ variable.
+
+ This macro differs from `AC_CHECK_HEADER_STDBOOL' only in that it
+ defines `HAVE_STDBOOL_H' whereas `AC_CHECK_HEADER_STDBOOL' does
+ not.
+
+ -- Macro: AC_HEADER_STDC
+ Define `STDC_HEADERS' if the system has C header files conforming
+ to ANSI C89 (ISO C90). Specifically, this macro checks for
+ `stdlib.h', `stdarg.h', `string.h', and `float.h'; if the system
+ has those, it probably has the rest of the C89 header files. This
+ macro also checks whether `string.h' declares `memchr' (and thus
+ presumably the other `mem' functions), whether `stdlib.h' declare
+ `free' (and thus presumably `malloc' and other related functions),
+ and whether the `ctype.h' macros work on characters with the high
+ bit set, as the C standard requires.
+
+ If you use this macro, your code can refer to `STDC_HEADERS' to
+ determine whether the system has conforming header files (and
+ probably C library functions).
+
+ This macro caches its result in the `ac_cv_header_stdc' variable.
+
+ This macro is obsolescent, as current systems have conforming
+ header files. New programs need not use this macro.
+
+ Nowadays `string.h' is part of the C standard and declares
+ functions like `strcpy', and `strings.h' is standardized by Posix
+ and declares BSD functions like `bcopy'; but historically, string
+ functions were a major sticking point in this area. If you still
+ want to worry about portability to ancient systems without
+ standard headers, there is so much variation that it is probably
+ easier to declare the functions you use than to figure out exactly
+ what the system header files declare. Some ancient systems
+ contained a mix of functions from the C standard and from BSD;
+ some were mostly standard but lacked `memmove'; some defined the
+ BSD functions as macros in `string.h' or `strings.h'; some had
+ only the BSD functions but `string.h'; some declared the memory
+ functions in `memory.h', some in `string.h'; etc. It is probably
+ sufficient to check for one string function and one memory
+ function; if the library had the standard versions of those then
+ it probably had most of the others. If you put the following in
+ `configure.ac':
+
+ # This example is obsolescent.
+ # Nowadays you can omit these macro calls.
+ AC_HEADER_STDC
+ AC_CHECK_FUNCS([strchr memcpy])
+
+ then, in your code, you can use declarations like this:
+
+ /* This example is obsolescent.
+ Nowadays you can just #include <string.h>. */
+ #ifdef STDC_HEADERS
+ # include <string.h>
+ #else
+ # ifndef HAVE_STRCHR
+ # define strchr index
+ # define strrchr rindex
+ # endif
+ char *strchr (), *strrchr ();
+ # ifndef HAVE_MEMCPY
+ # define memcpy(d, s, n) bcopy ((s), (d), (n))
+ # define memmove(d, s, n) bcopy ((s), (d), (n))
+ # endif
+ #endif
+
+ If you use a function like `memchr', `memset', `strtok', or
+ `strspn', which have no BSD equivalent, then macros don't suffice
+ to port to ancient hosts; you must provide an implementation of
+ each function. An easy way to incorporate your implementations
+ only when needed (since the ones in system C libraries may be hand
+ optimized) is to, taking `memchr' for example, put it in
+ `memchr.c' and use `AC_REPLACE_FUNCS([memchr])'.
+
+ -- Macro: AC_HEADER_SYS_WAIT
+ If `sys/wait.h' exists and is compatible with Posix, define
+ `HAVE_SYS_WAIT_H'. Incompatibility can occur if `sys/wait.h' does
+ not exist, or if it uses the old BSD `union wait' instead of `int'
+ to store a status value. If `sys/wait.h' is not Posix compatible,
+ then instead of including it, define the Posix macros with their
+ usual interpretations. Here is an example:
+
+ #include <sys/types.h>
+ #ifdef HAVE_SYS_WAIT_H
+ # include <sys/wait.h>
+ #endif
+ #ifndef WEXITSTATUS
+ # define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8)
+ #endif
+ #ifndef WIFEXITED
+ # define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
+ #endif
+
+ This macro caches its result in the `ac_cv_header_sys_wait_h'
+ variable.
+
+ This macro is obsolescent, as current systems are compatible with
+ Posix. New programs need not use this macro.
+
+ `_POSIX_VERSION' is defined when `unistd.h' is included on Posix
+systems. If there is no `unistd.h', it is definitely not a Posix
+system. However, some non-Posix systems do have `unistd.h'.
+
+ The way to check whether the system supports Posix is:
+
+ #ifdef HAVE_UNISTD_H
+ # include <sys/types.h>
+ # include <unistd.h>
+ #endif
+
+ #ifdef _POSIX_VERSION
+ /* Code for Posix systems. */
+ #endif
+
+ -- Macro: AC_HEADER_TIME
+ If a program may include both `time.h' and `sys/time.h', define
+ `TIME_WITH_SYS_TIME'. On some ancient systems, `sys/time.h'
+ included `time.h', but `time.h' was not protected against multiple
+ inclusion, so programs could not explicitly include both files.
+ This macro is useful in programs that use, for example, `struct
+ timeval' as well as `struct tm'. It is best used in conjunction
+ with `HAVE_SYS_TIME_H', which can be checked for using
+ `AC_CHECK_HEADERS([sys/time.h])'.
+
+ #ifdef TIME_WITH_SYS_TIME
+ # include <sys/time.h>
+ # include <time.h>
+ #else
+ # ifdef HAVE_SYS_TIME_H
+ # include <sys/time.h>
+ # else
+ # include <time.h>
+ # endif
+ #endif
+
+ This macro caches its result in the `ac_cv_header_time' variable.
+
+ This macro is obsolescent, as current systems can include both
+ files when they exist. New programs need not use this macro.
+
+ -- Macro: AC_HEADER_TIOCGWINSZ
+ If the use of `TIOCGWINSZ' requires `<sys/ioctl.h>', then define
+ `GWINSZ_IN_SYS_IOCTL'. Otherwise `TIOCGWINSZ' can be found in
+ `<termios.h>'.
+
+ Use:
+
+ #ifdef HAVE_TERMIOS_H
+ # include <termios.h>
+ #endif
+
+ #ifdef GWINSZ_IN_SYS_IOCTL
+ # include <sys/ioctl.h>
+ #endif
+
+
+File: autoconf.info, Node: Generic Headers, Prev: Particular Headers, Up: Header Files
+
+5.6.3 Generic Header Checks
+---------------------------
+
+These macros are used to find system header files not covered by the
+"particular" test macros. If you need to check the contents of a header
+as well as find out whether it is present, you have to write your own
+test for it (*note Writing Tests::).
+
+ -- Macro: AC_CHECK_HEADER (HEADER-FILE, [ACTION-IF-FOUND],
+ [ACTION-IF-NOT-FOUND], [INCLUDES])
+ If the system header file HEADER-FILE is compilable, execute shell
+ commands ACTION-IF-FOUND, otherwise execute ACTION-IF-NOT-FOUND.
+ If you just want to define a symbol if the header file is
+ available, consider using `AC_CHECK_HEADERS' instead.
+
+ INCLUDES is decoded to determine the appropriate include
+ directives. If omitted or empty, `configure' will check for both
+ header existence (with the preprocessor) and usability (with the
+ compiler), using `AC_INCLUDES_DEFAULT' for the compile test. If
+ there is a discrepancy between the results, a warning is issued to
+ the user, and the compiler results are favored (*note Present But
+ Cannot Be Compiled::). In general, favoring the compiler results
+ means that a header will be treated as not found even though the
+ file exists, because you did not provide enough prerequisites.
+
+ Providing a non-empty INCLUDES argument allows the code to provide
+ any prerequisites prior to including the header under test; it is
+ common to use the argument `AC_INCLUDES_DEFAULT' (*note Default
+ Includes::). With an explicit fourth argument, no preprocessor
+ test is needed. As a special case, an INCLUDES of exactly `-'
+ triggers the older preprocessor check, which merely determines
+ existence of the file in the preprocessor search path; this should
+ only be used as a last resort (it is safer to determine the actual
+ prerequisites and perform a compiler check, or else use
+ `AC_PREPROC_IFELSE' to make it obvious that only a preprocessor
+ check is desired).
+
+ This macro caches its result in the `ac_cv_header_HEADER-FILE'
+ variable, with characters not suitable for a variable name mapped
+ to underscores.
+
+ -- Macro: AC_CHECK_HEADERS (HEADER-FILE..., [ACTION-IF-FOUND],
+ [ACTION-IF-NOT-FOUND], [INCLUDES])
+ For each given system header file HEADER-FILE in the
+ blank-separated argument list that exists, define
+ `HAVE_HEADER-FILE' (in all capitals). If ACTION-IF-FOUND is
+ given, it is additional shell code to execute when one of the
+ header files is found. You can give it a value of `break' to
+ break out of the loop on the first match. If ACTION-IF-NOT-FOUND
+ is given, it is executed when one of the header files is not found.
+
+ INCLUDES is interpreted as in `AC_CHECK_HEADER', in order to
+ choose the set of preprocessor directives supplied before the
+ header under test.
+
+ This macro caches its result in the `ac_cv_header_HEADER-FILE'
+ variable, with characters not suitable for a variable name mapped
+ to underscores.
+
+ Previous versions of Autoconf merely checked whether the header was
+accepted by the preprocessor. This was changed because the old test was
+inappropriate for typical uses. Headers are typically used to compile,
+not merely to preprocess, and the old behavior sometimes accepted
+headers that clashed at compile-time (*note Present But Cannot Be
+Compiled::). If you need to check whether a header is preprocessable,
+you can use `AC_PREPROC_IFELSE' (*note Running the Preprocessor::).
+
+ Actually requiring a header to compile improves the robustness of the
+test, but it also requires that you make sure that headers that must be
+included before the HEADER-FILE be part of the INCLUDES, (*note Default
+Includes::). If looking for `bar.h', which requires that `foo.h' be
+included before if it exists, we suggest the following scheme:
+
+AC_CHECK_HEADERS([foo.h])
+AC_CHECK_HEADERS([bar.h], [], [],
+[#ifdef HAVE_FOO_H
+# include <foo.h>
+#endif
+])
+
+ The following variant generates smaller, faster `configure' files if
+you do not need the full power of `AC_CHECK_HEADERS'.
+
+ -- Macro: AC_CHECK_HEADERS_ONCE (HEADER-FILE...)
+ For each given system header file HEADER-FILE in the
+ blank-separated argument list that exists, define
+ `HAVE_HEADER-FILE' (in all capitals). This is a once-only variant
+ of `AC_CHECK_HEADERS'. It generates the checking code at most
+ once, so that `configure' is smaller and faster; but the checks
+ cannot be conditionalized and are always done once, early during
+ the `configure' run. Thus, this macro is only safe for checking
+ headers that do not have prerequisites beyond what
+ `AC_INCLUDES_DEFAULT' provides.
+
+
+File: autoconf.info, Node: Declarations, Next: Structures, Prev: Header Files, Up: Existing Tests
+
+5.7 Declarations
+================
+
+The following macros check for the declaration of variables and
+functions. If there is no macro specifically defined to check for a
+symbol you need, then you can use the general macros (*note Generic
+Declarations::) or, for more complex tests, you may use
+`AC_COMPILE_IFELSE' (*note Running the Compiler::).
+
+* Menu:
+
+* Particular Declarations:: Macros to check for certain declarations
+* Generic Declarations:: How to find other declarations
+
+
+File: autoconf.info, Node: Particular Declarations, Next: Generic Declarations, Up: Declarations
+
+5.7.1 Particular Declaration Checks
+-----------------------------------
+
+There are no specific macros for declarations.
+
+
+File: autoconf.info, Node: Generic Declarations, Prev: Particular Declarations, Up: Declarations
+
+5.7.2 Generic Declaration Checks
+--------------------------------
+
+These macros are used to find declarations not covered by the
+"particular" test macros.
+
+ -- Macro: AC_CHECK_DECL (SYMBOL, [ACTION-IF-FOUND],
+ [ACTION-IF-NOT-FOUND], [INCLUDES = `AC_INCLUDES_DEFAULT'])
+ If SYMBOL (a function, variable, or constant) is not declared in
+ INCLUDES and a declaration is needed, run the shell commands
+ ACTION-IF-NOT-FOUND, otherwise ACTION-IF-FOUND. INCLUDES is a
+ series of include directives, defaulting to `AC_INCLUDES_DEFAULT'
+ (*note Default Includes::), which are used prior to the
+ declaration under test.
+
+ This macro actually tests whether SYMBOL is defined as a macro or
+ can be used as an r-value, not whether it is really declared,
+ because it is much safer to avoid introducing extra declarations
+ when they are not needed. In order to facilitate use of C++ and
+ overloaded function declarations, it is possible to specify
+ function argument types in parentheses for types which can be
+ zero-initialized:
+
+ AC_CHECK_DECL([basename(char *)])
+
+ This macro caches its result in the `ac_cv_have_decl_SYMBOL'
+ variable, with characters not suitable for a variable name mapped
+ to underscores.
+
+ -- Macro: AC_CHECK_DECLS (SYMBOLS, [ACTION-IF-FOUND],
+ [ACTION-IF-NOT-FOUND], [INCLUDES = `AC_INCLUDES_DEFAULT'])
+ For each of the SYMBOLS (_comma_-separated list with optional
+ function argument types for C++ overloads), define
+ `HAVE_DECL_SYMBOL' (in all capitals) to `1' if SYMBOL is declared,
+ otherwise to `0'. If ACTION-IF-NOT-FOUND is given, it is
+ additional shell code to execute when one of the function
+ declarations is needed, otherwise ACTION-IF-FOUND is executed.
+
+ INCLUDES is a series of include directives, defaulting to
+ `AC_INCLUDES_DEFAULT' (*note Default Includes::), which are used
+ prior to the declarations under test.
+
+ This macro uses an M4 list as first argument:
+ AC_CHECK_DECLS([strdup])
+ AC_CHECK_DECLS([strlen])
+ AC_CHECK_DECLS([malloc, realloc, calloc, free])
+ AC_CHECK_DECLS([j0], [], [], [[#include <math.h>]])
+ AC_CHECK_DECLS([[basename(char *)], [dirname(char *)]])
+
+ Unlike the other `AC_CHECK_*S' macros, when a SYMBOL is not
+ declared, `HAVE_DECL_SYMBOL' is defined to `0' instead of leaving
+ `HAVE_DECL_SYMBOL' undeclared. When you are _sure_ that the check
+ was performed, use `HAVE_DECL_SYMBOL' in `#if':
+
+ #if !HAVE_DECL_SYMBOL
+ extern char *symbol;
+ #endif
+
+ If the test may have not been performed, however, because it is
+ safer _not_ to declare a symbol than to use a declaration that
+ conflicts with the system's one, you should use:
+
+ #if defined HAVE_DECL_MALLOC && !HAVE_DECL_MALLOC
+ void *malloc (size_t *s);
+ #endif
+
+ You fall into the second category only in extreme situations:
+ either your files may be used without being configured, or they
+ are used during the configuration. In most cases the traditional
+ approach is enough.
+
+ This macro caches its results in `ac_cv_have_decl_SYMBOL'
+ variables, with characters not suitable for a variable name mapped
+ to underscores.
+
+ -- Macro: AC_CHECK_DECLS_ONCE (SYMBOLS)
+ For each of the SYMBOLS (_comma_-separated list), define
+ `HAVE_DECL_SYMBOL' (in all capitals) to `1' if SYMBOL is declared
+ in the default include files, otherwise to `0'. This is a
+ once-only variant of `AC_CHECK_DECLS'. It generates the checking
+ code at most once, so that `configure' is smaller and faster; but
+ the checks cannot be conditionalized and are always done once,
+ early during the `configure' run.
+
+
+File: autoconf.info, Node: Structures, Next: Types, Prev: Declarations, Up: Existing Tests
+
+5.8 Structures
+==============
+
+The following macros check for the presence of certain members in C
+structures. If there is no macro specifically defined to check for a
+member you need, then you can use the general structure-member macros
+(*note Generic Structures::) or, for more complex tests, you may use
+`AC_COMPILE_IFELSE' (*note Running the Compiler::).
+
+* Menu:
+
+* Particular Structures:: Macros to check for certain structure members
+* Generic Structures:: How to find other structure members
+
+
+File: autoconf.info, Node: Particular Structures, Next: Generic Structures, Up: Structures
+
+5.8.1 Particular Structure Checks
+---------------------------------
+
+The following macros check for certain structures or structure members.
+
+ -- Macro: AC_STRUCT_DIRENT_D_INO
+ Perform all the actions of `AC_HEADER_DIRENT' (*note Particular
+ Headers::). Then, if `struct dirent' contains a `d_ino' member,
+ define `HAVE_STRUCT_DIRENT_D_INO'.
+
+ `HAVE_STRUCT_DIRENT_D_INO' indicates only the presence of `d_ino',
+ not whether its contents are always reliable. Traditionally, a
+ zero `d_ino' indicated a deleted directory entry, though current
+ systems hide this detail from the user and never return zero
+ `d_ino' values. Many current systems report an incorrect `d_ino'
+ for a directory entry that is a mount point.
+
+ -- Macro: AC_STRUCT_DIRENT_D_TYPE
+ Perform all the actions of `AC_HEADER_DIRENT' (*note Particular
+ Headers::). Then, if `struct dirent' contains a `d_type' member,
+ define `HAVE_STRUCT_DIRENT_D_TYPE'.
+
+ -- Macro: AC_STRUCT_ST_BLOCKS
+ If `struct stat' contains an `st_blocks' member, define
+ `HAVE_STRUCT_STAT_ST_BLOCKS'. Otherwise, require an `AC_LIBOBJ'
+ replacement of `fileblocks'. The former name, `HAVE_ST_BLOCKS' is
+ to be avoided, as its support will cease in the future.
+
+ This macro caches its result in the
+ `ac_cv_member_struct_stat_st_blocks' variable.
+
+ -- Macro: AC_STRUCT_TM
+ If `time.h' does not define `struct tm', define `TM_IN_SYS_TIME',
+ which means that including `sys/time.h' had better define `struct
+ tm'.
+
+ This macro is obsolescent, as `time.h' defines `struct tm' in
+ current systems. New programs need not use this macro.
+
+ -- Macro: AC_STRUCT_TIMEZONE
+ Figure out how to get the current timezone. If `struct tm' has a
+ `tm_zone' member, define `HAVE_STRUCT_TM_TM_ZONE' (and the
+ obsoleted `HAVE_TM_ZONE'). Otherwise, if the external array
+ `tzname' is found, define `HAVE_TZNAME'; if it is declared, define
+ `HAVE_DECL_TZNAME'.
+
+
+File: autoconf.info, Node: Generic Structures, Prev: Particular Structures, Up: Structures
+
+5.8.2 Generic Structure Checks
+------------------------------
+
+These macros are used to find structure members not covered by the
+"particular" test macros.
+
+ -- Macro: AC_CHECK_MEMBER (AGGREGATE.MEMBER, [ACTION-IF-FOUND],
+ [ACTION-IF-NOT-FOUND], [INCLUDES = `AC_INCLUDES_DEFAULT'])
+ Check whether MEMBER is a member of the aggregate AGGREGATE. If
+ no INCLUDES are specified, the default includes are used (*note
+ Default Includes::).
+
+ AC_CHECK_MEMBER([struct passwd.pw_gecos], [],
+ [AC_MSG_ERROR([we need `passwd.pw_gecos'])],
+ [[#include <pwd.h>]])
+
+ You can use this macro for submembers:
+
+ AC_CHECK_MEMBER(struct top.middle.bot)
+
+ This macro caches its result in the
+ `ac_cv_member_AGGREGATE_MEMBER' variable, with characters not
+ suitable for a variable name mapped to underscores.
+
+ -- Macro: AC_CHECK_MEMBERS (MEMBERS, [ACTION-IF-FOUND],
+ [ACTION-IF-NOT-FOUND], [INCLUDES = `AC_INCLUDES_DEFAULT'])
+ Check for the existence of each `AGGREGATE.MEMBER' of MEMBERS
+ using the previous macro. When MEMBER belongs to AGGREGATE,
+ define `HAVE_AGGREGATE_MEMBER' (in all capitals, with spaces and
+ dots replaced by underscores). If ACTION-IF-FOUND is given, it is
+ executed for each of the found members. If ACTION-IF-NOT-FOUND is
+ given, it is executed for each of the members that could not be
+ found.
+
+ INCLUDES is a series of include directives, defaulting to
+ `AC_INCLUDES_DEFAULT' (*note Default Includes::), which are used
+ prior to the members under test.
+
+ This macro uses M4 lists:
+ AC_CHECK_MEMBERS([struct stat.st_rdev, struct stat.st_blksize])
+
+
+File: autoconf.info, Node: Types, Next: Compilers and Preprocessors, Prev: Structures, Up: Existing Tests
+
+5.9 Types
+=========
+
+The following macros check for C types, either builtin or typedefs. If
+there is no macro specifically defined to check for a type you need, and
+you don't need to check for any special properties of it, then you can
+use a general type-check macro.
+
+* Menu:
+
+* Particular Types:: Special handling to find certain types
+* Generic Types:: How to find other types
+
+
+File: autoconf.info, Node: Particular Types, Next: Generic Types, Up: Types
+
+5.9.1 Particular Type Checks
+----------------------------
+
+These macros check for particular C types in `sys/types.h', `stdlib.h',
+`stdint.h', `inttypes.h' and others, if they exist.
+
+ The Gnulib `stdint' module is an alternate way to define many of
+these symbols; it is useful if you prefer your code to assume a
+C99-or-better environment. *Note Gnulib::.
+
+ -- Macro: AC_TYPE_GETGROUPS
+ Define `GETGROUPS_T' to be whichever of `gid_t' or `int' is the
+ base type of the array argument to `getgroups'.
+
+ This macro caches the base type in the `ac_cv_type_getgroups'
+ variable.
+
+ -- Macro: AC_TYPE_INT8_T
+ If `stdint.h' or `inttypes.h' does not define the type `int8_t',
+ define `int8_t' to a signed integer type that is exactly 8 bits
+ wide and that uses two's complement representation, if such a type
+ exists. If you are worried about porting to hosts that lack such
+ a type, you can use the results of this macro in C89-or-later code
+ as follows:
+
+ #if HAVE_STDINT_H
+ # include <stdint.h>
+ #endif
+ #if defined INT8_MAX || defined int8_t
+ _code using int8_t_
+ #else
+ _complicated alternative using >8-bit 'signed char'_
+ #endif
+
+ This macro caches the type in the `ac_cv_c_int8_t' variable.
+
+ -- Macro: AC_TYPE_INT16_T
+ This is like `AC_TYPE_INT8_T', except for 16-bit integers.
+
+ -- Macro: AC_TYPE_INT32_T
+ This is like `AC_TYPE_INT8_T', except for 32-bit integers.
+
+ -- Macro: AC_TYPE_INT64_T
+ This is like `AC_TYPE_INT8_T', except for 64-bit integers.
+
+ -- Macro: AC_TYPE_INTMAX_T
+ If `stdint.h' or `inttypes.h' defines the type `intmax_t', define
+ `HAVE_INTMAX_T'. Otherwise, define `intmax_t' to the widest
+ signed integer type.
+
+ -- Macro: AC_TYPE_INTPTR_T
+ If `stdint.h' or `inttypes.h' defines the type `intptr_t', define
+ `HAVE_INTPTR_T'. Otherwise, define `intptr_t' to a signed integer
+ type wide enough to hold a pointer, if such a type exists.
+
+ -- Macro: AC_TYPE_LONG_DOUBLE
+ If the C compiler supports a working `long double' type, define
+ `HAVE_LONG_DOUBLE'. The `long double' type might have the same
+ range and precision as `double'.
+
+ This macro caches its result in the `ac_cv_type_long_double'
+ variable.
+
+ This macro is obsolescent, as current C compilers support `long
+ double'. New programs need not use this macro.
+
+ -- Macro: AC_TYPE_LONG_DOUBLE_WIDER
+ If the C compiler supports a working `long double' type with more
+ range or precision than the `double' type, define
+ `HAVE_LONG_DOUBLE_WIDER'.
+
+ This macro caches its result in the `ac_cv_type_long_double_wider'
+ variable.
+
+ -- Macro: AC_TYPE_LONG_LONG_INT
+ If the C compiler supports a working `long long int' type, define
+ `HAVE_LONG_LONG_INT'. However, this test does not test `long long
+ int' values in preprocessor `#if' expressions, because too many
+ compilers mishandle such expressions. *Note Preprocessor
+ Arithmetic::.
+
+ This macro caches its result in the `ac_cv_type_long_long_int'
+ variable.
+
+ -- Macro: AC_TYPE_MBSTATE_T
+ Define `HAVE_MBSTATE_T' if `<wchar.h>' declares the `mbstate_t'
+ type. Also, define `mbstate_t' to be a type if `<wchar.h>' does
+ not declare it.
+
+ This macro caches its result in the `ac_cv_type_mbstate_t'
+ variable.
+
+ -- Macro: AC_TYPE_MODE_T
+ Define `mode_t' to a suitable type, if standard headers do not
+ define it.
+
+ This macro caches its result in the `ac_cv_type_mode_t' variable.
+
+ -- Macro: AC_TYPE_OFF_T
+ Define `off_t' to a suitable type, if standard headers do not
+ define it.
+
+ This macro caches its result in the `ac_cv_type_off_t' variable.
+
+ -- Macro: AC_TYPE_PID_T
+ Define `pid_t' to a suitable type, if standard headers do not
+ define it.
+
+ This macro caches its result in the `ac_cv_type_pid_t' variable.
+
+ -- Macro: AC_TYPE_SIZE_T
+ Define `size_t' to a suitable type, if standard headers do not
+ define it.
+
+ This macro caches its result in the `ac_cv_type_size_t' variable.
+
+ -- Macro: AC_TYPE_SSIZE_T
+ Define `ssize_t' to a suitable type, if standard headers do not
+ define it.
+
+ This macro caches its result in the `ac_cv_type_ssize_t' variable.
+
+ -- Macro: AC_TYPE_UID_T
+ Define `uid_t' and `gid_t' to suitable types, if standard headers
+ do not define them.
+
+ This macro caches its result in the `ac_cv_type_uid_t' variable.
+
+ -- Macro: AC_TYPE_UINT8_T
+ If `stdint.h' or `inttypes.h' does not define the type `uint8_t',
+ define `uint8_t' to an unsigned integer type that is exactly 8
+ bits wide, if such a type exists. This is like `AC_TYPE_INT8_T',
+ except for unsigned integers.
+
+ -- Macro: AC_TYPE_UINT16_T
+ This is like `AC_TYPE_UINT8_T', except for 16-bit integers.
+
+ -- Macro: AC_TYPE_UINT32_T
+ This is like `AC_TYPE_UINT8_T', except for 32-bit integers.
+
+ -- Macro: AC_TYPE_UINT64_T
+ This is like `AC_TYPE_UINT8_T', except for 64-bit integers.
+
+ -- Macro: AC_TYPE_UINTMAX_T
+ If `stdint.h' or `inttypes.h' defines the type `uintmax_t', define
+ `HAVE_UINTMAX_T'. Otherwise, define `uintmax_t' to the widest
+ unsigned integer type.
+
+ -- Macro: AC_TYPE_UINTPTR_T
+ If `stdint.h' or `inttypes.h' defines the type `uintptr_t', define
+ `HAVE_UINTPTR_T'. Otherwise, define `uintptr_t' to an unsigned
+ integer type wide enough to hold a pointer, if such a type exists.
+
+ -- Macro: AC_TYPE_UNSIGNED_LONG_LONG_INT
+ If the C compiler supports a working `unsigned long long int' type,
+ define `HAVE_UNSIGNED_LONG_LONG_INT'. However, this test does not
+ test `unsigned long long int' values in preprocessor `#if'
+ expressions, because too many compilers mishandle such expressions.
+ *Note Preprocessor Arithmetic::.
+
+ This macro caches its result in the
+ `ac_cv_type_unsigned_long_long_int' variable.
+
+
+File: autoconf.info, Node: Generic Types, Prev: Particular Types, Up: Types
+
+5.9.2 Generic Type Checks
+-------------------------
+
+These macros are used to check for types not covered by the "particular"
+test macros.
+
+ -- Macro: AC_CHECK_TYPE (TYPE, [ACTION-IF-FOUND],
+ [ACTION-IF-NOT-FOUND], [INCLUDES = `AC_INCLUDES_DEFAULT'])
+ Check whether TYPE is defined. It may be a compiler builtin type
+ or defined by the INCLUDES. INCLUDES is a series of include
+ directives, defaulting to `AC_INCLUDES_DEFAULT' (*note Default
+ Includes::), which are used prior to the type under test.
+
+ In C, TYPE must be a type-name, so that the expression `sizeof
+ (TYPE)' is valid (but `sizeof ((TYPE))' is not). The same test is
+ applied when compiling for C++, which means that in C++ TYPE
+ should be a type-id and should not be an anonymous `struct' or
+ `union'.
+
+ This macro caches its result in the `ac_cv_type_TYPE' variable,
+ with `*' mapped to `p' and other characters not suitable for a
+ variable name mapped to underscores.
+
+ -- Macro: AC_CHECK_TYPES (TYPES, [ACTION-IF-FOUND],
+ [ACTION-IF-NOT-FOUND], [INCLUDES = `AC_INCLUDES_DEFAULT'])
+ For each TYPE of the TYPES that is defined, define `HAVE_TYPE' (in
+ all capitals). Each TYPE must follow the rules of
+ `AC_CHECK_TYPE'. If no INCLUDES are specified, the default
+ includes are used (*note Default Includes::). If ACTION-IF-FOUND
+ is given, it is additional shell code to execute when one of the
+ types is found. If ACTION-IF-NOT-FOUND is given, it is executed
+ when one of the types is not found.
+
+ This macro uses M4 lists:
+ AC_CHECK_TYPES([ptrdiff_t])
+ AC_CHECK_TYPES([unsigned long long int, uintmax_t])
+ AC_CHECK_TYPES([float_t], [], [], [[#include <math.h>]])
+
+
+ Autoconf, up to 2.13, used to provide to another version of
+`AC_CHECK_TYPE', broken by design. In order to keep backward
+compatibility, a simple heuristic, quite safe but not totally, is
+implemented. In case of doubt, read the documentation of the former
+`AC_CHECK_TYPE', see *note Obsolete Macros::.
+
+
+File: autoconf.info, Node: Compilers and Preprocessors, Next: System Services, Prev: Types, Up: Existing Tests
+
+5.10 Compilers and Preprocessors
+================================
+
+All the tests for compilers (`AC_PROG_CC', `AC_PROG_CXX',
+`AC_PROG_F77') define the output variable `EXEEXT' based on the output
+of the compiler, typically to the empty string if Posix and `.exe' if a
+DOS variant.
+
+ They also define the output variable `OBJEXT' based on the output of
+the compiler, after `.c' files have been excluded, typically to `o' if
+Posix, `obj' if a DOS variant.
+
+ If the compiler being used does not produce executables, the tests
+fail. If the executables can't be run, and cross-compilation is not
+enabled, they fail too. *Note Manual Configuration::, for more on
+support for cross compiling.
+
+* Menu:
+
+* Specific Compiler Characteristics:: Some portability issues
+* Generic Compiler Characteristics:: Language independent tests and features
+* C Compiler:: Checking its characteristics
+* C++ Compiler:: Likewise
+* Objective C Compiler:: Likewise
+* Objective C++ Compiler:: Likewise
+* Erlang Compiler and Interpreter:: Likewise
+* Fortran Compiler:: Likewise
+* Go Compiler:: Likewise
+
+
+File: autoconf.info, Node: Specific Compiler Characteristics, Next: Generic Compiler Characteristics, Up: Compilers and Preprocessors
+
+5.10.1 Specific Compiler Characteristics
+----------------------------------------
+
+Some compilers exhibit different behaviors.
+
+Static/Dynamic Expressions
+ Autoconf relies on a trick to extract one bit of information from
+ the C compiler: using negative array sizes. For instance the
+ following excerpt of a C source demonstrates how to test whether
+ `int' objects are 4 bytes wide:
+
+ static int test_array[sizeof (int) == 4 ? 1 : -1];
+
+ To our knowledge, there is a single compiler that does not support
+ this trick: the HP C compilers (the real ones, not only the
+ "bundled") on HP-UX 11.00. They incorrectly reject the above
+ program with the diagnostic "Variable-length arrays cannot have
+ static storage." This bug comes from HP compilers' mishandling of
+ `sizeof (int)', not from the `? 1 : -1', and Autoconf works around
+ this problem by casting `sizeof (int)' to `long int' before
+ comparing it.
+
+
+File: autoconf.info, Node: Generic Compiler Characteristics, Next: C Compiler, Prev: Specific Compiler Characteristics, Up: Compilers and Preprocessors
+
+5.10.2 Generic Compiler Characteristics
+---------------------------------------
+
+ -- Macro: AC_CHECK_SIZEOF (TYPE-OR-EXPR, [UNUSED], [INCLUDES =
+ `AC_INCLUDES_DEFAULT'])
+ Define `SIZEOF_TYPE-OR-EXPR' (*note Standard Symbols::) to be the
+ size in bytes of TYPE-OR-EXPR, which may be either a type or an
+ expression returning a value that has a size. If the expression
+ `sizeof (TYPE-OR-EXPR)' is invalid, the result is 0. INCLUDES is
+ a series of include directives, defaulting to
+ `AC_INCLUDES_DEFAULT' (*note Default Includes::), which are used
+ prior to the expression under test.
+
+ This macro now works even when cross-compiling. The UNUSED
+ argument was used when cross-compiling.
+
+ For example, the call
+
+ AC_CHECK_SIZEOF([int *])
+
+ defines `SIZEOF_INT_P' to be 8 on DEC Alpha AXP systems.
+
+ This macro caches its result in the `ac_cv_sizeof_TYPE-OR-EXPR'
+ variable, with `*' mapped to `p' and other characters not suitable
+ for a variable name mapped to underscores.
+
+ -- Macro: AC_CHECK_ALIGNOF (TYPE, [INCLUDES = `AC_INCLUDES_DEFAULT'])
+ Define `ALIGNOF_TYPE' (*note Standard Symbols::) to be the
+ alignment in bytes of TYPE. `TYPE y;' must be valid as a
+ structure member declaration. If `type' is unknown, the result is
+ 0. If no INCLUDES are specified, the default includes are used
+ (*note Default Includes::).
+
+ This macro caches its result in the `ac_cv_alignof_TYPE-OR-EXPR'
+ variable, with `*' mapped to `p' and other characters not suitable
+ for a variable name mapped to underscores.
+
+ -- Macro: AC_COMPUTE_INT (VAR, EXPRESSION, [INCLUDES =
+ `AC_INCLUDES_DEFAULT'], [ACTION-IF-FAILS])
+ Store into the shell variable VAR the value of the integer
+ EXPRESSION. The value should fit in an initializer in a C
+ variable of type `signed long'. To support cross compilation (in
+ which case, the macro only works on hosts that use twos-complement
+ arithmetic), it should be possible to evaluate the expression at
+ compile-time. If no INCLUDES are specified, the default includes
+ are used (*note Default Includes::).
+
+ Execute ACTION-IF-FAILS if the value cannot be determined
+ correctly.
+
+ -- Macro: AC_LANG_WERROR
+ Normally Autoconf ignores warnings generated by the compiler,
+ linker, and preprocessor. If this macro is used, warnings count
+ as fatal errors for the current language. This macro is useful
+ when the results of configuration are used where warnings are
+ unacceptable; for instance, if parts of a program are built with
+ the GCC `-Werror' option. If the whole program is built using
+ `-Werror' it is often simpler to put `-Werror' in the compiler
+ flags (`CFLAGS', etc.).
+
+ -- Macro: AC_OPENMP
+ OpenMP (http://www.openmp.org/) specifies extensions of C, C++,
+ and Fortran that simplify optimization of shared memory
+ parallelism, which is a common problem on multicore CPUs.
+
+ If the current language is C, the macro `AC_OPENMP' sets the
+ variable `OPENMP_CFLAGS' to the C compiler flags needed for
+ supporting OpenMP. `OPENMP_CFLAGS' is set to empty if the
+ compiler already supports OpenMP, if it has no way to activate
+ OpenMP support, or if the user rejects OpenMP support by invoking
+ `configure' with the `--disable-openmp' option.
+
+ `OPENMP_CFLAGS' needs to be used when compiling programs, when
+ preprocessing program source, and when linking programs.
+ Therefore you need to add `$(OPENMP_CFLAGS)' to the `CFLAGS' of C
+ programs that use OpenMP. If you preprocess OpenMP-specific C
+ code, you also need to add `$(OPENMP_CFLAGS)' to `CPPFLAGS'. The
+ presence of OpenMP support is revealed at compile time by the
+ preprocessor macro `_OPENMP'.
+
+ Linking a program with `OPENMP_CFLAGS' typically adds one more
+ shared library to the program's dependencies, so its use is
+ recommended only on programs that actually require OpenMP.
+
+ If the current language is C++, `AC_OPENMP' sets the variable
+ `OPENMP_CXXFLAGS', suitably for the C++ compiler. The same remarks
+ hold as for C.
+
+ If the current language is Fortran 77 or Fortran, `AC_OPENMP' sets
+ the variable `OPENMP_FFLAGS' or `OPENMP_FCFLAGS', respectively.
+ Similar remarks as for C hold, except that `CPPFLAGS' is not used
+ for Fortran, and no preprocessor macro signals OpenMP support.
+
+ For portability, it is best to avoid spaces between `#' and
+ `pragma omp'. That is, write `#pragma omp', not `# pragma omp'.
+ The Sun WorkShop 6.2 C compiler chokes on the latter.
+
+ This macro caches its result in the `ac_cv_prog_c_openmp',
+ `ac_cv_prog_cxx_openmp', `ac_cv_prog_f77_openmp', or
+ `ac_cv_prog_fc_openmp' variable, depending on the current language.
+
+
+File: autoconf.info, Node: C Compiler, Next: C++ Compiler, Prev: Generic Compiler Characteristics, Up: Compilers and Preprocessors
+
+5.10.3 C Compiler Characteristics
+---------------------------------
+
+The following macros provide ways to find and exercise a C Compiler.
+There are a few constructs that ought to be avoided, but do not deserve
+being checked for, since they can easily be worked around.
+
+Don't use lines containing solitary backslashes
+ They tickle a bug in the HP-UX C compiler (checked on HP-UX 10.20,
+ 11.00, and 11i). When given the following source:
+
+ #ifdef __STDC__
+ /\
+ * A comment with backslash-newlines in it. %{ %} *\
+ \
+ /
+ char str[] = "\\
+ " A string with backslash-newlines in it %{ %} \\
+ "";
+ char apostrophe = '\\
+ \
+ '\
+ ';
+ #endif
+
+ the compiler incorrectly fails with the diagnostics
+ "Non-terminating comment at end of file" and "Missing `#endif' at
+ end of file." Removing the lines with solitary backslashes solves
+ the problem.
+
+Don't compile several files at once if output matters to you
+ Some compilers, such as HP's, report names of files being compiled
+ when given more than one file operand. For instance:
+
+ $ cc a.c b.c
+ a.c:
+ b.c:
+
+ This can cause problems if you observe the output of the compiler
+ to detect failures. Invoking `cc -c a.c && cc -c b.c && cc -o c
+ a.o b.o' solves the issue.
+
+Don't rely on `#error' failing
+ The IRIX C compiler does not fail when #error is preprocessed; it
+ simply emits a diagnostic and continues, exiting successfully. So,
+ instead of an error directive like `#error "Unsupported word size"'
+ it is more portable to use an invalid directive like `#Unsupported
+ word size' in Autoconf tests. In ordinary source code, `#error' is
+ OK, since installers with inadequate compilers like IRIX can simply
+ examine these compilers' diagnostic output.
+
+Don't rely on correct `#line' support
+ On Solaris, `c89' (at least Sun C 5.3 through 5.8) diagnoses
+ `#line' directives whose line numbers are greater than 32767.
+ Nothing in Posix makes this invalid. That is why Autoconf stopped
+ issuing `#line' directives.
+
+ -- Macro: AC_PROG_CC ([COMPILER-SEARCH-LIST])
+ Determine a C compiler to use. If `CC' is not already set in the
+ environment, check for `gcc' and `cc', then for other C compilers.
+ Set output variable `CC' to the name of the compiler found.
+
+ This macro may, however, be invoked with an optional first argument
+ which, if specified, must be a blank-separated list of C compilers
+ to search for. This just gives the user an opportunity to specify
+ an alternative search list for the C compiler. For example, if
+ you didn't like the default order, then you could invoke
+ `AC_PROG_CC' like this:
+
+ AC_PROG_CC([gcc cl cc])
+
+ If the C compiler does not handle function prototypes correctly by
+ default, try to add an option to output variable `CC' to make it
+ so. This macro tries various options that select
+ standard-conformance modes on various systems.
+
+ After calling this macro you can check whether the C compiler has
+ been set to accept ANSI C89 (ISO C90); if not, the shell variable
+ `ac_cv_prog_cc_c89' is set to `no'. See also `AC_C_PROTOTYPES'
+ below.
+
+ If using the GNU C compiler, set shell variable `GCC' to `yes'.
+ If output variable `CFLAGS' was not already set, set it to `-g
+ -O2' for the GNU C compiler (`-O2' on systems where GCC does not
+ accept `-g'), or `-g' for other compilers. If your package does
+ not like this default, then it is acceptable to insert the line `:
+ ${CFLAGS=""}' after `AC_INIT' and before `AC_PROG_CC' to select an
+ empty default instead.
+
+ Many Autoconf macros use a compiler, and thus call
+ `AC_REQUIRE([AC_PROG_CC])' to ensure that the compiler has been
+ determined before the body of the outermost `AC_DEFUN' macro.
+ Although `AC_PROG_CC' is safe to directly expand multiple times, it
+ performs certain checks (such as the proper value of `EXEEXT') only
+ on the first invocation. Therefore, care must be used when
+ invoking this macro from within another macro rather than at the
+ top level (*note Expanded Before Required::).
+
+ -- Macro: AC_PROG_CC_C_O
+ If the C compiler does not accept the `-c' and `-o' options
+ simultaneously, define `NO_MINUS_C_MINUS_O'. This macro actually
+ tests both the compiler found by `AC_PROG_CC', and, if different,
+ the first `cc' in the path. The test fails if one fails. This
+ macro was created for GNU Make to choose the default C compilation
+ rule.
+
+ For the compiler COMPILER, this macro caches its result in the
+ `ac_cv_prog_cc_COMPILER_c_o' variable.
+
+ -- Macro: AC_PROG_CPP
+ Set output variable `CPP' to a command that runs the C
+ preprocessor. If `$CC -E' doesn't work, `/lib/cpp' is used. It
+ is only portable to run `CPP' on files with a `.c' extension.
+
+ Some preprocessors don't indicate missing include files by the
+ error status. For such preprocessors an internal variable is set
+ that causes other macros to check the standard error from the
+ preprocessor and consider the test failed if any warnings have
+ been reported. For most preprocessors, though, warnings do not
+ cause include-file tests to fail unless `AC_PROG_CPP_WERROR' is
+ also specified.
+
+ -- Macro: AC_PROG_CPP_WERROR
+ This acts like `AC_PROG_CPP', except it treats warnings from the
+ preprocessor as errors even if the preprocessor exit status
+ indicates success. This is useful for avoiding headers that
+ generate mandatory warnings, such as deprecation notices.
+
+ The following macros check for C compiler or machine architecture
+features. To check for characteristics not listed here, use
+`AC_COMPILE_IFELSE' (*note Running the Compiler::) or `AC_RUN_IFELSE'
+(*note Runtime::).
+
+ -- Macro: AC_PROG_CC_STDC
+ If the C compiler cannot compile ISO Standard C (currently C99),
+ try to add an option to output variable `CC' to make it work. If
+ the compiler does not support C99, fall back to supporting ANSI
+ C89 (ISO C90).
+
+ After calling this macro you can check whether the C compiler has
+ been set to accept Standard C; if not, the shell variable
+ `ac_cv_prog_cc_stdc' is set to `no'.
+
+ -- Macro: AC_PROG_CC_C89
+ If the C compiler is not in ANSI C89 (ISO C90) mode by default,
+ try to add an option to output variable `CC' to make it so. This
+ macro tries various options that select ANSI C89 on some system or
+ another, preferring extended functionality modes over strict
+ conformance modes. It considers the compiler to be in ANSI C89
+ mode if it handles function prototypes correctly.
+
+ After calling this macro you can check whether the C compiler has
+ been set to accept ANSI C89; if not, the shell variable
+ `ac_cv_prog_cc_c89' is set to `no'.
+
+ This macro is called automatically by `AC_PROG_CC'.
+
+ -- Macro: AC_PROG_CC_C99
+ If the C compiler is not in C99 mode by default, try to add an
+ option to output variable `CC' to make it so. This macro tries
+ various options that select C99 on some system or another,
+ preferring extended functionality modes over strict conformance
+ modes. It considers the compiler to be in C99 mode if it handles
+ `_Bool', `//' comments, flexible array members, `inline', signed
+ and unsigned `long long int', mixed code and declarations, named
+ initialization of structs, `restrict', `va_copy', varargs macros,
+ variable declarations in `for' loops, and variable length arrays.
+
+ After calling this macro you can check whether the C compiler has
+ been set to accept C99; if not, the shell variable
+ `ac_cv_prog_cc_c99' is set to `no'.
+
+ -- Macro: AC_C_BACKSLASH_A
+ Define `HAVE_C_BACKSLASH_A' to 1 if the C compiler understands
+ `\a'.
+
+ This macro is obsolescent, as current C compilers understand `\a'.
+ New programs need not use this macro.
+
+ -- Macro: AC_C_BIGENDIAN ([ACTION-IF-TRUE], [ACTION-IF-FALSE],
+ [ACTION-IF-UNKNOWN], [ACTION-IF-UNIVERSAL])
+ If words are stored with the most significant byte first (like
+ Motorola and SPARC CPUs), execute ACTION-IF-TRUE. If words are
+ stored with the least significant byte first (like Intel and VAX
+ CPUs), execute ACTION-IF-FALSE.
+
+ This macro runs a test-case if endianness cannot be determined
+ from the system header files. When cross-compiling, the test-case
+ is not run but grep'ed for some magic values. ACTION-IF-UNKNOWN
+ is executed if the latter case fails to determine the byte sex of
+ the host system.
+
+ In some cases a single run of a compiler can generate code for
+ multiple architectures. This can happen, for example, when
+ generating Mac OS X universal binary files, which work on both
+ PowerPC and Intel architectures. In this case, the different
+ variants might be for different architectures whose endiannesses
+ differ. If `configure' detects this, it executes
+ ACTION-IF-UNIVERSAL instead of ACTION-IF-UNKNOWN.
+
+ The default for ACTION-IF-TRUE is to define `WORDS_BIGENDIAN'.
+ The default for ACTION-IF-FALSE is to do nothing. The default for
+ ACTION-IF-UNKNOWN is to abort configure and tell the installer how
+ to bypass this test. And finally, the default for
+ ACTION-IF-UNIVERSAL is to ensure that `WORDS_BIGENDIAN' is defined
+ if and only if a universal build is detected and the current code
+ is big-endian; this default works only if `autoheader' is used
+ (*note autoheader Invocation::).
+
+ If you use this macro without specifying ACTION-IF-UNIVERSAL, you
+ should also use `AC_CONFIG_HEADERS'; otherwise `WORDS_BIGENDIAN'
+ may be set incorrectly for Mac OS X universal binary files.
+
+ -- Macro: AC_C_CONST
+ If the C compiler does not fully support the `const' keyword,
+ define `const' to be empty. Some C compilers that do not define
+ `__STDC__' do support `const'; some compilers that define
+ `__STDC__' do not completely support `const'. Programs can simply
+ use `const' as if every C compiler supported it; for those that
+ don't, the makefile or configuration header file defines it as
+ empty.
+
+ Occasionally installers use a C++ compiler to compile C code,
+ typically because they lack a C compiler. This causes problems
+ with `const', because C and C++ treat `const' differently. For
+ example:
+
+ const int foo;
+
+ is valid in C but not in C++. These differences unfortunately
+ cannot be papered over by defining `const' to be empty.
+
+ If `autoconf' detects this situation, it leaves `const' alone, as
+ this generally yields better results in practice. However, using a
+ C++ compiler to compile C code is not recommended or supported, and
+ installers who run into trouble in this area should get a C
+ compiler like GCC to compile their C code.
+
+ This macro caches its result in the `ac_cv_c_const' variable.
+
+ This macro is obsolescent, as current C compilers support `const'.
+ New programs need not use this macro.
+
+ -- Macro: AC_C_RESTRICT
+ If the C compiler recognizes a variant spelling for the `restrict'
+ keyword (`__restrict', `__restrict__', or `_Restrict'), then
+ define `restrict' to that; this is more likely to do the right
+ thing with compilers that support language variants where plain
+ `restrict' is not a keyword. Otherwise, if the C compiler
+ recognizes the `restrict' keyword, don't do anything. Otherwise,
+ define `restrict' to be empty. Thus, programs may simply use
+ `restrict' as if every C compiler supported it; for those that do
+ not, the makefile or configuration header defines it away.
+
+ Although support in C++ for the `restrict' keyword is not
+ required, several C++ compilers do accept the keyword. This macro
+ works for them, too.
+
+ This macro caches `no' in the `ac_cv_c_restrict' variable if
+ `restrict' is not supported, and a supported spelling otherwise.
+
+ -- Macro: AC_C_VOLATILE
+ If the C compiler does not understand the keyword `volatile',
+ define `volatile' to be empty. Programs can simply use `volatile'
+ as if every C compiler supported it; for those that do not, the
+ makefile or configuration header defines it as empty.
+
+ If the correctness of your program depends on the semantics of
+ `volatile', simply defining it to be empty does, in a sense, break
+ your code. However, given that the compiler does not support
+ `volatile', you are at its mercy anyway. At least your program
+ compiles, when it wouldn't before. *Note Volatile Objects::, for
+ more about `volatile'.
+
+ In general, the `volatile' keyword is a standard C feature, so you
+ might expect that `volatile' is available only when `__STDC__' is
+ defined. However, Ultrix 4.3's native compiler does support
+ volatile, but does not define `__STDC__'.
+
+ This macro is obsolescent, as current C compilers support
+ `volatile'. New programs need not use this macro.
+
+ -- Macro: AC_C_INLINE
+ If the C compiler supports the keyword `inline', do nothing.
+ Otherwise define `inline' to `__inline__' or `__inline' if it
+ accepts one of those, otherwise define `inline' to be empty.
+
+ -- Macro: AC_C_CHAR_UNSIGNED
+ If the C type `char' is unsigned, define `__CHAR_UNSIGNED__',
+ unless the C compiler predefines it.
+
+ These days, using this macro is not necessary. The same
+ information can be determined by this portable alternative, thus
+ avoiding the use of preprocessor macros in the namespace reserved
+ for the implementation.
+
+ #include <limits.h>
+ #if CHAR_MIN == 0
+ # define CHAR_UNSIGNED 1
+ #endif
+
+ -- Macro: AC_C_STRINGIZE
+ If the C preprocessor supports the stringizing operator, define
+ `HAVE_STRINGIZE'. The stringizing operator is `#' and is found in
+ macros such as this:
+
+ #define x(y) #y
+
+ This macro is obsolescent, as current C compilers support the
+ stringizing operator. New programs need not use this macro.
+
+ -- Macro: AC_C_FLEXIBLE_ARRAY_MEMBER
+ If the C compiler supports flexible array members, define
+ `FLEXIBLE_ARRAY_MEMBER' to nothing; otherwise define it to 1.
+ That way, a declaration like this:
+
+ struct s
+ {
+ size_t n_vals;
+ double val[FLEXIBLE_ARRAY_MEMBER];
+ };
+
+ will let applications use the "struct hack" even with compilers
+ that do not support flexible array members. To allocate and use
+ such an object, you can use code like this:
+
+ size_t i;
+ size_t n = compute_value_count ();
+ struct s *p =
+ malloc (offsetof (struct s, val)
+ + n * sizeof (double));
+ p->n_vals = n;
+ for (i = 0; i < n; i++)
+ p->val[i] = compute_value (i);
+
+ -- Macro: AC_C_VARARRAYS
+ If the C compiler supports variable-length arrays, define
+ `HAVE_C_VARARRAYS'. A variable-length array is an array of
+ automatic storage duration whose length is determined at run time,
+ when the array is declared.
+
+ -- Macro: AC_C_TYPEOF
+ If the C compiler supports GCC's `typeof' syntax either directly or
+ through a different spelling of the keyword (e.g., `__typeof__'),
+ define `HAVE_TYPEOF'. If the support is available only through a
+ different spelling, define `typeof' to that spelling.
+
+ -- Macro: AC_C_PROTOTYPES
+ If function prototypes are understood by the compiler (as
+ determined by `AC_PROG_CC'), define `PROTOTYPES' and
+ `__PROTOTYPES'. Defining `__PROTOTYPES' is for the benefit of
+ header files that cannot use macros that infringe on user name
+ space.
+
+ This macro is obsolescent, as current C compilers support
+ prototypes. New programs need not use this macro.
+
+ -- Macro: AC_PROG_GCC_TRADITIONAL
+ Add `-traditional' to output variable `CC' if using the GNU C
+ compiler and `ioctl' does not work properly without
+ `-traditional'. That usually happens when the fixed header files
+ have not been installed on an old system.
+
+ This macro is obsolescent, since current versions of the GNU C
+ compiler fix the header files automatically when installed.
+
+
+File: autoconf.info, Node: C++ Compiler, Next: Objective C Compiler, Prev: C Compiler, Up: Compilers and Preprocessors
+
+5.10.4 C++ Compiler Characteristics
+-----------------------------------
+
+ -- Macro: AC_PROG_CXX ([COMPILER-SEARCH-LIST])
+ Determine a C++ compiler to use. Check whether the environment
+ variable `CXX' or `CCC' (in that order) is set; if so, then set
+ output variable `CXX' to its value.
+
+ Otherwise, if the macro is invoked without an argument, then
+ search for a C++ compiler under the likely names (first `g++' and
+ `c++' then other names). If none of those checks succeed, then as
+ a last resort set `CXX' to `g++'.
+
+ This macro may, however, be invoked with an optional first argument
+ which, if specified, must be a blank-separated list of C++
+ compilers to search for. This just gives the user an opportunity
+ to specify an alternative search list for the C++ compiler. For
+ example, if you didn't like the default order, then you could
+ invoke `AC_PROG_CXX' like this:
+
+ AC_PROG_CXX([gcc cl KCC CC cxx cc++ xlC aCC c++ g++])
+
+ If using the GNU C++ compiler, set shell variable `GXX' to `yes'.
+ If output variable `CXXFLAGS' was not already set, set it to `-g
+ -O2' for the GNU C++ compiler (`-O2' on systems where G++ does not
+ accept `-g'), or `-g' for other compilers. If your package does
+ not like this default, then it is acceptable to insert the line `:
+ ${CXXFLAGS=""}' after `AC_INIT' and before `AC_PROG_CXX' to select
+ an empty default instead.
+
+
+ -- Macro: AC_PROG_CXXCPP
+ Set output variable `CXXCPP' to a command that runs the C++
+ preprocessor. If `$CXX -E' doesn't work, `/lib/cpp' is used. It
+ is portable to run `CXXCPP' only on files with a `.c', `.C',
+ `.cc', or `.cpp' extension.
+
+ Some preprocessors don't indicate missing include files by the
+ error status. For such preprocessors an internal variable is set
+ that causes other macros to check the standard error from the
+ preprocessor and consider the test failed if any warnings have
+ been reported. However, it is not known whether such broken
+ preprocessors exist for C++.
+
+ -- Macro: AC_PROG_CXX_C_O
+ Test whether the C++ compiler accepts the options `-c' and `-o'
+ simultaneously, and define `CXX_NO_MINUS_C_MINUS_O', if it does
+ not.
+
+
+File: autoconf.info, Node: Objective C Compiler, Next: Objective C++ Compiler, Prev: C++ Compiler, Up: Compilers and Preprocessors
+
+5.10.5 Objective C Compiler Characteristics
+-------------------------------------------
+
+ -- Macro: AC_PROG_OBJC ([COMPILER-SEARCH-LIST])
+ Determine an Objective C compiler to use. If `OBJC' is not already
+ set in the environment, check for Objective C compilers. Set
+ output variable `OBJC' to the name of the compiler found.
+
+ This macro may, however, be invoked with an optional first argument
+ which, if specified, must be a blank-separated list of Objective C
+ compilers to search for. This just gives the user an opportunity
+ to specify an alternative search list for the Objective C
+ compiler. For example, if you didn't like the default order, then
+ you could invoke `AC_PROG_OBJC' like this:
+
+ AC_PROG_OBJC([gcc objcc objc])
+
+ If using the GNU Objective C compiler, set shell variable `GOBJC'
+ to `yes'. If output variable `OBJCFLAGS' was not already set, set
+ it to `-g -O2' for the GNU Objective C compiler (`-O2' on systems
+ where `gcc' does not accept `-g'), or `-g' for other compilers.
+
+ -- Macro: AC_PROG_OBJCPP
+ Set output variable `OBJCPP' to a command that runs the Objective C
+ preprocessor. If `$OBJC -E' doesn't work, `/lib/cpp' is used.
+
+
+File: autoconf.info, Node: Objective C++ Compiler, Next: Erlang Compiler and Interpreter, Prev: Objective C Compiler, Up: Compilers and Preprocessors
+
+5.10.6 Objective C++ Compiler Characteristics
+---------------------------------------------
+
+ -- Macro: AC_PROG_OBJCXX ([COMPILER-SEARCH-LIST])
+ Determine an Objective C++ compiler to use. If `OBJCXX' is not
+ already set in the environment, check for Objective C++ compilers.
+ Set output variable `OBJCXX' to the name of the compiler found.
+
+ This macro may, however, be invoked with an optional first argument
+ which, if specified, must be a blank-separated list of Objective
+ C++ compilers to search for. This just gives the user an
+ opportunity to specify an alternative search list for the
+ Objective C++ compiler. For example, if you didn't like the
+ default order, then you could invoke `AC_PROG_OBJCXX' like this:
+
+ AC_PROG_OBJCXX([gcc g++ objcc++ objcxx])
+
+ If using the GNU Objective C++ compiler, set shell variable
+ `GOBJCXX' to `yes'. If output variable `OBJCXXFLAGS' was not
+ already set, set it to `-g -O2' for the GNU Objective C++ compiler
+ (`-O2' on systems where `gcc' does not accept `-g'), or `-g' for
+ other compilers.
+
+ -- Macro: AC_PROG_OBJCXXCPP
+ Set output variable `OBJCXXCPP' to a command that runs the
+ Objective C++ preprocessor. If `$OBJCXX -E' doesn't work,
+ `/lib/cpp' is used.
+
+
+File: autoconf.info, Node: Erlang Compiler and Interpreter, Next: Fortran Compiler, Prev: Objective C++ Compiler, Up: Compilers and Preprocessors
+
+5.10.7 Erlang Compiler and Interpreter Characteristics
+------------------------------------------------------
+
+Autoconf defines the following macros for determining paths to the
+essential Erlang/OTP programs:
+
+ -- Macro: AC_ERLANG_PATH_ERLC ([VALUE-IF-NOT-FOUND], [PATH = `$PATH'])
+ Determine an Erlang compiler to use. If `ERLC' is not already set
+ in the environment, check for `erlc'. Set output variable `ERLC'
+ to the complete path of the compiler command found. In addition,
+ if `ERLCFLAGS' is not set in the environment, set it to an empty
+ value.
+
+ The two optional arguments have the same meaning as the two last
+ arguments of macro `AC_PATH_PROG' for looking for the `erlc'
+ program. For example, to look for `erlc' only in the
+ `/usr/lib/erlang/bin' directory:
+
+ AC_ERLANG_PATH_ERLC([not found], [/usr/lib/erlang/bin])
+
+ -- Macro: AC_ERLANG_NEED_ERLC ([PATH = `$PATH'])
+ A simplified variant of the `AC_ERLANG_PATH_ERLC' macro, that
+ prints an error message and exits the `configure' script if the
+ `erlc' program is not found.
+
+ -- Macro: AC_ERLANG_PATH_ERL ([VALUE-IF-NOT-FOUND], [PATH = `$PATH'])
+ Determine an Erlang interpreter to use. If `ERL' is not already
+ set in the environment, check for `erl'. Set output variable
+ `ERL' to the complete path of the interpreter command found.
+
+ The two optional arguments have the same meaning as the two last
+ arguments of macro `AC_PATH_PROG' for looking for the `erl'
+ program. For example, to look for `erl' only in the
+ `/usr/lib/erlang/bin' directory:
+
+ AC_ERLANG_PATH_ERL([not found], [/usr/lib/erlang/bin])
+
+ -- Macro: AC_ERLANG_NEED_ERL ([PATH = `$PATH'])
+ A simplified variant of the `AC_ERLANG_PATH_ERL' macro, that
+ prints an error message and exits the `configure' script if the
+ `erl' program is not found.
+
+
+File: autoconf.info, Node: Fortran Compiler, Next: Go Compiler, Prev: Erlang Compiler and Interpreter, Up: Compilers and Preprocessors
+
+5.10.8 Fortran Compiler Characteristics
+---------------------------------------
+
+The Autoconf Fortran support is divided into two categories: legacy
+Fortran 77 macros (`F77'), and modern Fortran macros (`FC'). The
+former are intended for traditional Fortran 77 code, and have output
+variables like `F77', `FFLAGS', and `FLIBS'. The latter are for newer
+programs that can (or must) compile under the newer Fortran standards,
+and have output variables like `FC', `FCFLAGS', and `FCLIBS'.
+
+ Except for the macros `AC_FC_SRCEXT', `AC_FC_FREEFORM',
+`AC_FC_FIXEDFORM', and `AC_FC_LINE_LENGTH' (see below), the `FC' and
+`F77' macros behave almost identically, and so they are documented
+together in this section.
+
+ -- Macro: AC_PROG_F77 ([COMPILER-SEARCH-LIST])
+ Determine a Fortran 77 compiler to use. If `F77' is not already
+ set in the environment, then check for `g77' and `f77', and then
+ some other names. Set the output variable `F77' to the name of
+ the compiler found.
+
+ This macro may, however, be invoked with an optional first argument
+ which, if specified, must be a blank-separated list of Fortran 77
+ compilers to search for. This just gives the user an opportunity
+ to specify an alternative search list for the Fortran 77 compiler.
+ For example, if you didn't like the default order, then you could
+ invoke `AC_PROG_F77' like this:
+
+ AC_PROG_F77([fl32 f77 fort77 xlf g77 f90 xlf90])
+
+ If using `g77' (the GNU Fortran 77 compiler), then set the shell
+ variable `G77' to `yes'. If the output variable `FFLAGS' was not
+ already set in the environment, then set it to `-g -02' for `g77'
+ (or `-O2' where `g77' does not accept `-g'). Otherwise, set
+ `FFLAGS' to `-g' for all other Fortran 77 compilers.
+
+ The result of the GNU test is cached in the
+ `ac_cv_f77_compiler_gnu' variable, acceptance of `-g' in the
+ `ac_cv_prog_f77_g' variable.
+
+ -- Macro: AC_PROG_FC ([COMPILER-SEARCH-LIST], [DIALECT])
+ Determine a Fortran compiler to use. If `FC' is not already set in
+ the environment, then `dialect' is a hint to indicate what Fortran
+ dialect to search for; the default is to search for the newest
+ available dialect. Set the output variable `FC' to the name of
+ the compiler found.
+
+ By default, newer dialects are preferred over older dialects, but
+ if `dialect' is specified then older dialects are preferred
+ starting with the specified dialect. `dialect' can currently be
+ one of Fortran 77, Fortran 90, or Fortran 95. However, this is
+ only a hint of which compiler _name_ to prefer (e.g., `f90' or
+ `f95'), and no attempt is made to guarantee that a particular
+ language standard is actually supported. Thus, it is preferable
+ that you avoid the `dialect' option, and use AC_PROG_FC only for
+ code compatible with the latest Fortran standard.
+
+ This macro may, alternatively, be invoked with an optional first
+ argument which, if specified, must be a blank-separated list of
+ Fortran compilers to search for, just as in `AC_PROG_F77'.
+
+ If using `gfortran' or `g77' (the GNU Fortran compilers), then set
+ the shell variable `GFC' to `yes'. If the output variable
+ `FCFLAGS' was not already set in the environment, then set it to
+ `-g -02' for GNU `g77' (or `-O2' where `g77' does not accept
+ `-g'). Otherwise, set `FCFLAGS' to `-g' for all other Fortran
+ compilers.
+
+ The result of the GNU test is cached in the `ac_cv_fc_compiler_gnu'
+ variable, acceptance of `-g' in the `ac_cv_prog_fc_g' variable.
+
+ -- Macro: AC_PROG_F77_C_O
+ -- Macro: AC_PROG_FC_C_O
+ Test whether the Fortran compiler accepts the options `-c' and
+ `-o' simultaneously, and define `F77_NO_MINUS_C_MINUS_O' or
+ `FC_NO_MINUS_C_MINUS_O', respectively, if it does not.
+
+ The result of the test is cached in the `ac_cv_prog_f77_c_o' or
+ `ac_cv_prog_fc_c_o' variable, respectively.
+
+ The following macros check for Fortran compiler characteristics. To
+check for characteristics not listed here, use `AC_COMPILE_IFELSE'
+(*note Running the Compiler::) or `AC_RUN_IFELSE' (*note Runtime::),
+making sure to first set the current language to Fortran 77 or Fortran
+via `AC_LANG([Fortran 77])' or `AC_LANG(Fortran)' (*note Language
+Choice::).
+
+ -- Macro: AC_F77_LIBRARY_LDFLAGS
+ -- Macro: AC_FC_LIBRARY_LDFLAGS
+ Determine the linker flags (e.g., `-L' and `-l') for the "Fortran
+ intrinsic and runtime libraries" that are required to successfully
+ link a Fortran program or shared library. The output variable
+ `FLIBS' or `FCLIBS' is set to these flags (which should be
+ included after `LIBS' when linking).
+
+ This macro is intended to be used in those situations when it is
+ necessary to mix, e.g., C++ and Fortran source code in a single
+ program or shared library (*note Mixing Fortran 77 With C and C++:
+ (automake)Mixing Fortran 77 With C and C++.).
+
+ For example, if object files from a C++ and Fortran compiler must
+ be linked together, then the C++ compiler/linker must be used for
+ linking (since special C++-ish things need to happen at link time
+ like calling global constructors, instantiating templates,
+ enabling exception support, etc.).
+
+ However, the Fortran intrinsic and runtime libraries must be
+ linked in as well, but the C++ compiler/linker doesn't know by
+ default how to add these Fortran 77 libraries. Hence, this macro
+ was created to determine these Fortran libraries.
+
+ The macros `AC_F77_DUMMY_MAIN' and `AC_FC_DUMMY_MAIN' or
+ `AC_F77_MAIN' and `AC_FC_MAIN' are probably also necessary to link
+ C/C++ with Fortran; see below. Further, it is highly recommended
+ that you use `AC_CONFIG_HEADERS' (*note Configuration Headers::)
+ because the complex defines that the function wrapper macros create
+ may not work with C/C++ compiler drivers.
+
+ These macros internally compute the flag needed to verbose linking
+ output and cache it in `ac_cv_prog_f77_v' or `ac_cv_prog_fc_v'
+ variables, respectively. The computed linker flags are cached in
+ `ac_cv_f77_libs' or `ac_cv_fc_libs', respectively.
+
+ -- Macro: AC_F77_DUMMY_MAIN ([ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND =
+ `AC_MSG_FAILURE'])
+ -- Macro: AC_FC_DUMMY_MAIN ([ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND =
+ `AC_MSG_FAILURE'])
+ With many compilers, the Fortran libraries detected by
+ `AC_F77_LIBRARY_LDFLAGS' or `AC_FC_LIBRARY_LDFLAGS' provide their
+ own `main' entry function that initializes things like Fortran
+ I/O, and which then calls a user-provided entry function named
+ (say) `MAIN__' to run the user's program. The `AC_F77_DUMMY_MAIN'
+ and `AC_FC_DUMMY_MAIN' or `AC_F77_MAIN' and `AC_FC_MAIN' macros
+ figure out how to deal with this interaction.
+
+ When using Fortran for purely numerical functions (no I/O, etc.)
+ often one prefers to provide one's own `main' and skip the Fortran
+ library initializations. In this case, however, one may still
+ need to provide a dummy `MAIN__' routine in order to prevent
+ linking errors on some systems. `AC_F77_DUMMY_MAIN' or
+ `AC_FC_DUMMY_MAIN' detects whether any such routine is _required_
+ for linking, and what its name is; the shell variable
+ `F77_DUMMY_MAIN' or `FC_DUMMY_MAIN' holds this name, `unknown'
+ when no solution was found, and `none' when no such dummy main is
+ needed.
+
+ By default, ACTION-IF-FOUND defines `F77_DUMMY_MAIN' or
+ `FC_DUMMY_MAIN' to the name of this routine (e.g., `MAIN__') _if_
+ it is required. ACTION-IF-NOT-FOUND defaults to exiting with an
+ error.
+
+ In order to link with Fortran routines, the user's C/C++ program
+ should then include the following code to define the dummy main if
+ it is needed:
+
+ #ifdef F77_DUMMY_MAIN
+ # ifdef __cplusplus
+ extern "C"
+ # endif
+ int F77_DUMMY_MAIN () { return 1; }
+ #endif
+
+ (Replace `F77' with `FC' for Fortran instead of Fortran 77.)
+
+ Note that this macro is called automatically from `AC_F77_WRAPPERS'
+ or `AC_FC_WRAPPERS'; there is generally no need to call it
+ explicitly unless one wants to change the default actions.
+
+ The result of this macro is cached in the `ac_cv_f77_dummy_main' or
+ `ac_cv_fc_dummy_main' variable, respectively.
+
+ -- Macro: AC_F77_MAIN
+ -- Macro: AC_FC_MAIN
+ As discussed above, many Fortran libraries allow you to provide an
+ entry point called (say) `MAIN__' instead of the usual `main',
+ which is then called by a `main' function in the Fortran libraries
+ that initializes things like Fortran I/O. The `AC_F77_MAIN' and
+ `AC_FC_MAIN' macros detect whether it is _possible_ to utilize
+ such an alternate main function, and defines `F77_MAIN' and
+ `FC_MAIN' to the name of the function. (If no alternate main
+ function name is found, `F77_MAIN' and `FC_MAIN' are simply
+ defined to `main'.)
+
+ Thus, when calling Fortran routines from C that perform things
+ like I/O, one should use this macro and declare the "main"
+ function like so:
+
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ int F77_MAIN (int argc, char *argv[]);
+
+ (Again, replace `F77' with `FC' for Fortran instead of Fortran 77.)
+
+ The result of this macro is cached in the `ac_cv_f77_main' or
+ `ac_cv_fc_main' variable, respectively.
+
+ -- Macro: AC_F77_WRAPPERS
+ -- Macro: AC_FC_WRAPPERS
+ Defines C macros `F77_FUNC (name, NAME)', `FC_FUNC (name, NAME)',
+ `F77_FUNC_(name, NAME)', and `FC_FUNC_(name, NAME)' to properly
+ mangle the names of C/C++ identifiers, and identifiers with
+ underscores, respectively, so that they match the name-mangling
+ scheme used by the Fortran compiler.
+
+ Fortran is case-insensitive, and in order to achieve this the
+ Fortran compiler converts all identifiers into a canonical case
+ and format. To call a Fortran subroutine from C or to write a C
+ function that is callable from Fortran, the C program must
+ explicitly use identifiers in the format expected by the Fortran
+ compiler. In order to do this, one simply wraps all C identifiers
+ in one of the macros provided by `AC_F77_WRAPPERS' or
+ `AC_FC_WRAPPERS'. For example, suppose you have the following
+ Fortran 77 subroutine:
+
+ subroutine foobar (x, y)
+ double precision x, y
+ y = 3.14159 * x
+ return
+ end
+
+ You would then declare its prototype in C or C++ as:
+
+ #define FOOBAR_F77 F77_FUNC (foobar, FOOBAR)
+ #ifdef __cplusplus
+ extern "C" /* prevent C++ name mangling */
+ #endif
+ void FOOBAR_F77 (double *x, double *y);
+
+ Note that we pass both the lowercase and uppercase versions of the
+ function name to `F77_FUNC' so that it can select the right one.
+ Note also that all parameters to Fortran 77 routines are passed as
+ pointers (*note Mixing Fortran 77 With C and C++: (automake)Mixing
+ Fortran 77 With C and C++.).
+
+ (Replace `F77' with `FC' for Fortran instead of Fortran 77.)
+
+ Although Autoconf tries to be intelligent about detecting the
+ name-mangling scheme of the Fortran compiler, there may be Fortran
+ compilers that it doesn't support yet. In this case, the above
+ code generates a compile-time error, but some other behavior
+ (e.g., disabling Fortran-related features) can be induced by
+ checking whether `F77_FUNC' or `FC_FUNC' is defined.
+
+ Now, to call that routine from a C program, we would do something
+ like:
+
+ {
+ double x = 2.7183, y;
+ FOOBAR_F77 (&x, &y);
+ }
+
+ If the Fortran identifier contains an underscore (e.g., `foo_bar'),
+ you should use `F77_FUNC_' or `FC_FUNC_' instead of `F77_FUNC' or
+ `FC_FUNC' (with the same arguments). This is because some Fortran
+ compilers mangle names differently if they contain an underscore.
+
+ The name mangling scheme is encoded in the `ac_cv_f77_mangling' or
+ `ac_cv_fc_mangling' cache variable, respectively, and also used for
+ the `AC_F77_FUNC' and `AC_FC_FUNC' macros described below.
+
+ -- Macro: AC_F77_FUNC (NAME, [SHELLVAR])
+ -- Macro: AC_FC_FUNC (NAME, [SHELLVAR])
+ Given an identifier NAME, set the shell variable SHELLVAR to hold
+ the mangled version NAME according to the rules of the Fortran
+ linker (see also `AC_F77_WRAPPERS' or `AC_FC_WRAPPERS'). SHELLVAR
+ is optional; if it is not supplied, the shell variable is simply
+ NAME. The purpose of this macro is to give the caller a way to
+ access the name-mangling information other than through the C
+ preprocessor as above, for example, to call Fortran routines from
+ some language other than C/C++.
+
+ -- Macro: AC_FC_SRCEXT (EXT, [ACTION-IF-SUCCESS], [ACTION-IF-FAILURE =
+ `AC_MSG_FAILURE'])
+ -- Macro: AC_FC_PP_SRCEXT (EXT, [ACTION-IF-SUCCESS],
+ [ACTION-IF-FAILURE = `AC_MSG_FAILURE'])
+ By default, the `FC' macros perform their tests using a `.f'
+ extension for source-code files. Some compilers, however, only
+ enable newer language features for appropriately named files,
+ e.g., Fortran 90 features only for `.f90' files, or preprocessing
+ only with `.F' files or maybe other upper-case extensions. On the
+ other hand, some other compilers expect all source files to end in
+ `.f' and require special flags to support other file name
+ extensions. The `AC_FC_SRCEXT' and `AC_FC_PP_SRCEXT' macros deal
+ with these issues.
+
+ The `AC_FC_SRCEXT' macro tries to get the `FC' compiler to accept
+ files ending with the extension `.EXT' (i.e., EXT does _not_
+ contain the dot). If any special compiler flags are needed for
+ this, it stores them in the output variable `FCFLAGS_EXT'. This
+ extension and these flags are then used for all subsequent `FC'
+ tests (until `AC_FC_SRCEXT' or `AC_FC_PP_SRCEXT' is called another
+ time).
+
+ For example, you would use `AC_FC_SRCEXT(f90)' to employ the
+ `.f90' extension in future tests, and it would set the
+ `FCFLAGS_f90' output variable with any extra flags that are needed
+ to compile such files.
+
+ Similarly, the `AC_FC_PP_SRCEXT' macro tries to get the `FC'
+ compiler to preprocess and compile files with the extension
+ `.EXT'. When both `fpp' and `cpp' style preprocessing are
+ provided, the former is preferred, as the latter may treat
+ continuation lines, `//' tokens, and white space differently from
+ what some Fortran dialects expect. Conversely, if you do not want
+ files to be preprocessed, use only lower-case characters in the
+ file name extension. Like with `AC_FC_SRCEXT(f90)', any needed
+ flags are stored in the `FCFLAGS_EXT' variable.
+
+ The `FCFLAGS_EXT' flags can _not_ be simply absorbed into
+ `FCFLAGS', for two reasons based on the limitations of some
+ compilers. First, only one `FCFLAGS_EXT' can be used at a time,
+ so files with different extensions must be compiled separately.
+ Second, `FCFLAGS_EXT' must appear _immediately_ before the
+ source-code file name when compiling. So, continuing the example
+ above, you might compile a `foo.f90' file in your makefile with the
+ command:
+
+ foo.o: foo.f90
+ $(FC) -c $(FCFLAGS) $(FCFLAGS_f90) '$(srcdir)/foo.f90'
+
+ If `AC_FC_SRCEXT' or `AC_FC_PP_SRCEXT' succeeds in compiling files
+ with the EXT extension, it calls ACTION-IF-SUCCESS (defaults to
+ nothing). If it fails, and cannot find a way to make the `FC'
+ compiler accept such files, it calls ACTION-IF-FAILURE (defaults
+ to exiting with an error message).
+
+ The `AC_FC_SRCEXT' and `AC_FC_PP_SRCEXT' macros cache their
+ results in `ac_cv_fc_srcext_EXT' and `ac_cv_fc_pp_srcext_EXT'
+ variables, respectively.
+
+ -- Macro: AC_FC_PP_DEFINE ([ACTION-IF-SUCCESS], [ACTION-IF-FAILURE =
+ `AC_MSG_FAILURE'])
+ Find a flag to specify defines for preprocessed Fortran. Not all
+ Fortran compilers use `-D'. Substitute `FC_DEFINE' with the
+ result and call ACTION-IF-SUCCESS (defaults to nothing) if
+ successful, and ACTION-IF-FAILURE (defaults to failing with an
+ error message) if not.
+
+ This macro calls `AC_FC_PP_SRCEXT([F])' in order to learn how to
+ preprocess a `conftest.F' file, but restores a previously used
+ Fortran source file extension afterwards again.
+
+ The result of this test is cached in the `ac_cv_fc_pp_define'
+ variable.
+
+ -- Macro: AC_FC_FREEFORM ([ACTION-IF-SUCCESS], [ACTION-IF-FAILURE =
+ `AC_MSG_FAILURE'])
+ Try to ensure that the Fortran compiler (`$FC') allows free-format
+ source code (as opposed to the older fixed-format style from
+ Fortran 77). If necessary, it may add some additional flags to
+ `FCFLAGS'.
+
+ This macro is most important if you are using the default `.f'
+ extension, since many compilers interpret this extension as
+ indicating fixed-format source unless an additional flag is
+ supplied. If you specify a different extension with
+ `AC_FC_SRCEXT', such as `.f90', then `AC_FC_FREEFORM' ordinarily
+ succeeds without modifying `FCFLAGS'. For extensions which the
+ compiler does not know about, the flag set by the `AC_FC_SRCEXT'
+ macro might let the compiler assume Fortran 77 by default, however.
+
+ If `AC_FC_FREEFORM' succeeds in compiling free-form source, it
+ calls ACTION-IF-SUCCESS (defaults to nothing). If it fails, it
+ calls ACTION-IF-FAILURE (defaults to exiting with an error
+ message).
+
+ The result of this test, or `none' or `unknown', is cached in the
+ `ac_cv_fc_freeform' variable.
+
+ -- Macro: AC_FC_FIXEDFORM ([ACTION-IF-SUCCESS], [ACTION-IF-FAILURE =
+ `AC_MSG_FAILURE'])
+ Try to ensure that the Fortran compiler (`$FC') allows the old
+ fixed-format source code (as opposed to free-format style). If
+ necessary, it may add some additional flags to `FCFLAGS'.
+
+ This macro is needed for some compilers alias names like `xlf95'
+ which assume free-form source code by default, and in case you
+ want to use fixed-form source with an extension like `.f90' which
+ many compilers interpret as free-form by default. If you specify
+ a different extension with `AC_FC_SRCEXT', such as `.f', then
+ `AC_FC_FIXEDFORM' ordinarily succeeds without modifying `FCFLAGS'.
+
+ If `AC_FC_FIXEDFORM' succeeds in compiling fixed-form source, it
+ calls ACTION-IF-SUCCESS (defaults to nothing). If it fails, it
+ calls ACTION-IF-FAILURE (defaults to exiting with an error
+ message).
+
+ The result of this test, or `none' or `unknown', is cached in the
+ `ac_cv_fc_fixedform' variable.
+
+ -- Macro: AC_FC_LINE_LENGTH ([LENGTH], [ACTION-IF-SUCCESS],
+ [ACTION-IF-FAILURE = `AC_MSG_FAILURE'])
+ Try to ensure that the Fortran compiler (`$FC') accepts long source
+ code lines. The LENGTH argument may be given as 80, 132, or
+ unlimited, and defaults to 132. Note that line lengths above 254
+ columns are not portable, and some compilers do not accept more
+ than 132 columns at least for fixed format source. If necessary,
+ it may add some additional flags to `FCFLAGS'.
+
+ If `AC_FC_LINE_LENGTH' succeeds in compiling fixed-form source, it
+ calls ACTION-IF-SUCCESS (defaults to nothing). If it fails, it
+ calls ACTION-IF-FAILURE (defaults to exiting with an error
+ message).
+
+ The result of this test, or `none' or `unknown', is cached in the
+ `ac_cv_fc_line_length' variable.
+
+ -- Macro: AC_FC_CHECK_BOUNDS ([ACTION-IF-SUCCESS], [ACTION-IF-FAILURE
+ = `AC_MSG_FAILURE'])
+ The `AC_FC_CHECK_BOUNDS' macro tries to enable array bounds
+ checking in the Fortran compiler. If successful, the
+ ACTION-IF-SUCCESS is called and any needed flags are added to
+ `FCFLAGS'. Otherwise, ACTION-IF-FAILURE is called, which defaults
+ to failing with an error message. The macro currently requires
+ Fortran 90 or a newer dialect.
+
+ The result of the macro is cached in the `ac_cv_fc_check_bounds'
+ variable.
+
+ -- Macro: AC_F77_IMPLICIT_NONE ([ACTION-IF-SUCCESS],
+ [ACTION-IF-FAILURE = `AC_MSG_FAILURE'])
+ -- Macro: AC_FC_IMPLICIT_NONE ([ACTION-IF-SUCCESS], [ACTION-IF-FAILURE
+ = `AC_MSG_FAILURE'])
+ Try to disallow implicit declarations in the Fortran compiler. If
+ successful, ACTION-IF-SUCCESS is called and any needed flags are
+ added to `FFLAGS' or `FCFLAGS', respectively. Otherwise,
+ ACTION-IF-FAILURE is called, which defaults to failing with an
+ error message.
+
+ The result of these macros are cached in the
+ `ac_cv_f77_implicit_none' and `ac_cv_fc_implicit_none' variables,
+ respectively.
+
+ -- Macro: AC_FC_MODULE_EXTENSION
+ Find the Fortran 90 module file name extension. Most Fortran 90
+ compilers store module information in files separate from the
+ object files. The module files are usually named after the name
+ of the module rather than the source file name, with characters
+ possibly turned to upper case, plus an extension, often `.mod'.
+
+ Not all compilers use module files at all, or by default. The Cray
+ Fortran compiler requires `-e m' in order to store and search
+ module information in `.mod' files rather than in object files.
+ Likewise, the Fujitsu Fortran compilers uses the `-Am' option to
+ indicate how module information is stored.
+
+ The `AC_FC_MODULE_EXTENSION' macro computes the module extension
+ without the leading dot, and stores that in the `FC_MODEXT'
+ variable. If the compiler does not produce module files, or the
+ extension cannot be determined, `FC_MODEXT' is empty. Typically,
+ the result of this macro may be used in cleanup `make' rules as
+ follows:
+
+ clean-modules:
+ -test -z "$(FC_MODEXT)" || rm -f *.$(FC_MODEXT)
+
+ The extension, or `unknown', is cached in the
+ `ac_cv_fc_module_ext' variable.
+
+ -- Macro: AC_FC_MODULE_FLAG ([ACTION-IF-SUCCESS], [ACTION-IF-FAILURE =
+ `AC_MSG_FAILURE'])
+ Find the compiler flag to include Fortran 90 module information
+ from another directory, and store that in the `FC_MODINC' variable.
+ Call ACTION-IF-SUCCESS (defaults to nothing) if successful, and
+ set `FC_MODINC' to empty and call ACTION-IF-FAILURE (defaults to
+ exiting with an error message) if not.
+
+ Most Fortran 90 compilers provide a way to specify module
+ directories. Some have separate flags for the directory to write
+ module files to, and directories to search them in, whereas others
+ only allow writing to the current directory or to the first
+ directory specified in the include path. Further, with some
+ compilers, the module search path and the preprocessor search path
+ can only be modified with the same flag. Thus, for portability,
+ write module files to the current directory only and list that as
+ first directory in the search path.
+
+ There may be no whitespace between `FC_MODINC' and the following
+ directory name, but `FC_MODINC' may contain trailing white space.
+ For example, if you use Automake and would like to search `../lib'
+ for module files, you can use the following:
+
+ AM_FCFLAGS = $(FC_MODINC). $(FC_MODINC)../lib
+
+ Inside `configure' tests, you can use:
+
+ if test -n "$FC_MODINC"; then
+ FCFLAGS="$FCFLAGS $FC_MODINC. $FC_MODINC../lib"
+ fi
+
+ The flag is cached in the `ac_cv_fc_module_flag' variable. The
+ substituted value of `FC_MODINC' may refer to the `ac_empty' dummy
+ placeholder empty variable, to avoid losing the significant
+ trailing whitespace in a `Makefile'.
+
+ -- Macro: AC_FC_MODULE_OUTPUT_FLAG ([ACTION-IF-SUCCESS],
+ [ACTION-IF-FAILURE = `AC_MSG_FAILURE'])
+ Find the compiler flag to write Fortran 90 module information to
+ another directory, and store that in the `FC_MODOUT' variable.
+ Call ACTION-IF-SUCCESS (defaults to nothing) if successful, and
+ set `FC_MODOUT' to empty and call ACTION-IF-FAILURE (defaults to
+ exiting with an error message) if not.
+
+ Not all Fortran 90 compilers write module files, and of those that
+ do, not all allow writing to a directory other than the current
+ one, nor do all have separate flags for writing and reading; see
+ the description of `AC_FC_MODULE_FLAG' above. If you need to be
+ able to write to another directory, for maximum portability use
+ `FC_MODOUT' before any `FC_MODINC' and include both the current
+ directory and the one you write to in the search path:
+
+ AM_FCFLAGS = $(FC_MODOUT)../mod $(FC_MODINC)../mod $(FC_MODINC). ...
+
+ The flag is cached in the `ac_cv_fc_module_output_flag' variable.
+ The substituted value of `FC_MODOUT' may refer to the `ac_empty'
+ dummy placeholder empty variable, to avoid losing the significant
+ trailing whitespace in a `Makefile'.
+
+
+File: autoconf.info, Node: Go Compiler, Prev: Fortran Compiler, Up: Compilers and Preprocessors
+
+5.10.9 Go Compiler Characteristics
+----------------------------------
+
+Autoconf provides basic support for the Go programming language when
+using the `gccgo' compiler (there is currently no support for the `6g'
+and `8g' compilers).
+
+ -- Macro: AC_PROG_GO ([COMPILER-SEARCH-LIST])
+ Find the Go compiler to use. Check whether the environment
+ variable `GOC' is set; if so, then set output variable `GOC' to its
+ value.
+
+ Otherwise, if the macro is invoked without an argument, then
+ search for a Go compiler named `gccgo'. If it is not found, then
+ as a last resort set `GOC' to `gccgo'.
+
+ This macro may be invoked with an optional first argument which, if
+ specified, must be a blank-separated list of Go compilers to
+ search for.
+
+ If output variable `GOFLAGS' was not already set, set it to `-g
+ -O2'. If your package does not like this default, `GOFLAGS' may
+ be set before `AC_PROG_GO'.
+
+
+File: autoconf.info, Node: System Services, Next: Posix Variants, Prev: Compilers and Preprocessors, Up: Existing Tests
+
+5.11 System Services
+====================
+
+The following macros check for operating system services or
+capabilities.
+
+ -- Macro: AC_PATH_X
+ Try to locate the X Window System include files and libraries. If
+ the user gave the command line options `--x-includes=DIR' and
+ `--x-libraries=DIR', use those directories.
+
+ If either or both were not given, get the missing values by running
+ `xmkmf' (or an executable pointed to by the `XMKMF' environment
+ variable) on a trivial `Imakefile' and examining the makefile that
+ it produces. Setting `XMKMF' to `false' disables this method.
+
+ If this method fails to find the X Window System, `configure'
+ looks for the files in several directories where they often reside.
+ If either method is successful, set the shell variables
+ `x_includes' and `x_libraries' to their locations, unless they are
+ in directories the compiler searches by default.
+
+ If both methods fail, or the user gave the command line option
+ `--without-x', set the shell variable `no_x' to `yes'; otherwise
+ set it to the empty string.
+
+ -- Macro: AC_PATH_XTRA
+ An enhanced version of `AC_PATH_X'. It adds the C compiler flags
+ that X needs to output variable `X_CFLAGS', and the X linker flags
+ to `X_LIBS'. Define `X_DISPLAY_MISSING' if X is not available.
+
+ This macro also checks for special libraries that some systems
+ need in order to compile X programs. It adds any that the system
+ needs to output variable `X_EXTRA_LIBS'. And it checks for
+ special X11R6 libraries that need to be linked with before
+ `-lX11', and adds any found to the output variable `X_PRE_LIBS'.
+
+
+ -- Macro: AC_SYS_INTERPRETER
+ Check whether the system supports starting scripts with a line of
+ the form `#!/bin/sh' to select the interpreter to use for the
+ script. After running this macro, shell code in `configure.ac'
+ can check the shell variable `interpval'; it is set to `yes' if
+ the system supports `#!', `no' if not.
+
+ -- Macro: AC_SYS_LARGEFILE
+ Arrange for 64-bit file offsets, known as large-file support
+ (http://www.unix-systems.org/version2/whatsnew/lfs20mar.html). On
+ some hosts, one must use special compiler options to build
+ programs that can access large files. Append any such options to
+ the output variable `CC'. Define `_FILE_OFFSET_BITS' and
+ `_LARGE_FILES' if necessary.
+
+ Large-file support can be disabled by configuring with the
+ `--disable-largefile' option.
+
+ If you use this macro, check that your program works even when
+ `off_t' is wider than `long int', since this is common when
+ large-file support is enabled. For example, it is not correct to
+ print an arbitrary `off_t' value `X' with `printf ("%ld", (long
+ int) X)'.
+
+ The LFS introduced the `fseeko' and `ftello' functions to replace
+ their C counterparts `fseek' and `ftell' that do not use `off_t'.
+ Take care to use `AC_FUNC_FSEEKO' to make their prototypes
+ available when using them and large-file support is enabled.
+
+ -- Macro: AC_SYS_LONG_FILE_NAMES
+ If the system supports file names longer than 14 characters, define
+ `HAVE_LONG_FILE_NAMES'.
+
+ -- Macro: AC_SYS_POSIX_TERMIOS
+ Check to see if the Posix termios headers and functions are
+ available on the system. If so, set the shell variable
+ `ac_cv_sys_posix_termios' to `yes'. If not, set the variable to
+ `no'.
+
+
+File: autoconf.info, Node: Posix Variants, Next: Erlang Libraries, Prev: System Services, Up: Existing Tests
+
+5.12 Posix Variants
+===================
+
+The following macro makes it possible to use features of Posix that are
+extensions to C, as well as platform extensions not defined by Posix.
+
+ -- Macro: AC_USE_SYSTEM_EXTENSIONS
+ This macro was introduced in Autoconf 2.60. If possible, enable
+ extensions to C or Posix on hosts that normally disable the
+ extensions, typically due to standards-conformance namespace
+ issues. This should be called before any macros that run the C
+ compiler. The following preprocessor macros are defined where
+ appropriate:
+
+ `_GNU_SOURCE'
+ Enable extensions on GNU/Linux.
+
+ `__EXTENSIONS__'
+ Enable general extensions on Solaris.
+
+ `_POSIX_PTHREAD_SEMANTICS'
+ Enable threading extensions on Solaris.
+
+ `_TANDEM_SOURCE'
+ Enable extensions for the HP NonStop platform.
+
+ `_ALL_SOURCE'
+ Enable extensions for AIX 3, and for Interix.
+
+ `_POSIX_SOURCE'
+ Enable Posix functions for Minix.
+
+ `_POSIX_1_SOURCE'
+ Enable additional Posix functions for Minix.
+
+ `_MINIX'
+ Identify Minix platform. This particular preprocessor macro
+ is obsolescent, and may be removed in a future release of
+ Autoconf.
+
+
+File: autoconf.info, Node: Erlang Libraries, Prev: Posix Variants, Up: Existing Tests
+
+5.13 Erlang Libraries
+=====================
+
+The following macros check for an installation of Erlang/OTP, and for
+the presence of certain Erlang libraries. All those macros require the
+configuration of an Erlang interpreter and an Erlang compiler (*note
+Erlang Compiler and Interpreter::).
+
+ -- Macro: AC_ERLANG_SUBST_ERTS_VER
+ Set the output variable `ERLANG_ERTS_VER' to the version of the
+ Erlang runtime system (as returned by Erlang's
+ `erlang:system_info(version)' function). The result of this test
+ is cached if caching is enabled when running `configure'. The
+ `ERLANG_ERTS_VER' variable is not intended to be used for testing
+ for features of specific ERTS versions, but to be used for
+ substituting the ERTS version in Erlang/OTP release resource files
+ (`.rel' files), as shown below.
+
+ -- Macro: AC_ERLANG_SUBST_ROOT_DIR
+ Set the output variable `ERLANG_ROOT_DIR' to the path to the base
+ directory in which Erlang/OTP is installed (as returned by Erlang's
+ `code:root_dir/0' function). The result of this test is cached if
+ caching is enabled when running `configure'.
+
+ -- Macro: AC_ERLANG_SUBST_LIB_DIR
+ Set the output variable `ERLANG_LIB_DIR' to the path of the library
+ directory of Erlang/OTP (as returned by Erlang's `code:lib_dir/0'
+ function), which subdirectories each contain an installed
+ Erlang/OTP library. The result of this test is cached if caching
+ is enabled when running `configure'.
+
+ -- Macro: AC_ERLANG_CHECK_LIB (LIBRARY, [ACTION-IF-FOUND],
+ [ACTION-IF-NOT-FOUND])
+ Test whether the Erlang/OTP library LIBRARY is installed by
+ calling Erlang's `code:lib_dir/1' function. The result of this
+ test is cached if caching is enabled when running `configure'.
+ ACTION-IF-FOUND is a list of shell commands to run if the library
+ is installed; ACTION-IF-NOT-FOUND is a list of shell commands to
+ run if it is not. Additionally, if the library is installed, the
+ output variable `ERLANG_LIB_DIR_LIBRARY' is set to the path to the
+ library installation directory, and the output variable
+ `ERLANG_LIB_VER_LIBRARY' is set to the version number that is part
+ of the subdirectory name, if it is in the standard form
+ (`LIBRARY-VERSION'). If the directory name does not have a
+ version part, `ERLANG_LIB_VER_LIBRARY' is set to the empty string.
+ If the library is not installed, `ERLANG_LIB_DIR_LIBRARY' and
+ `ERLANG_LIB_VER_LIBRARY' are set to `"not found"'. For example,
+ to check if library `stdlib' is installed:
+
+ AC_ERLANG_CHECK_LIB([stdlib],
+ [echo "stdlib version \"$ERLANG_LIB_VER_stdlib\""
+ echo "is installed in \"$ERLANG_LIB_DIR_stdlib\""],
+ [AC_MSG_ERROR([stdlib was not found!])])
+
+ The `ERLANG_LIB_VER_LIBRARY' variables (set by
+ `AC_ERLANG_CHECK_LIB') and the `ERLANG_ERTS_VER' variable (set by
+ `AC_ERLANG_SUBST_ERTS_VER') are not intended to be used for
+ testing for features of specific versions of libraries or of the
+ Erlang runtime system. Those variables are intended to be
+ substituted in Erlang release resource files (`.rel' files). For
+ instance, to generate a `example.rel' file for an application
+ depending on the `stdlib' library, `configure.ac' could contain:
+
+ AC_ERLANG_SUBST_ERTS_VER
+ AC_ERLANG_CHECK_LIB([stdlib],
+ [],
+ [AC_MSG_ERROR([stdlib was not found!])])
+ AC_CONFIG_FILES([example.rel])
+
+ The `example.rel.in' file used to generate `example.rel' should
+ contain:
+
+ {release,
+ {"@PACKAGE@", "@VERSION@"},
+ {erts, "@ERLANG_ERTS_VER@"},
+ [{stdlib, "@ERLANG_LIB_VER_stdlib@"},
+ {@PACKAGE@, "@VERSION@"}]}.
+
+ In addition to the above macros, which test installed Erlang
+libraries, the following macros determine the paths to the directories
+into which newly built Erlang libraries are to be installed:
+
+ -- Macro: AC_ERLANG_SUBST_INSTALL_LIB_DIR
+ Set the `ERLANG_INSTALL_LIB_DIR' output variable to the directory
+ into which every built Erlang library should be installed in a
+ separate subdirectory. If this variable is not set in the
+ environment when `configure' runs, its default value is
+ `${libdir}/erlang/lib'.
+
+ -- Macro: AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR (LIBRARY, VERSION)
+ Set the `ERLANG_INSTALL_LIB_DIR_LIBRARY' output variable to the
+ directory into which the built Erlang library LIBRARY version
+ VERSION should be installed. If this variable is not set in the
+ environment when `configure' runs, its default value is
+ `$ERLANG_INSTALL_LIB_DIR/LIBRARY-VERSION', the value of the
+ `ERLANG_INSTALL_LIB_DIR' variable being set by the
+ `AC_ERLANG_SUBST_INSTALL_LIB_DIR' macro.
+
+
+File: autoconf.info, Node: Writing Tests, Next: Results, Prev: Existing Tests, Up: Top
+
+6 Writing Tests
+***************
+
+If the existing feature tests don't do something you need, you have to
+write new ones. These macros are the building blocks. They provide
+ways for other macros to check whether various kinds of features are
+available and report the results.
+
+ This chapter contains some suggestions and some of the reasons why
+the existing tests are written the way they are. You can also learn a
+lot about how to write Autoconf tests by looking at the existing ones.
+If something goes wrong in one or more of the Autoconf tests, this
+information can help you understand the assumptions behind them, which
+might help you figure out how to best solve the problem.
+
+ These macros check the output of the compiler system of the current
+language (*note Language Choice::). They do not cache the results of
+their tests for future use (*note Caching Results::), because they don't
+know enough about the information they are checking for to generate a
+cache variable name. They also do not print any messages, for the same
+reason. The checks for particular kinds of features call these macros
+and do cache their results and print messages about what they're
+checking for.
+
+ When you write a feature test that could be applicable to more than
+one software package, the best thing to do is encapsulate it in a new
+macro. *Note Writing Autoconf Macros::, for how to do that.
+
+* Menu:
+
+* Language Choice:: Selecting which language to use for testing
+* Writing Test Programs:: Forging source files for compilers
+* Running the Preprocessor:: Detecting preprocessor symbols
+* Running the Compiler:: Detecting language or header features
+* Running the Linker:: Detecting library features
+* Runtime:: Testing for runtime features
+* Systemology:: A zoology of operating systems
+* Multiple Cases:: Tests for several possible values
+
+
+File: autoconf.info, Node: Language Choice, Next: Writing Test Programs, Up: Writing Tests
+
+6.1 Language Choice
+===================
+
+Autoconf-generated `configure' scripts check for the C compiler and its
+features by default. Packages that use other programming languages
+(maybe more than one, e.g., C and C++) need to test features of the
+compilers for the respective languages. The following macros determine
+which programming language is used in the subsequent tests in
+`configure.ac'.
+
+ -- Macro: AC_LANG (LANGUAGE)
+ Do compilation tests using the compiler, preprocessor, and file
+ extensions for the specified LANGUAGE.
+
+ Supported languages are:
+
+ `C'
+ Do compilation tests using `CC' and `CPP' and use extension
+ `.c' for test programs. Use compilation flags: `CPPFLAGS'
+ with `CPP', and both `CPPFLAGS' and `CFLAGS' with `CC'.
+
+ `C++'
+ Do compilation tests using `CXX' and `CXXCPP' and use
+ extension `.C' for test programs. Use compilation flags:
+ `CPPFLAGS' with `CXXCPP', and both `CPPFLAGS' and `CXXFLAGS'
+ with `CXX'.
+
+ `Fortran 77'
+ Do compilation tests using `F77' and use extension `.f' for
+ test programs. Use compilation flags: `FFLAGS'.
+
+ `Fortran'
+ Do compilation tests using `FC' and use extension `.f' (or
+ whatever has been set by `AC_FC_SRCEXT') for test programs.
+ Use compilation flags: `FCFLAGS'.
+
+ `Erlang'
+ Compile and execute tests using `ERLC' and `ERL' and use
+ extension `.erl' for test Erlang modules. Use compilation
+ flags: `ERLCFLAGS'.
+
+ `Objective C'
+ Do compilation tests using `OBJC' and `OBJCPP' and use
+ extension `.m' for test programs. Use compilation flags:
+ `CPPFLAGS' with `OBJCPP', and both `CPPFLAGS' and `OBJCFLAGS'
+ with `OBJC'.
+
+ `Objective C++'
+ Do compilation tests using `OBJCXX' and `OBJCXXCPP' and use
+ extension `.mm' for test programs. Use compilation flags:
+ `CPPFLAGS' with `OBJCXXCPP', and both `CPPFLAGS' and
+ `OBJCXXFLAGS' with `OBJCXX'.
+
+ `Go'
+ Do compilation tests using `GOC' and use extension `.go' for
+ test programs. Use compilation flags `GOFLAGS'.
+
+ -- Macro: AC_LANG_PUSH (LANGUAGE)
+ Remember the current language (as set by `AC_LANG') on a stack, and
+ then select the LANGUAGE. Use this macro and `AC_LANG_POP' in
+ macros that need to temporarily switch to a particular language.
+
+ -- Macro: AC_LANG_POP ([LANGUAGE])
+ Select the language that is saved on the top of the stack, as set
+ by `AC_LANG_PUSH', and remove it from the stack.
+
+ If given, LANGUAGE specifies the language we just _quit_. It is a
+ good idea to specify it when it's known (which should be the
+ case...), since Autoconf detects inconsistencies.
+
+ AC_LANG_PUSH([Fortran 77])
+ # Perform some tests on Fortran 77.
+ # ...
+ AC_LANG_POP([Fortran 77])
+
+ -- Macro: AC_LANG_ASSERT (LANGUAGE)
+ Check statically that the current language is LANGUAGE. You
+ should use this in your language specific macros to avoid that
+ they be called with an inappropriate language.
+
+ This macro runs only at `autoconf' time, and incurs no cost at
+ `configure' time. Sadly enough and because Autoconf is a two
+ layer language (1), the macros `AC_LANG_PUSH' and `AC_LANG_POP'
+ cannot be "optimizing", therefore as much as possible you ought to
+ avoid using them to wrap your code, rather, require from the user
+ to run the macro with a correct current language, and check it
+ with `AC_LANG_ASSERT'. And anyway, that may help the user
+ understand she is running a Fortran macro while expecting a result
+ about her Fortran 77 compiler...
+
+ -- Macro: AC_REQUIRE_CPP
+ Ensure that whichever preprocessor would currently be used for
+ tests has been found. Calls `AC_REQUIRE' (*note Prerequisite
+ Macros::) with an argument of either `AC_PROG_CPP' or
+ `AC_PROG_CXXCPP', depending on which language is current.
+
+ ---------- Footnotes ----------
+
+ (1) Because M4 is not aware of Sh code, especially conditionals,
+some optimizations that look nice statically may produce incorrect
+results at runtime.
+
+
+File: autoconf.info, Node: Writing Test Programs, Next: Running the Preprocessor, Prev: Language Choice, Up: Writing Tests
+
+6.2 Writing Test Programs
+=========================
+
+Autoconf tests follow a common scheme: feed some program with some
+input, and most of the time, feed a compiler with some source file.
+This section is dedicated to these source samples.
+
+* Menu:
+
+* Guidelines:: General rules for writing test programs
+* Test Functions:: Avoiding pitfalls in test programs
+* Generating Sources:: Source program boilerplate
+
+
+File: autoconf.info, Node: Guidelines, Next: Test Functions, Up: Writing Test Programs
+
+6.2.1 Guidelines for Test Programs
+----------------------------------
+
+The most important rule to follow when writing testing samples is:
+
+ _Look for realism._
+
+ This motto means that testing samples must be written with the same
+strictness as real programs are written. In particular, you should
+avoid "shortcuts" and simplifications.
+
+ Don't just play with the preprocessor if you want to prepare a
+compilation. For instance, using `cpp' to check whether a header is
+functional might let your `configure' accept a header which causes some
+_compiler_ error. Do not hesitate to check a header with other headers
+included before, especially required headers.
+
+ Make sure the symbols you use are properly defined, i.e., refrain
+from simply declaring a function yourself instead of including the
+proper header.
+
+ Test programs should not write to standard output. They should exit
+with status 0 if the test succeeds, and with status 1 otherwise, so
+that success can be distinguished easily from a core dump or other
+failure; segmentation violations and other failures produce a nonzero
+exit status. Unless you arrange for `exit' to be declared, test
+programs should `return', not `exit', from `main', because on many
+systems `exit' is not declared by default.
+
+ Test programs can use `#if' or `#ifdef' to check the values of
+preprocessor macros defined by tests that have already run. For
+example, if you call `AC_HEADER_STDBOOL', then later on in
+`configure.ac' you can have a test program that includes `stdbool.h'
+conditionally:
+
+ #ifdef HAVE_STDBOOL_H
+ # include <stdbool.h>
+ #endif
+
+ Both `#if HAVE_STDBOOL_H' and `#ifdef HAVE_STDBOOL_H' will work with
+any standard C compiler. Some developers prefer `#if' because it is
+easier to read, while others prefer `#ifdef' because it avoids
+diagnostics with picky compilers like GCC with the `-Wundef' option.
+
+ If a test program needs to use or create a data file, give it a name
+that starts with `conftest', such as `conftest.data'. The `configure'
+script cleans up by running `rm -f -r conftest*' after running test
+programs and if the script is interrupted.
+
+
+File: autoconf.info, Node: Test Functions, Next: Generating Sources, Prev: Guidelines, Up: Writing Test Programs
+
+6.2.2 Test Functions
+--------------------
+
+These days it's safe to assume support for function prototypes
+(introduced in C89).
+
+ Functions that test programs declare should also be conditionalized
+for C++, which requires `extern "C"' prototypes. Make sure to not
+include any header files containing clashing prototypes.
+
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ void *valloc (size_t);
+
+ If a test program calls a function with invalid parameters (just to
+see whether it exists), organize the program to ensure that it never
+invokes that function. You can do this by calling it in another
+function that is never invoked. You can't do it by putting it after a
+call to `exit', because GCC version 2 knows that `exit' never returns
+and optimizes out any code that follows it in the same block.
+
+ If you include any header files, be sure to call the functions
+relevant to them with the correct number of arguments, even if they are
+just 0, to avoid compilation errors due to prototypes. GCC version 2
+has internal prototypes for several functions that it automatically
+inlines; for example, `memcpy'. To avoid errors when checking for
+them, either pass them the correct number of arguments or redeclare them
+with a different return type (such as `char').
+
+
+File: autoconf.info, Node: Generating Sources, Prev: Test Functions, Up: Writing Test Programs
+
+6.2.3 Generating Sources
+------------------------
+
+Autoconf provides a set of macros that can be used to generate test
+source files. They are written to be language generic, i.e., they
+actually depend on the current language (*note Language Choice::) to
+"format" the output properly.
+
+ -- Macro: AC_LANG_CONFTEST (SOURCE)
+ Save the SOURCE text in the current test source file:
+ `conftest.EXTENSION' where the EXTENSION depends on the current
+ language. As of Autoconf 2.63b, the source file also contains the
+ results of all of the `AC_DEFINE' performed so far.
+
+ Note that the SOURCE is evaluated exactly once, like regular
+ Autoconf macro arguments, and therefore (i) you may pass a macro
+ invocation, (ii) if not, be sure to double quote if needed.
+
+ This macro issues a warning during `autoconf' processing if SOURCE
+ does not include an expansion of the macro
+ `AC_LANG_DEFINES_PROVIDED' (note that both `AC_LANG_SOURCE' and
+ `AC_LANG_PROGRAM' call this macro, and thus avoid the warning).
+
+ This macro is seldom called directly, but is used under the hood
+ by more common macros such as `AC_COMPILE_IFELSE' and
+ `AC_RUN_IFELSE'.
+
+ -- Macro: AC_LANG_DEFINES_PROVIDED
+ This macro is called as a witness that the file
+ `conftest.EXTENSION' appropriate for the current language is
+ complete, including all previously determined results from
+ `AC_DEFINE'. This macro is seldom called directly, but exists if
+ you have a compelling reason to write a conftest file without using
+ `AC_LANG_SOURCE', yet still want to avoid a syntax warning from
+ `AC_LANG_CONFTEST'.
+
+ -- Macro: AC_LANG_SOURCE (SOURCE)
+ Expands into the SOURCE, with the definition of all the
+ `AC_DEFINE' performed so far. This macro includes an expansion of
+ `AC_LANG_DEFINES_PROVIDED'.
+
+ In many cases, you may find it more convenient to use the wrapper
+ `AC_LANG_PROGRAM'.
+
+ For instance, executing (observe the double quotation!):
+
+ AC_INIT([Hello], [1.0], [bug-hello@example.org], [],
+ [http://www.example.org/])
+ AC_DEFINE([HELLO_WORLD], ["Hello, World\n"],
+ [Greetings string.])
+ AC_LANG([C])
+ AC_LANG_CONFTEST(
+ [AC_LANG_SOURCE([[const char hw[] = "Hello, World\n";]])])
+ gcc -E -dD conftest.c
+
+on a system with `gcc' installed, results in:
+
+ ...
+ # 1 "conftest.c"
+
+ #define PACKAGE_NAME "Hello"
+ #define PACKAGE_TARNAME "hello"
+ #define PACKAGE_VERSION "1.0"
+ #define PACKAGE_STRING "Hello 1.0"
+ #define PACKAGE_BUGREPORT "bug-hello@example.org"
+ #define PACKAGE_URL "http://www.example.org/"
+ #define HELLO_WORLD "Hello, World\n"
+
+ const char hw[] = "Hello, World\n";
+
+ When the test language is Fortran, Erlang, or Go, the `AC_DEFINE'
+definitions are not automatically translated into constants in the
+source code by this macro.
+
+ -- Macro: AC_LANG_PROGRAM (PROLOGUE, BODY)
+ Expands into a source file which consists of the PROLOGUE, and
+ then BODY as body of the main function (e.g., `main' in C). Since
+ it uses `AC_LANG_SOURCE', the features of the latter are available.
+
+ For instance:
+
+ AC_INIT([Hello], [1.0], [bug-hello@example.org], [],
+ [http://www.example.org/])
+ AC_DEFINE([HELLO_WORLD], ["Hello, World\n"],
+ [Greetings string.])
+ AC_LANG_CONFTEST(
+ [AC_LANG_PROGRAM([[const char hw[] = "Hello, World\n";]],
+ [[fputs (hw, stdout);]])])
+ gcc -E -dD conftest.c
+
+on a system with `gcc' installed, results in:
+
+ ...
+ # 1 "conftest.c"
+
+ #define PACKAGE_NAME "Hello"
+ #define PACKAGE_TARNAME "hello"
+ #define PACKAGE_VERSION "1.0"
+ #define PACKAGE_STRING "Hello 1.0"
+ #define PACKAGE_BUGREPORT "bug-hello@example.org"
+ #define PACKAGE_URL "http://www.example.org/"
+ #define HELLO_WORLD "Hello, World\n"
+
+ const char hw[] = "Hello, World\n";
+ int
+ main ()
+ {
+ fputs (hw, stdout);
+ ;
+ return 0;
+ }
+
+ In Erlang tests, the created source file is that of an Erlang module
+called `conftest' (`conftest.erl'). This module defines and exports at
+least one `start/0' function, which is called to perform the test. The
+PROLOGUE is optional code that is inserted between the module header and
+the `start/0' function definition. BODY is the body of the `start/0'
+function without the final period (*note Runtime::, about constraints
+on this function's behavior).
+
+ For instance:
+
+ AC_INIT([Hello], [1.0], [bug-hello@example.org])
+ AC_LANG(Erlang)
+ AC_LANG_CONFTEST(
+ [AC_LANG_PROGRAM([[-define(HELLO_WORLD, "Hello, world!").]],
+ [[io:format("~s~n", [?HELLO_WORLD])]])])
+ cat conftest.erl
+
+results in:
+
+ -module(conftest).
+ -export([start/0]).
+ -define(HELLO_WORLD, "Hello, world!").
+ start() ->
+ io:format("~s~n", [?HELLO_WORLD])
+ .
+
+ -- Macro: AC_LANG_CALL (PROLOGUE, FUNCTION)
+ Expands into a source file which consists of the PROLOGUE, and
+ then a call to the FUNCTION as body of the main function (e.g.,
+ `main' in C). Since it uses `AC_LANG_PROGRAM', the feature of the
+ latter are available.
+
+ This function will probably be replaced in the future by a version
+ which would enable specifying the arguments. The use of this
+ macro is not encouraged, as it violates strongly the typing system.
+
+ This macro cannot be used for Erlang tests.
+
+ -- Macro: AC_LANG_FUNC_LINK_TRY (FUNCTION)
+ Expands into a source file which uses the FUNCTION in the body of
+ the main function (e.g., `main' in C). Since it uses
+ `AC_LANG_PROGRAM', the features of the latter are available.
+
+ As `AC_LANG_CALL', this macro is documented only for completeness.
+ It is considered to be severely broken, and in the future will be
+ removed in favor of actual function calls (with properly typed
+ arguments).
+
+ This macro cannot be used for Erlang tests.
+
+
+File: autoconf.info, Node: Running the Preprocessor, Next: Running the Compiler, Prev: Writing Test Programs, Up: Writing Tests
+
+6.3 Running the Preprocessor
+============================
+
+Sometimes one might need to run the preprocessor on some source file.
+_Usually it is a bad idea_, as you typically need to _compile_ your
+project, not merely run the preprocessor on it; therefore you certainly
+want to run the compiler, not the preprocessor. Resist the temptation
+of following the easiest path.
+
+ Nevertheless, if you need to run the preprocessor, then use
+`AC_PREPROC_IFELSE'.
+
+ The macros described in this section cannot be used for tests in
+Erlang, Fortran, or Go, since those languages require no preprocessor.
+
+ -- Macro: AC_PREPROC_IFELSE (INPUT, [ACTION-IF-TRUE],
+ [ACTION-IF-FALSE])
+ Run the preprocessor of the current language (*note Language
+ Choice::) on the INPUT, run the shell commands ACTION-IF-TRUE on
+ success, ACTION-IF-FALSE otherwise. The INPUT can be made by
+ `AC_LANG_PROGRAM' and friends.
+
+ This macro uses `CPPFLAGS', but not `CFLAGS', because `-g', `-O',
+ etc. are not valid options to many C preprocessors.
+
+ It is customary to report unexpected failures with
+ `AC_MSG_FAILURE'. If needed, ACTION-IF-TRUE can further access
+ the preprocessed output in the file `conftest.i'.
+
+ For instance:
+
+ AC_INIT([Hello], [1.0], [bug-hello@example.org])
+ AC_DEFINE([HELLO_WORLD], ["Hello, World\n"],
+ [Greetings string.])
+ AC_PREPROC_IFELSE(
+ [AC_LANG_PROGRAM([[const char hw[] = "Hello, World\n";]],
+ [[fputs (hw, stdout);]])],
+ [AC_MSG_RESULT([OK])],
+ [AC_MSG_FAILURE([unexpected preprocessor failure])])
+
+results in:
+
+ checking for gcc... gcc
+ checking for C compiler default output file name... a.out
+ checking whether the C compiler works... yes
+ checking whether we are cross compiling... no
+ checking for suffix of executables...
+ checking for suffix of object files... o
+ checking whether we are using the GNU C compiler... yes
+ checking whether gcc accepts -g... yes
+ checking for gcc option to accept ISO C89... none needed
+ checking how to run the C preprocessor... gcc -E
+ OK
+
+
+ The macro `AC_TRY_CPP' (*note Obsolete Macros::) used to play the
+role of `AC_PREPROC_IFELSE', but double quotes its argument, making it
+impossible to use it to elaborate sources. You are encouraged to get
+rid of your old use of the macro `AC_TRY_CPP' in favor of
+`AC_PREPROC_IFELSE', but, in the first place, are you sure you need to
+run the _preprocessor_ and not the compiler?
+
+ -- Macro: AC_EGREP_HEADER (PATTERN, HEADER-FILE, ACTION-IF-FOUND,
+ [ACTION-IF-NOT-FOUND])
+ If the output of running the preprocessor on the system header file
+ HEADER-FILE matches the extended regular expression PATTERN,
+ execute shell commands ACTION-IF-FOUND, otherwise execute
+ ACTION-IF-NOT-FOUND.
+
+ -- Macro: AC_EGREP_CPP (PATTERN, PROGRAM, [ACTION-IF-FOUND],
+ [ACTION-IF-NOT-FOUND])
+ PROGRAM is the text of a C or C++ program, on which shell
+ variable, back quote, and backslash substitutions are performed.
+ If the output of running the preprocessor on PROGRAM matches the
+ extended regular expression PATTERN, execute shell commands
+ ACTION-IF-FOUND, otherwise execute ACTION-IF-NOT-FOUND.
+
+
+File: autoconf.info, Node: Running the Compiler, Next: Running the Linker, Prev: Running the Preprocessor, Up: Writing Tests
+
+6.4 Running the Compiler
+========================
+
+To check for a syntax feature of the current language's (*note Language
+Choice::) compiler, such as whether it recognizes a certain keyword, or
+simply to try some library feature, use `AC_COMPILE_IFELSE' to try to
+compile a small program that uses that feature.
+
+ -- Macro: AC_COMPILE_IFELSE (INPUT, [ACTION-IF-TRUE],
+ [ACTION-IF-FALSE])
+ Run the compiler and compilation flags of the current language
+ (*note Language Choice::) on the INPUT, run the shell commands
+ ACTION-IF-TRUE on success, ACTION-IF-FALSE otherwise. The INPUT
+ can be made by `AC_LANG_PROGRAM' and friends.
+
+ It is customary to report unexpected failures with
+ `AC_MSG_FAILURE'. This macro does not try to link; use
+ `AC_LINK_IFELSE' if you need to do that (*note Running the
+ Linker::). If needed, ACTION-IF-TRUE can further access the
+ just-compiled object file `conftest.$OBJEXT'.
+
+ This macro uses `AC_REQUIRE' for the compiler associated with the
+ current language, which means that if the compiler has not yet been
+ determined, the compiler determination will be made prior to the
+ body of the outermost `AC_DEFUN' macro that triggered this macro to
+ expand (*note Expanded Before Required::).
+
+ For tests in Erlang, the INPUT must be the source code of a module
+named `conftest'. `AC_COMPILE_IFELSE' generates a `conftest.beam' file
+that can be interpreted by the Erlang virtual machine (`ERL'). It is
+recommended to use `AC_LANG_PROGRAM' to specify the test program, to
+ensure that the Erlang module has the right name.
+
+
+File: autoconf.info, Node: Running the Linker, Next: Runtime, Prev: Running the Compiler, Up: Writing Tests
+
+6.5 Running the Linker
+======================
+
+To check for a library, a function, or a global variable, Autoconf
+`configure' scripts try to compile and link a small program that uses
+it. This is unlike Metaconfig, which by default uses `nm' or `ar' on
+the C library to try to figure out which functions are available.
+Trying to link with the function is usually a more reliable approach
+because it avoids dealing with the variations in the options and output
+formats of `nm' and `ar' and in the location of the standard libraries.
+It also allows configuring for cross-compilation or checking a
+function's runtime behavior if needed. On the other hand, it can be
+slower than scanning the libraries once, but accuracy is more important
+than speed.
+
+ `AC_LINK_IFELSE' is used to compile test programs to test for
+functions and global variables. It is also used by `AC_CHECK_LIB' to
+check for libraries (*note Libraries::), by adding the library being
+checked for to `LIBS' temporarily and trying to link a small program.
+
+ -- Macro: AC_LINK_IFELSE (INPUT, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
+ Run the compiler (and compilation flags) and the linker of the
+ current language (*note Language Choice::) on the INPUT, run the
+ shell commands ACTION-IF-TRUE on success, ACTION-IF-FALSE
+ otherwise. The INPUT can be made by `AC_LANG_PROGRAM' and
+ friends. If needed, ACTION-IF-TRUE can further access the
+ just-linked program file `conftest$EXEEXT'.
+
+ `LDFLAGS' and `LIBS' are used for linking, in addition to the
+ current compilation flags.
+
+ It is customary to report unexpected failures with
+ `AC_MSG_FAILURE'. This macro does not try to execute the program;
+ use `AC_RUN_IFELSE' if you need to do that (*note Runtime::).
+
+ The `AC_LINK_IFELSE' macro cannot be used for Erlang tests, since
+Erlang programs are interpreted and do not require linking.
+
+
+File: autoconf.info, Node: Runtime, Next: Systemology, Prev: Running the Linker, Up: Writing Tests
+
+6.6 Checking Runtime Behavior
+=============================
+
+Sometimes you need to find out how a system performs at runtime, such
+as whether a given function has a certain capability or bug. If you
+can, make such checks when your program runs instead of when it is
+configured. You can check for things like the machine's endianness when
+your program initializes itself.
+
+ If you really need to test for a runtime behavior while configuring,
+you can write a test program to determine the result, and compile and
+run it using `AC_RUN_IFELSE'. Avoid running test programs if possible,
+because this prevents people from configuring your package for
+cross-compiling.
+
+ -- Macro: AC_RUN_IFELSE (INPUT, [ACTION-IF-TRUE], [ACTION-IF-FALSE],
+ [ACTION-IF-CROSS-COMPILING = `AC_MSG_FAILURE'])
+ Run the compiler (and compilation flags) and the linker of the
+ current language (*note Language Choice::) on the INPUT, then
+ execute the resulting program. If the program returns an exit
+ status of 0 when executed, run shell commands ACTION-IF-TRUE.
+ Otherwise, run shell commands ACTION-IF-FALSE.
+
+ The INPUT can be made by `AC_LANG_PROGRAM' and friends. `LDFLAGS'
+ and `LIBS' are used for linking, in addition to the compilation
+ flags of the current language (*note Language Choice::).
+ Additionally, ACTION-IF-TRUE can run `./conftest$EXEEXT' for
+ further testing.
+
+ In the ACTION-IF-FALSE section, the failing exit status is
+ available in the shell variable `$?'. This exit status might be
+ that of a failed compilation, or it might be that of a failed
+ program execution.
+
+ If cross-compilation mode is enabled (this is the case if either
+ the compiler being used does not produce executables that run on
+ the system where `configure' is being run, or if the options
+ `--build' and `--host' were both specified and their values are
+ different), then the test program is not run. If the optional
+ shell commands ACTION-IF-CROSS-COMPILING are given, those commands
+ are run instead; typically these commands provide pessimistic
+ defaults that allow cross-compilation to work even if the guess
+ was wrong. If the fourth argument is empty or omitted, but
+ cross-compilation is detected, then `configure' prints an error
+ message and exits. If you want your package to be useful in a
+ cross-compilation scenario, you _should_ provide a non-empty
+ ACTION-IF-CROSS-COMPILING clause, as well as wrap the
+ `AC_RUN_IFELSE' compilation inside an `AC_CACHE_CHECK' (*note
+ Caching Results::) which allows the user to override the
+ pessimistic default if needed.
+
+ It is customary to report unexpected failures with
+ `AC_MSG_FAILURE'.
+
+ `autoconf' prints a warning message when creating `configure' each
+time it encounters a call to `AC_RUN_IFELSE' with no
+ACTION-IF-CROSS-COMPILING argument given. If you are not concerned
+about users configuring your package for cross-compilation, you may
+ignore the warning. A few of the macros distributed with Autoconf
+produce this warning message; but if this is a problem for you, please
+report it as a bug, along with an appropriate pessimistic guess to use
+instead.
+
+ To configure for cross-compiling you can also choose a value for
+those parameters based on the canonical system name (*note Manual
+Configuration::). Alternatively, set up a test results cache file with
+the correct values for the host system (*note Caching Results::).
+
+ To provide a default for calls of `AC_RUN_IFELSE' that are embedded
+in other macros, including a few of the ones that come with Autoconf,
+you can test whether the shell variable `cross_compiling' is set to
+`yes', and then use an alternate method to get the results instead of
+calling the macros.
+
+ It is also permissible to temporarily assign to `cross_compiling' in
+order to force tests to behave as though they are in a
+cross-compilation environment, particularly since this provides a way to
+test your ACTION-IF-CROSS-COMPILING even when you are not using a
+cross-compiler.
+
+ # We temporarily set cross-compile mode to force AC_COMPUTE_INT
+ # to use the slow link-only method
+ save_cross_compiling=$cross_compiling
+ cross_compiling=yes
+ AC_COMPUTE_INT([...])
+ cross_compiling=$save_cross_compiling
+
+ A C or C++ runtime test should be portable. *Note Portable C and
+C++::.
+
+ Erlang tests must exit themselves the Erlang VM by calling the
+`halt/1' function: the given status code is used to determine the
+success of the test (status is `0') or its failure (status is different
+than `0'), as explained above. It must be noted that data output
+through the standard output (e.g., using `io:format/2') may be
+truncated when halting the VM. Therefore, if a test must output
+configuration information, it is recommended to create and to output
+data into the temporary file named `conftest.out', using the functions
+of module `file'. The `conftest.out' file is automatically deleted by
+the `AC_RUN_IFELSE' macro. For instance, a simplified implementation
+of Autoconf's `AC_ERLANG_SUBST_LIB_DIR' macro is:
+
+ AC_INIT([LibdirTest], [1.0], [bug-libdirtest@example.org])
+ AC_ERLANG_NEED_ERL
+ AC_LANG(Erlang)
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([], [dnl
+ file:write_file("conftest.out", code:lib_dir()),
+ halt(0)])],
+ [echo "code:lib_dir() returned: `cat conftest.out`"],
+ [AC_MSG_FAILURE([test Erlang program execution failed])])
+
+
+File: autoconf.info, Node: Systemology, Next: Multiple Cases, Prev: Runtime, Up: Writing Tests
+
+6.7 Systemology
+===============
+
+This section aims at presenting some systems and pointers to
+documentation. It may help you addressing particular problems reported
+by users.
+
+ Posix-conforming systems (http://www.opengroup.org/susv3) are
+derived from the Unix operating system
+(http://www.bell-labs.com/history/unix/).
+
+ The Rosetta Stone for Unix (http://bhami.com/rosetta.html) contains
+a table correlating the features of various Posix-conforming systems.
+Unix History (http://www.levenez.com/unix/) is a simplified diagram of
+how many Unix systems were derived from each other.
+
+ The Heirloom Project (http://heirloom.sourceforge.net/) provides
+some variants of traditional implementations of Unix utilities.
+
+Darwin
+ Darwin is also known as Mac OS X. Beware that the file system
+ _can_ be case-preserving, but case insensitive. This can cause
+ nasty problems, since for instance the installation attempt for a
+ package having an `INSTALL' file can result in `make install'
+ report that nothing was to be done!
+
+ That's all dependent on whether the file system is a UFS (case
+ sensitive) or HFS+ (case preserving). By default Apple wants you
+ to install the OS on HFS+. Unfortunately, there are some pieces of
+ software which really need to be built on UFS. We may want to
+ rebuild Darwin to have both UFS and HFS+ available (and put the
+ /local/build tree on the UFS).
+
+QNX 4.25
+ QNX is a realtime operating system running on Intel architecture
+ meant to be scalable from the small embedded systems to the hundred
+ processor super-computer. It claims to be Posix certified. More
+ information is available on the QNX home page
+ (http://www.qnx.com/).
+
+Tru64
+ Documentation of several versions of Tru64
+ (http://h30097.www3.hp.com/docs/) is available in different
+ formats.
+
+Unix version 7
+ Officially this was called the "Seventh Edition" of "the UNIX
+ time-sharing system" but we use the more-common name "Unix version
+ 7". Documentation is available in the Unix Seventh Edition Manual
+ (http://plan9.bell-labs.com/7thEdMan/). Previous versions of Unix
+ are called "Unix version 6", etc., but they were not as widely
+ used.
+
+
+File: autoconf.info, Node: Multiple Cases, Prev: Systemology, Up: Writing Tests
+
+6.8 Multiple Cases
+==================
+
+Some operations are accomplished in several possible ways, depending on
+the OS variant. Checking for them essentially requires a "case
+statement". Autoconf does not directly provide one; however, it is
+easy to simulate by using a shell variable to keep track of whether a
+way to perform the operation has been found yet.
+
+ Here is an example that uses the shell variable `fstype' to keep
+track of whether the remaining cases need to be checked. Note that
+since the value of `fstype' is under our control, we don't have to use
+the longer `test "x$fstype" = xno'.
+
+ AC_MSG_CHECKING([how to get file system type])
+ fstype=no
+ # The order of these tests is important.
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/statvfs.h>
+ #include <sys/fstyp.h>]])],
+ [AC_DEFINE([FSTYPE_STATVFS], [1],
+ [Define if statvfs exists.])
+ fstype=SVR4])
+ if test $fstype = no; then
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/statfs.h>
+ #include <sys/fstyp.h>]])],
+ [AC_DEFINE([FSTYPE_USG_STATFS], [1],
+ [Define if USG statfs.])
+ fstype=SVR3])
+ fi
+ if test $fstype = no; then
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/statfs.h>
+ #include <sys/vmount.h>]])]),
+ [AC_DEFINE([FSTYPE_AIX_STATFS], [1],
+ [Define if AIX statfs.])
+ fstype=AIX])
+ fi
+ # (more cases omitted here)
+ AC_MSG_RESULT([$fstype])
+
+
+File: autoconf.info, Node: Results, Next: Programming in M4, Prev: Writing Tests, Up: Top
+
+7 Results of Tests
+******************
+
+Once `configure' has determined whether a feature exists, what can it
+do to record that information? There are four sorts of things it can
+do: define a C preprocessor symbol, set a variable in the output files,
+save the result in a cache file for future `configure' runs, and print
+a message letting the user know the result of the test.
+
+* Menu:
+
+* Defining Symbols:: Defining C preprocessor symbols
+* Setting Output Variables:: Replacing variables in output files
+* Special Chars in Variables:: Characters to beware of in variables
+* Caching Results:: Speeding up subsequent `configure' runs
+* Printing Messages:: Notifying `configure' users
+
+
+File: autoconf.info, Node: Defining Symbols, Next: Setting Output Variables, Up: Results
+
+7.1 Defining C Preprocessor Symbols
+===================================
+
+A common action to take in response to a feature test is to define a C
+preprocessor symbol indicating the results of the test. That is done by
+calling `AC_DEFINE' or `AC_DEFINE_UNQUOTED'.
+
+ By default, `AC_OUTPUT' places the symbols defined by these macros
+into the output variable `DEFS', which contains an option
+`-DSYMBOL=VALUE' for each symbol defined. Unlike in Autoconf version
+1, there is no variable `DEFS' defined while `configure' is running.
+To check whether Autoconf macros have already defined a certain C
+preprocessor symbol, test the value of the appropriate cache variable,
+as in this example:
+
+ AC_CHECK_FUNC([vprintf], [AC_DEFINE([HAVE_VPRINTF], [1],
+ [Define if vprintf exists.])])
+ if test "x$ac_cv_func_vprintf" != xyes; then
+ AC_CHECK_FUNC([_doprnt], [AC_DEFINE([HAVE_DOPRNT], [1],
+ [Define if _doprnt exists.])])
+ fi
+
+ If `AC_CONFIG_HEADERS' has been called, then instead of creating
+`DEFS', `AC_OUTPUT' creates a header file by substituting the correct
+values into `#define' statements in a template file. *Note
+Configuration Headers::, for more information about this kind of output.
+
+ -- Macro: AC_DEFINE (VARIABLE, VALUE, [DESCRIPTION])
+ -- Macro: AC_DEFINE (VARIABLE)
+ Define VARIABLE to VALUE (verbatim), by defining a C preprocessor
+ macro for VARIABLE. VARIABLE should be a C identifier, optionally
+ suffixed by a parenthesized argument list to define a C
+ preprocessor macro with arguments. The macro argument list, if
+ present, should be a comma-separated list of C identifiers,
+ possibly terminated by an ellipsis `...' if C99 syntax is employed.
+ VARIABLE should not contain comments, white space, trigraphs,
+ backslash-newlines, universal character names, or non-ASCII
+ characters.
+
+ VALUE may contain backslash-escaped newlines, which will be
+ preserved if you use `AC_CONFIG_HEADERS' but flattened if passed
+ via `@DEFS@' (with no effect on the compilation, since the
+ preprocessor sees only one line in the first place). VALUE should
+ not contain raw newlines. If you are not using
+ `AC_CONFIG_HEADERS', VALUE should not contain any `#' characters,
+ as `make' tends to eat them. To use a shell variable, use
+ `AC_DEFINE_UNQUOTED' instead.
+
+ DESCRIPTION is only useful if you are using `AC_CONFIG_HEADERS'.
+ In this case, DESCRIPTION is put into the generated `config.h.in'
+ as the comment before the macro define. The following example
+ defines the C preprocessor variable `EQUATION' to be the string
+ constant `"$a > $b"':
+
+ AC_DEFINE([EQUATION], ["$a > $b"],
+ [Equation string.])
+
+ If neither VALUE nor DESCRIPTION are given, then VALUE defaults to
+ 1 instead of to the empty string. This is for backwards
+ compatibility with older versions of Autoconf, but this usage is
+ obsolescent and may be withdrawn in future versions of Autoconf.
+
+ If the VARIABLE is a literal string, it is passed to
+ `m4_pattern_allow' (*note Forbidden Patterns::).
+
+ If multiple `AC_DEFINE' statements are executed for the same
+ VARIABLE name (not counting any parenthesized argument list), the
+ last one wins.
+
+ -- Macro: AC_DEFINE_UNQUOTED (VARIABLE, VALUE, [DESCRIPTION])
+ -- Macro: AC_DEFINE_UNQUOTED (VARIABLE)
+ Like `AC_DEFINE', but three shell expansions are
+ performed--once--on VARIABLE and VALUE: variable expansion (`$'),
+ command substitution (``'), and backslash escaping (`\'), as if in
+ an unquoted here-document. Single and double quote characters in
+ the value have no special meaning. Use this macro instead of
+ `AC_DEFINE' when VARIABLE or VALUE is a shell variable. Examples:
+
+ AC_DEFINE_UNQUOTED([config_machfile], ["$machfile"],
+ [Configuration machine file.])
+ AC_DEFINE_UNQUOTED([GETGROUPS_T], [$ac_cv_type_getgroups],
+ [getgroups return type.])
+ AC_DEFINE_UNQUOTED([$ac_tr_hdr], [1],
+ [Translated header name.])
+
+ Due to a syntactical bizarreness of the Bourne shell, do not use
+semicolons to separate `AC_DEFINE' or `AC_DEFINE_UNQUOTED' calls from
+other macro calls or shell code; that can cause syntax errors in the
+resulting `configure' script. Use either blanks or newlines. That is,
+do this:
+
+ AC_CHECK_HEADER([elf.h],
+ [AC_DEFINE([SVR4], [1], [System V Release 4]) LIBS="-lelf $LIBS"])
+
+or this:
+
+ AC_CHECK_HEADER([elf.h],
+ [AC_DEFINE([SVR4], [1], [System V Release 4])
+ LIBS="-lelf $LIBS"])
+
+instead of this:
+
+ AC_CHECK_HEADER([elf.h],
+ [AC_DEFINE([SVR4], [1], [System V Release 4]); LIBS="-lelf $LIBS"])
+
+
+File: autoconf.info, Node: Setting Output Variables, Next: Special Chars in Variables, Prev: Defining Symbols, Up: Results
+
+7.2 Setting Output Variables
+============================
+
+Another way to record the results of tests is to set "output
+variables", which are shell variables whose values are substituted into
+files that `configure' outputs. The two macros below create new output
+variables. *Note Preset Output Variables::, for a list of output
+variables that are always available.
+
+ -- Macro: AC_SUBST (VARIABLE, [VALUE])
+ Create an output variable from a shell variable. Make `AC_OUTPUT'
+ substitute the variable VARIABLE into output files (typically one
+ or more makefiles). This means that `AC_OUTPUT' replaces
+ instances of `@VARIABLE@' in input files with the value that the
+ shell variable VARIABLE has when `AC_OUTPUT' is called. The value
+ can contain any non-`NUL' character, including newline. If you
+ are using Automake 1.11 or newer, for newlines in values you might
+ want to consider using `AM_SUBST_NOTMAKE' to prevent `automake'
+ from adding a line `VARIABLE = @VARIABLE@' to the `Makefile.in'
+ files (*note Automake: (automake)Optional.).
+
+ Variable occurrences should not overlap: e.g., an input file should
+ not contain `@VAR1@VAR2@' if VAR1 and VAR2 are variable names.
+ The substituted value is not rescanned for more output variables;
+ occurrences of `@VARIABLE@' in the value are inserted literally
+ into the output file. (The algorithm uses the special marker
+ `|#_!!_#|' internally, so neither the substituted value nor the
+ output file may contain `|#_!!_#|'.)
+
+ If VALUE is given, in addition assign it to VARIABLE.
+
+ The string VARIABLE is passed to `m4_pattern_allow' (*note
+ Forbidden Patterns::).
+
+ -- Macro: AC_SUBST_FILE (VARIABLE)
+ Another way to create an output variable from a shell variable.
+ Make `AC_OUTPUT' insert (without substitutions) the contents of
+ the file named by shell variable VARIABLE into output files. This
+ means that `AC_OUTPUT' replaces instances of `@VARIABLE@' in
+ output files (such as `Makefile.in') with the contents of the file
+ that the shell variable VARIABLE names when `AC_OUTPUT' is called.
+ Set the variable to `/dev/null' for cases that do not have a file
+ to insert. This substitution occurs only when the `@VARIABLE@' is
+ on a line by itself, optionally surrounded by spaces and tabs. The
+ substitution replaces the whole line, including the spaces, tabs,
+ and the terminating newline.
+
+ This macro is useful for inserting makefile fragments containing
+ special dependencies or other `make' directives for particular host
+ or target types into makefiles. For example, `configure.ac' could
+ contain:
+
+ AC_SUBST_FILE([host_frag])
+ host_frag=$srcdir/conf/sun4.mh
+
+ and then a `Makefile.in' could contain:
+
+ @host_frag@
+
+ The string VARIABLE is passed to `m4_pattern_allow' (*note
+ Forbidden Patterns::).
+
+ Running `configure' in varying environments can be extremely
+dangerous. If for instance the user runs `CC=bizarre-cc ./configure',
+then the cache, `config.h', and many other output files depend upon
+`bizarre-cc' being the C compiler. If for some reason the user runs
+`./configure' again, or if it is run via `./config.status --recheck',
+(*Note Automatic Remaking::, and *note config.status Invocation::),
+then the configuration can be inconsistent, composed of results
+depending upon two different compilers.
+
+ Environment variables that affect this situation, such as `CC'
+above, are called "precious variables", and can be declared as such by
+`AC_ARG_VAR'.
+
+ -- Macro: AC_ARG_VAR (VARIABLE, DESCRIPTION)
+ Declare VARIABLE is a precious variable, and include its
+ DESCRIPTION in the variable section of `./configure --help'.
+
+ Being precious means that
+ - VARIABLE is substituted via `AC_SUBST'.
+
+ - The value of VARIABLE when `configure' was launched is saved
+ in the cache, including if it was not specified on the command
+ line but via the environment. Indeed, while `configure' can
+ notice the definition of `CC' in `./configure CC=bizarre-cc',
+ it is impossible to notice it in `CC=bizarre-cc ./configure',
+ which, unfortunately, is what most users do.
+
+ We emphasize that it is the _initial_ value of VARIABLE which
+ is saved, not that found during the execution of `configure'.
+ Indeed, specifying `./configure FOO=foo' and letting
+ `./configure' guess that `FOO' is `foo' can be two different
+ things.
+
+ - VARIABLE is checked for consistency between two `configure'
+ runs. For instance:
+
+ $ ./configure --silent --config-cache
+ $ CC=cc ./configure --silent --config-cache
+ configure: error: `CC' was not set in the previous run
+ configure: error: changes in the environment can compromise \
+ the build
+ configure: error: run `make distclean' and/or \
+ `rm config.cache' and start over
+
+ and similarly if the variable is unset, or if its content is
+ changed. If the content has white space changes only, then
+ the error is degraded to a warning only, but the old value is
+ reused.
+
+ - VARIABLE is kept during automatic reconfiguration (*note
+ config.status Invocation::) as if it had been passed as a
+ command line argument, including when no cache is used:
+
+ $ CC=/usr/bin/cc ./configure var=raboof --silent
+ $ ./config.status --recheck
+ running CONFIG_SHELL=/bin/sh /bin/sh ./configure var=raboof \
+ CC=/usr/bin/cc --no-create --no-recursion
+
+
+File: autoconf.info, Node: Special Chars in Variables, Next: Caching Results, Prev: Setting Output Variables, Up: Results
+
+7.3 Special Characters in Output Variables
+==========================================
+
+Many output variables are intended to be evaluated both by `make' and
+by the shell. Some characters are expanded differently in these two
+contexts, so to avoid confusion these variables' values should not
+contain any of the following characters:
+
+ " # $ & ' ( ) * ; < > ? [ \ ^ ` |
+
+ Also, these variables' values should neither contain newlines, nor
+start with `~', nor contain white space or `:' immediately followed by
+`~'. The values can contain nonempty sequences of white space
+characters like tabs and spaces, but each such sequence might
+arbitrarily be replaced by a single space during substitution.
+
+ These restrictions apply both to the values that `configure'
+computes, and to the values set directly by the user. For example, the
+following invocations of `configure' are problematic, since they
+attempt to use special characters within `CPPFLAGS' and white space
+within `$(srcdir)':
+
+ CPPFLAGS='-DOUCH="&\"#$*?"' '../My Source/ouch-1.0/configure'
+
+ '../My Source/ouch-1.0/configure' CPPFLAGS='-DOUCH="&\"#$*?"'
+
+
+File: autoconf.info, Node: Caching Results, Next: Printing Messages, Prev: Special Chars in Variables, Up: Results
+
+7.4 Caching Results
+===================
+
+To avoid checking for the same features repeatedly in various
+`configure' scripts (or in repeated runs of one script), `configure'
+can optionally save the results of many checks in a "cache file" (*note
+Cache Files::). If a `configure' script runs with caching enabled and
+finds a cache file, it reads the results of previous runs from the
+cache and avoids rerunning those checks. As a result, `configure' can
+then run much faster than if it had to perform all of the checks every
+time.
+
+ -- Macro: AC_CACHE_VAL (CACHE-ID, COMMANDS-TO-SET-IT)
+ Ensure that the results of the check identified by CACHE-ID are
+ available. If the results of the check were in the cache file
+ that was read, and `configure' was not given the `--quiet' or
+ `--silent' option, print a message saying that the result was
+ cached; otherwise, run the shell commands COMMANDS-TO-SET-IT. If
+ the shell commands are run to determine the value, the value is
+ saved in the cache file just before `configure' creates its output
+ files. *Note Cache Variable Names::, for how to choose the name
+ of the CACHE-ID variable.
+
+ The COMMANDS-TO-SET-IT _must have no side effects_ except for
+ setting the variable CACHE-ID, see below.
+
+ -- Macro: AC_CACHE_CHECK (MESSAGE, CACHE-ID, COMMANDS-TO-SET-IT)
+ A wrapper for `AC_CACHE_VAL' that takes care of printing the
+ messages. This macro provides a convenient shorthand for the most
+ common way to use these macros. It calls `AC_MSG_CHECKING' for
+ MESSAGE, then `AC_CACHE_VAL' with the CACHE-ID and COMMANDS
+ arguments, and `AC_MSG_RESULT' with CACHE-ID.
+
+ The COMMANDS-TO-SET-IT _must have no side effects_ except for
+ setting the variable CACHE-ID, see below.
+
+ It is common to find buggy macros using `AC_CACHE_VAL' or
+`AC_CACHE_CHECK', because people are tempted to call `AC_DEFINE' in the
+COMMANDS-TO-SET-IT. Instead, the code that _follows_ the call to
+`AC_CACHE_VAL' should call `AC_DEFINE', by examining the value of the
+cache variable. For instance, the following macro is broken:
+
+ AC_DEFUN([AC_SHELL_TRUE],
+ [AC_CACHE_CHECK([whether true(1) works], [my_cv_shell_true_works],
+ [my_cv_shell_true_works=no
+ (true) 2>/dev/null && my_cv_shell_true_works=yes
+ if test "x$my_cv_shell_true_works" = xyes; then
+ AC_DEFINE([TRUE_WORKS], [1],
+ [Define if `true(1)' works properly.])
+ fi])
+ ])
+
+This fails if the cache is enabled: the second time this macro is run,
+`TRUE_WORKS' _will not be defined_. The proper implementation is:
+
+ AC_DEFUN([AC_SHELL_TRUE],
+ [AC_CACHE_CHECK([whether true(1) works], [my_cv_shell_true_works],
+ [my_cv_shell_true_works=no
+ (true) 2>/dev/null && my_cv_shell_true_works=yes])
+ if test "x$my_cv_shell_true_works" = xyes; then
+ AC_DEFINE([TRUE_WORKS], [1],
+ [Define if `true(1)' works properly.])
+ fi
+ ])
+
+ Also, COMMANDS-TO-SET-IT should not print any messages, for example
+with `AC_MSG_CHECKING'; do that before calling `AC_CACHE_VAL', so the
+messages are printed regardless of whether the results of the check are
+retrieved from the cache or determined by running the shell commands.
+
+* Menu:
+
+* Cache Variable Names:: Shell variables used in caches
+* Cache Files:: Files `configure' uses for caching
+* Cache Checkpointing:: Loading and saving the cache file
+
+
+File: autoconf.info, Node: Cache Variable Names, Next: Cache Files, Up: Caching Results
+
+7.4.1 Cache Variable Names
+--------------------------
+
+The names of cache variables should have the following format:
+
+ PACKAGE-PREFIX_cv_VALUE-TYPE_SPECIFIC-VALUE_[ADDITIONAL-OPTIONS]
+
+for example, `ac_cv_header_stat_broken' or
+`ac_cv_prog_gcc_traditional'. The parts of the variable name are:
+
+PACKAGE-PREFIX
+ An abbreviation for your package or organization; the same prefix
+ you begin local Autoconf macros with, except lowercase by
+ convention. For cache values used by the distributed Autoconf
+ macros, this value is `ac'.
+
+`_cv_'
+ Indicates that this shell variable is a cache value. This string
+ _must_ be present in the variable name, including the leading
+ underscore.
+
+VALUE-TYPE
+ A convention for classifying cache values, to produce a rational
+ naming system. The values used in Autoconf are listed in *note
+ Macro Names::.
+
+SPECIFIC-VALUE
+ Which member of the class of cache values this test applies to.
+ For example, which function (`alloca'), program (`gcc'), or output
+ variable (`INSTALL').
+
+ADDITIONAL-OPTIONS
+ Any particular behavior of the specific member that this test
+ applies to. For example, `broken' or `set'. This part of the
+ name may be omitted if it does not apply.
+
+ The values assigned to cache variables may not contain newlines.
+Usually, their values are Boolean (`yes' or `no') or the names of files
+or functions; so this is not an important restriction. *note Cache
+Variable Index:: for an index of cache variables with documented
+semantics.
+
+
+File: autoconf.info, Node: Cache Files, Next: Cache Checkpointing, Prev: Cache Variable Names, Up: Caching Results
+
+7.4.2 Cache Files
+-----------------
+
+A cache file is a shell script that caches the results of configure
+tests run on one system so they can be shared between configure scripts
+and configure runs. It is not useful on other systems. If its contents
+are invalid for some reason, the user may delete or edit it, or override
+documented cache variables on the `configure' command line.
+
+ By default, `configure' uses no cache file, to avoid problems caused
+by accidental use of stale cache files.
+
+ To enable caching, `configure' accepts `--config-cache' (or `-C') to
+cache results in the file `config.cache'. Alternatively,
+`--cache-file=FILE' specifies that FILE be the cache file. The cache
+file is created if it does not exist already. When `configure' calls
+`configure' scripts in subdirectories, it uses the `--cache-file'
+argument so that they share the same cache. *Note Subdirectories::,
+for information on configuring subdirectories with the
+`AC_CONFIG_SUBDIRS' macro.
+
+ `config.status' only pays attention to the cache file if it is given
+the `--recheck' option, which makes it rerun `configure'.
+
+ It is wrong to try to distribute cache files for particular system
+types. There is too much room for error in doing that, and too much
+administrative overhead in maintaining them. For any features that
+can't be guessed automatically, use the standard method of the canonical
+system type and linking files (*note Manual Configuration::).
+
+ The site initialization script can specify a site-wide cache file to
+use, instead of the usual per-program cache. In this case, the cache
+file gradually accumulates information whenever someone runs a new
+`configure' script. (Running `configure' merges the new cache results
+with the existing cache file.) This may cause problems, however, if
+the system configuration (e.g., the installed libraries or compilers)
+changes and the stale cache file is not deleted.
+
+ If `configure' is interrupted at the right time when it updates a
+cache file outside of the build directory where the `configure' script
+is run, it may leave behind a temporary file named after the cache file
+with digits following it. You may safely delete such a file.
+
+
+File: autoconf.info, Node: Cache Checkpointing, Prev: Cache Files, Up: Caching Results
+
+7.4.3 Cache Checkpointing
+-------------------------
+
+If your configure script, or a macro called from `configure.ac', happens
+to abort the configure process, it may be useful to checkpoint the cache
+a few times at key points using `AC_CACHE_SAVE'. Doing so reduces the
+amount of time it takes to rerun the configure script with (hopefully)
+the error that caused the previous abort corrected.
+
+ -- Macro: AC_CACHE_LOAD
+ Loads values from existing cache file, or creates a new cache file
+ if a cache file is not found. Called automatically from `AC_INIT'.
+
+ -- Macro: AC_CACHE_SAVE
+ Flushes all cached values to the cache file. Called automatically
+ from `AC_OUTPUT', but it can be quite useful to call
+ `AC_CACHE_SAVE' at key points in `configure.ac'.
+
+ For instance:
+
+ ... AC_INIT, etc. ...
+ # Checks for programs.
+ AC_PROG_CC
+ AC_PROG_AWK
+ ... more program checks ...
+ AC_CACHE_SAVE
+
+ # Checks for libraries.
+ AC_CHECK_LIB([nsl], [gethostbyname])
+ AC_CHECK_LIB([socket], [connect])
+ ... more lib checks ...
+ AC_CACHE_SAVE
+
+ # Might abort...
+ AM_PATH_GTK([1.0.2], [], [AC_MSG_ERROR([GTK not in path])])
+ AM_PATH_GTKMM([0.9.5], [], [AC_MSG_ERROR([GTK not in path])])
+ ... AC_OUTPUT, etc. ...
+
+
+File: autoconf.info, Node: Printing Messages, Prev: Caching Results, Up: Results
+
+7.5 Printing Messages
+=====================
+
+`configure' scripts need to give users running them several kinds of
+information. The following macros print messages in ways appropriate
+for each kind. The arguments to all of them get enclosed in shell
+double quotes, so the shell performs variable and back-quote
+substitution on them.
+
+ These macros are all wrappers around the `echo' shell command. They
+direct output to the appropriate file descriptor (*note File Descriptor
+Macros::). `configure' scripts should rarely need to run `echo'
+directly to print messages for the user. Using these macros makes it
+easy to change how and when each kind of message is printed; such
+changes need only be made to the macro definitions and all the callers
+change automatically.
+
+ To diagnose static issues, i.e., when `autoconf' is run, see *note
+Diagnostic Macros::.
+
+ -- Macro: AC_MSG_CHECKING (FEATURE-DESCRIPTION)
+ Notify the user that `configure' is checking for a particular
+ feature. This macro prints a message that starts with `checking '
+ and ends with `...' and no newline. It must be followed by a call
+ to `AC_MSG_RESULT' to print the result of the check and the
+ newline. The FEATURE-DESCRIPTION should be something like
+ `whether the Fortran compiler accepts C++ comments' or `for c89'.
+
+ This macro prints nothing if `configure' is run with the `--quiet'
+ or `--silent' option.
+
+ -- Macro: AC_MSG_RESULT (RESULT-DESCRIPTION)
+ Notify the user of the results of a check. RESULT-DESCRIPTION is
+ almost always the value of the cache variable for the check,
+ typically `yes', `no', or a file name. This macro should follow a
+ call to `AC_MSG_CHECKING', and the RESULT-DESCRIPTION should be
+ the completion of the message printed by the call to
+ `AC_MSG_CHECKING'.
+
+ This macro prints nothing if `configure' is run with the `--quiet'
+ or `--silent' option.
+
+ -- Macro: AC_MSG_NOTICE (MESSAGE)
+ Deliver the MESSAGE to the user. It is useful mainly to print a
+ general description of the overall purpose of a group of feature
+ checks, e.g.,
+
+ AC_MSG_NOTICE([checking if stack overflow is detectable])
+
+ This macro prints nothing if `configure' is run with the `--quiet'
+ or `--silent' option.
+
+ -- Macro: AC_MSG_ERROR (ERROR-DESCRIPTION, [EXIT-STATUS = `$?/1'])
+ Notify the user of an error that prevents `configure' from
+ completing. This macro prints an error message to the standard
+ error output and exits `configure' with EXIT-STATUS (`$?' by
+ default, except that `0' is converted to `1'). ERROR-DESCRIPTION
+ should be something like `invalid value $HOME for \$HOME'.
+
+ The ERROR-DESCRIPTION should start with a lower-case letter, and
+ "cannot" is preferred to "can't".
+
+ -- Macro: AC_MSG_FAILURE (ERROR-DESCRIPTION, [EXIT-STATUS])
+ This `AC_MSG_ERROR' wrapper notifies the user of an error that
+ prevents `configure' from completing _and_ that additional details
+ are provided in `config.log'. This is typically used when
+ abnormal results are found during a compilation.
+
+ -- Macro: AC_MSG_WARN (PROBLEM-DESCRIPTION)
+ Notify the `configure' user of a possible problem. This macro
+ prints the message to the standard error output; `configure'
+ continues running afterward, so macros that call `AC_MSG_WARN'
+ should provide a default (back-up) behavior for the situations
+ they warn about. PROBLEM-DESCRIPTION should be something like `ln
+ -s seems to make hard links'.
+
+
+File: autoconf.info, Node: Programming in M4, Next: Programming in M4sh, Prev: Results, Up: Top
+
+8 Programming in M4
+*******************
+
+Autoconf is written on top of two layers: "M4sugar", which provides
+convenient macros for pure M4 programming, and "M4sh", which provides
+macros dedicated to shell script generation.
+
+ As of this version of Autoconf, these two layers still contain
+experimental macros, whose interface might change in the future. As a
+matter of fact, _anything that is not documented must not be used_.
+
+* Menu:
+
+* M4 Quotation:: Protecting macros from unwanted expansion
+* Using autom4te:: The Autoconf executables backbone
+* Programming in M4sugar:: Convenient pure M4 macros
+* Debugging via autom4te:: Figuring out what M4 was doing
+
+
+File: autoconf.info, Node: M4 Quotation, Next: Using autom4te, Up: Programming in M4
+
+8.1 M4 Quotation
+================
+
+The most common problem with existing macros is an improper quotation.
+This section, which users of Autoconf can skip, but which macro writers
+_must_ read, first justifies the quotation scheme that was chosen for
+Autoconf and then ends with a rule of thumb. Understanding the former
+helps one to follow the latter.
+
+* Menu:
+
+* Active Characters:: Characters that change the behavior of M4
+* One Macro Call:: Quotation and one macro call
+* Quoting and Parameters:: M4 vs. shell parameters
+* Quotation and Nested Macros:: Macros calling macros
+* Changequote is Evil:: Worse than INTERCAL: M4 + changequote
+* Quadrigraphs:: Another way to escape special characters
+* Balancing Parentheses:: Dealing with unbalanced parentheses
+* Quotation Rule Of Thumb:: One parenthesis, one quote
+
+
+File: autoconf.info, Node: Active Characters, Next: One Macro Call, Up: M4 Quotation
+
+8.1.1 Active Characters
+-----------------------
+
+To fully understand where proper quotation is important, you first need
+to know what the special characters are in Autoconf: `#' introduces a
+comment inside which no macro expansion is performed, `,' separates
+arguments, `[' and `]' are the quotes themselves(1), `(' and `)' (which
+M4 tries to match by pairs), and finally `$' inside a macro definition.
+
+ In order to understand the delicate case of macro calls, we first
+have to present some obvious failures. Below they are "obvious-ified",
+but when you find them in real life, they are usually in disguise.
+
+ Comments, introduced by a hash and running up to the newline, are
+opaque tokens to the top level: active characters are turned off, and
+there is no macro expansion:
+
+ # define([def], ine)
+ =># define([def], ine)
+
+ Each time there can be a macro expansion, there is a quotation
+expansion, i.e., one level of quotes is stripped:
+
+ int tab[10];
+ =>int tab10;
+ [int tab[10];]
+ =>int tab[10];
+
+ Without this in mind, the reader might try hopelessly to use her
+macro `array':
+
+ define([array], [int tab[10];])
+ array
+ =>int tab10;
+ [array]
+ =>array
+
+How can you correctly output the intended results(2)?
+
+ ---------- Footnotes ----------
+
+ (1) By itself, M4 uses ``' and `''; it is the M4sugar layer that
+sets up the preferred quotes of `[' and `]'.
+
+ (2) Using `defn'.
+
+
+File: autoconf.info, Node: One Macro Call, Next: Quoting and Parameters, Prev: Active Characters, Up: M4 Quotation
+
+8.1.2 One Macro Call
+--------------------
+
+Let's proceed on the interaction between active characters and macros
+with this small macro, which just returns its first argument:
+
+ define([car], [$1])
+
+The two pairs of quotes above are not part of the arguments of
+`define'; rather, they are understood by the top level when it tries to
+find the arguments of `define'. Therefore, assuming `car' is not
+already defined, it is equivalent to write:
+
+ define(car, $1)
+
+But, while it is acceptable for a `configure.ac' to avoid unnecessary
+quotes, it is bad practice for Autoconf macros which must both be more
+robust and also advocate perfect style.
+
+ At the top level, there are only two possibilities: either you quote
+or you don't:
+
+ car(foo, bar, baz)
+ =>foo
+ [car(foo, bar, baz)]
+ =>car(foo, bar, baz)
+
+ Let's pay attention to the special characters:
+
+ car(#)
+ error-->EOF in argument list
+
+ The closing parenthesis is hidden in the comment; with a hypothetical
+quoting, the top level understood it this way:
+
+ car([#)]
+
+Proper quotation, of course, fixes the problem:
+
+ car([#])
+ =>#
+
+ Here are more examples:
+
+ car(foo, bar)
+ =>foo
+ car([foo, bar])
+ =>foo, bar
+ car((foo, bar))
+ =>(foo, bar)
+ car([(foo], [bar)])
+ =>(foo
+ define([a], [b])
+ =>
+ car(a)
+ =>b
+ car([a])
+ =>b
+ car([[a]])
+ =>a
+ car([[[a]]])
+ =>[a]
+
+
+File: autoconf.info, Node: Quoting and Parameters, Next: Quotation and Nested Macros, Prev: One Macro Call, Up: M4 Quotation
+
+8.1.3 Quoting and Parameters
+----------------------------
+
+When M4 encounters `$' within a macro definition, followed immediately
+by a character it recognizes (`0'...`9', `#', `@', or `*'), it will
+perform M4 parameter expansion. This happens regardless of how many
+layers of quotes the parameter expansion is nested within, or even if
+it occurs in text that will be rescanned as a comment.
+
+ define([none], [$1])
+ =>
+ define([one], [[$1]])
+ =>
+ define([two], [[[$1]]])
+ =>
+ define([comment], [# $1])
+ =>
+ define([active], [ACTIVE])
+ =>
+ none([active])
+ =>ACTIVE
+ one([active])
+ =>active
+ two([active])
+ =>[active]
+ comment([active])
+ =># active
+
+ On the other hand, since autoconf generates shell code, you often
+want to output shell variable expansion, rather than performing M4
+parameter expansion. To do this, you must use M4 quoting to separate
+the `$' from the next character in the definition of your macro. If
+the macro definition occurs in single-quoted text, then insert another
+level of quoting; if the usage is already inside a double-quoted
+string, then split it into concatenated strings.
+
+ define([single], [a single-quoted $[]1 definition])
+ =>
+ define([double], [[a double-quoted $][1 definition]])
+ =>
+ single
+ =>a single-quoted $1 definition
+ double
+ =>a double-quoted $1 definition
+
+ Posix states that M4 implementations are free to provide
+implementation extensions when `${' is encountered in a macro
+definition. Autoconf reserves the longer sequence `${{' for use with
+planned extensions that will be available in the future GNU M4 2.0, but
+guarantees that all other instances of `${' will be output literally.
+Therefore, this idiom can also be used to output shell code parameter
+references:
+
+ define([first], [${1}])first
+ =>${1}
+
+ Posix also states that `$11' should expand to the first parameter
+concatenated with a literal `1', although some versions of GNU M4
+expand the eleventh parameter instead. For portability, you should
+only use single-digit M4 parameter expansion.
+
+ With this in mind, we can explore the cases where macros invoke
+macros...
+
+
+File: autoconf.info, Node: Quotation and Nested Macros, Next: Changequote is Evil, Prev: Quoting and Parameters, Up: M4 Quotation
+
+8.1.4 Quotation and Nested Macros
+---------------------------------
+
+The examples below use the following macros:
+
+ define([car], [$1])
+ define([active], [ACT, IVE])
+ define([array], [int tab[10]])
+
+ Each additional embedded macro call introduces other possible
+interesting quotations:
+
+ car(active)
+ =>ACT
+ car([active])
+ =>ACT, IVE
+ car([[active]])
+ =>active
+
+ In the first case, the top level looks for the arguments of `car',
+and finds `active'. Because M4 evaluates its arguments before applying
+the macro, `active' is expanded, which results in:
+
+ car(ACT, IVE)
+ =>ACT
+
+In the second case, the top level gives `active' as first and only
+argument of `car', which results in:
+
+ active
+ =>ACT, IVE
+
+i.e., the argument is evaluated _after_ the macro that invokes it. In
+the third case, `car' receives `[active]', which results in:
+
+ [active]
+ =>active
+
+exactly as we already saw above.
+
+ The example above, applied to a more realistic example, gives:
+
+ car(int tab[10];)
+ =>int tab10;
+ car([int tab[10];])
+ =>int tab10;
+ car([[int tab[10];]])
+ =>int tab[10];
+
+Huh? The first case is easily understood, but why is the second wrong,
+and the third right? To understand that, you must know that after M4
+expands a macro, the resulting text is immediately subjected to macro
+expansion and quote removal. This means that the quote removal occurs
+twice--first before the argument is passed to the `car' macro, and
+second after the `car' macro expands to the first argument.
+
+ As the author of the Autoconf macro `car', you then consider it to
+be incorrect that your users have to double-quote the arguments of
+`car', so you "fix" your macro. Let's call it `qar' for quoted car:
+
+ define([qar], [[$1]])
+
+and check that `qar' is properly fixed:
+
+ qar([int tab[10];])
+ =>int tab[10];
+
+Ahhh! That's much better.
+
+ But note what you've done: now that the result of `qar' is always a
+literal string, the only time a user can use nested macros is if she
+relies on an _unquoted_ macro call:
+
+ qar(active)
+ =>ACT
+ qar([active])
+ =>active
+
+leaving no way for her to reproduce what she used to do with `car':
+
+ car([active])
+ =>ACT, IVE
+
+Worse yet: she wants to use a macro that produces a set of `cpp' macros:
+
+ define([my_includes], [#include <stdio.h>])
+ car([my_includes])
+ =>#include <stdio.h>
+ qar(my_includes)
+ error-->EOF in argument list
+
+ This macro, `qar', because it double quotes its arguments, forces
+its users to leave their macro calls unquoted, which is dangerous.
+Commas and other active symbols are interpreted by M4 before they are
+given to the macro, often not in the way the users expect. Also,
+because `qar' behaves differently from the other macros, it's an
+exception that should be avoided in Autoconf.
+
+
+File: autoconf.info, Node: Changequote is Evil, Next: Quadrigraphs, Prev: Quotation and Nested Macros, Up: M4 Quotation
+
+8.1.5 `changequote' is Evil
+---------------------------
+
+The temptation is often high to bypass proper quotation, in particular
+when it's late at night. Then, many experienced Autoconf hackers
+finally surrender to the dark side of the force and use the ultimate
+weapon: `changequote'.
+
+ The M4 builtin `changequote' belongs to a set of primitives that
+allow one to adjust the syntax of the language to adjust it to one's
+needs. For instance, by default M4 uses ``' and `'' as quotes, but in
+the context of shell programming (and actually of most programming
+languages), that's about the worst choice one can make: because of
+strings and back-quoted expressions in shell code (such as `'this'' and
+``that`'), and because of literal characters in usual programming
+languages (as in `'0''), there are many unbalanced ``' and `''. Proper
+M4 quotation then becomes a nightmare, if not impossible. In order to
+make M4 useful in such a context, its designers have equipped it with
+`changequote', which makes it possible to choose another pair of
+quotes. M4sugar, M4sh, Autoconf, and Autotest all have chosen to use
+`[' and `]'. Not especially because they are unlikely characters, but
+_because they are characters unlikely to be unbalanced_.
+
+ There are other magic primitives, such as `changecom' to specify
+what syntactic forms are comments (it is common to see `changecom(<!--,
+-->)' when M4 is used to produce HTML pages), `changeword' and
+`changesyntax' to change other syntactic details (such as the character
+to denote the Nth argument, `$' by default, the parentheses around
+arguments, etc.).
+
+ These primitives are really meant to make M4 more useful for specific
+domains: they should be considered like command line options:
+`--quotes', `--comments', `--words', and `--syntax'. Nevertheless,
+they are implemented as M4 builtins, as it makes M4 libraries self
+contained (no need for additional options).
+
+ There lies the problem...
+
+
+ The problem is that it is then tempting to use them in the middle of
+an M4 script, as opposed to its initialization. This, if not carefully
+thought out, can lead to disastrous effects: _you are changing the
+language in the middle of the execution_. Changing and restoring the
+syntax is often not enough: if you happened to invoke macros in between,
+these macros are lost, as the current syntax is probably not the one
+they were implemented with.
+
+
+File: autoconf.info, Node: Quadrigraphs, Next: Balancing Parentheses, Prev: Changequote is Evil, Up: M4 Quotation
+
+8.1.6 Quadrigraphs
+------------------
+
+When writing an Autoconf macro you may occasionally need to generate
+special characters that are difficult to express with the standard
+Autoconf quoting rules. For example, you may need to output the regular
+expression `[^[]', which matches any character other than `['. This
+expression contains unbalanced brackets so it cannot be put easily into
+an M4 macro.
+
+ Additionally, there are a few m4sugar macros (such as `m4_split' and
+`m4_expand') which internally use special markers in addition to the
+regular quoting characters. If the arguments to these macros contain
+the literal strings `-=<{(' or `)}>=-', the macros might behave
+incorrectly.
+
+ You can work around these problems by using one of the following
+"quadrigraphs":
+
+`@<:@'
+ `['
+
+`@:>@'
+ `]'
+
+`@S|@'
+ `$'
+
+`@%:@'
+ `#'
+
+`@{:@'
+ `('
+
+`@:}@'
+ `)'
+
+`@&t@'
+ Expands to nothing.
+
+ Quadrigraphs are replaced at a late stage of the translation process,
+after `m4' is run, so they do not get in the way of M4 quoting. For
+example, the string `^@<:@', independently of its quotation, appears as
+`^[' in the output.
+
+ The empty quadrigraph can be used:
+
+ - to mark trailing spaces explicitly
+
+ Trailing spaces are smashed by `autom4te'. This is a feature.
+
+ - to produce quadrigraphs and other strings reserved by m4sugar
+
+ For instance `@<@&t@:@' produces `@<:@'. For a more contrived
+ example:
+
+ m4_define([a], [A])m4_define([b], [B])m4_define([c], [C])dnl
+ m4_split([a )}>=- b -=<{( c])
+ =>[a], [], [B], [], [c]
+ m4_split([a )}@&t@>=- b -=<@&t@{( c])
+ =>[a], [)}>=-], [b], [-=<{(], [c]
+
+ - to escape _occurrences_ of forbidden patterns
+
+ For instance you might want to mention `AC_FOO' in a comment, while
+ still being sure that `autom4te' still catches unexpanded `AC_*'.
+ Then write `AC@&t@_FOO'.
+
+ The name `@&t@' was suggested by Paul Eggert:
+
+ I should give some credit to the `@&t@' pun. The `&' is my own
+ invention, but the `t' came from the source code of the ALGOL68C
+ compiler, written by Steve Bourne (of Bourne shell fame), and
+ which used `mt' to denote the empty string. In C, it would have
+ looked like something like:
+
+ char const mt[] = "";
+
+ but of course the source code was written in Algol 68.
+
+ I don't know where he got `mt' from: it could have been his own
+ invention, and I suppose it could have been a common pun around the
+ Cambridge University computer lab at the time.
+
+
+File: autoconf.info, Node: Balancing Parentheses, Next: Quotation Rule Of Thumb, Prev: Quadrigraphs, Up: M4 Quotation
+
+8.1.7 Dealing with unbalanced parentheses
+-----------------------------------------
+
+One of the pitfalls of portable shell programming is that `case'
+statements require unbalanced parentheses (*note Limitations of Shell
+Builtins: case.). With syntax highlighting editors, the presence of
+unbalanced `)' can interfere with editors that perform syntax
+highlighting of macro contents based on finding the matching `('.
+Another concern is how much editing must be done when transferring code
+snippets between shell scripts and macro definitions. But most
+importantly, the presence of unbalanced parentheses can introduce
+expansion bugs.
+
+ For an example, here is an underquoted attempt to use the macro
+`my_case', which happens to expand to a portable `case' statement:
+
+ AC_DEFUN([my_case],
+ [case $file_name in
+ *.c) echo "C source code";;
+ esac])
+ AS_IF(:, my_case)
+
+In the above example, the `AS_IF' call underquotes its arguments. As a
+result, the unbalanced `)' generated by the premature expansion of
+`my_case' results in expanding `AS_IF' with a truncated parameter, and
+the expansion is syntactically invalid:
+
+ if :; then
+ case $file_name in
+ *.c
+ fi echo "C source code";;
+ esac)
+
+ If nothing else, this should emphasize the importance of the quoting
+arguments to macro calls. On the other hand, there are several
+variations for defining `my_case' to be more robust, even when used
+without proper quoting, each with some benefits and some drawbacks.
+
+ Creative literal shell comment
+ AC_DEFUN([my_case],
+ [case $file_name in #(
+ *.c) echo "C source code";;
+ esac])
+ This version provides balanced parentheses to several editors, and
+ can be copied and pasted into a terminal as is. Unfortunately, it
+ is still unbalanced as an Autoconf argument, since `#(' is an M4
+ comment that masks the normal properties of `('.
+
+ Quadrigraph shell comment
+ AC_DEFUN([my_case],
+ [case $file_name in @%:@(
+ *.c) echo "C source code";;
+ esac])
+ This version provides balanced parentheses to even more editors,
+ and can be used as a balanced Autoconf argument. Unfortunately,
+ it requires some editing before it can be copied and pasted into a
+ terminal, and the use of the quadrigraph `@%:@' for `#' reduces
+ readability.
+
+ Quoting just the parenthesis
+ AC_DEFUN([my_case],
+ [case $file_name in
+ *.c[)] echo "C source code";;
+ esac])
+ This version quotes the `)', so that it can be used as a balanced
+ Autoconf argument. As written, this is not balanced to an editor,
+ but it can be coupled with `[#(]' to meet that need, too.
+ However, it still requires some edits before it can be copied and
+ pasted into a terminal.
+
+ Double-quoting the entire statement
+ AC_DEFUN([my_case],
+ [[case $file_name in #(
+ *.c) echo "C source code";;
+ esac]])
+ Since the entire macro is double-quoted, there is no problem with
+ using this as an Autoconf argument; and since the double-quoting
+ is over the entire statement, this code can be easily copied and
+ pasted into a terminal. However, the double quoting prevents the
+ expansion of any macros inside the case statement, which may cause
+ its own set of problems.
+
+ Using `AS_CASE'
+ AC_DEFUN([my_case],
+ [AS_CASE([$file_name],
+ [*.c], [echo "C source code"])])
+ This version avoids the balancing issue altogether, by relying on
+ `AS_CASE' (*note Common Shell Constructs::); it also allows for the
+ expansion of `AC_REQUIRE' to occur prior to the entire case
+ statement, rather than within a branch of the case statement that
+ might not be taken. However, the abstraction comes with a penalty
+ that it is no longer a quick copy, paste, and edit to get back to
+ shell code.
+
+
+File: autoconf.info, Node: Quotation Rule Of Thumb, Prev: Balancing Parentheses, Up: M4 Quotation
+
+8.1.8 Quotation Rule Of Thumb
+-----------------------------
+
+To conclude, the quotation rule of thumb is:
+
+ _One pair of quotes per pair of parentheses._
+
+ Never over-quote, never under-quote, in particular in the definition
+of macros. In the few places where the macros need to use brackets
+(usually in C program text or regular expressions), properly quote _the
+arguments_!
+
+ It is common to read Autoconf programs with snippets like:
+
+ AC_TRY_LINK(
+ changequote(<<, >>)dnl
+ <<#include <time.h>
+ #ifndef tzname /* For SGI. */
+ extern char *tzname[]; /* RS6000 and others reject char **tzname. */
+ #endif>>,
+ changequote([, ])dnl
+ [atoi (*tzname);], ac_cv_var_tzname=yes, ac_cv_var_tzname=no)
+
+which is incredibly useless since `AC_TRY_LINK' is _already_ double
+quoting, so you just need:
+
+ AC_TRY_LINK(
+ [#include <time.h>
+ #ifndef tzname /* For SGI. */
+ extern char *tzname[]; /* RS6000 and others reject char **tzname. */
+ #endif],
+ [atoi (*tzname);],
+ [ac_cv_var_tzname=yes],
+ [ac_cv_var_tzname=no])
+
+The M4-fluent reader might note that these two examples are rigorously
+equivalent, since M4 swallows both the `changequote(<<, >>)' and `<<'
+`>>' when it "collects" the arguments: these quotes are not part of the
+arguments!
+
+ Simplified, the example above is just doing this:
+
+ changequote(<<, >>)dnl
+ <<[]>>
+ changequote([, ])dnl
+
+instead of simply:
+
+ [[]]
+
+ With macros that do not double quote their arguments (which is the
+rule), double-quote the (risky) literals:
+
+ AC_LINK_IFELSE([AC_LANG_PROGRAM(
+ [[#include <time.h>
+ #ifndef tzname /* For SGI. */
+ extern char *tzname[]; /* RS6000 and others reject char **tzname. */
+ #endif]],
+ [atoi (*tzname);])],
+ [ac_cv_var_tzname=yes],
+ [ac_cv_var_tzname=no])
+
+ Please note that the macro `AC_TRY_LINK' is obsolete, so you really
+should be using `AC_LINK_IFELSE' instead.
+
+ *Note Quadrigraphs::, for what to do if you run into a hopeless case
+where quoting does not suffice.
+
+ When you create a `configure' script using newly written macros,
+examine it carefully to check whether you need to add more quotes in
+your macros. If one or more words have disappeared in the M4 output,
+you need more quotes. When in doubt, quote.
+
+ However, it's also possible to put on too many layers of quotes. If
+this happens, the resulting `configure' script may contain unexpanded
+macros. The `autoconf' program checks for this problem by looking for
+the string `AC_' in `configure'. However, this heuristic does not work
+in general: for example, it does not catch overquoting in `AC_DEFINE'
+descriptions.
+
+
+File: autoconf.info, Node: Using autom4te, Next: Programming in M4sugar, Prev: M4 Quotation, Up: Programming in M4
+
+8.2 Using `autom4te'
+====================
+
+The Autoconf suite, including M4sugar, M4sh, and Autotest, in addition
+to Autoconf per se, heavily rely on M4. All these different uses
+revealed common needs factored into a layer over M4: `autom4te'(1).
+
+ `autom4te' is a preprocessor that is like `m4'. It supports M4
+extensions designed for use in tools like Autoconf.
+
+* Menu:
+
+* autom4te Invocation:: A GNU M4 wrapper
+* Customizing autom4te:: Customizing the Autoconf package
+
+ ---------- Footnotes ----------
+
+ (1) Yet another great name from Lars J. Aas.
+
+
+File: autoconf.info, Node: autom4te Invocation, Next: Customizing autom4te, Up: Using autom4te
+
+8.2.1 Invoking `autom4te'
+-------------------------
+
+The command line arguments are modeled after M4's:
+
+ autom4te OPTIONS FILES
+
+where the FILES are directly passed to `m4'. By default, GNU M4 is
+found during configuration, but the environment variable `M4' can be
+set to tell `autom4te' where to look. In addition to the regular
+expansion, it handles the replacement of the quadrigraphs (*note
+Quadrigraphs::), and of `__oline__', the current line in the output.
+It supports an extended syntax for the FILES:
+
+`FILE.m4f'
+ This file is an M4 frozen file. Note that _all the previous files
+ are ignored_. See the option `--melt' for the rationale.
+
+`FILE?'
+ If found in the library path, the FILE is included for expansion,
+ otherwise it is ignored instead of triggering a failure.
+
+
+ Of course, it supports the Autoconf common subset of options:
+
+`--help'
+`-h'
+ Print a summary of the command line options and exit.
+
+`--version'
+`-V'
+ Print the version number of Autoconf and exit.
+
+`--verbose'
+`-v'
+ Report processing steps.
+
+`--debug'
+`-d'
+ Don't remove the temporary files and be even more verbose.
+
+`--include=DIR'
+`-I DIR'
+ Also look for input files in DIR. Multiple invocations accumulate.
+
+`--output=FILE'
+`-o FILE'
+ Save output (script or trace) to FILE. The file `-' stands for
+ the standard output.
+
+
+ As an extension of `m4', it includes the following options:
+
+`--warnings=CATEGORY'
+`-W CATEGORY'
+ Report the warnings related to CATEGORY (which can actually be a
+ comma separated list). *Note Reporting Messages::, macro
+ `AC_DIAGNOSE', for a comprehensive list of categories. Special
+ values include:
+
+ `all'
+ report all the warnings
+
+ `none'
+ report none
+
+ `error'
+ treats warnings as errors
+
+ `no-CATEGORY'
+ disable warnings falling into CATEGORY
+
+ Warnings about `syntax' are enabled by default, and the environment
+ variable `WARNINGS', a comma separated list of categories, is
+ honored. `autom4te -W CATEGORY' actually behaves as if you had
+ run:
+
+ autom4te --warnings=syntax,$WARNINGS,CATEGORY
+
+ For example, if you want to disable defaults and `WARNINGS' of
+ `autom4te', but enable the warnings about obsolete constructs, you
+ would use `-W none,obsolete'.
+
+ `autom4te' displays a back trace for errors, but not for warnings;
+ if you want them, just pass `-W error'.
+
+`--melt'
+`-M'
+ Do not use frozen files. Any argument `FILE.m4f' is replaced by
+ `FILE.m4'. This helps tracing the macros which are executed only
+ when the files are frozen, typically `m4_define'. For instance,
+ running:
+
+ autom4te --melt 1.m4 2.m4f 3.m4 4.m4f input.m4
+
+ is roughly equivalent to running:
+
+ m4 1.m4 2.m4 3.m4 4.m4 input.m4
+
+ while
+
+ autom4te 1.m4 2.m4f 3.m4 4.m4f input.m4
+
+ is equivalent to:
+
+ m4 --reload-state=4.m4f input.m4
+
+`--freeze'
+`-F'
+ Produce a frozen state file. `autom4te' freezing is stricter than
+ M4's: it must produce no warnings, and no output other than empty
+ lines (a line with white space is _not_ empty) and comments
+ (starting with `#'). Unlike `m4''s similarly-named option, this
+ option takes no argument:
+
+ autom4te 1.m4 2.m4 3.m4 --freeze --output=3.m4f
+
+ corresponds to
+
+ m4 1.m4 2.m4 3.m4 --freeze-state=3.m4f
+
+`--mode=OCTAL-MODE'
+`-m OCTAL-MODE'
+ Set the mode of the non-traces output to OCTAL-MODE; by default
+ `0666'.
+
+
+ As another additional feature over `m4', `autom4te' caches its
+results. GNU M4 is able to produce a regular output and traces at the
+same time. Traces are heavily used in the GNU Build System:
+`autoheader' uses them to build `config.h.in', `autoreconf' to
+determine what GNU Build System components are used, `automake' to
+"parse" `configure.ac' etc. To avoid recomputation, traces are cached
+while performing regular expansion, and conversely. This cache is
+(actually, the caches are) stored in the directory `autom4te.cache'.
+_It can safely be removed_ at any moment (especially if for some reason
+`autom4te' considers it trashed).
+
+`--cache=DIRECTORY'
+`-C DIRECTORY'
+ Specify the name of the directory where the result should be
+ cached. Passing an empty value disables caching. Be sure to pass
+ a relative file name, as for the time being, global caches are not
+ supported.
+
+`--no-cache'
+ Don't cache the results.
+
+`--force'
+`-f'
+ If a cache is used, consider it obsolete (but update it anyway).
+
+
+ Because traces are so important to the GNU Build System, `autom4te'
+provides high level tracing features as compared to M4, and helps
+exploiting the cache:
+
+`--trace=MACRO[:FORMAT]'
+`-t MACRO[:FORMAT]'
+ Trace the invocations of MACRO according to the FORMAT. Multiple
+ `--trace' arguments can be used to list several macros. Multiple
+ `--trace' arguments for a single macro are not cumulative;
+ instead, you should just make FORMAT as long as needed.
+
+ The FORMAT is a regular string, with newlines if desired, and
+ several special escape codes. It defaults to `$f:$l:$n:$%'. It
+ can use the following special escapes:
+
+ `$$'
+ The character `$'.
+
+ `$f'
+ The file name from which MACRO is called.
+
+ `$l'
+ The line number from which MACRO is called.
+
+ `$d'
+ The depth of the MACRO call. This is an M4 technical detail
+ that you probably don't want to know about.
+
+ `$n'
+ The name of the MACRO.
+
+ `$NUM'
+ The NUMth argument of the call to MACRO.
+
+ `$@'
+ `$SEP@'
+ `${SEPARATOR}@'
+ All the arguments passed to MACRO, separated by the character
+ SEP or the string SEPARATOR (`,' by default). Each argument
+ is quoted, i.e., enclosed in a pair of square brackets.
+
+ `$*'
+ `$SEP*'
+ `${SEPARATOR}*'
+ As above, but the arguments are not quoted.
+
+ `$%'
+ `$SEP%'
+ `${SEPARATOR}%'
+ As above, but the arguments are not quoted, all new line
+ characters in the arguments are smashed, and the default
+ separator is `:'.
+
+ The escape `$%' produces single-line trace outputs (unless
+ you put newlines in the `separator'), while `$@' and `$*' do
+ not.
+
+ *Note autoconf Invocation::, for examples of trace uses.
+
+`--preselect=MACRO'
+`-p MACRO'
+ Cache the traces of MACRO, but do not enable traces. This is
+ especially important to save CPU cycles in the future. For
+ instance, when invoked, `autoconf' preselects all the macros that
+ `autoheader', `automake', `autoreconf', etc., trace, so that
+ running `m4' is not needed to trace them: the cache suffices.
+ This results in a huge speed-up.
+
+
+ Finally, `autom4te' introduces the concept of "Autom4te libraries".
+They consists in a powerful yet extremely simple feature: sets of
+combined command line arguments:
+
+`--language=LANGUAGE'
+`-l LANGUAGE'
+ Use the LANGUAGE Autom4te library. Current languages include:
+
+ `M4sugar'
+ create M4sugar output.
+
+ `M4sh'
+ create M4sh executable shell scripts.
+
+ `Autotest'
+ create Autotest executable test suites.
+
+ `Autoconf-without-aclocal-m4'
+ create Autoconf executable configure scripts without reading
+ `aclocal.m4'.
+
+ `Autoconf'
+ create Autoconf executable configure scripts. This language
+ inherits all the characteristics of
+ `Autoconf-without-aclocal-m4' and additionally reads
+ `aclocal.m4'.
+
+`--prepend-include=DIR'
+`-B DIR'
+ Prepend directory DIR to the search path. This is used to include
+ the language-specific files before any third-party macros.
+
+
+ As an example, if Autoconf is installed in its default location,
+`/usr/local', the command `autom4te -l m4sugar foo.m4' is strictly
+equivalent to the command:
+
+ autom4te --prepend-include /usr/local/share/autoconf \
+ m4sugar/m4sugar.m4f --warnings syntax foo.m4
+
+Recursive expansion applies here: the command `autom4te -l m4sh foo.m4'
+is the same as `autom4te --language M4sugar m4sugar/m4sh.m4f foo.m4',
+i.e.:
+
+ autom4te --prepend-include /usr/local/share/autoconf \
+ m4sugar/m4sugar.m4f m4sugar/m4sh.m4f --mode 777 foo.m4
+
+The definition of the languages is stored in `autom4te.cfg'.
+
+
+File: autoconf.info, Node: Customizing autom4te, Prev: autom4te Invocation, Up: Using autom4te
+
+8.2.2 Customizing `autom4te'
+----------------------------
+
+One can customize `autom4te' via `~/.autom4te.cfg' (i.e., as found in
+the user home directory), and `./.autom4te.cfg' (i.e., as found in the
+directory from which `autom4te' is run). The order is first reading
+`autom4te.cfg', then `~/.autom4te.cfg', then `./.autom4te.cfg', and
+finally the command line arguments.
+
+ In these text files, comments are introduced with `#', and empty
+lines are ignored. Customization is performed on a per-language basis,
+wrapped in between a `begin-language: "LANGUAGE"', `end-language:
+"LANGUAGE"' pair.
+
+ Customizing a language stands for appending options (*note autom4te
+Invocation::) to the current definition of the language. Options, and
+more generally arguments, are introduced by `args: ARGUMENTS'. You may
+use the traditional shell syntax to quote the ARGUMENTS.
+
+ As an example, to disable Autoconf caches (`autom4te.cache')
+globally, include the following lines in `~/.autom4te.cfg':
+
+## ------------------ ##
+## User Preferences. ##
+## ------------------ ##
+
+begin-language: "Autoconf-without-aclocal-m4"
+args: --no-cache
+end-language: "Autoconf-without-aclocal-m4"
+
+
+File: autoconf.info, Node: Programming in M4sugar, Next: Debugging via autom4te, Prev: Using autom4te, Up: Programming in M4
+
+8.3 Programming in M4sugar
+==========================
+
+M4 by itself provides only a small, but sufficient, set of all-purpose
+macros. M4sugar introduces additional generic macros. Its name was
+coined by Lars J. Aas: "Readability And Greater Understanding Stands 4
+M4sugar".
+
+ M4sugar reserves the macro namespace `^_m4_' for internal use, and
+the macro namespace `^m4_' for M4sugar macros. You should not define
+your own macros into these namespaces.
+
+* Menu:
+
+* Redefined M4 Macros:: M4 builtins changed in M4sugar
+* Diagnostic Macros:: Diagnostic messages from M4sugar
+* Diversion support:: Diversions in M4sugar
+* Conditional constructs:: Conditions in M4
+* Looping constructs:: Iteration in M4
+* Evaluation Macros:: More quotation and evaluation control
+* Text processing Macros:: String manipulation in M4
+* Number processing Macros:: Arithmetic computation in M4
+* Set manipulation Macros:: Set manipulation in M4
+* Forbidden Patterns:: Catching unexpanded macros
+
+
+File: autoconf.info, Node: Redefined M4 Macros, Next: Diagnostic Macros, Up: Programming in M4sugar
+
+8.3.1 Redefined M4 Macros
+-------------------------
+
+With a few exceptions, all the M4 native macros are moved in the `m4_'
+pseudo-namespace, e.g., M4sugar renames `define' as `m4_define' etc.
+
+ The list of macros unchanged from M4, except for their name, is:
+ - m4_builtin
+
+ - m4_changecom
+
+ - m4_changequote
+
+ - m4_debugfile
+
+ - m4_debugmode
+
+ - m4_decr
+
+ - m4_define
+
+ - m4_divnum
+
+ - m4_errprint
+
+ - m4_esyscmd
+
+ - m4_eval
+
+ - m4_format
+
+ - m4_ifdef
+
+ - m4_incr
+
+ - m4_index
+
+ - m4_indir
+
+ - m4_len
+
+ - m4_pushdef
+
+ - m4_shift
+
+ - m4_substr
+
+ - m4_syscmd
+
+ - m4_sysval
+
+ - m4_traceoff
+
+ - m4_traceon
+
+ - m4_translit
+
+ Some M4 macros are redefined, and are slightly incompatible with
+their native equivalent.
+
+ -- Macro: __file__
+ -- Macro: __line__
+ All M4 macros starting with `__' retain their original name: for
+ example, no `m4__file__' is defined.
+
+ -- Macro: __oline__
+ This is not technically a macro, but a feature of Autom4te. The
+ sequence `__oline__' can be used similarly to the other m4sugar
+ location macros, but rather than expanding to the location of the
+ input file, it is translated to the line number where it appears
+ in the output file after all other M4 expansions.
+
+ -- Macro: dnl
+ This macro kept its original name: no `m4_dnl' is defined.
+
+ -- Macro: m4_bpatsubst (STRING, REGEXP, [REPLACEMENT])
+ This macro corresponds to `patsubst'. The name `m4_patsubst' is
+ kept for future versions of M4sugar, once GNU M4 2.0 is released
+ and supports extended regular expression syntax.
+
+ -- Macro: m4_bregexp (STRING, REGEXP, [REPLACEMENT])
+ This macro corresponds to `regexp'. The name `m4_regexp' is kept
+ for future versions of M4sugar, once GNU M4 2.0 is released and
+ supports extended regular expression syntax.
+
+ -- Macro: m4_copy (SOURCE, DEST)
+ -- Macro: m4_copy_force (SOURCE, DEST)
+ -- Macro: m4_rename (SOURCE, DEST)
+ -- Macro: m4_rename_force (SOURCE, DEST)
+ These macros aren't directly builtins, but are closely related to
+ `m4_pushdef' and `m4_defn'. `m4_copy' and `m4_rename' ensure that
+ DEST is undefined, while `m4_copy_force' and `m4_rename_force'
+ overwrite any existing definition. All four macros then proceed
+ to copy the entire pushdef stack of definitions of SOURCE over to
+ DEST. `m4_copy' and `m4_copy_force' preserve the source
+ (including in the special case where SOURCE is undefined), while
+ `m4_rename' and `m4_rename_force' undefine the original macro name
+ (making it an error to rename an undefined SOURCE).
+
+ Note that attempting to invoke a renamed macro might not work,
+ since the macro may have a dependence on helper macros accessed
+ via composition of `$0' but that were not also renamed; likewise,
+ other macros may have a hard-coded dependence on SOURCE and could
+ break if SOURCE has been deleted. On the other hand, it is always
+ safe to rename a macro to temporarily move it out of the way, then
+ rename it back later to restore original semantics.
+
+ -- Macro: m4_defn (MACRO...)
+ This macro fails if MACRO is not defined, even when using older
+ versions of M4 that did not warn. See `m4_undefine'.
+ Unfortunately, in order to support these older versions of M4,
+ there are some situations involving unbalanced quotes where
+ concatenating multiple macros together will work in newer M4 but
+ not in m4sugar; use quadrigraphs to work around this.
+
+ -- Macro: m4_divert (DIVERSION)
+ M4sugar relies heavily on diversions, so rather than behaving as a
+ primitive, `m4_divert' behaves like:
+ m4_divert_pop()m4_divert_push([DIVERSION])
+ *Note Diversion support::, for more details about the use of the
+ diversion stack. In particular, this implies that DIVERSION
+ should be a named diversion rather than a raw number. But be
+ aware that it is seldom necessary to explicitly change the
+ diversion stack, and that when done incorrectly, it can lead to
+ syntactically invalid scripts.
+
+ -- Macro: m4_dumpdef (NAME...)
+ -- Macro: m4_dumpdefs (NAME...)
+ `m4_dumpdef' is like the M4 builtin, except that this version
+ requires at least one argument, output always goes to standard
+ error rather than the current debug file, no sorting is done on
+ multiple arguments, and an error is issued if any NAME is
+ undefined. `m4_dumpdefs' is a convenience macro that calls
+ `m4_dumpdef' for all of the `m4_pushdef' stack of definitions,
+ starting with the current, and silently does nothing if NAME is
+ undefined.
+
+ Unfortunately, due to a limitation in M4 1.4.x, any macro defined
+ as a builtin is output as the empty string. This behavior is
+ rectified by using M4 1.6 or newer. However, this behavior
+ difference means that `m4_dumpdef' should only be used while
+ developing m4sugar macros, and never in the final published form
+ of a macro.
+
+ -- Macro: m4_esyscmd_s (COMMAND)
+ Like `m4_esyscmd', this macro expands to the result of running
+ COMMAND in a shell. The difference is that any trailing newlines
+ are removed, so that the output behaves more like shell command
+ substitution.
+
+ -- Macro: m4_exit (EXIT-STATUS)
+ This macro corresponds to `m4exit'.
+
+ -- Macro: m4_if (COMMENT)
+ -- Macro: m4_if (STRING-1, STRING-2, EQUAL, [NOT-EQUAL])
+ -- Macro: m4_if (STRING-1, STRING-2, EQUAL-1, STRING-3, STRING-4,
+ EQUAL-2, ..., [NOT-EQUAL])
+ This macro corresponds to `ifelse'. STRING-1 and STRING-2 are
+ compared literally, so usually one of the two arguments is passed
+ unquoted. *Note Conditional constructs::, for more conditional
+ idioms.
+
+ -- Macro: m4_include (FILE)
+ -- Macro: m4_sinclude (FILE)
+ Like the M4 builtins, but warn against multiple inclusions of FILE.
+
+ -- Macro: m4_mkstemp (TEMPLATE)
+ -- Macro: m4_maketemp (TEMPLATE)
+ Posix requires `maketemp' to replace the trailing `X' characters
+ in TEMPLATE with the process id, without regards to the existence
+ of a file by that name, but this a security hole. When this was
+ pointed out to the Posix folks, they agreed to invent a new macro
+ `mkstemp' that always creates a uniquely named file, but not all
+ versions of GNU M4 support the new macro. In M4sugar,
+ `m4_maketemp' and `m4_mkstemp' are synonyms for each other, and
+ both have the secure semantics regardless of which macro the
+ underlying M4 provides.
+
+ -- Macro: m4_popdef (MACRO...)
+ This macro fails if MACRO is not defined, even when using older
+ versions of M4 that did not warn. See `m4_undefine'.
+
+ -- Macro: m4_undefine (MACRO...)
+ This macro fails if MACRO is not defined, even when using older
+ versions of M4 that did not warn. Use
+
+ m4_ifdef([MACRO], [m4_undefine([MACRO])])
+
+ if you are not sure whether MACRO is defined.
+
+ -- Macro: m4_undivert (DIVERSION...)
+ Unlike the M4 builtin, at least one DIVERSION must be specified.
+ Also, since the M4sugar diversion stack prefers named diversions,
+ the use of `m4_undivert' to include files is risky. *Note
+ Diversion support::, for more details about the use of the
+ diversion stack. But be aware that it is seldom necessary to
+ explicitly change the diversion stack, and that when done
+ incorrectly, it can lead to syntactically invalid scripts.
+
+ -- Macro: m4_wrap (TEXT)
+ -- Macro: m4_wrap_lifo (TEXT)
+ These macros correspond to `m4wrap'. Posix requires arguments of
+ multiple wrap calls to be reprocessed at EOF in the same order as
+ the original calls (first-in, first-out). GNU M4 versions through
+ 1.4.10, however, reprocess them in reverse order (last-in,
+ first-out). Both orders are useful, therefore, you can rely on
+ `m4_wrap' to provide FIFO semantics and `m4_wrap_lifo' for LIFO
+ semantics, regardless of the underlying GNU M4 version.
+
+ Unlike the GNU M4 builtin, these macros only recognize one
+ argument, and avoid token pasting between consecutive invocations.
+ On the other hand, nested calls to `m4_wrap' from within wrapped
+ text work just as in the builtin.
+
+
+File: autoconf.info, Node: Diagnostic Macros, Next: Diversion support, Prev: Redefined M4 Macros, Up: Programming in M4sugar
+
+8.3.2 Diagnostic messages from M4sugar
+--------------------------------------
+
+When macros statically diagnose abnormal situations, benign or fatal,
+they should report them using these macros. For issuing dynamic issues,
+i.e., when `configure' is run, see *note Printing Messages::.
+
+ -- Macro: m4_assert (EXPRESSION, [EXIT-STATUS = `1'])
+ Assert that the arithmetic EXPRESSION evaluates to non-zero.
+ Otherwise, issue a fatal error, and exit `autom4te' with
+ EXIT-STATUS.
+
+ -- Macro: m4_errprintn (MESSAGE)
+ Similar to the builtin `m4_errprint', except that a newline is
+ guaranteed after MESSAGE.
+
+ -- Macro: m4_fatal (MESSAGE)
+ Report a severe error MESSAGE prefixed with the current location,
+ and have `autom4te' die.
+
+ -- Macro: m4_location
+ Useful as a prefix in a message line. Short for:
+ __file__:__line__
+
+ -- Macro: m4_warn (CATEGORY, MESSAGE)
+ Report MESSAGE as a warning (or as an error if requested by the
+ user) if warnings of the CATEGORY are turned on. If the message
+ is emitted, it is prefixed with the current location, and followed
+ by a call trace of all macros defined via `AC_DEFUN' used to get
+ to the current expansion. You are encouraged to use standard
+ categories, which currently include:
+
+ `all'
+ messages that don't fall into one of the following
+ categories. Use of an empty CATEGORY is equivalent.
+
+ `cross'
+ related to cross compilation issues.
+
+ `obsolete'
+ use of an obsolete construct.
+
+ `syntax'
+ dubious syntactic constructs, incorrectly ordered macro calls.
+
+
+File: autoconf.info, Node: Diversion support, Next: Conditional constructs, Prev: Diagnostic Macros, Up: Programming in M4sugar
+
+8.3.3 Diversion support
+-----------------------
+
+M4sugar makes heavy use of diversions under the hood, because it is
+often the case that text that must appear early in the output is not
+discovered until late in the input. Additionally, some of the
+topological sorting algorithms used in resolving macro dependencies use
+diversions. However, most macros should not need to change diversions
+directly, but rather rely on higher-level M4sugar macros to manage
+diversions transparently. If you change diversions improperly, you
+risk generating a syntactically invalid script, because an incorrect
+diversion will violate assumptions made by many macros about whether
+prerequisite text has been previously output. In short, if you
+manually change the diversion, you should not expect any macros
+provided by the Autoconf package to work until you have restored the
+diversion stack back to its original state.
+
+ In the rare case that it is necessary to write a macro that
+explicitly outputs text to a different diversion, it is important to be
+aware of an M4 limitation regarding diversions: text only goes to a
+diversion if it is not part of argument collection. Therefore, any
+macro that changes the current diversion cannot be used as an unquoted
+argument to another macro, but must be expanded at the top level. The
+macro `m4_expand' will diagnose any attempt to change diversions, since
+it is generally useful only as an argument to another macro. The
+following example shows what happens when diversion manipulation is
+attempted within macro arguments:
+
+ m4_do([normal text]
+ m4_divert_push([KILL])unwanted[]m4_divert_pop([KILL])
+ [m4_divert_push([KILL])discarded[]m4_divert_pop([KILL])])dnl
+ =>normal text
+ =>unwanted
+
+Notice that the unquoted text `unwanted' is output, even though it was
+processed while the current diversion was `KILL', because it was
+collected as part of the argument to `m4_do'. However, the text
+`discarded' disappeared as desired, because the diversion changes were
+single-quoted, and were not expanded until the top-level rescan of the
+output of `m4_do'.
+
+ To make diversion management easier, M4sugar uses the concept of
+named diversions. Rather than using diversion numbers directly, it is
+nicer to associate a name with each diversion. The diversion number
+associated with a particular diversion name is an implementation
+detail, and a syntax warning is issued if a diversion number is used
+instead of a name. In general, you should not output text to a named
+diversion until after calling the appropriate initialization routine
+for your language (`m4_init', `AS_INIT', `AT_INIT', ...), although
+there are some exceptions documented below.
+
+ M4sugar defines two named diversions.
+`KILL'
+ Text written to this diversion is discarded. This is the default
+ diversion once M4sugar is initialized.
+
+`GROW'
+ This diversion is used behind the scenes by topological sorting
+ macros, such as `AC_REQUIRE'.
+
+ M4sh adds several more named diversions.
+`BINSH'
+ This diversion is reserved for the `#!' interpreter line.
+
+`HEADER-REVISION'
+ This diversion holds text from `AC_REVISION'.
+
+`HEADER-COMMENT'
+ This diversion holds comments about the purpose of a file.
+
+`HEADER-COPYRIGHT'
+ This diversion is managed by `AC_COPYRIGHT'.
+
+`M4SH-SANITIZE'
+ This diversion contains M4sh sanitization code, used to ensure
+ M4sh is executing in a reasonable shell environment.
+
+`M4SH-INIT'
+ This diversion contains M4sh initialization code, initializing
+ variables that are required by other M4sh macros.
+
+`BODY'
+ This diversion contains the body of the shell code, and is the
+ default diversion once M4sh is initialized.
+
+ Autotest inherits diversions from M4sh, and changes the default
+diversion from `BODY' back to `KILL'. It also adds several more named
+diversions, with the following subset designed for developer use.
+`PREPARE_TESTS'
+ This diversion contains initialization sequences which are executed
+ after `atconfig' and `atlocal', and after all command line
+ arguments have been parsed, but prior to running any tests. It
+ can be used to set up state that is required across all tests.
+ This diversion will work even before `AT_INIT'.
+
+ Autoconf inherits diversions from M4sh, and adds the following named
+diversions which developers can utilize.
+`DEFAULTS'
+ This diversion contains shell variable assignments to set defaults
+ that must be in place before arguments are parsed. This diversion
+ is placed early enough in `configure' that it is unsafe to expand
+ any autoconf macros into this diversion.
+
+`HELP_ENABLE'
+ If `AC_PRESERVE_HELP_ORDER' was used, then text placed in this
+ diversion will be included as part of a quoted here-doc providing
+ all of the `--help' output of `configure' related to options
+ created by `AC_ARG_WITH' and `AC_ARG_ENABLE'.
+
+`INIT_PREPARE'
+ This diversion occurs after all command line options have been
+ parsed, but prior to the main body of the `configure' script. This
+ diversion is the last chance to insert shell code such as variable
+ assignments or shell function declarations that will used by the
+ expansion of other macros.
+
+ For now, the remaining named diversions of Autoconf, Autoheader, and
+Autotest are not documented. In other words, intentionally outputting
+text into an undocumented diversion is subject to breakage in a future
+release of Autoconf.
+
+ -- Macro: m4_cleardivert (DIVERSION...)
+ Permanently discard any text that has been diverted into DIVERSION.
+
+ -- Macro: m4_divert_once (DIVERSION, [CONTENT])
+ Similar to `m4_divert_text', except that CONTENT is only output to
+ DIVERSION if this is the first time that `m4_divert_once' has been
+ called with its particular arguments.
+
+ -- Macro: m4_divert_pop ([DIVERSION])
+ If provided, check that the current diversion is indeed DIVERSION.
+ Then change to the diversion located earlier on the stack, giving
+ an error if an attempt is made to pop beyond the initial m4sugar
+ diversion of `KILL'.
+
+ -- Macro: m4_divert_push (DIVERSION)
+ Remember the former diversion on the diversion stack, and output
+ subsequent text into DIVERSION. M4sugar maintains a diversion
+ stack, and issues an error if there is not a matching pop for every
+ push.
+
+ -- Macro: m4_divert_text (DIVERSION, [CONTENT])
+ Output CONTENT and a newline into DIVERSION, without affecting the
+ current diversion. Shorthand for:
+ m4_divert_push([DIVERSION])CONTENT
+ m4_divert_pop([DIVERSION])dnl
+
+ One use of `m4_divert_text' is to develop two related macros, where
+ macro `MY_A' does the work, but adjusts what work is performed
+ based on whether the optional macro `MY_B' has also been expanded.
+ Of course, it is possible to use `AC_BEFORE' within `MY_A' to
+ require that `MY_B' occurs first, if it occurs at all. But this
+ imposes an ordering restriction on the user; it would be nicer if
+ macros `MY_A' and `MY_B' can be invoked in either order. The trick
+ is to let `MY_B' leave a breadcrumb in an early diversion, which
+ `MY_A' can then use to determine whether `MY_B' has been expanded.
+
+ AC_DEFUN([MY_A],
+ [# various actions
+ if test -n "$b_was_used"; then
+ # extra action
+ fi])
+ AC_DEFUN([MY_B],
+ [AC_REQUIRE([MY_A])dnl
+ m4_divert_text([INIT_PREPARE], [b_was_used=true])])
+
+
+ -- Macro: m4_init
+ Initialize the M4sugar environment, setting up the default named
+ diversion to be `KILL'.
+
+
+File: autoconf.info, Node: Conditional constructs, Next: Looping constructs, Prev: Diversion support, Up: Programming in M4sugar
+
+8.3.4 Conditional constructs
+----------------------------
+
+The following macros provide additional conditional constructs as
+convenience wrappers around `m4_if'.
+
+ -- Macro: m4_bmatch (STRING, REGEX-1, VALUE-1, [REGEX-2], [VALUE-2],
+ ..., [DEFAULT])
+ The string STRING is repeatedly compared against a series of REGEX
+ arguments; if a match is found, the expansion is the corresponding
+ VALUE, otherwise, the macro moves on to the next REGEX. If no
+ REGEX match, then the result is the optional DEFAULT, or nothing.
+
+ -- Macro: m4_bpatsubsts (STRING, REGEX-1, SUBST-1, [REGEX-2],
+ [SUBST-2], ...)
+ The string STRING is altered by REGEX-1 and SUBST-1, as if by:
+ m4_bpatsubst([[STRING]], [REGEX], [SUBST])
+
+ The result of the substitution is then passed through the next set
+ of REGEX and SUBST, and so forth. An empty SUBST implies deletion
+ of any matched portions in the current string. Note that this
+ macro over-quotes STRING; this behavior is intentional, so that
+ the result of each step of the recursion remains as a quoted
+ string. However, it means that anchors (`^' and `$' in the REGEX
+ will line up with the extra quotations, and not the characters of
+ the original string. The overquoting is removed after the final
+ substitution.
+
+ -- Macro: m4_case (STRING, VALUE-1, IF-VALUE-1, [VALUE-2],
+ [IF-VALUE-2], ..., [DEFAULT])
+ Test STRING against multiple VALUE possibilities, resulting in the
+ first IF-VALUE for a match, or in the optional DEFAULT. This is
+ shorthand for:
+ m4_if([STRING], [VALUE-1], [IF-VALUE-1],
+ [STRING], [VALUE-2], [IF-VALUE-2], ...,
+ [DEFAULT])
+
+ -- Macro: m4_cond (TEST-1, VALUE-1, IF-VALUE-1, [TEST-2], [VALUE-2],
+ [IF-VALUE-2], ..., [DEFAULT])
+ This macro was introduced in Autoconf 2.62. Similar to `m4_if',
+ except that each TEST is expanded only when it is encountered.
+ This is useful for short-circuiting expensive tests; while `m4_if'
+ requires all its strings to be expanded up front before doing
+ comparisons, `m4_cond' only expands a TEST when all earlier tests
+ have failed.
+
+ For an example, these two sequences give the same result, but in
+ the case where `$1' does not contain a backslash, the `m4_cond'
+ version only expands `m4_index' once, instead of five times, for
+ faster computation if this is a common case for `$1'. Notice that
+ every third argument is unquoted for `m4_if', and quoted for
+ `m4_cond':
+
+ m4_if(m4_index([$1], [\]), [-1], [$2],
+ m4_eval(m4_index([$1], [\\]) >= 0), [1], [$2],
+ m4_eval(m4_index([$1], [\$]) >= 0), [1], [$2],
+ m4_eval(m4_index([$1], [\`]) >= 0), [1], [$3],
+ m4_eval(m4_index([$1], [\"]) >= 0), [1], [$3],
+ [$2])
+ m4_cond([m4_index([$1], [\])], [-1], [$2],
+ [m4_eval(m4_index([$1], [\\]) >= 0)], [1], [$2],
+ [m4_eval(m4_index([$1], [\$]) >= 0)], [1], [$2],
+ [m4_eval(m4_index([$1], [\`]) >= 0)], [1], [$3],
+ [m4_eval(m4_index([$1], [\"]) >= 0)], [1], [$3],
+ [$2])
+
+ -- Macro: m4_default (EXPR-1, EXPR-2)
+ -- Macro: m4_default_quoted (EXPR-1, EXPR-2)
+ -- Macro: m4_default_nblank (EXPR-1, [EXPR-2])
+ -- Macro: m4_default_nblank_quoted (EXPR-1, [EXPR-2])
+ If EXPR-1 contains text, use it. Otherwise, select EXPR-2.
+ `m4_default' expands the result, while `m4_default_quoted' does
+ not. Useful for providing a fixed default if the expression that
+ results in EXPR-1 would otherwise be empty. The difference
+ between `m4_default' and `m4_default_nblank' is whether an
+ argument consisting of just blanks (space, tab, newline) is
+ significant. When using the expanding versions, note that an
+ argument may contain text but still expand to an empty string.
+
+ m4_define([active], [ACTIVE])dnl
+ m4_define([empty], [])dnl
+ m4_define([demo1], [m4_default([$1], [$2])])dnl
+ m4_define([demo2], [m4_default_quoted([$1], [$2])])dnl
+ m4_define([demo3], [m4_default_nblank([$1], [$2])])dnl
+ m4_define([demo4], [m4_default_nblank_quoted([$1], [$2])])dnl
+ demo1([active], [default])
+ =>ACTIVE
+ demo1([], [active])
+ =>ACTIVE
+ demo1([empty], [text])
+ =>
+ -demo1([ ], [active])-
+ =>- -
+ demo2([active], [default])
+ =>active
+ demo2([], [active])
+ =>active
+ demo2([empty], [text])
+ =>empty
+ -demo2([ ], [active])-
+ =>- -
+ demo3([active], [default])
+ =>ACTIVE
+ demo3([], [active])
+ =>ACTIVE
+ demo3([empty], [text])
+ =>
+ -demo3([ ], [active])-
+ =>-ACTIVE-
+ demo4([active], [default])
+ =>active
+ demo4([], [active])
+ =>active
+ demo4([empty], [text])
+ =>empty
+ -demo4([ ], [active])-
+ =>-active-
+
+ -- Macro: m4_define_default (MACRO, [DEFAULT-DEFINITION])
+ If MACRO does not already have a definition, then define it to
+ DEFAULT-DEFINITION.
+
+ -- Macro: m4_ifblank (COND, [IF-BLANK], [IF-TEXT])
+ -- Macro: m4_ifnblank (COND, [IF-TEXT], [IF-BLANK])
+ If COND is empty or consists only of blanks (space, tab, newline),
+ then expand IF-BLANK; otherwise, expand IF-TEXT. Two variants
+ exist, in order to make it easier to select the correct logical
+ sense when using only two parameters. Note that this is more
+ efficient than the equivalent behavior of:
+ m4_ifval(m4_normalize([COND]), IF-TEXT, IF-BLANK)
+
+ -- Macro: m4_ifndef (MACRO, IF-NOT-DEFINED, [IF-DEFINED])
+ This is shorthand for:
+ m4_ifdef([MACRO], [IF-DEFINED], [IF-NOT-DEFINED])
+
+ -- Macro: m4_ifset (MACRO, [IF-TRUE], [IF-FALSE])
+ If MACRO is undefined, or is defined as the empty string, expand
+ to IF-FALSE. Otherwise, expands to IF-TRUE. Similar to:
+ m4_ifval(m4_defn([MACRO]), [IF-TRUE], [IF-FALSE])
+ except that it is not an error if MACRO is undefined.
+
+ -- Macro: m4_ifval (COND, [IF-TRUE], [IF-FALSE])
+ Expands to IF-TRUE if COND is not empty, otherwise to IF-FALSE.
+ This is shorthand for:
+ m4_if([COND], [], [IF-FALSE], [IF-TRUE])
+
+ -- Macro: m4_ifvaln (COND, [IF-TRUE], [IF-FALSE])
+ Similar to `m4_ifval', except guarantee that a newline is present
+ after any non-empty expansion. Often followed by `dnl'.
+
+ -- Macro: m4_n (TEXT)
+ Expand to TEXT, and add a newline if TEXT is not empty. Often
+ followed by `dnl'.
+
+
+File: autoconf.info, Node: Looping constructs, Next: Evaluation Macros, Prev: Conditional constructs, Up: Programming in M4sugar
+
+8.3.5 Looping constructs
+------------------------
+
+The following macros are useful in implementing recursive algorithms in
+M4, including loop operations. An M4 list is formed by quoting a list
+of quoted elements; generally the lists are comma-separated, although
+`m4_foreach_w' is whitespace-separated. For example, the list `[[a],
+[b,c]]' contains two elements: `[a]' and `[b,c]'. It is common to see
+lists with unquoted elements when those elements are not likely to be
+macro names, as in `[fputc_unlocked, fgetc_unlocked]'.
+
+ Although not generally recommended, it is possible for quoted lists
+to have side effects; all side effects are expanded only once, and
+prior to visiting any list element. On the other hand, the fact that
+unquoted macros are expanded exactly once means that macros without
+side effects can be used to generate lists. For example,
+
+ m4_foreach([i], [[1], [2], [3]m4_errprintn([hi])], [i])
+ error-->hi
+ =>123
+ m4_define([list], [[1], [2], [3]])
+ =>
+ m4_foreach([i], [list], [i])
+ =>123
+
+ -- Macro: m4_argn (N, [ARG]...)
+ Extracts argument N (larger than 0) from the remaining arguments.
+ If there are too few arguments, the empty string is used. For any
+ N besides 1, this is more efficient than the similar
+ `m4_car(m4_shiftn([N], [], [ARG...]))'.
+
+ -- Macro: m4_car (ARG...)
+ Expands to the quoted first ARG. Can be used with `m4_cdr' to
+ recursively iterate through a list. Generally, when using quoted
+ lists of quoted elements, `m4_car' should be called without any
+ extra quotes.
+
+ -- Macro: m4_cdr (ARG...)
+ Expands to a quoted list of all but the first ARG, or the empty
+ string if there was only one argument. Generally, when using
+ quoted lists of quoted elements, `m4_cdr' should be called without
+ any extra quotes.
+
+ For example, this is a simple implementation of `m4_map'; note how
+ each iteration checks for the end of recursion, then merely
+ applies the first argument to the first element of the list, then
+ repeats with the rest of the list. (The actual implementation in
+ M4sugar is a bit more involved, to gain some speed and share code
+ with `m4_map_sep', and also to avoid expanding side effects in
+ `$2' twice).
+ m4_define([m4_map], [m4_ifval([$2],
+ [m4_apply([$1], m4_car($2))[]$0([$1], m4_cdr($2))])])dnl
+ m4_map([ m4_eval], [[[1]], [[1+1]], [[10],[16]]])
+ => 1 2 a
+
+ -- Macro: m4_for (VAR, FIRST, LAST, [STEP], EXPRESSION)
+ Loop over the numeric values between FIRST and LAST including
+ bounds by increments of STEP. For each iteration, expand
+ EXPRESSION with the numeric value assigned to VAR. If STEP is
+ omitted, it defaults to `1' or `-1' depending on the order of the
+ limits. If given, STEP has to match this order. The number of
+ iterations is determined independently from definition of VAR;
+ iteration cannot be short-circuited or lengthened by modifying VAR
+ from within EXPRESSION.
+
+ -- Macro: m4_foreach (VAR, LIST, EXPRESSION)
+ Loop over the comma-separated M4 list LIST, assigning each value
+ to VAR, and expand EXPRESSION. The following example outputs two
+ lines:
+
+ m4_foreach([myvar], [[foo], [bar, baz]],
+ [echo myvar
+ ])dnl
+ =>echo foo
+ =>echo bar, baz
+
+ Note that for some forms of EXPRESSION, it may be faster to use
+ `m4_map_args'.
+
+ -- Macro: m4_foreach_w (VAR, LIST, EXPRESSION)
+ Loop over the white-space-separated list LIST, assigning each value
+ to VAR, and expand EXPRESSION. If VAR is only referenced once in
+ EXPRESSION, it is more efficient to use `m4_map_args_w'.
+
+ The deprecated macro `AC_FOREACH' is an alias of `m4_foreach_w'.
+
+ -- Macro: m4_map (MACRO, LIST)
+ -- Macro: m4_mapall (MACRO, LIST)
+ -- Macro: m4_map_sep (MACRO, SEPARATOR, LIST)
+ -- Macro: m4_mapall_sep (MACRO, SEPARATOR, LIST)
+ Loop over the comma separated quoted list of argument descriptions
+ in LIST, and invoke MACRO with the arguments. An argument
+ description is in turn a comma-separated quoted list of quoted
+ elements, suitable for `m4_apply'. The macros `m4_map' and
+ `m4_map_sep' ignore empty argument descriptions, while `m4_mapall'
+ and `m4_mapall_sep' invoke MACRO with no arguments. The macros
+ `m4_map_sep' and `m4_mapall_sep' additionally expand SEPARATOR
+ between invocations of MACRO.
+
+ Note that SEPARATOR is expanded, unlike in `m4_join'. When
+ separating output with commas, this means that the map result can
+ be used as a series of arguments, by using a single-quoted comma as
+ SEPARATOR, or as a single string, by using a double-quoted comma.
+
+ m4_map([m4_count], [])
+ =>
+ m4_map([ m4_count], [[],
+ [[1]],
+ [[1], [2]]])
+ => 1 2
+ m4_mapall([ m4_count], [[],
+ [[1]],
+ [[1], [2]]])
+ => 0 1 2
+ m4_map_sep([m4_eval], [,], [[[1+2]],
+ [[10], [16]]])
+ =>3,a
+ m4_map_sep([m4_echo], [,], [[[a]], [[b]]])
+ =>a,b
+ m4_count(m4_map_sep([m4_echo], [,], [[[a]], [[b]]]))
+ =>2
+ m4_map_sep([m4_echo], [[,]], [[[a]], [[b]]])
+ =>a,b
+ m4_count(m4_map_sep([m4_echo], [[,]], [[[a]], [[b]]]))
+ =>1
+
+ -- Macro: m4_map_args (MACRO, ARG...)
+ Repeatedly invoke MACRO with each successive ARG as its only
+ argument. In the following example, three solutions are presented
+ with the same expansion; the solution using `m4_map_args' is the
+ most efficient.
+ m4_define([active], [ACTIVE])dnl
+ m4_foreach([var], [[plain], [active]], [ m4_echo(m4_defn([var]))])
+ => plain active
+ m4_map([ m4_echo], [[[plain]], [[active]]])
+ => plain active
+ m4_map_args([ m4_echo], [plain], [active])
+ => plain active
+
+ In cases where it is useful to operate on additional parameters
+ besides the list elements, the macro `m4_curry' can be used in
+ MACRO to supply the argument currying necessary to generate the
+ desired argument list. In the following example, `list_add_n' is
+ more efficient than `list_add_x'. On the other hand, using
+ `m4_map_args_sep' can be even more efficient.
+
+ m4_define([list], [[1], [2], [3]])dnl
+ m4_define([add], [m4_eval(([$1]) + ([$2]))])dnl
+ dnl list_add_n(N, ARG...)
+ dnl Output a list consisting of each ARG added to N
+ m4_define([list_add_n],
+ [m4_shift(m4_map_args([,m4_curry([add], [$1])], m4_shift($@)))])dnl
+ list_add_n([1], list)
+ =>2,3,4
+ list_add_n([2], list)
+ =>3,4,5
+ m4_define([list_add_x],
+ [m4_shift(m4_foreach([var], m4_dquote(m4_shift($@)),
+ [,add([$1],m4_defn([var]))]))])dnl
+ list_add_x([1], list)
+ =>2,3,4
+
+ -- Macro: m4_map_args_pair (MACRO, [MACRO-END = `macro'], ARG...)
+ For every pair of arguments ARG, invoke MACRO with two arguments.
+ If there is an odd number of arguments, invoke MACRO-END, which
+ defaults to MACRO, with the remaining argument.
+
+ m4_map_args_pair([, m4_reverse], [], [1], [2], [3])
+ =>, 2, 1, 3
+ m4_map_args_pair([, m4_reverse], [, m4_dquote], [1], [2], [3])
+ =>, 2, 1, [3]
+ m4_map_args_pair([, m4_reverse], [, m4_dquote], [1], [2], [3], [4])
+ =>, 2, 1, 4, 3
+
+ -- Macro: m4_map_args_sep ([PRE], [POST], [SEP], ARG...)
+ Expand the sequence `PRE[ARG]POST' for each argument, additionally
+ expanding SEP between arguments. One common use of this macro is
+ constructing a macro call, where the opening and closing
+ parentheses are split between PRE and POST; in particular,
+ `m4_map_args([MACRO], [ARG])' is equivalent to
+ `m4_map_args_sep([MACRO(], [)], [], [ARG])'. This macro provides
+ the most efficient means for iterating over an arbitrary list of
+ arguments, particularly when repeatedly constructing a macro call
+ with more arguments than ARG.
+
+ -- Macro: m4_map_args_w (STRING, [PRE], [POST], [SEP])
+ Expand the sequence `PRE[word]POST' for each word in the
+ whitespace-separated STRING, additionally expanding SEP between
+ words. This macro provides the most efficient means for iterating
+ over a whitespace-separated string. In particular,
+ `m4_map_args_w([STRING], [ACTION(], [)])' is more efficient than
+ `m4_foreach_w([var], [STRING], [ACTION(m4_defn([var]))])'.
+
+ -- Macro: m4_shiftn (COUNT, ...)
+ -- Macro: m4_shift2 (...)
+ -- Macro: m4_shift3 (...)
+ `m4_shiftn' performs COUNT iterations of `m4_shift', along with
+ validation that enough arguments were passed in to match the shift
+ count, and that the count is positive. `m4_shift2' and
+ `m4_shift3' are specializations of `m4_shiftn', introduced in
+ Autoconf 2.62, and are more efficient for two and three shifts,
+ respectively.
+
+ -- Macro: m4_stack_foreach (MACRO, ACTION)
+ -- Macro: m4_stack_foreach_lifo (MACRO, ACTION)
+ For each of the `m4_pushdef' definitions of MACRO, expand ACTION
+ with the single argument of a definition of MACRO.
+ `m4_stack_foreach' starts with the oldest definition, while
+ `m4_stack_foreach_lifo' starts with the current definition.
+ ACTION should not push or pop definitions of MACRO, nor is there
+ any guarantee that the current definition of MACRO matches the
+ argument that was passed to ACTION. The macro `m4_curry' can be
+ used if ACTION needs more than one argument, although in that case
+ it is more efficient to use M4_STACK_FOREACH_SEP.
+
+ Due to technical limitations, there are a few low-level m4sugar
+ functions, such as `m4_pushdef', that cannot be used as the MACRO
+ argument.
+
+ m4_pushdef([a], [1])m4_pushdef([a], [2])dnl
+ m4_stack_foreach([a], [ m4_incr])
+ => 2 3
+ m4_stack_foreach_lifo([a], [ m4_curry([m4_substr], [abcd])])
+ => cd bcd
+
+ -- Macro: m4_stack_foreach_sep (MACRO, [PRE], [POST], [SEP])
+ -- Macro: m4_stack_foreach_sep_lifo (MACRO, [PRE], [POST], [SEP])
+ Expand the sequence `PRE[definition]POST' for each `m4_pushdef'
+ definition of MACRO, additionally expanding SEP between
+ definitions. `m4_stack_foreach_sep' visits the oldest definition
+ first, while `m4_stack_foreach_sep_lifo' visits the current
+ definition first. This macro provides the most efficient means
+ for iterating over a pushdef stack. In particular,
+ `m4_stack_foreach([MACRO], [ACTION])' is short for
+ `m4_stack_foreach_sep([MACRO], [ACTION(], [)])'.
+
+
+File: autoconf.info, Node: Evaluation Macros, Next: Text processing Macros, Prev: Looping constructs, Up: Programming in M4sugar
+
+8.3.6 Evaluation Macros
+-----------------------
+
+The following macros give some control over the order of the evaluation
+by adding or removing levels of quotes.
+
+ -- Macro: m4_apply (MACRO, LIST)
+ Apply the elements of the quoted, comma-separated LIST as the
+ arguments to MACRO. If LIST is empty, invoke MACRO without
+ arguments. Note the difference between `m4_indir', which expects
+ its first argument to be a macro name but can use names that are
+ otherwise invalid, and `m4_apply', where MACRO can contain other
+ text, but must end in a valid macro name.
+ m4_apply([m4_count], [])
+ =>0
+ m4_apply([m4_count], [[]])
+ =>1
+ m4_apply([m4_count], [[1], [2]])
+ =>2
+ m4_apply([m4_join], [[|], [1], [2]])
+ =>1|2
+
+ -- Macro: m4_count (ARG, ...)
+ This macro returns the decimal count of the number of arguments it
+ was passed.
+
+ -- Macro: m4_curry (MACRO, ARG...)
+ This macro performs argument currying. The expansion of this
+ macro is another macro name that expects exactly one argument;
+ that argument is then appended to the ARG list, and then MACRO is
+ expanded with the resulting argument list.
+
+ m4_curry([m4_curry], [m4_reverse], [1])([2])([3])
+ =>3, 2, 1
+
+ Unfortunately, due to a limitation in M4 1.4.x, it is not possible
+ to pass the definition of a builtin macro as the argument to the
+ output of `m4_curry'; the empty string is used instead of the
+ builtin token. This behavior is rectified by using M4 1.6 or
+ newer.
+
+ -- Macro: m4_do (ARG, ...)
+ This macro loops over its arguments and expands each ARG in
+ sequence. Its main use is for readability; it allows the use of
+ indentation and fewer `dnl' to result in the same expansion. This
+ macro guarantees that no expansion will be concatenated with
+ subsequent text; to achieve full concatenation, use
+ `m4_unquote(m4_join([], ARG...))'.
+
+ m4_define([ab],[1])m4_define([bc],[2])m4_define([abc],[3])dnl
+ m4_do([a],[b])c
+ =>abc
+ m4_unquote(m4_join([],[a],[b]))c
+ =>3
+ m4_define([a],[A])m4_define([b],[B])m4_define([c],[C])dnl
+ m4_define([AB],[4])m4_define([BC],[5])m4_define([ABC],[6])dnl
+ m4_do([a],[b])c
+ =>ABC
+ m4_unquote(m4_join([],[a],[b]))c
+ =>3
+
+ -- Macro: m4_dquote (ARG, ...)
+ Return the arguments as a quoted list of quoted arguments.
+ Conveniently, if there is just one ARG, this effectively adds a
+ level of quoting.
+
+ -- Macro: m4_dquote_elt (ARG, ...)
+ Return the arguments as a series of double-quoted arguments.
+ Whereas `m4_dquote' returns a single argument, `m4_dquote_elt'
+ returns as many arguments as it was passed.
+
+ -- Macro: m4_echo (ARG, ...)
+ Return the arguments, with the same level of quoting. Other than
+ discarding whitespace after unquoted commas, this macro is a no-op.
+
+ -- Macro: m4_expand (ARG)
+ Return the expansion of ARG as a quoted string. Whereas
+ `m4_quote' is designed to collect expanded text into a single
+ argument, `m4_expand' is designed to perform one level of expansion
+ on quoted text. One distinction is in the treatment of whitespace
+ following a comma in the original ARG. Any time multiple
+ arguments are collected into one with `m4_quote', the M4 argument
+ collection rules discard the whitespace. However, with
+ `m4_expand', whitespace is preserved, even after the expansion of
+ macros contained in ARG. Additionally, `m4_expand' is able to
+ expand text that would involve an unterminated comment, whereas
+ expanding that same text as the argument to `m4_quote' runs into
+ difficulty in finding the end of the argument. Since manipulating
+ diversions during argument collection is inherently unsafe,
+ `m4_expand' issues an error if ARG attempts to change the current
+ diversion (*note Diversion support::).
+
+ m4_define([active], [ACT, IVE])dnl
+ m4_define([active2], [[ACT, IVE]])dnl
+ m4_quote(active, active)
+ =>ACT,IVE,ACT,IVE
+ m4_expand([active, active])
+ =>ACT, IVE, ACT, IVE
+ m4_quote(active2, active2)
+ =>ACT, IVE,ACT, IVE
+ m4_expand([active2, active2])
+ =>ACT, IVE, ACT, IVE
+ m4_expand([# m4_echo])
+ =># m4_echo
+ m4_quote(# m4_echo)
+ )
+ =># m4_echo)
+ =>
+
+ Note that `m4_expand' cannot handle an ARG that expands to literal
+ unbalanced quotes, but that quadrigraphs can be used when
+ unbalanced output is necessary. Likewise, unbalanced parentheses
+ should be supplied with double quoting or a quadrigraph.
+
+ m4_define([pattern], [[!@<:@]])dnl
+ m4_define([bar], [BAR])dnl
+ m4_expand([case $foo in
+ m4_defn([pattern])@:}@ bar ;;
+ *[)] blah ;;
+ esac])
+ =>case $foo in
+ => [![]) BAR ;;
+ => *) blah ;;
+ =>esac
+
+ -- Macro: m4_ignore (...)
+ This macro was introduced in Autoconf 2.62. Expands to nothing,
+ ignoring all of its arguments. By itself, this isn't very useful.
+ However, it can be used to conditionally ignore an arbitrary
+ number of arguments, by deciding which macro name to apply to a
+ list of arguments.
+ dnl foo outputs a message only if [debug] is defined.
+ m4_define([foo],
+ [m4_ifdef([debug],[AC_MSG_NOTICE],[m4_ignore])([debug message])])
+
+ Note that for earlier versions of Autoconf, the macro `__gnu__' can
+ serve the same purpose, although it is less readable.
+
+ -- Macro: m4_make_list (ARG, ...)
+ This macro exists to aid debugging of M4sugar algorithms. Its net
+ effect is similar to `m4_dquote'--it produces a quoted list of
+ quoted arguments, for each ARG. The difference is that this
+ version uses a comma-newline separator instead of just comma, to
+ improve readability of the list; with the result that it is less
+ efficient than `m4_dquote'.
+ m4_define([zero],[0])m4_define([one],[1])m4_define([two],[2])dnl
+ m4_dquote(zero, [one], [[two]])
+ =>[0],[one],[[two]]
+ m4_make_list(zero, [one], [[two]])
+ =>[0],
+ =>[one],
+ =>[[two]]
+ m4_foreach([number], m4_dquote(zero, [one], [[two]]), [ number])
+ => 0 1 two
+ m4_foreach([number], m4_make_list(zero, [one], [[two]]), [ number])
+ => 0 1 two
+
+ -- Macro: m4_quote (ARG, ...)
+ Return the arguments as a single entity, i.e., wrap them into a
+ pair of quotes. This effectively collapses multiple arguments
+ into one, although it loses whitespace after unquoted commas in
+ the process.
+
+ -- Macro: m4_reverse (ARG, ...)
+ Outputs each argument with the same level of quoting, but in
+ reverse order, and with space following each comma for readability.
+
+ m4_define([active], [ACT,IVE])
+ =>
+ m4_reverse(active, [active])
+ =>active, IVE, ACT
+
+ -- Macro: m4_unquote (ARG, ...)
+ This macro was introduced in Autoconf 2.62. Expand each argument,
+ separated by commas. For a single ARG, this effectively removes a
+ layer of quoting, and `m4_unquote([ARG])' is more efficient than
+ the equivalent `m4_do([ARG])'. For multiple arguments, this
+ results in an unquoted list of expansions. This is commonly used
+ with `m4_split', in order to convert a single quoted list into a
+ series of quoted elements.
+
+ The following example aims at emphasizing the difference between
+several scenarios: not using these macros, using `m4_defn', using
+`m4_quote', using `m4_dquote', and using `m4_expand'.
+
+ $ cat example.m4
+ dnl Overquote, so that quotes are visible.
+ m4_define([show], [$[]1 = [$1], $[]@ = [$@]])
+ m4_define([a], [A])
+ m4_define([mkargs], [1, 2[,] 3])
+ m4_define([arg1], [[$1]])
+ m4_divert([0])dnl
+ show(a, b)
+ show([a, b])
+ show(m4_quote(a, b))
+ show(m4_dquote(a, b))
+ show(m4_expand([a, b]))
+
+ arg1(mkargs)
+ arg1([mkargs])
+ arg1(m4_defn([mkargs]))
+ arg1(m4_quote(mkargs))
+ arg1(m4_dquote(mkargs))
+ arg1(m4_expand([mkargs]))
+ $ autom4te -l m4sugar example.m4
+ $1 = A, $@ = [A],[b]
+ $1 = a, b, $@ = [a, b]
+ $1 = A,b, $@ = [A,b]
+ $1 = [A],[b], $@ = [[A],[b]]
+ $1 = A, b, $@ = [A, b]
+
+ 1
+ mkargs
+ 1, 2[,] 3
+ 1,2, 3
+ [1],[2, 3]
+ 1, 2, 3
+
+
+File: autoconf.info, Node: Text processing Macros, Next: Number processing Macros, Prev: Evaluation Macros, Up: Programming in M4sugar
+
+8.3.7 String manipulation in M4
+-------------------------------
+
+The following macros may be used to manipulate strings in M4. Many of
+the macros in this section intentionally result in quoted strings as
+output, rather than subjecting the arguments to further expansions. As
+a result, if you are manipulating text that contains active M4
+characters, the arguments are passed with single quoting rather than
+double.
+
+ -- Macro: m4_append (MACRO-NAME, STRING, [SEPARATOR])
+ -- Macro: m4_append_uniq (MACRO-NAME, STRING, [SEPARATOR] [IF-UNIQ],
+ [IF-DUPLICATE])
+ Redefine MACRO-NAME to its former contents with SEPARATOR and
+ STRING added at the end. If MACRO-NAME was undefined before (but
+ not if it was defined but empty), then no SEPARATOR is added. As
+ of Autoconf 2.62, neither STRING nor SEPARATOR are expanded during
+ this macro; instead, they are expanded when MACRO-NAME is invoked.
+
+ `m4_append' can be used to grow strings, and `m4_append_uniq' to
+ grow strings without duplicating substrings. Additionally,
+ `m4_append_uniq' takes two optional parameters as of Autoconf 2.62;
+ IF-UNIQ is expanded if STRING was appended, and IF-DUPLICATE is
+ expanded if STRING was already present. Also, `m4_append_uniq'
+ warns if SEPARATOR is not empty, but occurs within STRING, since
+ that can lead to duplicates.
+
+ Note that `m4_append' can scale linearly in the length of the final
+ string, depending on the quality of the underlying M4
+ implementation, while `m4_append_uniq' has an inherent quadratic
+ scaling factor. If an algorithm can tolerate duplicates in the
+ final string, use the former for speed. If duplicates must be
+ avoided, consider using `m4_set_add' instead (*note Set
+ manipulation Macros::).
+
+ m4_define([active], [ACTIVE])dnl
+ m4_append([sentence], [This is an])dnl
+ m4_append([sentence], [ active ])dnl
+ m4_append([sentence], [symbol.])dnl
+ sentence
+ =>This is an ACTIVE symbol.
+ m4_undefine([active])dnl
+ =>This is an active symbol.
+ m4_append_uniq([list], [one], [, ], [new], [existing])
+ =>new
+ m4_append_uniq([list], [one], [, ], [new], [existing])
+ =>existing
+ m4_append_uniq([list], [two], [, ], [new], [existing])
+ =>new
+ m4_append_uniq([list], [three], [, ], [new], [existing])
+ =>new
+ m4_append_uniq([list], [two], [, ], [new], [existing])
+ =>existing
+ list
+ =>one, two, three
+ m4_dquote(list)
+ =>[one],[two],[three]
+ m4_append([list2], [one], [[, ]])dnl
+ m4_append_uniq([list2], [two], [[, ]])dnl
+ m4_append([list2], [three], [[, ]])dnl
+ list2
+ =>one, two, three
+ m4_dquote(list2)
+ =>[one, two, three]
+
+ -- Macro: m4_append_uniq_w (MACRO-NAME, STRINGS)
+ This macro was introduced in Autoconf 2.62. It is similar to
+ `m4_append_uniq', but treats STRINGS as a whitespace separated
+ list of words to append, and only appends unique words.
+ MACRO-NAME is updated with a single space between new words.
+ m4_append_uniq_w([numbers], [1 1 2])dnl
+ m4_append_uniq_w([numbers], [ 2 3 ])dnl
+ numbers
+ =>1 2 3
+
+ -- Macro: m4_chomp (STRING)
+ -- Macro: m4_chomp_all (STRING)
+ Output STRING in quotes, but without a trailing newline. The
+ macro `m4_chomp' is slightly faster, and removes at most one
+ newline; the macro `m4_chomp_all' removes all consecutive trailing
+ newlines. Unlike `m4_flatten', embedded newlines are left intact,
+ and backslash does not influence the result.
+
+ -- Macro: m4_combine ([SEPARATOR], PREFIX-LIST, [INFIX], SUFFIX-1,
+ [SUFFIX-2], ...)
+ This macro produces a quoted string containing the pairwise
+ combination of every element of the quoted, comma-separated
+ PREFIX-LIST, and every element from the SUFFIX arguments. Each
+ pairwise combination is joined with INFIX in the middle, and
+ successive pairs are joined by SEPARATOR. No expansion occurs on
+ any of the arguments. No output occurs if either the PREFIX or
+ SUFFIX list is empty, but the lists can contain empty elements.
+ m4_define([a], [oops])dnl
+ m4_combine([, ], [[a], [b], [c]], [-], [1], [2], [3])
+ =>a-1, a-2, a-3, b-1, b-2, b-3, c-1, c-2, c-3
+ m4_combine([, ], [[a], [b]], [-])
+ =>
+ m4_combine([, ], [[a], [b]], [-], [])
+ =>a-, b-
+ m4_combine([, ], [], [-], [1], [2])
+ =>
+ m4_combine([, ], [[]], [-], [1], [2])
+ =>-1, -2
+
+ -- Macro: m4_escape (STRING)
+ Convert all instances of `[', `]', `#', and `$' within STRING into
+ their respective quadrigraphs. The result is still a quoted
+ string.
+
+ -- Macro: m4_flatten (STRING)
+ Flatten STRING into a single line. Delete all backslash-newline
+ pairs, and replace all remaining newlines with a space. The
+ result is still a quoted string.
+
+ -- Macro: m4_join ([SEPARATOR], ARGS...)
+ -- Macro: m4_joinall ([SEPARATOR], ARGS...)
+ Concatenate each ARG, separated by SEPARATOR. `joinall' uses
+ every argument, while `join' omits empty arguments so that there
+ are no back-to-back separators in the output. The result is a
+ quoted string.
+ m4_define([active], [ACTIVE])dnl
+ m4_join([|], [one], [], [active], [two])
+ =>one|active|two
+ m4_joinall([|], [one], [], [active], [two])
+ =>one||active|two
+
+ Note that if all you intend to do is join ARGS with commas between
+ them, to form a quoted list suitable for `m4_foreach', it is more
+ efficient to use `m4_dquote'.
+
+ -- Macro: m4_newline ([TEXT])
+ This macro was introduced in Autoconf 2.62, and expands to a
+ newline, followed by any TEXT. It is primarily useful for
+ maintaining macro formatting, and ensuring that M4 does not
+ discard leading whitespace during argument collection.
+
+ -- Macro: m4_normalize (STRING)
+ Remove leading and trailing spaces and tabs, sequences of
+ backslash-then-newline, and replace multiple spaces, tabs, and
+ newlines with a single space. This is a combination of
+ `m4_flatten' and `m4_strip'. To determine if STRING consists only
+ of bytes that would be removed by `m4_normalize', you can use
+ `m4_ifblank'.
+
+ -- Macro: m4_re_escape (STRING)
+ Backslash-escape all characters in STRING that are active in
+ regexps.
+
+ -- Macro: m4_split (STRING, [REGEXP = `[\t ]+'])
+ Split STRING into an M4 list of elements quoted by `[' and `]',
+ while keeping white space at the beginning and at the end. If
+ REGEXP is given, use it instead of `[\t ]+' for splitting. If
+ STRING is empty, the result is an empty list.
+
+ -- Macro: m4_strip (STRING)
+ Strip whitespace from STRING. Sequences of spaces and tabs are
+ reduced to a single space, then leading and trailing spaces are
+ removed. The result is still a quoted string. Note that this
+ does not interfere with newlines; if you want newlines stripped as
+ well, consider `m4_flatten', or do it all at once with
+ `m4_normalize'. To quickly test if STRING has only whitespace,
+ use `m4_ifblank'.
+
+ -- Macro: m4_text_box (MESSAGE, [FRAME = `-'])
+ Add a text box around MESSAGE, using FRAME as the border character
+ above and below the message. The FRAME argument must be a single
+ byte, and does not support quadrigraphs. The frame correctly
+ accounts for the subsequent expansion of MESSAGE. For example:
+ m4_define([macro], [abc])dnl
+ m4_text_box([macro])
+ =>## --- ##
+ =>## abc ##
+ =>## --- ##
+
+ The MESSAGE must contain balanced quotes and parentheses, although
+ quadrigraphs can be used to work around this.
+
+ -- Macro: m4_text_wrap (STRING, [PREFIX], [PREFIX1 = `PREFIX'], [WIDTH
+ = `79'])
+ Break STRING into a series of whitespace-separated words, then
+ output those words separated by spaces, and wrapping lines any
+ time the output would exceed WIDTH columns. If given, PREFIX1
+ begins the first line, and PREFIX begins all wrapped lines. If
+ PREFIX1 is longer than PREFIX, then the first line consists of
+ just PREFIX1. If PREFIX is longer than PREFIX1, padding is
+ inserted so that the first word of STRING begins at the same
+ indentation as all wrapped lines. Note that using literal tab
+ characters in any of the arguments will interfere with the
+ calculation of width. No expansions occur on PREFIX, PREFIX1, or
+ the words of STRING, although quadrigraphs are recognized.
+
+ For some examples:
+ m4_text_wrap([Short string */], [ ], [/* ], [20])
+ =>/* Short string */
+ m4_text_wrap([Much longer string */], [ ], [/* ], [20])
+ =>/* Much longer
+ => string */
+ m4_text_wrap([Short doc.], [ ], [ --short ], [30])
+ => --short Short doc.
+ m4_text_wrap([Short doc.], [ ], [ --too-wide ], [30])
+ => --too-wide
+ => Short doc.
+ m4_text_wrap([Super long documentation.], [ ],
+ [ --too-wide ], 30)
+ => --too-wide
+ => Super long
+ => documentation.
+
+ -- Macro: m4_tolower (STRING)
+ -- Macro: m4_toupper (STRING)
+ Return STRING with letters converted to upper or lower case,
+ respectively.
+
+
+File: autoconf.info, Node: Number processing Macros, Next: Set manipulation Macros, Prev: Text processing Macros, Up: Programming in M4sugar
+
+8.3.8 Arithmetic computation in M4
+----------------------------------
+
+The following macros facilitate integer arithmetic operations. Where a
+parameter is documented as taking an arithmetic expression, you can use
+anything that can be parsed by `m4_eval'.
+
+ -- Macro: m4_cmp (EXPR-1, EXPR-2)
+ Compare the arithmetic expressions EXPR-1 and EXPR-2, and expand
+ to `-1' if EXPR-1 is smaller, `0' if they are equal, and `1' if
+ EXPR-1 is larger.
+
+ -- Macro: m4_list_cmp (LIST-1, LIST-2)
+ Compare the two M4 lists consisting of comma-separated arithmetic
+ expressions, left to right. Expand to `-1' for the first element
+ pairing where the value from LIST-1 is smaller, `1' where the
+ value from LIST-2 is smaller, or `0' if both lists have the same
+ values. If one list is shorter than the other, the remaining
+ elements of the longer list are compared against zero.
+ m4_list_cmp([1, 0], [1])
+ =>0
+ m4_list_cmp([1, [1 * 0]], [1, 0])
+ =>0
+ m4_list_cmp([1, 2], [1, 0])
+ =>1
+ m4_list_cmp([1, [1+1], 3],[1, 2])
+ =>1
+ m4_list_cmp([1, 2, -3], [1, 2])
+ =>-1
+ m4_list_cmp([1, 0], [1, 2])
+ =>-1
+ m4_list_cmp([1], [1, 2])
+ =>-1
+
+ -- Macro: m4_max (ARG, ...)
+ This macro was introduced in Autoconf 2.62. Expand to the decimal
+ value of the maximum arithmetic expression among all the arguments.
+
+ -- Macro: m4_min (ARG, ...)
+ This macro was introduced in Autoconf 2.62. Expand to the decimal
+ value of the minimum arithmetic expression among all the arguments.
+
+ -- Macro: m4_sign (EXPR)
+ Expand to `-1' if the arithmetic expression EXPR is negative, `1'
+ if it is positive, and `0' if it is zero.
+
+ -- Macro: m4_version_compare (VERSION-1, VERSION-2)
+ This macro was introduced in Autoconf 2.53, but had a number of
+ usability limitations that were not lifted until Autoconf 2.62.
+ Compare the version strings VERSION-1 and VERSION-2, and expand to
+ `-1' if VERSION-1 is smaller, `0' if they are the same, or `1'
+ VERSION-2 is smaller. Version strings must be a list of elements
+ separated by `.', `,' or `-', where each element is a number along
+ with optional case-insensitive letters designating beta releases.
+ The comparison stops at the leftmost element that contains a
+ difference, although a 0 element compares equal to a missing
+ element.
+
+ It is permissible to include commit identifiers in VERSION, such
+ as an abbreviated SHA1 of the commit, provided there is still a
+ monotonically increasing prefix to allow for accurate version-based
+ comparisons. For example, this paragraph was written when the
+ development snapshot of autoconf claimed to be at version
+ `2.61a-248-dc51', or 248 commits after the 2.61a release, with an
+ abbreviated commit identification of `dc51'.
+
+ m4_version_compare([1.1], [2.0])
+ =>-1
+ m4_version_compare([2.0b], [2.0a])
+ =>1
+ m4_version_compare([1.1.1], [1.1.1a])
+ =>-1
+ m4_version_compare([1.2], [1.1.1a])
+ =>1
+ m4_version_compare([1.0], [1])
+ =>0
+ m4_version_compare([1.1pre], [1.1PRE])
+ =>0
+ m4_version_compare([1.1a], [1,10])
+ =>-1
+ m4_version_compare([2.61a], [2.61a-248-dc51])
+ =>-1
+ m4_version_compare([2.61b], [2.61a-248-dc51])
+ =>1
+
+ -- Macro: m4_version_prereq (VERSION, [IF-NEW-ENOUGH], [IF-OLD =
+ `m4_fatal'])
+ Compares VERSION against the version of Autoconf currently
+ running. If the running version is at VERSION or newer, expand
+ IF-NEW-ENOUGH, but if VERSION is larger than the version currently
+ executing, expand IF-OLD, which defaults to printing an error
+ message and exiting m4sugar with status 63. When given only one
+ argument, this behaves like `AC_PREREQ' (*note Versioning::).
+ Remember that the autoconf philosophy favors feature checks over
+ version checks.
+
+
+File: autoconf.info, Node: Set manipulation Macros, Next: Forbidden Patterns, Prev: Number processing Macros, Up: Programming in M4sugar
+
+8.3.9 Set manipulation in M4
+----------------------------
+
+Sometimes, it is necessary to track a set of data, where the order does
+not matter and where there are no duplicates in the set. The following
+macros facilitate set manipulations. Each set is an opaque object,
+which can only be accessed via these basic operations. The underlying
+implementation guarantees linear scaling for set creation, which is more
+efficient than using the quadratic `m4_append_uniq'. Both set names
+and values can be arbitrary strings, except for unbalanced quotes.
+This implementation ties up memory for removed elements until the next
+operation that must traverse all the elements of a set; and although
+that may slow down some operations until the memory for removed elements
+is pruned, it still guarantees linear performance.
+
+ -- Macro: m4_set_add (SET, VALUE, [IF-UNIQ], [IF-DUP])
+ Adds the string VALUE as a member of set SET. Expand IF-UNIQ if
+ the element was added, or IF-DUP if it was previously in the set.
+ Operates in amortized constant time, so that set creation scales
+ linearly.
+
+ -- Macro: m4_set_add_all (SET, VALUE...)
+ Adds each VALUE to the set SET. This is slightly more efficient
+ than repeatedly invoking `m4_set_add'.
+
+ -- Macro: m4_set_contains (SET, VALUE, [IF-PRESENT], [IF-ABSENT])
+ Expands IF-PRESENT if the string VALUE is a member of SET,
+ otherwise IF-ABSENT.
+
+ m4_set_contains([a], [1], [yes], [no])
+ =>no
+ m4_set_add([a], [1], [added], [dup])
+ =>added
+ m4_set_add([a], [1], [added], [dup])
+ =>dup
+ m4_set_contains([a], [1], [yes], [no])
+ =>yes
+ m4_set_remove([a], [1], [removed], [missing])
+ =>removed
+ m4_set_contains([a], [1], [yes], [no])
+ =>no
+ m4_set_remove([a], [1], [removed], [missing])
+ =>missing
+
+ -- Macro: m4_set_contents (SET, [SEP])
+ -- Macro: m4_set_dump (SET, [SEP])
+ Expands to a single string consisting of all the members of the set
+ SET, each separated by SEP, which is not expanded.
+ `m4_set_contents' leaves the elements in SET but reclaims any
+ memory occupied by removed elements, while `m4_set_dump' is a
+ faster one-shot action that also deletes the set. No provision is
+ made for disambiguating members that contain a non-empty SEP as a
+ substring; use `m4_set_empty' to distinguish between an empty set
+ and the set containing only the empty string. The order of the
+ output is unspecified; in the current implementation, part of the
+ speed of `m4_set_dump' results from using a different output order
+ than `m4_set_contents'. These macros scale linearly in the size
+ of the set before memory pruning, and `m4_set_contents([SET],
+ [SEP])' is faster than `m4_joinall([SEP]m4_set_listc([SET]))'.
+
+ m4_set_add_all([a], [1], [2], [3])
+ =>
+ m4_set_contents([a], [-])
+ =>1-2-3
+ m4_joinall([-]m4_set_listc([a]))
+ =>1-2-3
+ m4_set_dump([a], [-])
+ =>3-2-1
+ m4_set_contents([a])
+ =>
+ m4_set_add([a], [])
+ =>
+ m4_set_contents([a], [-])
+ =>
+
+ -- Macro: m4_set_delete (SET)
+ Delete all elements and memory associated with SET. This is
+ linear in the set size, and faster than removing one element at a
+ time.
+
+ -- Macro: m4_set_difference (SETA, SETB)
+ -- Macro: m4_set_intersection (SETA, SETB)
+ -- Macro: m4_set_union (SETA, SETB)
+ Compute the relation between SETA and SETB, and output the result
+ as a list of quoted arguments without duplicates and with a
+ leading comma. Set difference selects the elements in SETA but
+ not SETB, intersection selects only elements in both sets, and
+ union selects elements in either set. These actions are linear in
+ the sum of the set sizes. The leading comma is necessary to
+ distinguish between no elements and the empty string as the only
+ element.
+
+ m4_set_add_all([a], [1], [2], [3])
+ =>
+ m4_set_add_all([b], [3], [], [4])
+ =>
+ m4_set_difference([a], [b])
+ =>,1,2
+ m4_set_difference([b], [a])
+ =>,,4
+ m4_set_intersection([a], [b])
+ =>,3
+ m4_set_union([a], [b])
+ =>,1,2,3,,4
+
+ -- Macro: m4_set_empty (SET, [IF-EMPTY], [IF-ELEMENTS])
+ Expand IF-EMPTY if the set SET has no elements, otherwise expand
+ IF-ELEMENTS. This macro operates in constant time. Using this
+ macro can help disambiguate output from `m4_set_contents' or
+ `m4_set_list'.
+
+ -- Macro: m4_set_foreach (SET, VARIABLE, ACTION)
+ For each element in the set SET, expand ACTION with the macro
+ VARIABLE defined as the set element. Behavior is unspecified if
+ ACTION recursively lists the contents of SET (although listing
+ other sets is acceptable), or if it modifies the set in any way
+ other than removing the element currently contained in VARIABLE.
+ This macro is faster than the corresponding `m4_foreach([VARIABLE],
+ m4_indir([m4_dquote]m4_set_listc([SET])), [ACTION])', although
+ `m4_set_map' might be faster still.
+
+ m4_set_add_all([a]m4_for([i], [1], [5], [], [,i]))
+ =>
+ m4_set_contents([a])
+ =>12345
+ m4_set_foreach([a], [i],
+ [m4_if(m4_eval(i&1), [0], [m4_set_remove([a], i, [i])])])
+ =>24
+ m4_set_contents([a])
+ =>135
+
+ -- Macro: m4_set_list (SET)
+ -- Macro: m4_set_listc (SET)
+ Produce a list of arguments, where each argument is a quoted
+ element from the set SET. The variant `m4_set_listc' is
+ unambiguous, by adding a leading comma if there are any set
+ elements, whereas the variant `m4_set_list' cannot distinguish
+ between an empty set and a set containing only the empty string.
+ These can be directly used in macros that take multiple arguments,
+ such as `m4_join' or `m4_set_add_all', or wrapped by `m4_dquote'
+ for macros that take a quoted list, such as `m4_map' or
+ `m4_foreach'. Any memory occupied by removed elements is
+ reclaimed during these macros.
+
+ m4_set_add_all([a], [1], [2], [3])
+ =>
+ m4_set_list([a])
+ =>1,2,3
+ m4_set_list([b])
+ =>
+ m4_set_listc([b])
+ =>
+ m4_count(m4_set_list([b]))
+ =>1
+ m4_set_empty([b], [0], [m4_count(m4_set_list([b]))])
+ =>0
+ m4_set_add([b], [])
+ =>
+ m4_set_list([b])
+ =>
+ m4_set_listc([b])
+ =>,
+ m4_count(m4_set_list([b]))
+ =>1
+ m4_set_empty([b], [0], [m4_count(m4_set_list([b]))])
+ =>1
+
+ -- Macro: m4_set_map (SET, ACTION)
+ For each element in the set SET, expand ACTION with a single
+ argument of the set element. Behavior is unspecified if ACTION
+ recursively lists the contents of SET (although listing other sets
+ is acceptable), or if it modifies the set in any way other than
+ removing the element passed as an argument. This macro is faster
+ than either corresponding counterpart of
+ `m4_map_args([ACTION]m4_set_listc([SET]))' or
+ `m4_set_foreach([SET], [var], [ACTION(m4_defn([var]))])'. It is
+ possible to use `m4_curry' if more than one argument is needed for
+ ACTION, although it is more efficient to use `m4_set_map_sep' in
+ that case.
+
+ -- Macro: m4_set_map_sep (SET, [PRE], [POST], [SEP])
+ For each element in the set SET, expand `PRE[element]POST',
+ additionally expanding SEP between elements. Behavior is
+ unspecified if the expansion recursively lists the contents of SET
+ (although listing other sets is acceptable), or if it modifies the
+ set in any way other than removing the element visited by the
+ expansion. This macro provides the most efficient means for
+ non-destructively visiting the elements of a set; in particular,
+ `m4_set_map([SET], [ACTION])' is equivalent to
+ `m4_set_map_sep([SET], [ACTION(], [)])'.
+
+ -- Macro: m4_set_remove (SET, VALUE, [IF-PRESENT], [IF-ABSENT])
+ If VALUE is an element in the set SET, then remove it and expand
+ IF-PRESENT. Otherwise expand IF-ABSENT. This macro operates in
+ constant time so that multiple removals will scale linearly rather
+ than quadratically; but when used outside of `m4_set_foreach' or
+ `m4_set_map', it leaves memory occupied until the set is later
+ compacted by `m4_set_contents' or `m4_set_list'. Several other
+ set operations are then less efficient between the time of element
+ removal and subsequent memory compaction, but still maintain their
+ guaranteed scaling performance.
+
+ -- Macro: m4_set_size (SET)
+ Expand to the size of the set SET. This implementation operates
+ in constant time, and is thus more efficient than
+ `m4_eval(m4_count(m4_set_listc([set])) - 1)'.
+
+
+File: autoconf.info, Node: Forbidden Patterns, Prev: Set manipulation Macros, Up: Programming in M4sugar
+
+8.3.10 Forbidden Patterns
+-------------------------
+
+M4sugar provides a means to define suspicious patterns, patterns
+describing tokens which should not be found in the output. For
+instance, if an Autoconf `configure' script includes tokens such as
+`AC_DEFINE', or `dnl', then most probably something went wrong
+(typically a macro was not evaluated because of overquotation).
+
+ M4sugar forbids all the tokens matching `^_?m4_' and `^dnl$'.
+Additional layers, such as M4sh and Autoconf, add additional forbidden
+patterns to the list.
+
+ -- Macro: m4_pattern_forbid (PATTERN)
+ Declare that no token matching PATTERN must be found in the output.
+ Comments are not checked; this can be a problem if, for instance,
+ you have some macro left unexpanded after an `#include'. No
+ consensus is currently found in the Autoconf community, as some
+ people consider it should be valid to name macros in comments
+ (which doesn't make sense to the authors of this documentation:
+ input, such as macros, should be documented by `dnl' comments;
+ reserving `#'-comments to document the output).
+
+ Of course, you might encounter exceptions to these generic rules, for
+instance you might have to refer to `$m4_flags'.
+
+ -- Macro: m4_pattern_allow (PATTERN)
+ Any token matching PATTERN is allowed, including if it matches an
+ `m4_pattern_forbid' pattern.
+
+
+File: autoconf.info, Node: Debugging via autom4te, Prev: Programming in M4sugar, Up: Programming in M4
+
+8.4 Debugging via autom4te
+==========================
+
+At times, it is desirable to see what was happening inside m4, to see
+why output was not matching expectations. However, post-processing done
+by `autom4te' means that directly using the m4 builtin `m4_traceon' is
+likely to interfere with operation. Also, frequent diversion changes
+and the concept of forbidden tokens make it difficult to use `m4_defn'
+to generate inline comments in the final output.
+
+ There are a couple of tools to help with this. One is the use of the
+`--trace' option provided by `autom4te' (as well as each of the
+programs that wrap `autom4te', such as `autoconf'), in order to inspect
+when a macro is called and with which arguments. For example, when
+this paragraph was written, the autoconf version could be found by:
+
+ $ autoconf --trace=AC_INIT
+ configure.ac:23:AC_INIT:GNU Autoconf:2.63b.95-3963:bug-autoconf@gnu.org
+ $ autoconf --trace='AC_INIT:version is $2'
+ version is 2.63b.95-3963
+
+ Another trick is to print out the expansion of various m4
+expressions to standard error or to an independent file, with no
+further m4 expansion, and without interfering with diversion changes or
+the post-processing done to standard output. `m4_errprintn' shows a
+given expression on standard error. For example, if you want to see
+the expansion of an autoconf primitive or of one of your autoconf
+macros, you can do it like this:
+
+ $ cat <<\EOF > configure.ac
+ AC_INIT
+ m4_errprintn([The definition of AC_DEFINE_UNQUOTED:])
+ m4_errprintn(m4_defn([AC_DEFINE_UNQUOTED]))
+ AC_OUTPUT
+ EOF
+ $ autoconf
+ error-->The definition of AC_DEFINE_UNQUOTED:
+ error-->_AC_DEFINE_Q([], $@)
+
+
+File: autoconf.info, Node: Programming in M4sh, Next: Writing Autoconf Macros, Prev: Programming in M4, Up: Top
+
+9 Programming in M4sh
+*********************
+
+M4sh, pronounced "mash", is aiming at producing portable Bourne shell
+scripts. This name was coined by Lars J. Aas, who notes that,
+according to the Webster's Revised Unabridged Dictionary (1913):
+
+ Mash \Mash\, n. [Akin to G. meisch, maisch, meische, maische,
+ mash, wash, and prob. to AS. miscian to mix. See "Mix".]
+
+ 1. A mass of mixed ingredients reduced to a soft pulpy state by
+ beating or pressure...
+
+ 2. A mixture of meal or bran and water fed to animals.
+
+ 3. A mess; trouble. [Obs.] -Beau. & Fl.
+
+ M4sh reserves the M4 macro namespace `^_AS_' for internal use, and
+the namespace `^AS_' for M4sh macros. It also reserves the shell and
+environment variable namespace `^as_', and the here-document delimiter
+namespace `^_AS[A-Z]' in the output file. You should not define your
+own macros or output shell code that conflicts with these namespaces.
+
+* Menu:
+
+* Common Shell Constructs:: Portability layer for common shell constructs
+* Polymorphic Variables:: Support for indirect variable names
+* Initialization Macros:: Macros to establish a sane shell environment
+* File Descriptor Macros:: File descriptor macros for input and output
+
+
+File: autoconf.info, Node: Common Shell Constructs, Next: Polymorphic Variables, Up: Programming in M4sh
+
+9.1 Common Shell Constructs
+===========================
+
+M4sh provides portable alternatives for some common shell constructs
+that unfortunately are not portable in practice.
+
+ -- Macro: AS_BOX (TEXT, [CHAR = `-'])
+ Expand into shell code that will output TEXT surrounded by a box
+ with CHAR in the top and bottom border. TEXT should not contain a
+ newline, but may contain shell expansions valid for unquoted
+ here-documents. CHAR defaults to `-', but can be any character
+ except `/', `'', `"', `\', `&', or ``'. This is useful for
+ outputting a comment box into log files to separate distinct
+ phases of script operation.
+
+ -- Macro: AS_CASE (WORD, [PATTERN1], [IF-MATCHED1], ..., [DEFAULT])
+ Expand into a shell `case' statement, where WORD is matched
+ against one or more patterns. IF-MATCHED is run if the
+ corresponding pattern matched WORD, else DEFAULT is run. Avoids
+ several portability issues (*note Limitations of Shell Builtins:
+ case.).
+
+ -- Macro: AS_DIRNAME (FILE-NAME)
+ Output the directory portion of FILE-NAME. For example, if
+ `$file' is `/one/two/three', the command
+ `dir=`AS_DIRNAME(["$file"])`' sets `dir' to `/one/two'.
+
+ This interface may be improved in the future to avoid forks and
+ losing trailing newlines.
+
+ -- Macro: AS_ECHO (WORD)
+ Emits WORD to the standard output, followed by a newline. WORD
+ must be a single shell word (typically a quoted string). The
+ bytes of WORD are output as-is, even if it starts with "-" or
+ contains "\". Redirections can be placed outside the macro
+ invocation. This is much more portable than using `echo' (*note
+ Limitations of Shell Builtins: echo.).
+
+ -- Macro: AS_ECHO_N (WORD)
+ Emits WORD to the standard output, without a following newline.
+ WORD must be a single shell word (typically a quoted string) and,
+ for portability, should not include more than one newline. The
+ bytes of WORD are output as-is, even if it starts with "-" or
+ contains "\". Redirections can be placed outside the macro
+ invocation.
+
+ -- Macro: AS_ESCAPE (STRING, [CHARS = ``\"$'])
+ Expands to STRING, with any characters in CHARS escaped with a
+ backslash (`\'). CHARS should be at most four bytes long, and
+ only contain characters from the set ``\"$'; however, characters
+ may be safely listed more than once in CHARS for the sake of
+ syntax highlighting editors. The current implementation expands
+ STRING after adding escapes; if STRING contains macro calls that
+ in turn expand to text needing shell quoting, you can use
+ `AS_ESCAPE(m4_dquote(m4_expand([string])))'.
+
+ The default for CHARS (`\"$`') is the set of characters needing
+ escapes when STRING will be used literally within double quotes.
+ One common variant is the set of characters to protect when STRING
+ will be used literally within back-ticks or an unquoted
+ here-document (`\$`'). Another common variant is `""', which can
+ be used to form a double-quoted string containing the same
+ expansions that would have occurred if STRING were expanded in an
+ unquoted here-document; however, when using this variant, care
+ must be taken that STRING does not use double quotes within
+ complex variable expansions (such as `${foo-`echo "hi"`}') that
+ would be broken with improper escapes.
+
+ This macro is often used with `AS_ECHO'. For an example, observe
+ the output generated by the shell code generated from this snippet:
+
+ foo=bar
+ AS_ECHO(["AS_ESCAPE(["$foo" = ])AS_ESCAPE(["$foo"], [""])"])
+ =>"$foo" = "bar"
+ m4_define([macro], [a, [\b]])
+ AS_ECHO(["AS_ESCAPE([[macro]])"])
+ =>macro
+ AS_ECHO(["AS_ESCAPE([macro])"])
+ =>a, b
+ AS_ECHO(["AS_ESCAPE(m4_dquote(m4_expand([macro])))"])
+ =>a, \b
+
+ To escape a string that will be placed within single quotes, use:
+
+ m4_bpatsubst([[STRING]], ['], ['\\''])
+
+ -- Macro: AS_EXECUTABLE_P (FILE)
+ Emit code to probe whether FILE is a regular file with executable
+ permissions (and not a directory with search permissions). The
+ caller is responsible for quoting FILE.
+
+ -- Macro: AS_EXIT ([STATUS = `$?'])
+ Emit code to exit the shell with STATUS, defaulting to `$?'. This
+ macro works around shells that see the exit status of the command
+ prior to `exit' inside a `trap 0' handler (*note Limitations of
+ Shell Builtins: trap.).
+
+ -- Macro: AS_IF (TEST1, [RUN-IF-TRUE1], ..., [RUN-IF-FALSE])
+ Run shell code TEST1. If TEST1 exits with a zero status then run
+ shell code RUN-IF-TRUE1, else examine further tests. If no test
+ exits with a zero status, run shell code RUN-IF-FALSE, with
+ simplifications if either RUN-IF-TRUE1 or RUN-IF-FALSE is empty.
+ For example,
+
+ AS_IF([test "x$foo" = xyes], [HANDLE_FOO([yes])],
+ [test "x$foo" != xno], [HANDLE_FOO([maybe])],
+ [echo foo not specified])
+
+ ensures any required macros of `HANDLE_FOO' are expanded before
+ the first test.
+
+ -- Macro: AS_MKDIR_P (FILE-NAME)
+ Make the directory FILE-NAME, including intervening directories as
+ necessary. This is equivalent to `mkdir -p -- FILE-NAME', except
+ that it is portable to older versions of `mkdir' that lack support
+ for the `-p' option or for the `--' delimiter (*note Limitations
+ of Usual Tools: mkdir.). Also, `AS_MKDIR_P' succeeds if FILE-NAME
+ is a symbolic link to an existing directory, even though Posix is
+ unclear whether `mkdir -p' should succeed in that case. If
+ creation of FILE-NAME fails, exit the script.
+
+ Also see the `AC_PROG_MKDIR_P' macro (*note Particular Programs::).
+
+ -- Macro: AS_SET_STATUS (STATUS)
+ Emit shell code to set the value of `$?' to STATUS, as efficiently
+ as possible. However, this is not guaranteed to abort a shell
+ running with `set -e' (*note Limitations of Shell Builtins: set.).
+ This should also be used at the end of a complex shell function
+ instead of `return' (*note Shell Functions::) to avoid a DJGPP
+ shell bug.
+
+ -- Macro: AS_TR_CPP (EXPRESSION)
+ Transform EXPRESSION into a valid right-hand side for a C
+ `#define'. For example:
+
+ # This outputs "#define HAVE_CHAR_P 1".
+ # Notice the m4 quoting around #, to prevent an m4 comment
+ type="char *"
+ echo "[#]define AS_TR_CPP([HAVE_$type]) 1"
+
+ -- Macro: AS_TR_SH (EXPRESSION)
+ Transform EXPRESSION into shell code that generates a valid shell
+ variable name. The result is literal when possible at m4 time,
+ but must be used with `eval' if EXPRESSION causes shell
+ indirections. For example:
+
+ # This outputs "Have it!".
+ header="sys/some file.h"
+ eval AS_TR_SH([HAVE_$header])=yes
+ if test "x$HAVE_sys_some_file_h" = xyes; then echo "Have it!"; fi
+
+ -- Macro: AS_SET_CATFILE (VAR, DIR, FILE)
+ Set the polymorphic shell variable VAR to DIR/FILE, but optimizing
+ the common cases (DIR or FILE is `.', FILE is absolute, etc.).
+
+ -- Macro: AS_UNSET (VAR)
+ Unsets the shell variable VAR, working around bugs in older shells
+ (*note Limitations of Shell Builtins: unset.). VAR can be a
+ literal or indirect variable name.
+
+ -- Macro: AS_VERSION_COMPARE (VERSION-1, VERSION-2, [ACTION-IF-LESS],
+ [ACTION-IF-EQUAL], [ACTION-IF-GREATER])
+ Compare two strings VERSION-1 and VERSION-2, possibly containing
+ shell variables, as version strings, and expand ACTION-IF-LESS,
+ ACTION-IF-EQUAL, or ACTION-IF-GREATER depending upon the result.
+ The algorithm to compare is similar to the one used by strverscmp
+ in glibc (*note String/Array Comparison: (libc)String/Array
+ Comparison.).
+
+
+File: autoconf.info, Node: Polymorphic Variables, Next: Initialization Macros, Prev: Common Shell Constructs, Up: Programming in M4sh
+
+9.2 Support for indirect variable names
+=======================================
+
+Often, it is convenient to write a macro that will emit shell code
+operating on a shell variable. The simplest case is when the variable
+name is known. But a more powerful idiom is writing shell code that can
+work through an indirection, where another variable or command
+substitution produces the name of the variable to actually manipulate.
+M4sh supports the notion of polymorphic shell variables, making it easy
+to write a macro that can deal with either literal or indirect variable
+names and output shell code appropriate for both use cases. Behavior is
+undefined if expansion of an indirect variable does not result in a
+literal variable name.
+
+ -- Macro: AS_LITERAL_IF (EXPRESSION, [IF-LITERAL], [IF-NOT],
+ [IF-SIMPLE-REF = `IF-NOT'])
+ -- Macro: AS_LITERAL_WORD_IF (EXPRESSION, [IF-LITERAL], [IF-NOT],
+ [IF-SIMPLE-REF = `IF-NOT'])
+ If the expansion of EXPRESSION is definitely a shell literal,
+ expand IF-LITERAL. If the expansion of EXPRESSION looks like it
+ might contain shell indirections (such as `$var' or ``expr`'),
+ then IF-NOT is expanded. Sometimes, it is possible to output
+ optimized code if EXPRESSION consists only of shell variable
+ expansions (such as `${var}'), in which case IF-SIMPLE-REF can be
+ provided; but defaulting to IF-NOT should always be safe.
+ `AS_LITERAL_WORD_IF' only expands IF-LITERAL if EXPRESSION looks
+ like a single shell word, containing no whitespace; while
+ `AS_LITERAL_IF' allows whitespace in EXPRESSION.
+
+ In order to reduce the time spent recognizing whether an
+ EXPRESSION qualifies as a literal or a simple indirection, the
+ implementation is somewhat conservative: EXPRESSION must be a
+ single shell word (possibly after stripping whitespace),
+ consisting only of bytes that would have the same meaning whether
+ unquoted or enclosed in double quotes (for example, `a.b' results
+ in IF-LITERAL, even though it is not a valid shell variable name;
+ while both `'a'' and `[$]' result in IF-NOT, because they behave
+ differently than `"'a'"' and `"[$]"'). This macro can be used in
+ contexts for recognizing portable file names (such as in the
+ implementation of `AC_LIBSOURCE'), or coupled with some
+ transliterations for forming valid variable names (such as in the
+ implementation of `AS_TR_SH', which uses an additional
+ `m4_translit' to convert `.' to `_').
+
+ This example shows how to read the contents of the shell variable
+ `bar', exercising all three arguments to `AS_LITERAL_IF'. It
+ results in a script that will output the line `hello' three times.
+
+ AC_DEFUN([MY_ACTION],
+ [AS_LITERAL_IF([$1],
+ [echo "$$1"],
+ [AS_VAR_COPY([var], [$1])
+ echo "$var"],
+ [eval 'echo "$'"$1"\"])])
+ foo=bar bar=hello
+ MY_ACTION([bar])
+ MY_ACTION([`echo bar`])
+ MY_ACTION([$foo])
+
+ -- Macro: AS_VAR_APPEND (VAR, TEXT)
+ Emit shell code to append the shell expansion of TEXT to the end
+ of the current contents of the polymorphic shell variable VAR,
+ taking advantage of shells that provide the `+=' extension for more
+ efficient scaling.
+
+ For situations where the final contents of VAR are relatively
+ short (less than 256 bytes), it is more efficient to use the
+ simpler code sequence of `VAR=${VAR}TEXT' (or its polymorphic
+ equivalent of `AS_VAR_COPY([t], [VAR])' and `AS_VAR_SET([VAR],
+ ["$t"TEXT])'). But in the case when the script will be repeatedly
+ appending text into `var', issues of scaling start to become
+ apparent. A naive implementation requires execution time linear
+ to the length of the current contents of VAR as well as the length
+ of TEXT for a single append, for an overall quadratic scaling with
+ multiple appends. This macro takes advantage of shells which
+ provide the extension `VAR+=TEXT', which can provide amortized
+ constant time for a single append, for an overall linear scaling
+ with multiple appends. Note that unlike `AS_VAR_SET', this macro
+ requires that TEXT be quoted properly to avoid field splitting and
+ file name expansion.
+
+ -- Macro: AS_VAR_ARITH (VAR, EXPRESSION)
+ Emit shell code to compute the arithmetic expansion of EXPRESSION,
+ assigning the result as the contents of the polymorphic shell
+ variable VAR. The code takes advantage of shells that provide
+ `$(())' for fewer forks, but uses `expr' as a fallback.
+ Therefore, the syntax for a valid EXPRESSION is rather limited:
+ all operators must occur as separate shell arguments and with
+ proper quoting, there is no portable equality operator, all
+ variables containing numeric values must be expanded prior to the
+ computation, all numeric values must be provided in decimal
+ without leading zeroes, and the first shell argument should not be
+ a negative number. In the following example, this snippet will
+ print `(2+3)*4 == 20'.
+
+ bar=3
+ AS_VAR_ARITH([foo], [\( 2 + $bar \) \* 4])
+ echo "(2+$bar)*4 == $foo"
+
+ -- Macro: AS_VAR_COPY (DEST, SOURCE)
+ Emit shell code to assign the contents of the polymorphic shell
+ variable SOURCE to the polymorphic shell variable DEST. For
+ example, executing this M4sh snippet will output `bar hi':
+
+ foo=bar bar=hi
+ AS_VAR_COPY([a], [foo])
+ AS_VAR_COPY([b], [$foo])
+ echo "$a $b"
+
+ When it is necessary to access the contents of an indirect variable
+ inside a shell double-quoted context, the recommended idiom is to
+ first copy the contents into a temporary literal shell variable.
+
+ for header in stdint_h inttypes_h ; do
+ AS_VAR_COPY([var], [ac_cv_header_$header])
+ echo "$header detected: $var"
+ done
+
+ -- Macro: AS_VAR_IF (VAR, [WORD], [IF-EQUAL], [IF-NOT-EQUAL])
+ Output a shell conditional statement. If the contents of the
+ polymorphic shell variable VAR match the string WORD, execute
+ IF-EQUAL; otherwise execute IF-NOT-EQUAL. WORD must be a single
+ shell word (typically a quoted string). Avoids shell bugs if an
+ interrupt signal arrives while a command substitution in VAR is
+ being expanded.
+
+ -- Macro: AS_VAR_PUSHDEF (M4-NAME, VALUE)
+ -- Macro: AS_VAR_POPDEF (M4-NAME)
+ A common M4sh idiom involves composing shell variable names from
+ an m4 argument (for example, writing a macro that uses a cache
+ variable). VALUE can be an arbitrary string, which will be
+ transliterated into a valid shell name by `AS_TR_SH'. In order to
+ access the composed variable name based on VALUE, it is easier to
+ declare a temporary m4 macro M4-NAME with `AS_VAR_PUSHDEF', then
+ use that macro as the argument to subsequent `AS_VAR' macros as a
+ polymorphic variable name, and finally free the temporary macro
+ with `AS_VAR_POPDEF'. These macros are often followed with `dnl',
+ to avoid excess newlines in the output.
+
+ Here is an involved example, that shows the power of writing
+ macros that can handle composed shell variable names:
+
+ m4_define([MY_CHECK_HEADER],
+ [AS_VAR_PUSHDEF([my_Header], [ac_cv_header_$1])dnl
+ AS_VAR_IF([my_Header], [yes], [echo "header $1 detected"])dnl
+ AS_VAR_POPDEF([my_Header])dnl
+ ])
+ MY_CHECK_HEADER([stdint.h])
+ for header in inttypes.h stdlib.h ; do
+ MY_CHECK_HEADER([$header])
+ done
+
+ In the above example, `MY_CHECK_HEADER' can operate on polymorphic
+ variable names. In the first invocation, the m4 argument is
+ `stdint.h', which transliterates into a literal `stdint_h'. As a
+ result, the temporary macro `my_Header' expands to the literal
+ shell name `ac_cv_header_stdint_h'. In the second invocation, the
+ m4 argument to `MY_CHECK_HEADER' is `$header', and the temporary
+ macro `my_Header' expands to the indirect shell name
+ `$as_my_Header'. During the shell execution of the for loop, when
+ `$header' contains `inttypes.h', then `$as_my_Header' contains
+ `ac_cv_header_inttypes_h'. If this script is then run on a
+ platform where all three headers have been previously detected, the
+ output of the script will include:
+
+ header stdint.h detected
+ header inttypes.h detected
+ header stdlib.h detected
+
+ -- Macro: AS_VAR_SET (VAR, [VALUE])
+ Emit shell code to assign the contents of the polymorphic shell
+ variable VAR to the shell expansion of VALUE. VALUE is not
+ subject to field splitting or file name expansion, so if command
+ substitution is used, it may be done with ``""`' rather than using
+ an intermediate variable (*note Shell Substitutions::). However,
+ VALUE does undergo rescanning for additional macro names; behavior
+ is unspecified if late expansion results in any shell
+ meta-characters.
+
+ -- Macro: AS_VAR_SET_IF (VAR, [IF-SET], [IF-UNDEF])
+ Emit a shell conditional statement, which executes IF-SET if the
+ polymorphic shell variable `var' is set to any value, and IF-UNDEF
+ otherwise.
+
+ -- Macro: AS_VAR_TEST_SET (VAR)
+ Emit a shell statement that results in a successful exit status
+ only if the polymorphic shell variable `var' is set.
+
+
+File: autoconf.info, Node: Initialization Macros, Next: File Descriptor Macros, Prev: Polymorphic Variables, Up: Programming in M4sh
+
+9.3 Initialization Macros
+=========================
+
+ -- Macro: AS_BOURNE_COMPATIBLE
+ Set up the shell to be more compatible with the Bourne shell as
+ standardized by Posix, if possible. This may involve setting
+ environment variables, or setting options, or similar
+ implementation-specific actions. This macro is deprecated, since
+ `AS_INIT' already invokes it.
+
+ -- Macro: AS_INIT
+ Initialize the M4sh environment. This macro calls `m4_init', then
+ outputs the `#! /bin/sh' line, a notice about where the output was
+ generated from, and code to sanitize the environment for the rest
+ of the script. Among other initializations, this sets `SHELL' to
+ the shell chosen to run the script (*note CONFIG_SHELL::), and
+ `LC_ALL' to ensure the C locale. Finally, it changes the current
+ diversion to `BODY'. `AS_INIT' is called automatically by
+ `AC_INIT' and `AT_INIT', so shell code in `configure',
+ `config.status', and `testsuite' all benefit from a sanitized
+ shell environment.
+
+ -- Macro: AS_INIT_GENERATED (FILE, [COMMENT])
+ Emit shell code to start the creation of a subsidiary shell script
+ in FILE, including changing FILE to be executable. This macro
+ populates the child script with information learned from the parent
+ (thus, the emitted code is equivalent in effect, but more
+ efficient, than the code output by `AS_INIT',
+ `AS_BOURNE_COMPATIBLE', and `AS_SHELL_SANITIZE'). If present,
+ COMMENT is output near the beginning of the child, prior to the
+ shell initialization code, and is subject to parameter expansion,
+ command substitution, and backslash quote removal. The parent
+ script should check the exit status after this macro, in case FILE
+ could not be properly created (for example, if the disk was full).
+ If successfully created, the parent script can then proceed to
+ append additional M4sh constructs into the child script.
+
+ Note that the child script starts life without a log file open, so
+ if the parent script uses logging (*note AS_MESSAGE_LOG_FD::), you
+ must temporarily disable any attempts to use the log file until
+ after emitting code to open a log within the child. On the other
+ hand, if the parent script has `AS_MESSAGE_FD' redirected
+ somewhere besides `1', then the child script already has code that
+ copies stdout to that descriptor. Currently, the suggested idiom
+ for writing a M4sh shell script from within another script is:
+
+ AS_INIT_GENERATED([FILE], [[# My child script.
+ ]]) || { AS_ECHO(["Failed to create child script"]); AS_EXIT; }
+ m4_pushdef([AS_MESSAGE_LOG_FD])dnl
+ cat >> "FILE" <<\__EOF__
+ # Code to initialize AS_MESSAGE_LOG_FD
+ m4_popdef([AS_MESSAGE_LOG_FD])dnl
+ # Additional code
+ __EOF__
+
+ This, however, may change in the future as the M4sh interface is
+ stabilized further.
+
+ Also, be aware that use of `LINENO' within the child script may
+ report line numbers relative to their location in the parent
+ script, even when using `AS_LINENO_PREPARE', if the parent script
+ was unable to locate a shell with working `LINENO' support.
+
+ -- Macro: AS_LINENO_PREPARE
+ Find a shell that supports the special variable `LINENO', which
+ contains the number of the currently executing line. This macro is
+ automatically invoked by `AC_INIT' in configure scripts.
+
+ -- Macro: AS_ME_PREPARE
+ Set up variable `as_me' to be the basename of the currently
+ executing script. This macro is automatically invoked by
+ `AC_INIT' in configure scripts.
+
+ -- Macro: AS_TMPDIR (PREFIX, [DIR = `${TMPDIR:=/tmp}'])
+ Create, as safely as possible, a temporary sub-directory within
+ DIR with a name starting with PREFIX. PREFIX should be 2-4
+ characters, to make it slightly easier to identify the owner of
+ the directory. If DIR is omitted, then the value of `TMPDIR' will
+ be used (defaulting to `/tmp'). On success, the name of the newly
+ created directory is stored in the shell variable `tmp'. On
+ error, the script is aborted.
+
+ Typically, this macro is coupled with some exit traps to delete
+ the created directory and its contents on exit or interrupt.
+ However, there is a slight window between when the directory is
+ created and when the name is actually known to the shell, so an
+ interrupt at the right moment might leave the temporary directory
+ behind. Hence it is important to use a PREFIX that makes it
+ easier to determine if a leftover temporary directory from an
+ interrupted script is safe to delete.
+
+ The use of the output variable `$tmp' rather than something in the
+ `as_' namespace is historical; it has the unfortunate consequence
+ that reusing this otherwise common name for any other purpose
+ inside your script has the potential to break any cleanup traps
+ designed to remove the temporary directory.
+
+ -- Macro: AS_SHELL_SANITIZE
+ Initialize the shell suitably for `configure' scripts. This has
+ the effect of `AS_BOURNE_COMPATIBLE', and sets some other
+ environment variables for predictable results from configuration
+ tests. For example, it sets `LC_ALL' to change to the default C
+ locale. *Note Special Shell Variables::. This macro is
+ deprecated, since `AS_INIT' already invokes it.
+
+
+File: autoconf.info, Node: File Descriptor Macros, Prev: Initialization Macros, Up: Programming in M4sh
+
+9.4 File Descriptor Macros
+==========================
+
+The following macros define file descriptors used to output messages
+(or input values) from `configure' scripts. For example:
+
+ echo "$wombats found" >&AS_MESSAGE_LOG_FD
+ echo 'Enter desired kangaroo count:' >&AS_MESSAGE_FD
+ read kangaroos <&AS_ORIGINAL_STDIN_FD`
+
+However doing so is seldom needed, because Autoconf provides higher
+level macros as described below.
+
+ -- Macro: AS_MESSAGE_FD
+ The file descriptor for `checking for...' messages and results.
+ By default, `AS_INIT' sets this to `1' for standalone M4sh
+ clients. However, `AC_INIT' shuffles things around to another file
+ descriptor, in order to allow the `-q' option of `configure' to
+ choose whether messages should go to the script's standard output
+ or be discarded.
+
+ If you want to display some messages, consider using one of the
+ printing macros (*note Printing Messages::) instead. Copies of
+ messages output via these macros are also recorded in `config.log'.
+
+ -- Macro: AS_MESSAGE_LOG_FD
+ This must either be empty, or expand to a file descriptor for log
+ messages. By default, `AS_INIT' sets this macro to the empty
+ string for standalone M4sh clients, thus disabling logging.
+ However, `AC_INIT' shuffles things around so that both `configure'
+ and `config.status' use `config.log' for log messages. Macros
+ that run tools, like `AC_COMPILE_IFELSE' (*note Running the
+ Compiler::), redirect all output to this descriptor. You may want
+ to do so if you develop such a low-level macro.
+
+ -- Macro: AS_ORIGINAL_STDIN_FD
+ This must expand to a file descriptor for the original standard
+ input. By default, `AS_INIT' sets this macro to `0' for standalone
+ M4sh clients. However, `AC_INIT' shuffles things around for
+ safety.
+
+ When `configure' runs, it may accidentally execute an interactive
+ command that has the same name as the non-interactive meant to be
+ used or checked. If the standard input was the terminal, such
+ interactive programs would cause `configure' to stop, pending some
+ user input. Therefore `configure' redirects its standard input
+ from `/dev/null' during its initialization. This is not normally
+ a problem, since `configure' normally does not need user input.
+
+ In the extreme case where your `configure' script really needs to
+ obtain some values from the original standard input, you can read
+ them explicitly from `AS_ORIGINAL_STDIN_FD'.
+
+
+File: autoconf.info, Node: Writing Autoconf Macros, Next: Portable Shell, Prev: Programming in M4sh, Up: Top
+
+10 Writing Autoconf Macros
+**************************
+
+When you write a feature test that could be applicable to more than one
+software package, the best thing to do is encapsulate it in a new macro.
+Here are some instructions and guidelines for writing Autoconf macros.
+
+* Menu:
+
+* Macro Definitions:: Basic format of an Autoconf macro
+* Macro Names:: What to call your new macros
+* Reporting Messages:: Notifying `autoconf' users
+* Dependencies Between Macros:: What to do when macros depend on other macros
+* Obsoleting Macros:: Warning about old ways of doing things
+* Coding Style:: Writing Autoconf macros a` la Autoconf
+
+
+File: autoconf.info, Node: Macro Definitions, Next: Macro Names, Up: Writing Autoconf Macros
+
+10.1 Macro Definitions
+======================
+
+ -- Macro: AC_DEFUN (NAME, [BODY])
+ Autoconf macros are defined using the `AC_DEFUN' macro, which is
+ similar to the M4 builtin `m4_define' macro; this creates a macro
+ named NAME and with BODY as its expansion. In addition to
+ defining a macro, `AC_DEFUN' adds to it some code that is used to
+ constrain the order in which macros are called, while avoiding
+ redundant output (*note Prerequisite Macros::).
+
+ An Autoconf macro definition looks like this:
+
+ AC_DEFUN(MACRO-NAME, MACRO-BODY)
+
+ You can refer to any arguments passed to the macro as `$1', `$2',
+etc. *Note How to define new macros: (m4.info)Definitions, for more
+complete information on writing M4 macros.
+
+ Most macros fall in one of two general categories. The first
+category includes macros which take arguments, in order to generate
+output parameterized by those arguments. Macros in this category are
+designed to be directly expanded, often multiple times, and should not
+be used as the argument to `AC_REQUIRE'. The other category includes
+macros which are shorthand for a fixed block of text, and therefore do
+not take arguments. For this category of macros, directly expanding
+the macro multiple times results in redundant output, so it is more
+common to use the macro as the argument to `AC_REQUIRE', or to declare
+the macro with `AC_DEFUN_ONCE' (*note One-Shot Macros::).
+
+ Be sure to properly quote both the MACRO-BODY _and_ the MACRO-NAME
+to avoid any problems if the macro happens to have been previously
+defined.
+
+ Each macro should have a header comment that gives its prototype,
+and a brief description. When arguments have default values, display
+them in the prototype. For example:
+
+ # AC_MSG_ERROR(ERROR, [EXIT-STATUS = 1])
+ # --------------------------------------
+ m4_define([AC_MSG_ERROR],
+ [{ AS_MESSAGE([error: $1], [2])
+ exit m4_default([$2], [1]); }])
+
+ Comments about the macro should be left in the header comment. Most
+other comments make their way into `configure', so just keep using `#'
+to introduce comments.
+
+ If you have some special comments about pure M4 code, comments that
+make no sense in `configure' and in the header comment, then use the
+builtin `dnl': it causes M4 to discard the text through the next
+newline.
+
+ Keep in mind that `dnl' is rarely needed to introduce comments;
+`dnl' is more useful to get rid of the newlines following macros that
+produce no output, such as `AC_REQUIRE'.
+
+ Public third-party macros need to use `AC_DEFUN', and not
+`m4_define', in order to be found by `aclocal' (*note Extending
+aclocal: (automake)Extending aclocal.). Additionally, if it is ever
+determined that a macro should be made obsolete, it is easy to convert
+from `AC_DEFUN' to `AU_DEFUN' in order to have `autoupdate' assist the
+user in choosing a better alternative, but there is no corresponding
+way to make `m4_define' issue an upgrade notice (*note AU_DEFUN::).
+
+ There is another subtle, but important, difference between using
+`m4_define' and `AC_DEFUN': only the former is unaffected by
+`AC_REQUIRE'. When writing a file, it is always safe to replace a
+block of text with a `m4_define' macro that will expand to the same
+text. But replacing a block of text with an `AC_DEFUN' macro with the
+same content does not necessarily give the same results, because it
+changes the location where any embedded but unsatisfied `AC_REQUIRE'
+invocations within the block will be expanded. For an example of this,
+see *note Expanded Before Required::.
+
+
+File: autoconf.info, Node: Macro Names, Next: Reporting Messages, Prev: Macro Definitions, Up: Writing Autoconf Macros
+
+10.2 Macro Names
+================
+
+All of the public Autoconf macros have all-uppercase names in the
+namespace `^AC_' to prevent them from accidentally conflicting with
+other text; Autoconf also reserves the namespace `^_AC_' for internal
+macros. All shell variables that they use for internal purposes have
+mostly-lowercase names starting with `ac_'. Autoconf also uses
+here-document delimiters in the namespace `^_AC[A-Z]'. During
+`configure', files produced by Autoconf make heavy use of the file
+system namespace `^conf'.
+
+ Since Autoconf is built on top of M4sugar (*note Programming in
+M4sugar::) and M4sh (*note Programming in M4sh::), you must also be
+aware of those namespaces (`^_?\(m4\|AS\)_'). And since `configure.ac'
+is also designed to be scanned by Autoheader, Autoscan, Autoupdate, and
+Automake, you should be aware of the `^_?A[HNUM]_' namespaces. In
+general, you _should not use_ the namespace of a package that does not
+own the macro or shell code you are writing.
+
+ To ensure that your macros don't conflict with present or future
+Autoconf macros, you should prefix your own macro names and any shell
+variables they use with some other sequence. Possibilities include your
+initials, or an abbreviation for the name of your organization or
+software package. Historically, people have not always followed the
+rule of using a namespace appropriate for their package, and this has
+made it difficult for determining the origin of a macro (and where to
+report bugs about that macro), as well as difficult for the true
+namespace owner to add new macros without interference from pre-existing
+uses of third-party macros. Perhaps the best example of this confusion
+is the `AM_GNU_GETTEXT' macro, which belongs, not to Automake, but to
+Gettext.
+
+ Most of the Autoconf macros' names follow a structured naming
+convention that indicates the kind of feature check by the name. The
+macro names consist of several words, separated by underscores, going
+from most general to most specific. The names of their cache variables
+use the same convention (*note Cache Variable Names::, for more
+information on them).
+
+ The first word of the name after the namespace initials (such as
+`AC_') usually tells the category of the feature being tested. Here
+are the categories used in Autoconf for specific test macros, the kind
+of macro that you are more likely to write. They are also used for
+cache variables, in all-lowercase. Use them where applicable; where
+they're not, invent your own categories.
+
+`C'
+ C language builtin features.
+
+`DECL'
+ Declarations of C variables in header files.
+
+`FUNC'
+ Functions in libraries.
+
+`GROUP'
+ Posix group owners of files.
+
+`HEADER'
+ Header files.
+
+`LIB'
+ C libraries.
+
+`PROG'
+ The base names of programs.
+
+`MEMBER'
+ Members of aggregates.
+
+`SYS'
+ Operating system features.
+
+`TYPE'
+ C builtin or declared types.
+
+`VAR'
+ C variables in libraries.
+
+ After the category comes the name of the particular feature being
+tested. Any further words in the macro name indicate particular aspects
+of the feature. For example, `AC_PROG_CC_STDC' checks whether the C
+compiler supports ISO Standard C.
+
+ An internal macro should have a name that starts with an underscore;
+Autoconf internals should therefore start with `_AC_'. Additionally, a
+macro that is an internal subroutine of another macro should have a
+name that starts with an underscore and the name of that other macro,
+followed by one or more words saying what the internal macro does. For
+example, `AC_PATH_X' has internal macros `_AC_PATH_X_XMKMF' and
+`_AC_PATH_X_DIRECT'.
+
+
+File: autoconf.info, Node: Reporting Messages, Next: Dependencies Between Macros, Prev: Macro Names, Up: Writing Autoconf Macros
+
+10.3 Reporting Messages
+=======================
+
+When macros statically diagnose abnormal situations, benign or fatal, it
+is possible to make `autoconf' detect the problem, and refuse to create
+`configure' in the case of an error. The macros in this section are
+considered obsolescent, and new code should use M4sugar macros for this
+purpose, see *note Diagnostic Macros::.
+
+ On the other hand, it is possible to want to detect errors when
+`configure' is run, which are dependent on the environment of the user
+rather than the maintainer. For dynamic diagnostics, see *note
+Printing Messages::.
+
+ -- Macro: AC_DIAGNOSE (CATEGORY, MESSAGE)
+ Report MESSAGE as a warning (or as an error if requested by the
+ user) if warnings of the CATEGORY are turned on. This macro is
+ obsolescent; you are encouraged to use:
+ m4_warn([CATEGORY], [MESSAGE])
+ instead. *Note m4_warn::, for more details, including valid
+ CATEGORY names.
+
+ -- Macro: AC_WARNING (MESSAGE)
+ Report MESSAGE as a syntax warning. This macro is obsolescent;
+ you are encouraged to use:
+ m4_warn([syntax], [MESSAGE])
+ instead. *Note m4_warn::, for more details, as well as better
+ finer-grained categories of warnings (not all problems have to do
+ with syntax).
+
+ -- Macro: AC_FATAL (MESSAGE)
+ Report a severe error MESSAGE, and have `autoconf' die. This
+ macro is obsolescent; you are encouraged to use:
+ m4_fatal([MESSAGE])
+ instead. *Note m4_fatal::, for more details.
+
+ When the user runs `autoconf -W error', warnings from `m4_warn'
+(including those issued through `AC_DIAGNOSE' and `AC_WARNING') are
+reported as errors, see *note autoconf Invocation::.
+
+
+File: autoconf.info, Node: Dependencies Between Macros, Next: Obsoleting Macros, Prev: Reporting Messages, Up: Writing Autoconf Macros
+
+10.4 Dependencies Between Macros
+================================
+
+Some Autoconf macros depend on other macros having been called first in
+order to work correctly. Autoconf provides a way to ensure that certain
+macros are called if needed and a way to warn the user if macros are
+called in an order that might cause incorrect operation.
+
+* Menu:
+
+* Prerequisite Macros:: Ensuring required information
+* Suggested Ordering:: Warning about possible ordering problems
+* One-Shot Macros:: Ensuring a macro is called only once
+
+
+File: autoconf.info, Node: Prerequisite Macros, Next: Suggested Ordering, Up: Dependencies Between Macros
+
+10.4.1 Prerequisite Macros
+--------------------------
+
+A macro that you write might need to use values that have previously
+been computed by other macros. For example, `AC_DECL_YYTEXT' examines
+the output of `flex' or `lex', so it depends on `AC_PROG_LEX' having
+been called first to set the shell variable `LEX'.
+
+ Rather than forcing the user of the macros to keep track of the
+dependencies between them, you can use the `AC_REQUIRE' macro to do it
+automatically. `AC_REQUIRE' can ensure that a macro is only called if
+it is needed, and only called once.
+
+ -- Macro: AC_REQUIRE (MACRO-NAME)
+ If the M4 macro MACRO-NAME has not already been called, call it
+ (without any arguments). Make sure to quote MACRO-NAME with
+ square brackets. MACRO-NAME must have been defined using
+ `AC_DEFUN' or else contain a call to `AC_PROVIDE' to indicate that
+ it has been called.
+
+ `AC_REQUIRE' must be used inside a macro defined by `AC_DEFUN'; it
+ must not be called from the top level. Also, it does not make
+ sense to require a macro that takes parameters.
+
+ `AC_REQUIRE' is often misunderstood. It really implements
+dependencies between macros in the sense that if one macro depends upon
+another, the latter is expanded _before_ the body of the former. To be
+more precise, the required macro is expanded before the outermost
+defined macro in the current expansion stack. In particular,
+`AC_REQUIRE([FOO])' is not replaced with the body of `FOO'. For
+instance, this definition of macros:
+
+ AC_DEFUN([TRAVOLTA],
+ [test "$body_temperature_in_celsius" -gt "38" &&
+ dance_floor=occupied])
+ AC_DEFUN([NEWTON_JOHN],
+ [test "x$hair_style" = xcurly &&
+ dance_floor=occupied])
+
+ AC_DEFUN([RESERVE_DANCE_FLOOR],
+ [if date | grep '^Sat.*pm' >/dev/null 2>&1; then
+ AC_REQUIRE([TRAVOLTA])
+ AC_REQUIRE([NEWTON_JOHN])
+ fi])
+
+with this `configure.ac'
+
+ AC_INIT([Dance Manager], [1.0], [bug-dance@example.org])
+ RESERVE_DANCE_FLOOR
+ if test "x$dance_floor" = xoccupied; then
+ AC_MSG_ERROR([cannot pick up here, let's move])
+ fi
+
+does not leave you with a better chance to meet a kindred soul at other
+times than Saturday night since it expands into:
+
+ test "$body_temperature_in_Celsius" -gt "38" &&
+ dance_floor=occupied
+ test "x$hair_style" = xcurly &&
+ dance_floor=occupied
+ fi
+ if date | grep '^Sat.*pm' >/dev/null 2>&1; then
+
+
+ fi
+
+ This behavior was chosen on purpose: (i) it prevents messages in
+required macros from interrupting the messages in the requiring macros;
+(ii) it avoids bad surprises when shell conditionals are used, as in:
+
+ if ...; then
+ AC_REQUIRE([SOME_CHECK])
+ fi
+ ...
+ SOME_CHECK
+
+ However, this implementation can lead to another class of problems.
+Consider the case where an outer macro first expands, then indirectly
+requires, an inner macro:
+
+ AC_DEFUN([TESTA], [[echo in A
+ if test -n "$SEEN_A" ; then echo duplicate ; fi
+ SEEN_A=:]])
+ AC_DEFUN([TESTB], [AC_REQUIRE([TESTA])[echo in B
+ if test -z "$SEEN_A" ; then echo bug ; fi]])
+ AC_DEFUN([TESTC], [AC_REQUIRE([TESTB])[echo in C]])
+ AC_DEFUN([OUTER], [[echo in OUTER]
+ TESTA
+ TESTC])
+ OUTER
+
+Prior to Autoconf 2.64, the implementation of `AC_REQUIRE' recognized
+that `TESTB' needed to be hoisted prior to the expansion of `OUTER',
+but because `TESTA' had already been directly expanded, it failed to
+hoist `TESTA'. Therefore, the expansion of `TESTB' occurs prior to its
+prerequisites, leading to the following output:
+
+ in B
+ bug
+ in OUTER
+ in A
+ in C
+
+Newer Autoconf is smart enough to recognize this situation, and hoists
+`TESTA' even though it has already been expanded, but issues a syntax
+warning in the process. This is because the hoisted expansion of
+`TESTA' defeats the purpose of using `AC_REQUIRE' to avoid redundant
+code, and causes its own set of problems if the hoisted macro is not
+idempotent:
+
+ in A
+ in B
+ in OUTER
+ in A
+ duplicate
+ in C
+
+ The bug is not in Autoconf, but in the macro definitions. If you
+ever pass a particular macro name to `AC_REQUIRE', then you are implying
+that the macro only needs to be expanded once. But to enforce this,
+either the macro must be declared with `AC_DEFUN_ONCE' (although this
+only helps in Autoconf 2.64 or newer), or all uses of that macro should
+be through `AC_REQUIRE'; directly expanding the macro defeats the point
+of using `AC_REQUIRE' to eliminate redundant expansion. In the
+example, this rule of thumb was violated because `TESTB' requires
+`TESTA' while `OUTER' directly expands it. One way of fixing the bug
+is to factor `TESTA' into two macros, the portion designed for direct
+and repeated use (here, named `TESTA'), and the portion designed for
+one-shot output and used only inside `AC_REQUIRE' (here, named
+`TESTA_PREREQ'). Then, by fixing all clients to use the correct
+calling convention according to their needs:
+
+ AC_DEFUN([TESTA], [AC_REQUIRE([TESTA_PREREQ])[echo in A]])
+ AC_DEFUN([TESTA_PREREQ], [[echo in A_PREREQ
+ if test -n "$SEEN_A" ; then echo duplicate ; fi
+ SEEN_A=:]])
+ AC_DEFUN([TESTB], [AC_REQUIRE([TESTA_PREREQ])[echo in B
+ if test -z "$SEEN_A" ; then echo bug ; fi]])
+ AC_DEFUN([TESTC], [AC_REQUIRE([TESTB])[echo in C]])
+ AC_DEFUN([OUTER], [[echo in OUTER]
+ TESTA
+ TESTC])
+ OUTER
+
+the resulting output will then obey all dependency rules and avoid any
+syntax warnings, whether the script is built with old or new Autoconf
+versions:
+
+ in A_PREREQ
+ in B
+ in OUTER
+ in A
+ in C
+
+ The helper macros `AS_IF' and `AS_CASE' may be used to enforce
+expansion of required macros outside of shell conditional constructs.
+You are furthermore encouraged, although not required, to put all
+`AC_REQUIRE' calls at the beginning of a macro. You can use `dnl' to
+avoid the empty lines they leave.
+
+
+File: autoconf.info, Node: Suggested Ordering, Next: One-Shot Macros, Prev: Prerequisite Macros, Up: Dependencies Between Macros
+
+10.4.2 Suggested Ordering
+-------------------------
+
+Some macros should be run before another macro if both are called, but
+neither _requires_ that the other be called. For example, a macro that
+changes the behavior of the C compiler should be called before any
+macros that run the C compiler. Many of these dependencies are noted in
+the documentation.
+
+ Autoconf provides the `AC_BEFORE' macro to warn users when macros
+with this kind of dependency appear out of order in a `configure.ac'
+file. The warning occurs when creating `configure' from
+`configure.ac', not when running `configure'.
+
+ For example, `AC_PROG_CPP' checks whether the C compiler can run the
+C preprocessor when given the `-E' option. It should therefore be
+called after any macros that change which C compiler is being used,
+such as `AC_PROG_CC'. So `AC_PROG_CC' contains:
+
+ AC_BEFORE([$0], [AC_PROG_CPP])dnl
+
+This warns the user if a call to `AC_PROG_CPP' has already occurred
+when `AC_PROG_CC' is called.
+
+ -- Macro: AC_BEFORE (THIS-MACRO-NAME, CALLED-MACRO-NAME)
+ Make M4 print a warning message to the standard error output if
+ CALLED-MACRO-NAME has already been called. THIS-MACRO-NAME should
+ be the name of the macro that is calling `AC_BEFORE'. The macro
+ CALLED-MACRO-NAME must have been defined using `AC_DEFUN' or else
+ contain a call to `AC_PROVIDE' to indicate that it has been called.
+
+
+File: autoconf.info, Node: One-Shot Macros, Prev: Suggested Ordering, Up: Dependencies Between Macros
+
+10.4.3 One-Shot Macros
+----------------------
+
+Some macros should be called only once, either because calling them
+multiple time is unsafe, or because it is bad style. For instance
+Autoconf ensures that `AC_CANONICAL_BUILD' and cousins (*note
+Canonicalizing::) are evaluated only once, because it makes no sense to
+run these expensive checks more than once. Such one-shot macros can be
+defined using `AC_DEFUN_ONCE'.
+
+ -- Macro: AC_DEFUN_ONCE (MACRO-NAME, MACRO-BODY)
+ Declare macro MACRO-NAME like `AC_DEFUN' would (*note Macro
+ Definitions::), but add additional logic that guarantees that only
+ the first use of the macro (whether by direct expansion or
+ `AC_REQUIRE') causes an expansion of MACRO-BODY; the expansion
+ will occur before the start of any enclosing macro defined by
+ `AC_DEFUN'. Subsequent expansions are silently ignored.
+ Generally, it does not make sense for MACRO-BODY to use parameters
+ such as `$1'.
+
+ Prior to Autoconf 2.64, a macro defined by `AC_DEFUN_ONCE' would
+emit a warning if it was directly expanded a second time, so for
+portability, it is better to use `AC_REQUIRE' than direct invocation of
+MACRO-NAME inside a macro defined by `AC_DEFUN' (*note Prerequisite
+Macros::).
+
+
+File: autoconf.info, Node: Obsoleting Macros, Next: Coding Style, Prev: Dependencies Between Macros, Up: Writing Autoconf Macros
+
+10.5 Obsoleting Macros
+======================
+
+Configuration and portability technology has evolved over the years.
+Often better ways of solving a particular problem are developed, or
+ad-hoc approaches are systematized. This process has occurred in many
+parts of Autoconf. One result is that some of the macros are now
+considered "obsolete"; they still work, but are no longer considered
+the best thing to do, hence they should be replaced with more modern
+macros. Ideally, `autoupdate' should replace the old macro calls with
+their modern implementation.
+
+ Autoconf provides a simple means to obsolete a macro.
+
+ -- Macro: AU_DEFUN (OLD-MACRO, IMPLEMENTATION, [MESSAGE])
+ Define OLD-MACRO as IMPLEMENTATION. The only difference with
+ `AC_DEFUN' is that the user is warned that OLD-MACRO is now
+ obsolete.
+
+ If she then uses `autoupdate', the call to OLD-MACRO is replaced
+ by the modern IMPLEMENTATION. MESSAGE should include information
+ on what to do after running `autoupdate'; `autoupdate' prints it
+ as a warning, and includes it in the updated `configure.ac' file.
+
+ The details of this macro are hairy: if `autoconf' encounters an
+ `AU_DEFUN'ed macro, all macros inside its second argument are
+ expanded as usual. However, when `autoupdate' is run, only M4 and
+ M4sugar macros are expanded here, while all other macros are
+ disabled and appear literally in the updated `configure.ac'.
+
+ -- Macro: AU_ALIAS (OLD-NAME, NEW-NAME)
+ Used if the OLD-NAME is to be replaced by a call to NEW-MACRO with
+ the same parameters. This happens for example if the macro was
+ renamed.
+
+
+File: autoconf.info, Node: Coding Style, Prev: Obsoleting Macros, Up: Writing Autoconf Macros
+
+10.6 Coding Style
+=================
+
+The Autoconf macros follow a strict coding style. You are encouraged to
+follow this style, especially if you intend to distribute your macro,
+either by contributing it to Autoconf itself or the Autoconf Macro
+Archive (http://www.gnu.org/software/autoconf-archive/), or by other
+means.
+
+ The first requirement is to pay great attention to the quotation.
+For more details, see *note Autoconf Language::, and *note M4
+Quotation::.
+
+ Do not try to invent new interfaces. It is likely that there is a
+macro in Autoconf that resembles the macro you are defining: try to
+stick to this existing interface (order of arguments, default values,
+etc.). We _are_ conscious that some of these interfaces are not
+perfect; nevertheless, when harmless, homogeneity should be preferred
+over creativity.
+
+ Be careful about clashes both between M4 symbols and between shell
+variables.
+
+ If you stick to the suggested M4 naming scheme (*note Macro Names::),
+you are unlikely to generate conflicts. Nevertheless, when you need to
+set a special value, _avoid using a regular macro name_; rather, use an
+"impossible" name. For instance, up to version 2.13, the macro
+`AC_SUBST' used to remember what SYMBOL macros were already defined by
+setting `AC_SUBST_SYMBOL', which is a regular macro name. But since
+there is a macro named `AC_SUBST_FILE', it was just impossible to
+`AC_SUBST(FILE)'! In this case, `AC_SUBST(SYMBOL)' or
+`_AC_SUBST(SYMBOL)' should have been used (yes, with the parentheses).
+
+ No Autoconf macro should ever enter the user-variable name space;
+i.e., except for the variables that are the actual result of running the
+macro, all shell variables should start with `ac_'. In addition, small
+macros or any macro that is likely to be embedded in other macros
+should be careful not to use obvious names.
+
+ Do not use `dnl' to introduce comments: most of the comments you are
+likely to write are either header comments which are not output anyway,
+or comments that should make their way into `configure'. There are
+exceptional cases where you do want to comment special M4 constructs,
+in which case `dnl' is right, but keep in mind that it is unlikely.
+
+ M4 ignores the leading blanks and newlines before each argument.
+Use this feature to indent in such a way that arguments are (more or
+less) aligned with the opening parenthesis of the macro being called.
+For instance, instead of
+
+ AC_CACHE_CHECK(for EMX OS/2 environment,
+ ac_cv_emxos2,
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(, [return __EMX__;])],
+ [ac_cv_emxos2=yes], [ac_cv_emxos2=no])])
+
+write
+
+ AC_CACHE_CHECK([for EMX OS/2 environment], [ac_cv_emxos2],
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [return __EMX__;])],
+ [ac_cv_emxos2=yes],
+ [ac_cv_emxos2=no])])
+
+or even
+
+ AC_CACHE_CHECK([for EMX OS/2 environment],
+ [ac_cv_emxos2],
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+ [return __EMX__;])],
+ [ac_cv_emxos2=yes],
+ [ac_cv_emxos2=no])])
+
+ When using `AC_RUN_IFELSE' or any macro that cannot work when
+cross-compiling, provide a pessimistic value (typically `no').
+
+ Feel free to use various tricks to prevent auxiliary tools, such as
+syntax-highlighting editors, from behaving improperly. For instance,
+instead of:
+
+ m4_bpatsubst([$1], [$"])
+
+use
+
+ m4_bpatsubst([$1], [$""])
+
+so that Emacsen do not open an endless "string" at the first quote.
+For the same reasons, avoid:
+
+ test $[#] != 0
+
+and use:
+
+ test $[@%:@] != 0
+
+Otherwise, the closing bracket would be hidden inside a `#'-comment,
+breaking the bracket-matching highlighting from Emacsen. Note the
+preferred style to escape from M4: `$[1]', `$[@]', etc. Do not escape
+when it is unnecessary. Common examples of useless quotation are
+`[$]$1' (write `$$1'), `[$]var' (use `$var'), etc. If you add
+portability issues to the picture, you'll prefer `${1+"$[@]"}' to
+`"[$]@"', and you'll prefer do something better than hacking Autoconf
+`:-)'.
+
+ When using `sed', don't use `-e' except for indenting purposes.
+With the `s' and `y' commands, the preferred separator is `/' unless
+`/' itself might appear in the pattern or replacement, in which case
+you should use `|', or optionally `,' if you know the pattern and
+replacement cannot contain a file name. If none of these characters
+will do, choose a printable character that cannot appear in the pattern
+or replacement. Characters from the set `"#$&'()*;<=>?`|~' are good
+choices if the pattern or replacement might contain a file name, since
+they have special meaning to the shell and are less likely to occur in
+file names.
+
+ *Note Macro Definitions::, for details on how to define a macro. If
+a macro doesn't use `AC_REQUIRE', is expected to never be the object of
+an `AC_REQUIRE' directive, and macros required by other macros inside
+arguments do not need to be expanded before this macro, then use
+`m4_define'. In case of doubt, use `AC_DEFUN'. Also take into account
+that public third-party macros need to use `AC_DEFUN' in order to be
+found by `aclocal' (*note Extending aclocal: (automake)Extending
+aclocal.). All the `AC_REQUIRE' statements should be at the beginning
+of the macro, and each statement should be followed by `dnl'.
+
+ You should not rely on the number of arguments: instead of checking
+whether an argument is missing, test that it is not empty. It provides
+both a simpler and a more predictable interface to the user, and saves
+room for further arguments.
+
+ Unless the macro is short, try to leave the closing `])' at the
+beginning of a line, followed by a comment that repeats the name of the
+macro being defined. This introduces an additional newline in
+`configure'; normally, that is not a problem, but if you want to remove
+it you can use `[]dnl' on the last line. You can similarly use `[]dnl'
+after a macro call to remove its newline. `[]dnl' is recommended
+instead of `dnl' to ensure that M4 does not interpret the `dnl' as
+being attached to the preceding text or macro output. For example,
+instead of:
+
+ AC_DEFUN([AC_PATH_X],
+ [AC_MSG_CHECKING([for X])
+ AC_REQUIRE_CPP()
+ # ...omitted...
+ AC_MSG_RESULT([libraries $x_libraries, headers $x_includes])
+ fi])
+
+you would write:
+
+ AC_DEFUN([AC_PATH_X],
+ [AC_REQUIRE_CPP()[]dnl
+ AC_MSG_CHECKING([for X])
+ # ...omitted...
+ AC_MSG_RESULT([libraries $x_libraries, headers $x_includes])
+ fi[]dnl
+ ])# AC_PATH_X
+
+ If the macro is long, try to split it into logical chunks.
+Typically, macros that check for a bug in a function and prepare its
+`AC_LIBOBJ' replacement should have an auxiliary macro to perform this
+setup. Do not hesitate to introduce auxiliary macros to factor your
+code.
+
+ In order to highlight the recommended coding style, here is a macro
+written the old way:
+
+ dnl Check for EMX on OS/2.
+ dnl _AC_EMXOS2
+ AC_DEFUN(_AC_EMXOS2,
+ [AC_CACHE_CHECK(for EMX OS/2 environment, ac_cv_emxos2,
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(, return __EMX__;)],
+ ac_cv_emxos2=yes, ac_cv_emxos2=no)])
+ test "x$ac_cv_emxos2" = xyes && EMXOS2=yes])
+
+and the new way:
+
+ # _AC_EMXOS2
+ # ----------
+ # Check for EMX on OS/2.
+ m4_define([_AC_EMXOS2],
+ [AC_CACHE_CHECK([for EMX OS/2 environment], [ac_cv_emxos2],
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [return __EMX__;])],
+ [ac_cv_emxos2=yes],
+ [ac_cv_emxos2=no])])
+ test "x$ac_cv_emxos2" = xyes && EMXOS2=yes[]dnl
+ ])# _AC_EMXOS2
+
+
+File: autoconf.info, Node: Portable Shell, Next: Portable Make, Prev: Writing Autoconf Macros, Up: Top
+
+11 Portable Shell Programming
+*****************************
+
+When writing your own checks, there are some shell-script programming
+techniques you should avoid in order to make your code portable. The
+Bourne shell and upward-compatible shells like the Korn shell and Bash
+have evolved over the years, and many features added to the original
+System7 shell are now supported on all interesting porting targets.
+However, the following discussion between Russ Allbery and Robert Lipe
+is worth reading:
+
+Russ Allbery:
+
+ The GNU assumption that `/bin/sh' is the one and only shell leads
+ to a permanent deadlock. Vendors don't want to break users'
+ existing shell scripts, and there are some corner cases in the
+ Bourne shell that are not completely compatible with a Posix
+ shell. Thus, vendors who have taken this route will _never_
+ (OK..."never say never") replace the Bourne shell (as `/bin/sh')
+ with a Posix shell.
+
+Robert Lipe:
+
+ This is exactly the problem. While most (at least most System
+ V's) do have a Bourne shell that accepts shell functions most
+ vendor `/bin/sh' programs are not the Posix shell.
+
+ So while most modern systems do have a shell _somewhere_ that
+ meets the Posix standard, the challenge is to find it.
+
+ For this reason, part of the job of M4sh (*note Programming in
+M4sh::) is to find such a shell. But to prevent trouble, if you're not
+using M4sh you should not take advantage of features that were added
+after Unix version 7, circa 1977 (*note Systemology::); you should not
+use aliases, negated character classes, or even `unset'. `#' comments,
+while not in Unix version 7, were retrofitted in the original Bourne
+shell and can be assumed to be part of the least common denominator.
+
+ On the other hand, if you're using M4sh you can assume that the shell
+has the features that were added in SVR2 (circa 1984), including shell
+functions, `return', `unset', and I/O redirection for builtins. For
+more information, refer to `http://www.in-ulm.de/~mascheck/bourne/'.
+However, some pitfalls have to be avoided for portable use of these
+constructs; these will be documented in the rest of this chapter. See
+in particular *note Shell Functions:: and *note Limitations of Shell
+Builtins: Limitations of Builtins.
+
+ Some ancient systems have quite small limits on the length of the
+`#!' line; for instance, 32 bytes (not including the newline) on SunOS
+4. However, these ancient systems are no longer of practical concern.
+
+ The set of external programs you should run in a `configure' script
+is fairly small. *Note Utilities in Makefiles: (standards)Utilities in
+Makefiles, for the list. This restriction allows users to start out
+with a fairly small set of programs and build the rest, avoiding too
+many interdependencies between packages.
+
+ Some of these external utilities have a portable subset of features;
+see *note Limitations of Usual Tools::.
+
+ There are other sources of documentation about shells. The
+specification for the Posix Shell Command Language
+(http://www.opengroup.org/susv3/utilities/xcu_chap02.html), though more
+generous than the restrictive shell subset described above, is fairly
+portable nowadays. Also please see the Shell FAQs
+(http://www.faqs.org/faqs/unix-faq/shell/).
+
+* Menu:
+
+* Shellology:: A zoology of shells
+* Invoking the Shell:: Invoking the shell as a command
+* Here-Documents:: Quirks and tricks
+* File Descriptors:: FDs and redirections
+* Signal Handling:: Shells, signals, and headaches
+* File System Conventions:: File names
+* Shell Pattern Matching:: Pattern matching
+* Shell Substitutions:: Variable and command expansions
+* Assignments:: Varying side effects of assignments
+* Parentheses:: Parentheses in shell scripts
+* Slashes:: Slashes in shell scripts
+* Special Shell Variables:: Variables you should not change
+* Shell Functions:: What to look out for if you use them
+* Limitations of Builtins:: Portable use of not so portable /bin/sh
+* Limitations of Usual Tools:: Portable use of portable tools
+
+
+File: autoconf.info, Node: Shellology, Next: Invoking the Shell, Up: Portable Shell
+
+11.1 Shellology
+===============
+
+There are several families of shells, most prominently the Bourne family
+and the C shell family which are deeply incompatible. If you want to
+write portable shell scripts, avoid members of the C shell family. The
+the Shell difference FAQ
+(http://www.faqs.org/faqs/unix-faq/shell/shell-differences/) includes a
+small history of Posix shells, and a comparison between several of them.
+
+ Below we describe some of the members of the Bourne shell family.
+
+Ash
+ Ash is often used on GNU/Linux and BSD systems as a light-weight
+ Bourne-compatible shell. Ash 0.2 has some bugs that are fixed in
+ the 0.3.x series, but portable shell scripts should work around
+ them, since version 0.2 is still shipped with many GNU/Linux
+ distributions.
+
+ To be compatible with Ash 0.2:
+
+ - don't use `$?' after expanding empty or unset variables, or
+ at the start of an `eval':
+
+ foo=
+ false
+ $foo
+ echo "Do not use it: $?"
+ false
+ eval 'echo "Do not use it: $?"'
+
+ - don't use command substitution within variable expansion:
+
+ cat ${FOO=`bar`}
+
+ - beware that single builtin substitutions are not performed by
+ a subshell, hence their effect applies to the current shell!
+ *Note Shell Substitutions::, item "Command Substitution".
+
+Bash
+ To detect whether you are running Bash, test whether
+ `BASH_VERSION' is set. To require Posix compatibility, run `set
+ -o posix'. *Note Bash Posix Mode: (bash)Bash POSIX Mode, for
+ details.
+
+Bash 2.05 and later
+ Versions 2.05 and later of Bash use a different format for the
+ output of the `set' builtin, designed to make evaluating its
+ output easier. However, this output is not compatible with earlier
+ versions of Bash (or with many other shells, probably). So if you
+ use Bash 2.05 or higher to execute `configure', you'll need to use
+ Bash 2.05 for all other build tasks as well.
+
+Ksh
+ The Korn shell is compatible with the Bourne family and it mostly
+ conforms to Posix. It has two major variants commonly called
+ `ksh88' and `ksh93', named after the years of initial release. It
+ is usually called `ksh', but is called `sh' on some hosts if you
+ set your path appropriately.
+
+ Solaris systems have three variants: `/usr/bin/ksh' is `ksh88'; it
+ is standard on Solaris 2.0 and later. `/usr/xpg4/bin/sh' is a
+ Posix-compliant variant of `ksh88'; it is standard on Solaris 9
+ and later. `/usr/dt/bin/dtksh' is `ksh93'. Variants that are not
+ standard may be parts of optional packages. There is no extra
+ charge for these packages, but they are not part of a minimal OS
+ install and therefore some installations may not have it.
+
+ Starting with Tru64 Version 4.0, the Korn shell `/usr/bin/ksh' is
+ also available as `/usr/bin/posix/sh'. If the environment
+ variable `BIN_SH' is set to `xpg4', subsidiary invocations of the
+ standard shell conform to Posix.
+
+Pdksh
+ A public-domain clone of the Korn shell called `pdksh' is widely
+ available: it has most of the `ksh88' features along with a few of
+ its own. It usually sets `KSH_VERSION', except if invoked as
+ `/bin/sh' on OpenBSD, and similarly to Bash you can require Posix
+ compatibility by running `set -o posix'. Unfortunately, with
+ `pdksh' 5.2.14 (the latest stable version as of January 2007)
+ Posix mode is buggy and causes `pdksh' to depart from Posix in at
+ least one respect, see *note Shell Substitutions::.
+
+Zsh
+ To detect whether you are running `zsh', test whether
+ `ZSH_VERSION' is set. By default `zsh' is _not_ compatible with
+ the Bourne shell: you must execute `emulate sh', and for `zsh'
+ versions before 3.1.6-dev-18 you must also set `NULLCMD' to `:'.
+ *Note Compatibility: (zsh)Compatibility, for details.
+
+ The default Mac OS X `sh' was originally Zsh; it was changed to
+ Bash in Mac OS X 10.2.
+
+
+File: autoconf.info, Node: Invoking the Shell, Next: Here-Documents, Prev: Shellology, Up: Portable Shell
+
+11.2 Invoking the Shell
+=======================
+
+The Korn shell (up to at least version M-12/28/93d) has a bug when
+invoked on a file whose name does not contain a slash. It first
+searches for the file's name in `PATH', and if found it executes that
+rather than the original file. For example, assuming there is a binary
+executable `/usr/bin/script' in your `PATH', the last command in the
+following example fails because the Korn shell finds `/usr/bin/script'
+and refuses to execute it as a shell script:
+
+ $ touch xxyzzyz script
+ $ ksh xxyzzyz
+ $ ksh ./script
+ $ ksh script
+ ksh: script: cannot execute
+
+ Bash 2.03 has a bug when invoked with the `-c' option: if the
+option-argument ends in backslash-newline, Bash incorrectly reports a
+syntax error. The problem does not occur if a character follows the
+backslash:
+
+ $ $ bash -c 'echo foo \
+ > '
+ bash: -c: line 2: syntax error: unexpected end of file
+ $ bash -c 'echo foo \
+ > '
+ foo
+
+*Note Backslash-Newline-Empty::, for how this can cause problems in
+makefiles.
+
+
+File: autoconf.info, Node: Here-Documents, Next: File Descriptors, Prev: Invoking the Shell, Up: Portable Shell
+
+11.3 Here-Documents
+===================
+
+Don't rely on `\' being preserved just because it has no special
+meaning together with the next symbol. In the native `sh' on OpenBSD
+2.7 `\"' expands to `"' in here-documents with unquoted delimiter. As
+a general rule, if `\\' expands to `\' use `\\' to get `\'.
+
+ With OpenBSD 2.7's `sh'
+
+ $ cat <<EOF
+ > \" \\
+ > EOF
+ " \
+
+and with Bash:
+
+ bash-2.04$ cat <<EOF
+ > \" \\
+ > EOF
+ \" \
+
+ Using command substitutions in a here-document that is fed to a shell
+function is not portable. For example, with Solaris 10 `/bin/sh':
+
+ $ kitty () { cat; }
+ $ kitty <<EOF
+ > `echo ok`
+ > EOF
+ /tmp/sh199886: cannot open
+ $ echo $?
+ 1
+
+ Some shells mishandle large here-documents: for example, Solaris 10
+`dtksh' and the UnixWare 7.1.1 Posix shell, which are derived from Korn
+shell version M-12/28/93d, mishandle braced variable expansion that
+crosses a 1024- or 4096-byte buffer boundary within a here-document.
+Only the part of the variable name after the boundary is used. For
+example, `${variable}' could be replaced by the expansion of `${ble}'.
+If the end of the variable name is aligned with the block boundary, the
+shell reports an error, as if you used `${}'. Instead of
+`${variable-default}', the shell may expand `${riable-default}', or
+even `${fault}'. This bug can often be worked around by omitting the
+braces: `$variable'. The bug was fixed in `ksh93g' (1998-04-30) but as
+of 2006 many operating systems were still shipping older versions with
+the bug.
+
+ Empty here-documents are not portable either; with the following
+code, `zsh' up to at least version 4.3.10 creates a file with a single
+newline, whereas other shells create an empty file:
+
+ cat >file <<EOF
+ EOF
+
+ Many shells (including the Bourne shell) implement here-documents
+inefficiently. In particular, some shells can be extremely inefficient
+when a single statement contains many here-documents. For instance if
+your `configure.ac' includes something like:
+
+ if <cross_compiling>; then
+ assume this and that
+ else
+ check this
+ check that
+ check something else
+ ...
+ on and on forever
+ ...
+ fi
+
+ A shell parses the whole `if'/`fi' construct, creating temporary
+files for each here-document in it. Some shells create links for such
+here-documents on every `fork', so that the clean-up code they had
+installed correctly removes them. It is creating the links that can
+take the shell forever.
+
+ Moving the tests out of the `if'/`fi', or creating multiple
+`if'/`fi' constructs, would improve the performance significantly.
+Anyway, this kind of construct is not exactly the typical use of
+Autoconf. In fact, it's even not recommended, because M4 macros can't
+look into shell conditionals, so we may fail to expand a macro when it
+was expanded before in a conditional path, and the condition turned out
+to be false at runtime, and we end up not executing the macro at all.
+
+ Be careful with the use of `<<-' to unindent here-documents. The
+behavior is only portable for stripping leading <TAB>s, and things can
+silently break if an overzealous editor converts to using leading
+spaces (not all shells are nice enough to warn about unterminated
+here-documents).
+
+ $ printf 'cat <<-x\n\t1\n\t 2\n\tx\n' | bash && echo done
+ 1
+ 2
+ done
+ $ printf 'cat <<-x\n 1\n 2\n x\n' | bash-3.2 && echo done
+ 1
+ 2
+ x
+ done
+
+
+File: autoconf.info, Node: File Descriptors, Next: Signal Handling, Prev: Here-Documents, Up: Portable Shell
+
+11.4 File Descriptors
+=====================
+
+Most shells, if not all (including Bash, Zsh, Ash), output traces on
+stderr, even for subshells. This might result in undesirable content
+if you meant to capture the standard-error output of the inner command:
+
+ $ ash -x -c '(eval "echo foo >&2") 2>stderr'
+ $ cat stderr
+ + eval echo foo >&2
+ + echo foo
+ foo
+ $ bash -x -c '(eval "echo foo >&2") 2>stderr'
+ $ cat stderr
+ + eval 'echo foo >&2'
+ ++ echo foo
+ foo
+ $ zsh -x -c '(eval "echo foo >&2") 2>stderr'
+ # Traces on startup files deleted here.
+ $ cat stderr
+ +zsh:1> eval echo foo >&2
+ +zsh:1> echo foo
+ foo
+
+One workaround is to grep out uninteresting lines, hoping not to remove
+good ones.
+
+ If you intend to redirect both standard error and standard output,
+redirect standard output first. This works better with HP-UX, since
+its shell mishandles tracing if standard error is redirected first:
+
+ $ sh -x -c ': 2>err >out'
+ + :
+ + 2> err $ cat err
+ 1> out
+
+ Don't try to redirect the standard error of a command substitution.
+It must be done _inside_ the command substitution. When running `: `cd
+/zorglub` 2>/dev/null' expect the error message to escape, while `: `cd
+/zorglub 2>/dev/null`' works properly.
+
+ On the other hand, some shells, such as Solaris or FreeBSD
+`/bin/sh', warn about missing programs before performing redirections.
+Therefore, to silently check whether a program exists, it is necessary
+to perform redirections on a subshell or brace group:
+ $ /bin/sh -c 'nosuch 2>/dev/null'
+ nosuch: not found
+ $ /bin/sh -c '(nosuch) 2>/dev/null'
+ $ /bin/sh -c '{ nosuch; } 2>/dev/null'
+ $ bash -c 'nosuch 2>/dev/null'
+
+ FreeBSD 6.2 sh may mix the trace output lines from the statements in
+a shell pipeline.
+
+ It is worth noting that Zsh (but not Ash nor Bash) makes it possible
+in assignments though: `foo=`cd /zorglub` 2>/dev/null'.
+
+ Some shells, like `ash', don't recognize bi-directional redirection
+(`<>'). And even on shells that recognize it, it is not portable to
+use on fifos: Posix does not require read-write support for named
+pipes, and Cygwin does not support it:
+
+ $ mkfifo fifo
+ $ exec 5<>fifo
+ $ echo hi >&5
+ bash: echo: write error: Communication error on send
+
+Furthermore, versions of `dash' before 0.5.6 mistakenly truncate
+regular files when using `<>':
+
+ $ echo a > file
+ $ bash -c ': 1<>file'; cat file
+ a
+ $ dash -c ': 1<>file'; cat file
+ $ rm a
+
+ When catering to old systems, don't redirect the same file descriptor
+several times, as you are doomed to failure under Ultrix.
+
+ ULTRIX V4.4 (Rev. 69) System #31: Thu Aug 10 19:42:23 GMT 1995
+ UWS V4.4 (Rev. 11)
+ $ eval 'echo matter >fullness' >void
+ illegal io
+ $ eval '(echo matter >fullness)' >void
+ illegal io
+ $ (eval '(echo matter >fullness)') >void
+ Ambiguous output redirect.
+
+In each case the expected result is of course `fullness' containing
+`matter' and `void' being empty. However, this bug is probably not of
+practical concern to modern platforms.
+
+ Solaris 10 `sh' will try to optimize away a `:' command (even if it
+is redirected) in a loop after the first iteration, or in a shell
+function after the first call:
+
+ $ for i in 1 2 3 ; do : >x$i; done
+ $ ls x*
+ x1
+ $ f () { : >$1; }; f y1; f y2; f y3;
+ $ ls y*
+ y1
+
+As a workaround, `echo' or `eval' can be used.
+
+ Don't rely on file descriptors 0, 1, and 2 remaining closed in a
+subsidiary program. If any of these descriptors is closed, the
+operating system may open an unspecified file for the descriptor in the
+new process image. Posix 2008 says this may be done only if the
+subsidiary program is set-user-ID or set-group-ID, but HP-UX 11.23 does
+it even for ordinary programs, and the next version of Posix will allow
+HP-UX behavior.
+
+ If you want a file descriptor above 2 to be inherited into a child
+process, then you must use redirections specific to that command or a
+containing subshell or command group, rather than relying on `exec' in
+the shell. In `ksh' as well as HP-UX `sh', file descriptors above 2
+which are opened using `exec N>file' are closed by a subsequent `exec'
+(such as that involved in the fork-and-exec which runs a program or
+script):
+
+ $ echo 'echo hello >&5' >k
+ $ /bin/sh -c 'exec 5>t; ksh ./k; exec 5>&-; cat t
+ hello
+ $ bash -c 'exec 5>t; ksh ./k; exec 5>&-; cat t
+ hello
+ $ ksh -c 'exec 5>t; ksh ./k; exec 5>&-; cat t
+ ./k[1]: 5: cannot open [Bad file number]
+ $ ksh -c '(ksh ./k) 5>t; cat t'
+ hello
+ $ ksh -c '{ ksh ./k; } 5>t; cat t'
+ hello
+ $ ksh -c '5>t ksh ./k; cat t
+ hello
+
+ Don't rely on duplicating a closed file descriptor to cause an
+error. With Solaris `/bin/sh', failed duplication is silently ignored,
+which can cause unintended leaks to the original file descriptor. In
+this example, observe the leak to standard output:
+
+ $ bash -c 'echo hi >&3' 3>&-; echo $?
+ bash: 3: Bad file descriptor
+ 1
+ $ /bin/sh -c 'echo hi >&3' 3>&-; echo $?
+ hi
+ 0
+
+ Fortunately, an attempt to close an already closed file descriptor
+will portably succeed. Likewise, it is safe to use either style of
+`N<&-' or `N>&-' for closing a file descriptor, even if it doesn't
+match the read/write mode that the file descriptor was opened with.
+
+ DOS variants cannot rename or remove open files, such as in `mv foo
+bar >foo' or `rm foo >foo', even though this is perfectly portable
+among Posix hosts.
+
+ A few ancient systems reserved some file descriptors. By convention,
+file descriptor 3 was opened to `/dev/tty' when you logged into Eighth
+Edition (1985) through Tenth Edition Unix (1989). File descriptor 4
+had a special use on the Stardent/Kubota Titan (circa 1990), though we
+don't now remember what it was. Both these systems are obsolete, so
+it's now safe to treat file descriptors 3 and 4 like any other file
+descriptors.
+
+ On the other hand, you can't portably use multi-digit file
+descriptors. Solaris `ksh' doesn't understand any file descriptor
+larger than `9':
+
+ $ bash -c 'exec 10>&-'; echo $?
+ 0
+ $ ksh -c 'exec 9>&-'; echo $?
+ 0
+ $ ksh -c 'exec 10>&-'; echo $?
+ ksh[1]: exec: 10: not found
+ 127
+
+
+File: autoconf.info, Node: Signal Handling, Next: File System Conventions, Prev: File Descriptors, Up: Portable Shell
+
+11.5 Signal Handling
+====================
+
+Portable handling of signals within the shell is another major source of
+headaches. This is worsened by the fact that various different,
+mutually incompatible approaches are possible in this area, each with
+its distinctive merits and demerits. A detailed description of these
+possible approaches, as well as of their pros and cons, can be found in
+this article (http://www.cons.org/cracauer/sigint.html).
+
+ Solaris 10 `/bin/sh' automatically traps most signals by default;
+the shell still exits with error upon termination by one of those
+signals, but in such a case the exit status might be somewhat
+unexpected (even if allowed by POSIX, strictly speaking):
+
+ $ bash -c 'kill -1 $$'; echo $? # Will exit 128 + (signal number).
+ Hangup
+ 129
+ $ /bin/ksh -c 'kill -15 $$'; echo $? # Likewise.
+ Terminated
+ 143
+ $ for sig in 1 2 3 15; do
+ > echo $sig:
+ > /bin/sh -c "kill -$s \$\$"; echo $?
+ > done
+ signal 1:
+ Hangup
+ 129
+ signal 2:
+ 208
+ signal 3:
+ 208
+ signal 15:
+ 208
+
+ This gets even worse if one is using the POSIX `wait' interface to
+get details about the shell process terminations: it will result in the
+shell having exited normally, rather than by receiving a signal.
+
+ $ cat > foo.c <<'END'
+ #include <stdio.h> /* for printf */
+ #include <stdlib.h> /* for system */
+ #include <sys/wait.h> /* for WIF* macros */
+ int main(void)
+ {
+ int status = system ("kill -15 $$");
+ printf ("Terminated by signal: %s\n",
+ WIFSIGNALED (status) ? "yes" : "no");
+ printf ("Exited normally: %s\n",
+ WIFEXITED (status) ? "yes" : "no");
+ return 0;
+ }
+ END
+ $ cc -o foo foo.c
+ $ ./a.out # On GNU/Linux
+ Terminated by signal: no
+ Exited normally: yes
+ $ ./a.out # On Solaris 10
+ Terminated by signal: yes
+ Exited normally: no
+
+ Various shells seem to handle `SIGQUIT' specially: they ignore it
+even if it is not blocked, and even if the shell is not running
+interactively (in fact, even if the shell has no attached tty); among
+these shells are at least Bash (from version 2 onwards), Zsh 4.3.12,
+Solaris 10 `/bin/ksh' and `/usr/xpg4/bin/sh', and AT&T `ksh93' (2011).
+Still, `SIGQUIT' seems to be trappable quite portably within all these
+shells. OTOH, some other shells doesn't special-case the handling of
+`SIGQUIT'; among these shells are at least `pdksh' 5.2.14, Solaris 10
+and NetBSD 5.1 `/bin/sh', and the Almquist Shell 0.5.5.1.
+
+ Some shells (especially Korn shells and derivatives) might try to
+propagate to themselves a signal that has killed a child process; this
+is not a bug, but a conscious design choice (although its overall value
+might be debatable). The exact details of how this is attained vary
+from shell to shell. For example, upon running `perl -e 'kill 2, $$'',
+after the perl process has been interrupted AT&T `ksh93' (2011) will
+proceed to send itself a `SIGINT', while Solaris 10 `/bin/ksh' and
+`/usr/xpg4/bin/sh' will proceed to exit with status 130 (i.e., 128 +
+2). In any case, if there is an active trap associated with `SIGINT',
+those shells will correctly execute it.
+
+ Some Korn shells, when a child process die due receiving a signal
+with signal number N, can leave in `$?' an exit status of 256+N instead
+of the more common 128+N. Observe the difference between AT&T `ksh93'
+(2011) and `bash' 4.1.5 on Debian:
+
+ $ /bin/ksh -c 'sh -c "kill -1 \$\$"; echo $?'
+ /bin/ksh: line 1: 7837: Hangup
+ 257
+ $ /bin/bash -c 'sh -c "kill -1 \$\$"; echo $?'
+ /bin/bash: line 1: 7861 Hangup (sh -c "kill -1 \$\$")
+ 129
+
+This `ksh' behavior is allowed by POSIX, if implemented with due care;
+see this Austin Group discussion
+(http://www.austingroupbugs.net/view.php?id=51) for more background.
+However, if it is not implemented with proper care, such a behavior
+might cause problems in some corner cases. To see why, assume we have
+a "wrapper" script like this:
+
+ #!/bin/sh
+ # Ignore some signals in the shell only, not in its child processes.
+ trap : 1 2 13 15
+ wrapped_command "$@"
+ ret=$?
+ other_command
+ exit $ret
+
+If `wrapped_command' is interrupted by a `SIGHUP' (which has signal
+number 1), `ret' will be set to 257. Unless the `exit' shell builtin
+is smart enough to understand that such a value can only have
+originated from a signal, and adjust the final wait status of the shell
+appropriately, the value 257 will just get truncated to 1 by the
+closing `exit' call, so that a caller of the script will have no way to
+determine that termination by a signal was involved. Observe the
+different behavior of AT&T `ksh93' (2011) and `bash' 4.1.5 on Debian:
+
+ $ cat foo.sh
+ #!/bin/sh
+ sh -c 'kill -1 $$'
+ ret=$?
+ echo $ret
+ exit $ret
+ $ /bin/ksh foo.sh; echo $?
+ foo.sh: line 2: 12479: Hangup
+ 257
+ 1
+ $ /bin/bash foo.sh; echo $?
+ foo.sh: line 2: 12487 Hangup (sh -c 'kill -1 $$')
+ 129
+ 129
+
+
+File: autoconf.info, Node: File System Conventions, Next: Shell Pattern Matching, Prev: Signal Handling, Up: Portable Shell
+
+11.6 File System Conventions
+============================
+
+Autoconf uses shell-script processing extensively, so the file names
+that it processes should not contain characters that are special to the
+shell. Special characters include space, tab, newline, NUL, and the
+following:
+
+ " # $ & ' ( ) * ; < = > ? [ \ ` |
+
+ Also, file names should not begin with `~' or `-', and should
+contain neither `-' immediately after `/' nor `~' immediately after
+`:'. On Posix-like platforms, directory names should not contain `:',
+as this runs afoul of `:' used as the path separator.
+
+ These restrictions apply not only to the files that you distribute,
+but also to the absolute file names of your source, build, and
+destination directories.
+
+ On some Posix-like platforms, `!' and `^' are special too, so they
+should be avoided.
+
+ Posix lets implementations treat leading `//' specially, but
+requires leading `///' and beyond to be equivalent to `/'. Most Unix
+variants treat `//' like `/'. However, some treat `//' as a
+"super-root" that can provide access to files that are not otherwise
+reachable from `/'. The super-root tradition began with Apollo
+Domain/OS, which died out long ago, but unfortunately Cygwin has
+revived it.
+
+ While `autoconf' and friends are usually run on some Posix variety,
+they can be used on other systems, most notably DOS variants. This
+impacts several assumptions regarding file names.
+
+For example, the following code:
+
+ case $foo_dir in
+ /*) # Absolute
+ ;;
+ *)
+ foo_dir=$dots$foo_dir ;;
+ esac
+
+fails to properly detect absolute file names on those systems, because
+they can use a drivespec, and usually use a backslash as directory
+separator. If you want to be portable to DOS variants (at the price of
+rejecting valid but oddball Posix file names like `a:\b'), you can
+check for absolute file names like this:
+
+ case $foo_dir in
+ [\\/]* | ?:[\\/]* ) # Absolute
+ ;;
+ *)
+ foo_dir=$dots$foo_dir ;;
+ esac
+
+Make sure you quote the brackets if appropriate and keep the backslash
+as first character (*note Limitations of Shell Builtins: case.).
+
+ Also, because the colon is used as part of a drivespec, these
+systems don't use it as path separator. When creating or accessing
+paths, you can use the `PATH_SEPARATOR' output variable instead.
+`configure' sets this to the appropriate value for the build system
+(`:' or `;') when it starts up.
+
+ File names need extra care as well. While DOS variants that are
+Posixy enough to run `autoconf' (such as DJGPP) are usually able to
+handle long file names properly, there are still limitations that can
+seriously break packages. Several of these issues can be easily
+detected by the doschk
+(ftp://ftp.gnu.org/gnu/non-gnu/doschk/doschk-1.1.tar.gz) package.
+
+ A short overview follows; problems are marked with SFN/LFN to
+indicate where they apply: SFN means the issues are only relevant to
+plain DOS, not to DOS under Microsoft Windows variants, while LFN
+identifies problems that exist even under Microsoft Windows variants.
+
+No multiple dots (SFN)
+ DOS cannot handle multiple dots in file names. This is an
+ especially important thing to remember when building a portable
+ configure script, as `autoconf' uses a .in suffix for template
+ files.
+
+ This is perfectly OK on Posix variants:
+
+ AC_CONFIG_HEADERS([config.h])
+ AC_CONFIG_FILES([source.c foo.bar])
+ AC_OUTPUT
+
+ but it causes problems on DOS, as it requires `config.h.in',
+ `source.c.in' and `foo.bar.in'. To make your package more portable
+ to DOS-based environments, you should use this instead:
+
+ AC_CONFIG_HEADERS([config.h:config.hin])
+ AC_CONFIG_FILES([source.c:source.cin foo.bar:foobar.in])
+ AC_OUTPUT
+
+No leading dot (SFN)
+ DOS cannot handle file names that start with a dot. This is
+ usually not important for `autoconf'.
+
+Case insensitivity (LFN)
+ DOS is case insensitive, so you cannot, for example, have both a
+ file called `INSTALL' and a directory called `install'. This also
+ affects `make'; if there's a file called `INSTALL' in the
+ directory, `make install' does nothing (unless the `install'
+ target is marked as PHONY).
+
+The 8+3 limit (SFN)
+ Because the DOS file system only stores the first 8 characters of
+ the file name and the first 3 of the extension, those must be
+ unique. That means that `foobar-part1.c', `foobar-part2.c' and
+ `foobar-prettybird.c' all resolve to the same file name
+ (`FOOBAR-P.C'). The same goes for `foo.bar' and `foo.bartender'.
+
+ The 8+3 limit is not usually a problem under Microsoft Windows, as
+ it uses numeric tails in the short version of file names to make
+ them unique. However, a registry setting can turn this behavior
+ off. While this makes it possible to share file trees containing
+ long file names between SFN and LFN environments, it also means
+ the above problem applies there as well.
+
+Invalid characters (LFN)
+ Some characters are invalid in DOS file names, and should therefore
+ be avoided. In a LFN environment, these are `/', `\', `?', `*',
+ `:', `<', `>', `|' and `"'. In a SFN environment, other
+ characters are also invalid. These include `+', `,', `[' and `]'.
+
+Invalid names (LFN)
+ Some DOS file names are reserved, and cause problems if you try to
+ use files with those names. These names include `CON', `AUX',
+ `COM1', `COM2', `COM3', `COM4', `LPT1', `LPT2', `LPT3', `NUL', and
+ `PRN'. File names are case insensitive, so even names like
+ `aux/config.guess' are disallowed.
+
+
+
+File: autoconf.info, Node: Shell Pattern Matching, Next: Shell Substitutions, Prev: File System Conventions, Up: Portable Shell
+
+11.7 Shell Pattern Matching
+===========================
+
+Nowadays portable patterns can use negated character classes like
+`[!-aeiou]'. The older syntax `[^-aeiou]' is supported by some shells
+but not others; hence portable scripts should never use `^' as the
+first character of a bracket pattern.
+
+ Outside the C locale, patterns like `[a-z]' are problematic since
+they may match characters that are not lower-case letters.
+
+
+File: autoconf.info, Node: Shell Substitutions, Next: Assignments, Prev: Shell Pattern Matching, Up: Portable Shell
+
+11.8 Shell Substitutions
+========================
+
+Contrary to a persistent urban legend, the Bourne shell does not
+systematically split variables and back-quoted expressions, in
+particular on the right-hand side of assignments and in the argument of
+`case'. For instance, the following code:
+
+ case "$given_srcdir" in
+ .) top_srcdir="`echo "$dots" | sed 's|/$||'`" ;;
+ *) top_srcdir="$dots$given_srcdir" ;;
+ esac
+
+is more readable when written as:
+
+ case $given_srcdir in
+ .) top_srcdir=`echo "$dots" | sed 's|/$||'` ;;
+ *) top_srcdir=$dots$given_srcdir ;;
+ esac
+
+and in fact it is even _more_ portable: in the first case of the first
+attempt, the computation of `top_srcdir' is not portable, since not all
+shells properly understand `"`..."..."...`"', for example Solaris 10
+ksh:
+
+ $ foo="`echo " bar" | sed 's, ,,'`"
+ ksh: : cannot execute
+ ksh: bar | sed 's, ,,': cannot execute
+
+Posix does not specify behavior for this sequence. On the other hand,
+behavior for `"`...\"...\"...`"' is specified by Posix, but in
+practice, not all shells understand it the same way: pdksh 5.2.14
+prints spurious quotes when in Posix mode:
+
+ $ echo "`echo \"hello\"`"
+ hello
+ $ set -o posix
+ $ echo "`echo \"hello\"`"
+ "hello"
+
+There is just no portable way to use double-quoted strings inside
+double-quoted back-quoted expressions (pfew!).
+
+ Bash 4.1 has a bug where quoted empty strings adjacent to unquoted
+parameter expansions are elided during word splitting. Meanwhile, zsh
+does not perform word splitting except when in Bourne compatibility
+mode. In the example below, the correct behavior is to have five
+arguments to the function, and exactly two spaces on either side of the
+middle `-', since word splitting collapses multiple spaces in `$f' but
+leaves empty arguments intact.
+
+ $ bash -c 'n() { echo "$#$@"; }; f=" - "; n - ""$f"" -'
+ 3- - -
+ $ ksh -c 'n() { echo "$#$@"; }; f=" - "; n - ""$f"" -'
+ 5- - -
+ $ zsh -c 'n() { echo "$#$@"; }; f=" - "; n - ""$f"" -'
+ 3- - -
+ $ zsh -c 'emulate sh;
+ > n() { echo "$#$@"; }; f=" - "; n - ""$f"" -'
+ 5- - -
+
+You can work around this by doing manual word splitting, such as using
+`"$str" $list' rather than `"$str"$list'.
+
+ There are also portability pitfalls with particular expansions:
+
+`$@'
+ One of the most famous shell-portability issues is related to
+ `"$@"'. When there are no positional arguments, Posix says that
+ `"$@"' is supposed to be equivalent to nothing, but the original
+ Unix version 7 Bourne shell treated it as equivalent to `""'
+ instead, and this behavior survives in later implementations like
+ Digital Unix 5.0.
+
+ The traditional way to work around this portability problem is to
+ use `${1+"$@"}'. Unfortunately this method does not work with Zsh
+ (3.x and 4.x), which is used on Mac OS X. When emulating the
+ Bourne shell, Zsh performs word splitting on `${1+"$@"}':
+
+ zsh $ emulate sh
+ zsh $ for i in "$@"; do echo $i; done
+ Hello World
+ !
+ zsh $ for i in ${1+"$@"}; do echo $i; done
+ Hello
+ World
+ !
+
+ Zsh handles plain `"$@"' properly, but we can't use plain `"$@"'
+ because of the portability problems mentioned above. One
+ workaround relies on Zsh's "global aliases" to convert `${1+"$@"}'
+ into `"$@"' by itself:
+
+ test "${ZSH_VERSION+set}" = set && alias -g '${1+"$@"}'='"$@"'
+
+ Zsh only recognizes this alias when a shell word matches it
+ exactly; `"foo"${1+"$@"}' remains subject to word splitting.
+ Since this case always yields at least one shell word, use plain
+ `"$@"'.
+
+ A more conservative workaround is to avoid `"$@"' if it is
+ possible that there may be no positional arguments. For example,
+ instead of:
+
+ cat conftest.c "$@"
+
+ you can use this instead:
+
+ case $# in
+ 0) cat conftest.c;;
+ *) cat conftest.c "$@";;
+ esac
+
+ Autoconf macros often use the `set' command to update `$@', so if
+ you are writing shell code intended for `configure' you should not
+ assume that the value of `$@' persists for any length of time.
+
+`${10}'
+ The 10th, 11th, ... positional parameters can be accessed only
+ after a `shift'. The 7th Edition shell reported an error if given
+ `${10}', and Solaris 10 `/bin/sh' still acts that way:
+
+ $ set 1 2 3 4 5 6 7 8 9 10
+ $ echo ${10}
+ bad substitution
+
+ Conversely, not all shells obey the Posix rule that when braces are
+ omitted, multiple digits beyond a `$' imply the single-digit
+ positional parameter expansion concatenated with the remaining
+ literal digits. To work around the issue, you must use braces.
+
+ $ bash -c 'set a b c d e f g h i j; echo $10 ${1}0'
+ a0 a0
+ $ dash -c 'set a b c d e f g h i j; echo $10 ${1}0'
+ j a0
+
+`${VAR:-VALUE}'
+ Old BSD shells, including the Ultrix `sh', don't accept the colon
+ for any shell substitution, and complain and die. Similarly for
+ ${VAR:=VALUE}, ${VAR:?VALUE}, etc. However, all shells that
+ support functions allow the use of colon in shell substitution,
+ and since m4sh requires functions, you can portably use null
+ variable substitution patterns in configure scripts.
+
+`${VAR+VALUE}'
+ When using `${VAR-VALUE}' or `${VAR-VALUE}' for providing
+ alternate substitutions, VALUE must either be a single shell word,
+ quoted, or in the context of an unquoted here-document. Solaris
+ `/bin/sh' complains otherwise.
+
+ $ /bin/sh -c 'echo ${a-b c}'
+ /bin/sh: bad substitution
+ $ /bin/sh -c 'echo ${a-'\''b c'\''}'
+ b c
+ $ /bin/sh -c 'echo "${a-b c}"'
+ b c
+ $ /bin/sh -c 'cat <<EOF
+ ${a-b c}
+ EOF
+ b c
+
+ According to Posix, if an expansion occurs inside double quotes,
+ then the use of unquoted double quotes within VALUE is
+ unspecified, and any single quotes become literal characters; in
+ that case, escaping must be done with backslash. Likewise, the
+ use of unquoted here-documents is a case where double quotes have
+ unspecified results:
+
+ $ /bin/sh -c 'echo "${a-"b c"}"'
+ /bin/sh: bad substitution
+ $ ksh -c 'echo "${a-"b c"}"'
+ b c
+ $ bash -c 'echo "${a-"b c"}"'
+ b c
+ $ /bin/sh -c 'a=; echo ${a+'\''b c'\''}'
+ b c
+ $ /bin/sh -c 'a=; echo "${a+'\''b c'\''}"'
+ 'b c'
+ $ /bin/sh -c 'a=; echo "${a+\"b c\"}"'
+ "b c"
+ $ /bin/sh -c 'a=; echo "${a+b c}"'
+ b c
+ $ /bin/sh -c 'cat <<EOF
+ ${a-"b c"}
+ EOF'
+ "b c"
+ $ /bin/sh -c 'cat <<EOF
+ ${a-'b c'}
+ EOF'
+ 'b c'
+ $ bash -c 'cat <<EOF
+ ${a-"b c"}
+ EOF'
+ b c
+ $ bash -c 'cat <<EOF
+ ${a-'b c'}
+ EOF'
+ 'b c'
+
+ Perhaps the easiest way to work around quoting issues in a manner
+ portable to all shells is to place the results in a temporary
+ variable, then use `$t' as the VALUE, rather than trying to inline
+ the expression needing quoting.
+
+ $ /bin/sh -c 't="b c\"'\''}\\"; echo "${a-$t}"'
+ b c"'}\
+ $ ksh -c 't="b c\"'\''}\\"; echo "${a-$t}"'
+ b c"'}\
+ $ bash -c 't="b c\"'\''}\\"; echo "${a-$t}"'
+ b c"'}\
+
+`${VAR=VALUE}'
+ When using `${VAR=VALUE}' to assign a default value to VAR,
+ remember that even though the assignment to VAR does not undergo
+ file name expansion, the result of the variable expansion does
+ unless the expansion occurred within double quotes. In particular,
+ when using `:' followed by unquoted variable expansion for the
+ side effect of setting a default value, if the final value of
+ `$var' contains any globbing characters (either from VALUE or from
+ prior contents), the shell has to spend time performing file name
+ expansion and field splitting even though those results will not be
+ used. Therefore, it is a good idea to consider double quotes when
+ performing default initialization; while remembering how this
+ impacts any quoting characters appearing in VALUE.
+
+ $ time bash -c ': "${a=/usr/bin/*}"; echo "$a"'
+ /usr/bin/*
+
+ real 0m0.005s
+ user 0m0.002s
+ sys 0m0.003s
+ $ time bash -c ': ${a=/usr/bin/*}; echo "$a"'
+ /usr/bin/*
+
+ real 0m0.039s
+ user 0m0.026s
+ sys 0m0.009s
+ $ time bash -c 'a=/usr/bin/*; : ${a=noglob}; echo "$a"'
+ /usr/bin/*
+
+ real 0m0.031s
+ user 0m0.020s
+ sys 0m0.010s
+
+ $ time bash -c 'a=/usr/bin/*; : "${a=noglob}"; echo "$a"'
+ /usr/bin/*
+
+ real 0m0.006s
+ user 0m0.002s
+ sys 0m0.003s
+
+ As with `+' and `-', you must use quotes when using `=' if the
+ VALUE contains more than one shell word; either single quotes for
+ just the VALUE, or double quotes around the entire expansion:
+
+ $ : ${var1='Some words'}
+ $ : "${var2=like this}"
+ $ echo $var1 $var2
+ Some words like this
+
+ otherwise some shells, such as Solaris `/bin/sh' or on Digital
+ Unix V 5.0, die because of a "bad substitution". Meanwhile, Posix
+ requires that with `=', quote removal happens prior to the
+ assignment, and the expansion be the final contents of VAR without
+ quoting (and thus subject to field splitting), in contrast to the
+ behavior with `-' passing the quoting through to the final
+ expansion. However, `bash' 4.1 does not obey this rule.
+
+ $ ksh -c 'echo ${var-a\ \ b}'
+ a b
+ $ ksh -c 'echo ${var=a\ \ b}'
+ a b
+ $ bash -c 'echo ${var=a\ \ b}'
+ a b
+
+ Finally, Posix states that when mixing `${a=b}' with regular
+ commands, it is unspecified whether the assignments affect the
+ parent shell environment. It is best to perform assignments
+ independently from commands, to avoid the problems demonstrated in
+ this example:
+
+ $ bash -c 'x= y=${x:=b} sh -c "echo +\$x+\$y+";echo -$x-'
+ +b+b+
+ -b-
+ $ /bin/sh -c 'x= y=${x:=b} sh -c "echo +\$x+\$y+";echo -$x-'
+ ++b+
+ --
+ $ ksh -c 'x= y=${x:=b} sh -c "echo +\$x+\$y+";echo -$x-'
+ +b+b+
+ --
+
+`${VAR=VALUE}'
+ Solaris `/bin/sh' has a frightening bug in its handling of literal
+ assignments. Imagine you need set a variable to a string
+ containing `}'. This `}' character confuses Solaris `/bin/sh'
+ when the affected variable was already set. This bug can be
+ exercised by running:
+
+ $ unset foo
+ $ foo=${foo='}'}
+ $ echo $foo
+ }
+ $ foo=${foo='}' # no error; this hints to what the bug is
+ $ echo $foo
+ }
+ $ foo=${foo='}'}
+ $ echo $foo
+ }}
+ ^ ugh!
+
+ It seems that `}' is interpreted as matching `${', even though it
+ is enclosed in single quotes. The problem doesn't happen using
+ double quotes, or when using a temporary variable holding the
+ problematic string.
+
+`${VAR=EXPANDED-VALUE}'
+ On Ultrix, running
+
+ default="yu,yaa"
+ : ${var="$default"}
+
+ sets VAR to `M-yM-uM-,M-yM-aM-a', i.e., the 8th bit of each char
+ is set. You don't observe the phenomenon using a simple `echo
+ $var' since apparently the shell resets the 8th bit when it
+ expands $var. Here are two means to make this shell confess its
+ sins:
+
+ $ cat -v <<EOF
+ $var
+ EOF
+
+ and
+
+ $ set | grep '^var=' | cat -v
+
+ One classic incarnation of this bug is:
+
+ default="a b c"
+ : ${list="$default"}
+ for c in $list; do
+ echo $c
+ done
+
+ You'll get `a b c' on a single line. Why? Because there are no
+ spaces in `$list': there are `M- ', i.e., spaces with the 8th bit
+ set, hence no IFS splitting is performed!!!
+
+ One piece of good news is that Ultrix works fine with `:
+ ${list=$default}'; i.e., if you _don't_ quote. The bad news is
+ then that QNX 4.25 then sets LIST to the _last_ item of DEFAULT!
+
+ The portable way out consists in using a double assignment, to
+ switch the 8th bit twice on Ultrix:
+
+ list=${list="$default"}
+
+ ...but beware of the `}' bug from Solaris (see above). For safety,
+ use:
+
+ test "${var+set}" = set || var={VALUE}
+
+`${#VAR}'
+`${VAR%WORD}'
+`${VAR%%WORD}'
+`${VAR#WORD}'
+`${VAR##WORD}'
+ Posix requires support for these usages, but they do not work with
+ many traditional shells, e.g., Solaris 10 `/bin/sh'.
+
+ Also, `pdksh' 5.2.14 mishandles some WORD forms. For example if
+ `$1' is `a/b' and `$2' is `a', then `${1#$2}' should yield `/b',
+ but with `pdksh' it yields the empty string.
+
+``COMMANDS`'
+ Posix requires shells to trim all trailing newlines from command
+ output before substituting it, so assignments like `dir=`echo
+ "$file" | tr a A`' do not work as expected if `$file' ends in a
+ newline.
+
+ While in general it makes no sense, do not substitute a single
+ builtin with side effects, because Ash 0.2, trying to optimize,
+ does not fork a subshell to perform the command.
+
+ For instance, if you wanted to check that `cd' is silent, do not
+ use `test -z "`cd /`"' because the following can happen:
+
+ $ pwd
+ /tmp
+ $ test -z "`cd /`" && pwd
+ /
+
+ The result of `foo=`exit 1`' is left as an exercise to the reader.
+
+ The MSYS shell leaves a stray byte in the expansion of a
+ double-quoted command substitution of a native program, if the end
+ of the substitution is not aligned with the end of the double
+ quote. This may be worked around by inserting another pair of
+ quotes:
+
+ $ echo "`printf 'foo\r\n'` bar" > broken
+ $ echo "`printf 'foo\r\n'`"" bar" | cmp - broken
+ - broken differ: char 4, line 1
+
+ Upon interrupt or SIGTERM, some shells may abort a command
+ substitution, replace it with a null string, and wrongly evaluate
+ the enclosing command before entering the trap or ending the
+ script. This can lead to spurious errors:
+
+ $ sh -c 'if test `sleep 5; echo hi` = hi; then echo yes; fi'
+ $ ^C
+ sh: test: hi: unexpected operator/operand
+
+ You can avoid this by assigning the command substitution to a
+ temporary variable:
+
+ $ sh -c 'res=`sleep 5; echo hi`
+ if test "x$res" = xhi; then echo yes; fi'
+ $ ^C
+
+`$(COMMANDS)'
+ This construct is meant to replace ``COMMANDS`', and it has most
+ of the problems listed under ``COMMANDS`'.
+
+ This construct can be nested while this is impossible to do
+ portably with back quotes. Unfortunately it is not yet
+ universally supported. Most notably, even recent releases of
+ Solaris don't support it:
+
+ $ showrev -c /bin/sh | grep version
+ Command version: SunOS 5.10 Generic 121005-03 Oct 2006
+ $ echo $(echo blah)
+ syntax error: `(' unexpected
+
+ nor does IRIX 6.5's Bourne shell:
+ $ uname -a
+ IRIX firebird-image 6.5 07151432 IP22
+ $ echo $(echo blah)
+ $(echo blah)
+
+ If you do use `$(COMMANDS)', make sure that the commands do not
+ start with a parenthesis, as that would cause confusion with a
+ different notation `$((EXPRESSION))' that in modern shells is an
+ arithmetic expression not a command. To avoid the confusion,
+ insert a space between the two opening parentheses.
+
+ Avoid COMMANDS that contain unbalanced parentheses in
+ here-documents, comments, or case statement patterns, as many
+ shells mishandle them. For example, Bash 3.1, `ksh88', `pdksh'
+ 5.2.14, and Zsh 4.2.6 all mishandle the following valid command:
+
+ echo $(case x in x) echo hello;; esac)
+
+`$((EXPRESSION))'
+ Arithmetic expansion is not portable as some shells (most notably
+ Solaris 10 `/bin/sh') don't support it.
+
+ Among shells that do support `$(( ))', not all of them obey the
+ Posix rule that octal and hexadecimal constants must be recognized:
+
+ $ bash -c 'echo $(( 010 + 0x10 ))'
+ 24
+ $ zsh -c 'echo $(( 010 + 0x10 ))'
+ 26
+ $ zsh -c 'emulate sh; echo $(( 010 + 0x10 ))'
+ 24
+ $ pdksh -c 'echo $(( 010 + 0x10 ))'
+ pdksh: 010 + 0x10 : bad number `0x10'
+ $ pdksh -c 'echo $(( 010 ))'
+ 10
+
+ When it is available, using arithmetic expansion provides a
+ noticeable speedup in script execution; but testing for support
+ requires `eval' to avoid syntax errors. The following construct
+ is used by `AS_VAR_ARITH' to provide arithmetic computation when
+ all arguments are provided in decimal and without a leading zero,
+ and all operators are properly quoted and appear as distinct
+ arguments:
+
+ if ( eval 'test $(( 1 + 1 )) = 2' ) 2>/dev/null; then
+ eval 'func_arith ()
+ {
+ func_arith_result=$(( $* ))
+ }'
+ else
+ func_arith ()
+ {
+ func_arith_result=`expr "$@"`
+ }
+ fi
+ func_arith 1 + 1
+ foo=$func_arith_result
+
+`^'
+ Always quote `^', otherwise traditional shells such as `/bin/sh'
+ on Solaris 10 treat this like `|'.
+
+
+
+File: autoconf.info, Node: Assignments, Next: Parentheses, Prev: Shell Substitutions, Up: Portable Shell
+
+11.9 Assignments
+================
+
+When setting several variables in a row, be aware that the order of the
+evaluation is undefined. For instance `foo=1 foo=2; echo $foo' gives
+`1' with Solaris `/bin/sh', but `2' with Bash. You must use `;' to
+enforce the order: `foo=1; foo=2; echo $foo'.
+
+ Don't rely on the following to find `subdir/program':
+
+ PATH=subdir$PATH_SEPARATOR$PATH program
+
+as this does not work with Zsh 3.0.6. Use something like this instead:
+
+ (PATH=subdir$PATH_SEPARATOR$PATH; export PATH; exec program)
+
+ Don't rely on the exit status of an assignment: Ash 0.2 does not
+change the status and propagates that of the last statement:
+
+ $ false || foo=bar; echo $?
+ 1
+ $ false || foo=`:`; echo $?
+ 0
+
+and to make things even worse, QNX 4.25 just sets the exit status to 0
+in any case:
+
+ $ foo=`exit 1`; echo $?
+ 0
+
+ To assign default values, follow this algorithm:
+
+ 1. If the default value is a literal and does not contain any closing
+ brace, use:
+
+ : "${var='my literal'}"
+
+ 2. If the default value contains no closing brace, has to be
+ expanded, and the variable being initialized is not intended to be
+ IFS-split (i.e., it's not a list), then use:
+
+ : ${var="$default"}
+
+ 3. If the default value contains no closing brace, has to be
+ expanded, and the variable being initialized is intended to be
+ IFS-split (i.e., it's a list), then use:
+
+ var=${var="$default"}
+
+ 4. If the default value contains a closing brace, then use:
+
+ test "${var+set}" = set || var="has a '}'"
+
+ In most cases `var=${var="$default"}' is fine, but in case of doubt,
+just use the last form. *Note Shell Substitutions::, items
+`${VAR:-VALUE}' and `${VAR=VALUE}' for the rationale.
+
+
+File: autoconf.info, Node: Parentheses, Next: Slashes, Prev: Assignments, Up: Portable Shell
+
+11.10 Parentheses in Shell Scripts
+==================================
+
+Beware of two opening parentheses in a row, as many shell
+implementations treat them specially, and Posix says that a portable
+script cannot use `((' outside the `$((' form used for shell
+arithmetic. In traditional shells, `((cat))' behaves like `(cat)'; but
+many shells, including Bash and the Korn shell, treat `((cat))' as an
+arithmetic expression equivalent to `let "cat"', and may or may not
+report an error when they detect that `cat' is not a number. As another
+example, `pdksh' 5.2.14 does not treat the following code as a
+traditional shell would:
+
+ if ((true) || false); then
+ echo ok
+ fi
+
+To work around this problem, insert a space between the two opening
+parentheses. There is a similar problem and workaround with `$(('; see
+*note Shell Substitutions::.
+
+
+File: autoconf.info, Node: Slashes, Next: Special Shell Variables, Prev: Parentheses, Up: Portable Shell
+
+11.11 Slashes in Shell Scripts
+==============================
+
+Unpatched Tru64 5.1 `sh' omits the last slash of command-line arguments
+that contain two trailing slashes:
+
+ $ echo / // /// //// .// //.
+ / / // /// ./ //.
+ $ x=//
+ $ eval "echo \$x"
+ /
+ $ set -x
+ $ echo abc | tr -t ab //
+ + echo abc
+ + tr -t ab /
+ /bc
+
+ Unpatched Tru64 4.0 `sh' adds a slash after `"$var"' if the variable
+is empty and the second double-quote is followed by a word that begins
+and ends with slash:
+
+ $ sh -xc 'p=; echo "$p"/ouch/'
+ p=
+ + echo //ouch/
+ //ouch/
+
+ However, our understanding is that patches are available, so perhaps
+it's not worth worrying about working around these horrendous bugs.
+
+
+File: autoconf.info, Node: Special Shell Variables, Next: Shell Functions, Prev: Slashes, Up: Portable Shell
+
+11.12 Special Shell Variables
+=============================
+
+Some shell variables should not be used, since they can have a deep
+influence on the behavior of the shell. In order to recover a sane
+behavior from the shell, some variables should be unset; M4sh takes
+care of this and provides fallback values, whenever needed, to cater
+for a very old `/bin/sh' that does not support `unset'. (*note
+Portable Shell Programming: Portable Shell.).
+
+ As a general rule, shell variable names containing a lower-case
+letter are safe; you can define and use these variables without
+worrying about their effect on the underlying system, and without
+worrying about whether the shell changes them unexpectedly. (The
+exception is the shell variable `status', as described below.)
+
+ Here is a list of names that are known to cause trouble. This list
+is not exhaustive, but you should be safe if you avoid the name
+`status' and names containing only upper-case letters and underscores.
+
+`?'
+ Not all shells correctly reset `$?' after conditionals (*note
+ Limitations of Shell Builtins: if.). Not all shells manage `$?'
+ correctly in shell functions (*note Shell Functions::) or in traps
+ (*note Limitations of Shell Builtins: trap.). Not all shells reset
+ `$?' to zero after an empty command.
+
+ $ bash -c 'false; $empty; echo $?'
+ 0
+ $ zsh -c 'false; $empty; echo $?'
+ 1
+
+`_'
+ Many shells reserve `$_' for various purposes, e.g., the name of
+ the last command executed.
+
+`BIN_SH'
+ In Tru64, if `BIN_SH' is set to `xpg4', subsidiary invocations of
+ the standard shell conform to Posix.
+
+`CDPATH'
+ When this variable is set it specifies a list of directories to
+ search when invoking `cd' with a relative file name that did not
+ start with `./' or `../'. Posix 1003.1-2001 says that if a
+ nonempty directory name from `CDPATH' is used successfully, `cd'
+ prints the resulting absolute file name. Unfortunately this
+ output can break idioms like `abs=`cd src && pwd`' because `abs'
+ receives the name twice. Also, many shells do not conform to this
+ part of Posix; for example, `zsh' prints the result only if a
+ directory name other than `.' was chosen from `CDPATH'.
+
+ In practice the shells that have this problem also support
+ `unset', so you can work around the problem as follows:
+
+ (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+ You can also avoid output by ensuring that your directory name is
+ absolute or anchored at `./', as in `abs=`cd ./src && pwd`'.
+
+ Configure scripts use M4sh, which automatically unsets `CDPATH' if
+ possible, so you need not worry about this problem in those
+ scripts.
+
+`CLICOLOR_FORCE'
+ When this variable is set, some implementations of tools like `ls'
+ attempt to add color to their output via terminal escape
+ sequences, even when the output is not directed to a terminal, and
+ can thus cause spurious failures in scripts. Configure scripts
+ use M4sh, which automatically unsets this variable.
+
+`DUALCASE'
+ In the MKS shell, case statements and file name generation are
+ case-insensitive unless `DUALCASE' is nonzero. Autoconf-generated
+ scripts export this variable when they start up.
+
+`ENV'
+`MAIL'
+`MAILPATH'
+`PS1'
+`PS2'
+`PS4'
+ These variables should not matter for shell scripts, since they are
+ supposed to affect only interactive shells. However, at least one
+ shell (the pre-3.0 UWIN Korn shell) gets confused about whether it
+ is interactive, which means that (for example) a `PS1' with a side
+ effect can unexpectedly modify `$?'. To work around this bug,
+ M4sh scripts (including `configure' scripts) do something like
+ this:
+
+ (unset ENV) >/dev/null 2>&1 && unset ENV MAIL MAILPATH
+ PS1='$ '
+ PS2='> '
+ PS4='+ '
+
+ (actually, there is some complication due to bugs in `unset';
+ *note Limitations of Shell Builtins: unset.).
+
+`FPATH'
+ The Korn shell uses `FPATH' to find shell functions, so avoid
+ `FPATH' in portable scripts. `FPATH' is consulted after `PATH',
+ but you still need to be wary of tests that use `PATH' to find
+ whether a command exists, since they might report the wrong result
+ if `FPATH' is also set.
+
+`GREP_OPTIONS'
+ When this variable is set, some implementations of `grep' honor
+ these options, even if the options include direction to enable
+ colored output via terminal escape sequences, and the result can
+ cause spurious failures when the output is not directed to a
+ terminal. Configure scripts use M4sh, which automatically unsets
+ this variable.
+
+`IFS'
+ Long ago, shell scripts inherited `IFS' from the environment, but
+ this caused many problems so modern shells ignore any environment
+ settings for `IFS'.
+
+ Don't set the first character of `IFS' to backslash. Indeed,
+ Bourne shells use the first character (backslash) when joining the
+ components in `"$@"' and some shells then reinterpret (!) the
+ backslash escapes, so you can end up with backspace and other
+ strange characters.
+
+ The proper value for `IFS' (in regular code, not when performing
+ splits) is `<SPC><TAB><RET>'. The first character is especially
+ important, as it is used to join the arguments in `$*'; however,
+ note that traditional shells, but also bash-2.04, fail to adhere
+ to this and join with a space anyway.
+
+ M4sh guarantees that `IFS' will have the default value at the
+ beginning of a script, and many macros within autoconf rely on this
+ setting. It is okay to use blocks of shell code that temporarily
+ change the value of `IFS' in order to split on another character,
+ but remember to restore it before expanding further macros.
+
+ Unsetting `IFS' instead of resetting it to the default sequence is
+ not suggested, since code that tries to save and restore the
+ variable's value will incorrectly reset it to an empty value, thus
+ disabling field splitting:
+
+ unset IFS
+ # default separators used for field splitting
+
+ save_IFS=$IFS
+ IFS=:
+ # ...
+ IFS=$save_IFS
+ # no field splitting performed
+
+`LANG'
+`LC_ALL'
+`LC_COLLATE'
+`LC_CTYPE'
+`LC_MESSAGES'
+`LC_MONETARY'
+`LC_NUMERIC'
+`LC_TIME'
+ You should set all these variables to `C' because so much
+ configuration code assumes the C locale and Posix requires that
+ locale environment variables be set to `C' if the C locale is
+ desired; `configure' scripts and M4sh do that for you. Export
+ these variables after setting them.
+
+`LANGUAGE'
+ `LANGUAGE' is not specified by Posix, but it is a GNU extension
+ that overrides `LC_ALL' in some cases, so you (or M4sh) should set
+ it too.
+
+`LC_ADDRESS'
+`LC_IDENTIFICATION'
+`LC_MEASUREMENT'
+`LC_NAME'
+`LC_PAPER'
+`LC_TELEPHONE'
+ These locale environment variables are GNU extensions. They are
+ treated like their Posix brethren (`LC_COLLATE', etc.) as
+ described above.
+
+`LINENO'
+ Most modern shells provide the current line number in `LINENO'.
+ Its value is the line number of the beginning of the current
+ command. M4sh, and hence Autoconf, attempts to execute
+ `configure' with a shell that supports `LINENO'. If no such shell
+ is available, it attempts to implement `LINENO' with a Sed prepass
+ that replaces each instance of the string `$LINENO' (not followed
+ by an alphanumeric character) with the line's number. In M4sh
+ scripts you should execute `AS_LINENO_PREPARE' so that these
+ workarounds are included in your script; configure scripts do this
+ automatically in `AC_INIT'.
+
+ You should not rely on `LINENO' within `eval' or shell functions,
+ as the behavior differs in practice. The presence of a quoted
+ newline within simple commands can alter which line number is used
+ as the starting point for `$LINENO' substitutions within that
+ command. Also, the possibility of the Sed prepass means that you
+ should not rely on `$LINENO' when quoted, when in here-documents,
+ or when line continuations are used. Subshells should be OK,
+ though. In the following example, lines 1, 9, and 14 are
+ portable, but the other instances of `$LINENO' do not have
+ deterministic values:
+
+ $ cat lineno
+ echo 1. $LINENO
+ echo "2. $LINENO
+ 3. $LINENO"
+ cat <<EOF
+ 5. $LINENO
+ 6. $LINENO
+ 7. \$LINENO
+ EOF
+ ( echo 9. $LINENO )
+ eval 'echo 10. $LINENO'
+ eval 'echo 11. $LINENO
+ echo 12. $LINENO'
+ echo 13. '$LINENO'
+ echo 14. $LINENO '
+ 15.' $LINENO
+ f () { echo $1 $LINENO;
+ echo $1 $LINENO }
+ f 18.
+ echo 19. \
+ $LINENO
+ $ bash-3.2 ./lineno
+ 1. 1
+ 2. 3
+ 3. 3
+ 5. 4
+ 6. 4
+ 7. $LINENO
+ 9. 9
+ 10. 10
+ 11. 12
+ 12. 13
+ 13. $LINENO
+ 14. 14
+ 15. 14
+ 18. 16
+ 18. 17
+ 19. 19
+ $ zsh-4.3.4 ./lineno
+ 1. 1
+ 2. 2
+ 3. 2
+ 5. 4
+ 6. 4
+ 7. $LINENO
+ 9. 9
+ 10. 1
+ 11. 1
+ 12. 2
+ 13. $LINENO
+ 14. 14
+ 15. 14
+ 18. 0
+ 18. 1
+ 19. 19
+ $ pdksh-5.2.14 ./lineno
+ 1. 1
+ 2. 2
+ 3. 2
+ 5. 4
+ 6. 4
+ 7. $LINENO
+ 9. 9
+ 10. 0
+ 11. 0
+ 12. 0
+ 13. $LINENO
+ 14. 14
+ 15. 14
+ 18. 16
+ 18. 17
+ 19. 19
+ $ sed '=' <lineno |
+ > sed '
+ > N
+ > s,$,-,
+ > t loop
+ > :loop
+ > s,^\([0-9]*\)\(.*\)[$]LINENO\([^a-zA-Z0-9_]\),\1\2\1\3,
+ > t loop
+ > s,-$,,
+ > s,^[0-9]*\n,,
+ > ' |
+ > sh
+ 1. 1
+ 2. 2
+ 3. 3
+ 5. 5
+ 6. 6
+ 7. \7
+ 9. 9
+ 10. 10
+ 11. 11
+ 12. 12
+ 13. 13
+ 14. 14
+ 15. 15
+ 18. 16
+ 18. 17
+ 19. 20
+
+ In particular, note that `config.status' (and any other subsidiary
+ script created by `AS_INIT_GENERATED') might report line numbers
+ relative to the parent script as a result of the potential Sed
+ pass.
+
+`NULLCMD'
+ When executing the command `>foo', `zsh' executes `$NULLCMD >foo'
+ unless it is operating in Bourne shell compatibility mode and the
+ `zsh' version is newer than 3.1.6-dev-18. If you are using an
+ older `zsh' and forget to set `NULLCMD', your script might be
+ suspended waiting for data on its standard input.
+
+`options'
+ For `zsh' 4.3.10, `options' is treated as an associative array
+ even after `emulate sh', so it should not be used.
+
+`PATH_SEPARATOR'
+ On DJGPP systems, the `PATH_SEPARATOR' environment variable can be
+ set to either `:' or `;' to control the path separator Bash uses
+ to set up certain environment variables (such as `PATH'). You can
+ set this variable to `;' if you want `configure' to use `;' as a
+ separator; this might be useful if you plan to use non-Posix
+ shells to execute files. *Note File System Conventions::, for
+ more information about `PATH_SEPARATOR'.
+
+`POSIXLY_CORRECT'
+ In the GNU environment, exporting `POSIXLY_CORRECT' with any value
+ (even empty) causes programs to try harder to conform to Posix.
+ Autoconf does not directly manipulate this variable, but `bash'
+ ties the shell variable `POSIXLY_CORRECT' to whether the script is
+ running in Posix mode. Therefore, take care when exporting or
+ unsetting this variable, so as not to change whether `bash' is in
+ Posix mode.
+
+ $ bash --posix -c 'set -o | grep posix
+ > unset POSIXLY_CORRECT
+ > set -o | grep posix'
+ posix on
+ posix off
+
+`PWD'
+ Posix 1003.1-2001 requires that `cd' and `pwd' must update the
+ `PWD' environment variable to point to the logical name of the
+ current directory, but traditional shells do not support this.
+ This can cause confusion if one shell instance maintains `PWD' but
+ a subsidiary and different shell does not know about `PWD' and
+ executes `cd'; in this case `PWD' points to the wrong directory.
+ Use ``pwd`' rather than `$PWD'.
+
+`RANDOM'
+ Many shells provide `RANDOM', a variable that returns a different
+ integer each time it is used. Most of the time, its value does not
+ change when it is not used, but on IRIX 6.5 the value changes all
+ the time. This can be observed by using `set'. It is common
+ practice to use `$RANDOM' as part of a file name, but code
+ shouldn't rely on `$RANDOM' expanding to a nonempty string.
+
+`status'
+ This variable is an alias to `$?' for `zsh' (at least 3.1.6),
+ hence read-only. Do not use it.
+
+
+File: autoconf.info, Node: Shell Functions, Next: Limitations of Builtins, Prev: Special Shell Variables, Up: Portable Shell
+
+11.13 Shell Functions
+=====================
+
+Nowadays, it is difficult to find a shell that does not support shell
+functions at all. However, some differences should be expected.
+
+ When declaring a shell function, you must include whitespace between
+the `)' after the function name and the start of the compound
+expression, to avoid upsetting `ksh'. While it is possible to use any
+compound command, most scripts use `{...}'.
+
+ $ /bin/sh -c 'a(){ echo hi;}; a'
+ hi
+ $ ksh -c 'a(){ echo hi;}; a'
+ ksh: syntax error at line 1: `}' unexpected
+ $ ksh -c 'a() { echo hi;}; a'
+ hi
+
+ Inside a shell function, you should not rely on the error status of a
+subshell if the last command of that subshell was `exit' or `trap', as
+this triggers bugs in zsh 4.x; while Autoconf tries to find a shell
+that does not exhibit the bug, zsh might be the only shell present on
+the user's machine.
+
+ Likewise, the state of `$?' is not reliable when entering a shell
+function. This has the effect that using a function as the first
+command in a `trap' handler can cause problems.
+
+ $ bash -c 'foo() { echo $?; }; trap foo 0; (exit 2); exit 2'; echo $?
+ 2
+ 2
+ $ ash -c 'foo() { echo $?; }; trap foo 0; (exit 2); exit 2'; echo $?
+ 0
+ 2
+
+ DJGPP bash 2.04 has a bug in that `return' from a shell function
+which also used a command substitution causes a segmentation fault. To
+work around the issue, you can use `return' from a subshell, or
+`AS_SET_STATUS' as last command in the execution flow of the function
+(*note Common Shell Constructs::).
+
+ Not all shells treat shell functions as simple commands impacted by
+`set -e', for example with Solaris 10 `/bin/sh':
+
+ $ bash -c 'f() { return 1; }; set -e; f; echo oops'
+ $ /bin/sh -c 'f() { return 1; }; set -e; f; echo oops'
+ oops
+
+ Shell variables and functions may share the same namespace, for
+example with Solaris 10 `/bin/sh':
+
+ $ f () { :; }; f=; f
+ f: not found
+
+For this reason, Autoconf (actually M4sh, *note Programming in M4sh::)
+uses the prefix `as_fn_' for its functions.
+
+ Handling of positional parameters and shell options varies among
+shells. For example, Korn shells reset and restore trace output (`set
+-x') and other options upon function entry and exit. Inside a function,
+IRIX sh sets `$0' to the function name.
+
+ It is not portable to pass temporary environment variables to shell
+functions. Solaris `/bin/sh' does not see the variable. Meanwhile,
+not all shells follow the Posix rule that the assignment must affect
+the current environment in the same manner as special built-ins.
+
+ $ /bin/sh -c 'func() { echo $a;}; a=1 func; echo $a'
+ =>
+ =>
+ $ ash -c 'func() { echo $a;}; a=1 func; echo $a'
+ =>1
+ =>
+ $ bash -c 'set -o posix; func() { echo $a;}; a=1 func; echo $a'
+ =>1
+ =>1
+
+ Some ancient Bourne shell variants with function support did not
+reset `$I, I >= 0', upon function exit, so effectively the arguments of
+the script were lost after the first function invocation. It is
+probably not worth worrying about these shells any more.
+
+ With AIX sh, a `trap' on 0 installed in a shell function triggers at
+function exit rather than at script exit. *Note Limitations of Shell
+Builtins: trap.
+
+
+File: autoconf.info, Node: Limitations of Builtins, Next: Limitations of Usual Tools, Prev: Shell Functions, Up: Portable Shell
+
+11.14 Limitations of Shell Builtins
+===================================
+
+No, no, we are serious: some shells do have limitations! :)
+
+ You should always keep in mind that any builtin or command may
+support options, and therefore differ in behavior with arguments
+starting with a dash. For instance, even the innocent `echo "$word"'
+can give unexpected results when `word' starts with a dash. It is
+often possible to avoid this problem using `echo "x$word"', taking the
+`x' into account later in the pipe. Many of these limitations can be
+worked around using M4sh (*note Programming in M4sh::).
+
+`.'
+ Use `.' only with regular files (use `test -f'). Bash 2.03, for
+ instance, chokes on `. /dev/null'. Remember that `.' uses `PATH'
+ if its argument contains no slashes. Also, some shells, including
+ bash 3.2, implicitly append the current directory to this `PATH'
+ search, even though Posix forbids it. So if you want to use `.'
+ on a file `foo' in the current directory, you must use `. ./foo'.
+
+ Not all shells gracefully handle syntax errors within a sourced
+ file. On one extreme, some non-interactive shells abort the
+ entire script. On the other, `zsh' 4.3.10 has a bug where it
+ fails to react to the syntax error.
+
+ $ echo 'fi' > syntax
+ $ bash -c '. ./syntax; echo $?'
+ ./syntax: line 1: syntax error near unexpected token `fi'
+ ./syntax: line 1: `fi'
+ 1
+ $ ash -c '. ./syntax; echo $?'
+ ./syntax: 1: Syntax error: "fi" unexpected
+ $ zsh -c '. ./syntax; echo $?'
+ ./syntax:1: parse error near `fi'
+ 0
+
+`!'
+ The Unix version 7 shell did not support negating the exit status
+ of commands with `!', and this feature is still absent from some
+ shells (e.g., Solaris `/bin/sh'). Other shells, such as FreeBSD
+ `/bin/sh' or `ash', have bugs when using `!':
+
+ $ sh -c '! : | :'; echo $?
+ 1
+ $ ash -c '! : | :'; echo $?
+ 0
+ $ sh -c '! { :; }'; echo $?
+ 1
+ $ ash -c '! { :; }'; echo $?
+ {: not found
+ Syntax error: "}" unexpected
+ 2
+
+ Shell code like this:
+
+ if ! cmp file1 file2 >/dev/null 2>&1; then
+ echo files differ or trouble
+ fi
+
+ is therefore not portable in practice. Typically it is easy to
+ rewrite such code, e.g.:
+
+ cmp file1 file2 >/dev/null 2>&1 ||
+ echo files differ or trouble
+
+ More generally, one can always rewrite `! COMMAND' as:
+
+ if COMMAND; then (exit 1); else :; fi
+
+`{...}'
+ Bash 3.2 (and earlier versions) sometimes does not properly set
+ `$?' when failing to write redirected output of a compound command.
+ This problem is most commonly observed with `{...}'; it does not
+ occur with `(...)'. For example:
+
+ $ bash -c '{ echo foo; } >/bad; echo $?'
+ bash: line 1: /bad: Permission denied
+ 0
+ $ bash -c 'while :; do echo; done >/bad; echo $?'
+ bash: line 1: /bad: Permission denied
+ 0
+
+ To work around the bug, prepend `:;':
+
+ $ bash -c ':;{ echo foo; } >/bad; echo $?'
+ bash: line 1: /bad: Permission denied
+ 1
+
+ Posix requires a syntax error if a brace list has no contents.
+ However, not all shells obey this rule; and on shells where empty
+ lists are permitted, the effect on `$?' is inconsistent. To avoid
+ problems, ensure that a brace list is never empty.
+
+ $ bash -c 'false; { }; echo $?' || echo $?
+ bash: line 1: syntax error near unexpected token `}'
+ bash: line 1: `false; { }; echo $?'
+ 2
+ $ zsh -c 'false; { }; echo $?' || echo $?
+ 1
+ $ pdksh -c 'false; { }; echo $?' || echo $?
+ 0
+
+`break'
+ The use of `break 2' etc. is safe.
+
+`case'
+ You don't need to quote the argument; no splitting is performed.
+
+ You don't need the final `;;', but you should use it.
+
+ Posix requires support for `case' patterns with opening
+ parentheses like this:
+
+ case $file_name in
+ (*.c) echo "C source code";;
+ esac
+
+ but the `(' in this example is not portable to many Bourne shell
+ implementations, which is a pity for those of us using tools that
+ rely on balanced parentheses. For instance, with Solaris
+ `/bin/sh':
+
+ $ case foo in (foo) echo foo;; esac
+ error-->syntax error: `(' unexpected
+
+ The leading `(' can be omitted safely. Unfortunately, there are
+ contexts where unbalanced parentheses cause other problems, such
+ as when using a syntax-highlighting editor that searches for the
+ balancing counterpart, or more importantly, when using a case
+ statement as an underquoted argument to an Autoconf macro. *Note
+ Balancing Parentheses::, for tradeoffs involved in various styles
+ of dealing with unbalanced `)'.
+
+ Zsh handles pattern fragments derived from parameter expansions or
+ command substitutions as though quoted:
+
+ $ pat=\?; case aa in ?$pat) echo match;; esac
+ $ pat=\?; case a? in ?$pat) echo match;; esac
+ match
+
+ Because of a bug in its `fnmatch', Bash fails to properly handle
+ backslashes in character classes:
+
+ bash-2.02$ case /tmp in [/\\]*) echo OK;; esac
+ bash-2.02$
+
+ This is extremely unfortunate, since you are likely to use this
+ code to handle Posix or MS-DOS absolute file names. To work
+ around this bug, always put the backslash first:
+
+ bash-2.02$ case '\TMP' in [\\/]*) echo OK;; esac
+ OK
+ bash-2.02$ case /tmp in [\\/]*) echo OK;; esac
+ OK
+
+ Many Bourne shells cannot handle closing brackets in character
+ classes correctly.
+
+ Some shells also have problems with backslash escaping in case you
+ do not want to match the backslash: both a backslash and the
+ escaped character match this pattern. To work around this,
+ specify the character class in a variable, so that quote removal
+ does not apply afterwards, and the special characters don't have
+ to be backslash-escaped:
+
+ $ case '\' in [\<]) echo OK;; esac
+ OK
+ $ scanset='[<]'; case '\' in $scanset) echo OK;; esac
+ $
+
+ Even with this, Solaris `ksh' matches a backslash if the set
+ contains any of the characters `|', `&', `(', or `)'.
+
+ Conversely, Tru64 `ksh' (circa 2003) erroneously always matches a
+ closing parenthesis if not specified in a character class:
+
+ $ case foo in *\)*) echo fail ;; esac
+ fail
+ $ case foo in *')'*) echo fail ;; esac
+ fail
+
+ Some shells, such as Ash 0.3.8, are confused by an empty
+ `case'/`esac':
+
+ ash-0.3.8 $ case foo in esac;
+ error-->Syntax error: ";" unexpected (expecting ")")
+
+ Posix requires `case' to give an exit status of 0 if no cases
+ match. However, `/bin/sh' in Solaris 10 does not obey this rule.
+ Meanwhile, it is unclear whether a case that matches, but contains
+ no statements, must also change the exit status to 0. The M4sh
+ macro `AS_CASE' works around these inconsistencies.
+
+ $ bash -c 'case `false` in ?) ;; esac; echo $?'
+ 0
+ $ /bin/sh -c 'case `false` in ?) ;; esac; echo $?'
+ 255
+
+`cd'
+ Posix 1003.1-2001 requires that `cd' must support the `-L'
+ ("logical") and `-P' ("physical") options, with `-L' being the
+ default. However, traditional shells do not support these
+ options, and their `cd' command has the `-P' behavior.
+
+ Portable scripts should assume neither option is supported, and
+ should assume neither behavior is the default. This can be a bit
+ tricky, since the Posix default behavior means that, for example,
+ `ls ..' and `cd ..' may refer to different directories if the
+ current logical directory is a symbolic link. It is safe to use
+ `cd DIR' if DIR contains no `..' components. Also,
+ Autoconf-generated scripts check for this problem when computing
+ variables like `ac_top_srcdir' (*note Configuration Actions::), so
+ it is safe to `cd' to these variables.
+
+ Posix states that behavior is undefined if `cd' is given an
+ explicit empty argument. Some shells do nothing, some change to
+ the first entry in `CDPATH', some change to `HOME', and some exit
+ the shell rather than returning an error. Unfortunately, this
+ means that if `$var' is empty, then `cd "$var"' is less predictable
+ than `cd $var' (at least the latter is well-behaved in all shells
+ at changing to `HOME', although this is probably not what you
+ wanted in a script). You should check that a directory name was
+ supplied before trying to change locations.
+
+ *Note Special Shell Variables::, for portability problems involving
+ `cd' and the `CDPATH' environment variable. Also please see the
+ discussion of the `pwd' command.
+
+`echo'
+ The simple `echo' is probably the most surprising source of
+ portability troubles. It is not possible to use `echo' portably
+ unless both options and escape sequences are omitted. Don't
+ expect any option.
+
+ Do not use backslashes in the arguments, as there is no consensus
+ on their handling. For `echo '\n' | wc -l', the `sh' of Solaris
+ outputs 2, but Bash and Zsh (in `sh' emulation mode) output 1.
+ The problem is truly `echo': all the shells understand `'\n'' as
+ the string composed of a backslash and an `n'. Within a command
+ substitution, `echo 'string\c'' will mess up the internal state of
+ ksh88 on AIX 6.1 so that it will print the first character `s'
+ only, followed by a newline, and then entirely drop the output of
+ the next echo in a command substitution.
+
+ Because of these problems, do not pass a string containing
+ arbitrary characters to `echo'. For example, `echo "$foo"' is safe
+ only if you know that FOO's value cannot contain backslashes and
+ cannot start with `-'.
+
+ If this may not be true, `printf' is in general safer and easier
+ to use than `echo' and `echo -n'. Thus, scripts where portability
+ is not a major concern should use `printf '%s\n'' whenever `echo'
+ could fail, and similarly use `printf %s' instead of `echo -n'.
+ For portable shell scripts, instead, it is suggested to use a
+ here-document like this:
+
+ cat <<EOF
+ $foo
+ EOF
+
+ Alternatively, M4sh provides `AS_ECHO' and `AS_ECHO_N' macros
+ which choose between various portable implementations: `echo' or
+ `print' where they work, `printf' if it is available, or else
+ other creative tricks in order to work around the above problems.
+
+`eval'
+ The `eval' command is useful in limited circumstances, e.g., using
+ commands like `eval table_$key=\$value' and `eval
+ value=table_$key' to simulate a hash table when the key is known
+ to be alphanumeric.
+
+ You should also be wary of common bugs in `eval' implementations.
+ In some shell implementations (e.g., older `ash', OpenBSD 3.8
+ `sh', `pdksh' v5.2.14 99/07/13.2, and `zsh' 4.2.5), the arguments
+ of `eval' are evaluated in a context where `$?' is 0, so they
+ exhibit behavior like this:
+
+ $ false; eval 'echo $?'
+ 0
+
+ The correct behavior here is to output a nonzero value, but
+ portable scripts should not rely on this.
+
+ You should not rely on `LINENO' within `eval'. *Note Special
+ Shell Variables::.
+
+ Note that, even though these bugs are easily avoided, `eval' is
+ tricky to use on arbitrary arguments. It is obviously unwise to
+ use `eval $cmd' if the string value of `cmd' was derived from an
+ untrustworthy source. But even if the string value is valid,
+ `eval $cmd' might not work as intended, since it causes field
+ splitting and file name expansion to occur twice, once for the
+ `eval' and once for the command itself. It is therefore safer to
+ use `eval "$cmd"'. For example, if CMD has the value `cat
+ test?.c', `eval $cmd' might expand to the equivalent of `cat
+ test;.c' if there happens to be a file named `test;.c' in the
+ current directory; and this in turn mistakenly attempts to invoke
+ `cat' on the file `test' and then execute the command `.c'. To
+ avoid this problem, use `eval "$cmd"' rather than `eval $cmd'.
+
+ However, suppose that you want to output the text of the evaluated
+ command just before executing it. Assuming the previous example,
+ `echo "Executing: $cmd"' outputs `Executing: cat test?.c', but
+ this output doesn't show the user that `test;.c' is the actual name
+ of the copied file. Conversely, `eval "echo Executing: $cmd"'
+ works on this example, but it fails with `cmd='cat foo >bar'',
+ since it mistakenly replaces the contents of `bar' by the string
+ `cat foo'. No simple, general, and portable solution to this
+ problem is known.
+
+`exec'
+ Posix describes several categories of shell built-ins. Special
+ built-ins (such as `exit') must impact the environment of the
+ current shell, and need not be available through `exec'. All
+ other built-ins are regular, and must not propagate variable
+ assignments to the environment of the current shell. However, the
+ group of regular built-ins is further distinguished by commands
+ that do not require a `PATH' search (such as `cd'), in contrast to
+ built-ins that are offered as a more efficient version of
+ something that must still be found in a `PATH' search (such as
+ `echo'). Posix is not clear on whether `exec' must work with the
+ list of 17 utilities that are invoked without a `PATH' search, and
+ many platforms lack an executable for some of those built-ins:
+
+ $ sh -c 'exec cd /tmp'
+ sh: line 0: exec: cd: not found
+
+ All other built-ins that provide utilities specified by Posix must
+ have a counterpart executable that exists on `PATH', although Posix
+ allows `exec' to use the built-in instead of the executable. For
+ example, contrast `bash' 3.2 and `pdksh' 5.2.14:
+
+ $ bash -c 'pwd --version' | head -n1
+ bash: line 0: pwd: --: invalid option
+ pwd: usage: pwd [-LP]
+ $ bash -c 'exec pwd --version' | head -n1
+ pwd (GNU coreutils) 6.10
+ $ pdksh -c 'exec pwd --version' | head -n1
+ pdksh: pwd: --: unknown option
+
+ When it is desired to avoid a regular shell built-in, the
+ workaround is to use some other forwarding command, such as `env'
+ or `nice', that will ensure a path search:
+
+ $ pdksh -c 'exec true --version' | head -n1
+ $ pdksh -c 'nice true --version' | head -n1
+ true (GNU coreutils) 6.10
+ $ pdksh -c 'env true --version' | head -n1
+ true (GNU coreutils) 6.10
+
+`exit'
+ The default value of `exit' is supposed to be `$?'; unfortunately,
+ some shells, such as the DJGPP port of Bash 2.04, just perform
+ `exit 0'.
+
+ bash-2.04$ foo=`exit 1` || echo fail
+ fail
+ bash-2.04$ foo=`(exit 1)` || echo fail
+ fail
+ bash-2.04$ foo=`(exit 1); exit` || echo fail
+ bash-2.04$
+
+ Using `exit $?' restores the expected behavior.
+
+ Some shell scripts, such as those generated by `autoconf', use a
+ trap to clean up before exiting. If the last shell command exited
+ with nonzero status, the trap also exits with nonzero status so
+ that the invoker can tell that an error occurred.
+
+ Unfortunately, in some shells, such as Solaris `/bin/sh', an exit
+ trap ignores the `exit' command's argument. In these shells, a
+ trap cannot determine whether it was invoked by plain `exit' or by
+ `exit 1'. Instead of calling `exit' directly, use the
+ `AC_MSG_ERROR' macro that has a workaround for this problem.
+
+`export'
+ The builtin `export' dubs a shell variable "environment variable".
+ Each update of exported variables corresponds to an update of the
+ environment variables. Conversely, each environment variable
+ received by the shell when it is launched should be imported as a
+ shell variable marked as exported.
+
+ Alas, many shells, such as Solaris `/bin/sh', IRIX 6.3, IRIX 5.2,
+ AIX 4.1.5, and Digital Unix 4.0, forget to `export' the
+ environment variables they receive. As a result, two variables
+ coexist: the environment variable and the shell variable. The
+ following code demonstrates this failure:
+
+ #!/bin/sh
+ echo $FOO
+ FOO=bar
+ echo $FOO
+ exec /bin/sh $0
+
+ when run with `FOO=foo' in the environment, these shells print
+ alternately `foo' and `bar', although they should print only `foo'
+ and then a sequence of `bar's.
+
+ Therefore you should `export' again each environment variable that
+ you update; the export can occur before or after the assignment.
+
+ Posix is not clear on whether the `export' of an undefined
+ variable causes the variable to be defined with the value of an
+ empty string, or merely marks any future definition of a variable
+ by that name for export. Various shells behave differently in
+ this regard:
+
+ $ sh -c 'export foo; env | grep foo'
+ $ ash -c 'export foo; env | grep foo'
+ foo=
+
+ Posix requires `export' to honor assignments made as arguments,
+ but older shells do not support this, including `/bin/sh' in
+ Solaris 10. Portable scripts should separate assignments and
+ exports into different statements.
+
+ $ bash -c 'export foo=bar; echo $foo'
+ bar
+ $ /bin/sh -c 'export foo=bar; echo $foo'
+ /bin/sh: foo=bar: is not an identifier
+ $ /bin/sh -c 'export foo; foo=bar; echo $foo'
+ bar
+
+`false'
+ Don't expect `false' to exit with status 1: in native Solaris
+ `/bin/false' exits with status 255.
+
+`for'
+ To loop over positional arguments, use:
+
+ for arg
+ do
+ echo "$arg"
+ done
+
+ You may _not_ leave the `do' on the same line as `for', since some
+ shells improperly grok:
+
+ for arg; do
+ echo "$arg"
+ done
+
+ If you want to explicitly refer to the positional arguments, given
+ the `$@' bug (*note Shell Substitutions::), use:
+
+ for arg in ${1+"$@"}; do
+ echo "$arg"
+ done
+
+ But keep in mind that Zsh, even in Bourne shell emulation mode,
+ performs word splitting on `${1+"$@"}'; see *note Shell
+ Substitutions::, item `$@', for more.
+
+ In Solaris `/bin/sh', when the list of arguments of a `for' loop
+ starts with _unquoted_ tokens looking like variable assignments,
+ the loop is not executed on those tokens:
+
+ $ /bin/sh -c 'for v in a=b c=d x e=f; do echo $v; done'
+ x
+ e=f
+
+ Thankfully, quoting the assignment-like tokens, or starting the
+ list with other tokens (including unquoted variable expansion that
+ results in an assignment-like result), avoids the problem, so it
+ is easy to work around:
+
+ $ /bin/sh -c 'for v in "a=b"; do echo $v; done'
+ a=b
+ $ /bin/sh -c 'x=a=b; for v in $x c=d; do echo $v; done'
+ a=b
+ c=d
+
+`if'
+ Using `!' is not portable. Instead of:
+
+ if ! cmp -s file file.new; then
+ mv file.new file
+ fi
+
+ use:
+
+ if cmp -s file file.new; then :; else
+ mv file.new file
+ fi
+
+ Or, especially if the "else" branch is short, you can use `||'.
+ In M4sh, the `AS_IF' macro provides an easy way to write these
+ kinds of conditionals:
+
+ AS_IF([cmp -s file file.new], [], [mv file.new file])
+
+ This is especially useful in other M4 macros, where the "then" and
+ "else" branches might be macro arguments.
+
+ Some very old shells did not reset the exit status from an `if'
+ with no `else':
+
+ $ if (exit 42); then true; fi; echo $?
+ 42
+
+ whereas a proper shell should have printed `0'. But this is no
+ longer a portability problem; any shell that supports functions
+ gets it correct. However, it explains why some makefiles have
+ lengthy constructs:
+
+ if test -f "$file"; then
+ install "$file" "$dest"
+ else
+ :
+ fi
+
+`printf'
+ A format string starting with a `-' can cause problems. Bash
+ interprets it as an option and gives an error. And `--' to mark
+ the end of options is not good in the NetBSD Almquist shell (e.g.,
+ 0.4.6) which takes that literally as the format string. Putting
+ the `-' in a `%c' or `%s' is probably easiest:
+
+ printf %s -foo
+
+ Bash 2.03 mishandles an escape sequence that happens to evaluate
+ to `%':
+
+ $ printf '\045'
+ bash: printf: `%': missing format character
+
+ Large outputs may cause trouble. On Solaris 2.5.1 through 10, for
+ example, `/usr/bin/printf' is buggy, so when using `/bin/sh' the
+ command `printf %010000x 123' normally dumps core.
+
+ Since `printf' is not always a shell builtin, there is a potential
+ speed penalty for using `printf '%s\n'' as a replacement for an
+ `echo' that does not interpret `\' or leading `-'. With Solaris
+ `ksh', it is possible to use `print -r --' for this role instead.
+
+ *Note Limitations of Shell Builtins: echo for a discussion of
+ portable alternatives to both `printf' and `echo'.
+
+`pwd'
+ With modern shells, plain `pwd' outputs a "logical" directory
+ name, some of whose components may be symbolic links. These
+ directory names are in contrast to "physical" directory names,
+ whose components are all directories.
+
+ Posix 1003.1-2001 requires that `pwd' must support the `-L'
+ ("logical") and `-P' ("physical") options, with `-L' being the
+ default. However, traditional shells do not support these
+ options, and their `pwd' command has the `-P' behavior.
+
+ Portable scripts should assume neither option is supported, and
+ should assume neither behavior is the default. Also, on many hosts
+ `/bin/pwd' is equivalent to `pwd -P', but Posix does not require
+ this behavior and portable scripts should not rely on it.
+
+ Typically it's best to use plain `pwd'. On modern hosts this
+ outputs logical directory names, which have the following
+ advantages:
+
+ * Logical names are what the user specified.
+
+ * Physical names may not be portable from one installation host
+ to another due to network file system gymnastics.
+
+ * On modern hosts `pwd -P' may fail due to lack of permissions
+ to some parent directory, but plain `pwd' cannot fail for this
+ reason.
+
+ Also please see the discussion of the `cd' command.
+
+`read'
+ No options are portable, not even support `-r' (Solaris `/bin/sh'
+ for example). Tru64/OSF 5.1 `sh' treats `read' as a special
+ built-in, so it may exit if input is redirected from a
+ non-existent or unreadable file.
+
+`set'
+ With the FreeBSD 6.0 shell, the `set' command (without any
+ options) does not sort its output.
+
+ The `set' builtin faces the usual problem with arguments starting
+ with a dash. Modern shells such as Bash or Zsh understand `--' to
+ specify the end of the options (any argument after `--' is a
+ parameter, even `-x' for instance), but many traditional shells
+ (e.g., Solaris 10 `/bin/sh') simply stop option processing as soon
+ as a non-option argument is found. Therefore, use `dummy' or
+ simply `x' to end the option processing, and use `shift' to pop it
+ out:
+
+ set x $my_list; shift
+
+ Avoid `set -', e.g., `set - $my_list'. Posix no longer requires
+ support for this command, and in traditional shells `set -
+ $my_list' resets the `-v' and `-x' options, which makes scripts
+ harder to debug.
+
+ Some nonstandard shells do not recognize more than one option
+ (e.g., `set -e -x' assigns `-x' to the command line). It is
+ better to combine them:
+
+ set -ex
+
+ The option `-e' has historically been underspecified, with enough
+ ambiguities to cause numerous differences across various shell
+ implementations; see for example this overview
+ (http://www.in-ulm.de/~mascheck/various/set-e/), or this link
+ (http://www.austingroupbugs.net/view.php?id=52), documenting a
+ change to Posix 2008 to match `ksh88' behavior. Note that mixing
+ `set -e' and shell functions is asking for surprises:
+
+ set -e
+ doit()
+ {
+ rm file
+ echo one
+ }
+ doit || echo two
+
+ According to the recommendation, `one' should always be output
+ regardless of whether the `rm' failed, because it occurs within
+ the body of the shell function `doit' invoked on the left side of
+ `||', where the effects of `set -e' are not enforced. Likewise,
+ `two' should never be printed, since the failure of `rm' does not
+ abort the function, such that the status of `doit' is 0.
+
+ The BSD shell has had several problems with the `-e' option.
+ Older versions of the BSD shell (circa 1990) mishandled `&&',
+ `||', `if', and `case' when `-e' was in effect, causing the shell
+ to exit unexpectedly in some cases. This was particularly a
+ problem with makefiles, and led to circumlocutions like `sh -c
+ 'test -f file || touch file'', where the seemingly-unnecessary `sh
+ -c '...'' wrapper works around the bug (*note Failure in Make
+ Rules::).
+
+ Even relatively-recent versions of the BSD shell (e.g., OpenBSD
+ 3.4) wrongly exit with `-e' if the last command within a compound
+ statement fails and is guarded by an `&&' only. For example:
+
+ #! /bin/sh
+ set -e
+ foo=''
+ test -n "$foo" && exit 1
+ echo one
+ if :; then
+ test -n "$foo" && exit 1
+ echo two
+ test -n "$foo" && exit 1
+ fi
+ echo three
+
+ does not print `three'. One workaround is to change the last
+ instance of `test -n "$foo" && exit 1' to be `if test -n "$foo";
+ then exit 1; fi' instead. Another possibility is to warn BSD
+ users not to use `sh -e'.
+
+ When `set -e' is in effect, a failed command substitution in
+ Solaris `/bin/sh' cannot be ignored, even with `||'.
+
+ $ /bin/sh -c 'set -e; foo=`false` || echo foo; echo bar'
+ $ bash -c 'set -e; foo=`false` || echo foo; echo bar'
+ foo
+ bar
+
+ Moreover, a command substitution, successful or not, causes this
+ shell to exit from a failing outer command even in presence of an
+ `&&' list:
+
+ $ bash -c 'set -e; false `true` && echo notreached; echo ok'
+ ok
+ $ sh -c 'set -e; false `true` && echo notreached; echo ok'
+ $
+
+ Portable scripts should not use `set -e' if `trap' is used to
+ install an exit handler. This is because Tru64/OSF 5.1 `sh'
+ sometimes enters the trap handler with the exit status of the
+ command prior to the one that triggered the errexit handler:
+
+ $ sh -ec 'trap '\''echo $?'\'' 0; false'
+ 0
+ $ sh -c 'set -e; trap '\''echo $?'\'' 0; false'
+ 1
+
+ Thus, when writing a script in M4sh, rather than trying to rely on
+ `set -e', it is better to append `|| AS_EXIT' to any statement
+ where it is desirable to abort on failure.
+
+ Job control is not provided by all shells, so the use of `set -m'
+ or `set -b' must be done with care. When using `zsh' in native
+ mode, asynchronous notification (`set -b') is enabled by default,
+ and using `emulate sh' to switch to Posix mode does not clear this
+ setting (although asynchronous notification has no impact unless
+ job monitoring is also enabled). Also, `zsh' 4.3.10 and earlier
+ have a bug where job control can be manipulated in interactive
+ shells, but not in subshells or scripts. Furthermore, some
+ shells, like `pdksh', fail to treat subshells as interactive, even
+ though the parent shell was.
+
+ $ echo $ZSH_VERSION
+ 4.3.10
+ $ set -m; echo $?
+ 0
+ $ zsh -c 'set -m; echo $?'
+ set: can't change option: -m
+ $ (set -m); echo $?
+ set: can't change option: -m
+ 1
+ $ pdksh -ci 'echo $-; (echo $-)'
+ cim
+ c
+
+ Use of `set -n' (typically via `sh -n script') to validate a
+ script is not foolproof. Modern `ksh93' tries to be helpful by
+ informing you about better syntax, but switching the script to use
+ the suggested syntax in order to silence the warnings would render
+ the script no longer portable to older shells:
+
+ $ ksh -nc '``'
+ ksh: warning: line 1: `...` obsolete, use $(...)
+ 0
+
+ Furthermore, on ancient hosts, such as SunOS 4, `sh -n' could go
+ into an infinite loop; even with that bug fixed, Solaris 8
+ `/bin/sh' takes extremely long to parse large scripts. Autoconf
+ itself uses `sh -n' within its testsuite to check that correct
+ scripts were generated, but only after first probing for other
+ shell features (such as `test -n "${BASH_VERSION+set}"') that
+ indicate a reasonably fast and working implementation.
+
+`shift'
+ Not only is `shift'ing a bad idea when there is nothing left to
+ shift, but in addition it is not portable: the shell of MIPS
+ RISC/OS 4.52 refuses to do it.
+
+ Don't use `shift 2' etc.; while it in the SVR1 shell (1983), it is
+ also absent in many pre-Posix shells.
+
+`source'
+ This command is not portable, as Posix does not require it; use
+ `.' instead.
+
+`test'
+ The `test' program is the way to perform many file and string
+ tests. It is often invoked by the alternate name `[', but using
+ that name in Autoconf code is asking for trouble since it is an M4
+ quote character.
+
+ The `-a', `-o', `(', and `)' operands are not present in all
+ implementations, and have been marked obsolete by Posix 2008.
+ This is because there are inherent ambiguities in using them. For
+ example, `test "$1" -a "$2"' looks like a binary operator to check
+ whether two strings are both non-empty, but if `$1' is the literal
+ `!', then some implementations of `test' treat it as a negation of
+ the unary operator `-a'.
+
+ Thus, portable uses of `test' should never have more than four
+ arguments, and scripts should use shell constructs like `&&' and
+ `||' instead. If you combine `&&' and `||' in the same statement,
+ keep in mind that they have equal precedence, so it is often
+ better to parenthesize even when this is redundant. For example:
+
+ # Not portable:
+ test "X$a" = "X$b" -a \
+ '(' "X$c" != "X$d" -o "X$e" = "X$f" ')'
+
+ # Portable:
+ test "X$a" = "X$b" &&
+ { test "X$c" != "X$d" || test "X$e" = "X$f"; }
+
+ `test' does not process options like most other commands do; for
+ example, it does not recognize the `--' argument as marking the
+ end of options.
+
+ It is safe to use `!' as a `test' operator. For example, `if test
+ ! -d foo; ...' is portable even though `if ! test -d foo; ...' is
+ not.
+
+`test' (files)
+ To enable `configure' scripts to support cross-compilation, they
+ shouldn't do anything that tests features of the build system
+ instead of the host system. But occasionally you may find it
+ necessary to check whether some arbitrary file exists. To do so,
+ use `test -f', `test -r', or `test -x'. Do not use `test -e',
+ because Solaris 10 `/bin/sh' lacks it. To test for symbolic links
+ on systems that have them, use `test -h' rather than `test -L';
+ either form conforms to Posix 1003.1-2001, but older shells like
+ Solaris 8 `/bin/sh' support only `-h'.
+
+ For historical reasons, Posix reluctantly allows implementations of
+ `test -x' that will succeed for the root user, even if no execute
+ permissions are present. Furthermore, shells do not all agree on
+ whether Access Control Lists should affect `test -r', `test -w',
+ and `test -x'; some shells base test results strictly on the
+ current user id compared to file owner and mode, as if by
+ `stat(2)'; while other shells base test results on whether the
+ current user has the given right, even if that right is only
+ granted by an ACL, as if by `faccessat(2)'. Furthermore, there is
+ a classic time of check to time of use race between any use of
+ `test' followed by operating on the just-checked file. Therefore,
+ it is a good idea to write scripts that actually attempt an
+ operation, and are prepared for the resulting failure if
+ permission is denied, rather than trying to avoid an operation
+ based solely on whether `test' guessed that it might not be
+ permitted.
+
+`test' (strings)
+ Posix says that `test "STRING"' succeeds if STRING is not null,
+ but this usage is not portable to traditional platforms like
+ Solaris 10 `/bin/sh', which mishandle strings like `!' and `-n'.
+
+ Posix also says that `test ! "STRING"', `test -n "STRING"' and
+ `test -z "STRING"' work with any string, but many shells (such as
+ Solaris, AIX 3.2, UNICOS 10.0.0.6, Digital Unix 4, etc.) get
+ confused if STRING looks like an operator:
+
+ $ test -n =
+ test: argument expected
+ $ test ! -n
+ test: argument expected
+ $ test -z ")"; echo $?
+ 0
+
+ Similarly, Posix says that both `test "STRING1" = "STRING2"' and
+ `test "STRING1" != "STRING2"' work for any pairs of strings, but
+ in practice this is not true for troublesome strings that look
+ like operators or parentheses, or that begin with `-'.
+
+ It is best to protect such strings with a leading `X', e.g., `test
+ "XSTRING" != X' rather than `test -n "STRING"' or `test !
+ "STRING"'.
+
+ It is common to find variations of the following idiom:
+
+ test -n "`echo $ac_feature | sed 's/[-a-zA-Z0-9_]//g'`" &&
+ ACTION
+
+ to take an action when a token matches a given pattern. Such
+ constructs should be avoided by using:
+
+ case $ac_feature in
+ *[!-a-zA-Z0-9_]*) ACTION;;
+ esac
+
+ If the pattern is a complicated regular expression that cannot be
+ expressed as a shell pattern, use something like this instead:
+
+ expr "X$ac_feature" : 'X.*[^-a-zA-Z0-9_]' >/dev/null &&
+ ACTION
+
+ `expr "XFOO" : "XBAR"' is more robust than `echo "XFOO" | grep
+ "^XBAR"', because it avoids problems when `FOO' contains
+ backslashes.
+
+`trap'
+ It is safe to trap at least the signals 1, 2, 13, and 15. You can
+ also trap 0, i.e., have the `trap' run when the script ends
+ (either via an explicit `exit', or the end of the script). The
+ trap for 0 should be installed outside of a shell function, or AIX
+ 5.3 `/bin/sh' will invoke the trap at the end of this function.
+
+ Posix says that `trap - 1 2 13 15' resets the traps for the
+ specified signals to their default values, but many common shells
+ (e.g., Solaris `/bin/sh') misinterpret this and attempt to execute
+ a "command" named `-' when the specified conditions arise. Posix
+ 2008 also added a requirement to support `trap 1 2 13 15' to reset
+ traps, as this is supported by a larger set of shells, but there
+ are still shells like `dash' that mistakenly try to execute `1'
+ instead of resetting the traps. Therefore, there is no portable
+ workaround, except for `trap - 0', for which `trap '' 0' is a
+ portable substitute.
+
+ Although Posix is not absolutely clear on this point, it is widely
+ admitted that when entering the trap `$?' should be set to the exit
+ status of the last command run before the trap. The ambiguity can
+ be summarized as: "when the trap is launched by an `exit', what is
+ the _last_ command run: that before `exit', or `exit' itself?"
+
+ Bash considers `exit' to be the last command, while Zsh and
+ Solaris `/bin/sh' consider that when the trap is run it is _still_
+ in the `exit', hence it is the previous exit status that the trap
+ receives:
+
+ $ cat trap.sh
+ trap 'echo $?' 0
+ (exit 42); exit 0
+ $ zsh trap.sh
+ 42
+ $ bash trap.sh
+ 0
+
+ The portable solution is then simple: when you want to `exit 42',
+ run `(exit 42); exit 42', the first `exit' being used to set the
+ exit status to 42 for Zsh, and the second to trigger the trap and
+ pass 42 as exit status for Bash. In M4sh, this is covered by using
+ `AS_EXIT'.
+
+ The shell in FreeBSD 4.0 has the following bug: `$?' is reset to 0
+ by empty lines if the code is inside `trap'.
+
+ $ trap 'false
+
+ echo $?' 0
+ $ exit
+ 0
+
+ Fortunately, this bug only affects `trap'.
+
+ Several shells fail to execute an exit trap that is defined inside
+ a subshell, when the last command of that subshell is not a
+ builtin. A workaround is to use `exit $?' as the shell builtin.
+
+ $ bash -c '(trap "echo hi" 0; /bin/true)'
+ hi
+ $ /bin/sh -c '(trap "echo hi" 0; /bin/true)'
+ $ /bin/sh -c '(trap "echo hi" 0; /bin/true; exit $?)'
+ hi
+
+ Likewise, older implementations of `bash' failed to preserve `$?'
+ across an exit trap consisting of a single cleanup command.
+
+ $ bash -c 'trap "/bin/true" 0; exit 2'; echo $?
+ 2
+ $ bash-2.05b -c 'trap "/bin/true" 0; exit 2'; echo $?
+ 0
+ $ bash-2.05b -c 'trap ":; /bin/true" 0; exit 2'; echo $?
+ 2
+
+`true'
+ Don't worry: as far as we know `true' is portable. Nevertheless,
+ it's not always a builtin (e.g., Bash 1.x), and the portable shell
+ community tends to prefer using `:'. This has a funny side
+ effect: when asked whether `false' is more portable than `true'
+ Alexandre Oliva answered:
+
+ In a sense, yes, because if it doesn't exist, the shell will
+ produce an exit status of failure, which is correct for
+ `false', but not for `true'.
+
+ Remember that even though `:' ignores its arguments, it still takes
+ time to compute those arguments. It is a good idea to use double
+ quotes around any arguments to `:' to avoid time spent in field
+ splitting and file name expansion.
+
+`unset'
+ In some nonconforming shells (e.g., Solaris 10 `/bin/ksh' and
+ `/usr/xpg4/bin/sh', NetBSD 5.99.43 sh, or Bash 2.05a), `unset FOO'
+ fails when `FOO' is not set. This can interfere with `set -e'
+ operation. You can use
+
+ FOO=; unset FOO
+
+ if you are not sure that `FOO' is set.
+
+ A few ancient shells lack `unset' entirely. For some variables
+ such as `PS1', you can use a neutralizing value instead:
+
+ PS1='$ '
+
+ Usually, shells that do not support `unset' need less effort to
+ make the environment sane, so for example is not a problem if you
+ cannot unset `CDPATH' on those shells. However, Bash 2.01
+ mishandles `unset MAIL' and `unset MAILPATH' in some cases and
+ dumps core. So, you should do something like
+
+ ( (unset MAIL) || exit 1) >/dev/null 2>&1 && unset MAIL || :
+
+ *Note Special Shell Variables::, for some neutralizing values.
+ Also, see *note Limitations of Builtins: export, for the case of
+ environment variables.
+
+`wait'
+ The exit status of `wait' is not always reliable.
+
+
+File: autoconf.info, Node: Limitations of Usual Tools, Prev: Limitations of Builtins, Up: Portable Shell
+
+11.15 Limitations of Usual Tools
+================================
+
+The small set of tools you can expect to find on any machine can still
+include some limitations you should be aware of.
+
+`awk'
+ Don't leave white space before the opening parenthesis in a user
+ function call. Posix does not allow this and GNU Awk rejects it:
+
+ $ gawk 'function die () { print "Aaaaarg!" }
+ BEGIN { die () }'
+ gawk: cmd. line:2: BEGIN { die () }
+ gawk: cmd. line:2: ^ parse error
+ $ gawk 'function die () { print "Aaaaarg!" }
+ BEGIN { die() }'
+ Aaaaarg!
+
+ Posix says that if a program contains only `BEGIN' actions, and
+ contains no instances of `getline', then the program merely
+ executes the actions without reading input. However, traditional
+ Awk implementations (such as Solaris 10 `awk') read and discard
+ input in this case. Portable scripts can redirect input from
+ `/dev/null' to work around the problem. For example:
+
+ awk 'BEGIN {print "hello world"}' </dev/null
+
+ Posix says that in an `END' action, `$NF' (and presumably, `$1')
+ retain their value from the last record read, if no intervening
+ `getline' occurred. However, some implementations (such as
+ Solaris 10 `/usr/bin/awk', `nawk', or Darwin `awk') reset these
+ variables. A workaround is to use an intermediate variable prior
+ to the `END' block. For example:
+
+ $ cat end.awk
+ { tmp = $1 }
+ END { print "a", $1, $NF, "b", tmp }
+ $ echo 1 | awk -f end.awk
+ a b 1
+ $ echo 1 | gawk -f end.awk
+ a 1 1 b 1
+
+ If you want your program to be deterministic, don't depend on `for'
+ on arrays:
+
+ $ cat for.awk
+ END {
+ arr["foo"] = 1
+ arr["bar"] = 1
+ for (i in arr)
+ print i
+ }
+ $ gawk -f for.awk </dev/null
+ foo
+ bar
+ $ nawk -f for.awk </dev/null
+ bar
+ foo
+
+ Some Awk implementations, such as HP-UX 11.0's native one,
+ mishandle anchors:
+
+ $ echo xfoo | $AWK '/foo|^bar/ { print }'
+ $ echo bar | $AWK '/foo|^bar/ { print }'
+ bar
+ $ echo xfoo | $AWK '/^bar|foo/ { print }'
+ xfoo
+ $ echo bar | $AWK '/^bar|foo/ { print }'
+ bar
+
+ Either do not depend on such patterns (i.e., use `/^(.*foo|bar)/',
+ or use a simple test to reject such implementations.
+
+ On `ia64-hp-hpux11.23', Awk mishandles `printf' conversions after
+ `%u':
+
+ $ awk 'BEGIN { printf "%u %d\n", 0, -1 }'
+ 0 0
+
+ AIX version 5.2 has an arbitrary limit of 399 on the length of
+ regular expressions and literal strings in an Awk program.
+
+ Traditional Awk implementations derived from Unix version 7, such
+ as Solaris `/bin/awk', have many limitations and do not conform to
+ Posix. Nowadays `AC_PROG_AWK' (*note Particular Programs::) finds
+ you an Awk that doesn't have these problems, but if for some
+ reason you prefer not to use `AC_PROG_AWK' you may need to address
+ them. For more detailed descriptions, see *note `awk' language
+ history: (gawk)Language History.
+
+ Traditional Awk does not support multidimensional arrays or
+ user-defined functions.
+
+ Traditional Awk does not support the `-v' option. You can use
+ assignments after the program instead, e.g., `$AWK '{print v $1}'
+ v=x'; however, don't forget that such assignments are not
+ evaluated until they are encountered (e.g., after any `BEGIN'
+ action).
+
+ Traditional Awk does not support the keywords `delete' or `do'.
+
+ Traditional Awk does not support the expressions `A?B:C', `!A',
+ `A^B', or `A^=B'.
+
+ Traditional Awk does not support the predefined `CONVFMT' or
+ `ENVIRON' variables.
+
+ Traditional Awk supports only the predefined functions `exp',
+ `index', `int', `length', `log', `split', `sprintf', `sqrt', and
+ `substr'.
+
+ Traditional Awk `getline' is not at all compatible with Posix;
+ avoid it.
+
+ Traditional Awk has `for (i in a) ...' but no other uses of the
+ `in' keyword. For example, it lacks `if (i in a) ...'.
+
+ In code portable to both traditional and modern Awk, `FS' must be a
+ string containing just one ordinary character, and similarly for
+ the field-separator argument to `split'.
+
+ Traditional Awk has a limit of 99 fields in a record. Since some
+ Awk implementations, like Tru64's, split the input even if you
+ don't refer to any field in the script, to circumvent this
+ problem, set `FS' to an unusual character and use `split'.
+
+ Traditional Awk has a limit of at most 99 bytes in a number
+ formatted by `OFMT'; for example, `OFMT="%.300e"; print 0.1;'
+ typically dumps core.
+
+ The original version of Awk had a limit of at most 99 bytes per
+ `split' field, 99 bytes per `substr' substring, and 99 bytes per
+ run of non-special characters in a `printf' format, but these bugs
+ have been fixed on all practical hosts that we know of.
+
+ HP-UX 11.00 and IRIX 6.5 Awk require that input files have a line
+ length of at most 3070 bytes.
+
+`basename'
+ Not all hosts have a working `basename'. You can use `expr'
+ instead.
+
+`cat'
+ Don't rely on any option.
+
+`cc'
+ The command `cc -c foo.c' traditionally produces an object file
+ named `foo.o'. Most compilers allow `-c' to be combined with `-o'
+ to specify a different object file name, but Posix does not
+ require this combination and a few compilers lack support for it.
+ *Note C Compiler::, for how GNU Make tests for this feature with
+ `AC_PROG_CC_C_O'.
+
+ When a compilation such as `cc -o foo foo.c' fails, some compilers
+ (such as CDS on Reliant Unix) leave a `foo.o'.
+
+ HP-UX `cc' doesn't accept `.S' files to preprocess and assemble.
+ `cc -c foo.S' appears to succeed, but in fact does nothing.
+
+ The default executable, produced by `cc foo.c', can be
+
+ * `a.out' -- usual Posix convention.
+
+ * `b.out' -- i960 compilers (including `gcc').
+
+ * `a.exe' -- DJGPP port of `gcc'.
+
+ * `a_out.exe' -- GNV `cc' wrapper for DEC C on OpenVMS.
+
+ * `foo.exe' -- various MS-DOS compilers.
+
+ The C compiler's traditional name is `cc', but other names like
+ `gcc' are common. Posix 1003.1-2001 specifies the name `c99', but
+ older Posix editions specified `c89' and anyway these standard
+ names are rarely used in practice. Typically the C compiler is
+ invoked from makefiles that use `$(CC)', so the value of the `CC'
+ make variable selects the compiler name.
+
+`chgrp'
+`chown'
+ It is not portable to change a file's group to a group that the
+ owner does not belong to.
+
+`chmod'
+ Avoid usages like `chmod -w file'; use `chmod a-w file' instead,
+ for two reasons. First, plain `-w' does not necessarily make the
+ file unwritable, since it does not affect mode bits that
+ correspond to bits in the file mode creation mask. Second, Posix
+ says that the `-w' might be interpreted as an
+ implementation-specific option, not as a mode; Posix suggests
+ using `chmod -- -w file' to avoid this confusion, but unfortunately
+ `--' does not work on some older hosts.
+
+`cmp'
+ `cmp' performs a raw data comparison of two files, while `diff'
+ compares two text files. Therefore, if you might compare DOS
+ files, even if only checking whether two files are different, use
+ `diff' to avoid spurious differences due to differences of newline
+ encoding.
+
+`cp'
+ Avoid the `-r' option, since Posix 1003.1-2004 marks it as
+ obsolescent and its behavior on special files is
+ implementation-defined. Use `-R' instead. On GNU hosts the two
+ options are equivalent, but on Solaris hosts (for example) `cp -r'
+ reads from pipes instead of replicating them. AIX 5.3 `cp -R' may
+ corrupt its own memory with some directory hierarchies and error
+ out or dump core:
+
+ mkdir -p 12345678/12345678/12345678/12345678
+ touch 12345678/12345678/x
+ cp -R 12345678 t
+ cp: 0653-440 12345678/12345678/: name too long.
+
+ Some `cp' implementations (e.g., BSD/OS 4.2) do not allow trailing
+ slashes at the end of nonexistent destination directories. To
+ avoid this problem, omit the trailing slashes. For example, use
+ `cp -R source /tmp/newdir' rather than `cp -R source /tmp/newdir/'
+ if `/tmp/newdir' does not exist.
+
+ The ancient SunOS 4 `cp' does not support `-f', although its `mv'
+ does.
+
+ Traditionally, file timestamps had 1-second resolution, and `cp
+ -p' copied the timestamps exactly. However, many modern file
+ systems have timestamps with 1-nanosecond resolution.
+ Unfortunately, some older `cp -p' implementations truncate
+ timestamps when copying files, which can cause the destination
+ file to appear to be older than the source. The exact amount of
+ truncation depends on the resolution of the system calls that `cp'
+ uses. Traditionally this was `utime', which has 1-second
+ resolution. Less-ancient `cp' implementations such as GNU Core
+ Utilities 5.0.91 (2003) use `utimes', which has 1-microsecond
+ resolution. Modern implementations such as GNU Core Utilities
+ 6.12 (2008) can set timestamps to the full nanosecond resolution,
+ using the modern system calls `futimens' and `utimensat' when they
+ are available. As of 2011, though, many platforms do not yet
+ fully support these new system calls.
+
+ Bob Proulx notes that `cp -p' always _tries_ to copy ownerships.
+ But whether it actually does copy ownerships or not is a system
+ dependent policy decision implemented by the kernel. If the
+ kernel allows it then it happens. If the kernel does not allow it
+ then it does not happen. It is not something `cp' itself has
+ control over.
+
+ In Unix System V any user can chown files to any other user, and
+ System V also has a non-sticky `/tmp'. That probably derives from
+ the heritage of System V in a business environment without hostile
+ users. BSD changed this to be a more secure model where only root
+ can `chown' files and a sticky `/tmp' is used. That undoubtedly
+ derives from the heritage of BSD in a campus environment.
+
+ GNU/Linux and Solaris by default follow BSD, but can be configured
+ to allow a System V style `chown'. On the other hand, HP-UX
+ follows System V, but can be configured to use the modern security
+ model and disallow `chown'. Since it is an
+ administrator-configurable parameter you can't use the name of the
+ kernel as an indicator of the behavior.
+
+`date'
+ Some versions of `date' do not recognize special `%' directives,
+ and unfortunately, instead of complaining, they just pass them
+ through, and exit with success:
+
+ $ uname -a
+ OSF1 medusa.sis.pasteur.fr V5.1 732 alpha
+ $ date "+%s"
+ %s
+
+`diff'
+ Option `-u' is nonportable.
+
+ Some implementations, such as Tru64's, fail when comparing to
+ `/dev/null'. Use an empty file instead.
+
+`dirname'
+ Not all hosts have a working `dirname', and you should instead use
+ `AS_DIRNAME' (*note Programming in M4sh::). For example:
+
+ dir=`dirname "$file"` # This is not portable.
+ dir=`AS_DIRNAME(["$file"])` # This is more portable.
+
+`egrep'
+ Posix 1003.1-2001 no longer requires `egrep', but many hosts do
+ not yet support the Posix replacement `grep -E'. Also, some
+ traditional implementations do not work on long input lines. To
+ work around these problems, invoke `AC_PROG_EGREP' and then use
+ `$EGREP'.
+
+ Portable extended regular expressions should use `\' only to escape
+ characters in the string `$()*+.?[\^{|'. For example, `\}' is not
+ portable, even though it typically matches `}'.
+
+ The empty alternative is not portable. Use `?' instead. For
+ instance with Digital Unix v5.0:
+
+ > printf "foo\n|foo\n" | $EGREP '^(|foo|bar)$'
+ |foo
+ > printf "bar\nbar|\n" | $EGREP '^(foo|bar|)$'
+ bar|
+ > printf "foo\nfoo|\n|bar\nbar\n" | $EGREP '^(foo||bar)$'
+ foo
+ |bar
+
+ `$EGREP' also suffers the limitations of `grep' (*note Limitations
+ of Usual Tools: grep.).
+
+`expr'
+ Not all implementations obey the Posix rule that `--' separates
+ options from arguments; likewise, not all implementations provide
+ the extension to Posix that the first argument can be treated as
+ part of a valid expression rather than an invalid option if it
+ begins with `-'. When performing arithmetic, use `expr 0 + $var'
+ if `$var' might be a negative number, to keep `expr' from
+ interpreting it as an option.
+
+ No `expr' keyword starts with `X', so use `expr X"WORD" :
+ 'XREGEX'' to keep `expr' from misinterpreting WORD.
+
+ Don't use `length', `substr', `match' and `index'.
+
+`expr' (`|')
+ You can use `|'. Although Posix does require that `expr '''
+ return the empty string, it does not specify the result when you
+ `|' together the empty string (or zero) with the empty string. For
+ example:
+
+ expr '' \| ''
+
+ Posix 1003.2-1992 returns the empty string for this case, but
+ traditional Unix returns `0' (Solaris is one such example). In
+ Posix 1003.1-2001, the specification was changed to match
+ traditional Unix's behavior (which is bizarre, but it's too late
+ to fix this). Please note that the same problem does arise when
+ the empty string results from a computation, as in:
+
+ expr bar : foo \| foo : bar
+
+ Avoid this portability problem by avoiding the empty string.
+
+`expr' (`:')
+ Portable `expr' regular expressions should use `\' to escape only
+ characters in the string `$()*.0123456789[\^n{}'. For example,
+ alternation, `\|', is common but Posix does not require its
+ support, so it should be avoided in portable scripts. Similarly,
+ `\+' and `\?' should be avoided.
+
+ Portable `expr' regular expressions should not begin with `^'.
+ Patterns are automatically anchored so leading `^' is not needed
+ anyway.
+
+ On the other hand, the behavior of the `$' anchor is not portable
+ on multi-line strings. Posix is ambiguous whether the anchor
+ applies to each line, as was done in older versions of the GNU
+ Core Utilities, or whether it applies only to the end of the
+ overall string, as in Coreutils 6.0 and most other implementations.
+
+ $ baz='foo
+ > bar'
+ $ expr "X$baz" : 'X\(foo\)$'
+
+ $ expr-5.97 "X$baz" : 'X\(foo\)$'
+ foo
+
+ The Posix standard is ambiguous as to whether `expr 'a' : '\(b\)''
+ outputs `0' or the empty string. In practice, it outputs the
+ empty string on most platforms, but portable scripts should not
+ assume this. For instance, the QNX 4.25 native `expr' returns `0'.
+
+ One might think that a way to get a uniform behavior would be to
+ use the empty string as a default value:
+
+ expr a : '\(b\)' \| ''
+
+ Unfortunately this behaves exactly as the original expression; see
+ the `expr' (`|') entry for more information.
+
+ Some ancient `expr' implementations (e.g., SunOS 4 `expr' and
+ Solaris 8 `/usr/ucb/expr') have a silly length limit that causes
+ `expr' to fail if the matched substring is longer than 120 bytes.
+ In this case, you might want to fall back on `echo|sed' if `expr'
+ fails. Nowadays this is of practical importance only for the rare
+ installer who mistakenly puts `/usr/ucb' before `/usr/bin' in
+ `PATH'.
+
+ On Mac OS X 10.4, `expr' mishandles the pattern `[^-]' in some
+ cases. For example, the command
+ expr Xpowerpc-apple-darwin8.1.0 : 'X[^-]*-[^-]*-\(.*\)'
+
+ outputs `apple-darwin8.1.0' rather than the correct `darwin8.1.0'.
+ This particular case can be worked around by substituting `[^--]'
+ for `[^-]'.
+
+ Don't leave, there is some more!
+
+ The QNX 4.25 `expr', in addition of preferring `0' to the empty
+ string, has a funny behavior in its exit status: it's always 1
+ when parentheses are used!
+
+ $ val=`expr 'a' : 'a'`; echo "$?: $val"
+ 0: 1
+ $ val=`expr 'a' : 'b'`; echo "$?: $val"
+ 1: 0
+
+ $ val=`expr 'a' : '\(a\)'`; echo "?: $val"
+ 1: a
+ $ val=`expr 'a' : '\(b\)'`; echo "?: $val"
+ 1: 0
+
+ In practice this can be a big problem if you are ready to catch
+ failures of `expr' programs with some other method (such as using
+ `sed'), since you may get twice the result. For instance
+
+ $ expr 'a' : '\(a\)' || echo 'a' | sed 's/^\(a\)$/\1/'
+
+ outputs `a' on most hosts, but `aa' on QNX 4.25. A simple
+ workaround consists of testing `expr' and using a variable set to
+ `expr' or to `false' according to the result.
+
+ Tru64 `expr' incorrectly treats the result as a number, if it can
+ be interpreted that way:
+
+ $ expr 00001 : '.*\(...\)'
+ 1
+
+ On HP-UX 11, `expr' only supports a single sub-expression.
+
+ $ expr 'Xfoo' : 'X\(f\(oo\)*\)$'
+ expr: More than one '\(' was used.
+
+`fgrep'
+ Posix 1003.1-2001 no longer requires `fgrep', but many hosts do
+ not yet support the Posix replacement `grep -F'. Also, some
+ traditional implementations do not work on long input lines. To
+ work around these problems, invoke `AC_PROG_FGREP' and then use
+ `$FGREP'.
+
+ Tru64/OSF 5.1 `fgrep' does not match an empty pattern.
+
+`find'
+ The option `-maxdepth' seems to be GNU specific. Tru64 v5.1,
+ NetBSD 1.5 and Solaris `find' commands do not understand it.
+
+ The replacement of `{}' is guaranteed only if the argument is
+ exactly _{}_, not if it's only a part of an argument. For
+ instance on DU, and HP-UX 10.20 and HP-UX 11:
+
+ $ touch foo
+ $ find . -name foo -exec echo "{}-{}" \;
+ {}-{}
+
+ while GNU `find' reports `./foo-./foo'.
+
+`grep'
+ Portable scripts can rely on the `grep' options `-c', `-l', `-n',
+ and `-v', but should avoid other options. For example, don't use
+ `-w', as Posix does not require it and Irix 6.5.16m's `grep' does
+ not support it. Also, portable scripts should not combine `-c'
+ with `-l', as Posix does not allow this.
+
+ Some of the options required by Posix are not portable in practice.
+ Don't use `grep -q' to suppress output, because many `grep'
+ implementations (e.g., Solaris) do not support `-q'. Don't use
+ `grep -s' to suppress output either, because Posix says `-s' does
+ not suppress output, only some error messages; also, the `-s'
+ option of traditional `grep' behaved like `-q' does in most modern
+ implementations. Instead, redirect the standard output and
+ standard error (in case the file doesn't exist) of `grep' to
+ `/dev/null'. Check the exit status of `grep' to determine whether
+ it found a match.
+
+ The QNX4 implementation fails to count lines with `grep -c '$'',
+ but works with `grep -c '^''. Other alternatives for counting
+ lines are to use `sed -n '$='' or `wc -l'.
+
+ Some traditional `grep' implementations do not work on long input
+ lines. On AIX the default `grep' silently truncates long lines on
+ the input before matching.
+
+ Also, many implementations do not support multiple regexps with
+ `-e': they either reject `-e' entirely (e.g., Solaris) or honor
+ only the last pattern (e.g., IRIX 6.5 and NeXT). To work around
+ these problems, invoke `AC_PROG_GREP' and then use `$GREP'.
+
+ Another possible workaround for the multiple `-e' problem is to
+ separate the patterns by newlines, for example:
+
+ grep 'foo
+ bar' in.txt
+
+ except that this fails with traditional `grep' implementations and
+ with OpenBSD 3.8 `grep'.
+
+ Traditional `grep' implementations (e.g., Solaris) do not support
+ the `-E' or `-F' options. To work around these problems, invoke
+ `AC_PROG_EGREP' and then use `$EGREP', and similarly for
+ `AC_PROG_FGREP' and `$FGREP'. Even if you are willing to require
+ support for Posix `grep', your script should not use both `-E' and
+ `-F', since Posix does not allow this combination.
+
+ Portable `grep' regular expressions should use `\' only to escape
+ characters in the string `$()*.0123456789[\^{}'. For example,
+ alternation, `\|', is common but Posix does not require its
+ support in basic regular expressions, so it should be avoided in
+ portable scripts. Solaris and HP-UX `grep' do not support it.
+ Similarly, the following escape sequences should also be avoided:
+ `\<', `\>', `\+', `\?', `\`', `\'', `\B', `\b', `\S', `\s', `\W',
+ and `\w'.
+
+ Posix does not specify the behavior of `grep' on binary files. An
+ example where this matters is using BSD `grep' to search text that
+ includes embedded ANSI escape sequences for colored output to
+ terminals (`\033[m' is the sequence to restore normal output); the
+ behavior depends on whether input is seekable:
+
+ $ printf 'esc\033[mape\n' > sample
+ $ grep . sample
+ Binary file sample matches
+ $ cat sample | grep .
+ escape
+
+`join'
+ Solaris 8 `join' has bugs when the second operand is standard
+ input, and when standard input is a pipe. For example, the
+ following shell script causes Solaris 8 `join' to loop forever:
+
+ cat >file <<'EOF'
+ 1 x
+ 2 y
+ EOF
+ cat file | join file -
+
+ Use `join - file' instead.
+
+ On NetBSD, `join -a 1 file1 file2' mistakenly behaves like `join
+ -a 1 -a 2 1 file1 file2', resulting in a usage warning; the
+ workaround is to use `join -a1 file1 file2' instead.
+
+`ln'
+ Don't rely on `ln' having a `-f' option. Symbolic links are not
+ available on old systems; use `$(LN_S)' as a portable substitute.
+
+ For versions of the DJGPP before 2.04, `ln' emulates symbolic links
+ to executables by generating a stub that in turn calls the real
+ program. This feature also works with nonexistent files like in
+ the Posix spec. So `ln -s file link' generates `link.exe', which
+ attempts to call `file.exe' if run. But this feature only works
+ for executables, so `cp -p' is used instead for these systems.
+ DJGPP versions 2.04 and later have full support for symbolic links.
+
+`ls'
+ The portable options are `-acdilrtu'. Current practice is for
+ `-l' to output both owner and group, even though ancient versions
+ of `ls' omitted the group.
+
+ On ancient hosts, `ls foo' sent the diagnostic `foo not found' to
+ standard output if `foo' did not exist. Hence a shell command
+ like `sources=`ls *.c 2>/dev/null`' did not always work, since it
+ was equivalent to `sources='*.c not found'' in the absence of `.c'
+ files. This is no longer a practical problem, since current `ls'
+ implementations send diagnostics to standard error.
+
+ The behavior of `ls' on a directory that is being concurrently
+ modified is not always predictable, because of a data race where
+ cached information returned by `readdir' does not match the current
+ directory state. In fact, MacOS 10.5 has an intermittent bug where
+ `readdir', and thus `ls', sometimes lists a file more than once if
+ other files were added or removed from the directory immediately
+ prior to the `ls' call. Since `ls' already sorts its output, the
+ duplicate entries can be avoided by piping the results through
+ `uniq'.
+
+`mkdir'
+ No `mkdir' option is portable to older systems. Instead of `mkdir
+ -p FILE-NAME', you should use `AS_MKDIR_P(FILE-NAME)' (*note
+ Programming in M4sh::) or `AC_PROG_MKDIR_P' (*note Particular
+ Programs::).
+
+ Combining the `-m' and `-p' options, as in `mkdir -m go-w -p DIR',
+ often leads to trouble. FreeBSD `mkdir' incorrectly attempts to
+ change the permissions of DIR even if it already exists. HP-UX
+ 11.23 and IRIX 6.5 `mkdir' often assign the wrong permissions to
+ any newly-created parents of DIR.
+
+ Posix does not clearly specify whether `mkdir -p foo' should
+ succeed when `foo' is a symbolic link to an already-existing
+ directory. The GNU Core Utilities 5.1.0 `mkdir' succeeds, but
+ Solaris `mkdir' fails.
+
+ Traditional `mkdir -p' implementations suffer from race conditions.
+ For example, if you invoke `mkdir -p a/b' and `mkdir -p a/c' at
+ the same time, both processes might detect that `a' is missing,
+ one might create `a', then the other might try to create `a' and
+ fail with a `File exists' diagnostic. The GNU Core Utilities
+ (`fileutils' version 4.1), FreeBSD 5.0, NetBSD 2.0.2, and OpenBSD
+ 2.4 are known to be race-free when two processes invoke `mkdir -p'
+ simultaneously, but earlier versions are vulnerable. Solaris
+ `mkdir' is still vulnerable as of Solaris 10, and other
+ traditional Unix systems are probably vulnerable too. This
+ possible race is harmful in parallel builds when several Make
+ rules call `mkdir -p' to construct directories. You may use
+ `install-sh -d' as a safe replacement, provided this script is
+ recent enough; the copy shipped with Autoconf 2.60 and Automake
+ 1.10 is OK, but copies from older versions are vulnerable.
+
+`mkfifo'
+`mknod'
+ The GNU Coding Standards state that `mknod' is safe to use on
+ platforms where it has been tested to exist; but it is generally
+ portable only for creating named FIFOs, since device numbers are
+ platform-specific. Autotest uses `mkfifo' to implement parallel
+ testsuites. Posix states that behavior is unspecified when
+ opening a named FIFO for both reading and writing; on at least
+ Cygwin, this results in failure on any attempt to read or write to
+ that file descriptor.
+
+`mktemp'
+ Shell scripts can use temporary files safely with `mktemp', but it
+ does not exist on all systems. A portable way to create a safe
+ temporary file name is to create a temporary directory with mode
+ 700 and use a file inside this directory. Both methods prevent
+ attackers from gaining control, though `mktemp' is far less likely
+ to fail gratuitously under attack.
+
+ Here is sample code to create a new temporary directory `$dir'
+ safely:
+
+ # Create a temporary directory $dir in $TMPDIR (default /tmp).
+ # Use mktemp if possible; otherwise fall back on mkdir,
+ # with $RANDOM to make collisions less likely.
+ : "${TMPDIR:=/tmp}"
+ {
+ dir=`
+ (umask 077 && mktemp -d "$TMPDIR/fooXXXXXX") 2>/dev/null
+ ` &&
+ test -d "$dir"
+ } || {
+ dir=$TMPDIR/foo$$-$RANDOM
+ (umask 077 && mkdir "$dir")
+ } || exit $?
+
+`mv'
+ The only portable options are `-f' and `-i'.
+
+ Moving individual files between file systems is portable (it was
+ in Unix version 6), but it is not always atomic: when doing `mv
+ new existing', there's a critical section where neither the old
+ nor the new version of `existing' actually exists.
+
+ On some systems moving files from `/tmp' can sometimes cause
+ undesirable (but perfectly valid) warnings, even if you created
+ these files. This is because `/tmp' belongs to a group that
+ ordinary users are not members of, and files created in `/tmp'
+ inherit the group of `/tmp'. When the file is copied, `mv' issues
+ a diagnostic without failing:
+
+ $ touch /tmp/foo
+ $ mv /tmp/foo .
+ error-->mv: ./foo: set owner/group (was: 100/0): Operation not permitted
+ $ echo $?
+ 0
+ $ ls foo
+ foo
+
+ This annoying behavior conforms to Posix, unfortunately.
+
+ Moving directories across mount points is not portable, use `cp'
+ and `rm'.
+
+ DOS variants cannot rename or remove open files, and do not
+ support commands like `mv foo bar >foo', even though this is
+ perfectly portable among Posix hosts.
+
+`od'
+ In Mac OS X 10.3, `od' does not support the standard Posix options
+ `-A', `-j', `-N', or `-t', or the XSI option `-s'. The only
+ supported Posix option is `-v', and the only supported XSI options
+ are those in `-bcdox'. The BSD `hexdump' program can be used
+ instead.
+
+ This problem no longer exists in Mac OS X 10.4.3.
+
+`rm'
+ The `-f' and `-r' options are portable.
+
+ It is not portable to invoke `rm' without options or operands. On
+ the other hand, Posix now requires `rm -f' to silently succeed
+ when there are no operands (useful for constructs like `rm -rf
+ $filelist' without first checking if `$filelist' was empty). But
+ this was not always portable; at least NetBSD `rm' built before
+ 2008 would fail with a diagnostic.
+
+ A file might not be removed even if its parent directory is
+ writable and searchable. Many Posix hosts cannot remove a mount
+ point, a named stream, a working directory, or a last link to a
+ file that is being executed.
+
+ DOS variants cannot rename or remove open files, and do not
+ support commands like `rm foo >foo', even though this is perfectly
+ portable among Posix hosts.
+
+`rmdir'
+ Just as with `rm', some platforms refuse to remove a working
+ directory.
+
+`sed'
+ Patterns should not include the separator (unless escaped), even
+ as part of a character class. In conformance with Posix, the Cray
+ `sed' rejects `s/[^/]*$//': use `s%[^/]*$%%'. Even when escaped,
+ patterns should not include separators that are also used as `sed'
+ metacharacters. For example, GNU sed 4.0.9 rejects
+ `s,x\{1\,\},,', while sed 4.1 strips the backslash before the comma
+ before evaluating the basic regular expression.
+
+ Avoid empty patterns within parentheses (i.e., `\(\)'). Posix does
+ not require support for empty patterns, and Unicos 9 `sed' rejects
+ them.
+
+ Unicos 9 `sed' loops endlessly on patterns like `.*\n.*'.
+
+ Sed scripts should not use branch labels longer than 7 characters
+ and should not contain comments; AIX 5.3 `sed' rejects indented
+ comments. HP-UX sed has a limit of 99 commands (not counting `:'
+ commands) and 48 labels, which cannot be circumvented by using
+ more than one script file. It can execute up to 19 reads with the
+ `r' command per cycle. Solaris `/usr/ucb/sed' rejects usages that
+ exceed a limit of about 6000 bytes for the internal representation
+ of commands.
+
+ Avoid redundant `;', as some `sed' implementations, such as NetBSD
+ 1.4.2's, incorrectly try to interpret the second `;' as a command:
+
+ $ echo a | sed 's/x/x/;;s/x/x/'
+ sed: 1: "s/x/x/;;s/x/x/": invalid command code ;
+
+ Some `sed' implementations have a buffer limited to 4000 bytes,
+ and this limits the size of input lines, output lines, and internal
+ buffers that can be processed portably. Likewise, not all `sed'
+ implementations can handle embedded `NUL' or a missing trailing
+ newline.
+
+ Remember that ranges within a bracket expression of a regular
+ expression are only well-defined in the `C' (or `POSIX') locale.
+ Meanwhile, support for character classes like `[[:upper:]]' is not
+ yet universal, so if you cannot guarantee the setting of `LC_ALL',
+ it is better to spell out a range `[ABCDEFGHIJKLMNOPQRSTUVWXYZ]'
+ than to rely on `[A-Z]'.
+
+ Additionally, Posix states that regular expressions are only
+ well-defined on characters. Unfortunately, there exist platforms
+ such as MacOS X 10.5 where not all 8-bit byte values are valid
+ characters, even though that platform has a single-byte `C'
+ locale. And Posix allows the existence of a multi-byte `C'
+ locale, although that does not yet appear to be a common
+ implementation. At any rate, it means that not all bytes will be
+ matched by the regular expression `.':
+
+ $ printf '\200\n' | LC_ALL=C sed -n /./p | wc -l
+ 0
+ $ printf '\200\n' | LC_ALL=en_US.ISO8859-1 sed -n /./p | wc -l
+ 1
+
+ Portable `sed' regular expressions should use `\' only to escape
+ characters in the string `$()*.0123456789[\^n{}'. For example,
+ alternation, `\|', is common but Posix does not require its
+ support, so it should be avoided in portable scripts. Solaris
+ `sed' does not support alternation; e.g., `sed '/a\|b/d'' deletes
+ only lines that contain the literal string `a|b'. Similarly, `\+'
+ and `\?' should be avoided.
+
+ Anchors (`^' and `$') inside groups are not portable.
+
+ Nested parentheses in patterns (e.g., `\(\(a*\)b*)\)') are quite
+ portable to current hosts, but was not supported by some ancient
+ `sed' implementations like SVR3.
+
+ Some `sed' implementations, e.g., Solaris, restrict the special
+ role of the asterisk `*' to one-character regular expressions and
+ back-references, and the special role of interval expressions
+ `\{M\}', `\{M,\}', or `\{M,N\}' to one-character regular
+ expressions. This may lead to unexpected behavior:
+
+ $ echo '1*23*4' | /usr/bin/sed 's/\(.\)*/x/g'
+ x2x4
+ $ echo '1*23*4' | /usr/xpg4/bin/sed 's/\(.\)*/x/g'
+ x
+
+ The `-e' option is mostly portable. However, its argument cannot
+ start with `a', `c', or `i', as this runs afoul of a Tru64 5.1 bug.
+ Also, its argument cannot be empty, as this fails on AIX 5.3.
+ Some people prefer to use `-e':
+
+ sed -e 'COMMAND-1' \
+ -e 'COMMAND-2'
+
+ as opposed to the equivalent:
+
+ sed '
+ COMMAND-1
+ COMMAND-2
+ '
+
+ The following usage is sometimes equivalent:
+
+ sed 'COMMAND-1;COMMAND-2'
+
+ but Posix says that this use of a semicolon has undefined effect if
+ COMMAND-1's verb is `{', `a', `b', `c', `i', `r', `t', `w', `:',
+ or `#', so you should use semicolon only with simple scripts that
+ do not use these verbs.
+
+ Posix up to the 2008 revision requires the argument of the `-e'
+ option to be a syntactically complete script. GNU `sed' allows to
+ pass multiple script fragments, each as argument of a separate
+ `-e' option, that are then combined, with newlines between the
+ fragments, and a future Posix revision may allow this as well.
+ This approach is not portable with script fragments ending in
+ backslash; for example, the `sed' programs on Solaris 10, HP-UX
+ 11, and AIX don't allow splitting in this case:
+
+ $ echo a | sed -n -e 'i\
+ 0'
+ 0
+ $ echo a | sed -n -e 'i\' -e 0
+ Unrecognized command: 0
+
+ In practice, however, this technique of joining fragments through
+ `-e' works for multiple `sed' functions within `{' and `}', even
+ if that is not specified by Posix:
+
+ $ echo a | sed -n -e '/a/{' -e s/a/b/ -e p -e '}'
+ b
+
+ Commands inside { } brackets are further restricted. Posix 2008
+ says that they cannot be preceded by addresses, `!', or `;', and
+ that each command must be followed immediately by a newline,
+ without any intervening blanks or semicolons. The closing bracket
+ must be alone on a line, other than white space preceding or
+ following it. However, a future version of Posix may standardize
+ the use of addresses within brackets.
+
+ Contrary to yet another urban legend, you may portably use `&' in
+ the replacement part of the `s' command to mean "what was
+ matched". All descendants of Unix version 7 `sed' (at least; we
+ don't have first hand experience with older `sed' implementations)
+ have supported it.
+
+ Posix requires that you must not have any white space between `!'
+ and the following command. It is OK to have blanks between the
+ address and the `!'. For instance, on Solaris:
+
+ $ echo "foo" | sed -n '/bar/ ! p'
+ error-->Unrecognized command: /bar/ ! p
+ $ echo "foo" | sed -n '/bar/! p'
+ error-->Unrecognized command: /bar/! p
+ $ echo "foo" | sed -n '/bar/ !p'
+ foo
+
+ Posix also says that you should not combine `!' and `;'. If you
+ use `!', it is best to put it on a command that is delimited by
+ newlines rather than `;'.
+
+ Also note that Posix requires that the `b', `t', `r', and `w'
+ commands be followed by exactly one space before their argument.
+ On the other hand, no white space is allowed between `:' and the
+ subsequent label name.
+
+ If a sed script is specified on the command line and ends in an
+ `a', `c', or `i' command, the last line of inserted text should be
+ followed by a newline. Otherwise some `sed' implementations
+ (e.g., OpenBSD 3.9) do not append a newline to the inserted text.
+
+ Many `sed' implementations (e.g., MacOS X 10.4, OpenBSD 3.9,
+ Solaris 10 `/usr/ucb/sed') strip leading white space from the text
+ of `a', `c', and `i' commands. Prepend a backslash to work around
+ this incompatibility with Posix:
+
+ $ echo flushleft | sed 'a\
+ > indented
+ > '
+ flushleft
+ indented
+ $ echo foo | sed 'a\
+ > \ indented
+ > '
+ flushleft
+ indented
+
+ Posix requires that with an empty regular expression, the last
+ non-empty regular expression from either an address specification
+ or substitution command is applied. However, busybox 1.6.1
+ complains when using a substitution command with a replacement
+ containing a back-reference to an empty regular expression; the
+ workaround is repeating the regular expression.
+
+ $ echo abc | busybox sed '/a\(b\)c/ s//\1/'
+ sed: No previous regexp.
+ $ echo abc | busybox sed '/a\(b\)c/ s/a\(b\)c/\1/'
+ b
+
+`sed' (`t')
+ Some old systems have `sed' that "forget" to reset their `t' flag
+ when starting a new cycle. For instance on MIPS RISC/OS, and on
+ IRIX 5.3, if you run the following `sed' script (the line numbers
+ are not actual part of the texts):
+
+ s/keep me/kept/g # a
+ t end # b
+ s/.*/deleted/g # c
+ :end # d
+
+ on
+
+ delete me # 1
+ delete me # 2
+ keep me # 3
+ delete me # 4
+
+ you get
+
+ deleted
+ delete me
+ kept
+ deleted
+
+ instead of
+
+ deleted
+ deleted
+ kept
+ deleted
+
+ Why? When processing line 1, (c) matches, therefore sets the `t'
+ flag, and the output is produced. When processing line 2, the `t'
+ flag is still set (this is the bug). Command (a) fails to match,
+ but `sed' is not supposed to clear the `t' flag when a
+ substitution fails. Command (b) sees that the flag is set,
+ therefore it clears it, and jumps to (d), hence you get `delete me'
+ instead of `deleted'. When processing line (3), `t' is clear, (a)
+ matches, so the flag is set, hence (b) clears the flags and jumps.
+ Finally, since the flag is clear, line 4 is processed properly.
+
+ There are two things one should remember about `t' in `sed'.
+ Firstly, always remember that `t' jumps if _some_ substitution
+ succeeded, not only the immediately preceding substitution.
+ Therefore, always use a fake `t clear' followed by a `:clear' on
+ the next line, to reset the `t' flag where needed.
+
+ Secondly, you cannot rely on `sed' to clear the flag at each new
+ cycle.
+
+ One portable implementation of the script above is:
+
+ t clear
+ :clear
+ s/keep me/kept/g
+ t end
+ s/.*/deleted/g
+ :end
+
+`sleep'
+ Using `sleep' is generally portable. However, remember that
+ adding a `sleep' to work around timestamp issues, with a minimum
+ granularity of one second, doesn't scale well for parallel builds
+ on modern machines with sub-second process completion.
+
+`sort'
+ Remember that sort order is influenced by the current locale.
+ Inside `configure', the C locale is in effect, but in Makefile
+ snippets, you may need to specify `LC_ALL=C sort'.
+
+`tar'
+ There are multiple file formats for `tar'; if you use Automake,
+ the macro `AM_INIT_AUTOMAKE' has some options controlling which
+ level of portability to use.
+
+`touch'
+ If you specify the desired timestamp (e.g., with the `-r' option),
+ older `touch' implementations use the `utime' or `utimes' system
+ call, which can result in the same kind of timestamp truncation
+ problems that `cp -p' has.
+
+ On ancient BSD systems, `touch' or any command that results in an
+ empty file does not update the timestamps, so use a command like
+ `echo' as a workaround. Also, GNU `touch' 3.16r (and presumably
+ all before that) fails to work on SunOS 4.1.3 when the empty file
+ is on an NFS-mounted 4.2 volume. However, these problems are no
+ longer of practical concern.
+
+`tr'
+ Not all versions of `tr' handle all backslash character escapes.
+ For example, Solaris 10 `/usr/ucb/tr' falls over, even though
+ Solaris contains more modern `tr' in other locations. Using octal
+ escapes is more portable for carriage returns, since `\015' is the
+ same for both ASCII and EBCDIC, and since use of literal carriage
+ returns in scripts causes a number of other problems. But for
+ other characters, like newline, using octal escapes ties the
+ operation to ASCII, so it is better to use literal characters.
+
+ $ { echo moon; echo light; } | /usr/ucb/tr -d '\n' ; echo
+ moo
+ light
+ $ { echo moon; echo light; } | /usr/bin/tr -d '\n' ; echo
+ moonlight
+ $ { echo moon; echo light; } | /usr/ucb/tr -d '\012' ; echo
+ moonlight
+ $ nl='
+ '; { echo moon; echo light; } | /usr/ucb/tr -d "$nl" ; echo
+ moonlight
+
+ Not all versions of `tr' recognize direct ranges of characters: at
+ least Solaris `/usr/bin/tr' still fails to do so. But you can use
+ `/usr/xpg4/bin/tr' instead, or add brackets (which in Posix
+ transliterate to themselves).
+
+ $ echo "Hazy Fantazy" | LC_ALL=C /usr/bin/tr a-z A-Z
+ HAZy FAntAZy
+ $ echo "Hazy Fantazy" | LC_ALL=C /usr/bin/tr '[a-z]' '[A-Z]'
+ HAZY FANTAZY
+ $ echo "Hazy Fantazy" | LC_ALL=C /usr/xpg4/bin/tr a-z A-Z
+ HAZY FANTAZY
+
+ When providing two arguments, be sure the second string is at
+ least as long as the first.
+
+ $ echo abc | /usr/xpg4/bin/tr bc d
+ adc
+ $ echo abc | coreutils/tr bc d
+ add
+
+ Posix requires `tr' to operate on binary files. But at least
+ Solaris `/usr/ucb/tr' and `/usr/bin/tr' silently discard `NUL' in
+ the input prior to doing any translation. When using `tr' to
+ process a binary file that may contain `NUL' bytes, it is
+ necessary to use `/usr/xpg4/bin/tr' instead, or `/usr/xpg6/bin/tr'
+ if that is available.
+
+ $ printf 'a\0b' | /usr/ucb/tr x x | od -An -tx1
+ 61 62
+ $ printf 'a\0b' | /usr/bin/tr x x | od -An -tx1
+ 61 62
+ $ printf 'a\0b' | /usr/xpg4/bin/tr x x | od -An -tx1
+ 61 00 62
+
+ Solaris `/usr/ucb/tr' additionally fails to handle `\0' as the
+ octal escape for `NUL'.
+
+ $ printf 'abc' | /usr/ucb/tr 'bc' '\0d' | od -An -tx1
+ 61 62 63
+ $ printf 'abc' | /usr/bin/tr 'bc' '\0d' | od -An -tx1
+ 61 00 64
+ $ printf 'abc' | /usr/xpg4/bin/tr 'bc' '\0d' | od -An -tx1
+ 61 00 64
+
+
+
+File: autoconf.info, Node: Portable Make, Next: Portable C and C++, Prev: Portable Shell, Up: Top
+
+12 Portable Make Programming
+****************************
+
+Writing portable makefiles is an art. Since a makefile's commands are
+executed by the shell, you must consider the shell portability issues
+already mentioned. However, other issues are specific to `make' itself.
+
+* Menu:
+
+* $< in Ordinary Make Rules:: $< in ordinary rules
+* Failure in Make Rules:: Failing portably in rules
+* Special Chars in Names:: Special Characters in Macro Names
+* Backslash-Newline-Empty:: Empty lines after backslash-newline
+* Backslash-Newline Comments:: Spanning comments across line boundaries
+* Long Lines in Makefiles:: Line length limitations
+* Macros and Submakes:: `make macro=value' and submakes
+* The Make Macro MAKEFLAGS:: `$(MAKEFLAGS)' portability issues
+* The Make Macro SHELL:: `$(SHELL)' portability issues
+* Parallel Make:: Parallel `make' quirks
+* Comments in Make Rules:: Other problems with Make comments
+* Newlines in Make Rules:: Using literal newlines in rules
+* Comments in Make Macros:: Other problems with Make comments in macros
+* Trailing whitespace in Make Macros:: Macro substitution problems
+* Command-line Macros and whitespace:: Whitespace trimming of values
+* obj/ and Make:: Don't name a subdirectory `obj'
+* make -k Status:: Exit status of `make -k'
+* VPATH and Make:: `VPATH' woes
+* Single Suffix Rules:: Single suffix rules and separated dependencies
+* Timestamps and Make:: Subsecond timestamp resolution
+
+
+File: autoconf.info, Node: $< in Ordinary Make Rules, Next: Failure in Make Rules, Up: Portable Make
+
+12.1 `$<' in Ordinary Make Rules
+================================
+
+Posix says that the `$<' construct in makefiles can be used only in
+inference rules and in the `.DEFAULT' rule; its meaning in ordinary
+rules is unspecified. Solaris `make' for instance replaces it with the
+empty string. OpenBSD (3.0 and later) `make' diagnoses these uses and
+errors out.
+
+
+File: autoconf.info, Node: Failure in Make Rules, Next: Special Chars in Names, Prev: $< in Ordinary Make Rules, Up: Portable Make
+
+12.2 Failure in Make Rules
+==========================
+
+Posix 2008 requires that `make' must invoke each command with the
+equivalent of a `sh -e -c' subshell, which causes the subshell to exit
+immediately if a subsidiary simple-command fails, although not all
+`make' implementations have historically followed this rule. For
+example, the command `touch T; rm -f U' may attempt to remove `U' even
+if the `touch' fails, although this is not permitted with Posix make.
+One way to work around failures in simple commands is to reword them so
+that they always succeed, e.g., `touch T || :; rm -f U'. However, even
+this approach can run into common bugs in BSD implementations of the
+`-e' option of `sh' and `set' (*note Limitations of Shell Builtins:
+set.), so if you are worried about porting to buggy BSD shells it may
+be simpler to migrate complicated `make' actions into separate scripts.
+
+
+File: autoconf.info, Node: Special Chars in Names, Next: Backslash-Newline-Empty, Prev: Failure in Make Rules, Up: Portable Make
+
+12.3 Special Characters in Make Macro Names
+===========================================
+
+Posix limits macro names to nonempty strings containing only ASCII
+letters and digits, `.', and `_'. Many `make' implementations allow a
+wider variety of characters, but portable makefiles should avoid them.
+It is portable to start a name with a special character, e.g.,
+`$(.FOO)'.
+
+ Some ancient `make' implementations don't support leading
+underscores in macro names. An example is NEWS-OS 4.2R.
+
+ $ cat Makefile
+ _am_include = #
+ _am_quote =
+ all:; @echo this is test
+ $ make
+ Make: Must be a separator on rules line 2. Stop.
+ $ cat Makefile2
+ am_include = #
+ am_quote =
+ all:; @echo this is test
+ $ make -f Makefile2
+ this is test
+
+However, this problem is no longer of practical concern.
+
+
+File: autoconf.info, Node: Backslash-Newline-Empty, Next: Backslash-Newline Comments, Prev: Special Chars in Names, Up: Portable Make
+
+12.4 Backslash-Newline Before Empty Lines
+=========================================
+
+A bug in Bash 2.03 can cause problems if a Make rule contains a
+backslash-newline followed by line that expands to nothing. For
+example, on Solaris 8:
+
+ SHELL = /bin/bash
+ EMPTY =
+ foo:
+ touch foo \
+ $(EMPTY)
+
+executes
+
+ /bin/bash -c 'touch foo \
+ '
+
+which fails with a syntax error, due to the Bash bug. To avoid this
+problem, avoid nullable macros in the last line of a multiline command.
+
+ On some versions of HP-UX, `make' reads multiple newlines following
+a backslash, continuing to the next non-empty line. For example,
+
+ FOO = one \
+
+ BAR = two
+
+ test:
+ : FOO is "$(FOO)"
+ : BAR is "$(BAR)"
+
+shows `FOO' equal to `one BAR = two'. Other implementations sensibly
+let a backslash continue only to the immediately following line.
+
+
+File: autoconf.info, Node: Backslash-Newline Comments, Next: Long Lines in Makefiles, Prev: Backslash-Newline-Empty, Up: Portable Make
+
+12.5 Backslash-Newline in Make Comments
+=======================================
+
+According to Posix, Make comments start with `#' and continue until an
+unescaped newline is reached.
+
+ $ cat Makefile
+ # A = foo \
+ bar \
+ baz
+
+ all:
+ @echo ok
+ $ make # GNU make
+ ok
+
+However this is not always the case. Some implementations discard
+everything from `#' through the end of the line, ignoring any trailing
+backslash.
+
+ $ pmake # BSD make
+ "Makefile", line 3: Need an operator
+ Fatal errors encountered -- cannot continue
+
+Therefore, if you want to comment out a multi-line definition, prefix
+each line with `#', not only the first.
+
+ # A = foo \
+ # bar \
+ # baz
+
+
+File: autoconf.info, Node: Long Lines in Makefiles, Next: Macros and Submakes, Prev: Backslash-Newline Comments, Up: Portable Make
+
+12.6 Long Lines in Makefiles
+============================
+
+Tru64 5.1's `make' has been reported to crash when given a makefile
+with lines longer than around 20 kB. Earlier versions are reported to
+exit with `Line too long' diagnostics.
+
+
+File: autoconf.info, Node: Macros and Submakes, Next: The Make Macro MAKEFLAGS, Prev: Long Lines in Makefiles, Up: Portable Make
+
+12.7 `make macro=value' and Submakes
+====================================
+
+A command-line variable definition such as `foo=bar' overrides any
+definition of `foo' in a makefile. Some `make' implementations (such
+as GNU `make') propagate this override to subsidiary invocations of
+`make'. Some other implementations do not pass the substitution along
+to submakes.
+
+ $ cat Makefile
+ foo = foo
+ one:
+ @echo $(foo)
+ $(MAKE) two
+ two:
+ @echo $(foo)
+ $ make foo=bar # GNU make 3.79.1
+ bar
+ make two
+ make[1]: Entering directory `/home/adl'
+ bar
+ make[1]: Leaving directory `/home/adl'
+ $ pmake foo=bar # BSD make
+ bar
+ pmake two
+ foo
+
+ You have a few possibilities if you do want the `foo=bar' override
+to propagate to submakes. One is to use the `-e' option, which causes
+all environment variables to have precedence over the makefile macro
+definitions, and declare foo as an environment variable:
+
+ $ env foo=bar make -e
+
+ The `-e' option is propagated to submakes automatically, and since
+the environment is inherited between `make' invocations, the `foo'
+macro is overridden in submakes as expected.
+
+ This syntax (`foo=bar make -e') is portable only when used outside
+of a makefile, for instance from a script or from the command line.
+When run inside a `make' rule, GNU `make' 3.80 and prior versions
+forget to propagate the `-e' option to submakes.
+
+ Moreover, using `-e' could have unexpected side effects if your
+environment contains some other macros usually defined by the makefile.
+(See also the note about `make -e' and `SHELL' below.)
+
+ If you can foresee all macros that a user might want to override,
+then you can propagate them to submakes manually, from your makefile:
+
+ foo = foo
+ one:
+ @echo $(foo)
+ $(MAKE) foo=$(foo) two
+ two:
+ @echo $(foo)
+
+ Another way to propagate a variable to submakes in a portable way is
+to expand an extra variable in every invocation of `$(MAKE)' within
+your makefile:
+
+ foo = foo
+ one:
+ @echo $(foo)
+ $(MAKE) $(SUBMAKEFLAGS) two
+ two:
+ @echo $(foo)
+
+ Users must be aware that this technique is in use to take advantage
+of it, e.g. with `make foo=bar SUBMAKEFLAGS='foo=bar'', but it allows
+any macro to be overridden. Makefiles generated by `automake' use this
+technique, expanding `$(AM_MAKEFLAGS)' on the command lines of submakes
+(*note Automake: (automake)Subdirectories.).
+
+
+File: autoconf.info, Node: The Make Macro MAKEFLAGS, Next: The Make Macro SHELL, Prev: Macros and Submakes, Up: Portable Make
+
+12.8 The Make Macro MAKEFLAGS
+=============================
+
+Posix requires `make' to use `MAKEFLAGS' to affect the current and
+recursive invocations of make, but allows implementations several
+formats for the variable. It is tricky to parse `$MAKEFLAGS' to
+determine whether `-s' for silent execution or `-k' for continued
+execution are in effect. For example, you cannot assume that the first
+space-separated word in `$MAKEFLAGS' contains single-letter options,
+since in the Cygwin version of GNU `make' it is either `--unix' or
+`--win32' with the second word containing single-letter options.
+
+ $ cat Makefile
+ all:
+ @echo MAKEFLAGS = $(MAKEFLAGS)
+ $ make
+ MAKEFLAGS = --unix
+ $ make -k
+ MAKEFLAGS = --unix -k
+
+
+File: autoconf.info, Node: The Make Macro SHELL, Next: Parallel Make, Prev: The Make Macro MAKEFLAGS, Up: Portable Make
+
+12.9 The Make Macro `SHELL'
+===========================
+
+Posix-compliant `make' internally uses the `$(SHELL)' macro to spawn
+shell processes and execute Make rules. This is a builtin macro
+supplied by `make', but it can be modified by a makefile or by a
+command-line argument.
+
+ Not all `make' implementations define this `SHELL' macro. Tru64
+`make' is an example; this implementation always uses `/bin/sh'. So
+it's a good idea to always define `SHELL' in your makefiles. If you
+use Autoconf, do
+
+ SHELL = @SHELL@
+
+If you use Automake, this is done for you.
+
+ Do not force `SHELL = /bin/sh' because that is not correct
+everywhere. Remember, `/bin/sh' is not Posix compliant on many
+systems, such as FreeBSD 4, NetBSD 3, AIX 3, Solaris 10, or Tru64.
+Additionally, DJGPP lacks `/bin/sh', and when its GNU `make' port sees
+such a setting it enters a special emulation mode where features like
+pipes and redirections are emulated on top of DOS's `command.com'.
+Unfortunately this emulation is incomplete; for instance it does not
+handle command substitutions. Using `@SHELL@' means that your makefile
+will benefit from the same improved shell, such as `bash' or `ksh',
+that was discovered during `configure', so that you aren't fighting two
+different sets of shell bugs between the two contexts.
+
+ Posix-compliant `make' should never acquire the value of $(SHELL)
+from the environment, even when `make -e' is used (otherwise, think
+about what would happen to your rules if `SHELL=/bin/tcsh').
+
+ However not all `make' implementations have this exception. For
+instance it's not surprising that Tru64 `make' doesn't protect `SHELL',
+since it doesn't use it.
+
+ $ cat Makefile
+ SHELL = /bin/sh
+ FOO = foo
+ all:
+ @echo $(SHELL)
+ @echo $(FOO)
+ $ env SHELL=/bin/tcsh FOO=bar make -e # Tru64 Make
+ /bin/tcsh
+ bar
+ $ env SHELL=/bin/tcsh FOO=bar gmake -e # GNU make
+ /bin/sh
+ bar
+
+ Conversely, `make' is not supposed to export any changes to the
+macro `SHELL' to child processes. Again, many implementations break
+this rule:
+
+ $ cat Makefile
+ all:
+ @echo $(SHELL)
+ @printenv SHELL
+ $ env SHELL=sh make -e SHELL=/bin/ksh # BSD Make, GNU make 3.80
+ /bin/ksh
+ /bin/ksh
+ $ env SHELL=sh gmake -e SHELL=/bin/ksh # GNU make 3.81
+ /bin/ksh
+ sh
+
+
+File: autoconf.info, Node: Parallel Make, Next: Comments in Make Rules, Prev: The Make Macro SHELL, Up: Portable Make
+
+12.10 Parallel Make
+===================
+
+Support for parallel execution in `make' implementation varies.
+Generally, using GNU make is your best bet.
+
+ When NetBSD or FreeBSD `make' are run in parallel mode, they will
+reuse the same shell for multiple commands within one recipe. This can
+have various unexpected consequences. For example, changes of
+directories or variables persist between recipes, so that:
+
+ all:
+ @var=value; cd /; pwd; echo $$var; echo $$$$
+ @pwd; echo $$var; echo $$$$
+
+may output the following with `make -j1', at least on NetBSD up to 5.1
+and FreeBSD up to 8.2:
+
+ /
+ value
+ 32235
+ /
+ value
+ 32235
+
+while without `-j1', or with `-B', the output looks less surprising:
+
+ /
+ value
+ 32238
+ /tmp
+
+ 32239
+
+Another consequence is that, if one command in a recipe uses `exit 0'
+to indicate a successful exit, the shell will be gone and the remaining
+commands of this recipe will not be executed.
+
+ The BSD `make' implementations, when run in parallel mode, will also
+pass the `Makefile' recipes to the shell through its standard input,
+thus making it unusable from the recipes:
+
+ $ cat Makefile
+ read:
+ @read line; echo LINE: $$line
+ $ echo foo | make read
+ LINE: foo
+ $ echo foo | make -j1 read # NetBSD 5.1 and FreeBSD 8.2
+ LINE:
+
+Moreover, when FreeBSD `make' (up at least to 8.2) is run in parallel
+mode, it implements the `@' and `-' "recipe modifiers" by dynamically
+modifying the active shell flags. This behavior has the effects of
+potentially clobbering the exit status of recipes silenced with the `@'
+modifier if they also unset the `errexit' shell flag, and of mangling
+the output in unexpected ways:
+
+ $ cat Makefile
+ a:
+ @echo $$-; set +e; false
+ b:
+ -echo $$-; false; echo set -
+ $ make a; echo status: $?
+ ehBc
+ *** Error code 1
+ status: 1
+ $ make -j1 a; echo status: $?
+ ehB
+ status: 0
+ $ make b
+ echo $-; echo set -
+ hBc
+ set -
+ $ make -j1 b
+ echo $-; echo hvB
+
+You can avoid all these issues by using the `-B' option to enable
+compatibility semantics. However, that will effectively also disable
+all parallelism as that will cause prerequisites to be updated in the
+order they are listed in a rule.
+
+ Some make implementations (among them, FreeBSD `make', NetBSD
+`make', and Solaris `dmake'), when invoked with a `-jN' option, connect
+the standard output and standard error of all their child processes to
+pipes or temporary regular files. This can lead to subtly different
+semantics in the behavior of the spawned processes. For example, even
+if the `make' standard output is connected to a tty, the recipe command
+will not be:
+
+ $ cat Makefile
+ all:
+ @test -t 1 && echo "Is a tty" || echo "Is not a tty"
+ $ make -j 2 # FreeBSD 8.2 make
+ Is not a tty
+ $ make -j 2 # NetBSD 5.1 make
+ --- all ---
+ Is not a tty
+ $ dmake -j 2 # Solaris 10 dmake
+ HOSTNAME --> 1 job
+ HOSTNAME --> Job output
+ Is not a tty
+
+On the other hand:
+
+ $ make -j 2 # GNU make, Heirloom make
+ Is a tty
+
+The above examples also show additional status output produced in
+parallel mode for targets being updated by Solaris `dmake' and NetBSD
+`make' (but _not_ by FreeBSD `make').
+
+ Furthermore, parallel runs of those `make' implementations will
+route standard error from commands that they spawn into their own
+standard output, and may remove leading whitespace from output lines.
+
+
+File: autoconf.info, Node: Comments in Make Rules, Next: Newlines in Make Rules, Prev: Parallel Make, Up: Portable Make
+
+12.11 Comments in Make Rules
+============================
+
+Never put comments in a rule.
+
+ Some `make' treat anything starting with a tab as a command for the
+current rule, even if the tab is immediately followed by a `#'. The
+`make' from Tru64 Unix V5.1 is one of them. The following makefile
+runs `# foo' through the shell.
+
+ all:
+ # foo
+
+ As a workaround, you can use the `:' no-op command with a string
+argument that gets ignored:
+
+ all:
+ : "foo"
+
+ Conversely, if you want to use the `#' character in some command,
+you can only do so by expanding it inside a rule (*note Comments in
+Make Macros::). So for example, if `COMMENT_CHAR' is substituted by
+`config.status' as `#', then the following substitutes `@COMMENT_CHAR@'
+in a generated header:
+
+ foo.h: foo.h.in
+ sed -e 's|@''COMMENT_CHAR''@|@COMMENT_CHAR@|g' \
+ $(srcdir)/foo.h.in > $@
+
+ The funny shell quoting avoids a substitution at `config.status' run
+time of the left-hand side of the `sed' `s' command.
+
+
+File: autoconf.info, Node: Newlines in Make Rules, Next: Comments in Make Macros, Prev: Comments in Make Rules, Up: Portable Make
+
+12.12 Newlines in Make Rules
+============================
+
+In shell scripts, newlines can be used inside string literals. But in
+the shell statements of `Makefile' rules, this is not possible: A
+newline not preceded by a backslash is a separator between shell
+statements. Whereas a newline that is preceded by a backslash becomes
+part of the shell statement according to POSIX, but gets replaced,
+together with the backslash that precedes it, by a space in GNU `make'
+3.80 and older. So, how can a newline be used in a string literal?
+
+ The trick is to set up a shell variable that contains a newline:
+
+ nlinit=`echo 'nl="'; echo '"'`; eval "$$nlinit"
+
+ For example, in order to create a multiline `sed' expression that
+inserts a blank line after every line of a file, this code can be used:
+
+ nlinit=`echo 'nl="'; echo '"'`; eval "$$nlinit"; \
+ sed -e "s/\$$/\\$${nl}/" < input > output
+
+
+File: autoconf.info, Node: Comments in Make Macros, Next: Trailing whitespace in Make Macros, Prev: Newlines in Make Rules, Up: Portable Make
+
+12.13 Comments in Make Macros
+=============================
+
+Avoid putting comments in macro values as far as possible. Posix
+specifies that the text starting from the `#' sign until the end of the
+line is to be ignored, which has the unfortunate effect of disallowing
+them even within quotes. Thus, the following might lead to a syntax
+error at compile time:
+
+ CPPFLAGS = "-DCOMMENT_CHAR='#'"
+
+as `CPPFLAGS' may be expanded to `"-DCOMMENT_CHAR=''.
+
+ Most `make' implementations disregard this and treat single and
+double quotes specially here. Also, GNU `make' lets you put `#' into a
+macro value by escaping it with a backslash, i.e., `\#'. However,
+neither of these usages are portable. *Note Comments in Make Rules::,
+for a portable alternative.
+
+ Even without quoting involved, comments can have surprising effects,
+because the whitespace before them is part of the variable value:
+
+ foo = bar # trailing comment
+ print: ; @echo "$(foo)."
+
+prints `bar .', which is usually not intended, and can expose `make'
+bugs as described below.
+
+
+File: autoconf.info, Node: Trailing whitespace in Make Macros, Next: Command-line Macros and whitespace, Prev: Comments in Make Macros, Up: Portable Make
+
+12.14 Trailing whitespace in Make Macros
+========================================
+
+GNU `make' 3.80 mistreats trailing whitespace in macro substitutions
+and appends another spurious suffix:
+
+ empty =
+ foo = bar $(empty)
+ print: ; @echo $(foo:=.test)
+
+prints `bar.test .test'.
+
+ BSD and Solaris `make' implementations do not honor trailing
+whitespace in macro definitions as Posix requires:
+
+ foo = bar # Note the space after "bar".
+ print: ; @echo $(foo)t
+
+prints `bart' instead of `bar t'. To work around this, you can use a
+helper macro as in the previous example.
+
+
+File: autoconf.info, Node: Command-line Macros and whitespace, Next: obj/ and Make, Prev: Trailing whitespace in Make Macros, Up: Portable Make
+
+12.15 Command-line Macros and whitespace
+========================================
+
+Some `make' implementations may strip trailing whitespace off of macros
+set on the command line in addition to leading whitespace. Further,
+some may strip leading whitespace off of macros set from environment
+variables:
+
+ $ echo 'print: ; @echo "x$(foo)x$(bar)x"' |
+ foo=' f f ' make -f - bar=' b b '
+ x f f xb b x # AIX, BSD, GNU make
+ xf f xb b x # HP-UX, IRIX, Tru64/OSF make
+ x f f xb bx # Solaris make
+
+
+File: autoconf.info, Node: obj/ and Make, Next: make -k Status, Prev: Command-line Macros and whitespace, Up: Portable Make
+
+12.16 The `obj/' Subdirectory and Make
+======================================
+
+Never name one of your subdirectories `obj/' if you don't like
+surprises.
+
+ If an `obj/' directory exists, BSD `make' enters it before reading
+the makefile. Hence the makefile in the current directory is not read.
+
+ $ cat Makefile
+ all:
+ echo Hello
+ $ cat obj/Makefile
+ all:
+ echo World
+ $ make # GNU make
+ echo Hello
+ Hello
+ $ pmake # BSD make
+ echo World
+ World
+
+
+File: autoconf.info, Node: make -k Status, Next: VPATH and Make, Prev: obj/ and Make, Up: Portable Make
+
+12.17 Exit Status of `make -k'
+==============================
+
+Do not rely on the exit status of `make -k'. Some implementations
+reflect whether they encountered an error in their exit status; other
+implementations always succeed.
+
+ $ cat Makefile
+ all:
+ false
+ $ make -k; echo exit status: $? # GNU make
+ false
+ make: *** [all] Error 1
+ exit status: 2
+ $ pmake -k; echo exit status: $? # BSD make
+ false
+ *** Error code 1 (continuing)
+ exit status: 0
+
+
+File: autoconf.info, Node: VPATH and Make, Next: Single Suffix Rules, Prev: make -k Status, Up: Portable Make
+
+12.18 `VPATH' and Make
+======================
+
+Posix does not specify the semantics of `VPATH'. Typically, `make'
+supports `VPATH', but its implementation is not consistent.
+
+ Autoconf and Automake support makefiles whose usages of `VPATH' are
+portable to recent-enough popular implementations of `make', but to
+keep the resulting makefiles portable, a package's makefile prototypes
+must take the following issues into account. These issues are
+complicated and are often poorly understood, and installers who use
+`VPATH' should expect to find many bugs in this area. If you use
+`VPATH', the simplest way to avoid these portability bugs is to stick
+with GNU `make', since it is the most commonly-used `make' among
+Autoconf users.
+
+ Here are some known issues with some `VPATH' implementations.
+
+* Menu:
+
+* Variables listed in VPATH:: `VPATH' must be literal on ancient hosts
+* VPATH and Double-colon:: Problems with `::' on ancient hosts
+* $< in Explicit Rules:: `$<' does not work in ordinary rules
+* Automatic Rule Rewriting:: `VPATH' goes wild on Solaris
+* Tru64 Directory Magic:: `mkdir' goes wild on Tru64
+* Make Target Lookup:: More details about `VPATH' lookup
+
+
+File: autoconf.info, Node: Variables listed in VPATH, Next: VPATH and Double-colon, Up: VPATH and Make
+
+12.18.1 Variables listed in `VPATH'
+-----------------------------------
+
+Do not set `VPATH' to the value of another variable, for example `VPATH
+= $(srcdir)', because some ancient versions of `make' do not do
+variable substitutions on the value of `VPATH'. For example, use this
+
+ srcdir = @srcdir@
+ VPATH = @srcdir@
+
+rather than `VPATH = $(srcdir)'. Note that with GNU Automake, there is
+no need to set this yourself.
+
+
+File: autoconf.info, Node: VPATH and Double-colon, Next: $< in Explicit Rules, Prev: Variables listed in VPATH, Up: VPATH and Make
+
+12.18.2 `VPATH' and Double-colon Rules
+--------------------------------------
+
+With ancient versions of Sun `make', any assignment to `VPATH' causes
+`make' to execute only the first set of double-colon rules. However,
+this problem is no longer of practical concern.
+
+
+File: autoconf.info, Node: $< in Explicit Rules, Next: Automatic Rule Rewriting, Prev: VPATH and Double-colon, Up: VPATH and Make
+
+12.18.3 `$<' Not Supported in Explicit Rules
+--------------------------------------------
+
+Using `$<' in explicit rules is not portable. The prerequisite file
+must be named explicitly in the rule. If you want to find the
+prerequisite via a `VPATH' search, you have to code the whole thing
+manually. *Note Build Directories::.
+
+
+File: autoconf.info, Node: Automatic Rule Rewriting, Next: Tru64 Directory Magic, Prev: $< in Explicit Rules, Up: VPATH and Make
+
+12.18.4 Automatic Rule Rewriting
+--------------------------------
+
+Some `make' implementations, such as Solaris and Tru64, search for
+prerequisites in `VPATH' and then rewrite each occurrence as a plain
+word in the rule. For instance:
+
+ # This isn't portable to GNU make.
+ VPATH = ../pkg/src
+ f.c: if.c
+ cp if.c f.c
+
+executes `cp ../pkg/src/if.c f.c' if `if.c' is found in `../pkg/src'.
+
+ However, this rule leads to real problems in practice. For example,
+if the source directory contains an ordinary file named `test' that is
+used in a dependency, Solaris `make' rewrites commands like `if test -r
+foo; ...' to `if ../pkg/src/test -r foo; ...', which is typically
+undesirable. In fact, `make' is completely unaware of shell syntax
+used in the rules, so the VPATH rewrite can potentially apply to _any_
+whitespace-separated word in a rule, including shell variables,
+functions, and keywords.
+
+ $ mkdir build
+ $ cd build
+ $ cat > Makefile <<'END'
+ VPATH = ..
+ all: arg func for echo
+ func () { for arg in "$$@"; do echo $$arg; done; }; \
+ func "hello world"
+ END
+ $ touch ../arg ../func ../for ../echo
+ $ make
+ ../func () { ../for ../arg in "$@"; do ../echo $arg; done; }; \
+ ../func "hello world"
+ sh: syntax error at line 1: `do' unexpected
+ *** Error code 2
+
+To avoid this problem, portable makefiles should never mention a source
+file or dependency whose name is that of a shell keyword like `for' or
+`until', a shell command like `cat' or `gcc' or `test', or a shell
+function or variable used in the corresponding `Makefile' recipe.
+
+ Because of these problems GNU `make' and many other `make'
+implementations do not rewrite commands, so portable makefiles should
+search `VPATH' manually. It is tempting to write this:
+
+ # This isn't portable to Solaris make.
+ VPATH = ../pkg/src
+ f.c: if.c
+ cp `test -f if.c || echo $(VPATH)/`if.c f.c
+
+However, the "prerequisite rewriting" still applies here. So if `if.c'
+is in `../pkg/src', Solaris and Tru64 `make' execute
+
+ cp `test -f ../pkg/src/if.c || echo ../pkg/src/`if.c f.c
+
+which reduces to
+
+ cp if.c f.c
+
+and thus fails. Oops.
+
+ A simple workaround, and good practice anyway, is to use `$?' and
+`$@' when possible:
+
+ VPATH = ../pkg/src
+ f.c: if.c
+ cp $? $@
+
+but this does not generalize well to commands with multiple
+prerequisites. A more general workaround is to rewrite the rule so that
+the prerequisite `if.c' never appears as a plain word. For example,
+these three rules would be safe, assuming `if.c' is in `../pkg/src' and
+the other files are in the working directory:
+
+ VPATH = ../pkg/src
+ f.c: if.c f1.c
+ cat `test -f ./if.c || echo $(VPATH)/`if.c f1.c >$@
+ g.c: if.c g1.c
+ cat `test -f 'if.c' || echo $(VPATH)/`if.c g1.c >$@
+ h.c: if.c h1.c
+ cat `test -f "if.c" || echo $(VPATH)/`if.c h1.c >$@
+
+ Things get worse when your prerequisites are in a macro.
+
+ VPATH = ../pkg/src
+ HEADERS = f.h g.h h.h
+ install-HEADERS: $(HEADERS)
+ for i in $(HEADERS); do \
+ $(INSTALL) -m 644 \
+ `test -f $$i || echo $(VPATH)/`$$i \
+ $(DESTDIR)$(includedir)/$$i; \
+ done
+
+ The above `install-HEADERS' rule is not Solaris-proof because `for i
+in $(HEADERS);' is expanded to `for i in f.h g.h h.h;' where `f.h' and
+`g.h' are plain words and are hence subject to `VPATH' adjustments.
+
+ If the three files are in `../pkg/src', the rule is run as:
+
+ for i in ../pkg/src/f.h ../pkg/src/g.h h.h; do \
+ install -m 644 \
+ `test -f $i || echo ../pkg/src/`$i \
+ /usr/local/include/$i; \
+ done
+
+ where the two first `install' calls fail. For instance, consider
+the `f.h' installation:
+
+ install -m 644 \
+ `test -f ../pkg/src/f.h || \
+ echo ../pkg/src/ \
+ `../pkg/src/f.h \
+ /usr/local/include/../pkg/src/f.h;
+
+It reduces to:
+
+ install -m 644 \
+ ../pkg/src/f.h \
+ /usr/local/include/../pkg/src/f.h;
+
+ Note that the manual `VPATH' search did not cause any problems here;
+however this command installs `f.h' in an incorrect directory.
+
+ Trying to quote `$(HEADERS)' in some way, as we did for `foo.c' a
+few makefiles ago, does not help:
+
+ install-HEADERS: $(HEADERS)
+ headers='$(HEADERS)'; \
+ for i in $$headers; do \
+ $(INSTALL) -m 644 \
+ `test -f $$i || echo $(VPATH)/`$$i \
+ $(DESTDIR)$(includedir)/$$i; \
+ done
+
+ Now, `headers='$(HEADERS)'' macro-expands to:
+
+ headers='f.h g.h h.h'
+
+but `g.h' is still a plain word. (As an aside, the idiom
+`headers='$(HEADERS)'; for i in $$headers;' is a good idea if
+`$(HEADERS)' can be empty, because some shells diagnose a syntax error
+on `for i in;'.)
+
+ One workaround is to strip this unwanted `../pkg/src/' prefix
+manually:
+
+ VPATH = ../pkg/src
+ HEADERS = f.h g.h h.h
+ install-HEADERS: $(HEADERS)
+ headers='$(HEADERS)'; \
+ for i in $$headers; do \
+ i=`expr "$$i" : '$(VPATH)/\(.*\)'`;
+ $(INSTALL) -m 644 \
+ `test -f $$i || echo $(VPATH)/`$$i \
+ $(DESTDIR)$(includedir)/$$i; \
+ done
+
+ Automake does something similar. However the above hack works only
+if the files listed in `HEADERS' are in the current directory or a
+subdirectory; they should not be in an enclosing directory. If we had
+`HEADERS = ../f.h', the above fragment would fail in a VPATH build with
+Tru64 `make'. The reason is that not only does Tru64 `make' rewrite
+dependencies, but it also simplifies them. Hence `../f.h' becomes
+`../pkg/f.h' instead of `../pkg/src/../f.h'. This obviously defeats
+any attempt to strip a leading `../pkg/src/' component.
+
+ The following example makes the behavior of Tru64 `make' more
+apparent.
+
+ $ cat Makefile
+ VPATH = sub
+ all: ../foo
+ echo ../foo
+ $ ls
+ Makefile foo
+ $ make
+ echo foo
+ foo
+
+Dependency `../foo' was found in `sub/../foo', but Tru64 `make'
+simplified it as `foo'. (Note that the `sub/' directory does not even
+exist, this just means that the simplification occurred before the file
+was checked for.)
+
+ For the record here is how SunOS 4 `make' behaves on this example.
+
+ $ make
+ make: Fatal error: Don't know how to make target `../foo'
+ $ mkdir sub
+ $ make
+ echo sub/../foo
+ sub/../foo
+
+
+File: autoconf.info, Node: Tru64 Directory Magic, Next: Make Target Lookup, Prev: Automatic Rule Rewriting, Up: VPATH and Make
+
+12.18.5 Tru64 `make' Creates Prerequisite Directories Magically
+---------------------------------------------------------------
+
+When a prerequisite is a subdirectory of `VPATH', Tru64 `make' creates
+it in the current directory.
+
+ $ mkdir -p foo/bar build
+ $ cd build
+ $ cat >Makefile <<END
+ VPATH = ..
+ all: foo/bar
+ END
+ $ make
+ mkdir foo
+ mkdir foo/bar
+
+ This can yield unexpected results if a rule uses a manual `VPATH'
+search as presented before.
+
+ VPATH = ..
+ all : foo/bar
+ command `test -d foo/bar || echo ../`foo/bar
+
+ The above `command' is run on the empty `foo/bar' directory that was
+created in the current directory.
+
+
+File: autoconf.info, Node: Make Target Lookup, Prev: Tru64 Directory Magic, Up: VPATH and Make
+
+12.18.6 Make Target Lookup
+--------------------------
+
+GNU `make' uses a complex algorithm to decide when it should use files
+found via a `VPATH' search. *Note How Directory Searches are
+Performed: (make)Search Algorithm.
+
+ If a target needs to be rebuilt, GNU `make' discards the file name
+found during the `VPATH' search for this target, and builds the file
+locally using the file name given in the makefile. If a target does
+not need to be rebuilt, GNU `make' uses the file name found during the
+`VPATH' search.
+
+ Other `make' implementations, like NetBSD `make', are easier to
+describe: the file name found during the `VPATH' search is used whether
+the target needs to be rebuilt or not. Therefore new files are created
+locally, but existing files are updated at their `VPATH' location.
+
+ OpenBSD and FreeBSD `make', however, never perform a `VPATH' search
+for a dependency that has an explicit rule. This is extremely annoying.
+
+ When attempting a `VPATH' build for an autoconfiscated package
+(e.g., `mkdir build && cd build && ../configure'), this means GNU
+`make' builds everything locally in the `build' directory, while BSD
+`make' builds new files locally and updates existing files in the
+source directory.
+
+ $ cat Makefile
+ VPATH = ..
+ all: foo.x bar.x
+ foo.x bar.x: newer.x
+ @echo Building $@
+ $ touch ../bar.x
+ $ touch ../newer.x
+ $ make # GNU make
+ Building foo.x
+ Building bar.x
+ $ pmake # NetBSD make
+ Building foo.x
+ Building ../bar.x
+ $ fmake # FreeBSD make, OpenBSD make
+ Building foo.x
+ Building bar.x
+ $ tmake # Tru64 make
+ Building foo.x
+ Building bar.x
+ $ touch ../bar.x
+ $ make # GNU make
+ Building foo.x
+ $ pmake # NetBSD make
+ Building foo.x
+ $ fmake # FreeBSD make, OpenBSD make
+ Building foo.x
+ Building bar.x
+ $ tmake # Tru64 make
+ Building foo.x
+ Building bar.x
+
+ Note how NetBSD `make' updates `../bar.x' in its VPATH location, and
+how FreeBSD, OpenBSD, and Tru64 `make' always update `bar.x', even when
+`../bar.x' is up to date.
+
+ Another point worth mentioning is that once GNU `make' has decided
+to ignore a `VPATH' file name (e.g., it ignored `../bar.x' in the above
+example) it continues to ignore it when the target occurs as a
+prerequisite of another rule.
+
+ The following example shows that GNU `make' does not look up `bar.x'
+in `VPATH' before performing the `.x.y' rule, because it ignored the
+`VPATH' result of `bar.x' while running the `bar.x: newer.x' rule.
+
+ $ cat Makefile
+ VPATH = ..
+ all: bar.y
+ bar.x: newer.x
+ @echo Building $@
+ .SUFFIXES: .x .y
+ .x.y:
+ cp $< $@
+ $ touch ../bar.x
+ $ touch ../newer.x
+ $ make # GNU make
+ Building bar.x
+ cp bar.x bar.y
+ cp: cannot stat `bar.x': No such file or directory
+ make: *** [bar.y] Error 1
+ $ pmake # NetBSD make
+ Building ../bar.x
+ cp ../bar.x bar.y
+ $ rm bar.y
+ $ fmake # FreeBSD make, OpenBSD make
+ echo Building bar.x
+ cp bar.x bar.y
+ cp: cannot stat `bar.x': No such file or directory
+ *** Error code 1
+ $ tmake # Tru64 make
+ Building bar.x
+ cp: bar.x: No such file or directory
+ *** Exit 1
+
+ Note that if you drop away the command from the `bar.x: newer.x'
+rule, GNU `make' magically starts to work: it knows that `bar.x' hasn't
+been updated, therefore it doesn't discard the result from `VPATH'
+(`../bar.x') in succeeding uses. Tru64 also works, but FreeBSD and
+OpenBSD still don't.
+
+ $ cat Makefile
+ VPATH = ..
+ all: bar.y
+ bar.x: newer.x
+ .SUFFIXES: .x .y
+ .x.y:
+ cp $< $@
+ $ touch ../bar.x
+ $ touch ../newer.x
+ $ make # GNU make
+ cp ../bar.x bar.y
+ $ rm bar.y
+ $ pmake # NetBSD make
+ cp ../bar.x bar.y
+ $ rm bar.y
+ $ fmake # FreeBSD make, OpenBSD make
+ cp bar.x bar.y
+ cp: cannot stat `bar.x': No such file or directory
+ *** Error code 1
+ $ tmake # Tru64 make
+ cp ../bar.x bar.y
+
+ It seems the sole solution that would please every `make'
+implementation is to never rely on `VPATH' searches for targets. In
+other words, `VPATH' should be reserved to unbuilt sources.
+
+
+File: autoconf.info, Node: Single Suffix Rules, Next: Timestamps and Make, Prev: VPATH and Make, Up: Portable Make
+
+12.19 Single Suffix Rules and Separated Dependencies
+====================================================
+
+A "Single Suffix Rule" is basically a usual suffix (inference) rule
+(`.from.to:'), but which _destination_ suffix is empty (`.from:').
+
+ "Separated dependencies" simply refers to listing the prerequisite
+of a target, without defining a rule. Usually one can list on the one
+hand side, the rules, and on the other hand side, the dependencies.
+
+ Solaris `make' does not support separated dependencies for targets
+defined by single suffix rules:
+
+ $ cat Makefile
+ .SUFFIXES: .in
+ foo: foo.in
+ .in:
+ cp $< $@
+ $ touch foo.in
+ $ make
+ $ ls
+ Makefile foo.in
+
+while GNU Make does:
+
+ $ gmake
+ cp foo.in foo
+ $ ls
+ Makefile foo foo.in
+
+ Note it works without the `foo: foo.in' dependency.
+
+ $ cat Makefile
+ .SUFFIXES: .in
+ .in:
+ cp $< $@
+ $ make foo
+ cp foo.in foo
+
+and it works with double suffix inference rules:
+
+ $ cat Makefile
+ foo.out: foo.in
+ .SUFFIXES: .in .out
+ .in.out:
+ cp $< $@
+ $ make
+ cp foo.in foo.out
+
+ As a result, in such a case, you have to write target rules.
+
+
+File: autoconf.info, Node: Timestamps and Make, Prev: Single Suffix Rules, Up: Portable Make
+
+12.20 Timestamp Resolution and Make
+===================================
+
+Traditionally, file timestamps had 1-second resolution, and `make' used
+those timestamps to determine whether one file was newer than the
+other. However, many modern file systems have timestamps with
+1-nanosecond resolution. Some `make' implementations look at the
+entire timestamp; others ignore the fractional part, which can lead to
+incorrect results. Normally this is not a problem, but in some extreme
+cases you may need to use tricks like `sleep 1' to work around
+timestamp truncation bugs.
+
+ Commands like `cp -p' and `touch -r' typically do not copy file
+timestamps to their full resolutions (*note Limitations of Usual Tools:
+touch.). Hence you should be wary of rules like this:
+
+ dest: src
+ cp -p src dest
+
+ as `dest' often appears to be older than `src' after the timestamp
+is truncated, and this can cause `make' to do needless rework the next
+time it is invoked. To work around this problem, you can use a
+timestamp file, e.g.:
+
+ dest-stamp: src
+ cp -p src dest
+ date >dest-stamp
+
+ Apart from timestamp resolution, there are also differences in
+handling equal timestamps. HP-UX `make' updates targets if it has the
+same time stamp as one of its prerequisites, in violation of Posix
+rules.
+
+ This can cause spurious rebuilds for repeated runs of `make'. This
+in turn can cause `make' to fail if it tries to rebuild generated files
+in a possibly read-only source tree with tools not present on the
+end-user machine. Use GNU `make' instead.
+
+
+File: autoconf.info, Node: Portable C and C++, Next: Manual Configuration, Prev: Portable Make, Up: Top
+
+13 Portable C and C++ Programming
+*********************************
+
+C and C++ programs often use low-level features of the underlying
+system, and therefore are often more difficult to make portable to other
+platforms.
+
+ Several standards have been developed to help make your programs more
+portable. If you write programs with these standards in mind, you can
+have greater confidence that your programs work on a wide variety of
+systems. *Note Language Standards Supported by GCC: (gcc)Standards,
+for a list of C-related standards. Many programs also assume the Posix
+standard (http://www.opengroup.org/susv3).
+
+ Some old code is written to be portable to K&R C, which predates any
+C standard. K&R C compilers are no longer of practical interest,
+though, and the rest of section assumes at least C89, the first C
+standard.
+
+ Program portability is a huge topic, and this section can only
+briefly introduce common pitfalls. *Note Portability between System
+Types: (standards)System Portability, for more information.
+
+* Menu:
+
+* Varieties of Unportability:: How to make your programs unportable
+* Integer Overflow:: When integers get too large
+* Preprocessor Arithmetic:: `#if' expression problems
+* Null Pointers:: Properties of null pointers
+* Buffer Overruns:: Subscript errors and the like
+* Volatile Objects:: `volatile' and signals
+* Floating Point Portability:: Portable floating-point arithmetic
+* Exiting Portably:: Exiting and the exit status
+
+
+File: autoconf.info, Node: Varieties of Unportability, Next: Integer Overflow, Up: Portable C and C++
+
+13.1 Varieties of Unportability
+===============================
+
+Autoconf tests and ordinary programs often need to test what is allowed
+on a system, and therefore they may need to deliberately exceed the
+boundaries of what the standards allow, if only to see whether an
+optional feature is present. When you write such a program, you should
+keep in mind the difference between constraints, unspecified behavior,
+and undefined behavior.
+
+ In C, a "constraint" is a rule that the compiler must enforce. An
+example constraint is that C programs must not declare a bit-field with
+negative width. Tests can therefore reliably assume that programs with
+negative-width bit-fields are rejected by a compiler that conforms to
+the standard.
+
+ "Unspecified behavior" is valid behavior, where the standard allows
+multiple possibilities. For example, the order of evaluation of
+function arguments is unspecified. Some unspecified behavior is
+"implementation-defined", i.e., documented by the implementation, but
+since Autoconf tests cannot read the documentation they cannot
+distinguish between implementation-defined and other unspecified
+behavior. It is common for Autoconf tests to probe implementations to
+determine otherwise-unspecified behavior.
+
+ "Undefined behavior" is invalid behavior, where the standard allows
+the implementation to do anything it pleases. For example,
+dereferencing a null pointer leads to undefined behavior. If possible,
+test programs should avoid undefined behavior, since a program with
+undefined behavior might succeed on a test that should fail.
+
+ The above rules apply to programs that are intended to conform to the
+standard. However, strictly-conforming programs are quite rare, since
+the standards are so limiting. A major goal of Autoconf is to support
+programs that use implementation features not described by the standard,
+and it is fairly common for test programs to violate the above rules, if
+the programs work well enough in practice.
+
+
+File: autoconf.info, Node: Integer Overflow, Next: Preprocessor Arithmetic, Prev: Varieties of Unportability, Up: Portable C and C++
+
+13.2 Integer Overflow
+=====================
+
+In practice many portable C programs assume that signed integer
+overflow wraps around reliably using two's complement arithmetic. Yet
+the C standard says that program behavior is undefined on overflow, and
+in a few cases C programs do not work on some modern implementations
+because their overflows do not wrap around as their authors expected.
+Conversely, in signed integer remainder, the C standard requires
+overflow behavior that is commonly not implemented.
+
+* Menu:
+
+* Integer Overflow Basics:: Why integer overflow is a problem
+* Signed Overflow Examples:: Examples of code assuming wraparound
+* Optimization and Wraparound:: Optimizations that break uses of wraparound
+* Signed Overflow Advice:: Practical advice for signed overflow issues
+* Signed Integer Division:: `INT_MIN / -1' and `INT_MIN % -1'
+
+
+File: autoconf.info, Node: Integer Overflow Basics, Next: Signed Overflow Examples, Up: Integer Overflow
+
+13.2.1 Basics of Integer Overflow
+---------------------------------
+
+In languages like C, unsigned integer overflow reliably wraps around;
+e.g., `UINT_MAX + 1' yields zero. This is guaranteed by the C standard
+and is portable in practice, unless you specify aggressive, nonstandard
+optimization options suitable only for special applications.
+
+ In contrast, the C standard says that signed integer overflow leads
+to undefined behavior where a program can do anything, including dumping
+core or overrunning a buffer. The misbehavior can even precede the
+overflow. Such an overflow can occur during addition, subtraction,
+multiplication, division, and left shift.
+
+ Despite this requirement of the standard, many C programs and
+Autoconf tests assume that signed integer overflow silently wraps
+around modulo a power of two, using two's complement arithmetic, so
+long as you cast the resulting value to a signed integer type or store
+it into a signed integer variable. If you use conservative
+optimization flags, such programs are generally portable to the vast
+majority of modern platforms, with a few exceptions discussed later.
+
+ For historical reasons the C standard also allows implementations
+with ones' complement or signed magnitude arithmetic, but it is safe to
+assume two's complement nowadays.
+
+ Also, overflow can occur when converting an out-of-range value to a
+signed integer type. Here a standard implementation must define what
+happens, but this might include raising an exception. In practice all
+known implementations support silent wraparound in this case, so you
+need not worry about other possibilities.
+
+
+File: autoconf.info, Node: Signed Overflow Examples, Next: Optimization and Wraparound, Prev: Integer Overflow Basics, Up: Integer Overflow
+
+13.2.2 Examples of Code Assuming Wraparound Overflow
+----------------------------------------------------
+
+There has long been a tension between what the C standard requires for
+signed integer overflow, and what C programs commonly assume. The
+standard allows aggressive optimizations based on assumptions that
+overflow never occurs, but many practical C programs rely on overflow
+wrapping around. These programs do not conform to the standard, but
+they commonly work in practice because compiler writers are
+understandably reluctant to implement optimizations that would break
+many programs, unless perhaps a user specifies aggressive optimization.
+
+ The C Standard says that if a program has signed integer overflow its
+behavior is undefined, and the undefined behavior can even precede the
+overflow. To take an extreme example:
+
+ if (password == expected_password)
+ allow_superuser_privileges ();
+ else if (counter++ == INT_MAX)
+ abort ();
+ else
+ printf ("%d password mismatches\n", counter);
+
+If the `int' variable `counter' equals `INT_MAX', `counter++' must
+overflow and the behavior is undefined, so the C standard allows the
+compiler to optimize away the test against `INT_MAX' and the `abort'
+call. Worse, if an earlier bug in the program lets the compiler deduce
+that `counter == INT_MAX' or that `counter' previously overflowed, the
+C standard allows the compiler to optimize away the password test and
+generate code that allows superuser privileges unconditionally.
+
+ Despite this requirement by the standard, it has long been common
+for C code to assume wraparound arithmetic after signed overflow, and
+all known practical C implementations support some C idioms that assume
+wraparound signed arithmetic, even if the idioms do not conform
+strictly to the standard. If your code looks like the following
+examples it will almost surely work with real-world compilers.
+
+ Here is an example derived from the 7th Edition Unix implementation
+of `atoi' (1979-01-10):
+
+ char *p;
+ int f, n;
+ ...
+ while (*p >= '0' && *p <= '9')
+ n = n * 10 + *p++ - '0';
+ return (f ? -n : n);
+
+Even if the input string is in range, on most modern machines this has
+signed overflow when computing the most negative integer (the `-n'
+overflows) or a value near an extreme integer (the first `+' overflows).
+
+ Here is another example, derived from the 7th Edition implementation
+of `rand' (1979-01-10). Here the programmer expects both
+multiplication and addition to wrap on overflow:
+
+ static long int randx = 1;
+ ...
+ randx = randx * 1103515245 + 12345;
+ return (randx >> 16) & 077777;
+
+ In the following example, derived from the GNU C Library 2.5
+implementation of `mktime' (2006-09-09), the code assumes wraparound
+arithmetic in `+' to detect signed overflow:
+
+ time_t t, t1, t2;
+ int sec_requested, sec_adjustment;
+ ...
+ t1 = t + sec_requested;
+ t2 = t1 + sec_adjustment;
+ if (((t1 < t) != (sec_requested < 0))
+ | ((t2 < t1) != (sec_adjustment < 0)))
+ return -1;
+
+ If your code looks like these examples, it is probably safe even
+though it does not strictly conform to the C standard. This might lead
+one to believe that one can generally assume wraparound on overflow,
+but that is not always true, as can be seen in the next section.
+
+
+File: autoconf.info, Node: Optimization and Wraparound, Next: Signed Overflow Advice, Prev: Signed Overflow Examples, Up: Integer Overflow
+
+13.2.3 Optimizations That Break Wraparound Arithmetic
+-----------------------------------------------------
+
+Compilers sometimes generate code that is incompatible with wraparound
+integer arithmetic. A simple example is an algebraic simplification: a
+compiler might translate `(i * 2000) / 1000' to `i * 2' because it
+assumes that `i * 2000' does not overflow. The translation is not
+equivalent to the original when overflow occurs: e.g., in the typical
+case of 32-bit signed two's complement wraparound `int', if `i' has
+type `int' and value `1073742', the original expression returns
+-2147483 but the optimized version returns the mathematically correct
+value 2147484.
+
+ More subtly, loop induction optimizations often exploit the undefined
+behavior of signed overflow. Consider the following contrived function
+`sumc':
+
+ int
+ sumc (int lo, int hi)
+ {
+ int sum = 0;
+ int i;
+ for (i = lo; i <= hi; i++)
+ sum ^= i * 53;
+ return sum;
+ }
+
+To avoid multiplying by 53 each time through the loop, an optimizing
+compiler might internally transform `sumc' to the equivalent of the
+following:
+
+ int
+ transformed_sumc (int lo, int hi)
+ {
+ int sum = 0;
+ int hic = hi * 53;
+ int ic;
+ for (ic = lo * 53; ic <= hic; ic += 53)
+ sum ^= ic;
+ return sum;
+ }
+
+This transformation is allowed by the C standard, but it is invalid for
+wraparound arithmetic when `INT_MAX / 53 < hi', because then the
+overflow in computing expressions like `hi * 53' can cause the
+expression `i <= hi' to yield a different value from the transformed
+expression `ic <= hic'.
+
+ For this reason, compilers that use loop induction and similar
+techniques often do not support reliable wraparound arithmetic when a
+loop induction variable like `ic' is involved. Since loop induction
+variables are generated by the compiler, and are not visible in the
+source code, it is not always trivial to say whether the problem
+affects your code.
+
+ Hardly any code actually depends on wraparound arithmetic in cases
+like these, so in practice these loop induction optimizations are almost
+always useful. However, edge cases in this area can cause problems.
+For example:
+
+ int j;
+ for (j = 1; 0 < j; j *= 2)
+ test (j);
+
+Here, the loop attempts to iterate through all powers of 2 that `int'
+can represent, but the C standard allows a compiler to optimize away
+the comparison and generate an infinite loop, under the argument that
+behavior is undefined on overflow. As of this writing this
+optimization is not done by any production version of GCC with `-O2',
+but it might be performed by other compilers, or by more aggressive GCC
+optimization options, and the GCC developers have not decided whether
+it will continue to work with GCC and `-O2'.
+
+
+File: autoconf.info, Node: Signed Overflow Advice, Next: Signed Integer Division, Prev: Optimization and Wraparound, Up: Integer Overflow
+
+13.2.4 Practical Advice for Signed Overflow Issues
+--------------------------------------------------
+
+Ideally the safest approach is to avoid signed integer overflow
+entirely. For example, instead of multiplying two signed integers, you
+can convert them to unsigned integers, multiply the unsigned values,
+then test whether the result is in signed range.
+
+ Rewriting code in this way will be inconvenient, though,
+particularly if the signed values might be negative. Also, it may hurt
+performance. Using unsigned arithmetic to check for overflow is
+particularly painful to do portably and efficiently when dealing with an
+integer type like `uid_t' whose width and signedness vary from platform
+to platform.
+
+ Furthermore, many C applications pervasively assume wraparound
+behavior and typically it is not easy to find and remove all these
+assumptions. Hence it is often useful to maintain nonstandard code
+that assumes wraparound on overflow, instead of rewriting the code.
+The rest of this section attempts to give practical advice for this
+situation.
+
+ If your code wants to detect signed integer overflow in `sum = a +
+b', it is generally safe to use an expression like `(sum < a) != (b <
+0)'.
+
+ If your code uses a signed loop index, make sure that the index
+cannot overflow, along with all signed expressions derived from the
+index. Here is a contrived example of problematic code with two
+instances of overflow.
+
+ for (i = INT_MAX - 10; i <= INT_MAX; i++)
+ if (i + 1 < 0)
+ {
+ report_overflow ();
+ break;
+ }
+
+Because of the two overflows, a compiler might optimize away or
+transform the two comparisons in a way that is incompatible with the
+wraparound assumption.
+
+ If your code uses an expression like `(i * 2000) / 1000' and you
+actually want the multiplication to wrap around on overflow, use
+unsigned arithmetic to do it, e.g., `((int) (i * 2000u)) / 1000'.
+
+ If your code assumes wraparound behavior and you want to insulate it
+against any GCC optimizations that would fail to support that behavior,
+you should use GCC's `-fwrapv' option, which causes signed overflow to
+wrap around reliably (except for division and remainder, as discussed
+in the next section).
+
+ If you need to port to platforms where signed integer overflow does
+not reliably wrap around (e.g., due to hardware overflow checking, or to
+highly aggressive optimizations), you should consider debugging with
+GCC's `-ftrapv' option, which causes signed overflow to raise an
+exception.
+
+
+File: autoconf.info, Node: Signed Integer Division, Prev: Signed Overflow Advice, Up: Integer Overflow
+
+13.2.5 Signed Integer Division and Integer Overflow
+---------------------------------------------------
+
+Overflow in signed integer division is not always harmless: for
+example, on CPUs of the i386 family, dividing `INT_MIN' by `-1' yields
+a SIGFPE signal which by default terminates the program. Worse, taking
+the remainder of these two values typically yields the same signal on
+these CPUs, even though the C standard requires `INT_MIN % -1' to yield
+zero because the expression does not overflow.
+
+
+File: autoconf.info, Node: Preprocessor Arithmetic, Next: Null Pointers, Prev: Integer Overflow, Up: Portable C and C++
+
+13.3 Preprocessor Arithmetic
+============================
+
+In C99, preprocessor arithmetic, used for `#if' expressions, must be
+evaluated as if all signed values are of type `intmax_t' and all
+unsigned values of type `uintmax_t'. Many compilers are buggy in this
+area, though. For example, as of 2007, Sun C mishandles `#if LLONG_MIN
+< 0' on a platform with 32-bit `long int' and 64-bit `long long int'.
+Also, some older preprocessors mishandle constants ending in `LL'. To
+work around these problems, you can compute the value of expressions
+like `LONG_MAX < LLONG_MAX' at `configure'-time rather than at
+`#if'-time.
+
+
+File: autoconf.info, Node: Null Pointers, Next: Buffer Overruns, Prev: Preprocessor Arithmetic, Up: Portable C and C++
+
+13.4 Properties of Null Pointers
+================================
+
+Most modern hosts reliably fail when you attempt to dereference a null
+pointer.
+
+ On almost all modern hosts, null pointers use an all-bits-zero
+internal representation, so you can reliably use `memset' with 0 to set
+all the pointers in an array to null values.
+
+ If `p' is a null pointer to an object type, the C expression `p + 0'
+always evaluates to `p' on modern hosts, even though the standard says
+that it has undefined behavior.
+
+
+File: autoconf.info, Node: Buffer Overruns, Next: Volatile Objects, Prev: Null Pointers, Up: Portable C and C++
+
+13.5 Buffer Overruns and Subscript Errors
+=========================================
+
+Buffer overruns and subscript errors are the most common dangerous
+errors in C programs. They result in undefined behavior because storing
+outside an array typically modifies storage that is used by some other
+object, and most modern systems lack runtime checks to catch these
+errors. Programs should not rely on buffer overruns being caught.
+
+ There is one exception to the usual rule that a portable program
+cannot address outside an array. In C, it is valid to compute the
+address just past an object, e.g., `&a[N]' where `a' has `N' elements,
+so long as you do not dereference the resulting pointer. But it is not
+valid to compute the address just before an object, e.g., `&a[-1]'; nor
+is it valid to compute two past the end, e.g., `&a[N+1]'. On most
+platforms `&a[-1] < &a[0] && &a[N] < &a[N+1]', but this is not reliable
+in general, and it is usually easy enough to avoid the potential
+portability problem, e.g., by allocating an extra unused array element
+at the start or end.
+
+ Valgrind (http://valgrind.org/) can catch many overruns. GCC users
+might also consider using the `-fmudflap' option to catch overruns.
+
+ Buffer overruns are usually caused by off-by-one errors, but there
+are more subtle ways to get them.
+
+ Using `int' values to index into an array or compute array sizes
+causes problems on typical 64-bit hosts where an array index might be
+2^31 or larger. Index values of type `size_t' avoid this problem, but
+cannot be negative. Index values of type `ptrdiff_t' are signed, and
+are wide enough in practice.
+
+ If you add or multiply two numbers to calculate an array size, e.g.,
+`malloc (x * sizeof y + z)', havoc ensues if the addition or
+multiplication overflows.
+
+ Many implementations of the `alloca' function silently misbehave and
+can generate buffer overflows if given sizes that are too large. The
+size limits are implementation dependent, but are at least 4000 bytes
+on all platforms that we know about.
+
+ The standard functions `asctime', `asctime_r', `ctime', `ctime_r',
+and `gets' are prone to buffer overflows, and portable code should not
+use them unless the inputs are known to be within certain limits. The
+time-related functions can overflow their buffers if given timestamps
+out of range (e.g., a year less than -999 or greater than 9999).
+Time-related buffer overflows cannot happen with recent-enough versions
+of the GNU C library, but are possible with other implementations. The
+`gets' function is the worst, since it almost invariably overflows its
+buffer when presented with an input line larger than the buffer.
+
+
+File: autoconf.info, Node: Volatile Objects, Next: Floating Point Portability, Prev: Buffer Overruns, Up: Portable C and C++
+
+13.6 Volatile Objects
+=====================
+
+The keyword `volatile' is often misunderstood in portable code. Its
+use inhibits some memory-access optimizations, but programmers often
+wish that it had a different meaning than it actually does.
+
+ `volatile' was designed for code that accesses special objects like
+memory-mapped device registers whose contents spontaneously change.
+Such code is inherently low-level, and it is difficult to specify
+portably what `volatile' means in these cases. The C standard says,
+"What constitutes an access to an object that has volatile-qualified
+type is implementation-defined," so in theory each implementation is
+supposed to fill in the gap by documenting what `volatile' means for
+that implementation. In practice, though, this documentation is
+usually absent or incomplete.
+
+ One area of confusion is the distinction between objects defined with
+volatile types, and volatile lvalues. From the C standard's point of
+view, an object defined with a volatile type has externally visible
+behavior. You can think of such objects as having little oscilloscope
+probes attached to them, so that the user can observe some properties of
+accesses to them, just as the user can observe data written to output
+files. However, the standard does not make it clear whether users can
+observe accesses by volatile lvalues to ordinary objects. For example:
+
+ /* Declare and access a volatile object.
+ Accesses to X are "visible" to users. */
+ static int volatile x;
+ x = 1;
+
+ /* Access two ordinary objects via a volatile lvalue.
+ It's not clear whether accesses to *P are "visible". */
+ int y;
+ int *z = malloc (sizeof (int));
+ int volatile *p;
+ p = &y;
+ *p = 1;
+ p = z;
+ *p = 1;
+
+ Programmers often wish that `volatile' meant "Perform the memory
+access here and now, without merging several memory accesses, without
+changing the memory word size, and without reordering." But the C
+standard does not require this. For objects defined with a volatile
+type, accesses must be done before the next sequence point; but
+otherwise merging, reordering, and word-size change is allowed. Worse,
+it is not clear from the standard whether volatile lvalues provide more
+guarantees in general than nonvolatile lvalues, if the underlying
+objects are ordinary.
+
+ Even when accessing objects defined with a volatile type, the C
+standard allows only extremely limited signal handlers: the behavior is
+undefined if a signal handler reads any nonlocal object, or writes to
+any nonlocal object whose type is not `sig_atomic_t volatile', or calls
+any standard library function other than `abort', `signal', and (if C99)
+`_Exit'. Hence C compilers need not worry about a signal handler
+disturbing ordinary computation, unless the computation accesses a
+`sig_atomic_t volatile' lvalue that is not a local variable. (There is
+an obscure exception for accesses via a pointer to a volatile
+character, since it may point into part of a `sig_atomic_t volatile'
+object.) Posix adds to the list of library functions callable from a
+portable signal handler, but otherwise is like the C standard in this
+area.
+
+ Some C implementations allow memory-access optimizations within each
+translation unit, such that actual behavior agrees with the behavior
+required by the standard only when calling a function in some other
+translation unit, and a signal handler acts like it was called from a
+different translation unit. The C standard hints that in these
+implementations, objects referred to by signal handlers "would require
+explicit specification of `volatile' storage, as well as other
+implementation-defined restrictions." But unfortunately even for this
+special case these other restrictions are often not documented well.
+*Note When is a Volatile Object Accessed?: (gcc)Volatiles, for some
+restrictions imposed by GCC. *Note Defining Signal Handlers:
+(libc)Defining Handlers, for some restrictions imposed by the GNU C
+library. Restrictions differ on other platforms.
+
+ If possible, it is best to use a signal handler that fits within the
+limits imposed by the C and Posix standards.
+
+ If this is not practical, you can try the following rules of thumb.
+A signal handler should access only volatile lvalues, preferably lvalues
+that refer to objects defined with a volatile type, and should not
+assume that the accessed objects have an internally consistent state if
+they are larger than a machine word. Furthermore, installers should
+employ compilers and compiler options that are commonly used for
+building operating system kernels, because kernels often need more from
+`volatile' than the C Standard requires, and installers who compile an
+application in a similar environment can sometimes benefit from the
+extra constraints imposed by kernels on compilers. Admittedly we are
+handwaving somewhat here, as there are few guarantees in this area; the
+rules of thumb may help to fix some bugs but there is a good chance
+that they will not fix them all.
+
+ For `volatile', C++ has the same problems that C does.
+Multithreaded applications have even more problems with `volatile', but
+they are beyond the scope of this section.
+
+ The bottom line is that using `volatile' typically hurts performance
+but should not hurt correctness. In some cases its use does help
+correctness, but these cases are often so poorly understood that all
+too often adding `volatile' to a data structure merely alleviates some
+symptoms of a bug while not fixing the bug in general.
+
+
+File: autoconf.info, Node: Floating Point Portability, Next: Exiting Portably, Prev: Volatile Objects, Up: Portable C and C++
+
+13.7 Floating Point Portability
+===============================
+
+Almost all modern systems use IEEE-754 floating point, and it is safe to
+assume IEEE-754 in most portable code these days. For more information,
+please see David Goldberg's classic paper What Every Computer Scientist
+Should Know About Floating-Point Arithmetic
+(http://www.validlab.com/goldberg/paper.pdf).
+
+
+File: autoconf.info, Node: Exiting Portably, Prev: Floating Point Portability, Up: Portable C and C++
+
+13.8 Exiting Portably
+=====================
+
+A C or C++ program can exit with status N by returning N from the
+`main' function. Portable programs are supposed to exit either with
+status 0 or `EXIT_SUCCESS' to succeed, or with status `EXIT_FAILURE' to
+fail, but in practice it is portable to fail by exiting with status 1,
+and test programs that assume Posix can fail by exiting with status
+values from 1 through 255. Programs on SunOS 2.0 (1985) through 3.5.2
+(1988) incorrectly exited with zero status when `main' returned
+nonzero, but ancient systems like these are no longer of practical
+concern.
+
+ A program can also exit with status N by passing N to the `exit'
+function, and a program can fail by calling the `abort' function. If a
+program is specialized to just some platforms, it can fail by calling
+functions specific to those platforms, e.g., `_exit' (Posix) and
+`_Exit' (C99). However, like other functions, an exit function should
+be declared, typically by including a header. For example, if a C
+program calls `exit', it should include `stdlib.h' either directly or
+via the default includes (*note Default Includes::).
+
+ A program can fail due to undefined behavior such as dereferencing a
+null pointer, but this is not recommended as undefined behavior allows
+an implementation to do whatever it pleases and this includes exiting
+successfully.
+
+
+File: autoconf.info, Node: Manual Configuration, Next: Site Configuration, Prev: Portable C and C++, Up: Top
+
+14 Manual Configuration
+***********************
+
+A few kinds of features can't be guessed automatically by running test
+programs. For example, the details of the object-file format, or
+special options that need to be passed to the compiler or linker. You
+can check for such features using ad-hoc means, such as having
+`configure' check the output of the `uname' program, or looking for
+libraries that are unique to particular systems. However, Autoconf
+provides a uniform method for handling unguessable features.
+
+* Menu:
+
+* Specifying Target Triplets:: Specifying target triplets
+* Canonicalizing:: Getting the canonical system type
+* Using System Type:: What to do with the system type
+
+
+File: autoconf.info, Node: Specifying Target Triplets, Next: Canonicalizing, Up: Manual Configuration
+
+14.1 Specifying target triplets
+===============================
+
+Autoconf-generated `configure' scripts can make decisions based on a
+canonical name for the system type, or "target triplet", which has the
+form: `CPU-VENDOR-OS', where OS can be `SYSTEM' or `KERNEL-SYSTEM'
+
+ `configure' can usually guess the canonical name for the type of
+system it's running on. To do so it runs a script called
+`config.guess', which infers the name using the `uname' command or
+symbols predefined by the C preprocessor.
+
+ Alternately, the user can specify the system type with command line
+arguments to `configure' (*note System Type::. Doing so is necessary
+when cross-compiling. In the most complex case of cross-compiling,
+three system types are involved. The options to specify them are:
+
+`--build=BUILD-TYPE'
+ the type of system on which the package is being configured and
+ compiled. It defaults to the result of running `config.guess'.
+ Specifying a BUILD-TYPE that differs from HOST-TYPE enables
+ cross-compilation mode.
+
+`--host=HOST-TYPE'
+ the type of system on which the package runs. By default it is the
+ same as the build machine. Specifying a HOST-TYPE that differs
+ from BUILD-TYPE, when BUILD-TYPE was also explicitly specified,
+ enables cross-compilation mode.
+
+`--target=TARGET-TYPE'
+ the type of system for which any compiler tools in the package
+ produce code (rarely needed). By default, it is the same as host.
+
+ If you mean to override the result of `config.guess', use `--build',
+not `--host', since the latter enables cross-compilation. For
+historical reasons, whenever you specify `--host', be sure to specify
+`--build' too; this will be fixed in the future. So, to enter
+cross-compilation mode, use a command like this
+
+ ./configure --build=i686-pc-linux-gnu --host=m68k-coff
+
+Note that if you do not specify `--host', `configure' fails if it can't
+run the code generated by the specified compiler. For example,
+configuring as follows fails:
+
+ ./configure CC=m68k-coff-gcc
+
+ When cross-compiling, `configure' will warn about any tools
+(compilers, linkers, assemblers) whose name is not prefixed with the
+host type. This is an aid to users performing cross-compilation.
+Continuing the example above, if a cross-compiler named `cc' is used
+with a native `pkg-config', then libraries found by `pkg-config' will
+likely cause subtle build failures; but using the names `m68k-coff-cc'
+and `m68k-coff-pkg-config' avoids any confusion. Avoiding the warning
+is as simple as creating the correct symlinks naming the cross tools.
+
+ `configure' recognizes short aliases for many system types; for
+example, `decstation' can be used instead of `mips-dec-ultrix4.2'.
+`configure' runs a script called `config.sub' to canonicalize system
+type aliases.
+
+ This section deliberately omits the description of the obsolete
+interface; see *note Hosts and Cross-Compilation::.
+
+
+File: autoconf.info, Node: Canonicalizing, Next: Using System Type, Prev: Specifying Target Triplets, Up: Manual Configuration
+
+14.2 Getting the Canonical System Type
+======================================
+
+The following macros make the system type available to `configure'
+scripts.
+
+ The variables `build_alias', `host_alias', and `target_alias' are
+always exactly the arguments of `--build', `--host', and `--target'; in
+particular, they are left empty if the user did not use them, even if
+the corresponding `AC_CANONICAL' macro was run. Any configure script
+may use these variables anywhere. These are the variables that should
+be used when in interaction with the user.
+
+ If you need to recognize some special environments based on their
+system type, run the following macros to get canonical system names.
+These variables are not set before the macro call.
+
+ If you use these macros, you must distribute `config.guess' and
+`config.sub' along with your source code. *Note Output::, for
+information about the `AC_CONFIG_AUX_DIR' macro which you can use to
+control in which directory `configure' looks for those scripts.
+
+ -- Macro: AC_CANONICAL_BUILD
+ Compute the canonical build-system type variable, `build', and its
+ three individual parts `build_cpu', `build_vendor', and `build_os'.
+
+ If `--build' was specified, then `build' is the canonicalization
+ of `build_alias' by `config.sub', otherwise it is determined by
+ the shell script `config.guess'.
+
+ -- Macro: AC_CANONICAL_HOST
+ Compute the canonical host-system type variable, `host', and its
+ three individual parts `host_cpu', `host_vendor', and `host_os'.
+
+ If `--host' was specified, then `host' is the canonicalization of
+ `host_alias' by `config.sub', otherwise it defaults to `build'.
+
+ -- Macro: AC_CANONICAL_TARGET
+ Compute the canonical target-system type variable, `target', and
+ its three individual parts `target_cpu', `target_vendor', and
+ `target_os'.
+
+ If `--target' was specified, then `target' is the canonicalization
+ of `target_alias' by `config.sub', otherwise it defaults to `host'.
+
+ Note that there can be artifacts due to the backward compatibility
+code. *Note Hosts and Cross-Compilation::, for more.
+
+
+File: autoconf.info, Node: Using System Type, Prev: Canonicalizing, Up: Manual Configuration
+
+14.3 Using the System Type
+==========================
+
+In `configure.ac' the system type is generally used by one or more
+`case' statements to select system-specifics. Shell wildcards can be
+used to match a group of system types.
+
+ For example, an extra assembler code object file could be chosen,
+giving access to a CPU cycle counter register. `$(CYCLE_OBJ)' in the
+following would be used in a makefile to add the object to a program or
+library.
+
+ AS_CASE([$host],
+ [alpha*-*-*], [CYCLE_OBJ=rpcc.o],
+ [i?86-*-*], [CYCLE_OBJ=rdtsc.o],
+ [CYCLE_OBJ=""]
+ )
+ AC_SUBST([CYCLE_OBJ])
+
+ `AC_CONFIG_LINKS' (*note Configuration Links::) is another good way
+to select variant source files, for example optimized code for some
+CPUs. The configured CPU type doesn't always indicate exact CPU types,
+so some runtime capability checks may be necessary too.
+
+ case $host in
+ alpha*-*-*) AC_CONFIG_LINKS([dither.c:alpha/dither.c]) ;;
+ powerpc*-*-*) AC_CONFIG_LINKS([dither.c:powerpc/dither.c]) ;;
+ *-*-*) AC_CONFIG_LINKS([dither.c:generic/dither.c]) ;;
+ esac
+
+ The host system type can also be used to find cross-compilation tools
+with `AC_CHECK_TOOL' (*note Generic Programs::).
+
+ The above examples all show `$host', since this is where the code is
+going to run. Only rarely is it necessary to test `$build' (which is
+where the build is being done).
+
+ Whenever you're tempted to use `$host' it's worth considering
+whether some sort of probe would be better. New system types come along
+periodically or previously missing features are added. Well-written
+probes can adapt themselves to such things, but hard-coded lists of
+names can't. Here are some guidelines,
+
+ * Availability of libraries and library functions should always be
+ checked by probing.
+
+ * Variant behavior of system calls is best identified with runtime
+ tests if possible, but bug workarounds or obscure difficulties
+ might have to be driven from `$host'.
+
+ * Assembler code is inevitably highly CPU-specific and is best
+ selected according to `$host_cpu'.
+
+ * Assembler variations like underscore prefix on globals or ELF
+ versus COFF type directives are however best determined by
+ probing, perhaps even examining the compiler output.
+
+ `$target' is for use by a package creating a compiler or similar.
+For ordinary packages it's meaningless and should not be used. It
+indicates what the created compiler should generate code for, if it can
+cross-compile. `$target' generally selects various hard-coded CPU and
+system conventions, since usually the compiler or tools under
+construction themselves determine how the target works.
+
+
+File: autoconf.info, Node: Site Configuration, Next: Running configure Scripts, Prev: Manual Configuration, Up: Top
+
+15 Site Configuration
+*********************
+
+`configure' scripts support several kinds of local configuration
+decisions. There are ways for users to specify where external software
+packages are, include or exclude optional features, install programs
+under modified names, and set default values for `configure' options.
+
+* Menu:
+
+* Help Formatting:: Customizing `configure --help'
+* External Software:: Working with other optional software
+* Package Options:: Selecting optional features
+* Pretty Help Strings:: Formatting help string
+* Option Checking:: Controlling checking of `configure' options
+* Site Details:: Configuring site details
+* Transforming Names:: Changing program names when installing
+* Site Defaults:: Giving `configure' local defaults
+
+
+File: autoconf.info, Node: Help Formatting, Next: External Software, Up: Site Configuration
+
+15.1 Controlling Help Output
+============================
+
+Users consult `configure --help' to learn of configuration decisions
+specific to your package. By default, `configure' breaks this output
+into sections for each type of option; within each section, help
+strings appear in the order `configure.ac' defines them:
+
+ Optional Features:
+ ...
+ --enable-bar include bar
+
+ Optional Packages:
+ ...
+ --with-foo use foo
+
+ -- Macro: AC_PRESERVE_HELP_ORDER
+ Request an alternate `--help' format, in which options of all
+ types appear together, in the order defined. Call this macro
+ before any `AC_ARG_ENABLE' or `AC_ARG_WITH'.
+
+ Optional Features and Packages:
+ ...
+ --enable-bar include bar
+ --with-foo use foo
+
+
+
+File: autoconf.info, Node: External Software, Next: Package Options, Prev: Help Formatting, Up: Site Configuration
+
+15.2 Working With External Software
+===================================
+
+Some packages require, or can optionally use, other software packages
+that are already installed. The user can give `configure' command line
+options to specify which such external software to use. The options
+have one of these forms:
+
+ --with-PACKAGE[=ARG]
+ --without-PACKAGE
+
+ For example, `--with-gnu-ld' means work with the GNU linker instead
+of some other linker. `--with-x' means work with The X Window System.
+
+ The user can give an argument by following the package name with `='
+and the argument. Giving an argument of `no' is for packages that are
+used by default; it says to _not_ use the package. An argument that is
+neither `yes' nor `no' could include a name or number of a version of
+the other package, to specify more precisely which other package this
+program is supposed to work with. If no argument is given, it defaults
+to `yes'. `--without-PACKAGE' is equivalent to `--with-PACKAGE=no'.
+
+ Normally `configure' scripts complain about `--with-PACKAGE' options
+that they do not support. *Note Option Checking::, for details, and
+for how to override the defaults.
+
+ For each external software package that may be used, `configure.ac'
+should call `AC_ARG_WITH' to detect whether the `configure' user asked
+to use it. Whether each package is used or not by default, and which
+arguments are valid, is up to you.
+
+ -- Macro: AC_ARG_WITH (PACKAGE, HELP-STRING, [ACTION-IF-GIVEN],
+ [ACTION-IF-NOT-GIVEN])
+ If the user gave `configure' the option `--with-PACKAGE' or
+ `--without-PACKAGE', run shell commands ACTION-IF-GIVEN. If
+ neither option was given, run shell commands ACTION-IF-NOT-GIVEN.
+ The name PACKAGE indicates another software package that this
+ program should work with. It should consist only of alphanumeric
+ characters, dashes, plus signs, and dots.
+
+ The option's argument is available to the shell commands
+ ACTION-IF-GIVEN in the shell variable `withval', which is actually
+ just the value of the shell variable named `with_PACKAGE', with
+ any non-alphanumeric characters in PACKAGE changed into `_'. You
+ may use that variable instead, if you wish.
+
+ The argument HELP-STRING is a description of the option that looks
+ like this:
+ --with-readline support fancy command line editing
+
+ HELP-STRING may be more than one line long, if more detail is
+ needed. Just make sure the columns line up in `configure --help'.
+ Avoid tabs in the help string. The easiest way to provide the
+ proper leading whitespace is to format your HELP-STRING with the
+ macro `AS_HELP_STRING' (*note Pretty Help Strings::).
+
+ The following example shows how to use the `AC_ARG_WITH' macro in
+ a common situation. You want to let the user decide whether to
+ enable support for an external library (e.g., the readline
+ library); if the user specified neither `--with-readline' nor
+ `--without-readline', you want to enable support for readline only
+ if the library is available on the system.
+
+ AC_ARG_WITH([readline],
+ [AS_HELP_STRING([--with-readline],
+ [support fancy command line editing @<:@default=check@:>@])],
+ [],
+ [with_readline=check])
+
+ LIBREADLINE=
+ AS_IF([test "x$with_readline" != xno],
+ [AC_CHECK_LIB([readline], [main],
+ [AC_SUBST([LIBREADLINE], ["-lreadline -lncurses"])
+ AC_DEFINE([HAVE_LIBREADLINE], [1],
+ [Define if you have libreadline])
+ ],
+ [if test "x$with_readline" != xcheck; then
+ AC_MSG_FAILURE(
+ [--with-readline was given, but test for readline failed])
+ fi
+ ], -lncurses)])
+
+ The next example shows how to use `AC_ARG_WITH' to give the user
+ the possibility to enable support for the readline library, in
+ case it is still experimental and not well tested, and is
+ therefore disabled by default.
+
+ AC_ARG_WITH([readline],
+ [AS_HELP_STRING([--with-readline],
+ [enable experimental support for readline])],
+ [],
+ [with_readline=no])
+
+ LIBREADLINE=
+ AS_IF([test "x$with_readline" != xno],
+ [AC_CHECK_LIB([readline], [main],
+ [AC_SUBST([LIBREADLINE], ["-lreadline -lncurses"])
+ AC_DEFINE([HAVE_LIBREADLINE], [1],
+ [Define if you have libreadline])
+ ],
+ [AC_MSG_FAILURE(
+ [--with-readline was given, but test for readline failed])],
+ [-lncurses])])
+
+ The last example shows how to use `AC_ARG_WITH' to give the user
+ the possibility to disable support for the readline library, given
+ that it is an important feature and that it should be enabled by
+ default.
+
+ AC_ARG_WITH([readline],
+ [AS_HELP_STRING([--without-readline],
+ [disable support for readline])],
+ [],
+ [with_readline=yes])
+
+ LIBREADLINE=
+ AS_IF([test "x$with_readline" != xno],
+ [AC_CHECK_LIB([readline], [main],
+ [AC_SUBST([LIBREADLINE], ["-lreadline -lncurses"])
+ AC_DEFINE([HAVE_LIBREADLINE], [1],
+ [Define if you have libreadline])
+ ],
+ [AC_MSG_FAILURE(
+ [readline test failed (--without-readline to disable)])],
+ [-lncurses])])
+
+ These three examples can be easily adapted to the case where
+ `AC_ARG_ENABLE' should be preferred to `AC_ARG_WITH' (see *note
+ Package Options::).
+
+
+File: autoconf.info, Node: Package Options, Next: Pretty Help Strings, Prev: External Software, Up: Site Configuration
+
+15.3 Choosing Package Options
+=============================
+
+If a software package has optional compile-time features, the user can
+give `configure' command line options to specify whether to compile
+them. The options have one of these forms:
+
+ --enable-FEATURE[=ARG]
+ --disable-FEATURE
+
+ These options allow users to choose which optional features to build
+and install. `--enable-FEATURE' options should never make a feature
+behave differently or cause one feature to replace another. They
+should only cause parts of the program to be built rather than left out.
+
+ The user can give an argument by following the feature name with `='
+and the argument. Giving an argument of `no' requests that the feature
+_not_ be made available. A feature with an argument looks like
+`--enable-debug=stabs'. If no argument is given, it defaults to `yes'.
+`--disable-FEATURE' is equivalent to `--enable-FEATURE=no'.
+
+ Normally `configure' scripts complain about `--enable-PACKAGE'
+options that they do not support. *Note Option Checking::, for
+details, and for how to override the defaults.
+
+ For each optional feature, `configure.ac' should call
+`AC_ARG_ENABLE' to detect whether the `configure' user asked to include
+it. Whether each feature is included or not by default, and which
+arguments are valid, is up to you.
+
+ -- Macro: AC_ARG_ENABLE (FEATURE, HELP-STRING, [ACTION-IF-GIVEN],
+ [ACTION-IF-NOT-GIVEN])
+ If the user gave `configure' the option `--enable-FEATURE' or
+ `--disable-FEATURE', run shell commands ACTION-IF-GIVEN. If
+ neither option was given, run shell commands ACTION-IF-NOT-GIVEN.
+ The name FEATURE indicates an optional user-level facility. It
+ should consist only of alphanumeric characters, dashes, plus
+ signs, and dots.
+
+ The option's argument is available to the shell commands
+ ACTION-IF-GIVEN in the shell variable `enableval', which is
+ actually just the value of the shell variable named
+ `enable_FEATURE', with any non-alphanumeric characters in FEATURE
+ changed into `_'. You may use that variable instead, if you wish.
+ The HELP-STRING argument is like that of `AC_ARG_WITH' (*note
+ External Software::).
+
+ You should format your HELP-STRING with the macro `AS_HELP_STRING'
+ (*note Pretty Help Strings::).
+
+ See the examples suggested with the definition of `AC_ARG_WITH'
+ (*note External Software::) to get an idea of possible
+ applications of `AC_ARG_ENABLE'.
+
+
+File: autoconf.info, Node: Pretty Help Strings, Next: Option Checking, Prev: Package Options, Up: Site Configuration
+
+15.4 Making Your Help Strings Look Pretty
+=========================================
+
+Properly formatting the `help strings' which are used in `AC_ARG_WITH'
+(*note External Software::) and `AC_ARG_ENABLE' (*note Package
+Options::) can be challenging. Specifically, you want your own `help
+strings' to line up in the appropriate columns of `configure --help'
+just like the standard Autoconf `help strings' do. This is the purpose
+of the `AS_HELP_STRING' macro.
+
+ -- Macro: AS_HELP_STRING (LEFT-HAND-SIDE, RIGHT-HAND-SIDE
+ [INDENT-COLUMN = `26'], [WRAP-COLUMN = `79'])
+ Expands into a help string that looks pretty when the user executes
+ `configure --help'. It is typically used in `AC_ARG_WITH' (*note
+ External Software::) or `AC_ARG_ENABLE' (*note Package Options::).
+ The following example makes this clearer.
+
+ AC_ARG_WITH([foo],
+ [AS_HELP_STRING([--with-foo],
+ [use foo (default is no)])],
+ [use_foo=$withval],
+ [use_foo=no])
+
+ Then the last few lines of `configure --help' appear like this:
+
+ --enable and --with options recognized:
+ --with-foo use foo (default is no)
+
+ Macro expansion is performed on the first argument. However, the
+ second argument of `AS_HELP_STRING' is treated as a whitespace
+ separated list of text to be reformatted, and is not subject to
+ macro expansion. Since it is not expanded, it should not be
+ double quoted. *Note Autoconf Language::, for a more detailed
+ explanation.
+
+ The `AS_HELP_STRING' macro is particularly helpful when the
+ LEFT-HAND-SIDE and/or RIGHT-HAND-SIDE are composed of macro
+ arguments, as shown in the following example. Be aware that
+ LEFT-HAND-SIDE may not expand to unbalanced quotes, although
+ quadrigraphs can be used.
+
+ AC_DEFUN([MY_ARG_WITH],
+ [AC_ARG_WITH(m4_translit([[$1]], [_], [-]),
+ [AS_HELP_STRING([--with-m4_translit([$1], [_], [-])],
+ [use $1 (default is $2)])],
+ [use_[]$1=$withval],
+ [use_[]$1=$2])])
+ MY_ARG_WITH([a_b], [no])
+ Here, the last few lines of `configure --help' will include:
+
+ --enable and --with options recognized:
+ --with-a-b use a_b (default is no)
+
+ The parameters INDENT-COLUMN and WRAP-COLUMN were introduced in
+ Autoconf 2.62. Generally, they should not be specified; they exist
+ for fine-tuning of the wrapping.
+ AS_HELP_STRING([--option], [description of option])
+ => --option description of option
+ AS_HELP_STRING([--option], [description of option], [15], [30])
+ => --option description of
+ => option
+
+
+File: autoconf.info, Node: Option Checking, Next: Site Details, Prev: Pretty Help Strings, Up: Site Configuration
+
+15.5 Controlling Checking of `configure' Options
+================================================
+
+The `configure' script checks its command-line options against a list
+of known options, like `--help' or `--config-cache'. An unknown option
+ordinarily indicates a mistake by the user and `configure' halts with
+an error. However, by default unknown `--with-PACKAGE' and
+`--enable-FEATURE' options elicit only a warning, to support
+configuring entire source trees.
+
+ Source trees often contain multiple packages with a top-level
+`configure' script that uses the `AC_CONFIG_SUBDIRS' macro (*note
+Subdirectories::). Because the packages generally support different
+`--with-PACKAGE' and `--enable-FEATURE' options, the GNU Coding
+Standards say they must accept unrecognized options without halting.
+Even a warning message is undesirable here, so `AC_CONFIG_SUBDIRS'
+automatically disables the warnings.
+
+ This default behavior may be modified in two ways. First, the
+installer can invoke `configure --disable-option-checking' to disable
+these warnings, or invoke `configure --enable-option-checking=fatal'
+options to turn them into fatal errors, respectively. Second, the
+maintainer can use `AC_DISABLE_OPTION_CHECKING'.
+
+ -- Macro: AC_DISABLE_OPTION_CHECKING
+ By default, disable warnings related to any unrecognized
+ `--with-PACKAGE' or `--enable-FEATURE' options. This is implied
+ by `AC_CONFIG_SUBDIRS'.
+
+ The installer can override this behavior by passing
+ `--enable-option-checking' (enable warnings) or
+ `--enable-option-checking=fatal' (enable errors) to `configure'.
+
+
+File: autoconf.info, Node: Site Details, Next: Transforming Names, Prev: Option Checking, Up: Site Configuration
+
+15.6 Configuring Site Details
+=============================
+
+Some software packages require complex site-specific information. Some
+examples are host names to use for certain services, company names, and
+email addresses to contact. Since some configuration scripts generated
+by Metaconfig ask for such information interactively, people sometimes
+wonder how to get that information in Autoconf-generated configuration
+scripts, which aren't interactive.
+
+ Such site configuration information should be put in a file that is
+edited _only by users_, not by programs. The location of the file can
+either be based on the `prefix' variable, or be a standard location
+such as the user's home directory. It could even be specified by an
+environment variable. The programs should examine that file at
+runtime, rather than at compile time. Runtime configuration is more
+convenient for users and makes the configuration process simpler than
+getting the information while configuring. *Note Variables for
+Installation Directories: (standards)Directory Variables, for more
+information on where to put data files.
+
+
+File: autoconf.info, Node: Transforming Names, Next: Site Defaults, Prev: Site Details, Up: Site Configuration
+
+15.7 Transforming Program Names When Installing
+===============================================
+
+Autoconf supports changing the names of programs when installing them.
+In order to use these transformations, `configure.ac' must call the
+macro `AC_ARG_PROGRAM'.
+
+ -- Macro: AC_ARG_PROGRAM
+ Place in output variable `program_transform_name' a sequence of
+ `sed' commands for changing the names of installed programs.
+
+ If any of the options described below are given to `configure',
+ program names are transformed accordingly. Otherwise, if
+ `AC_CANONICAL_TARGET' has been called and a `--target' value is
+ given, the target type followed by a dash is used as a prefix.
+ Otherwise, no program name transformation is done.
+
+* Menu:
+
+* Transformation Options:: `configure' options to transform names
+* Transformation Examples:: Sample uses of transforming names
+* Transformation Rules:: Makefile uses of transforming names
+
+
+File: autoconf.info, Node: Transformation Options, Next: Transformation Examples, Up: Transforming Names
+
+15.7.1 Transformation Options
+-----------------------------
+
+You can specify name transformations by giving `configure' these
+command line options:
+
+`--program-prefix=PREFIX'
+ prepend PREFIX to the names;
+
+`--program-suffix=SUFFIX'
+ append SUFFIX to the names;
+
+`--program-transform-name=EXPRESSION'
+ perform `sed' substitution EXPRESSION on the names.
+
+
+File: autoconf.info, Node: Transformation Examples, Next: Transformation Rules, Prev: Transformation Options, Up: Transforming Names
+
+15.7.2 Transformation Examples
+------------------------------
+
+These transformations are useful with programs that can be part of a
+cross-compilation development environment. For example, a
+cross-assembler running on a Sun 4 configured with
+`--target=i960-vxworks' is normally installed as `i960-vxworks-as',
+rather than `as', which could be confused with a native Sun 4 assembler.
+
+ You can force a program name to begin with `g', if you don't want
+GNU programs installed on your system to shadow other programs with the
+same name. For example, if you configure GNU `diff' with
+`--program-prefix=g', then when you run `make install' it is installed
+as `/usr/local/bin/gdiff'.
+
+ As a more sophisticated example, you could use
+
+ --program-transform-name='s/^/g/; s/^gg/g/; s/^gless/less/'
+ to prepend `g' to most of the program names in a source tree,
+excepting those like `gdb' that already have one and those like `less'
+and `lesskey' that aren't GNU programs. (That is assuming that you
+have a source tree containing those programs that is set up to use this
+feature.)
+
+ One way to install multiple versions of some programs simultaneously
+is to append a version number to the name of one or both. For example,
+if you want to keep Autoconf version 1 around for awhile, you can
+configure Autoconf version 2 using `--program-suffix=2' to install the
+programs as `/usr/local/bin/autoconf2', `/usr/local/bin/autoheader2',
+etc. Nevertheless, pay attention that only the binaries are renamed,
+therefore you'd have problems with the library files which might
+overlap.
+
+
+File: autoconf.info, Node: Transformation Rules, Prev: Transformation Examples, Up: Transforming Names
+
+15.7.3 Transformation Rules
+---------------------------
+
+Here is how to use the variable `program_transform_name' in a
+`Makefile.in':
+
+ PROGRAMS = cp ls rm
+ transform = @program_transform_name@
+ install:
+ for p in $(PROGRAMS); do \
+ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p | \
+ sed '$(transform)'`; \
+ done
+
+ uninstall:
+ for p in $(PROGRAMS); do \
+ rm -f $(DESTDIR)$(bindir)/`echo $$p | sed '$(transform)'`; \
+ done
+
+ It is guaranteed that `program_transform_name' is never empty, and
+that there are no useless separators. Therefore you may safely embed
+`program_transform_name' within a sed program using `;':
+
+ transform = @program_transform_name@
+ transform_exe = s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/
+
+ Whether to do the transformations on documentation files (Texinfo or
+`man') is a tricky question; there seems to be no perfect answer, due
+to the several reasons for name transforming. Documentation is not
+usually particular to a specific architecture, and Texinfo files do not
+conflict with system documentation. But they might conflict with
+earlier versions of the same files, and `man' pages sometimes do
+conflict with system documentation. As a compromise, it is probably
+best to do name transformations on `man' pages but not on Texinfo
+manuals.
+
+
+File: autoconf.info, Node: Site Defaults, Prev: Transforming Names, Up: Site Configuration
+
+15.8 Setting Site Defaults
+==========================
+
+Autoconf-generated `configure' scripts allow your site to provide
+default values for some configuration values. You do this by creating
+site- and system-wide initialization files.
+
+ If the environment variable `CONFIG_SITE' is set, `configure' uses
+its value as the name of a shell script to read; it is recommended that
+this be an absolute file name. Otherwise, it reads the shell script
+`PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site'
+if it exists. Thus, settings in machine-specific files override those
+in machine-independent ones in case of conflict.
+
+ Site files can be arbitrary shell scripts, but only certain kinds of
+code are really appropriate to be in them. Because `configure' reads
+any cache file after it has read any site files, a site file can define
+a default cache file to be shared between all Autoconf-generated
+`configure' scripts run on that system (*note Cache Files::). If you
+set a default cache file in a site file, it is a good idea to also set
+the output variable `CC' in that site file, because the cache file is
+only valid for a particular compiler, but many systems have several
+available.
+
+ You can examine or override the value set by a command line option to
+`configure' in a site file; options set shell variables that have the
+same names as the options, with any dashes turned into underscores.
+The exceptions are that `--without-' and `--disable-' options are like
+giving the corresponding `--with-' or `--enable-' option and the value
+`no'. Thus, `--cache-file=localcache' sets the variable `cache_file'
+to the value `localcache'; `--enable-warnings=no' or
+`--disable-warnings' sets the variable `enable_warnings' to the value
+`no'; `--prefix=/usr' sets the variable `prefix' to the value `/usr';
+etc.
+
+ Site files are also good places to set default values for other
+output variables, such as `CFLAGS', if you need to give them non-default
+values: anything you would normally do, repetitively, on the command
+line. If you use non-default values for PREFIX or EXEC_PREFIX
+(wherever you locate the site file), you can set them in the site file
+if you specify it with the `CONFIG_SITE' environment variable.
+
+ You can set some cache values in the site file itself. Doing this is
+useful if you are cross-compiling, where it is impossible to check
+features that require running a test program. You could "prime the
+cache" by setting those values correctly for that system in
+`PREFIX/etc/config.site'. To find out the names of the cache variables
+you need to set, see the documentation of the respective Autoconf
+macro. If the variables or their semantics are undocumented, you may
+need to look for shell variables with `_cv_' in their names in the
+affected `configure' scripts, or in the Autoconf M4 source code for
+those macros; but in that case, their name or semantics may change in a
+future Autoconf version.
+
+ The cache file is careful to not override any variables set in the
+site files. Similarly, you should not override command-line options in
+the site files. Your code should check that variables such as `prefix'
+and `cache_file' have their default values (as set near the top of
+`configure') before changing them.
+
+ Here is a sample file `/usr/share/local/gnu/share/config.site'. The
+command `configure --prefix=/usr/share/local/gnu' would read this file
+(if `CONFIG_SITE' is not set to a different file).
+
+ # /usr/share/local/gnu/share/config.site for configure
+ #
+ # Change some defaults.
+ test "$prefix" = NONE && prefix=/usr/share/local/gnu
+ test "$exec_prefix" = NONE && exec_prefix=/usr/local/gnu
+ test "$sharedstatedir" = '${prefix}/com' && sharedstatedir=/var
+ test "$localstatedir" = '${prefix}/var' && localstatedir=/var
+
+ # Give Autoconf 2.x generated configure scripts a shared default
+ # cache file for feature test results, architecture-specific.
+ if test "$cache_file" = /dev/null; then
+ cache_file="$prefix/var/config.cache"
+ # A cache file is only valid for one C compiler.
+ CC=gcc
+ fi
+
+ Another use of `config.site' is for priming the directory variables
+in a manner consistent with the Filesystem Hierarchy Standard (FHS).
+Once the following file is installed at `/usr/share/config.site', a
+user can execute simply `./configure --prefix=/usr' to get all the
+directories chosen in the locations recommended by FHS.
+
+ # /usr/share/config.site for FHS defaults when installing below /usr,
+ # and the respective settings were not changed on the command line.
+ if test "$prefix" = /usr; then
+ test "$sysconfdir" = '${prefix}/etc' && sysconfdir=/etc
+ test "$sharedstatedir" = '${prefix}/com' && sharedstatedir=/var
+ test "$localstatedir" = '${prefix}/var' && localstatedir=/var
+ fi
+
+ Likewise, on platforms where 64-bit libraries are built by default,
+then installed in `/usr/local/lib64' instead of `/usr/local/lib', it is
+appropriate to install `/usr/local/share/config.site':
+
+ # /usr/local/share/config.site for platforms that prefer
+ # the directory /usr/local/lib64 over /usr/local/lib.
+ test "$libdir" = '${exec_prefix}/lib' && libdir='${exec_prefix}/lib64'
+
+
+File: autoconf.info, Node: Running configure Scripts, Next: config.status Invocation, Prev: Site Configuration, Up: Top
+
+16 Running `configure' Scripts
+******************************
+
+Below are instructions on how to configure a package that uses a
+`configure' script, suitable for inclusion as an `INSTALL' file in the
+package. A plain-text version of `INSTALL' which you may use comes
+with Autoconf.
+
+* Menu:
+
+* Basic Installation:: Instructions for typical cases
+* Compilers and Options:: Selecting compilers and optimization
+* Multiple Architectures:: Compiling for multiple architectures at once
+* Installation Names:: Installing in different directories
+* Optional Features:: Selecting optional features
+* Particular Systems:: Particular systems
+* System Type:: Specifying the system type
+* Sharing Defaults:: Setting site-wide defaults for `configure'
+* Defining Variables:: Specifying the compiler etc.
+* configure Invocation:: Changing how `configure' runs
+
+
+File: autoconf.info, Node: Basic Installation, Next: Compilers and Options, Up: Running configure Scripts
+
+16.1 Basic Installation
+=======================
+
+Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package. The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package. More recommendations for GNU
+packages can be found in *note Makefile Conventions:
+(standards)Makefile Conventions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+ The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system.
+
+ Running `configure' might take a while. While running, it prints
+ some messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package, generally using the just-built uninstalled binaries.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation. When installing into a prefix owned by root, it is
+ recommended that the package be configured and built as a regular
+ user, and only the `make install' phase executed with root
+ privileges.
+
+ 5. Optionally, type `make installcheck' to repeat any self-tests, but
+ this time using the binaries in their final installed location.
+ This target does not install anything. Running this target as a
+ regular user, particularly if the prior `make install' required
+ root privileges, verifies that the installation completed
+ correctly.
+
+ 6. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+ 7. Often, you can also type `make uninstall' to remove the installed
+ files again. In practice, not all packages have tested that
+ uninstallation works correctly, even though it is required by the
+ GNU Coding Standards.
+
+ 8. Some packages, particularly those that use Automake, provide `make
+ distcheck', which can by used by developers to test that all other
+ targets like `make install' and `make uninstall' work correctly.
+ This target is generally not run by end users.
+
+
+File: autoconf.info, Node: Compilers and Options, Next: Multiple Architectures, Prev: Basic Installation, Up: Running configure Scripts
+
+16.2 Compilers and Options
+==========================
+
+Some systems require unusual options for compilation or linking that the
+`configure' script does not know about. Run `./configure --help' for
+details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+
+File: autoconf.info, Node: Multiple Architectures, Next: Installation Names, Prev: Compilers and Options, Up: Running configure Scripts
+
+16.3 Compiling For Multiple Architectures
+=========================================
+
+You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you can use GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'. This
+is known as a "VPATH" build.
+
+ With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory. After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+ On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor. Like
+this:
+
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CPP="gcc -E" CXXCPP="g++ -E"
+
+ This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
+
+File: autoconf.info, Node: Installation Names, Next: Optional Features, Prev: Multiple Architectures, Up: Running configure Scripts
+
+16.4 Installation Names
+=======================
+
+By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc. You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them. In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+ The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+ The first method involves providing an override variable for each
+affected directory. For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'. Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated. The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+ The second method involves providing the `DESTDIR' variable. For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names. The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters. On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+
+File: autoconf.info, Node: Optional Features, Next: Particular Systems, Prev: Installation Names, Up: Running configure Scripts
+
+16.5 Optional Features
+======================
+
+If the package supports it, you can cause programs to be installed with
+an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+ Some packages offer the ability to configure how verbose the
+execution of `make' will be. For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
+
+File: autoconf.info, Node: Particular Systems, Next: System Type, Prev: Optional Features, Up: Running configure Scripts
+
+16.6 Particular systems
+=======================
+
+On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is
+not installed, it is recommended to use the following options in order
+to use an ANSI C compiler:
+
+ ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+ HP-UX `make' updates targets which have the same time stamps as
+their prerequisites, which makes it generally unusable when shipped
+generated files such as `configure' are involved. Use GNU `make'
+instead.
+
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file. The option `-nodtk' can be used as
+a workaround. If GNU CC is not installed, it is therefore recommended
+to try
+
+ ./configure CC="cc"
+
+and if that doesn't work, try
+
+ ./configure CC="cc -nodtk"
+
+ On Solaris, don't put `/usr/ucb' early in your `PATH'. This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+ On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'. It is recommended to use the following options:
+
+ ./configure --prefix=/boot/common
+
+
+File: autoconf.info, Node: System Type, Next: Sharing Defaults, Prev: Particular Systems, Up: Running configure Scripts
+
+16.7 Specifying the System Type
+===============================
+
+There may be some features `configure' cannot figure out automatically,
+but needs to determine by the type of machine the package will run on.
+Usually, assuming the package is built to be run on the _same_
+architectures, `configure' can figure that out, but if it prints a
+message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS
+ KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+
+File: autoconf.info, Node: Sharing Defaults, Next: Defining Variables, Prev: System Type, Up: Running configure Scripts
+
+16.8 Sharing Defaults
+=====================
+
+If you want to set default values for `configure' scripts to share, you
+can create a site shell script called `config.site' that gives default
+values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+
+File: autoconf.info, Node: Defining Variables, Next: configure Invocation, Prev: Sharing Defaults, Up: Running configure Scripts
+
+16.9 Defining Variables
+=======================
+
+Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf limitation. Until the limitation is lifted, you can use
+this workaround:
+
+ CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+
+File: autoconf.info, Node: configure Invocation, Prev: Defining Variables, Up: Running configure Scripts
+
+16.10 `configure' Invocation
+============================
+
+`configure' recognizes the following options to control how it operates.
+
+`--help'
+`-h'
+ Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+ Print a summary of the options unique to this package's
+ `configure', and exit. The `short' variant lists options used
+ only in the top level, while the `recursive' variant lists options
+ also present in any nested packages.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--prefix=DIR'
+ Use DIR as the installation prefix. *note Installation Names::
+ for more details, including other options available for fine-tuning
+ the installation locations.
+
+`--no-create'
+`-n'
+ Run the configure checks, but stop before creating any output
+ files.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
+
+
+File: autoconf.info, Node: config.status Invocation, Next: Obsolete Constructs, Prev: Running configure Scripts, Up: Top
+
+17 config.status Invocation
+***************************
+
+The `configure' script creates a file named `config.status', which
+actually configures, "instantiates", the template files. It also
+records the configuration options that were specified when the package
+was last configured in case reconfiguring is needed.
+
+ Synopsis:
+ ./config.status [OPTION]... [TAG]...
+
+ It configures each TAG; if none are specified, all the templates are
+instantiated. A TAG refers to a file or other tag associated with a
+configuration action, as specified by an `AC_CONFIG_ITEMS' macro (*note
+Configuration Actions::). The files must be specified without their
+dependencies, as in
+
+ ./config.status foobar
+
+not
+
+ ./config.status foobar:foo.in:bar.in
+
+ The supported options are:
+
+`--help'
+`-h'
+ Print a summary of the command line options, the list of the
+ template files, and exit.
+
+`--version'
+`-V'
+ Print the version number of Autoconf and the configuration
+ settings, and exit.
+
+`--config'
+ Print the configuration settings in reusable way, quoted for the
+ shell, and exit. For example, for a debugging build that
+ otherwise reuses the configuration from a different build
+ directory BUILD-DIR of a package in SRC-DIR, you could use the
+ following:
+
+ args=`BUILD-DIR/config.status --config`
+ eval SRC-DIR/configure "$args" CFLAGS=-g --srcdir=SRC-DIR
+
+ Note that it may be necessary to override a `--srcdir' setting
+ that was saved in the configuration, if the arguments are used in a
+ different build directory.
+
+`--silent'
+`--quiet'
+`-q'
+ Do not print progress messages.
+
+`--debug'
+`-d'
+ Don't remove the temporary files.
+
+`--file=FILE[:TEMPLATE]'
+ Require that FILE be instantiated as if
+ `AC_CONFIG_FILES(FILE:TEMPLATE)' was used. Both FILE and TEMPLATE
+ may be `-' in which case the standard output and/or standard
+ input, respectively, is used. If a TEMPLATE file name is
+ relative, it is first looked for in the build tree, and then in
+ the source tree. *Note Configuration Actions::, for more details.
+
+ This option and the following ones provide one way for separately
+ distributed packages to share the values computed by `configure'.
+ Doing so can be useful if some of the packages need a superset of
+ the features that one of them, perhaps a common library, does.
+ These options allow a `config.status' file to create files other
+ than the ones that its `configure.ac' specifies, so it can be used
+ for a different package, or for extracting a subset of values.
+ For example,
+
+ echo '@CC@' | ./config.status --file=-
+
+ provides the value of `@CC@' on standard output.
+
+`--header=FILE[:TEMPLATE]'
+ Same as `--file' above, but with `AC_CONFIG_HEADERS'.
+
+`--recheck'
+ Ask `config.status' to update itself and exit (no instantiation).
+ This option is useful if you change `configure', so that the
+ results of some tests might be different from the previous run.
+ The `--recheck' option reruns `configure' with the same arguments
+ you used before, plus the `--no-create' option, which prevents
+ `configure' from running `config.status' and creating `Makefile'
+ and other files, and the `--no-recursion' option, which prevents
+ `configure' from running other `configure' scripts in
+ subdirectories. (This is so other Make rules can run
+ `config.status' when it changes; *note Automatic Remaking::, for
+ an example).
+
+ `config.status' checks several optional environment variables that
+can alter its behavior:
+
+ -- Variable: CONFIG_SHELL
+ The shell with which to run `configure'. It must be
+ Bourne-compatible, and the absolute name of the shell should be
+ passed. The default is a shell that supports `LINENO' if
+ available, and `/bin/sh' otherwise.
+
+ -- Variable: CONFIG_STATUS
+ The file name to use for the shell script that records the
+ configuration. The default is `./config.status'. This variable is
+ useful when one package uses parts of another and the `configure'
+ scripts shouldn't be merged because they are maintained separately.
+
+ You can use `./config.status' in your makefiles. For example, in
+the dependencies given above (*note Automatic Remaking::),
+`config.status' is run twice when `configure.ac' has changed. If that
+bothers you, you can make each run only regenerate the files for that
+rule:
+ config.h: stamp-h
+ stamp-h: config.h.in config.status
+ ./config.status config.h
+ echo > stamp-h
+
+ Makefile: Makefile.in config.status
+ ./config.status Makefile
+
+ The calling convention of `config.status' has changed; see *note
+Obsolete config.status Use::, for details.
+
+
+File: autoconf.info, Node: Obsolete Constructs, Next: Using Autotest, Prev: config.status Invocation, Up: Top
+
+18 Obsolete Constructs
+**********************
+
+Autoconf changes, and throughout the years some constructs have been
+obsoleted. Most of the changes involve the macros, but in some cases
+the tools themselves, or even some concepts, are now considered
+obsolete.
+
+ You may completely skip this chapter if you are new to Autoconf. Its
+intention is mainly to help maintainers updating their packages by
+understanding how to move to more modern constructs.
+
+* Menu:
+
+* Obsolete config.status Use:: Obsolete convention for `config.status'
+* acconfig Header:: Additional entries in `config.h.in'
+* autoupdate Invocation:: Automatic update of `configure.ac'
+* Obsolete Macros:: Backward compatibility macros
+* Autoconf 1:: Tips for upgrading your files
+* Autoconf 2.13:: Some fresher tips
+
+
+File: autoconf.info, Node: Obsolete config.status Use, Next: acconfig Header, Up: Obsolete Constructs
+
+18.1 Obsolete `config.status' Invocation
+========================================
+
+`config.status' now supports arguments to specify the files to
+instantiate; see *note config.status Invocation::, for more details.
+Before, environment variables had to be used.
+
+ -- Variable: CONFIG_COMMANDS
+ The tags of the commands to execute. The default is the arguments
+ given to `AC_OUTPUT' and `AC_CONFIG_COMMANDS' in `configure.ac'.
+
+ -- Variable: CONFIG_FILES
+ The files in which to perform `@VARIABLE@' substitutions. The
+ default is the arguments given to `AC_OUTPUT' and
+ `AC_CONFIG_FILES' in `configure.ac'.
+
+ -- Variable: CONFIG_HEADERS
+ The files in which to substitute C `#define' statements. The
+ default is the arguments given to `AC_CONFIG_HEADERS'; if that
+ macro was not called, `config.status' ignores this variable.
+
+ -- Variable: CONFIG_LINKS
+ The symbolic links to establish. The default is the arguments
+ given to `AC_CONFIG_LINKS'; if that macro was not called,
+ `config.status' ignores this variable.
+
+ In *note config.status Invocation::, using this old interface, the
+example would be:
+
+ config.h: stamp-h
+ stamp-h: config.h.in config.status
+ CONFIG_COMMANDS= CONFIG_LINKS= CONFIG_FILES= \
+ CONFIG_HEADERS=config.h ./config.status
+ echo > stamp-h
+
+ Makefile: Makefile.in config.status
+ CONFIG_COMMANDS= CONFIG_LINKS= CONFIG_HEADERS= \
+ CONFIG_FILES=Makefile ./config.status
+
+(If `configure.ac' does not call `AC_CONFIG_HEADERS', there is no need
+to set `CONFIG_HEADERS' in the `make' rules. Equally for
+`CONFIG_COMMANDS', etc.)
+
+
+File: autoconf.info, Node: acconfig Header, Next: autoupdate Invocation, Prev: Obsolete config.status Use, Up: Obsolete Constructs
+
+18.2 `acconfig.h'
+=================
+
+In order to produce `config.h.in', `autoheader' needs to build or to
+find templates for each symbol. Modern releases of Autoconf use
+`AH_VERBATIM' and `AH_TEMPLATE' (*note Autoheader Macros::), but in
+older releases a file, `acconfig.h', contained the list of needed
+templates. `autoheader' copied comments and `#define' and `#undef'
+statements from `acconfig.h' in the current directory, if present.
+This file used to be mandatory if you `AC_DEFINE' any additional
+symbols.
+
+ Modern releases of Autoconf also provide `AH_TOP' and `AH_BOTTOM' if
+you need to prepend/append some information to `config.h.in'. Ancient
+versions of Autoconf had a similar feature: if `./acconfig.h' contains
+the string `@TOP@', `autoheader' copies the lines before the line
+containing `@TOP@' into the top of the file that it generates.
+Similarly, if `./acconfig.h' contains the string `@BOTTOM@',
+`autoheader' copies the lines after that line to the end of the file it
+generates. Either or both of those strings may be omitted. An even
+older alternate way to produce the same effect in ancient versions of
+Autoconf is to create the files `FILE.top' (typically `config.h.top')
+and/or `FILE.bot' in the current directory. If they exist,
+`autoheader' copies them to the beginning and end, respectively, of its
+output.
+
+ In former versions of Autoconf, the files used in preparing a
+software package for distribution were:
+ configure.ac --. .------> autoconf* -----> configure
+ +---+
+ [aclocal.m4] --+ `---.
+ [acsite.m4] ---' |
+ +--> [autoheader*] -> [config.h.in]
+ [acconfig.h] ----. |
+ +-----'
+ [config.h.top] --+
+ [config.h.bot] --'
+
+ Using only the `AH_' macros, `configure.ac' should be
+self-contained, and should not depend upon `acconfig.h' etc.
+
+
+File: autoconf.info, Node: autoupdate Invocation, Next: Obsolete Macros, Prev: acconfig Header, Up: Obsolete Constructs
+
+18.3 Using `autoupdate' to Modernize `configure.ac'
+===================================================
+
+The `autoupdate' program updates a `configure.ac' file that calls
+Autoconf macros by their old names to use the current macro names. In
+version 2 of Autoconf, most of the macros were renamed to use a more
+uniform and descriptive naming scheme. *Note Macro Names::, for a
+description of the new scheme. Although the old names still work
+(*note Obsolete Macros::, for a list of the old macros and the
+corresponding new names), you can make your `configure.ac' files more
+readable and make it easier to use the current Autoconf documentation
+if you update them to use the new macro names.
+
+ If given no arguments, `autoupdate' updates `configure.ac', backing
+up the original version with the suffix `~' (or the value of the
+environment variable `SIMPLE_BACKUP_SUFFIX', if that is set). If you
+give `autoupdate' an argument, it reads that file instead of
+`configure.ac' and writes the updated file to the standard output.
+
+`autoupdate' accepts the following options:
+
+`--help'
+`-h'
+ Print a summary of the command line options and exit.
+
+`--version'
+`-V'
+ Print the version number of Autoconf and exit.
+
+`--verbose'
+`-v'
+ Report processing steps.
+
+`--debug'
+`-d'
+ Don't remove the temporary files.
+
+`--force'
+`-f'
+ Force the update even if the file has not changed. Disregard the
+ cache.
+
+`--include=DIR'
+`-I DIR'
+ Also look for input files in DIR. Multiple invocations accumulate.
+ Directories are browsed from last to first.
+
+`--prepend-include=DIR'
+`-B DIR'
+ Prepend directory DIR to the search path. This is used to include
+ the language-specific files before any third-party macros.
+
+
+File: autoconf.info, Node: Obsolete Macros, Next: Autoconf 1, Prev: autoupdate Invocation, Up: Obsolete Constructs
+
+18.4 Obsolete Macros
+====================
+
+Several macros are obsoleted in Autoconf, for various reasons (typically
+they failed to quote properly, couldn't be extended for more recent
+issues, etc.). They are still supported, but deprecated: their use
+should be avoided.
+
+ During the jump from Autoconf version 1 to version 2, most of the
+macros were renamed to use a more uniform and descriptive naming scheme,
+but their signature did not change. *Note Macro Names::, for a
+description of the new naming scheme. Below, if there is just the
+mapping from old names to new names for these macros, the reader is
+invited to refer to the definition of the new macro for the signature
+and the description.
+
+ -- Macro: AC_AIX
+ This macro is a platform-specific subset of
+ `AC_USE_SYSTEM_EXTENSIONS' (*note AC_USE_SYSTEM_EXTENSIONS::).
+
+ -- Macro: AC_ALLOCA
+ Replaced by `AC_FUNC_ALLOCA' (*note AC_FUNC_ALLOCA::).
+
+ -- Macro: AC_ARG_ARRAY
+ Removed because of limited usefulness.
+
+ -- Macro: AC_C_CROSS
+ This macro is obsolete; it does nothing.
+
+ -- Macro: AC_C_LONG_DOUBLE
+ If the C compiler supports a working `long double' type with more
+ range or precision than the `double' type, define
+ `HAVE_LONG_DOUBLE'.
+
+ You should use `AC_TYPE_LONG_DOUBLE' or
+ `AC_TYPE_LONG_DOUBLE_WIDER' instead. *Note Particular Types::.
+
+ -- Macro: AC_CANONICAL_SYSTEM
+ Determine the system type and set output variables to the names of
+ the canonical system types. *Note Canonicalizing::, for details
+ about the variables this macro sets.
+
+ The user is encouraged to use either `AC_CANONICAL_BUILD', or
+ `AC_CANONICAL_HOST', or `AC_CANONICAL_TARGET', depending on the
+ needs. Using `AC_CANONICAL_TARGET' is enough to run the two other
+ macros (*note Canonicalizing::).
+
+ -- Macro: AC_CHAR_UNSIGNED
+ Replaced by `AC_C_CHAR_UNSIGNED' (*note AC_C_CHAR_UNSIGNED::).
+
+ -- Macro: AC_CHECK_TYPE (TYPE, DEFAULT)
+ Autoconf, up to 2.13, used to provide this version of
+ `AC_CHECK_TYPE', deprecated because of its flaws. First, although
+ it is a member of the `CHECK' clan, it does more than just
+ checking. Secondly, missing types are defined using `#define',
+ not `typedef', and this can lead to problems in the case of
+ pointer types.
+
+ This use of `AC_CHECK_TYPE' is obsolete and discouraged; see *note
+ Generic Types::, for the description of the current macro.
+
+ If the type TYPE is not defined, define it to be the C (or C++)
+ builtin type DEFAULT, e.g., `short int' or `unsigned int'.
+
+ This macro is equivalent to:
+
+ AC_CHECK_TYPE([TYPE], [],
+ [AC_DEFINE_UNQUOTED([TYPE], [DEFAULT],
+ [Define to `DEFAULT'
+ if <sys/types.h> does not define.])])
+
+ In order to keep backward compatibility, the two versions of
+ `AC_CHECK_TYPE' are implemented, selected using these heuristics:
+
+ 1. If there are three or four arguments, the modern version is
+ used.
+
+ 2. If the second argument appears to be a C or C++ type, then the
+ obsolete version is used. This happens if the argument is a
+ C or C++ _builtin_ type or a C identifier ending in `_t',
+ optionally followed by one of `[(* ' and then by a string of
+ zero or more characters taken from the set `[]()* _a-zA-Z0-9'.
+
+ 3. If the second argument is spelled with the alphabet of valid
+ C and C++ types, the user is warned and the modern version is
+ used.
+
+ 4. Otherwise, the modern version is used.
+
+ You are encouraged either to use a valid builtin type, or to use
+ the equivalent modern code (see above), or better yet, to use
+ `AC_CHECK_TYPES' together with
+
+ #ifndef HAVE_LOFF_T
+ typedef loff_t off_t;
+ #endif
+
+ -- Macro: AC_CHECKING (FEATURE-DESCRIPTION)
+ Same as
+
+ AC_MSG_NOTICE([checking FEATURE-DESCRIPTION...]
+
+ *Note AC_MSG_NOTICE::.
+
+ -- Macro: AC_COMPILE_CHECK (ECHO-TEXT, INCLUDES, FUNCTION-BODY,
+ ACTION-IF-TRUE, [ACTION-IF-FALSE])
+ This is an obsolete version of `AC_TRY_COMPILE' itself replaced by
+ `AC_COMPILE_IFELSE' (*note Running the Compiler::), with the
+ addition that it prints `checking for ECHO-TEXT' to the standard
+ output first, if ECHO-TEXT is non-empty. Use `AC_MSG_CHECKING'
+ and `AC_MSG_RESULT' instead to print messages (*note Printing
+ Messages::).
+
+ -- Macro: AC_CONST
+ Replaced by `AC_C_CONST' (*note AC_C_CONST::).
+
+ -- Macro: AC_CROSS_CHECK
+ Same as `AC_C_CROSS', which is obsolete too, and does nothing
+ `:-)'.
+
+ -- Macro: AC_CYGWIN
+ Check for the Cygwin environment in which case the shell variable
+ `CYGWIN' is set to `yes'. Don't use this macro, the dignified
+ means to check the nature of the host is using `AC_CANONICAL_HOST'
+ (*note Canonicalizing::). As a matter of fact this macro is
+ defined as:
+
+ AC_REQUIRE([AC_CANONICAL_HOST])[]dnl
+ case $host_os in
+ *cygwin* ) CYGWIN=yes;;
+ * ) CYGWIN=no;;
+ esac
+
+ Beware that the variable `CYGWIN' has a special meaning when
+ running Cygwin, and should not be changed. That's yet another
+ reason not to use this macro.
+
+ -- Macro: AC_DECL_SYS_SIGLIST
+ Same as:
+
+ AC_CHECK_DECLS([sys_siglist], [], [],
+ [#include <signal.h>
+ /* NetBSD declares sys_siglist in unistd.h. */
+ #ifdef HAVE_UNISTD_H
+ # include <unistd.h>
+ #endif
+ ])
+
+ *Note AC_CHECK_DECLS::.
+
+ -- Macro: AC_DECL_YYTEXT
+ Does nothing, now integrated in `AC_PROG_LEX' (*note
+ AC_PROG_LEX::).
+
+ -- Macro: AC_DIR_HEADER
+ Like calling `AC_FUNC_CLOSEDIR_VOID' (*note
+ AC_FUNC_CLOSEDIR_VOID::) and `AC_HEADER_DIRENT' (*note
+ AC_HEADER_DIRENT::), but defines a different set of C preprocessor
+ macros to indicate which header file is found:
+
+ Header Old Symbol New Symbol
+ `dirent.h' `DIRENT' `HAVE_DIRENT_H'
+ `sys/ndir.h' `SYSNDIR' `HAVE_SYS_NDIR_H'
+ `sys/dir.h' `SYSDIR' `HAVE_SYS_DIR_H'
+ `ndir.h' `NDIR' `HAVE_NDIR_H'
+
+ -- Macro: AC_DYNIX_SEQ
+ If on DYNIX/ptx, add `-lseq' to output variable `LIBS'. This
+ macro used to be defined as
+
+ AC_CHECK_LIB([seq], [getmntent], [LIBS="-lseq $LIBS"])
+
+ now it is just `AC_FUNC_GETMNTENT' (*note AC_FUNC_GETMNTENT::).
+
+ -- Macro: AC_EXEEXT
+ Defined the output variable `EXEEXT' based on the output of the
+ compiler, which is now done automatically. Typically set to empty
+ string if Posix and `.exe' if a DOS variant.
+
+ -- Macro: AC_EMXOS2
+ Similar to `AC_CYGWIN' but checks for the EMX environment on OS/2
+ and sets `EMXOS2'. Don't use this macro, the dignified means to
+ check the nature of the host is using `AC_CANONICAL_HOST' (*note
+ Canonicalizing::).
+
+ -- Macro: AC_ENABLE (FEATURE, ACTION-IF-GIVEN, [ACTION-IF-NOT-GIVEN])
+ This is an obsolete version of `AC_ARG_ENABLE' that does not
+ support providing a help string (*note AC_ARG_ENABLE::).
+
+ -- Macro: AC_ERROR
+ Replaced by `AC_MSG_ERROR' (*note AC_MSG_ERROR::).
+
+ -- Macro: AC_FIND_X
+ Replaced by `AC_PATH_X' (*note AC_PATH_X::).
+
+ -- Macro: AC_FIND_XTRA
+ Replaced by `AC_PATH_XTRA' (*note AC_PATH_XTRA::).
+
+ -- Macro: AC_FOREACH
+ Replaced by `m4_foreach_w' (*note m4_foreach_w::).
+
+ -- Macro: AC_FUNC_CHECK
+ Replaced by `AC_CHECK_FUNC' (*note AC_CHECK_FUNC::).
+
+ -- Macro: AC_FUNC_SETVBUF_REVERSED
+ Do nothing. Formerly, this macro checked whether `setvbuf' takes
+ the buffering type as its second argument and the buffer pointer
+ as the third, instead of the other way around, and defined
+ `SETVBUF_REVERSED'. However, the last systems to have the problem
+ were those based on SVR2, which became obsolete in 1987, and the
+ macro is no longer needed.
+
+ -- Macro: AC_FUNC_WAIT3
+ If `wait3' is found and fills in the contents of its third argument
+ (a `struct rusage *'), which HP-UX does not do, define
+ `HAVE_WAIT3'.
+
+ These days portable programs should use `waitpid', not `wait3', as
+ `wait3' has been removed from Posix.
+
+ -- Macro: AC_GCC_TRADITIONAL
+ Replaced by `AC_PROG_GCC_TRADITIONAL' (*note
+ AC_PROG_GCC_TRADITIONAL::).
+
+ -- Macro: AC_GETGROUPS_T
+ Replaced by `AC_TYPE_GETGROUPS' (*note AC_TYPE_GETGROUPS::).
+
+ -- Macro: AC_GETLOADAVG
+ Replaced by `AC_FUNC_GETLOADAVG' (*note AC_FUNC_GETLOADAVG::).
+
+ -- Macro: AC_GNU_SOURCE
+ This macro is a platform-specific subset of
+ `AC_USE_SYSTEM_EXTENSIONS' (*note AC_USE_SYSTEM_EXTENSIONS::).
+
+ -- Macro: AC_HAVE_FUNCS
+ Replaced by `AC_CHECK_FUNCS' (*note AC_CHECK_FUNCS::).
+
+ -- Macro: AC_HAVE_HEADERS
+ Replaced by `AC_CHECK_HEADERS' (*note AC_CHECK_HEADERS::).
+
+ -- Macro: AC_HAVE_LIBRARY (LIBRARY, [ACTION-IF-FOUND],
+ [ACTION-IF-NOT-FOUND], [OTHER-LIBRARIES])
+ This macro is equivalent to calling `AC_CHECK_LIB' with a FUNCTION
+ argument of `main'. In addition, LIBRARY can be written as any of
+ `foo', `-lfoo', or `libfoo.a'. In all of those cases, the
+ compiler is passed `-lfoo'. However, LIBRARY cannot be a shell
+ variable; it must be a literal name. *Note AC_CHECK_LIB::.
+
+ -- Macro: AC_HAVE_POUNDBANG
+ Replaced by `AC_SYS_INTERPRETER' (*note AC_SYS_INTERPRETER::).
+
+ -- Macro: AC_HEADER_CHECK
+ Replaced by `AC_CHECK_HEADER' (*note AC_CHECK_HEADER::).
+
+ -- Macro: AC_HEADER_EGREP
+ Replaced by `AC_EGREP_HEADER' (*note AC_EGREP_HEADER::).
+
+ -- Macro: AC_HELP_STRING
+ Replaced by `AS_HELP_STRING' (*note AS_HELP_STRING::).
+
+ -- Macro: AC_INIT (UNIQUE-FILE-IN-SOURCE-DIR)
+ Formerly `AC_INIT' used to have a single argument, and was
+ equivalent to:
+
+ AC_INIT
+ AC_CONFIG_SRCDIR(UNIQUE-FILE-IN-SOURCE-DIR)
+ See *note AC_INIT:: and *note AC_CONFIG_SRCDIR::.
+
+ -- Macro: AC_INLINE
+ Replaced by `AC_C_INLINE' (*note AC_C_INLINE::).
+
+ -- Macro: AC_INT_16_BITS
+ If the C type `int' is 16 bits wide, define `INT_16_BITS'. Use
+ `AC_CHECK_SIZEOF(int)' instead (*note AC_CHECK_SIZEOF::).
+
+ -- Macro: AC_IRIX_SUN
+ If on IRIX (Silicon Graphics Unix), add `-lsun' to output `LIBS'.
+ If you were using it to get `getmntent', use `AC_FUNC_GETMNTENT'
+ instead. If you used it for the NIS versions of the password and
+ group functions, use `AC_CHECK_LIB(sun, getpwnam)'. Up to
+ Autoconf 2.13, it used to be
+
+ AC_CHECK_LIB([sun], [getmntent], [LIBS="-lsun $LIBS"])
+
+ now it is defined as
+
+ AC_FUNC_GETMNTENT
+ AC_CHECK_LIB([sun], [getpwnam])
+
+ See *note AC_FUNC_GETMNTENT:: and *note AC_CHECK_LIB::.
+
+ -- Macro: AC_ISC_POSIX
+ This macro adds `-lcposix' to output variable `LIBS' if necessary
+ for Posix facilities. Sun dropped support for the obsolete
+ INTERACTIVE Systems Corporation Unix on 2006-07-23. New programs
+ need not use this macro. It is implemented as
+ `AC_SEARCH_LIBS([strerror], [cposix])' (*note AC_SEARCH_LIBS::).
+
+ -- Macro: AC_LANG_C
+ Same as `AC_LANG([C])' (*note AC_LANG::).
+
+ -- Macro: AC_LANG_CPLUSPLUS
+ Same as `AC_LANG([C++])' (*note AC_LANG::).
+
+ -- Macro: AC_LANG_FORTRAN77
+ Same as `AC_LANG([Fortran 77])' (*note AC_LANG::).
+
+ -- Macro: AC_LANG_RESTORE
+ Select the LANGUAGE that is saved on the top of the stack, as set
+ by `AC_LANG_SAVE', remove it from the stack, and call
+ `AC_LANG(LANGUAGE)'. *Note Language Choice::, for the preferred
+ way to change languages.
+
+ -- Macro: AC_LANG_SAVE
+ Remember the current language (as set by `AC_LANG') on a stack.
+ The current language does not change. `AC_LANG_PUSH' is preferred
+ (*note AC_LANG_PUSH::).
+
+ -- Macro: AC_LINK_FILES (SOURCE..., DEST...)
+ This is an obsolete version of `AC_CONFIG_LINKS' (*note
+ AC_CONFIG_LINKS::. An updated version of:
+
+ AC_LINK_FILES(config/$machine.h config/$obj_format.h,
+ host.h object.h)
+
+ is:
+
+ AC_CONFIG_LINKS([host.h:config/$machine.h
+ object.h:config/$obj_format.h])
+
+ -- Macro: AC_LN_S
+ Replaced by `AC_PROG_LN_S' (*note AC_PROG_LN_S::).
+
+ -- Macro: AC_LONG_64_BITS
+ Define `LONG_64_BITS' if the C type `long int' is 64 bits wide.
+ Use the generic macro `AC_CHECK_SIZEOF([long int])' instead (*note
+ AC_CHECK_SIZEOF::).
+
+ -- Macro: AC_LONG_DOUBLE
+ If the C compiler supports a working `long double' type with more
+ range or precision than the `double' type, define
+ `HAVE_LONG_DOUBLE'.
+
+ You should use `AC_TYPE_LONG_DOUBLE' or
+ `AC_TYPE_LONG_DOUBLE_WIDER' instead. *Note Particular Types::.
+
+ -- Macro: AC_LONG_FILE_NAMES
+ Replaced by
+ AC_SYS_LONG_FILE_NAMES
+ *Note AC_SYS_LONG_FILE_NAMES::.
+
+ -- Macro: AC_MAJOR_HEADER
+ Replaced by `AC_HEADER_MAJOR' (*note AC_HEADER_MAJOR::).
+
+ -- Macro: AC_MEMORY_H
+ Used to define `NEED_MEMORY_H' if the `mem' functions were defined
+ in `memory.h'. Today it is equivalent to
+ `AC_CHECK_HEADERS([memory.h])' (*note AC_CHECK_HEADERS::). Adjust
+ your code to depend upon `HAVE_MEMORY_H', not `NEED_MEMORY_H'; see
+ *note Standard Symbols::.
+
+ -- Macro: AC_MINGW32
+ Similar to `AC_CYGWIN' but checks for the MinGW compiler
+ environment and sets `MINGW32'. Don't use this macro, the
+ dignified means to check the nature of the host is using
+ `AC_CANONICAL_HOST' (*note Canonicalizing::).
+
+ -- Macro: AC_MINIX
+ This macro is a platform-specific subset of
+ `AC_USE_SYSTEM_EXTENSIONS' (*note AC_USE_SYSTEM_EXTENSIONS::).
+
+ -- Macro: AC_MINUS_C_MINUS_O
+ Replaced by `AC_PROG_CC_C_O' (*note AC_PROG_CC_C_O::).
+
+ -- Macro: AC_MMAP
+ Replaced by `AC_FUNC_MMAP' (*note AC_FUNC_MMAP::).
+
+ -- Macro: AC_MODE_T
+ Replaced by `AC_TYPE_MODE_T' (*note AC_TYPE_MODE_T::).
+
+ -- Macro: AC_OBJEXT
+ Defined the output variable `OBJEXT' based on the output of the
+ compiler, after .c files have been excluded. Typically set to `o'
+ if Posix, `obj' if a DOS variant. Now the compiler checking
+ macros handle this automatically.
+
+ -- Macro: AC_OBSOLETE (THIS-MACRO-NAME, [SUGGESTION])
+ Make M4 print a message to the standard error output warning that
+ THIS-MACRO-NAME is obsolete, and giving the file and line number
+ where it was called. THIS-MACRO-NAME should be the name of the
+ macro that is calling `AC_OBSOLETE'. If SUGGESTION is given, it
+ is printed at the end of the warning message; for example, it can
+ be a suggestion for what to use instead of THIS-MACRO-NAME.
+
+ For instance
+
+ AC_OBSOLETE([$0], [; use AC_CHECK_HEADERS(unistd.h) instead])dnl
+
+ You are encouraged to use `AU_DEFUN' instead, since it gives better
+ services to the user (*note AU_DEFUN::).
+
+ -- Macro: AC_OFF_T
+ Replaced by `AC_TYPE_OFF_T' (*note AC_TYPE_OFF_T::).
+
+ -- Macro: AC_OUTPUT ([FILE]..., [EXTRA-CMDS], [INIT-CMDS])
+ The use of `AC_OUTPUT' with arguments is deprecated. This
+ obsoleted interface is equivalent to:
+
+ AC_CONFIG_FILES(FILE...)
+ AC_CONFIG_COMMANDS([default],
+ EXTRA-CMDS, INIT-CMDS)
+ AC_OUTPUT
+
+ See *note AC_CONFIG_FILES::, *note AC_CONFIG_COMMANDS::, and *note
+ AC_OUTPUT::.
+
+ -- Macro: AC_OUTPUT_COMMANDS (EXTRA-CMDS, [INIT-CMDS])
+ Specify additional shell commands to run at the end of
+ `config.status', and shell commands to initialize any variables
+ from `configure'. This macro may be called multiple times. It is
+ obsolete, replaced by `AC_CONFIG_COMMANDS' (*note
+ AC_CONFIG_COMMANDS::).
+
+ Here is an unrealistic example:
+
+ fubar=27
+ AC_OUTPUT_COMMANDS([echo this is extra $fubar, and so on.],
+ [fubar=$fubar])
+ AC_OUTPUT_COMMANDS([echo this is another, extra, bit],
+ [echo init bit])
+
+ Aside from the fact that `AC_CONFIG_COMMANDS' requires an
+ additional key, an important difference is that
+ `AC_OUTPUT_COMMANDS' is quoting its arguments twice, unlike
+ `AC_CONFIG_COMMANDS'. This means that `AC_CONFIG_COMMANDS' can
+ safely be given macro calls as arguments:
+
+ AC_CONFIG_COMMANDS(foo, [my_FOO()])
+
+ Conversely, where one level of quoting was enough for literal
+ strings with `AC_OUTPUT_COMMANDS', you need two with
+ `AC_CONFIG_COMMANDS'. The following lines are equivalent:
+
+ AC_OUTPUT_COMMANDS([echo "Square brackets: []"])
+ AC_CONFIG_COMMANDS([default], [[echo "Square brackets: []"]])
+
+ -- Macro: AC_PID_T
+ Replaced by `AC_TYPE_PID_T' (*note AC_TYPE_PID_T::).
+
+ -- Macro: AC_PREFIX
+ Replaced by `AC_PREFIX_PROGRAM' (*note AC_PREFIX_PROGRAM::).
+
+ -- Macro: AC_PROGRAMS_CHECK
+ Replaced by `AC_CHECK_PROGS' (*note AC_CHECK_PROGS::).
+
+ -- Macro: AC_PROGRAMS_PATH
+ Replaced by `AC_PATH_PROGS' (*note AC_PATH_PROGS::).
+
+ -- Macro: AC_PROGRAM_CHECK
+ Replaced by `AC_CHECK_PROG' (*note AC_CHECK_PROG::).
+
+ -- Macro: AC_PROGRAM_EGREP
+ Replaced by `AC_EGREP_CPP' (*note AC_EGREP_CPP::).
+
+ -- Macro: AC_PROGRAM_PATH
+ Replaced by `AC_PATH_PROG' (*note AC_PATH_PROG::).
+
+ -- Macro: AC_REMOTE_TAPE
+ Removed because of limited usefulness.
+
+ -- Macro: AC_RESTARTABLE_SYSCALLS
+ This macro was renamed `AC_SYS_RESTARTABLE_SYSCALLS'. However,
+ these days portable programs should use `sigaction' with
+ `SA_RESTART' if they want restartable system calls. They should
+ not rely on `HAVE_RESTARTABLE_SYSCALLS', since nowadays whether a
+ system call is restartable is a dynamic issue, not a
+ configuration-time issue.
+
+ -- Macro: AC_RETSIGTYPE
+ Replaced by `AC_TYPE_SIGNAL' (*note AC_TYPE_SIGNAL::), which itself
+ is obsolete when assuming C89 or better.
+
+ -- Macro: AC_RSH
+ Removed because of limited usefulness.
+
+ -- Macro: AC_SCO_INTL
+ If on SCO Unix, add `-lintl' to output variable `LIBS'. This
+ macro used to do this:
+
+ AC_CHECK_LIB([intl], [strftime], [LIBS="-lintl $LIBS"])
+
+ Now it just calls `AC_FUNC_STRFTIME' instead (*note
+ AC_FUNC_STRFTIME::).
+
+ -- Macro: AC_SETVBUF_REVERSED
+ Replaced by
+ AC_FUNC_SETVBUF_REVERSED
+ *Note AC_FUNC_SETVBUF_REVERSED::.
+
+ -- Macro: AC_SET_MAKE
+ Replaced by `AC_PROG_MAKE_SET' (*note AC_PROG_MAKE_SET::).
+
+ -- Macro: AC_SIZEOF_TYPE
+ Replaced by `AC_CHECK_SIZEOF' (*note AC_CHECK_SIZEOF::).
+
+ -- Macro: AC_SIZE_T
+ Replaced by `AC_TYPE_SIZE_T' (*note AC_TYPE_SIZE_T::).
+
+ -- Macro: AC_STAT_MACROS_BROKEN
+ Replaced by `AC_HEADER_STAT' (*note AC_HEADER_STAT::).
+
+ -- Macro: AC_STDC_HEADERS
+ Replaced by `AC_HEADER_STDC' (*note AC_HEADER_STDC::).
+
+ -- Macro: AC_STRCOLL
+ Replaced by `AC_FUNC_STRCOLL' (*note AC_FUNC_STRCOLL::).
+
+ -- Macro: AC_STRUCT_ST_BLKSIZE
+ If `struct stat' contains an `st_blksize' member, define
+ `HAVE_STRUCT_STAT_ST_BLKSIZE'. The former name, `HAVE_ST_BLKSIZE'
+ is to be avoided, as its support will cease in the future. This
+ macro is obsoleted, and should be replaced by
+
+ AC_CHECK_MEMBERS([struct stat.st_blksize])
+ *Note AC_CHECK_MEMBERS::.
+
+ -- Macro: AC_STRUCT_ST_RDEV
+ If `struct stat' contains an `st_rdev' member, define
+ `HAVE_STRUCT_STAT_ST_RDEV'. The former name for this macro,
+ `HAVE_ST_RDEV', is to be avoided as it will cease to be supported
+ in the future. Actually, even the new macro is obsolete and
+ should be replaced by:
+ AC_CHECK_MEMBERS([struct stat.st_rdev])
+ *Note AC_CHECK_MEMBERS::.
+
+ -- Macro: AC_ST_BLKSIZE
+ Replaced by `AC_CHECK_MEMBERS' (*note AC_CHECK_MEMBERS::).
+
+ -- Macro: AC_ST_BLOCKS
+ Replaced by `AC_STRUCT_ST_BLOCKS' (*note AC_STRUCT_ST_BLOCKS::).
+
+ -- Macro: AC_ST_RDEV
+ Replaced by `AC_CHECK_MEMBERS' (*note AC_CHECK_MEMBERS::).
+
+ -- Macro: AC_SYS_RESTARTABLE_SYSCALLS
+ If the system automatically restarts a system call that is
+ interrupted by a signal, define `HAVE_RESTARTABLE_SYSCALLS'. This
+ macro does not check whether system calls are restarted in
+ general--it checks whether a signal handler installed with
+ `signal' (but not `sigaction') causes system calls to be
+ restarted. It does not check whether system calls can be
+ restarted when interrupted by signals that have no handler.
+
+ These days portable programs should use `sigaction' with
+ `SA_RESTART' if they want restartable system calls. They should
+ not rely on `HAVE_RESTARTABLE_SYSCALLS', since nowadays whether a
+ system call is restartable is a dynamic issue, not a
+ configuration-time issue.
+
+ -- Macro: AC_SYS_SIGLIST_DECLARED
+ This macro was renamed `AC_DECL_SYS_SIGLIST'. However, even that
+ name is obsolete, as the same functionality is now achieved via
+ `AC_CHECK_DECLS' (*note AC_CHECK_DECLS::).
+
+ -- Macro: AC_TEST_CPP
+ This macro was renamed `AC_TRY_CPP', which in turn was replaced by
+ `AC_PREPROC_IFELSE' (*note AC_PREPROC_IFELSE::).
+
+ -- Macro: AC_TEST_PROGRAM
+ This macro was renamed `AC_TRY_RUN', which in turn was replaced by
+ `AC_RUN_IFELSE' (*note AC_RUN_IFELSE::).
+
+ -- Macro: AC_TIMEZONE
+ Replaced by `AC_STRUCT_TIMEZONE' (*note AC_STRUCT_TIMEZONE::).
+
+ -- Macro: AC_TIME_WITH_SYS_TIME
+ Replaced by `AC_HEADER_TIME' (*note AC_HEADER_TIME::).
+
+ -- Macro: AC_TRY_COMPILE (INCLUDES, FUNCTION-BODY, [ACTION-IF-TRUE],
+ [ACTION-IF-FALSE])
+ Same as:
+
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[INCLUDES]],
+ [[FUNCTION-BODY]])],
+ [ACTION-IF-TRUE],
+ [ACTION-IF-FALSE])
+
+ *Note Running the Compiler::.
+
+ This macro double quotes both INCLUDES and FUNCTION-BODY.
+
+ For C and C++, INCLUDES is any `#include' statements needed by the
+ code in FUNCTION-BODY (INCLUDES is ignored if the currently
+ selected language is Fortran or Fortran 77). The compiler and
+ compilation flags are determined by the current language (*note
+ Language Choice::).
+
+ -- Macro: AC_TRY_CPP (INPUT, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
+ Same as:
+
+ AC_PREPROC_IFELSE(
+ [AC_LANG_SOURCE([[INPUT]])],
+ [ACTION-IF-TRUE],
+ [ACTION-IF-FALSE])
+
+ *Note Running the Preprocessor::.
+
+ This macro double quotes the INPUT.
+
+ -- Macro: AC_TRY_LINK (INCLUDES, FUNCTION-BODY, [ACTION-IF-TRUE],
+ [ACTION-IF-FALSE])
+ Same as:
+
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[INCLUDES]],
+ [[FUNCTION-BODY]])],
+ [ACTION-IF-TRUE],
+ [ACTION-IF-FALSE])
+
+ *Note Running the Compiler::.
+
+ This macro double quotes both INCLUDES and FUNCTION-BODY.
+
+ Depending on the current language (*note Language Choice::),
+ create a test program to see whether a function whose body
+ consists of FUNCTION-BODY can be compiled and linked. If the file
+ compiles and links successfully, run shell commands
+ ACTION-IF-FOUND, otherwise run ACTION-IF-NOT-FOUND.
+
+ This macro double quotes both INCLUDES and FUNCTION-BODY.
+
+ For C and C++, INCLUDES is any `#include' statements needed by the
+ code in FUNCTION-BODY (INCLUDES is ignored if the currently
+ selected language is Fortran or Fortran 77). The compiler and
+ compilation flags are determined by the current language (*note
+ Language Choice::), and in addition `LDFLAGS' and `LIBS' are used
+ for linking.
+
+ -- Macro: AC_TRY_LINK_FUNC (FUNCTION, [ACTION-IF-FOUND],
+ [ACTION-IF-NOT-FOUND])
+ This macro is equivalent to
+ AC_LINK_IFELSE([AC_LANG_CALL([], [FUNCTION])],
+ [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+ *Note AC_LINK_IFELSE::.
+
+ -- Macro: AC_TRY_RUN (PROGRAM, [ACTION-IF-TRUE], [ACTION-IF-FALSE],
+ [ACTION-IF-CROSS-COMPILING = `AC_MSG_FAILURE'])
+ Same as:
+
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[PROGRAM]])],
+ [ACTION-IF-TRUE],
+ [ACTION-IF-FALSE],
+ [ACTION-IF-CROSS-COMPILING])
+
+ *Note Runtime::.
+
+ -- Macro: AC_TYPE_SIGNAL
+ If `signal.h' declares `signal' as returning a pointer to a
+ function returning `void', define `RETSIGTYPE' to be `void';
+ otherwise, define it to be `int'. These days, it is portable to
+ assume C89, and that signal handlers return `void', without
+ needing to use this macro or `RETSIGTYPE'.
+
+ When targeting older K&R C, it is possible to define signal
+ handlers as returning type `RETSIGTYPE', and omit a return
+ statement:
+
+ RETSIGTYPE
+ hup_handler ()
+ {
+ ...
+ }
+
+ -- Macro: AC_UID_T
+ Replaced by `AC_TYPE_UID_T' (*note AC_TYPE_UID_T::).
+
+ -- Macro: AC_UNISTD_H
+ Same as `AC_CHECK_HEADERS([unistd.h])' (*note AC_CHECK_HEADERS::).
+
+ -- Macro: AC_USG
+ Define `USG' if the BSD string functions are defined in
+ `strings.h'. You should no longer depend upon `USG', but on
+ `HAVE_STRING_H'; see *note Standard Symbols::.
+
+ -- Macro: AC_UTIME_NULL
+ Replaced by `AC_FUNC_UTIME_NULL' (*note AC_FUNC_UTIME_NULL::).
+
+ -- Macro: AC_VALIDATE_CACHED_SYSTEM_TUPLE ([CMD])
+ If the cache file is inconsistent with the current host, target and
+ build system types, it used to execute CMD or print a default
+ error message. This is now handled by default.
+
+ -- Macro: AC_VERBOSE (RESULT-DESCRIPTION)
+ Replaced by `AC_MSG_RESULT' (*note AC_MSG_RESULT::).
+
+ -- Macro: AC_VFORK
+ Replaced by `AC_FUNC_FORK' (*note AC_FUNC_FORK::).
+
+ -- Macro: AC_VPRINTF
+ Replaced by `AC_FUNC_VPRINTF' (*note AC_FUNC_VPRINTF::).
+
+ -- Macro: AC_WAIT3
+ This macro was renamed `AC_FUNC_WAIT3'. However, these days
+ portable programs should use `waitpid', not `wait3', as `wait3'
+ has been removed from Posix.
+
+ -- Macro: AC_WARN
+ Replaced by `AC_MSG_WARN' (*note AC_MSG_WARN::).
+
+ -- Macro: AC_WITH (PACKAGE, ACTION-IF-GIVEN, [ACTION-IF-NOT-GIVEN])
+ This is an obsolete version of `AC_ARG_WITH' that does not support
+ providing a help string (*note AC_ARG_WITH::).
+
+ -- Macro: AC_WORDS_BIGENDIAN
+ Replaced by `AC_C_BIGENDIAN' (*note AC_C_BIGENDIAN::).
+
+ -- Macro: AC_XENIX_DIR
+ This macro used to add `-lx' to output variable `LIBS' if on
+ Xenix. Also, if `dirent.h' is being checked for, added `-ldir' to
+ `LIBS'. Now it is merely an alias of `AC_HEADER_DIRENT' instead,
+ plus some code to detect whether running XENIX on which you should
+ not depend:
+
+ AC_MSG_CHECKING([for Xenix])
+ AC_EGREP_CPP([yes],
+ [#if defined M_XENIX && !defined M_UNIX
+ yes
+ #endif],
+ [AC_MSG_RESULT([yes]); XENIX=yes],
+ [AC_MSG_RESULT([no]); XENIX=])
+ Don't use this macro, the dignified means to check the nature of
+ the host is using `AC_CANONICAL_HOST' (*note Canonicalizing::).
+
+ -- Macro: AC_YYTEXT_POINTER
+ This macro was renamed `AC_DECL_YYTEXT', which in turn was
+ integrated into `AC_PROG_LEX' (*note AC_PROG_LEX::).
+
+
+File: autoconf.info, Node: Autoconf 1, Next: Autoconf 2.13, Prev: Obsolete Macros, Up: Obsolete Constructs
+
+18.5 Upgrading From Version 1
+=============================
+
+Autoconf version 2 is mostly backward compatible with version 1.
+However, it introduces better ways to do some things, and doesn't
+support some of the ugly things in version 1. So, depending on how
+sophisticated your `configure.ac' files are, you might have to do some
+manual work in order to upgrade to version 2. This chapter points out
+some problems to watch for when upgrading. Also, perhaps your
+`configure' scripts could benefit from some of the new features in
+version 2; the changes are summarized in the file `NEWS' in the
+Autoconf distribution.
+
+* Menu:
+
+* Changed File Names:: Files you might rename
+* Changed Makefiles:: New things to put in `Makefile.in'
+* Changed Macros:: Macro calls you might replace
+* Changed Results:: Changes in how to check test results
+* Changed Macro Writing:: Better ways to write your own macros
+
+
+File: autoconf.info, Node: Changed File Names, Next: Changed Makefiles, Up: Autoconf 1
+
+18.5.1 Changed File Names
+-------------------------
+
+If you have an `aclocal.m4' installed with Autoconf (as opposed to in a
+particular package's source directory), you must rename it to
+`acsite.m4'. *Note autoconf Invocation::.
+
+ If you distribute `install.sh' with your package, rename it to
+`install-sh' so `make' builtin rules don't inadvertently create a file
+called `install' from it. `AC_PROG_INSTALL' looks for the script under
+both names, but it is best to use the new name.
+
+ If you were using `config.h.top', `config.h.bot', or `acconfig.h',
+you still can, but you have less clutter if you use the `AH_' macros.
+*Note Autoheader Macros::.
+
+
+File: autoconf.info, Node: Changed Makefiles, Next: Changed Macros, Prev: Changed File Names, Up: Autoconf 1
+
+18.5.2 Changed Makefiles
+------------------------
+
+Add `@CFLAGS@', `@CPPFLAGS@', and `@LDFLAGS@' in your `Makefile.in'
+files, so they can take advantage of the values of those variables in
+the environment when `configure' is run. Doing this isn't necessary,
+but it's a convenience for users.
+
+ Also add `@configure_input@' in a comment to each input file for
+`AC_OUTPUT', so that the output files contain a comment saying they
+were produced by `configure'. Automatically selecting the right
+comment syntax for all the kinds of files that people call `AC_OUTPUT'
+on became too much work.
+
+ Add `config.log' and `config.cache' to the list of files you remove
+in `distclean' targets.
+
+ If you have the following in `Makefile.in':
+
+ prefix = /usr/local
+ exec_prefix = $(prefix)
+
+you must change it to:
+
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+
+The old behavior of replacing those variables without `@' characters
+around them has been removed.
+
+
+File: autoconf.info, Node: Changed Macros, Next: Changed Results, Prev: Changed Makefiles, Up: Autoconf 1
+
+18.5.3 Changed Macros
+---------------------
+
+Many of the macros were renamed in Autoconf version 2. You can still
+use the old names, but the new ones are clearer, and it's easier to find
+the documentation for them. *Note Obsolete Macros::, for a table
+showing the new names for the old macros. Use the `autoupdate' program
+to convert your `configure.ac' to using the new macro names. *Note
+autoupdate Invocation::.
+
+ Some macros have been superseded by similar ones that do the job
+better, but are not call-compatible. If you get warnings about calling
+obsolete macros while running `autoconf', you may safely ignore them,
+but your `configure' script generally works better if you follow the
+advice that is printed about what to replace the obsolete macros with.
+In particular, the mechanism for reporting the results of tests has
+changed. If you were using `echo' or `AC_VERBOSE' (perhaps via
+`AC_COMPILE_CHECK'), your `configure' script's output looks better if
+you switch to `AC_MSG_CHECKING' and `AC_MSG_RESULT'. *Note Printing
+Messages::. Those macros work best in conjunction with cache
+variables. *Note Caching Results::.
+
+
+File: autoconf.info, Node: Changed Results, Next: Changed Macro Writing, Prev: Changed Macros, Up: Autoconf 1
+
+18.5.4 Changed Results
+----------------------
+
+If you were checking the results of previous tests by examining the
+shell variable `DEFS', you need to switch to checking the values of the
+cache variables for those tests. `DEFS' no longer exists while
+`configure' is running; it is only created when generating output
+files. This difference from version 1 is because properly quoting the
+contents of that variable turned out to be too cumbersome and
+inefficient to do every time `AC_DEFINE' is called. *Note Cache
+Variable Names::.
+
+ For example, here is a `configure.ac' fragment written for Autoconf
+version 1:
+
+ AC_HAVE_FUNCS(syslog)
+ case "$DEFS" in
+ *-DHAVE_SYSLOG*) ;;
+ *) # syslog is not in the default libraries. See if it's in some other.
+ saved_LIBS="$LIBS"
+ for lib in bsd socket inet; do
+ AC_CHECKING(for syslog in -l$lib)
+ LIBS="-l$lib $saved_LIBS"
+ AC_HAVE_FUNCS(syslog)
+ case "$DEFS" in
+ *-DHAVE_SYSLOG*) break ;;
+ *) ;;
+ esac
+ LIBS="$saved_LIBS"
+ done ;;
+ esac
+
+ Here is a way to write it for version 2:
+
+ AC_CHECK_FUNCS([syslog])
+ if test "x$ac_cv_func_syslog" = xno; then
+ # syslog is not in the default libraries. See if it's in some other.
+ for lib in bsd socket inet; do
+ AC_CHECK_LIB([$lib], [syslog], [AC_DEFINE([HAVE_SYSLOG])
+ LIBS="-l$lib $LIBS"; break])
+ done
+ fi
+
+ If you were working around bugs in `AC_DEFINE_UNQUOTED' by adding
+backslashes before quotes, you need to remove them. It now works
+predictably, and does not treat quotes (except back quotes) specially.
+*Note Setting Output Variables::.
+
+ All of the Boolean shell variables set by Autoconf macros now use
+`yes' for the true value. Most of them use `no' for false, though for
+backward compatibility some use the empty string instead. If you were
+relying on a shell variable being set to something like 1 or `t' for
+true, you need to change your tests.
+
+
+File: autoconf.info, Node: Changed Macro Writing, Prev: Changed Results, Up: Autoconf 1
+
+18.5.5 Changed Macro Writing
+----------------------------
+
+When defining your own macros, you should now use `AC_DEFUN' instead of
+`define'. `AC_DEFUN' automatically calls `AC_PROVIDE' and ensures that
+macros called via `AC_REQUIRE' do not interrupt other macros, to
+prevent nested `checking...' messages on the screen. There's no actual
+harm in continuing to use the older way, but it's less convenient and
+attractive. *Note Macro Definitions::.
+
+ You probably looked at the macros that came with Autoconf as a guide
+for how to do things. It would be a good idea to take a look at the new
+versions of them, as the style is somewhat improved and they take
+advantage of some new features.
+
+ If you were doing tricky things with undocumented Autoconf internals
+(macros, variables, diversions), check whether you need to change
+anything to account for changes that have been made. Perhaps you can
+even use an officially supported technique in version 2 instead of
+kludging. Or perhaps not.
+
+ To speed up your locally written feature tests, add caching to them.
+See whether any of your tests are of general enough usefulness to
+encapsulate them into macros that you can share.
+
+
+File: autoconf.info, Node: Autoconf 2.13, Prev: Autoconf 1, Up: Obsolete Constructs
+
+18.6 Upgrading From Version 2.13
+================================
+
+The introduction of the previous section (*note Autoconf 1::) perfectly
+suits this section...
+
+ Autoconf version 2.50 is mostly backward compatible with version
+ 2.13. However, it introduces better ways to do some things, and
+ doesn't support some of the ugly things in version 2.13. So,
+ depending on how sophisticated your `configure.ac' files are, you
+ might have to do some manual work in order to upgrade to version
+ 2.50. This chapter points out some problems to watch for when
+ upgrading. Also, perhaps your `configure' scripts could benefit
+ from some of the new features in version 2.50; the changes are
+ summarized in the file `NEWS' in the Autoconf distribution.
+
+* Menu:
+
+* Changed Quotation:: Broken code which used to work
+* New Macros:: Interaction with foreign macros
+* Hosts and Cross-Compilation:: Bugward compatibility kludges
+* AC_LIBOBJ vs LIBOBJS:: LIBOBJS is a forbidden token
+* AC_ACT_IFELSE vs AC_TRY_ACT:: A more generic scheme for testing sources
+
+
+File: autoconf.info, Node: Changed Quotation, Next: New Macros, Up: Autoconf 2.13
+
+18.6.1 Changed Quotation
+------------------------
+
+The most important changes are invisible to you: the implementation of
+most macros have completely changed. This allowed more factorization of
+the code, better error messages, a higher uniformity of the user's
+interface etc. Unfortunately, as a side effect, some construct which
+used to (miraculously) work might break starting with Autoconf 2.50.
+The most common culprit is bad quotation.
+
+ For instance, in the following example, the message is not properly
+quoted:
+
+ AC_INIT
+ AC_CHECK_HEADERS(foo.h, ,
+ AC_MSG_ERROR(cannot find foo.h, bailing out))
+ AC_OUTPUT
+
+Autoconf 2.13 simply ignores it:
+
+ $ autoconf-2.13; ./configure --silent
+ creating cache ./config.cache
+ configure: error: cannot find foo.h
+ $
+
+while Autoconf 2.50 produces a broken `configure':
+
+ $ autoconf-2.50; ./configure --silent
+ configure: error: cannot find foo.h
+ ./configure: exit: bad non-numeric arg `bailing'
+ ./configure: exit: bad non-numeric arg `bailing'
+ $
+
+ The message needs to be quoted, and the `AC_MSG_ERROR' invocation
+too!
+
+ AC_INIT([Example], [1.0], [bug-example@example.org])
+ AC_CHECK_HEADERS([foo.h], [],
+ [AC_MSG_ERROR([cannot find foo.h, bailing out])])
+ AC_OUTPUT
+
+ Many many (and many more) Autoconf macros were lacking proper
+quotation, including no less than... `AC_DEFUN' itself!
+
+ $ cat configure.in
+ AC_DEFUN([AC_PROG_INSTALL],
+ [# My own much better version
+ ])
+ AC_INIT
+ AC_PROG_INSTALL
+ AC_OUTPUT
+ $ autoconf-2.13
+ autoconf: Undefined macros:
+ ***BUG in Autoconf--please report*** AC_FD_MSG
+ ***BUG in Autoconf--please report*** AC_EPI
+ configure.in:1:AC_DEFUN([AC_PROG_INSTALL],
+ configure.in:5:AC_PROG_INSTALL
+ $ autoconf-2.50
+ $
+
+
+File: autoconf.info, Node: New Macros, Next: Hosts and Cross-Compilation, Prev: Changed Quotation, Up: Autoconf 2.13
+
+18.6.2 New Macros
+-----------------
+
+While Autoconf was relatively dormant in the late 1990s, Automake
+provided Autoconf-like macros for a while. Starting with Autoconf 2.50
+in 2001, Autoconf provided versions of these macros, integrated in the
+`AC_' namespace, instead of `AM_'. But in order to ease the upgrading
+via `autoupdate', bindings to such `AM_' macros are provided.
+
+ Unfortunately older versions of Automake (e.g., Automake 1.4) did
+not quote the names of these macros. Therefore, when `m4' finds
+something like `AC_DEFUN(AM_TYPE_PTRDIFF_T, ...)' in `aclocal.m4',
+`AM_TYPE_PTRDIFF_T' is expanded, replaced with its Autoconf definition.
+
+ Fortunately Autoconf catches pre-`AC_INIT' expansions, and
+complains, in its own words:
+
+ $ cat configure.ac
+ AC_INIT([Example], [1.0], [bug-example@example.org])
+ AM_TYPE_PTRDIFF_T
+ $ aclocal-1.4
+ $ autoconf
+ aclocal.m4:17: error: m4_defn: undefined macro: _m4_divert_diversion
+ aclocal.m4:17: the top level
+ autom4te: m4 failed with exit status: 1
+ $
+
+ Modern versions of Automake no longer define most of these macros,
+and properly quote the names of the remaining macros. If you must use
+an old Automake, do not depend upon macros from Automake as it is
+simply not its job to provide macros (but the one it requires itself):
+
+ $ cat configure.ac
+ AC_INIT([Example], [1.0], [bug-example@example.org])
+ AM_TYPE_PTRDIFF_T
+ $ rm aclocal.m4
+ $ autoupdate
+ autoupdate: `configure.ac' is updated
+ $ cat configure.ac
+ AC_INIT([Example], [1.0], [bug-example@example.org])
+ AC_CHECK_TYPES([ptrdiff_t])
+ $ aclocal-1.4
+ $ autoconf
+ $
+
+
+File: autoconf.info, Node: Hosts and Cross-Compilation, Next: AC_LIBOBJ vs LIBOBJS, Prev: New Macros, Up: Autoconf 2.13
+
+18.6.3 Hosts and Cross-Compilation
+----------------------------------
+
+Based on the experience of compiler writers, and after long public
+debates, many aspects of the cross-compilation chain have changed:
+
+ - the relationship between the build, host, and target architecture
+ types,
+
+ - the command line interface for specifying them to `configure',
+
+ - the variables defined in `configure',
+
+ - the enabling of cross-compilation mode.
+
+
+ The relationship between build, host, and target have been cleaned
+up: the chain of default is now simply: target defaults to host, host to
+build, and build to the result of `config.guess'. Nevertheless, in
+order to ease the transition from 2.13 to 2.50, the following
+transition scheme is implemented. _Do not rely on it_, as it will be
+completely disabled in a couple of releases (we cannot keep it, as it
+proves to cause more problems than it cures).
+
+ They all default to the result of running `config.guess', unless you
+specify either `--build' or `--host'. In this case, the default
+becomes the system type you specified. If you specify both, and
+they're different, `configure' enters cross compilation mode, so it
+doesn't run any tests that require execution.
+
+ Hint: if you mean to override the result of `config.guess', prefer
+`--build' over `--host'.
+
+
+ For backward compatibility, `configure' accepts a system type as an
+option by itself. Such an option overrides the defaults for build,
+host, and target system types. The following configure statement
+configures a cross toolchain that runs on NetBSD/alpha but generates
+code for GNU Hurd/sparc, which is also the build platform.
+
+ ./configure --host=alpha-netbsd sparc-gnu
+
+
+ In Autoconf 2.13 and before, the variables `build', `host', and
+`target' had a different semantics before and after the invocation of
+`AC_CANONICAL_BUILD' etc. Now, the argument of `--build' is strictly
+copied into `build_alias', and is left empty otherwise. After the
+`AC_CANONICAL_BUILD', `build' is set to the canonicalized build type.
+To ease the transition, before, its contents is the same as that of
+`build_alias'. Do _not_ rely on this broken feature.
+
+ For consistency with the backward compatibility scheme exposed above,
+when `--host' is specified but `--build' isn't, the build system is
+assumed to be the same as `--host', and `build_alias' is set to that
+value. Eventually, this historically incorrect behavior will go away.
+
+
+ The former scheme to enable cross-compilation proved to cause more
+harm than good, in particular, it used to be triggered too easily,
+leaving regular end users puzzled in front of cryptic error messages.
+`configure' could even enter cross-compilation mode only because the
+compiler was not functional. This is mainly because `configure' used
+to try to detect cross-compilation, instead of waiting for an explicit
+flag from the user.
+
+ Now, `configure' enters cross-compilation mode if and only if
+`--host' is passed.
+
+ That's the short documentation. To ease the transition between 2.13
+and its successors, a more complicated scheme is implemented. _Do not
+rely on the following_, as it will be removed in the near future.
+
+ If you specify `--host', but not `--build', when `configure'
+performs the first compiler test it tries to run an executable produced
+by the compiler. If the execution fails, it enters cross-compilation
+mode. This is fragile. Moreover, by the time the compiler test is
+performed, it may be too late to modify the build-system type: other
+tests may have already been performed. Therefore, whenever you specify
+`--host', be sure to specify `--build' too.
+
+ ./configure --build=i686-pc-linux-gnu --host=m68k-coff
+
+enters cross-compilation mode. The former interface, which consisted
+in setting the compiler to a cross-compiler without informing
+`configure' is obsolete. For instance, `configure' fails if it can't
+run the code generated by the specified compiler if you configure as
+follows:
+
+ ./configure CC=m68k-coff-gcc
+
+
+File: autoconf.info, Node: AC_LIBOBJ vs LIBOBJS, Next: AC_ACT_IFELSE vs AC_TRY_ACT, Prev: Hosts and Cross-Compilation, Up: Autoconf 2.13
+
+18.6.4 `AC_LIBOBJ' vs. `LIBOBJS'
+--------------------------------
+
+Up to Autoconf 2.13, the replacement of functions was triggered via the
+variable `LIBOBJS'. Since Autoconf 2.50, the macro `AC_LIBOBJ' should
+be used instead (*note Generic Functions::). Starting at Autoconf
+2.53, the use of `LIBOBJS' is an error.
+
+ This change is mandated by the unification of the GNU Build System
+components. In particular, the various fragile techniques used to parse
+a `configure.ac' are all replaced with the use of traces. As a
+consequence, any action must be traceable, which obsoletes critical
+variable assignments. Fortunately, `LIBOBJS' was the only problem, and
+it can even be handled gracefully (read, "without your having to change
+something").
+
+ There were two typical uses of `LIBOBJS': asking for a replacement
+function, and adjusting `LIBOBJS' for Automake and/or Libtool.
+
+
+ As for function replacement, the fix is immediate: use `AC_LIBOBJ'.
+For instance:
+
+ LIBOBJS="$LIBOBJS fnmatch.o"
+ LIBOBJS="$LIBOBJS malloc.$ac_objext"
+
+should be replaced with:
+
+ AC_LIBOBJ([fnmatch])
+ AC_LIBOBJ([malloc])
+
+
+ When used with Automake 1.10 or newer, a suitable value for
+`LIBOBJDIR' is set so that the `LIBOBJS' and `LTLIBOBJS' can be
+referenced from any `Makefile.am'. Even without Automake, arranging
+for `LIBOBJDIR' to be set correctly enables referencing `LIBOBJS' and
+`LTLIBOBJS' in another directory. The `LIBOBJDIR' feature is
+experimental.
+
+
+File: autoconf.info, Node: AC_ACT_IFELSE vs AC_TRY_ACT, Prev: AC_LIBOBJ vs LIBOBJS, Up: Autoconf 2.13
+
+18.6.5 `AC_ACT_IFELSE' vs. `AC_TRY_ACT'
+---------------------------------------
+
+Since Autoconf 2.50, internal codes uses `AC_PREPROC_IFELSE',
+`AC_COMPILE_IFELSE', `AC_LINK_IFELSE', and `AC_RUN_IFELSE' on one hand
+and `AC_LANG_SOURCE', and `AC_LANG_PROGRAM' on the other hand instead
+of the deprecated `AC_TRY_CPP', `AC_TRY_COMPILE', `AC_TRY_LINK', and
+`AC_TRY_RUN'. The motivations where:
+ - a more consistent interface: `AC_TRY_COMPILE' etc. were double
+ quoting their arguments;
+
+ - the combinatoric explosion is solved by decomposing on the one
+ hand the generation of sources, and on the other hand executing
+ the program;
+
+ - this scheme helps supporting more languages than plain C and C++.
+
+ In addition to the change of syntax, the philosophy has changed too:
+while emphasis was put on speed at the expense of accuracy, today's
+Autoconf promotes accuracy of the testing framework at, ahem..., the
+expense of speed.
+
+ As a perfect example of what is _not_ to be done, here is how to
+find out whether a header file contains a particular declaration, such
+as a typedef, a structure, a structure member, or a function. Use
+`AC_EGREP_HEADER' instead of running `grep' directly on the header
+file; on some systems the symbol might be defined in another header
+file that the file you are checking includes.
+
+ As a (bad) example, here is how you should not check for C
+preprocessor symbols, either defined by header files or predefined by
+the C preprocessor: using `AC_EGREP_CPP':
+
+ AC_EGREP_CPP(yes,
+ [#ifdef _AIX
+ yes
+ #endif
+ ], is_aix=yes, is_aix=no)
+
+ The above example, properly written would (i) use `AC_LANG_PROGRAM',
+and (ii) run the compiler:
+
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+ [[#ifndef _AIX
+ error: This isn't AIX!
+ #endif
+ ]])],
+ [is_aix=yes],
+ [is_aix=no])
+
+
+File: autoconf.info, Node: Using Autotest, Next: FAQ, Prev: Obsolete Constructs, Up: Top
+
+19 Generating Test Suites with Autotest
+***************************************
+
+ *N.B.: This section describes a feature which is still
+ stabilizing. Although we believe that Autotest is useful as-is, this
+ documentation describes an interface which might change in the future:
+ do not depend upon Autotest without subscribing to the Autoconf mailing
+ lists.*
+
+ It is paradoxical that portable projects depend on nonportable tools
+to run their test suite. Autoconf by itself is the paragon of this
+problem: although it aims at perfectly portability, up to 2.13 its test
+suite was using DejaGNU, a rich and complex testing framework, but
+which is far from being standard on Posix systems. Worse yet, it was
+likely to be missing on the most fragile platforms, the very platforms
+that are most likely to torture Autoconf and exhibit deficiencies.
+
+ To circumvent this problem, many package maintainers have developed
+their own testing framework, based on simple shell scripts whose sole
+outputs are exit status values describing whether the test succeeded.
+Most of these tests share common patterns, and this can result in lots
+of duplicated code and tedious maintenance.
+
+ Following exactly the same reasoning that yielded to the inception of
+Autoconf, Autotest provides a test suite generation framework, based on
+M4 macros building a portable shell script. The suite itself is
+equipped with automatic logging and tracing facilities which greatly
+diminish the interaction with bug reporters, and simple timing reports.
+
+ Autoconf itself has been using Autotest for years, and we do attest
+that it has considerably improved the strength of the test suite and the
+quality of bug reports. Other projects are known to use some generation
+of Autotest, such as Bison, Free Recode, Free Wdiff, GNU Tar, each of
+them with different needs, and this usage has validated Autotest as a
+general testing framework.
+
+ Nonetheless, compared to DejaGNU, Autotest is inadequate for
+interactive tool testing, which is probably its main limitation.
+
+* Menu:
+
+* Using an Autotest Test Suite:: Autotest and the user
+* Writing Testsuites:: Autotest macros
+* testsuite Invocation:: Running `testsuite' scripts
+* Making testsuite Scripts:: Using autom4te to create `testsuite'
+
+
+File: autoconf.info, Node: Using an Autotest Test Suite, Next: Writing Testsuites, Up: Using Autotest
+
+19.1 Using an Autotest Test Suite
+=================================
+
+* Menu:
+
+* testsuite Scripts:: The concepts of Autotest
+* Autotest Logs:: Their contents
+
+
+File: autoconf.info, Node: testsuite Scripts, Next: Autotest Logs, Up: Using an Autotest Test Suite
+
+19.1.1 `testsuite' Scripts
+--------------------------
+
+Generating testing or validation suites using Autotest is rather easy.
+The whole validation suite is held in a file to be processed through
+`autom4te', itself using GNU M4 under the hood, to produce a
+stand-alone Bourne shell script which then gets distributed. Neither
+`autom4te' nor GNU M4 are needed at the installer's end.
+
+ Each test of the validation suite should be part of some test group.
+A "test group" is a sequence of interwoven tests that ought to be
+executed together, usually because one test in the group creates data
+files that a later test in the same group needs to read. Complex test
+groups make later debugging more tedious. It is much better to keep
+only a few tests per test group. Ideally there is only one test per
+test group.
+
+ For all but the simplest packages, some file such as `testsuite.at'
+does not fully hold all test sources, as these are often easier to
+maintain in separate files. Each of these separate files holds a single
+test group, or a sequence of test groups all addressing some common
+functionality in the package. In such cases, `testsuite.at' merely
+initializes the validation suite, and sometimes does elementary health
+checking, before listing include statements for all other test files.
+The special file `package.m4', containing the identification of the
+package, is automatically included if found.
+
+ A convenient alternative consists in moving all the global issues
+(local Autotest macros, elementary health checking, and `AT_INIT'
+invocation) into the file `local.at', and making `testsuite.at' be a
+simple list of `m4_include's of sub test suites. In such case,
+generating the whole test suite or pieces of it is only a matter of
+choosing the `autom4te' command line arguments.
+
+ The validation scripts that Autotest produces are by convention
+called `testsuite'. When run, `testsuite' executes each test group in
+turn, producing only one summary line per test to say if that
+particular test succeeded or failed. At end of all tests, summarizing
+counters get printed. One debugging directory is left for each test
+group which failed, if any: such directories are named
+`testsuite.dir/NN', where NN is the sequence number of the test group,
+and they include:
+
+ * a debugging script named `run' which reruns the test in "debug
+ mode" (*note testsuite Invocation::). The automatic generation of
+ debugging scripts has the purpose of easing the chase for bugs.
+
+ * all the files created with `AT_DATA'
+
+ * all the Erlang source code files created with `AT_CHECK_EUNIT'
+
+ * a log of the run, named `testsuite.log'
+
+ In the ideal situation, none of the tests fail, and consequently no
+debugging directory is left behind for validation.
+
+ It often happens in practice that individual tests in the validation
+suite need to get information coming out of the configuration process.
+Some of this information, common for all validation suites, is provided
+through the file `atconfig', automatically created by
+`AC_CONFIG_TESTDIR'. For configuration information which your testing
+environment specifically needs, you might prepare an optional file
+named `atlocal.in', instantiated by `AC_CONFIG_FILES'. The
+configuration process produces `atconfig' and `atlocal' out of these
+two input files, and these two produced files are automatically read by
+the `testsuite' script.
+
+ Here is a diagram showing the relationship between files.
+
+Files used in preparing a software package for distribution:
+
+ [package.m4] -->.
+ \
+ subfile-1.at ->. [local.at] ---->+
+ ... \ \
+ subfile-i.at ---->-- testsuite.at -->-- autom4te* -->testsuite
+ ... /
+ subfile-n.at ->'
+
+Files used in configuring a software package:
+
+ .--> atconfig
+ /
+ [atlocal.in] --> config.status* --<
+ \
+ `--> [atlocal]
+
+Files created during test suite execution:
+
+ atconfig -->. .--> testsuite.log
+ \ /
+ >-- testsuite* --<
+ / \
+ [atlocal] ->' `--> [testsuite.dir]
+
+
+File: autoconf.info, Node: Autotest Logs, Prev: testsuite Scripts, Up: Using an Autotest Test Suite
+
+19.1.2 Autotest Logs
+--------------------
+
+When run, the test suite creates a log file named after itself, e.g., a
+test suite named `testsuite' creates `testsuite.log'. It contains a
+lot of information, usually more than maintainers actually need, but
+therefore most of the time it contains all that is needed:
+
+command line arguments
+ A bad but unfortunately widespread habit consists of setting
+ environment variables before the command, such as in
+ `CC=my-home-grown-cc ./testsuite'. The test suite does not know
+ this change, hence (i) it cannot report it to you, and (ii) it
+ cannot preserve the value of `CC' for subsequent runs. Autoconf
+ faced exactly the same problem, and solved it by asking users to
+ pass the variable definitions as command line arguments. Autotest
+ requires this rule, too, but has no means to enforce it; the log
+ then contains a trace of the variables that were changed by the
+ user.
+
+`ChangeLog' excerpts
+ The topmost lines of all the `ChangeLog' files found in the source
+ hierarchy. This is especially useful when bugs are reported
+ against development versions of the package, since the version
+ string does not provide sufficient information to know the exact
+ state of the sources the user compiled. Of course, this relies on
+ the use of a `ChangeLog'.
+
+build machine
+ Running a test suite in a cross-compile environment is not an easy
+ task, since it would mean having the test suite run on a machine
+ BUILD, while running programs on a machine HOST. It is much
+ simpler to run both the test suite and the programs on HOST, but
+ then, from the point of view of the test suite, there remains a
+ single environment, HOST = BUILD. The log contains relevant
+ information on the state of the BUILD machine, including some
+ important environment variables.
+
+tested programs
+ The absolute file name and answers to `--version' of the tested
+ programs (see *note Writing Testsuites::, `AT_TESTED').
+
+configuration log
+ The contents of `config.log', as created by `configure', are
+ appended. It contains the configuration flags and a detailed
+ report on the configuration itself.
+
+
+File: autoconf.info, Node: Writing Testsuites, Next: testsuite Invocation, Prev: Using an Autotest Test Suite, Up: Using Autotest
+
+19.2 Writing `testsuite.at'
+===========================
+
+The `testsuite.at' is a Bourne shell script making use of special
+Autotest M4 macros. It often contains a call to `AT_INIT' near its
+beginning followed by one call to `m4_include' per source file for
+tests. Each such included file, or the remainder of `testsuite.at' if
+include files are not used, contain a sequence of test groups. Each
+test group begins with a call to `AT_SETUP', then an arbitrary number
+of shell commands or calls to `AT_CHECK', and then completes with a
+call to `AT_CLEANUP'. Multiple test groups can be categorized by a
+call to `AT_BANNER'.
+
+ All of the public Autotest macros have all-uppercase names in the
+namespace `^AT_' to prevent them from accidentally conflicting with
+other text; Autoconf also reserves the namespace `^_AT_' for internal
+macros. All shell variables used in the testsuite for internal
+purposes have mostly-lowercase names starting with `at_'. Autotest
+also uses here-document delimiters in the namespace `^_AT[A-Z]', and
+makes use of the file system namespace `^at-'.
+
+ Since Autoconf is built on top of M4sugar (*note Programming in
+M4sugar::) and M4sh (*note Programming in M4sh::), you must also be
+aware of those namespaces (`^_?\(m4\|AS\)_'). In general, you _should
+not use_ the namespace of a package that does not own the macro or
+shell code you are writing.
+
+ -- Macro: AT_INIT ([NAME])
+ Initialize Autotest. Giving a NAME to the test suite is
+ encouraged if your package includes several test suites. Before
+ this macro is called, `AT_PACKAGE_STRING' and
+ `AT_PACKAGE_BUGREPORT' must be defined, which are used to display
+ information about the testsuite to the user. Typically, these
+ macros are provided by a file `package.m4' built by `make' (*note
+ Making testsuite Scripts::), in order to inherit the package name,
+ version, and bug reporting address from `configure.ac'.
+
+ -- Macro: AT_COPYRIGHT (COPYRIGHT-NOTICE)
+ State that, in addition to the Free Software Foundation's
+ copyright on the Autotest macros, parts of your test suite are
+ covered by COPYRIGHT-NOTICE.
+
+ The COPYRIGHT-NOTICE shows up in both the head of `testsuite' and
+ in `testsuite --version'.
+
+ -- Macro: AT_ARG_OPTION (OPTIONS, HELP-TEXT, [ACTION-IF-GIVEN],
+ [ACTION-IF-NOT-GIVEN])
+ Accept options from the space-separated list OPTIONS, a list that
+ has leading dashes removed from the options. Long options will be
+ prefixed with `--', single-character options with `-'. The first
+ word in this list is the primary OPTION, any others are assumed to
+ be short-hand aliases. The variable associated with it is
+ `at_arg_OPTION', with any dashes in OPTION replaced with
+ underscores.
+
+ If the user passes `--OPTION' to the `testsuite', the variable
+ will be set to `:'. If the user does not pass the option, or
+ passes `--no-OPTION', then the variable will be set to `false'.
+
+ ACTION-IF-GIVEN is run each time the option is encountered; here,
+ the variable `at_optarg' will be set to `:' or `false' as
+ appropriate. `at_optarg' is actually just a copy of
+ `at_arg_OPTION'.
+
+ ACTION-IF-NOT-GIVEN will be run once after option parsing is
+ complete and if no option from OPTIONS was used.
+
+ HELP-TEXT is added to the end of the list of options shown in
+ `testsuite --help' (*note AS_HELP_STRING::).
+
+ It is recommended that you use a package-specific prefix to OPTIONS
+ names in order to avoid clashes with future Autotest built-in
+ options.
+
+ -- Macro: AT_ARG_OPTION_ARG (OPTIONS, HELP-TEXT, [ACTION-IF-GIVEN],
+ [ACTION-IF-NOT-GIVEN])
+ Accept options with arguments from the space-separated list
+ OPTIONS, a list that has leading dashes removed from the options.
+ Long options will be prefixed with `--', single-character options
+ with `-'. The first word in this list is the primary OPTION, any
+ others are assumed to be short-hand aliases. The variable
+ associated with it is `at_arg_OPTION', with any dashes in OPTION
+ replaced with underscores.
+
+ If the user passes `--OPTION=ARG' or `--OPTION ARG' to the
+ `testsuite', the variable will be set to `ARG'.
+
+ ACTION-IF-GIVEN is run each time the option is encountered; here,
+ the variable `at_optarg' will be set to `ARG'. `at_optarg' is
+ actually just a copy of `at_arg_OPTION'.
+
+ ACTION-IF-NOT-GIVEN will be run once after option parsing is
+ complete and if no option from OPTIONS was used.
+
+ HELP-TEXT is added to the end of the list of options shown in
+ `testsuite --help' (*note AS_HELP_STRING::).
+
+ It is recommended that you use a package-specific prefix to OPTIONS
+ names in order to avoid clashes with future Autotest built-in
+ options.
+
+ -- Macro: AT_COLOR_TESTS
+ Enable colored test results by default when the output is
+ connected to a terminal.
+
+ -- Macro: AT_TESTED (EXECUTABLES)
+ Log the file name and answer to `--version' of each program in
+ space-separated list EXECUTABLES. Several invocations register
+ new executables, in other words, don't fear registering one program
+ several times.
+
+ Autotest test suites rely on `PATH' to find the tested program.
+ This avoids the need to generate absolute names of the various
+ tools, and makes it possible to test installed programs.
+ Therefore, knowing which programs are being exercised is crucial
+ to understanding problems in the test suite itself, or its
+ occasional misuses. It is a good idea to also subscribe foreign
+ programs you depend upon, to avoid incompatible diagnostics.
+
+
+ -- Macro: AT_BANNER (TEST-CATEGORY-NAME)
+ This macro identifies the start of a category of related test
+ groups. When the resulting `testsuite' is invoked with more than
+ one test group to run, its output will include a banner containing
+ TEST-CATEGORY-NAME prior to any tests run from that category. The
+ banner should be no more than about 40 or 50 characters. A blank
+ banner indicates uncategorized tests; an empty line will be
+ inserted after tests from an earlier category, effectively ending
+ that category.
+
+ -- Macro: AT_SETUP (TEST-GROUP-NAME)
+ This macro starts a group of related tests, all to be executed in
+ the same subshell. It accepts a single argument, which holds a
+ few words (no more than about 30 or 40 characters) quickly
+ describing the purpose of the test group being started.
+ TEST-GROUP-NAME must not expand to unbalanced quotes, although
+ quadrigraphs can be used.
+
+ -- Macro: AT_KEYWORDS (KEYWORDS)
+ Associate the space-separated list of KEYWORDS to the enclosing
+ test group. This makes it possible to run "slices" of the test
+ suite. For instance, if some of your test groups exercise some
+ `foo' feature, then using `AT_KEYWORDS(foo)' lets you run
+ `./testsuite -k foo' to run exclusively these test groups. The
+ TEST-GROUP-NAME of the test group is automatically recorded to
+ `AT_KEYWORDS'.
+
+ Several invocations within a test group accumulate new keywords.
+ In other words, don't fear registering the same keyword several
+ times in a test group.
+
+ -- Macro: AT_CAPTURE_FILE (FILE)
+ If the current test group fails, log the contents of FILE.
+ Several identical calls within one test group have no additional
+ effect.
+
+ -- Macro: AT_FAIL_IF (SHELL-CONDITION)
+ Make the test group fail and skip the rest of its execution, if
+ SHELL-CONDITION is true. SHELL-CONDITION is a shell expression
+ such as a `test' command. Tests before `AT_FAIL_IF' will be
+ executed and may still cause the test group to be skipped. You
+ can instantiate this macro many times from within the same test
+ group.
+
+ You should use this macro only for very simple failure conditions.
+ If the SHELL-CONDITION could emit any kind of output you should
+ instead use `AT_CHECK' like
+ AT_CHECK([if SHELL-CONDITION; then exit 99; fi])
+ so that such output is properly recorded in the `testsuite.log'
+ file.
+
+ -- Macro: AT_SKIP_IF (SHELL-CONDITION)
+ Determine whether the test should be skipped because it requires
+ features that are unsupported on the machine under test.
+ SHELL-CONDITION is a shell expression such as a `test' command.
+ Tests before `AT_SKIP_IF' will be executed and may still cause the
+ test group to fail. You can instantiate this macro many times
+ from within the same test group.
+
+ You should use this macro only for very simple skip conditions.
+ If the SHELL-CONDITION could emit any kind of output you should
+ instead use `AT_CHECK' like
+ AT_CHECK([if SHELL-CONDITION; then exit 77; fi])
+ so that such output is properly recorded in the `testsuite.log'
+ file.
+
+ -- Macro: AT_XFAIL_IF (SHELL-CONDITION)
+ Determine whether the test is expected to fail because it is a
+ known bug (for unsupported features, you should skip the test).
+ SHELL-CONDITION is a shell expression such as a `test' command;
+ you can instantiate this macro many times from within the same
+ test group, and one of the conditions is enough to turn the test
+ into an expected failure.
+
+ -- Macro: AT_CLEANUP
+ End the current test group.
+
+
+ -- Macro: AT_DATA (FILE, CONTENTS)
+ Initialize an input data FILE with given CONTENTS. Of course, the
+ CONTENTS have to be properly quoted between square brackets to
+ protect against included commas or spurious M4 expansion.
+ CONTENTS must be empty or end with a newline. FILE must be a
+ single shell word that expands into a single file name.
+
+ -- Macro: AT_CHECK (COMMANDS, [STATUS = `0'], [STDOUT], [STDERR],
+ [RUN-IF-FAIL], [RUN-IF-PASS])
+ -- Macro: AT_CHECK_UNQUOTED (COMMANDS, [STATUS = `0'], [STDOUT],
+ [STDERR], [RUN-IF-FAIL], [RUN-IF-PASS])
+ Execute a test by performing given shell COMMANDS in a subshell.
+ COMMANDS is output as-is, so shell expansions are honored. These
+ commands should normally exit with STATUS, while producing expected
+ STDOUT and STDERR contents. If COMMANDS exit with unexpected
+ status 77, then the rest of the test group is skipped. If
+ COMMANDS exit with unexpected status 99, then the test group is
+ immediately failed. Otherwise, if this test fails, run shell
+ commands RUN-IF-FAIL or, if this test passes, run shell commands
+ RUN-IF-PASS, both inside the current shell execution environment.
+ At the beginning of RUN-IF-FAIL and RUN-IF-PASS, the status of
+ COMMANDS is available in the `at_status' shell variable.
+
+ This macro must be invoked in between `AT_SETUP' and `AT_CLEANUP'.
+
+ If STATUS is the literal `ignore', then the corresponding exit
+ status is not checked, except for the special cases of 77 (skip)
+ and 99 (hard failure). The existence of hard failures allows one
+ to mark a test as an expected failure with `AT_XFAIL_IF' because a
+ feature has not yet been implemented, but to still distinguish
+ between gracefully handling the missing feature and dumping core.
+ A hard failure also inhibits post-test actions in RUN-IF-FAIL.
+
+ If the value of the STDOUT or STDERR parameter is one of the
+ literals in the following table, then the test treats the output
+ according to the rules of that literal. Otherwise, the value of
+ the parameter is treated as text that must exactly match the
+ output given by COMMANDS on standard output and standard error
+ (including an empty parameter for no output); any differences are
+ captured in the testsuite log and the test is failed (unless an
+ unexpected exit status of 77 skipped the test instead). The
+ difference between `AT_CHECK' and `AT_CHECK_UNQUOTED' is that only
+ the latter performs shell variable expansion (`$'), command
+ substitution (``'), and backslash escaping (`\') on comparison
+ text given in the STDOUT and STDERR arguments; if the text
+ includes a trailing newline, this would be the same as if it were
+ specified via an unquoted here-document. (However, there is no
+ difference in the interpretation of COMMANDS).
+
+ `ignore'
+ The content of the output is ignored, but still captured in
+ the test group log (if the testsuite is run with option `-v',
+ the test group log is displayed as the test is run; if the
+ test group later fails, the test group log is also copied
+ into the overall testsuite log). This action is valid for
+ both STDOUT and STDERR.
+
+ `ignore-nolog'
+ The content of the output is ignored, and nothing is captured
+ in the log files. If COMMANDS are likely to produce binary
+ output (including long lines) or large amounts of output,
+ then logging the output can make it harder to locate details
+ related to subsequent tests within the group, and could
+ potentially corrupt terminal display of a user running
+ `testsuite -v'.
+
+ `stdout'
+ For the STDOUT parameter, capture the content of standard
+ output to both the file `stdout' and the test group log.
+ Subsequent commands in the test group can then post-process
+ the file. This action is often used when it is desired to
+ use `grep' to look for a substring in the output, or when the
+ output must be post-processed to normalize error messages
+ into a common form.
+
+ `stderr'
+ Like `stdout', except that it only works for the STDERR
+ parameter, and the standard error capture file will be named
+ `stderr'.
+
+ `stdout-nolog'
+ `stderr-nolog'
+ Like `stdout' or `stderr', except that the captured output is
+ not duplicated into the test group log. This action is
+ particularly useful for an intermediate check that produces
+ large amounts of data, which will be followed by another
+ check that filters down to the relevant data, as it makes it
+ easier to locate details in the log.
+
+ `expout'
+ For the STDOUT parameter, compare standard output contents
+ with the previously created file `expout', and list any
+ differences in the testsuite log.
+
+ `experr'
+ Like `expout', except that it only works for the STDERR
+ parameter, and the standard error contents are compared with
+ `experr'.
+
+ -- Macro: AT_CHECK_EUNIT (MODULE, TEST-SPEC, [ERLFLAGS],
+ [RUN-IF-FAIL], [RUN-IF-PASS])
+ Initialize and execute an Erlang module named MODULE that performs
+ tests following the TEST-SPEC EUnit test specification. TEST-SPEC
+ must be a valid EUnit test specification, as defined in the EUnit
+ Reference Manual (http://erlang.org/doc/apps/eunit/index.html).
+ ERLFLAGS are optional command-line options passed to the Erlang
+ interpreter to execute the test Erlang module. Typically,
+ ERLFLAGS defines at least the paths to directories containing the
+ compiled Erlang modules under test, as `-pa path1 path2 ...'.
+
+ For example, the unit tests associated with Erlang module `testme',
+ which compiled code is in subdirectory `src', can be performed
+ with:
+
+ AT_CHECK_EUNIT([testme_testsuite], [{module, testme}],
+ [-pa "${abs_top_builddir}/src"])
+
+ This macro must be invoked in between `AT_SETUP' and `AT_CLEANUP'.
+
+ Variables `ERL', `ERLC', and (optionally) `ERLCFLAGS' must be
+ defined as the path of the Erlang interpreter, the path of the
+ Erlang compiler, and the command-line flags to pass to the
+ compiler, respectively. Those variables should be configured in
+ `configure.ac' using the `AC_ERLANG_PATH_ERL' and
+ `AC_ERLANG_PATH_ERLC' macros, and the configured values of those
+ variables are automatically defined in the testsuite. If `ERL' or
+ `ERLC' is not defined, the test group is skipped.
+
+ If the EUnit library cannot be found, i.e. if module `eunit' cannot
+ be loaded, the test group is skipped. Otherwise, if TEST-SPEC is
+ an invalid EUnit test specification, the test group fails.
+ Otherwise, if the EUnit test passes, shell commands RUN-IF-PASS
+ are executed or, if the EUnit test fails, shell commands
+ RUN-IF-FAIL are executed and the test group fails.
+
+ Only the generated test Erlang module is automatically compiled and
+ executed. If TEST-SPEC involves testing other Erlang modules,
+ e.g. module `testme' in the example above, those modules must be
+ already compiled.
+
+ If the testsuite is run in verbose mode, with option `--verbose',
+ EUnit is also run in verbose mode to output more details about
+ individual unit tests.
+
+
+File: autoconf.info, Node: testsuite Invocation, Next: Making testsuite Scripts, Prev: Writing Testsuites, Up: Using Autotest
+
+19.3 Running `testsuite' Scripts
+================================
+
+Autotest test suites support the following options:
+
+`--help'
+`-h'
+ Display the list of options and exit successfully.
+
+`--version'
+`-V'
+ Display the version of the test suite and exit successfully.
+
+`--directory=DIR'
+`-C DIR'
+ Change the current directory to DIR before creating any files.
+ Useful for running the testsuite in a subdirectory from a top-level
+ Makefile.
+
+`--jobs[=N]'
+`-j[N]'
+ Run N tests in parallel, if possible. If N is not given, run all
+ given tests in parallel. Note that there should be no space
+ before the argument to `-j', as `-j NUMBER' denotes the separate
+ arguments `-j' and `NUMBER', see below.
+
+ In parallel mode, the standard input device of the testsuite
+ script is not available to commands inside a test group.
+ Furthermore, banner lines are not printed, and the summary line
+ for each test group is output after the test group completes.
+ Summary lines may appear unordered. If verbose and trace output
+ are enabled (see below), they may appear intermixed from
+ concurrently running tests.
+
+ Parallel mode requires the `mkfifo' command to work, and will be
+ silently disabled otherwise.
+
+`--clean'
+`-c'
+ Remove all the files the test suite might have created and exit.
+ Meant for `clean' Make targets.
+
+`--list'
+`-l'
+ List all the tests (or only the selection), including their
+ possible keywords.
+
+
+ By default all tests are performed (or described with `--list')
+silently in the default environment, but the environment, set of tests,
+and verbosity level can be tuned:
+
+`VARIABLE=VALUE'
+ Set the environment VARIABLE to VALUE. Use this rather than
+ `FOO=foo ./testsuite' as debugging scripts would then run in a
+ different environment.
+
+ The variable `AUTOTEST_PATH' specifies the testing path to prepend
+ to `PATH'. Relative directory names (not starting with `/') are
+ considered to be relative to the top level of the package being
+ built. All directories are made absolute, first starting from the
+ top level _build_ tree, then from the _source_ tree. For instance
+ `./testsuite AUTOTEST_PATH=tests:bin' for a `/src/foo-1.0' source
+ package built in `/tmp/foo' results in
+ `/tmp/foo/tests:/tmp/foo/bin' and then
+ `/src/foo-1.0/tests:/src/foo-1.0/bin' being prepended to `PATH'.
+
+`NUMBER'
+`NUMBER-NUMBER'
+`NUMBER-'
+`-NUMBER'
+ Add the corresponding test groups, with obvious semantics, to the
+ selection.
+
+`--keywords=KEYWORDS'
+`-k KEYWORDS'
+ Add to the selection the test groups with title or keywords
+ (arguments to `AT_SETUP' or `AT_KEYWORDS') that match _all_
+ keywords of the comma separated list KEYWORDS, case-insensitively.
+ Use `!' immediately before the keyword to invert the selection for
+ this keyword. By default, the keywords match whole words; enclose
+ them in `.*' to also match parts of words.
+
+ For example, running
+
+ ./testsuite -k 'autoupdate,.*FUNC.*'
+
+ selects all tests tagged `autoupdate' _and_ with tags containing
+ `FUNC' (as in `AC_CHECK_FUNC', `AC_FUNC_ALLOCA', etc.), while
+
+ ./testsuite -k '!autoupdate' -k '.*FUNC.*'
+
+ selects all tests not tagged `autoupdate' _or_ with tags
+ containing `FUNC'.
+
+`--errexit'
+`-e'
+ If any test fails, immediately abort testing. This implies
+ `--debug': post test group clean up, and top-level logging are
+ inhibited. This option is meant for the full test suite, it is
+ not really useful for generated debugging scripts. If the
+ testsuite is run in parallel mode using `--jobs', then
+ concurrently running tests will finish before exiting.
+
+`--verbose'
+`-v'
+ Force more verbosity in the detailed output of what is being done.
+ This is the default for debugging scripts.
+
+`--color'
+`--color[=never|auto|always]'
+ Enable colored test results. Without an argument, or with
+ `always', test results will be colored. With `never', color mode
+ is turned off. Otherwise, if either the macro `AT_COLOR_TESTS' is
+ used by the testsuite author, or the argument `auto' is given,
+ then test results are colored if standard output is connected to a
+ terminal.
+
+`--debug'
+`-d'
+ Do not remove the files after a test group was performed--but they
+ are still removed _before_, therefore using this option is sane
+ when running several test groups. Create debugging scripts. Do
+ not overwrite the top-level log (in order to preserve a supposedly
+ existing full log file). This is the default for debugging
+ scripts, but it can also be useful to debug the testsuite itself.
+
+`--recheck'
+ Add to the selection all test groups that failed or passed
+ unexpectedly during the last non-debugging test run.
+
+`--trace'
+`-x'
+ Trigger shell tracing of the test groups.
+
+ Besides these options accepted by every Autotest testsuite, the
+testsuite author might have added package-specific options via the
+`AT_ARG_OPTION' and `AT_ARG_OPTION_ARG' macros (*note Writing
+Testsuites::); refer to `testsuite --help' and the package
+documentation for details.
+
+
+File: autoconf.info, Node: Making testsuite Scripts, Prev: testsuite Invocation, Up: Using Autotest
+
+19.4 Making `testsuite' Scripts
+===============================
+
+For putting Autotest into movement, you need some configuration and
+makefile machinery. We recommend, at least if your package uses deep or
+shallow hierarchies, that you use `tests/' as the name of the directory
+holding all your tests and their makefile. Here is a check list of
+things to do.
+
+ - Make sure to create the file `package.m4', which defines the
+ identity of the package. It must define `AT_PACKAGE_STRING', the
+ full signature of the package, and `AT_PACKAGE_BUGREPORT', the
+ address to which bug reports should be sent. For sake of
+ completeness, we suggest that you also define `AT_PACKAGE_NAME',
+ `AT_PACKAGE_TARNAME', `AT_PACKAGE_VERSION', and `AT_PACKAGE_URL'.
+ *Note Initializing configure::, for a description of these
+ variables. Be sure to distribute `package.m4' and to put it into
+ the source hierarchy: the test suite ought to be shipped! See
+ below for an example `Makefile' excerpt.
+
+ - Invoke `AC_CONFIG_TESTDIR'.
+
+ -- Macro: AC_CONFIG_TESTDIR (DIRECTORY, [TEST-PATH = `directory'])
+ An Autotest test suite is to be configured in DIRECTORY. This
+ macro causes `DIRECTORY/atconfig' to be created by
+ `config.status' and sets the default `AUTOTEST_PATH' to
+ TEST-PATH (*note testsuite Invocation::).
+
+ - Still within `configure.ac', as appropriate, ensure that some
+ `AC_CONFIG_FILES' command includes substitution for
+ `tests/atlocal'.
+
+ - The appropriate `Makefile' should be modified so the validation in
+ your package is triggered by `make check'. An example is provided
+ below.
+
+ With Automake, here is a minimal example for inclusion in
+`tests/Makefile.am', in order to link `make check' with a validation
+suite.
+
+ # The `:;' works around a Bash 3.2 bug when the output is not writable.
+ $(srcdir)/package.m4: $(top_srcdir)/configure.ac
+ :;{ \
+ echo '# Signature of the current package.' && \
+ echo 'm4_define([AT_PACKAGE_NAME],' && \
+ echo ' [$(PACKAGE_NAME)])' && \
+ echo 'm4_define([AT_PACKAGE_TARNAME],' && \
+ echo ' [$(PACKAGE_TARNAME)])' && \
+ echo 'm4_define([AT_PACKAGE_VERSION],' && \
+ echo ' [$(PACKAGE_VERSION)])' && \
+ echo 'm4_define([AT_PACKAGE_STRING],' && \
+ echo ' [$(PACKAGE_STRING)])' && \
+ echo 'm4_define([AT_PACKAGE_BUGREPORT],' && \
+ echo ' [$(PACKAGE_BUGREPORT)])'; \
+ echo 'm4_define([AT_PACKAGE_URL],' && \
+ echo ' [$(PACKAGE_URL)])'; \
+ } >'$(srcdir)/package.m4'
+
+ EXTRA_DIST = testsuite.at $(srcdir)/package.m4 $(TESTSUITE) atlocal.in
+ TESTSUITE = $(srcdir)/testsuite
+
+ check-local: atconfig atlocal $(TESTSUITE)
+ $(SHELL) '$(TESTSUITE)' $(TESTSUITEFLAGS)
+
+ installcheck-local: atconfig atlocal $(TESTSUITE)
+ $(SHELL) '$(TESTSUITE)' AUTOTEST_PATH='$(bindir)' \
+ $(TESTSUITEFLAGS)
+
+ clean-local:
+ test ! -f '$(TESTSUITE)' || \
+ $(SHELL) '$(TESTSUITE)' --clean
+
+ AUTOM4TE = $(SHELL) $(srcdir)/build-aux/missing --run autom4te
+ AUTOTEST = $(AUTOM4TE) --language=autotest
+ $(TESTSUITE): $(srcdir)/testsuite.at $(srcdir)/package.m4
+ $(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at
+ mv $@.tmp $@
+
+ Note that the built testsuite is distributed; this is necessary
+because users might not have Autoconf installed, and thus would not be
+able to rebuild it. Likewise, the use of `missing' provides the user
+with a nicer error message if they modify a source file to the
+testsuite, and accidentally trigger the rebuild rules.
+
+ You might want to list explicitly the dependencies, i.e., the list of
+the files `testsuite.at' includes.
+
+ If you don't use Automake, you should include the above example in
+`tests/Makefile.in', along with additional lines inspired from the
+following:
+
+ subdir = tests
+ PACKAGE_NAME = @PACKAGE_NAME@
+ PACKAGE_TARNAME = @PACKAGE_TARNAME@
+ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PACKAGE_STRING = @PACKAGE_STRING@
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+ PACKAGE_URL = @PACKAGE_URL@
+
+ atconfig: $(top_builddir)/config.status
+ cd $(top_builddir) && \
+ $(SHELL) ./config.status $(subdir)/$@
+
+ atlocal: $(srcdir)/atlocal.in $(top_builddir)/config.status
+ cd $(top_builddir) && \
+ $(SHELL) ./config.status $(subdir)/$@
+
+and manage to have `$(EXTRA_DIST)' distributed. You will also want to
+distribute the file `build-aux/missing' from the Automake project; a
+copy of this file resides in the Autoconf source tree.
+
+ With all this in place, and if you have not initialized
+`TESTSUITEFLAGS' within your makefile, you can fine-tune test suite
+execution with this variable, for example:
+
+ make check TESTSUITEFLAGS='-v -d -x 75 -k AC_PROG_CC CFLAGS=-g'
+
+
+File: autoconf.info, Node: FAQ, Next: History, Prev: Using Autotest, Up: Top
+
+20 Frequent Autoconf Questions, with answers
+********************************************
+
+Several questions about Autoconf come up occasionally. Here some of
+them are addressed.
+
+* Menu:
+
+* Distributing:: Distributing `configure' scripts
+* Why GNU M4:: Why not use the standard M4?
+* Bootstrapping:: Autoconf and GNU M4 require each other?
+* Why Not Imake:: Why GNU uses `configure' instead of Imake
+* Defining Directories:: Passing `datadir' to program
+* Autom4te Cache:: What is it? Can I remove it?
+* Present But Cannot Be Compiled:: Compiler and Preprocessor Disagree
+* Expanded Before Required:: Expanded Before Required
+* Debugging:: Debugging `configure' scripts
+
+
+File: autoconf.info, Node: Distributing, Next: Why GNU M4, Up: FAQ
+
+20.1 Distributing `configure' Scripts
+=====================================
+
+ What are the restrictions on distributing `configure'
+ scripts that Autoconf generates? How does that affect my
+ programs that use them?
+
+ There are no restrictions on how the configuration scripts that
+Autoconf produces may be distributed or used. In Autoconf version 1,
+they were covered by the GNU General Public License. We still encourage
+software authors to distribute their work under terms like those of the
+GPL, but doing so is not required to use Autoconf.
+
+ Of the other files that might be used with `configure',
+`config.h.in' is under whatever copyright you use for your
+`configure.ac'. `config.sub' and `config.guess' have an exception to
+the GPL when they are used with an Autoconf-generated `configure'
+script, which permits you to distribute them under the same terms as
+the rest of your package. `install-sh' is from the X Consortium and is
+not copyrighted.
+
+
+File: autoconf.info, Node: Why GNU M4, Next: Bootstrapping, Prev: Distributing, Up: FAQ
+
+20.2 Why Require GNU M4?
+========================
+
+ Why does Autoconf require GNU M4?
+
+ Many M4 implementations have hard-coded limitations on the size and
+number of macros that Autoconf exceeds. They also lack several builtin
+macros that it would be difficult to get along without in a
+sophisticated application like Autoconf, including:
+
+ m4_builtin
+ m4_indir
+ m4_bpatsubst
+ __file__
+ __line__
+
+ Autoconf requires version 1.4.6 or later of GNU M4.
+
+ Since only software maintainers need to use Autoconf, and since GNU
+M4 is simple to configure and install, it seems reasonable to require
+GNU M4 to be installed also. Many maintainers of GNU and other free
+software already have most of the GNU utilities installed, since they
+prefer them.
+
+
+File: autoconf.info, Node: Bootstrapping, Next: Why Not Imake, Prev: Why GNU M4, Up: FAQ
+
+20.3 How Can I Bootstrap?
+=========================
+
+ If Autoconf requires GNU M4 and GNU M4 has an Autoconf
+ `configure' script, how do I bootstrap? It seems like a chicken
+ and egg problem!
+
+ This is a misunderstanding. Although GNU M4 does come with a
+`configure' script produced by Autoconf, Autoconf is not required in
+order to run the script and install GNU M4. Autoconf is only required
+if you want to change the M4 `configure' script, which few people have
+to do (mainly its maintainer).
+
+
+File: autoconf.info, Node: Why Not Imake, Next: Defining Directories, Prev: Bootstrapping, Up: FAQ
+
+20.4 Why Not Imake?
+===================
+
+ Why not use Imake instead of `configure' scripts?
+
+ Several people have written addressing this question, so adaptations
+of their explanations are included here.
+
+ The following answer is based on one written by Richard Pixley:
+
+ Autoconf generated scripts frequently work on machines that it has
+ never been set up to handle before. That is, it does a good job of
+ inferring a configuration for a new system. Imake cannot do this.
+
+ Imake uses a common database of host specific data. For X11, this
+ makes sense because the distribution is made as a collection of
+ tools, by one central authority who has control over the database.
+
+ GNU tools are not released this way. Each GNU tool has a
+ maintainer; these maintainers are scattered across the world.
+ Using a common database would be a maintenance nightmare.
+ Autoconf may appear to be this kind of database, but in fact it is
+ not. Instead of listing host dependencies, it lists program
+ requirements.
+
+ If you view the GNU suite as a collection of native tools, then the
+ problems are similar. But the GNU development tools can be
+ configured as cross tools in almost any host+target permutation.
+ All of these configurations can be installed concurrently. They
+ can even be configured to share host independent files across
+ hosts. Imake doesn't address these issues.
+
+ Imake templates are a form of standardization. The GNU coding
+ standards address the same issues without necessarily imposing the
+ same restrictions.
+
+ Here is some further explanation, written by Per Bothner:
+
+ One of the advantages of Imake is that it is easy to generate large
+ makefiles using the `#include' and macro mechanisms of `cpp'.
+ However, `cpp' is not programmable: it has limited conditional
+ facilities, and no looping. And `cpp' cannot inspect its
+ environment.
+
+ All of these problems are solved by using `sh' instead of `cpp'.
+ The shell is fully programmable, has macro substitution, can
+ execute (or source) other shell scripts, and can inspect its
+ environment.
+
+ Paul Eggert elaborates more:
+
+ With Autoconf, installers need not assume that Imake itself is
+ already installed and working well. This may not seem like much
+ of an advantage to people who are accustomed to Imake. But on
+ many hosts Imake is not installed or the default installation is
+ not working well, and requiring Imake to install a package hinders
+ the acceptance of that package on those hosts. For example, the
+ Imake template and configuration files might not be installed
+ properly on a host, or the Imake build procedure might wrongly
+ assume that all source files are in one big directory tree, or the
+ Imake configuration might assume one compiler whereas the package
+ or the installer needs to use another, or there might be a version
+ mismatch between the Imake expected by the package and the Imake
+ supported by the host. These problems are much rarer with
+ Autoconf, where each package comes with its own independent
+ configuration processor.
+
+ Also, Imake often suffers from unexpected interactions between
+ `make' and the installer's C preprocessor. The fundamental problem
+ here is that the C preprocessor was designed to preprocess C
+ programs, not makefiles. This is much less of a problem with
+ Autoconf, which uses the general-purpose preprocessor M4, and
+ where the package's author (rather than the installer) does the
+ preprocessing in a standard way.
+
+ Finally, Mark Eichin notes:
+
+ Imake isn't all that extensible, either. In order to add new
+ features to Imake, you need to provide your own project template,
+ and duplicate most of the features of the existing one. This
+ means that for a sophisticated project, using the vendor-provided
+ Imake templates fails to provide any leverage--since they don't
+ cover anything that your own project needs (unless it is an X11
+ program).
+
+ On the other side, though:
+
+ The one advantage that Imake has over `configure': `Imakefile'
+ files tend to be much shorter (likewise, less redundant) than
+ `Makefile.in' files. There is a fix to this, however--at least
+ for the Kerberos V5 tree, we've modified things to call in common
+ `post.in' and `pre.in' makefile fragments for the entire tree.
+ This means that a lot of common things don't have to be
+ duplicated, even though they normally are in `configure' setups.
+
+
+File: autoconf.info, Node: Defining Directories, Next: Autom4te Cache, Prev: Why Not Imake, Up: FAQ
+
+20.5 How Do I `#define' Installation Directories?
+=================================================
+
+ My program needs library files, installed in `datadir' and
+ similar. If I use
+ AC_DEFINE_UNQUOTED([DATADIR], [$datadir],
+ [Define to the read-only architecture-independent
+ data directory.])
+
+ I get
+ #define DATADIR "${prefix}/share"
+
+As already explained, this behavior is on purpose, mandated by the GNU
+Coding Standards, see *note Installation Directory Variables::. There
+are several means to achieve a similar goal:
+
+ - Do not use `AC_DEFINE' but use your makefile to pass the actual
+ value of `datadir' via compilation flags. *Note Installation
+ Directory Variables::, for the details.
+
+ - This solution can be simplified when compiling a program: you may
+ either extend the `CPPFLAGS':
+
+ CPPFLAGS = -DDATADIR='"$(datadir)"' @CPPFLAGS@
+
+ If you are using Automake, you should use `AM_CPPFLAGS' instead:
+
+ AM_CPPFLAGS = -DDATADIR='"$(datadir)"'
+
+ Alternatively, create a dedicated header file:
+
+ DISTCLEANFILES = myprog-paths.h
+ myprog-paths.h: Makefile
+ echo '#define DATADIR "$(datadir)"' >$@
+
+ The gnulib module `configmake' provides such a header with all the
+ standard directory variables defined, *note configmake:
+ (gnulib)configmake.
+
+ - Use `AC_DEFINE' but have `configure' compute the literal value of
+ `datadir' and others. Many people have wrapped macros to automate
+ this task; for an example, see the macro `AC_DEFINE_DIR' from the
+ Autoconf Macro Archive
+ (http://www.gnu.org/software/autoconf-archive/).
+
+ This solution does not conform to the GNU Coding Standards.
+
+ - Note that all the previous solutions hard wire the absolute name of
+ these directories in the executables, which is not a good
+ property. You may try to compute the names relative to `prefix',
+ and try to find `prefix' at runtime, this way your package is
+ relocatable.
+
+
+File: autoconf.info, Node: Autom4te Cache, Next: Present But Cannot Be Compiled, Prev: Defining Directories, Up: FAQ
+
+20.6 What is `autom4te.cache'?
+==============================
+
+ What is this directory `autom4te.cache'? Can I safely remove it?
+
+ In the GNU Build System, `configure.ac' plays a central role and is
+read by many tools: `autoconf' to create `configure', `autoheader' to
+create `config.h.in', `automake' to create `Makefile.in', `autoscan' to
+check the completeness of `configure.ac', `autoreconf' to check the GNU
+Build System components that are used. To "read `configure.ac'"
+actually means to compile it with M4, which can be a long process for
+complex `configure.ac'.
+
+ This is why all these tools, instead of running directly M4, invoke
+`autom4te' (*note autom4te Invocation::) which, while answering to a
+specific demand, stores additional information in `autom4te.cache' for
+future runs. For instance, if you run `autoconf', behind the scenes,
+`autom4te' also stores information for the other tools, so that when
+you invoke `autoheader' or `automake' etc., reprocessing `configure.ac'
+is not needed. The speed up is frequently 30%, and is increasing with
+the size of `configure.ac'.
+
+ But it is and remains being simply a cache: you can safely remove it.
+
+
+ Can I permanently get rid of it?
+
+ The creation of this cache can be disabled from `~/.autom4te.cfg',
+see *note Customizing autom4te::, for more details. You should be
+aware that disabling the cache slows down the Autoconf test suite by
+40%. The more GNU Build System components are used, the more the cache
+is useful; for instance running `autoreconf -f' on the Core Utilities
+is twice slower without the cache _although `--force' implies that the
+cache is not fully exploited_, and eight times slower than without
+`--force'.
+
+
+File: autoconf.info, Node: Present But Cannot Be Compiled, Next: Expanded Before Required, Prev: Autom4te Cache, Up: FAQ
+
+20.7 Header Present But Cannot Be Compiled
+==========================================
+
+The most important guideline to bear in mind when checking for features
+is to mimic as much as possible the intended use. Unfortunately, old
+versions of `AC_CHECK_HEADER' and `AC_CHECK_HEADERS' failed to follow
+this idea, and called the preprocessor, instead of the compiler, to
+check for headers. As a result, incompatibilities between headers went
+unnoticed during configuration, and maintainers finally had to deal
+with this issue elsewhere.
+
+ The transition began with Autoconf 2.56. As of Autoconf 2.64 both
+checks are performed, and `configure' complains loudly if the compiler
+and the preprocessor do not agree. However, only the compiler result
+is considered.
+
+ Consider the following example:
+
+ $ cat number.h
+ typedef int number;
+ $ cat pi.h
+ const number pi = 3;
+ $ cat configure.ac
+ AC_INIT([Example], [1.0], [bug-example@example.org])
+ AC_CHECK_HEADERS([pi.h])
+ $ autoconf -Wall
+ $ ./configure
+ checking for gcc... gcc
+ checking for C compiler default output file name... a.out
+ checking whether the C compiler works... yes
+ checking whether we are cross compiling... no
+ checking for suffix of executables...
+ checking for suffix of object files... o
+ checking whether we are using the GNU C compiler... yes
+ checking whether gcc accepts -g... yes
+ checking for gcc option to accept ISO C89... none needed
+ checking how to run the C preprocessor... gcc -E
+ checking for grep that handles long lines and -e... grep
+ checking for egrep... grep -E
+ checking for ANSI C header files... yes
+ checking for sys/types.h... yes
+ checking for sys/stat.h... yes
+ checking for stdlib.h... yes
+ checking for string.h... yes
+ checking for memory.h... yes
+ checking for strings.h... yes
+ checking for inttypes.h... yes
+ checking for stdint.h... yes
+ checking for unistd.h... yes
+ checking pi.h usability... no
+ checking pi.h presence... yes
+ configure: WARNING: pi.h: present but cannot be compiled
+ configure: WARNING: pi.h: check for missing prerequisite headers?
+ configure: WARNING: pi.h: see the Autoconf documentation
+ configure: WARNING: pi.h: section "Present But Cannot Be Compiled"
+ configure: WARNING: pi.h: proceeding with the compiler's result
+ configure: WARNING: ## -------------------------------------- ##
+ configure: WARNING: ## Report this to bug-example@example.org ##
+ configure: WARNING: ## -------------------------------------- ##
+ checking for pi.h... yes
+
+The proper way the handle this case is using the fourth argument (*note
+Generic Headers::):
+
+ $ cat configure.ac
+ AC_INIT([Example], [1.0], [bug-example@example.org])
+ AC_CHECK_HEADERS([number.h pi.h], [], [],
+ [[#ifdef HAVE_NUMBER_H
+ # include <number.h>
+ #endif
+ ]])
+ $ autoconf -Wall
+ $ ./configure
+ checking for gcc... gcc
+ checking for C compiler default output... a.out
+ checking whether the C compiler works... yes
+ checking whether we are cross compiling... no
+ checking for suffix of executables...
+ checking for suffix of object files... o
+ checking whether we are using the GNU C compiler... yes
+ checking whether gcc accepts -g... yes
+ checking for gcc option to accept ANSI C... none needed
+ checking for number.h... yes
+ checking for pi.h... yes
+
+ See *note Particular Headers::, for a list of headers with their
+prerequisites.
+
+
+File: autoconf.info, Node: Expanded Before Required, Next: Debugging, Prev: Present But Cannot Be Compiled, Up: FAQ
+
+20.8 Expanded Before Required
+=============================
+
+Older versions of Autoconf silently built files with incorrect ordering
+between dependent macros if an outer macro first expanded, then later
+indirectly required, an inner macro. Starting with Autoconf 2.64, this
+situation no longer generates out-of-order code, but results in
+duplicate output and a syntax warning:
+
+ $ cat configure.ac
+ =>AC_DEFUN([TESTA], [[echo in A
+ =>if test -n "$SEEN_A" ; then echo duplicate ; fi
+ =>SEEN_A=:]])
+ =>AC_DEFUN([TESTB], [AC_REQUIRE([TESTA])[echo in B
+ =>if test -z "$SEEN_A" ; then echo bug ; fi]])
+ =>AC_DEFUN([TESTC], [AC_REQUIRE([TESTB])[echo in C]])
+ =>AC_DEFUN([OUTER], [[echo in OUTER]
+ =>TESTA
+ =>TESTC])
+ =>AC_INIT
+ =>OUTER
+ =>AC_OUTPUT
+ $ autoconf
+ =>configure.ac:11: warning: AC_REQUIRE:
+ => `TESTA' was expanded before it was required
+ =>configure.ac:4: TESTB is expanded from...
+ =>configure.ac:6: TESTC is expanded from...
+ =>configure.ac:7: OUTER is expanded from...
+ =>configure.ac:11: the top level
+
+To avoid this warning, decide what purpose the macro in question serves.
+If it only needs to be expanded once (for example, if it provides
+initialization text used by later macros), then the simplest fix is to
+change the macro to be declared with `AC_DEFUN_ONCE' (*note One-Shot
+Macros::), although this only works in Autoconf 2.64 and newer. A more
+portable fix is to change all instances of direct calls to instead go
+through `AC_REQUIRE' (*note Prerequisite Macros::). If, instead, the
+macro is parameterized by arguments or by the current definition of
+other macros in the m4 environment, then the macro should always be
+directly expanded instead of required.
+
+ For another case study, consider this example trimmed down from an
+actual package. Originally, the package contained shell code and
+multiple macro invocations at the top level of `configure.ac':
+
+ AC_DEFUN([FOO], [AC_COMPILE_IFELSE([...])])
+ foobar=
+ AC_PROG_CC
+ FOO
+
+but that was getting complex, so the author wanted to offload some of
+the text into a new macro in another file included via `aclocal.m4'.
+The nai"ve approach merely wraps the text in a new macro:
+
+ AC_DEFUN([FOO], [AC_COMPILE_IFELSE([...])])
+ AC_DEFUN([BAR], [
+ foobar=
+ AC_PROG_CC
+ FOO
+ ])
+ BAR
+
+With older versions of Autoconf, the setting of `foobar=' occurs before
+the single compiler check, as the author intended. But with Autoconf
+2.64, this issues the "expanded before it was required" warning for
+`AC_PROG_CC', and outputs two copies of the compiler check, one before
+`foobar=', and one after. To understand why this is happening,
+remember that the use of `AC_COMPILE_IFELSE' includes a call to
+`AC_REQUIRE([AC_PROG_CC])' under the hood. According to the documented
+semantics of `AC_REQUIRE', this means that `AC_PROG_CC' _must_ occur
+before the body of the outermost `AC_DEFUN', which in this case is
+`BAR', thus preceding the use of `foobar='. The older versions of
+Autoconf were broken with regards to the rules of `AC_REQUIRE', which
+explains why the code changed from one over to two copies of
+`AC_PROG_CC' when upgrading autoconf. In other words, the author was
+unknowingly relying on a bug exploit to get the desired results, and
+that exploit broke once the bug was fixed.
+
+ So, what recourse does the author have, to restore their intended
+semantics of setting `foobar=' prior to a single compiler check,
+regardless of whether Autoconf 2.63 or 2.64 is used? One idea is to
+remember that only `AC_DEFUN' is impacted by `AC_REQUIRE'; there is
+always the possibility of using the lower-level `m4_define':
+
+ AC_DEFUN([FOO], [AC_COMPILE_IFELSE([...])])
+ m4_define([BAR], [
+ foobar=
+ AC_PROG_CC
+ FOO
+ ])
+ BAR
+
+This works great if everything is in the same file. However, it does
+not help in the case where the author wants to have `aclocal' find the
+definition of `BAR' from its own file, since `aclocal' requires the use
+of `AC_DEFUN'. In this case, a better fix is to recognize that if
+`BAR' also uses `AC_REQUIRE', then there will no longer be direct
+expansion prior to a subsequent require. Then, by creating yet another
+helper macro, the author can once again guarantee a single invocation of
+`AC_PROG_CC', which will still occur after `foobar='. The author can
+also use `AC_BEFORE' to make sure no other macro appearing before `BAR'
+has triggered an unwanted expansion of `AC_PROG_CC'.
+
+ AC_DEFUN([FOO], [AC_COMPILE_IFELSE([...])])
+ AC_DEFUN([BEFORE_CC], [
+ foobar=
+ ])
+ AC_DEFUN([BAR], [
+ AC_BEFORE([$0], [AC_PROG_CC])dnl
+ AC_REQUIRE([BEFORE_CC])dnl
+ AC_REQUIRE([AC_PROG_CC])dnl
+ FOO
+ ])
+ BAR
+
+
+File: autoconf.info, Node: Debugging, Prev: Expanded Before Required, Up: FAQ
+
+20.9 Debugging `configure' scripts
+==================================
+
+While in general, `configure' scripts generated by Autoconf strive to
+be fairly portable to various systems, compilers, shells, and other
+tools, it may still be necessary to debug a failing test, broken script
+or makefile, or fix or override an incomplete, faulty, or erroneous
+test, especially during macro development. Failures can occur at all
+levels, in M4 syntax or semantics, shell script issues, or due to bugs
+in the test or the tools invoked by `configure'. Together with the
+rather arcane error message that `m4' and `make' may produce when their
+input contains syntax errors, this can make debugging rather painful.
+
+ Nevertheless, here is a list of hints and strategies that may help:
+
+ * When `autoconf' fails, common causes for error include:
+
+ * mismatched or unbalanced parentheses or braces (*note
+ Balancing Parentheses::),
+
+ * under- or overquoted macro arguments (*note Autoconf
+ Language::, *note Quoting and Parameters::, *note Quotation
+ and Nested Macros::),
+
+ * spaces between macro name and opening parenthesis (*note
+ Autoconf Language::).
+
+ Typically, it helps to go back to the last working version of the
+ input and compare the differences for each of these errors.
+ Another possibility is to sprinkle pairs of `m4_traceon' and
+ `m4_traceoff' judiciously in the code, either without a parameter
+ or listing some macro names and watch `m4' expand its input
+ verbosely (*note Debugging via autom4te::).
+
+ * Sometimes `autoconf' succeeds but the generated `configure' script
+ has invalid shell syntax. You can detect this case by running
+ `bash -n configure' or `sh -n configure'. If this command fails,
+ the same tips apply, as if `autoconf' had failed.
+
+ * Debugging `configure' script execution may be done by sprinkling
+ pairs of `set -x' and `set +x' into the shell script before and
+ after the region that contains a bug. Running the whole script
+ with `SHELL -vx ./configure 2>&1 | tee LOG-FILE' with a decent
+ SHELL may work, but produces lots of output. Here, it can help to
+ search for markers like `checking for' a particular test in the
+ LOG-FILE.
+
+ * Alternatively, you might use a shell with debugging capabilities
+ like bashdb (http://bashdb.sourceforge.net/).
+
+ * When `configure' tests produce invalid results for your system, it
+ may be necessary to override them:
+
+ * For programs, tools or libraries variables, preprocessor,
+ compiler, or linker flags, it is often sufficient to override
+ them at `make' run time with some care (*note Macros and
+ Submakes::). Since this normally won't cause `configure' to
+ be run again with these changed settings, it may fail if the
+ changed variable would have caused different test results
+ from `configure', so this may work only for simple
+ differences.
+
+ * Most tests which produce their result in a substituted
+ variable allow to override the test by setting the variable
+ on the `configure' command line (*note Compilers and
+ Options::, *note Defining Variables::, *note Particular
+ Systems::).
+
+ * Many tests store their result in a cache variable (*note
+ Caching Results::). This lets you override them either on the
+ `configure' command line as above, or through a primed cache
+ or site file (*note Cache Files::, *note Site Defaults::).
+ The name of a cache variable is documented with a test macro
+ or may be inferred from *note Cache Variable Names::; the
+ precise semantics of undocumented variables are often
+ internal details, subject to change.
+
+ * Alternatively, `configure' may produce invalid results because of
+ uncaught programming errors, in your package or in an upstream
+ library package. For example, when `AC_CHECK_LIB' fails to find a
+ library with a specified function, always check `config.log'. This
+ will reveal the exact error that produced the failing result: the
+ library linked by `AC_CHECK_LIB' probably has a fatal bug.
+
+ Conversely, as macro author, you can make it easier for users of your
+macro:
+
+ * by minimizing dependencies between tests and between test results
+ as far as possible,
+
+ * by using `make' variables to factorize and allow override of
+ settings at `make' run time,
+
+ * by honoring the GNU Coding Standards and not overriding flags
+ reserved for the user except temporarily during `configure' tests,
+
+ * by not requiring users of your macro to use the cache variables.
+ Instead, expose the result of the test via RUN-IF-TRUE and
+ RUN-IF-FALSE parameters. If the result is not a boolean, then
+ provide it through documented shell variables.
+
+
+File: autoconf.info, Node: History, Next: GNU Free Documentation License, Prev: FAQ, Up: Top
+
+21 History of Autoconf
+**********************
+
+_This chapter was written by the original author, David MacKenzie._
+
+ You may be wondering, Why was Autoconf originally written? How did
+it get into its present form? (Why does it look like gorilla spit?) If
+you're not wondering, then this chapter contains no information useful
+to you, and you might as well skip it. If you _are_ wondering, then
+let there be light...
+
+* Menu:
+
+* Genesis:: Prehistory and naming of `configure'
+* Exodus:: The plagues of M4 and Perl
+* Leviticus:: The priestly code of portability arrives
+* Numbers:: Growth and contributors
+* Deuteronomy:: Approaching the promises of easy configuration
+
+
+File: autoconf.info, Node: Genesis, Next: Exodus, Up: History
+
+21.1 Genesis
+============
+
+In June 1991 I was maintaining many of the GNU utilities for the Free
+Software Foundation. As they were ported to more platforms and more
+programs were added, the number of `-D' options that users had to
+select in the makefile (around 20) became burdensome. Especially for
+me--I had to test each new release on a bunch of different systems. So
+I wrote a little shell script to guess some of the correct settings for
+the fileutils package, and released it as part of fileutils 2.0. That
+`configure' script worked well enough that the next month I adapted it
+(by hand) to create similar `configure' scripts for several other GNU
+utilities packages. Brian Berliner also adapted one of my scripts for
+his CVS revision control system.
+
+ Later that summer, I learned that Richard Stallman and Richard Pixley
+were developing similar scripts to use in the GNU compiler tools; so I
+adapted my `configure' scripts to support their evolving interface:
+using the file name `Makefile.in' as the templates; adding `+srcdir',
+the first option (of many); and creating `config.status' files.
+
+
+File: autoconf.info, Node: Exodus, Next: Leviticus, Prev: Genesis, Up: History
+
+21.2 Exodus
+===========
+
+As I got feedback from users, I incorporated many improvements, using
+Emacs to search and replace, cut and paste, similar changes in each of
+the scripts. As I adapted more GNU utilities packages to use
+`configure' scripts, updating them all by hand became impractical.
+Rich Murphey, the maintainer of the GNU graphics utilities, sent me
+mail saying that the `configure' scripts were great, and asking if I
+had a tool for generating them that I could send him. No, I thought,
+but I should! So I started to work out how to generate them. And the
+journey from the slavery of hand-written `configure' scripts to the
+abundance and ease of Autoconf began.
+
+ Cygnus `configure', which was being developed at around that time,
+is table driven; it is meant to deal mainly with a discrete number of
+system types with a small number of mainly unguessable features (such as
+details of the object file format). The automatic configuration system
+that Brian Fox had developed for Bash takes a similar approach. For
+general use, it seems to me a hopeless cause to try to maintain an
+up-to-date database of which features each variant of each operating
+system has. It's easier and more reliable to check for most features on
+the fly--especially on hybrid systems that people have hacked on
+locally or that have patches from vendors installed.
+
+ I considered using an architecture similar to that of Cygnus
+`configure', where there is a single `configure' script that reads
+pieces of `configure.in' when run. But I didn't want to have to
+distribute all of the feature tests with every package, so I settled on
+having a different `configure' made from each `configure.in' by a
+preprocessor. That approach also offered more control and flexibility.
+
+ I looked briefly into using the Metaconfig package, by Larry Wall,
+Harlan Stenn, and Raphael Manfredi, but I decided not to for several
+reasons. The `Configure' scripts it produces are interactive, which I
+find quite inconvenient; I didn't like the ways it checked for some
+features (such as library functions); I didn't know that it was still
+being maintained, and the `Configure' scripts I had seen didn't work on
+many modern systems (such as System V R4 and NeXT); it wasn't flexible
+in what it could do in response to a feature's presence or absence; I
+found it confusing to learn; and it was too big and complex for my
+needs (I didn't realize then how much Autoconf would eventually have to
+grow).
+
+ I considered using Perl to generate my style of `configure' scripts,
+but decided that M4 was better suited to the job of simple textual
+substitutions: it gets in the way less, because output is implicit.
+Plus, everyone already has it. (Initially I didn't rely on the GNU
+extensions to M4.) Also, some of my friends at the University of
+Maryland had recently been putting M4 front ends on several programs,
+including `tvtwm', and I was interested in trying out a new language.
+
+
+File: autoconf.info, Node: Leviticus, Next: Numbers, Prev: Exodus, Up: History
+
+21.3 Leviticus
+==============
+
+Since my `configure' scripts determine the system's capabilities
+automatically, with no interactive user intervention, I decided to call
+the program that generates them Autoconfig. But with a version number
+tacked on, that name would be too long for old Unix file systems, so I
+shortened it to Autoconf.
+
+ In the fall of 1991 I called together a group of fellow questers
+after the Holy Grail of portability (er, that is, alpha testers) to
+give me feedback as I encapsulated pieces of my handwritten scripts in
+M4 macros and continued to add features and improve the techniques used
+in the checks. Prominent among the testers were Franc,ois Pinard, who
+came up with the idea of making an Autoconf shell script to run M4 and
+check for unresolved macro calls; Richard Pixley, who suggested running
+the compiler instead of searching the file system to find include files
+and symbols, for more accurate results; Karl Berry, who got Autoconf to
+configure TeX and added the macro index to the documentation; and Ian
+Lance Taylor, who added support for creating a C header file as an
+alternative to putting `-D' options in a makefile, so he could use
+Autoconf for his UUCP package. The alpha testers cheerfully adjusted
+their files again and again as the names and calling conventions of the
+Autoconf macros changed from release to release. They all contributed
+many specific checks, great ideas, and bug fixes.
+
+
+File: autoconf.info, Node: Numbers, Next: Deuteronomy, Prev: Leviticus, Up: History
+
+21.4 Numbers
+============
+
+In July 1992, after months of alpha testing, I released Autoconf 1.0,
+and converted many GNU packages to use it. I was surprised by how
+positive the reaction to it was. More people started using it than I
+could keep track of, including people working on software that wasn't
+part of the GNU Project (such as TCL, FSP, and Kerberos V5). Autoconf
+continued to improve rapidly, as many people using the `configure'
+scripts reported problems they encountered.
+
+ Autoconf turned out to be a good torture test for M4 implementations.
+Unix M4 started to dump core because of the length of the macros that
+Autoconf defined, and several bugs showed up in GNU M4 as well.
+Eventually, we realized that we needed to use some features that only
+GNU M4 has. 4.3BSD M4, in particular, has an impoverished set of
+builtin macros; the System V version is better, but still doesn't
+provide everything we need.
+
+ More development occurred as people put Autoconf under more stresses
+(and to uses I hadn't anticipated). Karl Berry added checks for X11.
+david zuhn contributed C++ support. Franc,ois Pinard made it diagnose
+invalid arguments. Jim Blandy bravely coerced it into configuring GNU
+Emacs, laying the groundwork for several later improvements. Roland
+McGrath got it to configure the GNU C Library, wrote the `autoheader'
+script to automate the creation of C header file templates, and added a
+`--verbose' option to `configure'. Noah Friedman added the
+`--autoconf-dir' option and `AC_MACRODIR' environment variable. (He
+also coined the term "autoconfiscate" to mean "adapt a software package
+to use Autoconf".) Roland and Noah improved the quoting protection in
+`AC_DEFINE' and fixed many bugs, especially when I got sick of dealing
+with portability problems from February through June, 1993.
+
+
+File: autoconf.info, Node: Deuteronomy, Prev: Numbers, Up: History
+
+21.5 Deuteronomy
+================
+
+A long wish list for major features had accumulated, and the effect of
+several years of patching by various people had left some residual
+cruft. In April 1994, while working for Cygnus Support, I began a major
+revision of Autoconf. I added most of the features of the Cygnus
+`configure' that Autoconf had lacked, largely by adapting the relevant
+parts of Cygnus `configure' with the help of david zuhn and Ken
+Raeburn. These features include support for using `config.sub',
+`config.guess', `--host', and `--target'; making links to files; and
+running `configure' scripts in subdirectories. Adding these features
+enabled Ken to convert GNU `as', and Rob Savoye to convert DejaGNU, to
+using Autoconf.
+
+ I added more features in response to other peoples' requests. Many
+people had asked for `configure' scripts to share the results of the
+checks between runs, because (particularly when configuring a large
+source tree, like Cygnus does) they were frustratingly slow. Mike
+Haertel suggested adding site-specific initialization scripts. People
+distributing software that had to unpack on MS-DOS asked for a way to
+override the `.in' extension on the file names, which produced file
+names like `config.h.in' containing two dots. Jim Avera did an
+extensive examination of the problems with quoting in `AC_DEFINE' and
+`AC_SUBST'; his insights led to significant improvements. Richard
+Stallman asked that compiler output be sent to `config.log' instead of
+`/dev/null', to help people debug the Emacs `configure' script.
+
+ I made some other changes because of my dissatisfaction with the
+quality of the program. I made the messages showing results of the
+checks less ambiguous, always printing a result. I regularized the
+names of the macros and cleaned up coding style inconsistencies. I
+added some auxiliary utilities that I had developed to help convert
+source code packages to use Autoconf. With the help of Franc,ois
+Pinard, I made the macros not interrupt each others' messages. (That
+feature revealed some performance bottlenecks in GNU M4, which he
+hastily corrected!) I reorganized the documentation around problems
+people want to solve. And I began a test suite, because experience had
+shown that Autoconf has a pronounced tendency to regress when we change
+it.
+
+ Again, several alpha testers gave invaluable feedback, especially
+Franc,ois Pinard, Jim Meyering, Karl Berry, Rob Savoye, Ken Raeburn,
+and Mark Eichin.
+
+ Finally, version 2.0 was ready. And there was much rejoicing. (And
+I have free time again. I think. Yeah, right.)
+
+
+File: autoconf.info, Node: GNU Free Documentation License, Next: Indices, Prev: History, Up: Top
+
+Appendix A GNU Free Documentation License
+*****************************************
+
+ Version 1.3, 3 November 2008
+
+ Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+ `http://fsf.org/'
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ 0. PREAMBLE
+
+ The purpose of this License is to make a manual, textbook, or other
+ functional and useful document "free" in the sense of freedom: to
+ assure everyone the effective freedom to copy and redistribute it,
+ with or without modifying it, either commercially or
+ noncommercially. Secondarily, this License preserves for the
+ author and publisher a way to get credit for their work, while not
+ being considered responsible for modifications made by others.
+
+ This License is a kind of "copyleft", which means that derivative
+ works of the document must themselves be free in the same sense.
+ It complements the GNU General Public License, which is a copyleft
+ license designed for free software.
+
+ We have designed this License in order to use it for manuals for
+ free software, because free software needs free documentation: a
+ free program should come with manuals providing the same freedoms
+ that the software does. But this License is not limited to
+ software manuals; it can be used for any textual work, regardless
+ of subject matter or whether it is published as a printed book.
+ We recommend this License principally for works whose purpose is
+ instruction or reference.
+
+ 1. APPLICABILITY AND DEFINITIONS
+
+ This License applies to any manual or other work, in any medium,
+ that contains a notice placed by the copyright holder saying it
+ can be distributed under the terms of this License. Such a notice
+ grants a world-wide, royalty-free license, unlimited in duration,
+ to use that work under the conditions stated herein. The
+ "Document", below, refers to any such manual or work. Any member
+ of the public is a licensee, and is addressed as "you". You
+ accept the license if you copy, modify or distribute the work in a
+ way requiring permission under copyright law.
+
+ A "Modified Version" of the Document means any work containing the
+ Document or a portion of it, either copied verbatim, or with
+ modifications and/or translated into another language.
+
+ A "Secondary Section" is a named appendix or a front-matter section
+ of the Document that deals exclusively with the relationship of the
+ publishers or authors of the Document to the Document's overall
+ subject (or to related matters) and contains nothing that could
+ fall directly within that overall subject. (Thus, if the Document
+ is in part a textbook of mathematics, a Secondary Section may not
+ explain any mathematics.) The relationship could be a matter of
+ historical connection with the subject or with related matters, or
+ of legal, commercial, philosophical, ethical or political position
+ regarding them.
+
+ The "Invariant Sections" are certain Secondary Sections whose
+ titles are designated, as being those of Invariant Sections, in
+ the notice that says that the Document is released under this
+ License. If a section does not fit the above definition of
+ Secondary then it is not allowed to be designated as Invariant.
+ The Document may contain zero Invariant Sections. If the Document
+ does not identify any Invariant Sections then there are none.
+
+ The "Cover Texts" are certain short passages of text that are
+ listed, as Front-Cover Texts or Back-Cover Texts, in the notice
+ that says that the Document is released under this License. A
+ Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+ be at most 25 words.
+
+ A "Transparent" copy of the Document means a machine-readable copy,
+ represented in a format whose specification is available to the
+ general public, that is suitable for revising the document
+ straightforwardly with generic text editors or (for images
+ composed of pixels) generic paint programs or (for drawings) some
+ widely available drawing editor, and that is suitable for input to
+ text formatters or for automatic translation to a variety of
+ formats suitable for input to text formatters. A copy made in an
+ otherwise Transparent file format whose markup, or absence of
+ markup, has been arranged to thwart or discourage subsequent
+ modification by readers is not Transparent. An image format is
+ not Transparent if used for any substantial amount of text. A
+ copy that is not "Transparent" is called "Opaque".
+
+ Examples of suitable formats for Transparent copies include plain
+ ASCII without markup, Texinfo input format, LaTeX input format,
+ SGML or XML using a publicly available DTD, and
+ standard-conforming simple HTML, PostScript or PDF designed for
+ human modification. Examples of transparent image formats include
+ PNG, XCF and JPG. Opaque formats include proprietary formats that
+ can be read and edited only by proprietary word processors, SGML or
+ XML for which the DTD and/or processing tools are not generally
+ available, and the machine-generated HTML, PostScript or PDF
+ produced by some word processors for output purposes only.
+
+ The "Title Page" means, for a printed book, the title page itself,
+ plus such following pages as are needed to hold, legibly, the
+ material this License requires to appear in the title page. For
+ works in formats which do not have any title page as such, "Title
+ Page" means the text near the most prominent appearance of the
+ work's title, preceding the beginning of the body of the text.
+
+ The "publisher" means any person or entity that distributes copies
+ of the Document to the public.
+
+ A section "Entitled XYZ" means a named subunit of the Document
+ whose title either is precisely XYZ or contains XYZ in parentheses
+ following text that translates XYZ in another language. (Here XYZ
+ stands for a specific section name mentioned below, such as
+ "Acknowledgements", "Dedications", "Endorsements", or "History".)
+ To "Preserve the Title" of such a section when you modify the
+ Document means that it remains a section "Entitled XYZ" according
+ to this definition.
+
+ The Document may include Warranty Disclaimers next to the notice
+ which states that this License applies to the Document. These
+ Warranty Disclaimers are considered to be included by reference in
+ this License, but only as regards disclaiming warranties: any other
+ implication that these Warranty Disclaimers may have is void and
+ has no effect on the meaning of this License.
+
+ 2. VERBATIM COPYING
+
+ You may copy and distribute the Document in any medium, either
+ commercially or noncommercially, provided that this License, the
+ copyright notices, and the license notice saying this License
+ applies to the Document are reproduced in all copies, and that you
+ add no other conditions whatsoever to those of this License. You
+ may not use technical measures to obstruct or control the reading
+ or further copying of the copies you make or distribute. However,
+ you may accept compensation in exchange for copies. If you
+ distribute a large enough number of copies you must also follow
+ the conditions in section 3.
+
+ You may also lend copies, under the same conditions stated above,
+ and you may publicly display copies.
+
+ 3. COPYING IN QUANTITY
+
+ If you publish printed copies (or copies in media that commonly
+ have printed covers) of the Document, numbering more than 100, and
+ the Document's license notice requires Cover Texts, you must
+ enclose the copies in covers that carry, clearly and legibly, all
+ these Cover Texts: Front-Cover Texts on the front cover, and
+ Back-Cover Texts on the back cover. Both covers must also clearly
+ and legibly identify you as the publisher of these copies. The
+ front cover must present the full title with all words of the
+ title equally prominent and visible. You may add other material
+ on the covers in addition. Copying with changes limited to the
+ covers, as long as they preserve the title of the Document and
+ satisfy these conditions, can be treated as verbatim copying in
+ other respects.
+
+ If the required texts for either cover are too voluminous to fit
+ legibly, you should put the first ones listed (as many as fit
+ reasonably) on the actual cover, and continue the rest onto
+ adjacent pages.
+
+ If you publish or distribute Opaque copies of the Document
+ numbering more than 100, you must either include a
+ machine-readable Transparent copy along with each Opaque copy, or
+ state in or with each Opaque copy a computer-network location from
+ which the general network-using public has access to download
+ using public-standard network protocols a complete Transparent
+ copy of the Document, free of added material. If you use the
+ latter option, you must take reasonably prudent steps, when you
+ begin distribution of Opaque copies in quantity, to ensure that
+ this Transparent copy will remain thus accessible at the stated
+ location until at least one year after the last time you
+ distribute an Opaque copy (directly or through your agents or
+ retailers) of that edition to the public.
+
+ It is requested, but not required, that you contact the authors of
+ the Document well before redistributing any large number of
+ copies, to give them a chance to provide you with an updated
+ version of the Document.
+
+ 4. MODIFICATIONS
+
+ You may copy and distribute a Modified Version of the Document
+ under the conditions of sections 2 and 3 above, provided that you
+ release the Modified Version under precisely this License, with
+ the Modified Version filling the role of the Document, thus
+ licensing distribution and modification of the Modified Version to
+ whoever possesses a copy of it. In addition, you must do these
+ things in the Modified Version:
+
+ A. Use in the Title Page (and on the covers, if any) a title
+ distinct from that of the Document, and from those of
+ previous versions (which should, if there were any, be listed
+ in the History section of the Document). You may use the
+ same title as a previous version if the original publisher of
+ that version gives permission.
+
+ B. List on the Title Page, as authors, one or more persons or
+ entities responsible for authorship of the modifications in
+ the Modified Version, together with at least five of the
+ principal authors of the Document (all of its principal
+ authors, if it has fewer than five), unless they release you
+ from this requirement.
+
+ C. State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+
+ D. Preserve all the copyright notices of the Document.
+
+ E. Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+
+ F. Include, immediately after the copyright notices, a license
+ notice giving the public permission to use the Modified
+ Version under the terms of this License, in the form shown in
+ the Addendum below.
+
+ G. Preserve in that license notice the full lists of Invariant
+ Sections and required Cover Texts given in the Document's
+ license notice.
+
+ H. Include an unaltered copy of this License.
+
+ I. Preserve the section Entitled "History", Preserve its Title,
+ and add to it an item stating at least the title, year, new
+ authors, and publisher of the Modified Version as given on
+ the Title Page. If there is no section Entitled "History" in
+ the Document, create one stating the title, year, authors,
+ and publisher of the Document as given on its Title Page,
+ then add an item describing the Modified Version as stated in
+ the previous sentence.
+
+ J. Preserve the network location, if any, given in the Document
+ for public access to a Transparent copy of the Document, and
+ likewise the network locations given in the Document for
+ previous versions it was based on. These may be placed in
+ the "History" section. You may omit a network location for a
+ work that was published at least four years before the
+ Document itself, or if the original publisher of the version
+ it refers to gives permission.
+
+ K. For any section Entitled "Acknowledgements" or "Dedications",
+ Preserve the Title of the section, and preserve in the
+ section all the substance and tone of each of the contributor
+ acknowledgements and/or dedications given therein.
+
+ L. Preserve all the Invariant Sections of the Document,
+ unaltered in their text and in their titles. Section numbers
+ or the equivalent are not considered part of the section
+ titles.
+
+ M. Delete any section Entitled "Endorsements". Such a section
+ may not be included in the Modified Version.
+
+ N. Do not retitle any existing section to be Entitled
+ "Endorsements" or to conflict in title with any Invariant
+ Section.
+
+ O. Preserve any Warranty Disclaimers.
+
+ If the Modified Version includes new front-matter sections or
+ appendices that qualify as Secondary Sections and contain no
+ material copied from the Document, you may at your option
+ designate some or all of these sections as invariant. To do this,
+ add their titles to the list of Invariant Sections in the Modified
+ Version's license notice. These titles must be distinct from any
+ other section titles.
+
+ You may add a section Entitled "Endorsements", provided it contains
+ nothing but endorsements of your Modified Version by various
+ parties--for example, statements of peer review or that the text
+ has been approved by an organization as the authoritative
+ definition of a standard.
+
+ You may add a passage of up to five words as a Front-Cover Text,
+ and a passage of up to 25 words as a Back-Cover Text, to the end
+ of the list of Cover Texts in the Modified Version. Only one
+ passage of Front-Cover Text and one of Back-Cover Text may be
+ added by (or through arrangements made by) any one entity. If the
+ Document already includes a cover text for the same cover,
+ previously added by you or by arrangement made by the same entity
+ you are acting on behalf of, you may not add another; but you may
+ replace the old one, on explicit permission from the previous
+ publisher that added the old one.
+
+ The author(s) and publisher(s) of the Document do not by this
+ License give permission to use their names for publicity for or to
+ assert or imply endorsement of any Modified Version.
+
+ 5. COMBINING DOCUMENTS
+
+ You may combine the Document with other documents released under
+ this License, under the terms defined in section 4 above for
+ modified versions, provided that you include in the combination
+ all of the Invariant Sections of all of the original documents,
+ unmodified, and list them all as Invariant Sections of your
+ combined work in its license notice, and that you preserve all
+ their Warranty Disclaimers.
+
+ The combined work need only contain one copy of this License, and
+ multiple identical Invariant Sections may be replaced with a single
+ copy. If there are multiple Invariant Sections with the same name
+ but different contents, make the title of each such section unique
+ by adding at the end of it, in parentheses, the name of the
+ original author or publisher of that section if known, or else a
+ unique number. Make the same adjustment to the section titles in
+ the list of Invariant Sections in the license notice of the
+ combined work.
+
+ In the combination, you must combine any sections Entitled
+ "History" in the various original documents, forming one section
+ Entitled "History"; likewise combine any sections Entitled
+ "Acknowledgements", and any sections Entitled "Dedications". You
+ must delete all sections Entitled "Endorsements."
+
+ 6. COLLECTIONS OF DOCUMENTS
+
+ You may make a collection consisting of the Document and other
+ documents released under this License, and replace the individual
+ copies of this License in the various documents with a single copy
+ that is included in the collection, provided that you follow the
+ rules of this License for verbatim copying of each of the
+ documents in all other respects.
+
+ You may extract a single document from such a collection, and
+ distribute it individually under this License, provided you insert
+ a copy of this License into the extracted document, and follow
+ this License in all other respects regarding verbatim copying of
+ that document.
+
+ 7. AGGREGATION WITH INDEPENDENT WORKS
+
+ A compilation of the Document or its derivatives with other
+ separate and independent documents or works, in or on a volume of
+ a storage or distribution medium, is called an "aggregate" if the
+ copyright resulting from the compilation is not used to limit the
+ legal rights of the compilation's users beyond what the individual
+ works permit. When the Document is included in an aggregate, this
+ License does not apply to the other works in the aggregate which
+ are not themselves derivative works of the Document.
+
+ If the Cover Text requirement of section 3 is applicable to these
+ copies of the Document, then if the Document is less than one half
+ of the entire aggregate, the Document's Cover Texts may be placed
+ on covers that bracket the Document within the aggregate, or the
+ electronic equivalent of covers if the Document is in electronic
+ form. Otherwise they must appear on printed covers that bracket
+ the whole aggregate.
+
+ 8. TRANSLATION
+
+ Translation is considered a kind of modification, so you may
+ distribute translations of the Document under the terms of section
+ 4. Replacing Invariant Sections with translations requires special
+ permission from their copyright holders, but you may include
+ translations of some or all Invariant Sections in addition to the
+ original versions of these Invariant Sections. You may include a
+ translation of this License, and all the license notices in the
+ Document, and any Warranty Disclaimers, provided that you also
+ include the original English version of this License and the
+ original versions of those notices and disclaimers. In case of a
+ disagreement between the translation and the original version of
+ this License or a notice or disclaimer, the original version will
+ prevail.
+
+ If a section in the Document is Entitled "Acknowledgements",
+ "Dedications", or "History", the requirement (section 4) to
+ Preserve its Title (section 1) will typically require changing the
+ actual title.
+
+ 9. TERMINATION
+
+ You may not copy, modify, sublicense, or distribute the Document
+ except as expressly provided under this License. Any attempt
+ otherwise to copy, modify, sublicense, or distribute it is void,
+ and will automatically terminate your rights under this License.
+
+ However, if you cease all violation of this License, then your
+ license from a particular copyright holder is reinstated (a)
+ provisionally, unless and until the copyright holder explicitly
+ and finally terminates your license, and (b) permanently, if the
+ copyright holder fails to notify you of the violation by some
+ reasonable means prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+ reinstated permanently if the copyright holder notifies you of the
+ violation by some reasonable means, this is the first time you have
+ received notice of violation of this License (for any work) from
+ that copyright holder, and you cure the violation prior to 30 days
+ after your receipt of the notice.
+
+ Termination of your rights under this section does not terminate
+ the licenses of parties who have received copies or rights from
+ you under this License. If your rights have been terminated and
+ not permanently reinstated, receipt of a copy of some or all of
+ the same material does not give you any rights to use it.
+
+ 10. FUTURE REVISIONS OF THIS LICENSE
+
+ The Free Software Foundation may publish new, revised versions of
+ the GNU Free Documentation License from time to time. Such new
+ versions will be similar in spirit to the present version, but may
+ differ in detail to address new problems or concerns. See
+ `http://www.gnu.org/copyleft/'.
+
+ Each version of the License is given a distinguishing version
+ number. If the Document specifies that a particular numbered
+ version of this License "or any later version" applies to it, you
+ have the option of following the terms and conditions either of
+ that specified version or of any later version that has been
+ published (not as a draft) by the Free Software Foundation. If
+ the Document does not specify a version number of this License,
+ you may choose any version ever published (not as a draft) by the
+ Free Software Foundation. If the Document specifies that a proxy
+ can decide which future versions of this License can be used, that
+ proxy's public statement of acceptance of a version permanently
+ authorizes you to choose that version for the Document.
+
+ 11. RELICENSING
+
+ "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
+ World Wide Web server that publishes copyrightable works and also
+ provides prominent facilities for anybody to edit those works. A
+ public wiki that anybody can edit is an example of such a server.
+ A "Massive Multiauthor Collaboration" (or "MMC") contained in the
+ site means any set of copyrightable works thus published on the MMC
+ site.
+
+ "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
+ license published by Creative Commons Corporation, a not-for-profit
+ corporation with a principal place of business in San Francisco,
+ California, as well as future copyleft versions of that license
+ published by that same organization.
+
+ "Incorporate" means to publish or republish a Document, in whole or
+ in part, as part of another Document.
+
+ An MMC is "eligible for relicensing" if it is licensed under this
+ License, and if all works that were first published under this
+ License somewhere other than this MMC, and subsequently
+ incorporated in whole or in part into the MMC, (1) had no cover
+ texts or invariant sections, and (2) were thus incorporated prior
+ to November 1, 2008.
+
+ The operator of an MMC Site may republish an MMC contained in the
+ site under CC-BY-SA on the same site at any time before August 1,
+ 2009, provided the MMC is eligible for relicensing.
+
+
+ADDENDUM: How to use this License for your documents
+====================================================
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
+ Copyright (C) YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.3
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+ Texts. A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+
+ If you have Invariant Sections, Front-Cover Texts and Back-Cover
+Texts, replace the "with...Texts." line with this:
+
+ with the Invariant Sections being LIST THEIR TITLES, with
+ the Front-Cover Texts being LIST, and with the Back-Cover Texts
+ being LIST.
+
+ If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+ If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License, to
+permit their use in free software.
+
+
+File: autoconf.info, Node: Indices, Prev: GNU Free Documentation License, Up: Top
+
+Appendix B Indices
+******************
+
+* Menu:
+
+* Environment Variable Index:: Index of environment variables used
+* Output Variable Index:: Index of variables set in output files
+* Preprocessor Symbol Index:: Index of C preprocessor symbols defined
+* Cache Variable Index:: Index of documented cache variables
+* Autoconf Macro Index:: Index of Autoconf macros
+* M4 Macro Index:: Index of M4, M4sugar, and M4sh macros
+* Autotest Macro Index:: Index of Autotest macros
+* Program & Function Index:: Index of those with portability problems
+* Concept Index:: General index
+
+
+File: autoconf.info, Node: Environment Variable Index, Next: Output Variable Index, Up: Indices
+
+B.1 Environment Variable Index
+==============================
+
+This is an alphabetical list of the environment variables that might
+influence Autoconf checks.
+
+
+* Menu:
+
+* _: Special Shell Variables.
+ (line 36)
+* BIN_SH: Special Shell Variables.
+ (line 40)
+* CC: C Compiler. (line 61)
+* CDPATH: Special Shell Variables.
+ (line 44)
+* CFLAGS <1>: C Compiler. (line 61)
+* CFLAGS: Preset Output Variables.
+ (line 23)
+* CLICOLOR_FORCE: Special Shell Variables.
+ (line 67)
+* CONFIG_COMMANDS: Obsolete config.status Use.
+ (line 11)
+* CONFIG_FILES: Obsolete config.status Use.
+ (line 15)
+* CONFIG_HEADERS: Obsolete config.status Use.
+ (line 20)
+* CONFIG_LINKS: Obsolete config.status Use.
+ (line 25)
+* CONFIG_SHELL: config.status Invocation.
+ (line 102)
+* CONFIG_SITE: Site Defaults. (line 10)
+* CONFIG_STATUS: config.status Invocation.
+ (line 108)
+* CPP: C Compiler. (line 113)
+* CPPFLAGS: Preset Output Variables.
+ (line 72)
+* CXX: C++ Compiler. (line 7)
+* CXXCPP: C++ Compiler. (line 35)
+* CXXFLAGS <1>: C++ Compiler. (line 7)
+* CXXFLAGS: Preset Output Variables.
+ (line 94)
+* CYGWIN: Obsolete Macros. (line 124)
+* DUALCASE: Special Shell Variables.
+ (line 74)
+* ENV: Special Shell Variables.
+ (line 84)
+* ERL: Erlang Compiler and Interpreter.
+ (line 29)
+* ERLC: Erlang Compiler and Interpreter.
+ (line 10)
+* ERLCFLAGS <1>: Erlang Compiler and Interpreter.
+ (line 10)
+* ERLCFLAGS: Preset Output Variables.
+ (line 120)
+* F77: Fortran Compiler. (line 19)
+* FC: Fortran Compiler. (line 44)
+* FCFLAGS <1>: Fortran Compiler. (line 44)
+* FCFLAGS: Preset Output Variables.
+ (line 126)
+* FFLAGS <1>: Fortran Compiler. (line 19)
+* FFLAGS: Preset Output Variables.
+ (line 133)
+* FPATH: Special Shell Variables.
+ (line 101)
+* GOFLAGS: Preset Output Variables.
+ (line 170)
+* GREP_OPTIONS: Special Shell Variables.
+ (line 108)
+* IFS: Special Shell Variables.
+ (line 116)
+* LANG: Special Shell Variables.
+ (line 160)
+* LANGUAGE: Special Shell Variables.
+ (line 167)
+* LC_ADDRESS: Special Shell Variables.
+ (line 177)
+* LC_ALL <1>: Special Shell Variables.
+ (line 160)
+* LC_ALL: Initialization Macros.
+ (line 14)
+* LC_COLLATE: Special Shell Variables.
+ (line 160)
+* LC_CTYPE: Special Shell Variables.
+ (line 160)
+* LC_IDENTIFICATION: Special Shell Variables.
+ (line 177)
+* LC_MEASUREMENT: Special Shell Variables.
+ (line 177)
+* LC_MESSAGES: Special Shell Variables.
+ (line 160)
+* LC_MONETARY: Special Shell Variables.
+ (line 160)
+* LC_NAME: Special Shell Variables.
+ (line 177)
+* LC_NUMERIC: Special Shell Variables.
+ (line 160)
+* LC_PAPER: Special Shell Variables.
+ (line 177)
+* LC_TELEPHONE: Special Shell Variables.
+ (line 177)
+* LC_TIME: Special Shell Variables.
+ (line 160)
+* LDFLAGS: Preset Output Variables.
+ (line 140)
+* LIBS: Preset Output Variables.
+ (line 154)
+* LINENO <1>: Special Shell Variables.
+ (line 182)
+* LINENO: Initialization Macros.
+ (line 67)
+* M4: autom4te Invocation. (line 10)
+* MAIL: Special Shell Variables.
+ (line 84)
+* MAILPATH: Special Shell Variables.
+ (line 84)
+* NULLCMD: Special Shell Variables.
+ (line 311)
+* OBJC: Objective C Compiler.
+ (line 7)
+* OBJCFLAGS <1>: Objective C Compiler.
+ (line 7)
+* OBJCFLAGS: Preset Output Variables.
+ (line 162)
+* OBJCPP: Objective C Compiler.
+ (line 26)
+* OBJCXX: Objective C++ Compiler.
+ (line 7)
+* OBJCXXCPP: Objective C++ Compiler.
+ (line 27)
+* OBJCXXFLAGS <1>: Objective C++ Compiler.
+ (line 7)
+* OBJCXXFLAGS: Preset Output Variables.
+ (line 166)
+* options: Special Shell Variables.
+ (line 318)
+* PATH_SEPARATOR: Special Shell Variables.
+ (line 322)
+* POSIXLY_CORRECT: Special Shell Variables.
+ (line 331)
+* PS1: Special Shell Variables.
+ (line 84)
+* PS2: Special Shell Variables.
+ (line 84)
+* PS4: Special Shell Variables.
+ (line 84)
+* PWD: Special Shell Variables.
+ (line 346)
+* RANDOM: Special Shell Variables.
+ (line 355)
+* SHELL: Initialization Macros.
+ (line 14)
+* SIMPLE_BACKUP_SUFFIX: autoupdate Invocation.
+ (line 16)
+* status: Special Shell Variables.
+ (line 363)
+* TMPDIR: Initialization Macros.
+ (line 77)
+* WARNINGS <1>: autom4te Invocation. (line 58)
+* WARNINGS <2>: autoheader Invocation.
+ (line 83)
+* WARNINGS <3>: autoreconf Invocation.
+ (line 97)
+* WARNINGS: autoconf Invocation. (line 62)
+* XMKMF: System Services. (line 10)
+* YACC: Particular Programs. (line 200)
+* YFLAGS: Particular Programs. (line 200)
+
+
+File: autoconf.info, Node: Output Variable Index, Next: Preprocessor Symbol Index, Prev: Environment Variable Index, Up: Indices
+
+B.2 Output Variable Index
+=========================
+
+This is an alphabetical list of the variables that Autoconf can
+substitute into files that it creates, typically one or more makefiles.
+*Note Setting Output Variables::, for more information on how this is
+done.
+
+
+* Menu:
+
+* abs_builddir: Preset Output Variables.
+ (line 177)
+* abs_srcdir: Preset Output Variables.
+ (line 199)
+* abs_top_builddir: Preset Output Variables.
+ (line 192)
+* abs_top_srcdir: Preset Output Variables.
+ (line 206)
+* ac_empty: Fortran Compiler. (line 465)
+* ALLOCA: Particular Functions.
+ (line 10)
+* AWK: Particular Programs. (line 10)
+* bindir: Installation Directory Variables.
+ (line 15)
+* build: Canonicalizing. (line 26)
+* build_alias: Canonicalizing. (line 9)
+* build_cpu: Canonicalizing. (line 26)
+* build_os: Canonicalizing. (line 26)
+* build_vendor: Canonicalizing. (line 26)
+* builddir: Preset Output Variables.
+ (line 174)
+* CC <1>: System Services. (line 49)
+* CC: C Compiler. (line 61)
+* CFLAGS <1>: C Compiler. (line 61)
+* CFLAGS: Preset Output Variables.
+ (line 23)
+* configure_input: Preset Output Variables.
+ (line 58)
+* CPP: C Compiler. (line 113)
+* CPPFLAGS: Preset Output Variables.
+ (line 72)
+* cross_compiling: Runtime. (line 71)
+* CXX: C++ Compiler. (line 7)
+* CXXCPP: C++ Compiler. (line 35)
+* CXXFLAGS <1>: C++ Compiler. (line 7)
+* CXXFLAGS: Preset Output Variables.
+ (line 94)
+* datadir: Installation Directory Variables.
+ (line 18)
+* datarootdir: Installation Directory Variables.
+ (line 22)
+* DEFS: Preset Output Variables.
+ (line 98)
+* docdir: Installation Directory Variables.
+ (line 26)
+* dvidir: Installation Directory Variables.
+ (line 30)
+* ECHO_C: Preset Output Variables.
+ (line 108)
+* ECHO_N: Preset Output Variables.
+ (line 108)
+* ECHO_T: Preset Output Variables.
+ (line 108)
+* EGREP: Particular Programs. (line 29)
+* ERL <1>: Running the Compiler.
+ (line 30)
+* ERL <2>: Language Choice. (line 40)
+* ERL: Erlang Compiler and Interpreter.
+ (line 29)
+* ERLANG_ERTS_VER: Erlang Libraries. (line 12)
+* ERLANG_INSTALL_LIB_DIR <1>: Erlang Libraries. (line 86)
+* ERLANG_INSTALL_LIB_DIR: Installation Directory Variables.
+ (line 201)
+* ERLANG_INSTALL_LIB_DIR_LIBRARY <1>: Erlang Libraries. (line 93)
+* ERLANG_INSTALL_LIB_DIR_LIBRARY: Installation Directory Variables.
+ (line 206)
+* ERLANG_LIB_DIR: Erlang Libraries. (line 28)
+* ERLANG_LIB_DIR_LIBRARY: Erlang Libraries. (line 36)
+* ERLANG_LIB_VER_LIBRARY: Erlang Libraries. (line 36)
+* ERLANG_ROOT_DIR: Erlang Libraries. (line 22)
+* ERLC <1>: Language Choice. (line 40)
+* ERLC: Erlang Compiler and Interpreter.
+ (line 10)
+* ERLCFLAGS <1>: Language Choice. (line 40)
+* ERLCFLAGS <2>: Erlang Compiler and Interpreter.
+ (line 10)
+* ERLCFLAGS: Preset Output Variables.
+ (line 120)
+* exec_prefix: Installation Directory Variables.
+ (line 33)
+* EXEEXT <1>: Obsolete Macros. (line 178)
+* EXEEXT: Compilers and Preprocessors.
+ (line 6)
+* F77: Fortran Compiler. (line 19)
+* FC: Fortran Compiler. (line 44)
+* FC_MODEXT: Fortran Compiler. (line 438)
+* FC_MODINC: Fortran Compiler. (line 465)
+* FC_MODOUT: Fortran Compiler. (line 501)
+* FCFLAGS <1>: Fortran Compiler. (line 44)
+* FCFLAGS: Preset Output Variables.
+ (line 126)
+* FCLIBS: Fortran Compiler. (line 92)
+* FFLAGS <1>: Fortran Compiler. (line 19)
+* FFLAGS: Preset Output Variables.
+ (line 133)
+* FGREP: Particular Programs. (line 36)
+* FLIBS: Fortran Compiler. (line 92)
+* GETGROUPS_LIBS: Particular Functions.
+ (line 155)
+* GETLOADAVG_LIBS: Particular Functions.
+ (line 161)
+* GOFLAGS: Preset Output Variables.
+ (line 170)
+* GREP: Particular Programs. (line 20)
+* host: Canonicalizing. (line 34)
+* host_alias: Canonicalizing. (line 9)
+* host_cpu: Canonicalizing. (line 34)
+* host_os: Canonicalizing. (line 34)
+* host_vendor: Canonicalizing. (line 34)
+* htmldir: Installation Directory Variables.
+ (line 40)
+* includedir: Installation Directory Variables.
+ (line 43)
+* infodir: Installation Directory Variables.
+ (line 46)
+* INSTALL: Particular Programs. (line 43)
+* INSTALL_DATA: Particular Programs. (line 43)
+* INSTALL_PROGRAM: Particular Programs. (line 43)
+* INSTALL_SCRIPT: Particular Programs. (line 43)
+* KMEM_GROUP: Particular Functions.
+ (line 161)
+* LDFLAGS: Preset Output Variables.
+ (line 140)
+* LEX: Particular Programs. (line 114)
+* LEX_OUTPUT_ROOT: Particular Programs. (line 114)
+* LEXLIB: Particular Programs. (line 114)
+* libdir: Installation Directory Variables.
+ (line 49)
+* libexecdir: Installation Directory Variables.
+ (line 52)
+* LIBOBJDIR: AC_LIBOBJ vs LIBOBJS.
+ (line 35)
+* LIBOBJS <1>: Particular Structures.
+ (line 26)
+* LIBOBJS <2>: Generic Functions. (line 56)
+* LIBOBJS: Particular Functions.
+ (line 161)
+* LIBS <1>: Obsolete Macros. (line 295)
+* LIBS: Preset Output Variables.
+ (line 154)
+* LN_S: Particular Programs. (line 168)
+* localedir: Installation Directory Variables.
+ (line 55)
+* localstatedir: Installation Directory Variables.
+ (line 60)
+* mandir: Installation Directory Variables.
+ (line 63)
+* MKDIR_P: Particular Programs. (line 80)
+* NEED_SETGID: Particular Functions.
+ (line 161)
+* OBJC: Objective C Compiler.
+ (line 7)
+* OBJCFLAGS <1>: Objective C Compiler.
+ (line 7)
+* OBJCFLAGS: Preset Output Variables.
+ (line 162)
+* OBJCPP: Objective C Compiler.
+ (line 26)
+* OBJCXX: Objective C++ Compiler.
+ (line 7)
+* OBJCXXCPP: Objective C++ Compiler.
+ (line 27)
+* OBJCXXFLAGS <1>: Objective C++ Compiler.
+ (line 7)
+* OBJCXXFLAGS: Preset Output Variables.
+ (line 166)
+* OBJEXT <1>: Obsolete Macros. (line 384)
+* OBJEXT: Compilers and Preprocessors.
+ (line 11)
+* oldincludedir: Installation Directory Variables.
+ (line 66)
+* OPENMP_CFLAGS: Generic Compiler Characteristics.
+ (line 64)
+* OPENMP_CXXFLAGS: Generic Compiler Characteristics.
+ (line 64)
+* OPENMP_FCFLAGS: Generic Compiler Characteristics.
+ (line 64)
+* OPENMP_FFLAGS: Generic Compiler Characteristics.
+ (line 64)
+* PACKAGE_BUGREPORT: Initializing configure.
+ (line 57)
+* PACKAGE_NAME: Initializing configure.
+ (line 45)
+* PACKAGE_STRING: Initializing configure.
+ (line 54)
+* PACKAGE_TARNAME: Initializing configure.
+ (line 48)
+* PACKAGE_URL: Initializing configure.
+ (line 61)
+* PACKAGE_VERSION: Initializing configure.
+ (line 51)
+* pdfdir: Installation Directory Variables.
+ (line 69)
+* POW_LIB: Particular Functions.
+ (line 408)
+* prefix: Installation Directory Variables.
+ (line 72)
+* program_transform_name: Transforming Names. (line 11)
+* psdir: Installation Directory Variables.
+ (line 77)
+* RANLIB: Particular Programs. (line 187)
+* sbindir: Installation Directory Variables.
+ (line 80)
+* SED: Particular Programs. (line 191)
+* SET_MAKE: Output. (line 45)
+* sharedstatedir: Installation Directory Variables.
+ (line 84)
+* srcdir: Preset Output Variables.
+ (line 195)
+* subdirs: Subdirectories. (line 12)
+* sysconfdir: Installation Directory Variables.
+ (line 88)
+* target: Canonicalizing. (line 41)
+* target_alias: Canonicalizing. (line 9)
+* target_cpu: Canonicalizing. (line 41)
+* target_os: Canonicalizing. (line 41)
+* target_vendor: Canonicalizing. (line 41)
+* tmp: Initialization Macros.
+ (line 77)
+* top_build_prefix: Preset Output Variables.
+ (line 184)
+* top_builddir: Preset Output Variables.
+ (line 180)
+* top_srcdir: Preset Output Variables.
+ (line 202)
+* X_CFLAGS: System Services. (line 30)
+* X_EXTRA_LIBS: System Services. (line 30)
+* X_LIBS: System Services. (line 30)
+* X_PRE_LIBS: System Services. (line 30)
+* YACC: Particular Programs. (line 200)
+
+
+File: autoconf.info, Node: Preprocessor Symbol Index, Next: Cache Variable Index, Prev: Output Variable Index, Up: Indices
+
+B.3 Preprocessor Symbol Index
+=============================
+
+This is an alphabetical list of the C preprocessor symbols that the
+Autoconf macros define. To work with Autoconf, C source code needs to
+use these names in `#if' or `#ifdef' directives.
+
+
+* Menu:
+
+* __CHAR_UNSIGNED__: C Compiler. (line 291)
+* __EXTENSIONS__: Posix Variants. (line 10)
+* __PROTOTYPES: C Compiler. (line 351)
+* _ALL_SOURCE <1>: Obsolete Macros. (line 20)
+* _ALL_SOURCE: Posix Variants. (line 10)
+* _FILE_OFFSET_BITS: System Services. (line 49)
+* _GNU_SOURCE <1>: Obsolete Macros. (line 234)
+* _GNU_SOURCE: Posix Variants. (line 10)
+* _LARGE_FILES: System Services. (line 49)
+* _LARGEFILE_SOURCE: Particular Functions.
+ (line 147)
+* _MINIX <1>: Obsolete Macros. (line 371)
+* _MINIX: Posix Variants. (line 10)
+* _OPENMP: Generic Compiler Characteristics.
+ (line 64)
+* _POSIX_1_SOURCE <1>: Obsolete Macros. (line 371)
+* _POSIX_1_SOURCE: Posix Variants. (line 10)
+* _POSIX_PTHREAD_SEMANTICS: Posix Variants. (line 10)
+* _POSIX_SOURCE <1>: Obsolete Macros. (line 371)
+* _POSIX_SOURCE: Posix Variants. (line 10)
+* _POSIX_VERSION: Particular Headers. (line 228)
+* _TANDEM_SOURCE: Posix Variants. (line 10)
+* ALIGNOF_TYPE: Generic Compiler Characteristics.
+ (line 30)
+* C_ALLOCA: Particular Functions.
+ (line 10)
+* C_GETLOADAVG: Particular Functions.
+ (line 161)
+* CLOSEDIR_VOID: Particular Functions.
+ (line 69)
+* const: C Compiler. (line 217)
+* CXX_NO_MINUS_C_MINUS_O: C++ Compiler. (line 48)
+* DGUX: Particular Functions.
+ (line 161)
+* DIRENT: Obsolete Macros. (line 158)
+* F77_DUMMY_MAIN: Fortran Compiler. (line 130)
+* F77_FUNC: Fortran Compiler. (line 202)
+* F77_FUNC_: Fortran Compiler. (line 202)
+* F77_MAIN: Fortran Compiler. (line 176)
+* F77_NO_MINUS_C_MINUS_O: Fortran Compiler. (line 76)
+* FC_DUMMY_MAIN: Fortran Compiler. (line 130)
+* FC_FUNC: Fortran Compiler. (line 202)
+* FC_FUNC_: Fortran Compiler. (line 202)
+* FC_MAIN: Fortran Compiler. (line 176)
+* FC_NO_MINUS_C_MINUS_O: Fortran Compiler. (line 76)
+* FLEXIBLE_ARRAY_MEMBER: C Compiler. (line 315)
+* GETGROUPS_T: Particular Types. (line 14)
+* GETLOADAVG_PRIVILEGED: Particular Functions.
+ (line 161)
+* GETPGRP_VOID: Particular Functions.
+ (line 205)
+* gid_t: Particular Types. (line 126)
+* GWINSZ_IN_SYS_IOCTL: Particular Headers. (line 270)
+* HAVE__BOOL: Particular Headers. (line 10)
+* HAVE_AGGREGATE_MEMBER: Generic Structures. (line 29)
+* HAVE_ALLOCA_H: Particular Functions.
+ (line 10)
+* HAVE_C_BACKSLASH_A: C Compiler. (line 176)
+* HAVE_C_VARARRAYS: C Compiler. (line 339)
+* HAVE_CHOWN: Particular Functions.
+ (line 63)
+* HAVE_CONFIG_H: Configuration Headers.
+ (line 33)
+* HAVE_DECL_STRERROR_R: Particular Functions.
+ (line 388)
+* HAVE_DECL_SYMBOL: Generic Declarations.
+ (line 34)
+* HAVE_DECL_TZNAME: Particular Structures.
+ (line 43)
+* HAVE_DIRENT_H: Particular Headers. (line 25)
+* HAVE_DOPRNT: Particular Functions.
+ (line 443)
+* HAVE_FSEEKO: Particular Functions.
+ (line 147)
+* HAVE_FUNCTION: Generic Functions. (line 27)
+* HAVE_GETGROUPS: Particular Functions.
+ (line 155)
+* HAVE_GETMNTENT: Particular Functions.
+ (line 195)
+* HAVE_HEADER: Generic Headers. (line 46)
+* HAVE_INT16_T: Particular Types. (line 40)
+* HAVE_INT32_T: Particular Types. (line 43)
+* HAVE_INT64_T: Particular Types. (line 46)
+* HAVE_INT8_T: Particular Types. (line 21)
+* HAVE_INTMAX_T: Particular Types. (line 49)
+* HAVE_INTPTR_T: Particular Types. (line 54)
+* HAVE_LONG_DOUBLE <1>: Obsolete Macros. (line 33)
+* HAVE_LONG_DOUBLE: Particular Types. (line 59)
+* HAVE_LONG_DOUBLE_WIDER: Particular Types. (line 70)
+* HAVE_LONG_FILE_NAMES: System Services. (line 71)
+* HAVE_LONG_LONG_INT: Particular Types. (line 78)
+* HAVE_LSTAT_EMPTY_STRING_BUG: Particular Functions.
+ (line 363)
+* HAVE_MALLOC: Particular Functions.
+ (line 247)
+* HAVE_MBRTOWC: Particular Functions.
+ (line 279)
+* HAVE_MMAP: Particular Functions.
+ (line 311)
+* HAVE_NDIR_H: Particular Headers. (line 25)
+* HAVE_NLIST_H: Particular Functions.
+ (line 161)
+* HAVE_OBSTACK: Particular Functions.
+ (line 319)
+* HAVE_REALLOC: Particular Functions.
+ (line 326)
+* HAVE_RESOLV_H: Particular Headers. (line 73)
+* HAVE_RESTARTABLE_SYSCALLS: Obsolete Macros. (line 548)
+* HAVE_ST_BLKSIZE: Obsolete Macros. (line 521)
+* HAVE_ST_BLOCKS: Particular Structures.
+ (line 26)
+* HAVE_ST_RDEV: Obsolete Macros. (line 530)
+* HAVE_STAT_EMPTY_STRING_BUG: Particular Functions.
+ (line 363)
+* HAVE_STDBOOL_H: Particular Headers. (line 101)
+* HAVE_STRCOLL: Particular Functions.
+ (line 379)
+* HAVE_STRERROR_R: Particular Functions.
+ (line 388)
+* HAVE_STRFTIME: Particular Functions.
+ (line 401)
+* HAVE_STRINGIZE: C Compiler. (line 305)
+* HAVE_STRNLEN: Particular Functions.
+ (line 426)
+* HAVE_STRTOLD: Particular Functions.
+ (line 420)
+* HAVE_STRUCT_DIRENT_D_INO: Particular Structures.
+ (line 9)
+* HAVE_STRUCT_DIRENT_D_TYPE: Particular Structures.
+ (line 21)
+* HAVE_STRUCT_STAT_ST_BLKSIZE: Obsolete Macros. (line 521)
+* HAVE_STRUCT_STAT_ST_BLOCKS: Particular Structures.
+ (line 26)
+* HAVE_STRUCT_STAT_ST_RDEV: Obsolete Macros. (line 530)
+* HAVE_STRUCT_TM_TM_ZONE: Particular Structures.
+ (line 43)
+* HAVE_SYS_DIR_H: Particular Headers. (line 25)
+* HAVE_SYS_NDIR_H: Particular Headers. (line 25)
+* HAVE_SYS_WAIT_H: Particular Headers. (line 204)
+* HAVE_TM_ZONE: Particular Structures.
+ (line 43)
+* HAVE_TYPE: Generic Types. (line 28)
+* HAVE_TYPEOF: C Compiler. (line 345)
+* HAVE_TZNAME: Particular Structures.
+ (line 43)
+* HAVE_UINT16_T: Particular Types. (line 138)
+* HAVE_UINT32_T: Particular Types. (line 141)
+* HAVE_UINT64_T: Particular Types. (line 144)
+* HAVE_UINT8_T: Particular Types. (line 132)
+* HAVE_UINTMAX_T: Particular Types. (line 147)
+* HAVE_UINTPTR_T: Particular Types. (line 152)
+* HAVE_UNSIGNED_LONG_LONG_INT: Particular Types. (line 157)
+* HAVE_UTIME_NULL: Particular Functions.
+ (line 433)
+* HAVE_VFORK_H: Particular Functions.
+ (line 120)
+* HAVE_VPRINTF: Particular Functions.
+ (line 443)
+* HAVE_WAIT3: Obsolete Macros. (line 216)
+* HAVE_WORKING_FORK: Particular Functions.
+ (line 120)
+* HAVE_WORKING_VFORK: Particular Functions.
+ (line 120)
+* inline: C Compiler. (line 286)
+* int16_t: Particular Types. (line 40)
+* int32_t: Particular Types. (line 43)
+* int64_t: Particular Types. (line 46)
+* int8_t: Particular Types. (line 21)
+* INT_16_BITS: Obsolete Macros. (line 275)
+* intmax_t: Particular Types. (line 49)
+* intptr_t: Particular Types. (line 54)
+* LONG_64_BITS: Obsolete Macros. (line 337)
+* LSTAT_FOLLOWS_SLASHED_SYMLINK: Particular Functions.
+ (line 228)
+* MAJOR_IN_MKDEV: Particular Headers. (line 68)
+* MAJOR_IN_SYSMACROS: Particular Headers. (line 68)
+* malloc: Particular Functions.
+ (line 247)
+* mbstate_t: Particular Types. (line 88)
+* mode_t: Particular Types. (line 96)
+* NDEBUG: Particular Headers. (line 20)
+* NDIR: Obsolete Macros. (line 158)
+* NEED_MEMORY_H: Obsolete Macros. (line 358)
+* NEED_SETGID: Particular Functions.
+ (line 161)
+* NLIST_NAME_UNION: Particular Functions.
+ (line 161)
+* NO_MINUS_C_MINUS_O: C Compiler. (line 102)
+* off_t: Particular Types. (line 102)
+* PACKAGE_BUGREPORT: Initializing configure.
+ (line 57)
+* PACKAGE_NAME: Initializing configure.
+ (line 45)
+* PACKAGE_STRING: Initializing configure.
+ (line 54)
+* PACKAGE_TARNAME: Initializing configure.
+ (line 48)
+* PACKAGE_URL: Initializing configure.
+ (line 61)
+* PACKAGE_VERSION: Initializing configure.
+ (line 51)
+* PARAMS: C Compiler. (line 351)
+* pid_t: Particular Types. (line 108)
+* PROTOTYPES: C Compiler. (line 351)
+* realloc: Particular Functions.
+ (line 326)
+* restrict: C Compiler. (line 247)
+* RETSIGTYPE: Obsolete Macros. (line 662)
+* SELECT_TYPE_ARG1: Particular Functions.
+ (line 337)
+* SELECT_TYPE_ARG234: Particular Functions.
+ (line 337)
+* SELECT_TYPE_ARG5: Particular Functions.
+ (line 337)
+* SETPGRP_VOID: Particular Functions.
+ (line 348)
+* SETVBUF_REVERSED: Obsolete Macros. (line 208)
+* size_t: Particular Types. (line 114)
+* SIZEOF_TYPE-OR-EXPR: Generic Compiler Characteristics.
+ (line 8)
+* ssize_t: Particular Types. (line 120)
+* STAT_MACROS_BROKEN: Particular Headers. (line 92)
+* STDC_HEADERS: Particular Headers. (line 135)
+* STRERROR_R_CHAR_P: Particular Functions.
+ (line 388)
+* SVR4: Particular Functions.
+ (line 161)
+* SYS_SIGLIST_DECLARED: Obsolete Macros. (line 141)
+* SYSDIR: Obsolete Macros. (line 158)
+* SYSNDIR: Obsolete Macros. (line 158)
+* TIME_WITH_SYS_TIME: Particular Headers. (line 244)
+* TM_IN_SYS_TIME: Particular Structures.
+ (line 35)
+* typeof: C Compiler. (line 345)
+* uid_t: Particular Types. (line 126)
+* uint16_t: Particular Types. (line 138)
+* uint32_t: Particular Types. (line 141)
+* uint64_t: Particular Types. (line 144)
+* uint8_t: Particular Types. (line 132)
+* uintmax_t: Particular Types. (line 147)
+* uintptr_t: Particular Types. (line 152)
+* UMAX: Particular Functions.
+ (line 161)
+* UMAX4_3: Particular Functions.
+ (line 161)
+* USG: Obsolete Macros. (line 685)
+* VARIABLE: Defining Symbols. (line 32)
+* vfork: Particular Functions.
+ (line 120)
+* volatile: C Compiler. (line 265)
+* WORDS_BIGENDIAN: C Compiler. (line 184)
+* X_DISPLAY_MISSING: System Services. (line 30)
+* YYTEXT_POINTER: Particular Programs. (line 114)
+
+
+File: autoconf.info, Node: Cache Variable Index, Next: Autoconf Macro Index, Prev: Preprocessor Symbol Index, Up: Indices
+
+B.4 Cache Variable Index
+========================
+
+This is an alphabetical list of documented cache variables used by
+macros defined in Autoconf. Autoconf macros may use additional cache
+variables internally.
+
+
+* Menu:
+
+* ac_cv_alignof_TYPE-OR-EXPR: Generic Compiler Characteristics.
+ (line 30)
+* ac_cv_c_const: C Compiler. (line 217)
+* ac_cv_c_int16_t: Particular Types. (line 40)
+* ac_cv_c_int32_t: Particular Types. (line 43)
+* ac_cv_c_int64_t: Particular Types. (line 46)
+* ac_cv_c_int8_t: Particular Types. (line 21)
+* ac_cv_c_restrict: C Compiler. (line 247)
+* ac_cv_c_uint16_t: Particular Types. (line 138)
+* ac_cv_c_uint32_t: Particular Types. (line 141)
+* ac_cv_c_uint64_t: Particular Types. (line 144)
+* ac_cv_c_uint8_t: Particular Types. (line 132)
+* ac_cv_f77_compiler_gnu: Fortran Compiler. (line 19)
+* ac_cv_f77_dummy_main: Fortran Compiler. (line 130)
+* ac_cv_f77_implicit_none: Fortran Compiler. (line 427)
+* ac_cv_f77_libs: Fortran Compiler. (line 92)
+* ac_cv_f77_main: Fortran Compiler. (line 176)
+* ac_cv_f77_mangling: Fortran Compiler. (line 202)
+* ac_cv_fc_check_bounds: Fortran Compiler. (line 413)
+* ac_cv_fc_compiler_gnu: Fortran Compiler. (line 44)
+* ac_cv_fc_dummy_main: Fortran Compiler. (line 130)
+* ac_cv_fc_fixedform: Fortran Compiler. (line 375)
+* ac_cv_fc_freeform: Fortran Compiler. (line 351)
+* ac_cv_fc_implicit_none: Fortran Compiler. (line 427)
+* ac_cv_fc_libs: Fortran Compiler. (line 92)
+* ac_cv_fc_line_length: Fortran Compiler. (line 396)
+* ac_cv_fc_main: Fortran Compiler. (line 176)
+* ac_cv_fc_mangling: Fortran Compiler. (line 202)
+* ac_cv_fc_module_ext: Fortran Compiler. (line 438)
+* ac_cv_fc_module_flag: Fortran Compiler. (line 465)
+* ac_cv_fc_module_output_flag: Fortran Compiler. (line 501)
+* ac_cv_fc_pp_define: Fortran Compiler. (line 336)
+* ac_cv_fc_pp_srcext_EXT: Fortran Compiler. (line 279)
+* ac_cv_fc_srcext_EXT: Fortran Compiler. (line 279)
+* ac_cv_file_FILE: Files. (line 13)
+* ac_cv_func_chown_works: Particular Functions.
+ (line 63)
+* ac_cv_func_closedir_void: Particular Functions.
+ (line 69)
+* ac_cv_func_fnmatch_gnu: Particular Functions.
+ (line 109)
+* ac_cv_func_fnmatch_works: Particular Functions.
+ (line 94)
+* ac_cv_func_FUNCTION: Generic Functions. (line 15)
+* ac_cv_func_getgroups_works: Particular Functions.
+ (line 155)
+* ac_cv_func_getpgrp_void: Particular Functions.
+ (line 205)
+* ac_cv_func_lstat_dereferences_slashed_symlink: Particular Functions.
+ (line 228)
+* ac_cv_func_lstat_empty_string_bug: Particular Functions.
+ (line 363)
+* ac_cv_func_malloc_0_nonnull: Particular Functions.
+ (line 247)
+* ac_cv_func_mbrtowc: Particular Functions.
+ (line 279)
+* ac_cv_func_memcmp_working: Particular Functions.
+ (line 286)
+* ac_cv_func_mmap_fixed_mapped: Particular Functions.
+ (line 311)
+* ac_cv_func_obstack: Particular Functions.
+ (line 319)
+* ac_cv_func_pow: Particular Functions.
+ (line 408)
+* ac_cv_func_realloc_0_nonnull: Particular Functions.
+ (line 326)
+* ac_cv_func_setpgrp_void: Particular Functions.
+ (line 348)
+* ac_cv_func_stat_empty_string_bug: Particular Functions.
+ (line 363)
+* ac_cv_func_strcoll_works: Particular Functions.
+ (line 379)
+* ac_cv_func_strerror_r_char_p: Particular Functions.
+ (line 388)
+* ac_cv_func_strnlen_working: Particular Functions.
+ (line 426)
+* ac_cv_func_strtod: Particular Functions.
+ (line 408)
+* ac_cv_func_strtold: Particular Functions.
+ (line 420)
+* ac_cv_func_utime_null: Particular Functions.
+ (line 433)
+* ac_cv_func_working_mktime: Particular Functions.
+ (line 299)
+* ac_cv_have_decl_SYMBOL: Generic Declarations.
+ (line 11)
+* ac_cv_header_HEADER-FILE: Generic Headers. (line 13)
+* ac_cv_header_stdbool_h: Particular Headers. (line 10)
+* ac_cv_header_stdc: Particular Headers. (line 135)
+* ac_cv_header_sys_wait_h: Particular Headers. (line 204)
+* ac_cv_header_time: Particular Headers. (line 244)
+* ac_cv_lib_error_at_line: Particular Functions.
+ (line 84)
+* ac_cv_lib_LIBRARY_FUNCTION: Libraries. (line 11)
+* ac_cv_member_AGGREGATE_MEMBER: Generic Structures. (line 11)
+* ac_cv_member_struct_stat_st_blocks: Particular Structures.
+ (line 26)
+* ac_cv_path_install: Particular Programs. (line 43)
+* ac_cv_path_mkdir: Particular Programs. (line 80)
+* ac_cv_path_SED: Particular Programs. (line 191)
+* ac_cv_path_VARIABLE: Generic Programs. (line 108)
+* ac_cv_prog_AWK: Particular Programs. (line 10)
+* ac_cv_prog_c_openmp: Generic Compiler Characteristics.
+ (line 64)
+* ac_cv_prog_cc_c89: C Compiler. (line 61)
+* ac_cv_prog_cc_c99: C Compiler. (line 161)
+* ac_cv_prog_cc_COMPILER_c_o: C Compiler. (line 102)
+* ac_cv_prog_cc_stdc: C Compiler. (line 137)
+* ac_cv_prog_cxx_openmp: Generic Compiler Characteristics.
+ (line 64)
+* ac_cv_prog_EGREP: Particular Programs. (line 29)
+* ac_cv_prog_f77_c_o: Fortran Compiler. (line 76)
+* ac_cv_prog_f77_g: Fortran Compiler. (line 19)
+* ac_cv_prog_f77_openmp: Generic Compiler Characteristics.
+ (line 64)
+* ac_cv_prog_f77_v: Fortran Compiler. (line 92)
+* ac_cv_prog_fc_c_o: Fortran Compiler. (line 76)
+* ac_cv_prog_fc_g: Fortran Compiler. (line 44)
+* ac_cv_prog_fc_openmp: Generic Compiler Characteristics.
+ (line 64)
+* ac_cv_prog_fc_v: Fortran Compiler. (line 92)
+* ac_cv_prog_FGREP: Particular Programs. (line 36)
+* ac_cv_prog_GREP: Particular Programs. (line 20)
+* ac_cv_prog_LEX: Particular Programs. (line 114)
+* ac_cv_prog_VARIABLE: Generic Programs. (line 24)
+* ac_cv_prog_YACC: Particular Programs. (line 200)
+* ac_cv_search_FUNCTION: Libraries. (line 52)
+* ac_cv_search_getmntent: Particular Functions.
+ (line 195)
+* ac_cv_sizeof_TYPE-OR-EXPR: Generic Compiler Characteristics.
+ (line 8)
+* ac_cv_sys_posix_termios: System Services. (line 75)
+* ac_cv_type_getgroups: Particular Types. (line 14)
+* ac_cv_type_long_double: Particular Types. (line 59)
+* ac_cv_type_long_double_wider: Particular Types. (line 70)
+* ac_cv_type_long_long_int: Particular Types. (line 78)
+* ac_cv_type_mbstate_t: Particular Types. (line 88)
+* ac_cv_type_mode_t: Particular Types. (line 96)
+* ac_cv_type_off_t: Particular Types. (line 102)
+* ac_cv_type_pid_t: Particular Types. (line 108)
+* ac_cv_type_size_t: Particular Types. (line 114)
+* ac_cv_type_ssize_t: Particular Types. (line 120)
+* ac_cv_type_TYPE: Generic Types. (line 11)
+* ac_cv_type_uid_t: Particular Types. (line 126)
+* ac_cv_type_unsigned_long_long_int: Particular Types. (line 157)
+
+
+File: autoconf.info, Node: Autoconf Macro Index, Next: M4 Macro Index, Prev: Cache Variable Index, Up: Indices
+
+B.5 Autoconf Macro Index
+========================
+
+This is an alphabetical list of the Autoconf macros.
+
+
+* Menu:
+
+* AC_ACT_IFELSE: AC_ACT_IFELSE vs AC_TRY_ACT.
+ (line 6)
+* AC_AIX: Obsolete Macros. (line 20)
+* AC_ALLOCA: Obsolete Macros. (line 24)
+* AC_ARG_ARRAY: Obsolete Macros. (line 27)
+* AC_ARG_ENABLE: Package Options. (line 35)
+* AC_ARG_PROGRAM: Transforming Names. (line 11)
+* AC_ARG_VAR: Setting Output Variables.
+ (line 79)
+* AC_ARG_WITH: External Software. (line 36)
+* AC_AUTOCONF_VERSION: Versioning. (line 21)
+* AC_BEFORE: Suggested Ordering. (line 28)
+* AC_C_BACKSLASH_A: C Compiler. (line 176)
+* AC_C_BIGENDIAN: C Compiler. (line 184)
+* AC_C_CHAR_UNSIGNED: C Compiler. (line 291)
+* AC_C_CONST: C Compiler. (line 217)
+* AC_C_CROSS: Obsolete Macros. (line 30)
+* AC_C_FLEXIBLE_ARRAY_MEMBER: C Compiler. (line 315)
+* AC_C_INLINE: C Compiler. (line 286)
+* AC_C_LONG_DOUBLE: Obsolete Macros. (line 33)
+* AC_C_PROTOTYPES: C Compiler. (line 351)
+* AC_C_RESTRICT: C Compiler. (line 247)
+* AC_C_STRINGIZE: C Compiler. (line 305)
+* AC_C_TYPEOF: C Compiler. (line 345)
+* AC_C_VARARRAYS: C Compiler. (line 339)
+* AC_C_VOLATILE: C Compiler. (line 265)
+* AC_CACHE_CHECK: Caching Results. (line 30)
+* AC_CACHE_LOAD: Cache Checkpointing. (line 13)
+* AC_CACHE_SAVE: Cache Checkpointing. (line 17)
+* AC_CACHE_VAL: Caching Results. (line 16)
+* AC_CANONICAL_BUILD: Canonicalizing. (line 26)
+* AC_CANONICAL_HOST: Canonicalizing. (line 34)
+* AC_CANONICAL_SYSTEM: Obsolete Macros. (line 41)
+* AC_CANONICAL_TARGET: Canonicalizing. (line 41)
+* AC_CHAR_UNSIGNED: Obsolete Macros. (line 51)
+* AC_CHECK_ALIGNOF: Generic Compiler Characteristics.
+ (line 30)
+* AC_CHECK_DECL: Generic Declarations.
+ (line 11)
+* AC_CHECK_DECLS: Generic Declarations.
+ (line 34)
+* AC_CHECK_DECLS_ONCE: Generic Declarations.
+ (line 79)
+* AC_CHECK_FILE: Files. (line 13)
+* AC_CHECK_FILES: Files. (line 21)
+* AC_CHECK_FUNC: Generic Functions. (line 15)
+* AC_CHECK_FUNCS: Generic Functions. (line 27)
+* AC_CHECK_FUNCS_ONCE: Generic Functions. (line 38)
+* AC_CHECK_HEADER: Generic Headers. (line 13)
+* AC_CHECK_HEADER_STDBOOL: Particular Headers. (line 10)
+* AC_CHECK_HEADERS: Generic Headers. (line 46)
+* AC_CHECK_HEADERS_ONCE: Generic Headers. (line 87)
+* AC_CHECK_LIB: Libraries. (line 11)
+* AC_CHECK_MEMBER: Generic Structures. (line 11)
+* AC_CHECK_MEMBERS: Generic Structures. (line 29)
+* AC_CHECK_PROG: Generic Programs. (line 24)
+* AC_CHECK_PROGS: Generic Programs. (line 36)
+* AC_CHECK_SIZEOF: Generic Compiler Characteristics.
+ (line 8)
+* AC_CHECK_TARGET_TOOL: Generic Programs. (line 48)
+* AC_CHECK_TARGET_TOOLS: Generic Programs. (line 79)
+* AC_CHECK_TOOL: Generic Programs. (line 64)
+* AC_CHECK_TOOLS: Generic Programs. (line 92)
+* AC_CHECK_TYPE <1>: Obsolete Macros. (line 54)
+* AC_CHECK_TYPE: Generic Types. (line 11)
+* AC_CHECK_TYPES: Generic Types. (line 28)
+* AC_CHECKING: Obsolete Macros. (line 101)
+* AC_COMPILE_CHECK: Obsolete Macros. (line 109)
+* AC_COMPILE_IFELSE: Running the Compiler.
+ (line 13)
+* AC_COMPUTE_INT: Generic Compiler Characteristics.
+ (line 42)
+* AC_CONFIG_AUX_DIR: Input. (line 20)
+* AC_CONFIG_COMMANDS: Configuration Commands.
+ (line 13)
+* AC_CONFIG_COMMANDS_POST: Configuration Commands.
+ (line 41)
+* AC_CONFIG_COMMANDS_PRE: Configuration Commands.
+ (line 35)
+* AC_CONFIG_FILES: Configuration Files. (line 9)
+* AC_CONFIG_HEADERS: Configuration Headers.
+ (line 33)
+* AC_CONFIG_ITEMS: Configuration Actions.
+ (line 12)
+* AC_CONFIG_LIBOBJ_DIR: Generic Functions. (line 97)
+* AC_CONFIG_LINKS: Configuration Links. (line 12)
+* AC_CONFIG_MACRO_DIR: Input. (line 48)
+* AC_CONFIG_SRCDIR: Input. (line 7)
+* AC_CONFIG_SUBDIRS: Subdirectories. (line 12)
+* AC_CONFIG_TESTDIR: Making testsuite Scripts.
+ (line 26)
+* AC_CONST: Obsolete Macros. (line 117)
+* AC_COPYRIGHT: Notices. (line 10)
+* AC_CROSS_CHECK: Obsolete Macros. (line 120)
+* AC_CYGWIN: Obsolete Macros. (line 124)
+* AC_DATAROOTDIR_CHECKED: Changed Directory Variables.
+ (line 58)
+* AC_DECL_SYS_SIGLIST: Obsolete Macros. (line 141)
+* AC_DECL_YYTEXT: Obsolete Macros. (line 154)
+* AC_DEFINE: Defining Symbols. (line 32)
+* AC_DEFINE_UNQUOTED: Defining Symbols. (line 74)
+* AC_DEFUN: Macro Definitions. (line 7)
+* AC_DEFUN_ONCE: One-Shot Macros. (line 14)
+* AC_DIAGNOSE: Reporting Messages. (line 18)
+* AC_DIR_HEADER: Obsolete Macros. (line 158)
+* AC_DISABLE_OPTION_CHECKING: Option Checking. (line 28)
+* AC_DYNIX_SEQ: Obsolete Macros. (line 170)
+* AC_EGREP_CPP: Running the Preprocessor.
+ (line 74)
+* AC_EGREP_HEADER: Running the Preprocessor.
+ (line 67)
+* AC_EMXOS2: Obsolete Macros. (line 183)
+* AC_ENABLE: Obsolete Macros. (line 189)
+* AC_ERLANG_CHECK_LIB: Erlang Libraries. (line 36)
+* AC_ERLANG_NEED_ERL: Erlang Compiler and Interpreter.
+ (line 41)
+* AC_ERLANG_NEED_ERLC: Erlang Compiler and Interpreter.
+ (line 24)
+* AC_ERLANG_PATH_ERL: Erlang Compiler and Interpreter.
+ (line 29)
+* AC_ERLANG_PATH_ERLC: Erlang Compiler and Interpreter.
+ (line 10)
+* AC_ERLANG_SUBST_ERTS_VER: Erlang Libraries. (line 12)
+* AC_ERLANG_SUBST_INSTALL_LIB_DIR <1>: Erlang Libraries. (line 86)
+* AC_ERLANG_SUBST_INSTALL_LIB_DIR: Installation Directory Variables.
+ (line 201)
+* AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR <1>: Erlang Libraries. (line 93)
+* AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR: Installation Directory Variables.
+ (line 206)
+* AC_ERLANG_SUBST_LIB_DIR: Erlang Libraries. (line 28)
+* AC_ERLANG_SUBST_ROOT_DIR: Erlang Libraries. (line 22)
+* AC_ERROR: Obsolete Macros. (line 193)
+* AC_EXEEXT: Obsolete Macros. (line 178)
+* AC_F77_DUMMY_MAIN: Fortran Compiler. (line 130)
+* AC_F77_FUNC: Fortran Compiler. (line 266)
+* AC_F77_IMPLICIT_NONE: Fortran Compiler. (line 427)
+* AC_F77_LIBRARY_LDFLAGS: Fortran Compiler. (line 92)
+* AC_F77_MAIN: Fortran Compiler. (line 176)
+* AC_F77_WRAPPERS: Fortran Compiler. (line 202)
+* AC_FATAL: Reporting Messages. (line 34)
+* AC_FC_CHECK_BOUNDS: Fortran Compiler. (line 413)
+* AC_FC_DUMMY_MAIN: Fortran Compiler. (line 130)
+* AC_FC_FIXEDFORM: Fortran Compiler. (line 375)
+* AC_FC_FREEFORM: Fortran Compiler. (line 351)
+* AC_FC_FUNC: Fortran Compiler. (line 266)
+* AC_FC_IMPLICIT_NONE: Fortran Compiler. (line 427)
+* AC_FC_LIBRARY_LDFLAGS: Fortran Compiler. (line 92)
+* AC_FC_LINE_LENGTH: Fortran Compiler. (line 396)
+* AC_FC_MAIN: Fortran Compiler. (line 176)
+* AC_FC_MODULE_EXTENSION: Fortran Compiler. (line 438)
+* AC_FC_MODULE_FLAG: Fortran Compiler. (line 465)
+* AC_FC_MODULE_OUTPUT_FLAG: Fortran Compiler. (line 501)
+* AC_FC_PP_DEFINE: Fortran Compiler. (line 336)
+* AC_FC_PP_SRCEXT: Fortran Compiler. (line 279)
+* AC_FC_SRCEXT: Fortran Compiler. (line 279)
+* AC_FC_WRAPPERS: Fortran Compiler. (line 202)
+* AC_FIND_X: Obsolete Macros. (line 196)
+* AC_FIND_XTRA: Obsolete Macros. (line 199)
+* AC_FOREACH: Obsolete Macros. (line 202)
+* AC_FUNC_ALLOCA: Particular Functions.
+ (line 10)
+* AC_FUNC_CHECK: Obsolete Macros. (line 205)
+* AC_FUNC_CHOWN: Particular Functions.
+ (line 63)
+* AC_FUNC_CLOSEDIR_VOID: Particular Functions.
+ (line 69)
+* AC_FUNC_ERROR_AT_LINE: Particular Functions.
+ (line 84)
+* AC_FUNC_FNMATCH: Particular Functions.
+ (line 94)
+* AC_FUNC_FNMATCH_GNU: Particular Functions.
+ (line 109)
+* AC_FUNC_FORK: Particular Functions.
+ (line 120)
+* AC_FUNC_FSEEKO: Particular Functions.
+ (line 147)
+* AC_FUNC_GETGROUPS: Particular Functions.
+ (line 155)
+* AC_FUNC_GETLOADAVG: Particular Functions.
+ (line 161)
+* AC_FUNC_GETMNTENT: Particular Functions.
+ (line 195)
+* AC_FUNC_GETPGRP: Particular Functions.
+ (line 205)
+* AC_FUNC_LSTAT: Particular Functions.
+ (line 363)
+* AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK: Particular Functions.
+ (line 228)
+* AC_FUNC_MALLOC: Particular Functions.
+ (line 247)
+* AC_FUNC_MBRTOWC: Particular Functions.
+ (line 279)
+* AC_FUNC_MEMCMP: Particular Functions.
+ (line 286)
+* AC_FUNC_MKTIME: Particular Functions.
+ (line 299)
+* AC_FUNC_MMAP: Particular Functions.
+ (line 311)
+* AC_FUNC_OBSTACK: Particular Functions.
+ (line 319)
+* AC_FUNC_REALLOC: Particular Functions.
+ (line 326)
+* AC_FUNC_SELECT_ARGTYPES: Particular Functions.
+ (line 337)
+* AC_FUNC_SETPGRP: Particular Functions.
+ (line 348)
+* AC_FUNC_SETVBUF_REVERSED: Obsolete Macros. (line 208)
+* AC_FUNC_STAT: Particular Functions.
+ (line 363)
+* AC_FUNC_STRCOLL: Particular Functions.
+ (line 379)
+* AC_FUNC_STRERROR_R: Particular Functions.
+ (line 388)
+* AC_FUNC_STRFTIME: Particular Functions.
+ (line 401)
+* AC_FUNC_STRNLEN: Particular Functions.
+ (line 426)
+* AC_FUNC_STRTOD: Particular Functions.
+ (line 408)
+* AC_FUNC_STRTOLD: Particular Functions.
+ (line 420)
+* AC_FUNC_UTIME_NULL: Particular Functions.
+ (line 433)
+* AC_FUNC_VPRINTF: Particular Functions.
+ (line 443)
+* AC_FUNC_WAIT3: Obsolete Macros. (line 216)
+* AC_GCC_TRADITIONAL: Obsolete Macros. (line 224)
+* AC_GETGROUPS_T: Obsolete Macros. (line 228)
+* AC_GETLOADAVG: Obsolete Macros. (line 231)
+* AC_GNU_SOURCE: Obsolete Macros. (line 234)
+* AC_HAVE_FUNCS: Obsolete Macros. (line 238)
+* AC_HAVE_HEADERS: Obsolete Macros. (line 241)
+* AC_HAVE_LIBRARY: Obsolete Macros. (line 245)
+* AC_HAVE_POUNDBANG: Obsolete Macros. (line 252)
+* AC_HEADER_ASSERT: Particular Headers. (line 20)
+* AC_HEADER_CHECK: Obsolete Macros. (line 255)
+* AC_HEADER_DIRENT: Particular Headers. (line 25)
+* AC_HEADER_EGREP: Obsolete Macros. (line 258)
+* AC_HEADER_MAJOR: Particular Headers. (line 68)
+* AC_HEADER_RESOLV: Particular Headers. (line 73)
+* AC_HEADER_STAT: Particular Headers. (line 92)
+* AC_HEADER_STDBOOL: Particular Headers. (line 101)
+* AC_HEADER_STDC: Particular Headers. (line 135)
+* AC_HEADER_SYS_WAIT: Particular Headers. (line 204)
+* AC_HEADER_TIME: Particular Headers. (line 244)
+* AC_HEADER_TIOCGWINSZ: Particular Headers. (line 270)
+* AC_HELP_STRING: Obsolete Macros. (line 261)
+* AC_INCLUDES_DEFAULT: Default Includes. (line 29)
+* AC_INIT <1>: Obsolete Macros. (line 264)
+* AC_INIT: Initializing configure.
+ (line 14)
+* AC_INLINE: Obsolete Macros. (line 272)
+* AC_INT_16_BITS: Obsolete Macros. (line 275)
+* AC_IRIX_SUN: Obsolete Macros. (line 279)
+* AC_ISC_POSIX: Obsolete Macros. (line 295)
+* AC_LANG: Language Choice. (line 14)
+* AC_LANG_ASSERT: Language Choice. (line 79)
+* AC_LANG_C: Obsolete Macros. (line 302)
+* AC_LANG_CALL: Generating Sources. (line 142)
+* AC_LANG_CONFTEST: Generating Sources. (line 12)
+* AC_LANG_CPLUSPLUS: Obsolete Macros. (line 305)
+* AC_LANG_DEFINES_PROVIDED: Generating Sources. (line 31)
+* AC_LANG_FORTRAN77: Obsolete Macros. (line 308)
+* AC_LANG_FUNC_LINK_TRY: Generating Sources. (line 154)
+* AC_LANG_POP: Language Choice. (line 66)
+* AC_LANG_PROGRAM: Generating Sources. (line 78)
+* AC_LANG_PUSH: Language Choice. (line 61)
+* AC_LANG_RESTORE: Obsolete Macros. (line 311)
+* AC_LANG_SAVE: Obsolete Macros. (line 317)
+* AC_LANG_SOURCE: Generating Sources. (line 40)
+* AC_LANG_WERROR: Generic Compiler Characteristics.
+ (line 54)
+* AC_LIBOBJ: Generic Functions. (line 56)
+* AC_LIBSOURCE: Generic Functions. (line 65)
+* AC_LIBSOURCES: Generic Functions. (line 89)
+* AC_LINK_FILES: Obsolete Macros. (line 322)
+* AC_LINK_IFELSE: Running the Linker. (line 24)
+* AC_LN_S: Obsolete Macros. (line 334)
+* AC_LONG_64_BITS: Obsolete Macros. (line 337)
+* AC_LONG_DOUBLE: Obsolete Macros. (line 342)
+* AC_LONG_FILE_NAMES: Obsolete Macros. (line 350)
+* AC_MAJOR_HEADER: Obsolete Macros. (line 355)
+* AC_MEMORY_H: Obsolete Macros. (line 358)
+* AC_MINGW32: Obsolete Macros. (line 365)
+* AC_MINIX: Obsolete Macros. (line 371)
+* AC_MINUS_C_MINUS_O: Obsolete Macros. (line 375)
+* AC_MMAP: Obsolete Macros. (line 378)
+* AC_MODE_T: Obsolete Macros. (line 381)
+* AC_MSG_CHECKING: Printing Messages. (line 24)
+* AC_MSG_ERROR: Printing Messages. (line 56)
+* AC_MSG_FAILURE: Printing Messages. (line 66)
+* AC_MSG_NOTICE: Printing Messages. (line 46)
+* AC_MSG_RESULT: Printing Messages. (line 35)
+* AC_MSG_WARN: Printing Messages. (line 72)
+* AC_OBJEXT: Obsolete Macros. (line 384)
+* AC_OBSOLETE: Obsolete Macros. (line 390)
+* AC_OFF_T: Obsolete Macros. (line 405)
+* AC_OPENMP: Generic Compiler Characteristics.
+ (line 64)
+* AC_OUTPUT <1>: Obsolete Macros. (line 408)
+* AC_OUTPUT: Output. (line 13)
+* AC_OUTPUT_COMMANDS: Obsolete Macros. (line 420)
+* AC_PACKAGE_BUGREPORT: Initializing configure.
+ (line 57)
+* AC_PACKAGE_NAME: Initializing configure.
+ (line 45)
+* AC_PACKAGE_STRING: Initializing configure.
+ (line 54)
+* AC_PACKAGE_TARNAME: Initializing configure.
+ (line 48)
+* AC_PACKAGE_URL: Initializing configure.
+ (line 61)
+* AC_PACKAGE_VERSION: Initializing configure.
+ (line 51)
+* AC_PATH_PROG: Generic Programs. (line 108)
+* AC_PATH_PROGS: Generic Programs. (line 115)
+* AC_PATH_PROGS_FEATURE_CHECK: Generic Programs. (line 123)
+* AC_PATH_TARGET_TOOL: Generic Programs. (line 159)
+* AC_PATH_TOOL: Generic Programs. (line 164)
+* AC_PATH_X: System Services. (line 10)
+* AC_PATH_XTRA: System Services. (line 30)
+* AC_PID_T: Obsolete Macros. (line 450)
+* AC_PREFIX: Obsolete Macros. (line 453)
+* AC_PREFIX_DEFAULT: Default Prefix. (line 16)
+* AC_PREFIX_PROGRAM: Default Prefix. (line 25)
+* AC_PREPROC_IFELSE: Running the Preprocessor.
+ (line 20)
+* AC_PREREQ: Versioning. (line 11)
+* AC_PRESERVE_HELP_ORDER: Help Formatting. (line 20)
+* AC_PROG_AWK: Particular Programs. (line 10)
+* AC_PROG_CC: C Compiler. (line 61)
+* AC_PROG_CC_C89: C Compiler. (line 147)
+* AC_PROG_CC_C99: C Compiler. (line 161)
+* AC_PROG_CC_C_O: C Compiler. (line 102)
+* AC_PROG_CC_STDC: C Compiler. (line 137)
+* AC_PROG_CPP: C Compiler. (line 113)
+* AC_PROG_CPP_WERROR: C Compiler. (line 126)
+* AC_PROG_CXX: C++ Compiler. (line 7)
+* AC_PROG_CXX_C_O: C++ Compiler. (line 48)
+* AC_PROG_CXXCPP: C++ Compiler. (line 35)
+* AC_PROG_EGREP: Particular Programs. (line 29)
+* AC_PROG_F77: Fortran Compiler. (line 19)
+* AC_PROG_F77_C_O: Fortran Compiler. (line 76)
+* AC_PROG_FC: Fortran Compiler. (line 44)
+* AC_PROG_FC_C_O: Fortran Compiler. (line 76)
+* AC_PROG_FGREP: Particular Programs. (line 36)
+* AC_PROG_GCC_TRADITIONAL: C Compiler. (line 361)
+* AC_PROG_GREP: Particular Programs. (line 20)
+* AC_PROG_INSTALL: Particular Programs. (line 43)
+* AC_PROG_LEX: Particular Programs. (line 114)
+* AC_PROG_LN_S: Particular Programs. (line 168)
+* AC_PROG_MAKE_SET: Output. (line 45)
+* AC_PROG_MKDIR_P: Particular Programs. (line 80)
+* AC_PROG_OBJC: Objective C Compiler.
+ (line 7)
+* AC_PROG_OBJCPP: Objective C Compiler.
+ (line 26)
+* AC_PROG_OBJCXX: Objective C++ Compiler.
+ (line 7)
+* AC_PROG_OBJCXXCPP: Objective C++ Compiler.
+ (line 27)
+* AC_PROG_RANLIB: Particular Programs. (line 187)
+* AC_PROG_SED: Particular Programs. (line 191)
+* AC_PROG_YACC: Particular Programs. (line 200)
+* AC_PROGRAM_CHECK: Obsolete Macros. (line 462)
+* AC_PROGRAM_EGREP: Obsolete Macros. (line 465)
+* AC_PROGRAM_PATH: Obsolete Macros. (line 468)
+* AC_PROGRAMS_CHECK: Obsolete Macros. (line 456)
+* AC_PROGRAMS_PATH: Obsolete Macros. (line 459)
+* AC_REMOTE_TAPE: Obsolete Macros. (line 471)
+* AC_REPLACE_FNMATCH: Particular Functions.
+ (line 452)
+* AC_REPLACE_FUNCS: Generic Functions. (line 117)
+* AC_REQUIRE: Prerequisite Macros. (line 17)
+* AC_REQUIRE_AUX_FILE: Input. (line 37)
+* AC_REQUIRE_CPP: Language Choice. (line 94)
+* AC_RESTARTABLE_SYSCALLS: Obsolete Macros. (line 474)
+* AC_RETSIGTYPE: Obsolete Macros. (line 482)
+* AC_REVISION: Notices. (line 18)
+* AC_RSH: Obsolete Macros. (line 486)
+* AC_RUN_IFELSE: Runtime. (line 20)
+* AC_SCO_INTL: Obsolete Macros. (line 489)
+* AC_SEARCH_LIBS: Libraries. (line 52)
+* AC_SET_MAKE: Obsolete Macros. (line 503)
+* AC_SETVBUF_REVERSED: Obsolete Macros. (line 498)
+* AC_SIZE_T: Obsolete Macros. (line 509)
+* AC_SIZEOF_TYPE: Obsolete Macros. (line 506)
+* AC_ST_BLKSIZE: Obsolete Macros. (line 539)
+* AC_ST_BLOCKS: Obsolete Macros. (line 542)
+* AC_ST_RDEV: Obsolete Macros. (line 545)
+* AC_STAT_MACROS_BROKEN: Obsolete Macros. (line 512)
+* AC_STDC_HEADERS: Obsolete Macros. (line 515)
+* AC_STRCOLL: Obsolete Macros. (line 518)
+* AC_STRUCT_DIRENT_D_INO: Particular Structures.
+ (line 9)
+* AC_STRUCT_DIRENT_D_TYPE: Particular Structures.
+ (line 21)
+* AC_STRUCT_ST_BLKSIZE: Obsolete Macros. (line 521)
+* AC_STRUCT_ST_BLOCKS: Particular Structures.
+ (line 26)
+* AC_STRUCT_ST_RDEV: Obsolete Macros. (line 530)
+* AC_STRUCT_TIMEZONE: Particular Structures.
+ (line 43)
+* AC_STRUCT_TM: Particular Structures.
+ (line 35)
+* AC_SUBST: Setting Output Variables.
+ (line 13)
+* AC_SUBST_FILE: Setting Output Variables.
+ (line 38)
+* AC_SYS_INTERPRETER: System Services. (line 42)
+* AC_SYS_LARGEFILE: System Services. (line 49)
+* AC_SYS_LONG_FILE_NAMES: System Services. (line 71)
+* AC_SYS_POSIX_TERMIOS: System Services. (line 75)
+* AC_SYS_RESTARTABLE_SYSCALLS: Obsolete Macros. (line 548)
+* AC_SYS_SIGLIST_DECLARED: Obsolete Macros. (line 563)
+* AC_TEST_CPP: Obsolete Macros. (line 568)
+* AC_TEST_PROGRAM: Obsolete Macros. (line 572)
+* AC_TIME_WITH_SYS_TIME: Obsolete Macros. (line 579)
+* AC_TIMEZONE: Obsolete Macros. (line 576)
+* AC_TRY_ACT: AC_ACT_IFELSE vs AC_TRY_ACT.
+ (line 6)
+* AC_TRY_COMPILE: Obsolete Macros. (line 583)
+* AC_TRY_CPP: Obsolete Macros. (line 602)
+* AC_TRY_LINK: Obsolete Macros. (line 615)
+* AC_TRY_LINK_FUNC: Obsolete Macros. (line 644)
+* AC_TRY_RUN: Obsolete Macros. (line 651)
+* AC_TYPE_GETGROUPS: Particular Types. (line 14)
+* AC_TYPE_INT16_T: Particular Types. (line 40)
+* AC_TYPE_INT32_T: Particular Types. (line 43)
+* AC_TYPE_INT64_T: Particular Types. (line 46)
+* AC_TYPE_INT8_T: Particular Types. (line 21)
+* AC_TYPE_INTMAX_T: Particular Types. (line 49)
+* AC_TYPE_INTPTR_T: Particular Types. (line 54)
+* AC_TYPE_LONG_DOUBLE: Particular Types. (line 59)
+* AC_TYPE_LONG_DOUBLE_WIDER: Particular Types. (line 70)
+* AC_TYPE_LONG_LONG_INT: Particular Types. (line 78)
+* AC_TYPE_MBSTATE_T: Particular Types. (line 88)
+* AC_TYPE_MODE_T: Particular Types. (line 96)
+* AC_TYPE_OFF_T: Particular Types. (line 102)
+* AC_TYPE_PID_T: Particular Types. (line 108)
+* AC_TYPE_SIGNAL: Obsolete Macros. (line 662)
+* AC_TYPE_SIZE_T: Particular Types. (line 114)
+* AC_TYPE_SSIZE_T: Particular Types. (line 120)
+* AC_TYPE_UID_T: Particular Types. (line 126)
+* AC_TYPE_UINT16_T: Particular Types. (line 138)
+* AC_TYPE_UINT32_T: Particular Types. (line 141)
+* AC_TYPE_UINT64_T: Particular Types. (line 144)
+* AC_TYPE_UINT8_T: Particular Types. (line 132)
+* AC_TYPE_UINTMAX_T: Particular Types. (line 147)
+* AC_TYPE_UINTPTR_T: Particular Types. (line 152)
+* AC_TYPE_UNSIGNED_LONG_LONG_INT: Particular Types. (line 157)
+* AC_UID_T: Obsolete Macros. (line 679)
+* AC_UNISTD_H: Obsolete Macros. (line 682)
+* AC_USE_SYSTEM_EXTENSIONS: Posix Variants. (line 10)
+* AC_USG: Obsolete Macros. (line 685)
+* AC_UTIME_NULL: Obsolete Macros. (line 690)
+* AC_VALIDATE_CACHED_SYSTEM_TUPLE: Obsolete Macros. (line 693)
+* AC_VERBOSE: Obsolete Macros. (line 698)
+* AC_VFORK: Obsolete Macros. (line 701)
+* AC_VPRINTF: Obsolete Macros. (line 704)
+* AC_WAIT3: Obsolete Macros. (line 707)
+* AC_WARN: Obsolete Macros. (line 712)
+* AC_WARNING: Reporting Messages. (line 26)
+* AC_WITH: Obsolete Macros. (line 715)
+* AC_WORDS_BIGENDIAN: Obsolete Macros. (line 719)
+* AC_XENIX_DIR: Obsolete Macros. (line 722)
+* AC_YYTEXT_POINTER: Obsolete Macros. (line 739)
+* AH_BOTTOM: Autoheader Macros. (line 50)
+* AH_HEADER: Configuration Headers.
+ (line 54)
+* AH_TEMPLATE: Autoheader Macros. (line 19)
+* AH_TOP: Autoheader Macros. (line 47)
+* AH_VERBATIM: Autoheader Macros. (line 40)
+* AU_ALIAS: Obsoleting Macros. (line 34)
+* AU_DEFUN: Obsoleting Macros. (line 18)
+
+
+File: autoconf.info, Node: M4 Macro Index, Next: Autotest Macro Index, Prev: Autoconf Macro Index, Up: Indices
+
+B.6 M4 Macro Index
+==================
+
+This is an alphabetical list of the M4, M4sugar, and M4sh macros.
+
+
+* Menu:
+
+* __file__: Redefined M4 Macros. (line 65)
+* __line__: Redefined M4 Macros. (line 65)
+* __oline__: Redefined M4 Macros. (line 69)
+* AS_BOURNE_COMPATIBLE: Initialization Macros.
+ (line 7)
+* AS_BOX: Common Shell Constructs.
+ (line 10)
+* AS_CASE: Common Shell Constructs.
+ (line 19)
+* AS_DIRNAME: Common Shell Constructs.
+ (line 26)
+* AS_ECHO: Common Shell Constructs.
+ (line 34)
+* AS_ECHO_N: Common Shell Constructs.
+ (line 42)
+* AS_ESCAPE: Common Shell Constructs.
+ (line 50)
+* AS_EXECUTABLE_P: Common Shell Constructs.
+ (line 90)
+* AS_EXIT: Common Shell Constructs.
+ (line 95)
+* AS_HELP_STRING: Pretty Help Strings. (line 15)
+* AS_IF: Common Shell Constructs.
+ (line 101)
+* AS_INIT: Initialization Macros.
+ (line 14)
+* AS_INIT_GENERATED: Initialization Macros.
+ (line 26)
+* AS_LINENO_PREPARE: Initialization Macros.
+ (line 67)
+* AS_LITERAL_IF: Polymorphic Variables.
+ (line 21)
+* AS_LITERAL_WORD_IF: Polymorphic Variables.
+ (line 21)
+* AS_ME_PREPARE: Initialization Macros.
+ (line 72)
+* AS_MESSAGE_FD: File Descriptor Macros.
+ (line 17)
+* AS_MESSAGE_LOG_FD: File Descriptor Macros.
+ (line 29)
+* AS_MKDIR_P: Common Shell Constructs.
+ (line 115)
+* AS_ORIGINAL_STDIN_FD: File Descriptor Macros.
+ (line 39)
+* AS_SET_CATFILE: Common Shell Constructs.
+ (line 155)
+* AS_SET_STATUS: Common Shell Constructs.
+ (line 127)
+* AS_SHELL_SANITIZE: Initialization Macros.
+ (line 101)
+* AS_TMPDIR: Initialization Macros.
+ (line 77)
+* AS_TR_CPP: Common Shell Constructs.
+ (line 135)
+* AS_TR_SH: Common Shell Constructs.
+ (line 144)
+* AS_UNSET: Common Shell Constructs.
+ (line 159)
+* AS_VAR_APPEND: Polymorphic Variables.
+ (line 63)
+* AS_VAR_ARITH: Polymorphic Variables.
+ (line 85)
+* AS_VAR_COPY: Polymorphic Variables.
+ (line 103)
+* AS_VAR_IF: Polymorphic Variables.
+ (line 122)
+* AS_VAR_POPDEF: Polymorphic Variables.
+ (line 131)
+* AS_VAR_PUSHDEF: Polymorphic Variables.
+ (line 131)
+* AS_VAR_SET: Polymorphic Variables.
+ (line 173)
+* AS_VAR_SET_IF: Polymorphic Variables.
+ (line 183)
+* AS_VAR_TEST_SET: Polymorphic Variables.
+ (line 188)
+* AS_VERSION_COMPARE: Common Shell Constructs.
+ (line 165)
+* dnl: Redefined M4 Macros. (line 76)
+* m4_append: Text processing Macros.
+ (line 16)
+* m4_append_uniq: Text processing Macros.
+ (line 16)
+* m4_append_uniq_w: Text processing Macros.
+ (line 69)
+* m4_apply: Evaluation Macros. (line 10)
+* m4_argn: Looping constructs. (line 29)
+* m4_assert: Diagnostic Macros. (line 11)
+* m4_bmatch: Conditional constructs.
+ (line 11)
+* m4_bpatsubst: Redefined M4 Macros. (line 79)
+* m4_bpatsubsts: Conditional constructs.
+ (line 18)
+* m4_bregexp: Redefined M4 Macros. (line 84)
+* m4_builtin: Redefined M4 Macros. (line 6)
+* m4_car: Looping constructs. (line 35)
+* m4_case: Conditional constructs.
+ (line 33)
+* m4_cdr: Looping constructs. (line 41)
+* m4_changecom: Redefined M4 Macros. (line 6)
+* m4_changequote: Redefined M4 Macros. (line 6)
+* m4_chomp: Text processing Macros.
+ (line 80)
+* m4_chomp_all: Text processing Macros.
+ (line 80)
+* m4_cleardivert: Diversion support. (line 125)
+* m4_cmp: Number processing Macros.
+ (line 11)
+* m4_combine: Text processing Macros.
+ (line 88)
+* m4_cond: Conditional constructs.
+ (line 42)
+* m4_copy: Redefined M4 Macros. (line 92)
+* m4_copy_force: Redefined M4 Macros. (line 92)
+* m4_count: Evaluation Macros. (line 26)
+* m4_curry: Evaluation Macros. (line 30)
+* m4_debugfile: Redefined M4 Macros. (line 6)
+* m4_debugmode: Redefined M4 Macros. (line 6)
+* m4_decr: Redefined M4 Macros. (line 6)
+* m4_default: Conditional constructs.
+ (line 73)
+* m4_default_nblank: Conditional constructs.
+ (line 73)
+* m4_default_nblank_quoted: Conditional constructs.
+ (line 73)
+* m4_default_quoted: Conditional constructs.
+ (line 73)
+* m4_define: Redefined M4 Macros. (line 6)
+* m4_define_default: Conditional constructs.
+ (line 122)
+* m4_defn: Redefined M4 Macros. (line 111)
+* m4_divert: Redefined M4 Macros. (line 119)
+* m4_divert_once: Diversion support. (line 128)
+* m4_divert_pop: Diversion support. (line 133)
+* m4_divert_push: Diversion support. (line 139)
+* m4_divert_text: Diversion support. (line 145)
+* m4_divnum: Redefined M4 Macros. (line 6)
+* m4_do: Evaluation Macros. (line 45)
+* m4_dquote: Evaluation Macros. (line 65)
+* m4_dquote_elt: Evaluation Macros. (line 70)
+* m4_dumpdef: Redefined M4 Macros. (line 131)
+* m4_dumpdefs: Redefined M4 Macros. (line 131)
+* m4_echo: Evaluation Macros. (line 75)
+* m4_errprint: Redefined M4 Macros. (line 6)
+* m4_errprintn: Diagnostic Macros. (line 16)
+* m4_escape: Text processing Macros.
+ (line 108)
+* m4_esyscmd: Redefined M4 Macros. (line 6)
+* m4_esyscmd_s: Redefined M4 Macros. (line 148)
+* m4_eval: Redefined M4 Macros. (line 6)
+* m4_exit: Redefined M4 Macros. (line 154)
+* m4_expand: Evaluation Macros. (line 79)
+* m4_fatal: Diagnostic Macros. (line 20)
+* m4_flatten: Text processing Macros.
+ (line 113)
+* m4_for: Looping constructs. (line 59)
+* m4_foreach: Looping constructs. (line 69)
+* m4_foreach_w: Looping constructs. (line 83)
+* m4_format: Redefined M4 Macros. (line 6)
+* m4_if: Redefined M4 Macros. (line 160)
+* m4_ifblank: Conditional constructs.
+ (line 127)
+* m4_ifdef: Redefined M4 Macros. (line 6)
+* m4_ifnblank: Conditional constructs.
+ (line 127)
+* m4_ifndef: Conditional constructs.
+ (line 135)
+* m4_ifset: Conditional constructs.
+ (line 139)
+* m4_ifval: Conditional constructs.
+ (line 145)
+* m4_ifvaln: Conditional constructs.
+ (line 150)
+* m4_ignore: Evaluation Macros. (line 129)
+* m4_include: Redefined M4 Macros. (line 167)
+* m4_incr: Redefined M4 Macros. (line 6)
+* m4_index: Redefined M4 Macros. (line 6)
+* m4_indir: Redefined M4 Macros. (line 6)
+* m4_init: Diversion support. (line 171)
+* m4_join: Text processing Macros.
+ (line 119)
+* m4_joinall: Text processing Macros.
+ (line 119)
+* m4_len: Redefined M4 Macros. (line 6)
+* m4_list_cmp: Number processing Macros.
+ (line 16)
+* m4_location: Diagnostic Macros. (line 24)
+* m4_make_list: Evaluation Macros. (line 142)
+* m4_maketemp: Redefined M4 Macros. (line 171)
+* m4_map: Looping constructs. (line 93)
+* m4_map_args: Looping constructs. (line 130)
+* m4_map_args_pair: Looping constructs. (line 166)
+* m4_map_args_sep: Looping constructs. (line 178)
+* m4_map_args_w: Looping constructs. (line 189)
+* m4_map_sep: Looping constructs. (line 93)
+* m4_mapall: Looping constructs. (line 93)
+* m4_mapall_sep: Looping constructs. (line 93)
+* m4_max: Number processing Macros.
+ (line 38)
+* m4_min: Number processing Macros.
+ (line 42)
+* m4_mkstemp: Redefined M4 Macros. (line 171)
+* m4_n: Conditional constructs.
+ (line 154)
+* m4_newline: Text processing Macros.
+ (line 134)
+* m4_normalize: Text processing Macros.
+ (line 140)
+* m4_pattern_allow: Forbidden Patterns. (line 30)
+* m4_pattern_forbid: Forbidden Patterns. (line 17)
+* m4_popdef: Redefined M4 Macros. (line 182)
+* m4_pushdef: Redefined M4 Macros. (line 6)
+* m4_quote: Evaluation Macros. (line 161)
+* m4_re_escape: Text processing Macros.
+ (line 148)
+* m4_rename: Redefined M4 Macros. (line 92)
+* m4_rename_force: Redefined M4 Macros. (line 92)
+* m4_reverse: Evaluation Macros. (line 167)
+* m4_set_add: Set manipulation Macros.
+ (line 19)
+* m4_set_add_all: Set manipulation Macros.
+ (line 25)
+* m4_set_contains: Set manipulation Macros.
+ (line 29)
+* m4_set_contents: Set manipulation Macros.
+ (line 49)
+* m4_set_delete: Set manipulation Macros.
+ (line 79)
+* m4_set_difference: Set manipulation Macros.
+ (line 86)
+* m4_set_dump: Set manipulation Macros.
+ (line 49)
+* m4_set_empty: Set manipulation Macros.
+ (line 109)
+* m4_set_foreach: Set manipulation Macros.
+ (line 115)
+* m4_set_intersection: Set manipulation Macros.
+ (line 86)
+* m4_set_list: Set manipulation Macros.
+ (line 136)
+* m4_set_listc: Set manipulation Macros.
+ (line 136)
+* m4_set_map: Set manipulation Macros.
+ (line 171)
+* m4_set_map_sep: Set manipulation Macros.
+ (line 184)
+* m4_set_remove: Set manipulation Macros.
+ (line 195)
+* m4_set_size: Set manipulation Macros.
+ (line 206)
+* m4_set_union: Set manipulation Macros.
+ (line 86)
+* m4_shift: Redefined M4 Macros. (line 6)
+* m4_shift2: Looping constructs. (line 199)
+* m4_shift3: Looping constructs. (line 199)
+* m4_shiftn: Looping constructs. (line 199)
+* m4_sign: Number processing Macros.
+ (line 46)
+* m4_sinclude: Redefined M4 Macros. (line 167)
+* m4_split: Text processing Macros.
+ (line 152)
+* m4_stack_foreach: Looping constructs. (line 208)
+* m4_stack_foreach_lifo: Looping constructs. (line 208)
+* m4_stack_foreach_sep: Looping constructs. (line 230)
+* m4_stack_foreach_sep_lifo: Looping constructs. (line 230)
+* m4_strip: Text processing Macros.
+ (line 158)
+* m4_substr: Redefined M4 Macros. (line 6)
+* m4_syscmd: Redefined M4 Macros. (line 6)
+* m4_sysval: Redefined M4 Macros. (line 6)
+* m4_text_box: Text processing Macros.
+ (line 167)
+* m4_text_wrap: Text processing Macros.
+ (line 182)
+* m4_tolower: Text processing Macros.
+ (line 213)
+* m4_toupper: Text processing Macros.
+ (line 213)
+* m4_traceoff: Redefined M4 Macros. (line 6)
+* m4_traceon: Redefined M4 Macros. (line 6)
+* m4_translit: Redefined M4 Macros. (line 6)
+* m4_undefine: Redefined M4 Macros. (line 186)
+* m4_undivert: Redefined M4 Macros. (line 194)
+* m4_unquote: Evaluation Macros. (line 176)
+* m4_version_compare: Number processing Macros.
+ (line 50)
+* m4_version_prereq: Number processing Macros.
+ (line 90)
+* m4_warn: Diagnostic Macros. (line 28)
+* m4_wrap: Redefined M4 Macros. (line 204)
+* m4_wrap_lifo: Redefined M4 Macros. (line 204)
+
+
+File: autoconf.info, Node: Autotest Macro Index, Next: Program & Function Index, Prev: M4 Macro Index, Up: Indices
+
+B.7 Autotest Macro Index
+========================
+
+This is an alphabetical list of the Autotest macros.
+
+
+* Menu:
+
+* AT_ARG_OPTION: Writing Testsuites. (line 50)
+* AT_ARG_OPTION_ARG: Writing Testsuites. (line 79)
+* AT_BANNER: Writing Testsuites. (line 124)
+* AT_CAPTURE_FILE: Writing Testsuites. (line 155)
+* AT_CHECK: Writing Testsuites. (line 212)
+* AT_CHECK_EUNIT: Writing Testsuites. (line 302)
+* AT_CHECK_UNQUOTED: Writing Testsuites. (line 212)
+* AT_CLEANUP: Writing Testsuites. (line 198)
+* AT_COLOR_TESTS: Writing Testsuites. (line 105)
+* AT_COPYRIGHT: Writing Testsuites. (line 41)
+* AT_DATA: Writing Testsuites. (line 202)
+* AT_FAIL_IF: Writing Testsuites. (line 160)
+* AT_INIT: Writing Testsuites. (line 31)
+* AT_KEYWORDS: Writing Testsuites. (line 142)
+* AT_PACKAGE_BUGREPORT: Making testsuite Scripts.
+ (line 12)
+* AT_PACKAGE_NAME: Making testsuite Scripts.
+ (line 12)
+* AT_PACKAGE_STRING: Making testsuite Scripts.
+ (line 12)
+* AT_PACKAGE_TARNAME: Making testsuite Scripts.
+ (line 12)
+* AT_PACKAGE_URL: Making testsuite Scripts.
+ (line 12)
+* AT_PACKAGE_VERSION: Making testsuite Scripts.
+ (line 12)
+* AT_SETUP: Writing Testsuites. (line 134)
+* AT_SKIP_IF: Writing Testsuites. (line 175)
+* AT_TESTED: Writing Testsuites. (line 109)
+* AT_XFAIL_IF: Writing Testsuites. (line 190)
+
+
+File: autoconf.info, Node: Program & Function Index, Next: Concept Index, Prev: Autotest Macro Index, Up: Indices
+
+B.8 Program and Function Index
+==============================
+
+This is an alphabetical list of the programs and functions whose
+portability is discussed in this document.
+
+
+* Menu:
+
+* !: Limitations of Builtins.
+ (line 41)
+* .: Limitations of Builtins.
+ (line 17)
+* /usr/bin/ksh on Solaris: Shellology. (line 63)
+* /usr/dt/bin/dtksh on Solaris: Shellology. (line 66)
+* /usr/xpg4/bin/sh on Solaris: Shellology. (line 64)
+* alloca: Particular Functions.
+ (line 10)
+* alloca.h: Particular Functions.
+ (line 10)
+* assert.h: Particular Headers. (line 20)
+* awk: Limitations of Usual Tools.
+ (line 10)
+* basename: Limitations of Usual Tools.
+ (line 142)
+* break: Limitations of Builtins.
+ (line 107)
+* case: Limitations of Builtins.
+ (line 110)
+* cat: Limitations of Usual Tools.
+ (line 146)
+* cc: Limitations of Usual Tools.
+ (line 149)
+* cd: Limitations of Builtins.
+ (line 203)
+* chgrp: Limitations of Usual Tools.
+ (line 183)
+* chmod: Limitations of Usual Tools.
+ (line 187)
+* chown <1>: Limitations of Usual Tools.
+ (line 183)
+* chown: Particular Functions.
+ (line 63)
+* closedir: Particular Functions.
+ (line 69)
+* cmp: Limitations of Usual Tools.
+ (line 197)
+* cp: Limitations of Usual Tools.
+ (line 204)
+* ctype.h: Particular Headers. (line 135)
+* date: Limitations of Usual Tools.
+ (line 264)
+* diff: Limitations of Usual Tools.
+ (line 274)
+* dirent.h: Particular Headers. (line 25)
+* dirname: Limitations of Usual Tools.
+ (line 280)
+* echo: Limitations of Builtins.
+ (line 233)
+* egrep: Limitations of Usual Tools.
+ (line 287)
+* error_at_line: Particular Functions.
+ (line 84)
+* eval: Limitations of Builtins.
+ (line 270)
+* exec: Limitations of Builtins.
+ (line 315)
+* exit <1>: Limitations of Builtins.
+ (line 355)
+* exit: Function Portability.
+ (line 17)
+* export: Limitations of Builtins.
+ (line 380)
+* expr: Limitations of Usual Tools.
+ (line 312)
+* expr (|): Limitations of Usual Tools.
+ (line 326)
+* false: Limitations of Builtins.
+ (line 428)
+* fgrep: Limitations of Usual Tools.
+ (line 435)
+* find: Limitations of Usual Tools.
+ (line 444)
+* float.h: Particular Headers. (line 135)
+* fnmatch: Particular Functions.
+ (line 94)
+* fnmatch.h: Particular Functions.
+ (line 452)
+* for: Limitations of Builtins.
+ (line 432)
+* fork: Particular Functions.
+ (line 120)
+* free: Function Portability.
+ (line 27)
+* fseeko: Particular Functions.
+ (line 147)
+* ftello: Particular Functions.
+ (line 147)
+* getgroups: Particular Functions.
+ (line 155)
+* getloadavg: Particular Functions.
+ (line 161)
+* getmntent: Particular Functions.
+ (line 195)
+* getpgid: Particular Functions.
+ (line 205)
+* getpgrp: Particular Functions.
+ (line 205)
+* grep: Limitations of Usual Tools.
+ (line 458)
+* if: Limitations of Builtins.
+ (line 477)
+* inttypes.h <1>: Particular Types. (line 6)
+* inttypes.h: Header Portability. (line 20)
+* isinf: Function Portability.
+ (line 32)
+* isnan: Function Portability.
+ (line 32)
+* join: Limitations of Usual Tools.
+ (line 526)
+* ksh: Shellology. (line 57)
+* ksh88: Shellology. (line 57)
+* ksh93: Shellology. (line 57)
+* linux/irda.h: Header Portability. (line 27)
+* linux/random.h: Header Portability. (line 30)
+* ln: Limitations of Usual Tools.
+ (line 543)
+* ls: Limitations of Usual Tools.
+ (line 555)
+* lstat: Particular Functions.
+ (line 228)
+* make: Portable Make. (line 6)
+* malloc <1>: Particular Functions.
+ (line 247)
+* malloc: Function Portability.
+ (line 82)
+* mbrtowc: Particular Functions.
+ (line 279)
+* memcmp: Particular Functions.
+ (line 286)
+* mkdir: Limitations of Usual Tools.
+ (line 577)
+* mkfifo: Limitations of Usual Tools.
+ (line 611)
+* mknod: Limitations of Usual Tools.
+ (line 611)
+* mktemp: Limitations of Usual Tools.
+ (line 621)
+* mktime: Particular Functions.
+ (line 299)
+* mmap: Particular Functions.
+ (line 311)
+* mv: Limitations of Usual Tools.
+ (line 646)
+* ndir.h: Particular Headers. (line 25)
+* net/if.h: Header Portability. (line 33)
+* netinet/if_ether.h: Header Portability. (line 53)
+* nlist.h: Particular Functions.
+ (line 178)
+* od: Limitations of Usual Tools.
+ (line 678)
+* pdksh: Shellology. (line 77)
+* printf: Limitations of Builtins.
+ (line 516)
+* putenv: Function Portability.
+ (line 89)
+* pwd: Limitations of Builtins.
+ (line 543)
+* read: Limitations of Builtins.
+ (line 574)
+* realloc <1>: Particular Functions.
+ (line 326)
+* realloc: Function Portability.
+ (line 105)
+* resolv.h: Particular Headers. (line 73)
+* rm: Limitations of Usual Tools.
+ (line 687)
+* rmdir: Limitations of Usual Tools.
+ (line 706)
+* sed: Limitations of Usual Tools.
+ (line 710)
+* sed (t): Limitations of Usual Tools.
+ (line 905)
+* select: Particular Functions.
+ (line 337)
+* set: Limitations of Builtins.
+ (line 580)
+* setpgrp: Particular Functions.
+ (line 348)
+* setvbuf: Obsolete Macros. (line 208)
+* shift: Limitations of Builtins.
+ (line 732)
+* sigaction: Function Portability.
+ (line 110)
+* signal: Function Portability.
+ (line 110)
+* signal.h: Obsolete Macros. (line 662)
+* sleep: Limitations of Usual Tools.
+ (line 965)
+* snprintf: Function Portability.
+ (line 124)
+* sort: Limitations of Usual Tools.
+ (line 971)
+* source: Limitations of Builtins.
+ (line 740)
+* sprintf: Function Portability.
+ (line 135)
+* sscanf: Function Portability.
+ (line 141)
+* stat: Particular Functions.
+ (line 363)
+* stdarg.h: Particular Headers. (line 135)
+* stdbool.h: Particular Headers. (line 10)
+* stdint.h <1>: Particular Types. (line 6)
+* stdint.h: Header Portability. (line 20)
+* stdlib.h <1>: Particular Types. (line 6)
+* stdlib.h <2>: Particular Headers. (line 135)
+* stdlib.h: Header Portability. (line 76)
+* strcoll: Particular Functions.
+ (line 379)
+* strerror_r <1>: Particular Functions.
+ (line 388)
+* strerror_r: Function Portability.
+ (line 149)
+* strftime: Particular Functions.
+ (line 401)
+* string.h: Particular Headers. (line 135)
+* strings.h: Particular Headers. (line 154)
+* strnlen <1>: Particular Functions.
+ (line 426)
+* strnlen: Function Portability.
+ (line 155)
+* strtod: Particular Functions.
+ (line 408)
+* strtold: Particular Functions.
+ (line 420)
+* sys/dir.h: Particular Headers. (line 25)
+* sys/ioctl.h: Particular Headers. (line 270)
+* sys/mkdev.h: Particular Headers. (line 68)
+* sys/mount.h: Header Portability. (line 79)
+* sys/ndir.h: Particular Headers. (line 25)
+* sys/ptem.h: Header Portability. (line 83)
+* sys/socket.h: Header Portability. (line 86)
+* sys/stat.h: Particular Headers. (line 92)
+* sys/sysmacros.h: Particular Headers. (line 68)
+* sys/time.h <1>: Particular Structures.
+ (line 35)
+* sys/time.h: Particular Headers. (line 244)
+* sys/types.h: Particular Types. (line 6)
+* sys/ucred.h: Header Portability. (line 89)
+* sys/wait.h: Particular Headers. (line 204)
+* sysconf: Function Portability.
+ (line 170)
+* tar: Limitations of Usual Tools.
+ (line 976)
+* termios.h: Particular Headers. (line 270)
+* test: Limitations of Builtins.
+ (line 744)
+* time.h <1>: Particular Structures.
+ (line 35)
+* time.h: Particular Headers. (line 244)
+* touch: Limitations of Usual Tools.
+ (line 981)
+* tr: Limitations of Usual Tools.
+ (line 994)
+* trap: Limitations of Builtins.
+ (line 856)
+* true: Limitations of Builtins.
+ (line 930)
+* unistd.h: Particular Headers. (line 228)
+* unlink: Function Portability.
+ (line 174)
+* unset: Limitations of Builtins.
+ (line 946)
+* unsetenv: Function Portability.
+ (line 180)
+* utime: Particular Functions.
+ (line 433)
+* va_copy: Function Portability.
+ (line 185)
+* va_list: Function Portability.
+ (line 192)
+* vfork: Particular Functions.
+ (line 120)
+* vfork.h: Particular Functions.
+ (line 120)
+* vprintf: Particular Functions.
+ (line 443)
+* vsnprintf: Function Portability.
+ (line 124)
+* vsprintf <1>: Particular Functions.
+ (line 443)
+* vsprintf: Function Portability.
+ (line 135)
+* wait: Limitations of Builtins.
+ (line 973)
+* wait3: Obsolete Macros. (line 216)
+* wchar.h: Particular Types. (line 88)
+* X11/extensions/scrnsaver.h: Header Portability. (line 92)
+* {...}: Limitations of Builtins.
+ (line 74)
+
+
+File: autoconf.info, Node: Concept Index, Prev: Program & Function Index, Up: Indices
+
+B.9 Concept Index
+=================
+
+This is an alphabetical list of the files, tools, and concepts
+introduced in this document.
+
+
+* Menu:
+
+* "$@": Shell Substitutions. (line 70)
+* $((EXPRESSION)): Shell Substitutions. (line 456)
+* $(COMMANDS): Shell Substitutions. (line 423)
+* $<, explicit rules, and VPATH: $< in Explicit Rules.
+ (line 6)
+* ${#VAR}: Shell Substitutions. (line 369)
+* ${VAR##WORD}: Shell Substitutions. (line 369)
+* ${VAR#WORD}: Shell Substitutions. (line 369)
+* ${VAR%%WORD}: Shell Substitutions. (line 369)
+* ${VAR%WORD}: Shell Substitutions. (line 369)
+* ${VAR+VALUE}: Shell Substitutions. (line 148)
+* ${VAR-VALUE}: Shell Substitutions. (line 140)
+* ${VAR=EXPANDED-VALUE}: Shell Substitutions. (line 319)
+* ${VAR=LITERAL}: Shell Substitutions. (line 295)
+* ${VAR=VALUE}: Shell Substitutions. (line 215)
+* 64-bit libraries: Site Defaults. (line 97)
+* @&t@: Quadrigraphs. (line 6)
+* @S|@: Quadrigraphs. (line 6)
+* ^ quoting: Shell Substitutions. (line 496)
+* _m4_divert_diversion: New Macros. (line 6)
+* `COMMANDS`: Shell Substitutions. (line 377)
+* abs_builddir: Preset Output Variables.
+ (line 177)
+* abs_srcdir: Preset Output Variables.
+ (line 199)
+* abs_top_builddir: Preset Output Variables.
+ (line 192)
+* abs_top_srcdir: Preset Output Variables.
+ (line 206)
+* absolute file names, detect: File System Conventions.
+ (line 52)
+* ac_objext: Generic Functions. (line 59)
+* ac_path_VARIABLE: Generic Programs. (line 123)
+* ac_path_VARIABLE_found: Generic Programs. (line 123)
+* ac_srcdir: Configuration Actions.
+ (line 85)
+* ac_top_build_prefix: Configuration Actions.
+ (line 80)
+* ac_top_srcdir: Configuration Actions.
+ (line 76)
+* acconfig.h: acconfig Header. (line 6)
+* aclocal.m4: Making configure Scripts.
+ (line 6)
+* Ash: Shellology. (line 16)
+* at_arg_OPTION: Writing Testsuites. (line 50)
+* at_optarg: Writing Testsuites. (line 62)
+* at_optarg_OPTION: Writing Testsuites. (line 62)
+* at_status: Writing Testsuites. (line 212)
+* autoconf: autoconf Invocation. (line 6)
+* Autoconf upgrading <1>: Autoconf 2.13. (line 6)
+* Autoconf upgrading: Autoconf 1. (line 6)
+* Autoconf version: Versioning. (line 6)
+* autoheader: autoheader Invocation.
+ (line 6)
+* Autoheader macros: Autoheader Macros. (line 6)
+* autom4te debugging tips: Debugging via autom4te.
+ (line 6)
+* Autom4te Library: autom4te Invocation. (line 225)
+* autom4te.cache: autom4te Invocation. (line 130)
+* autom4te.cfg: autom4te Invocation. (line 258)
+* Automake: Automake. (line 19)
+* Automatic remaking: Automatic Remaking. (line 6)
+* automatic rule rewriting and VPATH: Automatic Rule Rewriting.
+ (line 6)
+* autopoint: autoreconf Invocation.
+ (line 30)
+* autoreconf: autoreconf Invocation.
+ (line 6)
+* autoscan: autoscan Invocation. (line 6)
+* Autotest: Using Autotest. (line 6)
+* AUTOTEST_PATH: testsuite Invocation.
+ (line 60)
+* autoupdate: autoupdate Invocation.
+ (line 6)
+* Back trace <1>: autom4te Invocation. (line 86)
+* Back trace: autoconf Invocation. (line 86)
+* balancing parentheses: Balancing Parentheses.
+ (line 6)
+* Bash: Shellology. (line 43)
+* Bash 2.05 and later: Shellology. (line 49)
+* bindir: Installation Directory Variables.
+ (line 15)
+* Bootstrap: Bootstrapping. (line 6)
+* BSD make and obj/: obj/ and Make. (line 6)
+* buffer overruns: Buffer Overruns. (line 6)
+* Build directories: Build Directories. (line 6)
+* builddir: Preset Output Variables.
+ (line 174)
+* C function portability: Function Portability.
+ (line 6)
+* C types: Types. (line 6)
+* Cache: Caching Results. (line 6)
+* Cache variable: Cache Variable Names.
+ (line 6)
+* Cache, enabling: configure Invocation.
+ (line 25)
+* Canonical system type: Canonicalizing. (line 6)
+* carriage return, deleting: Limitations of Usual Tools.
+ (line 994)
+* CFLAGS: Preset Output Variables.
+ (line 23)
+* changequote: Changequote is Evil. (line 6)
+* Coding style: Coding Style. (line 6)
+* Command Substitution: Shell Substitutions. (line 377)
+* command-line, macros set on: Command-line Macros and whitespace.
+ (line 6)
+* Commands for configuration: Configuration Commands.
+ (line 6)
+* Comments in Makefile macros: Comments in Make Macros.
+ (line 6)
+* Comments in Makefile rules: Comments in Make Rules.
+ (line 6)
+* Common autoconf behavior: Common Behavior. (line 6)
+* Compilers: Compilers and Preprocessors.
+ (line 6)
+* composing variable names: Polymorphic Variables.
+ (line 131)
+* config.h: Configuration Headers.
+ (line 6)
+* config.h.bot: acconfig Header. (line 6)
+* config.h.in: Header Templates. (line 6)
+* config.h.top: acconfig Header. (line 6)
+* config.site: Site Defaults. (line 6)
+* config.status: config.status Invocation.
+ (line 6)
+* config.sub: Specifying Target Triplets.
+ (line 59)
+* CONFIG_COMMANDS: Obsolete config.status Use.
+ (line 11)
+* CONFIG_FILES: Obsolete config.status Use.
+ (line 15)
+* CONFIG_HEADERS: Obsolete config.status Use.
+ (line 20)
+* CONFIG_LINKS: Obsolete config.status Use.
+ (line 25)
+* CONFIG_SHELL: config.status Invocation.
+ (line 102)
+* CONFIG_STATUS: config.status Invocation.
+ (line 108)
+* Configuration actions: Configuration Actions.
+ (line 6)
+* Configuration commands: Configuration Commands.
+ (line 6)
+* Configuration file creation: Configuration Files. (line 6)
+* Configuration Header: Configuration Headers.
+ (line 6)
+* Configuration Header Template: Header Templates. (line 6)
+* Configuration links: Configuration Links. (line 6)
+* configure <1>: Running configure Scripts.
+ (line 6)
+* configure: Making configure Scripts.
+ (line 6)
+* Configure subdirectories: Subdirectories. (line 6)
+* configure.ac: Making configure Scripts.
+ (line 27)
+* configure.in: Making configure Scripts.
+ (line 27)
+* configure_input: Preset Output Variables.
+ (line 58)
+* Copyright Notice <1>: Writing Testsuites. (line 41)
+* Copyright Notice: Notices. (line 10)
+* CPPFLAGS: Preset Output Variables.
+ (line 72)
+* Creating configuration files: Configuration Files. (line 6)
+* Creating temporary files: Limitations of Usual Tools.
+ (line 621)
+* Cross compilation: Hosts and Cross-Compilation.
+ (line 6)
+* CXXFLAGS: Preset Output Variables.
+ (line 94)
+* Darwin: Systemology. (line 23)
+* Data structure, set: Set manipulation Macros.
+ (line 6)
+* datadir: Installation Directory Variables.
+ (line 18)
+* datarootdir <1>: Changed Directory Variables.
+ (line 6)
+* datarootdir: Installation Directory Variables.
+ (line 22)
+* debugging tips: Debugging via autom4te.
+ (line 6)
+* Declaration, checking: Declarations. (line 6)
+* Default includes: Default Includes. (line 6)
+* DEFS: Preset Output Variables.
+ (line 98)
+* deleting carriage return: Limitations of Usual Tools.
+ (line 994)
+* Dependencies between macros: Dependencies Between Macros.
+ (line 6)
+* Descriptors: File Descriptors. (line 6)
+* descriptors: File Descriptor Macros.
+ (line 6)
+* Directories, build: Build Directories. (line 6)
+* Directories, installation: Installation Directory Variables.
+ (line 6)
+* division, integer: Signed Integer Division.
+ (line 6)
+* dnl <1>: Coding Style. (line 42)
+* dnl: Macro Definitions. (line 51)
+* docdir: Installation Directory Variables.
+ (line 26)
+* double-colon rules and VPATH: VPATH and Double-colon.
+ (line 6)
+* dvidir: Installation Directory Variables.
+ (line 30)
+* ECHO_C: Preset Output Variables.
+ (line 106)
+* ECHO_N: Preset Output Variables.
+ (line 107)
+* ECHO_T: Preset Output Variables.
+ (line 108)
+* Endianness: C Compiler. (line 184)
+* environment, macros set from: Command-line Macros and whitespace.
+ (line 6)
+* Erlang: Erlang Compiler and Interpreter.
+ (line 6)
+* Erlang, Library, checking: Erlang Libraries. (line 6)
+* ERLANG_INSTALL_LIB_DIR: Installation Directory Variables.
+ (line 201)
+* ERLANG_INSTALL_LIB_DIR_: Installation Directory Variables.
+ (line 206)
+* ERLCFLAGS: Preset Output Variables.
+ (line 120)
+* exec_prefix: Installation Directory Variables.
+ (line 33)
+* exiting portably: Exiting Portably. (line 6)
+* expanded before required: Expanded Before Required.
+ (line 6)
+* explicit rules, $<, and VPATH: $< in Explicit Rules.
+ (line 6)
+* External software: External Software. (line 6)
+* F77: Fortran Compiler. (line 6)
+* FCFLAGS: Preset Output Variables.
+ (line 126)
+* FFLAGS: Preset Output Variables.
+ (line 133)
+* FHS: Site Defaults. (line 83)
+* File descriptors: File Descriptors. (line 6)
+* file descriptors: File Descriptor Macros.
+ (line 6)
+* File system conventions: File System Conventions.
+ (line 6)
+* File, checking: Files. (line 6)
+* Filesystem Hierarchy Standard: Site Defaults. (line 83)
+* floating point: Floating Point Portability.
+ (line 6)
+* Forbidden patterns: Forbidden Patterns. (line 6)
+* Fortran: Fortran Compiler. (line 6)
+* Function, checking: Particular Functions.
+ (line 6)
+* Gettext: autoreconf Invocation.
+ (line 30)
+* GNU build system: The GNU Build System.
+ (line 6)
+* Gnulib: Gnulib. (line 11)
+* Go: Go Compiler. (line 6)
+* GOFLAGS: Preset Output Variables.
+ (line 170)
+* Header portability: Header Portability. (line 6)
+* Header templates: Header Templates. (line 6)
+* Header, checking: Header Files. (line 6)
+* Help strings: Pretty Help Strings. (line 6)
+* Here-documents: Here-Documents. (line 6)
+* History of autoconf: History. (line 6)
+* htmldir: Installation Directory Variables.
+ (line 40)
+* ifnames: ifnames Invocation. (line 6)
+* Imake: Why Not Imake. (line 6)
+* includedir: Installation Directory Variables.
+ (line 43)
+* Includes, default: Default Includes. (line 6)
+* indirection, variable name: Polymorphic Variables.
+ (line 6)
+* infodir: Installation Directory Variables.
+ (line 46)
+* input: File Descriptor Macros.
+ (line 6)
+* Install prefix: Default Prefix. (line 6)
+* Installation directories: Installation Directory Variables.
+ (line 6)
+* Instantiation: Output. (line 13)
+* integer overflow <1>: Signed Overflow Advice.
+ (line 6)
+* integer overflow <2>: Signed Overflow Examples.
+ (line 6)
+* integer overflow <3>: Integer Overflow Basics.
+ (line 6)
+* integer overflow: Integer Overflow. (line 6)
+* Introduction: Introduction. (line 6)
+* invoking the shell: Invoking the Shell. (line 6)
+* Korn shell: Shellology. (line 57)
+* Ksh: Shellology. (line 57)
+* Language: Language Choice. (line 6)
+* Large file support: System Services. (line 49)
+* LDFLAGS: Preset Output Variables.
+ (line 140)
+* LFS: System Services. (line 49)
+* lib64: Site Defaults. (line 97)
+* libdir: Installation Directory Variables.
+ (line 49)
+* libexecdir: Installation Directory Variables.
+ (line 52)
+* Library, checking: Libraries. (line 6)
+* LIBS: Preset Output Variables.
+ (line 154)
+* Libtool: Libtool. (line 14)
+* License: Distributing. (line 6)
+* Limitations of make: Portable Make. (line 6)
+* Limitations of shell builtins: Limitations of Builtins.
+ (line 6)
+* Limitations of usual tools: Limitations of Usual Tools.
+ (line 6)
+* Links: Configuration Links. (line 12)
+* Links for configuration: Configuration Links. (line 6)
+* Listing directories: Limitations of Usual Tools.
+ (line 555)
+* localedir: Installation Directory Variables.
+ (line 55)
+* localstatedir: Installation Directory Variables.
+ (line 60)
+* loop induction: Optimization and Wraparound.
+ (line 6)
+* low-level output: File Descriptor Macros.
+ (line 6)
+* M4: Programming in M4. (line 6)
+* M4 quotation: M4 Quotation. (line 6)
+* M4sugar: Programming in M4sugar.
+ (line 6)
+* m4sugar debugging tips: Debugging via autom4te.
+ (line 6)
+* Macro invocation stack <1>: autom4te Invocation. (line 86)
+* Macro invocation stack: autoconf Invocation. (line 86)
+* Macros, called once: One-Shot Macros. (line 6)
+* Macros, obsoleting: Obsoleting Macros. (line 6)
+* Macros, ordering: Suggested Ordering. (line 6)
+* Macros, prerequisites: Prerequisite Macros. (line 6)
+* make -k: make -k Status. (line 6)
+* make and MAKEFLAGS: The Make Macro MAKEFLAGS.
+ (line 6)
+* make and SHELL: The Make Macro SHELL.
+ (line 6)
+* Makefile macros and comments: Comments in Make Macros.
+ (line 6)
+* Makefile macros and whitespace: Trailing whitespace in Make Macros.
+ (line 6)
+* Makefile rules and comments: Comments in Make Rules.
+ (line 6)
+* Makefile rules and newlines: Newlines in Make Rules.
+ (line 6)
+* Makefile substitutions: Makefile Substitutions.
+ (line 6)
+* MAKEFLAGS and make: The Make Macro MAKEFLAGS.
+ (line 6)
+* Making directories: Limitations of Usual Tools.
+ (line 577)
+* mandir: Installation Directory Variables.
+ (line 63)
+* Messages, from autoconf: Reporting Messages. (line 6)
+* Messages, from configure: Printing Messages. (line 6)
+* Messages, from M4sugar: Diagnostic Macros. (line 6)
+* Moving open files: Limitations of Usual Tools.
+ (line 646)
+* newline, deleting: Limitations of Usual Tools.
+ (line 994)
+* Newlines in Makefile rules: Newlines in Make Rules.
+ (line 6)
+* Notices in configure: Notices. (line 6)
+* null pointers: Null Pointers. (line 6)
+* obj/, subdirectory: obj/ and Make. (line 6)
+* OBJCFLAGS: Preset Output Variables.
+ (line 162)
+* OBJCXXFLAGS: Preset Output Variables.
+ (line 166)
+* Obsolete constructs: Obsolete Constructs. (line 6)
+* Obsoleting macros: Obsoleting Macros. (line 6)
+* obstack: Particular Functions.
+ (line 319)
+* oldincludedir: Installation Directory Variables.
+ (line 66)
+* One-shot macros: One-Shot Macros. (line 6)
+* Options, Package: Option Checking. (line 6)
+* Options, package: Package Options. (line 6)
+* Ordering macros: Suggested Ordering. (line 6)
+* Output variables <1>: Setting Output Variables.
+ (line 6)
+* Output variables: Preset Output Variables.
+ (line 6)
+* Output variables, special characters in: Special Chars in Variables.
+ (line 6)
+* output, low-level: File Descriptor Macros.
+ (line 6)
+* Outputting files: Output. (line 6)
+* overflow, signed integer <1>: Signed Overflow Advice.
+ (line 6)
+* overflow, signed integer <2>: Signed Overflow Examples.
+ (line 6)
+* overflow, signed integer <3>: Integer Overflow Basics.
+ (line 6)
+* overflow, signed integer: Integer Overflow. (line 6)
+* Package options: Package Options. (line 6)
+* package.m4: Making testsuite Scripts.
+ (line 12)
+* Parallel make: Parallel Make. (line 6)
+* parentheses, balancing: Balancing Parentheses.
+ (line 6)
+* Patterns, forbidden: Forbidden Patterns. (line 6)
+* pdfdir: Installation Directory Variables.
+ (line 69)
+* polymorphic variable name: Polymorphic Variables.
+ (line 6)
+* portability: Varieties of Unportability.
+ (line 6)
+* Portability of C functions: Function Portability.
+ (line 6)
+* Portability of headers: Header Portability. (line 6)
+* Portable C and C++ programming: Portable C and C++. (line 6)
+* Portable shell programming: Portable Shell. (line 6)
+* positional parameters: Shell Substitutions. (line 121)
+* Posix termios headers: System Services. (line 75)
+* Precious Variable: Setting Output Variables.
+ (line 65)
+* prefix: Installation Directory Variables.
+ (line 72)
+* Prefix for install: Default Prefix. (line 6)
+* preprocessor arithmetic: Preprocessor Arithmetic.
+ (line 6)
+* Preprocessors: Compilers and Preprocessors.
+ (line 6)
+* prerequisite directories and VPATH: Tru64 Directory Magic.
+ (line 6)
+* Prerequisite macros: Prerequisite Macros. (line 6)
+* Program names, transforming: Transforming Names. (line 6)
+* Programs, checking: Alternative Programs.
+ (line 6)
+* psdir: Installation Directory Variables.
+ (line 77)
+* QNX 4.25: Systemology. (line 37)
+* quadrigraphs: Quadrigraphs. (line 6)
+* quotation <1>: M4 Quotation. (line 6)
+* quotation: Autoconf Language. (line 6)
+* Remaking automatically: Automatic Remaking. (line 6)
+* Revision: Notices. (line 18)
+* Rule, Single Suffix Inference: Single Suffix Rules. (line 6)
+* sbindir: Installation Directory Variables.
+ (line 80)
+* Separated Dependencies: Single Suffix Rules. (line 9)
+* set -b: Limitations of Builtins.
+ (line 689)
+* set -e: Limitations of Builtins.
+ (line 605)
+* set -m: Limitations of Builtins.
+ (line 689)
+* set -n: Limitations of Builtins.
+ (line 713)
+* Set manipulation: Set manipulation Macros.
+ (line 6)
+* sharedstatedir: Installation Directory Variables.
+ (line 84)
+* SHELL and make: The Make Macro SHELL.
+ (line 6)
+* Shell assignments: Assignments. (line 6)
+* Shell builtins: Limitations of Builtins.
+ (line 6)
+* Shell file descriptors: File Descriptors. (line 6)
+* Shell Functions: Shell Functions. (line 6)
+* Shell here-documents: Here-Documents. (line 6)
+* shell invocation: Invoking the Shell. (line 6)
+* Shell parentheses: Parentheses. (line 6)
+* Shell pattern matching: Shell Pattern Matching.
+ (line 6)
+* Shell slashes: Slashes. (line 6)
+* Shell substitutions: Shell Substitutions. (line 6)
+* Shell variables: Special Shell Variables.
+ (line 6)
+* Shellology: Shellology. (line 6)
+* Signal handling in the shell: Signal Handling. (line 6)
+* Signals, shells and: Signal Handling. (line 6)
+* signed integer overflow <1>: Signed Overflow Advice.
+ (line 6)
+* signed integer overflow <2>: Signed Overflow Examples.
+ (line 6)
+* signed integer overflow <3>: Integer Overflow Basics.
+ (line 6)
+* signed integer overflow: Integer Overflow. (line 6)
+* Single Suffix Inference Rule: Single Suffix Rules. (line 6)
+* Site defaults: Site Defaults. (line 6)
+* Site details: Site Details. (line 6)
+* Special shell variables: Special Shell Variables.
+ (line 6)
+* srcdir <1>: Preset Output Variables.
+ (line 195)
+* srcdir: Configuration Actions.
+ (line 71)
+* standard input: File Descriptor Macros.
+ (line 6)
+* Standard symbols: Standard Symbols. (line 6)
+* Structure, checking: Structures. (line 6)
+* Subdirectory configure: Subdirectories. (line 6)
+* Substitutions in makefiles: Makefile Substitutions.
+ (line 6)
+* Symbolic links: Limitations of Usual Tools.
+ (line 543)
+* sysconfdir: Installation Directory Variables.
+ (line 88)
+* System type <1>: Canonicalizing. (line 6)
+* System type: Specifying Target Triplets.
+ (line 6)
+* Systemology: Systemology. (line 6)
+* Target triplet: Specifying Target Triplets.
+ (line 6)
+* termios Posix headers: System Services. (line 75)
+* test group: testsuite Scripts. (line 12)
+* testsuite <1>: testsuite Invocation.
+ (line 6)
+* testsuite: testsuite Scripts. (line 6)
+* timestamp resolution <1>: Timestamps and Make. (line 6)
+* timestamp resolution: Limitations of Usual Tools.
+ (line 226)
+* tmp: Configuration Actions.
+ (line 89)
+* top_build_prefix: Preset Output Variables.
+ (line 184)
+* top_builddir: Preset Output Variables.
+ (line 180)
+* top_srcdir: Preset Output Variables.
+ (line 202)
+* Transforming program names: Transforming Names. (line 6)
+* Tru64: Systemology. (line 44)
+* Types: Types. (line 6)
+* unbalanced parentheses, managing: Balancing Parentheses.
+ (line 6)
+* undefined macro: New Macros. (line 6)
+* Unix version 7: Systemology. (line 49)
+* Unordered set manipulation: Set manipulation Macros.
+ (line 6)
+* Upgrading autoconf <1>: Autoconf 2.13. (line 6)
+* Upgrading autoconf: Autoconf 1. (line 6)
+* V7: Systemology. (line 49)
+* variable name indirection: Polymorphic Variables.
+ (line 6)
+* variable names, composing: Polymorphic Variables.
+ (line 131)
+* Variable, Precious: Setting Output Variables.
+ (line 65)
+* variables and VPATH: Variables listed in VPATH.
+ (line 6)
+* Version: Versioning. (line 11)
+* version, Autoconf: Versioning. (line 6)
+* volatile objects: Volatile Objects. (line 6)
+* VPATH: VPATH and Make. (line 6)
+* VPATH and automatic rule rewriting: Automatic Rule Rewriting.
+ (line 6)
+* VPATH and double-colon rules: VPATH and Double-colon.
+ (line 6)
+* VPATH and prerequisite directories: Tru64 Directory Magic.
+ (line 6)
+* VPATH and variables: Variables listed in VPATH.
+ (line 6)
+* VPATH, explicit rules, and $<: $< in Explicit Rules.
+ (line 6)
+* VPATH, resolving target pathnames: Make Target Lookup. (line 6)
+* whitespace in command-line macros: Command-line Macros and whitespace.
+ (line 6)
+* whitespace in Makefile macros: Trailing whitespace in Make Macros.
+ (line 6)
+* wraparound arithmetic <1>: Signed Overflow Advice.
+ (line 6)
+* wraparound arithmetic <2>: Signed Overflow Examples.
+ (line 6)
+* wraparound arithmetic <3>: Integer Overflow Basics.
+ (line 6)
+* wraparound arithmetic: Integer Overflow. (line 6)
+* X Window System: System Services. (line 10)
+* Zsh: Shellology. (line 87)
+
+
+
+Tag Table:
+Node: Top1954
+Node: Introduction21371
+Node: The GNU Build System27935
+Node: Automake28914
+Node: Gnulib30863
+Node: Libtool32172
+Node: Pointers33594
+Ref: Pointers-Footnote-134895
+Node: Making configure Scripts35055
+Node: Writing Autoconf Input38404
+Node: Shell Script Compiler39867
+Node: Autoconf Language42228
+Node: Autoconf Input Layout49397
+Node: autoscan Invocation50805
+Node: ifnames Invocation53361
+Node: autoconf Invocation54561
+Node: autoreconf Invocation59846
+Node: Setup64607
+Node: Initializing configure65929
+Ref: AC_INIT66434
+Node: Versioning69318
+Node: Notices71179
+Node: Input72354
+Ref: AC_CONFIG_SRCDIR72495
+Node: Output75442
+Ref: AC_OUTPUT75877
+Ref: AC_PROG_MAKE_SET77495
+Node: Configuration Actions77920
+Node: Configuration Files83208
+Ref: AC_CONFIG_FILES83469
+Node: Makefile Substitutions84688
+Node: Preset Output Variables86431
+Node: Installation Directory Variables95945
+Node: Changed Directory Variables103793
+Node: Build Directories106387
+Node: Automatic Remaking108242
+Node: Configuration Headers110410
+Node: Header Templates113712
+Node: autoheader Invocation116447
+Node: Autoheader Macros120089
+Node: Configuration Commands122354
+Ref: AC_CONFIG_COMMANDS122866
+Node: Configuration Links124151
+Ref: AC_CONFIG_LINKS124602
+Node: Subdirectories125575
+Node: Default Prefix128055
+Ref: AC_PREFIX_PROGRAM128946
+Node: Existing Tests129477
+Node: Common Behavior131279
+Node: Standard Symbols131918
+Node: Default Includes132499
+Node: Alternative Programs134753
+Node: Particular Programs135439
+Ref: AC_PROG_LEX141187
+Ref: AC_PROG_LN_S143798
+Node: Generic Programs145416
+Ref: AC_CHECK_PROG146388
+Ref: AC_CHECK_PROGS147114
+Ref: AC_PATH_PROG151114
+Ref: AC_PATH_PROGS151488
+Node: Files154567
+Node: Libraries155767
+Ref: AC_CHECK_LIB156008
+Ref: AC_SEARCH_LIBS158267
+Node: Library Functions159451
+Node: Function Portability160074
+Node: Particular Functions169586
+Ref: AC_FUNC_ALLOCA169917
+Ref: AC_FUNC_CLOSEDIR_VOID172306
+Ref: AC_FUNC_FORK174296
+Ref: AC_FUNC_GETLOADAVG176338
+Ref: AC_FUNC_GETMNTENT177903
+Ref: AC_FUNC_MMAP182145
+Ref: AC_FUNC_STRCOLL185000
+Ref: AC_FUNC_STRFTIME185975
+Ref: AC_FUNC_UTIME_NULL187257
+Ref: AC_FUNC_VPRINTF187605
+Node: Generic Functions188821
+Ref: AC_CHECK_FUNC189347
+Ref: AC_CHECK_FUNCS189976
+Node: Header Files194602
+Node: Header Portability195235
+Node: Particular Headers198330
+Ref: AC_HEADER_DIRENT199369
+Ref: AC_HEADER_MAJOR200899
+Ref: AC_HEADER_STAT201683
+Ref: AC_HEADER_STDC203189
+Ref: AC_HEADER_TIME207928
+Node: Generic Headers209315
+Ref: AC_CHECK_HEADER209715
+Ref: AC_CHECK_HEADERS211588
+Node: Declarations214153
+Node: Particular Declarations214749
+Node: Generic Declarations214973
+Ref: AC_CHECK_DECLS216358
+Node: Structures218884
+Node: Particular Structures219499
+Ref: AC_STRUCT_ST_BLOCKS220568
+Ref: AC_STRUCT_TIMEZONE221264
+Node: Generic Structures221593
+Ref: AC_CHECK_MEMBERS222584
+Node: Types223417
+Node: Particular Types223937
+Ref: AC_TYPE_GETGROUPS224380
+Ref: AC_TYPE_MODE_T227416
+Ref: AC_TYPE_OFF_T227599
+Ref: AC_TYPE_PID_T227779
+Ref: AC_TYPE_SIZE_T227959
+Ref: AC_TYPE_UID_T228328
+Node: Generic Types229973
+Node: Compilers and Preprocessors232128
+Node: Specific Compiler Characteristics233402
+Node: Generic Compiler Characteristics234507
+Ref: AC_CHECK_SIZEOF234747
+Node: C Compiler239537
+Ref: AC_PROG_CC_C_O243988
+Ref: AC_C_BIGENDIAN247796
+Ref: AC_C_CONST249637
+Ref: AC_C_INLINE252955
+Ref: AC_C_CHAR_UNSIGNED253178
+Ref: AC_PROG_GCC_TRADITIONAL255800
+Node: C++ Compiler256212
+Node: Objective C Compiler258609
+Node: Objective C++ Compiler259983
+Node: Erlang Compiler and Interpreter261433
+Node: Fortran Compiler263478
+Node: Go Compiler288878
+Node: System Services289923
+Ref: AC_PATH_X290168
+Ref: AC_PATH_XTRA291161
+Ref: AC_SYS_INTERPRETER291738
+Ref: AC_SYS_LONG_FILE_NAMES293150
+Node: Posix Variants293527
+Ref: AC_USE_SYSTEM_EXTENSIONS293827
+Node: Erlang Libraries294903
+Node: Writing Tests299841
+Node: Language Choice301865
+Ref: AC_LANG302362
+Ref: AC_LANG_PUSH304161
+Ref: Language Choice-Footnote-1306034
+Node: Writing Test Programs306190
+Node: Guidelines306768
+Node: Test Functions309028
+Node: Generating Sources310426
+Node: Running the Preprocessor316510
+Ref: AC_PREPROC_IFELSE317242
+Ref: AC_EGREP_HEADER319172
+Ref: AC_EGREP_CPP319501
+Node: Running the Compiler319926
+Node: Running the Linker321681
+Ref: AC_LINK_IFELSE322821
+Node: Runtime323697
+Ref: AC_RUN_IFELSE324472
+Node: Systemology329322
+Node: Multiple Cases331671
+Node: Results333372
+Node: Defining Symbols334191
+Node: Setting Output Variables339082
+Node: Special Chars in Variables344973
+Node: Caching Results346233
+Node: Cache Variable Names349951
+Node: Cache Files351602
+Node: Cache Checkpointing353927
+Node: Printing Messages355301
+Ref: AC_MSG_RESULT356815
+Ref: AC_MSG_NOTICE357322
+Ref: AC_MSG_ERROR357686
+Ref: AC_MSG_WARN358519
+Node: Programming in M4358942
+Node: M4 Quotation359747
+Node: Active Characters360716
+Ref: Active Characters-Footnote-1362106
+Ref: Active Characters-Footnote-2362220
+Node: One Macro Call362242
+Node: Quoting and Parameters363798
+Node: Quotation and Nested Macros366134
+Node: Changequote is Evil369144
+Node: Quadrigraphs371674
+Node: Balancing Parentheses374356
+Node: Quotation Rule Of Thumb378450
+Node: Using autom4te381348
+Ref: Using autom4te-Footnote-1381999
+Node: autom4te Invocation382048
+Node: Customizing autom4te390550
+Node: Programming in M4sugar391831
+Node: Redefined M4 Macros393012
+Node: Diagnostic Macros401342
+Ref: m4_fatal402095
+Ref: m4_warn402334
+Node: Diversion support403102
+Node: Conditional constructs410888
+Node: Looping constructs417742
+Ref: m4_foreach_w421354
+Node: Evaluation Macros428706
+Node: Text processing Macros437395
+Node: Number processing Macros447105
+Ref: m4_version_compare449057
+Node: Set manipulation Macros451364
+Node: Forbidden Patterns460480
+Node: Debugging via autom4te461971
+Node: Programming in M4sh463790
+Node: Common Shell Constructs465163
+Node: Polymorphic Variables473136
+Node: Initialization Macros482725
+Node: File Descriptor Macros488314
+Ref: AS_MESSAGE_LOG_FD489466
+Node: Writing Autoconf Macros490968
+Node: Macro Definitions491773
+Node: Macro Names495452
+Node: Reporting Messages499213
+Node: Dependencies Between Macros501057
+Node: Prerequisite Macros501752
+Node: Suggested Ordering507827
+Node: One-Shot Macros509370
+Node: Obsoleting Macros510723
+Ref: AU_DEFUN511477
+Node: Coding Style512506
+Node: Portable Shell520313
+Node: Shellology524621
+Node: Invoking the Shell528792
+Node: Here-Documents529974
+Node: File Descriptors533594
+Node: Signal Handling540032
+Node: File System Conventions545240
+Node: Shell Pattern Matching551052
+Node: Shell Substitutions551616
+Node: Assignments569492
+Node: Parentheses571383
+Node: Slashes572340
+Node: Special Shell Variables573194
+Node: Shell Functions586526
+Node: Limitations of Builtins589933
+Ref: case593955
+Ref: echo599113
+Ref: export606087
+Ref: if609507
+Ref: set613318
+Ref: trap625040
+Ref: unset628851
+Node: Limitations of Usual Tools629946
+Ref: awk630245
+Ref: grep648349
+Ref: mkdir653981
+Ref: sed659801
+Ref: touch670932
+Node: Portable Make674207
+Node: $< in Ordinary Make Rules675869
+Node: Failure in Make Rules676335
+Node: Special Chars in Names677363
+Node: Backslash-Newline-Empty678335
+Node: Backslash-Newline Comments679367
+Node: Long Lines in Makefiles680256
+Node: Macros and Submakes680632
+Node: The Make Macro MAKEFLAGS683319
+Node: The Make Macro SHELL684204
+Node: Parallel Make686703
+Node: Comments in Make Rules690387
+Node: Newlines in Make Rules691557
+Node: Comments in Make Macros692602
+Node: Trailing whitespace in Make Macros693812
+Node: Command-line Macros and whitespace694563
+Node: obj/ and Make695233
+Node: make -k Status695884
+Node: VPATH and Make696506
+Node: Variables listed in VPATH697830
+Node: VPATH and Double-colon698369
+Node: $< in Explicit Rules698775
+Node: Automatic Rule Rewriting699242
+Node: Tru64 Directory Magic705924
+Node: Make Target Lookup706750
+Node: Single Suffix Rules711192
+Node: Timestamps and Make712538
+Node: Portable C and C++714223
+Node: Varieties of Unportability715864
+Node: Integer Overflow717961
+Node: Integer Overflow Basics718974
+Node: Signed Overflow Examples720722
+Node: Optimization and Wraparound724224
+Node: Signed Overflow Advice727186
+Node: Signed Integer Division729860
+Node: Preprocessor Arithmetic730471
+Node: Null Pointers731220
+Node: Buffer Overruns731854
+Node: Volatile Objects734643
+Node: Floating Point Portability740321
+Node: Exiting Portably740828
+Node: Manual Configuration742304
+Node: Specifying Target Triplets743137
+Ref: Specifying Names743310
+Node: Canonicalizing746185
+Node: Using System Type748448
+Node: Site Configuration751252
+Node: Help Formatting752224
+Node: External Software753168
+Ref: AC_ARG_WITH754714
+Node: Package Options759039
+Ref: AC_ARG_ENABLE760494
+Node: Pretty Help Strings761655
+Ref: AS_HELP_STRING762241
+Node: Option Checking764582
+Node: Site Details766310
+Node: Transforming Names767539
+Node: Transformation Options768621
+Node: Transformation Examples769098
+Node: Transformation Rules770819
+Node: Site Defaults772365
+Node: Running configure Scripts777706
+Node: Basic Installation778771
+Node: Compilers and Options782868
+Node: Multiple Architectures783522
+Node: Installation Names785102
+Node: Optional Features787997
+Node: Particular Systems789351
+Node: System Type790775
+Node: Sharing Defaults792103
+Node: Defining Variables792741
+Node: configure Invocation793639
+Node: config.status Invocation795345
+Ref: CONFIG_SHELL799092
+Node: Obsolete Constructs800258
+Node: Obsolete config.status Use801221
+Node: acconfig Header802999
+Node: autoupdate Invocation805021
+Node: Obsolete Macros806887
+Ref: AC_FUNC_SETVBUF_REVERSED814529
+Ref: AC_TYPE_SIGNAL831075
+Node: Autoconf 1834053
+Node: Changed File Names835119
+Node: Changed Makefiles835869
+Node: Changed Macros836957
+Node: Changed Results838211
+Node: Changed Macro Writing840335
+Node: Autoconf 2.13841615
+Node: Changed Quotation842823
+Node: New Macros844741
+Node: Hosts and Cross-Compilation846536
+Node: AC_LIBOBJ vs LIBOBJS850691
+Node: AC_ACT_IFELSE vs AC_TRY_ACT852306
+Ref: AC_FOO_IFELSE vs AC_TRY_FOO852495
+Node: Using Autotest854308
+Node: Using an Autotest Test Suite856712
+Node: testsuite Scripts857003
+Node: Autotest Logs861485
+Node: Writing Testsuites863826
+Node: testsuite Invocation880858
+Node: Making testsuite Scripts886205
+Node: FAQ891343
+Node: Distributing892203
+Node: Why GNU M4893252
+Node: Bootstrapping894121
+Node: Why Not Imake894731
+Node: Defining Directories899482
+Node: Autom4te Cache901640
+Node: Present But Cannot Be Compiled903478
+Node: Expanded Before Required907195
+Node: Debugging912093
+Node: History917116
+Node: Genesis917985
+Node: Exodus919163
+Node: Leviticus922208
+Node: Numbers923736
+Node: Deuteronomy925651
+Node: GNU Free Documentation License928322
+Node: Indices953487
+Node: Environment Variable Index954206
+Node: Output Variable Index965546
+Node: Preprocessor Symbol Index982426
+Node: Cache Variable Index1000695
+Node: Autoconf Macro Index1011383
+Node: M4 Macro Index1045712
+Node: Autotest Macro Index1066462
+Node: Program & Function Index1068865
+Node: Concept Index1089579
+
+End Tag Table
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index b6dc67b8..34ca2137 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -202,7 +202,7 @@ This manual (@value{UPDATED}) is for GNU Autoconf
a package for creating scripts to configure source code packages using
templates and an M4 macro package.
-Copyright @copyright{} 1992-1996, 1998-2011 Free Software Foundation,
+Copyright @copyright{} 1992-1996, 1998-2012 Free Software Foundation,
Inc.
@quotation
@@ -501,6 +501,7 @@ Dependencies Between Macros
Portable Shell Programming
* Shellology:: A zoology of shells
+* Invoking the Shell:: Invoking the shell as a command
* Here-Documents:: Quirks and tricks
* File Descriptors:: FDs and redirections
* Signal Handling:: Shells, signals, and headaches
@@ -520,7 +521,7 @@ Portable Make Programming
* $< in Ordinary Make Rules:: $< in ordinary rules
* Failure in Make Rules:: Failing portably in rules
* Special Chars in Names:: Special Characters in Macro Names
-* Backslash-Newline-Newline:: Empty last lines in macro definitions
+* Backslash-Newline-Empty:: Empty lines after backslash-newline
* Backslash-Newline Comments:: Spanning comments across line boundaries
* Long Lines in Makefiles:: Line length limitations
* Macros and Submakes:: @code{make macro=value} and submakes
@@ -1848,8 +1849,8 @@ required macro is @code{AC_OUTPUT} (@pxref{Output}).
@defmac AC_INIT (@var{package}, @var{version}, @ovar{bug-report}, @
@ovar{tarname}, @ovar{url})
@acindex{INIT}
-Process any command-line arguments and perform various initializations
-and verifications.
+Process any command-line arguments and perform initialization
+and verification.
Set the name of the @var{package} and its @var{version}. These are
typically used in @option{--version} support, including that of
@@ -2670,7 +2671,7 @@ top-level directory, this is the same as @code{builddir}.
@defvar top_build_prefix
@ovindex top_build_prefix
The relative name of the top level of the current build tree with final
-slash if nonemtpy. This is the same as @code{top_builddir}, except that
+slash if nonempty. This is the same as @code{top_builddir}, except that
it contains zero or more runs of @code{../}, so it should not be
appended with a slash for concatenation. This helps for @command{make}
implementations that otherwise do not treat @file{./file} and @file{file}
@@ -4083,7 +4084,7 @@ place. Otherwise set @code{LEX} to @samp{lex} and @code{LEXLIB} to
to @samp{:}; for packages that ship the generated @file{file.yy.c}
alongside the source @file{file.l}, this default allows users without a
lexer generator to still build the package even if the timestamp for
-@file{file.l} is inadvertantly changed.
+@file{file.l} is inadvertently changed.
Define @code{YYTEXT_POINTER} if @code{yytext} defaults to @samp{char *} instead
of to @samp{char []}. Also set output variable @code{LEX_OUTPUT_ROOT} to
@@ -4137,7 +4138,7 @@ The result of this test can be influenced by setting the variable
If @samp{ln -s} works on the current file system (the operating system
and file system support symbolic links), set the output variable
@code{LN_S} to @samp{ln -s}; otherwise, if @samp{ln} works, set
-@code{LN_S} to @samp{ln}, and otherwise set it to @samp{cp -p}.
+@code{LN_S} to @samp{ln}, and otherwise set it to @samp{cp -pR}.
If you make a link in a directory other than the current directory, its
meaning depends on whether @samp{ln} or @samp{ln -s} is used. To safely
@@ -4210,7 +4211,7 @@ AC_PATH_PROG([INETD], [inetd], [/usr/libexec/inetd],
@end example
You are strongly encouraged to declare the @var{variable} passed to
-@code{AC_CHECK_PROG} etc.@: as precious, @xref{Setting Output Variables},
+@code{AC_CHECK_PROG} etc.@: as precious. @xref{Setting Output Variables},
@code{AC_ARG_VAR}, for more details.
@anchor{AC_CHECK_PROG}
@@ -4362,7 +4363,7 @@ set to the absolute name of the candidate program. If no invocation of
executed. @var{feature-test} will be run even when
@code{ac_cv_path_@var{variable}} is set, to provide the ability to
choose a better candidate found later in @var{path}; to accept the
-current setting and bypass all futher checks, @var{feature-test} can
+current setting and bypass all further checks, @var{feature-test} can
execute @code{ac_path_@var{variable}_found=:}.
Note that this macro has some subtle differences from
@@ -4862,15 +4863,15 @@ like the following, to declare it properly.
#endif
#ifdef HAVE_ALLOCA_H
# include <alloca.h>
-#elif defined __GNUC__
-# define alloca __builtin_alloca
-#elif defined _AIX
-# define alloca __alloca
-#elif defined _MSC_VER
-# include <malloc.h>
-# define alloca _alloca
-#else
-# ifndef HAVE_ALLOCA
+#elif !defined alloca
+# ifdef __GNUC__
+# define alloca __builtin_alloca
+# elif defined _AIX
+# define alloca __alloca
+# elif defined _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# elif !defined HAVE_ALLOCA
# ifdef __cplusplus
extern "C"
# endif
@@ -8278,7 +8279,7 @@ successful, and @var{action-if-failure} (defaults to failing with an
error message) if not.
This macro calls @code{AC_FC_PP_SRCEXT([F])} in order to learn how to
-to preprocess a @file{conftest.F} file, but restores a previously used
+preprocess a @file{conftest.F} file, but restores a previously used
Fortran source file extension afterwards again.
The result of this test is cached in the @code{ac_cv_fc_pp_define}
@@ -8427,7 +8428,7 @@ The extension, or @samp{unknown}, is cached in the
@code{ac_cv_fc_module_ext} variable.
@end defmac
-@defmac AC_FC_MODULE_FLAG (@ovar{action-if-sucess}, @
+@defmac AC_FC_MODULE_FLAG (@ovar{action-if-success}, @
@dvar{action-if-failure, AC_MSG_FAILURE})
@acindex{FC_MODULE_FLAG}
@caindex fc_module_flag
@@ -8472,7 +8473,7 @@ The substituted value of @code{FC_MODINC} may refer to the
the significant trailing whitespace in a @file{Makefile}.
@end defmac
-@defmac AC_FC_MODULE_OUTPUT_FLAG (@ovar{action-if-sucess}, @
+@defmac AC_FC_MODULE_OUTPUT_FLAG (@ovar{action-if-success}, @
@dvar{action-if-failure, AC_MSG_FAILURE})
@acindex{FC_MODULE_OUTPUT_FLAG}
@caindex fc_module_output_flag
@@ -9398,7 +9399,7 @@ just-compiled object file @file{conftest.$OBJEXT}.
This macro uses @code{AC_REQUIRE} for the compiler associated with the
current language, which means that if the compiler has not yet been
determined, the compiler determination will be made prior to the body of
-the outermust @code{AC_DEFUN} macro that triggered this macro to
+the outermost @code{AC_DEFUN} macro that triggered this macro to
expand (@pxref{Expanded Before Required}).
@end defmac
@@ -9490,8 +9491,11 @@ available in the shell variable @samp{$?}. This exit status might be
that of a failed compilation, or it might be that of a failed program
execution.
-If the compiler being used does not produce executables that run on the
-system where @command{configure} is being run, then the test program is
+If cross-compilation mode is enabled (this is the case if either the
+compiler being used does not produce executables that run on the system
+where @command{configure} is being run, or if the options @code{--build}
+and @code{--host} were both specified and their values are different),
+then the test program is
not run. If the optional shell commands @var{action-if-cross-compiling}
are given, those commands are run instead; typically these commands
provide pessimistic defaults that allow cross-compilation to work even
@@ -13657,6 +13661,13 @@ m4_bpatsubst([[@var{string}]], ['], ['\\''])
@end example
@end defmac
+@defmac AS_EXECUTABLE_P (@var{file})
+@asindex{EXECUTABLE_P}
+Emit code to probe whether @var{file} is a regular file with executable
+permissions (and not a directory with search permissions). The caller
+is responsible for quoting @var{file}.
+@end defmac
+
@defmac AS_EXIT (@dvar{status, $?})
@asindex{EXIT}
Emit code to exit the shell with @var{status}, defaulting to @samp{$?}.
@@ -15067,6 +15078,7 @@ subset described above, is fairly portable nowadays. Also please see
@menu
* Shellology:: A zoology of shells
+* Invoking the Shell:: Invoking the shell as a command
* Here-Documents:: Quirks and tricks
* File Descriptors:: FDs and redirections
* Signal Handling:: Shells, signals, and headaches
@@ -15205,6 +15217,44 @@ The default Mac OS X @command{sh} was originally Zsh; it was changed to
Bash in Mac OS X 10.2.
@end table
+@node Invoking the Shell
+@section Invoking the Shell
+@cindex invoking the shell
+@cindex shell invocation
+
+The Korn shell (up to at least version M-12/28/93d) has a bug when
+invoked on a file whose name does not contain a slash. It first
+searches for the file's name in @env{PATH}, and if found it executes
+that rather than the original file. For example, assuming there is a
+binary executable @file{/usr/bin/script} in your @env{PATH}, the last
+command in the following example fails because the Korn shell finds
+@file{/usr/bin/script} and refuses to execute it as a shell script:
+
+@example
+$ @kbd{touch xxyzzyz script}
+$ @kbd{ksh xxyzzyz}
+$ @kbd{ksh ./script}
+$ @kbd{ksh script}
+ksh: script: cannot execute
+@end example
+
+Bash 2.03 has a bug when invoked with the @option{-c} option: if the
+option-argument ends in backslash-newline, Bash incorrectly reports a
+syntax error. The problem does not occur if a character follows the
+backslash:
+
+@example
+$ @kbd{$ bash -c 'echo foo \}
+> @kbd{'}
+bash: -c: line 2: syntax error: unexpected end of file
+$ @kbd{bash -c 'echo foo \}
+> @kbd{ '}
+foo
+@end example
+
+@noindent
+@xref{Backslash-Newline-Empty}, for how this can cause problems in makefiles.
+
@node Here-Documents
@section Here-Documents
@cindex Here-documents
@@ -15239,6 +15289,19 @@ bash-2.04$ @kbd{cat <<EOF
@end group
@end example
+Using command substitutions in a here-document that is fed to a shell
+function is not portable. For example, with Solaris 10 @command{/bin/sh}:
+
+@example
+$ @kbd{kitty () @{ cat; @}}
+$ @kbd{kitty <<EOF
+> `echo ok`
+> EOF}
+/tmp/sh199886: cannot open
+$ @kbd{echo $?}
+1
+@end example
+
Some shells mishandle large here-documents: for example,
Solaris 10 @command{dtksh} and the UnixWare 7.1.1 Posix shell, which are
derived from Korn shell version M-12/28/93d, mishandle braced variable
@@ -16719,7 +16782,7 @@ PS4='+ '
@noindent
(actually, there is some complication due to bugs in @command{unset};
-see @pxref{unset, , Limitations of Shell Builtins}).
+@pxref{unset, , Limitations of Shell Builtins}).
@item FPATH
@evindex FPATH
@@ -17642,6 +17705,20 @@ $ @kbd{ash -c 'export foo; env | grep foo'}
foo=
@end example
+Posix requires @command{export} to honor assignments made as arguments,
+but older shells do not support this, including @command{/bin/sh} in
+Solaris 10. Portable scripts should separate assignments and exports
+into different statements.
+
+@example
+$ @kbd{bash -c 'export foo=bar; echo $foo'}
+bar
+$ @kbd{/bin/sh -c 'export foo=bar; echo $foo'}
+/bin/sh: foo=bar: is not an identifier
+$ @kbd{/bin/sh -c 'export foo; foo=bar; echo $foo'}
+bar
+@end example
+
@item @command{false}
@c ------------------
@prindex @command{false}
@@ -17797,8 +17874,8 @@ for an @command{echo} that does not interpret @samp{\} or leading
@samp{-}. With Solaris @command{ksh}, it is possible to use @code{print
-r --} for this role instead.
-For a discussion of portable alternatives to both @command{printf}
-and @command{echo}, @xref{echo, , Limitations of Shell Builtins}.
+@xref{echo, , Limitations of Shell Builtins} for a discussion of
+portable alternatives to both @command{printf} and @command{echo}.
@item @command{pwd}
@@ -18009,6 +18086,26 @@ cim
c
@end example
+@cindex @command{set -n}
+Use of @command{set -n} (typically via @command{sh -n script}) to
+validate a script is not foolproof. Modern @command{ksh93} tries to be
+helpful by informing you about better syntax, but switching the script
+to use the suggested syntax in order to silence the warnings would
+render the script no longer portable to older shells:
+
+@example
+$ @kbd{ksh -nc '``'}
+ksh: warning: line 1: `...` obsolete, use $(...)
+0
+@end example
+
+Furthermore, on ancient hosts, such as SunOS 4, @command{sh -n} could go
+into an infinite loop; even with that bug fixed, Solaris 8
+@command{/bin/sh} takes extremely long to parse large scripts. Autoconf
+itself uses @command{sh -n} within its testsuite to check that correct
+scripts were generated, but only after first probing for other shell
+features (such as @code{test -n "$@{BASH_VERSION+set@}"}) that indicate
+a reasonably fast and working implementation.
@item @command{shift}
@c ------------------
@@ -18074,14 +18171,30 @@ It is safe to use @samp{!} as a @command{test} operator. For example,
To enable @command{configure} scripts to support cross-compilation, they
shouldn't do anything that tests features of the build system instead of
the host system. But occasionally you may find it necessary to check
-whether some arbitrary file exists. To do so, use @samp{test -f} or
-@samp{test -r}. Do not use @samp{test -x}, because 4.3BSD does not
-have it. Do not use @samp{test -e} either, because Solaris @command{/bin/sh}
+whether some arbitrary file exists. To do so, use @samp{test -f},
+@samp{test -r}, or @samp{test -x}. Do not use @samp{test -e}, because
+Solaris 10 @command{/bin/sh}
lacks it. To test for symbolic links on systems that have them, use
@samp{test -h} rather than @samp{test -L}; either form conforms to
Posix 1003.1-2001, but older shells like Solaris 8
@code{/bin/sh} support only @option{-h}.
+For historical reasons, Posix reluctantly allows implementations of
+@samp{test -x} that will succeed for the root user, even if no execute
+permissions are present. Furthermore, shells do not all agree on
+whether Access Control Lists should affect @samp{test -r}, @samp{test
+-w}, and @samp{test -x}; some shells base test results strictly on the
+current user id compared to file owner and mode, as if by
+@code{stat(2)}; while other shells base test results on whether the
+current user has the given right, even if that right is only granted by
+an ACL, as if by @code{faccessat(2)}. Furthermore, there is a classic
+time of check to time of use race between any use of @command{test}
+followed by operating on the just-checked file. Therefore, it is a good
+idea to write scripts that actually attempt an operation, and are
+prepared for the resulting failure if permission is denied, rather than
+trying to avoid an operation based solely on whether @command{test}
+guessed that it might not be permitted.
+
@item @command{test} (strings)
@c ---------------------------
Posix says that @samp{test "@var{string}"} succeeds if @var{string} is
@@ -19174,10 +19287,12 @@ This problem no longer exists in Mac OS X 10.4.3.
@prindex @command{rm}
The @option{-f} and @option{-r} options are portable.
-It is not portable to invoke @command{rm} without operands. For
-example, on many systems @samp{rm -f -r} (with no other arguments)
-silently succeeds without doing anything, but it fails with a diagnostic
-on NetBSD 2.0.2.
+It is not portable to invoke @command{rm} without options or operands.
+On the other hand, Posix now requires @command{rm -f} to silently
+succeed when there are no operands (useful for constructs like
+@command{rm -rf $filelist} without first checking if @samp{$filelist}
+was empty). But this was not always portable; at least NetBSD
+@command{rm} built before 2008 would fail with a diagnostic.
A file might not be removed even if its parent directory is writable
and searchable. Many Posix hosts cannot remove a mount point, a named
@@ -19215,7 +19330,7 @@ Unicos 9 @command{sed} loops endlessly on patterns like @samp{.*\n.*}.
Sed scripts should not use branch labels longer than 7 characters and
should not contain comments; AIX 5.3 @command{sed} rejects indented comments.
HP-UX sed has a limit of 99 commands (not counting @samp{:} commands) and
-48 labels, which can not be circumvented by using more than one script
+48 labels, which cannot be circumvented by using more than one script
file. It can execute up to 19 reads with the @samp{r} command per cycle.
Solaris @command{/usr/ucb/sed} rejects usages that exceed a limit of
about 6000 bytes for the internal representation of commands.
@@ -19229,8 +19344,9 @@ $ @kbd{echo a | sed 's/x/x/;;s/x/x/'}
sed: 1: "s/x/x/;;s/x/x/": invalid command code ;
@end example
-Input should not have unreasonably long lines, since some @command{sed}
-implementations have an input buffer limited to 4000 bytes. Likewise,
+Some @command{sed} implementations have a buffer limited to 4000 bytes,
+and this limits the size of input lines, output lines, and internal
+buffers that can be processed portably. Likewise,
not all @command{sed} implementations can handle embedded @code{NUL} or
a missing trailing newline.
@@ -19635,7 +19751,7 @@ itself.
* $< in Ordinary Make Rules:: $< in ordinary rules
* Failure in Make Rules:: Failing portably in rules
* Special Chars in Names:: Special Characters in Macro Names
-* Backslash-Newline-Newline:: Empty last lines in macro definitions
+* Backslash-Newline-Empty:: Empty lines after backslash-newline
* Backslash-Newline Comments:: Spanning comments across line boundaries
* Long Lines in Makefiles:: Line length limitations
* Macros and Submakes:: @code{make macro=value} and submakes
@@ -19713,8 +19829,32 @@ this is test
@noindent
However, this problem is no longer of practical concern.
-@node Backslash-Newline-Newline
-@section Backslash-Newline-Newline in Make Macro Values
+@node Backslash-Newline-Empty
+@section Backslash-Newline Before Empty Lines
+
+A bug in Bash 2.03 can cause problems if a Make rule contains a
+backslash-newline followed by line that expands to nothing.
+For example, on Solaris 8:
+
+@example
+SHELL = /bin/bash
+EMPTY =
+foo:
+ touch foo \
+ $(EMPTY)
+@end example
+
+@noindent
+executes
+
+@example
+/bin/bash -c 'touch foo \
+'
+@end example
+
+@noindent
+which fails with a syntax error, due to the Bash bug. To avoid this
+problem, avoid nullable macros in the last line of a multiline command.
@c This has been seen on ia64 hpux 11.20, and on one hppa hpux 10.20,
@c but another hppa hpux 10.20 didn't have it. Bob Proulx
@@ -20200,9 +20340,12 @@ CPPFLAGS = "-DCOMMENT_CHAR='#'"
@noindent
as @samp{CPPFLAGS} may be expanded to @samp{"-DCOMMENT_CHAR='}.
-Luckily, most @command{make} implementations disregard this and treat
-single and double quotes specially here; @pxref{Comments in Make Rules},
-for a more portable alternative.
+
+Most @command{make} implementations disregard this and treat single and
+double quotes specially here. Also, GNU @command{make} lets you put
+@samp{#} into a macro value by escaping it with a backslash, i.e.,
+@samp{\#}. However, neither of these usages are portable.
+@xref{Comments in Make Rules}, for a portable alternative.
Even without quoting involved, comments can have surprising effects,
because the whitespace before them is part of the variable value:
@@ -21607,11 +21750,14 @@ system types are involved. The options to specify them are:
@item --build=@var{build-type}
the type of system on which the package is being configured and
compiled. It defaults to the result of running @command{config.guess}.
+Specifying a @var{build-type} that differs from @var{host-type} enables
+cross-compilation mode.
@item --host=@var{host-type}
the type of system on which the package runs. By default it is the
-same as the build machine. Specifying it enables the cross-compilation
-mode.
+same as the build machine. Specifying a @var{host-type} that differs
+from @var{build-type}, when @var{build-type} was also explicitly
+specified, enables cross-compilation mode.
@item --target=@var{target-type}
the type of system for which any compiler tools in the package
@@ -22437,11 +22583,14 @@ if test "$cache_file" = /dev/null; then
fi
@end example
-@cindex Filesystem Hierarchy Standard
+@c Leave this use of ``File system'' rendered as one word, but
+@c slightly obfuscated so as not to trigger the syntax-check prohibition.
+@cindex File@/system Hierarchy Standard
@cindex FHS
Another use of @file{config.site} is for priming the directory variables
-in a manner consistent with the Filesystem Hierarchy Standard
+@c ``File system'', but slightly obfuscated, as above.
+in a manner consistent with the File@/system Hierarchy Standard
(FHS). Once the following file is installed at
@file{/usr/share/config.site}, a user can execute simply
@code{./configure --prefix=/usr} to get all the directories chosen in
@@ -22616,13 +22765,10 @@ can alter its behavior:
@anchor{CONFIG_SHELL}
@defvar CONFIG_SHELL
@evindex CONFIG_SHELL
-The shell with which to run @command{configure} for the @option{--recheck}
-option. It must be Bourne-compatible. The default is a shell that
-supports @code{LINENO} if available, and @file{/bin/sh} otherwise.
-Invoking @command{configure} by hand bypasses this setting, so you may
-need to use a command like @samp{CONFIG_SHELL=/bin/bash /bin/bash ./configure}
-to insure that the same shell is used everywhere. The absolute name of the
-shell should be passed.
+The shell with which to run @command{configure}. It must be
+Bourne-compatible, and the absolute name of the shell should be passed.
+The default is a shell that supports @code{LINENO} if available, and
+@file{/bin/sh} otherwise.
@end defvar
@defvar CONFIG_STATUS
@@ -23683,7 +23829,7 @@ issue.
@defmac AC_SYS_SIGLIST_DECLARED
@acindex{SYS_SIGLIST_DECLARED}
This macro was renamed @code{AC_DECL_SYS_SIGLIST}. However, even that
-name is obsolete, as the same functionality is now acheived via
+name is obsolete, as the same functionality is now achieved via
@code{AC_CHECK_DECLS} (@pxref{AC_CHECK_DECLS}).
@end defmac
@@ -23825,7 +23971,7 @@ function returning @code{void}, define @code{RETSIGTYPE} to be
portable to assume C89, and that signal handlers return @code{void},
without needing to use this macro or @code{RETSIGTYPE}.
-When targetting older K&R C, it is possible to define signal handlers as
+When targeting older K&R C, it is possible to define signal handlers as
returning type @code{RETSIGTYPE}, and omit a return statement:
@example
@@ -24317,10 +24463,7 @@ and they're different, @command{configure} enters cross compilation
mode, so it doesn't run any tests that require execution.
Hint: if you mean to override the result of @command{config.guess},
-prefer @option{--build} over @option{--host}. In the future,
-@option{--host} will not override the name of the build system type.
-Whenever you specify @option{--host}, be sure to specify @option{--build}
-too.
+prefer @option{--build} over @option{--host}.
@sp 1
@@ -24816,7 +24959,7 @@ complete and if no option from @var{options} was used.
@var{help-text} is added to the end of the list of options shown in
@command{testsuite --help} (@pxref{AS_HELP_STRING}).
-It it recommended that you use a package-specific prefix to @var{options}
+It is recommended that you use a package-specific prefix to @var{options}
names in order to avoid clashes with future Autotest built-in options.
@end defmac
@@ -24847,7 +24990,7 @@ complete and if no option from @var{options} was used.
@var{help-text} is added to the end of the list of options shown in
@command{testsuite --help} (@pxref{AS_HELP_STRING}).
-It it recommended that you use a package-specific prefix to @var{options}
+It is recommended that you use a package-specific prefix to @var{options}
names in order to avoid clashes with future Autotest built-in options.
@end defmac
@@ -25341,7 +25484,7 @@ With Automake, here is a minimal example for inclusion in
validation suite.
@example
-# The `:;' works around a Bash 3.2 bug when the output is not writeable.
+# The `:;' works around a Bash 3.2 bug when the output is not writable.
$(srcdir)/package.m4: $(top_srcdir)/configure.ac
:;@{ \
echo '# Signature of the current package.' && \
@@ -25920,7 +26063,7 @@ is happening, remember that the use of @code{AC_COMPILE_IFELSE} includes
a call to @code{AC_REQUIRE([AC_PROG_CC])} under the hood. According to
the documented semantics of @code{AC_REQUIRE}, this means that
@code{AC_PROG_CC} @emph{must} occur before the body of the outermost
-@code{AC_DEFUN}, which in this case is @code{BAR}, thus preceeding the
+@code{AC_DEFUN}, which in this case is @code{BAR}, thus preceding the
use of @samp{foobar=}. The older versions of Autoconf were broken with
regards to the rules of @code{AC_REQUIRE}, which explains why the code
changed from one over to two copies of @code{AC_PROG_CC} when upgrading
@@ -26468,7 +26611,7 @@ introduced in this document.
@c LocalWords: linux netinet ia Tru XFree DIRENT NDIR dirent ndir multitable
@c LocalWords: NAMLEN strlen namlen MKDEV SYSMACROS makedev RESOLV resolv DNS
@c LocalWords: inet structs NAMESER arpa NETDB netdb UTekV UTS GCC's kB
-@c LocalWords: STDBOOL BOOL stdbool conformant cplusplus bool Bool stdarg tm
+@c LocalWords: STDBOOL BOOL stdbool cplusplus bool Bool stdarg tm
@c LocalWords: ctype strchr strrchr rindex bcopy memmove memchr WEXITSTATUS
@c LocalWords: WIFEXITED TIOCGWINSZ GWINSZ termios preprocess preprocessable
@c LocalWords: DECLS strdup calloc BLKSIZE blksize RDEV rdev TZNAME tzname pw
@@ -26513,7 +26656,7 @@ introduced in this document.
@c LocalWords: GOBJC OTP ERLC erl valloc decr dumpdef errprint incr
@c LocalWords: esyscmd len maketemp pushdef substr syscmd sysval translit txt
@c LocalWords: sinclude foreach myvar tolower toupper uniq BASENAME STDIN
-@c LocalWords: Dynix descrips basename aname cname macroexpands xno xcheck
+@c LocalWords: Dynix basename aname cname macroexpands xno xcheck
@c LocalWords: LIBREADLINE lreadline lncurses libreadline
@c Local Variables:
diff --git a/doc/fdl.texi b/doc/fdl.texi
index fc19dddd..cb71f05a 100644
--- a/doc/fdl.texi
+++ b/doc/fdl.texi
@@ -481,7 +481,7 @@ license notices just after the title page:
@end smallexample
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
-replace the ``with@dots{}Texts.'' line with this:
+replace the ``with@dots{}Texts.''@: line with this:
@smallexample
@group
@@ -503,4 +503,3 @@ to permit their use in free software.
@c Local Variables:
@c ispell-local-pdict: "ispell-dict"
@c End:
-
diff --git a/doc/gendocs_template b/doc/gendocs_template
index ccce0be2..f3a3ff64 100644
--- a/doc/gendocs_template
+++ b/doc/gendocs_template
@@ -3,12 +3,6 @@
<!--#include virtual="/server/banner.html" -->
<h2>%%TITLE%%</h2>
-<!-- This document is in XML, and xhtml 1.0 -->
-<!-- Please make sure to properly nest your tags -->
-<!-- and ensure that your final document validates -->
-<!-- consistent with W3C xhtml 1.0 and CSS standards -->
-<!-- See validator.w3.org -->
-
<address>Free Software Foundation</address>
<address>last updated %%DATE%%</address>
@@ -66,29 +60,28 @@ this helps support FSF activities.</p>
<p>(This page generated by the <a href="%%SCRIPTURL%%">%%SCRIPTNAME%%
script</a>.)</p>
-<!-- If needed, change the copyright block at the bottom. In general, -->
-<!-- all pages on the GNU web server should have the section about -->
-<!-- verbatim copying. Please do NOT remove this without talking -->
-<!-- with the webmasters first. -->
-<!-- Please make sure the copyright date is consistent with the document -->
-<!-- and that it is like this "2001, 2002" not this "2001-2002." -->
+<!-- If needed, change the copyright block at the bottom. In general,
+ all pages on the GNU web server should have the section about
+ verbatim copying. Please do NOT remove this without talking
+ with the webmasters first.
+ Please make sure the copyright date is consistent with the document
+ and that it is like this: "2001, 2002", not this: "2001-2002". -->
</div><!-- for id="content", starts in the include above -->
<!--#include virtual="/server/footer.html" -->
<div id="footer">
-<p>
-Please send FSF &amp; GNU inquiries to
+<p>Please send general FSF &amp; GNU inquiries to
<a href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>.
There are also <a href="/contact/">other ways to contact</a>
the FSF.<br />
Please send broken links and other corrections or suggestions to
-<a href="mailto:%%EMAIL%%">&lt;%%EMAIL%%&gt;</a>.
-</p>
+<a href="mailto:%%EMAIL%%">&lt;%%EMAIL%%&gt;</a>.</p>
-<p>Copyright &copy; 2010 Free Software Foundation, Inc.</p>
+<p>Copyright &copy; 2012 Free Software Foundation, Inc.</p>
-<p>Verbatim copying and distribution of this entire article is
-permitted in any medium, provided this notice is preserved.</p>
+<p>Verbatim copying and distribution of this entire article are
+permitted worldwide, without royalty, in any medium, provided this
+notice, and the copyright notice, are preserved.</p>
</div>
</div>
diff --git a/doc/gnu-oids.texi b/doc/gnu-oids.texi
index 85386e7c..ecbd59b4 100644
--- a/doc/gnu-oids.texi
+++ b/doc/gnu-oids.texi
@@ -15,7 +15,7 @@
1.3.6.1.4.1.11591.1 GNU Radius
-1.3.6.1.4.1.11591.2 GnuPG
+1.3.6.1.4.1.11591.2 GnuPG
1.3.6.1.4.1.11591.2.1 notation
1.3.6.1.4.1.11591.2.1.1 pkaAddress
diff --git a/doc/install.texi b/doc/install.texi
index d397b8a8..4c2ffb53 100644
--- a/doc/install.texi
+++ b/doc/install.texi
@@ -5,7 +5,7 @@
@unnumbered Installation Instructions
-Copyright @copyright{} 1994-1996, 1999-2002, 2004-2011 Free Software
+Copyright @copyright{} 1994-1996, 1999-2002, 2004-2012 Free Software
Foundation, Inc.
Copying and distribution of this file, with or without modification, are
@@ -364,11 +364,11 @@ overridden in the site shell script).
@noindent
Unfortunately, this technique does not work for @env{CONFIG_SHELL} due
-to an Autoconf bug. Until the bug is fixed you can use this
-workaround:
+to an Autoconf limitation. Until the limitation is lifted, you can use
+this workaround:
@example
-CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
@end example
@node configure Invocation
diff --git a/doc/stamp-vti b/doc/stamp-vti
new file mode 100644
index 00000000..b9e94c97
--- /dev/null
+++ b/doc/stamp-vti
@@ -0,0 +1,4 @@
+@set UPDATED 24 April 2012
+@set UPDATED-MONTH April 2012
+@set EDITION 2.69
+@set VERSION 2.69
diff --git a/doc/standards.info b/doc/standards.info
new file mode 100644
index 00000000..d3e05b2b
--- /dev/null
+++ b/doc/standards.info
@@ -0,0 +1,5780 @@
+This is standards.info, produced by makeinfo version 4.13 from
+standards.texi.
+
+INFO-DIR-SECTION GNU organization
+START-INFO-DIR-ENTRY
+* Standards: (standards). GNU coding standards.
+END-INFO-DIR-ENTRY
+
+ The GNU coding standards, last updated April 7, 2012.
+
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+Free Software Foundation, Inc.
+
+ Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts. A copy of the license is included in the section entitled "GNU
+Free Documentation License".
+
+
+File: standards.info, Node: Top, Next: Preface, Up: (dir)
+
+GNU Coding Standards
+********************
+
+The GNU coding standards, last updated April 7, 2012.
+
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+Free Software Foundation, Inc.
+
+ Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts. A copy of the license is included in the section entitled "GNU
+Free Documentation License".
+
+* Menu:
+
+* Preface:: About the GNU Coding Standards.
+* Legal Issues:: Keeping free software free.
+* Design Advice:: General program design.
+* Program Behavior:: Program behavior for all programs
+* Writing C:: Making the best use of C.
+* Documentation:: Documenting programs.
+* Managing Releases:: The release process.
+* References:: Mentioning non-free software or documentation.
+* GNU Free Documentation License:: Copying and sharing this manual.
+* Index::
+
+
+File: standards.info, Node: Preface, Next: Legal Issues, Prev: Top, Up: Top
+
+1 About the GNU Coding Standards
+********************************
+
+The GNU Coding Standards were written by Richard Stallman and other GNU
+Project volunteers. Their purpose is to make the GNU system clean,
+consistent, and easy to install. This document can also be read as a
+guide to writing portable, robust and reliable programs. It focuses on
+programs written in C, but many of the rules and principles are useful
+even if you write in another programming language. The rules often
+state reasons for writing in a certain way.
+
+ If you did not obtain this file directly from the GNU project and
+recently, please check for a newer version. You can get the GNU Coding
+Standards from the GNU web server in many different formats, including
+the Texinfo source, PDF, HTML, DVI, plain text, and more, at:
+`http://www.gnu.org/prep/standards/'.
+
+ If you are maintaining an official GNU package, in addition to this
+document, please read and follow the GNU maintainer information (*note
+Contents: (maintain)Top.).
+
+ If you want to receive diffs for every change to these GNU documents,
+join the mailing list `gnustandards-commit@gnu.org', via the web
+interface at
+`http://lists.gnu.org/mailman/listinfo/gnustandards-commit'. Archives
+are also available there.
+
+ Please send corrections or suggestions for this document to
+<bug-standards@gnu.org>. If you make a suggestion, please include a
+suggested new wording for it, to help us consider the suggestion
+efficiently. We prefer a context diff to the Texinfo source, but if
+that's difficult for you, you can make a context diff for some other
+version of this document, or propose it in any way that makes it clear.
+The source repository for this document can be found at
+`http://savannah.gnu.org/projects/gnustandards'.
+
+ These standards cover the minimum of what is important when writing a
+GNU package. Likely, the need for additional standards will come up.
+Sometimes, you might suggest that such standards be added to this
+document. If you think your standards would be generally useful, please
+do suggest them.
+
+ You should also set standards for your package on many questions not
+addressed or not firmly specified here. The most important point is to
+be self-consistent--try to stick to the conventions you pick, and try
+to document them as much as possible. That way, your program will be
+more maintainable by others.
+
+ The GNU Hello program serves as an example of how to follow the GNU
+coding standards for a trivial program.
+`http://www.gnu.org/software/hello/hello.html'.
+
+ This release of the GNU Coding Standards was last updated April 7,
+2012.
+
+
+File: standards.info, Node: Legal Issues, Next: Design Advice, Prev: Preface, Up: Top
+
+2 Keeping Free Software Free
+****************************
+
+This chapter discusses how you can make sure that GNU software avoids
+legal difficulties, and other related issues.
+
+* Menu:
+
+* Reading Non-Free Code:: Referring to proprietary programs.
+* Contributions:: Accepting contributions.
+* Trademarks:: How we deal with trademark issues.
+
+
+File: standards.info, Node: Reading Non-Free Code, Next: Contributions, Up: Legal Issues
+
+2.1 Referring to Proprietary Programs
+=====================================
+
+Don't in any circumstances refer to Unix source code for or during your
+work on GNU! (Or to any other proprietary programs.)
+
+ If you have a vague recollection of the internals of a Unix program,
+this does not absolutely mean you can't write an imitation of it, but
+do try to organize the imitation internally along different lines,
+because this is likely to make the details of the Unix version
+irrelevant and dissimilar to your results.
+
+ For example, Unix utilities were generally optimized to minimize
+memory use; if you go for speed instead, your program will be very
+different. You could keep the entire input file in memory and scan it
+there instead of using stdio. Use a smarter algorithm discovered more
+recently than the Unix program. Eliminate use of temporary files. Do
+it in one pass instead of two (we did this in the assembler).
+
+ Or, on the contrary, emphasize simplicity instead of speed. For some
+applications, the speed of today's computers makes simpler algorithms
+adequate.
+
+ Or go for generality. For example, Unix programs often have static
+tables or fixed-size strings, which make for arbitrary limits; use
+dynamic allocation instead. Make sure your program handles NULs and
+other funny characters in the input files. Add a programming language
+for extensibility and write part of the program in that language.
+
+ Or turn some parts of the program into independently usable
+libraries. Or use a simple garbage collector instead of tracking
+precisely when to free memory, or use a new GNU facility such as
+obstacks.
+
+
+File: standards.info, Node: Contributions, Next: Trademarks, Prev: Reading Non-Free Code, Up: Legal Issues
+
+2.2 Accepting Contributions
+===========================
+
+If the program you are working on is copyrighted by the Free Software
+Foundation, then when someone else sends you a piece of code to add to
+the program, we need legal papers to use it--just as we asked you to
+sign papers initially. _Each_ person who makes a nontrivial
+contribution to a program must sign some sort of legal papers in order
+for us to have clear title to the program; the main author alone is not
+enough.
+
+ So, before adding in any contributions from other people, please tell
+us, so we can arrange to get the papers. Then wait until we tell you
+that we have received the signed papers, before you actually use the
+contribution.
+
+ This applies both before you release the program and afterward. If
+you receive diffs to fix a bug, and they make significant changes, we
+need legal papers for that change.
+
+ This also applies to comments and documentation files. For copyright
+law, comments and code are just text. Copyright applies to all kinds of
+text, so we need legal papers for all kinds.
+
+ We know it is frustrating to ask for legal papers; it's frustrating
+for us as well. But if you don't wait, you are going out on a limb--for
+example, what if the contributor's employer won't sign a disclaimer?
+You might have to take that code out again!
+
+ You don't need papers for changes of a few lines here or there, since
+they are not significant for copyright purposes. Also, you don't need
+papers if all you get from the suggestion is some ideas, not actual code
+which you use. For example, if someone sent you one implementation, but
+you write a different implementation of the same idea, you don't need to
+get papers.
+
+ The very worst thing is if you forget to tell us about the other
+contributor. We could be very embarrassed in court some day as a
+result.
+
+ We have more detailed advice for maintainers of GNU packages. If you
+have reached the stage of maintaining a GNU program (whether released
+or not), please take a look: *note Legal Matters: (maintain)Legal
+Matters.
+
+
+File: standards.info, Node: Trademarks, Prev: Contributions, Up: Legal Issues
+
+2.3 Trademarks
+==============
+
+Please do not include any trademark acknowledgements in GNU software
+packages or documentation.
+
+ Trademark acknowledgements are the statements that such-and-such is a
+trademark of so-and-so. The GNU Project has no objection to the basic
+idea of trademarks, but these acknowledgements feel like kowtowing, and
+there is no legal requirement for them, so we don't use them.
+
+ What is legally required, as regards other people's trademarks, is to
+avoid using them in ways which a reader might reasonably understand as
+naming or labeling our own programs or activities. For example, since
+"Objective C" is (or at least was) a trademark, we made sure to say
+that we provide a "compiler for the Objective C language" rather than
+an "Objective C compiler". The latter would have been meant as a
+shorter way of saying the former, but it does not explicitly state the
+relationship, so it could be misinterpreted as using "Objective C" as a
+label for the compiler rather than for the language.
+
+ Please don't use "win" as an abbreviation for Microsoft Windows in
+GNU software or documentation. In hacker terminology, calling
+something a "win" is a form of praise. If you wish to praise Microsoft
+Windows when speaking on your own, by all means do so, but not in GNU
+software. Usually we write the name "Windows" in full, but when
+brevity is very important (as in file names and sometimes symbol
+names), we abbreviate it to "w". For instance, the files and functions
+in Emacs that deal with Windows start with `w32'.
+
+
+File: standards.info, Node: Design Advice, Next: Program Behavior, Prev: Legal Issues, Up: Top
+
+3 General Program Design
+************************
+
+This chapter discusses some of the issues you should take into account
+when designing your program.
+
+* Menu:
+
+* Source Language:: Which languages to use.
+* Compatibility:: Compatibility with other implementations.
+* Using Extensions:: Using non-standard features.
+* Standard C:: Using standard C features.
+* Conditional Compilation:: Compiling code only if a conditional is true.
+
+
+File: standards.info, Node: Source Language, Next: Compatibility, Up: Design Advice
+
+3.1 Which Languages to Use
+==========================
+
+When you want to use a language that gets compiled and runs at high
+speed, the best language to use is C. Using another language is like
+using a non-standard feature: it will cause trouble for users. Even if
+GCC supports the other language, users may find it inconvenient to have
+to install the compiler for that other language in order to build your
+program. For example, if you write your program in C++, people will
+have to install the GNU C++ compiler in order to compile your program.
+
+ C has one other advantage over C++ and other compiled languages: more
+people know C, so more people will find it easy to read and modify the
+program if it is written in C.
+
+ So in general it is much better to use C, rather than the comparable
+alternatives.
+
+ But there are two exceptions to that conclusion:
+
+ * It is no problem to use another language to write a tool
+ specifically intended for use with that language. That is because
+ the only people who want to build the tool will be those who have
+ installed the other language anyway.
+
+ * If an application is of interest only to a narrow part of the
+ community, then the question of which language it is written in
+ has less effect on other people, so you may as well please
+ yourself.
+
+ Many programs are designed to be extensible: they include an
+interpreter for a language that is higher level than C. Often much of
+the program is written in that language, too. The Emacs editor
+pioneered this technique.
+
+ The standard extensibility interpreter for GNU software is Guile
+(`http://www.gnu.org/software/guile/'), which implements the language
+Scheme (an especially clean and simple dialect of Lisp). Guile also
+includes bindings for GTK+/GNOME, making it practical to write modern
+GUI functionality within Guile. We don't reject programs written in
+other "scripting languages" such as Perl and Python, but using Guile is
+very important for the overall consistency of the GNU system.
+
+
+File: standards.info, Node: Compatibility, Next: Using Extensions, Prev: Source Language, Up: Design Advice
+
+3.2 Compatibility with Other Implementations
+============================================
+
+With occasional exceptions, utility programs and libraries for GNU
+should be upward compatible with those in Berkeley Unix, and upward
+compatible with Standard C if Standard C specifies their behavior, and
+upward compatible with POSIX if POSIX specifies their behavior.
+
+ When these standards conflict, it is useful to offer compatibility
+modes for each of them.
+
+ Standard C and POSIX prohibit many kinds of extensions. Feel free
+to make the extensions anyway, and include a `--ansi', `--posix', or
+`--compatible' option to turn them off. However, if the extension has
+a significant chance of breaking any real programs or scripts, then it
+is not really upward compatible. So you should try to redesign its
+interface to make it upward compatible.
+
+ Many GNU programs suppress extensions that conflict with POSIX if the
+environment variable `POSIXLY_CORRECT' is defined (even if it is
+defined with a null value). Please make your program recognize this
+variable if appropriate.
+
+ When a feature is used only by users (not by programs or command
+files), and it is done poorly in Unix, feel free to replace it
+completely with something totally different and better. (For example,
+`vi' is replaced with Emacs.) But it is nice to offer a compatible
+feature as well. (There is a free `vi' clone, so we offer it.)
+
+ Additional useful features are welcome regardless of whether there
+is any precedent for them.
+
+
+File: standards.info, Node: Using Extensions, Next: Standard C, Prev: Compatibility, Up: Design Advice
+
+3.3 Using Non-standard Features
+===============================
+
+Many GNU facilities that already exist support a number of convenient
+extensions over the comparable Unix facilities. Whether to use these
+extensions in implementing your program is a difficult question.
+
+ On the one hand, using the extensions can make a cleaner program.
+On the other hand, people will not be able to build the program unless
+the other GNU tools are available. This might cause the program to
+work on fewer kinds of machines.
+
+ With some extensions, it might be easy to provide both alternatives.
+For example, you can define functions with a "keyword" `INLINE' and
+define that as a macro to expand into either `inline' or nothing,
+depending on the compiler.
+
+ In general, perhaps it is best not to use the extensions if you can
+straightforwardly do without them, but to use the extensions if they
+are a big improvement.
+
+ An exception to this rule are the large, established programs (such
+as Emacs) which run on a great variety of systems. Using GNU
+extensions in such programs would make many users unhappy, so we don't
+do that.
+
+ Another exception is for programs that are used as part of
+compilation: anything that must be compiled with other compilers in
+order to bootstrap the GNU compilation facilities. If these require
+the GNU compiler, then no one can compile them without having them
+installed already. That would be extremely troublesome in certain
+cases.
+
+
+File: standards.info, Node: Standard C, Next: Conditional Compilation, Prev: Using Extensions, Up: Design Advice
+
+3.4 Standard C and Pre-Standard C
+=================================
+
+1989 Standard C is widespread enough now that it is ok to use its
+features in new programs. There is one exception: do not ever use the
+"trigraph" feature of Standard C.
+
+ 1999 Standard C is not widespread yet, so please do not require its
+features in programs. It is ok to use its features if they are present.
+
+ However, it is easy to support pre-standard compilers in most
+programs, so if you know how to do that, feel free. If a program you
+are maintaining has such support, you should try to keep it working.
+
+ To support pre-standard C, instead of writing function definitions in
+standard prototype form,
+
+ int
+ foo (int x, int y)
+ ...
+
+write the definition in pre-standard style like this,
+
+ int
+ foo (x, y)
+ int x, y;
+ ...
+
+and use a separate declaration to specify the argument prototype:
+
+ int foo (int, int);
+
+ You need such a declaration anyway, in a header file, to get the
+benefit of prototypes in all the files where the function is called.
+And once you have the declaration, you normally lose nothing by writing
+the function definition in the pre-standard style.
+
+ This technique does not work for integer types narrower than `int'.
+If you think of an argument as being of a type narrower than `int',
+declare it as `int' instead.
+
+ There are a few special cases where this technique is hard to use.
+For example, if a function argument needs to hold the system type
+`dev_t', you run into trouble, because `dev_t' is shorter than `int' on
+some machines; but you cannot use `int' instead, because `dev_t' is
+wider than `int' on some machines. There is no type you can safely use
+on all machines in a non-standard definition. The only way to support
+non-standard C and pass such an argument is to check the width of
+`dev_t' using Autoconf and choose the argument type accordingly. This
+may not be worth the trouble.
+
+ In order to support pre-standard compilers that do not recognize
+prototypes, you may want to use a preprocessor macro like this:
+
+ /* Declare the prototype for a general external function. */
+ #if defined (__STDC__) || defined (WINDOWSNT)
+ #define P_(proto) proto
+ #else
+ #define P_(proto) ()
+ #endif
+
+
+File: standards.info, Node: Conditional Compilation, Prev: Standard C, Up: Design Advice
+
+3.5 Conditional Compilation
+===========================
+
+When supporting configuration options already known when building your
+program we prefer using `if (... )' over conditional compilation, as in
+the former case the compiler is able to perform more extensive checking
+of all possible code paths.
+
+ For example, please write
+
+ if (HAS_FOO)
+ ...
+ else
+ ...
+
+instead of:
+
+ #ifdef HAS_FOO
+ ...
+ #else
+ ...
+ #endif
+
+ A modern compiler such as GCC will generate exactly the same code in
+both cases, and we have been using similar techniques with good success
+in several projects. Of course, the former method assumes that
+`HAS_FOO' is defined as either 0 or 1.
+
+ While this is not a silver bullet solving all portability problems,
+and is not always appropriate, following this policy would have saved
+GCC developers many hours, or even days, per year.
+
+ In the case of function-like macros like `REVERSIBLE_CC_MODE' in GCC
+which cannot be simply used in `if (...)' statements, there is an easy
+workaround. Simply introduce another macro `HAS_REVERSIBLE_CC_MODE' as
+in the following example:
+
+ #ifdef REVERSIBLE_CC_MODE
+ #define HAS_REVERSIBLE_CC_MODE 1
+ #else
+ #define HAS_REVERSIBLE_CC_MODE 0
+ #endif
+
+
+File: standards.info, Node: Program Behavior, Next: Writing C, Prev: Design Advice, Up: Top
+
+4 Program Behavior for All Programs
+***********************************
+
+This chapter describes conventions for writing robust software. It
+also describes general standards for error messages, the command line
+interface, and how libraries should behave.
+
+* Menu:
+
+* Non-GNU Standards:: We consider standards such as POSIX;
+ we don't "obey" them.
+* Semantics:: Writing robust programs.
+* Libraries:: Library behavior.
+* Errors:: Formatting error messages.
+* User Interfaces:: Standards about interfaces generally.
+* Graphical Interfaces:: Standards for graphical interfaces.
+* Command-Line Interfaces:: Standards for command line interfaces.
+* Dynamic Plug-In Interfaces:: Standards for dynamic plug-in interfaces.
+* Option Table:: Table of long options.
+* OID Allocations:: Table of OID slots for GNU.
+* Memory Usage:: When and how to care about memory needs.
+* File Usage:: Which files to use, and where.
+
+
+File: standards.info, Node: Non-GNU Standards, Next: Semantics, Up: Program Behavior
+
+4.1 Non-GNU Standards
+=====================
+
+The GNU Project regards standards published by other organizations as
+suggestions, not orders. We consider those standards, but we do not
+"obey" them. In developing a GNU program, you should implement an
+outside standard's specifications when that makes the GNU system better
+overall in an objective sense. When it doesn't, you shouldn't.
+
+ In most cases, following published standards is convenient for
+users--it means that their programs or scripts will work more portably.
+For instance, GCC implements nearly all the features of Standard C as
+specified by that standard. C program developers would be unhappy if
+it did not. And GNU utilities mostly follow specifications of POSIX.2;
+shell script writers and users would be unhappy if our programs were
+incompatible.
+
+ But we do not follow either of these specifications rigidly, and
+there are specific points on which we decided not to follow them, so as
+to make the GNU system better for users.
+
+ For instance, Standard C says that nearly all extensions to C are
+prohibited. How silly! GCC implements many extensions, some of which
+were later adopted as part of the standard. If you want these
+constructs to give an error message as "required" by the standard, you
+must specify `--pedantic', which was implemented only so that we can
+say "GCC is a 100% implementation of the standard", not because there
+is any reason to actually use it.
+
+ POSIX.2 specifies that `df' and `du' must output sizes by default in
+units of 512 bytes. What users want is units of 1k, so that is what we
+do by default. If you want the ridiculous behavior "required" by
+POSIX, you must set the environment variable `POSIXLY_CORRECT' (which
+was originally going to be named `POSIX_ME_HARDER').
+
+ GNU utilities also depart from the letter of the POSIX.2
+specification when they support long-named command-line options, and
+intermixing options with ordinary arguments. This minor
+incompatibility with POSIX is never a problem in practice, and it is
+very useful.
+
+ In particular, don't reject a new feature, or remove an old one,
+merely because a standard says it is "forbidden" or "deprecated".
+
+
+File: standards.info, Node: Semantics, Next: Libraries, Prev: Non-GNU Standards, Up: Program Behavior
+
+4.2 Writing Robust Programs
+===========================
+
+Avoid arbitrary limits on the length or number of _any_ data structure,
+including file names, lines, files, and symbols, by allocating all data
+structures dynamically. In most Unix utilities, "long lines are
+silently truncated". This is not acceptable in a GNU utility.
+
+ Utilities reading files should not drop NUL characters, or any other
+nonprinting characters _including those with codes above 0177_. The
+only sensible exceptions would be utilities specifically intended for
+interface to certain types of terminals or printers that can't handle
+those characters. Whenever possible, try to make programs work
+properly with sequences of bytes that represent multibyte characters;
+UTF-8 is the most important.
+
+ Check every system call for an error return, unless you know you wish
+to ignore errors. Include the system error text (from `perror',
+`strerror', or equivalent) in _every_ error message resulting from a
+failing system call, as well as the name of the file if any and the
+name of the utility. Just "cannot open foo.c" or "stat failed" is not
+sufficient.
+
+ Check every call to `malloc' or `realloc' to see if it returned
+zero. Check `realloc' even if you are making the block smaller; in a
+system that rounds block sizes to a power of 2, `realloc' may get a
+different block if you ask for less space.
+
+ In Unix, `realloc' can destroy the storage block if it returns zero.
+GNU `realloc' does not have this bug: if it fails, the original block
+is unchanged. Feel free to assume the bug is fixed. If you wish to
+run your program on Unix, and wish to avoid lossage in this case, you
+can use the GNU `malloc'.
+
+ You must expect `free' to alter the contents of the block that was
+freed. Anything you want to fetch from the block, you must fetch before
+calling `free'.
+
+ If `malloc' fails in a noninteractive program, make that a fatal
+error. In an interactive program (one that reads commands from the
+user), it is better to abort the command and return to the command
+reader loop. This allows the user to kill other processes to free up
+virtual memory, and then try the command again.
+
+ Use `getopt_long' to decode arguments, unless the argument syntax
+makes this unreasonable.
+
+ When static storage is to be written in during program execution, use
+explicit C code to initialize it. Reserve C initialized declarations
+for data that will not be changed.
+
+ Try to avoid low-level interfaces to obscure Unix data structures
+(such as file directories, utmp, or the layout of kernel memory), since
+these are less likely to work compatibly. If you need to find all the
+files in a directory, use `readdir' or some other high-level interface.
+These are supported compatibly by GNU.
+
+ The preferred signal handling facilities are the BSD variant of
+`signal', and the POSIX `sigaction' function; the alternative USG
+`signal' interface is an inferior design.
+
+ Nowadays, using the POSIX signal functions may be the easiest way to
+make a program portable. If you use `signal', then on GNU/Linux
+systems running GNU libc version 1, you should include `bsd/signal.h'
+instead of `signal.h', so as to get BSD behavior. It is up to you
+whether to support systems where `signal' has only the USG behavior, or
+give up on them.
+
+ In error checks that detect "impossible" conditions, just abort.
+There is usually no point in printing any message. These checks
+indicate the existence of bugs. Whoever wants to fix the bugs will have
+to read the source code and run a debugger. So explain the problem with
+comments in the source. The relevant data will be in variables, which
+are easy to examine with the debugger, so there is no point moving them
+elsewhere.
+
+ Do not use a count of errors as the exit status for a program.
+_That does not work_, because exit status values are limited to 8 bits
+(0 through 255). A single run of the program might have 256 errors; if
+you try to return 256 as the exit status, the parent process will see 0
+as the status, and it will appear that the program succeeded.
+
+ If you make temporary files, check the `TMPDIR' environment
+variable; if that variable is defined, use the specified directory
+instead of `/tmp'.
+
+ In addition, be aware that there is a possible security problem when
+creating temporary files in world-writable directories. In C, you can
+avoid this problem by creating temporary files in this manner:
+
+ fd = open (filename, O_WRONLY | O_CREAT | O_EXCL, 0600);
+
+or by using the `mkstemps' function from Gnulib (*note mkstemps:
+(gnulib)mkstemps.).
+
+ In bash, use `set -C' (long name `noclobber') to avoid this problem.
+In addition, the `mktemp' utility is a more general solution for
+creating temporary files from shell scripts (*note mktemp invocation:
+(coreutils)mktemp invocation.).
+
+
+File: standards.info, Node: Libraries, Next: Errors, Prev: Semantics, Up: Program Behavior
+
+4.3 Library Behavior
+====================
+
+Try to make library functions reentrant. If they need to do dynamic
+storage allocation, at least try to avoid any nonreentrancy aside from
+that of `malloc' itself.
+
+ Here are certain name conventions for libraries, to avoid name
+conflicts.
+
+ Choose a name prefix for the library, more than two characters long.
+All external function and variable names should start with this prefix.
+In addition, there should only be one of these in any given library
+member. This usually means putting each one in a separate source file.
+
+ An exception can be made when two external symbols are always used
+together, so that no reasonable program could use one without the
+other; then they can both go in the same file.
+
+ External symbols that are not documented entry points for the user
+should have names beginning with `_'. The `_' should be followed by
+the chosen name prefix for the library, to prevent collisions with
+other libraries. These can go in the same files with user entry points
+if you like.
+
+ Static functions and variables can be used as you like and need not
+fit any naming convention.
+
+
+File: standards.info, Node: Errors, Next: User Interfaces, Prev: Libraries, Up: Program Behavior
+
+4.4 Formatting Error Messages
+=============================
+
+Error messages from compilers should look like this:
+
+ SOURCEFILE:LINENO: MESSAGE
+
+If you want to mention the column number, use one of these formats:
+
+ SOURCEFILE:LINENO:COLUMN: MESSAGE
+ SOURCEFILE:LINENO.COLUMN: MESSAGE
+
+Line numbers should start from 1 at the beginning of the file, and
+column numbers should start from 1 at the beginning of the line. (Both
+of these conventions are chosen for compatibility.) Calculate column
+numbers assuming that space and all ASCII printing characters have
+equal width, and assuming tab stops every 8 columns. For non-ASCII
+characters, Unicode character widths should be used when in a UTF-8
+locale; GNU libc and GNU gnulib provide suitable `wcwidth' functions.
+
+ The error message can also give both the starting and ending
+positions of the erroneous text. There are several formats so that you
+can avoid redundant information such as a duplicate line number. Here
+are the possible formats:
+
+ SOURCEFILE:LINE1.COLUMN1-LINE2.COLUMN2: MESSAGE
+ SOURCEFILE:LINE1.COLUMN1-COLUMN2: MESSAGE
+ SOURCEFILE:LINE1-LINE2: MESSAGE
+
+When an error is spread over several files, you can use this format:
+
+ FILE1:LINE1.COLUMN1-FILE2:LINE2.COLUMN2: MESSAGE
+
+ Error messages from other noninteractive programs should look like
+this:
+
+ PROGRAM:SOURCEFILE:LINENO: MESSAGE
+
+when there is an appropriate source file, or like this:
+
+ PROGRAM: MESSAGE
+
+when there is no relevant source file.
+
+ If you want to mention the column number, use this format:
+
+ PROGRAM:SOURCEFILE:LINENO:COLUMN: MESSAGE
+
+ In an interactive program (one that is reading commands from a
+terminal), it is better not to include the program name in an error
+message. The place to indicate which program is running is in the
+prompt or with the screen layout. (When the same program runs with
+input from a source other than a terminal, it is not interactive and
+would do best to print error messages using the noninteractive style.)
+
+ The string MESSAGE should not begin with a capital letter when it
+follows a program name and/or file name, because that isn't the
+beginning of a sentence. (The sentence conceptually starts at the
+beginning of the line.) Also, it should not end with a period.
+
+ Error messages from interactive programs, and other messages such as
+usage messages, should start with a capital letter. But they should not
+end with a period.
+
+
+File: standards.info, Node: User Interfaces, Next: Graphical Interfaces, Prev: Errors, Up: Program Behavior
+
+4.5 Standards for Interfaces Generally
+======================================
+
+Please don't make the behavior of a utility depend on the name used to
+invoke it. It is useful sometimes to make a link to a utility with a
+different name, and that should not change what it does.
+
+ Instead, use a run time option or a compilation switch or both to
+select among the alternate behaviors.
+
+ Likewise, please don't make the behavior of the program depend on the
+type of output device it is used with. Device independence is an
+important principle of the system's design; do not compromise it merely
+to save someone from typing an option now and then. (Variation in error
+message syntax when using a terminal is ok, because that is a side issue
+that people do not depend on.)
+
+ If you think one behavior is most useful when the output is to a
+terminal, and another is most useful when the output is a file or a
+pipe, then it is usually best to make the default behavior the one that
+is useful with output to a terminal, and have an option for the other
+behavior.
+
+ Compatibility requires certain programs to depend on the type of
+output device. It would be disastrous if `ls' or `sh' did not do so in
+the way all users expect. In some of these cases, we supplement the
+program with a preferred alternate version that does not depend on the
+output device type. For example, we provide a `dir' program much like
+`ls' except that its default output format is always multi-column
+format.
+
+
+File: standards.info, Node: Graphical Interfaces, Next: Command-Line Interfaces, Prev: User Interfaces, Up: Program Behavior
+
+4.6 Standards for Graphical Interfaces
+======================================
+
+When you write a program that provides a graphical user interface,
+please make it work with the X Window System and the GTK+ toolkit
+unless the functionality specifically requires some alternative (for
+example, "displaying jpeg images while in console mode").
+
+ In addition, please provide a command-line interface to control the
+functionality. (In many cases, the graphical user interface can be a
+separate program which invokes the command-line program.) This is so
+that the same jobs can be done from scripts.
+
+ Please also consider providing a D-bus interface for use from other
+running programs, such as within GNOME. (GNOME used to use CORBA for
+this, but that is being phased out.) In addition, consider providing a
+library interface (for use from C), and perhaps a keyboard-driven
+console interface (for use by users from console mode). Once you are
+doing the work to provide the functionality and the graphical
+interface, these won't be much extra work.
+
+
+File: standards.info, Node: Command-Line Interfaces, Next: Dynamic Plug-In Interfaces, Prev: Graphical Interfaces, Up: Program Behavior
+
+4.7 Standards for Command Line Interfaces
+=========================================
+
+It is a good idea to follow the POSIX guidelines for the command-line
+options of a program. The easiest way to do this is to use `getopt' to
+parse them. Note that the GNU version of `getopt' will normally permit
+options anywhere among the arguments unless the special argument `--'
+is used. This is not what POSIX specifies; it is a GNU extension.
+
+ Please define long-named options that are equivalent to the
+single-letter Unix-style options. We hope to make GNU more user
+friendly this way. This is easy to do with the GNU function
+`getopt_long'.
+
+ One of the advantages of long-named options is that they can be
+consistent from program to program. For example, users should be able
+to expect the "verbose" option of any GNU program which has one, to be
+spelled precisely `--verbose'. To achieve this uniformity, look at the
+table of common long-option names when you choose the option names for
+your program (*note Option Table::).
+
+ It is usually a good idea for file names given as ordinary arguments
+to be input files only; any output files would be specified using
+options (preferably `-o' or `--output'). Even if you allow an output
+file name as an ordinary argument for compatibility, try to provide an
+option as another way to specify it. This will lead to more consistency
+among GNU utilities, and fewer idiosyncrasies for users to remember.
+
+ All programs should support two standard options: `--version' and
+`--help'. CGI programs should accept these as command-line options,
+and also if given as the `PATH_INFO'; for instance, visiting
+`http://example.org/p.cgi/--help' in a browser should output the same
+information as invoking `p.cgi --help' from the command line.
+
+* Menu:
+
+* --version:: The standard output for --version.
+* --help:: The standard output for --help.
+
+
+File: standards.info, Node: --version, Next: --help, Up: Command-Line Interfaces
+
+4.7.1 `--version'
+-----------------
+
+The standard `--version' option should direct the program to print
+information about its name, version, origin and legal status, all on
+standard output, and then exit successfully. Other options and
+arguments should be ignored once this is seen, and the program should
+not perform its normal function.
+
+ The first line is meant to be easy for a program to parse; the
+version number proper starts after the last space. In addition, it
+contains the canonical name for this program, in this format:
+
+ GNU Emacs 19.30
+
+The program's name should be a constant string; _don't_ compute it from
+`argv[0]'. The idea is to state the standard or canonical name for the
+program, not its file name. There are other ways to find out the
+precise file name where a command is found in `PATH'.
+
+ If the program is a subsidiary part of a larger package, mention the
+package name in parentheses, like this:
+
+ emacsserver (GNU Emacs) 19.30
+
+If the package has a version number which is different from this
+program's version number, you can mention the package version number
+just before the close-parenthesis.
+
+ If you _need_ to mention the version numbers of libraries which are
+distributed separately from the package which contains this program,
+you can do so by printing an additional line of version info for each
+library you want to mention. Use the same format for these lines as for
+the first line.
+
+ Please do not mention all of the libraries that the program uses
+"just for completeness"--that would produce a lot of unhelpful clutter.
+Please mention library version numbers only if you find in practice that
+they are very important to you in debugging.
+
+ The following line, after the version number line or lines, should
+be a copyright notice. If more than one copyright notice is called
+for, put each on a separate line.
+
+ Next should follow a line stating the license, preferably using one
+of abbreviations below, and a brief statement that the program is free
+software, and that users are free to copy and change it. Also mention
+that there is no warranty, to the extent permitted by law. See
+recommended wording below.
+
+ It is ok to finish the output with a list of the major authors of the
+program, as a way of giving credit.
+
+ Here's an example of output that follows these rules:
+
+ GNU hello 2.3
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+ This is free software: you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law.
+
+ You should adapt this to your program, of course, filling in the
+proper year, copyright holder, name of program, and the references to
+distribution terms, and changing the rest of the wording as necessary.
+
+ This copyright notice only needs to mention the most recent year in
+which changes were made--there's no need to list the years for previous
+versions' changes. You don't have to mention the name of the program in
+these notices, if that is inconvenient, since it appeared in the first
+line. (The rules are different for copyright notices in source files;
+*note Copyright Notices: (maintain)Copyright Notices.)
+
+ Translations of the above lines must preserve the validity of the
+copyright notices (*note Internationalization::). If the translation's
+character set supports it, the `(C)' should be replaced with the
+copyright symbol, as follows:
+
+ (the official copyright symbol, which is the letter C in a circle);
+
+ Write the word "Copyright" exactly like that, in English. Do not
+translate it into another language. International treaties recognize
+the English word "Copyright"; translations into other languages do not
+have legal significance.
+
+ Finally, here is the table of our suggested license abbreviations.
+Any abbreviation can be followed by `vVERSION[+]', meaning that
+particular version, or later versions with the `+', as shown above.
+
+ In the case of exceptions for extra permissions with the GPL, we use
+`/' for a separator; the version number can follow the license
+abbreviation as usual, as in the examples below.
+
+GPL
+ GNU General Public License, `http://www.gnu.org/licenses/gpl.html'.
+
+LGPL
+ GNU Lesser General Public License,
+ `http://www.gnu.org/licenses/lgpl.html'.
+
+GPL/Ada
+ GNU GPL with the exception for Ada.
+
+Apache
+ The Apache Software Foundation license,
+ `http://www.apache.org/licenses'.
+
+Artistic
+ The Artistic license used for Perl,
+ `http://www.perlfoundation.org/legal'.
+
+Expat
+ The Expat license, `http://www.jclark.com/xml/copying.txt'.
+
+MPL
+ The Mozilla Public License, `http://www.mozilla.org/MPL/'.
+
+OBSD
+ The original (4-clause) BSD license, incompatible with the GNU GPL
+ `http://www.xfree86.org/3.3.6/COPYRIGHT2.html#6'.
+
+PHP
+ The license used for PHP, `http://www.php.net/license/'.
+
+public domain
+ The non-license that is being in the public domain,
+ `http://www.gnu.org/licenses/license-list.html#PublicDomain'.
+
+Python
+ The license for Python, `http://www.python.org/2.0.1/license.html'.
+
+RBSD
+ The revised (3-clause) BSD, compatible with the GNU GPL,
+ `http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5'.
+
+X11
+ The simple non-copyleft license used for most versions of the X
+ Window System, `http://www.xfree86.org/3.3.6/COPYRIGHT2.html#3'.
+
+Zlib
+ The license for Zlib, `http://www.gzip.org/zlib/zlib_license.html'.
+
+
+ More information about these licenses and many more are on the GNU
+licensing web pages, `http://www.gnu.org/licenses/license-list.html'.
+
+
+File: standards.info, Node: --help, Prev: --version, Up: Command-Line Interfaces
+
+4.7.2 `--help'
+--------------
+
+The standard `--help' option should output brief documentation for how
+to invoke the program, on standard output, then exit successfully.
+Other options and arguments should be ignored once this is seen, and
+the program should not perform its normal function.
+
+ Near the end of the `--help' option's output, please place lines
+giving the email address for bug reports, the package's home page
+(normally <http://www.gnu.org/software/PKG>, and the general page for
+help using GNU programs. The format should be like this:
+
+ Report bugs to: MAILING-ADDRESS
+ PKG home page: <http://www.gnu.org/software/PKG/>
+ General help using GNU software: <http://www.gnu.org/gethelp/>
+
+ It is ok to mention other appropriate mailing lists and web pages.
+
+
+File: standards.info, Node: Dynamic Plug-In Interfaces, Next: Option Table, Prev: Command-Line Interfaces, Up: Program Behavior
+
+4.8 Standards for Dynamic Plug-in Interfaces
+============================================
+
+Another aspect of keeping free programs free is encouraging development
+of free plug-ins, and discouraging development of proprietary plug-ins.
+Many GNU programs will not have anything like plug-ins at all, but
+those that do should follow these practices.
+
+ First, the general plug-in architecture design should closely tie the
+plug-in to the original code, such that the plug-in and the base
+program are parts of one extended program. For GCC, for example,
+plug-ins receive and modify GCC's internal data structures, and so
+clearly form an extended program with the base GCC.
+
+ Second, you should require plug-in developers to affirm that their
+plug-ins are released under an appropriate license. This should be
+enforced with a simple programmatic check. For GCC, again for example,
+a plug-in must define the global symbol `plugin_is_GPL_compatible',
+thus asserting that the plug-in is released under a GPL-compatible
+license (*note Plugins: (gccint)Plugins.).
+
+ By adding this check to your program you are not creating a new legal
+requirement. The GPL itself requires plug-ins to be free software,
+licensed compatibly. As long as you have followed the first rule above
+to keep plug-ins closely tied to your original program, the GPL and AGPL
+already require those plug-ins to be released under a compatible
+license. The symbol definition in the plug-in--or whatever equivalent
+works best in your program--makes it harder for anyone who might
+distribute proprietary plug-ins to legally defend themselves. If a case
+about this got to court, we can point to that symbol as evidence that
+the plug-in developer understood that the license had this requirement.
+
+
+File: standards.info, Node: Option Table, Next: OID Allocations, Prev: Dynamic Plug-In Interfaces, Up: Program Behavior
+
+4.9 Table of Long Options
+=========================
+
+Here is a table of long options used by GNU programs. It is surely
+incomplete, but we aim to list all the options that a new program might
+want to be compatible with. If you use names not already in the table,
+please send <bug-standards@gnu.org> a list of them, with their
+meanings, so we can update the table.
+
+`after-date'
+ `-N' in `tar'.
+
+`all'
+ `-a' in `du', `ls', `nm', `stty', `uname', and `unexpand'.
+
+`all-text'
+ `-a' in `diff'.
+
+`almost-all'
+ `-A' in `ls'.
+
+`append'
+ `-a' in `etags', `tee', `time'; `-r' in `tar'.
+
+`archive'
+ `-a' in `cp'.
+
+`archive-name'
+ `-n' in `shar'.
+
+`arglength'
+ `-l' in `m4'.
+
+`ascii'
+ `-a' in `diff'.
+
+`assign'
+ `-v' in `gawk'.
+
+`assume-new'
+ `-W' in `make'.
+
+`assume-old'
+ `-o' in `make'.
+
+`auto-check'
+ `-a' in `recode'.
+
+`auto-pager'
+ `-a' in `wdiff'.
+
+`auto-reference'
+ `-A' in `ptx'.
+
+`avoid-wraps'
+ `-n' in `wdiff'.
+
+`background'
+ For server programs, run in the background.
+
+`backward-search'
+ `-B' in `ctags'.
+
+`basename'
+ `-f' in `shar'.
+
+`batch'
+ Used in GDB.
+
+`baud'
+ Used in GDB.
+
+`before'
+ `-b' in `tac'.
+
+`binary'
+ `-b' in `cpio' and `diff'.
+
+`bits-per-code'
+ `-b' in `shar'.
+
+`block-size'
+ Used in `cpio' and `tar'.
+
+`blocks'
+ `-b' in `head' and `tail'.
+
+`break-file'
+ `-b' in `ptx'.
+
+`brief'
+ Used in various programs to make output shorter.
+
+`bytes'
+ `-c' in `head', `split', and `tail'.
+
+`c++'
+ `-C' in `etags'.
+
+`catenate'
+ `-A' in `tar'.
+
+`cd'
+ Used in various programs to specify the directory to use.
+
+`changes'
+ `-c' in `chgrp' and `chown'.
+
+`classify'
+ `-F' in `ls'.
+
+`colons'
+ `-c' in `recode'.
+
+`command'
+ `-c' in `su'; `-x' in GDB.
+
+`compare'
+ `-d' in `tar'.
+
+`compat'
+ Used in `gawk'.
+
+`compress'
+ `-Z' in `tar' and `shar'.
+
+`concatenate'
+ `-A' in `tar'.
+
+`confirmation'
+ `-w' in `tar'.
+
+`context'
+ Used in `diff'.
+
+`copyleft'
+ `-W copyleft' in `gawk'.
+
+`copyright'
+ `-C' in `ptx', `recode', and `wdiff'; `-W copyright' in `gawk'.
+
+`core'
+ Used in GDB.
+
+`count'
+ `-q' in `who'.
+
+`count-links'
+ `-l' in `du'.
+
+`create'
+ Used in `tar' and `cpio'.
+
+`cut-mark'
+ `-c' in `shar'.
+
+`cxref'
+ `-x' in `ctags'.
+
+`date'
+ `-d' in `touch'.
+
+`debug'
+ `-d' in `make' and `m4'; `-t' in Bison.
+
+`define'
+ `-D' in `m4'.
+
+`defines'
+ `-d' in Bison and `ctags'.
+
+`delete'
+ `-D' in `tar'.
+
+`dereference'
+ `-L' in `chgrp', `chown', `cpio', `du', `ls', and `tar'.
+
+`dereference-args'
+ `-D' in `du'.
+
+`device'
+ Specify an I/O device (special file name).
+
+`diacritics'
+ `-d' in `recode'.
+
+`dictionary-order'
+ `-d' in `look'.
+
+`diff'
+ `-d' in `tar'.
+
+`digits'
+ `-n' in `csplit'.
+
+`directory'
+ Specify the directory to use, in various programs. In `ls', it
+ means to show directories themselves rather than their contents.
+ In `rm' and `ln', it means to not treat links to directories
+ specially.
+
+`discard-all'
+ `-x' in `strip'.
+
+`discard-locals'
+ `-X' in `strip'.
+
+`dry-run'
+ `-n' in `make'.
+
+`ed'
+ `-e' in `diff'.
+
+`elide-empty-files'
+ `-z' in `csplit'.
+
+`end-delete'
+ `-x' in `wdiff'.
+
+`end-insert'
+ `-z' in `wdiff'.
+
+`entire-new-file'
+ `-N' in `diff'.
+
+`environment-overrides'
+ `-e' in `make'.
+
+`eof'
+ `-e' in `xargs'.
+
+`epoch'
+ Used in GDB.
+
+`error-limit'
+ Used in `makeinfo'.
+
+`error-output'
+ `-o' in `m4'.
+
+`escape'
+ `-b' in `ls'.
+
+`exclude-from'
+ `-X' in `tar'.
+
+`exec'
+ Used in GDB.
+
+`exit'
+ `-x' in `xargs'.
+
+`exit-0'
+ `-e' in `unshar'.
+
+`expand-tabs'
+ `-t' in `diff'.
+
+`expression'
+ `-e' in `sed'.
+
+`extern-only'
+ `-g' in `nm'.
+
+`extract'
+ `-i' in `cpio'; `-x' in `tar'.
+
+`faces'
+ `-f' in `finger'.
+
+`fast'
+ `-f' in `su'.
+
+`fatal-warnings'
+ `-E' in `m4'.
+
+`file'
+ `-f' in `gawk', `info', `make', `mt', `sed', and `tar'.
+
+`field-separator'
+ `-F' in `gawk'.
+
+`file-prefix'
+ `-b' in Bison.
+
+`file-type'
+ `-F' in `ls'.
+
+`files-from'
+ `-T' in `tar'.
+
+`fill-column'
+ Used in `makeinfo'.
+
+`flag-truncation'
+ `-F' in `ptx'.
+
+`fixed-output-files'
+ `-y' in Bison.
+
+`follow'
+ `-f' in `tail'.
+
+`footnote-style'
+ Used in `makeinfo'.
+
+`force'
+ `-f' in `cp', `ln', `mv', and `rm'.
+
+`force-prefix'
+ `-F' in `shar'.
+
+`foreground'
+ For server programs, run in the foreground; in other words, don't
+ do anything special to run the server in the background.
+
+`format'
+ Used in `ls', `time', and `ptx'.
+
+`freeze-state'
+ `-F' in `m4'.
+
+`fullname'
+ Used in GDB.
+
+`gap-size'
+ `-g' in `ptx'.
+
+`get'
+ `-x' in `tar'.
+
+`graphic'
+ `-i' in `ul'.
+
+`graphics'
+ `-g' in `recode'.
+
+`group'
+ `-g' in `install'.
+
+`gzip'
+ `-z' in `tar' and `shar'.
+
+`hashsize'
+ `-H' in `m4'.
+
+`header'
+ `-h' in `objdump' and `recode'
+
+`heading'
+ `-H' in `who'.
+
+`help'
+ Used to ask for brief usage information.
+
+`here-delimiter'
+ `-d' in `shar'.
+
+`hide-control-chars'
+ `-q' in `ls'.
+
+`html'
+ In `makeinfo', output HTML.
+
+`idle'
+ `-u' in `who'.
+
+`ifdef'
+ `-D' in `diff'.
+
+`ignore'
+ `-I' in `ls'; `-x' in `recode'.
+
+`ignore-all-space'
+ `-w' in `diff'.
+
+`ignore-backups'
+ `-B' in `ls'.
+
+`ignore-blank-lines'
+ `-B' in `diff'.
+
+`ignore-case'
+ `-f' in `look' and `ptx'; `-i' in `diff' and `wdiff'.
+
+`ignore-errors'
+ `-i' in `make'.
+
+`ignore-file'
+ `-i' in `ptx'.
+
+`ignore-indentation'
+ `-I' in `etags'.
+
+`ignore-init-file'
+ `-f' in Oleo.
+
+`ignore-interrupts'
+ `-i' in `tee'.
+
+`ignore-matching-lines'
+ `-I' in `diff'.
+
+`ignore-space-change'
+ `-b' in `diff'.
+
+`ignore-zeros'
+ `-i' in `tar'.
+
+`include'
+ `-i' in `etags'; `-I' in `m4'.
+
+`include-dir'
+ `-I' in `make'.
+
+`incremental'
+ `-G' in `tar'.
+
+`info'
+ `-i', `-l', and `-m' in Finger.
+
+`init-file'
+ In some programs, specify the name of the file to read as the
+ user's init file.
+
+`initial'
+ `-i' in `expand'.
+
+`initial-tab'
+ `-T' in `diff'.
+
+`inode'
+ `-i' in `ls'.
+
+`interactive'
+ `-i' in `cp', `ln', `mv', `rm'; `-e' in `m4'; `-p' in `xargs';
+ `-w' in `tar'.
+
+`intermix-type'
+ `-p' in `shar'.
+
+`iso-8601'
+ Used in `date'
+
+`jobs'
+ `-j' in `make'.
+
+`just-print'
+ `-n' in `make'.
+
+`keep-going'
+ `-k' in `make'.
+
+`keep-files'
+ `-k' in `csplit'.
+
+`kilobytes'
+ `-k' in `du' and `ls'.
+
+`language'
+ `-l' in `etags'.
+
+`less-mode'
+ `-l' in `wdiff'.
+
+`level-for-gzip'
+ `-g' in `shar'.
+
+`line-bytes'
+ `-C' in `split'.
+
+`lines'
+ Used in `split', `head', and `tail'.
+
+`link'
+ `-l' in `cpio'.
+
+`lint'
+`lint-old'
+ Used in `gawk'.
+
+`list'
+ `-t' in `cpio'; `-l' in `recode'.
+
+`list'
+ `-t' in `tar'.
+
+`literal'
+ `-N' in `ls'.
+
+`load-average'
+ `-l' in `make'.
+
+`login'
+ Used in `su'.
+
+`machine'
+ Used in `uname'.
+
+`macro-name'
+ `-M' in `ptx'.
+
+`mail'
+ `-m' in `hello' and `uname'.
+
+`make-directories'
+ `-d' in `cpio'.
+
+`makefile'
+ `-f' in `make'.
+
+`mapped'
+ Used in GDB.
+
+`max-args'
+ `-n' in `xargs'.
+
+`max-chars'
+ `-n' in `xargs'.
+
+`max-lines'
+ `-l' in `xargs'.
+
+`max-load'
+ `-l' in `make'.
+
+`max-procs'
+ `-P' in `xargs'.
+
+`mesg'
+ `-T' in `who'.
+
+`message'
+ `-T' in `who'.
+
+`minimal'
+ `-d' in `diff'.
+
+`mixed-uuencode'
+ `-M' in `shar'.
+
+`mode'
+ `-m' in `install', `mkdir', and `mkfifo'.
+
+`modification-time'
+ `-m' in `tar'.
+
+`multi-volume'
+ `-M' in `tar'.
+
+`name-prefix'
+ `-a' in Bison.
+
+`nesting-limit'
+ `-L' in `m4'.
+
+`net-headers'
+ `-a' in `shar'.
+
+`new-file'
+ `-W' in `make'.
+
+`no-builtin-rules'
+ `-r' in `make'.
+
+`no-character-count'
+ `-w' in `shar'.
+
+`no-check-existing'
+ `-x' in `shar'.
+
+`no-common'
+ `-3' in `wdiff'.
+
+`no-create'
+ `-c' in `touch'.
+
+`no-defines'
+ `-D' in `etags'.
+
+`no-deleted'
+ `-1' in `wdiff'.
+
+`no-dereference'
+ `-d' in `cp'.
+
+`no-inserted'
+ `-2' in `wdiff'.
+
+`no-keep-going'
+ `-S' in `make'.
+
+`no-lines'
+ `-l' in Bison.
+
+`no-piping'
+ `-P' in `shar'.
+
+`no-prof'
+ `-e' in `gprof'.
+
+`no-regex'
+ `-R' in `etags'.
+
+`no-sort'
+ `-p' in `nm'.
+
+`no-splash'
+ Don't print a startup splash screen.
+
+`no-split'
+ Used in `makeinfo'.
+
+`no-static'
+ `-a' in `gprof'.
+
+`no-time'
+ `-E' in `gprof'.
+
+`no-timestamp'
+ `-m' in `shar'.
+
+`no-validate'
+ Used in `makeinfo'.
+
+`no-wait'
+ Used in `emacsclient'.
+
+`no-warn'
+ Used in various programs to inhibit warnings.
+
+`node'
+ `-n' in `info'.
+
+`nodename'
+ `-n' in `uname'.
+
+`nonmatching'
+ `-f' in `cpio'.
+
+`nstuff'
+ `-n' in `objdump'.
+
+`null'
+ `-0' in `xargs'.
+
+`number'
+ `-n' in `cat'.
+
+`number-nonblank'
+ `-b' in `cat'.
+
+`numeric-sort'
+ `-n' in `nm'.
+
+`numeric-uid-gid'
+ `-n' in `cpio' and `ls'.
+
+`nx'
+ Used in GDB.
+
+`old-archive'
+ `-o' in `tar'.
+
+`old-file'
+ `-o' in `make'.
+
+`one-file-system'
+ `-l' in `tar', `cp', and `du'.
+
+`only-file'
+ `-o' in `ptx'.
+
+`only-prof'
+ `-f' in `gprof'.
+
+`only-time'
+ `-F' in `gprof'.
+
+`options'
+ `-o' in `getopt', `fdlist', `fdmount', `fdmountd', and `fdumount'.
+
+`output'
+ In various programs, specify the output file name.
+
+`output-prefix'
+ `-o' in `shar'.
+
+`override'
+ `-o' in `rm'.
+
+`overwrite'
+ `-c' in `unshar'.
+
+`owner'
+ `-o' in `install'.
+
+`paginate'
+ `-l' in `diff'.
+
+`paragraph-indent'
+ Used in `makeinfo'.
+
+`parents'
+ `-p' in `mkdir' and `rmdir'.
+
+`pass-all'
+ `-p' in `ul'.
+
+`pass-through'
+ `-p' in `cpio'.
+
+`port'
+ `-P' in `finger'.
+
+`portability'
+ `-c' in `cpio' and `tar'.
+
+`posix'
+ Used in `gawk'.
+
+`prefix-builtins'
+ `-P' in `m4'.
+
+`prefix'
+ `-f' in `csplit'.
+
+`preserve'
+ Used in `tar' and `cp'.
+
+`preserve-environment'
+ `-p' in `su'.
+
+`preserve-modification-time'
+ `-m' in `cpio'.
+
+`preserve-order'
+ `-s' in `tar'.
+
+`preserve-permissions'
+ `-p' in `tar'.
+
+`print'
+ `-l' in `diff'.
+
+`print-chars'
+ `-L' in `cmp'.
+
+`print-data-base'
+ `-p' in `make'.
+
+`print-directory'
+ `-w' in `make'.
+
+`print-file-name'
+ `-o' in `nm'.
+
+`print-symdefs'
+ `-s' in `nm'.
+
+`printer'
+ `-p' in `wdiff'.
+
+`prompt'
+ `-p' in `ed'.
+
+`proxy'
+ Specify an HTTP proxy.
+
+`query-user'
+ `-X' in `shar'.
+
+`question'
+ `-q' in `make'.
+
+`quiet'
+ Used in many programs to inhibit the usual output. Every program
+ accepting `--quiet' should accept `--silent' as a synonym.
+
+`quiet-unshar'
+ `-Q' in `shar'
+
+`quote-name'
+ `-Q' in `ls'.
+
+`rcs'
+ `-n' in `diff'.
+
+`re-interval'
+ Used in `gawk'.
+
+`read-full-blocks'
+ `-B' in `tar'.
+
+`readnow'
+ Used in GDB.
+
+`recon'
+ `-n' in `make'.
+
+`record-number'
+ `-R' in `tar'.
+
+`recursive'
+ Used in `chgrp', `chown', `cp', `ls', `diff', and `rm'.
+
+`reference'
+ `-r' in `touch'.
+
+`references'
+ `-r' in `ptx'.
+
+`regex'
+ `-r' in `tac' and `etags'.
+
+`release'
+ `-r' in `uname'.
+
+`reload-state'
+ `-R' in `m4'.
+
+`relocation'
+ `-r' in `objdump'.
+
+`rename'
+ `-r' in `cpio'.
+
+`replace'
+ `-i' in `xargs'.
+
+`report-identical-files'
+ `-s' in `diff'.
+
+`reset-access-time'
+ `-a' in `cpio'.
+
+`reverse'
+ `-r' in `ls' and `nm'.
+
+`reversed-ed'
+ `-f' in `diff'.
+
+`right-side-defs'
+ `-R' in `ptx'.
+
+`same-order'
+ `-s' in `tar'.
+
+`same-permissions'
+ `-p' in `tar'.
+
+`save'
+ `-g' in `stty'.
+
+`se'
+ Used in GDB.
+
+`sentence-regexp'
+ `-S' in `ptx'.
+
+`separate-dirs'
+ `-S' in `du'.
+
+`separator'
+ `-s' in `tac'.
+
+`sequence'
+ Used by `recode' to chose files or pipes for sequencing passes.
+
+`shell'
+ `-s' in `su'.
+
+`show-all'
+ `-A' in `cat'.
+
+`show-c-function'
+ `-p' in `diff'.
+
+`show-ends'
+ `-E' in `cat'.
+
+`show-function-line'
+ `-F' in `diff'.
+
+`show-tabs'
+ `-T' in `cat'.
+
+`silent'
+ Used in many programs to inhibit the usual output. Every program
+ accepting `--silent' should accept `--quiet' as a synonym.
+
+`size'
+ `-s' in `ls'.
+
+`socket'
+ Specify a file descriptor for a network server to use for its
+ socket, instead of opening and binding a new socket. This
+ provides a way to run, in a non-privileged process, a server that
+ normally needs a reserved port number.
+
+`sort'
+ Used in `ls'.
+
+`source'
+ `-W source' in `gawk'.
+
+`sparse'
+ `-S' in `tar'.
+
+`speed-large-files'
+ `-H' in `diff'.
+
+`split-at'
+ `-E' in `unshar'.
+
+`split-size-limit'
+ `-L' in `shar'.
+
+`squeeze-blank'
+ `-s' in `cat'.
+
+`start-delete'
+ `-w' in `wdiff'.
+
+`start-insert'
+ `-y' in `wdiff'.
+
+`starting-file'
+ Used in `tar' and `diff' to specify which file within a directory
+ to start processing with.
+
+`statistics'
+ `-s' in `wdiff'.
+
+`stdin-file-list'
+ `-S' in `shar'.
+
+`stop'
+ `-S' in `make'.
+
+`strict'
+ `-s' in `recode'.
+
+`strip'
+ `-s' in `install'.
+
+`strip-all'
+ `-s' in `strip'.
+
+`strip-debug'
+ `-S' in `strip'.
+
+`submitter'
+ `-s' in `shar'.
+
+`suffix'
+ `-S' in `cp', `ln', `mv'.
+
+`suffix-format'
+ `-b' in `csplit'.
+
+`sum'
+ `-s' in `gprof'.
+
+`summarize'
+ `-s' in `du'.
+
+`symbolic'
+ `-s' in `ln'.
+
+`symbols'
+ Used in GDB and `objdump'.
+
+`synclines'
+ `-s' in `m4'.
+
+`sysname'
+ `-s' in `uname'.
+
+`tabs'
+ `-t' in `expand' and `unexpand'.
+
+`tabsize'
+ `-T' in `ls'.
+
+`terminal'
+ `-T' in `tput' and `ul'. `-t' in `wdiff'.
+
+`text'
+ `-a' in `diff'.
+
+`text-files'
+ `-T' in `shar'.
+
+`time'
+ Used in `ls' and `touch'.
+
+`timeout'
+ Specify how long to wait before giving up on some operation.
+
+`to-stdout'
+ `-O' in `tar'.
+
+`total'
+ `-c' in `du'.
+
+`touch'
+ `-t' in `make', `ranlib', and `recode'.
+
+`trace'
+ `-t' in `m4'.
+
+`traditional'
+ `-t' in `hello'; `-W traditional' in `gawk'; `-G' in `ed', `m4',
+ and `ptx'.
+
+`tty'
+ Used in GDB.
+
+`typedefs'
+ `-t' in `ctags'.
+
+`typedefs-and-c++'
+ `-T' in `ctags'.
+
+`typeset-mode'
+ `-t' in `ptx'.
+
+`uncompress'
+ `-z' in `tar'.
+
+`unconditional'
+ `-u' in `cpio'.
+
+`undefine'
+ `-U' in `m4'.
+
+`undefined-only'
+ `-u' in `nm'.
+
+`update'
+ `-u' in `cp', `ctags', `mv', `tar'.
+
+`usage'
+ Used in `gawk'; same as `--help'.
+
+`uuencode'
+ `-B' in `shar'.
+
+`vanilla-operation'
+ `-V' in `shar'.
+
+`verbose'
+ Print more information about progress. Many programs support this.
+
+`verify'
+ `-W' in `tar'.
+
+`version'
+ Print the version number.
+
+`version-control'
+ `-V' in `cp', `ln', `mv'.
+
+`vgrind'
+ `-v' in `ctags'.
+
+`volume'
+ `-V' in `tar'.
+
+`what-if'
+ `-W' in `make'.
+
+`whole-size-limit'
+ `-l' in `shar'.
+
+`width'
+ `-w' in `ls' and `ptx'.
+
+`word-regexp'
+ `-W' in `ptx'.
+
+`writable'
+ `-T' in `who'.
+
+`zeros'
+ `-z' in `gprof'.
+
+
+File: standards.info, Node: OID Allocations, Next: Memory Usage, Prev: Option Table, Up: Program Behavior
+
+4.10 OID Allocations
+====================
+
+The OID (object identifier) 1.3.6.1.4.1.11591 has been assigned to the
+GNU Project (thanks to Werner Koch). These are used for SNMP, LDAP,
+X.509 certificates, and so on. The web site
+`http://www.alvestrand.no/objectid' has a (voluntary) listing of many
+OID assignments.
+
+ If you need a new slot for your GNU package, write
+<maintainers@gnu.org>. Here is a list of arcs currently assigned:
+
+
+ 1.3.6.1.4.1.11591 GNU
+
+ 1.3.6.1.4.1.11591.1 GNU Radius
+
+ 1.3.6.1.4.1.11591.2 GnuPG
+ 1.3.6.1.4.1.11591.2.1 notation
+ 1.3.6.1.4.1.11591.2.1.1 pkaAddress
+
+ 1.3.6.1.4.1.11591.3 GNU Radar
+
+ 1.3.6.1.4.1.11591.4 GNU GSS
+
+ 1.3.6.1.4.1.11591.5 GNU Mailutils
+
+ 1.3.6.1.4.1.11591.6 GNU Shishi
+
+ 1.3.6.1.4.1.11591.7 GNU Radio
+
+ 1.3.6.1.4.1.11591.8 GNU Dico
+
+ 1.3.6.1.4.1.11591.12 digestAlgorithm
+ 1.3.6.1.4.1.11591.12.2 TIGER/192
+ 1.3.6.1.4.1.11591.13 encryptionAlgorithm
+ 1.3.6.1.4.1.11591.13.2 Serpent
+ 1.3.6.1.4.1.11591.13.2.1 Serpent-128-ECB
+ 1.3.6.1.4.1.11591.13.2.2 Serpent-128-CBC
+ 1.3.6.1.4.1.11591.13.2.3 Serpent-128-OFB
+ 1.3.6.1.4.1.11591.13.2.4 Serpent-128-CFB
+ 1.3.6.1.4.1.11591.13.2.21 Serpent-192-ECB
+ 1.3.6.1.4.1.11591.13.2.22 Serpent-192-CBC
+ 1.3.6.1.4.1.11591.13.2.23 Serpent-192-OFB
+ 1.3.6.1.4.1.11591.13.2.24 Serpent-192-CFB
+ 1.3.6.1.4.1.11591.13.2.41 Serpent-256-ECB
+ 1.3.6.1.4.1.11591.13.2.42 Serpent-256-CBC
+ 1.3.6.1.4.1.11591.13.2.43 Serpent-256-OFB
+ 1.3.6.1.4.1.11591.13.2.44 Serpent-256-CFB
+ 1.3.6.1.4.1.11591.14 CRC algorithms
+ 1.3.6.1.4.1.11591.14.1 CRC 32
+
+
+File: standards.info, Node: Memory Usage, Next: File Usage, Prev: OID Allocations, Up: Program Behavior
+
+4.11 Memory Usage
+=================
+
+If a program typically uses just a few meg of memory, don't bother
+making any effort to reduce memory usage. For example, if it is
+impractical for other reasons to operate on files more than a few meg
+long, it is reasonable to read entire input files into memory to
+operate on them.
+
+ However, for programs such as `cat' or `tail', that can usefully
+operate on very large files, it is important to avoid using a technique
+that would artificially limit the size of files it can handle. If a
+program works by lines and could be applied to arbitrary user-supplied
+input files, it should keep only a line in memory, because this is not
+very hard and users will want to be able to operate on input files that
+are bigger than will fit in memory all at once.
+
+ If your program creates complicated data structures, just make them
+in memory and give a fatal error if `malloc' returns zero.
+
+ Memory analysis tools such as `valgrind' can be useful, but don't
+complicate a program merely to avoid their false alarms. For example,
+if memory is used until just before a process exits, don't free it
+simply to silence such a tool.
+
+
+File: standards.info, Node: File Usage, Prev: Memory Usage, Up: Program Behavior
+
+4.12 File Usage
+===============
+
+Programs should be prepared to operate when `/usr' and `/etc' are
+read-only file systems. Thus, if the program manages log files, lock
+files, backup files, score files, or any other files which are modified
+for internal purposes, these files should not be stored in `/usr' or
+`/etc'.
+
+ There are two exceptions. `/etc' is used to store system
+configuration information; it is reasonable for a program to modify
+files in `/etc' when its job is to update the system configuration.
+Also, if the user explicitly asks to modify one file in a directory, it
+is reasonable for the program to store other files in the same
+directory.
+
+
+File: standards.info, Node: Writing C, Next: Documentation, Prev: Program Behavior, Up: Top
+
+5 Making The Best Use of C
+**************************
+
+This chapter provides advice on how best to use the C language when
+writing GNU software.
+
+* Menu:
+
+* Formatting:: Formatting your source code.
+* Comments:: Commenting your work.
+* Syntactic Conventions:: Clean use of C constructs.
+* Names:: Naming variables, functions, and files.
+* System Portability:: Portability among different operating systems.
+* CPU Portability:: Supporting the range of CPU types.
+* System Functions:: Portability and ``standard'' library functions.
+* Internationalization:: Techniques for internationalization.
+* Character Set:: Use ASCII by default.
+* Quote Characters:: Use "..." or '...' in the C locale.
+* Mmap:: How you can safely use `mmap'.
+
+
+File: standards.info, Node: Formatting, Next: Comments, Up: Writing C
+
+5.1 Formatting Your Source Code
+===============================
+
+It is important to put the open-brace that starts the body of a C
+function in column one, so that they will start a defun. Several tools
+look for open-braces in column one to find the beginnings of C
+functions. These tools will not work on code not formatted that way.
+
+ Avoid putting open-brace, open-parenthesis or open-bracket in column
+one when they are inside a function, so that they won't start a defun.
+The open-brace that starts a `struct' body can go in column one if you
+find it useful to treat that definition as a defun.
+
+ It is also important for function definitions to start the name of
+the function in column one. This helps people to search for function
+definitions, and may also help certain tools recognize them. Thus,
+using Standard C syntax, the format is this:
+
+ static char *
+ concat (char *s1, char *s2)
+ {
+ ...
+ }
+
+or, if you want to use traditional C syntax, format the definition like
+this:
+
+ static char *
+ concat (s1, s2) /* Name starts in column one here */
+ char *s1, *s2;
+ { /* Open brace in column one here */
+ ...
+ }
+
+ In Standard C, if the arguments don't fit nicely on one line, split
+it like this:
+
+ int
+ lots_of_args (int an_integer, long a_long, short a_short,
+ double a_double, float a_float)
+ ...
+
+ For `struct' and `enum' types, likewise put the braces in column
+one, unless the whole contents fits on one line:
+
+ struct foo
+ {
+ int a, b;
+ }
+or
+ struct foo { int a, b; }
+
+ The rest of this section gives our recommendations for other aspects
+of C formatting style, which is also the default style of the `indent'
+program in version 1.2 and newer. It corresponds to the options
+
+ -nbad -bap -nbc -bbo -bl -bli2 -bls -ncdb -nce -cp1 -cs -di2
+ -ndj -nfc1 -nfca -hnl -i2 -ip5 -lp -pcs -psl -nsc -nsob
+
+ We don't think of these recommendations as requirements, because it
+causes no problems for users if two different programs have different
+formatting styles.
+
+ But whatever style you use, please use it consistently, since a
+mixture of styles within one program tends to look ugly. If you are
+contributing changes to an existing program, please follow the style of
+that program.
+
+ For the body of the function, our recommended style looks like this:
+
+ if (x < foo (y, z))
+ haha = bar[4] + 5;
+ else
+ {
+ while (z)
+ {
+ haha += foo (z, z);
+ z--;
+ }
+ return ++x + bar ();
+ }
+
+ We find it easier to read a program when it has spaces before the
+open-parentheses and after the commas. Especially after the commas.
+
+ When you split an expression into multiple lines, split it before an
+operator, not after one. Here is the right way:
+
+ if (foo_this_is_long && bar > win (x, y, z)
+ && remaining_condition)
+
+ Try to avoid having two operators of different precedence at the same
+level of indentation. For example, don't write this:
+
+ mode = (inmode[j] == VOIDmode
+ || GET_MODE_SIZE (outmode[j]) > GET_MODE_SIZE (inmode[j])
+ ? outmode[j] : inmode[j]);
+
+ Instead, use extra parentheses so that the indentation shows the
+nesting:
+
+ mode = ((inmode[j] == VOIDmode
+ || (GET_MODE_SIZE (outmode[j]) > GET_MODE_SIZE (inmode[j])))
+ ? outmode[j] : inmode[j]);
+
+ Insert extra parentheses so that Emacs will indent the code properly.
+For example, the following indentation looks nice if you do it by hand,
+
+ v = rup->ru_utime.tv_sec*1000 + rup->ru_utime.tv_usec/1000
+ + rup->ru_stime.tv_sec*1000 + rup->ru_stime.tv_usec/1000;
+
+but Emacs would alter it. Adding a set of parentheses produces
+something that looks equally nice, and which Emacs will preserve:
+
+ v = (rup->ru_utime.tv_sec*1000 + rup->ru_utime.tv_usec/1000
+ + rup->ru_stime.tv_sec*1000 + rup->ru_stime.tv_usec/1000);
+
+ Format do-while statements like this:
+
+ do
+ {
+ a = foo (a);
+ }
+ while (a > 0);
+
+ Please use formfeed characters (control-L) to divide the program into
+pages at logical places (but not within a function). It does not matter
+just how long the pages are, since they do not have to fit on a printed
+page. The formfeeds should appear alone on lines by themselves.
+
+
+File: standards.info, Node: Comments, Next: Syntactic Conventions, Prev: Formatting, Up: Writing C
+
+5.2 Commenting Your Work
+========================
+
+Every program should start with a comment saying briefly what it is for.
+Example: `fmt - filter for simple filling of text'. This comment
+should be at the top of the source file containing the `main' function
+of the program.
+
+ Also, please write a brief comment at the start of each source file,
+with the file name and a line or two about the overall purpose of the
+file.
+
+ Please write the comments in a GNU program in English, because
+English is the one language that nearly all programmers in all
+countries can read. If you do not write English well, please write
+comments in English as well as you can, then ask other people to help
+rewrite them. If you can't write comments in English, please find
+someone to work with you and translate your comments into English.
+
+ Please put a comment on each function saying what the function does,
+what sorts of arguments it gets, and what the possible values of
+arguments mean and are used for. It is not necessary to duplicate in
+words the meaning of the C argument declarations, if a C type is being
+used in its customary fashion. If there is anything nonstandard about
+its use (such as an argument of type `char *' which is really the
+address of the second character of a string, not the first), or any
+possible values that would not work the way one would expect (such as,
+that strings containing newlines are not guaranteed to work), be sure
+to say so.
+
+ Also explain the significance of the return value, if there is one.
+
+ Please put two spaces after the end of a sentence in your comments,
+so that the Emacs sentence commands will work. Also, please write
+complete sentences and capitalize the first word. If a lower-case
+identifier comes at the beginning of a sentence, don't capitalize it!
+Changing the spelling makes it a different identifier. If you don't
+like starting a sentence with a lower case letter, write the sentence
+differently (e.g., "The identifier lower-case is ...").
+
+ The comment on a function is much clearer if you use the argument
+names to speak about the argument values. The variable name itself
+should be lower case, but write it in upper case when you are speaking
+about the value rather than the variable itself. Thus, "the inode
+number NODE_NUM" rather than "an inode".
+
+ There is usually no purpose in restating the name of the function in
+the comment before it, because readers can see that for themselves.
+There might be an exception when the comment is so long that the
+function itself would be off the bottom of the screen.
+
+ There should be a comment on each static variable as well, like this:
+
+ /* Nonzero means truncate lines in the display;
+ zero means continue them. */
+ int truncate_lines;
+
+ Every `#endif' should have a comment, except in the case of short
+conditionals (just a few lines) that are not nested. The comment should
+state the condition of the conditional that is ending, _including its
+sense_. `#else' should have a comment describing the condition _and
+sense_ of the code that follows. For example:
+
+ #ifdef foo
+ ...
+ #else /* not foo */
+ ...
+ #endif /* not foo */
+ #ifdef foo
+ ...
+ #endif /* foo */
+
+but, by contrast, write the comments this way for a `#ifndef':
+
+ #ifndef foo
+ ...
+ #else /* foo */
+ ...
+ #endif /* foo */
+ #ifndef foo
+ ...
+ #endif /* not foo */
+
+
+File: standards.info, Node: Syntactic Conventions, Next: Names, Prev: Comments, Up: Writing C
+
+5.3 Clean Use of C Constructs
+=============================
+
+Please explicitly declare the types of all objects. For example, you
+should explicitly declare all arguments to functions, and you should
+declare functions to return `int' rather than omitting the `int'.
+
+ Some programmers like to use the GCC `-Wall' option, and change the
+code whenever it issues a warning. If you want to do this, then do.
+Other programmers prefer not to use `-Wall', because it gives warnings
+for valid and legitimate code which they do not want to change. If you
+want to do this, then do. The compiler should be your servant, not
+your master.
+
+ Don't make the program ugly just to placate static analysis tools
+such as `lint', `clang', and GCC with extra warnings options such as
+`-Wconversion' and `-Wundef'. These tools can help find bugs and
+unclear code, but they can also generate so many false alarms that it
+hurts readability to silence them with unnecessary casts, wrappers, and
+other complications. For example, please don't insert casts to `void'
+or calls to do-nothing functions merely to pacify a lint checker.
+
+ Declarations of external functions and functions to appear later in
+the source file should all go in one place near the beginning of the
+file (somewhere before the first function definition in the file), or
+else should go in a header file. Don't put `extern' declarations inside
+functions.
+
+ It used to be common practice to use the same local variables (with
+names like `tem') over and over for different values within one
+function. Instead of doing this, it is better to declare a separate
+local variable for each distinct purpose, and give it a name which is
+meaningful. This not only makes programs easier to understand, it also
+facilitates optimization by good compilers. You can also move the
+declaration of each local variable into the smallest scope that includes
+all its uses. This makes the program even cleaner.
+
+ Don't use local variables or parameters that shadow global
+identifiers. GCC's `-Wshadow' option can detect this problem.
+
+ Don't declare multiple variables in one declaration that spans lines.
+Start a new declaration on each line, instead. For example, instead of
+this:
+
+ int foo,
+ bar;
+
+write either this:
+
+ int foo, bar;
+
+or this:
+
+ int foo;
+ int bar;
+
+(If they are global variables, each should have a comment preceding it
+anyway.)
+
+ When you have an `if'-`else' statement nested in another `if'
+statement, always put braces around the `if'-`else'. Thus, never write
+like this:
+
+ if (foo)
+ if (bar)
+ win ();
+ else
+ lose ();
+
+always like this:
+
+ if (foo)
+ {
+ if (bar)
+ win ();
+ else
+ lose ();
+ }
+
+ If you have an `if' statement nested inside of an `else' statement,
+either write `else if' on one line, like this,
+
+ if (foo)
+ ...
+ else if (bar)
+ ...
+
+with its `then'-part indented like the preceding `then'-part, or write
+the nested `if' within braces like this:
+
+ if (foo)
+ ...
+ else
+ {
+ if (bar)
+ ...
+ }
+
+ Don't declare both a structure tag and variables or typedefs in the
+same declaration. Instead, declare the structure tag separately and
+then use it to declare the variables or typedefs.
+
+ Try to avoid assignments inside `if'-conditions (assignments inside
+`while'-conditions are ok). For example, don't write this:
+
+ if ((foo = (char *) malloc (sizeof *foo)) == 0)
+ fatal ("virtual memory exhausted");
+
+instead, write this:
+
+ foo = (char *) malloc (sizeof *foo);
+ if (foo == 0)
+ fatal ("virtual memory exhausted");
+
+ This example uses zero without a cast as a null pointer constant.
+This is perfectly fine, except that a cast is needed when calling a
+varargs function or when using `sizeof'.
+
+
+File: standards.info, Node: Names, Next: System Portability, Prev: Syntactic Conventions, Up: Writing C
+
+5.4 Naming Variables, Functions, and Files
+==========================================
+
+The names of global variables and functions in a program serve as
+comments of a sort. So don't choose terse names--instead, look for
+names that give useful information about the meaning of the variable or
+function. In a GNU program, names should be English, like other
+comments.
+
+ Local variable names can be shorter, because they are used only
+within one context, where (presumably) comments explain their purpose.
+
+ Try to limit your use of abbreviations in symbol names. It is ok to
+make a few abbreviations, explain what they mean, and then use them
+frequently, but don't use lots of obscure abbreviations.
+
+ Please use underscores to separate words in a name, so that the Emacs
+word commands can be useful within them. Stick to lower case; reserve
+upper case for macros and `enum' constants, and for name-prefixes that
+follow a uniform convention.
+
+ For example, you should use names like `ignore_space_change_flag';
+don't use names like `iCantReadThis'.
+
+ Variables that indicate whether command-line options have been
+specified should be named after the meaning of the option, not after
+the option-letter. A comment should state both the exact meaning of
+the option and its letter. For example,
+
+ /* Ignore changes in horizontal whitespace (-b). */
+ int ignore_space_change_flag;
+
+ When you want to define names with constant integer values, use
+`enum' rather than `#define'. GDB knows about enumeration constants.
+
+ You might want to make sure that none of the file names would
+conflict if the files were loaded onto an MS-DOS file system which
+shortens the names. You can use the program `doschk' to test for this.
+
+ Some GNU programs were designed to limit themselves to file names of
+14 characters or less, to avoid file name conflicts if they are read
+into older System V systems. Please preserve this feature in the
+existing GNU programs that have it, but there is no need to do this in
+new GNU programs. `doschk' also reports file names longer than 14
+characters.
+
+
+File: standards.info, Node: System Portability, Next: CPU Portability, Prev: Names, Up: Writing C
+
+5.5 Portability between System Types
+====================================
+
+In the Unix world, "portability" refers to porting to different Unix
+versions. For a GNU program, this kind of portability is desirable, but
+not paramount.
+
+ The primary purpose of GNU software is to run on top of the GNU
+kernel, compiled with the GNU C compiler, on various types of CPU. So
+the kinds of portability that are absolutely necessary are quite
+limited. But it is important to support Linux-based GNU systems, since
+they are the form of GNU that is popular.
+
+ Beyond that, it is good to support the other free operating systems
+(*BSD), and it is nice to support other Unix-like systems if you want
+to. Supporting a variety of Unix-like systems is desirable, although
+not paramount. It is usually not too hard, so you may as well do it.
+But you don't have to consider it an obligation, if it does turn out to
+be hard.
+
+ The easiest way to achieve portability to most Unix-like systems is
+to use Autoconf. It's unlikely that your program needs to know more
+information about the host platform than Autoconf can provide, simply
+because most of the programs that need such knowledge have already been
+written.
+
+ Avoid using the format of semi-internal data bases (e.g.,
+directories) when there is a higher-level alternative (`readdir').
+
+ As for systems that are not like Unix, such as MSDOS, Windows, VMS,
+MVS, and older Macintosh systems, supporting them is often a lot of
+work. When that is the case, it is better to spend your time adding
+features that will be useful on GNU and GNU/Linux, rather than on
+supporting other incompatible systems.
+
+ If you do support Windows, please do not abbreviate it as "win". In
+hacker terminology, calling something a "win" is a form of praise.
+You're free to praise Microsoft Windows on your own if you want, but
+please don't do this in GNU packages. Instead of abbreviating
+"Windows" to "win", you can write it in full or abbreviate it to "woe"
+or "w". In GNU Emacs, for instance, we use `w32' in file names of
+Windows-specific files, but the macro for Windows conditionals is
+called `WINDOWSNT'.
+
+ It is a good idea to define the "feature test macro" `_GNU_SOURCE'
+when compiling your C files. When you compile on GNU or GNU/Linux,
+this will enable the declarations of GNU library extension functions,
+and that will usually give you a compiler error message if you define
+the same function names in some other way in your program. (You don't
+have to actually _use_ these functions, if you prefer to make the
+program more portable to other systems.)
+
+ But whether or not you use these GNU extensions, you should avoid
+using their names for any other meanings. Doing so would make it hard
+to move your code into other GNU programs.
+
+
+File: standards.info, Node: CPU Portability, Next: System Functions, Prev: System Portability, Up: Writing C
+
+5.6 Portability between CPUs
+============================
+
+Even GNU systems will differ because of differences among CPU
+types--for example, difference in byte ordering and alignment
+requirements. It is absolutely essential to handle these differences.
+However, don't make any effort to cater to the possibility that an
+`int' will be less than 32 bits. We don't support 16-bit machines in
+GNU.
+
+ Similarly, don't make any effort to cater to the possibility that
+`long' will be smaller than predefined types like `size_t'. For
+example, the following code is ok:
+
+ printf ("size = %lu\n", (unsigned long) sizeof array);
+ printf ("diff = %ld\n", (long) (pointer2 - pointer1));
+
+ 1989 Standard C requires this to work, and we know of only one
+counterexample: 64-bit programs on Microsoft Windows. We will leave it
+to those who want to port GNU programs to that environment to figure
+out how to do it.
+
+ Predefined file-size types like `off_t' are an exception: they are
+longer than `long' on many platforms, so code like the above won't work
+with them. One way to print an `off_t' value portably is to print its
+digits yourself, one by one.
+
+ Don't assume that the address of an `int' object is also the address
+of its least-significant byte. This is false on big-endian machines.
+Thus, don't make the following mistake:
+
+ int c;
+ ...
+ while ((c = getchar ()) != EOF)
+ write (file_descriptor, &c, 1);
+
+Instead, use `unsigned char' as follows. (The `unsigned' is for
+portability to unusual systems where `char' is signed and where there
+is integer overflow checking.)
+
+ int c;
+ while ((c = getchar ()) != EOF)
+ {
+ unsigned char u = c;
+ write (file_descriptor, &u, 1);
+ }
+
+ Avoid casting pointers to integers if you can. Such casts greatly
+reduce portability, and in most programs they are easy to avoid. In the
+cases where casting pointers to integers is essential--such as, a Lisp
+interpreter which stores type information as well as an address in one
+word--you'll have to make explicit provisions to handle different word
+sizes. You will also need to make provision for systems in which the
+normal range of addresses you can get from `malloc' starts far away
+from zero.
+
+
+File: standards.info, Node: System Functions, Next: Internationalization, Prev: CPU Portability, Up: Writing C
+
+5.7 Calling System Functions
+============================
+
+Historically, C implementations differed substantially, and many
+systems lacked a full implementation of ANSI/ISO C89. Nowadays,
+however, very few systems lack a C89 compiler and GNU C supports almost
+all of C99. Similarly, most systems implement POSIX.1-1993 libraries
+and tools, and many have POSIX.1-2001.
+
+ Hence, there is little reason to support old C or non-POSIX systems,
+and you may want to take advantage of C99 and POSIX-1.2001 to write
+clearer, more portable, or faster code. You should use standard
+interfaces where possible; but if GNU extensions make your program more
+maintainable, powerful, or otherwise better, don't hesitate to use
+them. In any case, don't make your own declaration of system
+functions; that's a recipe for conflict.
+
+ Despite the standards, nearly every library function has some sort of
+portability issue on some system or another. Here are some examples:
+
+`open'
+ Names with trailing `/''s are mishandled on many platforms.
+
+`printf'
+ `long double' may be unimplemented; floating values Infinity and
+ NaN are often mishandled; output for large precisions may be
+ incorrect.
+
+`readlink'
+ May return `int' instead of `ssize_t'.
+
+`scanf'
+ On Windows, `errno' is not set on failure.
+
+ Gnulib (http://www.gnu.org/software/gnulib/) is a big help in this
+regard. Gnulib provides implementations of standard interfaces on many
+of the systems that lack them, including portable implementations of
+enhanced GNU interfaces, thereby making their use portable, and of
+POSIX-1.2008 interfaces, some of which are missing even on up-to-date
+GNU systems.
+
+ Gnulib also provides many useful non-standard interfaces; for
+example, C implementations of standard data structures (hash tables,
+binary trees), error-checking type-safe wrappers for memory allocation
+functions (`xmalloc', `xrealloc'), and output of error messages.
+
+ Gnulib integrates with GNU Autoconf and Automake to remove much of
+the burden of writing portable code from the programmer: Gnulib makes
+your configure script automatically determine what features are missing
+and use the Gnulib code to supply the missing pieces.
+
+ The Gnulib and Autoconf manuals have extensive sections on
+portability: *note Introduction: (gnulib)Top. and *note Portable C and
+C++: (autoconf)Portable C and C++. Please consult them for many more
+details.
+
+
+File: standards.info, Node: Internationalization, Next: Character Set, Prev: System Functions, Up: Writing C
+
+5.8 Internationalization
+========================
+
+GNU has a library called GNU gettext that makes it easy to translate the
+messages in a program into various languages. You should use this
+library in every program. Use English for the messages as they appear
+in the program, and let gettext provide the way to translate them into
+other languages.
+
+ Using GNU gettext involves putting a call to the `gettext' macro
+around each string that might need translation--like this:
+
+ printf (gettext ("Processing file '%s'..."), file);
+
+This permits GNU gettext to replace the string `"Processing file
+'%s'..."' with a translated version.
+
+ Once a program uses gettext, please make a point of writing calls to
+`gettext' when you add new strings that call for translation.
+
+ Using GNU gettext in a package involves specifying a "text domain
+name" for the package. The text domain name is used to separate the
+translations for this package from the translations for other packages.
+Normally, the text domain name should be the same as the name of the
+package--for example, `coreutils' for the GNU core utilities.
+
+ To enable gettext to work well, avoid writing code that makes
+assumptions about the structure of words or sentences. When you want
+the precise text of a sentence to vary depending on the data, use two or
+more alternative string constants each containing a complete sentences,
+rather than inserting conditionalized words or phrases into a single
+sentence framework.
+
+ Here is an example of what not to do:
+
+ printf ("%s is full", capacity > 5000000 ? "disk" : "floppy disk");
+
+ If you apply gettext to all strings, like this,
+
+ printf (gettext ("%s is full"),
+ capacity > 5000000 ? gettext ("disk") : gettext ("floppy disk"));
+
+the translator will hardly know that "disk" and "floppy disk" are meant
+to be substituted in the other string. Worse, in some languages (like
+French) the construction will not work: the translation of the word
+"full" depends on the gender of the first part of the sentence; it
+happens to be not the same for "disk" as for "floppy disk".
+
+ Complete sentences can be translated without problems:
+
+ printf (capacity > 5000000 ? gettext ("disk is full")
+ : gettext ("floppy disk is full"));
+
+ A similar problem appears at the level of sentence structure with
+this code:
+
+ printf ("# Implicit rule search has%s been done.\n",
+ f->tried_implicit ? "" : " not");
+
+Adding `gettext' calls to this code cannot give correct results for all
+languages, because negation in some languages requires adding words at
+more than one place in the sentence. By contrast, adding `gettext'
+calls does the job straightforwardly if the code starts out like this:
+
+ printf (f->tried_implicit
+ ? "# Implicit rule search has been done.\n",
+ : "# Implicit rule search has not been done.\n");
+
+ Another example is this one:
+
+ printf ("%d file%s processed", nfiles,
+ nfiles != 1 ? "s" : "");
+
+The problem with this example is that it assumes that plurals are made
+by adding `s'. If you apply gettext to the format string, like this,
+
+ printf (gettext ("%d file%s processed"), nfiles,
+ nfiles != 1 ? "s" : "");
+
+the message can use different words, but it will still be forced to use
+`s' for the plural. Here is a better way, with gettext being applied to
+the two strings independently:
+
+ printf ((nfiles != 1 ? gettext ("%d files processed")
+ : gettext ("%d file processed")),
+ nfiles);
+
+But this still doesn't work for languages like Polish, which has three
+plural forms: one for nfiles == 1, one for nfiles == 2, 3, 4, 22, 23,
+24, ... and one for the rest. The GNU `ngettext' function solves this
+problem:
+
+ printf (ngettext ("%d files processed", "%d file processed", nfiles),
+ nfiles);
+
+
+File: standards.info, Node: Character Set, Next: Quote Characters, Prev: Internationalization, Up: Writing C
+
+5.9 Character Set
+=================
+
+Sticking to the ASCII character set (plain text, 7-bit characters) is
+preferred in GNU source code comments, text documents, and other
+contexts, unless there is good reason to do something else because of
+the application domain. For example, if source code deals with the
+French Revolutionary calendar, it is OK if its literal strings contain
+accented characters in month names like "Flore'al". Also, it is OK
+(but not required) to use non-ASCII characters to represent proper
+names of contributors in change logs (*note Change Logs::).
+
+ If you need to use non-ASCII characters, you should normally stick
+with one encoding, certainly within a single file. UTF-8 is likely to
+be the best choice.
+
+
+File: standards.info, Node: Quote Characters, Next: Mmap, Prev: Character Set, Up: Writing C
+
+5.10 Quote Characters
+=====================
+
+In the C locale, the output of GNU programs should stick to plain ASCII
+for quotation characters in messages to users: preferably 0x22 (`"') or
+0x27 (`'') for both opening and closing quotes. Although GNU programs
+traditionally used 0x60 (``') for opening and 0x27 (`'') for closing
+quotes, nowadays quotes ``like this'' are typically rendered
+asymmetrically, so quoting `"like this"' or `'like this'' typically
+looks better.
+
+ It is ok, but not required, for GNU programs to generate
+locale-specific quotes in non-C locales. For example:
+
+ printf (gettext ("Processing file '%s'..."), file);
+
+Here, a French translation might cause `gettext' to return the string
+`"Traitement de fichier < %s >..."', yielding quotes more appropriate
+for a French locale.
+
+ Sometimes a program may need to use opening and closing quotes
+directly. By convention, `gettext' translates the string `"`"' to the
+opening quote and the string `"'"' to the closing quote, and a program
+can use these translations. Generally, though, it is better to
+translate quote characters in the context of longer strings.
+
+ If the output of your program is ever likely to be parsed by another
+program, it is good to provide an option that makes this parsing
+reliable. For example, you could escape special characters using
+conventions from the C language or the Bourne shell. See for example
+the option `--quoting-style' of GNU `ls'.
+
+
+File: standards.info, Node: Mmap, Prev: Quote Characters, Up: Writing C
+
+5.11 Mmap
+=========
+
+Don't assume that `mmap' either works on all files or fails for all
+files. It may work on some files and fail on others.
+
+ The proper way to use `mmap' is to try it on the specific file for
+which you want to use it--and if `mmap' doesn't work, fall back on
+doing the job in another way using `read' and `write'.
+
+ The reason this precaution is needed is that the GNU kernel (the
+HURD) provides a user-extensible file system, in which there can be many
+different kinds of "ordinary files". Many of them support `mmap', but
+some do not. It is important to make programs handle all these kinds
+of files.
+
+
+File: standards.info, Node: Documentation, Next: Managing Releases, Prev: Writing C, Up: Top
+
+6 Documenting Programs
+**********************
+
+A GNU program should ideally come with full free documentation, adequate
+for both reference and tutorial purposes. If the package can be
+programmed or extended, the documentation should cover programming or
+extending it, as well as just using it.
+
+* Menu:
+
+* GNU Manuals:: Writing proper manuals.
+* Doc Strings and Manuals:: Compiling doc strings doesn't make a manual.
+* Manual Structure Details:: Specific structure conventions.
+* License for Manuals:: Writing the distribution terms for a manual.
+* Manual Credits:: Giving credit to documentation contributors.
+* Printed Manuals:: Mentioning the printed manual.
+* NEWS File:: NEWS files supplement manuals.
+* Change Logs:: Recording changes.
+* Man Pages:: Man pages are secondary.
+* Reading other Manuals:: How far you can go in learning
+ from other manuals.
+
+
+File: standards.info, Node: GNU Manuals, Next: Doc Strings and Manuals, Up: Documentation
+
+6.1 GNU Manuals
+===============
+
+The preferred document format for the GNU system is the Texinfo
+formatting language. Every GNU package should (ideally) have
+documentation in Texinfo both for reference and for learners. Texinfo
+makes it possible to produce a good quality formatted book, using TeX,
+and to generate an Info file. It is also possible to generate HTML
+output from Texinfo source. See the Texinfo manual, either the
+hardcopy, or the on-line version available through `info' or the Emacs
+Info subsystem (`C-h i').
+
+ Nowadays some other formats such as Docbook and Sgmltexi can be
+converted automatically into Texinfo. It is ok to produce the Texinfo
+documentation by conversion this way, as long as it gives good results.
+
+ Make sure your manual is clear to a reader who knows nothing about
+the topic and reads it straight through. This means covering basic
+topics at the beginning, and advanced topics only later. This also
+means defining every specialized term when it is first used.
+
+ Programmers tend to carry over the structure of the program as the
+structure for its documentation. But this structure is not necessarily
+good for explaining how to use the program; it may be irrelevant and
+confusing for a user.
+
+ Instead, the right way to structure documentation is according to the
+concepts and questions that a user will have in mind when reading it.
+This principle applies at every level, from the lowest (ordering
+sentences in a paragraph) to the highest (ordering of chapter topics
+within the manual). Sometimes this structure of ideas matches the
+structure of the implementation of the software being documented--but
+often they are different. An important part of learning to write good
+documentation is to learn to notice when you have unthinkingly
+structured the documentation like the implementation, stop yourself,
+and look for better alternatives.
+
+ For example, each program in the GNU system probably ought to be
+documented in one manual; but this does not mean each program should
+have its own manual. That would be following the structure of the
+implementation, rather than the structure that helps the user
+understand.
+
+ Instead, each manual should cover a coherent _topic_. For example,
+instead of a manual for `diff' and a manual for `diff3', we have one
+manual for "comparison of files" which covers both of those programs,
+as well as `cmp'. By documenting these programs together, we can make
+the whole subject clearer.
+
+ The manual which discusses a program should certainly document all of
+the program's command-line options and all of its commands. It should
+give examples of their use. But don't organize the manual as a list of
+features. Instead, organize it logically, by subtopics. Address the
+questions that a user will ask when thinking about the job that the
+program does. Don't just tell the reader what each feature can do--say
+what jobs it is good for, and show how to use it for those jobs.
+Explain what is recommended usage, and what kinds of usage users should
+avoid.
+
+ In general, a GNU manual should serve both as tutorial and reference.
+It should be set up for convenient access to each topic through Info,
+and for reading straight through (appendixes aside). A GNU manual
+should give a good introduction to a beginner reading through from the
+start, and should also provide all the details that hackers want. The
+Bison manual is a good example of this--please take a look at it to see
+what we mean.
+
+ That is not as hard as it first sounds. Arrange each chapter as a
+logical breakdown of its topic, but order the sections, and write their
+text, so that reading the chapter straight through makes sense. Do
+likewise when structuring the book into chapters, and when structuring a
+section into paragraphs. The watchword is, _at each point, address the
+most fundamental and important issue raised by the preceding text._
+
+ If necessary, add extra chapters at the beginning of the manual which
+are purely tutorial and cover the basics of the subject. These provide
+the framework for a beginner to understand the rest of the manual. The
+Bison manual provides a good example of how to do this.
+
+ To serve as a reference, a manual should have an Index that list all
+the functions, variables, options, and important concepts that are part
+of the program. One combined Index should do for a short manual, but
+sometimes for a complex package it is better to use multiple indices.
+The Texinfo manual includes advice on preparing good index entries, see
+*note Making Index Entries: (texinfo)Index Entries, and see *note
+Defining the Entries of an Index: (texinfo)Indexing Commands.
+
+ Don't use Unix man pages as a model for how to write GNU
+documentation; most of them are terse, badly structured, and give
+inadequate explanation of the underlying concepts. (There are, of
+course, some exceptions.) Also, Unix man pages use a particular format
+which is different from what we use in GNU manuals.
+
+ Please include an email address in the manual for where to report
+bugs _in the text of the manual_.
+
+ Please do not use the term "pathname" that is used in Unix
+documentation; use "file name" (two words) instead. We use the term
+"path" only for search paths, which are lists of directory names.
+
+ Please do not use the term "illegal" to refer to erroneous input to
+a computer program. Please use "invalid" for this, and reserve the
+term "illegal" for activities prohibited by law.
+
+ Please do not write `()' after a function name just to indicate it
+is a function. `foo ()' is not a function, it is a function call with
+no arguments.
+
+
+File: standards.info, Node: Doc Strings and Manuals, Next: Manual Structure Details, Prev: GNU Manuals, Up: Documentation
+
+6.2 Doc Strings and Manuals
+===========================
+
+Some programming systems, such as Emacs, provide a documentation string
+for each function, command or variable. You may be tempted to write a
+reference manual by compiling the documentation strings and writing a
+little additional text to go around them--but you must not do it. That
+approach is a fundamental mistake. The text of well-written
+documentation strings will be entirely wrong for a manual.
+
+ A documentation string needs to stand alone--when it appears on the
+screen, there will be no other text to introduce or explain it.
+Meanwhile, it can be rather informal in style.
+
+ The text describing a function or variable in a manual must not stand
+alone; it appears in the context of a section or subsection. Other text
+at the beginning of the section should explain some of the concepts, and
+should often make some general points that apply to several functions or
+variables. The previous descriptions of functions and variables in the
+section will also have given information about the topic. A description
+written to stand alone would repeat some of that information; this
+redundancy looks bad. Meanwhile, the informality that is acceptable in
+a documentation string is totally unacceptable in a manual.
+
+ The only good way to use documentation strings in writing a good
+manual is to use them as a source of information for writing good text.
+
+
+File: standards.info, Node: Manual Structure Details, Next: License for Manuals, Prev: Doc Strings and Manuals, Up: Documentation
+
+6.3 Manual Structure Details
+============================
+
+The title page of the manual should state the version of the programs or
+packages documented in the manual. The Top node of the manual should
+also contain this information. If the manual is changing more
+frequently than or independent of the program, also state a version
+number for the manual in both of these places.
+
+ Each program documented in the manual should have a node named
+`PROGRAM Invocation' or `Invoking PROGRAM'. This node (together with
+its subnodes, if any) should describe the program's command line
+arguments and how to run it (the sort of information people would look
+for in a man page). Start with an `@example' containing a template for
+all the options and arguments that the program uses.
+
+ Alternatively, put a menu item in some menu whose item name fits one
+of the above patterns. This identifies the node which that item points
+to as the node for this purpose, regardless of the node's actual name.
+
+ The `--usage' feature of the Info reader looks for such a node or
+menu item in order to find the relevant text, so it is essential for
+every Texinfo file to have one.
+
+ If one manual describes several programs, it should have such a node
+for each program described in the manual.
+
+
+File: standards.info, Node: License for Manuals, Next: Manual Credits, Prev: Manual Structure Details, Up: Documentation
+
+6.4 License for Manuals
+=======================
+
+Please use the GNU Free Documentation License for all GNU manuals that
+are more than a few pages long. Likewise for a collection of short
+documents--you only need one copy of the GNU FDL for the whole
+collection. For a single short document, you can use a very permissive
+non-copyleft license, to avoid taking up space with a long license.
+
+ See `http://www.gnu.org/copyleft/fdl-howto.html' for more explanation
+of how to employ the GFDL.
+
+ Note that it is not obligatory to include a copy of the GNU GPL or
+GNU LGPL in a manual whose license is neither the GPL nor the LGPL. It
+can be a good idea to include the program's license in a large manual;
+in a short manual, whose size would be increased considerably by
+including the program's license, it is probably better not to include
+it.
+
+
+File: standards.info, Node: Manual Credits, Next: Printed Manuals, Prev: License for Manuals, Up: Documentation
+
+6.5 Manual Credits
+==================
+
+Please credit the principal human writers of the manual as the authors,
+on the title page of the manual. If a company sponsored the work, thank
+the company in a suitable place in the manual, but do not cite the
+company as an author.
+
+
+File: standards.info, Node: Printed Manuals, Next: NEWS File, Prev: Manual Credits, Up: Documentation
+
+6.6 Printed Manuals
+===================
+
+The FSF publishes some GNU manuals in printed form. To encourage sales
+of these manuals, the on-line versions of the manual should mention at
+the very start that the printed manual is available and should point at
+information for getting it--for instance, with a link to the page
+`http://www.gnu.org/order/order.html'. This should not be included in
+the printed manual, though, because there it is redundant.
+
+ It is also useful to explain in the on-line forms of the manual how
+the user can print out the manual from the sources.
+
+
+File: standards.info, Node: NEWS File, Next: Change Logs, Prev: Printed Manuals, Up: Documentation
+
+6.7 The NEWS File
+=================
+
+In addition to its manual, the package should have a file named `NEWS'
+which contains a list of user-visible changes worth mentioning. In
+each new release, add items to the front of the file and identify the
+version they pertain to. Don't discard old items; leave them in the
+file after the newer items. This way, a user upgrading from any
+previous version can see what is new.
+
+ If the `NEWS' file gets very long, move some of the older items into
+a file named `ONEWS' and put a note at the end referring the user to
+that file.
+
+
+File: standards.info, Node: Change Logs, Next: Man Pages, Prev: NEWS File, Up: Documentation
+
+6.8 Change Logs
+===============
+
+Keep a change log to describe all the changes made to program source
+files. The purpose of this is so that people investigating bugs in the
+future will know about the changes that might have introduced the bug.
+Often a new bug can be found by looking at what was recently changed.
+More importantly, change logs can help you eliminate conceptual
+inconsistencies between different parts of a program, by giving you a
+history of how the conflicting concepts arose and who they came from.
+
+* Menu:
+
+* Change Log Concepts::
+* Style of Change Logs::
+* Simple Changes::
+* Conditional Changes::
+* Indicating the Part Changed::
+
+
+File: standards.info, Node: Change Log Concepts, Next: Style of Change Logs, Up: Change Logs
+
+6.8.1 Change Log Concepts
+-------------------------
+
+You can think of the change log as a conceptual "undo list" which
+explains how earlier versions were different from the current version.
+People can see the current version; they don't need the change log to
+tell them what is in it. What they want from a change log is a clear
+explanation of how the earlier version differed.
+
+ The change log file is normally called `ChangeLog' and covers an
+entire directory. Each directory can have its own change log, or a
+directory can use the change log of its parent directory--it's up to
+you.
+
+ Another alternative is to record change log information with a
+version control system such as RCS or CVS. This can be converted
+automatically to a `ChangeLog' file using `rcs2log'; in Emacs, the
+command `C-x v a' (`vc-update-change-log') does the job.
+
+ There's no need to describe the full purpose of the changes or how
+they work together. However, sometimes it is useful to write one line
+to describe the overall purpose of a change or a batch of changes. If
+you think that a change calls for explanation, you're probably right.
+Please do explain it--but please put the full explanation in comments
+in the code, where people will see it whenever they see the code. For
+example, "New function" is enough for the change log when you add a
+function, because there should be a comment before the function
+definition to explain what it does.
+
+ In the past, we recommended not mentioning changes in non-software
+files (manuals, help files, etc.) in change logs. However, we've been
+advised that it is a good idea to include them, for the sake of
+copyright records.
+
+ The easiest way to add an entry to `ChangeLog' is with the Emacs
+command `M-x add-change-log-entry'. An entry should have an asterisk,
+the name of the changed file, and then in parentheses the name of the
+changed functions, variables or whatever, followed by a colon. Then
+describe the changes you made to that function or variable.
+
+
+File: standards.info, Node: Style of Change Logs, Next: Simple Changes, Prev: Change Log Concepts, Up: Change Logs
+
+6.8.2 Style of Change Logs
+--------------------------
+
+Here are some simple examples of change log entries, starting with the
+header line that says who made the change and when it was installed,
+followed by descriptions of specific changes. (These examples are
+drawn from Emacs and GCC.)
+
+ 1998-08-17 Richard Stallman <rms@gnu.org>
+
+ * register.el (insert-register): Return nil.
+ (jump-to-register): Likewise.
+
+ * sort.el (sort-subr): Return nil.
+
+ * tex-mode.el (tex-bibtex-file, tex-file, tex-region):
+ Restart the tex shell if process is gone or stopped.
+ (tex-shell-running): New function.
+
+ * expr.c (store_one_arg): Round size up for move_block_to_reg.
+ (expand_call): Round up when emitting USE insns.
+ * stmt.c (assign_parms): Round size up for move_block_from_reg.
+
+ It's important to name the changed function or variable in full.
+Don't abbreviate function or variable names, and don't combine them.
+Subsequent maintainers will often search for a function name to find all
+the change log entries that pertain to it; if you abbreviate the name,
+they won't find it when they search.
+
+ For example, some people are tempted to abbreviate groups of function
+names by writing `* register.el ({insert,jump-to}-register)'; this is
+not a good idea, since searching for `jump-to-register' or
+`insert-register' would not find that entry.
+
+ Separate unrelated change log entries with blank lines. When two
+entries represent parts of the same change, so that they work together,
+then don't put blank lines between them. Then you can omit the file
+name and the asterisk when successive entries are in the same file.
+
+ Break long lists of function names by closing continued lines with
+`)', rather than `,', and opening the continuation with `(' as in this
+example:
+
+ * keyboard.c (menu_bar_items, tool_bar_items)
+ (Fexecute_extended_command): Deal with 'keymap' property.
+
+ When you install someone else's changes, put the contributor's name
+in the change log entry rather than in the text of the entry. In other
+words, write this:
+
+ 2002-07-14 John Doe <jdoe@gnu.org>
+
+ * sewing.c: Make it sew.
+
+rather than this:
+
+ 2002-07-14 Usual Maintainer <usual@gnu.org>
+
+ * sewing.c: Make it sew. Patch by jdoe@gnu.org.
+
+ As for the date, that should be the date you applied the change.
+
+
+File: standards.info, Node: Simple Changes, Next: Conditional Changes, Prev: Style of Change Logs, Up: Change Logs
+
+6.8.3 Simple Changes
+--------------------
+
+Certain simple kinds of changes don't need much detail in the change
+log.
+
+ When you change the calling sequence of a function in a simple
+fashion, and you change all the callers of the function to use the new
+calling sequence, there is no need to make individual entries for all
+the callers that you changed. Just write in the entry for the function
+being called, "All callers changed"--like this:
+
+ * keyboard.c (Fcommand_execute): New arg SPECIAL.
+ All callers changed.
+
+ When you change just comments or doc strings, it is enough to write
+an entry for the file, without mentioning the functions. Just "Doc
+fixes" is enough for the change log.
+
+ There's no technical need to make change log entries for
+documentation files. This is because documentation is not susceptible
+to bugs that are hard to fix. Documentation does not consist of parts
+that must interact in a precisely engineered fashion. To correct an
+error, you need not know the history of the erroneous passage; it is
+enough to compare what the documentation says with the way the program
+actually works.
+
+ However, you should keep change logs for documentation files when the
+project gets copyright assignments from its contributors, so as to make
+the records of authorship more accurate.
+
+
+File: standards.info, Node: Conditional Changes, Next: Indicating the Part Changed, Prev: Simple Changes, Up: Change Logs
+
+6.8.4 Conditional Changes
+-------------------------
+
+Source files can often contain code that is conditional to build-time
+or static conditions. For example, C programs can contain compile-time
+`#if' conditionals; programs implemented in interpreted languages can
+contain module imports of function definitions that are only performed
+for certain versions of the interpreter; and Automake `Makefile.am'
+files can contain variable definitions or target declarations that are
+only to be considered if a configure-time Automake conditional is true.
+
+ Many changes are conditional as well: sometimes you add a new
+variable, or function, or even a new program or library, which is
+entirely dependent on a build-time condition. It is useful to indicate
+in the change log the conditions for which a change applies.
+
+ Our convention for indicating conditional changes is to use _square
+brackets around the name of the condition_.
+
+ Conditional changes can happen in numerous scenarios and with many
+variations, so here are some examples to help clarify. This first
+example describes changes in C, Perl, and Python files which are
+conditional but do not have an associated function or entity name:
+
+ * xterm.c [SOLARIS2]: Include <string.h>.
+ * FilePath.pm [$^O eq 'VMS']: Import the VMS::Feature module.
+ * framework.py [sys.version_info < (2, 6)]: Make "with" statement
+ available by importing it from __future__,
+ to support also python 2.5.
+
+ Our other examples will for simplicity be limited to C, as the minor
+changes necessary to adapt them to other languages should be
+self-evident.
+
+ Next, here is an entry describing a new definition which is entirely
+conditional: the C macro `FRAME_WINDOW_P' is defined (and used) only
+when the macro `HAVE_X_WINDOWS' is defined:
+
+ * frame.h [HAVE_X_WINDOWS] (FRAME_WINDOW_P): Macro defined.
+
+ Next, an entry for a change within the function `init_display',
+whose definition as a whole is unconditional, but the changes
+themselves are contained in a `#ifdef HAVE_LIBNCURSES' conditional:
+
+ * dispnew.c (init_display) [HAVE_LIBNCURSES]: If X, call tgetent.
+
+ Finally, here is an entry for a change that takes effect only when a
+certain macro is _not_ defined:
+
+ (gethostname) [!HAVE_SOCKETS]: Replace with winsock version.
+
+
+File: standards.info, Node: Indicating the Part Changed, Prev: Conditional Changes, Up: Change Logs
+
+6.8.5 Indicating the Part Changed
+---------------------------------
+
+Indicate the part of a function which changed by using angle brackets
+enclosing an indication of what the changed part does. Here is an entry
+for a change in the part of the function `sh-while-getopts' that deals
+with `sh' commands:
+
+ * progmodes/sh-script.el (sh-while-getopts) <sh>: Handle case that
+ user-specified option string is empty.
+
+
+File: standards.info, Node: Man Pages, Next: Reading other Manuals, Prev: Change Logs, Up: Documentation
+
+6.9 Man Pages
+=============
+
+In the GNU project, man pages are secondary. It is not necessary or
+expected for every GNU program to have a man page, but some of them do.
+It's your choice whether to include a man page in your program.
+
+ When you make this decision, consider that supporting a man page
+requires continual effort each time the program is changed. The time
+you spend on the man page is time taken away from more useful work.
+
+ For a simple program which changes little, updating the man page may
+be a small job. Then there is little reason not to include a man page,
+if you have one.
+
+ For a large program that changes a great deal, updating a man page
+may be a substantial burden. If a user offers to donate a man page,
+you may find this gift costly to accept. It may be better to refuse
+the man page unless the same person agrees to take full responsibility
+for maintaining it--so that you can wash your hands of it entirely. If
+this volunteer later ceases to do the job, then don't feel obliged to
+pick it up yourself; it may be better to withdraw the man page from the
+distribution until someone else agrees to update it.
+
+ When a program changes only a little, you may feel that the
+discrepancies are small enough that the man page remains useful without
+updating. If so, put a prominent note near the beginning of the man
+page explaining that you don't maintain it and that the Texinfo manual
+is more authoritative. The note should say how to access the Texinfo
+documentation.
+
+ Be sure that man pages include a copyright statement and free
+license. The simple all-permissive license is appropriate for simple
+man pages (*note License Notices for Other Files: (maintain)License
+Notices for Other Files.).
+
+ For long man pages, with enough explanation and documentation that
+they can be considered true manuals, use the GFDL (*note License for
+Manuals::).
+
+ Finally, the GNU help2man program
+(`http://www.gnu.org/software/help2man/') is one way to automate
+generation of a man page, in this case from `--help' output. This is
+sufficient in many cases.
+
+
+File: standards.info, Node: Reading other Manuals, Prev: Man Pages, Up: Documentation
+
+6.10 Reading other Manuals
+==========================
+
+There may be non-free books or documentation files that describe the
+program you are documenting.
+
+ It is ok to use these documents for reference, just as the author of
+a new algebra textbook can read other books on algebra. A large portion
+of any non-fiction book consists of facts, in this case facts about how
+a certain program works, and these facts are necessarily the same for
+everyone who writes about the subject. But be careful not to copy your
+outline structure, wording, tables or examples from preexisting non-free
+documentation. Copying from free documentation may be ok; please check
+with the FSF about the individual case.
+
+
+File: standards.info, Node: Managing Releases, Next: References, Prev: Documentation, Up: Top
+
+7 The Release Process
+*********************
+
+Making a release is more than just bundling up your source files in a
+tar file and putting it up for FTP. You should set up your software so
+that it can be configured to run on a variety of systems. Your Makefile
+should conform to the GNU standards described below, and your directory
+layout should also conform to the standards discussed below. Doing so
+makes it easy to include your package into the larger framework of all
+GNU software.
+
+* Menu:
+
+* Configuration:: How configuration of GNU packages should work.
+* Makefile Conventions:: Makefile conventions.
+* Releases:: Making releases
+
+
+File: standards.info, Node: Configuration, Next: Makefile Conventions, Up: Managing Releases
+
+7.1 How Configuration Should Work
+=================================
+
+Each GNU distribution should come with a shell script named
+`configure'. This script is given arguments which describe the kind of
+machine and system you want to compile the program for. The
+`configure' script must record the configuration options so that they
+affect compilation.
+
+ The description here is the specification of the interface for the
+`configure' script in GNU packages. Many packages implement it using
+GNU Autoconf (*note Introduction: (autoconf)Top.) and/or GNU Automake
+(*note Introduction: (automake)Top.), but you do not have to use these
+tools. You can implement it any way you like; for instance, by making
+`configure' be a wrapper around a completely different configuration
+system.
+
+ Another way for the `configure' script to operate is to make a link
+from a standard name such as `config.h' to the proper configuration
+file for the chosen system. If you use this technique, the
+distribution should _not_ contain a file named `config.h'. This is so
+that people won't be able to build the program without configuring it
+first.
+
+ Another thing that `configure' can do is to edit the Makefile. If
+you do this, the distribution should _not_ contain a file named
+`Makefile'. Instead, it should include a file `Makefile.in' which
+contains the input used for editing. Once again, this is so that people
+won't be able to build the program without configuring it first.
+
+ If `configure' does write the `Makefile', then `Makefile' should
+have a target named `Makefile' which causes `configure' to be rerun,
+setting up the same configuration that was set up last time. The files
+that `configure' reads should be listed as dependencies of `Makefile'.
+
+ All the files which are output from the `configure' script should
+have comments at the beginning explaining that they were generated
+automatically using `configure'. This is so that users won't think of
+trying to edit them by hand.
+
+ The `configure' script should write a file named `config.status'
+which describes which configuration options were specified when the
+program was last configured. This file should be a shell script which,
+if run, will recreate the same configuration.
+
+ The `configure' script should accept an option of the form
+`--srcdir=DIRNAME' to specify the directory where sources are found (if
+it is not the current directory). This makes it possible to build the
+program in a separate directory, so that the actual source directory is
+not modified.
+
+ If the user does not specify `--srcdir', then `configure' should
+check both `.' and `..' to see if it can find the sources. If it finds
+the sources in one of these places, it should use them from there.
+Otherwise, it should report that it cannot find the sources, and should
+exit with nonzero status.
+
+ Usually the easy way to support `--srcdir' is by editing a
+definition of `VPATH' into the Makefile. Some rules may need to refer
+explicitly to the specified source directory. To make this possible,
+`configure' can add to the Makefile a variable named `srcdir' whose
+value is precisely the specified directory.
+
+ In addition, the `configure' script should take options
+corresponding to most of the standard directory variables (*note
+Directory Variables::). Here is the list:
+
+ --prefix --exec-prefix --bindir --sbindir --libexecdir --sysconfdir
+ --sharedstatedir --localstatedir --libdir --includedir --oldincludedir
+ --datarootdir --datadir --infodir --localedir --mandir --docdir
+ --htmldir --dvidir --pdfdir --psdir
+
+ The `configure' script should also take an argument which specifies
+the type of system to build the program for. This argument should look
+like this:
+
+ CPU-COMPANY-SYSTEM
+
+ For example, an Athlon-based GNU/Linux system might be
+`i686-pc-linux-gnu'.
+
+ The `configure' script needs to be able to decode all plausible
+alternatives for how to describe a machine. Thus,
+`athlon-pc-gnu/linux' would be a valid alias. There is a shell script
+called `config.sub'
+(http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD)
+that you can use as a subroutine to validate system types and
+canonicalize aliases.
+
+ The `configure' script should also take the option
+`--build=BUILDTYPE', which should be equivalent to a plain BUILDTYPE
+argument. For example, `configure --build=i686-pc-linux-gnu' is
+equivalent to `configure i686-pc-linux-gnu'. When the build type is
+not specified by an option or argument, the `configure' script should
+normally guess it using the shell script `config.guess'
+(http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD).
+
+ Other options are permitted to specify in more detail the software
+or hardware present on the machine, to include or exclude optional parts
+of the package, or to adjust the name of some tools or arguments to
+them:
+
+`--enable-FEATURE[=PARAMETER]'
+ Configure the package to build and install an optional user-level
+ facility called FEATURE. This allows users to choose which
+ optional features to include. Giving an optional PARAMETER of
+ `no' should omit FEATURE, if it is built by default.
+
+ No `--enable' option should *ever* cause one feature to replace
+ another. No `--enable' option should ever substitute one useful
+ behavior for another useful behavior. The only proper use for
+ `--enable' is for questions of whether to build part of the program
+ or exclude it.
+
+`--with-PACKAGE'
+ The package PACKAGE will be installed, so configure this package
+ to work with PACKAGE.
+
+ Possible values of PACKAGE include `gnu-as' (or `gas'), `gnu-ld',
+ `gnu-libc', `gdb', `x', and `x-toolkit'.
+
+ Do not use a `--with' option to specify the file name to use to
+ find certain files. That is outside the scope of what `--with'
+ options are for.
+
+`VARIABLE=VALUE'
+ Set the value of the variable VARIABLE to VALUE. This is used to
+ override the default values of commands or arguments in the build
+ process. For example, the user could issue `configure CFLAGS=-g
+ CXXFLAGS=-g' to build with debugging information and without the
+ default optimization.
+
+ Specifying variables as arguments to `configure', like this:
+ ./configure CC=gcc
+ is preferable to setting them in environment variables:
+ CC=gcc ./configure
+ as it helps to recreate the same configuration later with
+ `config.status'. However, both methods should be supported.
+
+ All `configure' scripts should accept all of the "detail" options
+and the variable settings, whether or not they make any difference to
+the particular package at hand. In particular, they should accept any
+option that starts with `--with-' or `--enable-'. This is so users
+will be able to configure an entire GNU source tree at once with a
+single set of options.
+
+ You will note that the categories `--with-' and `--enable-' are
+narrow: they *do not* provide a place for any sort of option you might
+think of. That is deliberate. We want to limit the possible
+configuration options in GNU software. We do not want GNU programs to
+have idiosyncratic configuration options.
+
+ Packages that perform part of the compilation process may support
+cross-compilation. In such a case, the host and target machines for the
+program may be different.
+
+ The `configure' script should normally treat the specified type of
+system as both the host and the target, thus producing a program which
+works for the same type of machine that it runs on.
+
+ To compile a program to run on a host type that differs from the
+build type, use the configure option `--host=HOSTTYPE', where HOSTTYPE
+uses the same syntax as BUILDTYPE. The host type normally defaults to
+the build type.
+
+ To configure a cross-compiler, cross-assembler, or what have you, you
+should specify a target different from the host, using the configure
+option `--target=TARGETTYPE'. The syntax for TARGETTYPE is the same as
+for the host type. So the command would look like this:
+
+ ./configure --host=HOSTTYPE --target=TARGETTYPE
+
+ The target type normally defaults to the host type. Programs for
+which cross-operation is not meaningful need not accept the `--target'
+option, because configuring an entire operating system for
+cross-operation is not a meaningful operation.
+
+ Some programs have ways of configuring themselves automatically. If
+your program is set up to do this, your `configure' script can simply
+ignore most of its arguments.
+
+
+File: standards.info, Node: Makefile Conventions, Next: Releases, Prev: Configuration, Up: Managing Releases
+
+7.2 Makefile Conventions
+========================
+
+This node describes conventions for writing the Makefiles for GNU
+programs. Using Automake will help you write a Makefile that follows
+these conventions. For more information on portable Makefiles, see
+POSIX and *note Portable Make Programming: (autoconf)Portable Make.
+
+* Menu:
+
+* Makefile Basics:: General conventions for Makefiles.
+* Utilities in Makefiles:: Utilities to be used in Makefiles.
+* Command Variables:: Variables for specifying commands.
+* DESTDIR:: Supporting staged installs.
+* Directory Variables:: Variables for installation directories.
+* Standard Targets:: Standard targets for users.
+* Install Command Categories:: Three categories of commands in the `install'
+ rule: normal, pre-install and post-install.
+
+
+File: standards.info, Node: Makefile Basics, Next: Utilities in Makefiles, Up: Makefile Conventions
+
+7.2.1 General Conventions for Makefiles
+---------------------------------------
+
+Every Makefile should contain this line:
+
+ SHELL = /bin/sh
+
+to avoid trouble on systems where the `SHELL' variable might be
+inherited from the environment. (This is never a problem with GNU
+`make'.)
+
+ Different `make' programs have incompatible suffix lists and
+implicit rules, and this sometimes creates confusion or misbehavior. So
+it is a good idea to set the suffix list explicitly using only the
+suffixes you need in the particular Makefile, like this:
+
+ .SUFFIXES:
+ .SUFFIXES: .c .o
+
+The first line clears out the suffix list, the second introduces all
+suffixes which may be subject to implicit rules in this Makefile.
+
+ Don't assume that `.' is in the path for command execution. When
+you need to run programs that are a part of your package during the
+make, please make sure that it uses `./' if the program is built as
+part of the make or `$(srcdir)/' if the file is an unchanging part of
+the source code. Without one of these prefixes, the current search
+path is used.
+
+ The distinction between `./' (the "build directory") and
+`$(srcdir)/' (the "source directory") is important because users can
+build in a separate directory using the `--srcdir' option to
+`configure'. A rule of the form:
+
+ foo.1 : foo.man sedscript
+ sed -f sedscript foo.man > foo.1
+
+will fail when the build directory is not the source directory, because
+`foo.man' and `sedscript' are in the source directory.
+
+ When using GNU `make', relying on `VPATH' to find the source file
+will work in the case where there is a single dependency file, since
+the `make' automatic variable `$<' will represent the source file
+wherever it is. (Many versions of `make' set `$<' only in implicit
+rules.) A Makefile target like
+
+ foo.o : bar.c
+ $(CC) -I. -I$(srcdir) $(CFLAGS) -c bar.c -o foo.o
+
+should instead be written as
+
+ foo.o : bar.c
+ $(CC) -I. -I$(srcdir) $(CFLAGS) -c $< -o $@
+
+in order to allow `VPATH' to work correctly. When the target has
+multiple dependencies, using an explicit `$(srcdir)' is the easiest way
+to make the rule work well. For example, the target above for `foo.1'
+is best written as:
+
+ foo.1 : foo.man sedscript
+ sed -f $(srcdir)/sedscript $(srcdir)/foo.man > $@
+
+ GNU distributions usually contain some files which are not source
+files--for example, Info files, and the output from Autoconf, Automake,
+Bison or Flex. Since these files normally appear in the source
+directory, they should always appear in the source directory, not in the
+build directory. So Makefile rules to update them should put the
+updated files in the source directory.
+
+ However, if a file does not appear in the distribution, then the
+Makefile should not put it in the source directory, because building a
+program in ordinary circumstances should not modify the source directory
+in any way.
+
+ Try to make the build and installation targets, at least (and all
+their subtargets) work correctly with a parallel `make'.
+
+
+File: standards.info, Node: Utilities in Makefiles, Next: Command Variables, Prev: Makefile Basics, Up: Makefile Conventions
+
+7.2.2 Utilities in Makefiles
+----------------------------
+
+Write the Makefile commands (and any shell scripts, such as
+`configure') to run under `sh' (both the traditional Bourne shell and
+the POSIX shell), not `csh'. Don't use any special features of `ksh'
+or `bash', or POSIX features not widely supported in traditional Bourne
+`sh'.
+
+ The `configure' script and the Makefile rules for building and
+installation should not use any utilities directly except these:
+
+ awk cat cmp cp diff echo egrep expr false grep install-info ln ls
+ mkdir mv printf pwd rm rmdir sed sleep sort tar test touch tr true
+
+ Compression programs such as `gzip' can be used in the `dist' rule.
+
+ Generally, stick to the widely-supported (usually POSIX-specified)
+options and features of these programs. For example, don't use `mkdir
+-p', convenient as it may be, because a few systems don't support it at
+all and with others, it is not safe for parallel execution. For a list
+of known incompatibilities, see *note Portable Shell Programming:
+(autoconf)Portable Shell.
+
+ It is a good idea to avoid creating symbolic links in makefiles,
+since a few file systems don't support them.
+
+ The Makefile rules for building and installation can also use
+compilers and related programs, but should do so via `make' variables
+so that the user can substitute alternatives. Here are some of the
+programs we mean:
+
+ ar bison cc flex install ld ldconfig lex
+ make makeinfo ranlib texi2dvi yacc
+
+ Use the following `make' variables to run those programs:
+
+ $(AR) $(BISON) $(CC) $(FLEX) $(INSTALL) $(LD) $(LDCONFIG) $(LEX)
+ $(MAKE) $(MAKEINFO) $(RANLIB) $(TEXI2DVI) $(YACC)
+
+ When you use `ranlib' or `ldconfig', you should make sure nothing
+bad happens if the system does not have the program in question.
+Arrange to ignore an error from that command, and print a message before
+the command to tell the user that failure of this command does not mean
+a problem. (The Autoconf `AC_PROG_RANLIB' macro can help with this.)
+
+ If you use symbolic links, you should implement a fallback for
+systems that don't have symbolic links.
+
+ Additional utilities that can be used via Make variables are:
+
+ chgrp chmod chown mknod
+
+ It is ok to use other utilities in Makefile portions (or scripts)
+intended only for particular systems where you know those utilities
+exist.
+
+
+File: standards.info, Node: Command Variables, Next: DESTDIR, Prev: Utilities in Makefiles, Up: Makefile Conventions
+
+7.2.3 Variables for Specifying Commands
+---------------------------------------
+
+Makefiles should provide variables for overriding certain commands,
+options, and so on.
+
+ In particular, you should run most utility programs via variables.
+Thus, if you use Bison, have a variable named `BISON' whose default
+value is set with `BISON = bison', and refer to it with `$(BISON)'
+whenever you need to use Bison.
+
+ File management utilities such as `ln', `rm', `mv', and so on, need
+not be referred to through variables in this way, since users don't
+need to replace them with other programs.
+
+ Each program-name variable should come with an options variable that
+is used to supply options to the program. Append `FLAGS' to the
+program-name variable name to get the options variable name--for
+example, `BISONFLAGS'. (The names `CFLAGS' for the C compiler,
+`YFLAGS' for yacc, and `LFLAGS' for lex, are exceptions to this rule,
+but we keep them because they are standard.) Use `CPPFLAGS' in any
+compilation command that runs the preprocessor, and use `LDFLAGS' in
+any compilation command that does linking as well as in any direct use
+of `ld'.
+
+ If there are C compiler options that _must_ be used for proper
+compilation of certain files, do not include them in `CFLAGS'. Users
+expect to be able to specify `CFLAGS' freely themselves. Instead,
+arrange to pass the necessary options to the C compiler independently
+of `CFLAGS', by writing them explicitly in the compilation commands or
+by defining an implicit rule, like this:
+
+ CFLAGS = -g
+ ALL_CFLAGS = -I. $(CFLAGS)
+ .c.o:
+ $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
+
+ Do include the `-g' option in `CFLAGS', because that is not
+_required_ for proper compilation. You can consider it a default that
+is only recommended. If the package is set up so that it is compiled
+with GCC by default, then you might as well include `-O' in the default
+value of `CFLAGS' as well.
+
+ Put `CFLAGS' last in the compilation command, after other variables
+containing compiler options, so the user can use `CFLAGS' to override
+the others.
+
+ `CFLAGS' should be used in every invocation of the C compiler, both
+those which do compilation and those which do linking.
+
+ Every Makefile should define the variable `INSTALL', which is the
+basic command for installing a file into the system.
+
+ Every Makefile should also define the variables `INSTALL_PROGRAM'
+and `INSTALL_DATA'. (The default for `INSTALL_PROGRAM' should be
+`$(INSTALL)'; the default for `INSTALL_DATA' should be `${INSTALL} -m
+644'.) Then it should use those variables as the commands for actual
+installation, for executables and non-executables respectively.
+Minimal use of these variables is as follows:
+
+ $(INSTALL_PROGRAM) foo $(bindir)/foo
+ $(INSTALL_DATA) libfoo.a $(libdir)/libfoo.a
+
+ However, it is preferable to support a `DESTDIR' prefix on the
+target files, as explained in the next section.
+
+ It is acceptable, but not required, to install multiple files in one
+command, with the final argument being a directory, as in:
+
+ $(INSTALL_PROGRAM) foo bar baz $(bindir)
+
+
+File: standards.info, Node: DESTDIR, Next: Directory Variables, Prev: Command Variables, Up: Makefile Conventions
+
+7.2.4 `DESTDIR': Support for Staged Installs
+--------------------------------------------
+
+`DESTDIR' is a variable prepended to each installed target file, like
+this:
+
+ $(INSTALL_PROGRAM) foo $(DESTDIR)$(bindir)/foo
+ $(INSTALL_DATA) libfoo.a $(DESTDIR)$(libdir)/libfoo.a
+
+ The `DESTDIR' variable is specified by the user on the `make'
+command line as an absolute file name. For example:
+
+ make DESTDIR=/tmp/stage install
+
+`DESTDIR' should be supported only in the `install*' and `uninstall*'
+targets, as those are the only targets where it is useful.
+
+ If your installation step would normally install
+`/usr/local/bin/foo' and `/usr/local/lib/libfoo.a', then an
+installation invoked as in the example above would install
+`/tmp/stage/usr/local/bin/foo' and `/tmp/stage/usr/local/lib/libfoo.a'
+instead.
+
+ Prepending the variable `DESTDIR' to each target in this way
+provides for "staged installs", where the installed files are not
+placed directly into their expected location but are instead copied
+into a temporary location (`DESTDIR'). However, installed files
+maintain their relative directory structure and any embedded file names
+will not be modified.
+
+ You should not set the value of `DESTDIR' in your `Makefile' at all;
+then the files are installed into their expected locations by default.
+Also, specifying `DESTDIR' should not change the operation of the
+software in any way, so its value should not be included in any file
+contents.
+
+ `DESTDIR' support is commonly used in package creation. It is also
+helpful to users who want to understand what a given package will
+install where, and to allow users who don't normally have permissions
+to install into protected areas to build and install before gaining
+those permissions. Finally, it can be useful with tools such as
+`stow', where code is installed in one place but made to appear to be
+installed somewhere else using symbolic links or special mount
+operations. So, we strongly recommend GNU packages support `DESTDIR',
+though it is not an absolute requirement.
+
+
+File: standards.info, Node: Directory Variables, Next: Standard Targets, Prev: DESTDIR, Up: Makefile Conventions
+
+7.2.5 Variables for Installation Directories
+--------------------------------------------
+
+Installation directories should always be named by variables, so it is
+easy to install in a nonstandard place. The standard names for these
+variables and the values they should have in GNU packages are described
+below. They are based on a standard file system layout; variants of it
+are used in GNU/Linux and other modern operating systems.
+
+ Installers are expected to override these values when calling `make'
+(e.g., `make prefix=/usr install' or `configure' (e.g., `configure
+--prefix=/usr'). GNU packages should not try to guess which value
+should be appropriate for these variables on the system they are being
+installed onto: use the default settings specified here so that all GNU
+packages behave identically, allowing the installer to achieve any
+desired layout.
+
+ All installation directories, and their parent directories, should be
+created (if necessary) before they are installed into.
+
+ These first two variables set the root for the installation. All the
+other installation directories should be subdirectories of one of these
+two, and nothing should be directly installed into these two
+directories.
+
+`prefix'
+ A prefix used in constructing the default values of the variables
+ listed below. The default value of `prefix' should be
+ `/usr/local'. When building the complete GNU system, the prefix
+ will be empty and `/usr' will be a symbolic link to `/'. (If you
+ are using Autoconf, write it as `@prefix@'.)
+
+ Running `make install' with a different value of `prefix' from the
+ one used to build the program should _not_ recompile the program.
+
+`exec_prefix'
+ A prefix used in constructing the default values of some of the
+ variables listed below. The default value of `exec_prefix' should
+ be `$(prefix)'. (If you are using Autoconf, write it as
+ `@exec_prefix@'.)
+
+ Generally, `$(exec_prefix)' is used for directories that contain
+ machine-specific files (such as executables and subroutine
+ libraries), while `$(prefix)' is used directly for other
+ directories.
+
+ Running `make install' with a different value of `exec_prefix'
+ from the one used to build the program should _not_ recompile the
+ program.
+
+ Executable programs are installed in one of the following
+directories.
+
+`bindir'
+ The directory for installing executable programs that users can
+ run. This should normally be `/usr/local/bin', but write it as
+ `$(exec_prefix)/bin'. (If you are using Autoconf, write it as
+ `@bindir@'.)
+
+`sbindir'
+ The directory for installing executable programs that can be run
+ from the shell, but are only generally useful to system
+ administrators. This should normally be `/usr/local/sbin', but
+ write it as `$(exec_prefix)/sbin'. (If you are using Autoconf,
+ write it as `@sbindir@'.)
+
+`libexecdir'
+ The directory for installing executable programs to be run by other
+ programs rather than by users. This directory should normally be
+ `/usr/local/libexec', but write it as `$(exec_prefix)/libexec'.
+ (If you are using Autoconf, write it as `@libexecdir@'.)
+
+ The definition of `libexecdir' is the same for all packages, so
+ you should install your data in a subdirectory thereof. Most
+ packages install their data under `$(libexecdir)/PACKAGE-NAME/',
+ possibly within additional subdirectories thereof, such as
+ `$(libexecdir)/PACKAGE-NAME/MACHINE/VERSION'.
+
+ Data files used by the program during its execution are divided into
+categories in two ways.
+
+ * Some files are normally modified by programs; others are never
+ normally modified (though users may edit some of these).
+
+ * Some files are architecture-independent and can be shared by all
+ machines at a site; some are architecture-dependent and can be
+ shared only by machines of the same kind and operating system;
+ others may never be shared between two machines.
+
+ This makes for six different possibilities. However, we want to
+discourage the use of architecture-dependent files, aside from object
+files and libraries. It is much cleaner to make other data files
+architecture-independent, and it is generally not hard.
+
+ Here are the variables Makefiles should use to specify directories
+to put these various kinds of files in:
+
+`datarootdir'
+ The root of the directory tree for read-only
+ architecture-independent data files. This should normally be
+ `/usr/local/share', but write it as `$(prefix)/share'. (If you
+ are using Autoconf, write it as `@datarootdir@'.) `datadir''s
+ default value is based on this variable; so are `infodir',
+ `mandir', and others.
+
+`datadir'
+ The directory for installing idiosyncratic read-only
+ architecture-independent data files for this program. This is
+ usually the same place as `datarootdir', but we use the two
+ separate variables so that you can move these program-specific
+ files without altering the location for Info files, man pages, etc.
+
+ This should normally be `/usr/local/share', but write it as
+ `$(datarootdir)'. (If you are using Autoconf, write it as
+ `@datadir@'.)
+
+ The definition of `datadir' is the same for all packages, so you
+ should install your data in a subdirectory thereof. Most packages
+ install their data under `$(datadir)/PACKAGE-NAME/'.
+
+`sysconfdir'
+ The directory for installing read-only data files that pertain to a
+ single machine-that is to say, files for configuring a host.
+ Mailer and network configuration files, `/etc/passwd', and so
+ forth belong here. All the files in this directory should be
+ ordinary ASCII text files. This directory should normally be
+ `/usr/local/etc', but write it as `$(prefix)/etc'. (If you are
+ using Autoconf, write it as `@sysconfdir@'.)
+
+ Do not install executables here in this directory (they probably
+ belong in `$(libexecdir)' or `$(sbindir)'). Also do not install
+ files that are modified in the normal course of their use (programs
+ whose purpose is to change the configuration of the system
+ excluded). Those probably belong in `$(localstatedir)'.
+
+`sharedstatedir'
+ The directory for installing architecture-independent data files
+ which the programs modify while they run. This should normally be
+ `/usr/local/com', but write it as `$(prefix)/com'. (If you are
+ using Autoconf, write it as `@sharedstatedir@'.)
+
+`localstatedir'
+ The directory for installing data files which the programs modify
+ while they run, and that pertain to one specific machine. Users
+ should never need to modify files in this directory to configure
+ the package's operation; put such configuration information in
+ separate files that go in `$(datadir)' or `$(sysconfdir)'.
+ `$(localstatedir)' should normally be `/usr/local/var', but write
+ it as `$(prefix)/var'. (If you are using Autoconf, write it as
+ `@localstatedir@'.)
+
+ These variables specify the directory for installing certain specific
+types of files, if your program has them. Every GNU package should
+have Info files, so every program needs `infodir', but not all need
+`libdir' or `lispdir'.
+
+`includedir'
+ The directory for installing header files to be included by user
+ programs with the C `#include' preprocessor directive. This
+ should normally be `/usr/local/include', but write it as
+ `$(prefix)/include'. (If you are using Autoconf, write it as
+ `@includedir@'.)
+
+ Most compilers other than GCC do not look for header files in
+ directory `/usr/local/include'. So installing the header files
+ this way is only useful with GCC. Sometimes this is not a problem
+ because some libraries are only really intended to work with GCC.
+ But some libraries are intended to work with other compilers.
+ They should install their header files in two places, one
+ specified by `includedir' and one specified by `oldincludedir'.
+
+`oldincludedir'
+ The directory for installing `#include' header files for use with
+ compilers other than GCC. This should normally be `/usr/include'.
+ (If you are using Autoconf, you can write it as `@oldincludedir@'.)
+
+ The Makefile commands should check whether the value of
+ `oldincludedir' is empty. If it is, they should not try to use
+ it; they should cancel the second installation of the header files.
+
+ A package should not replace an existing header in this directory
+ unless the header came from the same package. Thus, if your Foo
+ package provides a header file `foo.h', then it should install the
+ header file in the `oldincludedir' directory if either (1) there
+ is no `foo.h' there or (2) the `foo.h' that exists came from the
+ Foo package.
+
+ To tell whether `foo.h' came from the Foo package, put a magic
+ string in the file--part of a comment--and `grep' for that string.
+
+`docdir'
+ The directory for installing documentation files (other than Info)
+ for this package. By default, it should be
+ `/usr/local/share/doc/YOURPKG', but it should be written as
+ `$(datarootdir)/doc/YOURPKG'. (If you are using Autoconf, write
+ it as `@docdir@'.) The YOURPKG subdirectory, which may include a
+ version number, prevents collisions among files with common names,
+ such as `README'.
+
+`infodir'
+ The directory for installing the Info files for this package. By
+ default, it should be `/usr/local/share/info', but it should be
+ written as `$(datarootdir)/info'. (If you are using Autoconf,
+ write it as `@infodir@'.) `infodir' is separate from `docdir' for
+ compatibility with existing practice.
+
+`htmldir'
+`dvidir'
+`pdfdir'
+`psdir'
+ Directories for installing documentation files in the particular
+ format. They should all be set to `$(docdir)' by default. (If
+ you are using Autoconf, write them as `@htmldir@', `@dvidir@',
+ etc.) Packages which supply several translations of their
+ documentation should install them in `$(htmldir)/'LL,
+ `$(pdfdir)/'LL, etc. where LL is a locale abbreviation such as
+ `en' or `pt_BR'.
+
+`libdir'
+ The directory for object files and libraries of object code. Do
+ not install executables here, they probably ought to go in
+ `$(libexecdir)' instead. The value of `libdir' should normally be
+ `/usr/local/lib', but write it as `$(exec_prefix)/lib'. (If you
+ are using Autoconf, write it as `@libdir@'.)
+
+`lispdir'
+ The directory for installing any Emacs Lisp files in this package.
+ By default, it should be `/usr/local/share/emacs/site-lisp', but it
+ should be written as `$(datarootdir)/emacs/site-lisp'.
+
+ If you are using Autoconf, write the default as `@lispdir@'. In
+ order to make `@lispdir@' work, you need the following lines in
+ your `configure.in' file:
+
+ lispdir='${datarootdir}/emacs/site-lisp'
+ AC_SUBST(lispdir)
+
+`localedir'
+ The directory for installing locale-specific message catalogs for
+ this package. By default, it should be `/usr/local/share/locale',
+ but it should be written as `$(datarootdir)/locale'. (If you are
+ using Autoconf, write it as `@localedir@'.) This directory
+ usually has a subdirectory per locale.
+
+ Unix-style man pages are installed in one of the following:
+
+`mandir'
+ The top-level directory for installing the man pages (if any) for
+ this package. It will normally be `/usr/local/share/man', but you
+ should write it as `$(datarootdir)/man'. (If you are using
+ Autoconf, write it as `@mandir@'.)
+
+`man1dir'
+ The directory for installing section 1 man pages. Write it as
+ `$(mandir)/man1'.
+
+`man2dir'
+ The directory for installing section 2 man pages. Write it as
+ `$(mandir)/man2'
+
+`...'
+ *Don't make the primary documentation for any GNU software be a
+ man page. Write a manual in Texinfo instead. Man pages are just
+ for the sake of people running GNU software on Unix, which is a
+ secondary application only.*
+
+`manext'
+ The file name extension for the installed man page. This should
+ contain a period followed by the appropriate digit; it should
+ normally be `.1'.
+
+`man1ext'
+ The file name extension for installed section 1 man pages.
+
+`man2ext'
+ The file name extension for installed section 2 man pages.
+
+`...'
+ Use these names instead of `manext' if the package needs to
+ install man pages in more than one section of the manual.
+
+ And finally, you should set the following variable:
+
+`srcdir'
+ The directory for the sources being compiled. The value of this
+ variable is normally inserted by the `configure' shell script.
+ (If you are using Autoconf, use `srcdir = @srcdir@'.)
+
+ For example:
+
+ # Common prefix for installation directories.
+ # NOTE: This directory must exist when you start the install.
+ prefix = /usr/local
+ datarootdir = $(prefix)/share
+ datadir = $(datarootdir)
+ exec_prefix = $(prefix)
+ # Where to put the executable for the command `gcc'.
+ bindir = $(exec_prefix)/bin
+ # Where to put the directories used by the compiler.
+ libexecdir = $(exec_prefix)/libexec
+ # Where to put the Info files.
+ infodir = $(datarootdir)/info
+
+ If your program installs a large number of files into one of the
+standard user-specified directories, it might be useful to group them
+into a subdirectory particular to that program. If you do this, you
+should write the `install' rule to create these subdirectories.
+
+ Do not expect the user to include the subdirectory name in the value
+of any of the variables listed above. The idea of having a uniform set
+of variable names for installation directories is to enable the user to
+specify the exact same values for several different GNU packages. In
+order for this to be useful, all the packages must be designed so that
+they will work sensibly when the user does so.
+
+ At times, not all of these variables may be implemented in the
+current release of Autoconf and/or Automake; but as of Autoconf 2.60, we
+believe all of them are. When any are missing, the descriptions here
+serve as specifications for what Autoconf will implement. As a
+programmer, you can either use a development version of Autoconf or
+avoid using these variables until a stable release is made which
+supports them.
+
+
+File: standards.info, Node: Standard Targets, Next: Install Command Categories, Prev: Directory Variables, Up: Makefile Conventions
+
+7.2.6 Standard Targets for Users
+--------------------------------
+
+All GNU programs should have the following targets in their Makefiles:
+
+`all'
+ Compile the entire program. This should be the default target.
+ This target need not rebuild any documentation files; Info files
+ should normally be included in the distribution, and DVI (and other
+ documentation format) files should be made only when explicitly
+ asked for.
+
+ By default, the Make rules should compile and link with `-g', so
+ that executable programs have debugging symbols. Otherwise, you
+ are essentially helpless in the face of a crash, and it is often
+ far from easy to reproduce with a fresh build.
+
+`install'
+ Compile the program and copy the executables, libraries, and so on
+ to the file names where they should reside for actual use. If
+ there is a simple test to verify that a program is properly
+ installed, this target should run that test.
+
+ Do not strip executables when installing them. This helps eventual
+ debugging that may be needed later, and nowadays disk space is
+ cheap and dynamic loaders typically ensure debug sections are not
+ loaded during normal execution. Users that need stripped binaries
+ may invoke the `install-strip' target to do that.
+
+ If possible, write the `install' target rule so that it does not
+ modify anything in the directory where the program was built,
+ provided `make all' has just been done. This is convenient for
+ building the program under one user name and installing it under
+ another.
+
+ The commands should create all the directories in which files are
+ to be installed, if they don't already exist. This includes the
+ directories specified as the values of the variables `prefix' and
+ `exec_prefix', as well as all subdirectories that are needed. One
+ way to do this is by means of an `installdirs' target as described
+ below.
+
+ Use `-' before any command for installing a man page, so that
+ `make' will ignore any errors. This is in case there are systems
+ that don't have the Unix man page documentation system installed.
+
+ The way to install Info files is to copy them into `$(infodir)'
+ with `$(INSTALL_DATA)' (*note Command Variables::), and then run
+ the `install-info' program if it is present. `install-info' is a
+ program that edits the Info `dir' file to add or update the menu
+ entry for the given Info file; it is part of the Texinfo package.
+
+ Here is a sample rule to install an Info file that also tries to
+ handle some additional situations, such as `install-info' not
+ being present.
+
+ do-install-info: foo.info installdirs
+ $(NORMAL_INSTALL)
+ # Prefer an info file in . to one in srcdir.
+ if test -f foo.info; then d=.; \
+ else d="$(srcdir)"; fi; \
+ $(INSTALL_DATA) $$d/foo.info \
+ "$(DESTDIR)$(infodir)/foo.info"
+ # Run install-info only if it exists.
+ # Use `if' instead of just prepending `-' to the
+ # line so we notice real errors from install-info.
+ # Use `$(SHELL) -c' because some shells do not
+ # fail gracefully when there is an unknown command.
+ $(POST_INSTALL)
+ if $(SHELL) -c 'install-info --version' \
+ >/dev/null 2>&1; then \
+ install-info --dir-file="$(DESTDIR)$(infodir)/dir" \
+ "$(DESTDIR)$(infodir)/foo.info"; \
+ else true; fi
+
+ When writing the `install' target, you must classify all the
+ commands into three categories: normal ones, "pre-installation"
+ commands and "post-installation" commands. *Note Install Command
+ Categories::.
+
+`install-html'
+`install-dvi'
+`install-pdf'
+`install-ps'
+ These targets install documentation in formats other than Info;
+ they're intended to be called explicitly by the person installing
+ the package, if that format is desired. GNU prefers Info files,
+ so these must be installed by the `install' target.
+
+ When you have many documentation files to install, we recommend
+ that you avoid collisions and clutter by arranging for these
+ targets to install in subdirectories of the appropriate
+ installation directory, such as `htmldir'. As one example, if
+ your package has multiple manuals, and you wish to install HTML
+ documentation with many files (such as the "split" mode output by
+ `makeinfo --html'), you'll certainly want to use subdirectories,
+ or two nodes with the same name in different manuals will
+ overwrite each other.
+
+ Please make these `install-FORMAT' targets invoke the commands for
+ the FORMAT target, for example, by making FORMAT a dependency.
+
+`uninstall'
+ Delete all the installed files--the copies that the `install' and
+ `install-*' targets create.
+
+ This rule should not modify the directories where compilation is
+ done, only the directories where files are installed.
+
+ The uninstallation commands are divided into three categories,
+ just like the installation commands. *Note Install Command
+ Categories::.
+
+`install-strip'
+ Like `install', but strip the executable files while installing
+ them. In simple cases, this target can use the `install' target in
+ a simple way:
+
+ install-strip:
+ $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \
+ install
+
+ But if the package installs scripts as well as real executables,
+ the `install-strip' target can't just refer to the `install'
+ target; it has to strip the executables but not the scripts.
+
+ `install-strip' should not strip the executables in the build
+ directory which are being copied for installation. It should only
+ strip the copies that are installed.
+
+ Normally we do not recommend stripping an executable unless you
+ are sure the program has no bugs. However, it can be reasonable
+ to install a stripped executable for actual execution while saving
+ the unstripped executable elsewhere in case there is a bug.
+
+`clean'
+ Delete all files in the current directory that are normally
+ created by building the program. Also delete files in other
+ directories if they are created by this makefile. However, don't
+ delete the files that record the configuration. Also preserve
+ files that could be made by building, but normally aren't because
+ the distribution comes with them. There is no need to delete
+ parent directories that were created with `mkdir -p', since they
+ could have existed anyway.
+
+ Delete `.dvi' files here if they are not part of the distribution.
+
+`distclean'
+ Delete all files in the current directory (or created by this
+ makefile) that are created by configuring or building the program.
+ If you have unpacked the source and built the program without
+ creating any other files, `make distclean' should leave only the
+ files that were in the distribution. However, there is no need to
+ delete parent directories that were created with `mkdir -p', since
+ they could have existed anyway.
+
+`mostlyclean'
+ Like `clean', but may refrain from deleting a few files that people
+ normally don't want to recompile. For example, the `mostlyclean'
+ target for GCC does not delete `libgcc.a', because recompiling it
+ is rarely necessary and takes a lot of time.
+
+`maintainer-clean'
+ Delete almost everything that can be reconstructed with this
+ Makefile. This typically includes everything deleted by
+ `distclean', plus more: C source files produced by Bison, tags
+ tables, Info files, and so on.
+
+ The reason we say "almost everything" is that running the command
+ `make maintainer-clean' should not delete `configure' even if
+ `configure' can be remade using a rule in the Makefile. More
+ generally, `make maintainer-clean' should not delete anything that
+ needs to exist in order to run `configure' and then begin to build
+ the program. Also, there is no need to delete parent directories
+ that were created with `mkdir -p', since they could have existed
+ anyway. These are the only exceptions; `maintainer-clean' should
+ delete everything else that can be rebuilt.
+
+ The `maintainer-clean' target is intended to be used by a
+ maintainer of the package, not by ordinary users. You may need
+ special tools to reconstruct some of the files that `make
+ maintainer-clean' deletes. Since these files are normally
+ included in the distribution, we don't take care to make them easy
+ to reconstruct. If you find you need to unpack the full
+ distribution again, don't blame us.
+
+ To help make users aware of this, the commands for the special
+ `maintainer-clean' target should start with these two:
+
+ @echo 'This command is intended for maintainers to use; it'
+ @echo 'deletes files that may need special tools to rebuild.'
+
+`TAGS'
+ Update a tags table for this program.
+
+`info'
+ Generate any Info files needed. The best way to write the rules
+ is as follows:
+
+ info: foo.info
+
+ foo.info: foo.texi chap1.texi chap2.texi
+ $(MAKEINFO) $(srcdir)/foo.texi
+
+ You must define the variable `MAKEINFO' in the Makefile. It should
+ run the `makeinfo' program, which is part of the Texinfo
+ distribution.
+
+ Normally a GNU distribution comes with Info files, and that means
+ the Info files are present in the source directory. Therefore,
+ the Make rule for an info file should update it in the source
+ directory. When users build the package, ordinarily Make will not
+ update the Info files because they will already be up to date.
+
+`dvi'
+`html'
+`pdf'
+`ps'
+ Generate documentation files in the given format. These targets
+ should always exist, but any or all can be a no-op if the given
+ output format cannot be generated. These targets should not be
+ dependencies of the `all' target; the user must manually invoke
+ them.
+
+ Here's an example rule for generating DVI files from Texinfo:
+
+ dvi: foo.dvi
+
+ foo.dvi: foo.texi chap1.texi chap2.texi
+ $(TEXI2DVI) $(srcdir)/foo.texi
+
+ You must define the variable `TEXI2DVI' in the Makefile. It
+ should run the program `texi2dvi', which is part of the Texinfo
+ distribution. (`texi2dvi' uses TeX to do the real work of
+ formatting. TeX is not distributed with Texinfo.) Alternatively,
+ write only the dependencies, and allow GNU `make' to provide the
+ command.
+
+ Here's another example, this one for generating HTML from Texinfo:
+
+ html: foo.html
+
+ foo.html: foo.texi chap1.texi chap2.texi
+ $(TEXI2HTML) $(srcdir)/foo.texi
+
+ Again, you would define the variable `TEXI2HTML' in the Makefile;
+ for example, it might run `makeinfo --no-split --html' (`makeinfo'
+ is part of the Texinfo distribution).
+
+`dist'
+ Create a distribution tar file for this program. The tar file
+ should be set up so that the file names in the tar file start with
+ a subdirectory name which is the name of the package it is a
+ distribution for. This name can include the version number.
+
+ For example, the distribution tar file of GCC version 1.40 unpacks
+ into a subdirectory named `gcc-1.40'.
+
+ The easiest way to do this is to create a subdirectory
+ appropriately named, use `ln' or `cp' to install the proper files
+ in it, and then `tar' that subdirectory.
+
+ Compress the tar file with `gzip'. For example, the actual
+ distribution file for GCC version 1.40 is called `gcc-1.40.tar.gz'.
+ It is ok to support other free compression formats as well.
+
+ The `dist' target should explicitly depend on all non-source files
+ that are in the distribution, to make sure they are up to date in
+ the distribution. *Note Making Releases: Releases.
+
+`check'
+ Perform self-tests (if any). The user must build the program
+ before running the tests, but need not install the program; you
+ should write the self-tests so that they work when the program is
+ built but not installed.
+
+ The following targets are suggested as conventional names, for
+programs in which they are useful.
+
+`installcheck'
+ Perform installation tests (if any). The user must build and
+ install the program before running the tests. You should not
+ assume that `$(bindir)' is in the search path.
+
+`installdirs'
+ It's useful to add a target named `installdirs' to create the
+ directories where files are installed, and their parent
+ directories. There is a script called `mkinstalldirs' which is
+ convenient for this; you can find it in the Gnulib package. You
+ can use a rule like this:
+
+ # Make sure all installation directories (e.g. $(bindir))
+ # actually exist by making them if necessary.
+ installdirs: mkinstalldirs
+ $(srcdir)/mkinstalldirs $(bindir) $(datadir) \
+ $(libdir) $(infodir) \
+ $(mandir)
+
+ or, if you wish to support `DESTDIR' (strongly encouraged),
+
+ # Make sure all installation directories (e.g. $(bindir))
+ # actually exist by making them if necessary.
+ installdirs: mkinstalldirs
+ $(srcdir)/mkinstalldirs \
+ $(DESTDIR)$(bindir) $(DESTDIR)$(datadir) \
+ $(DESTDIR)$(libdir) $(DESTDIR)$(infodir) \
+ $(DESTDIR)$(mandir)
+
+ This rule should not modify the directories where compilation is
+ done. It should do nothing but create installation directories.
+
+
+File: standards.info, Node: Install Command Categories, Prev: Standard Targets, Up: Makefile Conventions
+
+7.2.7 Install Command Categories
+--------------------------------
+
+When writing the `install' target, you must classify all the commands
+into three categories: normal ones, "pre-installation" commands and
+"post-installation" commands.
+
+ Normal commands move files into their proper places, and set their
+modes. They may not alter any files except the ones that come entirely
+from the package they belong to.
+
+ Pre-installation and post-installation commands may alter other
+files; in particular, they can edit global configuration files or data
+bases.
+
+ Pre-installation commands are typically executed before the normal
+commands, and post-installation commands are typically run after the
+normal commands.
+
+ The most common use for a post-installation command is to run
+`install-info'. This cannot be done with a normal command, since it
+alters a file (the Info directory) which does not come entirely and
+solely from the package being installed. It is a post-installation
+command because it needs to be done after the normal command which
+installs the package's Info files.
+
+ Most programs don't need any pre-installation commands, but we have
+the feature just in case it is needed.
+
+ To classify the commands in the `install' rule into these three
+categories, insert "category lines" among them. A category line
+specifies the category for the commands that follow.
+
+ A category line consists of a tab and a reference to a special Make
+variable, plus an optional comment at the end. There are three
+variables you can use, one for each category; the variable name
+specifies the category. Category lines are no-ops in ordinary execution
+because these three Make variables are normally undefined (and you
+_should not_ define them in the makefile).
+
+ Here are the three possible category lines, each with a comment that
+explains what it means:
+
+ $(PRE_INSTALL) # Pre-install commands follow.
+ $(POST_INSTALL) # Post-install commands follow.
+ $(NORMAL_INSTALL) # Normal commands follow.
+
+ If you don't use a category line at the beginning of the `install'
+rule, all the commands are classified as normal until the first category
+line. If you don't use any category lines, all the commands are
+classified as normal.
+
+ These are the category lines for `uninstall':
+
+ $(PRE_UNINSTALL) # Pre-uninstall commands follow.
+ $(POST_UNINSTALL) # Post-uninstall commands follow.
+ $(NORMAL_UNINSTALL) # Normal commands follow.
+
+ Typically, a pre-uninstall command would be used for deleting entries
+from the Info directory.
+
+ If the `install' or `uninstall' target has any dependencies which
+act as subroutines of installation, then you should start _each_
+dependency's commands with a category line, and start the main target's
+commands with a category line also. This way, you can ensure that each
+command is placed in the right category regardless of which of the
+dependencies actually run.
+
+ Pre-installation and post-installation commands should not run any
+programs except for these:
+
+ [ basename bash cat chgrp chmod chown cmp cp dd diff echo
+ egrep expand expr false fgrep find getopt grep gunzip gzip
+ hostname install install-info kill ldconfig ln ls md5sum
+ mkdir mkfifo mknod mv printenv pwd rm rmdir sed sort tee
+ test touch true uname xargs yes
+
+ The reason for distinguishing the commands in this way is for the
+sake of making binary packages. Typically a binary package contains
+all the executables and other files that need to be installed, and has
+its own method of installing them--so it does not need to run the normal
+installation commands. But installing the binary package does need to
+execute the pre-installation and post-installation commands.
+
+ Programs to build binary packages work by extracting the
+pre-installation and post-installation commands. Here is one way of
+extracting the pre-installation commands (the `-s' option to `make' is
+needed to silence messages about entering subdirectories):
+
+ make -s -n install -o all \
+ PRE_INSTALL=pre-install \
+ POST_INSTALL=post-install \
+ NORMAL_INSTALL=normal-install \
+ | gawk -f pre-install.awk
+
+where the file `pre-install.awk' could contain this:
+
+ $0 ~ /^(normal-install|post-install)[ \t]*$/ {on = 0}
+ on {print $0}
+ $0 ~ /^pre-install[ \t]*$/ {on = 1}
+
+
+File: standards.info, Node: Releases, Prev: Makefile Conventions, Up: Managing Releases
+
+7.3 Making Releases
+===================
+
+You should identify each release with a pair of version numbers, a
+major version and a minor. We have no objection to using more than two
+numbers, but it is very unlikely that you really need them.
+
+ Package the distribution of `Foo version 69.96' up in a gzipped tar
+file with the name `foo-69.96.tar.gz'. It should unpack into a
+subdirectory named `foo-69.96'.
+
+ Building and installing the program should never modify any of the
+files contained in the distribution. This means that all the files
+that form part of the program in any way must be classified into "source
+files" and "non-source files". Source files are written by humans and
+never changed automatically; non-source files are produced from source
+files by programs under the control of the Makefile.
+
+ The distribution should contain a file named `README' which gives
+the name of the package, and a general description of what it does. It
+is also good to explain the purpose of each of the first-level
+subdirectories in the package, if there are any. The `README' file
+should either state the version number of the package, or refer to where
+in the package it can be found.
+
+ The `README' file should refer to the file `INSTALL', which should
+contain an explanation of the installation procedure.
+
+ The `README' file should also refer to the file which contains the
+copying conditions. The GNU GPL, if used, should be in a file called
+`COPYING'. If the GNU LGPL is used, it should be in a file called
+`COPYING.LESSER'.
+
+ Naturally, all the source files must be in the distribution. It is
+okay to include non-source files in the distribution along with the
+source files they are generated from, provided they are up-to-date with
+the source they are made from, and machine-independent, so that normal
+building of the distribution will never modify them. We commonly
+include non-source files produced by Autoconf, Automake, Bison, `lex',
+TeX, and `makeinfo'; this helps avoid unnecessary dependencies between
+our distributions, so that users can install whichever packages they
+want to install.
+
+ Non-source files that might actually be modified by building and
+installing the program should *never* be included in the distribution.
+So if you do distribute non-source files, always make sure they are up
+to date when you make a new distribution.
+
+ Make sure that all the files in the distribution are world-readable,
+and that directories are world-readable and world-searchable (octal
+mode 755). We used to recommend that all directories in the
+distribution also be world-writable (octal mode 777), because ancient
+versions of `tar' would otherwise not cope when extracting the archive
+as an unprivileged user. That can easily lead to security issues when
+creating the archive, however, so now we recommend against that.
+
+ Don't include any symbolic links in the distribution itself. If the
+tar file contains symbolic links, then people cannot even unpack it on
+systems that don't support symbolic links. Also, don't use multiple
+names for one file in different directories, because certain file
+systems cannot handle this and that prevents unpacking the distribution.
+
+ Try to make sure that all the file names will be unique on MS-DOS. A
+name on MS-DOS consists of up to 8 characters, optionally followed by a
+period and up to three characters. MS-DOS will truncate extra
+characters both before and after the period. Thus, `foobarhacker.c'
+and `foobarhacker.o' are not ambiguous; they are truncated to
+`foobarha.c' and `foobarha.o', which are distinct.
+
+ Include in your distribution a copy of the `texinfo.tex' you used to
+test print any `*.texinfo' or `*.texi' files.
+
+ Likewise, if your program uses small GNU software packages like
+regex, getopt, obstack, or termcap, include them in the distribution
+file. Leaving them out would make the distribution file a little
+smaller at the expense of possible inconvenience to a user who doesn't
+know what other files to get.
+
+
+File: standards.info, Node: References, Next: GNU Free Documentation License, Prev: Managing Releases, Up: Top
+
+8 References to Non-Free Software and Documentation
+***************************************************
+
+A GNU program should not recommend, promote, or grant legitimacy to the
+use of any non-free program. Proprietary software is a social and
+ethical problem, and our aim is to put an end to that problem. We
+can't stop some people from writing proprietary programs, or stop other
+people from using them, but we can and should refuse to advertise them
+to new potential customers, or to give the public the idea that their
+existence is ethical.
+
+ The GNU definition of free software is found on the GNU web site at
+`http://www.gnu.org/philosophy/free-sw.html', and the definition of
+free documentation is found at
+`http://www.gnu.org/philosophy/free-doc.html'. The terms "free" and
+"non-free", used in this document, refer to those definitions.
+
+ A list of important licenses and whether they qualify as free is in
+`http://www.gnu.org/licenses/license-list.html'. If it is not clear
+whether a license qualifies as free, please ask the GNU Project by
+writing to <licensing@gnu.org>. We will answer, and if the license is
+an important one, we will add it to the list.
+
+ When a non-free program or system is well known, you can mention it
+in passing--that is harmless, since users who might want to use it
+probably already know about it. For instance, it is fine to explain
+how to build your package on top of some widely used non-free operating
+system, or how to use it together with some widely used non-free
+program.
+
+ However, you should give only the necessary information to help those
+who already use the non-free program to use your program with it--don't
+give, or refer to, any further information about the proprietary
+program, and don't imply that the proprietary program enhances your
+program, or that its existence is in any way a good thing. The goal
+should be that people already using the proprietary program will get
+the advice they need about how to use your free program with it, while
+people who don't already use the proprietary program will not see
+anything likely to lead them to take an interest in it.
+
+ If a non-free program or system is obscure in your program's domain,
+your program should not mention or support it at all, since doing so
+would tend to popularize the non-free program more than it popularizes
+your program. (You cannot hope to find many additional users for your
+program among the users of Foobar, if the existence of Foobar is not
+generally known among people who might want to use your program.)
+
+ Sometimes a program is free software in itself but depends on a
+non-free platform in order to run. For instance, many Java programs
+depend on some non-free Java libraries. To recommend or promote such a
+program is to promote the other programs it needs. This is why we are
+careful about listing Java programs in the Free Software Directory: we
+don't want to promote the non-free Java libraries.
+
+ We hope this particular problem with Java will be gone by and by, as
+we replace the remaining non-free standard Java libraries with free
+software, but the general principle will remain the same: don't
+recommend, promote or legitimize programs that depend on non-free
+software to run.
+
+ Some free programs strongly encourage the use of non-free software.
+A typical example is `mplayer'. It is free software in itself, and the
+free code can handle some kinds of files. However, `mplayer'
+recommends use of non-free codecs for other kinds of files, and users
+that install `mplayer' are very likely to install those codecs along
+with it. To recommend `mplayer' is, in effect, to promote use of the
+non-free codecs.
+
+ Thus, you should not recommend programs that strongly encourage the
+use of non-free software. This is why we do not list `mplayer' in the
+Free Software Directory.
+
+ A GNU package should not refer the user to any non-free documentation
+for free software. Free documentation that can be included in free
+operating systems is essential for completing the GNU system, or any
+free operating system, so encouraging it is a priority; to recommend
+use of documentation that we are not allowed to include undermines the
+impetus for the community to produce documentation that we can include.
+So GNU packages should never recommend non-free documentation.
+
+ By contrast, it is ok to refer to journal articles and textbooks in
+the comments of a program for explanation of how it functions, even
+though they are non-free. This is because we don't include such things
+in the GNU system even if they are free--they are outside the scope of
+what a software distribution needs to include.
+
+ Referring to a web site that describes or recommends a non-free
+program is promoting that program, so please do not make links to (or
+mention by name) web sites that contain such material. This policy is
+relevant particularly for the web pages for a GNU package.
+
+ Following links from nearly any web site can lead eventually to
+non-free software; this is inherent in the nature of the web. So it
+makes no sense to criticize a site for having such links. As long as
+the site does not itself recommend a non-free program, there is no need
+to consider the question of the sites that it links to for other
+reasons.
+
+ Thus, for example, you should not refer to AT&T's web site if that
+recommends AT&T's non-free software packages; you should not refer to a
+site that links to AT&T's site presenting it as a place to get some
+non-free program, because that link recommends and legitimizes the
+non-free program. However, that a site contains a link to AT&T's web
+site for some other purpose (such as long-distance telephone service)
+is not an objection against it.
+
+
+File: standards.info, Node: GNU Free Documentation License, Next: Index, Prev: References, Up: Top
+
+Appendix A GNU Free Documentation License
+*****************************************
+
+ Version 1.3, 3 November 2008
+
+ Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+ `http://fsf.org/'
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ 0. PREAMBLE
+
+ The purpose of this License is to make a manual, textbook, or other
+ functional and useful document "free" in the sense of freedom: to
+ assure everyone the effective freedom to copy and redistribute it,
+ with or without modifying it, either commercially or
+ noncommercially. Secondarily, this License preserves for the
+ author and publisher a way to get credit for their work, while not
+ being considered responsible for modifications made by others.
+
+ This License is a kind of "copyleft", which means that derivative
+ works of the document must themselves be free in the same sense.
+ It complements the GNU General Public License, which is a copyleft
+ license designed for free software.
+
+ We have designed this License in order to use it for manuals for
+ free software, because free software needs free documentation: a
+ free program should come with manuals providing the same freedoms
+ that the software does. But this License is not limited to
+ software manuals; it can be used for any textual work, regardless
+ of subject matter or whether it is published as a printed book.
+ We recommend this License principally for works whose purpose is
+ instruction or reference.
+
+ 1. APPLICABILITY AND DEFINITIONS
+
+ This License applies to any manual or other work, in any medium,
+ that contains a notice placed by the copyright holder saying it
+ can be distributed under the terms of this License. Such a notice
+ grants a world-wide, royalty-free license, unlimited in duration,
+ to use that work under the conditions stated herein. The
+ "Document", below, refers to any such manual or work. Any member
+ of the public is a licensee, and is addressed as "you". You
+ accept the license if you copy, modify or distribute the work in a
+ way requiring permission under copyright law.
+
+ A "Modified Version" of the Document means any work containing the
+ Document or a portion of it, either copied verbatim, or with
+ modifications and/or translated into another language.
+
+ A "Secondary Section" is a named appendix or a front-matter section
+ of the Document that deals exclusively with the relationship of the
+ publishers or authors of the Document to the Document's overall
+ subject (or to related matters) and contains nothing that could
+ fall directly within that overall subject. (Thus, if the Document
+ is in part a textbook of mathematics, a Secondary Section may not
+ explain any mathematics.) The relationship could be a matter of
+ historical connection with the subject or with related matters, or
+ of legal, commercial, philosophical, ethical or political position
+ regarding them.
+
+ The "Invariant Sections" are certain Secondary Sections whose
+ titles are designated, as being those of Invariant Sections, in
+ the notice that says that the Document is released under this
+ License. If a section does not fit the above definition of
+ Secondary then it is not allowed to be designated as Invariant.
+ The Document may contain zero Invariant Sections. If the Document
+ does not identify any Invariant Sections then there are none.
+
+ The "Cover Texts" are certain short passages of text that are
+ listed, as Front-Cover Texts or Back-Cover Texts, in the notice
+ that says that the Document is released under this License. A
+ Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+ be at most 25 words.
+
+ A "Transparent" copy of the Document means a machine-readable copy,
+ represented in a format whose specification is available to the
+ general public, that is suitable for revising the document
+ straightforwardly with generic text editors or (for images
+ composed of pixels) generic paint programs or (for drawings) some
+ widely available drawing editor, and that is suitable for input to
+ text formatters or for automatic translation to a variety of
+ formats suitable for input to text formatters. A copy made in an
+ otherwise Transparent file format whose markup, or absence of
+ markup, has been arranged to thwart or discourage subsequent
+ modification by readers is not Transparent. An image format is
+ not Transparent if used for any substantial amount of text. A
+ copy that is not "Transparent" is called "Opaque".
+
+ Examples of suitable formats for Transparent copies include plain
+ ASCII without markup, Texinfo input format, LaTeX input format,
+ SGML or XML using a publicly available DTD, and
+ standard-conforming simple HTML, PostScript or PDF designed for
+ human modification. Examples of transparent image formats include
+ PNG, XCF and JPG. Opaque formats include proprietary formats that
+ can be read and edited only by proprietary word processors, SGML or
+ XML for which the DTD and/or processing tools are not generally
+ available, and the machine-generated HTML, PostScript or PDF
+ produced by some word processors for output purposes only.
+
+ The "Title Page" means, for a printed book, the title page itself,
+ plus such following pages as are needed to hold, legibly, the
+ material this License requires to appear in the title page. For
+ works in formats which do not have any title page as such, "Title
+ Page" means the text near the most prominent appearance of the
+ work's title, preceding the beginning of the body of the text.
+
+ The "publisher" means any person or entity that distributes copies
+ of the Document to the public.
+
+ A section "Entitled XYZ" means a named subunit of the Document
+ whose title either is precisely XYZ or contains XYZ in parentheses
+ following text that translates XYZ in another language. (Here XYZ
+ stands for a specific section name mentioned below, such as
+ "Acknowledgements", "Dedications", "Endorsements", or "History".)
+ To "Preserve the Title" of such a section when you modify the
+ Document means that it remains a section "Entitled XYZ" according
+ to this definition.
+
+ The Document may include Warranty Disclaimers next to the notice
+ which states that this License applies to the Document. These
+ Warranty Disclaimers are considered to be included by reference in
+ this License, but only as regards disclaiming warranties: any other
+ implication that these Warranty Disclaimers may have is void and
+ has no effect on the meaning of this License.
+
+ 2. VERBATIM COPYING
+
+ You may copy and distribute the Document in any medium, either
+ commercially or noncommercially, provided that this License, the
+ copyright notices, and the license notice saying this License
+ applies to the Document are reproduced in all copies, and that you
+ add no other conditions whatsoever to those of this License. You
+ may not use technical measures to obstruct or control the reading
+ or further copying of the copies you make or distribute. However,
+ you may accept compensation in exchange for copies. If you
+ distribute a large enough number of copies you must also follow
+ the conditions in section 3.
+
+ You may also lend copies, under the same conditions stated above,
+ and you may publicly display copies.
+
+ 3. COPYING IN QUANTITY
+
+ If you publish printed copies (or copies in media that commonly
+ have printed covers) of the Document, numbering more than 100, and
+ the Document's license notice requires Cover Texts, you must
+ enclose the copies in covers that carry, clearly and legibly, all
+ these Cover Texts: Front-Cover Texts on the front cover, and
+ Back-Cover Texts on the back cover. Both covers must also clearly
+ and legibly identify you as the publisher of these copies. The
+ front cover must present the full title with all words of the
+ title equally prominent and visible. You may add other material
+ on the covers in addition. Copying with changes limited to the
+ covers, as long as they preserve the title of the Document and
+ satisfy these conditions, can be treated as verbatim copying in
+ other respects.
+
+ If the required texts for either cover are too voluminous to fit
+ legibly, you should put the first ones listed (as many as fit
+ reasonably) on the actual cover, and continue the rest onto
+ adjacent pages.
+
+ If you publish or distribute Opaque copies of the Document
+ numbering more than 100, you must either include a
+ machine-readable Transparent copy along with each Opaque copy, or
+ state in or with each Opaque copy a computer-network location from
+ which the general network-using public has access to download
+ using public-standard network protocols a complete Transparent
+ copy of the Document, free of added material. If you use the
+ latter option, you must take reasonably prudent steps, when you
+ begin distribution of Opaque copies in quantity, to ensure that
+ this Transparent copy will remain thus accessible at the stated
+ location until at least one year after the last time you
+ distribute an Opaque copy (directly or through your agents or
+ retailers) of that edition to the public.
+
+ It is requested, but not required, that you contact the authors of
+ the Document well before redistributing any large number of
+ copies, to give them a chance to provide you with an updated
+ version of the Document.
+
+ 4. MODIFICATIONS
+
+ You may copy and distribute a Modified Version of the Document
+ under the conditions of sections 2 and 3 above, provided that you
+ release the Modified Version under precisely this License, with
+ the Modified Version filling the role of the Document, thus
+ licensing distribution and modification of the Modified Version to
+ whoever possesses a copy of it. In addition, you must do these
+ things in the Modified Version:
+
+ A. Use in the Title Page (and on the covers, if any) a title
+ distinct from that of the Document, and from those of
+ previous versions (which should, if there were any, be listed
+ in the History section of the Document). You may use the
+ same title as a previous version if the original publisher of
+ that version gives permission.
+
+ B. List on the Title Page, as authors, one or more persons or
+ entities responsible for authorship of the modifications in
+ the Modified Version, together with at least five of the
+ principal authors of the Document (all of its principal
+ authors, if it has fewer than five), unless they release you
+ from this requirement.
+
+ C. State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+
+ D. Preserve all the copyright notices of the Document.
+
+ E. Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+
+ F. Include, immediately after the copyright notices, a license
+ notice giving the public permission to use the Modified
+ Version under the terms of this License, in the form shown in
+ the Addendum below.
+
+ G. Preserve in that license notice the full lists of Invariant
+ Sections and required Cover Texts given in the Document's
+ license notice.
+
+ H. Include an unaltered copy of this License.
+
+ I. Preserve the section Entitled "History", Preserve its Title,
+ and add to it an item stating at least the title, year, new
+ authors, and publisher of the Modified Version as given on
+ the Title Page. If there is no section Entitled "History" in
+ the Document, create one stating the title, year, authors,
+ and publisher of the Document as given on its Title Page,
+ then add an item describing the Modified Version as stated in
+ the previous sentence.
+
+ J. Preserve the network location, if any, given in the Document
+ for public access to a Transparent copy of the Document, and
+ likewise the network locations given in the Document for
+ previous versions it was based on. These may be placed in
+ the "History" section. You may omit a network location for a
+ work that was published at least four years before the
+ Document itself, or if the original publisher of the version
+ it refers to gives permission.
+
+ K. For any section Entitled "Acknowledgements" or "Dedications",
+ Preserve the Title of the section, and preserve in the
+ section all the substance and tone of each of the contributor
+ acknowledgements and/or dedications given therein.
+
+ L. Preserve all the Invariant Sections of the Document,
+ unaltered in their text and in their titles. Section numbers
+ or the equivalent are not considered part of the section
+ titles.
+
+ M. Delete any section Entitled "Endorsements". Such a section
+ may not be included in the Modified Version.
+
+ N. Do not retitle any existing section to be Entitled
+ "Endorsements" or to conflict in title with any Invariant
+ Section.
+
+ O. Preserve any Warranty Disclaimers.
+
+ If the Modified Version includes new front-matter sections or
+ appendices that qualify as Secondary Sections and contain no
+ material copied from the Document, you may at your option
+ designate some or all of these sections as invariant. To do this,
+ add their titles to the list of Invariant Sections in the Modified
+ Version's license notice. These titles must be distinct from any
+ other section titles.
+
+ You may add a section Entitled "Endorsements", provided it contains
+ nothing but endorsements of your Modified Version by various
+ parties--for example, statements of peer review or that the text
+ has been approved by an organization as the authoritative
+ definition of a standard.
+
+ You may add a passage of up to five words as a Front-Cover Text,
+ and a passage of up to 25 words as a Back-Cover Text, to the end
+ of the list of Cover Texts in the Modified Version. Only one
+ passage of Front-Cover Text and one of Back-Cover Text may be
+ added by (or through arrangements made by) any one entity. If the
+ Document already includes a cover text for the same cover,
+ previously added by you or by arrangement made by the same entity
+ you are acting on behalf of, you may not add another; but you may
+ replace the old one, on explicit permission from the previous
+ publisher that added the old one.
+
+ The author(s) and publisher(s) of the Document do not by this
+ License give permission to use their names for publicity for or to
+ assert or imply endorsement of any Modified Version.
+
+ 5. COMBINING DOCUMENTS
+
+ You may combine the Document with other documents released under
+ this License, under the terms defined in section 4 above for
+ modified versions, provided that you include in the combination
+ all of the Invariant Sections of all of the original documents,
+ unmodified, and list them all as Invariant Sections of your
+ combined work in its license notice, and that you preserve all
+ their Warranty Disclaimers.
+
+ The combined work need only contain one copy of this License, and
+ multiple identical Invariant Sections may be replaced with a single
+ copy. If there are multiple Invariant Sections with the same name
+ but different contents, make the title of each such section unique
+ by adding at the end of it, in parentheses, the name of the
+ original author or publisher of that section if known, or else a
+ unique number. Make the same adjustment to the section titles in
+ the list of Invariant Sections in the license notice of the
+ combined work.
+
+ In the combination, you must combine any sections Entitled
+ "History" in the various original documents, forming one section
+ Entitled "History"; likewise combine any sections Entitled
+ "Acknowledgements", and any sections Entitled "Dedications". You
+ must delete all sections Entitled "Endorsements."
+
+ 6. COLLECTIONS OF DOCUMENTS
+
+ You may make a collection consisting of the Document and other
+ documents released under this License, and replace the individual
+ copies of this License in the various documents with a single copy
+ that is included in the collection, provided that you follow the
+ rules of this License for verbatim copying of each of the
+ documents in all other respects.
+
+ You may extract a single document from such a collection, and
+ distribute it individually under this License, provided you insert
+ a copy of this License into the extracted document, and follow
+ this License in all other respects regarding verbatim copying of
+ that document.
+
+ 7. AGGREGATION WITH INDEPENDENT WORKS
+
+ A compilation of the Document or its derivatives with other
+ separate and independent documents or works, in or on a volume of
+ a storage or distribution medium, is called an "aggregate" if the
+ copyright resulting from the compilation is not used to limit the
+ legal rights of the compilation's users beyond what the individual
+ works permit. When the Document is included in an aggregate, this
+ License does not apply to the other works in the aggregate which
+ are not themselves derivative works of the Document.
+
+ If the Cover Text requirement of section 3 is applicable to these
+ copies of the Document, then if the Document is less than one half
+ of the entire aggregate, the Document's Cover Texts may be placed
+ on covers that bracket the Document within the aggregate, or the
+ electronic equivalent of covers if the Document is in electronic
+ form. Otherwise they must appear on printed covers that bracket
+ the whole aggregate.
+
+ 8. TRANSLATION
+
+ Translation is considered a kind of modification, so you may
+ distribute translations of the Document under the terms of section
+ 4. Replacing Invariant Sections with translations requires special
+ permission from their copyright holders, but you may include
+ translations of some or all Invariant Sections in addition to the
+ original versions of these Invariant Sections. You may include a
+ translation of this License, and all the license notices in the
+ Document, and any Warranty Disclaimers, provided that you also
+ include the original English version of this License and the
+ original versions of those notices and disclaimers. In case of a
+ disagreement between the translation and the original version of
+ this License or a notice or disclaimer, the original version will
+ prevail.
+
+ If a section in the Document is Entitled "Acknowledgements",
+ "Dedications", or "History", the requirement (section 4) to
+ Preserve its Title (section 1) will typically require changing the
+ actual title.
+
+ 9. TERMINATION
+
+ You may not copy, modify, sublicense, or distribute the Document
+ except as expressly provided under this License. Any attempt
+ otherwise to copy, modify, sublicense, or distribute it is void,
+ and will automatically terminate your rights under this License.
+
+ However, if you cease all violation of this License, then your
+ license from a particular copyright holder is reinstated (a)
+ provisionally, unless and until the copyright holder explicitly
+ and finally terminates your license, and (b) permanently, if the
+ copyright holder fails to notify you of the violation by some
+ reasonable means prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+ reinstated permanently if the copyright holder notifies you of the
+ violation by some reasonable means, this is the first time you have
+ received notice of violation of this License (for any work) from
+ that copyright holder, and you cure the violation prior to 30 days
+ after your receipt of the notice.
+
+ Termination of your rights under this section does not terminate
+ the licenses of parties who have received copies or rights from
+ you under this License. If your rights have been terminated and
+ not permanently reinstated, receipt of a copy of some or all of
+ the same material does not give you any rights to use it.
+
+ 10. FUTURE REVISIONS OF THIS LICENSE
+
+ The Free Software Foundation may publish new, revised versions of
+ the GNU Free Documentation License from time to time. Such new
+ versions will be similar in spirit to the present version, but may
+ differ in detail to address new problems or concerns. See
+ `http://www.gnu.org/copyleft/'.
+
+ Each version of the License is given a distinguishing version
+ number. If the Document specifies that a particular numbered
+ version of this License "or any later version" applies to it, you
+ have the option of following the terms and conditions either of
+ that specified version or of any later version that has been
+ published (not as a draft) by the Free Software Foundation. If
+ the Document does not specify a version number of this License,
+ you may choose any version ever published (not as a draft) by the
+ Free Software Foundation. If the Document specifies that a proxy
+ can decide which future versions of this License can be used, that
+ proxy's public statement of acceptance of a version permanently
+ authorizes you to choose that version for the Document.
+
+ 11. RELICENSING
+
+ "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
+ World Wide Web server that publishes copyrightable works and also
+ provides prominent facilities for anybody to edit those works. A
+ public wiki that anybody can edit is an example of such a server.
+ A "Massive Multiauthor Collaboration" (or "MMC") contained in the
+ site means any set of copyrightable works thus published on the MMC
+ site.
+
+ "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
+ license published by Creative Commons Corporation, a not-for-profit
+ corporation with a principal place of business in San Francisco,
+ California, as well as future copyleft versions of that license
+ published by that same organization.
+
+ "Incorporate" means to publish or republish a Document, in whole or
+ in part, as part of another Document.
+
+ An MMC is "eligible for relicensing" if it is licensed under this
+ License, and if all works that were first published under this
+ License somewhere other than this MMC, and subsequently
+ incorporated in whole or in part into the MMC, (1) had no cover
+ texts or invariant sections, and (2) were thus incorporated prior
+ to November 1, 2008.
+
+ The operator of an MMC Site may republish an MMC contained in the
+ site under CC-BY-SA on the same site at any time before August 1,
+ 2009, provided the MMC is eligible for relicensing.
+
+
+ADDENDUM: How to use this License for your documents
+====================================================
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
+ Copyright (C) YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.3
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+ Texts. A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+
+ If you have Invariant Sections, Front-Cover Texts and Back-Cover
+Texts, replace the "with...Texts." line with this:
+
+ with the Invariant Sections being LIST THEIR TITLES, with
+ the Front-Cover Texts being LIST, and with the Back-Cover Texts
+ being LIST.
+
+ If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+ If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License, to
+permit their use in free software.
+
+
+File: standards.info, Node: Index, Prev: GNU Free Documentation License, Up: Top
+
+Index
+*****
+
+
+* Menu:
+
+* #endif, commenting: Comments. (line 60)
+* --help output: --help. (line 6)
+* --version output: --version. (line 6)
+* -Wall compiler option: Syntactic Conventions.
+ (line 10)
+* accepting contributions: Contributions. (line 6)
+* address for bug reports: --help. (line 11)
+* ANSI C standard: Standard C. (line 6)
+* arbitrary limits on data: Semantics. (line 6)
+* ASCII characters: Character Set. (line 6)
+* autoconf: System Portability. (line 23)
+* avoiding proprietary code: Reading Non-Free Code.
+ (line 6)
+* behavior, dependent on program's name: User Interfaces. (line 6)
+* binary packages: Install Command Categories.
+ (line 80)
+* bindir: Directory Variables. (line 57)
+* braces, in C source: Formatting. (line 6)
+* bug reports: --help. (line 11)
+* bug-standards@gnu.org email address: Preface. (line 30)
+* C library functions, and portability: System Functions. (line 6)
+* canonical name of a program: --version. (line 12)
+* casting pointers to integers: CPU Portability. (line 50)
+* CGI programs, standard options for: Command-Line Interfaces.
+ (line 31)
+* change logs: Change Logs. (line 6)
+* change logs, conditional changes: Conditional Changes. (line 6)
+* change logs, style: Style of Change Logs.
+ (line 6)
+* character set: Character Set. (line 6)
+* clang: Syntactic Conventions.
+ (line 17)
+* command-line arguments, decoding: Semantics. (line 47)
+* command-line interface: Command-Line Interfaces.
+ (line 6)
+* commenting: Comments. (line 6)
+* compatibility with C and POSIX standards: Compatibility. (line 6)
+* compiler warnings: Syntactic Conventions.
+ (line 10)
+* conditional changes, and change logs: Conditional Changes. (line 6)
+* conditionals, comments for: Comments. (line 60)
+* configure: Configuration. (line 6)
+* control-L: Formatting. (line 128)
+* conventions for makefiles: Makefile Conventions.
+ (line 6)
+* CORBA: Graphical Interfaces.
+ (line 16)
+* credits for manuals: Manual Credits. (line 6)
+* D-bus: Graphical Interfaces.
+ (line 16)
+* data structures, in Gnulib: System Functions. (line 44)
+* data types, and portability: CPU Portability. (line 6)
+* DESTDIR: DESTDIR. (line 6)
+* directories, creating installation: Directory Variables. (line 20)
+* documentation: Documentation. (line 6)
+* doschk: Names. (line 38)
+* double quote: Quote Characters. (line 6)
+* downloading this manual: Preface. (line 14)
+* dynamic plug-ins: Dynamic Plug-In Interfaces.
+ (line 6)
+* encodings: Character Set. (line 6)
+* enum types, formatting: Formatting. (line 45)
+* error messages: Semantics. (line 19)
+* error messages, formatting: Errors. (line 6)
+* error messages, in Gnulib: System Functions. (line 44)
+* exec_prefix: Directory Variables. (line 39)
+* expressions, splitting: Formatting. (line 91)
+* FDL, GNU Free Documentation License: GNU Free Documentation License.
+ (line 6)
+* file usage: File Usage. (line 6)
+* file-name limitations: Names. (line 38)
+* formatting error messages: Errors. (line 6)
+* formatting source code: Formatting. (line 6)
+* formfeed: Formatting. (line 128)
+* function argument, declaring: Syntactic Conventions.
+ (line 6)
+* function definitions, formatting: Formatting. (line 6)
+* function prototypes: Standard C. (line 17)
+* getopt: Command-Line Interfaces.
+ (line 6)
+* gettext: Internationalization.
+ (line 6)
+* GNOME: Graphical Interfaces.
+ (line 16)
+* GNOME and Guile: Source Language. (line 38)
+* Gnulib: System Functions. (line 37)
+* gnustandards project repository: Preface. (line 30)
+* gnustandards-commit@gnu.org mailing list: Preface. (line 24)
+* graphical user interface: Graphical Interfaces.
+ (line 6)
+* grave accent: Quote Characters. (line 6)
+* GTK+: Graphical Interfaces.
+ (line 6)
+* Guile: Source Language. (line 38)
+* implicit int: Syntactic Conventions.
+ (line 6)
+* impossible conditions: Semantics. (line 71)
+* installation directories, creating: Directory Variables. (line 20)
+* installations, staged: DESTDIR. (line 6)
+* interface styles: Graphical Interfaces.
+ (line 6)
+* internationalization: Internationalization.
+ (line 6)
+* keyboard interface: Graphical Interfaces.
+ (line 16)
+* LDAP: OID Allocations. (line 6)
+* left quote: Quote Characters. (line 6)
+* legal aspects: Legal Issues. (line 6)
+* legal papers: Contributions. (line 6)
+* libexecdir: Directory Variables. (line 70)
+* libiconv: Semantics. (line 11)
+* libraries: Libraries. (line 6)
+* library functions, and portability: System Functions. (line 6)
+* library interface: Graphical Interfaces.
+ (line 16)
+* license for manuals: License for Manuals. (line 6)
+* lint: Syntactic Conventions.
+ (line 17)
+* locale-specific quote characters: Quote Characters. (line 6)
+* long option names: Option Table. (line 6)
+* long-named options: Command-Line Interfaces.
+ (line 12)
+* makefile, conventions for: Makefile Conventions.
+ (line 6)
+* malloc return value: Semantics. (line 26)
+* man pages: Man Pages. (line 6)
+* manual structure: Manual Structure Details.
+ (line 6)
+* memory allocation failure: Semantics. (line 26)
+* memory leak: Memory Usage. (line 23)
+* memory usage: Memory Usage. (line 6)
+* message text, and internationalization: Internationalization.
+ (line 29)
+* mmap: Mmap. (line 6)
+* multiple variables in a line: Syntactic Conventions.
+ (line 43)
+* names of variables, functions, and files: Names. (line 6)
+* NEWS file: NEWS File. (line 6)
+* non-ASCII characters: Character Set. (line 6)
+* non-POSIX systems, and portability: System Portability. (line 32)
+* non-standard extensions: Using Extensions. (line 6)
+* NUL characters: Semantics. (line 11)
+* OID allocations for GNU: OID Allocations. (line 6)
+* open brace: Formatting. (line 6)
+* opening quote: Quote Characters. (line 6)
+* optional features, configure-time: Configuration. (line 100)
+* options for compatibility: Compatibility. (line 14)
+* options, standard command-line: Command-Line Interfaces.
+ (line 31)
+* output device and program's behavior: User Interfaces. (line 13)
+* packaging: Releases. (line 6)
+* PATH_INFO, specifying standard options as: Command-Line Interfaces.
+ (line 31)
+* plug-ins: Dynamic Plug-In Interfaces.
+ (line 6)
+* plugin_is_GPL_compatible: Dynamic Plug-In Interfaces.
+ (line 17)
+* portability, and data types: CPU Portability. (line 6)
+* portability, and library functions: System Functions. (line 6)
+* portability, between system types: System Portability. (line 6)
+* POSIX compatibility: Compatibility. (line 6)
+* POSIX functions, and portability: System Functions. (line 6)
+* POSIXLY_CORRECT, environment variable: Compatibility. (line 21)
+* post-installation commands: Install Command Categories.
+ (line 6)
+* pre-installation commands: Install Command Categories.
+ (line 6)
+* prefix: Directory Variables. (line 29)
+* program configuration: Configuration. (line 6)
+* program design: Design Advice. (line 6)
+* program name and its behavior: User Interfaces. (line 6)
+* program's canonical name: --version. (line 12)
+* programming languages: Source Language. (line 6)
+* proprietary programs: Reading Non-Free Code.
+ (line 6)
+* quote characters: Quote Characters. (line 6)
+* README file: Releases. (line 21)
+* references to non-free material: References. (line 6)
+* releasing: Managing Releases. (line 6)
+* right quote: Quote Characters. (line 6)
+* Savannah repository for gnustandards: Preface. (line 30)
+* sbindir: Directory Variables. (line 63)
+* signal handling: Semantics. (line 60)
+* single quote: Quote Characters. (line 6)
+* SNMP: OID Allocations. (line 6)
+* spaces before open-paren: Formatting. (line 85)
+* staged installs: DESTDIR. (line 6)
+* standard command-line options: Command-Line Interfaces.
+ (line 31)
+* standards for makefiles: Makefile Conventions.
+ (line 6)
+* struct types, formatting: Formatting. (line 45)
+* syntactic conventions: Syntactic Conventions.
+ (line 6)
+* table of long options: Option Table. (line 6)
+* temporary files: Semantics. (line 85)
+* temporary variables: Syntactic Conventions.
+ (line 31)
+* texinfo.tex, in a distribution: Releases. (line 72)
+* TMPDIR environment variable: Semantics. (line 85)
+* trademarks: Trademarks. (line 6)
+* user interface styles: Graphical Interfaces.
+ (line 6)
+* valgrind: Memory Usage. (line 23)
+* where to obtain standards.texi: Preface. (line 14)
+* X.509: OID Allocations. (line 6)
+* xmalloc, in Gnulib: System Functions. (line 44)
+
+
+
+Tag Table:
+Node: Top824
+Node: Preface2122
+Node: Legal Issues4834
+Node: Reading Non-Free Code5304
+Node: Contributions7034
+Node: Trademarks9220
+Node: Design Advice10855
+Node: Source Language11447
+Node: Compatibility13573
+Node: Using Extensions15201
+Node: Standard C16777
+Node: Conditional Compilation19180
+Node: Program Behavior20578
+Node: Non-GNU Standards21768
+Node: Semantics24049
+Node: Libraries28993
+Node: Errors30238
+Node: User Interfaces32807
+Node: Graphical Interfaces34412
+Node: Command-Line Interfaces35596
+Node: --version37642
+Node: --help43380
+Node: Dynamic Plug-In Interfaces44253
+Node: Option Table46152
+Node: OID Allocations61110
+Node: Memory Usage62944
+Node: File Usage64219
+Node: Writing C64969
+Node: Formatting65950
+Node: Comments70438
+Node: Syntactic Conventions73990
+Node: Names77965
+Node: System Portability80177
+Node: CPU Portability83068
+Node: System Functions85434
+Node: Internationalization87976
+Node: Character Set91976
+Node: Quote Characters92831
+Node: Mmap94390
+Node: Documentation95098
+Node: GNU Manuals96204
+Node: Doc Strings and Manuals101942
+Node: Manual Structure Details103495
+Node: License for Manuals104913
+Node: Manual Credits105887
+Node: Printed Manuals106280
+Node: NEWS File106966
+Node: Change Logs107644
+Node: Change Log Concepts108398
+Node: Style of Change Logs110501
+Node: Simple Changes113001
+Node: Conditional Changes114443
+Node: Indicating the Part Changed116884
+Node: Man Pages117411
+Node: Reading other Manuals119617
+Node: Managing Releases120408
+Node: Configuration121189
+Node: Makefile Conventions129854
+Node: Makefile Basics130853
+Node: Utilities in Makefiles134027
+Node: Command Variables136532
+Node: DESTDIR139778
+Node: Directory Variables141952
+Node: Standard Targets156574
+Node: Install Command Categories170675
+Node: Releases175208
+Node: References179322
+Node: GNU Free Documentation License185175
+Node: Index210342
+
+End Tag Table
diff --git a/doc/standards.texi b/doc/standards.texi
index 99d76f03..69a400ea 100644
--- a/doc/standards.texi
+++ b/doc/standards.texi
@@ -3,7 +3,7 @@
@setfilename standards.info
@settitle GNU Coding Standards
@c This date is automagically updated when you save this file:
-@set lastupdate September 9, 2010
+@set lastupdate April 7, 2012
@c %**end of header
@dircategory GNU organization
@@ -27,8 +27,8 @@
The GNU coding standards, last updated @value{lastupdate}.
Copyright @copyright{} 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-Foundation, Inc.
+2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+2011, 2012 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -50,8 +50,8 @@ Texts. A copy of the license is included in the section entitled
@contents
@ifnottex
-@node Top, Preface, (dir), (dir)
-@top Version
+@node Top
+@top GNU Coding Standards
@insertcopying
@end ifnottex
@@ -181,6 +181,7 @@ Or turn some parts of the program into independently usable libraries.
Or use a simple garbage collector instead of tracking precisely when
to free memory, or use a new GNU facility such as obstacks.
+
@node Contributions
@section Accepting Contributions
@cindex legal papers
@@ -223,10 +224,11 @@ The very worst thing is if you forget to tell us about the other
contributor. We could be very embarrassed in court some day as a
result.
-We have more detailed advice for maintainers of programs; if you have
-reached the stage of actually maintaining a program for GNU (whether
-released or not), please ask us for a copy. It is also available
-online for your perusal: @uref{http://www.gnu.org/prep/maintain/}.
+We have more detailed advice for maintainers of GNU packages. If you
+have reached the stage of maintaining a GNU program (whether released
+or not), please take a look: @pxref{Legal Matters,,, maintain,
+Information for GNU Maintainers}.
+
@node Trademarks
@section Trademarks
@@ -576,7 +578,7 @@ prohibited. How silly! GCC implements many extensions, some of which
were later adopted as part of the standard. If you want these
constructs to give an error message as ``required'' by the standard,
you must specify @samp{--pedantic}, which was implemented only so that
-we can say ``GCC is a 100% implementation of the standard,'' not
+we can say ``GCC is a 100% implementation of the standard'', not
because there is any reason to actually use it.
POSIX.2 specifies that @samp{df} and @samp{du} must output sizes by
@@ -592,7 +594,8 @@ options with ordinary arguments. This minor incompatibility with
POSIX is never a problem in practice, and it is very useful.
In particular, don't reject a new feature, or remove an old one,
-merely because a standard says it is ``forbidden'' or ``deprecated.''
+merely because a standard says it is ``forbidden'' or ``deprecated''.
+
@node Semantics
@section Writing Robust Programs
@@ -604,22 +607,22 @@ all data structures dynamically. In most Unix utilities, ``long lines
are silently truncated''. This is not acceptable in a GNU utility.
@cindex @code{NUL} characters
+@findex libiconv
Utilities reading files should not drop NUL characters, or any other
nonprinting characters @emph{including those with codes above 0177}.
The only sensible exceptions would be utilities specifically intended
-for interface to certain types of terminals or printers
-that can't handle those characters.
-Whenever possible, try to make programs work properly with
-sequences of bytes that represent multibyte characters, using encodings
-such as UTF-8 and others.
+for interface to certain types of terminals or printers that can't
+handle those characters. Whenever possible, try to make programs work
+properly with sequences of bytes that represent multibyte characters;
+UTF-8 is the most important.
@cindex error messages
-Check every system call for an error return, unless you know you wish to
-ignore errors. Include the system error text (from @code{perror} or
-equivalent) in @emph{every} error message resulting from a failing
-system call, as well as the name of the file if any and the name of the
-utility. Just ``cannot open foo.c'' or ``stat failed'' is not
-sufficient.
+Check every system call for an error return, unless you know you wish
+to ignore errors. Include the system error text (from @code{perror},
+@code{strerror}, or equivalent) in @emph{every} error message
+resulting from a failing system call, as well as the name of the file
+if any and the name of the utility. Just ``cannot open foo.c'' or
+``stat failed'' is not sufficient.
@cindex @code{malloc} return value
@cindex memory allocation failure
@@ -701,9 +704,14 @@ fd = open (filename, O_WRONLY | O_CREAT | O_EXCL, 0600);
@end example
@noindent
-or by using the @code{mkstemps} function from libiberty.
+or by using the @code{mkstemps} function from Gnulib
+(@pxref{mkstemps,,, gnulib, Gnulib}).
+
+In bash, use @code{set -C} (long name @code{noclobber}) to avoid this
+problem. In addition, the @code{mktemp} utility is a more general
+solution for creating temporary files from shell scripts
+(@pxref{mktemp invocation,,, coreutils, GNU Coreutils}).
-In bash, use @code{set -C} to avoid this problem.
@node Libraries
@section Library Behavior
@@ -743,24 +751,27 @@ fit any naming convention.
Error messages from compilers should look like this:
@example
-@var{source-file-name}:@var{lineno}: @var{message}
+@var{sourcefile}:@var{lineno}: @var{message}
@end example
@noindent
If you want to mention the column number, use one of these formats:
@example
-@var{source-file-name}:@var{lineno}:@var{column}: @var{message}
-@var{source-file-name}:@var{lineno}.@var{column}: @var{message}
+@var{sourcefile}:@var{lineno}:@var{column}: @var{message}
+@var{sourcefile}:@var{lineno}.@var{column}: @var{message}
@end example
@noindent
Line numbers should start from 1 at the beginning of the file, and
-column numbers should start from 1 at the beginning of the line. (Both
-of these conventions are chosen for compatibility.) Calculate column
-numbers assuming that space and all ASCII printing characters have
-equal width, and assuming tab stops every 8 columns.
+column numbers should start from 1 at the beginning of the line.
+(Both of these conventions are chosen for compatibility.) Calculate
+column numbers assuming that space and all ASCII printing characters
+have equal width, and assuming tab stops every 8 columns. For
+non-ASCII characters, Unicode character widths should be used when in
+a UTF-8 locale; GNU libc and GNU gnulib provide suitable
+@code{wcwidth} functions.
The error message can also give both the starting and ending positions
of the erroneous text. There are several formats so that you can
@@ -768,22 +779,22 @@ avoid redundant information such as a duplicate line number.
Here are the possible formats:
@example
-@var{source-file-name}:@var{lineno-1}.@var{column-1}-@var{lineno-2}.@var{column-2}: @var{message}
-@var{source-file-name}:@var{lineno-1}.@var{column-1}-@var{column-2}: @var{message}
-@var{source-file-name}:@var{lineno-1}-@var{lineno-2}: @var{message}
+@var{sourcefile}:@var{line1}.@var{column1}-@var{line2}.@var{column2}: @var{message}
+@var{sourcefile}:@var{line1}.@var{column1}-@var{column2}: @var{message}
+@var{sourcefile}:@var{line1}-@var{line2}: @var{message}
@end example
@noindent
When an error is spread over several files, you can use this format:
@example
-@var{file-1}:@var{lineno-1}.@var{column-1}-@var{file-2}:@var{lineno-2}.@var{column-2}: @var{message}
+@var{file1}:@var{line1}.@var{column1}-@var{file2}:@var{line2}.@var{column2}: @var{message}
@end example
Error messages from other noninteractive programs should look like this:
@example
-@var{program}:@var{source-file-name}:@var{lineno}: @var{message}
+@var{program}:@var{sourcefile}:@var{lineno}: @var{message}
@end example
@noindent
@@ -799,7 +810,7 @@ when there is no relevant source file.
If you want to mention the column number, use this format:
@example
-@var{program}:@var{source-file-name}:@var{lineno}:@var{column}: @var{message}
+@var{program}:@var{sourcefile}:@var{lineno}:@var{column}: @var{message}
@end example
In an interactive program (one that is reading commands from a
@@ -987,7 +998,7 @@ copyright notice. If more than one copyright notice is called for, put
each on a separate line.
Next should follow a line stating the license, preferably using one of
-abbrevations below, and a brief statement that the program is free
+abbreviations below, and a brief statement that the program is free
software, and that users are free to copy and change it. Also mention
that there is no warranty, to the extent permitted by law. See
recommended wording below.
@@ -2324,10 +2335,11 @@ memory and give a fatal error if @code{malloc} returns zero.
@pindex valgrind
@cindex memory leak
-Memory leak detectors such as @command{valgrind} can be useful, but
+Memory analysis tools such as @command{valgrind} can be useful, but
don't complicate a program merely to avoid their false alarms. For
example, if memory is used until just before a process exits, don't
-free it simply to silence a leak detector.
+free it simply to silence such a tool.
+
@node File Usage
@section File Usage
@@ -2362,7 +2374,7 @@ when writing GNU software.
* System Functions:: Portability and ``standard'' library functions.
* Internationalization:: Techniques for internationalization.
* Character Set:: Use ASCII by default.
-* Quote Characters:: Use `...' in the C locale.
+* Quote Characters:: Use "..." or '...' in the C locale.
* Mmap:: How you can safely use @code{mmap}.
@end menu
@@ -2372,6 +2384,7 @@ when writing GNU software.
@cindex open brace
@cindex braces, in C source
+@cindex function definitions, formatting
It is important to put the open-brace that starts the body of a C
function in column one, so that they will start a defun. Several
tools look for open-braces in column one to find the beginnings of C
@@ -2418,6 +2431,20 @@ lots_of_args (int an_integer, long a_long, short a_short,
@dots{}
@end example
+@cindex @code{struct} types, formatting
+@cindex @code{enum} types, formatting
+For @code{struct} and @code{enum} types, likewise put the braces in
+column one, unless the whole contents fits on one line:
+
+@example
+struct foo
+@{
+ int a, b;
+@}
+@exdent @r{or}
+struct foo @{ int a, b; @}
+@end example
+
The rest of this section gives our recommendations for other aspects of
C formatting style, which is also the default style of the @code{indent}
program in version 1.2 and newer. It corresponds to the options
@@ -2564,7 +2591,7 @@ about the value rather than the variable itself. Thus, ``the inode
number NODE_NUM'' rather than ``an inode''.
There is usually no purpose in restating the name of the function in
-the comment before it, because the reader can see that for himself.
+the comment before it, because readers can see that for themselves.
There might be an exception when the comment is so long that the function
itself would be off the bottom of the screen.
@@ -2643,10 +2670,10 @@ Don't make the program ugly just to placate static analysis tools such
as @command{lint}, @command{clang}, and GCC with extra warnings
options such as @option{-Wconversion} and @option{-Wundef}. These
tools can help find bugs and unclear code, but they can also generate
-so many false alarms that that it hurts readability to silence them
-with unnecessary casts, wrappers, and other complications. For
-example, please don't insert casts to @code{void} or calls to
-do-nothing functions merely to pacify a lint checker.
+so many false alarms that it hurts readability to silence them with
+unnecessary casts, wrappers, and other complications. For example,
+please don't insert casts to @code{void} or calls to do-nothing
+functions merely to pacify a lint checker.
Declarations of external functions and functions to appear later in the
source file should all go in one place near the beginning of the file
@@ -2827,6 +2854,7 @@ GNU programs that have it, but there is no need to do this in new GNU
programs. @code{doschk} also reports file names longer than 14
characters.
+
@node System Portability
@section Portability between System Types
@cindex portability, between system types
@@ -2908,9 +2936,9 @@ printf ("diff = %ld\n", (long) (pointer2 - pointer1));
@end example
1989 Standard C requires this to work, and we know of only one
-counterexample: 64-bit programs on Microsoft Windows. We will
-leave it to those who want to port GNU programs to that environment
-to figure out how to do it.
+counterexample: 64-bit programs on Microsoft Windows. We will leave
+it to those who want to port GNU programs to that environment to
+figure out how to do it.
Predefined file-size types like @code{off_t} are an exception: they are
longer than @code{long} on many platforms, so code like the above won't
@@ -2941,51 +2969,6 @@ while ((c = getchar ()) != EOF)
@}
@end example
-It used to be ok to not worry about the difference between pointers
-and integers when passing arguments to functions. However, on most
-modern 64-bit machines pointers are wider than @code{int}.
-Conversely, integer types like @code{long long int} and @code{off_t}
-are wider than pointers on most modern 32-bit machines. Hence it's
-often better nowadays to use prototypes to define functions whose
-argument types are not trivial.
-
-In particular, if functions accept varying argument counts or types
-they should be declared using prototypes containing @samp{...} and
-defined using @file{stdarg.h}. For an example of this, please see the
-@uref{http://www.gnu.org/software/gnulib/, Gnulib} error module, which
-declares and defines the following function:
-
-@example
-/* Print a message with `fprintf (stderr, FORMAT, ...)';
- if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
- If STATUS is nonzero, terminate the program with `exit (STATUS)'. */
-
-void error (int status, int errnum, const char *format, ...);
-@end example
-
-A simple way to use the Gnulib error module is to obtain the two
-source files @file{error.c} and @file{error.h} from the Gnulib library
-source code repository at
-@uref{http://git.savannah.gnu.org/@/gitweb/@/?p=gnulib.git}.
-Here's a sample use:
-
-@example
-#include "error.h"
-#include <errno.h>
-#include <stdio.h>
-
-char *program_name = "myprogram";
-
-FILE *
-xfopen (char const *name)
-@{
- FILE *fp = fopen (name, "r");
- if (! fp)
- error (1, errno, "cannot read %s", name);
- return fp;
-@}
-@end example
-
@cindex casting pointers to integers
Avoid casting pointers to integers if you can. Such casts greatly
reduce portability, and in most programs they are easy to avoid. In the
@@ -2996,133 +2979,75 @@ sizes. You will also need to make provision for systems in which the
normal range of addresses you can get from @code{malloc} starts far away
from zero.
+
@node System Functions
@section Calling System Functions
+
+@cindex C library functions, and portability
+@cindex POSIX functions, and portability
@cindex library functions, and portability
@cindex portability, and library functions
-C implementations differ substantially. Standard C reduces but does
-not eliminate the incompatibilities; meanwhile, many GNU packages still
-support pre-standard compilers because this is not hard to do. This
-chapter gives recommendations for how to use the more-or-less standard C
-library functions to avoid unnecessary loss of portability.
-
-@itemize @bullet
-@item
-Don't use the return value of @code{sprintf}. It returns the number of
-characters written on some systems, but not on all systems.
-
-@item
-Be aware that @code{vfprintf} is not always available.
-
-@item
-@code{main} should be declared to return type @code{int}. It should
-terminate either by calling @code{exit} or by returning the integer
-status code; make sure it cannot ever return an undefined value.
-
-@cindex declaration for system functions
-@item
-Don't declare system functions explicitly.
-
-Almost any declaration for a system function is wrong on some system.
-To minimize conflicts, leave it to the system header files to declare
-system functions. If the headers don't declare a function, let it
-remain undeclared.
-
-While it may seem unclean to use a function without declaring it, in
-practice this works fine for most system library functions on the
-systems where this really happens; thus, the disadvantage is only
-theoretical. By contrast, actual declarations have frequently caused
-actual conflicts.
-
-@item
-If you must declare a system function, don't specify the argument types.
-Use an old-style declaration, not a Standard C prototype. The more you
-specify about the function, the more likely a conflict.
-
-@item
-In particular, don't unconditionally declare @code{malloc} or
-@code{realloc}.
-
-Most GNU programs use those functions just once, in functions
-conventionally named @code{xmalloc} and @code{xrealloc}. These
-functions call @code{malloc} and @code{realloc}, respectively, and
-check the results.
-
-Because @code{xmalloc} and @code{xrealloc} are defined in your program,
-you can declare them in other files without any risk of type conflict.
-
-On most systems, @code{int} is the same length as a pointer; thus, the
-calls to @code{malloc} and @code{realloc} work fine. For the few
-exceptional systems (mostly 64-bit machines), you can use
-@strong{conditionalized} declarations of @code{malloc} and
-@code{realloc}---or put these declarations in configuration files
-specific to those systems.
-
-@cindex string library functions
-@item
-The string functions require special treatment. Some Unix systems have
-a header file @file{string.h}; others have @file{strings.h}. Neither
-file name is portable. There are two things you can do: use Autoconf to
-figure out which file to include, or don't include either file.
-
-@item
-If you don't include either strings file, you can't get declarations for
-the string functions from the header file in the usual way.
-
-That causes less of a problem than you might think. The newer standard
-string functions should be avoided anyway because many systems still
-don't support them. The string functions you can use are these:
-
-@example
-strcpy strncpy strcat strncat
-strlen strcmp strncmp
-strchr strrchr
-@end example
+Historically, C implementations differed substantially, and many
+systems lacked a full implementation of ANSI/ISO C89. Nowadays,
+however, very few systems lack a C89 compiler and GNU C supports
+almost all of C99. Similarly, most systems implement POSIX.1-1993
+libraries and tools, and many have POSIX.1-2001.
+
+Hence, there is little reason to support old C or non-POSIX systems,
+and you may want to take advantage of C99 and POSIX-1.2001 to write
+clearer, more portable, or faster code. You should use standard
+interfaces where possible; but if GNU extensions make your program
+more maintainable, powerful, or otherwise better, don't hesitate to
+use them. In any case, don't make your own declaration of system
+functions; that's a recipe for conflict.
+
+Despite the standards, nearly every library function has some sort of
+portability issue on some system or another. Here are some examples:
+
+@table @code
+@item open
+Names with trailing @code{/}'s are mishandled on many platforms.
+
+@item printf
+@code{long double} may be unimplemented; floating values Infinity and
+NaN are often mishandled; output for large precisions may be
+incorrect.
+
+@item readlink
+May return @code{int} instead of @code{ssize_t}.
+
+@item scanf
+On Windows, @code{errno} is not set on failure.
+@end table
-The copy and concatenate functions work fine without a declaration as
-long as you don't use their values. Using their values without a
-declaration fails on systems where the width of a pointer differs from
-the width of @code{int}, and perhaps in other cases. It is trivial to
-avoid using their values, so do that.
-
-The compare functions and @code{strlen} work fine without a declaration
-on most systems, possibly all the ones that GNU software runs on.
-You may find it necessary to declare them @strong{conditionally} on a
-few systems.
-
-The search functions must be declared to return @code{char *}. Luckily,
-there is no variation in the data type they return. But there is
-variation in their names. Some systems give these functions the names
-@code{index} and @code{rindex}; other systems use the names
-@code{strchr} and @code{strrchr}. Some systems support both pairs of
-names, but neither pair works on all systems.
-
-You should pick a single pair of names and use it throughout your
-program. (Nowadays, it is better to choose @code{strchr} and
-@code{strrchr} for new programs, since those are the standard
-names.) Declare both of those names as functions returning @code{char
-*}. On systems which don't support those names, define them as macros
-in terms of the other pair. For example, here is what to put at the
-beginning of your file (or in a header) if you want to use the names
-@code{strchr} and @code{strrchr} throughout:
+@cindex Gnulib
+@uref{http://www.gnu.org/software/gnulib/, Gnulib} is a big help in
+this regard. Gnulib provides implementations of standard interfaces
+on many of the systems that lack them, including portable
+implementations of enhanced GNU interfaces, thereby making their use
+portable, and of POSIX-1.2008 interfaces, some of which are missing
+even on up-to-date GNU systems.
+
+@findex xmalloc, in Gnulib
+@findex error messages, in Gnulib
+@findex data structures, in Gnulib
+Gnulib also provides many useful non-standard interfaces; for example,
+C implementations of standard data structures (hash tables, binary
+trees), error-checking type-safe wrappers for memory allocation
+functions (@code{xmalloc}, @code{xrealloc}), and output of error
+messages.
+
+Gnulib integrates with GNU Autoconf and Automake to remove much of the
+burden of writing portable code from the programmer: Gnulib makes your
+configure script automatically determine what features are missing and
+use the Gnulib code to supply the missing pieces.
+
+The Gnulib and Autoconf manuals have extensive sections on
+portability: @ref{Top,, Introduction, gnulib, Gnulib} and
+@pxref{Portable C and C++,,, autoconf, Autoconf}. Please consult them
+for many more details.
-@example
-#ifndef HAVE_STRCHR
-#define strchr index
-#endif
-#ifndef HAVE_STRRCHR
-#define strrchr rindex
-#endif
-
-char *strchr ();
-char *strrchr ();
-@end example
-@end itemize
-
-Here we assume that @code{HAVE_STRCHR} and @code{HAVE_STRRCHR} are
-macros defined in systems where the corresponding functions exist.
-One way to get them properly defined is to use Autoconf.
@node Internationalization
@section Internationalization
@@ -3139,12 +3064,12 @@ Using GNU gettext involves putting a call to the @code{gettext} macro
around each string that might need translation---like this:
@example
-printf (gettext ("Processing file `%s'..."));
+printf (gettext ("Processing file '%s'..."), file);
@end example
@noindent
This permits GNU gettext to replace the string @code{"Processing file
-`%s'..."} with a translated version.
+'%s'..."} with a translated version.
Once a program uses gettext, please make a point of writing calls to
@code{gettext} when you add new strings that call for translation.
@@ -3262,11 +3187,12 @@ contexts, unless there is good reason to do something else because of
the application domain. For example, if source code deals with the
French Revolutionary calendar, it is OK if its literal strings contain
accented characters in month names like ``Flor@'eal''. Also, it is OK
-to use non-ASCII characters to represent proper names of contributors in
-change logs (@pxref{Change Logs}).
+(but not required) to use non-ASCII characters to represent proper
+names of contributors in change logs (@pxref{Change Logs}).
-If you need to use non-ASCII characters, you should normally stick with
-one encoding, as one cannot in general mix encodings reliably.
+If you need to use non-ASCII characters, you should normally stick
+with one encoding, certainly within a single file. UTF-8 is likely to
+be the best choice.
@node Quote Characters
@@ -3274,35 +3200,50 @@ one encoding, as one cannot in general mix encodings reliably.
@cindex quote characters
@cindex locale-specific quote characters
@cindex left quote
+@cindex right quote
+@cindex opening quote
+@cindex single quote
+@cindex double quote
@cindex grave accent
+@set txicodequoteundirected
+@set txicodequotebacktick
+
+In the C locale, the output of GNU programs should stick to plain
+ASCII for quotation characters in messages to users: preferably 0x22
+(@samp{"}) or 0x27 (@samp{'}) for both opening and closing quotes.
+Although GNU programs traditionally used 0x60 (@samp{`}) for opening
+and 0x27 (@samp{'}) for closing quotes, nowadays quotes @samp{`like
+this'} are typically rendered asymmetrically, so quoting @samp{"like
+this"} or @samp{'like this'} typically looks better.
-In the C locale, GNU programs should stick to plain ASCII for quotation
-characters in messages to users: preferably 0x60 (@samp{`}) for left
-quotes and 0x27 (@samp{'}) for right quotes. It is ok, but not
-required, to use locale-specific quotes in other locales.
+It is ok, but not required, for GNU programs to generate
+locale-specific quotes in non-C locales. For example:
-The @uref{http://www.gnu.org/software/gnulib/, Gnulib} @code{quote} and
-@code{quotearg} modules provide a reasonably straightforward way to
-support locale-specific quote characters, as well as taking care of
-other issues, such as quoting a filename that itself contains a quote
-character. See the Gnulib documentation for usage details.
+@example
+printf (gettext ("Processing file '%s'..."), file);
+@end example
-In any case, the documentation for your program should clearly specify
-how it does quoting, if different than the preferred method of @samp{`}
-and @samp{'}. This is especially important if the output of your
-program is ever likely to be parsed by another program.
+@noindent
+Here, a French translation might cause @code{gettext} to return the
+string @code{"Traitement de fichier
+@guilsinglleft{}@tie{}%s@tie{}@guilsinglright{}..."}, yielding quotes
+more appropriate for a French locale.
-Quotation characters are a difficult area in the computing world at
-this time: there are no true left or right quote characters in Latin1;
-the @samp{`} character we use was standardized there as a grave
-accent. Moreover, Latin1 is still not universally usable.
+Sometimes a program may need to use opening and closing quotes
+directly. By convention, @code{gettext} translates the string
+@samp{"`"} to the opening quote and the string @samp{"'"} to the
+closing quote, and a program can use these translations. Generally,
+though, it is better to translate quote characters in the context of
+longer strings.
-Unicode contains the unambiguous quote characters required, and its
-common encoding UTF-8 is upward compatible with Latin1. However,
-Unicode and UTF-8 are not universally well-supported, either.
+If the output of your program is ever likely to be parsed by another
+program, it is good to provide an option that makes this parsing
+reliable. For example, you could escape special characters using
+conventions from the C language or the Bourne shell. See for example
+the option @option{--quoting-style} of GNU @code{ls}.
-This may change over the next few years, and then we will revisit
-this.
+@clear txicodequoteundirected
+@clear txicodequotebacktick
@node Mmap
@@ -3318,10 +3259,11 @@ doing the job in another way using @code{read} and @code{write}.
The reason this precaution is needed is that the GNU kernel (the HURD)
provides a user-extensible file system, in which there can be many
-different kinds of ``ordinary files.'' Many of them support
+different kinds of ``ordinary files''. Many of them support
@code{mmap}, but some do not. It is important to make programs handle
all these kinds of files.
+
@node Documentation
@chapter Documenting Programs
@cindex documentation
@@ -3674,7 +3616,7 @@ Break long lists of function names by closing continued lines with
@example
* keyboard.c (menu_bar_items, tool_bar_items)
-(Fexecute_extended_command): Deal with `keymap' property.
+(Fexecute_extended_command): Deal with 'keymap' property.
@end example
When you install someone else's changes, put the contributor's name in
@@ -3736,38 +3678,58 @@ make the records of authorship more accurate.
@cindex conditional changes, and change logs
@cindex change logs, conditional changes
-C programs often contain compile-time @code{#if} conditionals. Many
-changes are conditional; sometimes you add a new definition which is
-entirely contained in a conditional. It is very useful to indicate in
-the change log the conditions for which the change applies.
+Source files can often contain code that is conditional to build-time
+or static conditions. For example, C programs can contain
+compile-time @code{#if} conditionals; programs implemented in
+interpreted languages can contain module imports of function
+definitions that are only performed for certain versions of the
+interpreter; and Automake @file{Makefile.am} files can contain
+variable definitions or target declarations that are only to be
+considered if a configure-time Automake conditional is true.
-Our convention for indicating conditional changes is to use square
-brackets around the name of the condition.
+Many changes are conditional as well: sometimes you add a new variable,
+or function, or even a new program or library, which is entirely
+dependent on a build-time condition. It is useful to indicate
+in the change log the conditions for which a change applies.
-Here is a simple example, describing a change which is conditional but
-does not have a function or entity name associated with it:
+Our convention for indicating conditional changes is to use
+@emph{square brackets around the name of the condition}.
+
+Conditional changes can happen in numerous scenarios and with many
+variations, so here are some examples to help clarify. This first
+example describes changes in C, Perl, and Python files which are
+conditional but do not have an associated function or entity name:
@example
-* xterm.c [SOLARIS2]: Include string.h.
+* xterm.c [SOLARIS2]: Include <string.h>.
+* FilePath.pm [$^O eq 'VMS']: Import the VMS::Feature module.
+* framework.py [sys.version_info < (2, 6)]: Make "with" statement
+ available by importing it from __future__,
+ to support also python 2.5.
@end example
-Here is an entry describing a new definition which is entirely
-conditional. This new definition for the macro @code{FRAME_WINDOW_P} is
-used only when @code{HAVE_X_WINDOWS} is defined:
+Our other examples will for simplicity be limited to C, as the minor
+changes necessary to adapt them to other languages should be
+self-evident.
+
+Next, here is an entry describing a new definition which is entirely
+conditional: the C macro @code{FRAME_WINDOW_P} is defined (and used)
+only when the macro @code{HAVE_X_WINDOWS} is defined:
@example
* frame.h [HAVE_X_WINDOWS] (FRAME_WINDOW_P): Macro defined.
@end example
-Here is an entry for a change within the function @code{init_display},
-whose definition as a whole is unconditional, but the changes themselves
-are contained in a @samp{#ifdef HAVE_LIBNCURSES} conditional:
+Next, an entry for a change within the function @code{init_display},
+whose definition as a whole is unconditional, but the changes
+themselves are contained in a @samp{#ifdef HAVE_LIBNCURSES}
+conditional:
@example
* dispnew.c (init_display) [HAVE_LIBNCURSES]: If X, call tgetent.
@end example
-Here is an entry for a change that takes affect only when
+Finally, here is an entry for a change that takes effect only when
a certain macro is @emph{not} defined:
@example
@@ -4116,11 +4078,13 @@ copying conditions. The GNU GPL, if used, should be in a file called
@file{COPYING}. If the GNU LGPL is used, it should be in a file called
@file{COPYING.LESSER}.
-Naturally, all the source files must be in the distribution. It is okay
-to include non-source files in the distribution, provided they are
-up-to-date and machine-independent, so that building the distribution
-normally will never modify them. We commonly include non-source files
-produced by Bison, @code{lex}, @TeX{}, and @code{makeinfo}; this helps avoid
+Naturally, all the source files must be in the distribution. It is
+okay to include non-source files in the distribution along with the
+source files they are generated from, provided they are up-to-date
+with the source they are made from, and machine-independent, so that
+normal building of the distribution will never modify them. We
+commonly include non-source files produced by Autoconf, Automake,
+Bison, @code{lex}, @TeX{}, and @code{makeinfo}; this helps avoid
unnecessary dependencies between our distributions, so that users can
install whichever packages they want to install.
@@ -4252,7 +4216,7 @@ things in the GNU system even if they are free---they are outside the
scope of what a software distribution needs to include.
Referring to a web site that describes or recommends a non-free
-program is promoting that program, so please do not make links (or
+program is promoting that program, so please do not make links to (or
mention by name) web sites that contain such material. This policy is
relevant particularly for the web pages for a GNU package.
diff --git a/doc/version.texi b/doc/version.texi
new file mode 100644
index 00000000..b9e94c97
--- /dev/null
+++ b/doc/version.texi
@@ -0,0 +1,4 @@
+@set UPDATED 24 April 2012
+@set UPDATED-MONTH April 2012
+@set EDITION 2.69
+@set VERSION 2.69
diff --git a/lib/Autom4te/C4che.pm b/lib/Autom4te/C4che.pm
index b8c4a967..b91a5e8a 100644
--- a/lib/Autom4te/C4che.pm
+++ b/lib/Autom4te/C4che.pm
@@ -1,5 +1,5 @@
# autoconf -- create `configure' using m4 macros
-# Copyright (C) 2003, 2006, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2006, 2009-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/lib/Autom4te/ChannelDefs.pm b/lib/Autom4te/ChannelDefs.pm
index c66d3224..0d5b5c49 100644
--- a/lib/Autom4te/ChannelDefs.pm
+++ b/lib/Autom4te/ChannelDefs.pm
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2003, 2006, 2008-2011 Free Software Foundation,
+# Copyright (C) 2002-2003, 2006, 2008-2012 Free Software Foundation,
# Inc.
# This program is free software: you can redistribute it and/or modify
@@ -47,7 +47,7 @@ shorthand function to output on specific channels.
=cut
-use 5.005;
+use 5.006;
use strict;
use Exporter;
diff --git a/lib/Autom4te/Channels.pm b/lib/Autom4te/Channels.pm
index 1f668b19..1f0fc1ea 100644
--- a/lib/Autom4te/Channels.pm
+++ b/lib/Autom4te/Channels.pm
@@ -1,5 +1,4 @@
-# Copyright (C) 2002, 2004, 2006, 2008, 2010 Free Software Foundation,
-# Inc.
+# Copyright (C) 2002-2012 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -36,7 +35,7 @@ Autom4te::Channels - support functions for error and warning management
register_channel 'system', type => 'error', exit_code => 4;
# Output a message on channel 'unused'.
- msg 'unused', "$file:$line", "unused variable `$var'";
+ msg 'unused', "$file:$line", "unused variable '$var'";
# Make the 'unused' channel silent.
setup_channel 'unused', silent => 1;
@@ -67,7 +66,7 @@ etc.) that can also be overridden on a per-message basis.
=cut
-use 5.005;
+use 5.006;
use strict;
use Exporter;
use Carp;
@@ -341,7 +340,7 @@ sub _merge_options (\%%)
}
else
{
- confess "unknown option `$_'";
+ confess "unknown option '$_'";
}
}
if ($hash->{'ordered'})
@@ -586,12 +585,12 @@ associated to the message.
For instance to complain about some unused variable C<mumble>
declared at line 10 in F<foo.c>, one could do:
- msg 'unused', 'foo.c:10', "unused variable `mumble'";
+ msg 'unused', 'foo.c:10', "unused variable 'mumble'";
If channel C<unused> is not silent (and if this message is not a duplicate),
the following would be output:
- foo.c:10: unused variable `mumble'
+ foo.c:10: unused variable 'mumble'
C<$location> can also be an instance of C<Autom4te::Location>. In this
case, the stack of contexts will be displayed in addition.
diff --git a/lib/Autom4te/Configure_ac.pm b/lib/Autom4te/Configure_ac.pm
index a81fe786..924b23c5 100644
--- a/lib/Autom4te/Configure_ac.pm
+++ b/lib/Autom4te/Configure_ac.pm
@@ -1,5 +1,4 @@
-# Copyright (C) 2003, 2005, 2006, 2009, 2010 Free Software Foundation,
-# Inc.
+# Copyright (C) 2003-2012 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -21,6 +20,7 @@
package Autom4te::Configure_ac;
+use 5.006;
use strict;
use Exporter;
use Autom4te::Channels;
@@ -80,8 +80,8 @@ sub find_configure_ac (;@)
if (-f $configure_in)
{
msg ('unsupported',
- "`$configure_ac' and `$configure_in' both present.\n"
- . "proceeding with `$configure_ac'");
+ "'$configure_ac' and '$configure_in' both present.\n"
+ . "proceeding with '$configure_ac'");
}
return $configure_ac
}
@@ -102,7 +102,7 @@ Like C<find_configure_ac>, but fail if neither is present.
sub require_configure_ac (;$)
{
my $res = find_configure_ac (@_);
- fatal "`configure.ac' or `configure.in' is required"
+ fatal "'configure.ac' or 'configure.in' is required"
unless -f $res;
return $res
}
diff --git a/lib/Autom4te/FileUtils.pm b/lib/Autom4te/FileUtils.pm
index 150db338..30bbdb92 100644
--- a/lib/Autom4te/FileUtils.pm
+++ b/lib/Autom4te/FileUtils.pm
@@ -1,5 +1,4 @@
-# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 2003-2012 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -35,6 +34,7 @@ This perl module provides various general purpose file handling functions.
=cut
+use 5.006;
use strict;
use Exporter;
use File::stat;
@@ -63,8 +63,8 @@ Quote C<$file_name> for open.
# open_quote ($FILE_NAME)
# -----------------------
# If the string $S is a well-behaved file name, simply return it.
-# If it starts with white space, prepend `./', if it ends with
-# white space, add `\0'. Return the new string.
+# If it starts with white space, prepend './', if it ends with
+# white space, add '\0'. Return the new string.
sub open_quote($)
{
my ($s) = @_;
@@ -125,7 +125,7 @@ sub find_file ($@)
=item C<mtime ($file)>
Return the mtime of C<$file>. Missing files, or C<-> standing for
-C<STDIN> or C<STDOUT> are ``obsolete'', i.e., as old as possible.
+C<STDIN> or C<STDOUT> are "obsolete", i.e., as old as possible.
=cut
@@ -182,7 +182,7 @@ sub update_file ($$;$)
if (!$force && -f "$to" && compare ("$from", "$to") == 0)
{
# File didn't change, so don't update its mod time.
- msg 'note', "`$to' is unchanged";
+ msg 'note', "'$to' is unchanged";
unlink ($from)
or fatal "cannot remove $from: $!";
return
@@ -195,13 +195,13 @@ sub update_file ($$;$)
or fatal "cannot backup $to: $!";
move ("$from", "$to")
or fatal "cannot rename $from as $to: $!";
- msg 'note', "`$to' is updated";
+ msg 'note', "'$to' is updated";
}
else
{
move ("$from", "$to")
or fatal "cannot rename $from as $to: $!";
- msg 'note', "`$to' is created";
+ msg 'note', "'$to' is created";
}
}
@@ -400,7 +400,7 @@ sub dir_has_case_matching_file ($$)
# again and again.
if (!exists $_directory_cache{$dirname})
{
- error "failed to open directory `$dirname'"
+ error "failed to open directory '$dirname'"
unless opendir (DIR, $dirname);
$_directory_cache{$dirname} = { map { $_ => 1 } readdir (DIR) };
closedir (DIR);
diff --git a/lib/Autom4te/General.pm b/lib/Autom4te/General.pm
index 80e6efa7..ef1e9872 100644
--- a/lib/Autom4te/General.pm
+++ b/lib/Autom4te/General.pm
@@ -1,5 +1,5 @@
# autoconf -- create `configure' using m4 macros
-# Copyright (C) 2001-2004, 2006-2007, 2009-2011 Free Software
+# Copyright (C) 2001-2004, 2006-2007, 2009-2012 Free Software
# Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
@@ -19,7 +19,7 @@ package Autom4te::General;
=head1 NAME
-Autom4te::General - general support functions for Autoconf and Automake
+Autom4te::General - general support functions for Autoconf
=head1 SYNOPSIS
@@ -28,14 +28,15 @@ Autom4te::General - general support functions for Autoconf and Automake
=head1 DESCRIPTION
This perl module provides various general purpose support functions
-used in several executables of the Autoconf and Automake packages.
+used in several executables of the Autoconf package.
=cut
-use 5.005_03;
+use 5.006;
use Exporter;
use Autom4te::ChannelDefs;
use Autom4te::Channels;
+use Autom4te::Getopt ();
use File::Basename;
use File::Path ();
use File::stat;
@@ -75,7 +76,7 @@ my @export_forward_subs =
=item C<$debug>
Set this variable to 1 if debug messages should be enabled. Debug
-messages are meant for developpers only, or when tracking down an
+messages are meant for developers only, or when tracking down an
incorrect execution.
=cut
@@ -232,28 +233,19 @@ sub debug (@)
=item C<getopt (%option)>
-Wrapper around C<Getopt::Long>. In addition to the user C<option>s,
-support C<-h>/C<--help>, C<-V>/C<--version>, C<-v>/C<--verbose>,
-C<-d>/C<--debug>, C<-f>/C<--force>. Conform to the GNU Coding
-Standards for error messages. Try to work around a weird behavior
-from C<Getopt::Long> to preserve C<-> as an C<@ARGV> instead of
-rejecting it as a broken option.
+Wrapper around C<Autom4te::Getopt::parse_options>. In addition to
+the user C<option>s, support C<-h>/C<--help>, C<-V>/C<--version>,
+C<-v>/C<--verbose>, C<-d>/C<--debug>, C<-f>/C<--force>. Conform to
+the GNU Coding Standards for error messages.
=cut
# getopt (%OPTION)
# ----------------
# Handle the %OPTION, plus all the common options.
-# Work around Getopt bugs wrt `-'.
sub getopt (%)
{
my (%option) = @_;
- use Getopt::Long;
-
- # F*k. Getopt seems bogus and dies when given `-' with `bundling'.
- # If fixed some day, use this: '' => sub { push @ARGV, "-" }
- my $stdin = grep /^-$/, @ARGV;
- @ARGV = grep !/^-$/, @ARGV;
%option = ("h|help" => sub { print $help; exit 0 },
"V|version" => sub { print $version; exit 0 },
@@ -263,19 +255,7 @@ sub getopt (%)
# User options last, so that they have precedence.
%option);
- Getopt::Long::Configure ("bundling", "pass_through");
- GetOptions (%option)
- or exit 1;
-
- foreach (grep { /^-./ } @ARGV)
- {
- print STDERR "$0: unrecognized option `$_'\n";
- print STDERR "Try `$0 --help' for more information.\n";
- exit (1);
- }
-
- push @ARGV, '-'
- if $stdin;
+ Autom4te::Getopt::parse_options (%option);
setup_channel 'note', silent => !$verbose;
setup_channel 'verb', silent => !$verbose;
diff --git a/lib/Autom4te/Getopt.pm b/lib/Autom4te/Getopt.pm
new file mode 100644
index 00000000..d73c5ef8
--- /dev/null
+++ b/lib/Autom4te/Getopt.pm
@@ -0,0 +1,115 @@
+# Copyright (C) 2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+package Autom4te::Getopt;
+
+=head1 NAME
+
+Autom4te::Getopt - GCS conforming parser for command line options
+
+=head1 SYNOPSIS
+
+ use Autom4te::Getopt;
+
+=head1 DESCRIPTION
+
+Export a function C<parse_options>, performing parsing of command
+line options in conformance to the GNU Coding standards.
+
+=cut
+
+use 5.006;
+use strict;
+use warnings FATAL => 'all';
+use Exporter ();
+use Getopt::Long ();
+use Autom4te::ChannelDefs qw/fatal/;
+use Carp qw/croak confess/;
+
+use vars qw (@ISA @EXPORT);
+@ISA = qw (Exporter);
+@EXPORT= qw/getopt/;
+
+=item C<parse_options (%option)>
+
+Wrapper around C<Getopt::Long>, trying to conform to the GNU
+Coding Standards for error messages.
+
+=cut
+
+sub parse_options (%)
+{
+ my %option = @_;
+
+ Getopt::Long::Configure ("bundling", "pass_through");
+ # Unrecognized options are passed through, so GetOption can only fail
+ # due to internal errors or misuse of options specification.
+ Getopt::Long::GetOptions (%option)
+ or confess "error in options specification (likely)";
+
+ if (@ARGV && $ARGV[0] =~ /^-./)
+ {
+ my %argopts;
+ for my $k (keys %option)
+ {
+ if ($k =~ /(.*)=s$/)
+ {
+ map { $argopts{(length ($_) == 1)
+ ? "-$_" : "--$_" } = 1; } (split (/\|/, $1));
+ }
+ }
+ if ($ARGV[0] eq '--')
+ {
+ shift @ARGV;
+ }
+ elsif (exists $argopts{$ARGV[0]})
+ {
+ fatal ("option '$ARGV[0]' requires an argument\n"
+ . "Try '$0 --help' for more information.");
+ }
+ else
+ {
+ fatal ("unrecognized option '$ARGV[0]'.\n"
+ . "Try '$0 --help' for more information.");
+ }
+ }
+}
+
+=back
+
+=head1 SEE ALSO
+
+L<Getopt::Long>
+
+=cut
+
+1; # for require
+
+### Setup "GNU" style for perl-mode and cperl-mode.
+## Local Variables:
+## perl-indent-level: 2
+## perl-continued-statement-offset: 2
+## perl-continued-brace-offset: 0
+## perl-brace-offset: 0
+## perl-brace-imaginary-offset: 0
+## perl-label-offset: -2
+## cperl-indent-level: 2
+## cperl-brace-offset: 0
+## cperl-continued-brace-offset: 0
+## cperl-label-offset: -2
+## cperl-extra-newline-before-brace: t
+## cperl-merge-trailing-else: nil
+## cperl-continued-statement-offset: 2
+## End:
diff --git a/lib/Autom4te/Makefile.am b/lib/Autom4te/Makefile.am
index 858056c4..5d9bdac4 100644
--- a/lib/Autom4te/Makefile.am
+++ b/lib/Autom4te/Makefile.am
@@ -1,6 +1,6 @@
## Process this file with automake to create Makefile.in
-# Copyright (C) 2001, 2003, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2009-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -23,8 +23,8 @@ dist_perllib_DATA = \
Configure_ac.pm \
FileUtils.pm \
General.pm \
+ Getopt.pm \
Request.pm \
- Struct.pm \
XFile.pm
diff --git a/lib/Autom4te/Makefile.in b/lib/Autom4te/Makefile.in
new file mode 100644
index 00000000..280af357
--- /dev/null
+++ b/lib/Autom4te/Makefile.in
@@ -0,0 +1,454 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Copyright (C) 2001, 2003, 2009-2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = lib/Autom4te
+DIST_COMMON = $(dist_perllib_DATA) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
+ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/make-case.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(perllibdir)"
+DATA = $(dist_perllib_DATA)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EMACS = @EMACS@
+EMACSLOADPATH = @EMACSLOADPATH@
+EXPR = @EXPR@
+GREP = @GREP@
+HELP2MAN = @HELP2MAN@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+M4_DEBUGFILE = @M4_DEBUGFILE@
+M4_GNU = @M4_GNU@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PERL_FLOCK = @PERL_FLOCK@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TEST_EMACS = @TEST_EMACS@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_cv_dir_trailing_space = @ac_cv_dir_trailing_space@
+ac_cv_sh_n_works = @ac_cv_sh_n_works@
+ac_cv_unsupported_fs_chars = @ac_cv_unsupported_fs_chars@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+lispdir = @lispdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+perllibdir = $(pkgdatadir)/Autom4te
+dist_perllib_DATA = \
+ C4che.pm \
+ ChannelDefs.pm \
+ Channels.pm \
+ Configure_ac.pm \
+ FileUtils.pm \
+ General.pm \
+ Getopt.pm \
+ Request.pm \
+ XFile.pm
+
+TAGS_FILES = $(dist_perllib_DATA)
+ETAGS_ARGS = --lang=perl
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Autom4te/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu lib/Autom4te/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-dist_perllibDATA: $(dist_perllib_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(perllibdir)" || $(MKDIR_P) "$(DESTDIR)$(perllibdir)"
+ @list='$(dist_perllib_DATA)'; test -n "$(perllibdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(perllibdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(perllibdir)" || exit $$?; \
+ done
+
+uninstall-dist_perllibDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dist_perllib_DATA)'; test -n "$(perllibdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(perllibdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(perllibdir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(perllibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-dist_perllibDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-dist_perllibDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ ctags distclean distclean-generic distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dist_perllibDATA \
+ install-dvi install-dvi-am install-exec install-exec-am \
+ install-html install-html-am install-info install-info-am \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
+ uninstall uninstall-am uninstall-dist_perllibDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/Autom4te/Request.pm b/lib/Autom4te/Request.pm
index 958ae1b9..c3cd0505 100644
--- a/lib/Autom4te/Request.pm
+++ b/lib/Autom4te/Request.pm
@@ -1,5 +1,5 @@
# autoconf -- create `configure' using m4 macros
-# Copyright (C) 2001-2003, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2003, 2009-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -32,7 +32,7 @@ used in several executables of the Autoconf and Automake packages.
=cut
use strict;
-use Autom4te::Struct;
+use Class::Struct;
use Carp;
use Data::Dumper;
diff --git a/lib/Autom4te/XFile.pm b/lib/Autom4te/XFile.pm
index 6800c485..28d5bc66 100644
--- a/lib/Autom4te/XFile.pm
+++ b/lib/Autom4te/XFile.pm
@@ -1,5 +1,4 @@
-# Copyright (C) 2001, 2003, 2004, 2006, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 2001-2012 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -70,7 +69,7 @@ and C<getlines> methods to translate C<\r\n> to C<\n>.
=cut
-require 5.000;
+use 5.006;
use strict;
use vars qw($VERSION @EXPORT @EXPORT_OK $AUTOLOAD @ISA);
use Carp;
@@ -134,7 +133,7 @@ sub open
my ($file) = @_;
# WARNING: Gross hack: $FH is a typeglob: use its hash slot to store
- # the `name' of the file we are opening. See the example with
+ # the 'name' of the file we are opening. See the example with
# io_socket_timeout in IO::Socket for more, and read Graham's
# comment in IO::Handle.
${*$fh}{'autom4te_xfile_file'} = "$file";
@@ -176,8 +175,8 @@ C<\n> on input files.
=cut
-# Some Win32/perl installations fail to translate \r\n to \n on input
-# so we do that here.
+# Some native Windows/perl installations fail to translate \r\n to \n on
+# input so we do that here.
sub getline
{
local $_ = $_[0]->SUPER::getline;
@@ -226,14 +225,14 @@ sub lock
my ($fh, $mode) = @_;
# Cannot use @_ here.
- # Unless explicitly configured otherwise, Perl implements its `flock' with the
+ # Unless explicitly configured otherwise, Perl implements its 'flock' with the
# first of flock(2), fcntl(2), or lockf(3) that works. These can fail on
# NFS-backed files, with ENOLCK (GNU/Linux) or EOPNOTSUPP (FreeBSD); we
# usually ignore these errors. If $ENV{MAKEFLAGS} suggests that a parallel
- # invocation of `make' has invoked the tool we serve, report all locking
+ # invocation of 'make' has invoked the tool we serve, report all locking
# failures and abort.
#
- # On Unicos, flock(2) and fcntl(2) over NFS hang indefinitely when `lockd' is
+ # On Unicos, flock(2) and fcntl(2) over NFS hang indefinitely when 'lockd' is
# not running. NetBSD NFS clients silently grant all locks. We do not
# attempt to defend against these dangers.
#
@@ -242,7 +241,7 @@ sub lock
{
my $make_j = (exists $ENV{'MAKEFLAGS'}
&& " -$ENV{'MAKEFLAGS'}" =~ / (-[BdeikrRsSw]*[jP]|--[jP]|---?jobs)/);
- my $note = "\nforgo `make -j' or use a file system that supports locks";
+ my $note = "\nforgo \"make -j\" or use a file system that supports locks";
my $file = $fh->name;
msg ($make_j ? 'fatal' : 'unsupported',
diff --git a/lib/Makefile.am b/lib/Makefile.am
index c7432e8d..2e2bc5fc 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -1,6 +1,6 @@
# Make Autoconf-related libraries.
-# Copyright (C) 2001-2005, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2005, 2009-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/lib/Makefile.in b/lib/Makefile.in
new file mode 100644
index 00000000..2316f2d3
--- /dev/null
+++ b/lib/Makefile.in
@@ -0,0 +1,622 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Make Autoconf-related libraries.
+
+# Copyright (C) 2001-2005, 2009-2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = lib
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
+ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/make-case.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pkgdatadir)"
+DATA = $(nodist_pkgdata_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EMACS = @EMACS@
+EMACSLOADPATH = @EMACSLOADPATH@
+EXPR = @EXPR@
+GREP = @GREP@
+HELP2MAN = @HELP2MAN@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+M4_DEBUGFILE = @M4_DEBUGFILE@
+M4_GNU = @M4_GNU@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PERL_FLOCK = @PERL_FLOCK@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TEST_EMACS = @TEST_EMACS@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_cv_dir_trailing_space = @ac_cv_dir_trailing_space@
+ac_cv_sh_n_works = @ac_cv_sh_n_works@
+ac_cv_unsupported_fs_chars = @ac_cv_unsupported_fs_chars@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+lispdir = @lispdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = Autom4te m4sugar autoconf autotest autoscan emacs
+nodist_pkgdata_DATA = autom4te.cfg
+EXTRA_DIST = autom4te.in freeze.mk
+edit = sed \
+ -e 's|@SHELL[@]|$(SHELL)|g' \
+ -e 's|@PERL[@]|$(PERL)|g' \
+ -e 's|@bindir[@]|$(bindir)|g' \
+ -e 's|@pkgdatadir[@]|$(pkgdatadir)|g' \
+ -e 's|@prefix[@]|$(prefix)|g' \
+ -e 's|@autoconf-name[@]|'`echo autoconf | sed '$(transform)'`'|g' \
+ -e 's|@autoheader-name[@]|'`echo autoheader | sed '$(transform)'`'|g' \
+ -e 's|@autom4te-name[@]|'`echo autom4te | sed '$(transform)'`'|g' \
+ -e 's|@M4[@]|$(M4)|g' \
+ -e 's|@AWK[@]|$(AWK)|g' \
+ -e 's|@VERSION[@]|$(VERSION)|g' \
+ -e 's|@PACKAGE_NAME[@]|$(PACKAGE_NAME)|g'
+
+
+# All the files below depend on Makefile so that they are rebuilt
+# when the prefix, etc. changes. Unfortunately, suffix rules
+# cannot have additional dependencies, so we have to use explicit rules.
+CLEANFILES = autom4te.cfg
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu lib/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-nodist_pkgdataDATA: $(nodist_pkgdata_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)"
+ @list='$(nodist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgdatadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgdatadir)" || exit $$?; \
+ done
+
+uninstall-nodist_pkgdataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(nodist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(pkgdatadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(pkgdatadir)" && rm -f $$files
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(DATA)
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(pkgdatadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-nodist_pkgdataDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-nodist_pkgdataDATA
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic ctags \
+ ctags-recursive distclean distclean-generic distclean-tags \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-nodist_pkgdataDATA install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
+ uninstall-nodist_pkgdataDATA
+
+autom4te.cfg: $(srcdir)/autom4te.in Makefile
+ rm -f autom4te.cfg autom4te.tmp
+ $(edit) $(srcdir)/autom4te.in >autom4te.tmp
+ chmod a-w autom4te.tmp
+ mv autom4te.tmp autom4te.cfg
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/autoconf/Makefile.am b/lib/autoconf/Makefile.am
index 6390590e..4a35a931 100644
--- a/lib/autoconf/Makefile.am
+++ b/lib/autoconf/Makefile.am
@@ -1,6 +1,6 @@
# Make Autoconf library.
-# Copyright (C) 2001-2002, 2006, 2009-2011 Free Software Foundation,
+# Copyright (C) 2001-2002, 2006, 2009-2012 Free Software Foundation,
# Inc.
# This program is free software: you can redistribute it and/or modify
diff --git a/lib/autoconf/Makefile.in b/lib/autoconf/Makefile.in
new file mode 100644
index 00000000..6ff31384
--- /dev/null
+++ b/lib/autoconf/Makefile.in
@@ -0,0 +1,606 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Make Autoconf library.
+
+# Copyright (C) 2001-2002, 2006, 2009-2012 Free Software Foundation,
+# Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Freeze M4 files.
+
+# Copyright (C) 2002, 2004, 2006-2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(dist_autoconflib_DATA) $(srcdir)/../freeze.mk \
+ $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+subdir = lib/autoconf
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
+ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/make-case.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(autoconflibdir)" \
+ "$(DESTDIR)$(autoconflibdir)"
+DATA = $(dist_autoconflib_DATA) $(nodist_autoconflib_DATA)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EMACS = @EMACS@
+EMACSLOADPATH = @EMACSLOADPATH@
+EXPR = @EXPR@
+GREP = @GREP@
+HELP2MAN = @HELP2MAN@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+M4_DEBUGFILE = @M4_DEBUGFILE@
+M4_GNU = @M4_GNU@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PERL_FLOCK = @PERL_FLOCK@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TEST_EMACS = @TEST_EMACS@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_cv_dir_trailing_space = @ac_cv_dir_trailing_space@
+ac_cv_sh_n_works = @ac_cv_sh_n_works@
+ac_cv_unsupported_fs_chars = @ac_cv_unsupported_fs_chars@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+lispdir = @lispdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+autoconflibdir = $(pkgdatadir)/autoconf
+dist_autoconflib_DATA = \
+ autoconf.m4 \
+ general.m4 status.m4 oldnames.m4 specific.m4 \
+ autoheader.m4 autoupdate.m4 autotest.m4 autoscan.m4 \
+ lang.m4 c.m4 erlang.m4 fortran.m4 \
+ functions.m4 go.m4 headers.m4 types.m4 libs.m4 programs.m4
+
+nodist_autoconflib_DATA = autoconf.m4f
+CLEANFILES = $(nodist_autoconflib_DATA)
+TAGS_FILES = $(dist_autoconflib_DATA)
+ETAGS_ARGS = $(ETAGS_FOR_AUTOCONF)
+forbidden_patterns = -e '^_*EOF' -e ' cmp '
+forbidden_patterns_files = $(dist_autoconflib_DATA)
+SUFFIXES = .m4 .m4f
+AUTOM4TE_CFG = $(top_builddir)/lib/autom4te.cfg
+
+# Do not use AUTOM4TE here, since maint.mk (my-distcheck)
+# checks if we are independent of Autoconf by defining AUTOM4TE (and
+# others) to `false'. Autoconf provides autom4te, so that doesn't
+# apply to us.
+MY_AUTOM4TE = \
+ autom4te_perllibdir='$(top_srcdir)'/lib \
+ AUTOM4TE_CFG='$(AUTOM4TE_CFG)' $(top_builddir)/bin/autom4te \
+ -B '$(top_builddir)'/lib -B '$(top_srcdir)'/lib # keep ` '
+
+
+# Factor the dependencies between all the frozen files.
+# Some day we should explain to Automake how to use autom4te to compute
+# the dependencies...
+src_libdir = $(top_srcdir)/lib
+build_libdir = $(top_builddir)/lib
+m4f_dependencies = $(top_builddir)/bin/autom4te $(AUTOM4TE_CFG)
+m4sugar_m4f_dependencies = \
+ $(m4f_dependencies) \
+ $(src_libdir)/m4sugar/m4sugar.m4 \
+ $(build_libdir)/m4sugar/version.m4
+
+m4sh_m4f_dependencies = \
+ $(m4sugar_m4f_dependencies) \
+ $(src_libdir)/m4sugar/m4sh.m4
+
+autotest_m4f_dependencies = \
+ $(m4sh_m4f_dependencies) \
+ $(src_libdir)/autotest/autotest.m4 \
+ $(src_libdir)/autotest/general.m4 \
+ $(src_libdir)/autotest/specific.m4
+
+autoconf_m4f_dependencies = \
+ $(m4sh_m4f_dependencies) \
+ $(src_libdir)/autoconf/autoscan.m4 \
+ $(src_libdir)/autoconf/general.m4 \
+ $(src_libdir)/autoconf/autoheader.m4 \
+ $(src_libdir)/autoconf/autoupdate.m4 \
+ $(src_libdir)/autoconf/autotest.m4 \
+ $(src_libdir)/autoconf/status.m4 \
+ $(src_libdir)/autoconf/oldnames.m4 \
+ $(src_libdir)/autoconf/specific.m4 \
+ $(src_libdir)/autoconf/lang.m4 \
+ $(src_libdir)/autoconf/c.m4 \
+ $(src_libdir)/autoconf/fortran.m4 \
+ $(src_libdir)/autoconf/erlang.m4 \
+ $(src_libdir)/autoconf/go.m4 \
+ $(src_libdir)/autoconf/functions.m4 \
+ $(src_libdir)/autoconf/headers.m4 \
+ $(src_libdir)/autoconf/types.m4 \
+ $(src_libdir)/autoconf/libs.m4 \
+ $(src_libdir)/autoconf/programs.m4 \
+ $(src_libdir)/autoconf/autoconf.m4
+
+ETAGS_FOR_M4 = \
+ --lang=none \
+ --regex='/\(m4_define\|define\)(\[\([^]]*\)\]/\2/'
+
+ETAGS_FOR_M4SUGAR = \
+ $(ETAGS_FOR_M4) \
+ --regex='/m4_defun(\[\([^]]*\)\]/\1/'
+
+ETAGS_FOR_AUTOCONF = \
+ $(ETAGS_FOR_M4SUGAR) \
+ --regex='/\(A[CU]_DEFUN\|AU_ALIAS\)(\[\([^]]*\)\]/\2/' \
+ --regex='/AN_\(FUNCTION\|HEADER\|IDENTIFIER\|LIBRARY\|MAKEVAR\|PROGRAM\)(\[\([^]]*\)\]/\2/'
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .m4 .m4f
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../freeze.mk $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/autoconf/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu lib/autoconf/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-dist_autoconflibDATA: $(dist_autoconflib_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(autoconflibdir)" || $(MKDIR_P) "$(DESTDIR)$(autoconflibdir)"
+ @list='$(dist_autoconflib_DATA)'; test -n "$(autoconflibdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(autoconflibdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(autoconflibdir)" || exit $$?; \
+ done
+
+uninstall-dist_autoconflibDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dist_autoconflib_DATA)'; test -n "$(autoconflibdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(autoconflibdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(autoconflibdir)" && rm -f $$files
+install-nodist_autoconflibDATA: $(nodist_autoconflib_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(autoconflibdir)" || $(MKDIR_P) "$(DESTDIR)$(autoconflibdir)"
+ @list='$(nodist_autoconflib_DATA)'; test -n "$(autoconflibdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(autoconflibdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(autoconflibdir)" || exit $$?; \
+ done
+
+uninstall-nodist_autoconflibDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(nodist_autoconflib_DATA)'; test -n "$(autoconflibdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(autoconflibdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(autoconflibdir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-local
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(autoconflibdir)" "$(DESTDIR)$(autoconflibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-dist_autoconflibDATA \
+ install-nodist_autoconflibDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-dist_autoconflibDATA \
+ uninstall-nodist_autoconflibDATA
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am check-local clean \
+ clean-generic ctags distclean distclean-generic distclean-tags \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-data install-data-am \
+ install-dist_autoconflibDATA install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man \
+ install-nodist_autoconflibDATA install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-dist_autoconflibDATA \
+ uninstall-nodist_autoconflibDATA
+
+
+check-local: check-forbidden-patterns
+
+autoconf.m4f: $(autoconf_m4f_dependencies)
+$(AUTOM4TE_CFG): $(top_srcdir)/lib/autom4te.in
+ cd $(top_builddir)/lib && $(MAKE) $(AM_MAKEFLAGS) autom4te.cfg
+
+# When processing the file with diversion disabled, there must be no
+# output but comments and empty lines.
+# If freezing produces output, something went wrong: a bad `divert',
+# or an improper paren etc.
+# It may happen that the output does not end with an end of line, hence
+# force an end of line when reporting errors.
+.m4.m4f:
+ $(MY_AUTOM4TE) \
+ --language=$* \
+ --freeze \
+ --output=$@
+
+# For parallel builds.
+$(build_libdir)/m4sugar/version.m4:
+ cd $(build_libdir)/m4sugar && $(MAKE) $(AM_MAKEFLAGS) version.m4
+
+check-forbidden-patterns:
+ @if (cd $(srcdir) && \
+ $(GREP) $(forbidden_patterns) $(forbidden_patterns_files)) \
+ >forbidden.log; then \
+ echo "ERROR: forbidden patterns were found:" >&2; \
+ sed "s|^|$*.m4: |" <forbidden.log >&2; \
+ echo >&2; \
+ exit 1; \
+ else \
+ rm -f forbidden.log; \
+ fi
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/autoconf/autoconf.m4 b/lib/autoconf/autoconf.m4
index 897639c9..26872552 100644
--- a/lib/autoconf/autoconf.m4
+++ b/lib/autoconf/autoconf.m4
@@ -1,7 +1,7 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Driver that loads the Autoconf macro files.
#
-# Copyright (C) 1994, 1999-2002, 2006, 2008-2011 Free Software
+# Copyright (C) 1994, 1999-2002, 2006, 2008-2012 Free Software
# Foundation, Inc.
# This file is part of Autoconf. This program is free
diff --git a/lib/autoconf/autoheader.m4 b/lib/autoconf/autoheader.m4
index 9752e12b..14a91b9f 100644
--- a/lib/autoconf/autoheader.m4
+++ b/lib/autoconf/autoheader.m4
@@ -1,7 +1,7 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Interface with autoheader.
-# Copyright (C) 1992-1996, 1998-2002, 2008-2011 Free Software
+# Copyright (C) 1992-1996, 1998-2002, 2008-2012 Free Software
# Foundation, Inc.
# This file is part of Autoconf. This program is free
diff --git a/lib/autoconf/autoscan.m4 b/lib/autoconf/autoscan.m4
index 9eb141fb..bad971e2 100644
--- a/lib/autoconf/autoscan.m4
+++ b/lib/autoconf/autoscan.m4
@@ -1,7 +1,7 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Interface with autoscan.
-# Copyright (C) 2002, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2009-2012 Free Software Foundation, Inc.
# This file is part of Autoconf. This program is free
# software; you can redistribute it and/or modify it under the
diff --git a/lib/autoconf/autotest.m4 b/lib/autoconf/autotest.m4
index 7c1a404d..64e3d569 100644
--- a/lib/autoconf/autotest.m4
+++ b/lib/autoconf/autotest.m4
@@ -1,6 +1,6 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Interface with Autotest.
-# Copyright (C) 1992-1996, 1998-2005, 2009-2011 Free Software
+# Copyright (C) 1992-1996, 1998-2005, 2009-2012 Free Software
# Foundation, Inc.
# This file is part of Autoconf. This program is free
diff --git a/lib/autoconf/autoupdate.m4 b/lib/autoconf/autoupdate.m4
index 6e2ce3f2..8866d33c 100644
--- a/lib/autoconf/autoupdate.m4
+++ b/lib/autoconf/autoupdate.m4
@@ -1,7 +1,7 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Interface with autoupdate.
-# Copyright (C) 1992-1996, 1998-2001, 2003-2004, 2006, 2009-2011 Free
+# Copyright (C) 1992-1996, 1998-2001, 2003-2004, 2006, 2009-2012 Free
# Software Foundation, Inc.
# This file is part of Autoconf. This program is free
@@ -96,7 +96,7 @@ $2])])
#
# Moreover, we have to take care that calls without parameters are
# expanded to calls without parameters, not with one empty parameter.
-# This is not only an aesthetical improvement of autoupdate, it also
+# This is not only an aesthetic improvement of autoupdate, it also
# matters with poorly written macros which test for $# = 0.
#
m4_define([AU_ALIAS],
diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4
index 88785d1e..a4fa5d66 100644
--- a/lib/autoconf/c.m4
+++ b/lib/autoconf/c.m4
@@ -1,6 +1,6 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Programming languages support.
-# Copyright (C) 2001-2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 Free Software Foundation, Inc.
# This file is part of Autoconf. This program is free
# software; you can redistribute it and/or modify it under the
@@ -190,7 +190,8 @@ choke me
# errors with `-W error'.
m4_define([AC_LANG_BOOL_COMPILE_TRY(C)],
[AC_LANG_PROGRAM([$1], [static int test_array @<:@1 - 2 * !($2)@:>@;
-test_array @<:@0@:>@ = 0
+test_array @<:@0@:>@ = 0;
+return test_array @<:@0@:>@;
])])
diff --git a/lib/autoconf/erlang.m4 b/lib/autoconf/erlang.m4
index e9232052..953ffb06 100644
--- a/lib/autoconf/erlang.m4
+++ b/lib/autoconf/erlang.m4
@@ -1,6 +1,6 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Erlang/OTP language support.
-# Copyright (C) 2006, 2008-2011 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008-2012 Free Software Foundation, Inc.
# This file is part of Autoconf. This program is free
# software; you can redistribute it and/or modify it under the
diff --git a/lib/autoconf/fortran.m4 b/lib/autoconf/fortran.m4
index e630f276..38035956 100644
--- a/lib/autoconf/fortran.m4
+++ b/lib/autoconf/fortran.m4
@@ -1,6 +1,6 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Fortran languages support.
-# Copyright (C) 2001, 2003-2011 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003-2012 Free Software Foundation, Inc.
# This file is part of Autoconf. This program is free
# software; you can redistribute it and/or modify it under the
@@ -528,9 +528,16 @@ ac_[]_AC_LANG_ABBREV[]_v_output="`echo $ac_[]_AC_LANG_ABBREV[]_v_output |
# that detects unbalanced quotes in FLIBS should be implemented
# and (ugh) tested at some point.
case $ac_[]_AC_LANG_ABBREV[]_v_output in
- # If we are using xlf then replace all the commas with spaces.
+ # With xlf replace commas with spaces,
+ # and remove "-link" and closing parenthesis.
*xlfentry*)
- ac_[]_AC_LANG_ABBREV[]_v_output=`echo $ac_[]_AC_LANG_ABBREV[]_v_output | sed 's/,/ /g'` ;;
+ ac_[]_AC_LANG_ABBREV[]_v_output=`echo $ac_[]_AC_LANG_ABBREV[]_v_output |
+ sed '
+ s/,/ /g
+ s/ -link / /g
+ s/) *$//
+ '
+ ` ;;
# With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted
# $LIBS confuse us, and the libraries appear later in the output anyway).
@@ -1592,7 +1599,8 @@ do
[],
[ac_cv_fc_check_bounds=$ac_flag; break])])])])
done
-rm -f conftest$ac_exeext conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f conftest$ac_exeext conftest.err conftest.$ac_objext conftest.$ac_ext \
+ core *.core core.conftest.*
FCFLAGS=$ac_fc_check_bounds_FCFLAGS_save
])
if test "x$ac_cv_fc_check_bounds" = xunknown; then
diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4
index f506e763..6f21fd59 100644
--- a/lib/autoconf/functions.m4
+++ b/lib/autoconf/functions.m4
@@ -1,6 +1,6 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Checking for functions.
-# Copyright (C) 2000-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2012 Free Software Foundation, Inc.
# This file is part of Autoconf. This program is free
# software; you can redistribute it and/or modify it under the
diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4
index dd20e711..adfae1db 100644
--- a/lib/autoconf/general.m4
+++ b/lib/autoconf/general.m4
@@ -1,7 +1,7 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Parameterized macros.
m4_define([_AC_COPYRIGHT_YEARS], [
-Copyright (C) 1992-1996, 1998-2011 Free Software Foundation, Inc.
+Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
])
# This file is part of Autoconf. This program is free
@@ -949,8 +949,6 @@ target=$target_alias
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
- AC_MSG_WARN([if you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used])
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
@@ -1386,6 +1384,9 @@ m4_pattern_forbid([^LIBOBJS$],
[do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
# Actually reserved by M4sh.
m4_pattern_allow([^AS_FLAGS$])
+# So that the autoconf-generated scripts will always re-execute
+# themselves with $CONFIG_SHELL, if that's set in the environment.
+m4_define([_AS_FORCE_REEXEC_WITH_CONFIG_SHELL], [yes])
AS_INIT[]dnl
AS_PREPARE[]dnl
m4_divert_push([KILL])
diff --git a/lib/autoconf/go.m4 b/lib/autoconf/go.m4
index 0539d991..bf215bf6 100644
--- a/lib/autoconf/go.m4
+++ b/lib/autoconf/go.m4
@@ -1,6 +1,6 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Go language support.
-# Copyright (C) 2011 Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 Free Software Foundation, Inc.
# This file is part of Autoconf. This program is free
# software; you can redistribute it and/or modify it under the
diff --git a/lib/autoconf/headers.m4 b/lib/autoconf/headers.m4
index 4b028321..81a7fa24 100644
--- a/lib/autoconf/headers.m4
+++ b/lib/autoconf/headers.m4
@@ -1,7 +1,7 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Checking for headers.
#
-# Copyright (C) 1988, 1999-2004, 2006, 2008-2011 Free Software
+# Copyright (C) 1988, 1999-2004, 2006, 2008-2012 Free Software
# Foundation, Inc.
# This file is part of Autoconf. This program is free
diff --git a/lib/autoconf/lang.m4 b/lib/autoconf/lang.m4
index 49822501..19852b8b 100644
--- a/lib/autoconf/lang.m4
+++ b/lib/autoconf/lang.m4
@@ -1,6 +1,6 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Programming languages support.
-# Copyright (C) 2000-2002, 2004-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2002, 2004-2012 Free Software Foundation, Inc.
# This file is part of Autoconf. This program is free
# software; you can redistribute it and/or modify it under the
diff --git a/lib/autoconf/libs.m4 b/lib/autoconf/libs.m4
index cbc1472e..934c50dc 100644
--- a/lib/autoconf/libs.m4
+++ b/lib/autoconf/libs.m4
@@ -1,6 +1,6 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Checking for libraries.
-# Copyright (C) 1992-1996, 1998-2006, 2008-2011 Free Software
+# Copyright (C) 1992-1996, 1998-2006, 2008-2012 Free Software
# Foundation, Inc.
# This file is part of Autoconf. This program is free
diff --git a/lib/autoconf/oldnames.m4 b/lib/autoconf/oldnames.m4
index 6b1bd4ec..a04eec81 100644
--- a/lib/autoconf/oldnames.m4
+++ b/lib/autoconf/oldnames.m4
@@ -1,6 +1,6 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Support old macros, and provide automated updates.
-# Copyright (C) 1994, 1999-2001, 2003, 2009-2011 Free Software
+# Copyright (C) 1994, 1999-2001, 2003, 2009-2012 Free Software
# Foundation, Inc.
# This file is part of Autoconf. This program is free
diff --git a/lib/autoconf/programs.m4 b/lib/autoconf/programs.m4
index fb3d8b91..2013a7a3 100644
--- a/lib/autoconf/programs.m4
+++ b/lib/autoconf/programs.m4
@@ -1,7 +1,7 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Checking for programs.
-# Copyright (C) 1992-1996, 1998-2011 Free Software Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
# This file is part of Autoconf. This program is free
# software; you can redistribute it and/or modify it under the
diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
index 2891bfbf..7d6be579 100644
--- a/lib/autoconf/specific.m4
+++ b/lib/autoconf/specific.m4
@@ -1,7 +1,7 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Macros that test for specific, unclassified, features.
#
-# Copyright (C) 1992-1996, 1998-2011 Free Software Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
# This file is part of Autoconf. This program is free
# software; you can redistribute it and/or modify it under the
diff --git a/lib/autoconf/status.m4 b/lib/autoconf/status.m4
index 46a03414..157fe6a8 100644
--- a/lib/autoconf/status.m4
+++ b/lib/autoconf/status.m4
@@ -1,6 +1,6 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Parameterizing and creating config.status.
-# Copyright (C) 1992-1996, 1998-2011 Free Software Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
# This file is part of Autoconf. This program is free
# software; you can redistribute it and/or modify it under the
diff --git a/lib/autoconf/types.m4 b/lib/autoconf/types.m4
index 72093e99..18fc1753 100644
--- a/lib/autoconf/types.m4
+++ b/lib/autoconf/types.m4
@@ -1,7 +1,7 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Type related macros: existence, sizeof, and structure members.
#
-# Copyright (C) 2000-2002, 2004-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2002, 2004-2012 Free Software Foundation, Inc.
# This file is part of Autoconf. This program is free
# software; you can redistribute it and/or modify it under the
@@ -199,7 +199,7 @@ m4_define([_AC_CHECK_TYPE_OLD],
# `long', `short', `signed', or `unsigned' followed by characters
# that are defining types.
# Because many people have used `off_t' and `size_t' too, they are added
-# for better common-useward backward compatibility.
+# for better common-use backward compatibility.
m4_define([_AC_CHECK_TYPE_REPLACEMENT_TYPE_P],
[m4_bmatch([$1],
[^\(_Bool\|bool\|char\|double\|float\|int\|long\|short\|\(un\)?signed\|[_a-zA-Z][_a-zA-Z0-9]*_t\)[][_a-zA-Z0-9() *]*$],
diff --git a/lib/autom4te.in b/lib/autom4te.in
index f38c4ad0..a5605014 100644
--- a/lib/autom4te.in
+++ b/lib/autom4te.in
@@ -1,6 +1,6 @@
# Definition of Autom4te option sets. -*- Makefile -*-
#
-# Copyright (C) 2001-2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/lib/autoscan/Makefile.am b/lib/autoscan/Makefile.am
index 7a1ceb17..f4a2dea4 100644
--- a/lib/autoscan/Makefile.am
+++ b/lib/autoscan/Makefile.am
@@ -1,6 +1,6 @@
# Make Autoscan library.
-# Copyright (C) 2001-2002, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2009-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/lib/autoscan/Makefile.in b/lib/autoscan/Makefile.in
new file mode 100644
index 00000000..ea2abef5
--- /dev/null
+++ b/lib/autoscan/Makefile.in
@@ -0,0 +1,524 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Make Autoscan library.
+
+# Copyright (C) 2001-2002, 2009-2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Freeze M4 files.
+
+# Copyright (C) 2002, 2004, 2006-2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/../freeze.mk $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+subdir = lib/autoscan
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
+ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/make-case.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(autoscanlibdir)"
+DATA = $(nodist_autoscanlib_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EMACS = @EMACS@
+EMACSLOADPATH = @EMACSLOADPATH@
+EXPR = @EXPR@
+GREP = @GREP@
+HELP2MAN = @HELP2MAN@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+M4_DEBUGFILE = @M4_DEBUGFILE@
+M4_GNU = @M4_GNU@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PERL_FLOCK = @PERL_FLOCK@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TEST_EMACS = @TEST_EMACS@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_cv_dir_trailing_space = @ac_cv_dir_trailing_space@
+ac_cv_sh_n_works = @ac_cv_sh_n_works@
+ac_cv_unsupported_fs_chars = @ac_cv_unsupported_fs_chars@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+lispdir = @lispdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+autoscanlibdir = $(pkgdatadir)/autoscan
+EXTRA_DIST = autoscan.pre
+nodist_autoscanlib_DATA = autoscan.list
+CLEANFILES = autoscan.list
+SUFFIXES = .m4 .m4f
+AUTOM4TE_CFG = $(top_builddir)/lib/autom4te.cfg
+
+# Do not use AUTOM4TE here, since maint.mk (my-distcheck)
+# checks if we are independent of Autoconf by defining AUTOM4TE (and
+# others) to `false'. Autoconf provides autom4te, so that doesn't
+# apply to us.
+MY_AUTOM4TE = \
+ autom4te_perllibdir='$(top_srcdir)'/lib \
+ AUTOM4TE_CFG='$(AUTOM4TE_CFG)' $(top_builddir)/bin/autom4te \
+ -B '$(top_builddir)'/lib -B '$(top_srcdir)'/lib # keep ` '
+
+
+# Factor the dependencies between all the frozen files.
+# Some day we should explain to Automake how to use autom4te to compute
+# the dependencies...
+src_libdir = $(top_srcdir)/lib
+build_libdir = $(top_builddir)/lib
+m4f_dependencies = $(top_builddir)/bin/autom4te $(AUTOM4TE_CFG)
+m4sugar_m4f_dependencies = \
+ $(m4f_dependencies) \
+ $(src_libdir)/m4sugar/m4sugar.m4 \
+ $(build_libdir)/m4sugar/version.m4
+
+m4sh_m4f_dependencies = \
+ $(m4sugar_m4f_dependencies) \
+ $(src_libdir)/m4sugar/m4sh.m4
+
+autotest_m4f_dependencies = \
+ $(m4sh_m4f_dependencies) \
+ $(src_libdir)/autotest/autotest.m4 \
+ $(src_libdir)/autotest/general.m4 \
+ $(src_libdir)/autotest/specific.m4
+
+autoconf_m4f_dependencies = \
+ $(m4sh_m4f_dependencies) \
+ $(src_libdir)/autoconf/autoscan.m4 \
+ $(src_libdir)/autoconf/general.m4 \
+ $(src_libdir)/autoconf/autoheader.m4 \
+ $(src_libdir)/autoconf/autoupdate.m4 \
+ $(src_libdir)/autoconf/autotest.m4 \
+ $(src_libdir)/autoconf/status.m4 \
+ $(src_libdir)/autoconf/oldnames.m4 \
+ $(src_libdir)/autoconf/specific.m4 \
+ $(src_libdir)/autoconf/lang.m4 \
+ $(src_libdir)/autoconf/c.m4 \
+ $(src_libdir)/autoconf/fortran.m4 \
+ $(src_libdir)/autoconf/erlang.m4 \
+ $(src_libdir)/autoconf/go.m4 \
+ $(src_libdir)/autoconf/functions.m4 \
+ $(src_libdir)/autoconf/headers.m4 \
+ $(src_libdir)/autoconf/types.m4 \
+ $(src_libdir)/autoconf/libs.m4 \
+ $(src_libdir)/autoconf/programs.m4 \
+ $(src_libdir)/autoconf/autoconf.m4
+
+ETAGS_FOR_M4 = \
+ --lang=none \
+ --regex='/\(m4_define\|define\)(\[\([^]]*\)\]/\2/'
+
+ETAGS_FOR_M4SUGAR = \
+ $(ETAGS_FOR_M4) \
+ --regex='/m4_defun(\[\([^]]*\)\]/\1/'
+
+ETAGS_FOR_AUTOCONF = \
+ $(ETAGS_FOR_M4SUGAR) \
+ --regex='/\(A[CU]_DEFUN\|AU_ALIAS\)(\[\([^]]*\)\]/\2/' \
+ --regex='/AN_\(FUNCTION\|HEADER\|IDENTIFIER\|LIBRARY\|MAKEVAR\|PROGRAM\)(\[\([^]]*\)\]/\2/'
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .m4 .m4f
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../freeze.mk $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/autoscan/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu lib/autoscan/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-nodist_autoscanlibDATA: $(nodist_autoscanlib_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(autoscanlibdir)" || $(MKDIR_P) "$(DESTDIR)$(autoscanlibdir)"
+ @list='$(nodist_autoscanlib_DATA)'; test -n "$(autoscanlibdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(autoscanlibdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(autoscanlibdir)" || exit $$?; \
+ done
+
+uninstall-nodist_autoscanlibDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(nodist_autoscanlib_DATA)'; test -n "$(autoscanlibdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(autoscanlibdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(autoscanlibdir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(autoscanlibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-nodist_autoscanlibDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-nodist_autoscanlibDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-nodist_autoscanlibDATA install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am uninstall uninstall-am \
+ uninstall-nodist_autoscanlibDATA
+
+$(AUTOM4TE_CFG): $(top_srcdir)/lib/autom4te.in
+ cd $(top_builddir)/lib && $(MAKE) $(AM_MAKEFLAGS) autom4te.cfg
+
+# When processing the file with diversion disabled, there must be no
+# output but comments and empty lines.
+# If freezing produces output, something went wrong: a bad `divert',
+# or an improper paren etc.
+# It may happen that the output does not end with an end of line, hence
+# force an end of line when reporting errors.
+.m4.m4f:
+ $(MY_AUTOM4TE) \
+ --language=$* \
+ --freeze \
+ --output=$@
+
+# For parallel builds.
+$(build_libdir)/m4sugar/version.m4:
+ cd $(build_libdir)/m4sugar && $(MAKE) $(AM_MAKEFLAGS) version.m4
+
+check-forbidden-patterns:
+ @if (cd $(srcdir) && \
+ $(GREP) $(forbidden_patterns) $(forbidden_patterns_files)) \
+ >forbidden.log; then \
+ echo "ERROR: forbidden patterns were found:" >&2; \
+ sed "s|^|$*.m4: |" <forbidden.log >&2; \
+ echo >&2; \
+ exit 1; \
+ else \
+ rm -f forbidden.log; \
+ fi
+
+autoscan.list: $(srcdir)/autoscan.pre $(autoconf_m4f_dependencies) Makefile.am
+ echo '# Automatically Generated: do not edit this file' >autoscan.list
+ sed '/^[#]/!q' $(srcdir)/autoscan.pre >>autoscan.list
+ ( \
+ sed -n '/^[^#]/p' $(srcdir)/autoscan.pre; \
+ $(MY_AUTOM4TE) --cache '' -M -l autoconf -t'AN_OUTPUT:$$1: $$2 $$3' \
+ ) | LC_ALL=C sort >>autoscan.list
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/autoscan/autoscan.pre b/lib/autoscan/autoscan.pre
index 7b88a360..d7892bb8 100644
--- a/lib/autoscan/autoscan.pre
+++ b/lib/autoscan/autoscan.pre
@@ -1,5 +1,5 @@
# autoscan's mapping to Autoconf macros -*- Makefile -*-
-# Copyright (C) 1992-1994, 1996, 1999-2002, 2009-2011 Free Software
+# Copyright (C) 1992-1994, 1996, 1999-2002, 2009-2012 Free Software
# Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
diff --git a/lib/autotest/Makefile.am b/lib/autotest/Makefile.am
index 2d37cdf8..c70dafb4 100644
--- a/lib/autotest/Makefile.am
+++ b/lib/autotest/Makefile.am
@@ -1,6 +1,6 @@
# Make Autotest library.
-# Copyright (C) 2001-2002, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2009-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/lib/autotest/Makefile.in b/lib/autotest/Makefile.in
new file mode 100644
index 00000000..a31632ad
--- /dev/null
+++ b/lib/autotest/Makefile.in
@@ -0,0 +1,599 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Make Autotest library.
+
+# Copyright (C) 2001-2002, 2009-2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Freeze M4 files.
+
+# Copyright (C) 2002, 2004, 2006-2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(dist_autotestlib_DATA) $(srcdir)/../freeze.mk \
+ $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+subdir = lib/autotest
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
+ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/make-case.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(autotestlibdir)" \
+ "$(DESTDIR)$(autotestlibdir)"
+DATA = $(dist_autotestlib_DATA) $(nodist_autotestlib_DATA)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EMACS = @EMACS@
+EMACSLOADPATH = @EMACSLOADPATH@
+EXPR = @EXPR@
+GREP = @GREP@
+HELP2MAN = @HELP2MAN@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+M4_DEBUGFILE = @M4_DEBUGFILE@
+M4_GNU = @M4_GNU@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PERL_FLOCK = @PERL_FLOCK@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TEST_EMACS = @TEST_EMACS@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_cv_dir_trailing_space = @ac_cv_dir_trailing_space@
+ac_cv_sh_n_works = @ac_cv_sh_n_works@
+ac_cv_unsupported_fs_chars = @ac_cv_unsupported_fs_chars@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+lispdir = @lispdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+autotestlibdir = $(pkgdatadir)/autotest
+dist_autotestlib_DATA = autotest.m4 general.m4 specific.m4
+nodist_autotestlib_DATA = autotest.m4f
+CLEANFILES = $(nodist_autotestlib_DATA)
+TAGS_FILES = $(dist_autotestlib_DATA)
+ETAGS_ARGS = $(ETAGS_FOR_AUTOCONF)
+forbidden_patterns = -e '^_*EOF' -e ' cmp '
+forbidden_patterns_files = $(dist_autotestlib_DATA)
+SUFFIXES = .m4 .m4f
+AUTOM4TE_CFG = $(top_builddir)/lib/autom4te.cfg
+
+# Do not use AUTOM4TE here, since maint.mk (my-distcheck)
+# checks if we are independent of Autoconf by defining AUTOM4TE (and
+# others) to `false'. Autoconf provides autom4te, so that doesn't
+# apply to us.
+MY_AUTOM4TE = \
+ autom4te_perllibdir='$(top_srcdir)'/lib \
+ AUTOM4TE_CFG='$(AUTOM4TE_CFG)' $(top_builddir)/bin/autom4te \
+ -B '$(top_builddir)'/lib -B '$(top_srcdir)'/lib # keep ` '
+
+
+# Factor the dependencies between all the frozen files.
+# Some day we should explain to Automake how to use autom4te to compute
+# the dependencies...
+src_libdir = $(top_srcdir)/lib
+build_libdir = $(top_builddir)/lib
+m4f_dependencies = $(top_builddir)/bin/autom4te $(AUTOM4TE_CFG)
+m4sugar_m4f_dependencies = \
+ $(m4f_dependencies) \
+ $(src_libdir)/m4sugar/m4sugar.m4 \
+ $(build_libdir)/m4sugar/version.m4
+
+m4sh_m4f_dependencies = \
+ $(m4sugar_m4f_dependencies) \
+ $(src_libdir)/m4sugar/m4sh.m4
+
+autotest_m4f_dependencies = \
+ $(m4sh_m4f_dependencies) \
+ $(src_libdir)/autotest/autotest.m4 \
+ $(src_libdir)/autotest/general.m4 \
+ $(src_libdir)/autotest/specific.m4
+
+autoconf_m4f_dependencies = \
+ $(m4sh_m4f_dependencies) \
+ $(src_libdir)/autoconf/autoscan.m4 \
+ $(src_libdir)/autoconf/general.m4 \
+ $(src_libdir)/autoconf/autoheader.m4 \
+ $(src_libdir)/autoconf/autoupdate.m4 \
+ $(src_libdir)/autoconf/autotest.m4 \
+ $(src_libdir)/autoconf/status.m4 \
+ $(src_libdir)/autoconf/oldnames.m4 \
+ $(src_libdir)/autoconf/specific.m4 \
+ $(src_libdir)/autoconf/lang.m4 \
+ $(src_libdir)/autoconf/c.m4 \
+ $(src_libdir)/autoconf/fortran.m4 \
+ $(src_libdir)/autoconf/erlang.m4 \
+ $(src_libdir)/autoconf/go.m4 \
+ $(src_libdir)/autoconf/functions.m4 \
+ $(src_libdir)/autoconf/headers.m4 \
+ $(src_libdir)/autoconf/types.m4 \
+ $(src_libdir)/autoconf/libs.m4 \
+ $(src_libdir)/autoconf/programs.m4 \
+ $(src_libdir)/autoconf/autoconf.m4
+
+ETAGS_FOR_M4 = \
+ --lang=none \
+ --regex='/\(m4_define\|define\)(\[\([^]]*\)\]/\2/'
+
+ETAGS_FOR_M4SUGAR = \
+ $(ETAGS_FOR_M4) \
+ --regex='/m4_defun(\[\([^]]*\)\]/\1/'
+
+ETAGS_FOR_AUTOCONF = \
+ $(ETAGS_FOR_M4SUGAR) \
+ --regex='/\(A[CU]_DEFUN\|AU_ALIAS\)(\[\([^]]*\)\]/\2/' \
+ --regex='/AN_\(FUNCTION\|HEADER\|IDENTIFIER\|LIBRARY\|MAKEVAR\|PROGRAM\)(\[\([^]]*\)\]/\2/'
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .m4 .m4f
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../freeze.mk $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/autotest/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu lib/autotest/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-dist_autotestlibDATA: $(dist_autotestlib_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(autotestlibdir)" || $(MKDIR_P) "$(DESTDIR)$(autotestlibdir)"
+ @list='$(dist_autotestlib_DATA)'; test -n "$(autotestlibdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(autotestlibdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(autotestlibdir)" || exit $$?; \
+ done
+
+uninstall-dist_autotestlibDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dist_autotestlib_DATA)'; test -n "$(autotestlibdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(autotestlibdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(autotestlibdir)" && rm -f $$files
+install-nodist_autotestlibDATA: $(nodist_autotestlib_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(autotestlibdir)" || $(MKDIR_P) "$(DESTDIR)$(autotestlibdir)"
+ @list='$(nodist_autotestlib_DATA)'; test -n "$(autotestlibdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(autotestlibdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(autotestlibdir)" || exit $$?; \
+ done
+
+uninstall-nodist_autotestlibDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(nodist_autotestlib_DATA)'; test -n "$(autotestlibdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(autotestlibdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(autotestlibdir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-local
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(autotestlibdir)" "$(DESTDIR)$(autotestlibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-dist_autotestlibDATA \
+ install-nodist_autotestlibDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-dist_autotestlibDATA \
+ uninstall-nodist_autotestlibDATA
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am check-local clean \
+ clean-generic ctags distclean distclean-generic distclean-tags \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-data install-data-am \
+ install-dist_autotestlibDATA install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man \
+ install-nodist_autotestlibDATA install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-dist_autotestlibDATA \
+ uninstall-nodist_autotestlibDATA
+
+
+check-local: check-forbidden-patterns
+
+autotest.m4f: $(autotest_m4f_dependencies)
+$(AUTOM4TE_CFG): $(top_srcdir)/lib/autom4te.in
+ cd $(top_builddir)/lib && $(MAKE) $(AM_MAKEFLAGS) autom4te.cfg
+
+# When processing the file with diversion disabled, there must be no
+# output but comments and empty lines.
+# If freezing produces output, something went wrong: a bad `divert',
+# or an improper paren etc.
+# It may happen that the output does not end with an end of line, hence
+# force an end of line when reporting errors.
+.m4.m4f:
+ $(MY_AUTOM4TE) \
+ --language=$* \
+ --freeze \
+ --output=$@
+
+# For parallel builds.
+$(build_libdir)/m4sugar/version.m4:
+ cd $(build_libdir)/m4sugar && $(MAKE) $(AM_MAKEFLAGS) version.m4
+
+check-forbidden-patterns:
+ @if (cd $(srcdir) && \
+ $(GREP) $(forbidden_patterns) $(forbidden_patterns_files)) \
+ >forbidden.log; then \
+ echo "ERROR: forbidden patterns were found:" >&2; \
+ sed "s|^|$*.m4: |" <forbidden.log >&2; \
+ echo >&2; \
+ exit 1; \
+ else \
+ rm -f forbidden.log; \
+ fi
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/autotest/autotest.m4 b/lib/autotest/autotest.m4
index d88ad5bb..11a3443d 100644
--- a/lib/autotest/autotest.m4
+++ b/lib/autotest/autotest.m4
@@ -1,6 +1,6 @@
# This file is part of Autoconf. -*- Autoconf -*-
# M4 macros used in building test suites.
-# Copyright (C) 2000-2002, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2002, 2009-2012 Free Software Foundation, Inc.
# This file is part of Autoconf. This program is free
# software; you can redistribute it and/or modify it under the
diff --git a/lib/autotest/general.m4 b/lib/autotest/general.m4
index 989691d8..60c0352d 100644
--- a/lib/autotest/general.m4
+++ b/lib/autotest/general.m4
@@ -1,7 +1,7 @@
# This file is part of Autoconf. -*- Autoconf -*-
# M4 macros used in building test suites.
m4_define([_AT_COPYRIGHT_YEARS], [
-Copyright (C) 2000-2011 Free Software Foundation, Inc.
+Copyright (C) 2000-2012 Free Software Foundation, Inc.
])
# This file is part of Autoconf. This program is free
diff --git a/lib/autotest/specific.m4 b/lib/autotest/specific.m4
index 1a46f1c6..155a5dab 100644
--- a/lib/autotest/specific.m4
+++ b/lib/autotest/specific.m4
@@ -1,7 +1,7 @@
# This file is part of Autoconf. -*- Autoconf -*-
# M4 macros used in running tests using third-party testing tools.
m4_define([_AT_COPYRIGHT_YEARS],
-[Copyright (C) 2009-2011 Free Software Foundation, Inc.])
+[Copyright (C) 2009-2012 Free Software Foundation, Inc.])
# This file is part of Autoconf. This program is free
# software; you can redistribute it and/or modify it under the
diff --git a/lib/emacs/Makefile.in b/lib/emacs/Makefile.in
new file mode 100644
index 00000000..13490a30
--- /dev/null
+++ b/lib/emacs/Makefile.in
@@ -0,0 +1,420 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Make Autoconf Emacs library.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = lib/emacs
+DIST_COMMON = $(dist_lisp_LISP) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
+ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/make-case.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(lispdir)"
+dist_lispLISP_INSTALL = $(INSTALL_DATA)
+LISP = $(dist_lisp_LISP)
+am__ELFILES = autoconf-mode.el autotest-mode.el
+am__ELCFILES = $(am__ELFILES:.el=.elc)
+ELCFILES = $(LISP:.el=.elc)
+elisp_comp = $(top_srcdir)/build-aux/elisp-comp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EMACS = @EMACS@
+EMACSLOADPATH = @EMACSLOADPATH@
+EXPR = @EXPR@
+GREP = @GREP@
+HELP2MAN = @HELP2MAN@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+M4_DEBUGFILE = @M4_DEBUGFILE@
+M4_GNU = @M4_GNU@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PERL_FLOCK = @PERL_FLOCK@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TEST_EMACS = @TEST_EMACS@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_cv_dir_trailing_space = @ac_cv_dir_trailing_space@
+ac_cv_sh_n_works = @ac_cv_sh_n_works@
+ac_cv_unsupported_fs_chars = @ac_cv_unsupported_fs_chars@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+lispdir = @lispdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+dist_lisp_LISP = autoconf-mode.el autotest-mode.el
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/emacs/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu lib/emacs/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+elc-stamp: $(LISP)
+ @echo 'WARNING: Warnings can be ignored. :-)'
+ @rm -f elc-temp && touch elc-temp
+ if test "$(EMACS)" != no; then \
+ set x; \
+ list='$(LISP)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ set x "$$@" "$$d$$p"; shift; \
+ done; \
+ shift; \
+ EMACS="$(EMACS)" $(SHELL) $(elisp_comp) "$$@" || exit 1; \
+ else : ; fi
+ @mv -f elc-temp $@
+$(am__ELCFILES): elc-stamp
+ @if test "$(EMACS)" != no && test ! -f $@; then \
+ trap 'rm -rf elc-lock elc-stamp' 1 2 13 15; \
+ if mkdir elc-lock 2>/dev/null; then \
+ rm -f elc-stamp; \
+ $(MAKE) $(AM_MAKEFLAGS) elc-stamp; \
+ rmdir elc-lock; \
+ else \
+ while test -d elc-lock; do sleep 1; done; \
+ test -f elc-stamp; exit $$?; \
+ fi; \
+ else : ; fi
+install-dist_lispLISP: $(dist_lisp_LISP) $(ELCFILES)
+ @$(NORMAL_INSTALL)
+ @if test "$(EMACS)" != no && test -n "$(lispdir)"; then \
+ $(MKDIR_P) "$(DESTDIR)$(lispdir)"; \
+ list='$(dist_lisp_LISP)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ $(am__strip_dir) \
+ echo " $(dist_lispLISP_INSTALL) '$$d$$p' '$(DESTDIR)$(lispdir)/$$f'"; \
+ $(dist_lispLISP_INSTALL) "$$d$$p" "$(DESTDIR)$(lispdir)/$$f" || exit $$?; \
+ if test -f $${p}c; then \
+ echo " $(dist_lispLISP_INSTALL) '$${p}c' '$(DESTDIR)$(lispdir)/$${f}c'"; \
+ $(dist_lispLISP_INSTALL) "$${p}c" "$(DESTDIR)$(lispdir)/$${f}c" || exit $$?; \
+ else : ; fi; \
+ done; \
+ else : ; fi
+
+uninstall-dist_lispLISP:
+ @$(NORMAL_UNINSTALL)
+ @test "$(EMACS)" != no && test -n "$(lispdir)" || exit 0; \
+ list='$(dist_lisp_LISP)'; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ filesc=`echo "$$files" | sed 's|$$|c|'`; \
+ echo " ( cd '$(DESTDIR)$(lispdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(lispdir)" && rm -f $$files || exit $$?; \
+ echo " ( cd '$(DESTDIR)$(lispdir)' && rm -f" $$filesc ")"; \
+ cd "$(DESTDIR)$(lispdir)" && rm -f $$filesc
+
+clean-lisp:
+ -rm -f elc-stamp $(ELCFILES)
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LISP) $(ELCFILES)
+installdirs:
+ for dir in "$(DESTDIR)$(lispdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-lisp mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-dist_lispLISP
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-dist_lispLISP
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-lisp \
+ distclean distclean-generic distdir dvi dvi-am html html-am \
+ info info-am install install-am install-data install-data-am \
+ install-dist_lispLISP install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am uninstall uninstall-am uninstall-dist_lispLISP
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/emacs/autoconf-mode.el b/lib/emacs/autoconf-mode.el
index 287e9c7a..161ea82a 100644
--- a/lib/emacs/autoconf-mode.el
+++ b/lib/emacs/autoconf-mode.el
@@ -6,7 +6,7 @@
;; This file is part of Autoconf
-;; Copyright (C) 2001, 2006, 2009-2011 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2006, 2009-2012 Free Software Foundation, Inc.
;;
;; This program is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
diff --git a/lib/emacs/autotest-mode.el b/lib/emacs/autotest-mode.el
index aa7e74fa..6cb304e2 100644
--- a/lib/emacs/autotest-mode.el
+++ b/lib/emacs/autotest-mode.el
@@ -5,7 +5,7 @@
;; This file is part of Autoconf
-;; Copyright (C) 2001, 2009-2011 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2009-2012 Free Software Foundation, Inc.
;;
;; This program is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
diff --git a/lib/freeze.mk b/lib/freeze.mk
index bf7de4db..492342c7 100644
--- a/lib/freeze.mk
+++ b/lib/freeze.mk
@@ -1,6 +1,6 @@
# Freeze M4 files.
-# Copyright (C) 2002, 2004, 2006-2011 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2004, 2006-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/lib/m4sugar/Makefile.am b/lib/m4sugar/Makefile.am
index d18d7714..23824a3d 100644
--- a/lib/m4sugar/Makefile.am
+++ b/lib/m4sugar/Makefile.am
@@ -1,6 +1,6 @@
# Make Autoconf library for M4sugar.
-# Copyright (C) 2001-2002, 2006-2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2006-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/lib/m4sugar/Makefile.in b/lib/m4sugar/Makefile.in
new file mode 100644
index 00000000..c026628c
--- /dev/null
+++ b/lib/m4sugar/Makefile.in
@@ -0,0 +1,622 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Make Autoconf library for M4sugar.
+
+# Copyright (C) 2001-2002, 2006-2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Freeze M4 files.
+
+# Copyright (C) 2002, 2004, 2006-2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(dist_m4sugarlib_DATA) $(srcdir)/../freeze.mk \
+ $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+subdir = lib/m4sugar
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
+ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/make-case.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(m4sugarlibdir)" \
+ "$(DESTDIR)$(m4sugarlibdir)"
+DATA = $(dist_m4sugarlib_DATA) $(nodist_m4sugarlib_DATA)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EMACS = @EMACS@
+EMACSLOADPATH = @EMACSLOADPATH@
+EXPR = @EXPR@
+GREP = @GREP@
+HELP2MAN = @HELP2MAN@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+M4_DEBUGFILE = @M4_DEBUGFILE@
+M4_GNU = @M4_GNU@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PERL_FLOCK = @PERL_FLOCK@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TEST_EMACS = @TEST_EMACS@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_cv_dir_trailing_space = @ac_cv_dir_trailing_space@
+ac_cv_sh_n_works = @ac_cv_sh_n_works@
+ac_cv_unsupported_fs_chars = @ac_cv_unsupported_fs_chars@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+lispdir = @lispdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+m4sugarlibdir = $(pkgdatadir)/m4sugar
+dist_m4sugarlib_DATA = m4sugar.m4 foreach.m4 m4sh.m4
+nodist_m4sugarlib_DATA = version.m4 m4sugar.m4f m4sh.m4f
+CLEANFILES = $(nodist_m4sugarlib_DATA)
+
+# Get the release year from ../ChangeLog.
+RELEASE_YEAR = \
+ `sed 's/^\([0-9][0-9][0-9][0-9]\).*/\1/;q' $(top_srcdir)/ChangeLog`
+
+TAGS_FILES = $(dist_m4sugarlib_DATA)
+ETAGS_ARGS = $(ETAGS_FOR_AUTOCONF)
+forbidden_patterns = -e '^_*EOF' -e ' cmp '
+forbidden_patterns_files = $(dist_m4sugarlib_DATA)
+SUFFIXES = .m4 .m4f
+AUTOM4TE_CFG = $(top_builddir)/lib/autom4te.cfg
+
+# Do not use AUTOM4TE here, since maint.mk (my-distcheck)
+# checks if we are independent of Autoconf by defining AUTOM4TE (and
+# others) to `false'. Autoconf provides autom4te, so that doesn't
+# apply to us.
+MY_AUTOM4TE = \
+ autom4te_perllibdir='$(top_srcdir)'/lib \
+ AUTOM4TE_CFG='$(AUTOM4TE_CFG)' $(top_builddir)/bin/autom4te \
+ -B '$(top_builddir)'/lib -B '$(top_srcdir)'/lib # keep ` '
+
+
+# Factor the dependencies between all the frozen files.
+# Some day we should explain to Automake how to use autom4te to compute
+# the dependencies...
+src_libdir = $(top_srcdir)/lib
+build_libdir = $(top_builddir)/lib
+m4f_dependencies = $(top_builddir)/bin/autom4te $(AUTOM4TE_CFG)
+m4sugar_m4f_dependencies = \
+ $(m4f_dependencies) \
+ $(src_libdir)/m4sugar/m4sugar.m4 \
+ $(build_libdir)/m4sugar/version.m4
+
+m4sh_m4f_dependencies = \
+ $(m4sugar_m4f_dependencies) \
+ $(src_libdir)/m4sugar/m4sh.m4
+
+autotest_m4f_dependencies = \
+ $(m4sh_m4f_dependencies) \
+ $(src_libdir)/autotest/autotest.m4 \
+ $(src_libdir)/autotest/general.m4 \
+ $(src_libdir)/autotest/specific.m4
+
+autoconf_m4f_dependencies = \
+ $(m4sh_m4f_dependencies) \
+ $(src_libdir)/autoconf/autoscan.m4 \
+ $(src_libdir)/autoconf/general.m4 \
+ $(src_libdir)/autoconf/autoheader.m4 \
+ $(src_libdir)/autoconf/autoupdate.m4 \
+ $(src_libdir)/autoconf/autotest.m4 \
+ $(src_libdir)/autoconf/status.m4 \
+ $(src_libdir)/autoconf/oldnames.m4 \
+ $(src_libdir)/autoconf/specific.m4 \
+ $(src_libdir)/autoconf/lang.m4 \
+ $(src_libdir)/autoconf/c.m4 \
+ $(src_libdir)/autoconf/fortran.m4 \
+ $(src_libdir)/autoconf/erlang.m4 \
+ $(src_libdir)/autoconf/go.m4 \
+ $(src_libdir)/autoconf/functions.m4 \
+ $(src_libdir)/autoconf/headers.m4 \
+ $(src_libdir)/autoconf/types.m4 \
+ $(src_libdir)/autoconf/libs.m4 \
+ $(src_libdir)/autoconf/programs.m4 \
+ $(src_libdir)/autoconf/autoconf.m4
+
+ETAGS_FOR_M4 = \
+ --lang=none \
+ --regex='/\(m4_define\|define\)(\[\([^]]*\)\]/\2/'
+
+ETAGS_FOR_M4SUGAR = \
+ $(ETAGS_FOR_M4) \
+ --regex='/m4_defun(\[\([^]]*\)\]/\1/'
+
+ETAGS_FOR_AUTOCONF = \
+ $(ETAGS_FOR_M4SUGAR) \
+ --regex='/\(A[CU]_DEFUN\|AU_ALIAS\)(\[\([^]]*\)\]/\2/' \
+ --regex='/AN_\(FUNCTION\|HEADER\|IDENTIFIER\|LIBRARY\|MAKEVAR\|PROGRAM\)(\[\([^]]*\)\]/\2/'
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .m4 .m4f
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../freeze.mk $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/m4sugar/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu lib/m4sugar/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-dist_m4sugarlibDATA: $(dist_m4sugarlib_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(m4sugarlibdir)" || $(MKDIR_P) "$(DESTDIR)$(m4sugarlibdir)"
+ @list='$(dist_m4sugarlib_DATA)'; test -n "$(m4sugarlibdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(m4sugarlibdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(m4sugarlibdir)" || exit $$?; \
+ done
+
+uninstall-dist_m4sugarlibDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dist_m4sugarlib_DATA)'; test -n "$(m4sugarlibdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(m4sugarlibdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(m4sugarlibdir)" && rm -f $$files
+install-nodist_m4sugarlibDATA: $(nodist_m4sugarlib_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(m4sugarlibdir)" || $(MKDIR_P) "$(DESTDIR)$(m4sugarlibdir)"
+ @list='$(nodist_m4sugarlib_DATA)'; test -n "$(m4sugarlibdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(m4sugarlibdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(m4sugarlibdir)" || exit $$?; \
+ done
+
+uninstall-nodist_m4sugarlibDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(nodist_m4sugarlib_DATA)'; test -n "$(m4sugarlibdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(m4sugarlibdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(m4sugarlibdir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-local
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(m4sugarlibdir)" "$(DESTDIR)$(m4sugarlibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-dist_m4sugarlibDATA \
+ install-nodist_m4sugarlibDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-dist_m4sugarlibDATA \
+ uninstall-nodist_m4sugarlibDATA
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am check-local clean \
+ clean-generic ctags distclean distclean-generic distclean-tags \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-data install-data-am \
+ install-dist_m4sugarlibDATA install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man \
+ install-nodist_m4sugarlibDATA install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-dist_m4sugarlibDATA uninstall-nodist_m4sugarlibDATA
+
+
+# The `:;' works around a redirected compound command bash exit status bug.
+version.m4: Makefile
+ :;{ \
+ echo '# This file is part of -*- Autoconf -*-.' && \
+ echo '# Version of Autoconf.' && \
+ echo '# Copyright (C) 1999, 2000, 2001, 2002, 2006, 2007, 2009' && \
+ echo '# Free Software Foundation, Inc.' && \
+ echo &&\
+ echo 'm4_define([m4_PACKAGE_NAME], [$(PACKAGE_NAME)])' && \
+ echo 'm4_define([m4_PACKAGE_TARNAME], [$(PACKAGE_TARNAME)])' && \
+ echo 'm4_define([m4_PACKAGE_VERSION], [$(PACKAGE_VERSION)])' && \
+ echo 'm4_define([m4_PACKAGE_STRING], [$(PACKAGE_STRING)])' && \
+ echo 'm4_define([m4_PACKAGE_BUGREPORT], [$(PACKAGE_BUGREPORT)])' && \
+ echo 'm4_define([m4_PACKAGE_URL], [$(PACKAGE_URL)])' && \
+ echo 'm4_define([m4_PACKAGE_YEAR], ['$(RELEASE_YEAR)'])'; \
+ } > $@-t
+ mv $@-t $@
+
+check-local: check-forbidden-patterns
+
+m4sugar.m4f: $(m4sugar_m4f_dependencies)
+m4sh.m4f: $(m4sh_m4f_dependencies)
+$(AUTOM4TE_CFG): $(top_srcdir)/lib/autom4te.in
+ cd $(top_builddir)/lib && $(MAKE) $(AM_MAKEFLAGS) autom4te.cfg
+
+# When processing the file with diversion disabled, there must be no
+# output but comments and empty lines.
+# If freezing produces output, something went wrong: a bad `divert',
+# or an improper paren etc.
+# It may happen that the output does not end with an end of line, hence
+# force an end of line when reporting errors.
+.m4.m4f:
+ $(MY_AUTOM4TE) \
+ --language=$* \
+ --freeze \
+ --output=$@
+
+# For parallel builds.
+$(build_libdir)/m4sugar/version.m4:
+ cd $(build_libdir)/m4sugar && $(MAKE) $(AM_MAKEFLAGS) version.m4
+
+check-forbidden-patterns:
+ @if (cd $(srcdir) && \
+ $(GREP) $(forbidden_patterns) $(forbidden_patterns_files)) \
+ >forbidden.log; then \
+ echo "ERROR: forbidden patterns were found:" >&2; \
+ sed "s|^|$*.m4: |" <forbidden.log >&2; \
+ echo >&2; \
+ exit 1; \
+ else \
+ rm -f forbidden.log; \
+ fi
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/m4sugar/foreach.m4 b/lib/m4sugar/foreach.m4
index dc6c7f50..3fc19134 100644
--- a/lib/m4sugar/foreach.m4
+++ b/lib/m4sugar/foreach.m4
@@ -4,7 +4,7 @@
# Speeds up GNU M4 1.4.x by avoiding quadratic $@ recursion, but penalizes
# GNU M4 1.6 by requiring more memory and macro expansions.
#
-# Copyright (C) 2008-2011 Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 Free Software Foundation, Inc.
# This file is part of Autoconf. This program is free
# software; you can redistribute it and/or modify it under the
diff --git a/lib/m4sugar/m4sh.m4 b/lib/m4sugar/m4sh.m4
index 1ff17052..f05346b7 100644
--- a/lib/m4sugar/m4sh.m4
+++ b/lib/m4sugar/m4sh.m4
@@ -2,7 +2,7 @@
# M4 sugar for common shell constructs.
# Requires GNU M4 and M4sugar.
#
-# Copyright (C) 2000-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2012 Free Software Foundation, Inc.
# This file is part of Autoconf. This program is free
# software; you can redistribute it and/or modify it under the
@@ -192,6 +192,28 @@ m4_define([_AS_DETECT_SUGGESTED_PRUNE],
#
# This code is run outside any trap 0 context, hence we can simplify AS_EXIT.
m4_defun([_AS_DETECT_BETTER_SHELL],
+dnl
+dnl By default, do not force re-execution of the script just because
+dnl the user has pre-set $CONFIG_SHELL; do so only if the m4sh client has
+dnl defined the internal variable `_AS_FORCE_REEXEC_WITH_CONFIG_SHELL' to
+dnl "yes".
+dnl FIXME: This interface is acceptable for the moment, as a private,
+dnl FIXME: internal one; but if we want to make the "always re-execute"
+dnl FIXME: feature public, we should find a better interface!
+[m4_if(_AS_FORCE_REEXEC_WITH_CONFIG_SHELL, [yes],
+ [# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ _AS_REEXEC_WITH_SHELL([$CONFIG_SHELL])
+ fi
+ # We don't want this to propagate to other subprocesses.
+ dnl This might be especially important in case an m4sh-generated script
+ dnl is used to later execute other m4sh-generated scripts. This happens
+ dnl for example in autoconf's own testsuite (and happens *a lot* there,
+ dnl in fact).
+ AS_UNSET([_as_can_reexec])
+])]dnl
dnl Remove any tests from suggested that are also required
[m4_set_map([_AS_DETECT_SUGGESTED_BODY], [_AS_DETECT_SUGGESTED_PRUNE])]dnl
[m4_pushdef([AS_EXIT], [exit m4_default(]m4_dquote([$][1])[, 1)])]dnl
@@ -223,21 +245,8 @@ dnl Remove any tests from suggested that are also required
[CONFIG_SHELL=$SHELL as_have_required=yes])])
AS_IF([test "x$CONFIG_SHELL" != x],
- [# We cannot yet assume a decent shell, so we have to provide a
- # neutralization value for shells without unset; and this also
- # works around shells that cannot unset nonexistent variables.
- # Preserve -v and -x to the replacement shell.
- BASH_ENV=/dev/null
- ENV=/dev/null
- (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
- export CONFIG_SHELL
- case $- in @%:@ ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
- esac
- exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$[@]"}])
+ [export CONFIG_SHELL
+ _AS_REEXEC_WITH_SHELL([$CONFIG_SHELL])])
dnl Unfortunately, $as_me isn't available here.
AS_IF([test x$as_have_required = xno],
@@ -263,6 +272,30 @@ CLICOLOR_FORCE= GREP_OPTIONS=
unset CLICOLOR_FORCE GREP_OPTIONS
_m4_popdef([AS_EXIT])])# _AS_DETECT_BETTER_SHELL
+# _AS_REEXEC_WITH_SHELL(SHELL)
+# ----------------------------
+# Re-execute the current script with the given shell, trying to preserve
+# portable settings (e.g., the `xtrace' and `verbose' shell flag).
+m4_defun([_AS_REEXEC_WITH_SHELL], [dnl
+# We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in @%:@ ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $1 $as_opts "$as_myself" ${1+"$[@]"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+AS_ECHO(["$[]0: could not re-execute with $1"]) >&2
+AS_EXIT([255])])# _AS_REEXEC_WITH_SHELL
+
# _AS_PREPARE
# -----------
@@ -480,6 +513,7 @@ m4_define([AS_SHELL_SANITIZE],
m4_provide_if([AS_INIT], [],
[m4_provide([AS_INIT])
_AS_DETECT_REQUIRED([_AS_SHELL_FN_WORK])
+_AS_DETECT_REQUIRED([_AS_TEST_X_WORKS])
_AS_DETECT_BETTER_SHELL
_AS_UNSET_PREPARE
])])
@@ -590,7 +624,7 @@ done[]_m4_popdef([$1])])
# | else
# | IF-FALSE
# | fi
-# with simplifications if IF-TRUE1 and/or IF-FALSE is empty.
+# with simplifications when IF-TRUE1 and/or IF-FALSE are empty.
#
m4_define([_AS_IF],
[elif $1; then :
@@ -1051,9 +1085,11 @@ fi
# AS_TEST_X
# ---------
# Check whether a file has executable or search permissions.
+# FIXME: This macro is no longer useful; consider deleting it in 2014
+# after we ensure m4sh scripts can always find a shell with test -x.
m4_defun_init([AS_TEST_X],
[AS_REQUIRE([_AS_TEST_PREPARE])],
-[$as_test_x $1[]])# AS_TEST_X
+[test -x $1[]])# AS_TEST_X
# AS_EXECUTABLE_P
@@ -1061,7 +1097,7 @@ m4_defun_init([AS_TEST_X],
# Check whether a file is a regular file that has executable permissions.
m4_defun_init([AS_EXECUTABLE_P],
[AS_REQUIRE([_AS_TEST_PREPARE])],
-[{ test -f $1 && AS_TEST_X([$1]); }])# AS_EXECUTABLE_P
+[as_fn_executable_p $1])# AS_EXECUTABLE_P
# _AS_EXPR_PREPARE
@@ -1163,6 +1199,10 @@ dnl Eggert wrote the scripts with optimization help from Paolo Bonzini).
chmod +x "$as_me.lineno"] ||
AS_ERROR([cannot create $as_me.lineno; rerun with a POSIX shell])
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
@@ -1178,7 +1218,7 @@ _m4_popdef([AS_MESSAGE_LOG_FD], [AS_ERROR])])# _AS_LINENO_PREPARE
# Don't use conftest.sym to avoid file name issues on DJGPP, where this
# would yield conftest.sym.exe for DJGPP < 2.04. And don't use `conftest'
# as base name to avoid prohibiting concurrency (e.g., concurrent
-# config.statuses). On read-only media, assume 'cp -p' and hope we
+# config.statuses). On read-only media, assume 'cp -pR' and hope we
# are just running --help anyway.
m4_defun([_AS_LN_S_PREPARE],
[rm -f conf$$ conf$$.exe conf$$.file
@@ -1194,16 +1234,16 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -1332,43 +1372,22 @@ m4_define([AS_SET_CATFILE],
esac[]])# AS_SET_CATFILE
+# _AS_TEST_X_WORKS
+# ----------------
+# These days, we require that `test -x' works.
+m4_define([_AS_TEST_X_WORKS], [test -x /])
+
# _AS_TEST_PREPARE
# ----------------
-# Find out whether `test -x' works. If not, prepare a substitute
-# that should work well enough for most scripts.
-#
-# Here are some of the problems with the substitute.
-# The 'ls' tests whether the owner, not the current user, can execute/search.
-# The eval means '*', '?', and '[' cause inadvertent file name globbing
-# after the 'eval', so jam together as many tokens as we can to minimize
-# the likelihood that the inadvertent globbing will actually do anything.
-# Luckily, this gorp is needed only on really ancient hosts.
-#
+# Provide back-compat to people that hooked into our undocumented
+# internals (here's looking at you, libtool).
m4_defun([_AS_TEST_PREPARE],
-[if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$[]1"; then
- test -d "$[]1/.";
- else
- case $[]1 in @%:@(
- -*)set "./$[]1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$[]1" 2>/dev/null` in @%:@((
- ???[[sx]]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-dnl as_executable_p is present for backward compatibility with Libtool
-dnl 1.5.22, but it should go away at some point.
-as_executable_p=$as_test_x
+[AS_REQUIRE_SHELL_FN([as_fn_executable_p],
+ [AS_FUNCTION_DESCRIBE([as_fn_executable_p], [FILE],
+ [Test if FILE is an executable regular file.])],
+ [ test -f "$[]1" && test -x "$[]1"])]dnl
+[as_test_x='test -x'
+as_executable_p=as_fn_executable_p
])# _AS_TEST_PREPARE
@@ -1953,7 +1972,7 @@ m4_define([_AS_VAR_ARITH_WORKS],
# Perform the arithmetic evaluation of the arguments in EXPR, and set
# contents of the polymorphic shell variable VAR to the result, taking
# advantage of any shell optimizations that perform arithmetic without
-# forks. Note that numbers occuring within EXPR must be written in
+# forks. Note that numbers occurring within EXPR must be written in
# decimal, and without leading zeroes; variables containing numbers
# must be expanded prior to arithmetic evaluation; the first argument
# must not be a negative number; there is no portable equality
@@ -2144,5 +2163,6 @@ m4_divert_text([M4SH-INIT-FN], [m4_text_box([M4sh Shell Functions.])])
m4_divert([BODY])dnl
m4_text_box([Main body of script.])
_AS_DETECT_REQUIRED([_AS_SHELL_FN_WORK])dnl
+_AS_DETECT_REQUIRED([_AS_TEST_X_WORKS])dnl
AS_REQUIRE([_AS_UNSET_PREPARE], [], [M4SH-INIT-FN])dnl
])
diff --git a/lib/m4sugar/m4sugar.m4 b/lib/m4sugar/m4sugar.m4
index ac012e7e..278bc051 100644
--- a/lib/m4sugar/m4sugar.m4
+++ b/lib/m4sugar/m4sugar.m4
@@ -3,7 +3,7 @@ divert(-1)# -*- Autoconf -*-
# Base M4 layer.
# Requires GNU M4.
#
-# Copyright (C) 1999-2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2012 Free Software Foundation, Inc.
# This file is part of Autoconf. This program is free
# software; you can redistribute it and/or modify it under the
@@ -950,7 +950,7 @@ m4_define([m4_make_list], [m4_join([,
# m4_noquote(STRING)
# ------------------
# Return the result of ignoring all quotes in STRING and invoking the
-# macros it contains. Amongst other things, this is useful for enabling
+# macros it contains. Among other things, this is useful for enabling
# macro invocations inside strings with [] blocks (for instance regexps
# and help-strings). On the other hand, since all quotes are disabled,
# any macro expanded during this time that relies on nested [] quoting
@@ -2647,7 +2647,7 @@ dnl prefix1 shorter: pad to length of prefix, and reset cursor
[$2]m4_define([m4_Cursor], m4_Indent)],
[m4_format([%*s], m4_max([0],
m4_eval(m4_Indent - m4_Cursor)), [])m4_define([m4_Cursor], m4_Indent)])]],
-dnl now, for each word, compute the curser after the word is output, then
+dnl now, for each word, compute the cursor after the word is output, then
dnl check if the cursor would exceed the wrap column
dnl if so, reset cursor, and insert newline and prefix
dnl if not, insert the separator (usually a space)
diff --git a/m4/autobuild.m4 b/m4/autobuild.m4
index 93ccb546..284dc602 100644
--- a/m4/autobuild.m4
+++ b/m4/autobuild.m4
@@ -1,6 +1,5 @@
# autobuild.m4 serial 7
-dnl Copyright (C) 2004, 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-dnl Inc.
+dnl Copyright (C) 2004, 2006-2012 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/m4/m4.m4 b/m4/m4.m4
index dfc2c122..a19af678 100644
--- a/m4/m4.m4
+++ b/m4/m4.m4
@@ -1,6 +1,6 @@
# m4.m4 serial 12
-# Copyright (C) 2000, 2006-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2006-2012 Free Software Foundation, Inc.
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
diff --git a/m4/make-case.m4 b/m4/make-case.m4
index 55ae6d4f..d784e4de 100644
--- a/m4/make-case.m4
+++ b/m4/make-case.m4
@@ -1,6 +1,6 @@
# make-case.m4 serial 1
-# Copyright (C) 2008-2011 Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 Free Software Foundation, Inc.
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the notice and
diff --git a/maint.mk b/maint.mk
index caa92883..1c7af036 100644
--- a/maint.mk
+++ b/maint.mk
@@ -1,8 +1,8 @@
# -*-Makefile-*-
# This Makefile fragment tries to be general-purpose enough to be
-# used by at least coreutils, idutils, CPPI, Bison, and Autoconf.
+# used by many projects via the gnulib maintainer-makefile module.
-## Copyright (C) 2001-2011 Free Software Foundation, Inc.
+## Copyright (C) 2001-2012 Free Software Foundation, Inc.
##
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@@ -21,8 +21,12 @@
# ME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
ME := maint.mk
-# Override this in cfg.mk if you use a non-standard build-aux directory.
-build_aux ?= $(srcdir)/build-aux
+# Diagnostic for continued use of deprecated variable.
+# Remove in 2013
+ifneq ($(build_aux),)
+ $(error "$(ME): \
+set $$(_build-aux) relative to $$(srcdir) instead of $$(build_aux)")
+endif
# Do not save the original name or timestamp in the .tar.gz file.
# Use --rsyncable if available.
@@ -33,16 +37,37 @@ GZIP_ENV = '--no-name --best $(gzip_rsyncable)'
GIT = git
VC = $(GIT)
-VC-tag = git tag -s -m '$(VERSION)' -u '$(gpg_key_ID)'
-VC_LIST = $(build_aux)/vc-list-files -C $(srcdir)
+VC_LIST = $(srcdir)/$(_build-aux)/vc-list-files -C $(srcdir)
+
+# You can override this variable in cfg.mk to set your own regexp
+# matching files to ignore.
+VC_LIST_ALWAYS_EXCLUDE_REGEX ?= ^$$
+# This is to preprocess robustly the output of $(VC_LIST), so that even
+# when $(srcdir) is a pathological name like "....", the leading sed command
+# removes only the intended prefix.
+_dot_escaped_srcdir = $(subst .,\.,$(srcdir))
+
+# Post-process $(VC_LIST) output, prepending $(srcdir)/, but only
+# when $(srcdir) is not ".".
+ifeq ($(srcdir),.)
+_prepend_srcdir_prefix =
+else
+_prepend_srcdir_prefix = | sed 's|^|$(srcdir)/|'
+endif
+
+# In order to be able to consistently filter "."-relative names,
+# (i.e., with no $(srcdir) prefix), this definition is careful to
+# remove any $(srcdir) prefix, and to restore what it removes.
+_sc_excl = \
+ $(if $(exclude_file_name_regexp--$@),$(exclude_file_name_regexp--$@),^$$)
VC_LIST_EXCEPT = \
- $(VC_LIST) | if test -f $(srcdir)/.x-$@; then \
- grep -vEf $(srcdir)/.x-$@; \
- else \
- grep -v ChangeLog; \
- fi
+ $(VC_LIST) | sed 's|^$(_dot_escaped_srcdir)/||' \
+ | if test -f $(srcdir)/.x-$@; then grep -vEf $(srcdir)/.x-$@; \
+ else grep -Ev -e "$${VC_LIST_EXCEPT_DEFAULT-ChangeLog}"; fi \
+ | grep -Ev -e '($(VC_LIST_ALWAYS_EXCLUDE_REGEX)|$(_sc_excl))' \
+ $(_prepend_srcdir_prefix)
ifeq ($(origin prev_version_file), undefined)
prev_version_file = $(srcdir)/.prev-version
@@ -52,12 +77,18 @@ PREV_VERSION := $(shell cat $(prev_version_file) 2>/dev/null)
VERSION_REGEXP = $(subst .,\.,$(VERSION))
PREV_VERSION_REGEXP = $(subst .,\.,$(PREV_VERSION))
+ifeq ($(VC),$(GIT))
this-vc-tag = v$(VERSION)
this-vc-tag-regexp = v$(VERSION_REGEXP)
+else
+tag-package = $(shell echo "$(PACKAGE)" | tr '[:lower:]' '[:upper:]')
+tag-this-version = $(subst .,_,$(VERSION))
+this-vc-tag = $(tag-package)-$(tag-this-version)
+this-vc-tag-regexp = $(this-vc-tag)
+endif
my_distdir = $(PACKAGE)-$(VERSION)
# Old releases are stored here.
-# Used for diffs.
release_archive_dir ?= ../release
# Override gnu_rel_host and url_dir_list in cfg.mk if these are not right.
@@ -74,115 +105,329 @@ else
url_dir_list ?= ftp://$(gnu_rel_host)/gnu/$(PACKAGE)
endif
+# Override this in cfg.mk if you are using a different format in your
+# NEWS file.
+today = $(shell date +%Y-%m-%d)
+
+# Select which lines of NEWS are searched for $(news-check-regexp).
+# This is a sed line number spec. The default says that we search
+# lines 1..10 of NEWS for $(news-check-regexp).
+# If you want to search only line 3 or only lines 20-22, use "3" or "20,22".
+news-check-lines-spec ?= 1,10
+news-check-regexp ?= '^\*.* $(VERSION_REGEXP) \($(today)\)'
+
# Prevent programs like 'sort' from considering distinct strings to be equal.
# Doing it here saves us from having to set LC_ALL elsewhere in this file.
export LC_ALL = C
-
-
## --------------- ##
## Sanity checks. ##
## --------------- ##
-# Collect the names of rules starting with `sc_'.
-syntax-check-rules := $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' \
- $(srcdir)/$(ME))
+_cfg_mk := $(shell test -f $(srcdir)/cfg.mk && echo '$(srcdir)/cfg.mk')
+
+# Collect the names of rules starting with 'sc_'.
+syntax-check-rules := $(sort $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' \
+ $(srcdir)/$(ME) $(_cfg_mk)))
.PHONY: $(syntax-check-rules)
-local-checks-available = \
- po-check copyright-check writable-files m4-check author_mark_check \
- changelog-check patch-check strftime-check $(syntax-check-rules) \
- makefile_path_separator_check \
- makefile-check check-AUTHORS
+ifeq ($(shell $(VC_LIST) >/dev/null 2>&1; echo $$?),0)
+local-checks-available += $(syntax-check-rules)
+else
+local-checks-available += no-vc-detected
+no-vc-detected:
+ @echo "No version control files detected; skipping syntax check"
+endif
.PHONY: $(local-checks-available)
-local-check := $(filter-out $(local-checks-to-skip), $(local-checks-available))
+# Arrange to print the name of each syntax-checking rule just before running it.
+$(syntax-check-rules): %: %.m
+sc_m_rules_ = $(patsubst %, %.m, $(syntax-check-rules))
+.PHONY: $(sc_m_rules_)
+$(sc_m_rules_):
+ @echo $(patsubst sc_%.m, %, $@)
+ @date +%s.%N > .sc-start-$(basename $@)
+
+# Compute and print the elapsed time for each syntax-check rule.
+sc_z_rules_ = $(patsubst %, %.z, $(syntax-check-rules))
+.PHONY: $(sc_z_rules_)
+$(sc_z_rules_): %.z: %
+ @end=$$(date +%s.%N); \
+ start=$$(cat .sc-start-$*); \
+ rm -f .sc-start-$*; \
+ awk -v s=$$start -v e=$$end \
+ 'END {printf "%.2f $(patsubst sc_%,%,$*)\n", e - s}' < /dev/null
+
+# The patsubst here is to replace each sc_% rule with its sc_%.z wrapper
+# that computes and prints elapsed time.
+local-check := \
+ $(patsubst sc_%, sc_%.z, \
+ $(filter-out $(local-checks-to-skip), $(local-checks-available)))
syntax-check: $(local-check)
-# @shopt -s nullglob; \
-# grep -nE '# *include <(limits|std(def|arg|bool))\.h>' \
-# $$(find -type f -name '*.[chly]') /dev/null && \
-# { echo '$(ME): found conditional include' 1>&2; \
-# exit 1; } || :
-
-# grep -nE '^# *include <(string|stdlib)\.h>' \
-# $(srcdir)/{lib,src}/*.[chly] /dev/null && \
-# { echo '$(ME): FIXME' 1>&2; \
-# exit 1; } || :
-# FIXME: don't allow `#include .strings\.h' anywhere
-sc_cast_of_argument_to_free:
- @shopt -s nullglob; \
- grep -nE '\<free \(\(' \
- $(srcdir)/{lib,src}/*.[chly] /dev/null && \
- { echo '$(ME): don'\''t cast free argument' 1>&2; \
+# _sc_search_regexp
+#
+# This macro searches for a given construct in the selected files and
+# then takes some action.
+#
+# Parameters (shell variables):
+#
+# prohibit | require
+#
+# Regular expression (ERE) denoting either a forbidden construct
+# or a required construct. Those arguments are exclusive.
+#
+# exclude
+#
+# Regular expression (ERE) denoting lines to ignore that matched
+# a prohibit construct. For example, this can be used to exclude
+# comments that mention why the nearby code uses an alternative
+# construct instead of the simpler prohibited construct.
+#
+# in_vc_files | in_files
+#
+# grep-E-style regexp denoting the files to check. If no files
+# are specified the default are all the files that are under
+# version control.
+#
+# containing | non_containing
+#
+# Select the files (non) containing strings matching this regexp.
+# If both arguments are specified then CONTAINING takes
+# precedence.
+#
+# with_grep_options
+#
+# Extra options for grep.
+#
+# ignore_case
+#
+# Ignore case.
+#
+# halt
+#
+# Message to display before to halting execution.
+#
+# Finally, you may exempt files based on an ERE matching file names.
+# For example, to exempt from the sc_space_tab check all files with the
+# .diff suffix, set this Make variable:
+#
+# exclude_file_name_regexp--sc_space_tab = \.diff$
+#
+# Note that while this functionality is mostly inherited via VC_LIST_EXCEPT,
+# when filtering by name via in_files, we explicitly filter out matching
+# names here as well.
+
+# Initialize each, so that envvar settings cannot interfere.
+export require =
+export prohibit =
+export exclude =
+export in_vc_files =
+export in_files =
+export containing =
+export non_containing =
+export halt =
+export with_grep_options =
+
+# By default, _sc_search_regexp does not ignore case.
+export ignore_case =
+_ignore_case = $$(test -n "$$ignore_case" && printf %s -i || :)
+
+define _sc_say_and_exit
+ dummy=; : so we do not need a semicolon before each use; \
+ { printf '%s\n' "$(ME): $$msg" 1>&2; exit 1; };
+endef
+
+define _sc_search_regexp
+ dummy=; : so we do not need a semicolon before each use; \
+ \
+ : Check arguments; \
+ test -n "$$prohibit" && test -n "$$require" \
+ && { msg='Cannot specify both prohibit and require' \
+ $(_sc_say_and_exit) } || :; \
+ test -z "$$prohibit" && test -z "$$require" \
+ && { msg='Should specify either prohibit or require' \
+ $(_sc_say_and_exit) } || :; \
+ test -z "$$prohibit" && test -n "$$exclude" \
+ && { msg='Use of exclude requires a prohibit pattern' \
+ $(_sc_say_and_exit) } || :; \
+ test -n "$$in_vc_files" && test -n "$$in_files" \
+ && { msg='Cannot specify both in_vc_files and in_files' \
+ $(_sc_say_and_exit) } || :; \
+ test "x$$halt" != x \
+ || { msg='halt not defined' $(_sc_say_and_exit) }; \
+ \
+ : Filter by file name; \
+ if test -n "$$in_files"; then \
+ files=$$(find $(srcdir) | grep -E "$$in_files" \
+ | grep -Ev '$(exclude_file_name_regexp--$@)'); \
+ else \
+ files=$$($(VC_LIST_EXCEPT)); \
+ if test -n "$$in_vc_files"; then \
+ files=$$(echo "$$files" | grep -E "$$in_vc_files"); \
+ fi; \
+ fi; \
+ \
+ : Filter by content; \
+ test -n "$$files" && test -n "$$containing" \
+ && { files=$$(grep -l "$$containing" $$files); } || :; \
+ test -n "$$files" && test -n "$$non_containing" \
+ && { files=$$(grep -vl "$$non_containing" $$files); } || :; \
+ \
+ : Check for the construct; \
+ if test -n "$$files"; then \
+ if test -n "$$prohibit"; then \
+ grep $$with_grep_options $(_ignore_case) -nE "$$prohibit" $$files \
+ | grep -vE "$${exclude:-^$$}" \
+ && { msg="$$halt" $(_sc_say_and_exit) } || :; \
+ else \
+ grep $$with_grep_options $(_ignore_case) -LE "$$require" $$files \
+ | grep . \
+ && { msg="$$halt" $(_sc_say_and_exit) } || :; \
+ fi \
+ else :; \
+ fi || :;
+endef
+
+sc_avoid_if_before_free:
+ @$(srcdir)/$(_build-aux)/useless-if-before-free \
+ $(useless_free_options) \
+ $$($(VC_LIST_EXCEPT) | grep -v useless-if-before-free) && \
+ { echo '$(ME): found useless "if" before "free" above' 1>&2; \
exit 1; } || :
+sc_cast_of_argument_to_free:
+ @prohibit='\<free *\( *\(' halt="don't cast free argument" \
+ $(_sc_search_regexp)
+
sc_cast_of_x_alloc_return_value:
- @shopt -s nullglob; \
- grep -nE --exclude=$(srcdir)/lib/regex.c \
- '\*\) *x(m|c|re)alloc\>' \
- $(srcdir)/{lib,src}/*.[chly] /dev/null && \
- { echo '$(ME): don'\''t cast x*alloc return value' 1>&2; \
- exit 1; } || :
+ @prohibit='\*\) *x(m|c|re)alloc\>' \
+ halt="don't cast x*alloc return value" \
+ $(_sc_search_regexp)
sc_cast_of_alloca_return_value:
- @shopt -s nullglob; \
- grep -nE '\*\) *alloca\>' \
- $(srcdir)/src/*.[chly] /dev/null && \
- { echo '$(ME): don'\''t cast alloca return value' 1>&2; \
- exit 1; } || :
+ @prohibit='\*\) *alloca\>' \
+ halt="don't cast alloca return value" \
+ $(_sc_search_regexp)
sc_space_tab:
- @grep -n '[ ] ' $$($(VC_LIST_EXCEPT)) && \
- { echo '$(ME): found SPACE-TAB sequence; remove the SPACE' \
- 1>&2; exit 1; } || :
+ @prohibit='[ ] ' \
+ halt='found SPACE-TAB sequence; remove the SPACE' \
+ $(_sc_search_regexp)
-# Don't use *scanf or the old ato* functions in `real' code.
+# Don't use *scanf or the old ato* functions in "real" code.
# They provide no error checking mechanism.
# Instead, use strto* functions.
sc_prohibit_atoi_atof:
- @grep -nE '\<([fs]?scanf|ato([filq]|ll))\>' $$($(VC_LIST_EXCEPT)) && \
- { echo '$(ME): do not use *scan''f, ato''f, ato''i, ato''l, ato''ll, ato''q, or ss''canf' \
- 1>&2; exit 1; } || :
+ @prohibit='\<([fs]?scanf|ato([filq]|ll)) *\(' \
+ halt='do not use *scan''f, ato''f, ato''i, ato''l, ato''ll or ato''q' \
+ $(_sc_search_regexp)
+
+# Use STREQ rather than comparing strcmp == 0, or != 0.
+sp_ = strcmp *\(.+\)
+sc_prohibit_strcmp:
+ @prohibit='! *strcmp *\(|\<$(sp_) *[!=]=|[!=]= *$(sp_)' \
+ exclude=':# *define STRN?EQ\(' \
+ halt='$(ME): replace strcmp calls above with STREQ/STRNEQ' \
+ $(_sc_search_regexp)
+
+# Pass EXIT_*, not number, to usage, exit, and error (when exiting)
+# Convert all uses automatically, via these two commands:
+# git grep -l '\<exit *(1)' \
+# | grep -vEf .x-sc_prohibit_magic_number_exit \
+# | xargs --no-run-if-empty \
+# perl -pi -e 's/(^|[^.])\b(exit ?)\(1\)/$1$2(EXIT_FAILURE)/'
+# git grep -l '\<exit *(0)' \
+# | grep -vEf .x-sc_prohibit_magic_number_exit \
+# | xargs --no-run-if-empty \
+# perl -pi -e 's/(^|[^.])\b(exit ?)\(0\)/$1$2(EXIT_SUCCESS)/'
+sc_prohibit_magic_number_exit:
+ @prohibit='(^|[^.])\<(usage|exit) ?\([0-9]|\<error ?\([1-9][0-9]*,' \
+ halt='use EXIT_* values rather than magic number' \
+ $(_sc_search_regexp)
# Using EXIT_SUCCESS as the first argument to error is misleading,
-# since when that parameter is 0, error does not exit. Use `0' instead.
+# since when that parameter is 0, error does not exit. Use '0' instead.
sc_error_exit_success:
- @grep -nF 'error (EXIT_SUCCESS,' \
- $$(find -type f -name '*.[chly]') /dev/null && \
- { echo '$(ME): found error (EXIT_SUCCESS' 1>&2; \
+ @prohibit='error *\(EXIT_SUCCESS,' \
+ in_vc_files='\.[chly]$$' \
+ halt='found error (EXIT_SUCCESS' \
+ $(_sc_search_regexp)
+
+# "FATAL:" should be fully upper-cased in error messages
+# "WARNING:" should be fully upper-cased, or fully lower-cased
+sc_error_message_warn_fatal:
+ @grep -nEA2 '[^rp]error *\(' $$($(VC_LIST_EXCEPT)) \
+ | grep -E '"Warning|"Fatal|"fatal' && \
+ { echo '$(ME): use FATAL, WARNING or warning' 1>&2; \
exit 1; } || :
-sc_file_system:
- @grep -ni 'file''system' $$($(VC_LIST_EXCEPT)) \
- | grep -v 'File''system Hierarchy Standard' && \
- { echo '$(ME): found use of "file''system";' \
- 'rewrite to use "file system"' 1>&2; \
+# Error messages should not start with a capital letter
+sc_error_message_uppercase:
+ @grep -nEA2 '[^rp]error *\(' $$($(VC_LIST_EXCEPT)) \
+ | grep -E '"[A-Z]' \
+ | grep -vE '"FATAL|"WARNING|"Java|"C#|PRIuMAX' && \
+ { echo '$(ME): found capitalized error message' 1>&2; \
exit 1; } || :
-sc_no_have_config_h:
- @grep -n '^# *if.*HAVE''_CONFIG_H' $$($(VC_LIST_EXCEPT)) && \
- { echo '$(ME): found use of HAVE''_CONFIG_H; remove' \
- 1>&2; exit 1; } || :
+# Error messages should not end with a period
+sc_error_message_period:
+ @grep -nEA2 '[^rp]error *\(' $$($(VC_LIST_EXCEPT)) \
+ | grep -E '[^."]\."' && \
+ { echo '$(ME): found error message ending in period' 1>&2; \
+ exit 1; } || :
-# Nearly all .c files must include <config.h>.
+sc_file_system:
+ @prohibit=file''system \
+ ignore_case=1 \
+ halt='found use of "file''system"; spell it "file system"' \
+ $(_sc_search_regexp)
+
+# Don't use cpp tests of this symbol. All code assumes config.h is included.
+sc_prohibit_have_config_h:
+ @prohibit='^# *if.*HAVE''_CONFIG_H' \
+ halt='found use of HAVE''_CONFIG_H; remove' \
+ $(_sc_search_regexp)
+
+# Nearly all .c files must include <config.h>. However, we also permit this
+# via inclusion of a package-specific header, if cfg.mk specified one.
+# config_h_header must be suitable for grep -E.
+config_h_header ?= <config\.h>
sc_require_config_h:
- @if $(VC_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then \
- grep -L '^# *include <config\.h>' \
- $$($(VC_LIST_EXCEPT) | grep '\.c$$') \
- | grep . && \
- { echo '$(ME): the above files do not include <config.h>' \
- 1>&2; exit 1; } || :; \
+ @require='^# *include $(config_h_header)' \
+ in_vc_files='\.c$$' \
+ halt='the above files do not include <config.h>' \
+ $(_sc_search_regexp)
+
+# You must include <config.h> before including any other header file.
+# This can possibly be via a package-specific header, if given by cfg.mk.
+sc_require_config_h_first:
+ @if $(VC_LIST_EXCEPT) | grep -l '\.c$$' > /dev/null; then \
+ fail=0; \
+ for i in $$($(VC_LIST_EXCEPT) | grep '\.c$$'); do \
+ grep '^# *include\>' $$i | sed 1q \
+ | grep -E '^# *include $(config_h_header)' > /dev/null \
+ || { echo $$i; fail=1; }; \
+ done; \
+ test $$fail = 1 && \
+ { echo '$(ME): the above files include some other header' \
+ 'before <config.h>' 1>&2; exit 1; } || :; \
else :; \
fi
+sc_prohibit_HAVE_MBRTOWC:
+ @prohibit='\bHAVE_MBRTOWC\b' \
+ halt="do not use $$prohibit; it is always defined" \
+ $(_sc_search_regexp)
+
# To use this "command" macro, you must first define two shell variables:
-# h: the header, enclosed in <> or ""
+# h: the header name, with no enclosing <> or ""
# re: a regular expression that matches IFF something provided by $h is used.
-define _header_without_use
- h_esc=`echo "$$h"|sed 's/\./\\./'`; \
- if $(VC_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then \
+define _sc_header_without_use
+ dummy=; : so we do not need a semicolon before each use; \
+ h_esc=`echo '[<"]'"$$h"'[">]'|sed 's/\./\\\\./g'`; \
+ if $(VC_LIST_EXCEPT) | grep -l '\.c$$' > /dev/null; then \
files=$$(grep -l '^# *include '"$$h_esc" \
$$($(VC_LIST_EXCEPT) | grep '\.c$$')) && \
grep -LE "$$re" $$files | grep . && \
@@ -194,194 +439,573 @@ endef
# Prohibit the inclusion of assert.h without an actual use of assert.
sc_prohibit_assert_without_use:
- @h='<assert.h>' re='\<assert *\(' $(_header_without_use)
+ @h='assert.h' re='\<assert *\(' $(_sc_header_without_use)
+
+# Prohibit the inclusion of close-stream.h without an actual use.
+sc_prohibit_close_stream_without_use:
+ @h='close-stream.h' re='\<close_stream *\(' $(_sc_header_without_use)
# Prohibit the inclusion of getopt.h without an actual use.
sc_prohibit_getopt_without_use:
- @h='<getopt.h>' re='\<getopt(_long)? *\(' $(_header_without_use)
+ @h='getopt.h' re='\<getopt(_long)? *\(' $(_sc_header_without_use)
# Don't include quotearg.h unless you use one of its functions.
sc_prohibit_quotearg_without_use:
- @h='"quotearg.h"' re='\<quotearg(_[^ ]+)? *\(' $(_header_without_use)
+ @h='quotearg.h' re='\<quotearg(_[^ ]+)? *\(' $(_sc_header_without_use)
# Don't include quote.h unless you use one of its functions.
sc_prohibit_quote_without_use:
- @h='"quote.h"' re='\<quote(_n)? *\(' $(_header_without_use)
+ @h='quote.h' re='\<quote((_n)? *\(|_quoting_options\>)' \
+ $(_sc_header_without_use)
# Don't include this header unless you use one of its functions.
sc_prohibit_long_options_without_use:
- @h='"long-options.h"' re='\<parse_long_options *\(' \
- $(_header_without_use)
+ @h='long-options.h' re='\<parse_long_options *\(' \
+ $(_sc_header_without_use)
# Don't include this header unless you use one of its functions.
sc_prohibit_inttostr_without_use:
- @h='"inttostr.h"' re='\<(off|[iu]max|uint)tostr *\(' \
- $(_header_without_use)
+ @h='inttostr.h' re='\<(off|[iu]max|uint)tostr *\(' \
+ $(_sc_header_without_use)
+
+# Don't include this header unless you use one of its functions.
+sc_prohibit_ignore_value_without_use:
+ @h='ignore-value.h' re='\<ignore_(value|ptr) *\(' \
+ $(_sc_header_without_use)
# Don't include this header unless you use one of its functions.
sc_prohibit_error_without_use:
- @h='"error.h"' \
+ @h='error.h' \
re='\<error(_at_line|_print_progname|_one_per_line|_message_count)? *\('\
- $(_header_without_use)
+ $(_sc_header_without_use)
+
+# Don't include xalloc.h unless you use one of its functions.
+# Consider these symbols:
+# perl -lne '/^# *define (\w+)\(/ and print $1' lib/xalloc.h|grep -v '^__';
+# perl -lne '/^(?:extern )?(?:void|char) \*?(\w+) *\(/ and print $1' lib/xalloc.h
+# Divide into two sets on case, and filter each through this:
+# | sort | perl -MRegexp::Assemble -le \
+# 'print Regexp::Assemble->new(file => "/dev/stdin")->as_string'|sed 's/\?://g'
+# Note this was produced by the above:
+# _xa1 = \
+#x(((2n?)?re|c(har)?|n(re|m)|z)alloc|alloc_(oversized|die)|m(alloc|emdup)|strdup)
+# But we can do better, in at least two ways:
+# 1) take advantage of two "dup"-suffixed strings:
+# x(((2n?)?re|c(har)?|n(re|m)|[mz])alloc|alloc_(oversized|die)|(mem|str)dup)
+# 2) notice that "c(har)?|[mz]" is equivalent to the shorter and more readable
+# "char|[cmz]"
+# x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup)
+_xa1 = x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup)
+_xa2 = X([CZ]|N?M)ALLOC
+sc_prohibit_xalloc_without_use:
+ @h='xalloc.h' \
+ re='\<($(_xa1)|$(_xa2)) *\('\
+ $(_sc_header_without_use)
+
+# Extract function names:
+# perl -lne '/^(?:extern )?(?:void|char) \*?(\w+) *\(/ and print $1' lib/hash.h
+_hash_re = \
+clear|delete|free|get_(first|next)|insert|lookup|print_statistics|reset_tuning
+_hash_fn = \<($(_hash_re)) *\(
+_hash_struct = (struct )?\<[Hh]ash_(table|tuning)\>
+sc_prohibit_hash_without_use:
+ @h='hash.h' \
+ re='$(_hash_fn)|$(_hash_struct)'\
+ $(_sc_header_without_use)
+
+sc_prohibit_cloexec_without_use:
+ @h='cloexec.h' re='\<(set_cloexec_flag|dup_cloexec) *\(' \
+ $(_sc_header_without_use)
+
+sc_prohibit_posixver_without_use:
+ @h='posixver.h' re='\<posix2_version *\(' $(_sc_header_without_use)
+
+sc_prohibit_same_without_use:
+ @h='same.h' re='\<same_name *\(' $(_sc_header_without_use)
+
+sc_prohibit_hash_pjw_without_use:
+ @h='hash-pjw.h' \
+ re='\<hash_pjw\>' \
+ $(_sc_header_without_use)
sc_prohibit_safe_read_without_use:
- @h='"safe-read.h"' re='(\<SAFE_READ_ERROR\>|\<safe_read *\()' \
- $(_header_without_use)
+ @h='safe-read.h' re='(\<SAFE_READ_ERROR\>|\<safe_read *\()' \
+ $(_sc_header_without_use)
sc_prohibit_argmatch_without_use:
- @h='"argmatch.h"' \
- re='(\<(ARRAY_CARDINALITY|X?ARGMATCH(|_TO_ARGUMENT|_VERIFY))\>|\<argmatch(_exit_fn|_(in)?valid) *\()' \
- $(_header_without_use)
+ @h='argmatch.h' \
+ re='(\<(ARRAY_CARDINALITY|X?ARGMATCH(|_TO_ARGUMENT|_VERIFY))\>|\<(invalid_arg|argmatch(_exit_fn|_(in)?valid)?) *\()' \
+ $(_sc_header_without_use)
+
+sc_prohibit_canonicalize_without_use:
+ @h='canonicalize.h' \
+ re='CAN_(EXISTING|ALL_BUT_LAST|MISSING)|canonicalize_(mode_t|filename_mode|file_name)' \
+ $(_sc_header_without_use)
sc_prohibit_root_dev_ino_without_use:
- @h='"root-dev-ino.h"' \
+ @h='root-dev-ino.h' \
re='(\<ROOT_DEV_INO_(CHECK|WARN)\>|\<get_root_dev_ino *\()' \
- $(_header_without_use)
+ $(_sc_header_without_use)
+
+sc_prohibit_openat_without_use:
+ @h='openat.h' \
+ re='\<(openat_(permissive|needs_fchdir|(save|restore)_fail)|l?(stat|ch(own|mod))at|(euid)?accessat)\>' \
+ $(_sc_header_without_use)
+
+# Prohibit the inclusion of c-ctype.h without an actual use.
+ctype_re = isalnum|isalpha|isascii|isblank|iscntrl|isdigit|isgraph|islower\
+|isprint|ispunct|isspace|isupper|isxdigit|tolower|toupper
+sc_prohibit_c_ctype_without_use:
+ @h='c-ctype.h' re='\<c_($(ctype_re)) *\(' \
+ $(_sc_header_without_use)
+
+_empty =
+_sp = $(_empty) $(_empty)
+# The following list was generated by running:
+# man signal.h|col -b|perl -ne '/bsd_signal.*;/.../sigwaitinfo.*;/ and print' \
+# | perl -lne '/^\s+(?:int|void).*?(\w+).*/ and print $1' | fmt
+_sig_functions = \
+ bsd_signal kill killpg pthread_kill pthread_sigmask raise sigaction \
+ sigaddset sigaltstack sigdelset sigemptyset sigfillset sighold sigignore \
+ siginterrupt sigismember signal sigpause sigpending sigprocmask sigqueue \
+ sigrelse sigset sigsuspend sigtimedwait sigwait sigwaitinfo
+_sig_function_re = $(subst $(_sp),|,$(strip $(_sig_functions)))
+# The following were extracted from "man signal.h" manually.
+_sig_types_and_consts = \
+ MINSIGSTKSZ SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK \
+ SA_RESETHAND SA_RESTART SA_SIGINFO SIGEV_NONE SIGEV_SIGNAL \
+ SIGEV_THREAD SIGSTKSZ SIG_BLOCK SIG_SETMASK SIG_UNBLOCK SS_DISABLE \
+ SS_ONSTACK mcontext_t pid_t sig_atomic_t sigevent siginfo_t sigset_t \
+ sigstack sigval stack_t ucontext_t
+# generated via this:
+# perl -lne '/^#ifdef (SIG\w+)/ and print $1' lib/sig2str.c|sort -u|fmt -70
+_sig_names = \
+ SIGABRT SIGALRM SIGALRM1 SIGBUS SIGCANCEL SIGCHLD SIGCLD SIGCONT \
+ SIGDANGER SIGDIL SIGEMT SIGFPE SIGFREEZE SIGGRANT SIGHUP SIGILL \
+ SIGINFO SIGINT SIGIO SIGIOT SIGKAP SIGKILL SIGKILLTHR SIGLOST SIGLWP \
+ SIGMIGRATE SIGMSG SIGPHONE SIGPIPE SIGPOLL SIGPRE SIGPROF SIGPWR \
+ SIGQUIT SIGRETRACT SIGSAK SIGSEGV SIGSOUND SIGSTKFLT SIGSTOP SIGSYS \
+ SIGTERM SIGTHAW SIGTRAP SIGTSTP SIGTTIN SIGTTOU SIGURG SIGUSR1 \
+ SIGUSR2 SIGVIRT SIGVTALRM SIGWAITING SIGWINCH SIGWIND SIGWINDOW \
+ SIGXCPU SIGXFSZ
+_sig_syms_re = $(subst $(_sp),|,$(strip $(_sig_names) $(_sig_types_and_consts)))
+
+# Prohibit the inclusion of signal.h without an actual use.
+sc_prohibit_signal_without_use:
+ @h='signal.h' \
+ re='\<($(_sig_function_re)) *\(|\<($(_sig_syms_re))\>' \
+ $(_sc_header_without_use)
+
+# Don't include stdio--.h unless you use one of its functions.
+sc_prohibit_stdio--_without_use:
+ @h='stdio--.h' re='\<((f(re)?|p)open|tmpfile) *\(' \
+ $(_sc_header_without_use)
+
+# Don't include stdio-safer.h unless you use one of its functions.
+sc_prohibit_stdio-safer_without_use:
+ @h='stdio-safer.h' re='\<((f(re)?|p)open|tmpfile)_safer *\(' \
+ $(_sc_header_without_use)
+
+# Prohibit the inclusion of strings.h without a sensible use.
+# Using the likes of bcmp, bcopy, bzero, index or rindex is not sensible.
+sc_prohibit_strings_without_use:
+ @h='strings.h' \
+ re='\<(strn?casecmp|ffs(ll)?)\>' \
+ $(_sc_header_without_use)
+
+# Get the list of symbol names with this:
+# perl -lne '/^# *define ([A-Z]\w+)\(/ and print $1' lib/intprops.h|fmt
+_intprops_names = \
+ TYPE_IS_INTEGER TYPE_TWOS_COMPLEMENT TYPE_ONES_COMPLEMENT \
+ TYPE_SIGNED_MAGNITUDE TYPE_SIGNED TYPE_MINIMUM TYPE_MAXIMUM \
+ INT_BITS_STRLEN_BOUND INT_STRLEN_BOUND INT_BUFSIZE_BOUND \
+ INT_ADD_RANGE_OVERFLOW INT_SUBTRACT_RANGE_OVERFLOW \
+ INT_NEGATE_RANGE_OVERFLOW INT_MULTIPLY_RANGE_OVERFLOW \
+ INT_DIVIDE_RANGE_OVERFLOW INT_REMAINDER_RANGE_OVERFLOW \
+ INT_LEFT_SHIFT_RANGE_OVERFLOW INT_ADD_OVERFLOW INT_SUBTRACT_OVERFLOW \
+ INT_NEGATE_OVERFLOW INT_MULTIPLY_OVERFLOW INT_DIVIDE_OVERFLOW \
+ INT_REMAINDER_OVERFLOW INT_LEFT_SHIFT_OVERFLOW
+_intprops_syms_re = $(subst $(_sp),|,$(strip $(_intprops_names)))
+# Prohibit the inclusion of intprops.h without an actual use.
+sc_prohibit_intprops_without_use:
+ @h='intprops.h' \
+ re='\<($(_intprops_syms_re)) *\(' \
+ $(_sc_header_without_use)
+
+_stddef_syms_re = NULL|offsetof|ptrdiff_t|size_t|wchar_t
+# Prohibit the inclusion of stddef.h without an actual use.
+sc_prohibit_stddef_without_use:
+ @h='stddef.h' \
+ re='\<($(_stddef_syms_re))\>' \
+ $(_sc_header_without_use)
+
+_de1 = dirfd|(close|(fd)?open|read|rewind|seek|tell)dir(64)?(_r)?
+_de2 = (versionsort|struct dirent|getdirentries|alphasort|scandir(at)?)(64)?
+_de3 = MAXNAMLEN|DIR|ino_t|d_ino|d_fileno|d_namlen
+_dirent_syms_re = $(_de1)|$(_de2)|$(_de3)
+# Prohibit the inclusion of dirent.h without an actual use.
+sc_prohibit_dirent_without_use:
+ @h='dirent.h' \
+ re='\<($(_dirent_syms_re))\>' \
+ $(_sc_header_without_use)
+
+# Prohibit the inclusion of verify.h without an actual use.
+sc_prohibit_verify_without_use:
+ @h='verify.h' \
+ re='\<(verify(true|expr)?|static_assert) *\(' \
+ $(_sc_header_without_use)
+
+# Don't include xfreopen.h unless you use one of its functions.
+sc_prohibit_xfreopen_without_use:
+ @h='xfreopen.h' re='\<xfreopen *\(' $(_sc_header_without_use)
sc_obsolete_symbols:
- @grep -nE '\<(HAVE''_FCNTL_H|O''_NDELAY)\>' \
- $$($(VC_LIST_EXCEPT)) && \
- { echo '$(ME): do not use HAVE''_FCNTL_H or O''_NDELAY' \
- 1>&2; exit 1; } || :
+ @prohibit='\<(HAVE''_FCNTL_H|O''_NDELAY)\>' \
+ halt='do not use HAVE''_FCNTL_H or O'_NDELAY \
+ $(_sc_search_regexp)
# FIXME: warn about definitions of EXIT_FAILURE, EXIT_SUCCESS, STREQ
-# Each nonempty line must start with a year number, or a TAB.
+# Each nonempty ChangeLog line must start with a year number, or a TAB.
sc_changelog:
- @grep -n '^[^12 ]' $$(find $(srcdir) -maxdepth 2 -name ChangeLog) && \
- { echo '$(ME): found unexpected prefix in a ChangeLog' 1>&2; \
- exit 1; } || :
-
-# Ensure that dd's definition of LONGEST_SYMBOL stays in sync
-# with the strings from the two affected variables.
-dd_c = $(srcdir)/src/dd.c
-sc_dd_max_sym_length:
-ifneq ($(wildcard $(dd_c)),)
- @len=$$( (sed -n '/conversions\[\] =$$/,/^};/p' $(dd_c);\
- sed -n '/flags\[\] =$$/,/^};/p' $(dd_c) ) \
- |sed -n '/"/s/^[^"]*"\([^"]*\)".*/\1/p' \
- | wc --max-line-length); \
- max=$$(sed -n '/^#define LONGEST_SYMBOL /s///p' $(dd_c) \
- |tr -d '"' | wc --max-line-length); \
- if test "$$len" = "$$max"; then :; else \
- echo 'dd.c: LONGEST_SYMBOL is not longest' 1>&2; \
- exit 1; \
- fi
-endif
-
-# Many m4 macros names once began with `jm_'.
-# On 2004-04-13, they were all changed to start with gl_ instead.
-# Make sure that none are inadvertently reintroduced.
-sc_prohibit_jm_in_m4:
- @grep -nE 'jm_[A-Z]' \
- $$($(VC_LIST) m4 |grep '\.m4$$') && \
- { echo '$(ME): do not use jm_ in m4 macro names' \
- 1>&2; exit 1; } || :
-
-sc_root_tests:
- @t1=sc-root.expected; t2=sc-root.actual; \
- grep -nl '^PRIV_CHECK_ARG=require-root' \
- $$($(VC_LIST) tests) |sed s/tests/./ |sort > $$t1; \
- sed -n 's, cd \([^ ]*\) .*MAKE..check TESTS=\(.*\),./\1/\2,p' \
- $(srcdir)/tests/Makefile.am |sort > $$t2; \
- diff -u $$t1 $$t2 || diff=1; \
- rm -f $$t1 $$t2; \
- test "$$diff" \
- && { echo 'tests/Makefile.am: missing check-root action'>&2; \
- exit 1; } || :
-
-# Files in src/ should not include directly any of
-# the headers already included via system.h.
-sc_system_h_headers:
- @if test -f $(srcdir)/src/system.h; then \
- pat=$$( \
- sed -n '/^# *include /s///p' $(srcdir)/src/system.h /dev/null \
- | grep -Ev 'sys/(param|file)\.h' \
- | sed 's/ .*//;;s/^["<]/^# *include [<"]/;s/\.h[">]$$/\\.h[">]/' \
- ) && \
- grep -nE -f "$pat" \
- $$($(VC_LIST) src | \
- grep -Ev '((copy|system)\.h|parse-gram\.c)$$') \
- && { echo '$(ME): the above are already included via system.h'\
- 1>&2; exit 1; } || :; \
+ @prohibit='^[^12 ]' \
+ in_vc_files='^ChangeLog$$' \
+ halt='found unexpected prefix in a ChangeLog' \
+ $(_sc_search_regexp)
+
+# Ensure that each .c file containing a "main" function also
+# calls set_program_name.
+sc_program_name:
+ @require='set_program_name *\(m?argv\[0\]\);' \
+ in_vc_files='\.c$$' \
+ containing='\<main *(' \
+ halt='the above files do not call set_program_name' \
+ $(_sc_search_regexp)
+
+# Ensure that each .c file containing a "main" function also
+# calls bindtextdomain.
+sc_bindtextdomain:
+ @require='bindtextdomain *\(' \
+ in_vc_files='\.c$$' \
+ containing='\<main *(' \
+ halt='the above files do not call bindtextdomain' \
+ $(_sc_search_regexp)
+
+# Require that the final line of each test-lib.sh-using test be this one:
+# Exit $fail
+# Note: this test requires GNU grep's --label= option.
+Exit_witness_file ?= tests/test-lib.sh
+Exit_base := $(notdir $(Exit_witness_file))
+sc_require_test_exit_idiom:
+ @if test -f $(srcdir)/$(Exit_witness_file); then \
+ die=0; \
+ for i in $$(grep -l -F 'srcdir/$(Exit_base)' \
+ $$($(VC_LIST) tests)); do \
+ tail -n1 $$i | grep '^Exit .' > /dev/null \
+ && : || { die=1; echo $$i; } \
+ done; \
+ test $$die = 1 && \
+ { echo 1>&2 '$(ME): the final line in each of the above is not:'; \
+ echo 1>&2 'Exit something'; \
+ exit 1; } || :; \
fi
-sc_sun_os_names:
- @grep -nEi \
- 'solaris[^[:alnum:]]*2\.(7|8|9|[1-9][0-9])|sunos[^[:alnum:]][6-9]' \
- $$($(VC_LIST_EXCEPT)) && \
- { echo '$(ME): found misuse of Sun OS version numbers' 1>&2; \
- exit 1; } || :
-
-sc_the_the:
- @grep -ni '\<the ''the\>' $$($(VC_LIST_EXCEPT)) && \
- { echo '$(ME): found use of "the ''the";' 1>&2; \
- exit 1; } || :
-
-sc_tight_scope:
- test ! -d src || $(MAKE) -C src $@
-
sc_trailing_blank:
- @grep -n '[ ]$$' $$($(VC_LIST_EXCEPT)) && \
- { echo '$(ME): found trailing blank(s)' \
- 1>&2; exit 1; } || :
+ @prohibit='[ ]$$' \
+ halt='found trailing blank(s)' \
+ $(_sc_search_regexp)
# Match lines like the following, but where there is only one space
# between the options and the description:
# -D, --all-repeated[=delimit-method] print all duplicate lines\n
longopt_re = --[a-z][0-9A-Za-z-]*(\[?=[0-9A-Za-z-]*\]?)?
sc_two_space_separator_in_usage:
- @grep -nE '^ *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$' \
- $$($(VC_LIST_EXCEPT)) && \
- { echo "$(ME): help2man requires at least two spaces between"; \
- echo "$(ME): an option and its description"; \
- 1>&2; exit 1; } || :
+ @prohibit='^ *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$' \
+ halt='help2man requires at least two spaces between an option and its description'\
+ $(_sc_search_regexp)
+
+# A regexp matching function names like "error" that may be used
+# to emit translatable messages.
+_gl_translatable_diag_func_re ?= error
# Look for diagnostics that aren't marked for translation.
# This won't find any for which error's format string is on a separate line.
sc_unmarked_diagnostics:
- @grep -nE \
- '\<error \([^"]*"[^"]*[a-z]{3}' $$($(VC_LIST_EXCEPT)) \
- | grep -v '_''(' && \
- { echo '$(ME): found unmarked diagnostic(s)' 1>&2; \
- exit 1; } || :
+ @prohibit='\<$(_gl_translatable_diag_func_re) *\([^"]*"[^"]*[a-z]{3}' \
+ exclude='(_|ngettext ?)\(' \
+ halt='$(ME): found unmarked diagnostic(s)' \
+ $(_sc_search_regexp)
# Avoid useless parentheses like those in this example:
# #if defined (SYMBOL) || defined (SYM2)
sc_useless_cpp_parens:
- @grep -n '^# *if .*defined *(' $$($(VC_LIST_EXCEPT)) && \
- { echo '$(ME): found useless parentheses in cpp directive' \
- 1>&2; exit 1; } || :
+ @prohibit='^# *if .*defined *\(' \
+ halt='found useless parentheses in cpp directive' \
+ $(_sc_search_regexp)
+
+# List headers for which HAVE_HEADER_H is always true, assuming you are
+# using the appropriate gnulib module. CAUTION: for each "unnecessary"
+# #if HAVE_HEADER_H that you remove, be sure that your project explicitly
+# requires the gnulib module that guarantees the usability of that header.
+gl_assured_headers_ = \
+ cd $(gnulib_dir)/lib && echo *.in.h|sed 's/\.in\.h//g'
+
+# Convert the list of names to upper case, and replace each space with "|".
+az_ = abcdefghijklmnopqrstuvwxyz
+AZ_ = ABCDEFGHIJKLMNOPQRSTUVWXYZ
+gl_header_upper_case_or_ = \
+ $$($(gl_assured_headers_) \
+ | tr $(az_)/.- $(AZ_)___ \
+ | tr -s ' ' '|' \
+ )
+sc_prohibit_always_true_header_tests:
+ @or=$(gl_header_upper_case_or_); \
+ re="HAVE_($$or)_H"; \
+ prohibit='\<'"$$re"'\>' \
+ halt=$$(printf '%s\n' \
+ 'do not test the above HAVE_<header>_H symbol(s);' \
+ ' with the corresponding gnulib module, they are always true') \
+ $(_sc_search_regexp)
+
+# ==================================================================
+gl_other_headers_ ?= \
+ intprops.h \
+ openat.h \
+ stat-macros.h
+
+# Perl -lne code to extract "significant" cpp-defined symbols from a
+# gnulib header file, eliminating a few common false-positives.
+# The exempted names below are defined only conditionally in gnulib,
+# and hence sometimes must/may be defined in application code.
+gl_extract_significant_defines_ = \
+ /^\# *define ([^_ (][^ (]*)(\s*\(|\s+\w+)/\
+ && $$2 !~ /(?:rpl_|_used_without_)/\
+ && $$1 !~ /^(?:NSIG|ENODATA)$$/\
+ && $$1 !~ /^(?:SA_RESETHAND|SA_RESTART)$$/\
+ and print $$1
+
+# Create a list of regular expressions matching the names
+# of macros that are guaranteed to be defined by parts of gnulib.
+define def_sym_regex
+ gen_h=$(gl_generated_headers_); \
+ (cd $(gnulib_dir)/lib; \
+ for f in *.in.h $(gl_other_headers_); do \
+ test -f $$f \
+ && perl -lne '$(gl_extract_significant_defines_)' $$f; \
+ done; \
+ ) | sort -u \
+ | sed 's/^/^ *# *(define|undef) */;s/$$/\\>/'
+endef
-# Ensure that the c99-to-c89 patch applies cleanly.
-patch-check:
- if test -f src/c99-to-c89.diff; then \
- rm -rf src-c89 $@.1 $@.2 && \
- cp -a src src-c89 && \
- (cd src-c89; patch -V never --fuzz=0) < src/c99-to-c89.diff \
- > $@.1 2>&1 && \
- { grep -v '^patching file ' $@.1 > $@.2 || :; } && \
- test -s $@.2 && \
- rm -rf src-c89 $@.1 $@.2; \
+# Don't define macros that we already get from gnulib header files.
+sc_prohibit_always-defined_macros:
+ @if test -d $(gnulib_dir); then \
+ case $$(echo all: | grep -l -f - Makefile) in Makefile);; *) \
+ echo '$(ME): skipping $@: you lack GNU grep' 1>&2; exit 0;; \
+ esac; \
+ $(def_sym_regex) | grep -E -f - $$($(VC_LIST_EXCEPT)) \
+ && { echo '$(ME): define the above via some gnulib .h file' \
+ 1>&2; exit 1; } || :; \
fi
+# ==================================================================
+
+# Prohibit checked in backup files.
+sc_prohibit_backup_files:
+ @$(VC_LIST) | grep '~$$' && \
+ { echo '$(ME): found version controlled backup file' 1>&2; \
+ exit 1; } || :
-# Ensure that date's --help output stays in sync with the info
-# documentation for GNU strftime. The only exception is %N,
-# which date accepts but GNU strftime does not.
-extract_char = sed 's/^[^%][^%]*%\(.\).*/\1/'
-strftime-check:
- if test -f $(srcdir)/src/date.c; then \
- grep '^ %. ' $(srcdir)/src/date.c | sort \
- | $(extract_char) > $@-src; \
- { echo N; \
- info libc date calendar format | grep '^ `%.'\' \
- | $(extract_char); } | sort > $@-info; \
- diff -u $@-src $@-info || exit 1; \
- rm -f $@-src $@-info; \
+# Require the latest GPL.
+sc_GPL_version:
+ @prohibit='either ''version [^3]' \
+ halt='GPL vN, N!=3' \
+ $(_sc_search_regexp)
+
+# Require the latest GFDL. Two regexp, since some .texi files end up
+# line wrapping between 'Free Documentation License,' and 'Version'.
+_GFDL_regexp = (Free ''Documentation.*Version 1\.[^3]|Version 1\.[^3] or any)
+sc_GFDL_version:
+ @prohibit='$(_GFDL_regexp)' \
+ halt='GFDL vN, N!=3' \
+ $(_sc_search_regexp)
+
+# Don't use Texinfo's @acronym{}.
+# http://lists.gnu.org/archive/html/bug-gnulib/2010-03/msg00321.html
+texinfo_suffix_re_ ?= \.(txi|texi(nfo)?)$$
+sc_texinfo_acronym:
+ @prohibit='@acronym\{' \
+ in_vc_files='$(texinfo_suffix_re_)' \
+ halt='found use of Texinfo @acronym{}' \
+ $(_sc_search_regexp)
+
+cvs_keywords = \
+ Author|Date|Header|Id|Name|Locker|Log|RCSfile|Revision|Source|State
+
+sc_prohibit_cvs_keyword:
+ @prohibit='\$$($(cvs_keywords))\$$' \
+ halt='do not use CVS keyword expansion' \
+ $(_sc_search_regexp)
+
+# This Perl code is slightly obfuscated. Not only is each "$" doubled
+# because it's in a Makefile, but the $$c's are comments; we cannot
+# use "#" due to the way the script ends up concatenated onto one line.
+# It would be much more concise, and would produce better output (including
+# counts) if written as:
+# perl -ln -0777 -e '/\n(\n+)$/ and print "$ARGV: ".length $1' ...
+# but that would be far less efficient, reading the entire contents
+# of each file, rather than just the last two bytes of each.
+# In addition, while the code below detects both blank lines and a missing
+# newline at EOF, the above detects only the former.
+#
+# This is a perl script that is expected to be the single-quoted argument
+# to a command-line "-le". The remaining arguments are file names.
+# Print the name of each file that does not end in exactly one newline byte.
+# I.e., warn if there are blank lines (2 or more newlines), or if the
+# last byte is not a newline. However, currently we don't complain
+# about any file that contains exactly one byte.
+# Exit nonzero if at least one such file is found, otherwise, exit 0.
+# Warn about, but otherwise ignore open failure. Ignore seek/read failure.
+#
+# Use this if you want to remove trailing empty lines from selected files:
+# perl -pi -0777 -e 's/\n\n+$/\n/' files...
+#
+require_exactly_one_NL_at_EOF_ = \
+ foreach my $$f (@ARGV) \
+ { \
+ open F, "<", $$f or (warn "failed to open $$f: $$!\n"), next; \
+ my $$p = sysseek (F, -2, 2); \
+ my $$c = "seek failure probably means file has < 2 bytes; ignore"; \
+ my $$last_two_bytes; \
+ defined $$p and $$p = sysread F, $$last_two_bytes, 2; \
+ close F; \
+ $$c = "ignore read failure"; \
+ $$p && ($$last_two_bytes eq "\n\n" \
+ || substr ($$last_two_bytes,1) ne "\n") \
+ and (print $$f), $$fail=1; \
+ } \
+ END { exit defined $$fail }
+sc_prohibit_empty_lines_at_EOF:
+ @perl -le '$(require_exactly_one_NL_at_EOF_)' $$($(VC_LIST_EXCEPT)) \
+ || { echo '$(ME): empty line(s) or no newline at EOF' \
+ 1>&2; exit 1; } || :
+
+# Make sure we don't use st_blocks. Use ST_NBLOCKS instead.
+# This is a bit of a kludge, since it prevents use of the string
+# even in comments, but for now it does the job with no false positives.
+sc_prohibit_stat_st_blocks:
+ @prohibit='[.>]st_blocks' \
+ halt='do not use st_blocks; use ST_NBLOCKS' \
+ $(_sc_search_regexp)
+
+# Make sure we don't define any S_IS* macros in src/*.c files.
+# They're already defined via gnulib's sys/stat.h replacement.
+sc_prohibit_S_IS_definition:
+ @prohibit='^ *# *define *S_IS' \
+ halt='do not define S_IS* macros; include <sys/stat.h>' \
+ $(_sc_search_regexp)
+
+# Perl block to convert a match to FILE_NAME:LINENO:TEST,
+# that is shared by two definitions below.
+perl_filename_lineno_text_ = \
+ -e ' {' \
+ -e ' $$n = ($$` =~ tr/\n/\n/ + 1);' \
+ -e ' ($$v = $$&) =~ s/\n/\\n/g;' \
+ -e ' print "$$ARGV:$$n:$$v\n";' \
+ -e ' }'
+
+prohibit_doubled_word_RE_ ?= \
+ /\b(then?|[iao]n|i[fst]|but|f?or|at|and|[dt]o)\s+\1\b/gims
+prohibit_doubled_word_ = \
+ -e 'while ($(prohibit_doubled_word_RE_))' \
+ $(perl_filename_lineno_text_)
+
+# Define this to a regular expression that matches
+# any filename:dd:match lines you want to ignore.
+# The default is to ignore no matches.
+ignore_doubled_word_match_RE_ ?= ^$$
+
+sc_prohibit_doubled_word:
+ @perl -n -0777 $(prohibit_doubled_word_) $$($(VC_LIST_EXCEPT)) \
+ | grep -vE '$(ignore_doubled_word_match_RE_)' \
+ | grep . && { echo '$(ME): doubled words' 1>&2; exit 1; } || :
+
+# A regular expression matching undesirable combinations of words like
+# "can not"; this matches them even when the two words appear on different
+# lines, but not when there is an intervening delimiter like "#" or "*".
+# Similarly undesirable, "See @xref{...}", since an @xref should start
+# a sentence. Explicitly prohibit any prefix of "see" or "also".
+# Also prohibit a prefix matching "\w+ +".
+# @pxref gets the same see/also treatment and should be parenthesized;
+# presume it must *not* start a sentence.
+bad_xref_re_ ?= (?:[\w,:;] +|(?:see|also)\s+)\@xref\{
+bad_pxref_re_ ?= (?:[.!?]|(?:see|also))\s+\@pxref\{
+prohibit_undesirable_word_seq_RE_ ?= \
+ /(?:\bcan\s+not\b|$(bad_xref_re_)|$(bad_pxref_re_))/gims
+prohibit_undesirable_word_seq_ = \
+ -e 'while ($(prohibit_undesirable_word_seq_RE_))' \
+ $(perl_filename_lineno_text_)
+# Define this to a regular expression that matches
+# any filename:dd:match lines you want to ignore.
+# The default is to ignore no matches.
+ignore_undesirable_word_sequence_RE_ ?= ^$$
+
+sc_prohibit_undesirable_word_seq:
+ @perl -n -0777 $(prohibit_undesirable_word_seq_) \
+ $$($(VC_LIST_EXCEPT)) \
+ | grep -vE '$(ignore_undesirable_word_sequence_RE_)' | grep . \
+ && { echo '$(ME): undesirable word sequence' >&2; exit 1; } || :
+
+_ptm1 = use "test C1 && test C2", not "test C1 -''a C2"
+_ptm2 = use "test C1 || test C2", not "test C1 -''o C2"
+# Using test's -a and -o operators is not portable.
+# We prefer test over [, since the latter is spelled [[ in configure.ac.
+sc_prohibit_test_minus_ao:
+ @prohibit='(\<test| \[+) .+ -[ao] ' \
+ halt='$(_ptm1); $(_ptm2)' \
+ $(_sc_search_regexp)
+
+# Avoid a test bashism.
+sc_prohibit_test_double_equal:
+ @prohibit='(\<test| \[+) .+ == ' \
+ containing='#! */bin/[a-z]*sh' \
+ halt='use "test x = x", not "test x =''= x"' \
+ $(_sc_search_regexp)
+
+# Each program that uses proper_name_utf8 must link with one of the
+# ICONV libraries. Otherwise, some ICONV library must appear in LDADD.
+# The perl -0777 invocation below extracts the possibly-multi-line
+# definition of LDADD from the appropriate Makefile.am and exits 0
+# when it contains "ICONV".
+sc_proper_name_utf8_requires_ICONV:
+ @progs=$$(grep -l 'proper_name_utf8 ''("' $$($(VC_LIST_EXCEPT)));\
+ if test "x$$progs" != x; then \
+ fail=0; \
+ for p in $$progs; do \
+ dir=$$(dirname "$$p"); \
+ perl -0777 \
+ -ne 'exit !(/^LDADD =(.+?[^\\]\n)/ms && $$1 =~ /ICONV/)' \
+ $$dir/Makefile.am && continue; \
+ base=$$(basename "$$p" .c); \
+ grep "$${base}_LDADD.*ICONV)" $$dir/Makefile.am > /dev/null \
+ || { fail=1; echo 1>&2 "$(ME): $$p uses proper_name_utf8"; }; \
+ done; \
+ test $$fail = 1 && \
+ { echo 1>&2 '$(ME): the above do not link with any ICONV library'; \
+ exit 1; } || :; \
fi
-check-AUTHORS:
- test ! -d src || $(MAKE) -C src $@
+# Warn about "c0nst struct Foo const foo[]",
+# but not about "char const *const foo" or "#define const const".
+sc_redundant_const:
+ @prohibit='\bconst\b[[:space:][:alnum:]]{2,}\bconst\b' \
+ halt='redundant "const" in declarations' \
+ $(_sc_search_regexp)
+
+sc_const_long_option:
+ @prohibit='^ *static.*struct option ' \
+ exclude='const struct option|struct option const' \
+ halt='$(ME): add "const" to the above declarations' \
+ $(_sc_search_regexp)
NEWS_hash = \
$$(sed -n '/^\*.* $(PREV_VERSION_REGEXP) ([0-9-]*)/,$$p' \
@@ -407,46 +1031,64 @@ update-NEWS-hash: NEWS
# Ensure that we use only the standard $(VAR) notation,
# not @...@ in Makefile.am, now that we can rely on automake
# to emit a definition for each substituted variable.
-makefile-check:
- grep -nE '@[A-Z_0-9]+@' `find $(srcdir) -name Makefile.am` \
+# However, there is still one case in which @VAR@ use is not just
+# legitimate, but actually required: when augmenting an automake-defined
+# variable with a prefix. For example, gettext uses this:
+# MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@
+# otherwise, makeinfo would put German or French (current locale)
+# navigation hints in the otherwise-English documentation.
+#
+# Allow the package to add exceptions via a hook in cfg.mk;
+# for example, @PRAGMA_SYSTEM_HEADER@ can be permitted by
+# setting this to ' && !/PRAGMA_SYSTEM_HEADER/'.
+_makefile_at_at_check_exceptions ?=
+sc_makefile_at_at_check:
+ @perl -ne '/\@\w+\@/' \
+ -e ' && !/(\w+)\s+=.*\@\1\@$$/' \
+ -e ''$(_makefile_at_at_check_exceptions) \
+ -e 'and (print "$$ARGV:$$.: $$_"), $$m=1; END {exit !$$m}' \
+ $$($(VC_LIST_EXCEPT) | grep -E '(^|/)(Makefile\.am|[^/]+\.mk)$$') \
&& { echo '$(ME): use $$(...), not @...@' 1>&2; exit 1; } || :
-news-date-check: NEWS
- today=`date +%Y-%m-%d`; \
- if head NEWS | grep '^\*.* $(VERSION_REGEXP) ('$$today')' \
- >/dev/null; then \
+news-check: NEWS
+ if sed -n $(news-check-lines-spec)p $(srcdir)/NEWS \
+ | grep -E $(news-check-regexp) >/dev/null; then \
:; \
else \
- echo "version or today's date is not in NEWS" 1>&2; \
+ echo 'NEWS: $$(news-check-regexp) failed to match' 1>&2; \
exit 1; \
fi
-changelog-check:
- if head ChangeLog | grep 'Version $(VERSION_REGEXP)\.$$' \
- >/dev/null; then \
- :; \
- else \
- echo "$(VERSION) not in ChangeLog" 1>&2; \
- exit 1; \
- fi
+sc_makefile_TAB_only_indentation:
+ @prohibit='^ [ ]{8}' \
+ in_vc_files='akefile|\.mk$$' \
+ halt='found TAB-8-space indentation' \
+ $(_sc_search_regexp)
-m4-check:
- @shopt -s nullglob; \
- grep 'AC_DEFUN([^[]' m4/*.m4 /dev/null \
- && { echo '$(ME): quote the first arg to AC_DEFUN' 1>&2; \
- exit 1; } || :
+sc_m4_quote_check:
+ @prohibit='(AC_DEFINE(_UNQUOTED)?|AC_DEFUN)\([^[]' \
+ in_vc_files='(^configure\.ac|\.m4)$$' \
+ halt='quote the first arg to AC_DEF*' \
+ $(_sc_search_regexp)
+
+fix_po_file_diag = \
+'you have changed the set of files with translatable diagnostics;\n\
+apply the above patch\n'
# Verify that all source files using _() are listed in po/POTFILES.in.
-# FIXME: don't hard-code file names below; use a more general mechanism.
-po-check:
- if test -f po/POTFILES.in; then \
- grep -E -v '^(#|$$)' po/POTFILES.in \
+po_file ?= $(srcdir)/po/POTFILES.in
+generated_files ?= $(srcdir)/lib/*.[ch]
+sc_po_check:
+ @if test -f $(po_file); then \
+ grep -E -v '^(#|$$)' $(po_file) \
| grep -v '^src/false\.c$$' | sort > $@-1; \
files=; \
- for file in $$($(VC_LIST_EXCEPT)) lib/*.[ch]; do \
+ for file in $$($(VC_LIST_EXCEPT)) $(generated_files); do \
+ test -r $$file || continue; \
case $$file in \
- djgpp/* | man/*) continue;; \
- */c99-to-c89.diff) continue;; \
+ *.m4|*.mk) continue ;; \
+ *.?|*.??) ;; \
+ *) continue;; \
esac; \
case $$file in \
*.[ch]) \
@@ -456,57 +1098,123 @@ po-check:
files="$$files $$file"; \
done; \
grep -E -l '\b(N?_|gettext *)\([^)"]*("|$$)' $$files \
- | sort -u > $@-2; \
- diff -u $@-1 $@-2 || exit 1; \
+ | sed 's|^$(_dot_escaped_srcdir)/||' | sort -u > $@-2; \
+ diff -u -L $(po_file) -L $(po_file) $@-1 $@-2 \
+ || { printf '$(ME): '$(fix_po_file_diag) 1>&2; exit 1; }; \
rm -f $@-1 $@-2; \
fi
-# In a definition of #define AUTHORS "... and ..." where the RHS contains
-# the English word `and', the string must be marked with `N_ (...)' so that
-# gettext recognizes it as a string requiring translation.
-author_mark_check:
- @shopt -s nullglob; \
- grep -n '^# *define AUTHORS "[^"]* and ' src/*.c /dev/null \
- | grep -v ' N_ (' && \
- { echo '$(ME): enclose the above strings in N_ (...)' 1>&2; \
- exit 1; } || :
-
# Sometimes it is useful to change the PATH environment variable
# in Makefiles. When doing so, it's better not to use the Unix-centric
-# path separator of `:', but rather the automake-provided `@PATH_SEPARATOR@'.
-# It'd be better to use `find -print0 ...|xargs -0 ...', but less portable,
-# and there probably aren't many projects with so many Makefile.am files
-# that we'd have to worry about limits on command line length.
-msg = '$(ME): Do not use `:'\'' above; use @PATH_SEPARATOR@ instead'
-makefile_path_separator_check:
- @grep -n 'PATH=.*:' `find $(srcdir) -name Makefile.am` \
- && { echo $(msg) 1>&2; exit 1; } || :
-
-# Check that `make alpha' will not fail at the end of the process.
+# path separator of ':', but rather the automake-provided '$(PATH_SEPARATOR)'.
+msg = '$(ME): Do not use ":" above; use $$(PATH_SEPARATOR) instead'
+sc_makefile_path_separator_check:
+ @prohibit='PATH[=].*:' \
+ in_vc_files='akefile|\.mk$$' \
+ halt=$(msg) \
+ $(_sc_search_regexp)
+
+# Check that 'make alpha' will not fail at the end of the process,
+# i.e., when pkg-M.N.tar.xz already exists (either in "." or in ../release)
+# and is read-only.
writable-files:
- if test -d $(release_archive_dir); then :; else \
- mkdir $(release_archive_dir); \
+ if test -d $(release_archive_dir); then \
+ for file in $(DIST_ARCHIVES); do \
+ for p in ./ $(release_archive_dir)/; do \
+ test -e $$p$$file || continue; \
+ test -w $$p$$file \
+ || { echo ERROR: $$p$$file is not writable; fail=1; }; \
+ done; \
+ done; \
+ test "$$fail" && exit 1 || : ; \
+ else :; \
fi
- for file in $(distdir).tar.gz \
- $(release_archive_dir)/$(distdir).tar.gz; do \
- test -e $$file || continue; \
- test -w $$file \
- || { echo ERROR: $$file is not writable; fail=1; }; \
- done; \
- test "$$fail" && exit 1 || :
-v_etc_file = lib/version-etc.c
+v_etc_file = $(gnulib_dir)/lib/version-etc.c
+sample-test = tests/sample-test
+texi = doc/$(PACKAGE).texi
# Make sure that the copyright date in $(v_etc_file) is up to date.
-copyright-check:
- @if test -f $(v_etc_file); then \
- grep 'enum { COPYRIGHT_YEAR = '$$(date +%Y)' };' $(v_etc_file) \
- >/dev/null \
- || { echo 'out of date copyright in $(v_etc_file); update it' 1>&2; \
- exit 1; }; \
+# Do the same for the $(sample-test) and the main doc/.texi file.
+sc_copyright_check:
+ @require='enum { COPYRIGHT_YEAR = '$$(date +%Y)' };' \
+ in_files=$(v_etc_file) \
+ halt='out of date copyright in $(v_etc_file); update it' \
+ $(_sc_search_regexp)
+ @require='# Copyright \(C\) '$$(date +%Y)' Free' \
+ in_vc_files=$(sample-test) \
+ halt='out of date copyright in $(sample-test); update it' \
+ $(_sc_search_regexp)
+ @require='Copyright @copyright\{\} .*'$$(date +%Y)' Free' \
+ in_vc_files=$(texi) \
+ halt='out of date copyright in $(texi); update it' \
+ $(_sc_search_regexp)
+
+# If tests/help-version exists and seems to be new enough, assume that its
+# use of init.sh and path_prepend_ is correct, and ensure that every other
+# use of init.sh is identical.
+# This is useful because help-version cross-checks prog --version
+# with $(VERSION), which verifies that its path_prepend_ invocation
+# sets PATH correctly. This is an inexpensive way to ensure that
+# the other init.sh-using tests also get it right.
+_hv_file ?= $(srcdir)/tests/help-version
+_hv_regex_weak ?= ^ *\. .*/init\.sh"
+# Fix syntax-highlighters "
+_hv_regex_strong ?= ^ *\. "\$${srcdir=\.}/init\.sh"
+sc_cross_check_PATH_usage_in_tests:
+ @if test -f $(_hv_file); then \
+ grep -l 'VERSION mismatch' $(_hv_file) >/dev/null \
+ || { echo "$@: skipped: no such file: $(_hv_file)" 1>&2; \
+ exit 0; }; \
+ grep -lE '$(_hv_regex_strong)' $(_hv_file) >/dev/null \
+ || { echo "$@: $(_hv_file) lacks conforming use of init.sh" 1>&2; \
+ exit 1; }; \
+ good=$$(grep -E '$(_hv_regex_strong)' $(_hv_file)); \
+ grep -LFx "$$good" \
+ $$(grep -lE '$(_hv_regex_weak)' $$($(VC_LIST_EXCEPT))) \
+ | grep . && \
+ { echo "$(ME): the above files use path_prepend_ inconsistently" \
+ 1>&2; exit 1; } || :; \
fi
+# BRE regex of file contents to identify a test script.
+_test_script_regex ?= \<init\.sh\>
+
+# In tests, use "compare expected actual", not the reverse.
+sc_prohibit_reversed_compare_failure:
+ @prohibit='\<compare [^ ]+ ([^ ]*exp|/dev/null)' \
+ containing='$(_test_script_regex)' \
+ halt='reversed compare arguments' \
+ $(_sc_search_regexp)
+
+# #if HAVE_... will evaluate to false for any non numeric string.
+# That would be flagged by using -Wundef, however gnulib currently
+# tests many undefined macros, and so we can't enable that option.
+# So at least preclude common boolean strings as macro values.
+sc_Wundef_boolean:
+ @prohibit='^#define.*(yes|no|true|false)$$' \
+ in_files='$(CONFIG_INCLUDE)' \
+ halt='Use 0 or 1 for macro values' \
+ $(_sc_search_regexp)
+
+# Even if you use pathmax.h to guarantee that PATH_MAX is defined, it might
+# not be constant, or might overflow a stack. In general, use PATH_MAX as
+# a limit, not an array or alloca size.
+sc_prohibit_path_max_allocation:
+ @prohibit='(\balloca *\([^)]*|\[[^]]*)PATH_MAX' \
+ halt='Avoid stack allocations of size PATH_MAX' \
+ $(_sc_search_regexp)
+
+sc_vulnerable_makefile_CVE-2009-4029:
+ @prohibit='perm -777 -exec chmod a\+rwx|chmod 777 \$$\(distdir\)' \
+ in_files=$$(find $(srcdir) -name Makefile.in) \
+ halt=$$(printf '%s\n' \
+ 'the above files are vulnerable; beware of running' \
+ ' "make dist*" rules, and upgrade to fixed automake' \
+ ' see http://bugzilla.redhat.com/542609 for details') \
+ $(_sc_search_regexp)
+
vc-diff-check:
- (CDPATH=; cd $(srcdir) && $(VC) diff) > vc-diffs || :
+ (unset CDPATH; cd $(srcdir) && $(VC) diff) > vc-diffs || :
if test -s vc-diffs; then \
cat vc-diffs; \
echo "Some files are locally modified:" 1>&2; \
@@ -515,57 +1223,6 @@ vc-diff-check:
rm vc-diffs; \
fi
-cvs-check: vc-diff-check
-
-maintainer-distcheck:
- $(MAKE) distcheck
- $(MAKE) -C tests $(AM_MAKEFLAGS) maintainer-check
- $(MAKE) my-distcheck
-
-# Don't make a distribution if checks fail.
-# Also, make sure the NEWS file is up-to-date.
-vc-dist: $(local-check) cvs-check maintainer-distcheck
- $(MAKE) dist
-
-# Use this to make sure we don't run these programs when building
-# from a virgin tgz file, below.
-null_AM_MAKEFLAGS = \
- ACLOCAL=false \
- AUTOCONF=false \
- AUTOMAKE=false \
- AUTOHEADER=false \
- MAKEINFO=false
-
-# Detect format-string/arg-list mismatches that would normally be obscured
-# by the use of _(). The --disable-nls effectively defines away that macro,
-# and building with CFLAGS='-Wformat -Werror' causes any format warning to be
-# treated as a failure. Also, check for shadowing problems with -Wshadow,
-# and for pointer arithmetic problems with -Wpointer-arith.
-# These CFLAGS are pretty strict. If you build this target, you probably
-# have to have a recent version of gcc and glibc headers.
-TMPDIR ?= /tmp
-t=$(TMPDIR)/$(PACKAGE)/test
-my-distcheck: $(local-check) $(release_archive_dir)/$(prev-tgz)
- -rm -rf $(t)
- mkdir -p $(t)
- GZIP=$(GZIP_ENV) $(AMTAR) -C $(t) -zxf $(distdir).tar.gz
- cd $(t)/$(distdir) \
- && ./configure --disable-nls \
- && $(MAKE) CFLAGS='-Werror -Wall -Wformat -Wshadow -Wpointer-arith' \
- AM_MAKEFLAGS='$(null_AM_MAKEFLAGS)' \
- && $(MAKE) dvi \
- && $(MAKE) check \
- && $(MAKE) distclean
- (cd $(t) && mv $(distdir) $(distdir).old \
- && $(AMTAR) -zxf - ) < $(distdir).tar.gz
- diff -ur $(t)/$(distdir).old $(t)/$(distdir)
- -rm -rf $(t)
- @echo "========================"; \
- echo "$(distdir).tar.gz is ready for distribution"; \
- echo "========================"
-
-prev-tgz = $(PACKAGE)-$(PREV_VERSION).tar.gz
-
rel-files = $(DIST_ARCHIVES)
gnulib_dir ?= $(srcdir)/gnulib
@@ -575,19 +1232,28 @@ bootstrap-tools ?= autoconf,automake,gnulib
# If it's not already specified, derive the GPG key ID from
# the signed tag we've just applied to mark this release.
gpg_key_ID ?= \
- $$(git cat-file tag v$(VERSION) > .ann-sig \
- && gpgv .ann-sig - < /dev/null 2>&1 \
- | sed -n '/.*key ID \([0-9A-F]*\)/s//\1/p'; rm -f .ann-sig)
+ $$(git cat-file tag v$(VERSION) \
+ | gpgv --status-fd 1 --keyring /dev/null - - 2>/dev/null \
+ | sed -n '/^\[GNUPG:\] ERRSIG /{s///;s/ .*//p;q}')
translation_project_ ?= coordinator@translationproject.org
-announcement_Cc_ ?= $(translation_project_), $(PACKAGE_BUGREPORT)
-announcement_mail_headers_ ?= \
-To: info-gnu@gnu.org \
-Cc: $(announcement_Cc_) \
-Mail-Followup-To: $(PACKAGE_BUGREPORT)
+
+# Make info-gnu the default only for a stable release.
+ifeq ($(RELEASE_TYPE),stable)
+ announcement_Cc_ ?= $(translation_project_), $(PACKAGE_BUGREPORT)
+ announcement_mail_headers_ ?= \
+ To: info-gnu@gnu.org \
+ Cc: $(announcement_Cc_) \
+ Mail-Followup-To: $(PACKAGE_BUGREPORT)
+else
+ announcement_Cc_ ?= $(translation_project_)
+ announcement_mail_headers_ ?= \
+ To: $(PACKAGE_BUGREPORT) \
+ Cc: $(announcement_Cc_)
+endif
announcement: NEWS ChangeLog $(rel-files)
- @$(build_aux)/announce-gen \
+ @$(srcdir)/$(_build-aux)/announce-gen \
--mail-headers='$(announcement_mail_headers_)' \
--release-type=$(RELEASE_TYPE) \
--package=$(PACKAGE) \
@@ -596,6 +1262,8 @@ announcement: NEWS ChangeLog $(rel-files)
--gpg-key-id=$(gpg_key_ID) \
--news=$(srcdir)/NEWS \
--bootstrap-tools=$(bootstrap-tools) \
+ $$(case ,$(bootstrap-tools), in (*,gnulib,*) \
+ echo --gnulib-version=$(gnulib-version);; esac) \
--no-print-checksums \
$(addprefix --url-dir=, $(url_dir_list))
@@ -606,61 +1274,96 @@ announcement: NEWS ChangeLog $(rel-files)
ftp-gnu = ftp://ftp.gnu.org/gnu
www-gnu = http://www.gnu.org
-# Use mv, if you don't have/want move-if-change.
-move_if_change ?= move-if-change
-
upload_dest_dir_ ?= $(PACKAGE)
-
emit_upload_commands:
@echo =====================================
@echo =====================================
- @echo "$(build_aux)/gnupload $(GNUPLOADFLAGS) \\"
+ @echo "$(srcdir)/$(_build-aux)/gnupload $(GNUPLOADFLAGS) \\"
@echo " --to $(gnu_rel_host):$(upload_dest_dir_) \\"
@echo " $(rel-files)"
@echo '# send the ~/announce-$(my_distdir) e-mail'
@echo =====================================
@echo =====================================
-noteworthy = * Noteworthy changes in release ?.? (????-??-??) [?]
define emit-commit-log
- printf '%s\n' 'post-release administrivia' '' \
- '* NEWS: Add header line for next release.' \
- '* .prev-version: Record previous version.' \
+ printf '%s\n' 'maint: post-release administrivia' '' \
+ '* NEWS: Add header line for next release.' \
+ '* .prev-version: Record previous version.' \
'* cfg.mk (old_NEWS_hash): Auto-update.'
endef
+.PHONY: no-submodule-changes
+no-submodule-changes:
+ if test -d $(srcdir)/.git; then \
+ diff=$$(cd $(srcdir) && git submodule -q foreach \
+ git diff-index --name-only HEAD) \
+ || exit 1; \
+ case $$diff in '') ;; \
+ *) echo '$(ME): submodule files are locally modified:'; \
+ echo "$$diff"; exit 1;; esac; \
+ else \
+ : ; \
+ fi
+
+submodule-checks ?= no-submodule-changes public-submodule-commit
+
+# Ensure that each sub-module commit we're using is public.
+# Without this, it is too easy to tag and release code that
+# cannot be built from a fresh clone.
+.PHONY: public-submodule-commit
+public-submodule-commit:
+ $(AM_V_GEN)if test -d $(srcdir)/.git; then \
+ cd $(srcdir) && \
+ git submodule --quiet foreach test '$$(git rev-parse $$sha1)' \
+ = '$$(git merge-base origin $$sha1)' \
+ || { echo '$(ME): found non-public submodule commit' >&2; \
+ exit 1; }; \
+ else \
+ : ; \
+ fi
+# This rule has a high enough utility/cost ratio that it should be a
+# dependent of "check" by default. However, some of us do occasionally
+# commit a temporary change that deliberately points to a non-public
+# submodule commit, and want to be able to use rules like "make check".
+# In that case, run e.g., "make check gl_public_submodule_commit="
+# to disable this test.
+gl_public_submodule_commit ?= public-submodule-commit
+check: $(gl_public_submodule_commit)
+
.PHONY: alpha beta stable
ALL_RECURSIVE_TARGETS += alpha beta stable
-alpha beta stable: news-date-check changelog-check $(local-check)
+alpha beta stable: $(local-check) writable-files $(submodule-checks)
test $@ = stable \
&& { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$' \
|| { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\
|| :
- $(MAKE) vc-dist
- $(MAKE) dist XZ_OPT=-9ev
+ $(MAKE) vc-diff-check
+ $(MAKE) news-check
+ $(MAKE) distcheck
+ $(MAKE) dist
$(MAKE) $(release-prep-hook) RELEASE_TYPE=$@
$(MAKE) -s emit_upload_commands RELEASE_TYPE=$@
# Override this in cfg.mk if you follow different procedures.
release-prep-hook ?= release-prep
+gl_noteworthy_news_ = * Noteworthy changes in release ?.? (????-??-??) [?]
.PHONY: release-prep
release-prep:
case $$RELEASE_TYPE in alpha|beta|stable) ;; \
*) echo "invalid RELEASE_TYPE: $$RELEASE_TYPE" 1>&2; exit 1;; esac
- $(MAKE) -s announcement > ~/announce-$(my_distdir)
+ $(MAKE) --no-print-directory -s announcement > ~/announce-$(my_distdir)
if test -d $(release_archive_dir); then \
ln $(rel-files) $(release_archive_dir); \
chmod a-w $(rel-files); \
fi
echo $(VERSION) > $(prev_version_file)
$(MAKE) update-NEWS-hash
- perl -pi -e '$$. == 3 and print "$(noteworthy)\n\n\n"' NEWS
+ perl -pi -e '$$. == 3 and print "$(gl_noteworthy_news_)\n\n\n"' NEWS
$(emit-commit-log) > .ci-msg
$(VC) commit -F .ci-msg -a
rm .ci-msg
-
# Override this with e.g., -s $(srcdir)/some_other_name.texi
# if the default $(PACKAGE)-derived name doesn't apply.
gendocs_options_ ?=
@@ -670,12 +1373,56 @@ web-manual:
@test -z "$(manual_title)" \
&& { echo define manual_title in cfg.mk 1>&2; exit 1; } || :
@cd '$(srcdir)/doc'; \
- $(SHELL) ../build-aux/gendocs.sh $(gendocs_options_) \
+ $(SHELL) ../$(_build-aux)/gendocs.sh $(gendocs_options_) \
-o '$(abs_builddir)/doc/manual' \
--email $(PACKAGE_BUGREPORT) $(PACKAGE) \
"$(PACKAGE_NAME) - $(manual_title)"
@echo " *** Upload the doc/manual directory to web-cvs."
+# Code Coverage
+
+init-coverage:
+ $(MAKE) $(AM_MAKEFLAGS) clean
+ lcov --directory . --zerocounters
+
+COVERAGE_CCOPTS ?= "-g --coverage"
+COVERAGE_OUT ?= doc/coverage
+
+build-coverage:
+ $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS)
+ $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) check
+ mkdir -p $(COVERAGE_OUT)
+ lcov --directory . --output-file $(COVERAGE_OUT)/$(PACKAGE).info \
+ --capture
+
+gen-coverage:
+ genhtml --output-directory $(COVERAGE_OUT) \
+ $(COVERAGE_OUT)/$(PACKAGE).info \
+ --highlight --frames --legend \
+ --title "$(PACKAGE_NAME)"
+
+coverage: init-coverage build-coverage gen-coverage
+
+# Update gettext files.
+PACKAGE ?= $(shell basename $(PWD))
+PO_DOMAIN ?= $(PACKAGE)
+POURL = http://translationproject.org/latest/$(PO_DOMAIN)/
+PODIR ?= po
+refresh-po:
+ rm -f $(PODIR)/*.po && \
+ echo "$(ME): getting translations into po (please ignore the robots.txt ERROR 404)..." && \
+ wget --no-verbose --directory-prefix $(PODIR) --no-directories --recursive --level 1 --accept .po --accept .po.1 $(POURL) && \
+ echo 'en@boldquot' > $(PODIR)/LINGUAS && \
+ echo 'en@quot' >> $(PODIR)/LINGUAS && \
+ ls $(PODIR)/*.po | sed 's/\.po//' | sed 's,$(PODIR)/,,' | sort >> $(PODIR)/LINGUAS
+
+ # Running indent once is not idempotent, but running it twice is.
+INDENT_SOURCES ?= $(C_SOURCES)
+.PHONY: indent
+indent:
+ indent $(INDENT_SOURCES)
+ indent $(INDENT_SOURCES)
+
# If you want to set UPDATE_COPYRIGHT_* environment variables,
# put the assignments in this variable.
update-copyright-env ?=
@@ -689,6 +1436,106 @@ update-copyright-env ?=
# in the file .x-update-copyright.
.PHONY: update-copyright
update-copyright:
- grep -l -w Copyright $$($(VC_LIST_EXCEPT)) \
- $(srcdir)/ChangeLog | grep -v COPYING \
- | $(update-copyright-env) xargs $(build_aux)/$@
+ grep -l -w Copyright \
+ $$(export VC_LIST_EXCEPT_DEFAULT=COPYING && $(VC_LIST_EXCEPT)) \
+ | $(update-copyright-env) xargs $(srcdir)/$(_build-aux)/$@
+
+# This tight_scope test is skipped with a warning if $(_gl_TS_headers) is not
+# overridden and $(_gl_TS_dir)/Makefile.am does not mention noinst_HEADERS.
+
+# NOTE: to override any _gl_TS_* default value, you must
+# define the variable(s) using "export" in cfg.mk.
+_gl_TS_dir ?= src
+
+ALL_RECURSIVE_TARGETS += sc_tight_scope
+sc_tight_scope: tight-scope.mk
+ @fail=0; \
+ if ! grep '^ *export _gl_TS_headers *=' $(srcdir)/cfg.mk \
+ > /dev/null \
+ && ! grep -w noinst_HEADERS $(srcdir)/$(_gl_TS_dir)/Makefile.am \
+ > /dev/null 2>&1; then \
+ echo '$(ME): skipping $@'; \
+ else \
+ $(MAKE) -s -C $(_gl_TS_dir) \
+ -f Makefile \
+ -f $(abs_top_srcdir)/cfg.mk \
+ -f $(abs_top_builddir)/$< \
+ _gl_tight_scope \
+ || fail=1; \
+ fi; \
+ rm -f $<; \
+ exit $$fail
+
+tight-scope.mk: $(ME)
+ @rm -f $@ $@-t
+ @perl -ne '/^# TS-start/.../^# TS-end/ and print' $(srcdir)/$(ME) > $@-t
+ @chmod a=r $@-t && mv $@-t $@
+
+ifeq (a,b)
+# TS-start
+
+# Most functions should have static scope.
+# Any that don't must be marked with 'extern', but 'main'
+# and 'usage' are exceptions: they're always extern, but
+# do not need to be marked. Symbols matching '__.*' are
+# reserved by the compiler, so are automatically excluded below.
+_gl_TS_unmarked_extern_functions ?= main usage
+_gl_TS_function_match ?= /^(?:$(_gl_TS_extern)) +.*?(\S+) *\(/
+
+# If your project uses a macro like "XTERN", then put
+# the following in cfg.mk to override this default:
+# export _gl_TS_extern = extern|XTERN
+_gl_TS_extern ?= extern
+
+# The second nm|grep checks for file-scope variables with 'extern' scope.
+# Without gnulib's progname module, you might put program_name here.
+# Symbols matching '__.*' are reserved by the compiler,
+# so are automatically excluded below.
+_gl_TS_unmarked_extern_vars ?=
+
+# NOTE: the _match variables are perl expressions -- not mere regular
+# expressions -- so that you can extend them to match other patterns
+# and easily extract matched variable names.
+# For example, if your project declares some global variables via
+# a macro like this: GLOBAL(type, var_name, initializer), then you
+# can override this definition to automatically extract those names:
+# export _gl_TS_var_match = \
+# /^(?:$(_gl_TS_extern)) .*?\**(\w+)(\[.*?\])?;/ || /\bGLOBAL\(.*?,\s*(.*?),/
+_gl_TS_var_match ?= /^(?:$(_gl_TS_extern)) .*?(\w+)(\[.*?\])?;/
+
+# The names of object files in (or relative to) $(_gl_TS_dir).
+_gl_TS_obj_files ?= *.$(OBJEXT)
+
+# Files in which to search for the one-line style extern declarations.
+# $(_gl_TS_dir)-relative.
+_gl_TS_headers ?= $(noinst_HEADERS)
+
+.PHONY: _gl_tight_scope
+_gl_tight_scope: $(bin_PROGRAMS)
+ t=exceptions-$$$$; \
+ trap 's=$$?; rm -f $$t; exit $$s' 0; \
+ for sig in 1 2 3 13 15; do \
+ eval "trap 'v=`expr $$sig + 128`; (exit $$v); exit $$v' $$sig"; \
+ done; \
+ src=`for f in $(SOURCES); do \
+ test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \
+ hdr=`for f in $(_gl_TS_headers); do \
+ test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \
+ ( printf '^%s$$\n' '__.*' $(_gl_TS_unmarked_extern_functions); \
+ grep -h -A1 '^extern .*[^;]$$' $$src \
+ | grep -vE '^(extern |--)' | sed 's/ .*//'; \
+ perl -lne \
+ '$(_gl_TS_function_match) and print "^$$1\$$"' $$hdr; \
+ ) | sort -u > $$t; \
+ nm -e $(_gl_TS_obj_files) | sed -n 's/.* T //p'|grep -Ev -f $$t \
+ && { echo the above functions should have static scope >&2; \
+ exit 1; } || : ; \
+ ( printf '^%s$$\n' '__.*' $(_gl_TS_unmarked_extern_vars); \
+ perl -lne '$(_gl_TS_var_match) and print "^$$1\$$"' $$hdr *.h \
+ ) | sort -u > $$t; \
+ nm -e $(_gl_TS_obj_files) | sed -n 's/.* [BCDGRS] //p' \
+ | sort -u | grep -Ev -f $$t \
+ && { echo the above variables should have static scope >&2; \
+ exit 1; } || :
+# TS-end
+endif
diff --git a/man/Makefile.am b/man/Makefile.am
index 76ae5e85..61f78c6c 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -1,6 +1,6 @@
# Make Autoconf man pages.
-# Copyright (C) 2001, 2004-2011 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2004-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/man/Makefile.in b/man/Makefile.in
new file mode 100644
index 00000000..e0499ad5
--- /dev/null
+++ b/man/Makefile.in
@@ -0,0 +1,478 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Make Autoconf man pages.
+
+# Copyright (C) 2001, 2004-2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = man
+DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
+ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/make-case.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+man1dir = $(mandir)/man1
+am__installdirs = "$(DESTDIR)$(man1dir)"
+NROFF = nroff
+MANS = $(dist_man_MANS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EMACS = @EMACS@
+EMACSLOADPATH = @EMACSLOADPATH@
+EXPR = @EXPR@
+GREP = @GREP@
+HELP2MAN = @HELP2MAN@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+M4_DEBUGFILE = @M4_DEBUGFILE@
+M4_GNU = @M4_GNU@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PERL_FLOCK = @PERL_FLOCK@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TEST_EMACS = @TEST_EMACS@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_cv_dir_trailing_space = @ac_cv_dir_trailing_space@
+ac_cv_sh_n_works = @ac_cv_sh_n_works@
+ac_cv_unsupported_fs_chars = @ac_cv_unsupported_fs_chars@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+lispdir = @lispdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+dist_man_MANS = \
+ $(srcdir)/autoconf.1 \
+ $(srcdir)/autoheader.1 \
+ $(srcdir)/autom4te.1 \
+ $(srcdir)/autoreconf.1 \
+ $(srcdir)/autoscan.1 \
+ $(srcdir)/autoupdate.1 \
+ $(srcdir)/ifnames.1 \
+ $(srcdir)/config.guess.1 \
+ $(srcdir)/config.sub.1
+
+EXTRA_DIST = $(dist_man_MANS:.1=.x) common.x
+MAINTAINERCLEANFILES = $(dist_man_MANS)
+
+# Depend on .version to get version number changes.
+common_dep = $(top_srcdir)/.version $(srcdir)/common.x
+binsrcdir = $(top_srcdir)/bin
+remove_time_stamp = 's/^\(\.TH[^"]*"[^"]*"[^"]*\)"[^"]*"/\1/'
+MOSTLYCLEANFILES = $(srcdir)/*.t
+SUFFIXES = .x .1
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .x .1
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu man/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-man1: $(dist_man_MANS)
+ @$(NORMAL_INSTALL)
+ test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ { for i in $$list; do echo "$$i"; done; \
+ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man1:
+ @$(NORMAL_UNINSTALL)
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ test -z "$$files" || { \
+ echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @list='$(MANS)'; if test -n "$$list"; then \
+ list=`for p in $$list; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+ if test -n "$$list" && \
+ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
+ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+ echo " typically \`make maintainer-clean' will remove them" >&2; \
+ exit 1; \
+ else :; fi; \
+ else :; fi
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(MANS)
+installdirs:
+ for dir in "$(DESTDIR)$(man1dir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-man
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man: install-man1
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-man
+
+uninstall-man: uninstall-man1
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-man1 install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
+ uninstall-am uninstall-man uninstall-man1
+
+$(srcdir)/autoconf.1: $(common_dep) $(binsrcdir)/autoconf.as
+$(srcdir)/autoheader.1: $(common_dep) $(binsrcdir)/autoheader.in
+$(srcdir)/autom4te.1: $(common_dep) $(binsrcdir)/autom4te.in
+$(srcdir)/autoreconf.1: $(common_dep) $(binsrcdir)/autoreconf.in
+$(srcdir)/autoscan.1: $(common_dep) $(binsrcdir)/autoscan.in
+$(srcdir)/autoupdate.1: $(common_dep) $(binsrcdir)/autoupdate.in
+$(srcdir)/ifnames.1: $(common_dep) $(binsrcdir)/ifnames.in
+
+# Independent from this package.
+$(srcdir)/config.guess.1: $(top_srcdir)/build-aux/config.guess
+$(srcdir)/config.sub.1: $(top_srcdir)/build-aux/config.sub
+
+.x.1:
+ @echo "Updating man page $@"
+ PATH="$(top_builddir)/tests$(PATH_SEPARATOR)$(top_srcdir)/build-aux$(PATH_SEPARATOR)$$PATH"; \
+ export PATH; \
+ $(HELP2MAN) \
+ --include=$*.x \
+ --include=$(srcdir)/common.x \
+ --source='$(PACKAGE_STRING)' \
+ --output=$@.t `echo '$*' | sed 's,.*/,,'`
+ if sed $(remove_time_stamp) $@ >$@a.t 2>/dev/null && \
+ sed $(remove_time_stamp) $@.t | cmp $@a.t - >/dev/null 2>&1; then \
+ touch $@; \
+ else \
+ mv $@.t $@; \
+ fi
+ rm -f $@*.t
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/man/autoconf.1 b/man/autoconf.1
new file mode 100644
index 00000000..62eb2b01
--- /dev/null
+++ b/man/autoconf.1
@@ -0,0 +1,113 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.6.
+.TH AUTOCONF "1" "March 2012" "GNU Autoconf 2.68b" "User Commands"
+.SH NAME
+autoconf \- Generate configuration scripts
+.SH SYNOPSIS
+.B autoconf
+[\fIOPTION\fR]... [\fITEMPLATE-FILE\fR]
+.SH DESCRIPTION
+Generate a configuration script from a TEMPLATE\-FILE if given, or
+`configure.ac' if present, or else `configure.in'. Output is sent
+to the standard output if TEMPLATE\-FILE is given, else into
+`configure'.
+.SS "Operation modes:"
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+print this help, then exit
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+print version number, then exit
+.TP
+\fB\-v\fR, \fB\-\-verbose\fR
+verbosely report processing
+.TP
+\fB\-d\fR, \fB\-\-debug\fR
+don't remove temporary files
+.TP
+\fB\-f\fR, \fB\-\-force\fR
+consider all files obsolete
+.TP
+\fB\-o\fR, \fB\-\-output\fR=\fIFILE\fR
+save output in FILE (stdout is the default)
+.TP
+\fB\-W\fR, \fB\-\-warnings\fR=\fICATEGORY\fR
+report the warnings falling in CATEGORY [syntax]
+.SS "Warning categories include:"
+.TP
+`cross'
+cross compilation issues
+.TP
+`obsolete'
+obsolete constructs
+.TP
+`syntax'
+dubious syntactic constructs
+.TP
+`all'
+all the warnings
+.TP
+`no\-CATEGORY'
+turn off the warnings on CATEGORY
+.TP
+`none'
+turn off all the warnings
+.TP
+`error'
+warnings are error
+.PP
+The environment variables `M4' and `WARNINGS' are honored.
+.SS "Library directories:"
+.TP
+\fB\-B\fR, \fB\-\-prepend\-include\fR=\fIDIR\fR
+prepend directory DIR to search path
+.TP
+\fB\-I\fR, \fB\-\-include\fR=\fIDIR\fR
+append directory DIR to search path
+.SS "Tracing:"
+.TP
+\fB\-t\fR, \fB\-\-trace\fR=\fIMACRO[\fR:FORMAT]
+report the list of calls to MACRO
+.TP
+\fB\-i\fR, \fB\-\-initialization\fR
+also trace Autoconf's initialization process
+.PP
+In tracing mode, no configuration script is created. FORMAT defaults
+to `$f:$l:$n:$%'; see `autom4te \fB\-\-help\fR' for information about FORMAT.
+.SH AUTHOR
+Written by David J. MacKenzie and Akim Demaille.
+.SH "REPORTING BUGS"
+Report bugs to <bug\-autoconf@gnu.org>.
+.br
+GNU Autoconf home page: <http://www.gnu.org/software/autoconf/>.
+.br
+General help using GNU software: <http://www.gnu.org/gethelp/>.
+.SH COPYRIGHT
+Copyright \(co 2012 Free Software Foundation, Inc.
+License GPLv3+/Autoconf: GNU GPL version 3 or later
+<http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
+.br
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+.SH "SEE ALSO"
+.BR autoconf (1),
+.BR automake (1),
+.BR autoreconf (1),
+.BR autoupdate (1),
+.BR autoheader (1),
+.BR autoscan (1),
+.BR config.guess (1),
+.BR config.sub (1),
+.BR ifnames (1),
+.BR libtool (1).
+.PP
+The full documentation for
+.B autoconf
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B autoconf
+programs are properly installed at your site, the command
+.IP
+.B info autoconf
+.PP
+should give you access to the complete manual.
diff --git a/man/autoconf.x b/man/autoconf.x
index 615d2e59..333284f1 100644
--- a/man/autoconf.x
+++ b/man/autoconf.x
@@ -1,3 +1,2 @@
[name]
autoconf \- Generate configuration scripts
-
diff --git a/man/autoheader.1 b/man/autoheader.1
new file mode 100644
index 00000000..d96da1ac
--- /dev/null
+++ b/man/autoheader.1
@@ -0,0 +1,108 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.8.
+.TH AUTOHEADER "1" "April 2012" "GNU Autoconf 2.68b.25-19513" "User Commands"
+.SH NAME
+autoheader \- Create a template header for configure
+.SH SYNOPSIS
+.B autoheader
+[\fIOPTION\fR]... [\fITEMPLATE-FILE\fR]
+.SH DESCRIPTION
+Create a template file of C `#define' statements for `configure' to
+use. To this end, scan TEMPLATE\-FILE, or `configure.ac' if present,
+or else `configure.in'.
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+print this help, then exit
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+print version number, then exit
+.TP
+\fB\-v\fR, \fB\-\-verbose\fR
+verbosely report processing
+.TP
+\fB\-d\fR, \fB\-\-debug\fR
+don't remove temporary files
+.TP
+\fB\-f\fR, \fB\-\-force\fR
+consider all files obsolete
+.TP
+\fB\-W\fR, \fB\-\-warnings\fR=\fICATEGORY\fR
+report the warnings falling in CATEGORY
+.SS "Warning categories include:"
+.TP
+`cross'
+cross compilation issues
+.TP
+`gnu'
+GNU coding standards (default in gnu and gnits modes)
+.TP
+`obsolete'
+obsolete features or constructions
+.TP
+`override'
+user redefinitions of Automake rules or variables
+.TP
+`portability'
+portability issues (default in gnu and gnits modes)
+.TP
+`syntax'
+dubious syntactic constructs (default)
+.TP
+`unsupported'
+unsupported or incomplete features (default)
+.TP
+`all'
+all the warnings
+.TP
+`no\-CATEGORY'
+turn off warnings in CATEGORY
+.TP
+`none'
+turn off all the warnings
+.TP
+`error'
+treat warnings as errors
+.SS "Library directories:"
+.TP
+\fB\-B\fR, \fB\-\-prepend\-include\fR=\fIDIR\fR
+prepend directory DIR to search path
+.TP
+\fB\-I\fR, \fB\-\-include\fR=\fIDIR\fR
+append directory DIR to search path
+.SH AUTHOR
+Written by Roland McGrath and Akim Demaille.
+.SH "REPORTING BUGS"
+Report bugs to <bug\-autoconf@gnu.org>.
+.br
+GNU Autoconf home page: <http://www.gnu.org/software/autoconf/>.
+.br
+General help using GNU software: <http://www.gnu.org/gethelp/>.
+.SH COPYRIGHT
+Copyright \(co 2012 Free Software Foundation, Inc.
+License GPLv3+/Autoconf: GNU GPL version 3 or later
+<http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
+.br
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+.SH "SEE ALSO"
+.BR autoconf (1),
+.BR automake (1),
+.BR autoreconf (1),
+.BR autoupdate (1),
+.BR autoheader (1),
+.BR autoscan (1),
+.BR config.guess (1),
+.BR config.sub (1),
+.BR ifnames (1),
+.BR libtool (1).
+.PP
+The full documentation for
+.B autoheader
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B autoheader
+programs are properly installed at your site, the command
+.IP
+.B info autoheader
+.PP
+should give you access to the complete manual.
diff --git a/man/autoheader.x b/man/autoheader.x
index a3e0eba7..a5217a70 100644
--- a/man/autoheader.x
+++ b/man/autoheader.x
@@ -1,3 +1,2 @@
[name]
autoheader \- Create a template header for configure
-
diff --git a/man/autom4te.1 b/man/autom4te.1
new file mode 100644
index 00000000..674aea67
--- /dev/null
+++ b/man/autom4te.1
@@ -0,0 +1,192 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.8.
+.TH AUTOM4TE "1" "April 2012" "GNU Autoconf 2.68b.25-19513" "User Commands"
+.SH NAME
+autom4te \- Generate files and scripts thanks to M4
+.SH SYNOPSIS
+.B autom4te
+[\fIOPTION\fR]... [\fIFILES\fR]
+.SH DESCRIPTION
+Run GNU M4 on the FILES, avoiding useless runs. Output the traces if tracing,
+the frozen file if freezing, otherwise the expansion of the FILES.
+.PP
+If some of the FILES are named `FILE.m4f' they are considered to be M4
+frozen files of all the previous files (which are therefore not loaded).
+If `FILE.m4f' is not found, then `FILE.m4' will be used, together with
+all the previous files.
+.PP
+Some files may be optional, i.e., will only be processed if found in the
+include path, but then must end in `.m4?'; the question mark is not part of
+the actual file name.
+.SS "Operation modes:"
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+print this help, then exit
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+print version number, then exit
+.TP
+\fB\-v\fR, \fB\-\-verbose\fR
+verbosely report processing
+.TP
+\fB\-d\fR, \fB\-\-debug\fR
+don't remove temporary files
+.TP
+\fB\-o\fR, \fB\-\-output\fR=\fIFILE\fR
+save output in FILE (defaults to `\-', stdout)
+.TP
+\fB\-f\fR, \fB\-\-force\fR
+don't rely on cached values
+.TP
+\fB\-W\fR, \fB\-\-warnings\fR=\fICATEGORY\fR
+report the warnings falling in CATEGORY
+.TP
+\fB\-l\fR, \fB\-\-language\fR=\fILANG\fR
+specify the set of M4 macros to use
+.TP
+\fB\-C\fR, \fB\-\-cache\fR=\fIDIRECTORY\fR
+preserve results for future runs in DIRECTORY
+.TP
+\fB\-\-no\-cache\fR
+disable the cache
+.TP
+\fB\-m\fR, \fB\-\-mode\fR=\fIOCTAL\fR
+change the non trace output file mode (0666)
+.TP
+\fB\-M\fR, \fB\-\-melt\fR
+don't use M4 frozen files
+.SS "Languages include:"
+.TP
+`Autoconf'
+create Autoconf configure scripts
+.TP
+`Autotest'
+create Autotest test suites
+.TP
+`M4sh'
+create M4sh shell scripts
+.TP
+`M4sugar'
+create M4sugar output
+.SS "Warning categories include:"
+.TP
+`cross'
+cross compilation issues
+.TP
+`gnu'
+GNU coding standards (default in gnu and gnits modes)
+.TP
+`obsolete'
+obsolete features or constructions
+.TP
+`override'
+user redefinitions of Automake rules or variables
+.TP
+`portability'
+portability issues (default in gnu and gnits modes)
+.TP
+`syntax'
+dubious syntactic constructs (default)
+.TP
+`unsupported'
+unsupported or incomplete features (default)
+.TP
+`all'
+all the warnings
+.TP
+`no\-CATEGORY'
+turn off warnings in CATEGORY
+.TP
+`none'
+turn off all the warnings
+.TP
+`error'
+treat warnings as errors
+.PP
+The environment variables `M4' and `WARNINGS' are honored.
+.SS "Library directories:"
+.TP
+\fB\-B\fR, \fB\-\-prepend\-include\fR=\fIDIR\fR
+prepend directory DIR to search path
+.TP
+\fB\-I\fR, \fB\-\-include\fR=\fIDIR\fR
+append directory DIR to search path
+.SS "Tracing:"
+.TP
+\fB\-t\fR, \fB\-\-trace\fR=\fIMACRO[\fR:FORMAT]
+report the MACRO invocations
+.TP
+\fB\-p\fR, \fB\-\-preselect\fR=\fIMACRO\fR
+prepare to trace MACRO in a future run
+.SS "Freezing:"
+.TP
+\fB\-F\fR, \fB\-\-freeze\fR
+produce an M4 frozen state file for FILES
+.SS "FORMAT defaults to `$f:$l:$n:$%', and can use the following escapes:"
+.TP
+$$
+literal $
+.TP
+$f
+file where macro was called
+.TP
+$l
+line where macro was called
+.TP
+$d
+nesting depth of macro call
+.TP
+$n
+name of the macro
+.TP
+$NUM
+argument NUM, unquoted and with newlines
+.TP
+$SEP@
+all arguments, with newlines, quoted, and separated by SEP
+.TP
+$SEP*
+all arguments, with newlines, unquoted, and separated by SEP
+.TP
+$SEP%
+all arguments, without newlines, unquoted, and separated by SEP
+.PP
+SEP can be empty for the default (comma for @ and *, colon for %),
+a single character for that character, or {STRING} to use a string.
+.SH AUTHOR
+Written by Akim Demaille.
+.SH "REPORTING BUGS"
+Report bugs to <bug\-autoconf@gnu.org>.
+.br
+GNU Autoconf home page: <http://www.gnu.org/software/autoconf/>.
+.br
+General help using GNU software: <http://www.gnu.org/gethelp/>.
+.SH COPYRIGHT
+Copyright \(co 2012 Free Software Foundation, Inc.
+License GPLv3+/Autoconf: GNU GPL version 3 or later
+<http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
+.br
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+.SH "SEE ALSO"
+.BR autoconf (1),
+.BR automake (1),
+.BR autoreconf (1),
+.BR autoupdate (1),
+.BR autoheader (1),
+.BR autoscan (1),
+.BR config.guess (1),
+.BR config.sub (1),
+.BR ifnames (1),
+.BR libtool (1).
+.PP
+The full documentation for
+.B autom4te
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B autom4te
+programs are properly installed at your site, the command
+.IP
+.B info autom4te
+.PP
+should give you access to the complete manual.
diff --git a/man/autoreconf.1 b/man/autoreconf.1
new file mode 100644
index 00000000..4015c448
--- /dev/null
+++ b/man/autoreconf.1
@@ -0,0 +1,133 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.8.
+.TH AUTORECONF "1" "April 2012" "GNU Autoconf 2.68b.22-280f-dirty" "User Commands"
+.SH NAME
+autoreconf \- Update generated configuration files
+.SH SYNOPSIS
+.B autoreconf
+[\fIOPTION\fR]... [\fIDIRECTORY\fR]...
+.SH DESCRIPTION
+Run `autoconf' (and `autoheader', `aclocal', `automake', `autopoint'
+(formerly `gettextize'), and `libtoolize' where appropriate)
+repeatedly to remake the GNU Build System files in specified
+DIRECTORIES and their subdirectories (defaulting to `.').
+.PP
+By default, it only remakes those files that are older than their
+sources. If you install new versions of the GNU Build System,
+you can make `autoreconf' remake all of the files by giving it the
+`\-\-force' option.
+.SS "Operation modes:"
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+print this help, then exit
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+print version number, then exit
+.TP
+\fB\-v\fR, \fB\-\-verbose\fR
+verbosely report processing
+.TP
+\fB\-d\fR, \fB\-\-debug\fR
+don't remove temporary files
+.TP
+\fB\-f\fR, \fB\-\-force\fR
+consider all files obsolete
+.TP
+\fB\-i\fR, \fB\-\-install\fR
+copy missing auxiliary files
+.TP
+\fB\-\-no\-recursive\fR
+don't rebuild sub\-packages
+.TP
+\fB\-s\fR, \fB\-\-symlink\fR
+with \fB\-i\fR, install symbolic links instead of copies
+.TP
+\fB\-m\fR, \fB\-\-make\fR
+when applicable, re\-run ./configure && make
+.TP
+\fB\-W\fR, \fB\-\-warnings\fR=\fICATEGORY\fR
+report the warnings falling in CATEGORY [syntax]
+.SS "Warning categories include:"
+.TP
+`cross'
+cross compilation issues
+.TP
+`gnu'
+GNU coding standards (default in gnu and gnits modes)
+.TP
+`obsolete'
+obsolete features or constructions
+.TP
+`override'
+user redefinitions of Automake rules or variables
+.TP
+`portability'
+portability issues (default in gnu and gnits modes)
+.TP
+`syntax'
+dubious syntactic constructs (default)
+.TP
+`unsupported'
+unsupported or incomplete features (default)
+.TP
+`all'
+all the warnings
+.TP
+`no\-CATEGORY'
+turn off warnings in CATEGORY
+.TP
+`none'
+turn off all the warnings
+.TP
+`error'
+treat warnings as errors
+.PP
+The environment variable `WARNINGS' is honored. Some subtools might
+support other warning types, using `all' is encouraged.
+.SS "Library directories:"
+.TP
+\fB\-B\fR, \fB\-\-prepend\-include\fR=\fIDIR\fR
+prepend directory DIR to search path
+.TP
+\fB\-I\fR, \fB\-\-include\fR=\fIDIR\fR
+append directory DIR to search path
+.PP
+The environment variables AUTOM4TE, AUTOCONF, AUTOHEADER, AUTOMAKE,
+ACLOCAL, AUTOPOINT, LIBTOOLIZE, M4, and MAKE are honored.
+.SH AUTHOR
+Written by David J. MacKenzie and Akim Demaille.
+.SH "REPORTING BUGS"
+Report bugs to <bug\-autoconf@gnu.org>.
+.br
+GNU Autoconf home page: <http://www.gnu.org/software/autoconf/>.
+.br
+General help using GNU software: <http://www.gnu.org/gethelp/>.
+.SH COPYRIGHT
+Copyright \(co 2012 Free Software Foundation, Inc.
+License GPLv3+/Autoconf: GNU GPL version 3 or later
+<http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
+.br
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+.SH "SEE ALSO"
+.BR autoconf (1),
+.BR automake (1),
+.BR autoreconf (1),
+.BR autoupdate (1),
+.BR autoheader (1),
+.BR autoscan (1),
+.BR config.guess (1),
+.BR config.sub (1),
+.BR ifnames (1),
+.BR libtool (1).
+.PP
+The full documentation for
+.B autoreconf
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B autoreconf
+programs are properly installed at your site, the command
+.IP
+.B info autoreconf
+.PP
+should give you access to the complete manual.
diff --git a/man/autoscan.1 b/man/autoscan.1
new file mode 100644
index 00000000..0001cdd8
--- /dev/null
+++ b/man/autoscan.1
@@ -0,0 +1,70 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.8.
+.TH AUTOSCAN "1" "April 2012" "GNU Autoconf 2.68b.25-19513" "User Commands"
+.SH NAME
+autoscan \- Generate a preliminary configure.in
+.SH SYNOPSIS
+.B autoscan
+[\fIOPTION\fR]... [\fISRCDIR\fR]
+.SH DESCRIPTION
+Examine source files in the directory tree rooted at SRCDIR, or the
+current directory if none is given. Search the source files for
+common portability problems, check for incompleteness of
+`configure.ac', and create a file `configure.scan' which is a
+preliminary `configure.ac' for that package.
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+print this help, then exit
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+print version number, then exit
+.TP
+\fB\-v\fR, \fB\-\-verbose\fR
+verbosely report processing
+.TP
+\fB\-d\fR, \fB\-\-debug\fR
+don't remove temporary files
+.SS "Library directories:"
+.TP
+\fB\-B\fR, \fB\-\-prepend\-include\fR=\fIDIR\fR
+prepend directory DIR to search path
+.TP
+\fB\-I\fR, \fB\-\-include\fR=\fIDIR\fR
+append directory DIR to search path
+.SH AUTHOR
+Written by David J. MacKenzie and Akim Demaille.
+.SH "REPORTING BUGS"
+Report bugs to <bug\-autoconf@gnu.org>.
+.br
+GNU Autoconf home page: <http://www.gnu.org/software/autoconf/>.
+.br
+General help using GNU software: <http://www.gnu.org/gethelp/>.
+.SH COPYRIGHT
+Copyright \(co 2012 Free Software Foundation, Inc.
+License GPLv3+/Autoconf: GNU GPL version 3 or later
+<http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
+.br
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+.SH "SEE ALSO"
+.BR autoconf (1),
+.BR automake (1),
+.BR autoreconf (1),
+.BR autoupdate (1),
+.BR autoheader (1),
+.BR autoscan (1),
+.BR config.guess (1),
+.BR config.sub (1),
+.BR ifnames (1),
+.BR libtool (1).
+.PP
+The full documentation for
+.B autoscan
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B autoscan
+programs are properly installed at your site, the command
+.IP
+.B info autoscan
+.PP
+should give you access to the complete manual.
diff --git a/man/autoscan.x b/man/autoscan.x
index ce120eba..a3b67d94 100644
--- a/man/autoscan.x
+++ b/man/autoscan.x
@@ -1,3 +1,2 @@
[name]
autoscan \- Generate a preliminary configure.in
-
diff --git a/man/autoupdate.1 b/man/autoupdate.1
new file mode 100644
index 00000000..421c27ae
--- /dev/null
+++ b/man/autoupdate.1
@@ -0,0 +1,72 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.8.
+.TH AUTOUPDATE "1" "April 2012" "GNU Autoconf 2.68b.25-19513" "User Commands"
+.SH NAME
+autoupdate \- Update a configure.in to a newer Autoconf
+.SH SYNOPSIS
+.B autoupdate
+[\fIOPTION\fR]... [\fITEMPLATE-FILE\fR]...
+.SH DESCRIPTION
+Update each TEMPLATE\-FILE if given, or `configure.ac' if present,
+or else `configure.in', to the syntax of the current version of
+Autoconf. The original files are backed up.
+.SS "Operation modes:"
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+print this help, then exit
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+print version number, then exit
+.TP
+\fB\-v\fR, \fB\-\-verbose\fR
+verbosely report processing
+.TP
+\fB\-d\fR, \fB\-\-debug\fR
+don't remove temporary files
+.TP
+\fB\-f\fR, \fB\-\-force\fR
+consider all files obsolete
+.SS "Library directories:"
+.TP
+\fB\-B\fR, \fB\-\-prepend\-include\fR=\fIDIR\fR
+prepend directory DIR to search path
+.TP
+\fB\-I\fR, \fB\-\-include\fR=\fIDIR\fR
+append directory DIR to search path
+.SH AUTHOR
+Written by David J. MacKenzie and Akim Demaille.
+.SH "REPORTING BUGS"
+Report bugs to <bug\-autoconf@gnu.org>.
+.br
+GNU Autoconf home page: <http://www.gnu.org/software/autoconf/>.
+.br
+General help using GNU software: <http://www.gnu.org/gethelp/>.
+.SH COPYRIGHT
+Copyright \(co 2012 Free Software Foundation, Inc.
+License GPLv3+/Autoconf: GNU GPL version 3 or later
+<http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
+.br
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+.SH "SEE ALSO"
+.BR autoconf (1),
+.BR automake (1),
+.BR autoreconf (1),
+.BR autoupdate (1),
+.BR autoheader (1),
+.BR autoscan (1),
+.BR config.guess (1),
+.BR config.sub (1),
+.BR ifnames (1),
+.BR libtool (1).
+.PP
+The full documentation for
+.B autoupdate
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B autoupdate
+programs are properly installed at your site, the command
+.IP
+.B info autoupdate
+.PP
+should give you access to the complete manual.
diff --git a/man/autoupdate.x b/man/autoupdate.x
index 23aa18c3..40d24e27 100644
--- a/man/autoupdate.x
+++ b/man/autoupdate.x
@@ -1,3 +1,2 @@
[name]
autoupdate \- Update a configure.in to a newer Autoconf
-
diff --git a/man/config.guess.1 b/man/config.guess.1
new file mode 100644
index 00000000..bf54f2d9
--- /dev/null
+++ b/man/config.guess.1
@@ -0,0 +1,62 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.8.
+.TH CONFIG.GUESS "1" "April 2012" "GNU Autoconf 2.68b.24-84e2" "User Commands"
+.SH NAME
+config.guess \- guess the build system triplet
+.SH SYNOPSIS
+.B config.guess
+[\fIOPTION\fR]
+.SH DESCRIPTION
+The GNU build system distinguishes three types of machines, the
+`build' machine on which the compilers are run, the `host' machine
+on which the package being built will run, and, exclusively when you
+build a compiler, assembler etc., the `target' machine, for which the
+compiler being built will produce code.
+
+This script will guess the type of the `build' machine.
+.PP
+Output the configuration name of the system `config.guess' is run on.
+.SS "Operation modes:"
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+print this help, then exit
+.TP
+\fB\-t\fR, \fB\-\-time\-stamp\fR
+print date of last modification, then exit
+.TP
+\fB\-v\fR, \fB\-\-version\fR
+print version number, then exit
+.SH "ENVIRONMENT VARIABLES"
+config.guess might need to compile and run C code, hence it needs a
+compiler for the `build' machine: use the environment variable
+`CC_FOR_BUILD' to specify the compiler for the build machine. If
+`CC_FOR_BUILD' is not specified, `CC' will be used. Be sure to
+specify `CC_FOR_BUILD' is `CC' is a cross-compiler to the `host'
+machine.
+
+ CC_FOR_BUILD a native C compiler, defaults to `cc'
+ CC a native C compiler, the previous variable is preferred
+.SH "REPORTING BUGS"
+Report bugs and patches to <config\-patches@gnu.org>.
+.PP
+.br
+Originally written by Per Bothner.
+.br
+Copyright \(co 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+.br
+Free Software Foundation, Inc.
+.PP
+.br
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+.SH "SEE ALSO"
+.BR autoconf (1),
+.BR automake (1),
+.BR autoreconf (1),
+.BR autoupdate (1),
+.BR autoheader (1),
+.BR autoscan (1),
+.BR config.guess (1),
+.BR config.sub (1),
+.BR ifnames (1),
+.BR libtool (1).
diff --git a/man/config.sub.1 b/man/config.sub.1
new file mode 100644
index 00000000..7d99583e
--- /dev/null
+++ b/man/config.sub.1
@@ -0,0 +1,43 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.8.
+.TH CONFIG.SUB "1" "April 2012" "GNU Autoconf 2.68b.25-19513" "User Commands"
+.SH NAME
+config.sub \- validate and canonicalize a configuration triplet
+.SH SYNOPSIS
+.B config.sub
+[\fIOPTION\fR] \fICPU-MFR-OPSYS\fR
+.SH DESCRIPTION
+.IP
+\&../build\-aux/config.sub [OPTION] ALIAS
+.PP
+Canonicalize a configuration name.
+.SS "Operation modes:"
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+print this help, then exit
+.TP
+\fB\-t\fR, \fB\-\-time\-stamp\fR
+print date of last modification, then exit
+.TP
+\fB\-v\fR, \fB\-\-version\fR
+print version number, then exit
+.SH "REPORTING BUGS"
+Report bugs and patches to <config\-patches@gnu.org>.
+.SH COPYRIGHT
+Copyright \(co 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+Free Software Foundation, Inc.
+.PP
+.br
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+.SH "SEE ALSO"
+.BR autoconf (1),
+.BR automake (1),
+.BR autoreconf (1),
+.BR autoupdate (1),
+.BR autoheader (1),
+.BR autoscan (1),
+.BR config.guess (1),
+.BR config.sub (1),
+.BR ifnames (1),
+.BR libtool (1).
diff --git a/man/ifnames.1 b/man/ifnames.1
new file mode 100644
index 00000000..8a7df5db
--- /dev/null
+++ b/man/ifnames.1
@@ -0,0 +1,57 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.8.
+.TH IFNAMES "1" "April 2012" "GNU Autoconf 2.68b.25-19513" "User Commands"
+.SH NAME
+ifnames \- Extract CPP conditionals from a set of files
+.SH SYNOPSIS
+.B ifnames
+[\fIOPTION\fR]... [\fIFILE\fR]...
+.SH DESCRIPTION
+Scan all of the C source FILES (or the standard input, if none are
+given) and write to the standard output a sorted list of all the
+identifiers that appear in those files in `#if', `#elif', `#ifdef', or
+`#ifndef' directives. Print each identifier on a line, followed by a
+space\-separated list of the files in which that identifier occurs.
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+print this help, then exit
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+print version number, then exit
+.SH AUTHOR
+Written by David J. MacKenzie and Paul Eggert.
+.SH "REPORTING BUGS"
+Report bugs to <bug\-autoconf@gnu.org>.
+.br
+GNU Autoconf home page: <http://www.gnu.org/software/autoconf/>.
+.br
+General help using GNU software: <http://www.gnu.org/gethelp/>.
+.SH COPYRIGHT
+Copyright \(co 2012 Free Software Foundation, Inc.
+License GPLv3+/Autoconf: GNU GPL version 3 or later
+<http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
+.br
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+.SH "SEE ALSO"
+.BR autoconf (1),
+.BR automake (1),
+.BR autoreconf (1),
+.BR autoupdate (1),
+.BR autoheader (1),
+.BR autoscan (1),
+.BR config.guess (1),
+.BR config.sub (1),
+.BR ifnames (1),
+.BR libtool (1).
+.PP
+The full documentation for
+.B ifnames
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B ifnames
+programs are properly installed at your site, the command
+.IP
+.B info ifnames
+.PP
+should give you access to the complete manual.
diff --git a/man/ifnames.x b/man/ifnames.x
index 214ccceb..a5af55b5 100644
--- a/man/ifnames.x
+++ b/man/ifnames.x
@@ -1,3 +1,2 @@
[name]
ifnames \- Extract CPP conditionals from a set of files
-
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 265a7499..c946773d 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,6 +1,6 @@
## Make Autoconf tests.
-# Copyright (C) 2000-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -130,7 +130,7 @@ atconfig: $(top_builddir)/config.status
# includes $(TESTSUITE). This is the Automake rule, plus our
# dependency, and we silence the warning from 'automake -Wall' by
# hiding the dependency behind a variable.
-# TODO - fix this if newer automake accomodates the dependency.
+# TODO - fix this if newer automake accommodates the dependency.
distclean_generic = distclean-generic
$(distclean_generic): clean-local
diff --git a/tests/Makefile.in b/tests/Makefile.in
new file mode 100644
index 00000000..34607718
--- /dev/null
+++ b/tests/Makefile.in
@@ -0,0 +1,643 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Copyright (C) 2000-2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Freeze M4 files.
+
+# Copyright (C) 2002, 2004, 2006-2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/../lib/freeze.mk $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(srcdir)/atlocal.in
+subdir = tests
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
+ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/make-case.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES = atlocal
+CONFIG_CLEAN_VPATH_FILES =
+SCRIPTS = $(noinst_SCRIPTS)
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EMACS = @EMACS@
+EMACSLOADPATH = @EMACSLOADPATH@
+EXPR = @EXPR@
+GREP = @GREP@
+HELP2MAN = @HELP2MAN@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+M4_DEBUGFILE = @M4_DEBUGFILE@
+M4_GNU = @M4_GNU@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PERL_FLOCK = @PERL_FLOCK@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TEST_EMACS = @TEST_EMACS@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_cv_dir_trailing_space = @ac_cv_dir_trailing_space@
+ac_cv_sh_n_works = @ac_cv_sh_n_works@
+ac_cv_unsupported_fs_chars = @ac_cv_unsupported_fs_chars@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+lispdir = @lispdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+
+# We don't actually distribute the built testsuite or package.m4, since one
+# only needs m4 to build them, and m4 is required to install Autoconf.
+# But if you are borrowing from this file for setting up autotest in your
+# project, remember to distribute both testsuite and package.m4.
+EXTRA_DIST = $(TESTSUITE_AT) local.at mktests.sh atlocal.in wrapper.as \
+ statesave.m4 mktests.stamp
+
+# Running the uninstalled scripts. Build them upon `all', for the manpages.
+noinst_SCRIPTS = $(wrappers)
+DISTCLEANFILES = atconfig atlocal $(TESTSUITE)
+MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE_GENERATED_AT) \
+ mktests.stamp
+SUFFIXES = .m4 .m4f
+AUTOM4TE_CFG = $(top_builddir)/lib/autom4te.cfg
+
+# Do not use AUTOM4TE here, since maint.mk (my-distcheck)
+# checks if we are independent of Autoconf by defining AUTOM4TE (and
+# others) to `false'. Autoconf provides autom4te, so that doesn't
+# apply to us.
+MY_AUTOM4TE = \
+ autom4te_perllibdir='$(top_srcdir)'/lib \
+ AUTOM4TE_CFG='$(AUTOM4TE_CFG)' $(top_builddir)/bin/autom4te \
+ -B '$(top_builddir)'/lib -B '$(top_srcdir)'/lib # keep ` '
+
+
+# Factor the dependencies between all the frozen files.
+# Some day we should explain to Automake how to use autom4te to compute
+# the dependencies...
+src_libdir = $(top_srcdir)/lib
+build_libdir = $(top_builddir)/lib
+m4f_dependencies = $(top_builddir)/bin/autom4te $(AUTOM4TE_CFG)
+m4sugar_m4f_dependencies = \
+ $(m4f_dependencies) \
+ $(src_libdir)/m4sugar/m4sugar.m4 \
+ $(build_libdir)/m4sugar/version.m4
+
+m4sh_m4f_dependencies = \
+ $(m4sugar_m4f_dependencies) \
+ $(src_libdir)/m4sugar/m4sh.m4
+
+autotest_m4f_dependencies = \
+ $(m4sh_m4f_dependencies) \
+ $(src_libdir)/autotest/autotest.m4 \
+ $(src_libdir)/autotest/general.m4 \
+ $(src_libdir)/autotest/specific.m4
+
+autoconf_m4f_dependencies = \
+ $(m4sh_m4f_dependencies) \
+ $(src_libdir)/autoconf/autoscan.m4 \
+ $(src_libdir)/autoconf/general.m4 \
+ $(src_libdir)/autoconf/autoheader.m4 \
+ $(src_libdir)/autoconf/autoupdate.m4 \
+ $(src_libdir)/autoconf/autotest.m4 \
+ $(src_libdir)/autoconf/status.m4 \
+ $(src_libdir)/autoconf/oldnames.m4 \
+ $(src_libdir)/autoconf/specific.m4 \
+ $(src_libdir)/autoconf/lang.m4 \
+ $(src_libdir)/autoconf/c.m4 \
+ $(src_libdir)/autoconf/fortran.m4 \
+ $(src_libdir)/autoconf/erlang.m4 \
+ $(src_libdir)/autoconf/go.m4 \
+ $(src_libdir)/autoconf/functions.m4 \
+ $(src_libdir)/autoconf/headers.m4 \
+ $(src_libdir)/autoconf/types.m4 \
+ $(src_libdir)/autoconf/libs.m4 \
+ $(src_libdir)/autoconf/programs.m4 \
+ $(src_libdir)/autoconf/autoconf.m4
+
+ETAGS_FOR_M4 = \
+ --lang=none \
+ --regex='/\(m4_define\|define\)(\[\([^]]*\)\]/\2/'
+
+ETAGS_FOR_M4SUGAR = \
+ $(ETAGS_FOR_M4) \
+ --regex='/m4_defun(\[\([^]]*\)\]/\1/'
+
+ETAGS_FOR_AUTOCONF = \
+ $(ETAGS_FOR_M4SUGAR) \
+ --regex='/\(A[CU]_DEFUN\|AU_ALIAS\)(\[\([^]]*\)\]/\2/' \
+ --regex='/AN_\(FUNCTION\|HEADER\|IDENTIFIER\|LIBRARY\|MAKEVAR\|PROGRAM\)(\[\([^]]*\)\]/\2/'
+
+wrappers = autoconf autoheader autom4te autoreconf autoscan autoupdate ifnames
+
+# The hairy heredoc is more robust than using echo.
+CLEANFILES = wrapper.in $(wrappers) package.m4 mktests.tmp expr
+edit = sed \
+ -e 's|@wrap_program[@]|$@|g' \
+ -e 's|@abs_top_srcdir[@]|@abs_top_srcdir@|g' \
+ -e 's|@abs_top_builddir[@]|@abs_top_builddir@|g' \
+ -e "s|@configure_input[@]|Generated from $$input.|g"
+
+TESTSUITE_GENERATED_AT = \
+ $(srcdir)/aclang.at \
+ $(srcdir)/acc.at \
+ $(srcdir)/acfortran.at \
+ $(srcdir)/acgo.at \
+ $(srcdir)/acgeneral.at \
+ $(srcdir)/acstatus.at \
+ $(srcdir)/acautoheader.at \
+ $(srcdir)/acautoupdate.at \
+ $(srcdir)/acspecific.at \
+ $(srcdir)/acfunctions.at \
+ $(srcdir)/acheaders.at \
+ $(srcdir)/actypes.at \
+ $(srcdir)/aclibs.at \
+ $(srcdir)/acprograms.at
+
+TESTSUITE_HAND_AT = \
+ suite.at \
+ m4sugar.at m4sh.at autotest.at \
+ base.at tools.at torture.at \
+ compile.at c.at erlang.at fortran.at go.at \
+ semantics.at \
+ autoscan.at \
+ foreign.at
+
+TESTSUITE_AT = $(TESTSUITE_GENERATED_AT) $(TESTSUITE_HAND_AT)
+TESTSUITE = ./testsuite
+
+# Run the non installed autom4te.
+# Don't use AUTOM4TE since `make alpha' makes it unavailable although
+# we are allowed to use it (since we ship it).
+AUTOTEST = $(MY_AUTOM4TE) --language=autotest
+
+# Avoid a race condition that would make parallel "distclean" fail.
+# The rule in clean-local tests for existence of $(TESTSUITE), and
+# if found, attempts to run it. But the distclean-generic rule may
+# be running in parallel, and it removes $(DISTCLEANFILES) which
+# includes $(TESTSUITE). This is the Automake rule, plus our
+# dependency, and we silence the warning from 'automake -Wall' by
+# hiding the dependency behind a variable.
+# TODO - fix this if newer automake accommodates the dependency.
+distclean_generic = distclean-generic
+
+# The files which contain macros we check for syntax. Use $(top_srcdir)
+# for the benefit of non-GNU make. Fix the names in the rule below
+# where we `cd' to $srcdir.
+autoconfdir = $(top_srcdir)/lib/autoconf
+AUTOCONF_FILES = $(autoconfdir)/general.m4 \
+ $(autoconfdir)/status.m4 \
+ $(autoconfdir)/autoheader.m4 \
+ $(autoconfdir)/autoupdate.m4 \
+ $(autoconfdir)/specific.m4 \
+ $(autoconfdir)/functions.m4 \
+ $(autoconfdir)/lang.m4 \
+ $(autoconfdir)/c.m4 \
+ $(autoconfdir)/erlang.m4 \
+ $(autoconfdir)/fortran.m4 \
+ $(autoconfdir)/go.m4 \
+ $(autoconfdir)/headers.m4 \
+ $(autoconfdir)/libs.m4 \
+ $(autoconfdir)/types.m4 \
+ $(autoconfdir)/programs.m4
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .m4 .m4f
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../lib/freeze.mk $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu tests/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+atlocal: $(top_builddir)/config.status $(srcdir)/atlocal.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-local
+check: check-am
+all-am: Makefile $(SCRIPTS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-local mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am: installcheck-local
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: all all-am check check-am check-local clean clean-generic \
+ clean-local distclean distclean-generic distdir dvi dvi-am \
+ html html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installcheck-local installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
+$(AUTOM4TE_CFG): $(top_srcdir)/lib/autom4te.in
+ cd $(top_builddir)/lib && $(MAKE) $(AM_MAKEFLAGS) autom4te.cfg
+
+# When processing the file with diversion disabled, there must be no
+# output but comments and empty lines.
+# If freezing produces output, something went wrong: a bad `divert',
+# or an improper paren etc.
+# It may happen that the output does not end with an end of line, hence
+# force an end of line when reporting errors.
+.m4.m4f:
+ $(MY_AUTOM4TE) \
+ --language=$* \
+ --freeze \
+ --output=$@
+
+# For parallel builds.
+$(build_libdir)/m4sugar/version.m4:
+ cd $(build_libdir)/m4sugar && $(MAKE) $(AM_MAKEFLAGS) version.m4
+
+check-forbidden-patterns:
+ @if (cd $(srcdir) && \
+ $(GREP) $(forbidden_patterns) $(forbidden_patterns_files)) \
+ >forbidden.log; then \
+ echo "ERROR: forbidden patterns were found:" >&2; \
+ sed "s|^|$*.m4: |" <forbidden.log >&2; \
+ echo >&2; \
+ exit 1; \
+ else \
+ rm -f forbidden.log; \
+ fi
+
+# Import the dependencies on Autotest and M4sh.
+
+# The `:;' works around a redirected compound command bash exit status bug.
+package.m4: Makefile
+ :;{ \
+ echo '# Signature of the current package.' && \
+ echo 'm4_define([AT_PACKAGE_NAME], [$(PACKAGE_NAME)])' && \
+ echo 'm4_define([AT_PACKAGE_TARNAME], [$(PACKAGE_TARNAME)])' && \
+ echo 'm4_define([AT_PACKAGE_VERSION], [$(PACKAGE_VERSION)])' && \
+ echo 'm4_define([AT_PACKAGE_STRING], [$(PACKAGE_STRING)])' && \
+ echo 'm4_define([AT_PACKAGE_BUGREPORT], [$(PACKAGE_BUGREPORT)])' && \
+ echo 'm4_define([AT_PACKAGE_URL], [$(PACKAGE_URL)])'; \
+ } > $@-t
+ mv $@-t $@
+
+wrapper.in: $(srcdir)/wrapper.as $(m4sh_m4f_dependencies)
+ $(MY_AUTOM4TE) --language=M4sh $(srcdir)/wrapper.as -o $@
+
+$(wrappers): wrapper.in
+ rm -f $@ $@.tmp
+ input=wrapper.in; \
+ $(edit) wrapper.in >$@.tmp
+ chmod +x $@.tmp
+ chmod a-w $@.tmp
+ mv -f $@.tmp $@
+$(TESTSUITE): package.m4 \
+ local.at \
+ $(TESTSUITE_AT) \
+ $(autotest_m4f_dependencies)
+ cd $(top_builddir)/lib/autotest && $(MAKE) $(AM_MAKEFLAGS) autotest.m4f
+ $(AUTOTEST) -I . -I $(srcdir) suite.at -o $@.tmp
+ mv $@.tmp $@
+
+atconfig: $(top_builddir)/config.status
+ cd $(top_builddir) && ./config.status tests/$@
+$(distclean_generic): clean-local
+
+clean-local:
+ test ! -f $(TESTSUITE) || $(SHELL) $(TESTSUITE) --clean
+ rm -f *.tmp
+ rm -f -r autom4te.cache
+
+check-local: atconfig atlocal $(TESTSUITE)
+ $(SHELL) $(TESTSUITE) $(TESTSUITEFLAGS)
+
+# Run the test suite on the *installed* tree.
+installcheck-local: atconfig atlocal $(TESTSUITE)
+ $(SHELL) $(TESTSUITE) AUTOTEST_PATH="$(bindir)" $(TESTSUITEFLAGS)
+
+$(TESTSUITE_GENERATED_AT): mktests.stamp
+ @if test -f $@; then :; else \
+ rm -f mktests.stamp; \
+ $(MAKE) $(AM_MAKEFLAGS) mktests.stamp; \
+ fi
+
+mktests.stamp : mktests.sh $(AUTOCONF_FILES)
+ @rm -f mktests.tmp
+ @touch mktests.tmp
+ cd $(srcdir) && ./mktests.sh \
+ `echo " "$(AUTOCONF_FILES) | sed 's, [^ ]*/, ../lib/autoconf/,g'`
+ @mv -f mktests.tmp $@
+
+# These cannot be run in parallel.
+maintainer-check:
+ $(MAKE) $(AM_MAKEFLAGS) maintainer-check-posix
+ $(MAKE) $(AM_MAKEFLAGS) maintainer-check-c++
+expr:
+ :;{ \
+ echo '#! $(SHELL)'; \
+ echo 'result=`$(EXPR) "$$@"`'; \
+ echo 'estatus=$$?'; \
+ echo 'cat <<EOF'; \
+ echo '$${result:-0}'; \
+ echo 'EOF'; \
+ echo 'exit $$estatus'; \
+ } > $@-t
+ chmod +x $@-t
+ mv $@-t $@
+
+# Try the test suite with more severe environments.
+maintainer-check-posix: expr
+ POSIXLY_CORRECT=yes $(MAKE) $(AM_MAKEFLAGS) check
+ rm expr
+
+# Try using G++ as a C compiler.
+maintainer-check-c++:
+ CC=g++ $(MAKE) $(AM_MAKEFLAGS) check
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tests/acautoheader.at b/tests/acautoheader.at
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/acautoheader.at
diff --git a/tests/acautoupdate.at b/tests/acautoupdate.at
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/acautoupdate.at
diff --git a/tests/acc.at b/tests/acc.at
new file mode 100644
index 00000000..a4a6cfff
--- /dev/null
+++ b/tests/acc.at
@@ -0,0 +1,34 @@
+# Generated by mktests.sh. -*- Autotest -*-
+
+## --------------------- ##
+## Do not edit by hand. ##
+## --------------------- ##
+
+# Copyright (C) 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# 2010 Free Software Foundation, Inc.
+
+AT_BANNER([Testing autoconf/c macros.])
+
+# Modern macros.
+AT_CHECK_MACRO([AC_C_BACKSLASH_A])
+AT_CHECK_MACRO([AC_C_BIGENDIAN])
+AT_CHECK_MACRO([AC_C_CHAR_UNSIGNED])
+AT_CHECK_MACRO([AC_C_FLEXIBLE_ARRAY_MEMBER])
+AT_CHECK_MACRO([AC_C_INLINE])
+AT_CHECK_MACRO([AC_C_PROTOTYPES])
+AT_CHECK_MACRO([AC_C_RESTRICT])
+AT_CHECK_MACRO([AC_C_STRINGIZE])
+AT_CHECK_MACRO([AC_C_TYPEOF])
+AT_CHECK_MACRO([AC_C_VARARRAYS])
+AT_CHECK_MACRO([AC_OPENMP])
+AT_CHECK_MACRO([AC_PROG_CC_C89])
+AT_CHECK_MACRO([AC_PROG_CC_C99])
+AT_CHECK_MACRO([AC_PROG_CC_C_O])
+AT_CHECK_MACRO([AC_PROG_CC_STDC])
+AT_CHECK_MACRO([AC_PROG_CPP_WERROR])
+AT_CHECK_MACRO([AC_PROG_GCC_TRADITIONAL])
+
+# Obsolete macros.
+AT_CHECK_AU_MACRO([AC_LANG_C])
+AT_CHECK_AU_MACRO([AC_LANG_CPLUSPLUS])
+AT_CHECK_AU_MACRO([AC_LANG_OBJC])
diff --git a/tests/acfortran.at b/tests/acfortran.at
new file mode 100644
index 00000000..e6eaedf5
--- /dev/null
+++ b/tests/acfortran.at
@@ -0,0 +1,32 @@
+# Generated by mktests.sh. -*- Autotest -*-
+
+## --------------------- ##
+## Do not edit by hand. ##
+## --------------------- ##
+
+# Copyright (C) 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# 2010 Free Software Foundation, Inc.
+
+AT_BANNER([Testing autoconf/fortran macros.])
+
+# Modern macros.
+AT_CHECK_MACRO([AC_F77_IMPLICIT_NONE])
+AT_CHECK_MACRO([AC_F77_MAIN])
+AT_CHECK_MACRO([AC_F77_WRAPPERS])
+AT_CHECK_MACRO([AC_FC_CHECK_BOUNDS])
+AT_CHECK_MACRO([AC_FC_FIXEDFORM])
+AT_CHECK_MACRO([AC_FC_FREEFORM])
+AT_CHECK_MACRO([AC_FC_IMPLICIT_NONE])
+AT_CHECK_MACRO([AC_FC_LINE_LENGTH])
+AT_CHECK_MACRO([AC_FC_MAIN])
+AT_CHECK_MACRO([AC_FC_MODULE_EXTENSION])
+AT_CHECK_MACRO([AC_FC_MODULE_FLAG])
+AT_CHECK_MACRO([AC_FC_MODULE_OUTPUT_FLAG])
+AT_CHECK_MACRO([AC_FC_PP_DEFINE])
+AT_CHECK_MACRO([AC_FC_WRAPPERS])
+AT_CHECK_MACRO([AC_PROG_F77_C_O])
+AT_CHECK_MACRO([AC_PROG_FC_C_O])
+
+# Obsolete macros.
+AT_CHECK_AU_MACRO([AC_F77_NAME_MANGLING])
+AT_CHECK_AU_MACRO([AC_LANG_FORTRAN77])
diff --git a/tests/acfunctions.at b/tests/acfunctions.at
new file mode 100644
index 00000000..a78c234d
--- /dev/null
+++ b/tests/acfunctions.at
@@ -0,0 +1,43 @@
+# Generated by mktests.sh. -*- Autotest -*-
+
+## --------------------- ##
+## Do not edit by hand. ##
+## --------------------- ##
+
+# Copyright (C) 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# 2010 Free Software Foundation, Inc.
+
+AT_BANNER([Testing autoconf/functions macros.])
+
+# Modern macros.
+AT_CHECK_MACRO([AC_CHECK_FUNCS_ONCE])
+AT_CHECK_MACRO([AC_FUNC_CHOWN])
+AT_CHECK_MACRO([AC_FUNC_CLOSEDIR_VOID])
+AT_CHECK_MACRO([AC_FUNC_ERROR_AT_LINE])
+AT_CHECK_MACRO([AC_FUNC_FNMATCH])
+AT_CHECK_MACRO([AC_FUNC_FORK])
+AT_CHECK_MACRO([AC_FUNC_FSEEKO])
+AT_CHECK_MACRO([AC_FUNC_GETGROUPS])
+AT_CHECK_MACRO([AC_FUNC_GETMNTENT])
+AT_CHECK_MACRO([AC_FUNC_GETPGRP])
+AT_CHECK_MACRO([AC_FUNC_LSTAT])
+AT_CHECK_MACRO([AC_FUNC_MALLOC])
+AT_CHECK_MACRO([AC_FUNC_MBRTOWC])
+AT_CHECK_MACRO([AC_FUNC_MEMCMP])
+AT_CHECK_MACRO([AC_FUNC_MKTIME])
+AT_CHECK_MACRO([AC_FUNC_MMAP])
+AT_CHECK_MACRO([AC_FUNC_OBSTACK])
+AT_CHECK_MACRO([AC_FUNC_REALLOC])
+AT_CHECK_MACRO([AC_FUNC_SELECT_ARGTYPES])
+AT_CHECK_MACRO([AC_FUNC_SETPGRP])
+AT_CHECK_MACRO([AC_FUNC_STAT])
+AT_CHECK_MACRO([AC_FUNC_STRCOLL])
+AT_CHECK_MACRO([AC_FUNC_STRERROR_R])
+AT_CHECK_MACRO([AC_FUNC_STRFTIME])
+AT_CHECK_MACRO([AC_FUNC_STRNLEN])
+AT_CHECK_MACRO([AC_FUNC_STRTOD])
+AT_CHECK_MACRO([AC_FUNC_STRTOLD])
+AT_CHECK_MACRO([AC_FUNC_UTIME_NULL])
+AT_CHECK_MACRO([AC_FUNC_VPRINTF])
+
+# Obsolete macros.
diff --git a/tests/acgeneral.at b/tests/acgeneral.at
new file mode 100644
index 00000000..64ec5311
--- /dev/null
+++ b/tests/acgeneral.at
@@ -0,0 +1,34 @@
+# Generated by mktests.sh. -*- Autotest -*-
+
+## --------------------- ##
+## Do not edit by hand. ##
+## --------------------- ##
+
+# Copyright (C) 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# 2010 Free Software Foundation, Inc.
+
+AT_BANNER([Testing autoconf/general macros.])
+
+# Modern macros.
+AT_CHECK_MACRO([AC_ARG_ENABLE])
+AT_CHECK_MACRO([AC_ARG_PROGRAM])
+AT_CHECK_MACRO([AC_ARG_WITH])
+AT_CHECK_MACRO([AC_CHECK_DECLS_ONCE])
+AT_CHECK_MACRO([AC_EGREP_CPP])
+AT_CHECK_MACRO([AC_EGREP_HEADER])
+AT_CHECK_MACRO([AC_LIBOBJ])
+AT_CHECK_MACRO([AC_LIBSOURCES])
+AT_CHECK_MACRO([AC_PREFIX_DEFAULT])
+
+# Obsolete macros.
+AT_CHECK_AU_MACRO([AC_CHECKING])
+AT_CHECK_AU_MACRO([AC_COMPILE_CHECK])
+AT_CHECK_AU_MACRO([AC_ENABLE])
+AT_CHECK_AU_MACRO([AC_FOREACH])
+AT_CHECK_AU_MACRO([AC_MSG_RESULT_UNQUOTED])
+AT_CHECK_AU_MACRO([AC_TRY_COMPILE])
+AT_CHECK_AU_MACRO([AC_TRY_CPP])
+AT_CHECK_AU_MACRO([AC_TRY_LINK])
+AT_CHECK_AU_MACRO([AC_TRY_RUN])
+AT_CHECK_AU_MACRO([AC_VALIDATE_CACHED_SYSTEM_TUPLE])
+AT_CHECK_AU_MACRO([AC_WITH])
diff --git a/tests/acgo.at b/tests/acgo.at
new file mode 100644
index 00000000..a1380c29
--- /dev/null
+++ b/tests/acgo.at
@@ -0,0 +1,15 @@
+# Generated by mktests.sh. -*- Autotest -*-
+
+## --------------------- ##
+## Do not edit by hand. ##
+## --------------------- ##
+
+# Copyright (C) 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# 2010 Free Software Foundation, Inc.
+
+AT_BANNER([Testing autoconf/go macros.])
+
+# Modern macros.
+
+# Obsolete macros.
+AT_CHECK_AU_MACRO([AC_LANG_GO])
diff --git a/tests/acheaders.at b/tests/acheaders.at
new file mode 100644
index 00000000..0bc71abf
--- /dev/null
+++ b/tests/acheaders.at
@@ -0,0 +1,26 @@
+# Generated by mktests.sh. -*- Autotest -*-
+
+## --------------------- ##
+## Do not edit by hand. ##
+## --------------------- ##
+
+# Copyright (C) 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# 2010 Free Software Foundation, Inc.
+
+AT_BANNER([Testing autoconf/headers macros.])
+
+# Modern macros.
+AT_CHECK_MACRO([AC_CHECK_HEADERS_ONCE])
+AT_CHECK_MACRO([AC_CHECK_HEADER_STDBOOL])
+AT_CHECK_MACRO([AC_HEADER_ASSERT])
+AT_CHECK_MACRO([AC_HEADER_MAJOR])
+AT_CHECK_MACRO([AC_HEADER_RESOLV])
+AT_CHECK_MACRO([AC_HEADER_STAT])
+AT_CHECK_MACRO([AC_HEADER_STDBOOL])
+AT_CHECK_MACRO([AC_HEADER_TIOCGWINSZ])
+
+# Obsolete macros.
+AT_CHECK_AU_MACRO([AC_DIR_HEADER])
+AT_CHECK_AU_MACRO([AC_MEMORY_H])
+AT_CHECK_AU_MACRO([AC_UNISTD_H])
+AT_CHECK_AU_MACRO([AC_USG])
diff --git a/tests/aclang.at b/tests/aclang.at
new file mode 100644
index 00000000..978b5ebf
--- /dev/null
+++ b/tests/aclang.at
@@ -0,0 +1,16 @@
+# Generated by mktests.sh. -*- Autotest -*-
+
+## --------------------- ##
+## Do not edit by hand. ##
+## --------------------- ##
+
+# Copyright (C) 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# 2010 Free Software Foundation, Inc.
+
+AT_BANNER([Testing autoconf/lang macros.])
+
+# Modern macros.
+AT_CHECK_MACRO([AC_NO_EXECUTABLES])
+AT_CHECK_MACRO([AC_REQUIRE_CPP])
+
+# Obsolete macros.
diff --git a/tests/aclibs.at b/tests/aclibs.at
new file mode 100644
index 00000000..b4a92741
--- /dev/null
+++ b/tests/aclibs.at
@@ -0,0 +1,15 @@
+# Generated by mktests.sh. -*- Autotest -*-
+
+## --------------------- ##
+## Do not edit by hand. ##
+## --------------------- ##
+
+# Copyright (C) 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# 2010 Free Software Foundation, Inc.
+
+AT_BANNER([Testing autoconf/libs macros.])
+
+# Modern macros.
+
+# Obsolete macros.
+AT_CHECK_AU_MACRO([AC_HAVE_LIBRARY])
diff --git a/tests/acprograms.at b/tests/acprograms.at
new file mode 100644
index 00000000..6fd24634
--- /dev/null
+++ b/tests/acprograms.at
@@ -0,0 +1,27 @@
+# Generated by mktests.sh. -*- Autotest -*-
+
+## --------------------- ##
+## Do not edit by hand. ##
+## --------------------- ##
+
+# Copyright (C) 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# 2010 Free Software Foundation, Inc.
+
+AT_BANNER([Testing autoconf/programs macros.])
+
+# Modern macros.
+AT_CHECK_MACRO([AC_PROG_AWK])
+AT_CHECK_MACRO([AC_PROG_FGREP])
+AT_CHECK_MACRO([AC_PROG_INSTALL])
+AT_CHECK_MACRO([AC_PROG_LEX])
+AT_CHECK_MACRO([AC_PROG_LN_S])
+AT_CHECK_MACRO([AC_PROG_MAKE_SET])
+AT_CHECK_MACRO([AC_PROG_MKDIR_P])
+AT_CHECK_MACRO([AC_PROG_RANLIB])
+AT_CHECK_MACRO([AC_PROG_SED])
+AT_CHECK_MACRO([AC_PROG_YACC])
+
+# Obsolete macros.
+AT_CHECK_AU_MACRO([AC_CHECK_TOOL_PREFIX])
+AT_CHECK_AU_MACRO([AC_DECL_YYTEXT])
+AT_CHECK_AU_MACRO([AC_RSH])
diff --git a/tests/acspecific.at b/tests/acspecific.at
new file mode 100644
index 00000000..fbf533a9
--- /dev/null
+++ b/tests/acspecific.at
@@ -0,0 +1,28 @@
+# Generated by mktests.sh. -*- Autotest -*-
+
+## --------------------- ##
+## Do not edit by hand. ##
+## --------------------- ##
+
+# Copyright (C) 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# 2010 Free Software Foundation, Inc.
+
+AT_BANNER([Testing autoconf/specific macros.])
+
+# Modern macros.
+AT_CHECK_MACRO([AC_SYS_INTERPRETER])
+AT_CHECK_MACRO([AC_SYS_LARGEFILE])
+AT_CHECK_MACRO([AC_SYS_LONG_FILE_NAMES])
+AT_CHECK_MACRO([AC_SYS_POSIX_TERMIOS])
+
+# Obsolete macros.
+AT_CHECK_AU_MACRO([AC_AIX])
+AT_CHECK_AU_MACRO([AC_ARG_ARRAY])
+AT_CHECK_AU_MACRO([AC_DECL_SYS_SIGLIST])
+AT_CHECK_AU_MACRO([AC_DYNIX_SEQ])
+AT_CHECK_AU_MACRO([AC_HAVE_POUNDBANG])
+AT_CHECK_AU_MACRO([AC_IRIX_SUN])
+AT_CHECK_AU_MACRO([AC_ISC_POSIX])
+AT_CHECK_AU_MACRO([AC_MINIX])
+AT_CHECK_AU_MACRO([AC_SCO_INTL])
+AT_CHECK_AU_MACRO([AC_XENIX_DIR])
diff --git a/tests/acstatus.at b/tests/acstatus.at
new file mode 100644
index 00000000..37c96cf1
--- /dev/null
+++ b/tests/acstatus.at
@@ -0,0 +1,15 @@
+# Generated by mktests.sh. -*- Autotest -*-
+
+## --------------------- ##
+## Do not edit by hand. ##
+## --------------------- ##
+
+# Copyright (C) 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# 2010 Free Software Foundation, Inc.
+
+AT_BANNER([Testing autoconf/status macros.])
+
+# Modern macros.
+
+# Obsolete macros.
+AT_CHECK_AU_MACRO([AC_OUTPUT_COMMANDS])
diff --git a/tests/actypes.at b/tests/actypes.at
new file mode 100644
index 00000000..babec183
--- /dev/null
+++ b/tests/actypes.at
@@ -0,0 +1,42 @@
+# Generated by mktests.sh. -*- Autotest -*-
+
+## --------------------- ##
+## Do not edit by hand. ##
+## --------------------- ##
+
+# Copyright (C) 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# 2010 Free Software Foundation, Inc.
+
+AT_BANNER([Testing autoconf/types macros.])
+
+# Modern macros.
+AT_CHECK_MACRO([AC_STRUCT_DIRENT_D_INO])
+AT_CHECK_MACRO([AC_STRUCT_DIRENT_D_TYPE])
+AT_CHECK_MACRO([AC_STRUCT_ST_BLOCKS])
+AT_CHECK_MACRO([AC_STRUCT_TIMEZONE])
+AT_CHECK_MACRO([AC_TYPE_INT16_T])
+AT_CHECK_MACRO([AC_TYPE_INT32_T])
+AT_CHECK_MACRO([AC_TYPE_INT64_T])
+AT_CHECK_MACRO([AC_TYPE_INT8_T])
+AT_CHECK_MACRO([AC_TYPE_INTMAX_T])
+AT_CHECK_MACRO([AC_TYPE_INTPTR_T])
+AT_CHECK_MACRO([AC_TYPE_LONG_DOUBLE])
+AT_CHECK_MACRO([AC_TYPE_LONG_DOUBLE_WIDER])
+AT_CHECK_MACRO([AC_TYPE_MODE_T])
+AT_CHECK_MACRO([AC_TYPE_OFF_T])
+AT_CHECK_MACRO([AC_TYPE_SSIZE_T])
+AT_CHECK_MACRO([AC_TYPE_UINT16_T])
+AT_CHECK_MACRO([AC_TYPE_UINT32_T])
+AT_CHECK_MACRO([AC_TYPE_UINT64_T])
+AT_CHECK_MACRO([AC_TYPE_UINT8_T])
+AT_CHECK_MACRO([AC_TYPE_UINTMAX_T])
+AT_CHECK_MACRO([AC_TYPE_UINTPTR_T])
+
+# Obsolete macros.
+AT_CHECK_AU_MACRO([AC_C_LONG_DOUBLE])
+AT_CHECK_AU_MACRO([AC_INT_16_BITS])
+AT_CHECK_AU_MACRO([AC_LONG_64_BITS])
+AT_CHECK_AU_MACRO([AC_STRUCT_ST_BLKSIZE])
+AT_CHECK_AU_MACRO([AC_STRUCT_ST_RDEV])
+AT_CHECK_AU_MACRO([AC_TYPE_SIGNAL])
+AT_CHECK_AU_MACRO([AM_TYPE_PTRDIFF_T])
diff --git a/tests/atlocal.in b/tests/atlocal.in
index ee6ce804..bf29d1cc 100644
--- a/tests/atlocal.in
+++ b/tests/atlocal.in
@@ -2,7 +2,7 @@
# @configure_input@
# Configurable variable values for Autoconf test suite.
-# Copyright (C) 2000-2001, 2005, 2008-2011 Free Software Foundation,
+# Copyright (C) 2000-2001, 2005, 2008-2012 Free Software Foundation,
# Inc.
#
# This program is free software: you can redistribute it and/or modify
@@ -34,7 +34,7 @@ else
func_sanitize_file_name () { echo "$@" | tr -d '@ac_cv_unsupported_fs_chars@'; }
fi
-# Can we create directories with trailing whitespaces in their name?
+# Can we create directories with trailing whitespace in their names?
ac_cv_dir_trailing_space='@ac_cv_dir_trailing_space@'
if test "$ac_cv_dir_trailing_space" = yes; then
func_sanitize_dir_name () { echo "$@"; }
diff --git a/tests/autoscan.at b/tests/autoscan.at
index 794b5915..0130997a 100644
--- a/tests/autoscan.at
+++ b/tests/autoscan.at
@@ -2,7 +2,7 @@
AT_BANNER([Autoscan.])
-# Copyright (C) 2005, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2005, 2009-2012 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/tests/autotest.at b/tests/autotest.at
index ac3ed949..b56d3f87 100644
--- a/tests/autotest.at
+++ b/tests/autotest.at
@@ -2,7 +2,7 @@
AT_BANNER([Autotest.])
-# Copyright (C) 2004-2011 Free Software Foundation, Inc.
+# Copyright (C) 2004-2012 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -109,7 +109,7 @@ AT_CLEANUP
# -----------------------------------------
# Create a test named TITLE that tries compiling SUITE with syntax
# errors with autotest. Expect a failed compilation, and grep for
-# MESSAGE occuring within the error output.
+# MESSAGE occurring within the error output.
m4_define([AT_CHECK_AT_SYNTAX],
[AT_SETUP([$1])
AT_CHECK_AT_PREP([micro-suite], [$2], [1], [], [stderr])
diff --git a/tests/base.at b/tests/base.at
index 4b243666..79794133 100644
--- a/tests/base.at
+++ b/tests/base.at
@@ -2,7 +2,7 @@
AT_BANNER([Autoconf base layer.])
-# Copyright (C) 2000-2001, 2003, 2005-2011 Free Software Foundation,
+# Copyright (C) 2000-2001, 2003, 2005-2012 Free Software Foundation,
# Inc.
#
# This program is free software: you can redistribute it and/or modify
diff --git a/tests/c.at b/tests/c.at
index 7bf80520..90d60e50 100644
--- a/tests/c.at
+++ b/tests/c.at
@@ -2,7 +2,7 @@
AT_BANNER([C low level compiling/preprocessing macros.])
-# Copyright (C) 2000-2006, 2008-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2006, 2008-2012 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/tests/compile.at b/tests/compile.at
index 05c9bb3e..a4ad6e2f 100644
--- a/tests/compile.at
+++ b/tests/compile.at
@@ -2,7 +2,7 @@
AT_BANNER([Low level compiling/preprocessing macros.])
-# Copyright (C) 2000-2001, 2003, 2005-2011 Free Software Foundation,
+# Copyright (C) 2000-2001, 2003, 2005-2012 Free Software Foundation,
# Inc.
#
# This program is free software: you can redistribute it and/or modify
@@ -463,4 +463,3 @@ AT_CHECK_AUTOCONF
AT_CHECK_CONFIGURE([-q])
AT_CLEANUP
-
diff --git a/tests/erlang.at b/tests/erlang.at
index 0f4a018f..58789b64 100644
--- a/tests/erlang.at
+++ b/tests/erlang.at
@@ -2,7 +2,7 @@
AT_BANNER([Erlang low level compiling and utility macros.])
-# Copyright (C) 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -15,9 +15,7 @@ AT_BANNER([Erlang low level compiling and utility macros.])
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Since the macros which compile are required by most tests, check
diff --git a/tests/foreign.at b/tests/foreign.at
index d314021f..78230073 100644
--- a/tests/foreign.at
+++ b/tests/foreign.at
@@ -2,7 +2,7 @@
AT_BANNER([Compatibility with other tools.])
-# Copyright (C) 2000-2007, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2007, 2009-2012 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -103,7 +103,7 @@ AC_OUTPUT
AT_DATA([Makefile.in],
[[SHTOOL = @SHTOOL@
-# fake these, so that we use shtool whereever possible.
+# fake these, so that we use shtool wherever possible.
INSTALL_PROGRAM = $(ac_install_sh)
INSTALL_DATA = $(ac_install_sh) -m 644
prefix = @prefix@
diff --git a/tests/fortran.at b/tests/fortran.at
index 524a8c38..af23eb98 100644
--- a/tests/fortran.at
+++ b/tests/fortran.at
@@ -2,7 +2,7 @@
AT_BANNER([Fortran low level compiling/preprocessing macros.])
-# Copyright (C) 2000-2001, 2003, 2008-2011 Free Software Foundation,
+# Copyright (C) 2000-2001, 2003, 2008-2012 Free Software Foundation,
# Inc.
#
# This program is free software: you can redistribute it and/or modify
diff --git a/tests/go.at b/tests/go.at
index 6bad32d7..8733aee4 100644
--- a/tests/go.at
+++ b/tests/go.at
@@ -2,7 +2,7 @@
AT_BANNER([Go low level compiling and utility macros.])
-# Copyright (C) 2011 Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -15,9 +15,7 @@ AT_BANNER([Go low level compiling and utility macros.])
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Since the macros which compile are required by most tests, check
diff --git a/tests/local.at b/tests/local.at
index 1678c33c..40b73185 100644
--- a/tests/local.at
+++ b/tests/local.at
@@ -1,6 +1,6 @@
# M4 macros used in building Autoconf test suites. -*- Autotest -*-
-# Copyright (C) 2000-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -47,10 +47,11 @@ AT_CHECK([$at_diff "$1" "$2"])
# AT_CHECK_SHELL_SYNTAX(PROGRAM)
# ------------------------------
# If the shell handles `-n' well, use it to check the syntax of PROGRAM;
-# otherwise, do nothing.
+# otherwise, do nothing. ksh93 -n also spits outs loads of warnings
+# about older constructs, but we don't care about the warnings.
m4_define([AT_CHECK_SHELL_SYNTAX],
[AT_SKIP_IF([test "$ac_cv_sh_n_works" != yes])
-AT_CHECK([/bin/sh -n $1])])
+AT_CHECK([/bin/sh -n $1], [], [], [ignore])])
m4_define([AT_CHECK_PERL_SYNTAX],
[AT_CHECK([autom4te_perllibdir=$abs_top_srcdir/lib $PERL -c "$abs_top_builddir"/bin/$1],
@@ -297,9 +298,10 @@ test -f state-ls.after \
# Compare variable space dumps.
if test -f state-env.before && test -f state-env.after; then
set +x
+ grep_failed=false
for act_file in state-env.before state-env.after
do
- $EGREP -v '^(m4_join([|],
+ ($EGREP -v '^(m4_join([|],
[a[cs]_.*],
[(exec_)?prefix|DEFS|CONFIG_STATUS],
[CC|CFLAGS|CPP|GCC|CXX|CXXFLAGS|CXXCPP|GXX|F77|FFLAGS|FLIBS|G77],
@@ -316,19 +318,23 @@ if test -f state-env.before && test -f state-env.after; then
[(host|build|target)(_(alias|cpu|vendor|os))?],
[cross_compiling|U],
[interpval|PATH_SEPARATOR],
- [F77_DUMMY_MAIN|f77_(case|underscore)],
+ [GFC|F77_DUMMY_MAIN|f77_(case|underscore)],
[FC(_DUMMY_MAIN|FLAGS|LIBS|FLAGS_[fF]|_MODEXT|_MODINC|_MODOUT|_DEFINE)?],
[ALLOCA|GETLOADAVG_LIBS|KMEM_GROUP|NEED_SETGID|POW_LIB],
[AWK|LEX|LEXLIB|LEX_OUTPUT_ROOT|LN_S|M4|MKDIR_P|RANLIB|SET_MAKE|YACC],
[GREP|[EF]GREP|SED],
[[_@]|.[*#?$].],
[argv|ARGC|LINENO|OLDPWD|PIPESTATUS|RANDOM|SECONDS]))=' \
- $act_file 2>/dev/null |
+ $act_file ||
+ test $? -eq 1 || echo failed >&2
+ ) 2>stderr-$act_file |
# There may be variables spread on several lines; remove latter lines.
- $GREP '^m4_defn([m4_re_word])=' >clean-$act_file
+ $GREP '^m4_defn([m4_re_word])=' >clean-$act_file ||
+ test $? -eq 1 || grep_failed=:
+ test -s stderr-$act_file && grep_failed=:
done
$at_traceon
- $at_diff clean-state-env.before clean-state-env.after
+ $grep_failed || $at_diff clean-state-env.before clean-state-env.after
fi
} [#]at_check_env])
diff --git a/tests/m4sh.at b/tests/m4sh.at
index a5ef905b..4e4da5d1 100644
--- a/tests/m4sh.at
+++ b/tests/m4sh.at
@@ -2,7 +2,7 @@
AT_BANNER([M4sh.])
-# Copyright (C) 2000-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2012 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,6 +17,127 @@ AT_BANNER([M4sh.])
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+## --------------------------- ##
+## Re-exec with CONFIG_SHELL. ##
+## --------------------------- ##
+
+AT_SETUP([No extra re-exec with CONFIG_SHELL])
+AT_KEYWORDS([CONFIG_SHELL])
+AT_DATA_M4SH([script.as],
+[[
+dnl We have to muck with internal details to goad the script into
+dnl thinking that the default shell is always good enough.
+m4_define([_AS_DETECT_REQUIRED_BODY], [])dnl
+m4_define([_AS_DETECT_SUGGESTED_BODY], [])dnl
+AS_INIT
+echo foo > ok
+]])
+AT_CHECK_M4SH
+AT_CHECK([CONFIG_SHELL=/bin/false ./script], [0], [], [])
+AT_CHECK([test -f ok], [0])
+rm -f ok
+
+AT_CLEANUP
+
+AT_SETUP([Forced re-exec with CONFIG_SHELL])
+AT_KEYWORDS([CONFIG_SHELL])
+
+AT_DATA_M4SH([script.as],
+[[m4_define([_AS_FORCE_REEXEC_WITH_CONFIG_SHELL], [yes])
+AS_INIT
+echo foo > sentinel
+]])
+AT_CHECK_M4SH
+
+# Calling the script simply 'script' could cause problems with
+# Solaris /usr/xpg4/bin/sh in the invocation 'sh script' below.
+mv -f script script2
+
+AT_DATA([fake-shell],
+[[#!/bin/sh
+echo 'Fake shell executed.'
+shift # fake shell
+echo "nargs = @S|@#"
+for i
+do
+ printf ' :%s:\n' "$i"
+done
+]])
+chmod a+x fake-shell
+
+AT_CHECK([CONFIG_SHELL=./fake-shell ./script2 1 2 4 8], [0],
+[Fake shell executed.
+nargs = 4
+ :1:
+ :2:
+ :4:
+ :8:
+], [])
+AT_CHECK([test ! -f sentinel], [0])
+test ! -f sentinel || rm -f sentinel # Cleanup for next test.
+
+AT_CHECK(
+[CONFIG_SHELL=`pwd`/fake-shell sh script2 a 'b c' ' d e '],
+[0],
+[Fake shell executed.
+nargs = 3
+ :a:
+ :b c:
+ : d e :
+], [])
+AT_CHECK([test ! -f sentinel], [0])
+test ! -f sentinel || rm -f sentinel # Cleanup for next test.
+
+AT_CHECK([(PATH=`pwd`:$PATH; export PATH;
+CONFIG_SHELL=fake-shell script2 '' '&' '!;*' '<($[]@%:@)>,' 'x
+y z
+1 2 3')], [0],
+[Fake shell executed.
+nargs = 5
+ ::
+ :&:
+ :!;*:
+ :<($[]@%:@)>,:
+ :x
+y z
+1 2 3:
+], [])
+AT_CHECK([test ! -f sentinel], [0])
+test ! -f sentinel || rm -f sentinel # Cleanup for next test.
+
+AT_CLEANUP
+
+AT_SETUP([Configure re-execs self with CONFIG_SHELL])
+
+AT_DATA([configure.ac],
+[[AC_INIT
+echo foobar >> quux
+]])
+
+AT_CHECK_AUTOCONF
+
+AT_DATA([cfg-sh],
+[[#!/bin/sh
+: > cfg-sh-has-run
+exec sh "@S|@@"
+]])
+chmod a+x cfg-sh
+
+AT_CAPTURE_FILE([config.log])
+# Export CONFIG_SITE to /dev/null to avoid spurious diffs in expected
+# stdout/stderr.
+AT_CHECK([env CONFIG_SITE=/dev/null CONFIG_SHELL=./cfg-sh ./configure],
+ [0], [], [])
+# ./configure re-executed itself.
+AT_CHECK([test -f cfg-sh-has-run], [0])
+# And did that not to cause extra execution of later commands.
+AT_CHECK([cat quux], [0], [foobar
+], [])
+
+rm -f quux cfg-sh*
+AT_CLEANUP
+
+
## ------------------- ##
## AS_WARN, AS_ERROR. ##
## ------------------- ##
@@ -438,6 +559,58 @@ AT_CLEANUP
+## ----------------- ##
+## AS_EXECUTABLE_P. ##
+## ----------------- ##
+
+# Check for executable regular files.
+AT_SETUP([AS@&t@_EXECUTABLE_P])
+AT_KEYWORDS([m4sh])
+
+AT_DATA_M4SH([script.as],
+[[AS_INIT
+
+if AS_EXECUTABLE_P([/]); then
+ echo fail
+else
+ echo 1
+fi
+cat > foo.sh <<\EOF || AS_EXIT([1])
+#!/bin/sh
+exit 0
+EOF
+# File systems like FAT tend to fake executable permissions on all files.
+# At this point, foo.sh should be executable iff permissions are faked.
+AS_EXECUTABLE_P([foo.sh])
+st1=$?
+(./foo.sh) >/dev/null 2>&1
+st2=$?
+case $st1:$st2 in
+ *[[1-9]]*:*[[1-9]]* | 0:0 ) echo 2 ;;
+ *) echo "fail ($st1:$st2)" ;;
+esac
+# Now things better be executable
+chmod a+x foo.sh || AS_EXIT([2])
+mkdir 'two spaces' || AS_EXIT([3])
+'two spaces'/../foo.sh || AS_EXIT([4])
+if AS_EXECUTABLE_P(["two spaces/../foo.sh"]); then
+ echo 3
+else
+ echo fail
+fi
+]])
+
+AT_CHECK_M4SH
+AT_CHECK([$CONFIG_SHELL ./script], [],
+[[1
+2
+3
+]])
+
+AT_CLEANUP
+
+
+
## --------- ##
## AS_EXIT. ##
## --------- ##
@@ -1393,9 +1566,10 @@ A_B_C_P__
dnl Check that of the last 6 macros, only 2 needed command substitution.
dnl This test abuses our knowledge of m4sh internals a bit; oh well.
-AT_CHECK([sed -n '/start here/,$ {
+AT_CHECK([tab=' ' # a single ASCII tab character
+sed -n '/start here/,$ {
/`.*`/p
-}' script | wc -l], [], [[2
+}' script | wc -l | sed "s/[[ $tab]]//g" ], [], [[2
]])
AT_CLEANUP
diff --git a/tests/m4sugar.at b/tests/m4sugar.at
index cbe602d5..997e2ddd 100644
--- a/tests/m4sugar.at
+++ b/tests/m4sugar.at
@@ -2,7 +2,7 @@
AT_BANNER([M4sugar.])
-# Copyright (C) 2000-2002, 2005-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2002, 2005-2012 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -618,6 +618,7 @@ c
post
]],
[[script.4s:15: warning: m4@&t@_require: `a' was expanded before it was required
+script.4s:15: http://www.gnu.org/software/autoconf/manual/autoconf.html#Expanded-Before-Required
script.4s:5: b is expanded from...
script.4s:6: c is expanded from...
script.4s:14: outer is expanded from...
diff --git a/tests/mktests.sh b/tests/mktests.sh
index 908092ac..41058e2b 100755
--- a/tests/mktests.sh
+++ b/tests/mktests.sh
@@ -2,7 +2,7 @@
# Build some of the Autoconf test files.
-# Copyright (C) 2000-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/tests/mktests.stamp b/tests/mktests.stamp
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/mktests.stamp
diff --git a/tests/semantics.at b/tests/semantics.at
index 5bcab525..de54cf86 100644
--- a/tests/semantics.at
+++ b/tests/semantics.at
@@ -2,7 +2,7 @@
AT_BANNER([Semantics.])
-# Copyright (C) 2000-2002, 2004-2007, 2009-2011 Free Software
+# Copyright (C) 2000-2002, 2004-2007, 2009-2012 Free Software
# Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
diff --git a/tests/statesave.m4 b/tests/statesave.m4
index 8052e0db..2f63ae53 100644
--- a/tests/statesave.m4
+++ b/tests/statesave.m4
@@ -1,6 +1,6 @@
# statesave.m4 serial 2
-# Copyright (C) 2000-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -13,9 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
# AC_STATE_SAVE(FILE)
# -------------------
diff --git a/tests/suite.at b/tests/suite.at
index 9a23d60c..10c8c4f2 100644
--- a/tests/suite.at
+++ b/tests/suite.at
@@ -1,6 +1,6 @@
# Validation suite for Autoconf -*- Autotest -*-
-# Copyright (C) 2000-2001, 2003-2005, 2009-2011 Free Software
+# Copyright (C) 2000-2001, 2003-2005, 2009-2012 Free Software
# Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
diff --git a/tests/tools.at b/tests/tools.at
index 0ccb3871..31d4aadb 100644
--- a/tests/tools.at
+++ b/tests/tools.at
@@ -2,7 +2,7 @@
AT_BANNER([Executables (autoheader, autoupdate...).])
-# Copyright (C) 2000-2001, 2003-2004, 2006-2011 Free Software
+# Copyright (C) 2000-2001, 2003-2004, 2006-2012 Free Software
# Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
@@ -703,7 +703,7 @@ AC_DEFINE([ANT], [@], [The Ant in a h@t.])
# Yes, that's right: the `middle' part of `acconfig.h' is still before
# the AH_TOP part. But so what, you're not supposed to use the two
# together.
-# Ignore STDERR which is the longuish complaint against autoheader junk
+# Ignore STDERR which is the longish complaint against autoheader junk
# files.
AT_CHECK_AUTOHEADER([--force], [], [], [ignore])
AT_CHECK([cat config.hin], 0,
diff --git a/tests/torture.at b/tests/torture.at
index b3a5ac33..9923305c 100644
--- a/tests/torture.at
+++ b/tests/torture.at
@@ -1,6 +1,6 @@
# -*- Autotest -*-
-# Copyright (C) 2000-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/tests/wrapper.as b/tests/wrapper.as
index c1112a7b..7a77a049 100644
--- a/tests/wrapper.as
+++ b/tests/wrapper.as
@@ -1,7 +1,7 @@
AS_INIT[]dnl -*- shell-script -*-
# wrapper.as -- running `@wrap_program@' as if it were installed.
# @configure_input@
-# Copyright (C) 2003-2004, 2007, 2009-2011 Free Software Foundation,
+# Copyright (C) 2003-2004, 2007, 2009-2012 Free Software Foundation,
# Inc.
# This program is free software: you can redistribute it and/or modify