Fix make-array transforms.
[sbcl.git] / run-sbcl.sh
old mode 100644 (file)
new mode 100755 (executable)
index d14b202..da5775b
 
 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
-    exit 1
-fi
+this="$0"
+
+# OSX 10.8 readlink doesn't have -f
+while [ -h "$this" ]; do
+    # [ -h should guarantee that readlink output will be non-null
+    link=`readlink -n "$this"`
+    # if absolute path
+    if expr "$link" : '^/.*' > /dev/null; then
+        this="$link"
+    else
+        this=`dirname "$this"`/"$link"
+    fi
+done
+BASE=`dirname "$this"`
+
+CORE_DEFINED=no
 
-BASE=`dirname "$0"`
+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 [ -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 --core "$BASE"/output/sbcl.core "$@"
+    echo "(running SBCL from: $BASE)" 1>&2
+    SBCL_HOME="$BASE/obj/sbcl-home" exec "$BASE"/src/runtime/sbcl $ARGUMENTS "$@"
 else
     echo "No built SBCL here ($BASE): run 'sh make.sh' first!"
     exit 1