# 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
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
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
}
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\"."
;;