From 59eabc4c7f04473efcfd305b213d78c57a2de26b Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 31 Dec 2012 15:33:49 +0000 Subject: on Mac OS X, script to embed all the dylibs that are needed svn path=/trunk/externals/pix_opencv/; revision=16796 --- embed-MacOSX-dependencies.sh | 88 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100755 embed-MacOSX-dependencies.sh diff --git a/embed-MacOSX-dependencies.sh b/embed-MacOSX-dependencies.sh new file mode 100755 index 0000000..09dba4c --- /dev/null +++ b/embed-MacOSX-dependencies.sh @@ -0,0 +1,88 @@ +#!/bin/sh +# +# This script finds all of the dependecies from Fink and included them into +# current folder so that it becomes a libdir to be installed into /Library/Pd. +# + +if [ $# -ne 1 ]; then + echo "Usage: $0 dir-to-copy-to" + exit +fi + +PD_APP_LIB=$1 + +echo " " + +for pd_darwin in `find . -name '*.pd_darwin'`; do + LIBS=`otool -L $pd_darwin | sed -n 's|.*/sw/lib/\(.*\.dylib\).*|\1|p'` + if [ "x$LIBS" != "x" ]; then + echo "`echo $pd_darwin | sed 's|.*/\(.*\.pd_darwin$\)|\1|'` is using:" + for lib in $LIBS; do + echo " $lib" + install -vp /sw/lib/$lib $PD_APP_LIB + new_lib=`echo $lib | sed 's|.*/\(.*\.dylib\)|\1|'` + install_name_tool -id @loader_path/$new_lib $PD_APP_LIB/$new_lib + install_name_tool -change /sw/lib/$lib @loader_path/$new_lib $pd_darwin + done + echo " " + fi +done + +for dylib in $PD_APP_LIB/*.dylib; do + LIBS=`otool -L $dylib | sed -n 's|.*/sw/lib/\(.*\.dylib\).*|\1|p'` + if [ "x$LIBS" != "x" ]; then + echo "`echo $dylib | sed 's|.*/\(.*\.dylib\)|\1|'` is using:" + for lib in $LIBS; do + echo " $lib" + new_lib=`echo $lib | sed 's|.*/\(.*\.dylib\)|\1|'` + if [ -e $PD_APP_LIB/$new_lib ]; then + echo "$PD_APP_LIB/$new_lib already exists, skipping copy." + else + install -vp /sw/lib/$lib $PD_APP_LIB + fi + install_name_tool -id @loader_path/$new_lib $PD_APP_LIB/$new_lib + install_name_tool -change /sw/lib/$lib @loader_path/$new_lib $dylib + done + echo " " + fi +done + +# run it one more time to catch dylibs that depend on dylibs +for dylib in $PD_APP_LIB/*.dylib; do + LIBS=`otool -L $dylib | sed -n 's|.*/sw/lib/\(.*\.dylib\).*|\1|p'` + if [ "x$LIBS" != "x" ]; then + echo "`echo $dylib | sed 's|.*/\(.*\.dylib\)|\1|'` is using:" + for lib in $LIBS; do + echo " $lib" + new_lib=`echo $lib | sed 's|.*/\(.*\.dylib\)|\1|'` + if [ -e $PD_APP_LIB/$new_lib ]; then + echo "$PD_APP_LIB/$new_lib already exists, skipping copy." + else + install -vp /sw/lib/$lib $PD_APP_LIB + fi + install_name_tool -id @loader_path/$new_lib $PD_APP_LIB/$new_lib + install_name_tool -change /sw/lib/$lib @loader_path/$new_lib $dylib + done + echo " " + fi +done + +# seems like we need it one last time! phew... +for dylib in $PD_APP_LIB/*.dylib; do + LIBS=`otool -L $dylib | sed -n 's|.*/sw/lib/\(.*\.dylib\).*|\1|p'` + if [ "x$LIBS" != "x" ]; then + echo "`echo $dylib | sed 's|.*/\(.*\.dylib\)|\1|'` is using:" + for lib in $LIBS; do + echo " $lib" + new_lib=`echo $lib | sed 's|.*/\(.*\.dylib\)|\1|'` + if [ -e $PD_APP_LIB/$new_lib ]; then + echo "$PD_APP_LIB/$new_lib already exists, skipping copy." + else + install -vp /sw/lib/$lib $PD_APP_LIB + fi + install_name_tool -id @loader_path/$new_lib $PD_APP_LIB/$new_lib + install_name_tool -change /sw/lib/$lib @loader_path/$new_lib $dylib + done + echo " " + fi +done -- cgit v1.2.1