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