X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fasdf-stub.lisp;h=1baef5f29a888df688ce5b22caf888bbc50f1d87;hb=b06500a7381d0d5a789034ab00e3f708e62805b1;hp=d084d72f4684d795ceeb74d4421ddfd33b999044;hpb=5a31671c1093aa155a7832277ebd46766eb7c6e4;p=sbcl.git diff --git a/contrib/asdf-stub.lisp b/contrib/asdf-stub.lisp index d084d72..1baef5f 100644 --- a/contrib/asdf-stub.lisp +++ b/contrib/asdf-stub.lisp @@ -1,26 +1,18 @@ -(load "../asdf/asdf") +(load "SYS:CONTRIB;ASDF;ASDF.FASL") -(setf asdf::*central-registry* - '((merge-pathnames "systems/" (truename (sb-ext:posix-getenv "SBCL_HOME"))))) -(push :sb-building-contrib *features*) -(asdf:operate 'asdf:load-op *system*) - -(defvar *system-stub* (make-pathname :name *system* :type "lisp")) - -(when (probe-file (compile-file-pathname *system-stub*)) - (error "fasl file exists")) - -(with-open-file (s *system-stub* :direction :output :if-exists :error) - (print '(unless (member "ASDF" *modules* :test #'string=) - (load (merge-pathnames "asdf/asdf.fasl" (truename (sb-ext:posix-getenv "SBCL_HOME"))))) - s) - ;; This addition to *central-registry* allows us to find contribs - ;; even if the user has frobbed the original contents. - (print `(let ((asdf:*central-registry* (cons (merge-pathnames "systems/" - (truename (sb-ext:posix-getenv "SBCL_HOME"))) - asdf:*central-registry*))) - (asdf::module-provide-asdf ,*system*)) - s)) - -(compile-file *system-stub*) -(delete-file *system-stub*) +(let ((asdf:*central-registry* nil)) + (push :sb-building-contrib *features*) + (asdf:operate 'asdf:load-op *system*) + (let ((stub (make-pathname :name *system* :type "lisp"))) + (when (probe-file (compile-file-pathname stub)) + (error "fasl file exists")) + (with-open-file (s stub :direction :output :if-exists :error) + (print '(unless (member "ASDF" *modules* :test #'string=) + (require :asdf)) + s) + ;; we find our contribs without reference to *central-registry*. + (print `(let ((asdf:*central-registry* nil)) + (asdf::module-provide-asdf ,*system*)) + s)) + (compile-file stub) + (delete-file stub)))