1 ;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*-
3 (unless (or #+asdf3 (uiop: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>"
10 :version (:read-file-form "version.lisp-expr")
11 :depends-on (:alexandria)
17 (asdf:defsystem :iolib/conf
18 :description "Compile-time configuration for IOLib."
19 :author "Stelian Ionescu <sionescu@cddr.org>"
21 :version (:read-file-form "version.lisp-expr")
22 :defsystem-depends-on (:iolib/asdf)
23 :around-compile "iolib/asdf:compile-wrapper"
28 (:file "requires" :depends-on ("pkgdcl"))))
30 (asdf:defsystem :iolib/common-lisp
31 :description "Slightly modified Common Lisp."
32 :author "Stelian Ionescu <sionescu@cddr.org>"
34 :version (:read-file-form "version.lisp-expr")
35 :defsystem-depends-on (:iolib/asdf :iolib/conf)
36 :depends-on (:alexandria)
37 :around-compile "iolib/asdf:compile-wrapper"
39 :pathname "src/new-cl/"
42 #+scl (:file "scl-gray-streams")
43 (:file "pkgdcl" :depends-on ("conduits" #+scl "scl-gray-streams")
45 (asdf:compile-op :before (o c)
46 (uiop:symbol-call :iolib/conf '#:load-gray-streams))
48 (asdf:load-op :before (o c)
49 (uiop:symbol-call :iolib/conf '#:load-gray-streams))
51 (asdf:load-source-op :before (o c)
52 (uiop:symbol-call :iolib/conf '#:load-gray-streams)))
54 :depends-on ("pkgdcl" #+scl "scl-gray-streams"))
55 (:file "definitions" :depends-on ("pkgdcl"))
56 (:file "types" :depends-on ("pkgdcl"))))
58 (asdf:defsystem :iolib/base
59 :description "Base IOlib package, used instead of CL."
60 :author "Stelian Ionescu <sionescu@cddr.org>"
62 :version (:read-file-form "version.lisp-expr")
63 :defsystem-depends-on (:iolib/asdf :iolib/conf)
64 :depends-on (:iolib/common-lisp :alexandria :split-sequence)
65 :around-compile "iolib/asdf:compile-wrapper"
70 (:file "return-star" :depends-on ("pkgdcl"))
71 (:file "types" :depends-on ("pkgdcl" "return-star"))
72 (:file "debug" :depends-on ("pkgdcl" "return-star"))
73 (:file "conditions" :depends-on ("pkgdcl" "return-star"))
74 (:file "defalias" :depends-on ("pkgdcl" "return-star"))
75 (:file "deffoldable" :depends-on ("pkgdcl" "return-star"))
76 (:file "defobsolete" :depends-on ("pkgdcl" "return-star"))
77 (:file "reader" :depends-on ("pkgdcl" "return-star" "conditions"))
78 (:file "sequence" :depends-on ("pkgdcl" "return-star"))
79 (:file "matching" :depends-on ("pkgdcl" "return-star"))
80 (:file "time" :depends-on ("pkgdcl" "return-star"))
81 (:file "dynamic-buffer" :depends-on ("pkgdcl" "return-star" "sequence"))))
83 (asdf:defsystem :iolib/grovel
84 :description "The CFFI Groveller"
85 :author "Dan Knapp <dankna@accela.net>"
86 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
88 :version (:read-file-form "version.lisp-expr")
89 :defsystem-depends-on (:iolib/asdf :iolib/conf)
90 :depends-on (:iolib/asdf :iolib/conf
91 :alexandria :split-sequence #+allegro (:require "osi") :cffi :uiop)
92 :around-compile "iolib/asdf:compile-wrapper"
94 :pathname "src/grovel/"
97 (:static-file "grovel-common.h")
102 (asdf:defsystem :iolib/syscalls
103 :description "Syscalls and foreign types."
104 :author "Stelian Ionescu <sionescu@cddr.org>"
106 :version (:read-file-form "version.lisp-expr")
107 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
108 :depends-on (:trivial-features :cffi :iolib/base :iolib/grovel)
109 :around-compile "iolib/asdf:compile-wrapper"
111 :pathname "src/syscalls/"
115 (:file "syscall-path-strings" :pathname "unix-syscall-path-strings")
116 ;; Platform-specific files
117 (:iolib-grovel-file "ffi-types" :pathname #+unix "ffi-types-unix")
119 (:file "os-conditions" :pathname #+unix "os-conditions-unix")
120 (:file "designators")
122 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix"))
125 (asdf:defsystem :iolib/multiplex
126 :description "I/O multiplexing library."
127 :author "Stelian Ionescu <sionescu@cddr.org>"
129 :version (:read-file-form "version.lisp-expr")
130 :defsystem-depends-on (:iolib/asdf :iolib/conf)
131 :depends-on (:iolib/base :iolib/syscalls :cffi)
132 :around-compile "iolib/asdf:compile-wrapper"
134 :pathname "src/multiplex/"
139 (:file "utils" :depends-on ("pkgdcl"))
140 (:file "timers" :depends-on ("pkgdcl"))
141 (:file "queue" :depends-on ("pkgdcl"))
142 (:file "scheduler" :depends-on ("pkgdcl" "timers" "queue"))
145 (:file "fd-entry" :depends-on ("pkgdcl" "timers"))
146 (:file "multiplexer" :depends-on ("pkgdcl" "utils" "fd-entry"))
147 (:file "event-loop" :depends-on ("pkgdcl" "timers" "queue" "scheduler"
148 "fd-entry" "multiplexer"))
151 (:file "fd-wait" :depends-on ("pkgdcl" "utils"))
154 (:file "backend-select"
155 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
157 (:file "backend-epoll"
158 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
160 (:file "backend-kqueue"
161 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
163 :depends-on ("pkgdcl" "multiplexer" "backend-select"
164 #+linux "backend-epoll" #+bsd "backend-kqueue"))))
166 (asdf:defsystem :iolib/streams
167 :description "Gray streams."
168 :author "Stelian Ionescu <sionescu@cddr.org>"
170 :version (:read-file-form "version.lisp-expr")
171 :defsystem-depends-on (:iolib/asdf :iolib/conf)
172 :depends-on (:iolib/base :iolib/multiplex :cffi)
173 :around-compile "iolib/asdf:compile-wrapper"
175 :pathname "src/streams/gray/"
178 (:file "classes" :depends-on ("pkgdcl"))
179 (:file "conditions" :depends-on ("pkgdcl"))
180 (:file "buffer" :depends-on ("pkgdcl" "classes"))
181 (:file "fd-mixin" :depends-on ("pkgdcl" "classes"))
183 :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"))
184 (:file "gray-stream-methods"
185 :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"
188 (asdf:defsystem :iolib/zstreams
189 :description "Zeta streams."
190 :author "Stelian Ionescu <sionescu@cddr.org>"
192 :version (:read-file-form "version.lisp-expr")
193 :defsystem-depends-on (:iolib/asdf)
194 :depends-on (:iolib/base :iolib/syscalls :iolib/pathnames :cffi :bordeaux-threads)
195 :around-compile "iolib.asdf:compile-wrapper"
197 :pathname "src/streams/zeta/"
200 (:file "types" :depends-on ("pkgdcl"))
201 (:file "conditions" :depends-on ("pkgdcl"))
203 ;; Platform-specific files
204 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix"
205 :depends-on ("pkgdcl" "conditions"))
207 ;; Device interface definition
208 (:file "device" :depends-on ("pkgdcl" "types"))
211 (:file "iobuf" :depends-on ("pkgdcl" "types"))
214 (:file "stream" :depends-on ("pkgdcl" "types" "conditions" "device" "iobuf"))
217 (:file "file" :pathname #+unix "file-unix"
218 :depends-on ("pkgdcl" "types" "conditions" "ffi-functions" "device" "stream"))))
220 (asdf:defsystem :iolib/sockets
221 :description "Socket library."
222 :author "Stelian Ionescu <sionescu@cddr.org>"
224 :version (:read-file-form "version.lisp-expr")
225 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
226 :depends-on (:iolib/base :iolib/syscalls :iolib/streams
227 :babel :cffi :iolib/grovel :bordeaux-threads
229 :around-compile "iolib/asdf:compile-wrapper"
231 :pathname "src/sockets/"
234 (:iolib-grovel-file "grovel" :depends-on ("pkgdcl"))
235 (:file "conditions" :depends-on ("pkgdcl" "grovel"))
236 (:file "bsd" :depends-on ("pkgdcl" "grovel" "conditions"))
237 (:file "common" :depends-on ("pkgdcl" "grovel" "bsd"))
238 (:file "config" :depends-on ("pkgdcl" "grovel" "bsd"))
240 (:file "iface" :depends-on ("pkgdcl" "grovel" "bsd" "common"))
242 (:file "address" :depends-on ("pkgdcl" "common"))
243 (:file "address-predicates" :depends-on ("pkgdcl" "common" "address"))
244 (:file "address-arithmetic" :depends-on ("pkgdcl" "common" "address" "address-predicates"))
246 (:file "base-sockets" :depends-on ("pkgdcl" "bsd" "common" "config"))
247 (:file "socket-options"
248 :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config" "base-sockets"))
250 ;; Local file configuration (/etc/hosts etc...)
251 (:file "etc-files" :pathname "namedb/etc-files"
252 :depends-on ("pkgdcl"))
253 (:file "file-monitor" :pathname "namedb/file-monitor"
254 :depends-on ("pkgdcl"))
255 (:file "protocols" :pathname "namedb/protocols"
256 :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
257 (:file "services" :pathname "namedb/services"
258 :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
259 (:file "hosts" :pathname "namedb/hosts"
260 :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
262 (:file "socket-methods"
263 :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config"
264 "address" "address-predicates" "base-sockets" "socket-options"
265 "protocols" "services"))
267 :depends-on ("pkgdcl" "grovel" "common" "config" "address" "address-predicates"
268 "base-sockets" "socket-options" "services" "socket-methods"))
271 (:file "dns-common" :pathname "dns/common"
272 :depends-on ("pkgdcl" "common"))
273 (:file "nameservers" :pathname "dns/nameservers"
274 :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
275 (:file "message":pathname "dns/message"
276 :depends-on ("pkgdcl" "common" "dns-common"))
277 (:file "query" :pathname "dns/query"
278 :depends-on ("pkgdcl" "conditions" "address" "address-predicates"
279 "socket-options" "socket-methods" "make-socket" "dns-common"
280 "nameservers" "message"))
281 (:file "dns-conditions" :pathname "dns/conditions"
282 :depends-on ("pkgdcl"))
283 (:file "lookup" :pathname "dns/lookup"
284 :depends-on ("pkgdcl" "address" "address-predicates" "file-monitor" "hosts"
285 "nameservers" "message" "query" "dns-conditions"))))
287 (asdf:defsystem :iolib/trivial-sockets
288 :description "Trivial-Sockets compatibility layer."
289 :author "Dan Barlow <dan@telent.net>"
290 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
292 :version (:read-file-form "version.lisp-expr")
293 :defsystem-depends-on (:iolib/asdf :iolib/conf)
294 :depends-on (:iolib/base :iolib/sockets)
295 :around-compile "iolib/asdf:compile-wrapper"
297 :pathname "src/sockets/"
299 ((:file "trivial-sockets")))
301 (asdf:defsystem :iolib/pathnames
302 :description "New pathnames."
303 :author "Stelian Ionescu <sionescu@cddr.org>"
305 :version (:read-file-form "version.lisp-expr")
306 :defsystem-depends-on (:iolib/asdf :iolib/conf)
307 :depends-on (:iolib/base :iolib/syscalls)
308 :around-compile "iolib/asdf:compile-wrapper"
310 :pathname "src/pathnames/"
314 (:file "file-path-os" :pathname #+unix "file-path-unix"))
317 (asdf:defsystem :iolib/os
318 :description "OS interface."
319 :author "Stelian Ionescu <sionescu@cddr.org>"
321 :version (:read-file-form "version.lisp-expr")
322 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
323 :depends-on (:iolib/base :iolib/grovel :iolib/syscalls
324 :iolib/streams :iolib/pathnames)
325 :around-compile "iolib/asdf:compile-wrapper"
330 (:file "os" :pathname #+unix "os-unix")
331 (:iolib-grovel-file "ffi-types" :pathname #+unix "ffi-types-unix")
332 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix")
333 (:file "create-process" :pathname #+unix "create-process-unix"))
336 (asdf:defsystem :iolib
337 :description "I/O library."
338 :author "Stelian Ionescu <sionescu@cddr.org>"
340 :version (:read-file-form "version.lisp-expr")
341 :defsystem-depends-on (:iolib/asdf :iolib/conf)
342 :depends-on (:iolib/base :iolib/multiplex :iolib/streams :iolib/sockets)
343 :around-compile "iolib/asdf:compile-wrapper"
345 :pathname "src/iolib/"
346 :components ((:file "pkgdcl")))
348 (defmethod asdf:perform ((o asdf:test-op)
349 (c (eql (asdf:find-system :iolib))))
350 (asdf:load-system :iolib/tests)
351 (uiop:symbol-call :5am :run! :iolib))
353 (asdf:defsystem :iolib/tests
354 :description "IOLib test suite."
355 :author "Luis Oliveira <loliveira@common-lisp.net>"
356 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
358 :version (:read-file-form "version.lisp-expr")
359 :defsystem-depends-on (:iolib/base)
360 :depends-on (:fiveam :iolib :iolib/pathnames)
361 :around-compile "iolib/asdf:compile-wrapper"
366 (:file "defsuites" :depends-on ("pkgdcl"))
367 (:file "base" :depends-on ("pkgdcl" "defsuites"))
368 (:file "file-paths-os" :depends-on ("pkgdcl" "defsuites")
369 :pathname #+unix "file-paths-unix")
370 (:file "events" :depends-on ("pkgdcl" "defsuites"))
371 (:file "streams" :depends-on ("pkgdcl" "defsuites"))
372 (:file "sockets" :depends-on ("pkgdcl" "defsuites"))))
374 (asdf:defsystem :iolib/examples
375 :description "Examples for IOLib tutorial at http://pages.cs.wisc.edu/~psilord/blog/data/iolib-tutorial/tutorial.html"
376 :author "Peter Keller <psilord@cs.wisc.edu>"
377 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
379 :version (:read-file-form "version.lisp-expr")
380 :defsystem-depends-on (:iolib/base)
381 :depends-on (:iolib :bordeaux-threads)
382 :around-compile "iolib/asdf:compile-wrapper"
383 :pathname "examples/"
384 :components ((:file "package")
385 (:file "ex1-client" :depends-on ("package"))
386 (:file "ex2-client" :depends-on ("package"))
387 (:file "ex3-client" :depends-on ("package"))
388 (:file "ex4-client" :depends-on ("package"))
389 (:file "ex5a-client" :depends-on ("package"))
390 (:file "ex5b-client" :depends-on ("package"))
391 (:file "ex1-server" :depends-on ("package"))
392 (:file "ex2-server" :depends-on ("package"))
393 (:file "ex3-server" :depends-on ("package"))
394 (:file "ex4-server" :depends-on ("package"))
395 (:file "ex5-server" :depends-on ("package"))
396 (:file "ex6-server" :depends-on ("package"))
397 (:file "ex7-buffer" :depends-on ("package"))
398 (:file "ex7-server" :depends-on ("package" "ex7-buffer"))
399 (:file "ex8-buffer" :depends-on ("package"))
400 (:file "ex8-server" :depends-on ("package" "ex8-buffer"))))