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 (:alexandria
91 #+allegro (:require "osi")
92 :cffi :cffi-grovel :iolib/asdf :iolib/conf)
93 :around-compile "iolib/asdf:compile-wrapper"
95 :pathname "src/grovel/"
98 (:static-file "grovel-common.h")
103 (asdf:defsystem :iolib/syscalls
104 :description "Syscalls and foreign types."
105 :author "Stelian Ionescu <sionescu@cddr.org>"
107 :version (:read-file-form "version.lisp-expr")
108 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
109 :depends-on (:trivial-features :cffi :iolib/base :iolib/grovel)
110 :around-compile "iolib/asdf:compile-wrapper"
112 :pathname "src/syscalls/"
116 (:file "syscall-path-strings" :pathname "unix-syscall-path-strings")
117 ;; Platform-specific files
118 (:iolib-grovel-file "ffi-types" :pathname #+unix "ffi-types-unix")
120 (:file "os-conditions" :pathname #+unix "os-conditions-unix")
121 (:file "designators")
123 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix"))
126 (asdf:defsystem :iolib/multiplex
127 :description "I/O multiplexing library."
128 :author "Stelian Ionescu <sionescu@cddr.org>"
130 :version (:read-file-form "version.lisp-expr")
131 :defsystem-depends-on (:iolib/asdf :iolib/conf)
132 :depends-on (:iolib/base :iolib/syscalls :cffi)
133 :around-compile "iolib/asdf:compile-wrapper"
135 :pathname "src/multiplex/"
140 (:file "utils" :depends-on ("pkgdcl"))
141 (:file "timers" :depends-on ("pkgdcl"))
142 (:file "queue" :depends-on ("pkgdcl"))
143 (:file "scheduler" :depends-on ("pkgdcl" "timers" "queue"))
146 (:file "fd-entry" :depends-on ("pkgdcl" "timers"))
147 (:file "multiplexer" :depends-on ("pkgdcl" "utils" "fd-entry"))
148 (:file "event-loop" :depends-on ("pkgdcl" "timers" "queue" "scheduler"
149 "fd-entry" "multiplexer"))
152 (:file "fd-wait" :depends-on ("pkgdcl" "utils"))
155 (:file "backend-select"
156 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
158 (:file "backend-epoll"
159 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
161 (:file "backend-kqueue"
162 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
164 :depends-on ("pkgdcl" "multiplexer" "backend-select"
165 #+linux "backend-epoll" #+bsd "backend-kqueue"))))
167 (asdf:defsystem :iolib/streams
168 :description "Gray streams."
169 :author "Stelian Ionescu <sionescu@cddr.org>"
171 :version (:read-file-form "version.lisp-expr")
172 :defsystem-depends-on (:iolib/asdf :iolib/conf)
173 :depends-on (:iolib/base :iolib/multiplex :cffi)
174 :around-compile "iolib/asdf:compile-wrapper"
176 :pathname "src/streams/gray/"
179 (:file "classes" :depends-on ("pkgdcl"))
180 (:file "conditions" :depends-on ("pkgdcl"))
181 (:file "buffer" :depends-on ("pkgdcl" "classes"))
182 (:file "fd-mixin" :depends-on ("pkgdcl" "classes"))
184 :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"))
185 (:file "gray-stream-methods"
186 :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"
189 (asdf:defsystem :iolib/zstreams
190 :description "Zeta streams."
191 :author "Stelian Ionescu <sionescu@cddr.org>"
193 :version (:read-file-form "version.lisp-expr")
194 :defsystem-depends-on (:iolib/asdf)
195 :depends-on (:iolib/base :iolib/syscalls :iolib/pathnames :cffi :bordeaux-threads)
196 :around-compile "iolib.asdf:compile-wrapper"
198 :pathname "src/streams/zeta/"
201 (:file "types" :depends-on ("pkgdcl"))
202 (:file "conditions" :depends-on ("pkgdcl"))
204 ;; Platform-specific files
205 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix"
206 :depends-on ("pkgdcl" "conditions"))
208 ;; Device interface definition
209 (:file "device" :depends-on ("pkgdcl" "types"))
212 (:file "iobuf" :depends-on ("pkgdcl" "types"))
215 (:file "stream" :depends-on ("pkgdcl" "types" "conditions" "device" "iobuf"))
218 (:file "file" :pathname #+unix "file-unix"
219 :depends-on ("pkgdcl" "types" "conditions" "ffi-functions" "device" "stream"))))
221 (asdf:defsystem :iolib/sockets
222 :description "Socket library."
223 :author "Stelian Ionescu <sionescu@cddr.org>"
225 :version (:read-file-form "version.lisp-expr")
226 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
227 :depends-on (:iolib/base :iolib/syscalls :iolib/streams
228 :babel :cffi :iolib/grovel :bordeaux-threads
230 :around-compile "iolib/asdf:compile-wrapper"
232 :pathname "src/sockets/"
235 (:iolib-grovel-file "grovel" :depends-on ("pkgdcl"))
236 (:file "conditions" :depends-on ("pkgdcl" "grovel"))
237 (:file "bsd" :depends-on ("pkgdcl" "grovel" "conditions"))
238 (:file "common" :depends-on ("pkgdcl" "grovel" "bsd"))
239 (:file "config" :depends-on ("pkgdcl" "grovel" "bsd"))
241 (:file "iface" :depends-on ("pkgdcl" "grovel" "bsd" "common"))
243 (:file "address" :depends-on ("pkgdcl" "common"))
244 (:file "address-predicates" :depends-on ("pkgdcl" "common" "address"))
245 (:file "address-arithmetic" :depends-on ("pkgdcl" "common" "address" "address-predicates"))
247 (:file "base-sockets" :depends-on ("pkgdcl" "bsd" "common" "config"))
248 (:file "socket-options"
249 :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config" "base-sockets"))
251 ;; Local file configuration (/etc/hosts etc...)
252 (:file "etc-files" :pathname "namedb/etc-files"
253 :depends-on ("pkgdcl"))
254 (:file "file-monitor" :pathname "namedb/file-monitor"
255 :depends-on ("pkgdcl"))
256 (:file "protocols" :pathname "namedb/protocols"
257 :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
258 (:file "services" :pathname "namedb/services"
259 :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
260 (:file "hosts" :pathname "namedb/hosts"
261 :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
263 (:file "socket-methods"
264 :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config"
265 "address" "address-predicates" "base-sockets" "socket-options"
266 "protocols" "services"))
268 :depends-on ("pkgdcl" "grovel" "common" "config" "address" "address-predicates"
269 "base-sockets" "socket-options" "services" "socket-methods"))
272 (:file "dns-common" :pathname "dns/common"
273 :depends-on ("pkgdcl" "common"))
274 (:file "nameservers" :pathname "dns/nameservers"
275 :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
276 (:file "message":pathname "dns/message"
277 :depends-on ("pkgdcl" "common" "dns-common"))
278 (:file "query" :pathname "dns/query"
279 :depends-on ("pkgdcl" "conditions" "address" "address-predicates"
280 "socket-options" "socket-methods" "make-socket" "dns-common"
281 "nameservers" "message"))
282 (:file "dns-conditions" :pathname "dns/conditions"
283 :depends-on ("pkgdcl"))
284 (:file "lookup" :pathname "dns/lookup"
285 :depends-on ("pkgdcl" "address" "address-predicates" "file-monitor" "hosts"
286 "nameservers" "message" "query" "dns-conditions"))))
288 (asdf:defsystem :iolib/trivial-sockets
289 :description "Trivial-Sockets compatibility layer."
290 :author "Dan Barlow <dan@telent.net>"
291 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
293 :version (:read-file-form "version.lisp-expr")
294 :defsystem-depends-on (:iolib/asdf :iolib/conf)
295 :depends-on (:iolib/base :iolib/sockets)
296 :around-compile "iolib/asdf:compile-wrapper"
298 :pathname "src/sockets/"
300 ((:file "trivial-sockets")))
302 (asdf:defsystem :iolib/pathnames
303 :description "New pathnames."
304 :author "Stelian Ionescu <sionescu@cddr.org>"
306 :version (:read-file-form "version.lisp-expr")
307 :defsystem-depends-on (:iolib/asdf :iolib/conf)
308 :depends-on (:iolib/base :iolib/syscalls)
309 :around-compile "iolib/asdf:compile-wrapper"
311 :pathname "src/pathnames/"
315 (:file "file-path-os" :pathname #+unix "file-path-unix"))
318 (asdf:defsystem :iolib/os
319 :description "OS interface."
320 :author "Stelian Ionescu <sionescu@cddr.org>"
322 :version (:read-file-form "version.lisp-expr")
323 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
324 :depends-on (:iolib/base :iolib/grovel :iolib/syscalls
325 :iolib/streams :iolib/pathnames)
326 :around-compile "iolib/asdf:compile-wrapper"
331 (:file "os" :pathname #+unix "os-unix")
332 (:iolib-grovel-file "ffi-types" :pathname #+unix "ffi-types-unix")
333 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix")
334 (:file "create-process" :pathname #+unix "create-process-unix"))
337 (asdf:defsystem :iolib
338 :description "I/O library."
339 :author "Stelian Ionescu <sionescu@cddr.org>"
341 :version (:read-file-form "version.lisp-expr")
342 :defsystem-depends-on (:iolib/asdf :iolib/conf)
343 :depends-on (:iolib/base :iolib/multiplex :iolib/streams :iolib/sockets)
344 :around-compile "iolib/asdf:compile-wrapper"
346 :pathname "src/iolib/"
347 :components ((:file "pkgdcl")))
349 (defmethod asdf:perform ((o asdf:test-op)
350 (c (eql (asdf:find-system :iolib))))
351 (asdf:load-system :iolib/tests)
352 (uiop:symbol-call :5am :run! :iolib))
354 (asdf:defsystem :iolib/tests
355 :description "IOLib test suite."
356 :author "Luis Oliveira <loliveira@common-lisp.net>"
357 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
359 :version (:read-file-form "version.lisp-expr")
360 :defsystem-depends-on (:iolib/base)
361 :depends-on (:fiveam :iolib :iolib/pathnames)
362 :around-compile "iolib/asdf:compile-wrapper"
367 (:file "defsuites" :depends-on ("pkgdcl"))
368 (:file "base" :depends-on ("pkgdcl" "defsuites"))
369 (:file "file-paths-os" :depends-on ("pkgdcl" "defsuites")
370 :pathname #+unix "file-paths-unix")
371 (:file "events" :depends-on ("pkgdcl" "defsuites"))
372 (:file "streams" :depends-on ("pkgdcl" "defsuites"))
373 (:file "sockets" :depends-on ("pkgdcl" "defsuites"))))
375 (asdf:defsystem :iolib/examples
376 :description "Examples for IOLib tutorial at http://pages.cs.wisc.edu/~psilord/blog/data/iolib-tutorial/tutorial.html"
377 :author "Peter Keller <psilord@cs.wisc.edu>"
378 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
380 :version (:read-file-form "version.lisp-expr")
381 :defsystem-depends-on (:iolib/base)
382 :depends-on (:iolib :bordeaux-threads)
383 :around-compile "iolib/asdf:compile-wrapper"
384 :pathname "examples/"
385 :components ((:file "package")
386 (:file "ex1-client" :depends-on ("package"))
387 (:file "ex2-client" :depends-on ("package"))
388 (:file "ex3-client" :depends-on ("package"))
389 (:file "ex4-client" :depends-on ("package"))
390 (:file "ex5a-client" :depends-on ("package"))
391 (:file "ex5b-client" :depends-on ("package"))
392 (:file "ex1-server" :depends-on ("package"))
393 (:file "ex2-server" :depends-on ("package"))
394 (:file "ex3-server" :depends-on ("package"))
395 (:file "ex4-server" :depends-on ("package"))
396 (:file "ex5-server" :depends-on ("package"))
397 (:file "ex6-server" :depends-on ("package"))
398 (:file "ex7-buffer" :depends-on ("package"))
399 (:file "ex7-server" :depends-on ("package" "ex7-buffer"))
400 (:file "ex8-buffer" :depends-on ("package"))
401 (:file "ex8-server" :depends-on ("package" "ex8-buffer"))))