automake-commit
[Top][All Lists]
Advanced

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

[Automake-commit] [SCM] GNU Automake branch, master, updated. Release-1-


From: Ralf Wildenhues
Subject: [Automake-commit] [SCM] GNU Automake branch, master, updated. Release-1-10-183-ge8ec58a
Date: Sat, 20 Sep 2008 10:51:12 +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=e8ec58ac1815722b8c311ad2cc629e54e593019c

The branch, master has been updated
       via  e8ec58ac1815722b8c311ad2cc629e54e593019c (commit)
      from  bbedcb43dc37f7e937f1a67e266677d88cf5ff9b (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 e8ec58ac1815722b8c311ad2cc629e54e593019c
Author: Ralf Wildenhues <address@hidden>
Date:   Sat Sep 20 12:30:48 2008 +0200

    Do not reorder nobase ltlib installation.
    
    This patch changes back the order of installation of nobase
    LTLIBRARIES to that in which files are listed in the variables.
    It does not fix the issue of strict dependency ordering, as
    implied by *_LIBADD, but as before allows to steer the order by
    listing the libraries in nobase_*_LTLIBRARIES appropriately.
    
    As an advantage over the state of 1.10, multiple consecutive
    nobase libraries to be installed in the same directory are
    passed to libtool in one invocation.
    
    * lib/am/ltlib.am (install-%DIR%LTLIBRARIES) [!%?BASE%]: Do not
    reorder libraries upon installation.  Remove spurious empty
    line.
    * tests/ltorder.test: New test.
    * tests/Makefile.am: Update.
    
    Signed-off-by: Ralf Wildenhues <address@hidden>

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

Summary of changes:
 ChangeLog                                  |   15 ++++++++
 lib/am/ltlib.am                            |   21 ++++++-----
 tests/Makefile.am                          |    1 +
 tests/Makefile.in                          |    1 +
 tests/{instfail-java.test => ltorder.test} |   53 ++++++++++++----------------
 5 files changed, 52 insertions(+), 39 deletions(-)
 copy tests/{instfail-java.test => ltorder.test} (50%)

diff --git a/ChangeLog b/ChangeLog
index ba25fcd..364b3fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,20 @@
 2008-09-20  Ralf Wildenhues  <address@hidden>
 
+       Do not reorder nobase ltlib installation.
+       This patch changes back the order of installation of nobase
+       LTLIBRARIES to that in which files are listed in the variables.
+       It does not fix the issue of strict dependency ordering, as
+       implied by *_LIBADD, but as before allows to steer the order by
+       listing the libraries in nobase_*_LTLIBRARIES appropriately.
+       As an advantage over the state of 1.10, multiple consecutive
+       nobase libraries to be installed in the same directory are
+       passed to libtool in one invocation.
+       * lib/am/ltlib.am (install-%DIR%LTLIBRARIES) [!%?BASE%]: Do not
+       reorder libraries upon installation.  Remove spurious empty
+       line.
+       * tests/ltorder.test: New test.
+       * tests/Makefile.am: Update.
+
        Fix -rpath arguments for nobase_*_LTLIBRARIES.
        * automake.in (handle_ltlibraries): New hash %instsubdirs to
        track the dirname of nobase ltlibraries, and tack it onto the
diff --git a/lib/am/ltlib.am b/lib/am/ltlib.am
index 7afc657..c6d731d 100644
--- a/lib/am/ltlib.am
+++ b/lib/am/ltlib.am
@@ -49,23 +49,26 @@ if %?BASE%
 ?!LIBTOOL?       $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$list 
"$(DESTDIR)$(%NDIR%dir)"; \
        }
 else !%?BASE%
-       @list='$(%DIR%_LTLIBRARIES)'; $(am__nobase_list) | \
+       @list='$(%DIR%_LTLIBRARIES)'; for p in $$list; do \
+         if test -f "$$p"; then echo "$$p $$p"; else :; fi; done | \
+       sed '/ .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+       $(AWK) 'BEGIN { cur = "." } \
+         { if ($$2 == cur) { files = files " " $$1 } \
+           else { print cur, files; files = $$1; cur = $$2 } } \
+         END { print cur, files }' | \
        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 -z "$$files" || { \
            test "x$$dir" = x. || { \
              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.
 ## Use INSTALL and not INSTALL_DATA because libtool knows the right
 ## permissions to use.
-?LIBTOOL?          echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) 
--mode=install $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$xfiles 
'$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
-?LIBTOOL?          $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) 
--mode=install $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$xfiles 
"$(DESTDIR)$(%NDIR%dir)/$$dir" || exit $$?; \
-?!LIBTOOL?         echo " $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) 
$$xfiles '$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
-?!LIBTOOL?         $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$xfiles 
"$(DESTDIR)$(%NDIR%dir)/$$dir" || exit $$?; \
+?LIBTOOL?          echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) 
--mode=install $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$files 
'$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
+?LIBTOOL?          $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) 
--mode=install $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$files 
"$(DESTDIR)$(%NDIR%dir)/$$dir" || exit $$?; \
+?!LIBTOOL?         echo " $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) 
$$files '$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
+?!LIBTOOL?         $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$files 
"$(DESTDIR)$(%NDIR%dir)/$$dir" || exit $$?; \
          }; \
        done
 endif !%?BASE%
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 4445c40..f3a0880 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -379,6 +379,7 @@ ltdeps.test \
 ltinstloc.test \
 ltlibobjs.test \
 ltlibsrc.test \
+ltorder.test \
 lzma.test \
 maintclean.test \
 make.test \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 4cd51e7..8d416b0 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -531,6 +531,7 @@ ltdeps.test \
 ltinstloc.test \
 ltlibobjs.test \
 ltlibsrc.test \
+ltorder.test \
 lzma.test \
 maintclean.test \
 make.test \
diff --git a/tests/instfail-java.test b/tests/ltorder.test
similarity index 50%
copy from tests/instfail-java.test
copy to tests/ltorder.test
index 44b5971..9994008 100755
--- a/tests/instfail-java.test
+++ b/tests/ltorder.test
@@ -1,4 +1,4 @@
-#! /bin/sh
+#!/bin/sh
 # Copyright (C) 2008  Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -14,53 +14,46 @@
 # 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 install rule should honor failures of the install program.
-# Some of these are already caught by instmany.test.
+# Test for correct installation order of nobase libtool libraries.
 
-# This is the java sister test of instfail.test.
-
-
-# non-root should catch 'chmod a-r'-challenged file systems.
-required='non-root'
+required='libtoolize'
 . ./defs || Exit 1
 
 set -e
 
 cat >>configure.in <<'END'
-AC_CHECK_PROG([HAS_JAVAC], [javac], [:], [exit])
-($HAS_JAVAC 77); $HAS_JAVAC 77
+AC_PROG_CC
+AC_PROG_LIBTOOL
 AC_OUTPUT
 END
 
 cat >Makefile.am <<'END'
-javadir = $(datadir)/java
-java_JAVA = java1.java java2.java java3.java
+nobase_lib_LTLIBRARIES = liba1.la sub/liba2.la sub/liba3.la liba4.la liba5.la
+sub_liba2_la_LIBADD = liba1.la
+sub_liba3_la_LIBADD = sub/liba2.la
+liba4_la_LIBADD = sub/liba3.la
+liba5_la_LIBADD = liba4.la
 END
 
-for n in 1 2 3; do
-  cat >java$n.java <<END
-class java$n
-{
-}
-END
-done
+mkdir sub
+echo 'int a1 () { return 1; }' >liba1.c
+echo 'extern int a1 (); int a2 () { return a1 (); }' >sub/liba2.c
+echo 'extern int a2 (); int a3 () { return a2 (); }' >sub/liba3.c
+echo 'extern int a3 (); int a4 () { return a3 (); }' >liba4.c
+echo 'extern int a4 (); int a5 () { return a4 (); }' >liba5.c
 
+libtoolize
 $ACLOCAL
 $AUTOCONF
 $AUTOMAKE --add-missing
 
-instdir=`pwd`/inst
-./configure --prefix="$instdir"
+./configure "--prefix=`pwd`/inst"
+
 $MAKE
+$MAKE install 2>stderr || { cat stderr >&2; Exit 1; }
+cat stderr >&2
+grep 'has not been installed' stderr && Exit 1
 
-$MAKE install
 $MAKE uninstall
-
-for file in java1.class
-do
-  chmod a-r $file
-  $MAKE install-data && Exit 1
-  chmod u+r $file
-done
-
+test `find inst -type f -print | wc -l` -eq 0
 :


hooks/post-receive
--
GNU Automake




reply via email to

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