summaryrefslogblamecommitdiff
path: root/bin/.scala_wrapper
blob: dada98420a5e3997d986f79e2a7b91d7b1a680a5 (plain) (tree)













































































































































                                                                              
#!/bin/sh
##############################################################################
#     ____ ____  ____ ____  ______                                           #
#    / __// __ \/ __// __ \/ ____/    SOcos COmpiles Scala                   #
#  __\_ \/ /_/ / /__/ /_/ /\_ \       (c) 2002, LAMP/EPFL                    #
# /_____/\____/\___/\____/____/                                              #
#                                                                            #
##############################################################################

##############################################################################
# launch script for scala tools
#
# @author   Philippe Altherr
# @version  1.0
#
# $Id$

##############################################################################
# define prefix and script

SOURCE="$0";
while [ -h "$SOURCE" ]; do
    SCRIPT="`basename $SOURCE`";
    LOOKUP="`ls -ld "$SOURCE"`";
    TARGET="`expr "$LOOKUP" : '.*-> \(.*\)$'`";
    if expr "${TARGET:-.}/" : '/.*/$' > /dev/null; then
        SOURCE="${TARGET:-.}";
    else
        SOURCE="`dirname "$SOURCE"`/${TARGET:-.}";
    fi;
done;
PREFIX="`dirname "$SOURCE"`/..";
PREFIX="`cd "$PREFIX"; pwd`";

##############################################################################
# compute product & version

CVSTREE="false";
PRODUCT="$SCRIPT"

if [ -f "$PREFIX/VERSION" ]; then
    VERSION=`head -1 "$PREFIX/VERSION"`;
elif [ -d "$PREFIX/CVS" ]; then
    CVSTREE="true";
    VERSION="development version";
else
    VERSION="unknown version";
fi

##############################################################################
# check script name

if [ -z "$SCRIPT" ]; then
    exit 0;
fi;

case "$SCRIPT" in
    socos* | siris* | surus* )
        true;;
    *)
        echo "unknown script \`$SCRIPT'" 1>&2;
        exit 1;;
esac;

##############################################################################
# setup paths

if [ "$CVSTREE" = "true" ]; then
    BCEL_PATH="${BCEL_PATH:-/home/linuxsoft/apps/BCEL-5.0/bcel.jar}";
    MSIL_PATH="${MSIL_PATH:-/home/linuxsoft/apps/java2net/msil.jar}";
    SCALA_CLASSES="$PREFIX/classes";
    SCALA_SOURCES="$PREFIX/scala-sources";
else
    PROJECT_NAME="scala";
    LIBDIR="$PREFIX/lib";
    DATADIR="$PREFIX/share";
    BCEL_PATH="$LIBDIR/bcel.jar";
    MSIL_PATH="$LIBDIR/msil.jar";
    SCALA_CLASSES="$LIBDIR/$PROJECT_NAME.jar";
    SCALA_SOURCES="$DATADIR/$PROJECT_NAME/library";
fi;

JAVA_CLASSPATH="$SCALA_CLASSES";
JAVA_CLASSPATH="$JAVA_CLASSPATH:$BCEL_PATH";
JAVA_CLASSPATH="$JAVA_CLASSPATH:$MSIL_PATH";

SCALA_CLASSPATH="${CLASSPATH:-.}"

SCALA_BOOTCLASSPATH="$JAVA_CLASSPATH";
SCALA_BOOTCLASSPATH="$SCALA_BOOTCLASSPATH:$SCALA_SOURCES";

##############################################################################
# OS specific support

case `uname` in
    CYGWIN* )
        # For Cygwin, switch paths to Windows format before running java.
        # We assume that CLASSPATH is already in Windows format, so there
        # is nothing to do for SCALA_CLASSPATH.
        JAVA_CLASSPATH=`cygpath -w -p "$JAVA_CLASSPATH"`
        SCALA_BOOTCLASSPATH=`cygpath -w -p "$SCALA_BOOTCLASSPATH"`
        ;;
esac

##############################################################################
# select java arguments

JAVA_ARGS="-Dscala.boot.class.path='$SCALA_BOOTCLASSPATH'";
JAVA_ARGS="$JAVA_ARGS -Dscala.class.path='$SCALA_CLASSPATH'";
JAVA_ARGS="$JAVA_ARGS -Dscala.product='$PRODUCT'";
JAVA_ARGS="$JAVA_ARGS -Dscala.version='$VERSION'";
JAVA_ARGS="$JAVA_ARGS -classpath '$JAVA_CLASSPATH'";
JAVA_ARGS="$JAVA_ARGS -ms16m -enableassertions";

case "$SCRIPT" in
    *-debug* )
        JAVA_ARGS="$JAVA_ARGS -Djava.compiler=NONE";;
esac;

##############################################################################
# select main class & program arguments

# select script-specific program arguments
case "$SCRIPT" in
    socos* )
        JAVA_MAIN="scala.compiler.Main";
        ;;
    surus* )
        JAVA_MAIN="scala.interpreter.Main";
        ;;
    siris* )
        JAVA_MAIN="scala.interpreter.Main";
        MAIN_ARGS="$MAIN_ARGS -interactive";
        ;;
esac;

##############################################################################
# invoke java

eval ${SCALA_WRAPPER_EXEC:-exec} java $JAVA_ARGS $JAVA_MAIN $MAIN_ARGS '"$@"';

##############################################################################