2 Copyright 2006,2007 Greg Pfeil
4 Distributed under the MIT license (see LICENSE file)
7 (defpackage bordeaux-threads-system
10 (in-package :bordeaux-threads-system)
12 (eval-when (:compile-toplevel :load-toplevel :execute)
13 #+allegro (require :process)
14 #+corman (require :threads))
16 (eval-when (:compile-toplevel :load-toplevel :execute)
17 #+(or (and allegro multiprocessing)
22 (and digitool ccl-5.1)
25 (and openmcl openmcl-native-threads)
27 (pushnew :thread-support *features*))
29 (defsystem bordeaux-threads
32 :author "Greg Pfeil <greg@technomadic.org>"
33 ;; based on original Bordeaux-MP spec by Dan Barlow <dan@telent.net>
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
48 :components ((:module "src"
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")
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)
71 (intern (symbol-name (read-from-string "run-tests"))
75 (read-from-string "test-bordeaux-threads"))
76 :bordeaux-threads-test)))))
78 (defmethod operation-done-p ((op test-op)
79 (c (eql (find-system :bordeaux-threads))))
82 (defsystem bordeaux-threads-test
83 :depends-on (bordeaux-threads lift)
84 :components ((:module "test" :components ((:file "bordeaux-threads-test")))))