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

movable paths 2


diffs (93 lines):

diff --git a/tools/embedded/embedded.c b/tools/embedded/embedded.c
--- a/tools/embedded/embedded.c
+++ b/tools/embedded/embedded.c
@@ -73,7 +73,7 @@ void monetdb_disconnect(void* conn) {
        MCcloseClient((Client) conn);
 }
 
-char* monetdb_startup(char* installdir, char* dbdir, char silent) {
+char* monetdb_startup(char* libdir, char* dbdir, char silent) {
        opt *set = NULL;
        int setlen = 0;
        str retval = MAL_SUCCEED;
@@ -102,7 +102,7 @@ char* monetdb_startup(char* installdir, 
                retval = GDKstrdup("GDKinit() failed");
                goto cleanup;
        }
-       snprintf(mod_path, 1000, "%s/lib/monetdb5", installdir);
+       snprintf(mod_path, 1000, "%s/monetdb5", libdir);
        GDKsetenv("monet_mod_path", mod_path);
        GDKsetenv("mapi_disable", "true");
        GDKsetenv("max_clients", "0");
diff --git a/tools/embedded/embedded.h b/tools/embedded/embedded.h
--- a/tools/embedded/embedded.h
+++ b/tools/embedded/embedded.h
@@ -22,7 +22,7 @@ extern int monetdb_embedded_initialized;
 
 void* monetdb_connect();
 void  monetdb_disconnect(void* conn);
-char* monetdb_startup(char* installdir, char* dbdir, char silent);
+char* monetdb_startup(char* libdir, char* dbdir, char silent);
 char* monetdb_query(void* conn, char* query, void** result);
 char* monetdb_append(void* conn, const char* schema, const char* table, 
append_data *data, int ncols);
 void  monetdb_cleanup_result(void* conn, void* output);
diff --git a/tools/embedded/rpackage/configure 
b/tools/embedded/rpackage/configure
--- a/tools/embedded/rpackage/configure
+++ b/tools/embedded/rpackage/configure
@@ -1,7 +1,7 @@
 #!/bin/sh
 cd src
 
-CFLAGS="-I$R_INCLUDE_DIR" ./configure --prefix=$R_PACKAGE_DIR/libs \
+CFLAGS="-I$R_INCLUDE_DIR" ./configure --prefix=$R_PACKAGE_DIR/iprefix \
 --enable-embedded --disable-fits --disable-geom --disable-rintegration 
--disable-gsl --disable-netcdf \
 --disable-jdbc --disable-merocontrol --disable-odbc --disable-console 
--disable-microhttpd \
 --without-perl --without-python2 --without-python3 --without-rubygem 
--without-unixodbc \
@@ -15,31 +15,36 @@ make -j install
 echo -e "dummytarget:\n\ttrue\n" > Makefile
 cd ..
 
-# Normally, the installer would create the libs dir, but only after make, so 
we need to create this as well
-mkdir -p $R_PACKAGE_DIR/libs/
-
 # and finally put the embedded library where R expects it
 RDYNLIB=$R_PACKAGE_DIR/libs/libmonetdb5.so
 # TODO: this number should probably be pulled from automake and friends
 VER=1
-if [ -f "$R_PACKAGE_DIR/libs/lib/libembeddedr.$VER.dylib" ]; then
-    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
+mv $R_PACKAGE_DIR/iprefix/lib $R_PACKAGE_DIR/libs      
+
+# OSX: patch loader paths so installed pkg can be moved around in FS
+if [ -f "$R_PACKAGE_DIR/libs/libembeddedr.$VER.dylib" ]; then
+       mv $R_PACKAGE_DIR/libs/libembeddedr.$VER.dylib $RDYNLIB
+       for dylb in `find $R_PACKAGE_DIR/libs -type f -name "*.dylib" -o -name 
"*.so"` ; do
                echo "Now checking dynamic library $dylb"
                install_name_tool -id `basename $dylb` $dylb
+               dylbdir=`dirname $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`
+                       relpath=`realpath --relative-to $dylbdir 
$R_PACKAGE_DIR/libs`
+                       relref=@loader_path/$relpath/`basename $ref`
                        echo "Found absolute linker reference to $ref, changing 
to $relref"
                        install_name_tool -change $ref $relref $dylb
                done
        done
+       find $R_PACKAGE_DIR/libs/ -type l -delete
+       find $R_PACKAGE_DIR/libs/ -name "*.la" -delete
+       rm -r $R_PACKAGE_DIR/libs/pkgconfig
 fi
-if [ -f "$R_PACKAGE_DIR/libs/lib/libembeddedr.so.$VER" ]; then
-    ln -s $R_PACKAGE_DIR/libs/lib/libembeddedr.so.$VER $RDYNLIB
+if [ -f "$R_PACKAGE_DIR/libs/libembeddedr.so.$VER" ]; then
+    mv $R_PACKAGE_DIR/libs/libembeddedr.so.$VER $RDYNLIB
 fi
+rm -r $R_PACKAGE_DIR/iprefix
+
 if [ ! -f $RDYNLIB ]; then
        echo "configure/build failure"
     exit -1
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to