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. ng-0.5a


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, ng/master, updated. ng-0.5a-136-gc98ed25
Date: Mon, 19 Mar 2012 12:36:43 +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=c98ed25fae15d4c8dcbd61cb0b07c1bef79145ea

The branch, ng/master has been updated
       via  c98ed25fae15d4c8dcbd61cb0b07c1bef79145ea (commit)
       via  a5062ef4d7b65807bc0dea406e2e7807d83c6a3b (commit)
       via  db1138c5e74d4f5b4713bf29127cb1430c5fc32e (commit)
       via  45ffbe9f8746224daf11a3980d69b10fc0520384 (commit)
       via  368f1c4c295e3cc4c442af986a1cbb0daa16e3ad (commit)
       via  6743961843f3d810500aabe20cfe2cb0e9ae5839 (commit)
       via  a75a1a52679feed85a181dcf514e32e17117157b (commit)
       via  295c5f26d0646c6f2308fea50899dd961ef87abd (commit)
       via  819005ae2c86c3ef4b77bea7176bb6d8b67ebd64 (commit)
       via  463b6405380ac3ff266f980d30cfeeb55eb796ee (commit)
       via  d1afb320a6bae3b94bfe53c7f6e32bc998bc28cf (commit)
       via  895e13693b56efe2aa2f42bbb673a8ce80819317 (commit)
       via  6a6bc51eebe4c702b1ae26acca79c3b865fd8981 (commit)
       via  28ed42d905141d2ab4f8431b0599c906fe7c6408 (commit)
       via  52ce42bbaf56e5eae76ea8f4fe1484c23c0fa10d (commit)
       via  fdde53d3a416c0f709f9f5b95c121fc5b13072fd (commit)
       via  327358d84a5b4a098c8483bce4e87fb27ee9a9d3 (commit)
       via  e9927ea32d8fe5056123b021ff771cb906b1b3df (commit)
       via  650dba0873f6c894461ce29cb26a1b3104287d24 (commit)
       via  b153660787dd7dea409ad969c29393c105e13bf2 (commit)
       via  370e5775c20872a8f2b5c1e520b31dc1544b9cd8 (commit)
       via  ddac05053058efd64d67609d30bae20445ae584b (commit)
      from  38799f27b49b8a8390e0afbdeff86ebfdb5425d7 (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 c98ed25fae15d4c8dcbd61cb0b07c1bef79145ea
Merge: 38799f2 a5062ef
Author: Stefano Lattarini <address@hidden>
Date:   Mon Mar 19 12:58:56 2012 +0100

    Merge branch 'master' into ng/master
    
    * master:
      tests: fix spurious failures caused by uses of 'configure.in'
      install-mans: avoid spurious failure with NetBSD make
      install: don't create empty dirs when an empty 'foo_PRIMARY' is used
      aclocal: remove a couple of useless imports
      aclocal: create local directory where to install m4 files
      python: avoid failures due to $(am__py_compile) being undefined
      python: expose automake bug#10995
      tests: one more use of 'unindent' function
      tests: remove redundant 'set -e' calls
      tests: fix spurious failure with older m4
      tests: avoid spurious failures in get-sysconf.test
      scripts: bump the depcomp scriptversion
      sync: some auxiliary files synced from upstream
      coverage: an empty foo_PRIMARY should create directory $(foodir)
      coverage: make sure am__py_compile is defined when needed
      coverage: expose automake bug#10997
      coverage: expose automake bug#10975
      getopt: relax version requirement for perl

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

Summary of changes:
 HACKING                                            |    3 +
 NEWS                                               |   41 +++++++
 THANKS                                             |    4 +
 aclocal.in                                         |   36 +++++-
 lib/am/data.am                                     |   11 ++-
 lib/am/java.am                                     |    3 +-
 lib/am/libs.am                                     |    9 +-
 lib/am/lisp.am                                     |    8 +-
 lib/am/ltlib.am                                    |    9 +-
 lib/am/mans.am                                     |   37 +++++--
 lib/am/progs.am                                    |    5 +-
 lib/am/python.am                                   |   12 ++-
 lib/am/scripts.am                                  |    5 +-
 lib/am/texinfos.am                                 |   25 +++-
 lib/depcomp                                        |    2 +-
 lib/gnupload                                       |    2 +-
 lib/texinfo.tex                                    |  111 +++++++++++-------
 tests/Makefile.am                                  |    2 +
 tests/aclocal-install-fail.test                    |   65 ++++++++++
 tests/aclocal-install-mkdir.test                   |   72 ++++++++++++
 ...alloc.test => aclocal-no-install-no-mkdir.test} |   21 +++-
 tests/aclocal-verbose-install.test                 |   54 +++++++++
 tests/cond41.test                                  |    3 +-
 tests/{vars-assign.test => dist-pr109765.test}     |   44 +++----
 tests/get-sysconf.test                             |   13 ++-
 tests/installdir.test                              |   37 ++++++-
 tests/{condhook2.test => instdir-cond.test}        |   31 +++---
 ...included-parent-dir.test => instdir-cond2.test} |   42 ++++---
 tests/instdir-no-empty.test                        |  123 ++++++++++++++++++++
 tests/java3.test                                   |    5 +-
 tests/lex-clean-cxx.test                           |    2 -
 tests/lex-clean.test                               |    2 -
 tests/lex-depend-cxx.test                          |    2 -
 tests/lex-depend.test                              |    2 -
 tests/lex-line.test                                |    2 -
 tests/lex-nodist.test                              |    2 -
 tests/lex-pr204.test                               |    2 -
 tests/list-of-tests.mk                             |    9 ++
 tests/{python3.test => python-pr10995.test}        |   41 ++++---
 tests/python.test                                  |   26 ++++-
 tests/silent-lex.test                              |    2 -
 tests/silent-yacc-headers.test                     |    2 -
 tests/silent-yacc.test                             |    2 -
 tests/vala-mix2.test                               |    2 -
 tests/yacc-auxdir.test                             |    2 -
 tests/yacc-bison-skeleton-cxx.test                 |    2 -
 tests/yacc-bison-skeleton.test                     |    2 -
 tests/yacc-clean-cxx.test                          |    2 -
 tests/yacc-cxx.test                                |    2 -
 tests/yacc-d-cxx.test                              |    6 +-
 tests/yacc-deleted-headers.test                    |    2 -
 tests/yacc-depend.test                             |    2 -
 tests/yacc-depend2.test                            |    2 -
 tests/yacc-line.test                               |    2 -
 tests/yacc-mix-c-cxx.test                          |    2 -
 tests/yacc-weirdnames.test                         |    2 -
 56 files changed, 742 insertions(+), 219 deletions(-)
 create mode 100755 tests/aclocal-install-fail.test
 create mode 100755 tests/aclocal-install-mkdir.test
 copy tests/{help-dmalloc.test => aclocal-no-install-no-mkdir.test} (66%)
 create mode 100755 tests/aclocal-verbose-install.test
 copy tests/{vars-assign.test => dist-pr109765.test} (54%)
 copy tests/{condhook2.test => instdir-cond.test} (64%)
 mode change 100755 => 100644
 copy tests/{dist-included-parent-dir.test => instdir-cond2.test} (54%)
 mode change 100755 => 100644
 create mode 100755 tests/instdir-no-empty.test
 copy tests/{python3.test => python-pr10995.test} (54%)

diff --git a/HACKING b/HACKING
index 6b98952..2e74d9a 100644
--- a/HACKING
+++ b/HACKING
@@ -75,6 +75,9 @@
   "important" command it runs.  The printed commands should be preceded
   by a single space.
 
+* Ensure install rules do not create any installation directory where
+  nothing is to be actually installed.  See automake bug#11030.
+
 ================================================================
 = Editing automake.in and aclocal.in
 
diff --git a/NEWS b/NEWS
index 1b2e190..7f6b923 100644
--- a/NEWS
+++ b/NEWS
@@ -375,6 +375,26 @@ New in 1.11.2:
     `AM_UPDATE_INFO_DIR' to the value "no".
 
 Bugs fixed in 1.11.2:
+  - For programs and libraries, automake now detects EXTRA_foo_DEPENDENCIES
+    and adds them to the normal list of dependencies, but without
+    overwriting the foo_DEPENDENCIES variable, which is normally computed
+    by automake.
+
+  - The 'ar-lib' script now ignores the "s" (symbol index) and "S" (no
+    symbol index) modifiers as well as the "s" action, as the symbol index
+    is created unconditionally by Microsoft lib.  Also, the "q" (quick)
+    action is now a synonym for "r" (replace).  Also, the script has been
+    ignoring the "v" (verbose) modifier already since Automake 1.11.3.
+
+  - When the 'compile' script is used to wrap MSVC, it now accepts an
+    optional space between the -I, -L and -l options and their respective
+    arguments, for better POSIX compliance.
+
+  - If "aclocal --install" is used, and the first directory specified with
+    '-I' is non-existent, aclocal will now create it before trying to copy
+    files in it.
+
+Bugs fixed in 1.11.0a:
 
 * Bugs introduced by 1.11.2:
 
@@ -409,6 +429,27 @@ Bugs fixed in 1.11.2:
   - The order of Yacc and Lex flags is fixed to be consistent with other
     languages: $(AM_YFLAGS) comes before $(YFLAGS), and $(AM_LFLAGS) before
     $(LFLAGS), so that the user variables override the developer variables.
+  - An empty declaration of a "foo_PRIMARY" don't cause anymore the
+    generated install rules to create an empty $(foodir) directory;
+    for example, if Makefile.am contains something like:
+
+      pkglibexec_SCRIPTS =
+      if FALSE
+      pkglibexec_SCRIPTS += bar.sh
+      endif
+
+    the $(pkglibexec) directory will not be created upon "make install".
+
+  - It is now possible for a foo_SOURCES variable to hold Vala sources
+    together with C header files, as well as with sources and headers for
+    other supported languages (e.g., C++).  Previously, only mixing C and
+    Vala sources was supported.
+
+  - Vala support now works better in VPATH setups.
+
+  - The "deleted header file problem" for *.am files is avoided by stub
+    rules.  This allows `make' to trigger a rerun of `automake' also if
+    some previously needed `.am' file has been removed.
 
   - "make distcheck" now correctly complains also when "make uninstall"
     leaves one and only one file installed in $(prefix).
diff --git a/THANKS b/THANKS
index c9aaa80..158d919 100644
--- a/THANKS
+++ b/THANKS
@@ -64,6 +64,7 @@ Christina Gratorp     address@hidden
 Claudio Fontana                address@hidden
 Clifford Wolf          address@hidden
 Dagobert Michelsen     address@hidden
+Daiki Ueno             address@hidden
 Dalibor Topic          address@hidden
 danbp                  address@hidden
 Daniel Jacobowitz      address@hidden
@@ -76,6 +77,7 @@ Dave Hart             address@hidden
 Dave Korn              address@hidden
 Dave Morrison          address@hidden
 David A. Swierczek     address@hidden
+David A. Wheeler       address@hidden
 David Byron            address@hidden
 Davyd Madeley          address@hidden
 David Pashley          address@hidden
@@ -152,6 +154,7 @@ Janos Farkas                address@hidden
 Jared Davis            address@hidden
 Jason Duell            address@hidden
 Jason Molenda          address@hidden
+Javier Jardón         address@hidden
 Jeff Bailey            address@hidden
 Jeff A. Daily          address@hidden
 Jeff Garzik            address@hidden
@@ -346,6 +349,7 @@ Stefano Lattarini   address@hidden
 Stepan Kasal           address@hidden
 Steve M. Robbins       address@hidden
 Steve Goetze           address@hidden
+Steven Drake           address@hidden
 Steven G. Johnson      address@hidden
 Sven Verdoolaege       address@hidden
 Tamara L. Dahlgren     address@hidden
diff --git a/aclocal.in b/aclocal.in
index 243c2b5..85528af 100644
--- a/aclocal.in
+++ b/aclocal.in
@@ -41,8 +41,7 @@ use Automake::ChannelDefs;
 use Automake::XFile;
 use Automake::FileUtils;
 use File::Basename;
-use File::stat;
-use Cwd;
+use File::Path ();
 
 # Some globals.
 
@@ -179,6 +178,17 @@ sub unlink_tmp
 $SIG{'INT'} = $SIG{'TERM'} = $SIG{'QUIT'} = $SIG{'HUP'} = 'unlink_tmp';
 END { unlink_tmp }
 
+sub xmkdir_p ($)
+{
+  my $dir = shift;
+  local $@ = undef;
+  return
+    if -d $dir or eval { File::Path::mkpath $dir };
+  chomp $@;
+  $@ =~ s/\s+at\s.*\bline\s\d+.*$//;
+  fatal "could not create directory '$dir': $@";
+}
+
 # Check macros in acinclude.m4.  If one is not used, warn.
 sub check_acinclude ()
 {
@@ -207,12 +217,15 @@ sub reset_maps ()
   undef &search;
 }
 
-# install_file ($SRC, $DEST)
+# install_file ($SRC, $DESTDIR)
 sub install_file ($$)
 {
-  my ($src, $dest) = @_;
+  my ($src, $destdir) = @_;
+  my $dest = $destdir . "/" . basename ($src);
   my $diff_dest;
 
+  verb "installing $src to $dest";
+
   if ($force_output
       || !exists $file_contents{$dest}
       || $file_contents{$src} ne $file_contents{$dest})
@@ -265,6 +278,7 @@ sub install_file ($$)
        }
       elsif (!$dry_run)
        {
+          xmkdir_p ($destdir);
          xsystem ('cp', $src, $dest);
        }
     }
@@ -304,6 +318,7 @@ sub list_compare (address@hidden@)
 # --------------------------
 # Scan all M4 files installed in @DIRS for new macro definitions.
 # Register each file as of type $TYPE (one of the FT_* constants).
+my $first_user_m4dir = 1;
 sub scan_m4_dirs ($@)
 {
   my ($type, @dirlist) = @_;
@@ -312,6 +327,15 @@ sub scan_m4_dirs ($@)
     {
       if (! opendir (DIR, $m4dir))
        {
+         if ($install && $type == FT_USER && $first_user_m4dir)
+            {
+              # We will try to create this directory later, so don't
+              # complain if it doesn't exist.
+              # TODO: maybe we should avoid complaining only if errno
+              # is ENONENT?
+              $first_user_m4dir = 0;
+              next;
+            }
          fatal "couldn't open directory '$m4dir': $!";
        }
 
@@ -770,9 +794,7 @@ sub write_aclocal ($@)
              my $dest;
              for my $ifile (@{$file_includes{$file}}, $file)
                {
-                 $dest = "$user_includes[0]/" . basename $ifile;
-                 verb "installing $ifile to $dest";
-                 install_file ($ifile, $dest);
+                 install_file ($ifile, $user_includes[0]);
                }
              $installed = 1;
            }
diff --git a/lib/am/data.am b/lib/am/data.am
index 65ee638..98a38a8 100644
--- a/lib/am/data.am
+++ b/lib/am/data.am
@@ -27,11 +27,14 @@ am__installdirs += "$(DESTDIR)$(%NDIR%dir)"
 .PHONY install-%EXEC?exec:data%-am: install-%DIR%%PRIMARY%
 install-%DIR%%PRIMARY%: $(%DIR%_%PRIMARY%)
        @$(NORMAL_INSTALL)
-       test -z "$(%NDIR%dir)" || $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)"
 if %?BASE%
 ## Funny invocation because Makefile variable can be empty, leading to
 ## a syntax error in sh.
        @list='$(%DIR%_%PRIMARY%)'; test -n "$(%NDIR%dir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)'"; \
+         $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)' || exit 1; \
+       fi; \
        for p in $$list; do \
 ## A file can be in the source directory or the build directory.
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -46,13 +49,17 @@ if %?BASE%
        done
 else !%?BASE%
        @list='$(%DIR%_%PRIMARY%)'; test -n "$(%NDIR%dir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)" || exit 1; \
+       fi; \
        $(am__nobase_list) | while read dir files; do \
          xfiles=; for file in $$files; do \
            if test -f "$$file"; then xfiles="$$xfiles $$file"; \
            else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
          test -z "$$xfiles" || { \
            test "x$$dir" = x. || { \
-             echo "$(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
+             echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
              $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)/$$dir"; }; \
            echo " $(INSTALL_%ONE_PRIMARY%) $$xfiles 
'$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
            $(INSTALL_%ONE_PRIMARY%) $$xfiles "$(DESTDIR)$(%NDIR%dir)/$$dir" || 
exit $$?; }; \
diff --git a/lib/am/java.am b/lib/am/java.am
index 692824e..6c163b5 100644
--- a/lib/am/java.am
+++ b/lib/am/java.am
@@ -47,11 +47,12 @@ am__installdirs += "$(DESTDIR)$(%NDIR%dir)"
 ?!EXEC?.PHONY install-data-am: install-%DIR%JAVA
 install-%DIR%JAVA: class%NDIR%.stamp
        @$(NORMAL_INSTALL)
-       test -z "$(%NDIR%dir)" || $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)"
 ## A single .java file can be compiled into multiple .class files.  So
 ## we just install all the .class files that got built into this
 ## directory.  This is not optimal, but will have to do for now.
        @test -n "$(%DIR%_JAVA)" && test -n "$(%NDIR%dir)" || exit 0; \
+       echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)'"; \
+       $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)"; \
        set x *.class; shift; test "$$1" != "*.class" || exit 0; \
        echo " $(INSTALL_DATA)" "$$@" "'$(DESTDIR)$(%NDIR%dir)/$$p'"; \
        $(INSTALL_DATA) "$$@" "$(DESTDIR)$(%NDIR%dir)"
diff --git a/lib/am/libs.am b/lib/am/libs.am
index d66473f..4006bd0 100644
--- a/lib/am/libs.am
+++ b/lib/am/libs.am
@@ -27,7 +27,6 @@ am__installdirs += "$(DESTDIR)$(%NDIR%dir)"
 .PHONY install-%EXEC?exec:data%-am: install-%DIR%LIBRARIES
 install-%DIR%LIBRARIES: $(%DIR%_LIBRARIES)
        @$(NORMAL_INSTALL)
-       test -z "$(%NDIR%dir)" || $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)"
 if %?BASE%
 ## Funny invocation because Makefile variable can be empty, leading to
 ## a syntax error in sh.
@@ -38,18 +37,24 @@ if %?BASE%
          else :; fi; \
        done; \
        test -z "$$list2" || { \
+         echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)" || exit 1; \
          echo " $(INSTALL_DATA) $$list2 '$(DESTDIR)$(%NDIR%dir)'"; \
          $(INSTALL_DATA) $$list2 "$(DESTDIR)$(%NDIR%dir)" || exit $$?; }
 else !%?BASE%
 ## Funny invocation because Makefile variable can be empty, leading to
 ## a syntax error in sh.
        @list='$(%DIR%_LIBRARIES)'; test -n "$(%NDIR%dir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)'"; \
+         $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)' || exit 1; \
+       fi; \
        $(am__nobase_list) | while read dir files; do \
          xfiles=; for p in $$files; do \
            if test -f "$$p"; then xfiles="$$xfiles $$p"; else :; fi; done; \
          test -z "$$xfiles" || { \
            test "x$$dir" = x. || { \
-             echo "$(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
+             echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
              $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)/$$dir"; }; \
            echo " $(INSTALL_DATA) $$xfiles '$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
            $(INSTALL_DATA) $$xfiles "$(DESTDIR)$(%NDIR%dir)/$$dir" || exit 
$$?; }; \
diff --git a/lib/am/lisp.am b/lib/am/lisp.am
index fa2058d..72bcf9a 100644
--- a/lib/am/lisp.am
+++ b/lib/am/lisp.am
@@ -89,11 +89,15 @@ install-%DIR%LISP: $(%DIR%_LISP) $(ELCFILES)
        @$(NORMAL_INSTALL)
 ## Do not install anything if EMACS was not found.
        @if test "$(EMACS)" != no && test -n "$(%NDIR%dir)"; then \
-         $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)"; \
 ?!BASE?          $(am__vpath_adj_setup) \
 ## Funny invocation because Makefile variable can be empty, leading to
 ## a syntax error in sh.
-         list='$(%DIR%_LISP)'; for p in $$list; do \
+         list='$(%DIR%_LISP)'; \
+         if test -n "$$list"; then \
+           echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)'"; \
+           $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)" || exit 1; \
+         fi; \
+         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)% \
diff --git a/lib/am/ltlib.am b/lib/am/ltlib.am
index ee20a90..10ce7ce 100644
--- a/lib/am/ltlib.am
+++ b/lib/am/ltlib.am
@@ -27,7 +27,6 @@ am__installdirs += "$(DESTDIR)$(%NDIR%dir)"
 .PHONY install-%EXEC?exec:data%-am: install-%DIR%LTLIBRARIES
 install-%DIR%LTLIBRARIES: $(%DIR%_LTLIBRARIES)
        @$(NORMAL_INSTALL)
-       test -z "$(%NDIR%dir)" || $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)"
 if %?BASE%
 ## Funny invocation because Makefile variable can be empty, leading to
 ## a syntax error in sh.
@@ -38,6 +37,8 @@ if %?BASE%
          else :; fi; \
        done; \
        test -z "$$list2" || { \
+         echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)'"; \
+         $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)' || exit 1; \
 ## Note that we explicitly set the libtool mode.  This avoids any lossage
 ## if the program doesn't have a name that libtool expects.
 ## Use INSTALL and not INSTALL_DATA because libtool knows the right
@@ -49,6 +50,10 @@ if %?BASE%
        }
 else !%?BASE%
        @list='$(%DIR%_LTLIBRARIES)'; test -n "$(%NDIR%dir)"  || list=; \
+       if test -n "$$list"; then \
+           echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)'"; \
+           $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)" || exit 1; \
+       fi; \
        for p in $$list; do if test -f "$$p"; then echo "$$p $$p"; else :; fi; 
done | \
        sed '/ .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
        $(AWK) 'BEGIN { cur = "." } \
@@ -58,7 +63,7 @@ else !%?BASE%
        while read dir files; do \
          test -z "$$files" || { \
            test "x$$dir" = x. || { \
-             echo "$(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
+             echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
              $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)/$$dir"; }; \
 ## Note that we explicitly set the libtool mode.  This avoids any lossage
 ## if the program doesn't have a name that libtool expects.
diff --git a/lib/am/mans.am b/lib/am/mans.am
index 5c563b3..bfc71dc 100644
--- a/lib/am/mans.am
+++ b/lib/am/mans.am
@@ -30,16 +30,24 @@ man%SECTION%dir = $(mandir)/man%SECTION%
 .PHONY install-man: install-man%SECTION%
 install-man%SECTION%: %DEPS%
        @$(NORMAL_INSTALL)
-       test -z "$(man%SECTION%dir)" || $(MKDIR_P) 
"$(DESTDIR)$(man%SECTION%dir)"
 if %?NOTRANS_MANS%
 ## Handle MANS with notrans_ prefix
-       @list='%NOTRANS_SECT_LIST%'; test -n "$(man%SECTION%dir)" || exit 0; \
-       { for i in $$list; do echo "$$i"; done;  \
+       @list1='%NOTRANS_SECT_LIST%'; \
+?!HAVE_NOTRANS?        list2=''; \
+?HAVE_NOTRANS? list2='%NOTRANS_LIST%'; \
+       test -n "$(man%SECTION%dir)" \
+         && test -n "`echo $$list1$$list2`" \
+         || exit 0; \
+       echo " $(MKDIR_P) '$(DESTDIR)$(man%SECTION%dir)'"; \
+       $(MKDIR_P) "$(DESTDIR)$(man%SECTION%dir)" || exit 1; \
+       { for i in $$list1; do echo "$$i"; done;  \
 ## Extract all items from notrans_man_MANS that should go in this section.
 ## This must be done dynamically to support conditionals.
-?HAVE_NOTRANS? l2='%NOTRANS_LIST%'; for i in $$l2; do echo "$$i"; done | \
+       if test -n "$$list2"; then \
+         for i in $$list2; do echo "$$i"; done \
 ## Accept for 'man1' files like 'foo.1c' but not 'sub.1/foo.2' or 'foo-2.1.4'.
-?HAVE_NOTRANS?   sed -n '/\.%SECTION%[a-z]*$$/p'; \
+           | sed -n '/\.%SECTION%[a-z]*$$/p'; \
+       fi; \
 ## Extract basename of manpage, change the extension if needed.
        } | while read p; do \
 ## Find the file.
@@ -65,13 +73,22 @@ if %?NOTRANS_MANS%
 endif %?NOTRANS_MANS%
 if %?TRANS_MANS%
 ## Handle MANS without notrans_ prefix
-       @list='%TRANS_SECT_LIST%'; test -n "$(man%SECTION%dir)" || exit 0; \
-       { for i in $$list; do echo "$$i"; done; \
+       @list1='%TRANS_SECT_LIST%'; \
+?!HAVE_TRANS?  list2=''; \
+?HAVE_TRANS?   list2='%TRANS_LIST%'; \
+       test -n "$(man%SECTION%dir)" \
+         && test -n "`echo $$list1$$list2`" \
+         || exit 0; \
+       echo " $(MKDIR_P) '$(DESTDIR)$(man%SECTION%dir)'"; \
+       $(MKDIR_P) "$(DESTDIR)$(man%SECTION%dir)" || exit 1; \
+       { for i in $$list1; do echo "$$i"; done;  \
 ## Extract all items from notrans_man_MANS that should go in this section.
 ## This must be done dynamically to support conditionals.
-?HAVE_TRANS?   l2='%TRANS_LIST%'; for i in $$l2; do echo "$$i"; done | \
-## Accept for 'man1' files like 'foo.1c' but not 'sub.1/foo.2' or 'foo-2.1.4'.
-?HAVE_TRANS?     sed -n '/\.%SECTION%[a-z]*$$/p'; \
+       if test -n "$$list2"; then \
+         for i in $$list2; do echo "$$i"; done \
+## Accept for 'man1' files like `foo.1c' but not 'sub.1/foo.2' or 'foo-2.1.4'.
+           | sed -n '/\.%SECTION%[a-z]*$$/p'; \
+       fi; \
 ## Extract basename of manpage, change the extension if needed.
        } | while read p; do \
 ## Find the file.
diff --git a/lib/am/progs.am b/lib/am/progs.am
index 0e2cc02..2be8bca 100644
--- a/lib/am/progs.am
+++ b/lib/am/progs.am
@@ -23,10 +23,13 @@ am__installdirs += "$(DESTDIR)$(%NDIR%dir)"
 .PHONY install-%EXEC?exec:data%-am: install-%DIR%PROGRAMS
 install-%DIR%PROGRAMS: $(%DIR%_PROGRAMS)
        @$(NORMAL_INSTALL)
-       test -z "$(%NDIR%dir)" || $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)"
 ## Funny invocation because Makefile variable can be empty, leading to
 ## a syntax error in sh.
        @list='$(%DIR%_PROGRAMS)'; test -n "$(%NDIR%dir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)" || exit 1; \
+       fi; \
        for p in $$list; do echo "$$p $$p"; done | \
 ## On Cygwin with libtool test won't see 'foo.exe' but instead 'foo'.
 ## So we check for both.
diff --git a/lib/am/python.am b/lib/am/python.am
index 9d23275..cab6129 100644
--- a/lib/am/python.am
+++ b/lib/am/python.am
@@ -18,19 +18,23 @@ if %?INSTALL%
 include inst-vars.am
 endif %?INSTALL%
 
+?FIRST?am__py_compile = PYTHON=$(PYTHON) $(SHELL) $(py_compile)
+
 ## ------------ ##
 ## Installing.  ##
 ## ------------ ##
 
 if %?INSTALL%
-?FIRST?am__py_compile = PYTHON=$(PYTHON) $(SHELL) $(py_compile)
 am__installdirs += "$(DESTDIR)$(%NDIR%dir)"
 .PHONY install-%EXEC?exec:data%-am: install-%DIR%PYTHON
 install-%DIR%PYTHON: $(%DIR%_PYTHON)
        @$(NORMAL_INSTALL)
-       test -z "$(%NDIR%dir)" || $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)"
 if %?BASE%
        @list='$(%DIR%_PYTHON)'; dlist=; list2=; test -n "$(%NDIR%dir)" || 
list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)" || exit 1; \
+       fi; \
        for p in $$list; do \
 ## A file can be in the source directory or the build directory.
          if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \
@@ -57,6 +61,10 @@ if %?BASE%
        else :; fi
 else !%?BASE%
        @list='$(%DIR%_PYTHON)'; test -n "$(%NDIR%dir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)" || exit 1; \
+       fi; \
        $(am__nobase_list) | while read dir files; do \
          xfiles=; for p in $$files; do \
 ## A file can be in the source directory or the build directory.
diff --git a/lib/am/scripts.am b/lib/am/scripts.am
index 29e3e78..64e093e 100644
--- a/lib/am/scripts.am
+++ b/lib/am/scripts.am
@@ -28,10 +28,13 @@ am__installdirs += "$(DESTDIR)$(%NDIR%dir)"
 .PHONY install-%EXEC?exec:data%-am: install-%DIR%SCRIPTS
 install-%DIR%SCRIPTS: $(%DIR%_SCRIPTS)
        @$(NORMAL_INSTALL)
-       test -z "$(%NDIR%dir)" || $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)"
 ## Funny invocation because Makefile variable can be empty, leading to
 ## a syntax error in sh.
        @list='$(%DIR%_SCRIPTS)'; test -n "$(%NDIR%dir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)" || exit 1; \
+       fi; \
 ?!BASE?        $(am__nobase_strip_setup); \
        for p in $$list; do \
 ## A file can be in the source directory or the build directory.
diff --git a/lib/am/texinfos.am b/lib/am/texinfos.am
index fbc7a05..8e75ef3 100644
--- a/lib/am/texinfos.am
+++ b/lib/am/texinfos.am
@@ -142,8 +142,11 @@ include inst-vars.am
 
 install-dvi-am: $(DVIS)
        @$(NORMAL_INSTALL)
-       test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)"
        @list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -155,8 +158,11 @@ install-dvi-am: $(DVIS)
 
 install-html-am: $(HTMLS)
        @$(NORMAL_INSTALL)
-       test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"
        @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \
          $(am__strip_dir) \
@@ -183,9 +189,12 @@ install-html-am: $(HTMLS)
 
 install-info-am: $(INFO_DEPS)
        @$(NORMAL_INSTALL)
-       test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)"
        @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
        list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \
+       fi; \
        for file in $$list; do \
 ## Strip possible $(srcdir) prefix.
          case $$file in \
@@ -241,8 +250,11 @@ install-info-am: $(INFO_DEPS)
 
 install-pdf-am: $(PDFS)
        @$(NORMAL_INSTALL)
-       test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)"
        @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -253,8 +265,11 @@ install-pdf-am: $(PDFS)
 
 install-ps-am: $(PSS)
        @$(NORMAL_INSTALL)
-       test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)"
        @list='$(PSS)'; test -n "$(psdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
diff --git a/lib/depcomp b/lib/depcomp
index 793b902..81e64f6 100755
--- a/lib/depcomp
+++ b/lib/depcomp
@@ -1,7 +1,7 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2012-02-03.15; # UTC
+scriptversion=2012-03-12.15; # UTC
 
 # Copyright (C) 1999-2012 Free Software Foundation, Inc.
 
diff --git a/lib/gnupload b/lib/gnupload
index 51e17c6..b71ddfd 100755
--- a/lib/gnupload
+++ b/lib/gnupload
@@ -3,7 +3,7 @@
 
 scriptversion=2012-01-15.15; # UTC
 
-# Copyright (C) 2004-2010, 2012 Free Software Foundation, Inc.
+# Copyright (C) 2004-2012 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/lib/texinfo.tex b/lib/texinfo.tex
index dcdeb9b..85b68e7 100644
--- a/lib/texinfo.tex
+++ b/lib/texinfo.tex
@@ -3,11 +3,11 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2012-01-19.16}
+\def\texinfoversion{2012-03-11.15}
 %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+% 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
 %
 % This texinfo.tex file is free software: you can redistribute it and/or
 % modify it under the terms of the GNU General Public License as
@@ -887,7 +887,7 @@ where each line of input produces a line of output.}
 \def\popthisfilestack{\errthisfilestackempty}
 \def\errthisfilestackempty{\errmessage{Internal error:
   the stack of filenames is empty.}}
-
+%
 \def\thisfile{}
 
 % @center line
@@ -895,36 +895,46 @@ where each line of input produces a line of output.}
 %
 \parseargdef\center{%
   \ifhmode
-    \let\next\centerH
+    \let\centersub\centerH
   \else
-    \let\next\centerV
+    \let\centersub\centerV
   \fi
-  \next{\hfil \ignorespaces#1\unskip \hfil}%
+  \centersub{\hfil \ignorespaces#1\unskip \hfil}%
+  \let\centersub\relax % don't let the definition persist, just in case
 }
-\def\centerH#1{%
-  {%
-    \hfil\break
-    \advance\hsize by -\leftskip
-    \advance\hsize by -\rightskip
-    \line{#1}%
-    \break
-  }%
+\def\centerH#1{{%
+  \hfil\break
+  \advance\hsize by -\leftskip
+  \advance\hsize by -\rightskip
+  \line{#1}%
+  \break
+}}
+%
+\newcount\centerpenalty
+\def\centerV#1{%
+  % The idea here is the same as in \startdefun, \cartouche, etc.: if
+  % @center is the first thing after a section heading, we need to wipe
+  % out the negative parskip inserted by \sectionheading, but still
+  % prevent a page break here.
+  \centerpenalty = \lastpenalty
+  \ifnum\centerpenalty>10000 \vskip\parskip \fi
+  \ifnum\centerpenalty>9999 \penalty\centerpenalty \fi
+  \line{\kern\leftskip #1\kern\rightskip}%
 }
-\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}}
 
 % @sp n   outputs n lines of vertical space
-
+%
 \parseargdef\sp{\vskip #1\baselineskip}
 
 % @comment ...line which is ignored...
 % @c is the same as @comment
 % @ignore ... @end ignore  is another way to write a comment
-
+%
 \def\comment{\begingroup \catcode`\^^M=\other%
 address@hidden \catcode`\{=\other \catcode`\}=\other%
 \commentxxx}
 {\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
-
+%
 \let\c=\comment
 
 % @paragraphindent NCHARS
@@ -1173,8 +1183,8 @@ output) for that.)}
   %
   % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
   \def\dopdfimage#1#2#3{%
-    \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
-    \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
+    \def\pdfimagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
+    \def\pdfimageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
     %
     % pdftex (and the PDF format) support .pdf, .png, .jpg (among
     % others).  Let's try in that order, PDF first since if
@@ -1212,8 +1222,8 @@ output) for that.)}
     \else
       \immediate\pdfximage
     \fi
-      \ifdim \wd0 >0pt width \imagewidth \fi
-      \ifdim \wd2 >0pt height \imageheight \fi
+      \ifdim \wd0 >0pt width \pdfimagewidth \fi
+      \ifdim \wd2 >0pt height \pdfimageheight \fi
       \ifnum\pdftexversion<13
          #1.\pdfimgext
        \else
@@ -1362,7 +1372,13 @@ output) for that.)}
       \fi
     \fi
     \nextsp}
-  \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
+  \def\getfilename#1{%
+    \filenamelength=0
+    % If we don't expand the argument now, \skipspaces will get
+    % snagged on things like "@value{foo}".
+    \edef\temp{#1}%
+    \expandafter\skipspaces\temp|\relax
+  }
   \ifnum\pdftexversion < 14
     \let \startlink \pdfannotlink
   \else
@@ -4732,10 +4748,9 @@ end
 %
 % ..., ready, GO:
 %
-\def\safewhatsit#1{%
-\ifhmode
+\def\safewhatsit#1{\ifhmode
   #1%
-\else
+ \else
   % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
   \whatsitskip = \lastskip
   \edef\lastskipmacro{\the\lastskip}%
@@ -4759,7 +4774,6 @@ end
     % to re-insert the same penalty (values >10000 are used for various
     % signals); since we just inserted a non-discardable item, any
     % following glue (such as a \parskip) would be a breakpoint.  For example:
-    %
     %   @deffn deffn-whatever
     %   @vindex index-whatever
     %   Description.
@@ -4772,8 +4786,7 @@ end
     % (the whatsit from the \write), so we must insert a \nobreak.
     \nobreak\vskip\whatsitskip
   \fi
-\fi
-}
+\fi}
 
 % The index entry written in the file actually looks like
 %  \entry {sortstring}{page}{topic}
@@ -5876,14 +5889,15 @@ end
   %
   % We'll almost certainly start a paragraph next, so don't let that
   % glue accumulate.  (Not a breakpoint because it's preceded by a
-  % discardable item.)
+  % discardable item.)  However, when a paragraph is not started next
+  % (\startdefun, \cartouche, \center, etc.), this needs to be wiped out
+  % or the negative glue will cause weirdly wrong output, typically
+  % obscuring the section heading with something else.
   \vskip-\parskip
   %
-  % This is purely so the last item on the list is a known \penalty >
-  % 10000.  This is so \startdefun can avoid allowing breakpoints after
-  % section headings.  Otherwise, it would insert a valid breakpoint between:
-  %   @section sec-whatever
-  %   @deffn def-whatever
+  % This is so the last item on the main vertical list is a known
+  % \penalty > 10000, so \startdefun, etc., can recognize the situation
+  % and do the needful.
   \penalty 10001
 }
 
@@ -6303,7 +6317,7 @@ end
   % If this cartouche directly follows a sectioning command, we need the
   % \parskip glue (backspaced over by default) or the cartouche can
   % collide with the section heading.
-  \ifnum\lastpenalty>10000 \vskip\parskip \fi
+  \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi
   %
   \vbox\bgroup
       \baselineskip=0pt\parskip=0pt\lineskip=0pt
@@ -7845,6 +7859,7 @@ end
   \ifpdf
     {\indexnofonts
      \turnoffactive
+     \makevalueexpandable
      % This expands tokens, so do it after making catcode changes, so _
      % etc. don't get their TeX definitions.
      \getfilename{#4}%
@@ -8316,7 +8331,7 @@ end
   it from ftp://tug.org/tex/epsf.tex.}
 %
 \def\image#1{%
-  \ifx\epsfbox\thisiundefined
+  \ifx\epsfbox\thisisundefined
     \ifwarnednoepsf \else
       \errhelp = \noepsfhelp
       \errmessage{epsf.tex not found, images will be ignored}%
@@ -8340,6 +8355,13 @@ end
   % If the image is by itself, center it.
   \ifvmode
     \imagevmodetrue
+  \else \ifx\centersub\centerV
+    % for @center @image, we need a vbox so we can have our vertical space
+    \imagevmodetrue
+    \vbox\bgroup % vbox has better behavior than vtop herev
+  \fi\fi
+  %
+  \ifimagevmode
     \nobreak\medskip
     % Usually we'll have text after the image which will insert
     % \parskip glue, so insert it here too to equalize the space
@@ -8349,9 +8371,13 @@ end
   \fi
   %
   % Leave vertical mode so that indentation from an enclosing
-  % environment such as @quotation is respected.  On the other hand, if
-  % it's at the top level, we don't want the normal paragraph indentation.
-  \noindent
+  %  environment such as @quotation is respected.
+  % However, if we're at the top level, we don't want the
+  %  normal paragraph indentation.
+  % On the other hand, if we are in the case of @center @image, we don't
+  %  want to start a paragraph, which will create a hsize-width box and
+  %  eradicate the centering.
+  \ifx\centersub\centerV\else \noindent \fi
   %
   % Output the image.
   \ifpdf
@@ -8363,7 +8389,10 @@ end
     \epsfbox{#1.eps}%
   \fi
   %
-  \ifimagevmode \medskip \fi  % space after the standalone image
+  \ifimagevmode
+    \medskip  % space after a standalone image
+  \fi  
+  \ifx\centersub\centerV \egroup \fi
 \endgroup}
 
 
diff --git a/tests/Makefile.am b/tests/Makefile.am
index e5ae5d2..33ef172 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -40,6 +40,8 @@ cond17.test \
 gcj6.test \
 interp3.test \
 override-conditional-2.test \
+dist-pr109765.test \
+instdir-cond2.test \
 java-nobase.test \
 objext-pr10128.test \
 parallel-tests-many.test \
diff --git a/tests/aclocal-install-fail.test b/tests/aclocal-install-fail.test
new file mode 100755
index 0000000..c458239
--- /dev/null
+++ b/tests/aclocal-install-fail.test
@@ -0,0 +1,65 @@
+#! /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/>.
+
+# Check that "aclocal --install" fails when it should.
+# FIXME: this is a good candidate for a conversion to TAP.
+
+am_create_testdir=empty
+required=ro-dir
+. ./defs || Exit 1
+
+set -e
+
+cat > configure.ac <<END
+AC_INIT([$me], [1.0])
+MY_MACRO
+END
+
+mkdir sys-acdir
+cat > sys-acdir/my-defs.m4 <<END
+AC_DEFUN([MY_MACRO], [:])
+END
+
+ACLOCAL="$ACLOCAL -Wnone --system-acdir=sys-acdir"
+
+: > a-regular-file
+mkdir unwritable-dir
+chmod a-w unwritable-dir
+
+$ACLOCAL -I a-regular-file --install 2>stderr \
+  && { cat stderr >&2; Exit 1; }
+cat stderr >&2
+$EGREP '(mkdir:|directory ).*a-regular-file' stderr
+test ! -f aclocal.m4
+
+$ACLOCAL --install -I unwritable-dir/sub 2>stderr \
+  && { cat stderr >&2; Exit 1; }
+cat stderr >&2
+$EGREP '(mkdir:|directory ).*unwritable-dir/sub' stderr
+test ! -f aclocal.m4
+
+$ACLOCAL -I unwritable-dir --install 2>stderr \
+  && { cat stderr >&2; Exit 1; }
+cat stderr >&2
+$EGREP '(cp:|copy ).*unwritable-dir' stderr
+test ! -f aclocal.m4
+
+# Sanity check.
+mkdir m4
+$ACLOCAL -I m4 --install && test -f aclocal.m4 \
+  || fatal_ "aclocal failed also when expected to succeed"
+
+:
diff --git a/tests/aclocal-install-mkdir.test b/tests/aclocal-install-mkdir.test
new file mode 100755
index 0000000..71d09af
--- /dev/null
+++ b/tests/aclocal-install-mkdir.test
@@ -0,0 +1,72 @@
+#! /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/>.
+
+# Check that "aclocal --install" creates the local m4 directory if
+# necessary.
+# FIXME: this is a good candidate for a conversion to TAP.
+
+am_create_testdir=empty
+. ./defs || Exit 1
+
+set -e
+
+cat > configure.ac <<END
+AC_INIT([$me], [1.0])
+MY_MACRO
+END
+
+mkdir sys-acdir
+cat > sys-acdir/my-defs.m4 <<END
+AC_DEFUN([MY_MACRO], [:])
+END
+
+ACLOCAL="$ACLOCAL --system-acdir=sys-acdir"
+
+$ACLOCAL -I foo --install
+test -f foo/my-defs.m4
+
+$ACLOCAL --install -I "`pwd`/bar"
+test -f bar/my-defs.m4
+
+$ACLOCAL --install -I baz/sub/sub2
+test -f baz/sub/sub2/my-defs.m4
+
+# What should happen:
+#  * zardoz1 should be created, and required m4 files copied into there.
+#  * zardoz2 shouldn't be preferred to quux, even if the former exists
+#    while the latter does not.
+mkdir zardoz2
+$ACLOCAL --install -I zardoz1 -I zardoz2
+test -d zardoz1
+grep MY_MACRO zardoz1/my-defs.m4
+ls zardoz2 | grep . && Exit 1
+
+# Directories in ACLOCAL_PATH should never be created if they don't
+# exist.
+ACLOCAL_PATH="`pwd`/none:`pwd`/none2" $ACLOCAL --install && Exit 1
+test ! -d none
+test ! -d none2
+ACLOCAL_PATH="`pwd`/none:`pwd`/none2" $ACLOCAL --install -I x
+test -f x/my-defs.m4
+test ! -d none
+test ! -d none2
+
+# It's better if aclocal doesn't create the first include dir on failure.
+$ACLOCAL --install -I none -I none2 && Exit 1
+test ! -d none
+test ! -d none2
+
+:
diff --git a/tests/help-dmalloc.test b/tests/aclocal-no-install-no-mkdir.test
similarity index 66%
copy from tests/help-dmalloc.test
copy to tests/aclocal-no-install-no-mkdir.test
index a9ab69f..728e70a 100755
--- a/tests/help-dmalloc.test
+++ b/tests/aclocal-no-install-no-mkdir.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
+# 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
@@ -14,19 +14,26 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Make sure that our macro 'AM_WITH_DMALLOC' adds proper text to
-# the configure help screen.
+# Check that aclocal does not create a non-existent local m4 directory
+# if the '--install' option is not given.
 
+am_create_testdir=empty
 . ./defs || Exit 1
 
+set -e
+
 cat > configure.ac <<END
 AC_INIT([$me], [1.0])
-AM_WITH_DMALLOC
+MY_MACRO
 END
 
-$ACLOCAL
-$AUTOCONF
+mkdir sys-acdir
+cat > sys-acdir/my-defs.m4 <<END
+AC_DEFUN([MY_MACRO], [:])
+END
 
-grep_configure_help --with-dmalloc ' use dmalloc.*http://www\.dmalloc\.com'
+$ACLOCAL -I foo --system-acdir=sys-acdir && Exit 1
+test ! -d foo
+test ! -r foo
 
 :
diff --git a/tests/aclocal-verbose-install.test 
b/tests/aclocal-verbose-install.test
new file mode 100755
index 0000000..d854719
--- /dev/null
+++ b/tests/aclocal-verbose-install.test
@@ -0,0 +1,54 @@
+#! /bin/sh
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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/>.
+
+# Check verbose messages by `aclocal --install'.
+
+am_create_testdir=empty
+. ./defs || Exit 1
+
+set -e
+
+cat > configure.ac <<END
+AC_INIT([$me], [1.0])
+MY_MACRO_BAR
+MY_MACRO_QUUX
+END
+
+mkdir sys-acdir
+cat > sys-acdir/bar.m4 <<END
+AC_DEFUN([MY_MACRO_BAR], [:])
+END
+cat > sys-acdir/quux.m4 <<END
+AC_DEFUN([MY_MACRO_QUUX], [:])
+END
+
+mkdir foodir
+: > foodir/bar.m4
+
+$ACLOCAL --system-acdir=sys-acdir --install --verbose -I foodir 2>stderr \
+ || { cat stderr >&2; Exit 1; }
+cat stderr >&2
+grep ' installing .*sys-acdir/bar\.m4.* to .*foodir/bar\.m4' stderr
+grep ' installing .*sys-acdir/quux\.m4.* to .*foodir/quux\.m4' stderr
+grep ' overwriting .*foodir/bar\.m4.* with .*sys-acdir/bar\.m4' stderr
+grep ' installing .*foodir/quux\.m4.* from .*sys-acdir/quux\.m4' stderr
+
+# Sanity checks.
+ls -l foodir
+grep MY_MACRO_BAR foodir/bar.m4
+grep MY_MACRO_QUUX foodir/quux.m4
+
+:
diff --git a/tests/cond41.test b/tests/cond41.test
index ee17a95..7c59a0a 100755
--- a/tests/cond41.test
+++ b/tests/cond41.test
@@ -19,8 +19,7 @@
 . ./defs || Exit 1
 
 cat >>configure.ac <<'END'
-AM_COND_IF([BAD_COND],
-          [AC_CONFIG_FILES([file1])])
+AM_COND_IF([BAD_COND], [AC_CONFIG_FILES([file1])])
 AC_OUTPUT
 END
 
diff --git a/tests/vars-assign.test b/tests/dist-pr109765.test
similarity index 54%
copy from tests/vars-assign.test
copy to tests/dist-pr109765.test
index 120118f..2e22e84 100755
--- a/tests/vars-assign.test
+++ b/tests/dist-pr109765.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
+# 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
@@ -14,35 +14,29 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Automake do not complain about nor messes up GNU make specific
-# variable assignments (":=" and "?=").
+# Expose automake bug#10975: when several "dist-*" targets are invoked
+# on the make command line, the first one ends up removing the distdir,
+# so that the latter ones fail.
 
+required=bzip2
 . ./defs || Exit 1
 
 echo AC_OUTPUT >> configure.ac
+: > Makefile.am
+
+$ACLOCAL  || fatal_ "aclocal failed"
+$AUTOCONF || fatal_ "autoconf failed"
+$AUTOMAKE || fatal_ "automake failed"
 
-unset PREFOO FOO BAR BAZ XFOO XBAZ || :
-
-cat > Makefile.am <<'END'
-PREFOO = bar
-FOO := foo$(PREFOO)$(XFOO)
-XFOO = fail
-BAR ?= barbar
-
-.PHONY: test1 test2
-test1:
-       test $(FOO) = foobar
-       test $(BAR) = barbar
-test2:
-       test $(FOO) = foobar
-       test $(BAR) = rabrab
-END
-
-$ACLOCAL
-$AUTOCONF
-$AUTOMAKE
 ./configure
-$MAKE test1
-PREFOO=notseen FOO=notseen BAR=rabrab $MAKE test2
+$MAKE dist-gzip dist-bzip2
+
+gzip -dc $distdir.tar.gz | tar tf - > one || { cat one; Exit 1; }
+cat one
+bzip2 -dc $distdir.tar.gz | tar tf - > two || { cat two; Exit 1; }
+cat two
+
+$FGREP "$distdir/Makefile.am" one
+diff one two
 
 :
diff --git a/tests/get-sysconf.test b/tests/get-sysconf.test
index 5b3c9e2..ae3310e 100755
--- a/tests/get-sysconf.test
+++ b/tests/get-sysconf.test
@@ -25,16 +25,21 @@
 st=0
 if test -d "$top_testsrcdir"/.git; then
   # We are running from a git checkout.
-  git log -1 || st=1
-else
-  # We are probably running from a distribution tarball, so
-  # the ChangeLog file must be present.
+  (cd "$top_testsrcdir" && git log -1) || st=1
+elif test -f "$top_testsrcdir"/ChangeLog; then
+  # We are probably running from a distribution tarball.
   awk '
     BEGIN { first = 1 }
     (first == 1) { print; first = 0; next; }
     /^[^\t]/ { exit(0); }
     { print }
   ' "$top_testsrcdir"/ChangeLog || st=1
+else
+  # Some non-common but possibly valid setup (see for example the Homebrew
+  # problem reported in automake bug#10866); so just give an harmless
+  # warning instead of failing.
+  warn_ "no .git directory nor ChangeLog file found, some info won't" \
+        "be available"
 fi
 $PERL -V || st=1
 # It's OK for the user not to have the TAP::Parser module; this can
diff --git a/tests/installdir.test b/tests/installdir.test
index c5a3824..dc83ee3 100755
--- a/tests/installdir.test
+++ b/tests/installdir.test
@@ -15,19 +15,50 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Test for PR 203.
-# == Report ==
+# See also automake bug#11030.
+#
+# == Original Report for PR/203 ==
 # Some standard targets are missing '-local' hooks.  For instance,
 # installdirs is missing this.  Ideally this would be an automatic
 # feature of any exported target.
 
 . ./defs || Exit 1
 
+echo AC_OUTPUT >> configure.ac
+
 cat > Makefile.am << 'END'
+foodir = $(datadir)/$(distdir)
 installdirs-local:
-       @echo here
+       $(MKDIR_P) $(DESTDIR)$(foodir)
+install-data-hook: installdirs-local
 END
 
 $ACLOCAL
 $AUTOMAKE
 
-test `grep installdirs-local Makefile.in | wc -l` -eq 3
+test `grep installdirs-local Makefile.in | wc -l` -eq 4
+
+cwd=`pwd` || fatal_ "getting current working directory"
+
+$AUTOCONF
+./configure --prefix="$cwd/inst"
+
+$MAKE installdirs
+test -d inst/share/$me-1.0
+rm -rf inst
+
+$MAKE install
+test -d inst/share/$me-1.0
+rm -rf inst
+
+./configure --prefix=/foo
+
+$MAKE installdirs DESTDIR="$cwd/dest"
+test -d dest/foo/share/$me-1.0
+rm -rf dest
+
+$MAKE install DESTDIR="$cwd/dest"
+test -d dest/foo/share/$me-1.0
+rm -rf dest
+
+:
diff --git a/tests/condhook2.test b/tests/instdir-cond.test
old mode 100755
new mode 100644
similarity index 64%
copy from tests/condhook2.test
copy to tests/instdir-cond.test
index a853e37..2965ff1
--- a/tests/condhook2.test
+++ b/tests/instdir-cond.test
@@ -1,5 +1,5 @@
-#!/bin/sh
-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
+#! /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
@@ -14,34 +14,35 @@
 # 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 install when a conditional install-*-hook is defined.
-# Keep this in sync with sister test condhook.test.
+# Check against automake bug#10997: directories holding only
+# conditionally-installed files should not be created unconditionally.
 
 . ./defs || Exit 1
 
 cat >> configure.ac << 'END'
-AM_CONDITIONAL([TEST], [true])
+AM_CONDITIONAL([ENABLE_FOO], [false])
 AC_OUTPUT
 END
 
+: > foo
+: > bar
+
 cat > Makefile.am << 'END'
-sysconf_DATA = mumble
-if TEST
-install-data-hook:
-       : > $(top_srcdir)/good
+pkglibexec_SCRIPTS =
+if ENABLE_FOO
+pkgdata_DATA = foo
+pkglibexec_SCRIPTS += bar
 endif
 END
 
-: > mumble
-
 $ACLOCAL
-$AUTOCONF
 $AUTOMAKE
+$AUTOCONF
 
-./configure --prefix "`pwd`/inst"
+./configure --prefix="`pwd`/inst"
 
 $MAKE install
-test -f inst/etc/mumble
-test -f good
+test ! -d inst/share/instdir-cond
+test ! -d inst/libexec/instdir-cond
 
 :
diff --git a/tests/dist-included-parent-dir.test b/tests/instdir-cond2.test
old mode 100755
new mode 100644
similarity index 54%
copy from tests/dist-included-parent-dir.test
copy to tests/instdir-cond2.test
index ae135ae..1fc24b7
--- a/tests/dist-included-parent-dir.test
+++ b/tests/instdir-cond2.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2002-2012 Free Software Foundation, Inc.
+# 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
@@ -14,36 +14,38 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Make sure included files in parent directory are distributed.
+# Check against automake bug#10997: directories holding only
+# conditionally-installed files should not be created unconditionally.
+# FIXME: this test tries to check that the above also hold for the
+# FIXME: "installdirs" target, but that doesn't currently work :-(
+# FIXME: So this test is still xfailing.
+# See sister test 'instdir-cond.test' for the succeeding part.
 
 . ./defs || Exit 1
 
 cat >> configure.ac << 'END'
-AC_CONFIG_FILES([sub/Makefile])
+AM_CONDITIONAL([ENABLE_FOO], [false])
 AC_OUTPUT
 END
 
-cat > Makefile.am << 'END'
-SUBDIRS = sub
-test: distdir
-       test -f $(distdir)/foo
-       test -f $(distdir)/bar
-       test 2 -gt `find $(distdir)/sub -type d | wc -l`
-END
-
 : > foo
 : > bar
 
-mkdir sub
-cat > sub/Makefile.am << 'END'
-include $(top_srcdir)/foo
-include ../bar
+cat > Makefile.am << 'END'
+pkglibexec_SCRIPTS =
+if ENABLE_FOO
+pkgdata_DATA = foo
+pkglibexec_SCRIPTS += bar
+endif
 END
 
 $ACLOCAL
-$AUTOCONF
 $AUTOMAKE
-# Use --srcdir with an absolute path because it's harder
-# to support in 'distdir'.
-./configure --srcdir "`pwd`"
-$MAKE test
+$AUTOCONF
+
+./configure --prefix="`pwd`/inst"
+
+$MAKE installdirs
+test ! -d inst || { find inst; Exit 1; }
+
+:
diff --git a/tests/instdir-no-empty.test b/tests/instdir-no-empty.test
new file mode 100755
index 0000000..9251b13
--- /dev/null
+++ b/tests/instdir-no-empty.test
@@ -0,0 +1,123 @@
+#! /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/>.
+
+# An empty "foo_PRIMARY" declaration should *not* cause "make install"
+# to create directory $(foodir).  See automake bug#10997 and bug#11030.
+
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.ac <<'END'
+AC_SUBST([CC], [whatever])
+AC_SUBST([JAVAC], [whatever])
+AM_PATH_PYTHON(,,:)
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = no-dependencies
+mydir = $(prefix)/my
+myexecdir = $(prefix)/myexec
+javadir = $(prefix)/java
+END
+
+# Write Makefile.am.
+{
+
+  for dir in sbin bin libexec pkglibexec myexec; do
+    for dst in '' dist_ nodist_; do
+      echo "${dst}${dir}_SCRIPTS ="
+    done
+    echo "${dir}_PROGRAMS ="
+  done
+
+  for dir in lib pkglib myexec my; do
+    echo "${dir}_LIBRARIES ="
+    echo "${dir}_LTLIBRARIES ="
+  done
+
+  for p1 in '' notrans_; do
+    for p2 in '' dist_ nodist_; do
+      for s in '' 1 2 3 4 5 6 7 8 9; do
+        echo "${p1}${p2}man${s}_MANS ="
+      done
+    done
+  done
+
+  for dst in '' dist_ nodist_; do
+    for dir in dataroot data pkgdata doc lisp my; do
+      echo "${dst}${dir}_DATA ="
+    done
+    for dir in include pkginclude oldinclude my; do
+      echo "${dst}${dir}_HEADERS ="
+    done
+    for dir in python my; do
+      echo "${dst}${dir}_PYTHON ="
+    done
+    for dir in info my; do
+      echo "${dst}${dir}_TEXINFOS ="
+    done
+    for dir in java my; do
+      echo "${dst}${dir}_JAVA ="
+    done
+    for dir in lisp my; do
+      echo "${dst}${dir}_LISP ="
+    done
+  done
+
+} > t
+
+cat t >> Makefile.am
+sed 's/^/nobase_/' t >> Makefile.am
+rm -f t
+
+cat Makefile.am # For debugging.
+
+# Sanity check.
+grep '^oldinclude_HEADERS =' Makefile.am \
+  && grep '^nodist_my_PYTHON =' Makefile.am \
+  && grep '^notrans_dist_man5_MANS =' Makefile.am \
+  || fatal_ "creating Makefile.am"
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+
+cwd=`pwd` || fatal_ "getting current working directory"
+
+doinst ()
+{
+  $MAKE install install-pdf install-ps install-dvi ${1+"$@"}
+}
+
+: > foo.sh
+
+./configure --prefix="$cwd/inst"
+doinst
+test ! -d inst || { find inst; Exit 1; }
+$MAKE uninstall
+doinst bin_SCRIPTS=foo.sh
+test -f inst/bin/foo.sh
+
+./configure
+doinst DESTDIR="$cwd/dest"
+test ! -d dest || { find dest; Exit 1; }
+$MAKE uninstall
+doinst DESTDIR="$cwd/dest" bin_SCRIPTS=foo.sh
+test -f dest/usr/local/bin/foo.sh
+
+:
diff --git a/tests/java3.test b/tests/java3.test
index c8162b1..7d94635 100755
--- a/tests/java3.test
+++ b/tests/java3.test
@@ -46,8 +46,11 @@ cwd=`pwd` || Exit 1
 ./configure --prefix="$cwd/_inst"
 $MAKE
 $MAKE install
-ls -l . _inst/java # For debugging.
+ls -l .
 find . -name '*.class' | grep . && Exit 1
+# If we have nothing to install, we shouldn't create any installation
+# directory.  Related to automake bug#11030.
+test ! -d _inst
 $MAKE uninstall
 $MAKE distcheck
 
diff --git a/tests/lex-clean-cxx.test b/tests/lex-clean-cxx.test
index b29bd40..9ff2dbc 100755
--- a/tests/lex-clean-cxx.test
+++ b/tests/lex-clean-cxx.test
@@ -23,8 +23,6 @@
 required=lex
 . ./defs || Exit 1
 
-set -e
-
 cat >> configure.ac << 'END'
 AC_PROG_CXX
 AC_PROG_LEX
diff --git a/tests/lex-clean.test b/tests/lex-clean.test
index 6988f92..9b23f01 100755
--- a/tests/lex-clean.test
+++ b/tests/lex-clean.test
@@ -22,8 +22,6 @@
 required=yacc
 . ./defs || Exit 1
 
-set -e
-
 cat >> configure.ac << 'END'
 AC_PROG_CC
 AC_PROG_LEX
diff --git a/tests/lex-depend-cxx.test b/tests/lex-depend-cxx.test
index 2686a5e..5249102 100755
--- a/tests/lex-depend-cxx.test
+++ b/tests/lex-depend-cxx.test
@@ -20,8 +20,6 @@
 required=lex
 . ./defs || Exit 1
 
-set -e
-
 cat >> configure.ac << 'END'
 AC_PROG_CXX
 AM_PROG_LEX
diff --git a/tests/lex-depend.test b/tests/lex-depend.test
index 2982845..9487f4a 100755
--- a/tests/lex-depend.test
+++ b/tests/lex-depend.test
@@ -20,8 +20,6 @@
 required=lex
 . ./defs || Exit 1
 
-set -e
-
 cat >> configure.ac << 'END'
 AC_PROG_CC
 AM_PROG_LEX
diff --git a/tests/lex-line.test b/tests/lex-line.test
index 5888c51..05b6f99 100755
--- a/tests/lex-line.test
+++ b/tests/lex-line.test
@@ -22,8 +22,6 @@
 required=lex
 . ./defs || Exit 1
 
-set -e
-
 cat >> configure.ac << 'END'
 AC_CONFIG_FILES([sub/Makefile])
 AC_PROG_CC
diff --git a/tests/lex-nodist.test b/tests/lex-nodist.test
index 70cd2f7..99e6b7b 100755
--- a/tests/lex-nodist.test
+++ b/tests/lex-nodist.test
@@ -23,8 +23,6 @@
 required=lex
 . ./defs || Exit 1
 
-set -e
-
 cat >> configure.ac << 'END'
 AC_PROG_CC
 dnl Sister test 'lex-pr204.test' should use 'AC_PROG_LEX' instead.
diff --git a/tests/lex-pr204.test b/tests/lex-pr204.test
index 07b5644..2e1b4e3 100755
--- a/tests/lex-pr204.test
+++ b/tests/lex-pr204.test
@@ -23,8 +23,6 @@
 required=lex
 . ./defs || Exit 1
 
-set -e
-
 cat >> configure.ac <<'EOF'
 AM_MAINTAINER_MODE
 AC_PROG_CC
diff --git a/tests/list-of-tests.mk b/tests/list-of-tests.mk
index 594d02d..5a05b1e 100644
--- a/tests/list-of-tests.mk
+++ b/tests/list-of-tests.mk
@@ -69,6 +69,10 @@ aclocal-path-install.test \
 aclocal-path-install-serial.test \
 aclocal-path-nonexistent.test \
 aclocal-path-precedence.test \
+aclocal-install-fail.test \
+aclocal-install-mkdir.test \
+aclocal-no-install-no-mkdir.test \
+aclocal-verbose-install.test \
 ac-output-old.tap \
 acsilent.test \
 acsubst.test \
@@ -348,6 +352,7 @@ dist-missing-included-m4.test \
 dist-missing-m4.test \
 dist-readonly.test \
 dist-repeated.test \
+dist-pr109765.test \
 distcleancheck.test \
 distcom2.test \
 distcom3.test \
@@ -469,6 +474,9 @@ instdat.test \
 instdat2.test \
 instdir.test \
 instdir2.test \
+instdir-cond.test \
+instdir-cond2.test \
+instdir-no-empty.test \
 instdir-java.test \
 instdir-lisp.test \
 instdir-ltlib.test \
@@ -838,6 +846,7 @@ python12.test \
 python-dist.test \
 python-vars.test \
 python-virtualenv.test \
+python-pr10995.test \
 recurs.test \
 recurs2.test \
 remake.test \
diff --git a/tests/python3.test b/tests/python-pr10995.test
similarity index 54%
copy from tests/python3.test
copy to tests/python-pr10995.test
index 72021cd..b21d38f 100755
--- a/tests/python3.test
+++ b/tests/python-pr10995.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2002-2012 Free Software Foundation, Inc.
+# 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
@@ -14,36 +14,47 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Make sure we install built python files.
+# Test automake bug#10995: am__py_compile doesn't get correctly defined
+# when there a 'noinst_PYTHON' declaration precedes a 'foo_PYTHON'
+# declaration.
 
 required=python
 . ./defs || Exit 1
 
-cat >>configure.ac <<EOF
+set -e
+
+cat >> configure.ac <<'EOF'
 AM_PATH_PYTHON
 AC_OUTPUT
 EOF
 
 cat > Makefile.am <<'END'
-mydir=$(prefix)/my
-my_PYTHON = one.py
-
-one.py:
-       echo 'def one(): return 1' >$@
+yesinstdir = $(prefix)/py
+noinst_PYTHON = no.py
+yesinst_PYTHON = yes.py
+disttest: distdir
+       test -f $(distdir)/no.py
+       test -f $(distdir)/yes.py
 END
 
+echo 'def foo(): return 1' > yes.py
+# no.py shouldn't be byte-compiled, so lets make it syntactically invalid.
+echo 'if' > no.py
+
 $ACLOCAL
 $AUTOCONF
 $AUTOMAKE --add-missing
+test -f py-compile
 
-mkdir inst
 inst=`pwd`/inst
-mkdir build
-cd build
-../configure --prefix="$inst"
+
+./configure --prefix="$inst"
 $MAKE install
-test -f "$inst/my/one.py"
-test -f "$inst/my/one.pyc"
-test -f "$inst/my/one.pyo"
+test -f "$inst/py/yes.py"
+test -f "$inst/py/yes.pyc"
+test ! -f "$inst/py/no.py"
+test ! -f "$inst/py/no.pyc"
+
+$MAKE disttest
 
 :
diff --git a/tests/python.test b/tests/python.test
index 8a39f9f..de8c0bb 100755
--- a/tests/python.test
+++ b/tests/python.test
@@ -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 to make sure py_compile is defined.
+# Test to make sure py_compile and am__py_compile are correctly defined.
 
 . ./defs || Exit 1
 
@@ -24,6 +24,20 @@ cat > Makefile.am << 'END'
 python_PYTHON = foo.py
 END
 
+cat > Makefile2.am << 'END'
+python_PYTHON = a.py
+nodist_python_PYTHON = b.py
+nobase_python_PYTHON = x/c.py
+mydir = ${prefix}
+my_PYTHON = d.py
+END
+
+# For automake bug#10995.
+cat > Makefile3.am << 'END'
+noinst_PYTHON = un.py
+python_PYTHON = in.py
+END
+
 $ACLOCAL
 
 AUTOMAKE_fails
@@ -33,4 +47,14 @@ $AUTOMAKE -a
 grep '^py_compile *=' Makefile.in
 test -f py-compile
 
+$AUTOMAKE Makefile2
+$AUTOMAKE Makefile3
+
+grep "py" Makefile.in Makefile2.in Makefile3.in # For debugging.
+
+for f in Makefile.in Makefile2.in Makefile3.in; do
+  test `grep -c '^py_compile =' $f` -eq 1
+  test `grep -c '^am__py_compile =' $f` -eq 1
+done
+
 :
diff --git a/tests/silent-lex.test b/tests/silent-lex.test
index 1855538..2838d6e 100755
--- a/tests/silent-lex.test
+++ b/tests/silent-lex.test
@@ -19,8 +19,6 @@
 required=lex
 . ./defs || Exit 1
 
-set -e
-
 mkdir sub
 
 cat >>configure.ac <<'EOF'
diff --git a/tests/silent-yacc-headers.test b/tests/silent-yacc-headers.test
index 63baaec..55ba247 100755
--- a/tests/silent-yacc-headers.test
+++ b/tests/silent-yacc-headers.test
@@ -20,8 +20,6 @@
 required=yacc
 . ./defs || Exit 1
 
-set -e
-
 mkdir sub
 
 cat >>configure.ac <<'EOF'
diff --git a/tests/silent-yacc.test b/tests/silent-yacc.test
index 15db628..35415bf 100755
--- a/tests/silent-yacc.test
+++ b/tests/silent-yacc.test
@@ -20,8 +20,6 @@
 required=yacc
 . ./defs || Exit 1
 
-set -e
-
 mkdir sub
 
 cat >>configure.ac <<'EOF'
diff --git a/tests/vala-mix2.test b/tests/vala-mix2.test
index 4ac5444..e9a0aa4 100755
--- a/tests/vala-mix2.test
+++ b/tests/vala-mix2.test
@@ -20,8 +20,6 @@
 required='valac cc c++ GNUmake'
 . ./defs || Exit 1
 
-set -e
-
 cat >> configure.ac <<'END'
 AC_PROG_CC
 AC_PROG_CXX
diff --git a/tests/yacc-auxdir.test b/tests/yacc-auxdir.test
index d268fc5..1b494e8 100755
--- a/tests/yacc-auxdir.test
+++ b/tests/yacc-auxdir.test
@@ -19,8 +19,6 @@
 
 . ./defs || Exit 1
 
-set -e
-
 mkdir aux1 sub
 
 cat > configure.ac << END
diff --git a/tests/yacc-bison-skeleton-cxx.test 
b/tests/yacc-bison-skeleton-cxx.test
index 0442a6f..31bec34 100755
--- a/tests/yacc-bison-skeleton-cxx.test
+++ b/tests/yacc-bison-skeleton-cxx.test
@@ -20,8 +20,6 @@
 required=bison
 . ./defs || Exit 1
 
-set -e
-
 cat >> configure.ac << 'END'
 AC_PROG_CXX
 AC_PROG_YACC
diff --git a/tests/yacc-bison-skeleton.test b/tests/yacc-bison-skeleton.test
index 9e1a31e..147ed83 100755
--- a/tests/yacc-bison-skeleton.test
+++ b/tests/yacc-bison-skeleton.test
@@ -20,8 +20,6 @@
 required=bison
 . ./defs || Exit 1
 
-set -e
-
 cat >> configure.ac << 'END'
 AC_PROG_CC
 AC_PROG_YACC
diff --git a/tests/yacc-clean-cxx.test b/tests/yacc-clean-cxx.test
index 7d9e1ae..ea21bff 100755
--- a/tests/yacc-clean-cxx.test
+++ b/tests/yacc-clean-cxx.test
@@ -23,8 +23,6 @@
 required=yacc
 . ./defs || Exit 1
 
-set -e
-
 cat >> configure.ac << 'END'
 AC_PROG_CXX
 AC_PROG_YACC
diff --git a/tests/yacc-cxx.test b/tests/yacc-cxx.test
index 1f4bf3b..499a3b9 100755
--- a/tests/yacc-cxx.test
+++ b/tests/yacc-cxx.test
@@ -21,8 +21,6 @@
 required=yacc
 . ./defs || Exit 1
 
-set -e
-
 cat >> configure.ac << 'END'
 AC_PROG_CXX
 AC_PROG_YACC
diff --git a/tests/yacc-d-cxx.test b/tests/yacc-d-cxx.test
index a37de71..8e23f78 100755
--- a/tests/yacc-d-cxx.test
+++ b/tests/yacc-d-cxx.test
@@ -21,12 +21,10 @@
 required=yacc
 . ./defs || Exit 1
 
-set -e
-
 write_parse ()
 {
   header=$1
-  sed 's/^ *//' <<END
+  unindent <<END
     %{
     // Valid C++, but deliberately invalid C.
     #include <cstdlib>
@@ -43,7 +41,7 @@ END
 write_main ()
 {
   header=$1
-  sed 's/^ *//' <<END
+  unindent <<END
     // Valid C++, but deliberately invalid C.
     #include <cstdio>
     #include "$header"
diff --git a/tests/yacc-deleted-headers.test b/tests/yacc-deleted-headers.test
index cb6af0f..5ab8d87 100755
--- a/tests/yacc-deleted-headers.test
+++ b/tests/yacc-deleted-headers.test
@@ -19,8 +19,6 @@
 required=yacc
 . ./defs || Exit 1
 
-set -e
-
 cat >> configure.ac << 'END'
 AC_PROG_CC
 AC_PROG_YACC
diff --git a/tests/yacc-depend.test b/tests/yacc-depend.test
index 8a3c0ee..73d64ad 100755
--- a/tests/yacc-depend.test
+++ b/tests/yacc-depend.test
@@ -20,8 +20,6 @@
 required=yacc
 . ./defs || Exit 1
 
-set -e
-
 cat >> configure.ac << 'END'
 AC_PROG_CC
 AC_PROG_YACC
diff --git a/tests/yacc-depend2.test b/tests/yacc-depend2.test
index 205c21c..879cc59 100755
--- a/tests/yacc-depend2.test
+++ b/tests/yacc-depend2.test
@@ -21,8 +21,6 @@
 required=yacc
 . ./defs || Exit 1
 
-set -e
-
 cat >> configure.ac << 'END'
 AC_PROG_CC
 AC_PROG_YACC
diff --git a/tests/yacc-line.test b/tests/yacc-line.test
index 90c5e2f..ac6a0aa 100755
--- a/tests/yacc-line.test
+++ b/tests/yacc-line.test
@@ -22,8 +22,6 @@
 required=yacc
 . ./defs || Exit 1
 
-set -e
-
 cat >> configure.ac << 'END'
 AC_CONFIG_FILES([sub/Makefile])
 AC_PROG_CC
diff --git a/tests/yacc-mix-c-cxx.test b/tests/yacc-mix-c-cxx.test
index 82350c6..8f72b35 100755
--- a/tests/yacc-mix-c-cxx.test
+++ b/tests/yacc-mix-c-cxx.test
@@ -20,8 +20,6 @@
 required=yacc
 . ./defs || Exit 1
 
-set -e
-
 cat >> configure.ac << 'END'
 AC_PROG_CC
 AC_PROG_CXX
diff --git a/tests/yacc-weirdnames.test b/tests/yacc-weirdnames.test
index 909b018..82270fe 100755
--- a/tests/yacc-weirdnames.test
+++ b/tests/yacc-weirdnames.test
@@ -19,8 +19,6 @@
 
 . ./defs || Exit 1
 
-set -e
-
 cat >> configure.ac << 'END'
 AC_PROG_CC
 AC_PROG_CXX


hooks/post-receive
-- 
GNU Automake



reply via email to

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