source: release/1.2/source/tools/asdf-install/load-asdf-install.lisp @ 9219

Last change on this file since 9219 was 9219, checked in by gb, 11 years ago

synch from trunk

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.7 KB
Line 
1;;; -*- Mode: Lisp -*-
2
3;;; load-asdf-install.lisp --
4;;; Generic loader for ASDF-INSTALL.
5
6(eval-when (:load-toplevel :execute)
7  (unless (find-package '#:asdf-install-loader)
8    (make-package '#:asdf-install-loader :use '(#:common-lisp))))
9
10(in-package :asdf-install-loader)
11
12(eval-when (:compile-toplevel :load-toplevel :execute)
13  (defparameter *asdf-install-directory*
14    (make-pathname :host (pathname-host *load-truename*)
15                   :device (pathname-device *load-truename*)
16                   :directory (pathname-directory *load-truename*)
17                   ;; :case :common ; Do we need this?
18                   )))
19
20
21(defun cl-user::load-asdf-install
22  (&key
23   (directory *asdf-install-directory*)
24   (compile-first-p nil)
25   (load-verbose *load-verbose*)
26   (print-herald t)
27   )
28  (when print-herald
29    (format *standard-output*
30            "~&;;; ASDF-INSTALL: Loading ASDF-INSTALL package from directory~@
31               ;;;               \"~A\"~2%"
32            (namestring (pathname directory))))
33  (let ((directory (pathname directory)))
34    (flet ((load-and-or-compile (file)
35             (if compile-first-p
36                 (multiple-value-bind (output-truename warnings-p failure-p)
37                     (compile-file file)
38                   ;; (declare (ignore warnings-p))
39                   (when failure-p
40                     (format *standard-output*
41                             ";;; File ~S compiled~@
42                              ;;; Warnings ~S, Failure ~S.~%"
43                             output-truename
44                             warnings-p
45                             failure-p)
46                     (return-from cl-user::load-asdf-install nil)
47                     )
48                   (load output-truename :verbose load-verbose))
49                 (load file :verbose load-verbose)))
50           )
51
52      (setf (logical-pathname-translations "ASDF-INSTALL-LIBRARY")
53            `(("**;*.*.*"
54               ,(make-pathname
55                 :host (pathname-host directory)
56                 :device (pathname-device directory)
57                 :directory (append (pathname-directory directory)
58                                    (list :wild-inferiors))))
59              ("**;*.*"
60               ,(make-pathname
61                 :host (pathname-host directory)
62                 :device (pathname-device directory)
63                 :directory (append (pathname-directory directory)
64                                    (list :wild-inferiors))))))
65
66      (load-and-or-compile "ASDF-INSTALL-LIBRARY:defpackage.lisp")
67      (load-and-or-compile "ASDF-INSTALL-LIBRARY:port.lisp")
68
69      (unless (find-package '#:split-sequence)
70        (load-and-or-compile "ASDF-INSTALL-LIBRARY:split-sequence.lisp"))
71
72      (load-and-or-compile "ASDF-INSTALL-LIBRARY:installer.lisp")
73
74      ;; (load-and-or-compile "ASDF-INSTALL-LIBRARY:loader.lisp")
75
76      ))
77  (pushnew :asdf-install *features*)
78  (provide 'asdf-install)
79
80  ;; To clean a minimum (and to make things difficult to debug)...
81  ;; (delete-package '#:asdf-install-loader)
82  )
83
84
85;;; Automatically load the library.
86
87(eval-when (:load-toplevel :execute)
88  (cl-user::load-asdf-install))
89
90;;; end of file -- load-asdf-install.lisp --
Note: See TracBrowser for help on using the repository browser.