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>"
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 (uiop:symbol-call :iolib/conf '#:load-gray-streams))
49 (asdf:load-op :before (o c)
50 (uiop:symbol-call :iolib/conf '#:load-gray-streams))
52 (asdf:load-source-op :before (o c)
53 (uiop: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/zstreams
192 :description "Zeta streams."
193 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
194 :version (:read-file-form "version.lisp-expr")
196 :defsystem-depends-on (:iolib/asdf)
197 :depends-on (:iolib/base :iolib/syscalls :iolib/pathnames :cffi :bordeaux-threads)
198 :around-compile "iolib.asdf:compile-wrapper"
200 :pathname "src/streams/zeta/"
203 (:file "types" :depends-on ("pkgdcl"))
204 (:file "conditions" :depends-on ("pkgdcl"))
206 ;; Platform-specific files
207 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix"
208 :depends-on ("pkgdcl" "conditions"))
210 ;; Device interface definition
211 (:file "device" :depends-on ("pkgdcl" "types"))
214 (:file "iobuf" :depends-on ("pkgdcl" "types"))
217 (:file "stream" :depends-on ("pkgdcl" "types" "conditions" "device" "iobuf"))
220 (:file "file" :pathname #+unix "file-unix"
221 :depends-on ("pkgdcl" "types" "conditions" "ffi-functions" "device" "stream"))))
223 (asdf:defsystem :iolib/sockets
224 :description "Socket library."
225 :author "Stelian Ionescu <sionescu@cddr.org>"
226 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
227 :version (:read-file-form "version.lisp-expr")
229 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
230 :depends-on (:iolib/base :iolib/syscalls :iolib/streams
231 :babel :cffi :iolib/grovel :bordeaux-threads
233 :around-compile "iolib/asdf:compile-wrapper"
235 :pathname "src/sockets/"
238 (:iolib-grovel-file "grovel" :depends-on ("pkgdcl"))
239 (:file "conditions" :depends-on ("pkgdcl" "grovel"))
240 (:file "bsd" :depends-on ("pkgdcl" "grovel" "conditions"))
241 (:file "common" :depends-on ("pkgdcl" "grovel" "bsd"))
242 (:file "config" :depends-on ("pkgdcl" "grovel" "bsd"))
244 (:file "iface" :depends-on ("pkgdcl" "grovel" "bsd" "common"))
246 (:file "address" :depends-on ("pkgdcl" "common"))
247 (:file "address-predicates" :depends-on ("pkgdcl" "common" "address"))
248 (:file "address-arithmetic" :depends-on ("pkgdcl" "common" "address" "address-predicates"))
250 (:file "base-sockets" :depends-on ("pkgdcl" "bsd" "common" "config"))
251 (:file "socket-options"
252 :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config" "base-sockets"))
254 ;; Local file configuration (/etc/hosts etc...)
255 (:file "etc-files" :pathname "namedb/etc-files"
256 :depends-on ("pkgdcl"))
257 (:file "file-monitor" :pathname "namedb/file-monitor"
258 :depends-on ("pkgdcl"))
259 (:file "protocols" :pathname "namedb/protocols"
260 :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
261 (:file "services" :pathname "namedb/services"
262 :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
263 (:file "hosts" :pathname "namedb/hosts"
264 :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
266 (:file "socket-methods"
267 :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config"
268 "address" "address-predicates" "base-sockets" "socket-options"
269 "protocols" "services"))
271 :depends-on ("pkgdcl" "grovel" "common" "config" "address" "address-predicates"
272 "base-sockets" "socket-options" "services" "socket-methods"))
275 (:file "dns-common" :pathname "dns/common"
276 :depends-on ("pkgdcl" "common"))
277 (:file "nameservers" :pathname "dns/nameservers"
278 :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
279 (:file "message":pathname "dns/message"
280 :depends-on ("pkgdcl" "common" "dns-common"))
281 (:file "query" :pathname "dns/query"
282 :depends-on ("pkgdcl" "conditions" "address" "address-predicates"
283 "socket-options" "socket-methods" "make-socket" "dns-common"
284 "nameservers" "message"))
285 (:file "dns-conditions" :pathname "dns/conditions"
286 :depends-on ("pkgdcl"))
287 (:file "lookup" :pathname "dns/lookup"
288 :depends-on ("pkgdcl" "address" "address-predicates" "file-monitor" "hosts"
289 "nameservers" "message" "query" "dns-conditions"))))
291 (asdf:defsystem :iolib/trivial-sockets
292 :description "Trivial-Sockets compatibility layer."
293 :author "Dan Barlow <dan@telent.net>"
294 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
295 :version (:read-file-form "version.lisp-expr")
297 :defsystem-depends-on (:iolib/asdf :iolib/conf)
298 :depends-on (:iolib/base :iolib/sockets)
299 :around-compile "iolib/asdf:compile-wrapper"
301 :pathname "src/sockets/"
303 ((:file "trivial-sockets")))
305 (asdf:defsystem :iolib/pathnames
306 :description "New pathnames."
307 :author "Stelian Ionescu <sionescu@cddr.org>"
308 :version (:read-file-form "version.lisp-expr")
310 :defsystem-depends-on (:iolib/asdf :iolib/conf)
311 :depends-on (:iolib/base :iolib/syscalls)
312 :around-compile "iolib/asdf:compile-wrapper"
314 :pathname "src/pathnames/"
318 (:file "file-path-os" :pathname #+unix "file-path-unix"))
321 (asdf:defsystem :iolib/os
322 :description "OS interface."
323 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
324 :version (:read-file-form "version.lisp-expr")
326 :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
327 :depends-on (:iolib/base :iolib/grovel :iolib/syscalls
328 :iolib/streams :iolib/pathnames)
329 :around-compile "iolib/asdf:compile-wrapper"
334 (:file "os" :pathname #+unix "os-unix")
335 (:iolib-grovel-file "ffi-types" :pathname #+unix "ffi-types-unix")
336 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix")
337 (:file "create-process" :pathname #+unix "create-process-unix"))
340 (asdf:defsystem :iolib
341 :description "I/O library."
342 :author "Stelian Ionescu <sionescu@cddr.org>"
343 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
344 :version (:read-file-form "version.lisp-expr")
346 :defsystem-depends-on (:iolib/asdf :iolib/conf)
347 :depends-on (:iolib/base :iolib/multiplex :iolib/streams :iolib/sockets)
348 :around-compile "iolib/asdf:compile-wrapper"
350 :pathname "src/iolib/"
351 :components ((:file "pkgdcl")))
353 (defmethod asdf:perform ((o asdf:test-op)
354 (c (eql (asdf:find-system :iolib))))
355 (asdf:load-system :iolib/tests)
356 (uiop:symbol-call :5am :run! :iolib))
358 (asdf:defsystem :iolib/tests
359 :description "IOLib test suite."
360 :author "Luis Oliveira <loliveira@common-lisp.net>"
361 :version (:read-file-form "version.lisp-expr")
363 :defsystem-depends-on (:iolib/base)
364 :depends-on (:fiveam :iolib :iolib/pathnames)
365 :around-compile "iolib/asdf:compile-wrapper"
370 (:file "defsuites" :depends-on ("pkgdcl"))
371 (:file "base" :depends-on ("pkgdcl" "defsuites"))
372 (:file "file-paths-os" :depends-on ("pkgdcl" "defsuites")
373 :pathname #+unix "file-paths-unix")
374 (:file "events" :depends-on ("pkgdcl" "defsuites"))
375 (:file "streams" :depends-on ("pkgdcl" "defsuites"))
376 (:file "sockets" :depends-on ("pkgdcl" "defsuites"))))
378 (asdf:defsystem :iolib/examples
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"))))