X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/runlisp/blobdiff_plain/82cc08353498d235b64d63baadabf84c28d3e2e2..6df280cddef4ab6cf14d7ec135c719e6c7d27040:/dump-ecl diff --git a/dump-ecl b/dump-ecl index 4ec27b4..0648d86 100755 --- a/dump-ecl +++ b/dump-ecl @@ -33,6 +33,25 @@ run () { echo "$*"; "$@"; } cat >"$tmp/ecl-build.lisp" <<'EOF' (require "asdf") +;; Defeat ASDF's built-in knowledge of itself. If we've just loaded the most +;; up-to-date version of ASDF then it won't bother loading the system +;; definition from disk which knows about the actual source files. And if it +;; doesn't think it has any source files then it won't compile anything. +(funcall (symbol-function (find-symbol "LOAD-ASD" "ASDF")) + (funcall (let* ((cache-pkg (find-package "ASDF/CACHE")) + (session-pkg (find-package "ASDF/SESSION"))) + (symbol-function + (cond (cache-pkg + (find-symbol "CALL-WITH-ASDF-CACHE" cache-pkg)) + (session-pkg + (find-symbol "CALL-WITH-ASDF-SESSION" session-pkg)) + (t + (error "I don't know how to hack this version ~ + of ASDF: please report this as a bug."))))) + (lambda () + (asdf:search-for-system-definition "asdf"))) + :name "asdf") + (defparameter *asdf* (asdf:find-system "asdf") "The `asdf' system itself.")