1 ;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*-
3 (asdf:defsystem :iolib/asdf
4 :description "A few ASDF component classes."
5 :author "Stelian Ionescu <sionescu@cddr.org>"
6 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
7 :version (:read-file-form "version.lisp-expr")
9 :depends-on (:alexandria)
15 (asdf:defsystem :iolib/conf
16 :description "Compile-time configuration for IOLib."
17 :author "Stelian Ionescu <sionescu@cddr.org>"
18 :version (:read-file-form "version.lisp-expr")
20 :defsystem-depends-on (:iolib/asdf)
21 :around-compile "iolib.asdf:compile-wrapper"
26 (:file "requires" :depends-on ("pkgdcl"))))
28 (asdf:defsystem :iolib/common-lisp
29 :description "Slightly modified Common Lisp."
30 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
31 :version (:read-file-form "version.lisp-expr")
33 :defsystem-depends-on (:iolib/asdf :iolib/conf)
34 :depends-on (:alexandria)
35 :around-compile "iolib.asdf:compile-wrapper"
37 :pathname "src/new-cl/"
40 #+scl (:file "scl-gray-streams")
41 (:file "pkgdcl" :depends-on ("conduits" #+scl "scl-gray-streams")
43 (asdf:compile-op :before (o c)
44 (asdf/package:symbol-call :iolib/conf '#:load-gray-streams))
46 (asdf:load-op :before (o c)
47 (asdf/package:symbol-call :iolib/conf '#:load-gray-streams))
49 (asdf:load-source-op :before (o c)
50 (asdf/package:symbol-call :iolib/conf '#:load-gray-streams)))
52 :depends-on ("pkgdcl" #+scl "scl-gray-streams"))
53 (:file "definitions" :depends-on ("pkgdcl"))
54 (:file "types" :depends-on ("pkgdcl"))))
56 (asdf:defsystem :iolib/base
57 :description "Base IOlib package, used instead of CL."
58 :author "Stelian Ionescu <sionescu@cddr.org>"
59 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
60 :version (:read-file-form "version.lisp-expr")
62 :defsystem-depends-on (:iolib/asdf :iolib/conf)
63 :depends-on (:iolib/common-lisp :alexandria :split-sequence)
64 :around-compile "iolib.asdf:compile-wrapper"
69 (:file "return-star" :depends-on ("pkgdcl"))
70 (:file "types" :depends-on ("pkgdcl" "return-star"))
71 (:file "debug" :depends-on ("pkgdcl" "return-star"))
72 (:file "conditions" :depends-on ("pkgdcl" "return-star"))
73 (:file "defalias" :depends-on ("pkgdcl" "return-star"))
74 (:file "deffoldable" :depends-on ("pkgdcl" "return-star"))
75 (:file "defobsolete" :depends-on ("pkgdcl" "return-star"))
76 (:file "reader" :depends-on ("pkgdcl" "return-star" "conditions"))
77 (:file "sequence" :depends-on ("pkgdcl" "return-star"))
78 (:file "matching" :depends-on ("pkgdcl" "return-star"))
79 (:file "time" :depends-on ("pkgdcl" "return-star"))
80 (:file "dynamic-buffer" :depends-on ("pkgdcl" "return-star" "sequence"))))
82 (asdf:defsystem :iolib/grovel
83 :description "The CFFI Groveller"
84 :author "Dan Knapp <dankna@accela.net>"
85 :defsystem-depends-on (:iolib/asdf :iolib/conf)
86 :depends-on (:alexandria :cffi :iolib/asdf :iolib/conf)
87 :around-compile "iolib.asdf:compile-wrapper"
90 :pathname "src/grovel/"
94 (:static-file "grovel-common.h")
98 :perform (asdf:compile-op :before (o c)
99 #+allegro (require "osi"))
100 :perform (asdf:load-op :before (o c)
101 #+allegro (require "osi"))
102 :perform (asdf:load-source-op :before (o c)
103 #+allegro (require "osi")))
105 (asdf:defsystem :iolib/syscalls
106 :description "Syscalls and foreign types."
107 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
108 :version (:read-file-form "version.lisp-expr")
110 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
111 :depends-on (:trivial-features :cffi :iolib/base :iolib/grovel)
112 :around-compile "iolib.asdf:compile-wrapper"
114 :pathname "src/syscalls/"
118 (:file "syscall-path-strings" :pathname "unix-syscall-path-strings")
119 ;; Platform-specific files
120 (:iolib-grovel-file "ffi-types" :pathname #+unix "ffi-types-unix")
122 (:file "os-conditions" :pathname #+unix "os-conditions-unix")
123 (:file "designators")
125 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix"))
128 (asdf:defsystem :iolib/multiplex
129 :description "I/O multiplexing library."
130 :author "Stelian Ionescu <sionescu@cddr.org>"
131 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
132 :version (:read-file-form "version.lisp-expr")
134 :defsystem-depends-on (:iolib/asdf :iolib/conf)
135 :depends-on (:iolib/base :iolib/syscalls :cffi)
136 :around-compile "iolib.asdf:compile-wrapper"
138 :pathname "src/multiplex/"
143 (:file "utils" :depends-on ("pkgdcl"))
144 (:file "timers" :depends-on ("pkgdcl"))
145 (:file "queue" :depends-on ("pkgdcl"))
146 (:file "scheduler" :depends-on ("pkgdcl" "timers" "queue"))
149 (:file "fd-entry" :depends-on ("pkgdcl" "timers"))
150 (:file "multiplexer" :depends-on ("pkgdcl" "utils" "fd-entry"))
151 (:file "event-loop" :depends-on ("pkgdcl" "timers" "queue" "scheduler"
152 "fd-entry" "multiplexer"))
155 (:file "fd-wait" :depends-on ("pkgdcl" "utils"))
158 (:file "backend-select"
159 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
161 (:file "backend-epoll"
162 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
164 (:file "backend-kqueue"
165 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
167 :depends-on ("pkgdcl" "multiplexer" "backend-select"
168 #+linux "backend-epoll" #+bsd "backend-kqueue"))))
170 (asdf:defsystem :iolib/streams
171 :description "Gray streams."
172 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
173 :version (:read-file-form "version.lisp-expr")
175 :defsystem-depends-on (:iolib/asdf :iolib/conf)
176 :depends-on (:iolib/base :iolib/multiplex :cffi)
177 :around-compile "iolib.asdf:compile-wrapper"
179 :pathname "src/streams/gray/"
182 (:file "classes" :depends-on ("pkgdcl"))
183 (:file "conditions" :depends-on ("pkgdcl"))
184 (:file "buffer" :depends-on ("pkgdcl" "classes"))
185 (:file "fd-mixin" :depends-on ("pkgdcl" "classes"))
187 :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"))
188 (:file "gray-stream-methods"
189 :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"
192 (asdf:defsystem :iolib/sockets
193 :description "Socket library."
194 :author "Stelian Ionescu <sionescu@cddr.org>"
195 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
196 :version (:read-file-form "version.lisp-expr")
198 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
199 :depends-on (:iolib/base :iolib/syscalls :iolib/streams
200 :babel :cffi :iolib/grovel :bordeaux-threads
202 :around-compile "iolib.asdf:compile-wrapper"
204 :pathname "src/sockets/"
207 (:iolib-grovel-file "grovel" :depends-on ("pkgdcl"))
208 (:file "conditions" :depends-on ("pkgdcl" "grovel"))
209 (:file "bsd" :depends-on ("pkgdcl" "grovel" "conditions"))
210 (:file "common" :depends-on ("pkgdcl" "grovel" "bsd"))
211 (:file "config" :depends-on ("pkgdcl" "grovel" "bsd"))
213 (:file "iface" :depends-on ("pkgdcl" "grovel" "bsd" "common"))
215 (:file "address" :depends-on ("pkgdcl" "common"))
216 (:file "address-predicates" :depends-on ("pkgdcl" "common" "address"))
217 (:file "address-arithmetic" :depends-on ("pkgdcl" "common" "address" "address-predicates"))
219 (:file "base-sockets" :depends-on ("pkgdcl" "bsd" "common" "config"))
220 (:file "socket-options"
221 :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config" "base-sockets"))
223 ;; Local file configuration (/etc/hosts etc...)
224 (:file "etc-files" :pathname "namedb/etc-files"
225 :depends-on ("pkgdcl"))
226 (:file "file-monitor" :pathname "namedb/file-monitor"
227 :depends-on ("pkgdcl"))
228 (:file "protocols" :pathname "namedb/protocols"
229 :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
230 (:file "services" :pathname "namedb/services"
231 :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
232 (:file "hosts" :pathname "namedb/hosts"
233 :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
235 (:file "socket-methods"
236 :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config"
237 "address" "address-predicates" "base-sockets" "socket-options"
238 "protocols" "services"))
240 :depends-on ("pkgdcl" "grovel" "common" "config" "address" "address-predicates"
241 "base-sockets" "socket-options" "services" "socket-methods"))
244 (:file "dns-common" :pathname "dns/common"
245 :depends-on ("pkgdcl" "common"))
246 (:file "nameservers" :pathname "dns/nameservers"
247 :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
248 (:file "message":pathname "dns/message"
249 :depends-on ("pkgdcl" "common" "dns-common"))
250 (:file "query" :pathname "dns/query"
251 :depends-on ("pkgdcl" "conditions" "address" "address-predicates"
252 "socket-options" "socket-methods" "make-socket" "dns-common"
253 "nameservers" "message"))
254 (:file "dns-conditions" :pathname "dns/conditions"
255 :depends-on ("pkgdcl"))
256 (:file "lookup" :pathname "dns/lookup"
257 :depends-on ("pkgdcl" "address" "address-predicates" "file-monitor" "hosts"
258 "nameservers" "message" "query" "dns-conditions"))))
260 (asdf:defsystem :iolib/trivial-sockets
261 :description "Trivial-Sockets compatibility layer."
262 :author "Dan Barlow <dan@telent.net>"
263 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
264 :version (:read-file-form "version.lisp-expr")
266 :defsystem-depends-on (:iolib/asdf :iolib/conf)
267 :depends-on (:iolib/base :iolib/sockets)
268 :around-compile "iolib.asdf:compile-wrapper"
270 :pathname "src/sockets/"
272 ((:file "trivial-sockets")))
274 (asdf:defsystem :iolib/pathnames
275 :description "New pathnames."
276 :author "Stelian Ionescu <sionescu@cddr.org>"
277 :version (:read-file-form "version.lisp-expr")
279 :defsystem-depends-on (:iolib/asdf :iolib/conf)
280 :depends-on (:iolib/base :iolib/syscalls)
281 :around-compile "iolib.asdf:compile-wrapper"
283 :pathname "src/pathnames/"
287 (:file "file-path-os" :pathname #+unix "file-path-unix"))
290 (asdf:defsystem :iolib/os
291 :description "OS interface."
292 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
293 :version (:read-file-form "version.lisp-expr")
295 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
296 :depends-on (:iolib/base :iolib/grovel :iolib/syscalls
297 :iolib/streams :iolib/pathnames)
298 :around-compile "iolib.asdf:compile-wrapper"
303 (:file "os" :pathname #+unix "os-unix")
304 (:iolib-grovel-file "ffi-types" :pathname #+unix "ffi-types-unix")
305 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix")
306 (:file "create-process" :pathname #+unix "create-process-unix"))
309 (asdf:defsystem :iolib/tests
310 :description "IOLib test suite."
311 :author "Luis Oliveira <loliveira@common-lisp.net>"
312 :version (:read-file-form "version.lisp-expr")
314 :defsystem-depends-on (:iolib/base)
315 :depends-on (:fiveam :iolib :iolib/pathnames)
316 :around-compile "iolib.asdf:compile-wrapper"
321 (:file "defsuites" :depends-on ("pkgdcl"))
322 (:file "base" :depends-on ("pkgdcl" "defsuites"))
323 (:file "file-paths-os" :depends-on ("pkgdcl" "defsuites")
324 :pathname #+unix "file-paths-unix")
325 (:file "events" :depends-on ("pkgdcl" "defsuites"))
326 (:file "streams" :depends-on ("pkgdcl" "defsuites"))
327 (:file "sockets" :depends-on ("pkgdcl" "defsuites"))))
329 (defmethod asdf:perform ((o asdf:test-op)
330 (c (eql (asdf:find-system :iolib/tests))))
331 (asdf:load-system :iolib/tests)
332 (asdf/package:symbol-call :5am :run! :iolib))
334 (asdf:defsystem :iolib
335 :description "I/O library."
336 :author "Stelian Ionescu <sionescu@cddr.org>"
337 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
338 :version (:read-file-form "version.lisp-expr")
340 :defsystem-depends-on (:iolib/asdf :iolib/conf)
341 :depends-on (:iolib/base :iolib/multiplex :iolib/streams :iolib/sockets)
342 :around-compile "iolib.asdf:compile-wrapper"
343 :in-order-to ((asdf:test-op (asdf:test-op :iolib/tests)))
345 :pathname "src/iolib/"
346 :components ((:file "pkgdcl")))