Finalize ETICS+rpath+libtool mock build problem, workaround inside ETICS configuratio...
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Wed, 15 Jun 2011 08:23:14 +0000 (08:23 +0000)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Wed, 15 Jun 2011 08:23:14 +0000 (08:23 +0000)
org.glite.lb.client/Makefile
org.glite.lb/configure

index 576c053..07c2b36 100644 (file)
@@ -5,7 +5,6 @@ globalprefix=glite
 lbprefix=lb
 package=glite-lb-client
 version=0.0.0
-
 CC:=gcc
 CXX:=g++
 
@@ -21,6 +20,12 @@ version=${module.version}
 
 VERSION_AHEAD=-3
 
+# hacks needed for ETICS:
+# - rpath out of installation directory ${PREFIX}
+#   (the proper value is ${prefix}/${libdir})
+# - installed *.la files should be removed
+rpath?=${PREFIX}${prefix}/${libdir}
+
 VPATH=${top_srcdir}/src:${top_srcdir}/interface:${top_srcdir}/test:${top_srcdir}/examples:${top_srcdir}/doc
 AT3=${stagedir}${prefix}/sbin/glite-lb-at3
 GENSAM=${top_srcdir}/examples/gen_sample_job
@@ -107,7 +112,7 @@ EXT_LIB:=
 CPPUNIT_LIBS?=-L${cppunit_prefix}/${libdir} -lcppunit
 CPPUNIT_CFLAGS?=-I${cppunit_prefix}/include
 
-LDFLAGS:=${LDFLAGS} -L${stagedir}${prefix}/${libdir} ${COVERAGE_FLAGS}
+LDFLAGS:=${LDFLAGS} -L${stagedir}${prefix}/${libdir} -L${PREFIX}${prefix}/${libdir} ${COVERAGE_FLAGS}
 
 COMPILE:=libtool --mode=compile ${CC} ${CFLAGS}
 CXXCOMPILE:=libtool --mode=compile ${CXX} ${CXXFLAGS}
@@ -206,28 +211,28 @@ default: all
 
 ifeq (${thrflavour},)
 ${LIB}: ${LIBTHROBJS}
-       ${LINK} ${version_info} -o $@ ${LIBTHRLOBJS} -rpath ${PREFIX}${prefix}/${libdir} \
+       ${LINK} ${version_info} -o $@ ${LIBTHRLOBJS} -rpath ${rpath} \
                        ${COMMON_LIB} ${TRIO_LIB} \
                        -lglite_security_gss
 
 ${PLUSLIB}: ${PLUSTHROBJS} ${LIB}
-       ${LINKXX} ${version_info} -o $@ ${PLUSTHRLOBJS} -rpath ${PREFIX}${prefix}/${libdir} ${LIB} ${PLUS_EXTRA_LIB}
+       ${LINKXX} ${version_info} -o $@ ${PLUSTHRLOBJS} -rpath ${rpath} ${LIB} ${PLUS_EXTRA_LIB}
 else
 ${NOTHRLIB}: ${LIBOBJS}
-       ${LINK} ${version_info} -o $@ ${LIBLOBJS} -rpath ${PREFIX}${prefix}/${libdir} \
+       ${LINK} ${version_info} -o $@ ${LIBLOBJS} -rpath ${rpath} \
                        ${COMMON_LIB_NOTHR} ${TRIO_LIB} \
                        -lglite_security_gss_${nothrflavour}
 
 ${THRLIB}: ${LIBTHROBJS}
-       ${LINK} ${version_info} -o $@ ${LIBTHRLOBJS} -rpath ${PREFIX}${prefix}/${libdir} \
+       ${LINK} ${version_info} -o $@ ${LIBTHRLOBJS} -rpath ${rpath} \
                        ${COMMON_LIB_THR} ${TRIO_LIB} \
                        -lglite_security_gss_${thrflavour}
 
 ${NOTHRPLUSLIB}: ${PLUSOBJS} ${NOTHRLIB}
-       ${LINKXX} ${version_info} -o $@ ${PLUSLOBJS} -rpath ${PREFIX}${prefix}/${libdir} ${NOTHRLIB} ${PLUS_EXTRA_LIB}
+       ${LINKXX} ${version_info} -o $@ ${PLUSLOBJS} -rpath ${rpath} ${NOTHRLIB} ${PLUS_EXTRA_LIB}
 
 ${THRPLUSLIB}: ${PLUSTHROBJS} ${THRLIB}
-       ${LINKXX} ${version_info} -o $@ ${PLUSTHRLOBJS} -rpath ${PREFIX}${prefix}/${libdir} ${THRLIB} ${PLUS_EXTRA_LIB}
+       ${LINKXX} ${version_info} -o $@ ${PLUSTHRLOBJS} -rpath ${rpath} ${THRLIB} ${PLUS_EXTRA_LIB}
 endif
 
 logevent: logevent.o args.o
@@ -400,6 +405,9 @@ check_version:
        ${CHECK_VERSION} ${stagedir}${prefix}/include/glite/lb/common_version.h
 
 post-install:
+       rm -rfv ${PREFIX}${prefix}${libdir}/*.la
+
+post-install-rpath:
        for file in `find ${PREFIX}${prefix}/${libdir} -type f` \
                    `find ${PREFIX}${prefix}/bin -type f` \
                    `find ${PREFIX}${prefix}/sbin -type f` \
@@ -407,11 +415,14 @@ post-install:
                if test -h $$file; then continue; fi; \
                orpath=`chrpath -l $$file 2>/dev/null`; \
                if test $$? = 0 ; then \
-                       rpath=`echo $$orpath | sed 's:.*RPATH=::' | sed "s:${PREFIX}${prefix}:${sysroot}${prefix}:g" | tr ':' '\n' | grep -v '^$$' | tr '\n' ':' | sed 's/:$$//'`; \
+                       orpath=`echo $$orpath | sed 's:.*RPATH=::'`; \
+                       rpath=`echo $$orpath | sed "s:${PREFIX}${prefix}:${sysroot}${prefix}:g" | tr ':' '\n' | grep -v '^$$' | tr '\n' ':' | sed 's/:$$//'`; \
                        if test "$$orpath" = "$$rpath"; then continue; fi; \
+                       echo "$$file"; \
+                       echo " -> $$rpath"; \
                        chrpath -r $$rpath $$file; \
                        chrpath -d $$file; \
                fi; \
        done
 
-.PHONY: default all compile examples check stage install clean check_version link post-install
+.PHONY: default all compile examples check stage install clean check_version link post-install post-install-rpath
index e2b3330..18a6ccd 100755 (executable)
@@ -1165,6 +1165,10 @@ sub mode_etics {
                $cmd{compile} = 'make';
                $cmd{test} = 'make check';
                $cmd{install} = 'make install';
+               if ($subsys eq 'lb' and $module eq 'client') {
+                       $cmd{compile} = "make rpath=$project{local_prefix}/\${libdir}";
+                       $cmd{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
+               }
        }
 
        my $defprops = '';