Changeset: 71fd89daf964 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=71fd89daf964
Modified Files:
        tools/embedded/rpackage/configure
Branch: embedded
Log Message:

Evil linker hack for OSX to allow running from different fs path, needed for 
binary package


diffs (28 lines):

diff --git a/tools/embedded/rpackage/configure 
b/tools/embedded/rpackage/configure
--- a/tools/embedded/rpackage/configure
+++ b/tools/embedded/rpackage/configure
@@ -23,10 +23,22 @@ RDYNLIB=$R_PACKAGE_DIR/libs/libmonetdb5.
 # TODO: this number should probably be pulled from automake and friends
 VER=1
 if [ -f "$R_PACKAGE_DIR/libs/lib/libembeddedr.$VER.dylib" ]; then
-    cp $R_PACKAGE_DIR/libs/lib/libembeddedr.$VER.dylib $RDYNLIB
+    ln -s $R_PACKAGE_DIR/libs/lib/libembeddedr.$VER.dylib $RDYNLIB
+    # patch loader paths so installed pkg can be moved around in fs
+       for dylb in `find $R_PACKAGE_DIR/libs/lib/ -type f -name "*.dylib" -o 
-name "*.so"` ; do
+               echo "Now checking dynamic library $dylb"
+               install_name_tool -id `basename $dylb` $dylb
+               for ref in `otool -L $dylb | \
+                       tail -n +2 | grep MonetDBLite | sed -e 
"s/[[:blank:]]//g" -e "s/([^)]*)//g"` ; do
+                       curlibdir=`dirname $dylb`
+                       relref=@loader_path/`realpath --relative-to $curlibdir 
$ref`
+                       echo "Found absolute linker reference to $ref, changing 
to $relref"
+                       install_name_tool -change $ref $relref $dylb
+               done
+       done
 fi
 if [ -f "$R_PACKAGE_DIR/libs/lib/libembeddedr.so.$VER" ]; then
-    cp $R_PACKAGE_DIR/libs/lib/libembeddedr.so.$VER $RDYNLIB
+    ln -s $R_PACKAGE_DIR/libs/lib/libembeddedr.so.$VER $RDYNLIB
 fi
 if [ ! -f $RDYNLIB ]; then
        echo "configure/build failure"
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to