1 ;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*-
4 Copyright 2006,2007 Greg Pfeil
6 Distributed under the MIT license (see LICENSE file)
9 #.(unless (or #+asdf3.1 (version<= "3.1" (asdf-version)))
10 (error "You need ASDF >= 3.1 to load this system correctly."))
12 (eval-when (:compile-toplevel :load-toplevel :execute)
14 (and allegro multiprocessing)
17 (and openmcl openmcl-native-threads)
24 (and digitool ccl-5.1)
27 (pushnew :thread-support *features*))
29 (defsystem :bordeaux-threads
30 :author "Greg Pfeil <greg@technomadic.org>"
32 :description "Bordeaux Threads makes writing portable multi-threaded apps simple."
33 :version (:read-file-form "version.sexp")
34 :depends-on (:alexandria
35 #+(and allegro (version>= 9)) (:require "smputil")
36 #+(and allegro (not (version>= 9))) (:require "process")
37 #+corman (:require "threads"))
38 :components ((:static-file "version.sexp")
43 (:file "bordeaux-threads")
44 (:file #+(and thread-support armedbear) "impl-abcl"
45 #+(and thread-support allegro) "impl-allegro"
46 #+(and thread-support clasp) "impl-clasp"
47 #+(and thread-support clisp) "impl-clisp"
48 #+(and thread-support openmcl) "impl-clozure"
49 #+(and thread-support cmu) "impl-cmucl"
50 #+(and thread-support corman) "impl-corman"
51 #+(and thread-support ecl) "impl-ecl"
52 #+(and thread-support genera) "impl-genera"
53 #+(and thread-support mkcl) "impl-mkcl"
54 #+(and thread-support lispworks) "impl-lispworks"
55 #+(and thread-support digitool) "impl-mcl"
56 #+(and thread-support sbcl) "impl-sbcl"
57 #+(and thread-support scl) "impl-scl"
58 #-thread-support "impl-null")
59 #+(and thread-support lispworks (or lispworks4 lispworks5))
60 (:file "impl-lispworks-condition-variables")
61 #+(and thread-support digitool)
62 (:file "condition-variables")
63 (:file "default-implementations")))))
65 (defsystem :bordeaux-threads/test
66 :author "Greg Pfeil <greg@technomadic.org>"
67 :description "Bordeaux Threads test suite."
69 :version (:read-file-form "version.sexp")
70 :depends-on (:bordeaux-threads :fiveam)
71 :components ((:module "test"
72 :components ((:file "bordeaux-threads-test")))))
74 (defmethod perform ((o test-op) (c (eql (find-system :bordeaux-threads))))
75 (load-system :bordeaux-threads/test)
76 (symbol-call :5am :run! :bordeaux-threads))