Alexandre Julliard | 3536316 | 2002-05-22 21:32:49 +0000 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | # |
| 3 | # Wrapper script to run Wine and Winelib apps from inside the source tree |
| 4 | # |
| 5 | # Copyright (C) 2002 Alexandre Julliard |
| 6 | # |
| 7 | # This library is free software; you can redistribute it and/or |
| 8 | # modify it under the terms of the GNU Lesser General Public |
| 9 | # License as published by the Free Software Foundation; either |
| 10 | # version 2.1 of the License, or (at your option) any later version. |
| 11 | # |
| 12 | # This library is distributed in the hope that it will be useful, |
| 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 15 | # Lesser General Public License for more details. |
| 16 | # |
| 17 | # You should have received a copy of the GNU Lesser General Public |
| 18 | # License along with this library; if not, write to the Free Software |
Jonathan Ernst | 360a3f9 | 2006-05-18 14:49:52 +0200 | [diff] [blame] | 19 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
Alexandre Julliard | 3536316 | 2002-05-22 21:32:49 +0000 | [diff] [blame] | 20 | # |
| 21 | |
| 22 | # first determine the directory that contains the app itself |
| 23 | |
| 24 | appdir="" |
| 25 | case "$0" in |
| 26 | */*) |
| 27 | # $0 contains a path, use it |
| 28 | appdir=`dirname "$0"` |
| 29 | ;; |
| 30 | *) |
| 31 | # no directory in $0, search in PATH |
| 32 | saved_ifs=$IFS |
| 33 | IFS=: |
| 34 | for d in $PATH |
| 35 | do |
| 36 | IFS=$saved_ifs |
| 37 | if [ -x "$d/$0" ] |
| 38 | then |
| 39 | appdir="$d" |
| 40 | break |
| 41 | fi |
| 42 | done |
| 43 | ;; |
| 44 | esac |
| 45 | |
| 46 | # now find the top-level directory of the source tree |
| 47 | |
| 48 | if [ -x "$appdir/server/wineserver" ] |
| 49 | then topdir="$appdir" |
| 50 | elif [ -x "$appdir/../server/wineserver" ] |
| 51 | then topdir="$appdir/.." |
| 52 | elif [ -x "$appdir/../../server/wineserver" ] |
| 53 | then topdir="$appdir/../.." |
| 54 | elif [ -x "$appdir/../../../server/wineserver" ] |
| 55 | then topdir="$appdir/../../.." |
| 56 | else |
| 57 | echo "$0: could not locate Wine source tree" |
| 58 | exit 1 |
| 59 | fi |
| 60 | |
| 61 | # setup the environment |
| 62 | |
| 63 | topdir=`cd "$topdir" && pwd` |
| 64 | |
Alexandre Julliard | a808f38 | 2005-11-30 19:45:28 +0100 | [diff] [blame] | 65 | if [ "`uname -s`" = "Darwin" ] |
Alexandre Julliard | 3536316 | 2002-05-22 21:32:49 +0000 | [diff] [blame] | 66 | then |
Alexandre Julliard | a808f38 | 2005-11-30 19:45:28 +0100 | [diff] [blame] | 67 | if [ -n "$DYLD_LIBRARY_PATH" ] |
| 68 | then |
Alexandre Julliard | 3b2c2cd | 2006-07-11 21:32:52 +0200 | [diff] [blame] | 69 | DYLD_LIBRARY_PATH="$topdir/libs/wine:$DYLD_LIBRARY_PATH" |
Alexandre Julliard | a808f38 | 2005-11-30 19:45:28 +0100 | [diff] [blame] | 70 | else |
Alexandre Julliard | 3b2c2cd | 2006-07-11 21:32:52 +0200 | [diff] [blame] | 71 | DYLD_LIBRARY_PATH="$topdir/libs/wine" |
Alexandre Julliard | a808f38 | 2005-11-30 19:45:28 +0100 | [diff] [blame] | 72 | fi |
| 73 | export DYLD_LIBRARY_PATH |
Alexandre Julliard | 3536316 | 2002-05-22 21:32:49 +0000 | [diff] [blame] | 74 | else |
Alexandre Julliard | a808f38 | 2005-11-30 19:45:28 +0100 | [diff] [blame] | 75 | if [ -n "$LD_LIBRARY_PATH" ] |
| 76 | then |
Alexandre Julliard | 3b2c2cd | 2006-07-11 21:32:52 +0200 | [diff] [blame] | 77 | LD_LIBRARY_PATH="$topdir/libs/wine:$LD_LIBRARY_PATH" |
Alexandre Julliard | a808f38 | 2005-11-30 19:45:28 +0100 | [diff] [blame] | 78 | else |
Alexandre Julliard | 3b2c2cd | 2006-07-11 21:32:52 +0200 | [diff] [blame] | 79 | LD_LIBRARY_PATH="$topdir/libs/wine" |
Alexandre Julliard | a808f38 | 2005-11-30 19:45:28 +0100 | [diff] [blame] | 80 | fi |
| 81 | export LD_LIBRARY_PATH |
Alexandre Julliard | 3536316 | 2002-05-22 21:32:49 +0000 | [diff] [blame] | 82 | fi |
Alexandre Julliard | a808f38 | 2005-11-30 19:45:28 +0100 | [diff] [blame] | 83 | |
Alexandre Julliard | 357c740 | 2003-11-06 01:17:56 +0000 | [diff] [blame] | 84 | WINELOADER="$topdir/loader/wine" |
Alexandre Julliard | bf463ab | 2006-03-31 17:39:37 +0200 | [diff] [blame] | 85 | export WINELOADER |
Alexandre Julliard | 3536316 | 2002-05-22 21:32:49 +0000 | [diff] [blame] | 86 | |
Eric Pouech | 6a2ca01 | 2002-05-28 22:48:17 +0000 | [diff] [blame] | 87 | # any local settings ? |
| 88 | if [ -f "$topdir/.winewrapper" ] |
| 89 | then |
| 90 | . $topdir/.winewrapper |
| 91 | fi |
| 92 | |
Alexandre Julliard | 3536316 | 2002-05-22 21:32:49 +0000 | [diff] [blame] | 93 | # and run the application |
| 94 | |
| 95 | case "$0" in |
| 96 | wine|*/wine) |
| 97 | exec "$WINELOADER" "$@" |
| 98 | ;; |
| 99 | */*) |
| 100 | [ -f "$0.exe.so" ] && exec "$WINELOADER" "$0.exe.so" "$@" |
| 101 | echo "$0: cannot find corresponding application" |
| 102 | exit 1 |
| 103 | ;; |
| 104 | *) |
| 105 | [ -f "$appdir/$0.exe.so" ] && exec "$WINELOADER" "$appdir/$0.exe.so" "$@" |
| 106 | echo "$0: cannot find corresponding application" |
| 107 | exit 1 |
| 108 | ;; |
| 109 | esac |