]> git.saurik.com Git - wxWidgets.git/blobdiff - misc/scripts/set_install_name
using #ifdef wxABORT_ON_CONFIG_ERROR not just #if as elsewhere
[wxWidgets.git] / misc / scripts / set_install_name
index 80c2beed975ddc697bfd519380894844cc44f853..87b1aa13a0ef37bb53712ed55fdb2b22a21da8a2 100755 (executable)
@@ -4,34 +4,38 @@
 # Purpose:   set install_name for wx shared libraries under Mac OS X
 # Usage:     run with --help option to see the instructions
 # Copyright: (c) 2005 Vadim Zeitlin <vadim@wxwindows.org>
-# Version:   $Id$
 # Licence:   wxWindows licence
 ################################################################################
 
 quiet=0
 verbose=0
 libdir=
+tool_prefix=
 install_path=
 cmd=
 
 Usage()
 {
+    name=`basename $0`
     cat 1>&2 <<EOF
-Usage: $0 [OPTIONS] [--libdir=DIR] [install_path]
+Usage: $name [OPTIONS] [--prefix=PFX] [--libdir=DIR] [install_path]
 
 Change the install name of all wxWidgets libraries in the directory DIR (or
 current directory if libdir option is not specified) to correspond to the given
 install_path (defaults to the libraries directory if not specified).
 
+If prefix option is given, its value is prefixed to the tool names used. E.g.
+to use this script when cross-building, use "--prefix=powerpc-apple-darwin8-".
+
     -n, --dry-run       Don't really do anything, just print the commands
     -q, --quiet         Don't display any non error messages
     -v, --verbose       Just show the commands being executed, don't run them
     -h, --help          Show this help screen and exit
 
 Examples:
- * do "$0 --libdir=MyApp.app/Contents/Frameworks @executable_path/../Frameworks"
+ * do "$name --libdir=MyApp.app/Contents/Frameworks @executable_path/../Frameworks"
    when distributing wxWidgets shared libraries with application MyApp
- * run "$0" without parameters in the directory containing wxWidgets libraries
+ * run "$name" without parameters in the directory containing wxWidgets libraries
    to use them without installing
 EOF
     exit 2
@@ -65,7 +69,7 @@ GiveUsageErrorAndExit()
 ChangeInstallNames()
 {
     # only change the libs themselves, not symlinks to them
-    all_libs=`find $libdir -type f -name libwx_\*.dylib`
+    all_libs=`find "$libdir" -type f -name libwx_\*.dylib`
     if [ -z "$all_libs" ]; then
         Error "No wx libraries found in \"$libdir\"."
         exit 1
@@ -75,14 +79,14 @@ ChangeInstallNames()
 
     for lib in $all_libs; do
         libname=`basename $lib`
-        oldname=`otool -D $lib | tail -1`
+        oldname=`${tool_prefix}otool -D $lib | tail -1`
         Message "Updating install name of and references to $libname:"
         for lib2 in $all_libs; do
             VerboseMessage "    updating $lib2"
-            eval "$cmd install_name_tool -change "$oldname" $install_path/$libname $lib2"
+            eval "$cmd ${tool_prefix}install_name_tool -change "$oldname" $install_path/$libname $lib2"
         done
         VerboseMessage "    updating $libname id"
-        eval "$cmd install_name_tool -id $install_path/$libname $lib"
+        eval "$cmd ${tool_prefix}install_name_tool -id $install_path/$libname $lib"
     done
 }
 
@@ -111,6 +115,13 @@ while [ $# -ge 1 ]; do
             libdir=`echo $1 | cut -c10-`
             ;;
 
+        --prefix=*)
+            if [ -n "$tool_prefix" ]; then
+                GiveUsageErrorAndExit "At most one --prefix option can be given."
+            fi
+            tool_prefix=`echo $1 | cut -c10-`
+            ;;
+
         -*)
             GiveUsageErrorAndExit "Unknown option \"$1\"."
             ;;