[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Automake-commit] [SCM] GNU Automake branch, master, updated. Release-1-10-183-ge8ec58a,
Ralf Wildenhues <=