1 ;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*-
3 (unless (or #+asdf3 (asdf/driver:version<= "2.29" (asdf-version)))
4 (error "You need ASDF >= 2.29 to load this system correctly."))
6 (asdf:defsystem :iolib/asdf
7 :description "A few ASDF component classes."
8 :author "Stelian Ionescu <sionescu@cddr.org>"
9 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
10 :version (:read-file-form "version.lisp-expr")
12 :depends-on (:alexandria)
18 (asdf:defsystem :iolib/conf
19 :description "Compile-time configuration for IOLib."
20 :author "Stelian Ionescu <sionescu@cddr.org>"
21 :version (:read-file-form "version.lisp-expr")
23 :defsystem-depends-on (:iolib/asdf)
24 :around-compile "iolib/asdf:compile-wrapper"
29 (:file "requires" :depends-on ("pkgdcl"))))
31 (asdf:defsystem :iolib/common-lisp
32 :description "Slightly modified Common Lisp."
33 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
34 :version (:read-file-form "version.lisp-expr")
36 :defsystem-depends-on (:iolib/asdf :iolib/conf)
37 :depends-on (:alexandria)
38 :around-compile "iolib/asdf:compile-wrapper"
40 :pathname "src/new-cl/"
43 #+scl (:file "scl-gray-streams")
44 (:file "pkgdcl" :depends-on ("conduits" #+scl "scl-gray-streams")
46 (asdf:compile-op :before (o c)
47 (asdf/package:symbol-call :iolib/conf '#:load-gray-streams))
49 (asdf:load-op :before (o c)
50 (asdf/package:symbol-call :iolib/conf '#:load-gray-streams))
52 (asdf:load-source-op :before (o c)
53 (asdf/package:symbol-call :iolib/conf '#:load-gray-streams)))
55 :depends-on ("pkgdcl" #+scl "scl-gray-streams"))
56 (:file "definitions" :depends-on ("pkgdcl"))
57 (:file "types" :depends-on ("pkgdcl"))))
59 (asdf:defsystem :iolib/base
60 :description "Base IOlib package, used instead of CL."
61 :author "Stelian Ionescu <sionescu@cddr.org>"
62 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
63 :version (:read-file-form "version.lisp-expr")
65 :defsystem-depends-on (:iolib/asdf :iolib/conf)
66 :depends-on (:iolib/common-lisp :alexandria :split-sequence)
67 :around-compile "iolib/asdf:compile-wrapper"
72 (:file "return-star" :depends-on ("pkgdcl"))
73 (:file "types" :depends-on ("pkgdcl" "return-star"))
74 (:file "debug" :depends-on ("pkgdcl" "return-star"))
75 (:file "conditions" :depends-on ("pkgdcl" "return-star"))
76 (:file "defalias" :depends-on ("pkgdcl" "return-star"))
77 (:file "deffoldable" :depends-on ("pkgdcl" "return-star"))
78 (:file "defobsolete" :depends-on ("pkgdcl" "return-star"))
79 (:file "reader" :depends-on ("pkgdcl" "return-star" "conditions"))
80 (:file "sequence" :depends-on ("pkgdcl" "return-star"))
81 (:file "matching" :depends-on ("pkgdcl" "return-star"))
82 (:file "time" :depends-on ("pkgdcl" "return-star"))
83 (:file "dynamic-buffer" :depends-on ("pkgdcl" "return-star" "sequence"))))
85 (asdf:defsystem :iolib/grovel
86 :description "The CFFI Groveller"
87 :author "Dan Knapp <dankna@accela.net>"
88 :defsystem-depends-on (:iolib/asdf :iolib/conf)
89 :depends-on (:alexandria :cffi :iolib/asdf :iolib/conf)
90 :around-compile "iolib/asdf:compile-wrapper"
93 :pathname "src/grovel/"
97 (:static-file "grovel-common.h")
101 :perform (asdf:compile-op :before (o c)
102 #+allegro (require "osi"))
103 :perform (asdf:load-op :before (o c)
104 #+allegro (require "osi"))
105 :perform (asdf:load-source-op :before (o c)
106 #+allegro (require "osi")))
108 (asdf:defsystem :iolib/syscalls
109 :description "Syscalls and foreign types."
110 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
111 :version (:read-file-form "version.lisp-expr")
113 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
114 :depends-on (:trivial-features :cffi :iolib/base :iolib/grovel)
115 :around-compile "iolib/asdf:compile-wrapper"
117 :pathname "src/syscalls/"
121 (:file "syscall-path-strings" :pathname "unix-syscall-path-strings")
122 ;; Platform-specific files
123 (:iolib-grovel-file "ffi-types" :pathname #+unix "ffi-types-unix")
125 (:file "os-conditions" :pathname #+unix "os-conditions-unix")
126 (:file "designators")
128 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix"))
131 (asdf:defsystem :iolib/multiplex
132 :description "I/O multiplexing library."
133 :author "Stelian Ionescu <sionescu@cddr.org>"
134 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
135 :version (:read-file-form "version.lisp-expr")
137 :defsystem-depends-on (:iolib/asdf :iolib/conf)
138 :depends-on (:iolib/base :iolib/syscalls :cffi)
139 :around-compile "iolib/asdf:compile-wrapper"
141 :pathname "src/multiplex/"
146 (:file "utils" :depends-on ("pkgdcl"))
147 (:file "timers" :depends-on ("pkgdcl"))
148 (:file "queue" :depends-on ("pkgdcl"))
149 (:file "scheduler" :depends-on ("pkgdcl" "timers" "queue"))
152 (:file "fd-entry" :depends-on ("pkgdcl" "timers"))
153 (:file "multiplexer" :depends-on ("pkgdcl" "utils" "fd-entry"))
154 (:file "event-loop" :depends-on ("pkgdcl" "timers" "queue" "scheduler"
155 "fd-entry" "multiplexer"))
158 (:file "fd-wait" :depends-on ("pkgdcl" "utils"))
161 (:file "backend-select"
162 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
164 (:file "backend-epoll"
165 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
167 (:file "backend-kqueue"
168 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
170 :depends-on ("pkgdcl" "multiplexer" "backend-select"
171 #+linux "backend-epoll" #+bsd "backend-kqueue"))))
173 (asdf:defsystem :iolib/streams
174 :description "Gray streams."
175 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
176 :version (:read-file-form "version.lisp-expr")
178 :defsystem-depends-on (:iolib/asdf :iolib/conf)
179 :depends-on (:iolib/base :iolib/multiplex :cffi)
180 :around-compile "iolib/asdf:compile-wrapper"
182 :pathname "src/streams/gray/"
185 (:file "classes" :depends-on ("pkgdcl"))
186 (:file "conditions" :depends-on ("pkgdcl"))
187 (:file "buffer" :depends-on ("pkgdcl" "classes"))
188 (:file "fd-mixin" :depends-on ("pkgdcl" "classes"))
190 :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"))
191 (:file "gray-stream-methods"
192 :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"
195 (asdf:defsystem :iolib/sockets
196 :description "Socket library."
197 :author "Stelian Ionescu <sionescu@cddr.org>"
198 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
199 :version (:read-file-form "version.lisp-expr")
201 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
202 :depends-on (:iolib/base :iolib/syscalls :iolib/streams
203 :babel :cffi :iolib/grovel :bordeaux-threads
205 :around-compile "iolib/asdf:compile-wrapper"
207 :pathname "src/sockets/"
210 (:iolib-grovel-file "grovel" :depends-on ("pkgdcl"))
211 (:file "conditions" :depends-on ("pkgdcl" "grovel"))
212 (:file "bsd" :depends-on ("pkgdcl" "grovel" "conditions"))
213 (:file "common" :depends-on ("pkgdcl" "grovel" "bsd"))
214 (:file "config" :depends-on ("pkgdcl" "grovel" "bsd"))
216 (:file "iface" :depends-on ("pkgdcl" "grovel" "bsd" "common"))
218 (:file "address" :depends-on ("pkgdcl" "common"))
219 (:file "address-predicates" :depends-on ("pkgdcl" "common" "address"))
220 (:file "address-arithmetic" :depends-on ("pkgdcl" "common" "address" "address-predicates"))
222 (:file "base-sockets" :depends-on ("pkgdcl" "bsd" "common" "config"))
223 (:file "socket-options"
224 :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config" "base-sockets"))
226 ;; Local file configuration (/etc/hosts etc...)
227 (:file "etc-files" :pathname "namedb/etc-files"
228 :depends-on ("pkgdcl"))
229 (:file "file-monitor" :pathname "namedb/file-monitor"
230 :depends-on ("pkgdcl"))
231 (:file "protocols" :pathname "namedb/protocols"
232 :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
233 (:file "services" :pathname "namedb/services"
234 :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
235 (:file "hosts" :pathname "namedb/hosts"
236 :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
238 (:file "socket-methods"
239 :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config"
240 "address" "address-predicates" "base-sockets" "socket-options"
241 "protocols" "services"))
243 :depends-on ("pkgdcl" "grovel" "common" "config" "address" "address-predicates"
244 "base-sockets" "socket-options" "services" "socket-methods"))
247 (:file "dns-common" :pathname "dns/common"
248 :depends-on ("pkgdcl" "common"))
249 (:file "nameservers" :pathname "dns/nameservers"
250 :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
251 (:file "message":pathname "dns/message"
252 :depends-on ("pkgdcl" "common" "dns-common"))
253 (:file "query" :pathname "dns/query"
254 :depends-on ("pkgdcl" "conditions" "address" "address-predicates"
255 "socket-options" "socket-methods" "make-socket" "dns-common"
256 "nameservers" "message"))
257 (:file "dns-conditions" :pathname "dns/conditions"
258 :depends-on ("pkgdcl"))
259 (:file "lookup" :pathname "dns/lookup"
260 :depends-on ("pkgdcl" "address" "address-predicates" "file-monitor" "hosts"
261 "nameservers" "message" "query" "dns-conditions"))))
263 (asdf:defsystem :iolib/trivial-sockets
264 :description "Trivial-Sockets compatibility layer."
265 :author "Dan Barlow <dan@telent.net>"
266 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
267 :version (:read-file-form "version.lisp-expr")
269 :defsystem-depends-on (:iolib/asdf :iolib/conf)
270 :depends-on (:iolib/base :iolib/sockets)
271 :around-compile "iolib/asdf:compile-wrapper"
273 :pathname "src/sockets/"
275 ((:file "trivial-sockets")))
277 (asdf:defsystem :iolib/pathnames
278 :description "New pathnames."
279 :author "Stelian Ionescu <sionescu@cddr.org>"
280 :version (:read-file-form "version.lisp-expr")
282 :defsystem-depends-on (:iolib/asdf :iolib/conf)
283 :depends-on (:iolib/base :iolib/syscalls)
284 :around-compile "iolib/asdf:compile-wrapper"
286 :pathname "src/pathnames/"
290 (:file "file-path-os" :pathname #+unix "file-path-unix"))
293 (asdf:defsystem :iolib/os
294 :description "OS interface."
295 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
296 :version (:read-file-form "version.lisp-expr")
298 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
299 :depends-on (:iolib/base :iolib/grovel :iolib/syscalls
300 :iolib/streams :iolib/pathnames)
301 :around-compile "iolib/asdf:compile-wrapper"
306 (:file "os" :pathname #+unix "os-unix")
307 (:iolib-grovel-file "ffi-types" :pathname #+unix "ffi-types-unix")
308 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix")
309 (:file "create-process" :pathname #+unix "create-process-unix"))
312 (asdf:defsystem :iolib
313 :description "I/O library."
314 :author "Stelian Ionescu <sionescu@cddr.org>"
315 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
316 :version (:read-file-form "version.lisp-expr")
318 :defsystem-depends-on (:iolib/asdf :iolib/conf)
319 :depends-on (:iolib/base :iolib/multiplex :iolib/streams :iolib/sockets)
320 :around-compile "iolib/asdf:compile-wrapper"
322 :pathname "src/iolib/"
323 :components ((:file "pkgdcl")))
325 (defmethod asdf:perform ((o asdf:test-op)
326 (c (eql (asdf:find-system :iolib))))
327 (asdf:load-system :iolib/tests)
328 (asdf/package:symbol-call :5am :run! :iolib))
330 (asdf:defsystem :iolib/tests
331 :description "IOLib test suite."
332 :author "Luis Oliveira <loliveira@common-lisp.net>"
333 :version (:read-file-form "version.lisp-expr")
335 :defsystem-depends-on (:iolib/base)
336 :depends-on (:fiveam :iolib :iolib/pathnames)
337 :around-compile "iolib/asdf:compile-wrapper"
342 (:file "defsuites" :depends-on ("pkgdcl"))
343 (:file "base" :depends-on ("pkgdcl" "defsuites"))
344 (:file "file-paths-os" :depends-on ("pkgdcl" "defsuites")
345 :pathname #+unix "file-paths-unix")
346 (:file "events" :depends-on ("pkgdcl" "defsuites"))
347 (:file "streams" :depends-on ("pkgdcl" "defsuites"))
348 (:file "sockets" :depends-on ("pkgdcl" "defsuites"))))
350 (asdf:defsystem :iolib/examples
351 :version (:read-file-form "version.lisp-expr")
352 :defsystem-depends-on (:iolib/base)
353 :depends-on (:iolib :bordeaux-threads)
354 :around-compile "iolib/asdf:compile-wrapper"
355 :pathname "examples/"
356 :components ((:file "package")
357 (:file "ex1-client" :depends-on ("package"))
358 (:file "ex2-client" :depends-on ("package"))
359 (:file "ex3-client" :depends-on ("package"))
360 (:file "ex4-client" :depends-on ("package"))
361 (:file "ex5a-client" :depends-on ("package"))
362 (:file "ex5b-client" :depends-on ("package"))
363 (:file "ex1-server" :depends-on ("package"))
364 (:file "ex2-server" :depends-on ("package"))
365 (:file "ex3-server" :depends-on ("package"))
366 (:file "ex4-server" :depends-on ("package"))
367 (:file "ex5-server" :depends-on ("package"))
368 (:file "ex6-server" :depends-on ("package"))
369 (:file "ex7-buffer" :depends-on ("package"))
370 (:file "ex7-server" :depends-on ("package" "ex7-buffer"))
371 (:file "ex8-buffer" :depends-on ("package"))
372 (:file "ex8-server" :depends-on ("package" "ex8-buffer"))))