autoconf-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Autoconf source repository branch, master, updated. v2.69-30-g


From: Stefano Lattarini
Subject: [SCM] GNU Autoconf source repository branch, master, updated. v2.69-30-geb75296
Date: Fri, 21 Sep 2012 20:49:21 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Autoconf source repository".

http://git.sv.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=eb75296d0112e911c885ecf3a8a17d76c8eaa4f9

The branch, master has been updated
       via  eb75296d0112e911c885ecf3a8a17d76c8eaa4f9 (commit)
       via  7528220334dad2dd192b49f954c0ad3cc6b08734 (commit)
       via  2b9ab0ee8aabef8c7e281a614eca7a9d32288b1c (commit)
       via  6e7c2223e691b984ce025d7e83e6caed9630d8c7 (commit)
       via  6ca25b1fe42c256de7838d01929e3b2b4cfb4591 (commit)
       via  bc7e12e78e027522e4e2fcd3f8b6eae7a1913e9f (commit)
       via  2ba184e5074625a3d7a8d93c3300c6a77b3862a4 (commit)
      from  8e796471bfbb05d5e0f86c53cb19508351d7e8ef (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit eb75296d0112e911c885ecf3a8a17d76c8eaa4f9
Author: Stefano Lattarini <address@hidden>
Date:   Fri Sep 21 14:37:00 2012 +0200

    maint: resync most files from upstream
    
    The files in lib/Autom4te/ are intentionally not synced at this point,
    since automake commit v1.11-2114-g2d671e1 "perl refactor: use modern
    semantics of 'open'":
    <http://lists.gnu.org/archive/html/automake-patches/2012-03/msg00111.html>
    would require wider adaptation of our scripts to the new XFile API, and
    also exposes some latent bugs in autoconf where we use raw 'open' instead
    of XFile::open.  We'll take care of that in a later patches (maybe).
    
    * build-aux/announce-gen: Resync via 'make fetch'.
    * build-aux/config.guess: Likewise.
    * build-aux/config.sub: Likewise.
    * build-aux/gendocs.sh: Likewise.
    * build-aux/gitlog-to-changelog: Likewise.
    * build-aux/gnupload: Likewise.
    * build-aux/texinfo.tex: Likewise.
    * doc/make-stds.texi: Likewise.
    * doc/standards.texi: Likewise.
    * maint.mk: Likewise.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 7528220334dad2dd192b49f954c0ad3cc6b08734
Author: Stefano Lattarini <address@hidden>
Date:   Fri Sep 21 12:34:48 2012 +0200

    build: quote 'like this', not `like this'
    
    As per updated GCS recommendations.
    
    * Makefile.am, configure.ac, lib/m4sugar/Makefile.am,
    tests/Makefile.am, m4/m4.m4: Here.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 2b9ab0ee8aabef8c7e281a614eca7a9d32288b1c
Author: Stefano Lattarini <address@hidden>
Date:   Fri Sep 21 21:28:34 2012 +0200

    autom4te: update Automake preselections to reflect the changes in 1.12.x
    
    Issue revealed by a failure in test "35: tools.at: autom4te preselections":
    <http://lists.gnu.org/archive/html/bug-autoconf/2012-09/msg00020.html>
    
    * lib/autom4te.in: Add 'AM_PROG_MKDIR_P'.
    
    Helped-by: Eric Blake <address@hidden>
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 6e7c2223e691b984ce025d7e83e6caed9630d8c7
Author: Stefano Lattarini <address@hidden>
Date:   Fri Sep 21 20:59:01 2012 +0200

    autoreconf: assume --force-missing automake option is supported
    
    According to Automake's NEWS file, it is since at least Automake 1.8,
    and in autoreconf we are already assuming aclocal >= 1.8 anyway.
    
    * bin/autoreconf.in (parse_args): Simplify a little by just assuming
    the automake option '--force-missing' is supported.
    ($automake_supports_force_missing): Delete, no longer needed.
    * NEWS: Update.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 6ca25b1fe42c256de7838d01929e3b2b4cfb4591
Author: Stefano Lattarini <address@hidden>
Date:   Fri Sep 21 09:56:06 2012 +0200

    autoreconf: minor simplifying refactoring
    
    * bin/autoreconf.in (run_aclocal): After the previous commit, this has
    become just a useless wrapper around xsystem("$aclocal .."), so get rid
    of it, and inline its expansion in the two places where it was used ...
    (autoreconf_current_directory): ... in here.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit bc7e12e78e027522e4e2fcd3f8b6eae7a1913e9f
Author: Stefano Lattarini <address@hidden>
Date:   Fri Sep 21 09:51:33 2012 +0200

    autoreconf: drop support for old (< 1.8) aclocal versions
    
    The minimal automake and aclocal version required by the "most"
    conservative important real world-projects (like Gnulib and Libvirt)
    is 1.9 anyway (which is the version installed on old but still
    supported installations of stable Distros like RHEL 5), so this
    change should be safe and justified by now.
    
    * bin/autoreconf.in (parse_args): Simplify by just assuming the aclocal
    options '--force' and '--no-force' are supported and works correctly.
    ($aclocal_supports_force): Delete, no longer needed.
    (run_aclocal): Heavily simplify by assuming that aclocal properly creates
    'aclocal.m4' as lazily as possible.
    * NEWS: Update.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 2ba184e5074625a3d7a8d93c3300c6a77b3862a4
Author: Stefano Lattarini <address@hidden>
Date:   Fri Sep 21 10:51:36 2012 +0200

    scripts: quote 'like this', not `like this'
    
    As per updated GCS recommendations.
    
    * bin/autoconf.as, bin/autoreconf.in, bin/autoscan.in, ifnames.in,
    bin/autoupdate.in: Throughout these files.
    * bin/autoheader.in, bin/autom4te.in: Likewise.  Also, remove some
    useless escaping of the "'" single-quote characters, and reformat
    some message for better line wrapping.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 Makefile.am                   |    6 +-
 NEWS                          |    3 +
 bin/autoconf.as               |   34 +++---
 bin/autoheader.in             |   34 +++---
 bin/autom4te.in               |  104 +++++++++---------
 bin/autoreconf.in             |  118 ++++-----------------
 bin/autoscan.in               |   38 ++++----
 bin/autoupdate.in             |  180 ++++++++++++++++----------------
 bin/ifnames.in                |    4 +-
 build-aux/announce-gen        |   51 ++++++----
 build-aux/config.guess        |   17 ++-
 build-aux/config.sub          |   17 ++-
 build-aux/gendocs.sh          |   35 ++++---
 build-aux/gitlog-to-changelog |   55 +++++++++-
 build-aux/gnupload            |   28 ++++--
 build-aux/texinfo.tex         |  236 ++++++++++++++++++++++++-----------------
 configure.ac                  |    8 +-
 doc/make-stds.texi            |    2 +-
 doc/standards.texi            |   68 +++++++-----
 lib/autom4te.in               |    2 +
 lib/m4sugar/Makefile.am       |    2 +-
 m4/m4.m4                      |    2 +-
 maint.mk                      |  159 ++++++++++++++++++++--------
 tests/Makefile.am             |    8 +-
 24 files changed, 683 insertions(+), 528 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index bed0b6c..c0eecbf 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -16,7 +16,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # bin/ must be run first, as it builds executables needed for tests.
-# autom4te uses autotest.m4f to generate `testsuite', so build tests last.
+# 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
 
@@ -114,8 +114,8 @@ check-coverage-run: all
 
 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; \
+         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)
diff --git a/NEWS b/NEWS
index bea8911..7db1c82 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,9 @@ GNU Autoconf NEWS - User visible changes.
 ** The use of the long-deprecated name 'configure.in' for the autoconf
    input file now elicits a warning in the 'obsolete' category.
 
+** Older version of automake and aclocal (< 1.8) are no longer supported
+   by autoreconf.
+
 ** Macros
 
 - AC_PROG_CC now prefers C11 if available, falling back on C99 and
diff --git a/bin/autoconf.as b/bin/autoconf.as
index aa85394..c2f9230 100644
--- a/bin/autoconf.as
+++ b/bin/autoconf.as
@@ -1,7 +1,7 @@
 AS_INIT[]dnl                                            -*- shell-script -*-
 m4_divert_push([HEADER-COPYRIGHT])dnl
 # @configure_input@
-# autoconf -- create `configure' using m4 macros
+# autoconf -- create 'configure' using m4 macros.
 
 # Copyright (C) 1992-1994, 1996, 1999-2012 Free Software Foundation,
 # Inc.
@@ -26,9 +26,9 @@ usage=["\
 Usage: $0 [OPTION]... [TEMPLATE-FILE]
 
 Generate a configuration script from a TEMPLATE-FILE if given, or
-\`configure.ac' if present, or else \`configure.in'.  Output is sent
+'configure.ac' if present, or else 'configure.in'.  Output is sent
 to the standard output if TEMPLATE-FILE is given, else into
-\`configure'.
+'configure'.
 
 Operation modes:
   -h, --help                print this help, then exit
@@ -40,15 +40,15 @@ Operation modes:
   -W, --warnings=CATEGORY   report the warnings falling in CATEGORY [syntax]
 
 Warning categories include:
-  \`cross'         cross compilation issues
-  \`obsolete'      obsolete constructs
-  \`syntax'        dubious syntactic constructs
-  \`all'           all the warnings
-  \`no-CATEGORY'   turn off the warnings on CATEGORY
-  \`none'          turn off all the warnings
-  \`error'         warnings are error
+  'cross'         cross compilation issues
+  'obsolete'      obsolete constructs
+  'syntax'        dubious syntactic constructs
+  'all'           all the warnings
+  'no-CATEGORY'   turn off the warnings on CATEGORY
+  'none'          turn off all the warnings
+  'error'         warnings are error
 
-The environment variables \`M4' and \`WARNINGS' are honored.
+The environment variables 'M4' and 'WARNINGS' are honored.
 
 Library directories:
   -B, --prepend-include=DIR  prepend directory DIR to search path
@@ -59,7 +59,7 @@ Tracing:
   -i, --initialization        also trace Autoconf's initialization process
 
 In tracing mode, no configuration script is created.  FORMAT defaults
-to \`\$f:\$l:\$n:\$%'; see \`autom4te --help' for information about FORMAT.
+to '\$f:\$l:\$n:\$%'; see 'autom4te --help' for information about FORMAT.
 
 Report bugs to <address@hidden>.
 GNU Autoconf home page: <http://www.gnu.org/software/autoconf/>.
@@ -76,10 +76,10 @@ There is NO WARRANTY, to the extent permitted by law.
 Written by David J. MacKenzie and Akim Demaille."]
 
 help="\
-Try \`$as_me --help' for more information."
+Try '$as_me --help' for more information."
 
 exit_missing_arg='
-  m4_bpatsubst([AS_ERROR([option `$[1]' requires an argument$as_nl$help])],
+  m4_bpatsubst([AS_ERROR([option '$[1]' requires an argument$as_nl$help])],
     ['], ['\\''])'
 # restore font-lock: '
 
@@ -153,7 +153,7 @@ while test $# -gt 0 ; do
        break ;;
     -* )
        exec >&2
-       AS_ERROR([invalid option `$[1]'$as_nl$help]) ;; #`
+       AS_ERROR([invalid option '$[1]'$as_nl$help]) ;;
     * )
        break ;;
   esac
@@ -164,8 +164,8 @@ case $# in
   0)
     if test -f configure.ac; then
       if test -f configure.in; then
-       AS_ECHO(["$as_me: warning: both \`configure.ac' and \`configure.in' are 
present."]) >&2
-       AS_ECHO(["$as_me: warning: proceeding with \`configure.ac'."]) >&2
+       AS_ECHO(["$as_me: warning: both 'configure.ac' and 'configure.in' are 
present."]) >&2
+       AS_ECHO(["$as_me: warning: proceeding with 'configure.ac'."]) >&2
       fi
       infile=configure.ac
     elif test -f configure.in; then
diff --git a/bin/autoheader.in b/bin/autoheader.in
index d81a313..dc3e25f 100644
--- a/bin/autoheader.in
+++ b/bin/autoheader.in
@@ -5,7 +5,7 @@
 eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
     if 0;
 
-# autoheader -- create `config.h.in' from `configure.ac'
+# autoheader -- create 'config.h.in' from 'configure.ac'.
 
 # Copyright (C) 1992-1994, 1996, 1998-2012 Free Software Foundation,
 # Inc.
@@ -46,7 +46,7 @@ use Autom4te::General;
 use Autom4te::XFile;
 use strict;
 
-# Using `do FILE', we need `local' vars.
+# Using 'do FILE', we need 'local' vars.
 use vars qw ($config_h %verbatim %symbol);
 
 # Lib files.
@@ -61,9 +61,9 @@ my @include;
 # -----
 $help = "Usage: $0 [OPTION]... [TEMPLATE-FILE]
 
-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\'.
+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'.
 
   -h, --help               print this help, then exit
   -V, --version            print version number, then exit
@@ -140,16 +140,16 @@ my $acconfig_h = find_file ("acconfig.h?",
 if ($config_h_top || $config_h_bot || $acconfig_h)
   {
     my $msg = << "END";
-    Using auxiliary files such as \`acconfig.h\', \`config.h.bot\'
-    and \`config.h.top\', to define templates for \`config.h.in\'
+    Using auxiliary files such as 'acconfig.h', 'config.h.bot'
+    and 'config.h.top', to define templates for 'config.h.in'
     is deprecated and discouraged.
 
-    Using the third argument of \`AC_DEFINE\' and
-    \`AC_DEFINE_UNQUOTED\' allows one to define a template without
-    \`acconfig.h\':
+    Using the third argument of 'AC_DEFINE_UNQUOTED' and
+    'AC_DEFINE' allows one to define a template without
+    'acconfig.h':
 
       AC_DEFINE([NEED_FUNC_MAIN], 1,
-               [Define if a function \`main\' is needed.])
+               [Define if a function 'main' is needed.])
 
     More sophisticated templates can also be produced, see the
     documentation.
@@ -175,14 +175,14 @@ verb "$me: running $autoconf to trace from $ARGV[0]";
 my $quoted_tmp = shell_quote ($tmp);
 xsystem ("$autoconf"
         # If you change this list, update the
-        # `Autoheader-preselections' section of autom4te.in.
+        # 'Autoheader-preselections' section of autom4te.in.
         . ' --trace AC_CONFIG_HEADERS:\'$$config_h ||= \'"\'"\'$1\'"\'"\';\''
         . ' --trace AH_OUTPUT:\'$$verbatim{\'"\'"\'$1\'"\'"\'} = 
\'"\'"\'$2\'"\'"\';\''
         . ' --trace AC_DEFINE_TRACE_LITERAL:\'$$symbol{\'"\'"\'$1\'"\'"\'} = 
1;\''
         . " " . shell_quote ($ARGV[0]) . " >$quoted_tmp/traces.pl");
 
 local (%verbatim, %symbol);
-debug "$me: \`do'ing $tmp/traces.pl:\n" . `sed 's/^/| /' 
$quoted_tmp/traces.pl`;
+debug "$me: 'do'ing $tmp/traces.pl:\n" . `sed 's/^/| /' $quoted_tmp/traces.pl`;
 do "$tmp/traces.pl";
 warn "couldn't parse $tmp/traces.pl: $@" if $@;
 unless ($config_h)
@@ -197,7 +197,7 @@ $config_h =~ s/ .*//;
 ($config_h, $config_h_in) = split (':', $config_h, 2);
 $config_h_in ||= "$config_h.in";
 
-# %SYMBOL might contain things like `F77_FUNC(name,NAME)', but we keep
+# %SYMBOL might contain things like 'F77_FUNC(name,NAME)', but we keep
 # only the name of the macro.
 %symbol = map { s/\(.*//; $_ => 1 } keys %symbol;
 
@@ -217,7 +217,7 @@ if ($config_h_top)
       }
   }
 
-# Dump `acconfig.h', except for its bottom portion.
+# Dump 'acconfig.h', except for its bottom portion.
 if ($acconfig_h)
   {
     my $in = new Autom4te::XFile ("< " . open_quote ($acconfig_h));
@@ -229,13 +229,13 @@ if ($acconfig_h)
       }
   }
 
-# Dump the templates from `configure.ac'.
+# Dump the templates from 'configure.ac'.
 foreach (sort keys %verbatim)
   {
     print $out "\n$verbatim{$_}\n";
   }
 
-# Dump bottom portion of `acconfig.h'.
+# Dump bottom portion of 'acconfig.h'.
 if ($acconfig_h)
   {
     my $in = new Autom4te::XFile ("< " . open_quote ($acconfig_h));
diff --git a/bin/autom4te.in b/bin/autom4te.in
index 11773c9..16387a1 100644
--- a/bin/autom4te.in
+++ b/bin/autom4te.in
@@ -72,10 +72,10 @@ my $flock_implemented = '@PERL_FLOCK@';
 my %trace;
 
 # The macros the user will want to trace in the future.
-# We need `include' to get the included file, `m4_pattern_forbid' and
-# `m4_pattern_allow' to check the output.
+# We need 'include' to get the included file, 'm4_pattern_forbid' and
+# 'm4_pattern_allow' to check the output.
 #
-# FIXME: What about `sinclude'?
+# FIXME: What about 'sinclude'?
 my @preselect = ('include',
                 'm4_pattern_allow', 'm4_pattern_forbid',
                 '_m4_warn');
@@ -105,20 +105,20 @@ map { s/:.*//;s/\W// } @m4_builtin;
 
 # %M4_BUILTIN_ALTERNATE_NAME
 # --------------------------
-# The builtins are renamed, e.g., `define' is renamed `m4_define'.
-# So map `define' to `m4_define' and conversely.
+# The builtins are renamed, e.g., 'define' is renamed 'm4_define'.
+# So map 'define' to 'm4_define' and conversely.
 # Some macros don't follow this scheme: be sure to properly map to their
 # alternate name too.
 #
 # FIXME: Trace status of renamed builtins was fixed in M4 1.4.5, which
 # we now depend on; do we still need to do this mapping?
 #
-# So we will merge them, i.e., tracing `BUILTIN' or tracing
-# `m4_BUILTIN' will be the same: tracing both, but honoring the
+# So we will merge them, i.e., tracing 'BUILTIN' or tracing
+# 'm4_BUILTIN' will be the same: tracing both, but honoring the
 # *last* trace specification.
 #
-# FIXME: This is not enough: in the output `$0' will be `BUILTIN'
-# sometimes and `m4_BUILTIN' at others.  We should return a unique name,
+# FIXME: This is not enough: in the output '$0' will be 'BUILTIN'
+# sometimes and 'm4_BUILTIN' at others.  We should return a unique name,
 # the one specified by the user.
 #
 # FIXME: To be absolutely rigorous, I would say that given that we
@@ -139,38 +139,38 @@ $help = "Usage: $0 [OPTION]... [FILES]
 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.
 
-If some of the FILES are named \`FILE.m4f\' they are considered to be M4
+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
+If 'FILE.m4f' is not found, then 'FILE.m4' will be used, together with
 all the previous files.
 
 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.
+include path, but then must end in '.m4?';  the question mark is not part
+of the actual file name.
 
 Operation modes:
   -h, --help               print this help, then exit
   -V, --version            print version number, then exit
   -v, --verbose            verbosely report processing
-  -d, --debug              don\'t remove temporary files
-  -o, --output=FILE        save output in FILE (defaults to \`-\', stdout)
-  -f, --force              don\'t rely on cached values
+  -d, --debug              don't remove temporary files
+  -o, --output=FILE        save output in FILE (defaults to '-', stdout)
+  -f, --force              don't rely on cached values
   -W, --warnings=CATEGORY  report the warnings falling in CATEGORY
   -l, --language=LANG      specify the set of M4 macros to use
   -C, --cache=DIRECTORY    preserve results for future runs in DIRECTORY
       --no-cache           disable the cache
   -m, --mode=OCTAL         change the non trace output file mode (0666)
-  -M, --melt               don\'t use M4 frozen files
+  -M, --melt               don't use M4 frozen files
 
 Languages include:
-  \`Autoconf\'   create Autoconf configure scripts
-  \`Autotest\'   create Autotest test suites
-  \`M4sh\'       create M4sh shell scripts
-  \`M4sugar\'    create M4sugar output
+  'Autoconf'   create Autoconf configure scripts
+  'Autotest'   create Autotest test suites
+  'M4sh'       create M4sh shell scripts
+  'M4sugar'    create M4sugar output
 
 " . Autom4te::ChannelDefs::usage . "
 
-The environment variables \`M4\' and \`WARNINGS\' are honored.
+The environment variables 'M4' and 'WARNINGS' are honored.
 
 Library directories:
   -B, --prepend-include=DIR  prepend directory DIR to search path
@@ -183,7 +183,7 @@ Tracing:
 Freezing:
   -F, --freeze   produce an M4 frozen state file for FILES
 
-FORMAT defaults to \`\$f:\$l:\$n:\$%\', and can use the following escapes:
+FORMAT defaults to '\$f:\$l:\$n:\$%', and can use the following escapes:
   \$\$     literal \$
   \$f     file where macro was called
   \$l     line where macro was called
@@ -347,9 +347,9 @@ sub parse_args ()
      "I|include=s"         => address@hidden,
 
      # Tracing:
-     # Using a hash for traces is seducing.  Unfortunately, upon `-t FOO',
-     # instead of mapping `FOO' to undef, Getopt maps it to `1', preventing
-     # us from distinguishing `-t FOO' from `-t FOO=1'.  So let's do it
+     # Using a hash for traces is seducing.  Unfortunately, upon '-t FOO',
+     # instead of mapping 'FOO' to undef, Getopt maps it to '1', preventing
+     # us from distinguishing '-t FOO' from '-t FOO=1'.  So let's do it
      # by hand.
      "t|trace=s"     => address@hidden,
      "p|preselect=s" => address@hidden,
@@ -363,7 +363,7 @@ sub parse_args ()
     );
 
   fatal "too few arguments
-Try `$me --help' for more information."
+Try '$me --help' for more information."
     unless @ARGV;
 
   # Freezing:
@@ -388,13 +388,13 @@ Try `$me --help' for more information."
 
   # Normalize the includes: the first occurrence is enough, several is
   # a pain since it introduces a useless difference in the path which
-  # invalidates the cache.  And strip `.' which is implicit and always
+  # invalidates the cache.  And strip '.' which is implicit and always
   # first.
   @include = grep { !/^\.$/ } uniq (reverse(@prepend_include), @include);
 
   # Convert @trace to %trace, and work around the M4 builtins tracing
   # problem.
-  # The default format is `$f:$l:$n:$%'.
+  # The default format is '$f:$l:$n:$%'.
   foreach (@trace)
     {
       /^([^:]+)(?::(.*))?$/ms;
@@ -413,9 +413,9 @@ Try `$me --help' for more information."
   # discarded: the frozen file is supposed to include them all.
   #
   # We don't want to depend upon m4's --include to find the top level
-  # files, so we use `find_file' here.  Try to get a canonical name,
+  # files, so we use 'find_file' here.  Try to get a canonical name,
   # as it's part of the key for caching.  And some files are optional
-  # (also handled by `find_file').
+  # (also handled by 'find_file').
   my @argv;
   foreach (@ARGV)
     {
@@ -425,7 +425,7 @@ Try `$me --help' for more information."
        }
       elsif (/\.m4f$/)
        {
-         # Frozen files are optional => pass a `?' to `find_file'.
+         # Frozen files are optional => pass a '?' to 'find_file'.
          my $file = find_file ("$_?", @include);
          if (!$melt && $file)
            {
@@ -484,7 +484,7 @@ sub handle_m4 ($@)
 # warn_forbidden ($WHERE, $WORD, %FORBIDDEN)
 # ------------------------------------------
 # $WORD is forbidden.  Warn with a dedicated error message if in
-# %FORBIDDEN, otherwise a simple `error: possibly undefined macro'
+# %FORBIDDEN, otherwise a simple 'error: possibly undefined macro'
 # will do.
 my $first_warn_forbidden = 1;
 sub warn_forbidden ($$%)
@@ -572,7 +572,7 @@ sub handle_output ($$)
       $res = $_;
 
       # Don't complain in comments.  Well, until we have something
-      # better, don't consider `#include' etc. are comments.
+      # better, don't consider '#include' etc. are comments.
       s/\#.*//
        unless /^\#\s*(if|include|endif|ifdef|ifndef|define)\b/;
       foreach (split (/\W+/))
@@ -604,7 +604,7 @@ sub handle_output ($$)
       while ($_ = $file->getline)
        {
          # Don't complain in comments.  Well, until we have something
-         # better, don't consider `#include' etc. to be comments.
+         # better, don't consider '#include' etc. to be comments.
          s/\#.*//
            unless /^\#(if|include|endif|ifdef|ifndef|define)\b/;
 
@@ -703,10 +703,10 @@ sub trace_format_to_m4 ($)
 # handle_traces($REQ, $OUTPUT, %TRACE)
 # ------------------------------------
 # We use M4 itself to process the traces.  But to avoid name clashes when
-# processing the traces, the builtins are disabled, and moved into `at_'.
-# Actually, all the low level processing macros are in `at_' (and `_at_').
-# To avoid clashes between user macros and `at_' macros, the macros which
-# implement tracing are in `AT_'.
+# processing the traces, the builtins are disabled, and moved into 'at_'.
+# Actually, all the low level processing macros are in 'at_' (and '_at_').
+# To avoid clashes between user macros and 'at_' macros, the macros which
+# implement tracing are in 'AT_'.
 #
 # Having $REQ is needed to neutralize the macros which have been traced,
 # but are not wanted now.
@@ -714,7 +714,7 @@ sub handle_traces ($$%)
 {
   my ($req, $output, %trace) = @_;
 
-  verb "formatting traces for `$output': " . join (', ', sort keys %trace);
+  verb "formatting traces for '$output': " . join (', ', sort keys %trace);
 
   # Processing the traces.
   my $trace_m4 = new Autom4te::XFile ("> " . open_quote ("$tmp/traces.m4"));
@@ -726,9 +726,9 @@ sub handle_traces ($$%)
   # ----------------------------------
   # List the elements, separating then with SEPARATOR.
   # MODE can be:
-  #  `at'       -- the elements are enclosed in brackets.
-  #  `star'     -- the elements are listed as are.
-  #  `percent'  -- the elements are `flattened': spaces are singled out,
+  #  'at'       -- the elements are enclosed in brackets.
+  #  'star'     -- the elements are listed as are.
+  #  'percent'  -- the elements are 'flattened': spaces are singled out,
   #                and no new line remains.
   define([_at_at],
   [at_ifelse([$#], [1], [],
@@ -746,7 +746,7 @@ sub handle_traces ($$%)
             [[$2][$1]$0([$1], at_shift(at_shift($@)))])])
 
   # FLATTEN quotes its result.
-  # Note that the second pattern is `newline, tab or space'.  Don't lose
+  # Note that the second pattern is 'newline, tab or space'.  Don't lose
   # the tab!
   define([at_flatten],
   [at_patsubst(at_patsubst([[[$1]]], [\\\n]), [[\n\t ]+], [ ])])
@@ -760,14 +760,14 @@ EOF
   s/^  //mg;s/\\t/\t/mg;s/\\n/\n/mg;
   print $trace_m4 $_;
 
-  # If you trace `define', then on `define([m4_exit], defn([m4exit])' you
+  # If you trace 'define', then on 'define([m4_exit], defn([m4exit])' you
   # will produce
   #
   #    AT_define([m4sugar.m4], [115], [1], [define], [m4_exit], <m4exit>)
   #
-  # Since `<m4exit>' is not quoted, the outer m4, when processing
-  # `trace.m4' will exit prematurely.  Hence, move all the builtins to
-  # the `at_' name space.
+  # Since '<m4exit>' is not quoted, the outer m4, when processing
+  # 'trace.m4' will exit prematurely.  Hence, move all the builtins to
+  # the 'at_' name space.
 
   print $trace_m4 "# Copy the builtins.\n";
   map { print $trace_m4 "define([at_$_], defn([$_]))\n" } @m4_builtin;
@@ -817,7 +817,7 @@ EOF
   # | AT_AC_SUBST([configure.ac], [3], [1], [AC_SUBST], [exec_prefix], [NONE])
   #
   # Pay attention that the file name might include colons, if under DOS
-  # for instance, so we don't use `[^:]+'.
+  # for instance, so we don't use '[^:]+'.
   my $traces = new Autom4te::XFile ("< " . open_quote ($tcache . $req->id));
   while ($_ = $traces->getline)
     {
@@ -858,7 +858,7 @@ EOF
 # up_to_date ($REQ)
 # -----------------
 # Are the cache files of $REQ up to date?
-# $REQ is `valid' if it corresponds to the request and exists, which
+# $REQ is 'valid' if it corresponds to the request and exists, which
 # does not mean it is up to date.  It is up to date if, in addition,
 # its files are younger than its dependencies.
 sub up_to_date ($)
@@ -939,7 +939,7 @@ sub freeze ($)
   fatal "freezing produced output:\n$result"
     if $result;
 
-  # If freezing produces output, something went wrong: a bad `divert',
+  # If freezing produces output, something went wrong: a bad 'divert',
   # or an improper paren etc.
   xsystem ("$m4"
           . ' --fatal-warning'
@@ -1037,7 +1037,7 @@ if (%trace)
   {
     # Always produce traces, since even if the output is young enough,
     # there is no guarantee that the traces use the same *format*
-    # (e.g., `-t FOO:foo' and `-t FOO:bar' are both using the same M4
+    # (e.g., '-t FOO:foo' and '-t FOO:bar' are both using the same M4
     # traces, hence the M4 traces cache is usable, but its formatting
     # will yield different results).
     handle_traces ($req, $output, %trace);
diff --git a/bin/autoreconf.in b/bin/autoreconf.in
index acf25d4..75869fc 100644
--- a/bin/autoreconf.in
+++ b/bin/autoreconf.in
@@ -54,15 +54,15 @@ use strict;
 # -----
 $help = "Usage: $0 [OPTION]... [DIRECTORY]...
 
-Run `autoconf' (and `autoheader', `aclocal', `automake', `autopoint'
-(formerly `gettextize'), and `libtoolize' where appropriate)
+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 `.').
+DIRECTORIES and their subdirectories (defaulting to '.').
 
 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.
+you can make 'autoreconf' remake all of the files by giving it the
+'--force' option.
 
 Operation modes:
   -h, --help               print this help, then exit
@@ -78,8 +78,8 @@ Operation modes:
 
 " . Autom4te::ChannelDefs::usage . "
 
-The environment variable \`WARNINGS\' is honored.  Some subtools might
-support other warning types, using \`all' is encouraged.
+The environment variable 'WARNINGS' is honored.  Some subtools might
+support other warning types, using 'all' is encouraged.
 
 Library directories:
   -B, --prepend-include=DIR  prepend directory DIR to search path
@@ -119,12 +119,8 @@ my $make       = $ENV{'MAKE'}       || 'make';
 my $install = 0;
 # symlink -- when --install, use symlinks instead.
 my $symlink = 0;
-# Does aclocal support --force?
-my $aclocal_supports_force = 0;
 # Does aclocal support -Wfoo?
 my $aclocal_supports_warnings = 0;
-# Does automake support --force-missing?
-my $automake_supports_force_missing = 0;
 # Does automake support -Wfoo?
 my $automake_supports_warnings = 0;
 
@@ -134,7 +130,7 @@ my @include;
 # List of command line warning requests.
 my @warning;
 
-# Rerun `./configure && make'?
+# Rerun './configure && make'?
 my $run_make = 0;
 
 # Recurse into subpackages
@@ -187,9 +183,7 @@ sub parse_args ()
 
   my $aclocal_help = `$aclocal --help 2>/dev/null`;
   my $automake_help = `$automake --help 2>/dev/null`;
-  $aclocal_supports_force = $aclocal_help =~ /--force/;
   $aclocal_supports_warnings = $aclocal_help =~ /--warnings/;
-  $automake_supports_force_missing = $automake_help =~ /--force-missing/;
   $automake_supports_warnings = $automake_help =~ /--warnings/;
 
   # Dispatch autoreconf's option to the tools.
@@ -210,23 +204,16 @@ sub parse_args ()
   # --force;
   if ($force)
     {
-      $aclocal    .= ' --force'
-       if $aclocal_supports_force;
+      $aclocal    .= ' --force';
       $autoconf   .= ' --force';
       $autoheader .= ' --force';
-      $automake   .= ' --force-missing'
-       if $automake_supports_force_missing;
+      $automake   .= ' --force-missing';
       $autopoint  .= ' --force';
       $libtoolize .= ' --force';
     }
   else
     {
-      # The implementation of --no-force is bogus in all implementations
-      # of Automake up to 1.8, so we avoid it in these cases.  (Automake
-      # 1.8 is the first version where aclocal supports force, hence
-      # the condition.)
-      $automake .= ' --no-force'
-       if $aclocal_supports_force;
+      $automake .= ' --no-force';
     }
   # --verbose --verbose or --debug;
   if ($verbose > 1 || $debug)
@@ -256,67 +243,6 @@ sub parse_args ()
 }
 
 
-# &run_aclocal ($ACLOCAL, $FLAGS)
-# -------------------------------
-# Update aclocal.m4 as lazily as possible, as aclocal pre-1.8 always
-# overwrites aclocal.m4, hence triggers autoconf, autoheader, automake
-# etc. uselessly.  aclocal 1.8+ does not need this.
-sub run_aclocal ($$)
-{
-  my ($aclocal, $flags) = @_;
-
-  # aclocal 1.8+ does all this for free.  It can be recognized by its
-  # --force support.
-  if ($aclocal_supports_force)
-    {
-      xsystem ("$aclocal $flags");
-    }
-  else
-    {
-      xsystem ("$aclocal $flags --output=aclocal.m4t");
-      # aclocal may produce no output.
-      if (-f 'aclocal.m4t')
-       {
-         update_file ('aclocal.m4t', 'aclocal.m4');
-         # Make sure that the local m4 files are older than
-         # aclocal.m4.
-         #
-         # Why is not always the case?  Because we already run
-         # aclocal at first (before tracing), which, for instance,
-         # can find Gettext's macros in .../share/aclocal, so we may
-         # have had the right aclocal.m4 already.  Then autopoint is
-         # run, and installs locally these M4 files.  Then
-         # autoreconf, via update_file, sees it is the _same_
-         # aclocal.m4, and doesn't change its timestamp.  But later,
-         # Automake's Makefile expresses that aclocal.m4 depends on
-         # these local files, which are newer, so it triggers aclocal
-         # again.
-         #
-         # To make sure aclocal.m4 is no older, we change the
-         # modification times of the local M4 files to be not newer
-         # than it.
-         #
-         # First, where are the local files?
-         my $aclocal_local_dir = '.';
-         if ($flags =~ /-I\s+(\S+)/)
-           {
-             $aclocal_local_dir = $1;
-           }
-         # All the local files newer than aclocal.m4 are to be
-         # made not newer than it.
-         my $aclocal_m4_mtime = mtime ('aclocal.m4');
-         for my $file (glob ("$aclocal_local_dir/*.m4"), 'acinclude.m4')
-           {
-             if ($aclocal_m4_mtime < mtime ($file))
-               {
-                 debug "aging $file to be not newer than aclocal.m4";
-                 utime $aclocal_m4_mtime, $aclocal_m4_mtime, $file;
-               }
-           }
-       }
-    }
-}
-
 # &autoreconf_current_directory
 # -----------------------------
 sub autoreconf_current_directory ()
@@ -354,7 +280,7 @@ sub autoreconf_current_directory ()
 
   # Gettext is a bit of a problem: its macros are not necessarily
   # visible to aclocal, so if we start with a completely striped down
-  # package (think of a fresh CVS checkout), running `aclocal' first
+  # package (think of a fresh CVS checkout), running 'aclocal' first
   # will fail: the Gettext macros are missing.
   #
   # Therefore, we can't use the traces to decide if we use Gettext or
@@ -366,7 +292,7 @@ sub autoreconf_current_directory ()
   # prevents one to embed AM_GNU_GETTEXT_VERSION in another *.m4, but
   # anyway we don't limit the generality, since... that's what
   # autopoint does.  Actually, it is even more restrictive, as it
-  # greps for `^AM_GNU_GETTEXT_VERSION('.  We did this above, while
+  # greps for '^AM_GNU_GETTEXT_VERSION('.  We did this above, while
   # scanning configure.ac.
   if (!$uses_gettext)
     {
@@ -437,7 +363,7 @@ sub autoreconf_current_directory ()
       # fall.
       sleep 1;
 
-      run_aclocal ($aclocal, $aclocal_flags);
+      xsystem ("$aclocal $aclocal_flags");
     }
 
   # We might have to rerun aclocal if Libtool (or others) imports new
@@ -466,7 +392,7 @@ sub autoreconf_current_directory ()
      . join (' ',
             map { ' --trace=' . $_ . ':\$n::\${::}%' }
             # If you change this list, update the
-            # `Autoreconf-preselections' section of autom4te.in.
+            # 'Autoreconf-preselections' section of autom4te.in.
             'AC_CONFIG_AUX_DIR',
             'AC_CONFIG_HEADERS',
             'AC_CONFIG_SUBDIRS',
@@ -571,7 +497,7 @@ sub autoreconf_current_directory ()
        }
       else
        {
-         run_aclocal ($aclocal, $aclocal_flags);
+         xsystem ("$aclocal $aclocal_flags");
        }
     }
 
@@ -580,7 +506,7 @@ sub autoreconf_current_directory ()
   # Running autoconf.  #
   # ------------------ #
 
-  # Don't try to be smarter than `autoconf', which does its own up to
+  # Don't try to be smarter than 'autoconf', which does its own up to
   # date checks.
   #
   # We prefer running autoconf before autoheader, because (i) the
@@ -623,8 +549,8 @@ sub autoreconf_current_directory ()
   else
     {
       # We should always run automake, and let it decide whether it shall
-      # update the file or not.  In fact, the effect of `$force' is already
-      # included in `$automake' via `--no-force'.
+      # update the file or not.  In fact, the effect of '$force' is already
+      # included in '$automake' via '--no-force'.
       xsystem ($automake);
     }
 
@@ -666,7 +592,7 @@ sub autoreconf ($)
 
   # The format for this message is not free: taken from Emacs, itself
   # using GNU Make's format.
-  verb "Entering directory `$directory'";
+  verb "Entering directory '$directory'";
   chdir $directory
     or error "cannot chdir to $directory: $!";
 
@@ -674,7 +600,7 @@ sub autoreconf ($)
 
   # The format is not free: taken from Emacs, itself using GNU Make's
   # format.
-  verb "Leaving directory `$directory'";
+  verb "Leaving directory '$directory'";
   chdir $cwd
     or error "cannot chdir to $cwd: $!";
 }
@@ -690,7 +616,7 @@ mktmpdir ('ar');
 $ENV{'TMPDIR'} = $tmp;
 parse_args;
 
-# Autoreconf all the given configure.ac.  Unless `--no-recursive' is passed,
+# Autoreconf all the given configure.ac.  Unless '--no-recursive' is passed,
 # AC_CONFIG_SUBDIRS will be traversed in &autoreconf_current_directory.
 $ENV{'AUTOM4TE'} = $autom4te;
 for my $directory (@ARGV)
diff --git a/bin/autoscan.in b/bin/autoscan.in
index a67c48d..af85569 100644
--- a/bin/autoscan.in
+++ b/bin/autoscan.in
@@ -68,10 +68,10 @@ my %kind_comment =
    'program'    => 'Checks for programs.',
   );
 
-# $USED{KIND}{ITEM} is the list of locations where the ITEM (of KIND) was used
-# in the user package.
-# For instance $USED{function}{alloca} is the list of `file:line' where
-# `alloca (...)' appears.
+# $USED{KIND}{ITEM} is the list of locations where the ITEM (of KIND) was
+# used in the user package.
+# For instance $USED{function}{alloca} is the list of 'file:line' where
+# 'alloca (...)' appears.
 my %used = ();
 
 # $MACRO{KIND}{ITEM} is the list of macros to use to test ITEM.
@@ -80,8 +80,8 @@ my %used = ();
 my %macro = ();
 
 # $NEEDED_MACROS{MACRO} is an array of locations requiring MACRO.
-# E.g., $NEEDED_MACROS{AC_FUNC_ALLOC} the list of `file:line' containing
-# `alloca (...)'.
+# E.g., $NEEDED_MACROS{AC_FUNC_ALLOC} the list of 'file:line' containing
+# 'alloca (...)'.
 my %needed_macros =
   (
    'AC_PREREQ' => [$me],
@@ -103,8 +103,8 @@ $help = "Usage: $0 [OPTION]... [SRCDIR]
 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.
+'configure.ac', and create a file '$configure_scan' which is a
+preliminary 'configure.ac' for that package.
 
   -h, --help          print this help, then exit
   -V, --version       print version number, then exit
@@ -148,7 +148,7 @@ sub parse_args ()
          'B|prepend-include=s' => address@hidden);
 
   die "$me: too many arguments
-Try `$me --help' for more information.\n"
+Try '$me --help' for more information.\n"
     if @ARGV > 1;
 
   my $srcdir = $ARGV[0] || ".";
@@ -215,8 +215,8 @@ sub used ($$;$)
   my ($kind, $word, $where) = @_;
   $where ||= "$File::Find::name:$.";
   if (
-      # Check for all the libraries.  But `-links' is certainly a
-      # `find' argument, and `-le', a `test' argument.
+      # Check for all the libraries.  But '-links' is certainly a
+      # 'find' argument, and '-le', a 'test' argument.
       ($kind eq 'library' && $word !~ /^(e|inks)$/)
       # Other than libraries are to be checked only if listed in
       # the Autoscan library files.
@@ -322,8 +322,8 @@ sub scan_makefile ($)
        {
          used ('makevar', $1);
        }
-      # Be sure to catch a whole word.  For instance `lex$U.$(OBJEXT)'
-      # is a single token.  Otherwise we might believe `lex' is needed.
+      # Be sure to catch a whole word.  For instance 'lex$U.$(OBJEXT)'
+      # is a single token.  Otherwise we might believe 'lex' is needed.
       foreach my $word (split (/\s+/))
        {
          # Libraries.
@@ -332,8 +332,8 @@ sub scan_makefile ($)
              used ('library', $1);
            }
          # Tokens in the code.
-         # We allow some additional characters, e.g., `+', since
-         # autoscan/programs includes `c++'.
+         # We allow some additional characters, e.g., '+', since
+         # autoscan/programs includes 'c++'.
          if ($word =~ /^[a-zA-Z_][\w+]*$/)
            {
              used ('program', $word);
@@ -385,7 +385,7 @@ sub scan_file ()
   # Save $_ as Find::File requires it to be preserved.
   local $_ = $_;
 
-  # Strip a useless leading `./'.
+  # Strip a useless leading './'.
   $File::Find::name =~ s,^\./,,;
 
   if ($_ ne '.' and -d $_ and
@@ -507,7 +507,7 @@ sub output_libraries ($)
   print $file "\n# Checks for libraries.\n";
   foreach my $word (sort keys %{$used{'library'}})
     {
-      print $file "# FIXME: Replace `main' with a function in `-l$word':\n";
+      print $file "# FIXME: Replace 'main' with a function in '-l$word':\n";
       print $file "AC_CHECK_LIB([$word], [main])\n";
     }
 }
@@ -583,7 +583,7 @@ sub check_configure_ac ($)
 
   # Find what needed macros are invoked in CONFIGURE_AC.
   # I'd be very happy if someone could explain to me why sort (uniq ...)
-  # doesn't work properly: I need `uniq (sort ...)'.  --akim
+  # doesn't work properly: I need 'uniq (sort ...)'.  --akim
   my $trace_option =
     join (' --trace=', '',
          uniq (sort (map { s/\(.*//; $_ } keys %needed_macros)));
@@ -602,7 +602,7 @@ sub check_configure_ac ($)
          # separated macros.  But there is no point.
          foreach my $word (split (/\s|,/, $args[0]))
            {
-             # AC_CHECK_MEMBERS wants `struct' or `union'.
+             # AC_CHECK_MEMBERS wants 'struct' or 'union'.
              if ($macro eq "AC_CHECK_MEMBERS"
                  && $word =~ /^stat.st_/)
                {
diff --git a/bin/autoupdate.in b/bin/autoupdate.in
index 9737d49..0679140 100644
--- a/bin/autoupdate.in
+++ b/bin/autoupdate.in
@@ -60,8 +60,8 @@ my $m4 = $ENV{"M4"} || '@M4@';
 # -----
 $help = "Usage: $0 [OPTION]... [TEMPLATE-FILE]...
 
-Update each TEMPLATE-FILE if given, or `configure.ac' if present,
-or else `configure.in', to the syntax of the current version of
+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.
 
 Operation modes:
@@ -168,7 +168,7 @@ sub handle_autoconf_macros ()
   delete $ac_macros{$_}
     foreach (keys %au_macros);
   # Don't keep M4sugar macros which are redefined by Autoconf,
-  # such as `builtin', `changequote' etc.  See autoconf/autoconf.m4.
+  # such as 'builtin', 'changequote' etc.  See autoconf/autoconf.m4.
   delete $ac_macros{$_}
     foreach (keys %m4_builtins);
   error "no current Autoconf macros found"
@@ -228,7 +228,7 @@ $autoconf .= join (' --prepend-include=', '', map { 
shell_quote ($_) } @prepend_
 mktmpdir ('au');
 handle_autoconf_macros;
 
-# $au_changequote -- enable the quote `[', `]' right before any AU macro.
+# $au_changequote -- enable the quote '[', ']' right before any AU macro.
 my $au_changequote =
   's/\b(' . join ('|', keys %au_macros) . ')\b/_au_m4_changequote([,])$1/g';
 
@@ -285,7 +285,7 @@ foreach my $file (@ARGV)
       # Redefine m4_location to fix the line number.
       m4_define([m4_location], [__file__:m4_eval(__line__ - _au__first_line)])
 
-      # Move all the builtins into the `_au_' pseudo namespace
+      # Move all the builtins into the '_au_' pseudo namespace
       m4_include([m4save.m4])
 
       # _au_defun(NAME, BODY)
@@ -310,7 +310,7 @@ foreach my $file (@ARGV)
       # above).  AU macros might use AU macros, which should
       # enable/disable only for the outer AU macros.
       #
-      # `_au_enabled' is used to this end, determining whether we really
+      # '_au_enabled' is used to this end, determining whether we really
       # enable/disable.
 
 
@@ -367,7 +367,7 @@ foreach my $file (@ARGV)
       ## Disable, and process the file.  ##
       ## ------------------------------- ##
       # The AC autoquoting macros are not loaded yet, hence invoking
-      # `_au_disable' would be wrong.
+      # '_au_disable' would be wrong.
       _au__include([unm4.m4])
 
       # Disable special characters, and set the first line number.
@@ -408,13 +408,13 @@ exit 0;
 
 
 #                ## ---------------------------- ##
-#                ## How `autoupdate' functions.  ##
+#                ## How 'autoupdate' functions.  ##
 #                ## ---------------------------- ##
 #
-# The task of `autoupdate' is not trivial: the biggest difficulty being
+# The task of 'autoupdate' is not trivial: the biggest difficulty being
 # that you must limit the changes to the parts that really need to be
 # updated.  Finding a satisfying implementation proved to be quite hard,
-# as this is the fifth implementation of `autoupdate'.
+# as this is the fifth implementation of 'autoupdate'.
 #
 # Below, we will use a simple example of an obsolete macro:
 #
@@ -440,7 +440,7 @@ exit 0;
 # The first implementation was only able to change the name of obsolete
 # macros.
 #
-# The file `acoldnames.m4' defined the old names based on the new names.
+# The file 'acoldnames.m4' defined the old names based on the new names.
 # It was simple then to produce a sed script such as:
 #
 #     s/OLD/NEW/g
@@ -448,7 +448,7 @@ exit 0;
 # Updating merely consisted in running this script on the file to
 # update.
 #
-# This scheme suffers from an obvious limitation: that `autoupdate' was
+# This scheme suffers from an obvious limitation: that 'autoupdate' was
 # unable to cope with new macros that just swap some of its arguments
 # compared to the old macro.  Fortunately, that was enough to upgrade
 # from Autoconf 1 to Autoconf 2.  (But I have no idea whether the
@@ -460,7 +460,7 @@ exit 0;
 #
 # The version 2.15 of Autoconf brought a vast number of changes compared
 # to 2.13, so a solution was needed.  One could think of extending the
-# `sed' scripts with specialized code for complex macros.  However, this
+# 'sed' scripts with specialized code for complex macros.  However, this
 # approach is of course full of flaws:
 #
 # a. the Autoconf maintainers have to write these snippets, which we
@@ -484,7 +484,7 @@ exit 0;
 #     warned), and its code is the code to use when running autoconf,
 #     but that the very same code has to be used when running
 #     autoupdate.  To summarize, the interface I want is
-#     `AU_DEFUN(OLD-NAME, NEW-CODE)'.
+#     'AU_DEFUN(OLD-NAME, NEW-CODE)'.
 #
 #
 # Now for the technical details.
@@ -498,14 +498,14 @@ exit 0;
 # features, m4sugar.m4 is needed.  Please note that the fact that
 # Autoconf's macros are not loaded is positive on two points:
 #
-# - we do get an updated `configure.ac', not a `configure'!
+# - we do get an updated 'configure.ac', not a 'configure'!
 #
 # - the old macros are replaced by *calls* to the new-macros, not the
 #   body of the new macros, since their body is not defined!!!
 #   (Whoa, that's really beautiful!).
 #
 # Additionally we need to disable the quotes when reading the input for
-# two reasons: first because otherwise `m4' will swallow the quotes of
+# two reasons: first because otherwise 'm4' will swallow the quotes of
 # other macros:
 #
 #     NEW([1, 2], 3)
@@ -526,9 +526,9 @@ exit 0;
 # Well, in this case, when running in autoupdate code, each macro first
 # reestablishes the quotes, expands itself, and disables the quotes.
 #
-# Thinking a bit more, you realize that in fact, people may use `define',
-# `ifelse' etc. in their files, and you certainly don't want to process
-# them.  Another example is `dnl': you don't want to remove the
+# Thinking a bit more, you realize that in fact, people may use 'define',
+# 'ifelse' etc. in their files, and you certainly don't want to process
+# them.  Another example is 'dnl': you don't want to remove the
 # comments.  You then realize you don't want exactly to import m4sugar:
 # you want to specify when it is enabled (macros active), and disabled.
 # m4sugar provides m4_disable/m4_enable to this end.
@@ -540,8 +540,8 @@ exit 0;
 # ways, the AC way, and the AU way.
 #
 # One first solution is to check whether acgeneral.m4 was loaded.  But
-# that's definitely not cute.  Another is simply to install `hooks',
-# that is to say, to keep in some place m4 knows, late `define' to be
+# that's definitely not cute.  Another is simply to install 'hooks',
+# that is to say, to keep in some place m4 knows, late 'define' to be
 # triggered *only* in AU mode.
 #
 # You first think of designing AU_DEFUN like this:
@@ -556,18 +556,18 @@ exit 0;
 #                               Disable the quotes.])])
 #
 # but this will not work: NEW-CODE probably uses $1, $2 etc. and these
-# guys will be replaced with the argument of `Store for late AU binding'
+# guys will be replaced with the argument of 'Store for late AU binding'
 # when you call it.
 #
 # I don't think there is a means to avoid this using this technology
 # (remember that $1 etc. are *always* expanded in m4).  You may also try
 # to replace them with $[1] to preserve them for a later evaluation, but
-# if `Store for late AU binding' is properly written, it will remain
+# if 'Store for late AU binding' is properly written, it will remain
 # quoted till the end...
 #
-# You have to change technology.  Since the problem is that `$1'
-# etc. should be `consumed' right away, one solution is to define now a
-# second macro, `AU_OLD-NAME', and to install a hook than binds OLD-NAME
+# You have to change technology.  Since the problem is that '$1'
+# etc. should be 'consumed' right away, one solution is to define now a
+# second macro, 'AU_OLD-NAME', and to install a hook than binds OLD-NAME
 # to AU_OLD-NAME.  Then, autoupdate.m4 just need to run the hooks.  By
 # the way, the same method was used in autoheader.
 #
@@ -577,7 +577,7 @@ exit 0;
 #
 # Actually, this implementation was just a clean up of the previous
 # implementation: instead of defining hooks by hand, m4sugar was equipped
-# with `namespaces'.  What are they?
+# with 'namespaces'.  What are they?
 #
 # Sometimes we want to disable some *set* of macros, and restore them
 # later.  We provide support for this via namespaces.
@@ -587,19 +587,19 @@ exit 0;
 # (i.e., all the definitions it holds).
 #
 # Technically, to define a MACRO in NAMESPACE means to define the macro
-# named `NAMESPACE::MACRO' to the VALUE.  At the same time, we append
-# `undefine(NAME)' in the macro named `m4_disable(NAMESPACE)', and
-# similarly a binding of NAME to the value of `NAMESPACE::MACRO' in
-# `m4_enable(NAMESPACE)'.  These mechanisms allow to bind the macro of
+# named 'NAMESPACE::MACRO' to the VALUE.  At the same time, we append
+# 'undefine(NAME)' in the macro named 'm4_disable(NAMESPACE)', and
+# similarly a binding of NAME to the value of 'NAMESPACE::MACRO' in
+# 'm4_enable(NAMESPACE)'.  These mechanisms allow to bind the macro of
 # NAMESPACE and to unbind them at will.
 #
 # Of course this implementation is really inefficient: m4 has to grow
 # strings which can become quickly huge, which slows it significantly.
 #
-# In particular one should avoid as much as possible to use `define' for
-# temporaries.  Now that `define' has quite a complex meaning, it is an
+# In particular one should avoid as much as possible to use 'define' for
+# temporaries.  Now that 'define' has quite a complex meaning, it is an
 # expensive operations that should be limited to macros.  Use
-# `m4_define' for temporaries.
+# 'm4_define' for temporaries.
 #
 # Private copies of the macros we used in entering / exiting the m4sugar
 # namespace.  It is much more convenient than fighting with the renamed
@@ -610,8 +610,8 @@ exit 0;
 # Those two implementations suffered from serious problems:
 #
 # - namespaces were really expensive, and incurred a major performance
-#   loss on `autoconf' itself, not only `autoupdate'.  One solution
-#   would have been the limit the use of namespaces to `autoupdate', but
+#   loss on 'autoconf' itself, not only 'autoupdate'.  One solution
+#   would have been the limit the use of namespaces to 'autoupdate', but
 #   that's again some complications on m4sugar, which really doesn't need
 #   this.  So we wanted to get rid of the namespaces.
 #
@@ -620,7 +620,7 @@ exit 0;
 #
 #     foo([1, 2])
 #
-#   m4 saw 2 arguments: `[1'and `2]'.  A simple solution, somewhat
+#   m4 saw 2 arguments: '[1'and '2]'.  A simple solution, somewhat
 #   fragile, is to reestablish the quotes right before all the obsolete
 #   macros, i.e., to use sed so that the previous text becomes
 #
@@ -672,12 +672,12 @@ exit 0;
 #        0)
 #
 # Grpmh.  Two problems.  A minor problem: it would have been much better
-# to have the `m4_eval' computed, and a major problem: you lost the
+# to have the 'm4_eval' computed, and a major problem: you lost the
 # quotation in the result.
 #
 # Let's address the big problem first.  One solution is to define any
 # modern macro to rewrite its calls with the proper quotation, thanks to
-# `$@'.  Again, tracing the `define's makes it possible to know which
+# '$@'.  Again, tracing the 'define's makes it possible to know which
 # are these macros, so you input is:
 #
 #     divert(-1)dnl
@@ -700,10 +700,10 @@ exit 0;
 #     NEW([1, 2],[m4_eval(1 + 2)])
 #     NEW([0, 0],[0])
 #
-# Our problem is solved, i.e., the first call to `NEW' is properly
+# Our problem is solved, i.e., the first call to 'NEW' is properly
 # quoted, but introduced another problem: we changed the layout of the
 # second calls, which can be a drama in the case of huge macro calls
-# (think of `AC_TRY_RUN' for instance).  This example didn't show it,
+# (think of 'AC_TRY_RUN' for instance).  This example didn't show it,
 # but we also introduced parens to macros which did not have some:
 #
 #     AC_INIT
@@ -715,8 +715,8 @@ exit 0;
 # Additionally, we introduced quotes that were not there before, which is
 # OK in most cases, but could change the semantics of the file.
 #
-# Cruel dilemma: we do want the auto-quoting definition of `NEW' when
-# evaluating `OLD', but we don't when we evaluate the second `NEW'.
+# Cruel dilemma: we do want the auto-quoting definition of 'NEW' when
+# evaluating 'OLD', but we don't when we evaluate the second 'NEW'.
 # Back to namespaces?
 #
 # No.
@@ -742,12 +742,12 @@ exit 0;
 #     NEW([0, 0],
 #        0)
 #
-# i.e., the new value of `OLD' is precomputed using the auto-quoting
-# definition of `NEW' and the m4 builtins.  We'll see how afterwards,
+# i.e., the new value of 'OLD' is precomputed using the auto-quoting
+# definition of 'NEW' and the m4 builtins.  We'll see how afterwards,
 # let's finish with the replacement.
 #
 # Of course the solution above is wrong: if there were other calls to
-# `OLD' with different values, we would smash them to the same value.
+# 'OLD' with different values, we would smash them to the same value.
 # But it is quite easy to generalize the scheme above:
 #
 #     divert(-1)dnl
@@ -764,7 +764,7 @@ exit 0;
 #     NEW([0, 0],
 #        0)
 #
-# i.e., for each call to obsolete macros, we build an array `call =>
+# i.e., for each call to obsolete macros, we build an array 'call =>
 # value', and use a macro to dispatch these values.  This results in:
 #
 #     dnl The Unbelievable Truth
@@ -772,8 +772,8 @@ exit 0;
 #     NEW([0, 0],
 #        0)
 #
-# In French, we say `Youpi !', which you might roughly translate as
-# `Yippee!'.
+# In French, we say 'Youpi !', which you might roughly translate as
+# 'Yippee!'.
 #
 #
 # # First step: computation
@@ -801,27 +801,27 @@ exit 0;
 #        0)
 #
 #
-# # Computing the `values' section
+# # Computing the 'values' section
 # # ..............................
 #
 # First we need to get the list of all the AU macro uses.  To this end,
-# first get the list of all the AU macros names by tracing `AU_DEFUN' in
+# first get the list of all the AU macros names by tracing 'AU_DEFUN' in
 # the initialization of autoconf.  This list is computed in the file
-# `au.txt' below.
+# 'au.txt' below.
 #
 # Then use this list to trace all the AU macro uses in the input.  The
 # goal is obtain in the case of our example:
 #
 #     [define([OLD([1],[2])],]@<<@OLD([1],[2])@>>@[)]
 #
-# This is the file `values.in' below.
+# This is the file 'values.in' below.
 #
 # We want to evaluate this with only the builtins (in fact m4sugar), the
-# auto-quoting definitions of the new macros (`new.m4'), and the
-# definition of the old macros (`old.m4').  Computing these last two
-# files is easy: it's just a matter of using the right `--trace' option.
+# auto-quoting definitions of the new macros ('new.m4'), and the
+# definition of the old macros ('old.m4').  Computing these last two
+# files is easy: it's just a matter of using the right '--trace' option.
 #
-# So the content of `values.in' is:
+# So the content of 'values.in' is:
 #
 #     include($autoconf_dir/m4sugar.m4)
 #     m4_include(new.m4)
@@ -833,30 +833,30 @@ exit 0;
 #
 #     define([OLD([1],[2])],@<<@NEW([1, 2], [3])@>>@)
 #
-# Transform `@<<@' and `@>>@' into quotes and we get
+# Transform '@<<@' and '@>>@' into quotes and we get
 #
 #     define([OLD([1],[2])],[NEW([1, 2], [3])])
 #
-# This is `values.m4'.
+# This is 'values.m4'.
 #
 #
-# # Computing the `dispatcher' section
+# # Computing the 'dispatcher' section
 # # ..................................
 #
-# The `prologue', and the `disabler' are simple and need no commenting.
+# The 'prologue', and the 'disabler' are simple and need no commenting.
 #
-# To compute the `dispatcher' (`dispatch.m4'), again, it is a simple
-# matter of using the right `--trace'.
+# To compute the 'dispatcher' ('dispatch.m4'), again, it is a simple
+# matter of using the right '--trace'.
 #
 # Finally, the input is not exactly the input file, rather it is the
-# input file with the added `changequote'.  To this end, we build
-# `quote.sed'.
+# input file with the added 'changequote'.  To this end, we build
+# 'quote.sed'.
 #
 #
 # # Putting it all together
 # # .......................
 #
-# We build the file `input.m4' which contains:
+# We build the file 'input.m4' which contains:
 #
 #     divert(-1)dnl
 #     changequote([, ])
@@ -875,9 +875,9 @@ exit 0;
 # And we just run m4 on it.  Et voila`, Monsieur !  Mais oui, mais oui.
 #
 # Well, there are a few additional technicalities.  For instance, we
-# rely on `changequote', `ifelse' and `defn', but we don't want to
+# rely on 'changequote', 'ifelse' and 'defn', but we don't want to
 # interpret the changequotes of the user, so we simply use another name:
-# `_au_changequote' etc.
+# '_au_changequote' etc.
 #
 #
 # # Failure of the fourth approach
@@ -885,14 +885,14 @@ exit 0;
 #
 # This approach is heavily based on traces, but then there is an obvious
 # problem: non expanded code will never be seen.  In particular, the body
-# of a `define' definition is not seen, so on the input
+# of a 'define' definition is not seen, so on the input
 #
 #        define([idem], [OLD(0, [$1])])
 #
-# autoupdate would never see the `OLD', and wouldn't have updated it.
-# Worse yet, if `idem(0)' was used later, then autoupdate sees that
-# `OLD' is used, computes the result for `OLD(0, 0)' and sets up a
-# dispatcher for `OLD'.  Since there was no computed value for `OLD(0,
+# autoupdate would never see the 'OLD', and wouldn't have updated it.
+# Worse yet, if 'idem(0)' was used later, then autoupdate sees that
+# 'OLD' is used, computes the result for 'OLD(0, 0)' and sets up a
+# dispatcher for 'OLD'.  Since there was no computed value for 'OLD(0,
 # [$1])', the dispatcher would have replaced with... nothing, leading
 # to
 #
@@ -920,7 +920,7 @@ exit 0;
 #     OLD(1, 2)
 #     NEW([0, 0], [0])
 #
-# you evaluate `input.m4':
+# you evaluate 'input.m4':
 #
 #     divert(-1)
 #     changequote([, ])
@@ -932,7 +932,7 @@ exit 0;
 #     OLD(1, 2)
 #     NEW([0, 0], [0])
 #
-# where `m4_disable' undefines the m4 and m4sugar, and disables the quotes
+# where 'm4_disable' undefines the m4 and m4sugar, and disables the quotes
 # and comments:
 #
 #     define([m4_disable],
@@ -941,22 +941,22 @@ exit 0;
 #     changecom(#)
 #     changequote()])
 #
-# `m4_enable' does the converse: reestablish quotes and comments
-# --easy--, reestablish m4sugar --easy: just load `m4sugar.m4' again-- and
+# 'm4_enable' does the converse: reestablish quotes and comments
+# --easy--, reestablish m4sugar --easy: just load 'm4sugar.m4' again-- and
 # reenable the builtins.  This later task requires that you first save
-# the builtins.  And BTW, the definition above of `m4_disable' cannot
-# work: you undefined `changequote' before using it!  So you need to use
+# the builtins.  And BTW, the definition above of 'm4_disable' cannot
+# work: you undefined 'changequote' before using it!  So you need to use
 # your privates copies of the builtins.  Let's introduce three files for
 # this:
 #
-#  `m4save.m4'
-#    moves the m4 builtins into the `_au_' pseudo namespace,
-#  `unm4.m4'
+#  'm4save.m4'
+#    moves the m4 builtins into the '_au_' pseudo namespace,
+#  'unm4.m4'
 #    undefines the builtins,
-#  `m4.m4'
+#  'm4.m4'
 #    restores them.
 #
-# So `input.m4' is:
+# So 'input.m4' is:
 #
 #     divert(-1)
 #     changequote([, ])
@@ -991,16 +991,16 @@ exit 0;
 # AC definitions must be disabled in the rest of the file, and enabled
 # inside AU macros.
 #
-# Using `autoconf --trace' it is easy to build the files
+# Using 'autoconf --trace' it is easy to build the files
 #
-#   `ac.m4'
+#   'ac.m4'
 #     define the autoquoting AC fake macros
-#   `disable.m4'
+#   'disable.m4'
 #     undefine the m4sugar and AC autoquoting macros.
-#   `au.m4'
-#     definitions of the AU macros (such as `OLD' above).
+#   'au.m4'
+#     definitions of the AU macros (such as 'OLD' above).
 #
-# Now, `input.m4' is:
+# Now, 'input.m4' is:
 #
 #     divert(-1)
 #     changequote([, ])
diff --git a/bin/ifnames.in b/bin/ifnames.in
index ba2cd05..3069224 100644
--- a/bin/ifnames.in
+++ b/bin/ifnames.in
@@ -51,8 +51,8 @@ $help = "Usage: $0 [OPTION]... [FILE]...
 
 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
+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.
 
   -h, --help      print this help, then exit
diff --git a/build-aux/announce-gen b/build-aux/announce-gen
index 8c6ed36..ec7c22a 100755
--- a/build-aux/announce-gen
+++ b/build-aux/announce-gen
@@ -3,7 +3,7 @@ eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
     if 0;
 # Generate a release announcement message.
 
-my $VERSION = '2012-04-19 14:36'; # UTC
+my $VERSION = '2012-06-08 06:53'; # 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
@@ -38,6 +38,7 @@ use POSIX qw(strftime);
 
 my %valid_release_types = map {$_ => 1} qw (alpha beta stable);
 my @archive_suffixes = ('tar.gz', 'tar.bz2', 'tar.lzma', 'tar.xz');
+my $srcdir = '.';
 
 sub usage ($)
 {
@@ -52,7 +53,7 @@ sub usage ($)
       my @types = sort keys %valid_release_types;
       print $STREAM <<EOF;
 Usage: $ME [OPTIONS]
-Generate an announcement message.
+Generate an announcement message.  Run this from builddir.
 
 OPTIONS:
 
@@ -67,7 +68,9 @@ These options must be specified:
 
 The following are optional:
 
-   --news=NEWS_FILE
+   --news=NEWS_FILE             include the NEWS section about this release
+                                from this NEWS_FILE; accumulates.
+   --srcdir=DIR                 where to find the NEWS_FILEs (default: $srcdir)
    --bootstrap-tools=TOOL_LIST  a comma-separated list of tools, e.g.,
                                 autoconf,automake,bison,gnulib
    --gnulib-version=VERSION     report VERSION as the gnulib version, where
@@ -103,13 +106,13 @@ sub sizes (@)
   my %res;
   foreach my $f (@file)
     {
-      my $cmd = "du --human $f";
+      my $cmd = "du -h $f";
       my $t = `$cmd`;
       # FIXME-someday: give a better diagnostic, a la $PROCESS_STATUS
       $@
-        and (warn "$ME: command failed: '$cmd'\n"), $fail = 1;
+        and (warn "command failed: '$cmd'\n"), $fail = 1;
       chomp $t;
-      $t =~ s/^([\d.]+[MkK]).*/${1}B/;
+      $t =~ s/^\s*([\d.]+[MkK]).*/${1}B/;
       $res{$f} = $t;
     }
   return $fail ? undef : %res;
@@ -182,7 +185,7 @@ sub print_news_deltas ($$$)
   my ($news_file, $prev_version, $curr_version) = @_;
 
   my $news_name = $news_file;
-  $news_name =~ s|^\./||;
+  $news_name =~ s|^\Q$srcdir\E/||;
 
   print "\n$news_name\n\n";
 
@@ -311,7 +314,7 @@ sub print_changelog_deltas ($$)
   # 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 "warning: '$cmd' had unexpected exit code or signal ($?)\n";
 }
 
 sub get_tool_versions ($$)
@@ -341,7 +344,7 @@ sub get_tool_versions ($$)
         {
           defined $first_line
             and $first_line = '';
-          warn "$ME: $t: unexpected --version output\n:$first_line";
+          warn "$t: unexpected --version output\n:$first_line";
           $fail = 1;
         }
     }
@@ -369,6 +372,15 @@ sub get_tool_versions ($$)
   my $gnulib_version;
   my $print_checksums_p = 1;
 
+  # Reformat the warnings before displaying them.
+  local $SIG{__WARN__} = sub
+    {
+      my ($msg) = @_;
+      # Warnings from GetOptions.
+      $msg =~ s/Option (\w)/option --$1/;
+      warn "$ME: $msg";
+    };
+
   GetOptions
     (
      'mail-headers=s'     => \$mail_headers,
@@ -379,6 +391,7 @@ sub get_tool_versions ($$)
      'gpg-key-id=s'       => \$gpg_key_id,
      'url-directory=s'    => address@hidden,
      'news=s'             => address@hidden,
+     'srcdir=s'           => \$srcdir,
      'bootstrap-tools=s'  => \$bootstrap_tools,
      'gnulib-version=s'   => \$gnulib_version,
      'print-checksums!'   => \$print_checksums_p,
@@ -389,32 +402,32 @@ sub get_tool_versions ($$)
     ) or usage 1;
 
   my $fail = 0;
-  # Ensure that sure each required option is specified.
+  # Ensure that each required option is specified.
   $release_type
-    or (warn "$ME: release type not specified\n"), $fail = 1;
+    or (warn "release type not specified\n"), $fail = 1;
   $package_name
-    or (warn "$ME: package name not specified\n"), $fail = 1;
+    or (warn "package name not specified\n"), $fail = 1;
   $prev_version
-    or (warn "$ME: previous version string not specified\n"), $fail = 1;
+    or (warn "previous version string not specified\n"), $fail = 1;
   $curr_version
-    or (warn "$ME: current version string not specified\n"), $fail = 1;
+    or (warn "current version string not specified\n"), $fail = 1;
   $gpg_key_id
-    or (warn "$ME: GnuPG key ID not specified\n"), $fail = 1;
+    or (warn "GnuPG key ID not specified\n"), $fail = 1;
   @url_dir_list
-    or (warn "$ME: URL directory name(s) not specified\n"), $fail = 1;
+    or (warn "URL directory name(s) not specified\n"), $fail = 1;
 
   my @tool_list = split ',', $bootstrap_tools;
 
   grep (/^gnulib$/, @tool_list) ^ defined $gnulib_version
-    and (warn "$ME: when specifying gnulib as a tool, you must also specify\n"
+    and (warn "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;
 
   exists $valid_release_types{$release_type}
-    or (warn "$ME: '$release_type': invalid release type\n"), $fail = 1;
+    or (warn "'$release_type': invalid release type\n"), $fail = 1;
 
   @ARGV
-    and (warn "$ME: too many arguments:\n", join ("\n", @ARGV), "\n"),
+    and (warn "too many arguments:\n", join ("\n", @ARGV), "\n"),
       $fail = 1;
   $fail
     and usage 1;
diff --git a/build-aux/config.guess b/build-aux/config.guess
index d622a44..137bedf 100755
--- a/build-aux/config.guess
+++ b/build-aux/config.guess
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
 #   2011, 2012 Free Software Foundation, Inc.
 
-timestamp='2012-02-10'
+timestamp='2012-08-14'
 
 # 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
@@ -200,6 +200,10 @@ case 
"${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
        echo "${machine}-${os}${release}"
        exit ;;
+    *:Bitrig:*:*)
+       UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+       echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+       exit ;;
     *:OpenBSD:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
        echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
@@ -801,6 +805,9 @@ EOF
     i*:CYGWIN*:*)
        echo ${UNAME_MACHINE}-pc-cygwin
        exit ;;
+    *:MINGW64*:*)
+       echo ${UNAME_MACHINE}-pc-mingw64
+       exit ;;
     *:MINGW*:*)
        echo ${UNAME_MACHINE}-pc-mingw32
        exit ;;
@@ -1201,6 +1208,9 @@ EOF
     BePC:Haiku:*:*)    # Haiku running on Intel PC compatible.
        echo i586-pc-haiku
        exit ;;
+    x86_64:Haiku:*:*)
+       echo x86_64-unknown-haiku
+       exit ;;
     SX-4:SUPER-UX:*:*)
        echo sx4-nec-superux${UNAME_RELEASE}
        exit ;;
@@ -1256,7 +1266,7 @@ EOF
     NEO-?:NONSTOP_KERNEL:*:*)
        echo neo-tandem-nsk${UNAME_RELEASE}
        exit ;;
-    NSE-?:NONSTOP_KERNEL:*:*)
+    NSE-*:NONSTOP_KERNEL:*:*)
        echo nse-tandem-nsk${UNAME_RELEASE}
        exit ;;
     NSR-?:NONSTOP_KERNEL:*:*)
@@ -1330,9 +1340,6 @@ EOF
        exit ;;
 esac
 
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
 eval $set_cc_for_build
 cat >$dummy.c <<EOF
 #ifdef _SEQUENT_
diff --git a/build-aux/config.sub b/build-aux/config.sub
index 59bb593..bdda9e4 100755
--- a/build-aux/config.sub
+++ b/build-aux/config.sub
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
 #   2011, 2012 Free Software Foundation, Inc.
 
-timestamp='2012-04-18'
+timestamp='2012-08-18'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -123,7 +123,7 @@ esac
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | 
kfreebsd*-gnu* | \
   knetbsd*-gnu* | netbsd*-gnu* | \
   kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
@@ -791,6 +791,10 @@ case $basic_machine in
        microblaze)
                basic_machine=microblaze-xilinx
                ;;
+       mingw64)
+               basic_machine=x86_64-pc
+               os=-mingw64
+               ;;
        mingw32)
                basic_machine=i386-pc
                os=-mingw32
@@ -1352,15 +1356,15 @@ case $os in
              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
              | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-             | -openbsd* | -solidbsd* \
+             | -bitrig* | -openbsd* | -solidbsd* \
              | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
              | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
              | -chorusos* | -chorusrdb* | -cegcc* \
              | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* 
\
-             | -mingw32* | -linux-gnu* | -linux-android* \
-             | -linux-newlib* | -linux-uclibc* \
+             | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+             | -linux-newlib* | -linux-musl* | -linux-uclibc* \
              | -uxpv* | -beos* | -mpeix* | -udk* \
              | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
              | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@@ -1543,6 +1547,9 @@ case $basic_machine in
        c4x-* | tic4x-*)
                os=-coff
                ;;
+       hexagon-*)
+               os=-elf
+               ;;
        tic54x-*)
                os=-coff
                ;;
diff --git a/build-aux/gendocs.sh b/build-aux/gendocs.sh
index c8abd55..c293f96 100755
--- a/build-aux/gendocs.sh
+++ b/build-aux/gendocs.sh
@@ -2,10 +2,10 @@
 # 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=2011-04-08.14
+scriptversion=2012-09-02.17
 
-# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 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
@@ -51,15 +51,16 @@ unset use_texi2html
 
 version="gendocs.sh $scriptversion
 
-Copyright 2010 Free Software Foundation, Inc.
+Copyright 2012 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: $prog [OPTION]... PACKAGE MANUAL-TITLE
 
-Generate various output formats from PACKAGE.texinfo (or .texi or .txi) source.
-See the GNU Maintainers document for a more extensive discussion:
+Generate output in various formats from PACKAGE.texinfo (or .texi or
+.txi) source.  See the GNU Maintainers document for a more extensive
+discussion:
   http://www.gnu.org/prep/maintain_toc.html
 
 Options:
@@ -68,6 +69,7 @@ Options:
   --email ADR use ADR as contact in generated web pages.
   --docbook   convert to DocBook too (xml, txt, html, pdf and ps).
   --html ARG  pass indicated ARG to makeinfo or texi2html for HTML targets.
+  --info ARG  pass indicated ARG to makeinfo for Info, instead of --no-split.
   --texi2html use texi2html to generate HTML targets.
   --help      display this help and exit successfully.
   --version   display version information and exit successfully.
@@ -80,11 +82,11 @@ Typical sequence:
   wget \"$templateurl\"
   $prog --email BUGLIST MANUAL \"GNU MANUAL - One-line description\"
 
-Output will be in a new subdirectory \"manual\" (by default, use -o OUTDIR
-to override).  Move all the new files into your web CVS tree, as
-explained in the Web Pages node of maintain.texi.
+Output will be in a new subdirectory \"manual\" (by default;
+use -o OUTDIR to override).  Move all the new files into your web CVS
+tree, as explained in the Web Pages node of maintain.texi.
 
-Please use the --email ADDRESS option to specify your bug-reporting
+Please do use the --email ADDRESS option to specify your bug-reporting
 address in the generated HTML pages.
 
 MANUAL-TITLE is included as part of the HTML <title> of the overall
@@ -102,6 +104,9 @@ If a manual's Texinfo sources are spread across several 
directories,
 first copy or symlink all Texinfo sources into a single directory.
 (Part of the script's work is to make a tar.gz of the sources.)
 
+As implied above, by default monolithic Info files are generated.
+If you want split Info, or other Info options, use --info to override.
+
 You can set the environment variables MAKEINFO, TEXI2DVI, TEXI2HTML, and
 DVIPS to control the programs that get executed, and
 GENDOCS_TEMPLATE_DIR to control where the gendocs_template file is
@@ -126,6 +131,7 @@ MANUAL_TITLE=
 PACKAGE=
 address@hidden  # please override with --email
 htmlarg=
+infoarg=--no-split
 outdir=manual
 srcfile=
 
@@ -138,6 +144,7 @@ while test $# -gt 0; do
     -o) shift; outdir=$1;;
     --docbook) docbook=yes;;
     --html) shift; htmlarg=$1;;
+    --info) shift; infoarg=$1;;
     --texi2html) use_texi2html=1;;
     -*)
       echo "$0: Unknown option \`$1'." >&2
@@ -188,10 +195,10 @@ case $outdir in
   *)  abs_outdir=$srcdir/$outdir;;
 esac
 
-echo Generating output formats for $srcfile
+echo "Generating output formats for $srcfile"
 
-cmd="$SETLANG $MAKEINFO -o $PACKAGE.info \"$srcfile\""
-echo "Generating info files... ($cmd)"
+cmd="$SETLANG $MAKEINFO -o $PACKAGE.info $infoarg \"$srcfile\""
+echo "Generating info file(s)... ($cmd)"
 eval "$cmd"
 mkdir -p "$outdir/"
 tar czf "$outdir/$PACKAGE.info.tar.gz" $PACKAGE.info*
@@ -204,7 +211,7 @@ echo "Generating dvi ... ($cmd)"
 eval "$cmd"
 
 # now, before we compress dvi:
-echo Generating postscript...
+echo "Generating postscript..."
 ${DVIPS} $PACKAGE -o
 gzip -f -9 $PACKAGE.ps
 ps_gz_size=`calcsize $PACKAGE.ps.gz`
diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog
index 38c6f3a..5184edc 100755
--- a/build-aux/gitlog-to-changelog
+++ b/build-aux/gitlog-to-changelog
@@ -3,7 +3,7 @@ eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
     if 0;
 # Convert git log output to ChangeLog format.
 
-my $VERSION = '2012-01-18 07:50'; # UTC
+my $VERSION = '2012-07-29 06:11'; # 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
@@ -68,12 +68,17 @@ OPTIONS:
                   header; the default is to cluster adjacent commit messages
                   if their headers are the same and neither commit message
                   contains multiple paragraphs.
+   --srcdir=DIR the root of the source tree, from which the .git/
+                  directory can be derived.
    --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'
-
+   --strip-tab  remove one additional leading TAB from commit message lines.
+   --strip-cherry-pick  remove data inserted by "git cherry-pick";
+                  this includes the "cherry picked from commit ..." line,
+                  and the possible final "Conflicts:" paragraph.
    --help       display this help and exit
    --version    output version information and exit
 
@@ -189,12 +194,39 @@ sub parse_amend_file($)
   return $h;
 }
 
+# git_dir_option $SRCDIR
+#
+# From $SRCDIR, the --git-dir option to pass to git (none if $SRCDIR
+# is undef).  Return as a list (0 or 1 element).
+sub git_dir_option($)
+{
+  my ($srcdir) = @_;
+  my @res = ();
+  if (defined $srcdir)
+    {
+      my $qdir = shell_quote $srcdir;
+      my $cmd = "cd $qdir && git rev-parse --show-toplevel";
+      my $qcmd = shell_quote $cmd;
+      my $git_dir = qx($cmd);
+      defined $git_dir
+        or die "$ME: cannot run $qcmd: $!\n";
+      $? == 0
+        or die "$ME: $qcmd had unexpected exit code or signal ($?)\n";
+      chomp $git_dir;
+      push @res, "--git-dir=$git_dir/.git";
+    }
+  @res;
+}
+
 {
   my $since_date;
   my $format_string = '%s%n%b%n';
   my $amend_file;
   my $append_dot = 0;
   my $cluster = 1;
+  my $strip_tab = 0;
+  my $strip_cherry_pick = 0;
+  my $srcdir;
   GetOptions
     (
      help => sub { usage 0 },
@@ -204,9 +236,11 @@ sub parse_amend_file($)
      'amend=s' => \$amend_file,
      'append-dot' => \$append_dot,
      'cluster!' => \$cluster,
+     'strip-tab' => \$strip_tab,
+     'strip-cherry-pick' => \$strip_cherry_pick,
+     'srcdir=s' => \$srcdir,
     ) or usage 1;
 
-
   defined $since_date
     and unshift @ARGV, "--since=$since_date";
 
@@ -214,7 +248,9 @@ sub parse_amend_file($)
   # 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),
+  my @cmd = ('git',
+             git_dir_option $srcdir,
+             qw(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"
@@ -263,6 +299,13 @@ sub parse_amend_file($)
           $rest = $_;
         }
 
+      # Remove lines inserted by "git cherry-pick".
+      if ($strip_cherry_pick)
+        {
+          $rest =~ s/^\s*Conflicts:\n.*//sm;
+          $rest =~ s/^\s*\(cherry picked from commit [\da-f]+\)\n//m;
+        }
+
       my @line = split "\n", $rest;
       my $author_line = shift @line;
       defined $author_line
@@ -347,6 +390,10 @@ sub parse_amend_file($)
                 }
             }
 
+          # Remove one additional leading TAB from each line.
+          $strip_tab
+            and map { s/^\t// } @line;
+
           # Prefix each non-empty line with a TAB.
           @line = map { length $_ ? "\t$_" : '' } @line;
 
diff --git a/build-aux/gnupload b/build-aux/gnupload
index b71ddfd..186d2ad 100755
--- a/build-aux/gnupload
+++ b/build-aux/gnupload
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Sign files and upload them.
 
-scriptversion=2012-01-15.15; # UTC
+scriptversion=2012-06-11.00; # UTC
 
 # Copyright (C) 2004-2012 Free Software Foundation, Inc.
 #
@@ -28,6 +28,7 @@ GPG='gpg --batch --no-tty'
 conffile=.gnuploadrc
 to=
 dry_run=false
+replace=
 symlink_files=
 delete_files=
 delete_symlinks=
@@ -53,8 +54,10 @@ Options:
   --to DEST                specify one destination for FILES
                            (multiple --to options are allowed)
   --user NAME              sign with key NAME
+  --replace                allow replacements of existing files
   --symlink-regex[=EXPR]   use sed script EXPR to compute symbolic link names
   --dry-run                do nothing, show what would have been done
+                           (including the constructed directive file)
   --version                output version information and exit
 
 If --symlink-regex is given without EXPR, then the link target name
@@ -146,6 +149,9 @@ while test -n "$1"; do
     --delete)
       collect_var=delete_files
       ;;
+    --replace)
+      replace="replace: true"
+      ;;
     --rmsymlink)
       collect_var=delete_symlinks
       ;;
@@ -243,11 +249,13 @@ unset passphrase
 # listings with their arguments...).
 # 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
-read -r passphrase
-stty echo
-echo
+if $dry_run; then :; else
+  PATH=/empty echo -n "Enter GPG passphrase: "
+  stty -echo
+  read -r passphrase
+  stty echo
+  echo
+fi
 
 if test $# -ne 0; then
   for file
@@ -270,7 +278,7 @@ filename: $3$stmt"
   fi
 
   cat >${2}.directive<<EOF
-version: 1.1
+version: 1.2
 directory: $1
 comment: gnupload v. $scriptversion$stmt
 EOF
@@ -393,6 +401,12 @@ do
   do
     echo "Uploading $file to $dest ..."
     stmt=
+    #
+    # allowing file replacement is all or nothing.
+    if test -n "$replace"; then stmt="$stmt
+$replace"
+    fi
+    #
     files="$file $file.sig"
     destdir=`echo $dest | sed 's/[^:]*://'`
     if test -n "$symlink_expr"; then
diff --git a/build-aux/texinfo.tex b/build-aux/texinfo.tex
index e4dca02..f3093d0 100644
--- a/build-aux/texinfo.tex
+++ b/build-aux/texinfo.tex
@@ -3,7 +3,7 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2012-04-06.11}
+\def\texinfoversion{2012-09-12.16}
 %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -28,9 +28,9 @@
 %
 % Please try the latest version of texinfo.tex before submitting bug
 % reports; you can get the latest version from:
-%   http://www.gnu.org/software/texinfo/ (the Texinfo home page), or
-%   ftp://tug.org/tex/texinfo.tex
-%     (and all CTAN mirrors, see http://www.ctan.org).
+%   http://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or
+%   http://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or
+%   http://www.gnu.org/software/texinfo/ (the Texinfo home page)
 % The texinfo.tex in any given distribution could well be out
 % of date, so if that's what you're using, please check.
 %
@@ -594,7 +594,7 @@
 \def\:{\spacefactor=1000 }
 
 % @* forces a line break.
-\def\*{\hfil\break\hbox{}\ignorespaces}
+\def\*{\unskip\hfil\break\hbox{}\ignorespaces}
 
 % @/ allows a line break.
 \let\/=\allowbreak
@@ -1117,7 +1117,7 @@ where each line of input produces a line of output.}
 % #1 is a control sequence in which to do the replacements,
 % which we \xdef.
 \def\txiescapepdf#1{%
-  \ifx\pdfescapestring\relax
+  \ifx\pdfescapestring\thisisundefined
     % No primitive available; should we give a warning or log?
     % Many times it won't matter.
   \else
@@ -1367,9 +1367,8 @@ output) for that.)}
   \def\skipspaces#1{\def\PP{#1}\def\D{|}%
     \ifx\PP\D\let\nextsp\relax
     \else\let\nextsp\skipspaces
-      \ifx\p\space\else\addtokens{\filename}{\PP}%
-        \advance\filenamelength by 1
-      \fi
+      \addtokens{\filename}{\PP}%
+      \advance\filenamelength by 1
     \fi
     \nextsp}
   \def\getfilename#1{%
@@ -1475,9 +1474,6 @@ output) for that.)}
 \def\ttsl{\setfontstyle{ttsl}}
 
 
-% Default leading.
-\newdimen\textleading  \textleading = 13.2pt
-
 % Set the baselineskip to #1, and the lineskip and strut size
 % correspondingly.  There is no deep meaning behind these magic numbers
 % used as factors; they just match (closely enough) what Knuth defined.
@@ -1489,6 +1485,7 @@ output) for that.)}
 % can get a sort of poor man's double spacing by redefining this.
 \def\baselinefactor{1}
 %
+\newdimen\textleading
 \def\setleading#1{%
   \dimen0 = #1\relax
   \normalbaselineskip = \baselinefactor\dimen0
@@ -1761,18 +1758,24 @@ end
 \fi\fi
 
 
-% Set the font macro #1 to the font named #2, adding on the
-% specified font prefix (normally `cm').
+% Set the font macro #1 to the font named \fontprefix#2.
 % #3 is the font's design size, #4 is a scale factor, #5 is the CMap
-% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass
-% empty to omit).
+% encoding (only OT1, OT1IT and OT1TT are allowed, or empty to omit).
+% Example:
+% #1 = \textrm
+% #2 = \rmshape
+% #3 = 10
+% #4 = \mainmagstep
+% #5 = OT1
+%
 \def\setfont#1#2#3#4#5{%
   \font#1=\fontprefix#2#3 scaled #4
   \csname cmap#5\endcsname#1%
 }
 % This is what gets called when #5 of \setfont is empty.
 \let\cmap\gobble
-% emacs-page end of cmaps
+%
+% (end of cmaps)
 
 % Use cm as the default font prefix.
 % To specify the font prefix, you must define \fontprefix
@@ -1782,7 +1785,7 @@ end
 \fi
 % Support font families that don't use the same naming scheme as CM.
 \def\rmshape{r}
-\def\rmbshape{bx}               %where the normal face is bold
+\def\rmbshape{bx}               % where the normal face is bold
 \def\bfshape{b}
 \def\bxshape{bx}
 \def\ttshape{tt}
@@ -1797,8 +1800,7 @@ end
 \def\scshape{csc}
 \def\scbshape{csc}
 
-% Definitions for a main text size of 11pt.  This is the default in
-% Texinfo.
+% Definitions for a main text size of 11pt.  (The default in Texinfo.)
 %
 \def\definetextfontsizexi{%
 % Text fonts (11.2pt, magstep1).
@@ -1923,7 +1925,7 @@ end
 \textleading = 13.2pt % line spacing for 11pt CM
 \textfonts            % reset the current fonts
 \rm
-} % end of 11pt text font size definitions
+} % end of 11pt text font size definitions, \definetextfontsizexi
 
 
 % Definitions to make the main text be 10pt Computer Modern, with
@@ -2055,7 +2057,7 @@ end
 \textleading = 12pt   % line spacing for 10pt CM
 \textfonts            % reset the current fonts
 \rm
-} % end of 10pt text font size definitions
+} % end of 10pt text font size definitions, \definetextfontsizex
 
 
 % We provide the user-level command
@@ -2270,8 +2272,6 @@ end
 
 \gdef\markupsetcodequoteleft{\let`\codequoteleft}
 \gdef\markupsetcodequoteright{\let'\codequoteright}
-
-\gdef\markupsetnoligaturesquoteleft{\let`\noligaturesquoteleft}
 }
 
 \let\markupsetuplqcode \markupsetcodequoteleft
@@ -2280,6 +2280,9 @@ end
 \let\markupsetuplqexample \markupsetcodequoteleft
 \let\markupsetuprqexample \markupsetcodequoteright
 %
+\let\markupsetuplqkbd     \markupsetcodequoteleft
+\let\markupsetuprqkbd     \markupsetcodequoteright
+%
 \let\markupsetuplqsamp \markupsetcodequoteleft
 \let\markupsetuprqsamp \markupsetcodequoteright
 %
@@ -2289,8 +2292,6 @@ end
 \let\markupsetuplqverbatim \markupsetcodequoteleft
 \let\markupsetuprqverbatim \markupsetcodequoteright
 
-\let\markupsetuplqkbd \markupsetnoligaturesquoteleft
-
 % 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
@@ -2380,8 +2381,7 @@ end
   \aftersmartic
 }
 
-% like \smartslanted except unconditionally uses \ttsl, and no ic.
-% @var is set to this for defun arguments.
+% Unconditional use \ttsl, and no ic.  @var is set to this for defuns.
 \def\ttslanted#1{{\ttsl #1}}
 
 % @cite is like \smartslanted except unconditionally use \sl.  We never want
@@ -2446,34 +2446,12 @@ end
 % @samp.
 \def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}}
 
-% definition of @key that produces a lozenge.  Doesn't adjust to text size.
-%\setfont\keyrm\rmshape{8}{1000}{OT1}
-%\font\keysy=cmsy9
-%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
-%  \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
-%    \vbox{\hrule\kern-0.4pt
-%     \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
-%    \kern-0.4pt\hrule}%
-%  \kern-.06em\raise0.4pt\hbox{\angleright}}}}
+% @indicateurl is \samp, that is, with quotes.
+\let\indicateurl=\samp
 
-% definition of @key with no lozenge.  If the current font is already
-% monospace, don't change it; that way, we respect @kbdinputstyle.  But
-% if it isn't monospace, then use \tt.
-%
-\def\key#1{{\setupmarkupstyle{key}%
-  \nohyphenation
-  \ifmonospace\else\tt\fi
-  #1}\null}
-
-% ctrl is no longer a Texinfo command.
-\def\ctrl #1{{\tt \rawbackslash \hat}#1}
-
-% @file, @option are the same as @samp.
-\let\file=\samp
-\let\option=\samp
-
-% @code is a modification of @t,
-% which makes spaces the same size as normal in the surrounding text.
+% @code (and similar) prints in typewriter, but with spaces the same
+% size as normal in the surrounding text, without hyphenation, etc.
+% This is a subroutine for that.
 \def\tclose#1{%
   {%
     % Change normal interword space to be same as for the current font.
@@ -2498,7 +2476,7 @@ end
 % We *must* turn on hyphenation at `-' and `_' in @code.
 % Otherwise, it is too hard to avoid overfull hboxes
 % in the Emacs manual, the Library manual, etc.
-
+%
 % Unfortunately, TeX uses one parameter (\hyphenchar) to control
 % both hyphenation at - and hyphenation within words.
 % We must therefore turn them both off (\tclose does that)
@@ -2562,6 +2540,13 @@ end
   \fi\fi
 }
 
+% For @command, @env, @file, @option quotes seem unnecessary,
+% so use \code rather than \samp.
+\let\command=\code
+\let\env=\code
+\let\file=\code
+\let\option=\code
+
 % @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
@@ -2708,10 +2693,6 @@ 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).
@@ -2735,16 +2716,36 @@ end
 % Default is `distinct'.
 \kbdinputstyle distinct
 
+% @kbd is like @code, except that if the argument is just one @key command,
+% then @kbd has no effect.
+\def\kbd#1{{\def\look{#1}\expandafter\kbdsub\look??\par}}
+
 \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}
+\def\kbdsub#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
+% definition of @key that produces a lozenge.  Doesn't adjust to text size.
+%\setfont\keyrm\rmshape{8}{1000}{OT1}
+%\font\keysy=cmsy9
+%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
+%  \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
+%    \vbox{\hrule\kern-0.4pt
+%     \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
+%    \kern-0.4pt\hrule}%
+%  \kern-.06em\raise0.4pt\hbox{\angleright}}}}
+
+% definition of @key with no lozenge.  If the current font is already
+% monospace, don't change it; that way, we respect @kbdinputstyle.  But
+% if it isn't monospace, then use \tt.
+%
+\def\key#1{{\setupmarkupstyle{key}%
+  \nohyphenation
+  \ifmonospace\else\tt\fi
+  #1}\null}
 
 % @clicksequence{File @click{} Open ...}
 \def\clicksequence#1{\begingroup #1\endgroup}
@@ -2852,6 +2853,9 @@ end
   }
 }
 
+% ctrl is no longer a Texinfo command, but leave this definition for fun.
+\def\ctrl #1{{\tt \rawbackslash \hat}#1}
+
 % @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.
@@ -3142,12 +3146,17 @@ end
   % hopefully nobody will notice/care.
   \edef\ecsize{\csname\curfontsize ecsize\endcsname}%
   \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%
-  \ifx\curfontstyle\bfstylename
-    % bold:
-    \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
+  \ifmonospace
+    % typewriter:
+    \font\thisecfont = ectt\ecsize \space at \nominalsize
   \else
-    % regular:
-    \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
+    \ifx\curfontstyle\bfstylename
+      % bold:
+      \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
+    \else
+      % regular:
+      \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
+    \fi
   \fi
   \thisecfont
 }
@@ -3260,6 +3269,20 @@ end
   \finishedtitlepagetrue
 }
 
+% Settings used for typesetting titles: no hyphenation, no indentation,
+% don't worry much about spacing, ragged right.  This should be used
+% inside a \vbox, and fonts need to be set appropriately first.  Because
+% it is always used for titles, nothing else, we call \rmisbold.  \par
+% should be specified before the end of the \vbox, since a vbox is a group.
+% 
+\def\raggedtitlesettings{%
+  \rmisbold
+  \hyphenpenalty=10000
+  \parindent=0pt
+  \tolerance=5000
+  \ptexraggedright
+}
+
 % Macros to be used within @titlepage:
 
 \let\subtitlerm=\tenrm
@@ -3267,7 +3290,7 @@ end
 
 \parseargdef\title{%
   \checkenv\titlepage
-  \leftline{\titlefonts\rmisbold #1}
+  \vbox{\titlefonts \raggedtitlesettings #1\par}%
   % print a rule at the page bottom also.
   \finishedtitlepagefalse
   \vskip4pt \hrule height 4pt width \hsize \vskip4pt
@@ -4204,7 +4227,7 @@ end
 }
 \def\ifsetfail{\doignore{ifset}}
 
-% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
+% @ifclear VAR ... @end executes the `...' iff VAR has never been
 % defined with @set, or has been undefined with @clear.
 %
 % The `\else' inside the `\doifset' parameter is a trick to reuse the
@@ -4215,6 +4238,35 @@ end
 \def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}}
 \def\ifclearfail{\doignore{ifclear}}
 
+% @ifcommandisdefined CMD ... @end executes the `...' if CMD (written
+% without the @) is in fact defined.  We can only feasibly check at the
+% TeX level, so something like `mathcode' is going to considered
+% defined even though it is not a Texinfo command.
+% 
+\makecond{ifcommanddefined}
+\def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}}
+%
+\def\doifcmddefined#1#2{{%
+    \makevalueexpandable
+    \let\next=\empty
+    \expandafter\ifx\csname #2\endcsname\relax
+      #1% If not defined, \let\next as above.
+    \fi
+    \expandafter
+  }\next
+}
+\def\ifcmddefinedfail{\doignore{ifcommanddefined}}
+
+% @ifcommandnotdefined CMD ... handled similar to @ifclear above.
+\makecond{ifcommandnotdefined}
+\def\ifcommandnotdefined{%
+  \parsearg{\doifcmddefined{\else \let\next=\ifcmdnotdefinedfail}}}
+\def\ifcmdnotdefinedfail{\doignore{ifcommandnotdefined}}
+
+% Set the `txicommandconditionals' variable, so documents have a way to
+% test if the @ifcommand...defined conditionals are available.
+\set txicommandconditionals
+
 % @dircategory CATEGORY  -- specify a category of the dir file
 % which this file should belong to.  Ignore this in TeX.
 \let\dircategory=\comment
@@ -5541,14 +5593,6 @@ end
 
 % Define @majorheading, @heading and @subheading
 
-% NOTE on use of \vbox for chapter headings, section headings, and such:
-%       1) We use \vbox rather than the earlier \line to permit
-%          overlong headings to fold.
-%       2) \hyphenpenalty is set to 10000 because hyphenation in a
-%          heading is obnoxious; this forbids it.
-%       3) Likewise, headings look best if no \parindent is used, and
-%          if justification is not attempted.  Hence \raggedright.
-
 \def\majorheading{%
   {\advance\chapheadingskip by 10pt \chapbreak }%
   \parsearg\chapheadingzzz
@@ -5556,10 +5600,8 @@ end
 
 \def\chapheading{\chapbreak \parsearg\chapheadingzzz}
 \def\chapheadingzzz#1{%
-  {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                    \parindent=0pt\ptexraggedright
-                    \rmisbold #1\hfill}}%
-  \bigskip \par\penalty 200\relax
+  \vbox{\chapfonts \raggedtitlesettings #1\par}%
+  \nobreak\bigskip \nobreak
   \suppressfirstparagraphindent
 }
 
@@ -5718,8 +5760,7 @@ end
     %
     % Typeset the actual heading.
     \nobreak % Avoid page breaks at the interline glue.
-    \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright
-          \hangindent=\wd0 \centerparametersmaybe
+    \vbox{\raggedtitlesettings \hangindent=\wd0 \centerparametersmaybe
           \unhbox0 #1\par}%
   }%
   \nobreak\bigskip % no page break after a chapter title
@@ -5741,18 +5782,18 @@ end
 \def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
 %
 \def\unnchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                       \parindent=0pt\ptexraggedright
-                       \rmisbold #1\hfill}}\bigskip \par\nobreak
+  \chapoddpage
+  \vbox{\chapfonts \raggedtitlesettings #1\par}%
+  \nobreak\bigskip\nobreak
 }
 \def\chfopen #1#2{\chapoddpage {\chapfonts
 \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
 \par\penalty 5000 %
 }
 \def\centerchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                       \parindent=0pt
-                       \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak
+  \chapoddpage
+  \vbox{\chapfonts \raggedtitlesettings \hfill #1\hfill}%
+  \nobreak\bigskip \nobreak
 }
 \def\CHAPFopen{%
   \global\let\chapmacro=\chfopen
@@ -7031,7 +7072,10 @@ end
   \df \sl \hyphenchar\font=0
   %
   % On the other hand, if an argument has two dashes (for instance), we
-  % want a way to get ttsl.  Let's try @var for that.
+  % want a way to get ttsl.  We used to recommend @var for that, so
+  % leave the code in, but it's strange for @var to lead to typewriter.
+  % Nowadays we recommend @code, since the difference between a ttsl hyphen
+  % and a tt hyphen is pretty tiny.  @code also disables ?` !`.
   \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}%
   #1%
   \sl\hyphenchar\font=45
diff --git a/configure.ac b/configure.ac
index 696e513..2d83177 100644
--- a/configure.ac
+++ b/configure.ac
@@ -30,9 +30,9 @@ AM_INIT_AUTOMAKE([1.11 dist-xz readme-alpha no-texinfo.tex 
std-options])
 
 AB_INIT
 
-# We use `/bin/sh -n script' to check that there are no syntax errors
+# 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:
+# endless loops with '-n', e.g., SunOS's:
 #
 #   $ uname -a
 #   SunOS ondine 4.1.3 2 sun4m unknown
@@ -50,8 +50,8 @@ AB_INIT
 # 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.
+# So before using '/bin/sh -n' to check our scripts, we first check
+# that '/bin/sh -n' is known to not have these problems.
 
 AC_CACHE_CHECK([whether /bin/sh -n is known to work], [ac_cv_sh_n_works],
 [if (
diff --git a/doc/make-stds.texi b/doc/make-stds.texi
index cdcbb68..372c680 100644
--- a/doc/make-stds.texi
+++ b/doc/make-stds.texi
@@ -602,7 +602,7 @@ should be written as @file{$(datarootdir)/emacs/site-lisp}.
 
 If you are using Autoconf, write the default as @samp{@@lispdir@@}.
 In order to make @samp{@@lispdir@@} work, you need the following lines
-in your @file{configure.in} file:
+in your @file{configure.ac} file:
 
 @example
 lispdir='address@hidden@}/emacs/site-lisp'
diff --git a/doc/standards.texi b/doc/standards.texi
index 69a400e..fc92652 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:
address@hidden lastupdate April 7, 2012
address@hidden lastupdate June 30, 2012
 @c %**end of header
 
 @dircategory GNU organization
@@ -3531,11 +3531,26 @@ history of how the conflicting concepts arose and who 
they came from.
 @node Change Log Concepts
 @subsection Change Log Concepts
 
address@hidden change set
address@hidden batch of changes
 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.
+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.  Each @dfn{entry} in
+a change log describes either an individual change or the smallest
+batch of changes that belong together, also known as a @dfn{change
+set}.
address@hidden title, change log entry
address@hidden description, change log entry
+For later reference or for summarizing, sometimes it is useful to
+start the entry with a one-line description (sometimes called a
address@hidden) to describe its overall purpose.
+
+In the past, we recommended not mentioning changes in non-software
+files (manuals, help files, media 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 change log file is normally called @file{ChangeLog} and covers an
 entire directory.  Each directory can have its own change log, or a
@@ -3547,26 +3562,26 @@ control system such as RCS or CVS.  This can be 
converted automatically
 to a @file{ChangeLog} file using @code{rcs2log}; in Emacs, the command
 @kbd{C-x v a} (@code{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.
+For changes to code, there's no need to describe the full purpose of
+the changes or how they work together.  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.
+For changes to files that do not support a comment syntax (e.g., media
+files), it is ok to include the full explanation in the change log file,
+after the title and before the list of individual changes.
 
 The easiest way to add an entry to @file{ChangeLog} is with the Emacs
-command @kbd{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.
+command @kbd{M-x add-change-log-entry}.  An individual change 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.
+
 
 @node Style of Change Logs
 @subsection Style of Change Logs
@@ -3605,10 +3620,10 @@ names by writing @samp{* register.el 
(@{insert,address@hidden)};
 this is not a good idea, since searching for @code{jump-to-register} or
 @code{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.
+Separate unrelated change log entries with blank lines.  Don't put
+blank lines between individual changes of an entry.  You can omit the
+file name and the asterisk when successive individual changes are in
+the same file.
 
 Break long lists of function names by closing continued lines with
 @samp{)}, rather than @samp{,}, and opening the continuation with
@@ -3733,9 +3748,10 @@ Finally, here is an entry for a change that takes effect 
only when
 a certain macro is @emph{not} defined:
 
 @example
-(gethostname) [!HAVE_SOCKETS]: Replace with winsock version.
+* host.c (gethostname) [!HAVE_SOCKETS]: Replace with winsock version.
 @end example
 
+
 @node Indicating the Part Changed
 @subsection Indicating the Part Changed
 
diff --git a/lib/autom4te.in b/lib/autom4te.in
index a560501..d042fd8 100644
--- a/lib/autom4te.in
+++ b/lib/autom4te.in
@@ -69,6 +69,8 @@ args: --preselect AM_PROG_CXX_C_O
 args: --preselect AM_PROG_F77_C_O
 args: --preselect AM_PROG_FC_C_O
 args: --preselect AM_PROG_MOC
+# Will be removed in Automake 1.14.
+args: --preselect AM_PROG_MKDIR_P
 args: --preselect AM_SILENT_RULES
 args: --preselect AM_XGETTEXT_OPTION
 args: --preselect _AM_MAKEFILE_INCLUDE
diff --git a/lib/m4sugar/Makefile.am b/lib/m4sugar/Makefile.am
index 23824a3..26d20db 100644
--- a/lib/m4sugar/Makefile.am
+++ b/lib/m4sugar/Makefile.am
@@ -28,7 +28,7 @@ RELEASE_YEAR = \
 ## version.m4.  ##
 ## ------------ ##
 
-# The `:;' works around a redirected compound command bash exit status bug.
+# The ':;' works around a redirected compound command bash exit status bug.
 version.m4: Makefile
        :;{ \
          echo '# This file is part of -*- Autoconf -*-.' && \
diff --git a/m4/m4.m4 b/m4/m4.m4
index a19af67..7657458 100644
--- a/m4/m4.m4
+++ b/m4/m4.m4
@@ -18,7 +18,7 @@
 # Also avoid versions of m4 that trigger strstr bugs.
 AC_DEFUN([AC_PROG_GNU_M4],
   [AC_ARG_VAR([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.])
+    program of 'm4', 'gm4', or 'gnum4' on PATH that meets Autoconf needs.])
   AC_CACHE_CHECK([for GNU M4 that supports accurate traces], [ac_cv_path_M4],
     [rm -f conftest.m4f
 ac_had_posixly_correct=${POSIXLY_CORRECT:+yes}
diff --git a/maint.mk b/maint.mk
index 1c7af03..5d63b49 100644
--- a/maint.mk
+++ b/maint.mk
@@ -61,7 +61,7 @@ endif
 # (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--$@),^$$)
+  $(or $(exclude_file_name_regexp--$@),^$$)
 VC_LIST_EXCEPT = \
   $(VC_LIST) | sed 's|^$(_dot_escaped_srcdir)/||' \
        | if test -f $(srcdir)/.x-$@; then grep -vEf $(srcdir)/.x-$@; \
@@ -187,9 +187,11 @@ syntax-check: $(local-check)
 #
 #  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.
+#     grep-E-style regexp selecting the files to check.  For in_vc_files,
+#     the regexp is used to select matching files from the list of all
+#     version-controlled files; for in_files, it's from the names printed
+#     by "find $(srcdir)".  When neither is specified, use all files that
+#     are under version control.
 #
 #  containing | non_containing
 #
@@ -261,7 +263,7 @@ define _sc_search_regexp
    : Filter by file name;                                              \
    if test -n "$$in_files"; then                                       \
      files=$$(find $(srcdir) | grep -E "$$in_files"                    \
-              | grep -Ev '$(exclude_file_name_regexp--$@)');           \
+              | grep -Ev '$(_sc_excl)');                               \
    else                                                                        
\
      files=$$($(VC_LIST_EXCEPT));                                      \
      if test -n "$$in_vc_files"; then                                  \
@@ -328,8 +330,16 @@ sc_prohibit_atoi_atof:
 sp_ = strcmp *\(.+\)
 sc_prohibit_strcmp:
        @prohibit='! *strcmp *\(|\<$(sp_) *[!=]=|[!=]= *$(sp_)'         \
-       exclude=':# *define STRN?EQ\('                                  \
-       halt='$(ME): replace strcmp calls above with STREQ/STRNEQ'      \
+       exclude='# *define STRN?EQ\('                                   \
+       halt='replace strcmp calls above with STREQ/STRNEQ'             \
+         $(_sc_search_regexp)
+
+# Really.  You don't want to use this function.
+# It may fail to NUL-terminate the destination,
+# and always NUL-pads out to the specified length.
+sc_prohibit_strncpy:
+       @prohibit='\<strncpy *\('                                       \
+       halt='do not use strncpy, period'                               \
          $(_sc_search_regexp)
 
 # Pass EXIT_*, not number, to usage, exit, and error (when exiting)
@@ -343,8 +353,9 @@ sc_prohibit_strcmp:
 #  | 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'                       
\
+       @prohibit='(^|[^.])\<(usage|exit|error) ?\(-?[0-9]+[,)]'        \
+       exclude='exit \(77\)|error ?\(((0|77),|[^,]*)'                  \
+       halt='use EXIT_* values rather than magic number'               \
          $(_sc_search_regexp)
 
 # Using EXIT_SUCCESS as the first argument to error is misleading,
@@ -713,6 +724,7 @@ sc_require_test_exit_idiom:
 sc_trailing_blank:
        @prohibit='[     ]$$'                                           \
        halt='found trailing blank(s)'                                  \
+       exclude='^Binary file .* matches$$'                             \
          $(_sc_search_regexp)
 
 # Match lines like the following, but where there is only one space
@@ -733,7 +745,7 @@ _gl_translatable_diag_func_re ?= error
 sc_unmarked_diagnostics:
        @prohibit='\<$(_gl_translatable_diag_func_re) *\([^"]*"[^"]*[a-z]{3}' \
        exclude='(_|ngettext ?)\('                                      \
-       halt='$(ME): found unmarked diagnostic(s)'                      \
+       halt='found unmarked diagnostic(s)'                             \
          $(_sc_search_regexp)
 
 # Avoid useless parentheses like those in this example:
@@ -767,6 +779,11 @@ sc_prohibit_always_true_header_tests:
        '  with the corresponding gnulib module, they are always true') \
          $(_sc_search_regexp)
 
+sc_prohibit_defined_have_decl_tests:
+       @prohibit='#[    ]*if(n?def|.*\<defined)\>[      (]+HAVE_DECL_' \
+       halt='HAVE_DECL macros are always defined'                      \
+         $(_sc_search_regexp)
+
 # ==================================================================
 gl_other_headers_ ?= \
   intprops.h   \
@@ -1004,7 +1021,7 @@ sc_redundant_const:
 sc_const_long_option:
        @prohibit='^ *static.*struct option '                           \
        exclude='const struct option|struct option const'               \
-       halt='$(ME): add "const" to the above declarations'             \
+       halt='add "const" to the above declarations'                    \
          $(_sc_search_regexp)
 
 NEWS_hash =                                                            \
@@ -1051,7 +1068,7 @@ sc_makefile_at_at_check:
          && { echo '$(ME): use $$(...), not @...@' 1>&2; exit 1; } || :
 
 news-check: NEWS
-       if sed -n $(news-check-lines-spec)p $(srcdir)/NEWS              \
+       $(AM_V_GEN)if sed -n $(news-check-lines-spec)p $<               \
            | grep -E $(news-check-regexp) >/dev/null; then             \
          :;                                                            \
        else                                                            \
@@ -1107,7 +1124,7 @@ sc_po_check:
 # 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)'.
-msg = '$(ME): Do not use ":" above; use $$(PATH_SEPARATOR) instead'
+msg = 'Do not use ":" above; use $$(PATH_SEPARATOR) instead'
 sc_makefile_path_separator_check:
        @prohibit='PATH[=].*:'                                          \
        in_vc_files='akefile|\.mk$$'                                    \
@@ -1200,22 +1217,31 @@ sc_Wundef_boolean:
 # 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'                 \
+       @prohibit='(\balloca *\([^)]*|\[[^]]*)\bPATH_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)                   \
+       in_files='(^|/)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)
 
+sc_vulnerable_makefile_CVE-2012-3386:
+       @prohibit='chmod a\+w \$$\(distdir\)'                           \
+       in_files='(^|/)Makefile\.in$$'                                  \
+       halt=$$(printf '%s\n'                                           \
+         'the above files are vulnerable; beware of running'           \
+         '  "make distcheck", and upgrade to fixed automake'           \
+         '  see http://bugzilla.redhat.com/CVE-2012-3386 for details') \
+         $(_sc_search_regexp)
+
 vc-diff-check:
-       (unset CDPATH; cd $(srcdir) && $(VC) diff) > vc-diffs || :
-       if test -s vc-diffs; then                               \
+       $(AM_V_GEN)(unset CDPATH; cd $(srcdir) && $(VC) diff) > vc-diffs || :
+       $(AM_V_at)if test -s vc-diffs; then                     \
          cat vc-diffs;                                         \
          echo "Some files are locally modified:" 1>&2;         \
          exit 1;                                               \
@@ -1231,10 +1257,11 @@ 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) \
-     | gpgv --status-fd 1 --keyring /dev/null - - 2>/dev/null \
-     | sed -n '/^\[GNUPG:\] ERRSIG /{s///;s/ .*//p;q}')
+gpg_key_ID ?=                                                          \
+  $$(cd $(srcdir)                                                      \
+     && git cat-file tag v$(VERSION)                                   \
+        | gpgv --status-fd 1 --keyring /dev/null - - 2>/dev/null       \
+        | awk '/^\[GNUPG:\] ERRSIG / {print $$3; exit}')
 
 translation_project_ ?= address@hidden
 
@@ -1253,13 +1280,14 @@ else
 endif
 
 announcement: NEWS ChangeLog $(rel-files)
-       @$(srcdir)/$(_build-aux)/announce-gen                           \
+       $(AM_V_GEN)$(srcdir)/$(_build-aux)/announce-gen                 \
            --mail-headers='$(announcement_mail_headers_)'              \
            --release-type=$(RELEASE_TYPE)                              \
            --package=$(PACKAGE)                                        \
            --prev=$(PREV_VERSION)                                      \
            --curr=$(VERSION)                                           \
            --gpg-key-id=$(gpg_key_ID)                                  \
+           --srcdir=$(srcdir)                                          \
            --news=$(srcdir)/NEWS                                       \
            --bootstrap-tools=$(bootstrap-tools)                        \
            $$(case ,$(bootstrap-tools), in (*,gnulib,*)                \
@@ -1267,6 +1295,12 @@ announcement: NEWS ChangeLog $(rel-files)
            --no-print-checksums                                        \
            $(addprefix --url-dir=, $(url_dir_list))
 
+.PHONY: release-commit
+release-commit:
+       $(AM_V_GEN)cd $(srcdir)                         \
+         && $(_build-aux)/do-release-commit-and-tag    \
+              -C $(abs_builddir) $(RELEASE)
+
 ## ---------------- ##
 ## Updating files.  ##
 ## ---------------- ##
@@ -1294,7 +1328,7 @@ endef
 
 .PHONY: no-submodule-changes
 no-submodule-changes:
-       if test -d $(srcdir)/.git; then                                 \
+       $(AM_V_GEN)if test -d $(srcdir)/.git; then                      \
          diff=$$(cd $(srcdir) && git submodule -q foreach              \
                  git diff-index --name-only HEAD)                      \
            || exit 1;                                                  \
@@ -1333,16 +1367,16 @@ check: $(gl_public_submodule_commit)
 .PHONY: alpha beta stable
 ALL_RECURSIVE_TARGETS += alpha beta stable
 alpha beta stable: $(local-check) writable-files $(submodule-checks)
-       test $@ = stable                                                \
+       $(AM_V_GEN)test $@ = stable                                     \
          && { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$'         \
               || { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\
          || :
-       $(MAKE) vc-diff-check
-       $(MAKE) news-check
-       $(MAKE) distcheck
-       $(MAKE) dist
-       $(MAKE) $(release-prep-hook) RELEASE_TYPE=$@
-       $(MAKE) -s emit_upload_commands RELEASE_TYPE=$@
+       $(AM_V_at)$(MAKE) vc-diff-check
+       $(AM_V_at)$(MAKE) news-check
+       $(AM_V_at)$(MAKE) distcheck
+       $(AM_V_at)$(MAKE) dist
+       $(AM_V_at)$(MAKE) $(release-prep-hook) RELEASE_TYPE=$@
+       $(AM_V_at)$(MAKE) -s emit_upload_commands RELEASE_TYPE=$@
 
 # Override this in cfg.mk if you follow different procedures.
 release-prep-hook ?= release-prep
@@ -1350,19 +1384,21 @@ release-prep-hook ?= release-prep
 gl_noteworthy_news_ = * Noteworthy changes in release ?.? (????-??-??) [?]
 .PHONY: release-prep
 release-prep:
-       case $$RELEASE_TYPE in alpha|beta|stable) ;; \
+       $(AM_V_GEN)case $$RELEASE_TYPE in alpha|beta|stable) ;; \
          *) echo "invalid RELEASE_TYPE: $$RELEASE_TYPE" 1>&2; exit 1;; esac
-       $(MAKE) --no-print-directory -s announcement > ~/announce-$(my_distdir)
-       if test -d $(release_archive_dir); then                 \
+       $(AM_V_at)$(MAKE) --no-print-directory -s announcement \
+         > ~/announce-$(my_distdir)
+       $(AM_V_at)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 "$(gl_noteworthy_news_)\n\n\n"' NEWS
-       $(emit-commit-log) > .ci-msg
-       $(VC) commit -F .ci-msg -a
-       rm .ci-msg
+       $(AM_V_at)echo $(VERSION) > $(prev_version_file)
+       $(AM_V_at)$(MAKE) update-NEWS-hash
+       $(AM_V_at)perl -pi                                              \
+         -e '$$. == 3 and print "$(gl_noteworthy_news_)\n\n\n"'        \
+         $(srcdir)/NEWS
+       $(AM_V_at)msg=$$($(emit-commit-log)) || exit 1;         \
+       cd $(srcdir) && $(VC) commit -m "$$msg" -a
 
 # Override this with e.g., -s $(srcdir)/some_other_name.texi
 # if the default $(PACKAGE)-derived name doesn't apply.
@@ -1370,14 +1406,20 @@ gendocs_options_ ?=
 
 .PHONY: web-manual
 web-manual:
-       @test -z "$(manual_title)" \
+       $(AM_V_GEN)test -z "$(manual_title)" \
          && { echo define manual_title in cfg.mk 1>&2; exit 1; } || :
-       @cd '$(srcdir)/doc'; \
+       $(AM_V_at)cd '$(srcdir)/doc'; \
          $(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."
+       $(AM_V_at)echo " *** Upload the doc/manual directory to web-cvs."
+
+.PHONY: web-manual-update
+web-manual-update:
+       $(AM_V_GEN)cd $(srcdir) \
+         && $(_build-aux)/gnu-web-doc-update -C $(abs_builddir)
+
 
 # Code Coverage
 
@@ -1403,6 +1445,31 @@ gen-coverage:
 
 coverage: init-coverage build-coverage gen-coverage
 
+# Some projects carry local adjustments for gnulib modules via patches in
+# a gnulib patch directory whose default name is gl/ (defined in bootstrap
+# via local_gl_dir=gl).  Those patches become stale as the originals evolve
+# in gnulib.  Use this rule to refresh any stale patches.  It applies each
+# patch to the original in $(gnulib_dir) and uses the temporary result to
+# generate a fuzz-free .diff file.  If you customize the name of your local
+# gnulib patch directory via bootstrap.conf, this rule detects that name.
+# Run this from a non-VPATH (i.e., srcdir) build directory.
+.PHONY: refresh-gnulib-patches
+refresh-gnulib-patches:
+       gl=gl;                                                          \
+       if test -f bootstrap.conf; then                                 \
+         t=$$(perl -lne '/^\s*local_gl_dir=(\S+)/ and $$d=$$1;'        \
+              -e 'END{defined $$d and print $$d}' bootstrap.conf);     \
+         test -n "$$t" && gl=$$t;                                      \
+       fi;                                                             \
+       for diff in $$(cd $$gl; git ls-files | grep '\.diff$$'); do     \
+         b=$$(printf %s "$$diff"|sed 's/\.diff$$//');                  \
+         VERSION_CONTROL=none                                          \
+           patch "$(gnulib_dir)/$$b" "$$gl/$$diff" || exit 1;          \
+         ( cd $(gnulib_dir) || exit 1;                                 \
+           git diff "$$b" > "../$$gl/$$diff";                          \
+           git checkout $$b ) || exit 1;                               \
+       done
+
 # Update gettext files.
 PACKAGE ?= $(shell basename $(PWD))
 PO_DOMAIN ?= $(PACKAGE)
@@ -1414,7 +1481,7 @@ refresh-po:
        wget --no-verbose --directory-prefix $(PODIR) --no-directories 
--recursive --level 1 --accept .po --accept .po.1 $(POURL) && \
        echo 'address@hidden' > $(PODIR)/LINGUAS && \
        echo 'address@hidden' >> $(PODIR)/LINGUAS && \
-       ls $(PODIR)/*.po | sed 's/\.po//' | sed 's,$(PODIR)/,,' | sort >> 
$(PODIR)/LINGUAS
+       ls $(PODIR)/*.po | sed 's/\.po//;s,$(PODIR)/,,' | sort >> 
$(PODIR)/LINGUAS
 
  # Running indent once is not idempotent, but running it twice is.
 INDENT_SOURCES ?= $(C_SOURCES)
@@ -1436,7 +1503,7 @@ update-copyright-env ?=
 # in the file .x-update-copyright.
 .PHONY: update-copyright
 update-copyright:
-       grep -l -w Copyright                                             \
+       $(AM_V_GEN)grep -l -w Copyright                                  \
          $$(export VC_LIST_EXCEPT_DEFAULT=COPYING && $(VC_LIST_EXCEPT)) \
          | $(update-copyright-env) xargs $(srcdir)/$(_build-aux)/$@
 
@@ -1509,6 +1576,7 @@ _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)
+_gl_TS_other_headers ?= *.h
 
 .PHONY: _gl_tight_scope
 _gl_tight_scope: $(bin_PROGRAMS)
@@ -1531,7 +1599,8 @@ _gl_tight_scope: $(bin_PROGRAMS)
          && { 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 \
+         perl -lne '$(_gl_TS_var_match) and print "^$$1\$$"'           \
+               $$hdr $(_gl_TS_other_headers)                           \
        ) | sort -u > $$t;                                              \
        nm -e $(_gl_TS_obj_files) | sed -n 's/.* [BCDGRS] //p'          \
             | sort -u | grep -Ev -f $$t                                        
\
diff --git a/tests/Makefile.am b/tests/Makefile.am
index c946773..9e5a6b8 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -22,7 +22,7 @@
 EXTRA_DIST = $(TESTSUITE_AT) local.at mktests.sh \
             atlocal.in wrapper.as statesave.m4
 
-# Running the uninstalled scripts.  Build them upon `all', for the manpages.
+# Running the uninstalled scripts.  Build them upon 'all', for the manpages.
 noinst_SCRIPTS = $(wrappers)
 DISTCLEANFILES = atconfig atlocal $(TESTSUITE)
 MAINTAINERCLEANFILES = Makefile.in
@@ -35,7 +35,7 @@ include ../lib/freeze.mk
 ## package.m4.  ##
 ## ------------ ##
 
-# The `:;' works around a redirected compound command bash exit status bug.
+# The ':;' works around a redirected compound command bash exit status bug.
 package.m4: Makefile
        :;{ \
          echo '# Signature of the current package.' && \
@@ -109,7 +109,7 @@ 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
+# 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
 $(TESTSUITE): package.m4 \
@@ -158,7 +158,7 @@ MAINTAINERCLEANFILES += $(TESTSUITE_GENERATED_AT)
 
 # 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.
+# where we 'cd' to $srcdir.
 autoconfdir = $(top_srcdir)/lib/autoconf
 AUTOCONF_FILES = $(autoconfdir)/general.m4 \
                 $(autoconfdir)/status.m4 \


hooks/post-receive
-- 
GNU Autoconf source repository



reply via email to

[Prev in Thread] Current Thread [Next in Thread]