#!/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 # Licence: wxWindows licence ################################################################################ quiet=0 verbose=0 libdir= tool_prefix= install_path= cmd= Usage() { name=`basename $0` cat 1>&2 <&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=`${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 ${tool_prefix}install_name_tool -change "$oldname" $install_path/$libname $lib2" done VerboseMessage " updating $libname id" eval "$cmd ${tool_prefix}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-` ;; --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\"." ;; *) 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