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 :iolib/asdf :iolib/conf)
93 :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 :author "Stelian Ionescu <sionescu@cddr.org>"
108 :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>"
131 :version (:read-file-form "version.lisp-expr")
132 :defsystem-depends-on (:iolib/asdf :iolib/conf)
133 :depends-on (:iolib/base :iolib/syscalls :cffi)
134 :around-compile "iolib/asdf:compile-wrapper"
136 :pathname "src/multiplex/"
141 (:file "utils" :depends-on ("pkgdcl"))
142 (:file "timers" :depends-on ("pkgdcl"))
143 (:file "queue" :depends-on ("pkgdcl"))
144 (:file "scheduler" :depends-on ("pkgdcl" "timers" "queue"))
147 (:file "fd-entry" :depends-on ("pkgdcl" "timers"))
148 (:file "multiplexer" :depends-on ("pkgdcl" "utils" "fd-entry"))
149 (:file "event-loop" :depends-on ("pkgdcl" "timers" "queue" "scheduler"
150 "fd-entry" "multiplexer"))
153 (:file "fd-wait" :depends-on ("pkgdcl" "utils"))
156 (:file "backend-select"
157 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
159 (:file "backend-epoll"
160 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
162 (:file "backend-kqueue"
163 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
165 :depends-on ("pkgdcl" "multiplexer" "backend-select"
166 #+linux "backend-epoll" #+bsd "backend-kqueue"))))
168 (asdf:defsystem :iolib/streams
169 :description "Gray streams."
170 :author "Stelian Ionescu <sionescu@cddr.org>"
172 :version (:read-file-form "version.lisp-expr")
173 :defsystem-depends-on (:iolib/asdf :iolib/conf)
174 :depends-on (:iolib/base :iolib/multiplex :cffi)
175 :around-compile "iolib/asdf:compile-wrapper"
177 :pathname "src/streams/gray/"
180 (:file "classes" :depends-on ("pkgdcl"))
181 (:file "conditions" :depends-on ("pkgdcl"))
182 (:file "buffer" :depends-on ("pkgdcl" "classes"))
183 (:file "fd-mixin" :depends-on ("pkgdcl" "classes"))
185 :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"))
186 (:file "gray-stream-methods"
187 :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"
190 (asdf:defsystem :iolib/zstreams
191 :description "Zeta streams."
192 :author "Stelian Ionescu <sionescu@cddr.org>"
194 :version (:read-file-form "version.lisp-expr")
195 :defsystem-depends-on (:iolib/asdf)
196 :depends-on (:iolib/base :iolib/syscalls :iolib/pathnames :cffi :bordeaux-threads)
197 :around-compile "iolib.asdf:compile-wrapper"
199 :pathname "src/streams/zeta/"
202 (:file "types" :depends-on ("pkgdcl"))
203 (:file "conditions" :depends-on ("pkgdcl"))
205 ;; Platform-specific files
206 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix"
207 :depends-on ("pkgdcl" "conditions"))
209 ;; Device interface definition
210 (:file "device" :depends-on ("pkgdcl" "types"))
213 (:file "iobuf" :depends-on ("pkgdcl" "types"))
216 (:file "stream" :depends-on ("pkgdcl" "types" "conditions" "device" "iobuf"))
219 (:file "file" :pathname #+unix "file-unix"
220 :depends-on ("pkgdcl" "types" "conditions" "ffi-functions" "device" "stream"))))
222 (asdf:defsystem :iolib/sockets
223 :description "Socket library."
224 :author "Stelian Ionescu <sionescu@cddr.org>"
226 :version (:read-file-form "version.lisp-expr")
227 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
228 :depends-on (:iolib/base :iolib/syscalls :iolib/streams
229 :babel :cffi :iolib/grovel :bordeaux-threads
231 :around-compile "iolib/asdf:compile-wrapper"
233 :pathname "src/sockets/"
236 (:iolib-grovel-file "grovel" :depends-on ("pkgdcl"))
237 (:file "conditions" :depends-on ("pkgdcl" "grovel"))
238 (:file "bsd" :depends-on ("pkgdcl" "grovel" "conditions"))
239 (:file "common" :depends-on ("pkgdcl" "grovel" "bsd"))
240 (:file "config" :depends-on ("pkgdcl" "grovel" "bsd"))
242 (:file "iface" :depends-on ("pkgdcl" "grovel" "bsd" "common"))
244 (:file "address" :depends-on ("pkgdcl" "common"))
245 (:file "address-predicates" :depends-on ("pkgdcl" "common" "address"))
246 (:file "address-arithmetic" :depends-on ("pkgdcl" "common" "address" "address-predicates"))
248 (:file "base-sockets" :depends-on ("pkgdcl" "bsd" "common" "config"))
249 (:file "socket-options"
250 :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config" "base-sockets"))
252 ;; Local file configuration (/etc/hosts etc...)
253 (:file "etc-files" :pathname "namedb/etc-files"
254 :depends-on ("pkgdcl"))
255 (:file "file-monitor" :pathname "namedb/file-monitor"
256 :depends-on ("pkgdcl"))
257 (:file "protocols" :pathname "namedb/protocols"
258 :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
259 (:file "services" :pathname "namedb/services"
260 :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
261 (:file "hosts" :pathname "namedb/hosts"
262 :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
264 (:file "socket-methods"
265 :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config"
266 "address" "address-predicates" "base-sockets" "socket-options"
267 "protocols" "services"))
269 :depends-on ("pkgdcl" "grovel" "common" "config" "address" "address-predicates"
270 "base-sockets" "socket-options" "services" "socket-methods"))
273 (:file "dns-common" :pathname "dns/common"
274 :depends-on ("pkgdcl" "common"))
275 (:file "nameservers" :pathname "dns/nameservers"
276 :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
277 (:file "message":pathname "dns/message"
278 :depends-on ("pkgdcl" "common" "dns-common"))
279 (:file "query" :pathname "dns/query"
280 :depends-on ("pkgdcl" "conditions" "address" "address-predicates"
281 "socket-options" "socket-methods" "make-socket" "dns-common"
282 "nameservers" "message"))
283 (:file "dns-conditions" :pathname "dns/conditions"
284 :depends-on ("pkgdcl"))
285 (:file "lookup" :pathname "dns/lookup"
286 :depends-on ("pkgdcl" "address" "address-predicates" "file-monitor" "hosts"
287 "nameservers" "message" "query" "dns-conditions"))))
289 (asdf:defsystem :iolib/trivial-sockets
290 :description "Trivial-Sockets compatibility layer."
291 :author "Dan Barlow <dan@telent.net>"
292 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
294 :version (:read-file-form "version.lisp-expr")
295 :defsystem-depends-on (:iolib/asdf :iolib/conf)
296 :depends-on (:iolib/base :iolib/sockets)
297 :around-compile "iolib/asdf:compile-wrapper"
299 :pathname "src/sockets/"
301 ((:file "trivial-sockets")))
303 (asdf:defsystem :iolib/pathnames
304 :description "New pathnames."
305 :author "Stelian Ionescu <sionescu@cddr.org>"
307 :version (:read-file-form "version.lisp-expr")
308 :defsystem-depends-on (:iolib/asdf :iolib/conf)
309 :depends-on (:iolib/base :iolib/syscalls)
310 :around-compile "iolib/asdf:compile-wrapper"
312 :pathname "src/pathnames/"
316 (:file "file-path-os" :pathname #+unix "file-path-unix"))
319 (asdf:defsystem :iolib/os
320 :description "OS interface."
321 :author "Stelian Ionescu <sionescu@cddr.org>"
323 :version (:read-file-form "version.lisp-expr")
324 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
325 :depends-on (:iolib/base :iolib/grovel :iolib/syscalls
326 :iolib/streams :iolib/pathnames)
327 :around-compile "iolib/asdf:compile-wrapper"
332 (:file "os" :pathname #+unix "os-unix")
333 (:iolib-grovel-file "ffi-types" :pathname #+unix "ffi-types-unix")
334 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix")
335 (:file "create-process" :pathname #+unix "create-process-unix"))
338 (asdf:defsystem :iolib
339 :description "I/O library."
340 :author "Stelian Ionescu <sionescu@cddr.org>"
342 :version (:read-file-form "version.lisp-expr")
343 :defsystem-depends-on (:iolib/asdf :iolib/conf)
344 :depends-on (:iolib/base :iolib/multiplex :iolib/streams :iolib/sockets)
345 :around-compile "iolib/asdf:compile-wrapper"
347 :pathname "src/iolib/"
348 :components ((:file "pkgdcl")))
350 (defmethod asdf:perform ((o asdf:test-op)
351 (c (eql (asdf:find-system :iolib))))
352 (asdf:load-system :iolib/tests)
353 (uiop:symbol-call :5am :run! :iolib))
355 (asdf:defsystem :iolib/tests
356 :description "IOLib test suite."
357 :author "Luis Oliveira <loliveira@common-lisp.net>"
358 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
360 :version (:read-file-form "version.lisp-expr")
361 :defsystem-depends-on (:iolib/base)
362 :depends-on (:fiveam :iolib :iolib/pathnames)
363 :around-compile "iolib/asdf:compile-wrapper"
368 (:file "defsuites" :depends-on ("pkgdcl"))
369 (:file "base" :depends-on ("pkgdcl" "defsuites"))
370 (:file "file-paths-os" :depends-on ("pkgdcl" "defsuites")
371 :pathname #+unix "file-paths-unix")
372 (:file "events" :depends-on ("pkgdcl" "defsuites"))
373 (:file "streams" :depends-on ("pkgdcl" "defsuites"))
374 (:file "sockets" :depends-on ("pkgdcl" "defsuites"))))
376 (asdf:defsystem :iolib/examples
377 :description "Examples for IOLib tutorial at http://pages.cs.wisc.edu/~psilord/blog/data/iolib-tutorial/tutorial.html"
378 :author "Peter Keller <psilord@cs.wisc.edu>"
379 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
381 :version (:read-file-form "version.lisp-expr")
382 :defsystem-depends-on (:iolib/base)
383 :depends-on (:iolib :bordeaux-threads)
384 :around-compile "iolib/asdf:compile-wrapper"
385 :pathname "examples/"
386 :components ((:file "package")
387 (:file "ex1-client" :depends-on ("package"))
388 (:file "ex2-client" :depends-on ("package"))
389 (:file "ex3-client" :depends-on ("package"))
390 (:file "ex4-client" :depends-on ("package"))
391 (:file "ex5a-client" :depends-on ("package"))
392 (:file "ex5b-client" :depends-on ("package"))
393 (:file "ex1-server" :depends-on ("package"))
394 (:file "ex2-server" :depends-on ("package"))
395 (:file "ex3-server" :depends-on ("package"))
396 (:file "ex4-server" :depends-on ("package"))
397 (:file "ex5-server" :depends-on ("package"))
398 (:file "ex6-server" :depends-on ("package"))
399 (:file "ex7-buffer" :depends-on ("package"))
400 (:file "ex7-server" :depends-on ("package" "ex7-buffer"))
401 (:file "ex8-buffer" :depends-on ("package"))
402 (:file "ex8-server" :depends-on ("package" "ex8-buffer"))))