1 ;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*-
3 #.(unless (or #+asdf3.1 (version<= "3.1" (asdf-version)))
4 (error "You need ASDF >= 3.1 to load this system correctly."))
6 (defsystem :iolib/syscalls
7 :description "Syscalls and foreign types."
8 :author "Stelian Ionescu <sionescu@cddr.org>"
10 :version (:read-file-form "version.sexp")
11 :defsystem-depends-on (:iolib.asdf :iolib.conf :iolib.grovel)
12 :depends-on (:trivial-features :cffi :iolib.base :iolib.grovel)
13 :around-compile "iolib/asdf:compile-wrapper"
15 :pathname "src/syscalls/"
19 (:file "syscall-path-strings" :pathname "unix-syscall-path-strings")
20 ;; Platform-specific files
21 (:iolib-grovel-file "ffi-types" :pathname #+unix "ffi-types-unix")
23 (:file "os-conditions" :pathname #+unix "os-conditions-unix")
26 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix"))
29 (defsystem :iolib/multiplex
30 :description "I/O multiplexing library."
31 :author "Stelian Ionescu <sionescu@cddr.org>"
33 :version (:read-file-form "version.sexp")
34 :defsystem-depends-on (:iolib.asdf :iolib.conf)
35 :depends-on (:iolib.base :iolib/syscalls :cffi)
36 :around-compile "iolib/asdf:compile-wrapper"
38 :pathname "src/multiplex/"
43 (:file "utils" :depends-on ("pkgdcl"))
44 (:file "timers" :depends-on ("pkgdcl"))
45 (:file "queue" :depends-on ("pkgdcl"))
46 (:file "scheduler" :depends-on ("pkgdcl" "timers" "queue"))
49 (:file "fd-entry" :depends-on ("pkgdcl" "timers"))
50 (:file "multiplexer" :depends-on ("pkgdcl" "utils" "fd-entry"))
51 (:file "event-loop" :depends-on ("pkgdcl" "timers" "queue" "scheduler"
52 "fd-entry" "multiplexer"))
55 (:file "fd-wait" :depends-on ("pkgdcl" "utils"))
58 (:file "backend-select"
59 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
61 (:file "backend-epoll"
62 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
64 (:file "backend-kqueue"
65 :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
67 :depends-on ("pkgdcl" "multiplexer" "backend-select"
68 #+linux "backend-epoll" #+bsd "backend-kqueue"))))
70 (defsystem :iolib/streams
71 :description "Gray streams."
72 :author "Stelian Ionescu <sionescu@cddr.org>"
74 :version (:read-file-form "version.sexp")
75 :defsystem-depends-on (:iolib.asdf :iolib.conf)
76 :depends-on (:iolib.base :iolib/multiplex :cffi)
77 :around-compile "iolib/asdf:compile-wrapper"
79 :pathname "src/streams/gray/"
82 (:file "classes" :depends-on ("pkgdcl"))
83 (:file "conditions" :depends-on ("pkgdcl"))
84 (:file "buffer" :depends-on ("pkgdcl" "classes"))
85 (:file "fd-mixin" :depends-on ("pkgdcl" "classes"))
87 :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"))
88 (:file "gray-stream-methods"
89 :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"
92 (defsystem :iolib/zstreams
93 :description "Zeta streams."
94 :author "Stelian Ionescu <sionescu@cddr.org>"
96 :version (:read-file-form "version.sexp")
97 :defsystem-depends-on (:iolib.asdf)
98 :depends-on (:iolib.base :iolib/syscalls :iolib/pathnames :cffi :bordeaux-threads)
99 :around-compile "iolib.asdf:compile-wrapper"
101 :pathname "src/streams/zeta/"
104 (:file "types" :depends-on ("pkgdcl"))
105 (:file "conditions" :depends-on ("pkgdcl"))
107 ;; Platform-specific files
108 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix"
109 :depends-on ("pkgdcl" "conditions"))
111 ;; Device interface definition
112 (:file "device" :depends-on ("pkgdcl" "types"))
115 (:file "iobuf" :depends-on ("pkgdcl" "types"))
118 (:file "stream" :depends-on ("pkgdcl" "types" "conditions" "device" "iobuf"))
121 (:file "file" :pathname #+unix "file-unix"
122 :depends-on ("pkgdcl" "types" "conditions" "ffi-functions" "device" "stream"))))
124 (defsystem :iolib/sockets
125 :description "Socket library."
126 :author "Stelian Ionescu <sionescu@cddr.org>"
128 :version (:read-file-form "version.sexp")
129 :defsystem-depends-on (:iolib.asdf :iolib.conf :iolib.grovel)
130 :depends-on (:iolib.base :iolib/syscalls :iolib/streams
131 :babel :cffi :iolib.grovel :bordeaux-threads
133 :around-compile "iolib/asdf:compile-wrapper"
135 :pathname "src/sockets/"
138 (:iolib-grovel-file "grovel" :depends-on ("pkgdcl"))
139 (:file "conditions" :depends-on ("pkgdcl" "grovel"))
140 (:file "bsd" :depends-on ("pkgdcl" "grovel" "conditions"))
141 (:file "common" :depends-on ("pkgdcl" "grovel" "bsd"))
142 (:file "config" :depends-on ("pkgdcl" "grovel" "bsd"))
144 (:file "iface" :depends-on ("pkgdcl" "grovel" "bsd" "common"))
146 (:file "address" :depends-on ("pkgdcl" "common"))
147 (:file "address-predicates" :depends-on ("pkgdcl" "common" "address"))
148 (:file "address-arithmetic" :depends-on ("pkgdcl" "common" "address" "address-predicates"))
150 (:file "base-sockets" :depends-on ("pkgdcl" "bsd" "common" "config"))
151 (:file "socket-options"
152 :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config" "base-sockets"))
154 ;; Local file configuration (/etc/hosts etc...)
155 (:file "etc-files" :pathname "namedb/etc-files"
156 :depends-on ("pkgdcl"))
157 (:file "file-monitor" :pathname "namedb/file-monitor"
158 :depends-on ("pkgdcl"))
159 (:file "protocols" :pathname "namedb/protocols"
160 :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
161 (:file "services" :pathname "namedb/services"
162 :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
163 (:file "hosts" :pathname "namedb/hosts"
164 :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
166 (:file "socket-methods"
167 :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config"
168 "address" "address-predicates" "base-sockets" "socket-options"
169 "protocols" "services"))
171 :depends-on ("pkgdcl" "grovel" "common" "config" "address" "address-predicates"
172 "base-sockets" "socket-options" "services" "socket-methods"))
175 (:file "dns-common" :pathname "dns/common"
176 :depends-on ("pkgdcl" "common"))
177 (:file "nameservers" :pathname "dns/nameservers"
178 :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
179 (:file "message":pathname "dns/message"
180 :depends-on ("pkgdcl" "common" "dns-common"))
181 (:file "query" :pathname "dns/query"
182 :depends-on ("pkgdcl" "conditions" "address" "address-predicates"
183 "socket-options" "socket-methods" "make-socket" "dns-common"
184 "nameservers" "message"))
185 (:file "dns-conditions" :pathname "dns/conditions"
186 :depends-on ("pkgdcl"))
187 (:file "lookup" :pathname "dns/lookup"
188 :depends-on ("pkgdcl" "address" "address-predicates" "file-monitor" "hosts"
189 "nameservers" "message" "query" "dns-conditions"))))
191 (defsystem :iolib/trivial-sockets
192 :description "Trivial-Sockets compatibility layer."
193 :author "Dan Barlow <dan@telent.net>"
194 :maintainer "Stelian Ionescu <sionescu@cddr.org>"
196 :version (:read-file-form "version.sexp")
197 :defsystem-depends-on (:iolib.asdf :iolib.conf)
198 :depends-on (:iolib.base :iolib/sockets)
199 :around-compile "iolib/asdf:compile-wrapper"
201 :pathname "src/sockets/"
203 ((:file "trivial-sockets")))
205 (defsystem :iolib/pathnames
206 :description "New pathnames."
207 :author "Stelian Ionescu <sionescu@cddr.org>"
209 :version (:read-file-form "version.sexp")
210 :defsystem-depends-on (:iolib.asdf :iolib.conf)
211 :depends-on (:iolib.base :iolib/syscalls)
212 :around-compile "iolib/asdf:compile-wrapper"
214 :pathname "src/pathnames/"
218 (:file "file-path-os" :pathname #+unix "file-path-unix"))
222 :description "OS interface."
223 :author "Stelian Ionescu <sionescu@cddr.org>"
225 :version (:read-file-form "version.sexp")
226 :defsystem-depends-on (:iolib.asdf :iolib.conf :iolib.grovel)
227 :depends-on (:iolib.base :iolib.grovel :iolib/syscalls
228 :iolib/streams :iolib/pathnames)
229 :around-compile "iolib/asdf:compile-wrapper"
234 (:file "os" :pathname #+unix "os-unix")
235 (:iolib-grovel-file "ffi-types" :pathname #+unix "ffi-types-unix")
236 (:file "ffi-functions" :pathname #+unix "ffi-functions-unix")
237 (:file "create-process" :pathname #+unix "create-process-unix"))
241 :description "I/O library."
242 :author "Stelian Ionescu <sionescu@cddr.org>"
244 :version (:read-file-form "version.sexp")
245 :defsystem-depends-on (:iolib.asdf :iolib.conf)
246 :depends-on (:iolib.base :iolib/multiplex :iolib/streams :iolib/sockets)
247 :around-compile "iolib/asdf:compile-wrapper"
249 :pathname "src/iolib/"
250 :components ((:file "pkgdcl"))
251 :in-order-to ((test-op (test-op :iolib.tests))))