#!/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/dlls:$topdir/library:$topdir/unicode:$LD_LIBRARY_PATH"
else
  LD_LIBRARY_PATH="$topdir/dlls:$topdir/library:$topdir/unicode"
fi
WINEDLLPATH="$topdir/dlls:$topdir/programs"
WINESERVER="$topdir/server/wineserver"
WINELOADER="$topdir/miscemu/wine"
export LD_LIBRARY_PATH WINEDLLPATH WINESERVER WINELOADER

# any local settings ?
if [ -f "$topdir/.winewrapper" ]
then
    . $topdir/.winewrapper
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
