#!/bin/sh
+# ("smooth duct tape: the mark of a true craftsman":-)
+
# a quick and dirty way of partially rebuilding the system after a
# change
#
# This script is not a reliable way to build the system, but it is
# fast.:-| It can be useful if you are trying to debug a low-level
-# problem, e.g. a problem in src/runtime/*.c or in src/code/unix.lisp,
-# and you find yourself wanting to make a small change and test it
-# without going through the entire build-the-system-from-scratch
-# cycle.
+# problem, e.g. a problem in src/runtime/*.c or in
+# src/code/cold-init.lisp, and you find yourself wanting to make a
+# small change and test it without going through the entire
+# build-the-system-from-scratch cycle.
#
# You probably don't want to be using this script unless you
-# understand the system build process to be able to guess when it
-# won't work.
-
+# understand the system build process well enough to be able to guess
+# when it won't work.
# This software is part of the SBCL system. See the README file for
# more information.
# provided with absolutely no warranty. See the COPYING and CREDITS
# files for more information.
+if [ "" != "$*" ]; then
+ echo no command line arguments supported in this version of slam
+ exit 1
+fi
-export SBCL_XC_HOST="${1:-sbcl --noprogrammer}"
+# We don't try to be general about this in this script the way we are
+# in make.sh, since (1) we use our command line args as names of files
+# to recompile, and (2) the idiosyncrasies of SBCL command line
+# argument order dependence, the meaninglessness of duplicate --core
+# arguments, and the SBCL-vs-CMUCL dependence of --core/-core argument
+# syntax make it too messy to try deal with arbitrary SBCL commands.
+# So you have no choice:
+export SBCL_XC_HOST='sbcl --noprogrammer'
# (We don't do make-host-1.sh at all. Hopefully nothing relevant has
# changed.)
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 the specifically-requested Lisp files (or skip
-# after-xc.core completely if no Lisp files are specifically
-# requested), then (2) run GENESIS.
+# to rebuild only obviously-out-of-date Lisp files, then (2) run
+# GENESIS.
+sbcl --core output/after-xc.core <<'EOF' || exit 1
+ (load "src/cold/slam.lisp")
+EOF
+# (This ^ used to be
+# for f in $*; do echo "(target-compile-stem \"$f\")"; done \
+# | sbcl --core output/after-xc.core || exit 1
+# and perhaps we do something like this again, allowing explicit
+# rebuild-this-stem requests on the command line to supplement
+# the rebuild-obviously-outdated-stems logic above.)
#
-# Our command line arguments are the stems that we'll use
-# after-xc.core to recompile. If there are no command line arguments,
-# though, make a point of not calling after-xc.core, since it might
-# not exist, and there's no point in causing a fatal failure (by
-# unsuccessfully trying to execute it) unnecessarily.
-if [ "$*" != "" ] ; then
- # Actually, I wrote this script when I needed to do a lot of
- # tweaking in src/runtime/*.c, and I haven't tried to make it
- # work for src/code/*.c yet. -- WHN 2001-05-12
- echo stub: no support yet for after-xc.core
- exit 1
-fi
sh make-genesis-2.sh || exit 1
sh make-target-2.sh || exit 1