--- /dev/null
+#!/bin/sh
+#
+# Name: set_install_name
+# 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=
+install_path=
+cmd=
+
+Usage()
+{
+ cat 1>&2 <<EOF
+Usage: $0 [OPTIONS] [--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).
+
+ -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"
+ when distributing wxWidgets shared libraries with application MyApp
+ * run "$0" without parameters in the directory containing wxWidgets libraries
+ to use them without installing
+EOF
+ exit 2
+}
+
+Message()
+{
+ if [ $quiet != 1 ]; then
+ echo "$*"
+ fi
+}
+
+VerboseMessage()
+{
+ if [ $verbose = 1 ]; then
+ Message "$*"
+ fi
+}
+
+Error()
+{
+ echo "$*" 1>&2
+}
+
+GiveUsageErrorAndExit()
+{
+ Error "$@"
+ Usage
+}
+
+ChangeInstallNames()
+{
+ # only change the libs themselves, not symlinks to them
+ all_libs=`find $libdir -type f -name libwx_\*.dylib`
+ if [ -z "$all_libs" ]; then
+ Error "No wx libraries found in \"$libdir\"."
+ exit 1
+ fi
+
+ VerboseMessage "Processing $all_libs\n"
+
+ for lib in $all_libs; do
+ libname=`basename $lib`
+ oldname=`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"
+ done
+ VerboseMessage " updating $libname id"
+ eval "$cmd install_name_tool -id $install_path/$libname $lib"
+ done
+}
+
+while [ $# -ge 1 ]; do
+ case "$1" in
+ --help|-h)
+ Usage
+ ;;
+
+ --dry-run|-n)
+ cmd="echo"
+ ;;
+
+ --quiet|-q)
+ quiet=1
+ ;;
+
+ --verbose|-v)
+ verbose=1
+ ;;
+
+ --libdir=*)
+ if [ -n "$libdir" ]; then
+ GiveUsageErrorAndExit "Multiple --libdir options not allowed."
+ fi
+ libdir=`echo $1 | cut -c10-`
+ ;;
+
+ -*)
+ GiveUsageErrorAndExit "Unknown option \"$1\"."
+ ;;
+
+ *)
+ if [ -n "$install_path" ]; then
+ GiveUsageErrorAndExit "Too many parameters."
+ fi
+ install_path=$1
+ esac
+
+ shift
+done
+
+if [ -z $libdir ]; then
+ libdir=`pwd`
+fi
+
+if [ -z $install_path ]; then
+ install_path=$libdir
+fi
+
+ChangeInstallNames
+
+exit 0