the first attempt to fix #9701 branch_ltfix
authorAleš Křenek <ljocha@ics.muni.cz>
Wed, 21 Sep 2005 12:13:17 +0000 (12:13 +0000)
committerAleš Křenek <ljocha@ics.muni.cz>
Wed, 21 Sep 2005 12:13:17 +0000 (12:13 +0000)
org.glite.security.gsoap-plugin/Makefile
org.glite.security.gsoap-plugin/project/libtool-paths-split.pl [new file with mode: 0644]

index 6fce5b1..4cef38b 100644 (file)
@@ -57,6 +57,7 @@ LINK:=libtool --mode=link ${CC} -rpath ${stagedir}/lib ${LDFLAGS}
 LINKXX:=libtool --mode=link ${CXX} ${LDFLAGS} 
 INSTALL:=libtool --mode=install install
 LINKXX:=libtool --mode=link  ${CXX} -rpath ${stagedir}/lib ${LDFLAGS}
+LTSPLIT:=${top_srcdir}/project/libtool-paths-split.pl
 
 GLOBUS_INC:= -I${globus_prefix}/include/${nothrflavour}
 GLOBUS_LIBS:= -L${globus_prefix}/lib \
@@ -80,9 +81,9 @@ GSS_LTLIB:=libglite_security_gss_${nothrflavour}.la
 GSS_THRLTLIB:=libglite_security_gss_${thrflavour}.la
 
 OBJS:=${GSS_OBJS} glite_gsplugin.o
-LOBJS:=${GSS_OBJS:.o=.lo}
-THROBJS:=${GSS_OBJS:.o=.thr.o}
-THRLOBJS:=${GSS_OBJS:.o=.thr.lo}
+LOBJS:=${OBJS:.o=.lo}
+THROBJS:=${OBJS:.o=.thr.o}
+THRLOBJS:=${OBJS:.o=.thr.lo}
 
 STATICLIB:=libglite_security_gsoap_plugin_${nothrflavour}.a
 THRSTATICLIB:=libglite_security_gsoap_plugin_${thrflavour}.a
@@ -98,10 +99,10 @@ ${GSS_THRSTATICLIB}: ${GSS_THROBJS}
        ranlib $@
 
 ${GSS_LTLIB}: ${GSS_OBJS}
-       ${LINK} ${version_info} -o $@ ${GSS_LOBJS} 
+       ${LINK} ${version_info} -o $@ ${GSS_LOBJS} ${EX_LIBS}
 
 ${GSS_THRLTLIB}: ${GSS_THROBJS}
-       ${LINK} ${version_info} -o $@ ${GSS_THRLOBJS} 
+       ${LINK} ${version_info} -o $@ ${GSS_THRLOBJS} ${EX_LIBS}
 
 ${STATICLIB}: ${OBJS}
        ar crv $@ ${OBJS}
@@ -112,10 +113,10 @@ ${THRSTATICLIB}: ${THROBJS}
        ranlib $@
 
 ${LTLIB}: ${OBJS}
-       ${LINK} ${version_info} -o $@ ${LOBJS}
+       ${LINK} ${version_info} -o $@ ${LOBJS} ${EX_LIBS}
 
 ${THRLTLIB}: ${THROBJS}
-       ${LINK} ${version_info} -o $@ ${THRLOBJS}
+       ${LINK} ${version_info} -o $@ ${THRLOBJS} ${EX_LIBS}
 
 default: all
 
@@ -128,7 +129,7 @@ check.gss: test_gss
        echo test_gss not run automatically util we have got some credentials
 
 test_gss: test_gss.o
-       ${LINKXX} -o $@ test_gss.o ${GSS_LTLIB} ${TEST_LIBS} ${GLOBUS_LIBS} ${EX_LIBS}
+       ${LINKXX} -o $@ test_gss.o ${GSS_LTLIB} ${TEST_LIBS} 
 
 test_coverage:
        -mkdir coverage
@@ -155,13 +156,13 @@ endif
 
 
 wscalc_clt_ex: ${WSCALC_CLT_OBJS} ${STATICLIB}
-       ${LINK} -o $@ ${STATICLIB} ${GSOAP_LIBS} ${EX_LIBS} ${WSCALC_CLT_OBJS}
+       ${LINK} -o $@ ${WSCALC_CLT_OBJS} ${LTLIB} ${GSOAP_LIBS}
 
 wscalc_srv_ex: ${WSCALC_SRV_OBJS} ${STATICLIB}
-       ${LINK} -o $@ ${STATICLIB} ${GSOAP_LIBS} ${EX_LIBS} ${WSCALC_SRV_OBJS}
+       ${LINK} -o $@ ${WSCALC_SRV_OBJS} ${LTLIB} ${GSOAP_LIBS}
 
 wscalc_srv_ex2: ${WSCALC_SRV2_OBJS} ${STATICLIB}
-       ${LINK} -o $@ ${STATICLIB} ${GSOAP_LIBS} ${EX_LIBS} ${WSCALC_SRV2_OBJS}
+       ${LINK} -o $@ ${WSCALC_SRV2_OBJS} ${LTLIB} ${GSOAP_LIBS}
 
 ${GSOAP_FPREFIX}H.h ${GSOAP_FPREFIX}C.c ${GSOAP_FPREFIX}Server.c ${GSOAP_FPREFIX}Client.c ${GSOAP_FPREFIX}ServerLib.c ${GSOAP_FPREFIX}ClientLib.c soap_gen:  calc.h.S
        ${gsoap_prefix}/bin/soapcpp2 -c -p ${GSOAP_FPREFIX} ${top_srcdir}/examples/calc.h.S
@@ -195,6 +196,7 @@ install:
        -mkdir -p ${PREFIX}/share/doc/${package}-${version}
        -mkdir -p ${PREFIX}/include/glite/security/${package}
        ${INSTALL} -m 644 ${GSS_LTLIB} ${GSS_THRLTLIB} ${PREFIX}/lib
+       ${LTSPLIT} ${PREFIX}/lib/${GSS_LTLIB} ${PREFIX}/lib/${GSS_THRLTLIB}
        ${INSTALL} -m 644 ${top_srcdir}/LICENSE ${PREFIX}/share/doc/${package}-${version}
        cd ${top_srcdir}/interface && ${INSTALL} -m 644 ${HDRS} ${PREFIX}/include/glite/security/
        if [ x${DOSTAGE} = xyes ]; then \
diff --git a/org.glite.security.gsoap-plugin/project/libtool-paths-split.pl b/org.glite.security.gsoap-plugin/project/libtool-paths-split.pl
new file mode 100644 (file)
index 0000000..5dce72f
--- /dev/null
@@ -0,0 +1,25 @@
+#!/usr/bin/perl -p -i
+
+next unless /^dependency_libs=/;
+
+s/^dependency_libs=//;
+s/\s*'\s*//g;
+
+$out = '';
+
+undef $libs;
+undef %paths;
+
+for (split) {
+       if (/^-L(.*)/) { $paths{$1} = 'x'; }
+       elsif (/^-l(.*)/) { $libs .= " -l$1"; }
+       elsif (/^(.*)\/lib(.*)\.(la|so).*$/) { $paths{$1} = 'x'; $libs .= " -l$2" ; }
+# XXX  else { $out .= " $_"; }
+       else { print STDERR "$_: unknown\n"; }
+}
+
+# $_ = "dependency_libs='$out'";
+$_ = "dependency_libs='";
+$_ .= '-L' . join ' -L',keys %paths if %paths;
+$_ .= $libs if $libs;
+$_ .= "'";