winewrapper 2.46 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#!/bin/sh
#
# Wrapper script to run Wine and Winelib apps from inside the source tree
#
# Copyright (C) 2002 Alexandre Julliard
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
19
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 21 22 23 24
#

# first determine the directory that contains the app itself

appdir=""
25 26
name=$0

27 28 29 30
case "$0" in
  */*)
    # $0 contains a path, use it
    appdir=`dirname "$0"`
31
    name=`basename "$0"`
32 33 34 35 36 37 38 39
    ;;
  *)
    # no directory in $0, search in PATH
    saved_ifs=$IFS
    IFS=:
    for d in $PATH
    do
      IFS=$saved_ifs
40
      if [ -x "$d/$name" ]
41 42 43 44 45 46 47 48
      then
        appdir="$d"
        break
      fi
    done
    ;;
esac

49
# now find the top-level directory of the build tree
50 51 52 53 54 55 56 57 58 59

if [ -x "$appdir/server/wineserver" ]
then topdir="$appdir"
elif [ -x "$appdir/../server/wineserver" ]
then topdir="$appdir/.."
elif [ -x "$appdir/../../server/wineserver" ]
then topdir="$appdir/../.."
elif [ -x "$appdir/../../../server/wineserver" ]
then topdir="$appdir/../../.."
else
60
  echo "$name: could not locate the Wine build tree"
61 62 63 64 65 66 67
  exit 1
fi

# setup the environment

topdir=`cd "$topdir" && pwd`

68
if [ "`uname -s`" = "Darwin" ]
69
then
70 71
  if [ -n "$DYLD_LIBRARY_PATH" ]
  then
72
    DYLD_LIBRARY_PATH="$topdir/libs/wine:$DYLD_LIBRARY_PATH"
73
  else
74
    DYLD_LIBRARY_PATH="$topdir/libs/wine"
75 76
  fi
  export DYLD_LIBRARY_PATH
77
else
78 79
  if [ -n "$LD_LIBRARY_PATH" ]
  then
80
    LD_LIBRARY_PATH="$topdir/libs/wine:$LD_LIBRARY_PATH"
81
  else
82
    LD_LIBRARY_PATH="$topdir/libs/wine"
83 84
  fi
  export LD_LIBRARY_PATH
85
fi
86

87 88 89
if [ -x "$topdir/loader/$name" ]
then WINELOADER="$topdir/loader/$name"
elif [ -x "$topdir/loader/wine" ]
90 91
then WINELOADER="$topdir/loader/wine"
else
92
  echo "$name: could not find the Wine loader in $topdir"
93 94
  exit 1
fi
95
export WINELOADER
96

97 98 99 100 101 102
# any local settings ?
if [ -f "$topdir/.winewrapper" ]
then
    . $topdir/.winewrapper
fi

103 104
# and run the application

105
exec "$WINELOADER" "$@"