X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=slam.sh;h=95a3194b5af17652e344a32f6d02b1dbf30a16af;hb=6e89948ce34d63b35eea687ca7cde0f2876c3062;hp=366e0f6b46e1dbb551d35d85f28ef9ed2431fa29;hpb=f0d511130027c6878f08d619ccc92ef588d81223;p=sbcl.git diff --git a/slam.sh b/slam.sh index 366e0f6..95a3194 100644 --- a/slam.sh +++ b/slam.sh @@ -55,12 +55,17 @@ # 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 --disable-debugger' +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