Fix make-array transforms.
[sbcl.git] / run-sbcl.sh
old mode 100644 (file)
new mode 100755 (executable)
index 83f40c1..da5775b
 
 set -e
 
-BASE=`dirname "$0"`
-BASE=`(readlink -f ${BASE} 2> /dev/null || echo ${BASE})`
+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
 
-for arg in $*; do
-    case $arg in
-        (--core)
+for arg in "$@"; do
+    case "$arg" in
+        --core)
           CORE_DEFINED=yes
           ;;
-        (--help)
+        --help)
           echo "usage: run-sbcl.sh sbcl-options*"
           echo
           echo "Runs SBCL from the build directory or binary tarball without need for"
@@ -41,8 +54,8 @@ if [ "$CORE_DEFINED" = "no" ]; then
 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 $ARGUMENTS "$@"
+    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