1.0.42.1: add release script
[sbcl.git] / run-sbcl.sh
index 1fa7146..83f40c1 100644 (file)
@@ -1,6 +1,6 @@
+#!/bin/sh
 # A simple shell-script to run the freshly build SBCL without
-# installing it. Expects to be run from the top of the SBCL source
-# tree.
+# installing it.
 
 # This software is part of the SBCL system. See the README file for
 # more information.
 
 set -e
 
-if [ "$1" = "--help" ]; then
-    echo "usage: run-sbcl.sh sbcl-options*"
-    echo
-    echo "Runs SBCL from the build directory or binary tarball without need for"
-    echo "installation. Except for --help and --core, accepts all the same"
-    echo "command-line options as SBCL does."
-    echo
-    echo "Expects the current directory to be the topmost directory of the SBCL"
-    echo "source tree or binary tarball."
-    echo
-    exit 1
+BASE=`dirname "$0"`
+BASE=`(readlink -f ${BASE} 2> /dev/null || echo ${BASE})`
+CORE_DEFINED=no
+
+for arg in $*; do
+    case $arg in
+        (--core)
+          CORE_DEFINED=yes
+          ;;
+        (--help)
+          echo "usage: run-sbcl.sh sbcl-options*"
+          echo
+          echo "Runs SBCL from the build directory or binary tarball without need for"
+          echo "installation. Except for --help, accepts all the same command-line options"
+          echo "as SBCL does."
+          echo
+          exit 1
+          ;;
+    esac
+done
+
+ARGUMENTS=""
+
+if [ "$CORE_DEFINED" = "no" ]; then
+    ARGUMENTS="--core "$BASE"/output/sbcl.core"
 fi
 
-if [ -f sbcl-pwd.sh -a -x src/runtime/sbcl -a -f output/sbcl.core ]; then
-    . sbcl-pwd.sh
-    sbcl_pwd
-    echo "(running SBCL from: $SBCL_PWD)"
-    SBCL_HOME=$SBCL_PWD/contrib src/runtime/sbcl --core output/sbcl.core $@
-elif [ -f run-sbcl.sh -a -f version.lisp-expr ]; then
-    echo "No built SBCL here ($(pwd)): run 'sh make.sh' first!"
-    exit 1
+if [ -x "$BASE"/src/runtime/sbcl -a -f "$BASE"/output/sbcl.core ]; then
+    echo "(running SBCL from: $BASE)"
+    SBCL_HOME="$BASE"/contrib "$BASE"/src/runtime/sbcl $ARGUMENTS "$@"
 else
-    echo "No SBCL here ($(pwd))!"
-    echo
-    echo "run-sbcl.sh needs to be run from the top of the SBCL source tree or"
-    echo "binary tarball."
+    echo "No built SBCL here ($BASE): run 'sh make.sh' first!"
     exit 1
 fi