0.8.6.25:
[sbcl.git] / slam.sh
diff --git a/slam.sh b/slam.sh
index d62f0a1..95a3194 100644 (file)
--- a/slam.sh
+++ b/slam.sh
 #       file
 #    Mostly it looks as though such limitations aren't fixable without
 #    the aforementioned rearchitecting or solving the halting problem.
+#
+# To make this work, you need an after-xc.core file. To cause the 
+# system to generate an after-xc.core file, you need
+# :SB-AFTER-XC-CORE in target features during an ordinary build.
+# See the comments in base-target-features.lisp-expr for the 
+# recommended way to make that happen.
 #######################################################################
 
-if [ "" != "$*" ]; then
-    echo no command line arguments supported in this version of slam
-    exit 1
-fi
+HOST_TYPE="${1:-sbcl}"
+
+echo //HOST_TYPE=\"$HOST_TYPE\"
 
 # We don't try to be general about this in this script the way we are
 # in make.sh, since the idiosyncrasies of SBCL command line argument
@@ -68,17 +73,44 @@ fi
 # and the SBCL-vs-CMUCL dependence of --core/-core argument syntax
 # make it too messy to try deal with arbitrary SBCL_XC_HOST variants.
 # So you have no choice:
-export SBCL_XC_HOST='sbcl --noprogrammer'
+case "$HOST_TYPE" in
+    cmucl) LISP="lisp -batch"
+           INIT="-noinit"
+           CORE="-core"
+           ;;
+    sbcl)  LISP="sbcl"
+           INIT="--sysinit /dev/null --userinit /dev/null"
+           CORE="--core"
+           ;;
+    clisp) LISP="clisp"
+           INIT="-norc"
+           CORE="-M"
+           ;;
+    openmcl)
+           LISP="openmcl"
+          INIT="-b"
+          CORE="-I"
+          ;;
+    *)     echo unknown host type: "$HOST_TYPE"
+           echo should be one of "sbcl", "cmucl", or "clisp"
+           exit 1
+esac
+
+SBCL_XC_HOST="$LISP $INIT"
+export SBCL_XC_HOST
 
 # (We don't do make-host-1.sh at all. Hopefully nothing relevant has
 # changed.)
 
+. ./find-gnumake.sh
+find_gnumake
+
 sh make-target-1.sh || exit 1
 
 # Instead of doing the full make-host-2.sh, we (1) use after-xc.core
 # to rebuild only obviously-out-of-date Lisp files, then (2) run
 # GENESIS.
-sbcl --core output/after-xc.core --sysinit /dev/null --userinit /dev/null <<'EOF' || exit 1
+$LISP $CORE output/after-xc.core $INIT <<'EOF' || exit 1
   (load "src/cold/slam.lisp")
 EOF
 # (This ^ used to be