1 ;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*-
3 (unless (or #+asdf3 (asdf/driver:version<= "2.31.1" (asdf-version)))
4 (error "You need ASDF >= 2.31.1 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
90 #+allegro (:require "osi")
91 :cffi :iolib/asdf :iolib/conf)
92 :around-compile "iolib/asdf:compile-wrapper"
95 :pathname "src/grovel/"
99 (:static-file "grovel-common.h")
104 (asdf:defsystem :iolib/syscalls
105 :description "Syscalls and foreign types."
106 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
107 :version (:read-file-form "version.lisp-expr")
109 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
110 :depends-on (:trivial-features :cffi :iolib/base :iolib/grovel)
111 :around-compile "iolib/asdf:compile-wrapper"
113 :pathname "src/syscalls/"
117 (:file "syscall-path-strings" :pathname "unix-syscall-path-strings")
118 ;; Platform-specific files
119 (:iolib-grovel-file "ffi-types" :pathname #+unix "ffi-types-unix")
121 (:file "os-conditions" :pathname #+unix "os-conditions-unix")
122 (:file "designators")
124 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix"))
127 (asdf:defsystem :iolib/multiplex
128 :description "I/O multiplexing library."
129 :author "Stelian Ionescu <sionescu@cddr.org>"
130 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
131 :version (:read-file-form "version.lisp-expr")
133 :defsystem-depends-on (:iolib/asdf :iolib/conf)
134 :depends-on (:iolib/base :iolib/syscalls :cffi)
135 :around-compile "iolib/asdf:compile-wrapper"
137 :pathname "src/multiplex/"
142 (:file "utils" :depends-on ("pkgdcl"))
143 (:file "timers" :depends-on ("pkgdcl"))
144 (:file "queue" :depends-on ("pkgdcl"))
145 (:file "scheduler" :depends-on ("pkgdcl" "timers" "queue"))
148 (:file "fd-entry" :depends-on ("pkgdcl" "timers"))
149 (:file "multiplexer" :depends-on ("pkgdcl" "utils" "fd-entry"))
150 (:file "event-loop" :depends-on ("pkgdcl" "timers" "queue" "scheduler"
151 "fd-entry" "multiplexer"))
154 (:file "fd-wait" :depends-on ("pkgdcl" "utils"))
157 (:file "backend-select"
158 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
160 (:file "backend-epoll"
161 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
163 (:file "backend-kqueue"
164 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
166 :depends-on ("pkgdcl" "multiplexer" "backend-select"
167 #+linux "backend-epoll" #+bsd "backend-kqueue"))))
169 (asdf:defsystem :iolib/streams
170 :description "Gray streams."
171 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
172 :version (:read-file-form "version.lisp-expr")
174 :defsystem-depends-on (:iolib/asdf :iolib/conf)
175 :depends-on (:iolib/base :iolib/multiplex :cffi)
176 :around-compile "iolib/asdf:compile-wrapper"
178 :pathname "src/streams/gray/"
181 (:file "classes" :depends-on ("pkgdcl"))
182 (:file "conditions" :depends-on ("pkgdcl"))
183 (:file "buffer" :depends-on ("pkgdcl" "classes"))
184 (:file "fd-mixin" :depends-on ("pkgdcl" "classes"))
186 :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"))
187 (:file "gray-stream-methods"
188 :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"
191 (asdf:defsystem :iolib/sockets
192 :description "Socket library."
193 :author "Stelian Ionescu <sionescu@cddr.org>"
194 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
195 :version (:read-file-form "version.lisp-expr")
197 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
198 :depends-on (:iolib/base :iolib/syscalls :iolib/streams
199 :babel :cffi :iolib/grovel :bordeaux-threads
201 :around-compile "iolib/asdf:compile-wrapper"
203 :pathname "src/sockets/"
206 (:iolib-grovel-file "grovel" :depends-on ("pkgdcl"))
207 (:file "conditions" :depends-on ("pkgdcl" "grovel"))
208 (:file "bsd" :depends-on ("pkgdcl" "grovel" "conditions"))
209 (:file "common" :depends-on ("pkgdcl" "grovel" "bsd"))
210 (:file "config" :depends-on ("pkgdcl" "grovel" "bsd"))
212 (:file "iface" :depends-on ("pkgdcl" "grovel" "bsd" "common"))
214 (:file "address" :depends-on ("pkgdcl" "common"))
215 (:file "address-predicates" :depends-on ("pkgdcl" "common" "address"))
216 (:file "address-arithmetic" :depends-on ("pkgdcl" "common" "address" "address-predicates"))
218 (:file "base-sockets" :depends-on ("pkgdcl" "bsd" "common" "config"))
219 (:file "socket-options"
220 :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config" "base-sockets"))
222 ;; Local file configuration (/etc/hosts etc...)
223 (:file "etc-files" :pathname "namedb/etc-files"
224 :depends-on ("pkgdcl"))
225 (:file "file-monitor" :pathname "namedb/file-monitor"
226 :depends-on ("pkgdcl"))
227 (:file "protocols" :pathname "namedb/protocols"
228 :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
229 (:file "services" :pathname "namedb/services"
230 :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
231 (:file "hosts" :pathname "namedb/hosts"
232 :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
234 (:file "socket-methods"
235 :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config"
236 "address" "address-predicates" "base-sockets" "socket-options"
237 "protocols" "services"))
239 :depends-on ("pkgdcl" "grovel" "common" "config" "address" "address-predicates"
240 "base-sockets" "socket-options" "services" "socket-methods"))
243 (:file "dns-common" :pathname "dns/common"
244 :depends-on ("pkgdcl" "common"))
245 (:file "nameservers" :pathname "dns/nameservers"
246 :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
247 (:file "message":pathname "dns/message"
248 :depends-on ("pkgdcl" "common" "dns-common"))
249 (:file "query" :pathname "dns/query"
250 :depends-on ("pkgdcl" "conditions" "address" "address-predicates"
251 "socket-options" "socket-methods" "make-socket" "dns-common"
252 "nameservers" "message"))
253 (:file "dns-conditions" :pathname "dns/conditions"
254 :depends-on ("pkgdcl"))
255 (:file "lookup" :pathname "dns/lookup"
256 :depends-on ("pkgdcl" "address" "address-predicates" "file-monitor" "hosts"
257 "nameservers" "message" "query" "dns-conditions"))))
259 (asdf:defsystem :iolib/trivial-sockets
260 :description "Trivial-Sockets compatibility layer."
261 :author "Dan Barlow <dan@telent.net>"
262 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
263 :version (:read-file-form "version.lisp-expr")
265 :defsystem-depends-on (:iolib/asdf :iolib/conf)
266 :depends-on (:iolib/base :iolib/sockets)
267 :around-compile "iolib/asdf:compile-wrapper"
269 :pathname "src/sockets/"
271 ((:file "trivial-sockets")))
273 (asdf:defsystem :iolib/pathnames
274 :description "New pathnames."
275 :author "Stelian Ionescu <sionescu@cddr.org>"
276 :version (:read-file-form "version.lisp-expr")
278 :defsystem-depends-on (:iolib/asdf :iolib/conf)
279 :depends-on (:iolib/base :iolib/syscalls)
280 :around-compile "iolib/asdf:compile-wrapper"
282 :pathname "src/pathnames/"
286 (:file "file-path-os" :pathname #+unix "file-path-unix"))
289 (asdf:defsystem :iolib/os
290 :description "OS interface."
291 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
292 :version (:read-file-form "version.lisp-expr")
294 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
295 :depends-on (:iolib/base :iolib/grovel :iolib/syscalls
296 :iolib/streams :iolib/pathnames)
297 :around-compile "iolib/asdf:compile-wrapper"
302 (:file "os" :pathname #+unix "os-unix")
303 (:iolib-grovel-file "ffi-types" :pathname #+unix "ffi-types-unix")
304 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix")
305 (:file "create-process" :pathname #+unix "create-process-unix"))
308 (asdf:defsystem :iolib
309 :description "I/O library."
310 :author "Stelian Ionescu <sionescu@cddr.org>"
311 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
312 :version (:read-file-form "version.lisp-expr")
314 :defsystem-depends-on (:iolib/asdf :iolib/conf)
315 :depends-on (:iolib/base :iolib/multiplex :iolib/streams :iolib/sockets)
316 :around-compile "iolib/asdf:compile-wrapper"
318 :pathname "src/iolib/"
319 :components ((:file "pkgdcl")))
321 (defmethod asdf:perform ((o asdf:test-op)
322 (c (eql (asdf:find-system :iolib))))
323 (asdf:load-system :iolib/tests)
324 (asdf/package:symbol-call :5am :run! :iolib))
326 (asdf:defsystem :iolib/tests
327 :description "IOLib test suite."
328 :author "Luis Oliveira <loliveira@common-lisp.net>"
329 :version (:read-file-form "version.lisp-expr")
331 :defsystem-depends-on (:iolib/base)
332 :depends-on (:fiveam :iolib :iolib/pathnames)
333 :around-compile "iolib/asdf:compile-wrapper"
338 (:file "defsuites" :depends-on ("pkgdcl"))
339 (:file "base" :depends-on ("pkgdcl" "defsuites"))
340 (:file "file-paths-os" :depends-on ("pkgdcl" "defsuites")
341 :pathname #+unix "file-paths-unix")
342 (:file "events" :depends-on ("pkgdcl" "defsuites"))
343 (:file "streams" :depends-on ("pkgdcl" "defsuites"))
344 (:file "sockets" :depends-on ("pkgdcl" "defsuites"))))
346 (asdf:defsystem :iolib/examples
347 :version (:read-file-form "version.lisp-expr")
348 :defsystem-depends-on (:iolib/base)
349 :depends-on (:iolib :bordeaux-threads)
350 :around-compile "iolib/asdf:compile-wrapper"
351 :pathname "examples/"
352 :components ((:file "package")
353 (:file "ex1-client" :depends-on ("package"))
354 (:file "ex2-client" :depends-on ("package"))
355 (:file "ex3-client" :depends-on ("package"))
356 (:file "ex4-client" :depends-on ("package"))
357 (:file "ex5a-client" :depends-on ("package"))
358 (:file "ex5b-client" :depends-on ("package"))
359 (:file "ex1-server" :depends-on ("package"))
360 (:file "ex2-server" :depends-on ("package"))
361 (:file "ex3-server" :depends-on ("package"))
362 (:file "ex4-server" :depends-on ("package"))
363 (:file "ex5-server" :depends-on ("package"))
364 (:file "ex6-server" :depends-on ("package"))
365 (:file "ex7-buffer" :depends-on ("package"))
366 (:file "ex7-server" :depends-on ("package" "ex7-buffer"))
367 (:file "ex8-buffer" :depends-on ("package"))
368 (:file "ex8-server" :depends-on ("package" "ex8-buffer"))))