mirror of
git://git.code.sf.net/p/sbcl/sbcl
synced 2026-09-10 07:26:40 -04:00
After this it is more-or-less possible to have the SBCL root directory be a subdirectory of the current dir. Everything in src/cold finds required files as siblings, so if SBCL is in "mumble/something/sbcl", you needn't change dir into "sbcl" but instead, while in "mumble" it works to load "something/sbcl/src/cold/shared" A quick not-too-exciting example: * (setq *sbcl-local-target-features-file* "sbcl/local-target-features.lisp-expr") "sbcl/local-target-features.lisp-expr" * (load "sbcl/src/cold/shared") T In real-world usage, the SBCL directory would be buried deeper in the tree and you don't want to physically change dir into it because reasons. It should be easier to parallelize crossbuild-runner too. With suitable input and output directories, each architecture can place its artifacts into a different fasl tree while pulling sources from the common location.
29 lines
1 KiB
Bash
Executable file
29 lines
1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
# Load our build configuration
|
|
. output/build-config
|
|
|
|
# This script has been tested with CLISP, ECL and SBCL (of course).
|
|
# Running with CCL it gets:
|
|
# > Error: Class is not yet defined or was undefined: CTYPE
|
|
# > While executing: COMPILER-LAYOUT-OR-LOSE, in process listener(1).
|
|
time $SBCL_XC_HOST <<EOF
|
|
(load "src/cold/shared.lisp")
|
|
(load "src/cold/set-up-cold-packages.lisp")
|
|
(load "tools-for-build/corefile.lisp")
|
|
(in-package "SB-COLD")
|
|
(defvar *target-sbcl-version* (read-from-file "version.lisp-expr"))
|
|
(in-host-compilation-mode
|
|
(lambda (&aux (sb-xc:*features* (cons :c-headers-only sb-xc:*features*)))
|
|
(do-stems-and-flags (stem flags 1)
|
|
(when (member :c-headers flags)
|
|
(handler-bind ((style-warning (function muffle-warning)))
|
|
(load (merge-pathnames (stem-remap-target stem) ".lisp")))))
|
|
(load "src/compiler/generic/genesis.lisp")))
|
|
(genesis :c-header-dir-name "src/runtime/genesis/" :verbose nil)
|
|
EOF
|
|
|
|
diff -r output/genesis-2 src/runtime/genesis
|
|
|
|
(cd src/runtime ; $GNUMAKE)
|