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.12.1


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, ng/master, updated. v1.12.1-383-g9c2a921
Date: Fri, 15 Jun 2012 14:05:30 +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=9c2a9213839e9dbe65c1fe620b50fa17ddca0b5b

The branch, ng/master has been updated
       via  9c2a9213839e9dbe65c1fe620b50fa17ddca0b5b (commit)
       via  065c94e04258022017199287d1dba8e78d20ca9e (commit)
       via  529d8ecb28e9c6fd7fdcde76e1ed373b15a67135 (commit)
       via  6d7399c92f7b16d0e14fc8165602a7b77e31d12b (commit)
       via  7b1697bd9b600cec62b8d52c56d80c60d39108a7 (commit)
       via  db16f500f9176e2da49c46302dbf6d44f2cce2fb (commit)
       via  401a2a82c602f24ed82ce95b2a48cf786198e42d (commit)
       via  4de5cb063668bce6690d7ff1f0af6e46616836a5 (commit)
       via  ed1dc9dddc2a3d5746ccf5722336ecc9dcf5ed29 (commit)
       via  9cb6dc889b95c90f443e7ec30b3541d33ca97ef3 (commit)
       via  911a6e9fc85ce67a867178bd7daf8ce8c461135c (commit)
       via  b72e9747b2493362fc43030c500d3f4e881a2c06 (commit)
       via  6f01c1e0c1629265b0f96142b7922ef074e2763a (commit)
       via  c5f70e79b590f5edfcdc200562170a8b87eabf91 (commit)
       via  61dfb4708e858ee557722b99a3122a0b28af6c59 (commit)
       via  a9bd08564cccaf3c602355a8e724812fb97b5b4e (commit)
       via  aca096de47774e8c0344eeda3cdca9fca9769edb (commit)
       via  825722a190bcc939abcf129cafd896b4b84d0ecd (commit)
       via  5f6e8015727560fc92d613bb7c531c21a03850ab (commit)
       via  1f009dac2de393da1010a02a678131fac40d496d (commit)
      from  67d6546ecf236c5ec1e20edde3c16c13b1726169 (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 9c2a9213839e9dbe65c1fe620b50fa17ddca0b5b
Author: Stefano Lattarini <address@hidden>
Date:   Sun Jun 10 17:34:10 2012 +0200

    [ng] subdirs: use static pattern rules to define *-recursive targets
    
    * lib/am/subdirs.am ($(RECURSIVE_TARGETS), $(RECURSIVE_CLEAN_TARGETS)):
    Rewrite as static pattern rules.  This will also simplify their recipes,
    avoid extra processing by the shell, and shave off a couple of forks.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 065c94e04258022017199287d1dba8e78d20ca9e
Author: Stefano Lattarini <address@hidden>
Date:   Fri Jun 8 21:37:40 2012 +0200

    [ng] subdirs: prefer "make -C dir" over "cd dir && make"
    
    * lib/am/subdirs.am ($(RECURSIVE_TARGETS), $(RECURSIVE_CLEAN_TARGETS)):
    Prefer "$(MAKE) -C $$dir ..." over "($(am__cd) $$dir && $(MAKE) ...".
    This allows us to remove a subshell invocation.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 529d8ecb28e9c6fd7fdcde76e1ed373b15a67135
Merge: 67d6546 6d7399c
Author: Stefano Lattarini <address@hidden>
Date:   Fri Jun 15 15:37:19 2012 +0200

    Merge branch 'master' into ng/master
    
    * master:
      automake: stop supporting "%KEY?iftrue:iffalse%" transforms
      am: stop using "%KEY:iffalse?iftrue%" transforms
      tests: minor reorganization of few tests
      fixup: adjust t/list-of-tests.mk for renamed/added tests
      subdirs: enhance coverage, tweak and rename few tests
      sync: update files from upstream with "make fetch"
      py-compile: consistently quote 'like this', not `like this'.
      docs: recursive make considered harmful
      docs: clean rules are not run in reverse order of build rules anymore
      silent: new $(AM_V_P) variable, tell if we're running in silent mode
      refactor: silent rules handling (a little)
      refactor: &define_verbose_var: accept a third optional argument
    
    + Extra non-trivial edits:
    
    * t/dir-named-obj-is-bad.sh, t/sourcefile-in-subdir.sh: Delete, it's how
    the old (and in Automake-NG obsolete and removed) tests 't/subdir3.sh'
    and 't/subdir7.sh' have been respectively renamed in mainline Automake.
    * t/silent6.sh: Don't disable the 'portability-recursive' warnings, they
    are not anymore used nor supported by Automake-NG.
    * automake.in: Adjust calls to subroutines '&Automake::Variable::define'
    and '&define_variable' to the different Automake-NG APIs and signature.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

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

Summary of changes:
 NEWS                                         |    6 +
 automake.in                                  |   55 ++++++----
 doc/automake-ng.texi                         |   55 +++++++---
 lib/am/data.am                               |    3 +-
 lib/am/libs.am                               |    6 +-
 lib/am/lisp.am                               |   12 ++-
 lib/am/ltlib.am                              |    9 ++-
 lib/am/progs.am                              |   16 ++-
 lib/am/python.am                             |    3 +-
 lib/am/scripts.am                            |    3 +-
 lib/am/subdirs.am                            |   14 +--
 lib/config.guess                             |    4 +-
 lib/gnupload                                 |   28 ++++--
 lib/py-compile                               |    2 +-
 lib/texinfo.tex                              |    6 +-
 t/{subdir6.sh => confh-subdir-clean.sh}      |    0
 t/{subdir4.sh => depcomp-implicit-auxdir.sh} |    0
 t/silent6.sh                                 |   78 ++++++++++----
 t/{srcsub.sh => src-acsubst.sh}              |   25 +++--
 t/srcsub2.sh                                 |   36 ------
 t/{subcond3.sh => subdir-ac-subst.sh}        |    4 +-
 t/{subdir5.sh => subdir-add-pr46.sh}         |    0
 t/{subdir8.sh => subdir-add2-pr46.sh}        |    0
 t/{subcond2.sh => subdir-am-cond.sh}         |    4 +-
 t/{cond2.sh => subdir-cond-err.sh}           |    0
 t/{subcond.sh => subdir-cond-gettext.sh}     |    6 +-
 t/subdir-order.sh                            |  147 ++++++++++++++++++++++++++
 t/{subdir2.sh => subdir-subsub.sh}           |    9 ++-
 t/{subdir9.sh => subdir-with-slash.sh}       |    2 +-
 29 files changed, 386 insertions(+), 147 deletions(-)
 rename t/{subdir6.sh => confh-subdir-clean.sh} (100%)
 rename t/{subdir4.sh => depcomp-implicit-auxdir.sh} (100%)
 rename t/{srcsub.sh => src-acsubst.sh} (58%)
 delete mode 100755 t/srcsub2.sh
 rename t/{subcond3.sh => subdir-ac-subst.sh} (97%)
 rename t/{subdir5.sh => subdir-add-pr46.sh} (100%)
 rename t/{subdir8.sh => subdir-add2-pr46.sh} (100%)
 rename t/{subcond2.sh => subdir-am-cond.sh} (97%)
 rename t/{cond2.sh => subdir-cond-err.sh} (100%)
 rename t/{subcond.sh => subdir-cond-gettext.sh} (94%)
 create mode 100644 t/subdir-order.sh
 rename t/{subdir2.sh => subdir-subsub.sh} (91%)
 rename t/{subdir9.sh => subdir-with-slash.sh} (97%)

diff --git a/NEWS b/NEWS
index 8a9d69d..33812db 100644
--- a/NEWS
+++ b/NEWS
@@ -109,6 +109,12 @@ New in 1.12.2:
     compiled object file that is in the same directory of a subdir
     object.  See automake bug#10697.
 
+* Silent rules support:
+
+  - A new predefined $(AM_V_P) make variable is provided; it expands
+    to a shell conditional that can be used in recipes to know whether
+    make is being run in silent or verbose mode.
+
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 New in 1.12.1:
diff --git a/automake.in b/automake.in
index c5912aa..d01abd1 100644
--- a/automake.in
+++ b/automake.in
@@ -1128,24 +1128,29 @@ sub verbose_private_var ($)
     return 'am__v_' . $name;
 }
 
-# define_verbose_var (NAME, VAL)
-# ------------------------------
-# For silent rules, setup VAR and dispatcher, to expand to VAL if silent.
-sub define_verbose_var ($$)
-{
-    my ($name, $val) = @_;
+# define_verbose_var (NAME, VAL-IF-SILENT, [VAL-IF-VERBOSE])
+# ----------------------------------------------------------
+# 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 ($$;$)
+{
+    my ($name, $silent_val, $verbose_val) = @_;
+    $verbose_val = '' unless defined $verbose_val;
     my $var = verbose_var ($name);
     my $pvar = verbose_private_var ($name);
     my $silent_var = $pvar . '_0';
+    my $verbose_var = $pvar . '_1';
     define_variable ($var, INTERNAL,
                      '$(' . $pvar . '_$(V))');
     define_variable ($pvar . '_', INTERNAL,
                      '$(' . $pvar . '_$(AM_DEFAULT_VERBOSITY))');
-    if (! vardef ($silent_var, TRUE))
-      {
-        Automake::Variable::define ($silent_var, VAR_AUTOMAKE, '', TRUE,
-                                    $val, '', INTERNAL);
-      }
+    Automake::Variable::define ($silent_var, VAR_AUTOMAKE, '', TRUE,
+                                $silent_val, '', INTERNAL)
+      if (! vardef ($silent_var, TRUE));
+    Automake::Variable::define ($verbose_var, VAR_AUTOMAKE, '', TRUE,
+                                $verbose_val, '', INTERNAL)
+      if (! vardef ($verbose_var, TRUE));
 }
 
 # Above should not be needed in the general automake code.
@@ -1180,7 +1185,6 @@ sub define_verbose_tagvar ($)
 {
     my ($name) = @_;
     define_verbose_var ($name, '@echo "  '. $name . ' ' x (8 - length ($name)) 
. '" $@;');
-    define_verbose_var ('at', '@');
 }
 
 # define_verbose_texinfo
@@ -1206,6 +1210,20 @@ sub define_verbose_libtool ()
     return verbose_flag ('lt');
 }
 
+sub handle_silent ()
+{
+    # Define "$(AM_V_P)", expanding to a shell conditional that can be
+    # used in make recipes to determine whether we are being run in
+    # silent mode or not.  The choice of the name derives from the LISP
+    # convention of appending the letter 'P' to denote a predicate (see
+    # also "the '-P' convention" in the Jargon File); we do so for lack
+    # of a better convention.
+    define_verbose_var ('P', 'false', ':');
+    # *Always* provide the user with '$(AM_V_GEN)', unconditionally.
+    define_verbose_tagvar ('GEN');
+    define_verbose_var ('at', '@');
+}
+
 
 ################################################################
 
@@ -1506,9 +1524,6 @@ sub handle_languages
          unless defined $done{$languages{'c'}};
        define_linker_variable ($languages{'c'});
       }
-
-    # Always provide the user with 'AM_V_GEN' for silent rules.
-    define_verbose_tagvar ('GEN');
 }
 
 
@@ -5992,8 +6007,6 @@ sub transform_token ($$$)
 #   - replaces %KEY% with $VAL,
 #   - enables/disables ?KEY? and ?!KEY?,
 #   - replaces %?KEY% with TRUE or FALSE.
-#   - replaces %KEY?IFTRUE%, %KEY:IFFALSE%, and %KEY?IFTRUE:IFFALSE% with
-#     IFTRUE / IFFALSE, as appropriate.
 sub transform ($$)
 {
   my ($token, $transform) = @_;
@@ -6005,11 +6018,6 @@ sub transform ($$)
     {
       return transform_token ($token, $transform, $1);
     }
-  # %KEY?IFTRUE%, %KEY:IFFALSE%, and %KEY?IFTRUE:IFFALSE%.
-  elsif ($token =~ /^%([\w\-]+)(?:\?([^?:%]+))?(?::([^?:%]+))?%$/)
-    {
-      return transform_token ($token, $transform, $1) ? ($2 || '') : ($3 || 
'');
-    }
   # %?KEY%.
   elsif ($token =~ /^%\?([\w\-]+)%$/)
     {
@@ -6090,7 +6098,6 @@ sub preprocess_file ($%)
 
   # Substitute Automake template tokens.
   s/(?: % \?? [\w\-]+ %
-      | % [\w\-]+ (?:\?[^?:%]+)? (?::[^?:%]+)? %
       | \? !? [\w\-]+ \?
     )/transform($&, \%transform)/gex;
   # transform() may have added some ##%-comments to strip.
@@ -7136,6 +7143,8 @@ sub generate_makefile ($$)
   handle_programs;
   handle_scripts;
 
+  handle_silent;
+
   # These must be run after all the sources are scanned.  They
   # use variables defined by &handle_libraries, &handle_ltlibraries,
   # or &handle_programs.
diff --git a/doc/automake-ng.texi b/doc/automake-ng.texi
index 558ad0a..d013210 100644
--- a/doc/automake-ng.texi
+++ b/doc/automake-ng.texi
@@ -4101,13 +4101,25 @@ For simple projects that distribute all files in the 
same directory
 it is enough to have a single @file{Makefile.am} that builds
 everything in place.
 
-In larger projects it is common to organize files in different
-directories, in a tree.  For instance one directory per program, per
-library or per module.  The traditional approach is to build these
-subdirectories recursively: each directory contains its @file{Makefile}
-(generated from @file{Makefile.am}), and when @command{make} is run
-from the top level directory it enters each subdirectory in turn to
-build its contents.
+In larger projects, it is common to organize files in different
+directories, in a tree.  For example, there could be a directory
+for the program's source, one for the testsuite, and one for the
+documentation; or, for very large projects, there could be one
+directory per program, per library or per module.
+
+The traditional approach is to build these subdirectories recursively,
+employing @emph{make recursion}: each directory contains its
+own @file{Makefile}, and when @command{make} is run from the top-level
+directory, it enters each subdirectory in turn, and invokes there a
+new @command{make} instance to build the directory's contents.
+
+Because this approach is very widespread, Automake offers built-in
+support for it.  However, it is worth nothing that the use of make
+recursion has its own serious issues and drawbacks, and that it's
+well possible to have packages with a multi directory layout that
+make little or no use of such recursion (examples of such packages
+are GNU Bison and GNU Automake itself); see also the @ref{Alternative}
+section below.
 
 @menu
 * Subdirectories::              Building subdirectories recursively
@@ -4121,7 +4133,7 @@ build its contents.
 
 @cindex @code{SUBDIRS}, explained
 
-In packages with subdirectories, the top level @file{Makefile.am} must
+In packages using make recursion, the top level @file{Makefile.am} must
 tell Automake which subdirectories are to be built.  This is done via
 the @code{SUBDIRS} variable.
 @vindex SUBDIRS
@@ -4175,8 +4187,6 @@ will be built.  It is customary to arrange test 
directories to be
 built after everything else since they are meant to test what has
 been constructed.
 
-All @code{clean} rules are run in reverse order of build rules.
-
 @node Conditional Subdirectories
 @section Conditional Subdirectories
 @cindex Subdirectories, building conditionally
@@ -4254,7 +4264,7 @@ does not know the possible values of these variables.  In 
this case
 @cindex @code{SUBDIRS} and @code{AM_CONDITIONAL}
 @cindex @code{AM_CONDITIONAL} and @code{SUBDIRS}
 
address@hidden Keep in sync with subcond2.sh
address@hidden Keep in sync with subdir-am-cond.sh
 
 @file{configure} should output the @file{Makefile} for each directory
 and define a condition into which @file{opt/} should be built.
@@ -4294,7 +4304,7 @@ automatically because it knows that @code{MAYBE_OPT} can 
contain
 @cindex @code{SUBDIRS} and @code{AC_SUBST}
 @cindex @code{AC_SUBST} and @code{SUBDIRS}
 
address@hidden Keep in sync with subcond3.sh
address@hidden Keep in sync with subdir-ac-subst.sh
 
 Another possibility is to define @code{MAYBE_OPT} from
 @file{./configure} using @code{AC_SUBST}:
@@ -4400,7 +4410,7 @@ variables it cannot ensure the corresponding directory 
exists.
 If you've ever read Peter Miller's excellent paper,
 @uref{http://miller.emu.id.au/pmiller/books/rmch/,
 Recursive Make Considered Harmful}, the preceding sections on the use of
-subdirectories will probably come as unwelcome advice.  For those who
+make recursion will probably come as unwelcome advice.  For those who
 haven't read the paper, Miller's main thesis is that recursive
 @command{make} invocations are both slow and error-prone.
 
@@ -4410,7 +4420,6 @@ believe.  This work is new and there are probably warts.
 to write a single @file{Makefile.am} for a complex multi-directory
 package.
 
-
 By default an installable file specified in a subdirectory will have its
 directory name stripped before installation.  For instance, in this
 example, the header file will be installed as
@@ -10743,15 +10752,31 @@ at @command{configure} time and at @command{make} 
time.
 @vindex @code{AM_V_GEN}
 @vindex @code{AM_V_at}
 @vindex @code{AM_DEFAULT_VERBOSITY}
-To extend the silent mode to your own rules, you have two choices:
+To extend the silent mode to your own rules, you have few choices:
 
 @itemize @bullet
+
 @item
 You can use the predefined variable @code{AM_V_GEN} as a prefix to
 commands that should output a status line in silent mode, and
 @code{AM_V_at} as a prefix to commands that should not output anything
 in silent mode.  When output is to be verbose, both of these variables
 will expand to the empty string.
+
address@hidden
+You can silence a recipe unconditionally with @code{@@}, and then use
+the predefined variable @code{AM_V_P} to know whether make is being run
+in silent or verbose mode, adjust the verbose information your recipe
+displays accordingly:
+
address@hidden
+generate-headers:
+        @set -e; \
+        ... [commands defining a shell variable '$headers'] ...; \
+        if $(AM_V_P); then set -x; else echo " GEN   [headers]"; fi; \
+        rm -f $$headers && generate-header --flags $$headers
address@hidden example
+
 @item
 You can add your own variables, so strings of your own choice are shown.
 The following snippet shows how you would define your own equivalent of
diff --git a/lib/am/data.am b/lib/am/data.am
index 2bed9ae..7417266 100644
--- a/lib/am/data.am
+++ b/lib/am/data.am
@@ -24,7 +24,8 @@ endif %?INSTALL%
 
 if %?INSTALL%
 am__installdirs += "$(DESTDIR)$(%NDIR%dir)"
-.PHONY install-%EXEC?exec:data%-am: install-%DIR%%PRIMARY%
+?EXEC?.PHONY install-exec-am: install-%DIR%%PRIMARY%
+?!EXEC?.PHONY install-data-am: install-%DIR%%PRIMARY%
 install-%DIR%%PRIMARY%: $(%DIR%_%PRIMARY%)
        @$(NORMAL_INSTALL)
 if %?BASE%
diff --git a/lib/am/libs.am b/lib/am/libs.am
index d1f63ae..f94a712 100644
--- a/lib/am/libs.am
+++ b/lib/am/libs.am
@@ -24,7 +24,8 @@ endif %?INSTALL%
 
 if %?INSTALL%
 am__installdirs += "$(DESTDIR)$(%NDIR%dir)"
-.PHONY install-%EXEC?exec:data%-am: install-%DIR%LIBRARIES
+?EXEC?.PHONY install-exec-am: install-%DIR%LIBRARIES
+?!EXEC?.PHONY install-data-am: install-%DIR%LIBRARIES
 install-%DIR%LIBRARIES: $(%DIR%_LIBRARIES)
        @$(NORMAL_INSTALL)
 if %?BASE%
@@ -69,7 +70,8 @@ endif !%?BASE%
        @list='$(%DIR%_LIBRARIES)'; test -n "$(%NDIR%dir)" || list=; \
        for p in $$list; do \
          if test -f $$p; then \
-           %BASE?$(am__strip_dir):f=$$p;% \
+?BASE?     $(am__strip_dir) \
+?!BASE?            f=$$p; \
 ## Must ranlib after installing because mod time changes.
 ## cd to target directory because AIX ranlib messes up with whitespace
 ## in the argument.
diff --git a/lib/am/lisp.am b/lib/am/lisp.am
index d5dfaac..66b8cbc 100644
--- a/lib/am/lisp.am
+++ b/lib/am/lisp.am
@@ -83,8 +83,13 @@ $(am__ELCFILES): elc-stamp
 
 if %?INSTALL%
 am__installdirs += "$(DESTDIR)$(%NDIR%dir)"
-%DIR%LISP_INSTALL = %BASE?$(INSTALL_DATA):$(install_sh_DATA)%
-.PHONY install-%EXEC?exec:data%-am: install-%DIR%LISP
+
+?BASE?%DIR%LISP_INSTALL = $(INSTALL_DATA)
+?!BASE?%DIR%LISP_INSTALL = $(install_sh_DATA)
+
+?EXEC?.PHONY install-exec-am: install-%DIR%LISP
+?!EXEC?.PHONY install-data-am: install-%DIR%LISP
+
 install-%DIR%LISP: $(%DIR%_LISP) $(ELCFILES)
        @$(NORMAL_INSTALL)
 ## Do not install anything if EMACS was not found.
@@ -100,7 +105,8 @@ install-%DIR%LISP: $(%DIR%_LISP) $(ELCFILES)
          for p in $$list; do \
 ## A lisp file can be in the source directory or the build directory.
            if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-           %BASE?$(am__strip_dir):$(am__vpath_adj)% \
+?BASE?     $(am__strip_dir) \
+?!BASE?            $(am__vpath_adj) \
            echo " $(%DIR%LISP_INSTALL) '$$d$$p' '$(DESTDIR)$(%NDIR%dir)/$$f'"; 
\
            $(%DIR%LISP_INSTALL) "$$d$$p" "$(DESTDIR)$(%NDIR%dir)/$$f" || exit 
$$?; \
 ## Only install .elc file if it exists.
diff --git a/lib/am/ltlib.am b/lib/am/ltlib.am
index 1ca26b5..af3a256 100644
--- a/lib/am/ltlib.am
+++ b/lib/am/ltlib.am
@@ -23,8 +23,12 @@ endif %?INSTALL%
 ## ------------ ##
 
 if %?INSTALL%
+
 am__installdirs += "$(DESTDIR)$(%NDIR%dir)"
-.PHONY install-%EXEC?exec:data%-am: install-%DIR%LTLIBRARIES
+
+?EXEC?.PHONY install-exec-am: install-%DIR%LTLIBRARIES
+?!EXEC?.PHONY install-data-am: install-%DIR%LTLIBRARIES
+
 install-%DIR%LTLIBRARIES: $(%DIR%_LTLIBRARIES)
        @$(NORMAL_INSTALL)
 if %?BASE%
@@ -89,7 +93,8 @@ uninstall-%DIR%LTLIBRARIES:
        @$(NORMAL_UNINSTALL)
        @list='$(%DIR%_LTLIBRARIES)'; test -n "$(%NDIR%dir)" || list=; \
        for p in $$list; do \
-         %BASE?$(am__strip_dir):f=$$p;% \
+?BASE?   $(am__strip_dir) \
+?!BASE?          f=$$p; \
 ?LIBTOOL?        echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) 
--mode=uninstall rm -f '$(DESTDIR)$(%NDIR%dir)/$$f'"; \
 ?LIBTOOL?        $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) 
--mode=uninstall rm -f "$(DESTDIR)$(%NDIR%dir)/$$f"; \
 ?!LIBTOOL?       echo " rm -f '$(DESTDIR)$(%NDIR%dir)/$$f'"; \
diff --git a/lib/am/progs.am b/lib/am/progs.am
index 2be8bca..104270c 100644
--- a/lib/am/progs.am
+++ b/lib/am/progs.am
@@ -20,7 +20,8 @@
 
 if %?INSTALL%
 am__installdirs += "$(DESTDIR)$(%NDIR%dir)"
-.PHONY install-%EXEC?exec:data%-am: install-%DIR%PROGRAMS
+?EXEC?.PHONY install-exec-am: install-%DIR%PROGRAMS
+?!EXEC?.PHONY install-data-am: install-%DIR%PROGRAMS
 install-%DIR%PROGRAMS: $(%DIR%_PROGRAMS)
        @$(NORMAL_INSTALL)
 ## Funny invocation because Makefile variable can be empty, leading to
@@ -34,13 +35,16 @@ install-%DIR%PROGRAMS: $(%DIR%_PROGRAMS)
 ## On Cygwin with libtool test won't see 'foo.exe' but instead 'foo'.
 ## So we check for both.
        sed 's/$(EXEEXT)$$//' | \
-       while read p p1; do if test -f $$p%LIBTOOL? || test -f $$p1%; \
-         then echo "$$p"; echo "$$p"; else :; fi; \
+       while read p p1; do if test -f $$p \
+?LIBTOOL?       || test -f $$p1 \
+         ; then echo "$$p"; echo "$$p"; else :; fi; \
        done | \
 ## We now have a list of sourcefile pairs, separated by newline.
 ## Turn that into "sourcefile source_base target_dir xformed_target_base",
 ## with newlines being turned into spaces in a second step.
-       sed -e 'p;s,.*/,,;n;h' -e '%BASE?s|.*|.|:s|[^/]*$$||; s|^$$|.|%' \
+       sed -e 'p;s,.*/,,;n;h' \
+?BASE?     -e 's|.*|.|' \
+?!BASE?            -e 's|[^/]*$$||; s|^$$|.|' \
            -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
        sed 'N;N;N;s,\n, ,g' | \
 ## The following awk script turns that into one line containing directories
@@ -86,7 +90,9 @@ uninstall-%DIR%PROGRAMS:
 ## but keep the directory part in the hold buffer, in order to
 ## reapply it again afterwards in the nobase case.  Append $(EXEEXT).
          sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-             -e 's/$$/$(EXEEXT)/'%BASE? : -e 'x;s,[^/]*$$,,;G;s,\n,,'%`; \
+             -e 's/$$/$(EXEEXT)/' \
+?!BASE?              -e 'x;s,[^/]*$$,,;G;s,\n,,' \
+       `; \
        test -n "$$list" || exit 0; \
        echo " ( cd '$(DESTDIR)$(%NDIR%dir)' && rm -f" $$files ")"; \
        cd "$(DESTDIR)$(%NDIR%dir)" && rm -f $$files
diff --git a/lib/am/python.am b/lib/am/python.am
index cf1d9b0..c2226cd 100644
--- a/lib/am/python.am
+++ b/lib/am/python.am
@@ -26,7 +26,8 @@ endif %?INSTALL%
 
 if %?INSTALL%
 am__installdirs += "$(DESTDIR)$(%NDIR%dir)"
-.PHONY install-%EXEC?exec:data%-am: install-%DIR%PYTHON
+?EXEC?.PHONY install-exec-am: install-%DIR%PYTHON
+?!EXEC?.PHONY install-data-am: install-%DIR%PYTHON
 install-%DIR%PYTHON: $(%DIR%_PYTHON)
        @$(NORMAL_INSTALL)
 if %?BASE%
diff --git a/lib/am/scripts.am b/lib/am/scripts.am
index 8bc8c0a..6ae3362 100644
--- a/lib/am/scripts.am
+++ b/lib/am/scripts.am
@@ -25,7 +25,8 @@ endif %?INSTALL%
 if %?INSTALL%
 ## if doesn't work properly for Automake variables yet.
 am__installdirs += "$(DESTDIR)$(%NDIR%dir)"
-.PHONY install-%EXEC?exec:data%-am: install-%DIR%SCRIPTS
+?EXEC?.PHONY install-exec-am: install-%DIR%SCRIPTS
+?!EXEC?.PHONY install-data-am: install-%DIR%SCRIPTS
 install-%DIR%SCRIPTS: $(%DIR%_SCRIPTS)
        @$(NORMAL_INSTALL)
 ## Funny invocation because Makefile variable can be empty, leading to
diff --git a/lib/am/subdirs.am b/lib/am/subdirs.am
index 9ee49ce..98a7010 100644
--- a/lib/am/subdirs.am
+++ b/lib/am/subdirs.am
@@ -31,7 +31,7 @@ AM_RECURSIVE_TARGETS += $(RECURSIVE_TARGETS:-recursive=) \
 #     (which will cause the Makefiles to be regenerated when you run 'make');
 # (2) otherwise, pass the desired values on the 'make' command line.
 
-$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
+$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): %-recursive:
 ## Using $failcom allows "-k" to keep its natural meaning when running a
 ## recursive rule.
        @fail= failcom='exit 1'; \
@@ -42,7 +42,6 @@ $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
          esac; \
        done; \
        dot_seen=no; \
-       target=`echo $@ | sed s/-recursive//`; \
 ## For distclean and maintainer-clean we make sure to use the full
 ## list of subdirectories.  We do this so that 'configure; make
 ## distclean' really is a no-op, even if SUBDIRS is conditional.
@@ -51,18 +50,17 @@ $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
          *) list='$(SUBDIRS)' ;; \
        esac; \
        for subdir in $$list; do \
-         echo "Making $$target in $$subdir"; \
+         echo "Making $* in $$subdir"; \
          if test "$$subdir" = "."; then \
            dot_seen=yes; \
-           local_target="$$target-am"; \
+           local_target=$*-am; \
          else \
-           local_target="$$target"; \
+           local_target=$*; \
          fi; \
-         ($(am__cd) $$subdir && $(MAKE) $$local_target) \
-         || eval $$failcom; \
+         $(MAKE) -C "$$subdir" $$local_target || eval $$failcom; \
        done; \
        if test "$$dot_seen" = "no"; then \
-         $(MAKE) "$$target-am" || exit 1; \
+         $(MAKE) $*-am || exit 1; \
        fi; test -z "$$fail"
 
 
diff --git a/lib/config.guess b/lib/config.guess
index d622a44..c0adba9 100755
--- a/lib/config.guess
+++ b/lib/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-06-10'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -1256,7 +1256,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:*:*)
diff --git a/lib/gnupload b/lib/gnupload
index b71ddfd..186d2ad 100755
--- a/lib/gnupload
+++ b/lib/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/lib/py-compile b/lib/py-compile
index 87de337..d712811 100755
--- a/lib/py-compile
+++ b/lib/py-compile
@@ -36,7 +36,7 @@ me=py-compile
 usage_error ()
 {
   echo "$me: $*" >&2
-  echo "Try \`$me --help' for more information." >&2
+  echo "Try '$me --help' for more information." >&2
   exit 1
 }
 
diff --git a/lib/texinfo.tex b/lib/texinfo.tex
index c2901b9..a5a7b2b 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{2012-05-16.16}
+\def\texinfoversion{2012-06-05.14}
 %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -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
@@ -6150,7 +6150,7 @@ end
 % Same as \defaultparindent.
 \newdimen\tocindent \tocindent = 15pt
 
-% Now for the actual typesetting. In all of these, #1 is the text and #2 is the
+% Now for the actual typesetting. In all these, #1 is the text and #2 is the
 % page number.
 %
 % If the toc has to be broken over pages, we want it to be at chapters
diff --git a/t/subdir6.sh b/t/confh-subdir-clean.sh
similarity index 100%
rename from t/subdir6.sh
rename to t/confh-subdir-clean.sh
diff --git a/t/subdir4.sh b/t/depcomp-implicit-auxdir.sh
similarity index 100%
rename from t/subdir4.sh
rename to t/depcomp-implicit-auxdir.sh
diff --git a/t/silent6.sh b/t/silent6.sh
index a493e3e..0fc3665 100755
--- a/t/silent6.sh
+++ b/t/silent6.sh
@@ -19,15 +19,33 @@
 . ./defs || Exit 1
 
 cat >>configure.ac <<'EOF'
+AC_CONFIG_FILES([sub/Makefile])
 AC_OUTPUT
 EOF
 
-cat > Makefile.am <<'EOF'
+# We delegate all the work to the subdir makefile.  This is done
+# to ensure any command-line setting of $(V) gets correctly passed
+# down to recursive make invocations.
+echo SUBDIRS = sub > Makefile.am
+
+mkdir sub
+cat > sub/Makefile.am <<'EOF'
 my_verbose = $(my_verbose_$(V))
 my_verbose_ = $(my_verbose_$(AM_DEFAULT_VERBOSITY))
-my_verbose_0 = @echo GEN $@;
+my_verbose_0 = @echo " XGEN    $@";
+
+all-local: foo gen-headers
 
-all-local: foo
+list = 0 1 2
+.PHONY: gen-headers
+gen-headers:
+       @headers=`for i in $(list); do echo sub/$$i.h; done`; \
+       if $(AM_V_P); then set -x; else \
+         echo " GEN     [headers]"; \
+       fi; \
+       rm -f $$headers || exit 1; \
+## Only fake header generation.
+       : generate-header --flags $$headers
 
 foo: foo.in
        $(my_verbose)cp $(srcdir)/foo.in $@
@@ -35,36 +53,48 @@ EXTRA_DIST = foo.in
 CLEANFILES = foo
 EOF
 
-: >foo.in
+: > sub/foo.in
 
 $ACLOCAL
 $AUTOMAKE --add-missing
 $AUTOCONF
 
-./configure --enable-silent-rules
-$MAKE >stdout || { cat stdout; Exit 1; }
-cat stdout
-grep '^ *GEN foo *$' stdout
-grep 'cp ' stdout && Exit 1
+do_check ()
+{
+  case ${1-} in
+    --silent) silent=:;;
+    --verbose) silent=false;;
+    *) fatal_ "do_check(): incorrect usage";;
+  esac
+  shift
+  $MAKE clean
+  $MAKE ${1+"$@"} >output 2>&1 || { cat output; Exit 1; }
+  sed 's/^/  /' output
+  if $silent; then
+    $FGREP 'cp ' output && Exit 1
+    $FGREP 'generate-header' output && Exit 1
+    $FGREP 'rm -f' output && Exit 1
+    grep '[012]\.h' output && Exit 1
+    grep '^ XGEN    foo$' output
+    grep '^ GEN     \[headers\]$' output
+  else
+    $FGREP 'GEN ' output && Exit 1
+    $FGREP 'cp ./foo.in foo' output
+    $FGREP "rm -f sub/0.h sub/1.h sub/2.h" output
+    $FGREP "generate-header --flags sub/0.h sub/1.h sub/2.h" output
+  fi
+}
 
-$MAKE clean
-$MAKE V=1 >stdout || { cat stdout; Exit 1; }
-cat stdout
-grep 'GEN ' stdout && Exit 1
-grep 'cp \.*/foo\.in foo' stdout
+./configure --enable-silent-rules
+do_check --silent
+do_check --verbose V=1
 
 $MAKE distclean
 
 ./configure --disable-silent-rules
-$MAKE >stdout || { cat stdout; Exit 1; }
-cat stdout
-grep 'GEN ' stdout && Exit 1
-grep 'cp \.*/foo\.in foo' stdout
-
-$MAKE clean
-$MAKE V=0 >stdout || { cat stdout; Exit 1; }
-cat stdout
-grep '^ *GEN foo *$' stdout
-grep 'cp ' stdout && Exit 1
+do_check --verbose
+do_check --silent V=0
+
+$MAKE distclean
 
 :
diff --git a/t/srcsub.sh b/t/src-acsubst.sh
similarity index 58%
rename from t/srcsub.sh
rename to t/src-acsubst.sh
index 978a105..97d536c 100755
--- a/t/srcsub.sh
+++ b/t/src-acsubst.sh
@@ -14,20 +14,31 @@
 # 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 to make sure config sub in _SOURCES fails.
+# Test to make sure config substitution in _SOURCES fails.
 
 . ./defs || Exit 1
 
-cat >> configure.ac << 'END'
-AC_PROG_CC
-END
+echo AC_PROG_CC >> configure.ac
 
 cat > Makefile.am << 'END'
-bin_PROGRAMS = x
+bin_PROGRAMS = x y
 x_SOURCES = x.c @FOO@
-EXTRA_x_SOURCES = y.c
+bar = @FOO@
+foo = $(bar)
+EXTRA_y_SOURCES = $(foo) y.c
 END
 
 $ACLOCAL
 AUTOMAKE_fails
-grep 'Makefile.am:2:.*x_SOURCES.*substitution' stderr
+
+cat > exp-err << 'END'
+Makefile.am:2: error: 'x_SOURCES' includes configure substitution '@FOO@';
+Makefile.am:2: configure substitutions are not allowed in _SOURCES variables
+Makefile.am:3: error: 'bar' includes configure substitution '@FOO@'
+Makefile.am:3: and is referred to from 'EXTRA_y_SOURCES';
+Makefile.am:3: configure substitutions are not allowed in _SOURCES variables
+END
+
+diff exp-err stderr
+
+:
diff --git a/t/srcsub2.sh b/t/srcsub2.sh
deleted file mode 100755
index 2d6da97..0000000
--- a/t/srcsub2.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 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 to make sure config sub in _SOURCES fails.
-
-. ./defs || Exit 1
-
-cat >> configure.ac << 'END'
-AC_PROG_CC
-END
-
-cat > Makefile.am << 'END'
-bin_PROGRAMS = x
-bar = @FOO@
-foo = $(bar)
-x_SOURCES = x.c $(foo)
-EXTRA_x_SOURCES = y.c
-END
-
-$ACLOCAL
-AUTOMAKE_fails
-grep 'Makefile.am:2:.*bar.*substitution' stderr
-grep 'Makefile.am:2:.*x_SOURCES' stderr
diff --git a/t/subcond3.sh b/t/subdir-ac-subst.sh
similarity index 97%
rename from t/subcond3.sh
rename to t/subdir-ac-subst.sh
index e84aa41..0ef238b 100755
--- a/t/subcond3.sh
+++ b/t/subdir-ac-subst.sh
@@ -16,7 +16,7 @@
 
 # The for conditional SUBDIRS.
 # SUBDIRS + AC_SUBST setup from the manual.
-# Lots of lines here are duplicated in subcond2.test.
+# Lots of lines here are duplicated in subcond-am-cond.test.
 
 . ./defs || Exit 1
 
@@ -88,3 +88,5 @@ $MAKE distcheck
 test -f sanity1
 DISTCHECK_CONFIGURE_FLAGS=want_opt=yes $MAKE distcheck
 test -f sanity2
+
+:
diff --git a/t/subdir5.sh b/t/subdir-add-pr46.sh
similarity index 100%
rename from t/subdir5.sh
rename to t/subdir-add-pr46.sh
diff --git a/t/subdir8.sh b/t/subdir-add2-pr46.sh
similarity index 100%
rename from t/subdir8.sh
rename to t/subdir-add2-pr46.sh
diff --git a/t/subcond2.sh b/t/subdir-am-cond.sh
similarity index 97%
rename from t/subcond2.sh
rename to t/subdir-am-cond.sh
index 0e9f451..7f5e34a 100755
--- a/t/subcond2.sh
+++ b/t/subdir-am-cond.sh
@@ -16,7 +16,7 @@
 
 # The for conditional SUBDIRS.
 # SUBDIRS + AM_CONDITIONAL setup from the manual.
-# Lots of lines here are duplicated in subcond3.test.
+# Lots of lines here are duplicated in subdir-ac-subst.test.
 
 . ./defs || Exit 1
 
@@ -87,3 +87,5 @@ $MAKE distcheck
 test -f sanity1
 DISTCHECK_CONFIGURE_FLAGS=want_opt=yes $MAKE distcheck
 test -f sanity2
+
+:
diff --git a/t/cond2.sh b/t/subdir-cond-err.sh
similarity index 100%
rename from t/cond2.sh
rename to t/subdir-cond-err.sh
diff --git a/t/subcond.sh b/t/subdir-cond-gettext.sh
similarity index 94%
rename from t/subcond.sh
rename to t/subdir-cond-gettext.sh
index c09e5ad..459f639 100755
--- a/t/subcond.sh
+++ b/t/subdir-cond-gettext.sh
@@ -21,9 +21,9 @@ required=gettext
 
 cat >> configure.ac << 'END'
 AM_GNU_GETTEXT
-AM_CONDITIONAL(MAUDE, true)
+AM_CONDITIONAL([MAUDE], [true])
 ALL_LINGUAS=
-AC_SUBST(ALL_LINGUAS)
+AC_SUBST([ALL_LINGUAS])
 END
 
 mkdir po intl
@@ -40,3 +40,5 @@ END
 $ACLOCAL
 # Gettext wants config.guess etc.
 $AUTOMAKE --add-missing
+
+:
diff --git a/t/subdir-order.sh b/t/subdir-order.sh
new file mode 100644
index 0000000..0321c25
--- /dev/null
+++ b/t/subdir-order.sh
@@ -0,0 +1,147 @@
+#! /bin/sh
+# Copyright (C) 2012 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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/>.
+
+# The $(SUDBIRS) entries are processed in the order they are specified.
+
+. ./defs || Exit 1
+
+cat >> configure.ac << 'END'
+AC_CONFIG_FILES([
+  sub0/Makefile
+  sub1/Makefile
+  sub2/Makefile
+  sub3/Makefile
+  sub3/a/Makefile
+  sub3/b/Makefile
+])
+AC_OUTPUT
+END
+
+mkdir sub0 sub1 sub2 sub3 sub3/a sub3/b
+
+cat > Makefile.am << 'END'
+SUBDIRS = sub2 sub1 sub3 sub0
+all-local:
+       test -f sub0/run
+       test -f sub1/run
+       test -f sub2/run
+       test -f sub3/run
+       test -f sub3/a/run
+       test -f sub3/b/run
+       test ! -f run
+       : > run
+
+CLEANFILES = \
+  run \
+  sub0/run \
+  sub1/run \
+  sub2/run \
+  sub3/run \
+  sub3/a/run \
+  sub3/b/run
+END
+
+cat > sub0/Makefile.am << 'END'
+all-local:
+       test ! -f $(top_builddir)/run
+       test -f $(top_builddir)/sub1/run
+       test -f $(top_builddir)/sub3/run
+       test -f $(top_builddir)/sub3/a/run
+       test -f $(top_builddir)/sub3/b/run
+       test ! -f run
+       : > run
+END
+
+cat > sub1/Makefile.am << 'END'
+all-local:
+       test ! -f $(top_builddir)/run
+       test ! -f $(top_builddir)/sub0/run
+       test -f $(top_builddir)/sub2/run
+       test ! -f $(top_builddir)/sub3/run
+       test ! -f $(top_builddir)/sub3/a/run
+       test ! -f $(top_builddir)/sub3/b/run
+       test ! -f run
+       : > run
+END
+
+
+cat > sub2/Makefile.am << 'END'
+all-local:
+       test ! -f $(top_builddir)/run
+       test ! -f $(top_builddir)/sub0/run
+       test ! -f $(top_builddir)/sub1/run
+       test ! -f $(top_builddir)/sub3/run
+       test ! -f $(top_builddir)/sub3/a/run
+       test ! -f $(top_builddir)/sub3/b/run
+       test ! -f run
+       : > run
+END
+
+cat > sub3/Makefile.am << 'END'
+SUBDIRS = b . a
+all-local:
+       test ! -f $(top_builddir)/run
+       test ! -f $(top_builddir)/sub0/run
+       test -f $(top_builddir)/sub1/run
+       test ! -f $(top_builddir)/sub3/a/run
+       test -f $(top_builddir)/sub3/b/run
+       test ! -f run
+       : > run
+END
+
+cat > sub3/a/Makefile.am << 'END'
+all-local:
+       test ! -f $(top_builddir)/run
+       test ! -f $(top_builddir)/sub0/run
+       test -f $(top_builddir)/sub1/run
+       test -f $(top_builddir)/sub3/b/run
+       test -f $(top_builddir)/sub3/run
+       test ! -f run
+       : > run
+END
+
+cat > sub3/b/Makefile.am << 'END'
+all-local:
+       test ! -f $(top_builddir)/run
+       test ! -f $(top_builddir)/sub0/run
+       test -f $(top_builddir)/sub1/run
+       test ! -f $(top_builddir)/sub3/b/run
+       test ! -f $(top_builddir)/sub3/run
+       test ! -f run
+       : > run
+END
+
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -c --add-missing
+
+./configure
+
+for j in '' -j12; do
+  $MAKE $j
+  test -f run
+  test -f sub0/run
+  test -f sub1/run
+  test -f sub3/run
+  test -f sub3/a/run
+  test -f sub3/b/run
+  $MAKE clean
+  find . | grep 'run$' && Exit 1
+  : # For shells with busted 'set -e'
+done
+
+:
diff --git a/t/subdir2.sh b/t/subdir-subsub.sh
similarity index 91%
rename from t/subdir2.sh
rename to t/subdir-subsub.sh
index 31e3c61..15f2f93 100755
--- a/t/subdir2.sh
+++ b/t/subdir-subsub.sh
@@ -43,10 +43,17 @@ SUBDIRS = two
 END
 
 cat > one/two/Makefile.am << 'END'
-pkgdata_DATA =
+pkgdata_DATA = data.txt
+data.txt:
+       echo dummy >$@
 END
 
 $ACLOCAL
+$AUTOCONF
 $AUTOMAKE --gnu
 
+./configure
+$MAKE
+test -f one/two/data.txt
+
 :
diff --git a/t/subdir9.sh b/t/subdir-with-slash.sh
similarity index 97%
rename from t/subdir9.sh
rename to t/subdir-with-slash.sh
index 116e1c3..eb9f4fe 100755
--- a/t/subdir9.sh
+++ b/t/subdir-with-slash.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/>.
 
-# Test SUDBIRS with /.
+# Test SUDBIRS with '/' in them.
 
 . ./defs || Exit 1
 


hooks/post-receive
-- 
GNU Automake



reply via email to

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