summaryrefslogtreecommitdiff
path: root/devel/cl-asdf/files/asdf-init.lisp
diff options
context:
space:
mode:
authorJimmy Olgeni <olgeni@FreeBSD.org>2010-01-20 18:09:01 +0000
committerJimmy Olgeni <olgeni@FreeBSD.org>2010-01-20 18:09:01 +0000
commit53c2e94613975615837faf148b2d4d08ef284911 (patch)
tree37c835b502e75ca1ead5786702de3faa5760eed1 /devel/cl-asdf/files/asdf-init.lisp
parent- Mark BROKEN on 6.x (diff)
Fix fasl loading by using an asdf:*source-to-target-mappings* entry
for each installed cl-* port. Previously, some fasl files were either rebuilt when running as root, or failed to load due to permission errors for normal users.
Diffstat (limited to 'devel/cl-asdf/files/asdf-init.lisp')
-rw-r--r--devel/cl-asdf/files/asdf-init.lisp11
1 files changed, 9 insertions, 2 deletions
diff --git a/devel/cl-asdf/files/asdf-init.lisp b/devel/cl-asdf/files/asdf-init.lisp
index 9913c1fc1800..1b6eed38dd31 100644
--- a/devel/cl-asdf/files/asdf-init.lisp
+++ b/devel/cl-asdf/files/asdf-init.lisp
@@ -232,6 +232,11 @@ clispfasl, ...) by calling lisp-specific-fasl-subdir."
:type "fasl"
:defaults default-output-file))))
+;; Map each library in common-lisp/ to its fasl subdirectory
+(dolist (path (directory "%%PREFIX%%/lib/common-lisp/*/"))
+ (let ((fasldir (make-pathname :directory (append (pathname-directory path) (list (lisp-specific-fasl-subdir))))))
+ (pushnew (list path fasldir) asdf:*source-to-target-mappings*)))
+
(if (and (getenv "FBSD_ASDF_COMPILE_PORT")
(getenv "PORTNAME")
(getenv "WRKSRC"))
@@ -239,7 +244,9 @@ clispfasl, ...) by calling lisp-specific-fasl-subdir."
(portname (getenv "PORTNAME")))
;; If we are building a FreeBSD port, all the compiled fasl files
;; should be redirected to WRKSRC.
- (let ((package (format nil "%%PREFIX%%/lib/common-lisp/~A/" portname)))
- (pushnew (list package wrksrc) asdf:*source-to-target-mappings*))))
+ (let ((port-source (make-pathname
+ :directory (append (pathname-directory #P"%%PREFIX%%/lib/common-lisp/")
+ (list portname)))))
+ (pushnew (list port-source wrksrc) asdf:*source-to-target-mappings*))))
;;;; asdf-init.lisp ends here