winewrapper 2.44 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
#!/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
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#

# first determine the directory that contains the app itself

appdir=""
case "$0" in
  */*)
    # $0 contains a path, use it
    appdir=`dirname "$0"`
    ;;
  *)
    # no directory in $0, search in PATH
    saved_ifs=$IFS
    IFS=:
    for d in $PATH
    do
      IFS=$saved_ifs
      if [ -x "$d/$0" ]
      then
        appdir="$d"
        break
      fi
    done
    ;;
esac

# now find the top-level directory of the source tree

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
  echo "$0: could not locate Wine source tree"
  exit 1
fi

# setup the environment

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

if [ -n "$LD_LIBRARY_PATH" ]
then
67
  LD_LIBRARY_PATH="$topdir/dlls:$topdir/libs:$LD_LIBRARY_PATH"
68
else
69
  LD_LIBRARY_PATH="$topdir/dlls:$topdir/libs"
70 71 72 73 74 75
fi
WINEDLLPATH="$topdir/dlls:$topdir/programs"
WINESERVER="$topdir/server/wineserver"
WINELOADER="$topdir/miscemu/wine"
export LD_LIBRARY_PATH WINEDLLPATH WINESERVER WINELOADER

76 77 78 79 80 81
# any local settings ?
if [ -f "$topdir/.winewrapper" ]
then
    . $topdir/.winewrapper
fi

82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
# and run the application

case "$0" in
  wine|*/wine)
    exec "$WINELOADER" "$@"
    ;;
  */*)
    [ -f "$0.exe.so" ] && exec "$WINELOADER" "$0.exe.so" "$@"
    echo "$0: cannot find corresponding application"
    exit 1
    ;;
  *)
    [ -f "$appdir/$0.exe.so" ] && exec "$WINELOADER" "$appdir/$0.exe.so" "$@"
    echo "$0: cannot find corresponding application"
    exit 1
    ;;
esac