| #!/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 | |
| LD_LIBRARY_PATH="$topdir/libs:$LD_LIBRARY_PATH" | |
| else | |
| LD_LIBRARY_PATH="$topdir/libs" | |
| fi | |
| if [ -n "$WINEDLLPATH" ] | |
| then | |
| WINEDLLPATH="$topdir/dlls:$topdir/programs:$WINEDLLPATH" | |
| else | |
| WINEDLLPATH="$topdir/dlls:$topdir/programs" | |
| fi | |
| WINESERVER="$topdir/server/wineserver" | |
| WINELOADER="$topdir/loader/wine" | |
| export LD_LIBRARY_PATH WINEDLLPATH WINESERVER WINELOADER | |
| # any local settings ? | |
| if [ -f "$topdir/.winewrapper" ] | |
| then | |
| . $topdir/.winewrapper | |
| fi | |
| # create prefix directory if needed | |
| if [ -z "$WINEPREFIX" -a ! -d "$HOME/.wine" ] | |
| then | |
| "$topdir/tools/wineprefixcreate" --update --use-wine-tree "$topdir" | |
| fi | |
| # 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 |