diff --git a/packages/darwin_app/embed-MacOSX-dependencies.sh b/packages/darwin_app/embed-MacOSX-dependencies.sh index e33a5e6cae66dcc9b45abab0789156e3962acc95..5b55401aff8323aed6aca87dd31dc32136cfe54b 100755 --- a/packages/darwin_app/embed-MacOSX-dependencies.sh +++ b/packages/darwin_app/embed-MacOSX-dependencies.sh @@ -78,7 +78,7 @@ for dylib in $PD_APP_LIB/*.dylib; do fi done -# run it one more time to catch dylibs that depend on dylibs +# run it again to catch dylibs that depend on dylibs located in /usr/local/opt for dylib in $PD_APP_LIB/*.dylib; do LIBS=`otool -L $dylib | sed -n 's|.*/usr/local/opt/\(.*\.dylib\).*|\1|p'` if [ "x$LIBS" != "x" ]; then @@ -99,3 +99,24 @@ for dylib in $PD_APP_LIB/*.dylib; do fi done +# finally, run it one more time to catch dylibs that depend on dylibs from +# /usr/local/lib +for dylib in $PD_APP_LIB/*.dylib; do + LIBS=`otool -L $dylib | sed -n 's|.*/usr/local/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 /usr/local/lib/$lib $PD_APP_LIB + fi + # @executable_path starts from Contents/Resources/app.nw/bin/pd + install_name_tool -id @executable_path/../../../$LIB_DIR/$new_lib $PD_APP_LIB/$new_lib + install_name_tool -change /usr/local/lib/$lib @executable_path/../../../$LIB_DIR/$new_lib $dylib + done + echo " " + fi +done