automake-commit
[Top][All Lists]
Advanced

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

[Automake-commit] [SCM] GNU Automake branch, ng/master, updated. v1.13.1


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, ng/master, updated. v1.13.1b-925-gdc33f64
Date: Sun, 21 Apr 2013 16:09:07 +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 Automake".

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

The branch, ng/master has been updated
       via  dc33f64b11e20420b6447561b41998bbfc3b6ab1 (commit)
       via  820d90935c4ee1a32723ffa51b54646c7ed90514 (commit)
       via  6d457d8143f257f3af2f39fdfe5481816b40a5d0 (commit)
       via  bcb8887a43e424b0852f83dc26ff1a6bae438d96 (commit)
       via  8c333ed9e9ae1772514e13e42a146d63942c1653 (commit)
       via  40e7907446fb74992de563988ac3c47b5a62e909 (commit)
       via  c209e4df034c5aeb27375dddf5c15578cbd0887c (commit)
       via  9ce05bc8b95751ffe65c64ecd45aeef8618d90c8 (commit)
       via  57c720096a413b5cb11acd4efb4fbe43a521ffba (commit)
       via  4ee80f8e4ef2e37c13ed828b6c1d82da9fe3c481 (commit)
       via  dc08b37d20edf096c4b2555df24944ec08e063b3 (commit)
       via  d03bc76b473bf60e8c291893f780d98d5633d0a8 (commit)
       via  00f911e702265c297a04ecbcd5957ef236bf6f2f (commit)
       via  a2ea514b1140d25dd2397ff48ff990a95b7f5e6b (commit)
       via  389f32eb83bb1f9ecf0cbefc21539ea10b5a2ec5 (commit)
       via  ce98f22ef914ac5f778e63fc750e411b725ccb86 (commit)
       via  82628de32451186708c0630cf995fdf5430c3f76 (commit)
       via  f4a283dc4fed2b1d9fff61c38017aa1a34cd162a (commit)
       via  375cd196b718de69722c962e4ae944f91957562c (commit)
       via  64b99c38a112083b4024a88d42c0fd9043b2c58e (commit)
       via  c8a2bc7c7331bed33cc47187d04fbc144b860dff (commit)
       via  547c776a59b71ac8f45f3fb3e7fe6e41930b48e3 (commit)
       via  9cbd5436781986a5a05c7bd214d68671b7cf5f31 (commit)
       via  98a0b71f1161948b1b3f2e8b5694b9076a4e65eb (commit)
       via  f6edf9d31204204907b67f167516bd5082b78d0c (commit)
       via  ba25a9f1c295d7799575afa39c4c9854a85ad8e3 (commit)
      from  10a1f8b1d17cf1602819fb93a758f3102e737d6e (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 dc33f64b11e20420b6447561b41998bbfc3b6ab1
Merge: 10a1f8b 820d909
Author: Stefano Lattarini <address@hidden>
Date:   Sun Apr 21 11:24:54 2013 +0200

    Merge branch 'master' into ng/master
    
    * master:
      INSTALL: regen
      sync: update files from upstream with "make fetch"
      tests: tweaks and minimal improvements to t/insthook.sh
      typofix: in comments in t/extra2.sh
      tests: fix botched cross-reference in a heading comment
      compat: reinstate support for obsolete $(INCLUDES) variable
      automake: refactoring: factor out common cpp-like flags
      NEWS (mint): reflect new Automake versioning scheme
      NEWS (master): reflect new Automake versioning scheme
      Add missing '$' for variable expansion in depout.m4
      maintcheck: avoid spurious failure
      perl: perl subroutine prototypes are problematic, don't use them
      fixup: one stray reference to older versioning scheme
      preproc: enhance and extend tests
      preproc: add support for relative names in included fragments
    
    + Non-trivial extra changes:
    
    * automake.in (@cpplike_flags): Use $(AM_DEFAULT_INCLUDES), not
    $(DEFAULT_INCLUDES).  Do not support $(INCLUDES).
    (generate_makefile): User definition of $(INCLUDES) causes a fatal
    error, not a warning.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

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

Summary of changes:
 NEWS                                               |   19 ++-
 THANKS                                             |    1 +
 automake.in                                        |  248 +++++++++++---------
 doc/automake-ng.texi                               |   26 ++
 lib/Automake/Options.pm                            |    9 +-
 lib/config.guess                                   |   13 +-
 lib/config.sub                                     |   19 +-
 lib/gendocs.sh                                     |  160 ++++++++-----
 lib/gnupload                                       |   23 ++-
 lib/texinfo.tex                                    |   50 +++--
 t/extra-dist-wildcards.sh                          |    4 +-
 t/extra2.sh                                        |    2 +-
 t/{includes-no-more.sh => includes-deprecation.sh} |   17 +-
 t/insthook.sh                                      |   16 +-
 t/preproc-basics.sh                                |  106 +++++++++
 t/preproc-c-compile.sh                             |  118 ++++++++++
 t/preproc-demo.sh                                  |  230 ++++++++++++++++++
 t/preproc-errmsg.sh                                |   78 ++++++
 t/warnopts.sh                                      |    9 +-
 19 files changed, 900 insertions(+), 248 deletions(-)
 rename t/{includes-no-more.sh => includes-deprecation.sh} (67%)
 create mode 100755 t/preproc-basics.sh
 create mode 100755 t/preproc-c-compile.sh
 create mode 100755 t/preproc-demo.sh
 create mode 100755 t/preproc-errmsg.sh

diff --git a/NEWS b/NEWS
index 861991c..fb70eee 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-New in 1.14:
+New in 2.0:
 
 * Aclocal search path:
 
@@ -30,9 +30,6 @@ New in 1.14:
     been removed.  It should be safe to simply remove any definition
     of it you have in your Makefiles.
 
-  - Support for the long-obsolete $(INCLUDES) variable has been finally
-    removed, in favour of the modern equivalent $(AM_CPPFLAGS).
-
 * Removed support for obsolete platforms:
 
   - Support for automatic dependency tracking with the SGI C/C++ compilers
@@ -131,7 +128,7 @@ New in 1.14:
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-New in 1.13.2:
+New in 1.14:
 
 * C compilation, and the AC_PROG_CC and AM_PROG_CC_C_O macros:
 
@@ -188,6 +185,18 @@ New in 1.13.2:
     be longer necessary, so we deprecate it with runtime warnings.  It will
     likely be removed altogether in Automake 1.14.
 
+* Relative directory in Makefile fragments:
+
+  - The special Automake-time substitutions '%reldir%' and '%canon_reldir%'
+    (and their short versions, '%D%' and '%C%' respectively) can now be used
+    in an included Makefile fragment.  The former is substituted with the
+    relative directory of the included fragment (compared to the top level
+    including Makefile), and the latter with the canonicalized version of
+    the same relative directory:
+
+        bin_PROGRAMS += %reldir%/foo
+        %canon_reldir%_foo_SOURCES = %reldir%/bar.c
+
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 New in 1.13.2:
diff --git a/THANKS b/THANKS
index c8ec3fd..cf46972 100644
--- a/THANKS
+++ b/THANKS
@@ -128,6 +128,7 @@ Ganesan Rajagopal               address@hidden
 Garrett D'Amore                 address@hidden
 Garth Corral                    address@hidden
 Gary V Vaughan                  address@hidden
+Gavin Smith                     address@hidden
 Geoffrey Keating                address@hidden
 Glenn Amerine                   address@hidden
 Gord Matzigkeit                 address@hidden
diff --git a/automake.in b/automake.in
index 7b69dde..b01803f 100644
--- a/automake.in
+++ b/automake.in
@@ -560,6 +560,14 @@ sub initialize_per_input ()
 
 # Initialize our list of languages that are internally supported.
 
+my @cpplike_flags =
+  qw{
+    $(DEFS)
+    $(AM_DEFAULT_INCLUDES)
+    $(AM_CPPFLAGS)
+    $(CPPFLAGS)
+  };
+
 # C.
 register_language ('name' => 'c',
                   'Name' => 'C',
@@ -585,7 +593,7 @@ register_language ('name' => 'cxx',
                   'link' => '$(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) 
$(LDFLAGS) -o $@',
                   'autodep' => 'CXX',
                   'flags' => ['CXXFLAGS', 'CPPFLAGS'],
-                  'compile' => '$(CXX) $(DEFS) $(AM_DEFAULT_INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)',
+                  'compile' => "\$(CXX) @cpplike_flags \$(AM_CXXFLAGS) 
\$(CXXFLAGS)",
                   'ccer' => 'CXX',
                   'compiler' => 'CXXCOMPILE',
                   'compile_flag' => '-c',
@@ -604,7 +612,7 @@ register_language ('name' => 'objc',
                   'link' => '$(OBJCLD) $(AM_OBJCFLAGS) $(OBJCFLAGS) 
$(AM_LDFLAGS) $(LDFLAGS) -o $@',
                   'autodep' => 'OBJC',
                   'flags' => ['OBJCFLAGS', 'CPPFLAGS'],
-                  'compile' => '$(OBJC) $(DEFS) $(AM_DEFAULT_INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS)',
+                  'compile' => "\$(OBJC) @cpplike_flags \$(AM_OBJCFLAGS) 
\$(OBJCFLAGS)",
                   'ccer' => 'OBJC',
                   'compiler' => 'OBJCCOMPILE',
                   'compile_flag' => '-c',
@@ -622,7 +630,7 @@ register_language ('name' => 'objcxx',
                   'link' => '$(OBJCXXLD) $(AM_OBJCXXFLAGS) $(OBJCXXFLAGS) 
$(AM_LDFLAGS) $(LDFLAGS) -o $@',
                   'autodep' => 'OBJCXX',
                   'flags' => ['OBJCXXFLAGS', 'CPPFLAGS'],
-                  'compile' => '$(OBJCXX) $(DEFS) $(AM_DEFAULT_INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCXXFLAGS) $(OBJCXXFLAGS)',
+                  'compile' => "\$(OBJCXX) @cpplike_flags \$(AM_OBJCXXFLAGS) 
\$(OBJCXXFLAGS)",
                   'ccer' => 'OBJCXX',
                   'compiler' => 'OBJCXXCOMPILE',
                   'compile_flag' => '-c',
@@ -640,7 +648,7 @@ register_language ('name' => 'upc',
                   'link' => '$(UPCLD) $(AM_UPCFLAGS) $(UPCFLAGS) $(AM_LDFLAGS) 
$(LDFLAGS) -o $@',
                   'autodep' => 'UPC',
                   'flags' => ['UPCFLAGS', 'CPPFLAGS'],
-                  'compile' => '$(UPC) $(DEFS) $(AM_DEFAULT_INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_UPCFLAGS) $(UPCFLAGS)',
+                  'compile' => "\$(UPC) @cpplike_flags \$(AM_UPCFLAGS) 
\$(UPCFLAGS)",
                   'ccer' => 'UPC',
                   'compiler' => 'UPCCOMPILE',
                   'compile_flag' => '-c',
@@ -760,7 +768,7 @@ register_language ('name' => 'cppasm',
 
                   'autodep' => 'CCAS',
                   'flags' => ['CCASFLAGS', 'CPPFLAGS'],
-                  'compile' => '$(CCAS) $(DEFS) $(AM_DEFAULT_INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)',
+                  'compile' => "\$(CCAS) @cpplike_flags \$(AM_CCASFLAGS) 
\$(CCASFLAGS)",
                   'ccer' => 'CPPAS',
                   'compiler' => 'CPPASCOMPILE',
                   'compile_flag' => '-c',
@@ -814,7 +822,7 @@ register_language ('name' => 'ppfc',
                   'flags' => ['FCFLAGS', 'CPPFLAGS'],
                   'ccer' => 'PPFC',
                   'compiler' => 'PPFCCOMPILE',
-                  'compile' => '$(FC) $(DEFS) $(AM_DEFAULT_INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)',
+                  'compile' => "\$(FC) @cpplike_flags \$(AM_FCFLAGS) 
\$(FCFLAGS)",
                   'compile_flag' => '-c',
                   'output_flag' => '-o',
                   'libtool_tag' => 'FC',
@@ -846,7 +854,7 @@ register_language ('name' => 'ppf77',
                   'flags' => ['FFLAGS', 'CPPFLAGS'],
                   'ccer' => 'PPF77',
                   'compiler' => 'PPF77COMPILE',
-                  'compile' => '$(F77) $(DEFS) $(AM_DEFAULT_INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS)',
+                  'compile' => "\$(F77) @cpplike_flags \$(AM_FFLAGS) 
\$(FFLAGS)",
                   'compile_flag' => '-c',
                   'output_flag' => '-o',
                   'libtool_tag' => 'F77',
@@ -898,23 +906,23 @@ register_language ('name' => 'java',
 # err_am ($MESSAGE, [%OPTIONS])
 # -----------------------------
 # Uncategorized errors about the current Makefile.am.
-sub err_am ($;%)
+sub err_am
 {
-  msg_am ('error', shift, @_);
+  msg_am ('error', @_);
 }
 
 # err_ac ($MESSAGE, [%OPTIONS])
 # -----------------------------
 # Uncategorized errors about configure.ac.
-sub err_ac ($;%)
+sub err_ac
 {
-  msg_ac ('error', shift, @_);
+  msg_ac ('error', @_);
 }
 
 # msg_am ($CHANNEL, $MESSAGE, [%OPTIONS])
 # ---------------------------------------
 # Messages about about the current Makefile.am.
-sub msg_am ($$;%)
+sub msg_am
 {
   my ($channel, $msg, %opts) = @_;
   msg $channel, "${am_file}.am", $msg, %opts;
@@ -923,7 +931,7 @@ sub msg_am ($$;%)
 # msg_ac ($CHANNEL, $MESSAGE, [%OPTIONS])
 # ---------------------------------------
 # Messages about about configure.ac.
-sub msg_ac ($$;%)
+sub msg_ac
 {
   my ($channel, $msg, %opts) = @_;
   msg $channel, $configure_ac, $msg, %opts;
@@ -937,7 +945,7 @@ sub msg_ac ($$;%)
 # We do this to avoid having the substitutions directly in automake.in;
 # when we do that they are sometimes removed and this causes confusion
 # and bugs.
-sub subst ($)
+sub subst
 {
     my ($text) = @_;
     return '@' . $text . '@';
@@ -952,7 +960,7 @@ sub subst ($)
 # If I "cd $RELDIR", then to come back, I should "cd $BACKPATH".
 # For instance 'src/foo' => '../..'.
 # Works with non strictly increasing paths, i.e., 'src/../lib' => '..'.
-sub backname ($)
+sub backname
 {
     my ($file) = @_;
     my @res;
@@ -979,7 +987,7 @@ sub backname ($)
 # verbose_var (NAME)
 # ------------------
 # The public variable stem used to implement silent rules.
-sub verbose_var ($)
+sub verbose_var
 {
     my ($name) = @_;
     return 'AM_V_' . $name;
@@ -990,7 +998,7 @@ sub verbose_var ($)
 # For  silent rules, setup VAR and dispatcher, to expand to
 # VAL-IF-SILENT if silent, to VAL-IF-VERBOSE (defaulting to
 # empty) if not.
-sub define_verbose_var ($$;$)
+sub define_verbose_var
 {
     my ($name, $silent_val, $verbose_val) = @_;
     $verbose_val = '' unless defined $verbose_val;
@@ -1007,13 +1015,13 @@ sub define_verbose_var ($$;$)
 # verbose_flag (NAME)
 # -------------------
 # Contents of '%VERBOSE%' variable to expand before rule command.
-sub verbose_flag ($)
+sub verbose_flag
 {
     my ($name) = @_;
     return '$(' . verbose_var ($name) . ')';
 }
 
-sub verbose_nodep_flag ($)
+sub verbose_nodep_flag
 {
     my ($name) = @_;
     return '$(' . verbose_var ($name) . subst ('am__nodep') . ')';
@@ -1030,7 +1038,7 @@ sub silent_flag ()
 # define_verbose_tagvar (NAME)
 # ----------------------------
 # Engage the needed silent rules machinery for tag NAME.
-sub define_verbose_tagvar ($)
+sub define_verbose_tagvar
 {
     my ($name) = @_;
     define_verbose_var ($name, '@echo "  '. $name . ' ' x (8 - length ($name)) 
. '" $@;');
@@ -1107,7 +1115,7 @@ sub handle_options ()
 # If the VAR wasn't defined conditionally, return $(VAR).
 # Otherwise we create an am__VAR_DIST variable which contains
 # all possible values, and return $(am__VAR_DIST).
-sub shadow_unconditionally ($$)
+sub shadow_unconditionally
 {
   my ($varname, $where) = @_;
   my $var = var $varname;
@@ -1124,7 +1132,7 @@ sub shadow_unconditionally ($$)
 # ----------------------------
 # Make sure each variable VAR in @LIST does not exist, suggest using AM_VAR
 # otherwise.
-sub check_user_variables (@)
+sub check_user_variables
 {
   my @dont_override = @_;
   foreach my $flag (@dont_override)
@@ -1396,7 +1404,7 @@ sub append_exeext (&$)
 # mentioned.  This is a separate function (as opposed to being inlined
 # in handle_source_transform) because it isn't always appropriate to
 # do this check.
-sub check_libobjs_sources ($$)
+sub check_libobjs_sources
 {
   my ($one_file, $unxformed) = @_;
 
@@ -1444,7 +1452,7 @@ sub check_libobjs_sources ($$)
 #     when producing explicit rules
 # Result is a list of the names of objects
 # %linkers_used will be updated with any linkers needed
-sub handle_single_transform ($$$$$%)
+sub handle_single_transform
 {
     my ($var, $topparent, $derived, $obj, $_file, %transform) = @_;
     my @files = ($_file);
@@ -1760,7 +1768,7 @@ sub handle_single_transform ($$$$$%)
 #
 # Result is a pair ($LINKER, $OBJVAR):
 #    $LINKER is a boolean, true if a linker is needed to deal with the objects
-sub define_objects_from_sources ($$$$$$$%)
+sub define_objects_from_sources
 {
   my ($var, $objvar, $nodefine, $one_file,
       $obj, $topparent, $where, %transform) = @_;
@@ -1794,7 +1802,7 @@ sub define_objects_from_sources ($$$$$$$%)
 #   extra arguments to pass to file_contents when producing rules
 # Return the name of the linker variable that must be used.
 # Empty return means just use 'LINK'.
-sub handle_source_transform ($$$$%)
+sub handle_source_transform
 {
     # one_file is canonical name.  unxformed is given name.  obj is
     # object extension.
@@ -1832,7 +1840,7 @@ sub handle_source_transform ($$$$%)
        $needlinker |=
            define_objects_from_sources ($varname,
                                         $xpfx . $one_file . '_OBJECTS',
-                                        $prefix =~ /EXTRA_/,
+                                        !!($prefix =~ /EXTRA_/),
                                         $one_file, $obj, $varname, $where,
                                         DIST_SOURCE => ($prefix !~ /^nodist_/),
                                         %transform);
@@ -1887,7 +1895,7 @@ sub handle_source_transform ($$$$%)
 #   transformed name of object being built, or empty string if no object
 #   name of _LDADD/_LIBADD-type variable to examine
 # Returns 1 if LIBOBJS seen, 0 otherwise.
-sub handle_lib_objects ($$)
+sub handle_lib_objects
 {
   my ($xname, $varname) = @_;
 
@@ -1965,7 +1973,7 @@ sub handle_lib_objects ($$)
 # -------------------------------
 # Definitions common to LIBOBJS and ALLOCA.
 # VAR should be one of LIBOBJS, LTLIBOBJS, ALLOCA, or LTALLOCA.
-sub handle_LIBOBJS_or_ALLOCA ($)
+sub handle_LIBOBJS_or_ALLOCA
 {
   my ($var) = @_;
 
@@ -1992,7 +2000,7 @@ sub handle_LIBOBJS_or_ALLOCA ($)
   return $dir;
 }
 
-sub handle_LIBOBJS ($$$)
+sub handle_LIBOBJS
 {
   my ($var, $cond, $lt) = @_;
   my $myobjext = $lt ? 'lo' : 'o';
@@ -2031,7 +2039,7 @@ sub handle_LIBOBJS ($$$)
     }
 }
 
-sub handle_ALLOCA ($$$)
+sub handle_ALLOCA
 {
   my ($var, $cond, $lt) = @_;
   my $myobjext = $lt ? 'lo' : 'o';
@@ -2045,7 +2053,7 @@ sub handle_ALLOCA ($$$)
 }
 
 # Canonicalize the input parameter.
-sub canonicalize ($)
+sub canonicalize
 {
     my ($string) = @_;
     $string =~ tr/A-Za-z0-9_\@/_/c;
@@ -2055,7 +2063,7 @@ sub canonicalize ($)
 # Canonicalize a name, and check to make sure the non-canonical name
 # is never used.  Returns canonical name.  Arguments are name and a
 # list of suffixes to check for.
-sub check_canonical_spelling ($@)
+sub check_canonical_spelling
 {
   my ($name, @suffixes) = @_;
 
@@ -2537,7 +2545,7 @@ sub handle_scripts ()
 # -----------------------------
 # $OUTFILE     - name of the info file produced by $FILENAME.
 # $VFILE       - name of the version.texi file used (undef if none).
-sub scan_texinfo_file ($)
+sub scan_texinfo_file
 {
   my ($filename) = @_;
 
@@ -2582,7 +2590,7 @@ sub scan_texinfo_file ($)
 # handle_texinfo_helper ($info_texinfos)
 # --------------------------------------
 # Handle all Texinfo source; helper for 'handle_texinfo'.
-sub handle_texinfo_helper ($)
+sub handle_texinfo_helper
 {
   my ($info_texinfos) = @_;
   my (@infobase, @info_deps_list, @texi_deps);
@@ -3046,7 +3054,7 @@ sub handle_data ()
 # Return false if rule $NAME does not exist.  Otherwise,
 # declare it as phony, complete its definition (in case it is
 # conditional), and return its Automake::Rule instance.
-sub user_phony_rule ($)
+sub user_phony_rule
 {
   my ($name) = @_;
   my $rule = rule $name;
@@ -3185,7 +3193,7 @@ sub handle_dist ()
 # -------------------------------------------------------
 # Ensure $NAME is a directory (in $RELATIVE_DIR), and that it uses a sane
 # name.  Use $WHERE as a location in the diagnostic, if any.
-sub check_directory ($$;$)
+sub check_directory
 {
   my ($dir, $where, $reldir) = @_;
   $reldir = '.' unless defined $reldir;
@@ -3203,7 +3211,7 @@ sub check_directory ($$;$)
 # check_directories_in_var ($VARIABLE)
 # ------------------------------------
 # Recursively check all items in variables $VARIABLE as directories
-sub check_directories_in_var ($)
+sub check_directories_in_var
 {
   my ($var) = @_;
   $var->traverse_recursively
@@ -3264,7 +3272,7 @@ sub scan_aclocal_m4 ()
 
 
 # Helper function for 'substitute_ac_subst_variables'.
-sub substitute_ac_subst_variables_worker($)
+sub substitute_ac_subst_variables_worker
 {
   my ($token) = @_;
   return "address@hidden@" if var $token;
@@ -3275,7 +3283,7 @@ sub substitute_ac_subst_variables_worker($)
 # -------------------------------------
 # Replace any occurrence of ${FOO} in $TEXT by @FOO@ if FOO is an AC_SUBST
 # variable.
-sub substitute_ac_subst_variables ($)
+sub substitute_ac_subst_variables
 {
   my ($text) = @_;
   $text =~ s/\${([^ \t=:+{}]+)}/substitute_ac_subst_variables_worker ($1)/ge;
@@ -3290,7 +3298,7 @@ sub substitute_ac_subst_variables ($)
 # directory, then the directory part is simply replaced by $(srcdir).
 # But if the directory part is different, then $(top_srcdir) is
 # prepended.
-sub prepend_srcdir (@)
+sub prepend_srcdir
 {
   my (@inputs) = @_;
   my @newinputs;
@@ -3316,7 +3324,7 @@ sub prepend_srcdir (@)
 # rule of
 #   AC_CONFIG_FILES($OUTPUT:$INPUT[0]:$INPUTS[1]:...)
 # Also distribute $INPUTs which are not built by another AC_CONFIG_FOOs.
-sub rewrite_inputs_into_dependencies ($@)
+sub rewrite_inputs_into_dependencies
 {
   my ($file, @inputs) = @_;
   my @res = ();
@@ -3386,7 +3394,7 @@ sub handle_config_headers ()
 # -------------------------------------
 # Handle remaking and configure stuff.
 # We need the name of the input file, to do proper remaking rules.
-sub handle_configure ($@)
+sub handle_configure
 {
   my ($makefile, @inputs) = @_;
 
@@ -3973,7 +3981,7 @@ sub handle_minor_options ()
 # ------------------------------
 # Decode the Autoconf syntax for config files (files, headers, links
 # etc.).
-sub split_config_file_spec ($)
+sub split_config_file_spec
 {
   my ($spec) = @_;
   my ($output, @inputs) = split (/:/, $spec);
@@ -3990,7 +3998,7 @@ sub split_config_file_spec ($)
 # AC_CONFIG_FILES allow specifications such as Makefile:top.in:mid.in:bot.in
 # This functions returns the first *.in file for which a *.am exists.
 # It returns undef otherwise.
-sub locate_am (@)
+sub locate_am
 {
   my (@rest) = @_;
   my $input;
@@ -4011,7 +4019,7 @@ my %make_list;
 # --------------------------------------------------
 # Study $CONFIG-FILES which is the first argument to AC_CONFIG_FILES
 # (or AC_OUTPUT).
-sub scan_autoconf_config_files ($$)
+sub scan_autoconf_config_files
 {
   my ($where, $config_files) = @_;
 
@@ -4049,7 +4057,7 @@ sub scan_autoconf_config_files ($$)
 }
 
 
-sub scan_autoconf_traces ($)
+sub scan_autoconf_traces
 {
   my ($filename) = @_;
 
@@ -4521,7 +4529,7 @@ sub lang_lexxx_rewrite ($$$)
 # language, etc.  A finish function is only called if a source file of
 # the appropriate type has been seen.
 
-sub lang_vala_finish_target ($$)
+sub lang_vala_finish_target
 {
   my ($self, $name) = @_;
 
@@ -4635,7 +4643,7 @@ sub lang_vala_finish ()
 # The built .c files should be cleaned only on maintainer-clean
 # as the .c files are distributed. This function is called for each
 # .vala source file.
-sub lang_vala_target_hook ($$$$%)
+sub lang_vala_target_hook
 {
   my ($self, $aggregate, $output, $input, %transform) = @_;
 
@@ -4644,7 +4652,7 @@ sub lang_vala_target_hook ($$$$%)
 
 # This is a yacc helper which is called whenever we have decided to
 # compile a yacc file.
-sub lang_yacc_target_hook ($$$$%)
+sub lang_yacc_target_hook
 {
     my ($self, $aggregate, $output, $input, %transform) = @_;
 
@@ -4720,7 +4728,7 @@ sub lang_yacc_target_hook ($$$$%)
 
 # This is a lex helper which is called whenever we have decided to
 # compile a lex file.
-sub lang_lex_target_hook ($$$$%)
+sub lang_lex_target_hook
 {
     my ($self, $aggregate, $output, $input, %transform) = @_;
     # The GNU rules say that yacc/lex output files should be removed
@@ -4744,7 +4752,7 @@ sub lang_yacc_lex_finish ()
 # precedence.  This is lame, but something has to have global
 # knowledge in order to eliminate the conflict.  Add more linkers as
 # required.
-sub resolve_linker (%)
+sub resolve_linker
 {
     my (%linkers) = @_;
 
@@ -4756,7 +4764,7 @@ sub resolve_linker (%)
 }
 
 # Called to indicate that an extension was used.
-sub saw_extension ($)
+sub saw_extension
 {
     my ($ext) = @_;
     $extension_seen{$ext} = 1;
@@ -4766,7 +4774,7 @@ sub saw_extension ($)
 # ------------------------------
 # Register a single language.
 # Each %ATTRIBUTE is of the form ATTRIBUTE => VALUE.
-sub register_language (%)
+sub register_language
 {
   my (%option) = @_;
 
@@ -4805,7 +4813,7 @@ sub register_language (%)
 
 
 # Pretty-print something and append to '$output_rules'.
-sub pretty_print_rule ($$@)
+sub pretty_print_rule
 {
     $output_rules .= makefile_wrap (shift, shift, @_);
 }
@@ -4822,7 +4830,7 @@ sub pretty_print_rule ($$@)
 # $STRING
 # make_conditional_string ($NEGATE, $COND)
 # ----------------------------------------
-sub make_conditional_string ($$)
+sub make_conditional_string
 {
   my ($negate, $cond) = @_;
   $cond = "${cond}_TRUE"
@@ -4850,7 +4858,7 @@ my %_am_macro_for_cond =
 # $COND
 # cond_stack_if ($NEGATE, $COND, $WHERE)
 # --------------------------------------
-sub cond_stack_if ($$$)
+sub cond_stack_if
 {
   my ($negate, $cond, $where) = @_;
 
@@ -4880,7 +4888,7 @@ sub cond_stack_if ($$$)
 # $COND
 # cond_stack_else ($NEGATE, $COND, $WHERE)
 # ----------------------------------------
-sub cond_stack_else ($$$)
+sub cond_stack_else
 {
   my ($negate, $cond, $where) = @_;
 
@@ -4910,7 +4918,7 @@ sub cond_stack_else ($$$)
 # $COND
 # cond_stack_endif ($NEGATE, $COND, $WHERE)
 # -----------------------------------------
-sub cond_stack_endif ($$$)
+sub cond_stack_endif
 {
   my ($negate, $cond, $where) = @_;
   my $old_cond;
@@ -4952,7 +4960,7 @@ sub cond_stack_endif ($$$)
 # under which the value should be defined; this should be the empty
 # string to define the variable unconditionally.  The third argument
 # is a list holding the values to use for the variable.
-sub define_cond_variable ($$$@)
+sub define_cond_variable
 {
     my ($var, $cond, $where, @value) = @_;
 
@@ -4969,7 +4977,7 @@ sub define_cond_variable ($$$@)
 # --------------------------------------
 # Define a new Automake Makefile variable VAR to VALUE, but only if
 # not already defined.
-sub define_variable ($$@)
+sub define_variable
 {
     my ($var, $where, @value) = @_;
     define_cond_variable ($var, TRUE, $where, @value);
@@ -4990,14 +4998,14 @@ sub define_files_variable (address@hidden)
 
 # Like define_variable, but define a variable to be the configure
 # substitution by the same name.
-sub define_configure_variable ($)
+sub define_configure_variable
 {
   my ($var) = @_;
   # Some variables we do not want to output.  For instance it
   # would be a bad idea to output `U = @address@hidden when address@hidden@` 
can be
   # substituted as `\`.
   return if exists $ignored_configure_vars{$var};
-  Automake::Variable::define ($var, VAR_CONFIGURE, '', TRUE, subst $var,
+  Automake::Variable::define ($var, VAR_CONFIGURE, '', TRUE, subst ($var),
                              '', $configure_vars{$var});
 }
 
@@ -5006,7 +5014,7 @@ sub define_configure_variable ($)
 # --------------------------------
 # Define a compiler variable.  We also handle defining the 'LT'
 # version of the command when using libtool.
-sub define_compiler_variable ($)
+sub define_compiler_variable
 {
     my ($lang) = @_;
 
@@ -5026,7 +5034,7 @@ sub define_compiler_variable ($)
 }
 
 
-sub define_linker_variable ($)
+sub define_linker_variable
 {
     my ($lang) = @_;
 
@@ -5048,7 +5056,7 @@ sub define_linker_variable ($)
     define_verbose_tagvar ($lang->lder || 'GEN');
 }
 
-sub define_per_target_linker_variable ($$)
+sub define_per_target_linker_variable
 {
   my ($linker, $target) = @_;
 
@@ -5117,15 +5125,16 @@ sub check_trailing_slash ($\$)
 }
 
 
-# read_am_file ($AMFILE, $WHERE)
-# ------------------------------
+# read_am_file ($AMFILE, $WHERE, $RELDIR)
+# ---------------------------------------
 # Read Makefile.am and set up %contents.  Simultaneously copy lines
 # from Makefile.am into $output_trailer, or define variables as
 # appropriate.  NOTE we put rules in the trailer section.  We want
 # user rules to come after our generated stuff.
-sub read_am_file ($$)
+sub read_am_file
 {
-    my ($amfile, $where) = @_;
+    my ($amfile, $where, $reldir) = @_;
+    my $canon_reldir = &canonicalize ($reldir);
 
     my $am_file = new Automake::XFile ("< $amfile");
     verb "reading $amfile";
@@ -5202,6 +5211,17 @@ sub read_am_file ($$)
 
        my $new_saw_bk = check_trailing_slash ($where, $_);
 
+       if ($reldir eq '.')
+         {
+           # If present, eat the following '_' or '/', converting
+           # "%reldir%/foo" and "%canon_reldir%_foo" into plain "foo"
+           # when $reldir is '.'.
+           $_ =~ s,%(D|reldir)%/,,g;
+           $_ =~ s,%(C|canon_reldir)%_,,g;
+         }
+       $_ =~ s/%(D|reldir)%/${reldir}/g;
+       $_ =~ s/%(C|canon_reldir)%/${canon_reldir}/g;
+
        if (/$IGNORE_PATTERN/o)
        {
            # Merely delete comments beginning with two hashes.
@@ -5327,8 +5347,10 @@ sub read_am_file ($$)
                push_dist_common ("\$\(srcdir\)/$path");
                $path = $relative_dir . "/" . $path if $relative_dir ne '.';
              }
+           my $new_reldir = File::Spec->abs2rel ($path, $relative_dir);
+           $new_reldir = '.' if $new_reldir !~ s,/[^/]*$,,;
            $where->push_context ("'$path' included from here");
-           read_am_file ($path, $where);
+           read_am_file ($path, $where, $new_reldir);
            $where->pop_context;
        }
        else
@@ -5365,7 +5387,10 @@ sub define_standard_variables ()
   $output_vars .= verbatim ('header-vars');
 }
 
-sub read_main_am_file ($$)
+
+# read_main_am_file ($MAKEFILE_AM, $MAKEFILE_IN)
+# ----------------------------------------------
+sub read_main_am_file
 {
     my ($amfile, $infile) = @_;
 
@@ -5385,15 +5410,17 @@ sub read_main_am_file ($$)
     define_standard_variables;
 
     # Read user file, which might override some of our values.
-    read_am_file ($amfile, new Automake::Location);
+    read_am_file ($amfile, new Automake::Location, '.');
 }
 
 
 
 ################################################################
 
-# Flatten the $STRING and return the result.
-sub flatten ($)
+# $STRING
+# flatten ($ORIGINAL_STRING)
+# --------------------------
+sub flatten
 {
   $_ = shift;
 
@@ -5410,7 +5437,7 @@ sub flatten ($)
 # ---------------------------------------
 # Return the value associated to $KEY in %PAIRS, as used on $TOKEN
 # (which should be ?KEY? or any of the special %% requests)..
-sub transform_token ($$$)
+sub transform_token ($\%$)
 {
   my ($token, $transform, $key) = @_;
   my $res = $transform->{$key};
@@ -5425,7 +5452,7 @@ sub transform_token ($$$)
 #   - replaces %KEY% with $VAL,
 #   - enables/disables ?KEY? and ?!KEY?,
 #   - replaces %?KEY% with TRUE or FALSE.
-sub transform ($$)
+sub transform ($\%)
 {
   my ($token, $transform) = @_;
 
@@ -5434,18 +5461,18 @@ sub transform ($$)
   # when there is neither IFTRUE nor IFFALSE.
   if ($token =~ /^%([\w\-]+)%$/)
     {
-      return transform_token ($token, $transform, $1);
+      return transform_token ($token, %$transform, $1);
     }
   # %?KEY%.
   elsif ($token =~ /^%\?([\w\-]+)%$/)
     {
-      return transform_token ($token, $transform, $1) ? 'TRUE' : 'FALSE';
+      return transform_token ($token, %$transform, $1) ? 'TRUE' : 'FALSE';
     }
   # ?KEY? and ?!KEY?.
   elsif ($token =~ /^ \? (!?) ([\w\-]+) \? $/x)
     {
       my $neg = ($1 eq '!') ? 1 : 0;
-      my $val = transform_token ($token, $transform, $2);
+      my $val = transform_token ($token, %$transform, $2);
       return (!!$val == $neg) ? '##%' : '';
     }
   else
@@ -5489,7 +5516,7 @@ sub slurp_makefile_fragment ($)
 # Load a $MAKEFILE, apply the %TRANSFORM, and return the result.
 # No extra parsing or post-processing is done (i.e., recognition of
 # rules declaration or of make variables definitions).
-sub preprocess_file ($%)
+sub preprocess_file
 {
   my ($file, %transform) = @_;
 
@@ -5511,7 +5538,7 @@ sub preprocess_file ($%)
   # Substitute Automake template tokens.
   s/(?: % \?? [\w\-]+ %
       | \? !? [\w\-]+ \?
-    )/transform($&, \%transform)/gex;
+    )/transform($&, %transform)/gex;
   # transform() may have added some ##%-comments to strip.
   # (we use '##%' instead of '##' so we can distinguish ##%##%##% from
   # ####### and do not remove the latter.)
@@ -5557,7 +5584,7 @@ sub verbatim ($)
 # -----------------------------------------
 # Load a $MAKEFILE, apply the %TRANSFORM, and return it as a list of
 # paragraphs.
-sub make_paragraphs ($%)
+sub make_paragraphs
 {
   my ($file, %transform) = @_;
   $transform{FIRST} = !$transformed_files{$file};
@@ -5622,7 +5649,7 @@ sub make_paragraphs ($%)
 # Return contents of a file from $libdir/am, automatically skipping
 # macros or rules which are already known. $IS_AM iff the caller is
 # reading an Automake file (as opposed to the user's Makefile.am).
-sub file_contents_internal ($$$%)
+sub file_contents_internal
 {
     my ($is_am, $file, $where, %transform) = @_;
 
@@ -5807,7 +5834,7 @@ sub file_contents_internal ($$$%)
 # -----------------------------------------------
 # Return contents of a file from $libdir/am, automatically skipping
 # macros or rules which are already known.
-sub file_contents ($$%)
+sub file_contents
 {
     my ($basename, $where, %transform) = @_;
     my ($comments, $variables, $rules) =
@@ -5833,7 +5860,7 @@ sub file_contents ($$%)
 # variable "zardir" is defined, then "zar_PROGRAMS" becomes valid.
 # This is to provide a little extra flexibility in those cases which
 # need it.
-sub am_primary_prefixes ($$@)
+sub am_primary_prefixes
 {
   my ($primary, $can_dist, @prefixes) = @_;
 
@@ -5910,7 +5937,7 @@ sub am_primary_prefixes ($$@)
 # FIXME: this should be rewritten to be cleaner.  It should be broken
 # up into multiple functions.
 #
-sub am_install_var (@)
+sub am_install_var
 {
   my (@args) = @_;
 
@@ -6116,7 +6143,9 @@ sub am_install_var (@)
 my %make_dirs = ();
 my $make_dirs_set = 0;
 
-sub is_make_dir ($)
+# is_make_dir ($DIRECTORY)
+# ------------------------
+sub is_make_dir
 {
     my ($dir) = @_;
     if (! $make_dirs_set)
@@ -6170,7 +6199,7 @@ sub locate_aux_dir ()
 # push_required_file ($DIR, $FILE, $FULLFILE)
 # -------------------------------------------
 # Push the given file onto DIST_COMMON.
-sub push_required_file ($$$)
+sub push_required_file
 {
   my ($dir, $file, $fullfile) = @_;
 
@@ -6258,7 +6287,7 @@ my %required_file_not_found = ();
 # required_file_check_or_copy ($WHERE, $DIRECTORY, $FILE)
 # -------------------------------------------------------
 # Verify that the file must exist in $DIRECTORY, or install it.
-sub required_file_check_or_copy ($$$)
+sub required_file_check_or_copy
 {
   my ($where, $dir, $file) = @_;
 
@@ -6367,7 +6396,7 @@ sub required_file_check_or_copy ($$$)
 # -------------------------------------------------------------
 # Verify that the file must exist in $DIRECTORY, or install it.
 # $MYSTRICT is the strictness level at which this file becomes required.
-sub require_file_internal ($$$@)
+sub require_file_internal
 {
   my ($where, $mystrict, $dir, @files) = @_;
 
@@ -6383,7 +6412,7 @@ sub require_file_internal ($$$@)
 
 # require_file ($WHERE, $MYSTRICT, @FILES)
 # ----------------------------------------
-sub require_file ($$@)
+sub require_file
 {
     my ($where, $mystrict, @files) = @_;
     require_file_internal ($where, $mystrict, $relative_dir, @files);
@@ -6391,7 +6420,7 @@ sub require_file ($$@)
 
 # require_file_with_macro ($COND, $MACRO, $MYSTRICT, @FILES)
 # ----------------------------------------------------------
-sub require_file_with_macro ($$$@)
+sub require_file_with_macro
 {
     my ($cond, $macro, $mystrict, @files) = @_;
     $macro = rvar ($macro) unless ref $macro;
@@ -6402,7 +6431,7 @@ sub require_file_with_macro ($$$@)
 # ---------------------------------------------------------------
 # Require an AC_LIBSOURCEd file.  If AC_CONFIG_LIBOBJ_DIR was called, it
 # must be in that directory.  Otherwise expect it in the current directory.
-sub require_libsource_with_macro ($$$@)
+sub require_libsource_with_macro
 {
     my ($cond, $macro, $mystrict, @files) = @_;
     $macro = rvar ($macro) unless ref $macro;
@@ -6420,7 +6449,7 @@ sub require_libsource_with_macro ($$$@)
 # require_conf_file ($WHERE, $MYSTRICT, @FILES)
 # ---------------------------------------------
 # Looks in configuration path, as specified by AC_CONFIG_AUX_DIR.
-sub require_conf_file ($$@)
+sub require_conf_file
 {
     my ($where, $mystrict, @files) = @_;
     require_file_internal ($where, $mystrict, $config_aux_dir, @files);
@@ -6429,7 +6458,7 @@ sub require_conf_file ($$@)
 
 # require_conf_file_with_macro ($COND, $MACRO, $MYSTRICT, @FILES)
 # ---------------------------------------------------------------
-sub require_conf_file_with_macro ($$$@)
+sub require_conf_file_with_macro
 {
     my ($cond, $macro, $mystrict, @files) = @_;
     require_conf_file (rvar ($macro)->rdef ($cond)->location,
@@ -6441,7 +6470,7 @@ sub require_conf_file_with_macro ($$$@)
 # require_build_directory ($DIRECTORY)
 # ------------------------------------
 # Push a list of files onto '@dist_common'.
-sub push_dist_common (@)
+sub push_dist_common
 {
   prog_error "push_dist_common run after handle_dist"
     if $handle_dist_run;
@@ -6454,7 +6483,7 @@ sub push_dist_common (@)
 # ----------------------------------------------
 # Generate a Makefile.in given the name of the corresponding Makefile and
 # the name of the file output by config.status.
-sub generate_makefile ($$)
+sub generate_makefile
 {
   my ($makefile_am, $makefile_in) = @_;
 
@@ -6501,14 +6530,18 @@ sub generate_makefile ($$)
     }
 
   # Catch some obsolete variables.
-  reject_var 'INCLUDES', "'INCLUDES' is the obsolete name for " .
-                         "'AM_CPPFLAGS' (or '*_CPPFLAGS')";
-  if (my $amflags = var ('ACLOCAL_AMFLAGS'))
+  if (my $ovar = var ('ACLOCAL_AMFLAGS'))
     {
-      msg_var 'obsolete', $amflags,
+      msg_var 'obsolete', $ovar,
               "'ACLOCAL_AMFLAGS' is deprecated; use 'AC_CONFIG_MACRO_DIRS'"
               . " in configure.ac instead";
     }
+  if (my $ovar = var ('INCLUDES'))
+    {
+      reject_var $ovar,
+              "'INCLUDES' is obsolete; you should use 'AM_CPPFLAGS'"
+              . " (or '*_CPPFLAGS') instead"
+    }
 
   # Some of these must do this after reading .am file.
 
@@ -6669,15 +6702,12 @@ sub generate_makefile ($$)
   print $gm_file $output;
 }
 
-################################################################
-
-
-
 
 ################################################################
 
+
 # Helper function for usage().
-sub print_autodist_files (@)
+sub print_autodist_files
 {
   # NOTE: we need to call our 'uniq' function with the leading '&'
   # here, because otherwise perl complains that "Unquoted string
@@ -6856,7 +6886,9 @@ sub parse_arguments ()
 }
 
 
-sub handle_makefile ($)
+# handle_makefile ($MAKEFILE)
+# ---------------------------
+sub handle_makefile
 {
   my ($file) =  @_;
   ($am_file = $file) =~ s/\.in$//;
diff --git a/doc/automake-ng.texi b/doc/automake-ng.texi
index 71415f6..d20b7ae 100644
--- a/doc/automake-ng.texi
+++ b/doc/automake-ng.texi
@@ -6082,6 +6082,12 @@ files in the source directory are ignored.
 @code{AM_CPPFLAGS} is ignored in preference to a per-executable (or
 per-library) @code{_CPPFLAGS} variable if it is defined.
 
address@hidden INCLUDES
+This does the same job as @code{AM_CPPFLAGS} (or any per-target
address@hidden variable if it is used).  It is an older name for the
+same functionality.  This variable is deprecated; we suggest using
address@hidden and per-target @code{_CPPFLAGS} instead.
+
 @item AM_CFLAGS
 This is the variable the @file{Makefile.am} author can use to pass
 in additional C compiler flags.  In some situations, this is
@@ -10383,6 +10389,26 @@ condition applies to the entire contents of that 
fragment.
 Makefile fragments included this way are always distributed because
 they are needed to rebuild @file{Makefile.in}.
 
+Inside a fragment, the construct @code{%reldir%} is replaced with the
+directory of the fragment relative to the base @file{Makefile.am}.
+Similarly, @code{%canon_reldir%} is replaced with the canonicalized
+(@pxref{Canonicalization}) form of @code{%reldir%}.  As a convenience,
address@hidden is a synonym for @code{%reldir%}, and @code{%C%}
+is a synonym for @code{%canon_reldir%}.
+
+A special feature is that if the fragment is in the same directory as
+the base @file{Makefile.am} (i.e., @code{%reldir%} is @code{.}), then
address@hidden and @code{%canon_reldir%} will expand to the empty
+string as well as eat, if present, a following slash or underscore
+respectively.
+
+Thus, a makefile fragment might look like this:
+
address@hidden
+bin_PROGRAMS += %reldir%/mumble
+%canon_reldir%_mumble_SOURCES = %reldir%/one.c
address@hidden example
+
 @node Conditionals
 @chapter Conditionals
 
diff --git a/lib/Automake/Options.pm b/lib/Automake/Options.pm
index 8782c79..9ba59d5 100644
--- a/lib/Automake/Options.pm
+++ b/lib/Automake/Options.pm
@@ -310,7 +310,14 @@ sub _process_option_list (\%@)
         {
           set_strictness ($_);
         }
-      # TODO: Remove this special check in Automake 1.15.
+      # TODO: Remove this special check in Automake 3.0.
+      elsif (/^(.*\/)?ansi2knr$/)
+        {
+          # Obsolete (and now removed) de-ANSI-fication support.
+          error ($where,
+                 "automatic de-ANSI-fication support has been removed");
+        }
+      # TODO: Remove this special check in Automake 3.0.
       elsif ($_ eq 'cygnus')
         {
           error $where, "support for Cygnus-style trees has been removed";
diff --git a/lib/config.guess b/lib/config.guess
index 0aee604..f475ceb 100755
--- a/lib/config.guess
+++ b/lib/config.guess
@@ -1,10 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012, 2013 Free Software Foundation, Inc.
+#   Copyright 1992-2013 Free Software Foundation, Inc.
 
-timestamp='2012-12-30'
+timestamp='2013-02-12'
 
 # 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
@@ -52,9 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
-2012, 2013 Free Software Foundation, Inc.
+Copyright 1992-2013 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -957,6 +953,9 @@ EOF
        eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
        test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
        ;;
+    or1k:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
     or32:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
        exit ;;
diff --git a/lib/config.sub b/lib/config.sub
index 707e9e2..872199a 100755
--- a/lib/config.sub
+++ b/lib/config.sub
@@ -1,10 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012, 2013 Free Software Foundation, Inc.
+#   Copyright 1992-2013 Free Software Foundation, Inc.
 
-timestamp='2013-01-11'
+timestamp='2013-02-12'
 
 # 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
@@ -70,9 +68,7 @@ Report bugs and patches to <address@hidden>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
-2012, 2013 Free Software Foundation, Inc.
+Copyright 1992-2013 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -297,10 +293,10 @@ case $basic_machine in
        | mt \
        | msp430 \
        | nds32 | nds32le | nds32be \
-       | nios | nios2 \
+       | nios | nios2 | nios2eb | nios2el \
        | ns16k | ns32k \
        | open8 \
-       | or32 \
+       | or1k | or32 \
        | pdp10 | pdp11 | pj | pjl \
        | powerpc | powerpc64 | powerpc64le | powerpcle \
        | pyramid \
@@ -414,7 +410,7 @@ case $basic_machine in
        | mt-* \
        | msp430-* \
        | nds32-* | nds32le-* | nds32be-* \
-       | nios-* | nios2-* \
+       | nios-* | nios2-* | nios2eb-* | nios2el-* \
        | none-* | np1-* | ns16k-* | ns32k-* \
        | open8-* \
        | orion-* \
@@ -1593,6 +1589,9 @@ case $basic_machine in
        mips*-*)
                os=-elf
                ;;
+       or1k-*)
+               os=-elf
+               ;;
        or32-*)
                os=-coff
                ;;
diff --git a/lib/gendocs.sh b/lib/gendocs.sh
index 0c0bc4b..e4bfc9f 100755
--- a/lib/gendocs.sh
+++ b/lib/gendocs.sh
@@ -2,9 +2,9 @@
 # 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=2012-10-27.11
+scriptversion=2013-02-03.15
 
-# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
 # Free Software Foundation, Inc.
 #
 # This program is free software: you can redistribute it and/or modify
@@ -56,7 +56,7 @@ unset use_texi2html
 
 version="gendocs.sh $scriptversion
 
-Copyright 2012 Free Software Foundation, Inc.
+Copyright 2013 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."
@@ -69,16 +69,23 @@ discussion:
   http://www.gnu.org/prep/maintain_toc.html
 
 Options:
-  -s SRCFILE  read Texinfo from SRCFILE, instead of PACKAGE.{texinfo|texi|txi}
-  -o OUTDIR   write files into OUTDIR, instead of manual/.
-  -I DIR      append DIR to the Texinfo search path.
-  --email ADR use ADR as contact in generated web pages.
-  --docbook   convert through DocBook too (xml, txt, html, pdf).
-  --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.
+  --email ADR use ADR as contact in generated web pages; always give this.
+
+  -s SRCFILE   read Texinfo from SRCFILE, instead of PACKAGE.{texinfo|texi|txi}
+  -o OUTDIR    write files into OUTDIR, instead of manual/.
+  -I DIR       append DIR to the Texinfo search path.
+  --common ARG pass ARG in all invocations.
+  --html ARG   pass ARG to makeinfo or texi2html for HTML targets.
+  --info ARG   pass ARG to makeinfo for Info, instead of --no-split.
+  --no-ascii   skip generating the plain text output.
+  --source ARG include ARG in tar archive of sources.
+  --split HOW  make split HTML by node, section, chapter; default node.
+
+  --texi2html  use texi2html to make HTML target, with all split versions.
+  --docbook    convert through DocBook too (xml, txt, html, pdf).
+
+  --help       display this help and exit successfully.
+  --version    display version information and exit successfully.
 
 Simple example: $prog --email address@hidden emacs \"GNU Emacs Manual\"
 
@@ -92,8 +99,8 @@ 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 do use the --email ADDRESS option to specify your bug-reporting
-address in the generated HTML pages.
+Please use the --email ADDRESS option so your own bug-reporting
+address will be used in the generated HTML pages.
 
 MANUAL-TITLE is included as part of the HTML <title> of the overall
 manual/index.html file.  It should include the name of the package being
@@ -117,7 +124,7 @@ You can set the environment variables MAKEINFO, TEXI2DVI, 
TEXI2HTML,
 and PERL to control the programs that get executed, and
 GENDOCS_TEMPLATE_DIR to control where the gendocs_template file is
 looked for.  With --docbook, the environment variables DOCBOOK2HTML,
-DOCBOOK2PDF, and DOCBOOK2TXT are also respected.
+DOCBOOK2PDF, and DOCBOOK2TXT are also consulted.
 
 By default, makeinfo and texi2dvi are run in the default (English)
 locale, since that's the language of most Texinfo manuals.  If you
@@ -130,25 +137,34 @@ Email bug reports or enhancement requests to 
address@hidden
 MANUAL_TITLE=
 PACKAGE=
 address@hidden  # please override with --email
-commonarg= # Options passed to all the tools (-I dir).
+commonarg= # passed to all makeinfo/texi2html invcations.
+dirargs=   # passed to all tools (-I dir).
 dirs=      # -I's directories.
 htmlarg=
 infoarg=--no-split
+generate_ascii=true
 outdir=manual
+source_extra=
+split=node
 srcfile=
 
 while test $# -gt 0; do
   case $1 in
-    --email) shift; EMAIL=$1;;
-    --help) echo "$usage"; exit 0;;
-    --version) echo "$version"; exit 0;;
-    -s) shift; srcfile=$1;;
-    -o) shift; outdir=$1;;
-    -I) shift; commonarg="$commonarg -I '$1'"; dirs="$dirs $1";;
-    --docbook) docbook=yes;;
-    --html) shift; htmlarg=$1;;
-    --info) shift; infoarg=$1;;
+    -s)          shift; srcfile=$1;;
+    -o)          shift; outdir=$1;;
+    -I)          shift; dirargs="$dirargs -I '$1'"; dirs="$dirs $1";;
+    --common)    shift; commonarg=$1;;
+    --docbook)   docbook=yes;;
+    --email)     shift; EMAIL=$1;;
+    --html)      shift; htmlarg=$1;;
+    --info)      shift; infoarg=$1;;
+    --no-ascii)  generate_ascii=false;;
+    --source)    shift; source_extra=$1;;
+    --split)     shift; split=$1;;
     --texi2html) use_texi2html=1;;
+
+    --help)      echo "$usage"; exit 0;;
+    --version)   echo "$version"; exit 0;;
     -*)
       echo "$0: Unknown option \`$1'." >&2
       echo "$0: Try \`--help' for more information." >&2
@@ -166,6 +182,9 @@ while test $# -gt 0; do
   shift
 done
 
+# makeinfo uses the dirargs, but texi2dvi doesn't.
+commonarg=" $dirargs $commonarg"
+
 # For most of the following, the base name is just $PACKAGE
 base=$PACKAGE
 
@@ -247,46 +266,52 @@ case $outdir in
   *)  abs_outdir=$srcdir/$outdir;;
 esac
 
-echo "Generating output formats for $srcfile"
+echo "Making output for $srcfile"
+echo " in `pwd`"
+mkdir -p "$outdir/"
 
 cmd="$SETLANG $MAKEINFO -o $PACKAGE.info $commonarg $infoarg \"$srcfile\""
-echo "Generating info file(s)... ($cmd)"
+echo "Generating info... ($cmd)"
 eval "$cmd"
-mkdir -p "$outdir/"
 tar czf "$outdir/$PACKAGE.info.tar.gz" $PACKAGE.info*
+ls -l "$outdir/$PACKAGE.info.tar.gz"
 info_tgz_size=`calcsize "$outdir/$PACKAGE.info.tar.gz"`
 # do not mv the info files, there's no point in having them available
 # separately on the web.
 
-cmd="$SETLANG $TEXI2DVI $commonarg \"$srcfile\""
-echo "Generating dvi ... ($cmd)"
+cmd="$SETLANG $TEXI2DVI $dirargs \"$srcfile\""
+printf "\nGenerating dvi... ($cmd)\n"
 eval "$cmd"
-
 # compress/finish dvi:
 gzip -f -9 $PACKAGE.dvi
 dvi_gz_size=`calcsize $PACKAGE.dvi.gz`
 mv $PACKAGE.dvi.gz "$outdir/"
+ls -l "$outdir/$PACKAGE.dvi.gz"
 
-cmd="$SETLANG $TEXI2DVI --pdf $commonarg \"$srcfile\""
-echo "Generating pdf ... ($cmd)"
+cmd="$SETLANG $TEXI2DVI --pdf $dirargs \"$srcfile\""
+printf "\nGenerating pdf... ($cmd)\n"
 eval "$cmd"
 pdf_size=`calcsize $PACKAGE.pdf`
 mv $PACKAGE.pdf "$outdir/"
+ls -l "$outdir/$PACKAGE.pdf"
 
-opt="-o $PACKAGE.txt --no-split --no-headers $commonarg"
-cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
-echo "Generating ASCII... ($cmd)"
-eval "$cmd"
-ascii_size=`calcsize $PACKAGE.txt`
-gzip -f -9 -c $PACKAGE.txt >"$outdir/$PACKAGE.txt.gz"
-ascii_gz_size=`calcsize "$outdir/$PACKAGE.txt.gz"`
-mv $PACKAGE.txt "$outdir/"
+if $generate_ascii; then
+  opt="-o $PACKAGE.txt --no-split --no-headers $commonarg"
+  cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
+  printf "\nGenerating ascii... ($cmd)\n"
+  eval "$cmd"
+  ascii_size=`calcsize $PACKAGE.txt`
+  gzip -f -9 -c $PACKAGE.txt >"$outdir/$PACKAGE.txt.gz"
+  ascii_gz_size=`calcsize "$outdir/$PACKAGE.txt.gz"`
+  mv $PACKAGE.txt "$outdir/"
+  ls -l "$outdir/$PACKAGE.txt" "$outdir/$PACKAGE.txt.gz"
+fi
 
 html_split()
 {
-  opt="--split=$1 $commonarg $htmlarg --node-files"
+  opt="--split=$1 --node-files $commonarg $htmlarg"
   cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $opt \"$srcfile\""
-  echo "Generating html by $1... ($cmd)"
+  printf "\nGenerating html by $1... ($cmd)\n"
   eval "$cmd"
   split_html_dir=$PACKAGE.html
   (
@@ -304,7 +329,7 @@ html_split()
 if test -z "$use_texi2html"; then
   opt="--no-split --html -o $PACKAGE.html $commonarg $htmlarg"
   cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
-  echo "Generating monolithic html... ($cmd)"
+  printf "\nGenerating monolithic html... ($cmd)\n"
   rm -rf $PACKAGE.html  # in case a directory is left over
   eval "$cmd"
   html_mono_size=`calcsize $PACKAGE.html`
@@ -312,24 +337,29 @@ if test -z "$use_texi2html"; then
   html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"`
   copy_images "$outdir/" $PACKAGE.html
   mv $PACKAGE.html "$outdir/"
+  ls -l "$outdir/$PACKAGE.html" "$outdir/$PACKAGE.html.gz"
 
-  opt="--html -o $PACKAGE.html $commonarg $htmlarg"
+  opt="--html -o $PACKAGE.html --split=$split $commonarg $htmlarg"
   cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
-  echo "Generating html by node... ($cmd)"
+  printf "\nGenerating html by $split... ($cmd)\n"
   eval "$cmd"
   split_html_dir=$PACKAGE.html
   copy_images $split_html_dir/ $split_html_dir/*.html
   (
     cd $split_html_dir || exit 1
-    tar -czf "$abs_outdir/$PACKAGE.html_node.tar.gz" -- *
+    tar -czf "$abs_outdir/$PACKAGE.html_$split.tar.gz" -- *
   )
-  html_node_tgz_size=`calcsize "$outdir/$PACKAGE.html_node.tar.gz"`
-  rm -rf "$outdir/html_node/"
-  mv $split_html_dir "$outdir/html_node/"
-else
+  eval \
+    html_${split}_tgz_size=`calcsize "$outdir/$PACKAGE.html_$split.tar.gz"`
+  rm -rf "$outdir/html_$split/"
+  mv $split_html_dir "$outdir/html_$split/"
+  du -s "$outdir/html_$split/"
+  ls -l "$outdir/$PACKAGE.html_$split.tar.gz"
+
+else # use texi2html:
   opt="--output $PACKAGE.html $commonarg $htmlarg"
   cmd="$SETLANG $TEXI2HTML $opt \"$srcfile\""
-  echo "Generating monolithic html... ($cmd)"
+  printf "\nGenerating monolithic html with texi2html... ($cmd)\n"
   rm -rf $PACKAGE.html  # in case a directory is left over
   eval "$cmd"
   html_mono_size=`calcsize $PACKAGE.html`
@@ -342,19 +372,20 @@ else
   html_split section
 fi
 
-echo Making .tar.gz for sources...
+printf "\nMaking .tar.gz for sources...\n"
 d=`dirname $srcfile`
 (
   cd "$d"
-  srcfiles=`ls *.texinfo *.texi *.txi *.eps 2>/dev/null` || true
-  tar cvzfh "$abs_outdir/$PACKAGE.texi.tar.gz" $srcfiles
+  srcfiles=`ls -d *.texinfo *.texi *.txi *.eps $source_extra 2>/dev/null` || 
true
+  tar czfh "$abs_outdir/$PACKAGE.texi.tar.gz" $srcfiles
+  ls -l "$abs_outdir/$PACKAGE.texi.tar.gz"
 )
 texi_tgz_size=`calcsize "$outdir/$PACKAGE.texi.tar.gz"`
 
 if test -n "$docbook"; then
   opt="-o - --docbook $commonarg"
   cmd="$SETLANG $MAKEINFO $opt \"$srcfile\" >${srcdir}/$PACKAGE-db.xml"
-  echo "Generating docbook XML... ($cmd)"
+  printf "\nGenerating docbook XML... ($cmd)\n"
   eval "$cmd"
   docbook_xml_size=`calcsize $PACKAGE-db.xml`
   gzip -f -9 -c $PACKAGE-db.xml >"$outdir/$PACKAGE-db.xml.gz"
@@ -364,7 +395,7 @@ if test -n "$docbook"; then
   split_html_db_dir=html_node_db
   opt="$commonarg -o $split_html_db_dir"
   cmd="$DOCBOOK2HTML $opt \"${outdir}/$PACKAGE-db.xml\""
-  echo "Generating docbook HTML... ($cmd)"
+  printf "\nGenerating docbook HTML... ($cmd)\n"
   eval "$cmd"
   (
     cd ${split_html_db_dir} || exit 1
@@ -377,24 +408,25 @@ if test -n "$docbook"; then
   rmdir ${split_html_db_dir}
 
   cmd="$DOCBOOK2TXT \"${outdir}/$PACKAGE-db.xml\""
-  echo "Generating docbook ASCII... ($cmd)"
+  printf "\nGenerating docbook ASCII... ($cmd)\n"
   eval "$cmd"
   docbook_ascii_size=`calcsize $PACKAGE-db.txt`
   mv $PACKAGE-db.txt "$outdir/"
 
   cmd="$DOCBOOK2PDF \"${outdir}/$PACKAGE-db.xml\""
-  echo "Generating docbook PDF... ($cmd)"
+  printf "\nGenerating docbook PDF... ($cmd)\n"
   eval "$cmd"
   docbook_pdf_size=`calcsize $PACKAGE-db.pdf`
   mv $PACKAGE-db.pdf "$outdir/"
 fi
 
-echo "Writing index file..."
+printf "\nMaking index file...\n"
 if test -z "$use_texi2html"; then
-   CONDS="/%%IF  *HTML_SECTION%%/,/%%ENDIF  *HTML_SECTION%%/d;\
-          /%%IF  *HTML_CHAPTER%%/,/%%ENDIF  *HTML_CHAPTER%%/d"
+  CONDS="/%%IF  *HTML_SECTION%%/,/%%ENDIF  *HTML_SECTION%%/d;\
+         /%%IF  *HTML_CHAPTER%%/,/%%ENDIF  *HTML_CHAPTER%%/d"
 else
-   CONDS="/%%ENDIF.*%%/d;/%%IF  *HTML_SECTION%%/d;/%%IF  *HTML_CHAPTER%%/d"
+  # should take account of --split here.
+  CONDS="/%%ENDIF.*%%/d;/%%IF  *HTML_SECTION%%/d;/%%IF  *HTML_CHAPTER%%/d"
 fi
 
 curdate=`$SETLANG date '+%B %d, %Y'`
diff --git a/lib/gnupload b/lib/gnupload
index e329e83..e3ac1ba 100755
--- a/lib/gnupload
+++ b/lib/gnupload
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Sign files and upload them.
 
-scriptversion=2012-12-11.16; # UTC
+scriptversion=2013-03-19.17; # UTC
 
 # Copyright (C) 2004-2013 Free Software Foundation, Inc.
 #
@@ -39,9 +39,8 @@ nl='
 
 usage="Usage: $0 [OPTION]... [CMD] FILE... [[CMD] FILE...]
 
-Sign all FILES, and process them at selected destinations according to CMD.
-<http://www.gnu.org/prep/maintain/html_node/Automated-FTP-Uploads.html>
-explains further.
+Sign all FILES, and process them at the destinations specified with --to.
+If CMD is not given, it defaults to uploading.  See examples below.
 
 Commands:
   --delete                 delete FILES from destination
@@ -50,8 +49,7 @@ Commands:
   --                       treat the remaining arguments as files to upload
 
 Options:
-  --help                   print this help text and exit
-  --to DEST                specify one destination for FILES
+  --to DEST                specify a destination DEST for FILES
                            (multiple --to options are allowed)
   --user NAME              sign with key NAME
   --replace                allow replacements of existing files
@@ -59,10 +57,10 @@ Options:
   --dry-run                do nothing, show what would have been done
                            (including the constructed directive file)
   --version                output version information and exit
+  --help                   print this help text and exit
 
 If --symlink-regex is given without EXPR, then the link target name
 is created by replacing the version information with '-latest', e.g.:
-
   foo-1.3.4.tar.gz -> foo-latest.tar.gz
 
 Recognized destinations are:
@@ -80,6 +78,9 @@ in the current working directory, its contents are prepended 
to the
 actual command line options.  Use this to keep your defaults.  Comments
 (#) and empty lines in $conffile are allowed.
 
+<http://www.gnu.org/prep/maintain/html_node/Automated-FTP-Uploads.html>
+gives some further background.
+
 Examples:
 1. Upload foobar-1.0.tar.gz to ftp.gnu.org:
   gnupload --to ftp.gnu.org:foobar foobar-1.0.tar.gz
@@ -104,7 +105,7 @@ Examples:
            --delete oopsbar-0.9.91.tar.gz \\
            -- foobar-0.9.91.tar.gz
 
-gnupload uses the ncftpput program to do the transfers; if you don't
+gnupload executes a program ncftpput to do the transfers; if you don't
 happen to have an ncftp package installed, the ncftpput-ftp script in
 the build-aux/ directory of the gnulib package
 (http://savannah.gnu.org/projects/gnulib) may serve as a replacement.
@@ -132,6 +133,12 @@ while test -n "$1"; do
       if test -z "$2"; then
         echo "$0: Missing argument for --to" 1>&2
         exit 1
+      elif echo "$2" | grep 'ftp-upload\.gnu\.org' >/dev/null; then
+        echo "$0: Use ftp.gnu.org:PKGNAME or alpha.gnu.org:PKGNAME" >&2
+        echo "$0: for the destination, not ftp-upload.gnu.org (which" >&2
+        echo "$0:  is used for direct ftp uploads, not with gnupload)." >&2
+        echo "$0: See --help and its examples if need be." >&2
+        exit 1
       else
         to="$to $2"
         shift
diff --git a/lib/texinfo.tex b/lib/texinfo.tex
index d64f45b..85f184c 100644
--- a/lib/texinfo.tex
+++ b/lib/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{2013-01-01.15}
+\def\texinfoversion{2013-02-01.11}
 %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -2496,7 +2496,7 @@ end
      \let-\codedash
      \let_\codeunder
     \else
-     \let-\realdash
+     \let-\normaldash
      \let_\realunder
     \fi
     \codex
@@ -2505,7 +2505,7 @@ end
 
 \def\codex #1{\tclose{#1}\endgroup}
 
-\def\realdash{-}
+\def\normaldash{-}
 \def\codedash{-\discretionary{}{}{}}
 \def\codeunder{%
   % this is all so @address@hidden can work.  In math mode, _
@@ -2520,9 +2520,9 @@ end
 }
 
 % An additional complication: the above will allow breaks after, e.g.,
-% each of the four underscores in __typeof__.  This is undesirable in
-% some manuals, especially if they don't have long identifiers in
-% general.  @allowcodebreaks provides a way to control this.
+% each of the four underscores in __typeof__.  This is bad.
+% @allowcodebreaks provides a document-level way to turn breaking at -
+% and _ on and off.
 %
 \newif\ifallowcodebreaks  \allowcodebreakstrue
 
@@ -4188,7 +4188,7 @@ end
     % ..., but we might end up with active ones in the argument if
     % we're called from @code, as @address@hidden, though.
     % So \let them to their normal equivalents.
-    \let-\realdash \let_\normalunderscore
+    \let-\normaldash \let_\normalunderscore
   }
 }
 
@@ -9993,22 +9993,26 @@ directory should work if nowhere else does.}
 @address@hidden@address@hidden
 
 % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
-% the literal character `\'.
-%
address@hidden@normalturnoffactive{%
-  @let"address@hidden
-  @address@hidden %$ font-lock fix
-  @address@hidden
-  @let<address@hidden
-  @let>address@hidden
-  @address@hidden
-  @address@hidden
-  @address@hidden
-  @let|address@hidden
-  @address@hidden
-  @markupsetuplqdefault
-  @markupsetuprqdefault
-  @unsepspaces
+% the literal character `\'.  Also revert - to its normal character, in
+% case the active - from code has slipped in.
+%
address@hidden = @active
+ @address@hidden
+   @address@hidden
+   @let"address@hidden
+   @address@hidden %$ font-lock fix
+   @address@hidden
+   @let<address@hidden
+   @let>address@hidden
+   @address@hidden
+   @address@hidden
+   @address@hidden
+   @let|address@hidden
+   @address@hidden
+   @markupsetuplqdefault
+   @markupsetuprqdefault
+   @unsepspaces
+ }
 }
 
 % Make _ and + \other characters, temporarily.
diff --git a/t/extra-dist-wildcards.sh b/t/extra-dist-wildcards.sh
index 15ab440..b669717 100755
--- a/t/extra-dist-wildcards.sh
+++ b/t/extra-dist-wildcards.sh
@@ -16,8 +16,8 @@
 
 # Check that wildcards in EXTRA_DIST are honoured.
 # Suggested by observations from Braden McDaniel.
-# See also sister test 'extra11.sh', that checks a similar usage
-# with the involvement of the $(wildcard) GNU make builtin.
+# See also sister test 'extra-dist-wildcards-gnu.sh', that checks a
+# similar usage with the involvement of the $(wildcard) GNU make builtin.
 
 . test-init.sh
 
diff --git a/t/extra2.sh b/t/extra2.sh
index b971a4b..f3c3f5b 100755
--- a/t/extra2.sh
+++ b/t/extra2.sh
@@ -14,7 +14,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Check to make sure EXTRA_foo_SOURCES not defined unnecessarily.
+# Check to make sure EXTRA_foo_SOURCES are not defined unnecessarily.
 
 . test-init.sh
 
diff --git a/t/includes-no-more.sh b/t/includes-deprecation.sh
similarity index 67%
rename from t/includes-no-more.sh
rename to t/includes-deprecation.sh
index 4867ee5..ec54359 100755
--- a/t/includes-no-more.sh
+++ b/t/includes-deprecation.sh
@@ -14,19 +14,28 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Support for $(INCLUDES) has been removed.
+# Support for $(INCLUDES) is deprecated.
 
 . test-init.sh
 
 echo AC_PROG_CC >> configure.ac
 
+$ACLOCAL
+
 cat > Makefile.am << 'END'
 bin_PROGRAMS = foo
 INCLUDES = -DFOO
 END
 
-$ACLOCAL
-AUTOMAKE_fails -Wnone -Wno-error
-grep "^Makefile\\.am:2:.* 'INCLUDES'.* obsolete.* 'AM_CPPFLAGS'" stderr
+AUTOMAKE_fails -Wnone -Wobsolete
+grep "^Makefile\\.am:2:.* 'INCLUDES'.* deprecated.* 'AM_CPPFLAGS'" stderr
+AUTOMAKE_run -Wall -Wno-obsolete
+test ! -s stderr
+
+echo 'AC_SUBST([INCLUDES])' >> configure.ac
+sed '/^INCLUDES/d' Makefile.am > t && mv -f t Makefile.am
+
+AUTOMAKE_run -Wno-error
+grep "^configure\\.ac:5:.* 'INCLUDES'.* deprecated.* 'AM_CPPFLAGS'" stderr
 
 :
diff --git a/t/insthook.sh b/t/insthook.sh
index c752a4a..1a91826 100755
--- a/t/insthook.sh
+++ b/t/insthook.sh
@@ -27,9 +27,9 @@ cat >Makefile.am <<'END'
 dist_bin_SCRIPTS = foo
 
 install-exec-hook:
-       cd "$(DESTDIR)$(bindir)" && \
-       mv -f foo foo-$(VERSION) && \
-       $(LN_S) foo-$(VERSION) foo
+       cd "$(DESTDIR)$(bindir)" \
+         && mv -f foo foo-$(VERSION) \
+         && $(LN_S) foo-$(VERSION) foo
 
 installcheck-local:
        test -f "$(bindir)/foo"
@@ -40,7 +40,7 @@ uninstall-hook:
        rm -f $(DESTDIR)$(bindir)/foo-$(VERSION)
 END
 
-echo 1 > foo
+echo a > foo
 
 $ACLOCAL
 $AUTOCONF
@@ -58,11 +58,11 @@ test -f ok
 # version.)
 ./configure "--bindir=$(pwd)/bin"
 $MAKE install
-echo 2 > foo
+echo b > foo
 $MAKE install VERSION=2.0
-grep 1 bin/foo-1.0
-grep 2 bin/foo-2.0
-grep 2 bin/foo
+test $(cat bin/foo-1.0) = a
+test $(cat bin/foo-2.0) = b
+test $(cat bin/foo)     = b
 
 # install-hook is an error.
 cat >>Makefile.am <<EOF
diff --git a/t/preproc-basics.sh b/t/preproc-basics.sh
new file mode 100755
index 0000000..6000d88
--- /dev/null
+++ b/t/preproc-basics.sh
@@ -0,0 +1,106 @@
+#! /bin/sh
+# Copyright (C) 2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Basic tests for '%...%' preprocessing in included Makefile fragments:
+#   %reldir%        a.k.a.  %D%
+#   %canon_reldir%  a.k.a.  %C%
+
+. test-init.sh
+
+cat >> configure.ac << 'END'
+AC_CONFIG_FILES([zot/Makefile])
+AC_OUTPUT
+END
+
+mkdir foo foo/bar foo/foobar zot
+
+cat > Makefile.am << 'END'
+include $(top_srcdir)/foo/local.mk
+include $(srcdir)/foo/foobar/local.mk
+include local.mk
+END
+
+cat > zot/Makefile.am << 'END'
+include $(top_srcdir)/zot/local.mk
+
+## Check that '%canon_reldir%' doesn't remain overridden
+## by the previous include.
+%canon_reldir%_zot_whoami:
+       echo "I am %reldir%/Makefile.am" >$@
+
+include $(top_srcdir)/top.mk
+include ../reltop.mk
+END
+
+cat > local.mk << 'END'
+%canon_reldir%_whoami:
+       echo "I am %reldir%/local.mk" >$@
+END
+
+cat > top.mk << 'END'
+%canon_reldir%_top_whoami:
+       echo "I am %reldir%/top.mk" >$@
+END
+
+cat > reltop.mk << 'END'
+%C%_reltop_whoami:
+       echo "I am %D%/reltop.mk" >$@
+END
+
+cp local.mk foo
+cp local.mk foo/bar
+cp local.mk foo/foobar
+cp local.mk zot
+
+cat >> foo/local.mk << 'END'
+include %reldir%/bar/local.mk
+## Check that '%canon_reldir%' doesn't remain overridden by the
+## previous include.  The duplicated checks are done to ensure that
+## Automake substitutes all pre-processing occurrences on a line,
+## not just the first one.
+test-%reldir%:
+       test '%reldir%'       = foo  &&  test '%reldir%' = foo
+       test '%D%'            = foo  &&  test '%D%'      = foo
+       test '%canon_reldir%' = foo  &&  test '%C%'      = foo
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+./configure
+
+check ()
+{
+  test $# -eq 2 || fatal_ "made_into(): bad usage"
+  target=$1 contents=$2
+  rm -f "$target" \
+   && $MAKE "$target" \
+   && test x"$(cat "$target")" = x"$contents"
+}
+
+check whoami "I am local.mk"
+check foo_whoami "I am foo/local.mk"
+check foo_bar_whoami "I am foo/bar/local.mk"
+check foo_foobar_whoami "I am foo/foobar/local.mk"
+$MAKE test-foo
+
+cd zot
+check whoami "I am local.mk"
+check ___top_whoami "I am ../top.mk"
+check ___reltop_whoami "I am ../reltop.mk"
+check zot_whoami "I am Makefile.am"
+
+:
diff --git a/t/preproc-c-compile.sh b/t/preproc-c-compile.sh
new file mode 100755
index 0000000..79e9325
--- /dev/null
+++ b/t/preproc-c-compile.sh
@@ -0,0 +1,118 @@
+#! /bin/sh
+# Copyright (C) 2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Test pre-processing substitutions '%reldir%' and '%canon_reldir%'
+# with C compilation and subdir objects.
+
+require=cc
+. test-init.sh
+
+cat >> configure.ac << 'END'
+AC_PROG_CC
+AM_PROG_CC_C_O
+AC_CONFIG_FILES([zot/Makefile])
+AC_OUTPUT
+END
+
+mkdir foo
+mkdir foo/bar
+mkdir foo/foobar
+mkdir zot
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = subdir-objects
+SUBDIRS = zot
+bin_PROGRAMS =
+
+include $(top_srcdir)/foo/local.mk
+include $(srcdir)/foo/foobar/local.mk
+include local.mk
+
+check-local:
+       is $(bin_PROGRAMS) == \
+         foo/mumble2$(EXEEXT) \
+         foo/bar/mumble$(EXEEXT) \
+         foo/foobar/mumble$(EXEEXT) \
+         mumble$(EXEEXT)
+       test '$(mumble_SOURCES)' = one.c
+       test '$(foo_mumble2_SOURCES)' = foo/one.c
+       test '$(foo_bar_mumble_SOURCES)' = foo/bar/one.c
+       test '$(foo_foobar_mumble_SOURCES)' = foo/foobar/one.c
+       test -f mumble$(EXEEXT)
+       test -f foo/mumble2$(EXEEXT)
+       test -f foo/bar/mumble$(EXEEXT)
+       test -f foo/foobar/mumble$(EXEEXT)
+       test -f zot/mumble$(EXEEXT)
+       : Test some of the object files too.
+       test -f one.$(OBJEXT)
+       test -f foo/foobar/one.$(OBJEXT)
+       test -f zot/one.$(OBJEXT)
+END
+
+cat > zot/Makefile.am << 'END'
+AUTOMAKE_OPTIONS = subdir-objects
+bin_PROGRAMS =
+include $(top_srcdir)/zot/local.mk
+
+test:
+       test '$(bin_PROGRAMS)' == mumble$(EXEEXT)
+       test '$(mumble_SOURCES)' = one.c
+check-local: test
+END
+
+cat > local.mk << 'END'
+bin_PROGRAMS += %reldir%/mumble
+%canon_reldir%_mumble_SOURCES = %reldir%/one.c
+END
+
+echo 'int main (void) { return 0; }' > one.c
+
+sed 's/mumble/mumble2/' local.mk > foo/local.mk
+cp local.mk foo/bar
+cp local.mk foo/foobar
+cp local.mk zot
+echo "include %reldir%/bar/local.mk" >> foo/local.mk
+
+cp one.c foo
+cp one.c foo/bar
+cp one.c foo/foobar
+cp one.c zot
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+./configure
+
+$MAKE
+$MAKE check-local
+if ! cross_compiling; then
+  ./mumble
+  ./foo/mumble2
+  ./foo/bar/mumble
+  ./foo/foobar/mumble
+  ./zot/mumble
+fi
+
+(cd zot && $MAKE test)
+
+# GNU install refuses to override a just-installed file; since we
+# have plenty of 'mumble' dummy programs to install in the same
+# location, such "overridden installations" are not a problem for
+# us, so just force the use the 'install-sh' script
+ac_cv_path_install=$(pwd)/install-sh; export ac_cv_path_install
+$MAKE distcheck
+
+:
diff --git a/t/preproc-demo.sh b/t/preproc-demo.sh
new file mode 100755
index 0000000..4c1b2d9
--- /dev/null
+++ b/t/preproc-demo.sh
@@ -0,0 +1,230 @@
+#! /bin/sh
+# Copyright (C) 2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Demo of a package using pre-processing substitutions '%reldir%' and
+# '%canon_reldir%', and their respective shorthands '%D%' and '%C%'.
+
+am_create_testdir=empty
+required=cc
+. test-init.sh
+
+if cross_compiling; then
+  WE_ARE_CROSS_COMPILING=yes
+else
+  WE_ARE_CROSS_COMPILING=no
+fi
+export WE_ARE_CROSS_COMPILING
+
+SAFE_PRINT_FAIL=; unset SAFE_PRINT_FAIL
+
+cat > configure.ac << 'END'
+AC_INIT([GNU Demo], [0.7], address@hidden)
+AC_CONFIG_AUX_DIR([build-aux])
+AM_INIT_AUTOMAKE([1.12.6 foreign subdir-objects -Wall])
+AM_CONDITIONAL([NATIVE_BUILD], [test $WE_ARE_CROSS_COMPILING != yes])
+AC_CONFIG_FILES([Makefile])
+AC_PROG_CC
+AM_PROG_CC_C_O
+AM_PROG_AR
+AC_PROG_RANLIB
+AC_OUTPUT
+END
+
+mkdir build-aux lib lib/tests src tests
+
+## Top level.
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS =
+check_PROGRAMS =
+noinst_LIBRARIES =
+AM_CPPFLAGS =
+AM_TESTS_ENVIRONMENT =
+CLEANFILES =
+EXTRA_DIST =
+LDADD =
+TESTS =
+
+include $(srcdir)/src/progs.am
+include $(srcdir)/lib/gnulib.am
+include $(srcdir)/tests/check.am
+END
+
+## Src subdir.
+
+cat > src/progs.am <<'END'
+bin_PROGRAMS += %reldir%/hello
+
+bin_PROGRAMS += %D%/goodbye
+%canon_reldir%_goodbye_SOURCES = %D%/hello.c
+%C%_goodbye_CPPFLAGS = $(AM_CPPFLAGS) -DGREETINGS='"Goodbye"'
+
+# The testsuite should have access to our built programs.
+AM_TESTS_ENVIRONMENT += \
+  PROGDIR='$(top_builddir)/%reldir%'; \
+  export PROGDIR; \
+  PATH='$(abs_builddir)/%reldir%'$(PATH_SEPARATOR)$$PATH; \
+  export PATH;
+END
+
+cat > src/hello.c <<'END'
+#include "safe-print.h"
+#include <stdlib.h>
+#include <stdio.h>
+
+#ifndef GREETINGS
+#  define GREETINGS "Hello"
+#endif
+
+int
+main (void)
+{
+  safe_print (stdout, GREETINGS ", World!\n");
+  exit (EXIT_SUCCESS);
+}
+END
+
+## Lib subdir.
+
+cat > lib/gnulib.am << 'END'
+noinst_LIBRARIES += %D%/libgnu.a
+
+AM_CPPFLAGS += -I%D% -I$(top_srcdir)/%D%
+LDADD += $(noinst_LIBRARIES)
+
+%C%_libgnu_a_SOURCES = \
+  %D%/safe-print.c \
+  %D%/safe-print.h
+
+if NATIVE_BUILD
+include %D%/tests/gnulib-check.am
+endif
+END
+
+cat > lib/safe-print.c <<'END'
+#include "safe-print.h"
+#include <string.h>
+#include <stdlib.h>
+
+void
+safe_print (FILE *fp, const char * str)
+{
+  if (fprintf (fp, "%s", str) != strlen (str)
+       || fflush (fp) != 0 || ferror (fp))
+    {
+      fprintf (stderr, "I/O error\n");
+      exit (EXIT_FAILURE);
+    }
+}
+
+END
+
+cat > lib/safe-print.h <<'END'
+#include <stdio.h>
+void safe_print (FILE *, const char *);
+END
+
+## Lib/Tests (sub)subdir.
+
+cat > lib/tests/gnulib-check.am <<'END'
+check_PROGRAMS += %D%/safe-print-test
+TESTS += $(check_PROGRAMS)
+AM_TESTS_ENVIRONMENT += EXEEXT='$(EXEEXT)'; export EXEEXT;
+END
+
+cat > lib/tests/safe-print-test.c <<'END'
+#include "safe-print.h"
+int
+main (void)
+{
+  safe_print (stdout, "dummy\n");
+  return 0;
+}
+END
+
+## Tests subdir.
+
+cat > tests/check.am <<'END'
+TEST_EXTENSIONS = .sh
+SH_LOG_COMPILER = $(SHELL)
+
+handwritten_TESTS = \
+  %D%/hello.sh \
+  %D%/built.sh
+TESTS += $(handwritten_TESTS)
+EXTRA_DIST += $(handwritten_TESTS)
+
+TESTS += %D%/goodbye.sh
+CLEANFILES += %D%/goodbye.sh
+%D%/goodbye.sh: %D%/hello.sh
+       $(MKDIR_P) %D%
+       rm -f $@ address@hidden
+       sed -e 's/hello/goodbye/' \
+           -e 's/Hello/Goodbye/' \
+          < $(srcdir)/%D%/hello.sh >address@hidden
+       chmod a-w,a+x address@hidden && mv -f address@hidden $@
+END
+
+cat > tests/hello.sh <<'END'
+#!/bin/sh
+set -x -e
+if test "$WE_ARE_CROSS_COMPILING" = yes; then
+  echo Skipping: cannot run in cross-compilation mode
+  exit 77
+else
+  hello || exit 1
+  test "`hello`" = 'Hello, World!' || exit 1
+fi
+END
+
+cat > tests/built.sh <<'END'
+#!/bin/sh
+set -x
+test -n "$PROGDIR" || exit 99
+test -f "$PROGDIR/hello$EXEEXT" || exit 1
+test -x "$PROGDIR/hello$EXEEXT" || exit 1
+test -f "$PROGDIR/goodbye$EXEEXT" || exit 1
+test -x "$PROGDIR/goodbye$EXEEXT" || exit 1
+END
+
+
+## Go.
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --add-missing --copy
+test ! -e compile
+test -f build-aux/compile
+
+./configure
+
+$MAKE
+
+VERBOSE=x $MAKE check >stdout || { cat stdout; exit 1; }
+cat stdout
+cat tests/built.log
+cat tests/hello.log
+cat tests/goodbye.log
+if cross_compiling; then
+  test ! -e lib/tests/safe-print-test.log
+  count_test_results total=3 pass=1 fail=0 xpass=0 xfail=0 skip=2 error=0
+else
+  count_test_results total=4 pass=4 fail=0 xpass=0 xfail=0 skip=0 error=0
+fi
+
+$MAKE distcheck
+
+:
diff --git a/t/preproc-errmsg.sh b/t/preproc-errmsg.sh
new file mode 100755
index 0000000..704562d
--- /dev/null
+++ b/t/preproc-errmsg.sh
@@ -0,0 +1,78 @@
+#! /bin/sh
+# Copyright (C) 2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Tests error messages when '%reldir%' and '%canon_reldir%' substitutions
+# (and their shorthands '%D%' and '%C%') are involved.
+
+. test-init.sh
+
+cat >> configure.ac <<'END'
+AC_PROG_CC
+AC_PROG_RANLIB
+AM_PROG_AR
+END
+
+: > ar-lib
+
+mkdir sub sub/sub2
+
+cat > Makefile.am <<'END'
+%canon_reldir%_x1_SOURCES = bar.c
+include sub/local.mk
+END
+
+cat > sub/local.mk <<'END'
+AUTOMAKE_OPTIONS = -Wno-extra-portability
+include %D%/sub2/more.mk
+noinst_LIBRARIES = %reldir%-one.a %D%-two.a
+%C%_x2_SOURCES = foo.c
+END
+
+cat > sub/sub2/more.mk <<'END'
+%C%_UNDEFINED +=
+END
+
+$ACLOCAL
+AUTOMAKE_fails
+
+cat > expected << 'END'
+sub/sub2/more.mk:1: sub_sub2_UNDEFINED must be set with '=' before using '+='
+Makefile.am:2: 'sub/local.mk' included from here
+sub/local.mk:2: 'sub/sub2/more.mk' included from here
+sub/local.mk:3: 'sub-one.a' is not a standard library name
+sub/local.mk:3: did you mean 'libsub-one.a'?
+Makefile.am:2: 'sub/local.mk' included from here
+sub/local.mk:3: 'sub-two.a' is not a standard library name
+sub/local.mk:3: did you mean 'libsub-two.a'?
+Makefile.am:2: 'sub/local.mk' included from here
+Makefile.am:1: variable 'x1_SOURCES' is defined but no program or
+Makefile.am:1: library has 'x1' as canonical name (possible typo)
+sub/local.mk:4: variable 'sub_x2_SOURCES' is defined but no program or
+sub/local.mk:4: library has 'sub_x2' as canonical name (possible typo)
+Makefile.am:2: 'sub/local.mk' included from here
+END
+
+# We need to break these substitutions into multiple sed invocations
+# to avoid spuriously triggering the 'sc_tests_logs_duplicate_prefixes'
+# maintainer check.
+sed -e '/warnings are treated as errors/d' stderr > t1
+sed -e 's/: warning:/:/' t1 > t2
+sed -e 's/: error:/:/' t2 > t3
+sed -e 's/  */ /g' t3 > obtained
+
+diff expected obtained
+
+:
diff --git a/t/warnopts.sh b/t/warnopts.sh
index 479c026..c8a3a6e 100755
--- a/t/warnopts.sh
+++ b/t/warnopts.sh
@@ -62,13 +62,8 @@ test $(grep -v 'warnings are treated as errors' stderr | wc 
-l) -eq 2
 rm -rf autom4te*.cache
 
 # If we add a global -Wnone, all warnings should disappear.
-cat >configure.ac <<END
-AC_INIT([warnopts], [1.0])
-AM_INIT_AUTOMAKE([-Wnone])
-AC_CONFIG_FILES([Makefile sub/Makefile])
-AC_PROG_CC
-AC_OUTPUT
-END
+sed 's/^AM_INIT_AUTOMAKE/AM_INIT_AUTOMAKE([-Wnone])/' configure.ac > t
+mv -f t configure.ac
 $ACLOCAL
 $AUTOMAKE
 


hooks/post-receive
-- 
GNU Automake



reply via email to

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