Add Scieneer Common Lisp support.
[bordeaux-threads:bordeaux-threads.git] / bordeaux-threads.asd
1 #|
2 Copyright 2006,2007 Greg Pfeil
3
4 Distributed under the MIT license (see LICENSE file)
5 |#
6
7 (defpackage bordeaux-threads-system
8   (:use #:cl #:asdf))
9
10 (in-package :bordeaux-threads-system)
11
12 (eval-when (:compile-toplevel :load-toplevel :execute)
13   #+allegro (require :process)
14   #+corman  (require :threads))
15
16 (eval-when (:compile-toplevel :load-toplevel :execute)
17   #+(or (and allegro multiprocessing)
18         armedbear
19         (and cmu mp)
20         scl
21         corman
22         (and digitool ccl-5.1)
23         (and ecl threads)
24         lispworks
25         (and openmcl openmcl-native-threads)
26         (and sbcl sb-thread))
27   (pushnew :thread-support *features*))
28
29 (defsystem bordeaux-threads
30   :description ""
31   :long-description ""
32   :author "Greg Pfeil <greg@technomadic.org>"
33   ;; based on original Bordeaux-MP spec by Dan Barlow <dan@telent.net>
34   ;; contributors:
35   ;; Attila Lendvai <attila.lendvai@gmail.com>
36   ;; - better handling of unsupported Lisps
37   ;; Vladimir Sekissov <svg@surnet.ru>
38   ;; - fixes for CMUCL implementation
39   ;; Pierre Thierry <nowhere.man@levallois.eu.org>
40   ;; - added license information
41   ;; Stelian Ionescu <sionescu@common-lisp.net>
42   ;; - finished conversion from generic functions
43   ;; - enabled running thread-safe code in unthreaded lisps
44   ;; Douglas Crosher <dtc@scieneer.com>
45   ;; - added Scieneer Common Lisp support
46   :licence "MIT"
47   :version "0.5.1"
48   :components ((:module "src"
49                         :serial t
50                         :components
51                         ((:file "bordeaux-threads")
52                          (:file #+(and thread-support allegro)   "allegro"
53                                 #+(and thread-support armedbear) "armedbear"
54                                 #+(and thread-support cmu)       "cmu"
55                                 #+(and thread-support scl)       "scl"
56                                 #+(and thread-support corman)    "corman"
57                                 #+(and thread-support digitool)  "mcl"
58                                 #+(and thread-support ecl)       "ecl"
59                                 #+(and thread-support lispworks) "lispworks"
60                                 #+(and thread-support openmcl)   "openmcl"
61                                 #+(and thread-support sbcl)      "sbcl"
62                                 #-thread-support                 "unsupported")
63                          (:file "default-implementations")
64                          #+(and thread-support
65                                 (or armedbear ecl lispworks digitool))
66                          (:file "condition-variables"))))
67   :in-order-to ((test-op (load-op bordeaux-threads-test)))
68   :perform (test-op :after (op c)
69                     (describe
70                      (funcall
71                       (intern (symbol-name (read-from-string "run-tests"))
72                               :lift)
73                       :suite (intern
74                               (symbol-name
75                                (read-from-string "test-bordeaux-threads"))
76                               :bordeaux-threads-test)))))
77
78 (defmethod operation-done-p ((op test-op)
79                              (c (eql (find-system :bordeaux-threads))))
80   (values nil))
81
82 (defsystem bordeaux-threads-test
83   :depends-on (bordeaux-threads lift)
84   :components ((:module "test" :components ((:file "bordeaux-threads-test")))))