source: trunk/abcl/abcl.asd @ 14867

Last change on this file since 14867 was 14867, checked in by mevenson, 11 months ago

Ensure that Quicklisp as an autoload works in more places

  • Property svn:keywords set to Id
File size: 7.2 KB
Line 
1;;; -*- Mode: LISP; Syntax: COMMON-LISP -*-
2;;; $Id: abcl.asd 14867 2016-09-04 12:27:29Z mevenson $
3
4(require :asdf)
5(in-package :asdf)
6
7#+abcl
8(eval-when (:load-toplevel :execute)
9  (require :abcl-contrib)
10  (asdf:load-system :quicklisp-abcl))
11
12;;; Wrapper for all ABCL ASDF definitions.
13(defsystem :abcl :version "1.4.0")
14
15;;;  Run via (asdf:operate 'asdf:test-op :abcl :force t)
16(defmethod perform ((o test-op) (c (eql (find-system :abcl))))
17  (load-system (find-system :abcl-test-lisp))
18  (operate 'test-op :abcl-test-lisp))
19
20;;; Test ABCL with the Lisp unit tests collected in "test/lisp/abcl"
21;;;
22;;; We guard with #+abcl for tests that other Lisps cannot load.  This
23;;; could be possibly be done at finer granularity in the files
24;;; themselves.
25(defsystem :abcl-test-lisp :version "1.3.0" :components
26     ((:module abcl-rt
27                     :pathname "test/lisp/abcl/" :serial t :components
28         ((:file "rt-package")
29                      (:file "rt")
30                      (:file "test-utilities")))
31      (:module package  :depends-on (abcl-rt)
32         :pathname "test/lisp/abcl/" :components
33         ((:file "package")))
34            (:module test :depends-on (package)
35         :pathname "test/lisp/abcl/" :components
36                     ((:file "utilities")
37                      (:file "compiler-tests")
38                      (:file "condition-tests")
39                      #+abcl
40                      (:file "class-file")
41                      #+abcl
42                      (:file "metaclass")
43                      #+abcl
44                      (:file "mop-tests-setup")
45                      #+abcl
46                      (:file "mop-tests" :depends-on
47                             ("mop-tests-setup"))
48                      (:file "clos-tests")
49                      (:file "file-system-tests")
50                      #+abcl
51                      (:file "jar-pathname" :depends-on
52                             ("utilities" "pathname-tests" "file-system-tests"))
53                      #+abcl
54                      (:file "url-pathname")
55                      (:file "math-tests" :depends-on
56                             ("compiler-tests"))
57                      (:file "misc-tests")
58                      (:file "latin1-tests")
59                      (:file "bugs" :depends-on
60                             ("file-system-tests"))
61                      (:file "wild-pathnames" :depends-on
62                             ("file-system-tests"))
63                      #+abcl
64                      (:file "weak-hash-tables")
65                      #+abcl
66                      (:file "zip")
67                      #+abcl
68                      (:file "java")
69                      #+abcl
70                      (:file "pathname-tests" :depends-on
71                             ("utilities"))
72                      #+abcl
73                      (:file "runtime-class")
74                      #+abcl
75                      (:file "package-local-nicknames-tests")))))
76
77(defmethod perform ((o test-op) (c (eql (find-system 'abcl-test-lisp))))
78   "Invoke tests with (asdf:oos 'asdf:test-op :abcl-test-lisp)."
79   (funcall (intern (symbol-name 'run) :abcl.test.lisp)))
80
81;;;;
82;;;; ASDF definitions and the ANSI-TEST
83;;;;
84
85;;; We refer to the ANSI-TESTS source tree, which isn't shipped as
86;;; part of ABCL, but may be obtained at
87;;; <git+https://gitlab.common-lisp.net/ansi-test/ansi-test.git>
88
89;;; We currently require that the ANSI-TESTS to be in a sibling
90;;; directory named "ansi-tests" which should be manually synced with
91;;; the contents of the SVN repository listed above.
92
93;;; The ASDF definition for ABCL.TEST.ANSI defines VERIFY-ANSI-TESTS
94;;; which provides a more useful diagnostic, but I can't seem to find
95;;; a way to hook this into the ASDF:LOAD-OP phase
96(defsystem :ansi-rt
97  :description "Enapsulation of the REGRESSION-TEST framework use by ~
98the ANSI test suite, so that we may build on its 'API'.
99
100Requires that the contents of <git+https://gitlab.common-lisp.net/ansi-test/ansi-test.git> ~
101be in a directory named '../ansi-test/'."
102  :pathname "../ansi-test/" ;;; NB works when loaded from ASDF but not with a naked EVAL
103  :default-component-class cl-source-file.lsp
104  :components ((:file "rt-package")
105               (:file "rt" :depends-on (rt-package))))
106
107(defsystem :ansi-interpreted
108  :version "1.2"
109  :description "Test ABCL with the interpreted ANSI tests."
110  :depends-on (ansi-rt) :components
111  ((:module ansi-tests :pathname "test/lisp/ansi/" :components
112            ((:file "packages")
113             (:file "abcl-ansi" :depends-on ("packages"))
114             (:file "parse-ansi-errors" :depends-on ("abcl-ansi"))))))
115(defmethod perform :before ((o test-op) (c (eql (find-system :ansi-interpreted))))
116  (load-system :ansi-interpreted))
117
118(defmethod perform :after ((o load-op) (c (eql (find-system :ansi-interpreted))))
119  (funcall (intern (symbol-name 'load-tests) :abcl.test.ansi)))
120
121(defmethod perform ((o test-op) (c (eql (find-system :ansi-interpreted))))
122  (funcall (intern (symbol-name 'run) :abcl.test.ansi)
123     :compile-tests nil))
124
125(defsystem :ansi-compiled :version "1.2"
126           :description "Test ABCL with the compiled ANSI tests."
127           :depends-on (ansi-rt)
128           :components
129           ((:module ansi-tests :pathname "test/lisp/ansi/" :components
130                     ((:file "packages")
131                      (:file "abcl-ansi" :depends-on ("packages"))
132                      (:file "parse-ansi-errors" :depends-on ("abcl-ansi"))))))
133
134(defmethod perform :before ((o test-op) (c (eql (find-system :ansi-compiled))))
135  (load-system :ansi-compiled))
136(defmethod perform ((o test-op) (c (eql (find-system :ansi-compiled))))
137  (funcall (intern (symbol-name 'run) :abcl.test.ansi)
138     :compile-tests t))
139
140(defsystem :cl-bench
141  :description "Test ABCL with CL-BENCH."
142  :components ((:module cl-bench-package :pathname "../cl-bench/"
143                        :components ((:file "defpackage")))
144               (:module cl-bench-wrapper :pathname "test/lisp/cl-bench/"
145                        :depends-on (cl-bench-package) :components
146                        ((:file "wrapper")))))
147(defmethod perform :before ((o test-op) (c (eql (find-system :cl-bench))))
148  (load-system :cl-bench))
149(defmethod perform ((o test-op) (c (eql (find-system :cl-bench))))
150  (funcall (intern (symbol-name 'run) :abcl.test.cl-bench)))
151 
152;;; Build ABCL from a Lisp.
153;;; aka the "Lisp-hosted build system"
154;;; Works for: abcl, sbcl, clisp, cmu, lispworks, allegro, openmcl
155(defsystem :build-abcl :components
156     ((:module build :pathname ""  :components
157         ((:file "build-abcl")
158          (:file "customizations" :depends-on ("build-abcl"))))))
159
160(defsystem :abcl-contrib
161  ;; :version "1.1"
162  :components ((:static-file "README")))
163  ;; #+nil ((:module source :pathname "src/org/armedbear/lisp/" :components
164  ;;                       ((:file  "abcl-contrib")
165  ;;                        #+nil::needs-abcl-asdf (:iri "jar-file:dist/abcl-contrib.jar"))))
166
167;; XXX Currently need to force load via (asdf:load-system :abcl-contrib :force t)
168(defmethod perform ((o load-op) (c (eql (find-system :abcl-contrib))))
169 (require :abcl-contrib))
170
171(defsystem :abcl/documentation
172  :depends-on (swank)
173  :components
174  ((:module grovel :pathname "doc/manual/" :serial t
175            :components ((:file "package")
176                         (:file "grovel")))))
177
Note: See TracBrowser for help on using the repository browser.