Whitespace
[iolib.git] / iolib.asd
blob377e7a7e9eaf21834ed75a327df8fcada71c2621
1 ;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*-
3 (unless (or #+asdf3 (asdf/driver:version<= "2.29" (asdf-version)))
4   (error "You need ASDF >= 2.29 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")
11   :licence "MIT"
12   :depends-on (:alexandria)
13   :encoding :utf-8
14   :pathname "src/base/"
15   :components
16   ((:file "asdf")))
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")
22   :licence "MIT"
23   :defsystem-depends-on (:iolib/asdf)
24   :around-compile "iolib/asdf:compile-wrapper"
25   :encoding :utf-8
26   :pathname "src/conf/"
27   :components
28   ((:file "pkgdcl")
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")
35   :licence "MIT"
36   :defsystem-depends-on (:iolib/asdf :iolib/conf)
37   :depends-on (:alexandria)
38   :around-compile "iolib/asdf:compile-wrapper"
39   :encoding :utf-8
40   :pathname "src/new-cl/"
41   :components
42   ((:file "conduits")
43    #+scl (:file "scl-gray-streams")
44    (:file "pkgdcl" :depends-on ("conduits" #+scl "scl-gray-streams")
45     :perform
46     (asdf:compile-op :before (o c)
47       (asdf/package:symbol-call :iolib/conf '#:load-gray-streams))
48     :perform
49     (asdf:load-op :before (o c)
50       (asdf/package:symbol-call :iolib/conf '#:load-gray-streams))
51     :perform
52     (asdf:load-source-op :before (o c)
53       (asdf/package:symbol-call :iolib/conf '#:load-gray-streams)))
54    (:file "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")
64   :licence "MIT"
65   :defsystem-depends-on (:iolib/asdf :iolib/conf)
66   :depends-on (:iolib/common-lisp :alexandria :split-sequence)
67   :around-compile "iolib/asdf:compile-wrapper"
68   :encoding :utf-8
69   :pathname "src/base/"
70   :components
71   ((:file "pkgdcl")
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 :cffi :iolib/asdf :iolib/conf)
90   :around-compile "iolib/asdf:compile-wrapper"
91   :licence "MIT"
92   :encoding :utf-8
93   :pathname "src/grovel/"
94   :components
95   ((:file "package")
96    (:file "invoke")
97    (:static-file "grovel-common.h")
98    (:file "grovel")
99    (:file "asdf"))
100   :serial t
101   :perform (asdf:compile-op :before (o c)
102              #+allegro (require "osi"))
103   :perform (asdf:load-op :before (o c)
104              #+allegro (require "osi"))
105   :perform (asdf:load-source-op :before (o c)
106              #+allegro (require "osi")))
108 (asdf:defsystem :iolib/syscalls
109   :description "Syscalls and foreign types."
110   :maintainer "Stelian Ionescu <sionescu@cddr.org>"
111   :version (:read-file-form "version.lisp-expr")
112   :licence "MIT"
113   :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
114   :depends-on (:trivial-features :cffi :iolib/base :iolib/grovel)
115   :around-compile "iolib/asdf:compile-wrapper"
116   :encoding :utf-8
117   :pathname "src/syscalls/"
118   :components
119   ((:file "pkgdcl")
120    #+unix
121    (:file "syscall-path-strings" :pathname "unix-syscall-path-strings")
122    ;; Platform-specific files
123    (:iolib-grovel-file "ffi-types" :pathname #+unix "ffi-types-unix")
124    (:file "conditions")
125    (:file "os-conditions" :pathname #+unix "os-conditions-unix")
126    (:file "designators")
127    (:file "early")
128    (:file "ffi-functions" :pathname #+unix "ffi-functions-unix"))
129   :serial t)
131 (asdf:defsystem :iolib/multiplex
132   :description "I/O multiplexing library."
133   :author "Stelian Ionescu <sionescu@cddr.org>"
134   :maintainer "Stelian Ionescu <sionescu@cddr.org>"
135   :version (:read-file-form "version.lisp-expr")
136   :licence "MIT"
137   :defsystem-depends-on (:iolib/asdf :iolib/conf)
138   :depends-on (:iolib/base :iolib/syscalls :cffi)
139   :around-compile "iolib/asdf:compile-wrapper"
140   :encoding :utf-8
141   :pathname "src/multiplex/"
142   :components
143   ((:file "pkgdcl")
145    ;; Scheduler
146    (:file "utils" :depends-on ("pkgdcl"))
147    (:file "timers" :depends-on ("pkgdcl"))
148    (:file "queue" :depends-on ("pkgdcl"))
149    (:file "scheduler" :depends-on ("pkgdcl" "timers" "queue"))
151    ;; Event loop
152    (:file "fd-entry" :depends-on ("pkgdcl" "timers"))
153    (:file "multiplexer" :depends-on ("pkgdcl" "utils" "fd-entry"))
154    (:file "event-loop" :depends-on ("pkgdcl" "timers" "queue" "scheduler"
155                                              "fd-entry" "multiplexer"))
157    ;; FD wait
158    (:file "fd-wait" :depends-on ("pkgdcl" "utils"))
160    ;; Event sources
161    (:file "backend-select"
162     :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
163    #+linux
164    (:file "backend-epoll"
165     :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
166    #+bsd
167    (:file "backend-kqueue"
168     :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
169    (:file "detect"
170     :depends-on ("pkgdcl" "multiplexer" "backend-select"
171                           #+linux "backend-epoll" #+bsd "backend-kqueue"))))
173 (asdf:defsystem :iolib/streams
174   :description "Gray streams."
175   :maintainer "Stelian Ionescu <sionescu@cddr.org>"
176   :version (:read-file-form "version.lisp-expr")
177   :licence "MIT"
178   :defsystem-depends-on (:iolib/asdf :iolib/conf)
179   :depends-on (:iolib/base :iolib/multiplex :cffi)
180   :around-compile "iolib/asdf:compile-wrapper"
181   :encoding :utf-8
182   :pathname "src/streams/gray/"
183   :components
184   ((:file "pkgdcl")
185    (:file "classes" :depends-on ("pkgdcl"))
186    (:file "conditions" :depends-on ("pkgdcl"))
187    (:file "buffer" :depends-on ("pkgdcl" "classes"))
188    (:file "fd-mixin" :depends-on ("pkgdcl" "classes"))
189    (:file "io-helpers"
190      :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"))
191    (:file "gray-stream-methods"
192      :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"
193                   "io-helpers"))))
195 (asdf:defsystem :iolib/sockets
196   :description "Socket library."
197   :author "Stelian Ionescu <sionescu@cddr.org>"
198   :maintainer "Stelian Ionescu <sionescu@cddr.org>"
199   :version (:read-file-form "version.lisp-expr")
200   :licence "MIT"
201   :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
202   :depends-on (:iolib/base :iolib/syscalls :iolib/streams
203                :babel :cffi :iolib/grovel :bordeaux-threads
204                :idna)
205   :around-compile "iolib/asdf:compile-wrapper"
206   :encoding :utf-8
207   :pathname "src/sockets/"
208   :components
209   ((:file "pkgdcl")
210    (:iolib-grovel-file "grovel" :depends-on ("pkgdcl"))
211    (:file "conditions" :depends-on ("pkgdcl" "grovel"))
212    (:file "bsd" :depends-on ("pkgdcl" "grovel" "conditions"))
213    (:file "common" :depends-on ("pkgdcl" "grovel" "bsd"))
214    (:file "config" :depends-on ("pkgdcl" "grovel" "bsd"))
216    (:file "iface" :depends-on ("pkgdcl" "grovel" "bsd" "common"))
218    (:file "address" :depends-on ("pkgdcl" "common"))
219    (:file "address-predicates" :depends-on ("pkgdcl" "common" "address"))
220    (:file "address-arithmetic" :depends-on ("pkgdcl" "common" "address" "address-predicates"))
222    (:file "base-sockets" :depends-on ("pkgdcl" "bsd" "common" "config"))
223    (:file "socket-options"
224      :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config" "base-sockets"))
226    ;; Local file configuration (/etc/hosts etc...)
227    (:file "etc-files" :pathname "namedb/etc-files"
228      :depends-on ("pkgdcl"))
229    (:file "file-monitor" :pathname "namedb/file-monitor"
230      :depends-on ("pkgdcl"))
231    (:file "protocols" :pathname "namedb/protocols"
232      :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
233    (:file "services" :pathname "namedb/services"
234      :depends-on ("pkgdcl" "common" "etc-files" "file-monitor"))
235    (:file "hosts" :pathname "namedb/hosts"
236      :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
238    (:file "socket-methods"
239      :depends-on ("pkgdcl" "grovel" "conditions" "bsd" "common" "config"
240                   "address" "address-predicates" "base-sockets" "socket-options"
241                   "protocols" "services"))
242    (:file "make-socket"
243      :depends-on ("pkgdcl" "grovel" "common" "config" "address" "address-predicates"
244                   "base-sockets" "socket-options" "services" "socket-methods"))
246    ;; DNS client
247    (:file "dns-common" :pathname "dns/common"
248      :depends-on ("pkgdcl" "common"))
249    (:file "nameservers" :pathname "dns/nameservers"
250      :depends-on ("pkgdcl" "address" "address-predicates" "etc-files" "file-monitor"))
251    (:file "message":pathname "dns/message"
252      :depends-on ("pkgdcl" "common" "dns-common"))
253    (:file "query" :pathname "dns/query"
254      :depends-on ("pkgdcl" "conditions" "address" "address-predicates"
255                   "socket-options" "socket-methods" "make-socket" "dns-common"
256                   "nameservers" "message"))
257    (:file "dns-conditions" :pathname "dns/conditions"
258      :depends-on ("pkgdcl"))
259    (:file "lookup" :pathname "dns/lookup"
260      :depends-on ("pkgdcl" "address" "address-predicates" "file-monitor" "hosts"
261                   "nameservers" "message" "query" "dns-conditions"))))
263 (asdf:defsystem :iolib/trivial-sockets
264   :description "Trivial-Sockets compatibility layer."
265   :author "Dan Barlow <dan@telent.net>"
266   :maintainer "Stelian Ionescu <sionescu@cddr.org>"
267   :version (:read-file-form "version.lisp-expr")
268   :licence "MIT"
269   :defsystem-depends-on (:iolib/asdf :iolib/conf)
270   :depends-on (:iolib/base :iolib/sockets)
271   :around-compile "iolib/asdf:compile-wrapper"
272   :encoding :utf-8
273   :pathname "src/sockets/"
274   :components
275   ((:file "trivial-sockets")))
277 (asdf:defsystem :iolib/pathnames
278   :description "New pathnames."
279   :author "Stelian Ionescu <sionescu@cddr.org>"
280   :version (:read-file-form "version.lisp-expr")
281   :licence "MIT"
282   :defsystem-depends-on (:iolib/asdf :iolib/conf)
283   :depends-on (:iolib/base :iolib/syscalls)
284   :around-compile "iolib/asdf:compile-wrapper"
285   :encoding :utf-8
286   :pathname "src/pathnames/"
287   :components
288   ((:file "pkgdcl")
289    (:file "file-path")
290    (:file "file-path-os" :pathname #+unix "file-path-unix"))
291   :serial t)
293 (asdf:defsystem :iolib/os
294   :description "OS interface."
295   :maintainer "Stelian Ionescu <sionescu@cddr.org>"
296   :version (:read-file-form "version.lisp-expr")
297   :licence "MIT"
298   :defsystem-depends-on (:iolib/asdf :iolib/conf :iolib/grovel)
299   :depends-on (:iolib/base :iolib/grovel :iolib/syscalls
300                :iolib/streams :iolib/pathnames)
301   :around-compile "iolib/asdf:compile-wrapper"
302   :encoding :utf-8
303   :pathname "src/os/"
304   :components
305   ((:file "pkgdcl")
306    (:file "os" :pathname #+unix "os-unix")
307    (:iolib-grovel-file "ffi-types" :pathname #+unix "ffi-types-unix")
308    (:file "ffi-functions" :pathname #+unix "ffi-functions-unix")
309    (:file "create-process" :pathname #+unix "create-process-unix"))
310   :serial t)
312 (asdf:defsystem :iolib
313   :description "I/O library."
314   :author "Stelian Ionescu <sionescu@cddr.org>"
315   :maintainer "Stelian Ionescu <sionescu@cddr.org>"
316   :version (:read-file-form "version.lisp-expr")
317   :licence "MIT"
318   :defsystem-depends-on (:iolib/asdf :iolib/conf)
319   :depends-on (:iolib/base :iolib/multiplex :iolib/streams :iolib/sockets)
320   :around-compile "iolib/asdf:compile-wrapper"
321   :encoding :utf-8
322   :pathname "src/iolib/"
323   :components ((:file "pkgdcl")))
325 (defmethod asdf:perform ((o asdf:test-op)
326                          (c (eql (asdf:find-system :iolib))))
327   (asdf:load-system :iolib/tests)
328   (asdf/package:symbol-call :5am :run! :iolib))
330 (asdf:defsystem :iolib/tests
331   :description "IOLib test suite."
332   :author "Luis Oliveira <loliveira@common-lisp.net>"
333   :version (:read-file-form "version.lisp-expr")
334   :licence "MIT"
335   :defsystem-depends-on (:iolib/base)
336   :depends-on (:fiveam :iolib :iolib/pathnames)
337   :around-compile "iolib/asdf:compile-wrapper"
338   :encoding :utf-8
339   :pathname "tests/"
340   :components
341   ((:file "pkgdcl")
342    (:file "defsuites" :depends-on ("pkgdcl"))
343    (:file "base" :depends-on ("pkgdcl" "defsuites"))
344    (:file "file-paths-os" :depends-on ("pkgdcl" "defsuites")
345      :pathname #+unix "file-paths-unix")
346    (:file "events" :depends-on ("pkgdcl" "defsuites"))
347    (:file "streams" :depends-on ("pkgdcl" "defsuites"))
348    (:file "sockets" :depends-on ("pkgdcl" "defsuites"))))
350 (asdf:defsystem :iolib/examples
351   :version (:read-file-form "version.lisp-expr")
352   :defsystem-depends-on (:iolib/base)
353   :depends-on (:iolib :bordeaux-threads)
354   :around-compile "iolib/asdf:compile-wrapper"
355   :pathname "examples/"
356   :components ((:file "package")
357                (:file "ex1-client" :depends-on ("package"))
358                (:file "ex2-client" :depends-on ("package"))
359                (:file "ex3-client" :depends-on ("package"))
360                (:file "ex4-client" :depends-on ("package"))
361                (:file "ex5a-client" :depends-on ("package"))
362                (:file "ex5b-client" :depends-on ("package"))
363                (:file "ex1-server" :depends-on ("package"))
364                (:file "ex2-server" :depends-on ("package"))
365                (:file "ex3-server" :depends-on ("package"))
366                (:file "ex4-server" :depends-on ("package"))
367                (:file "ex5-server" :depends-on ("package"))
368                (:file "ex6-server" :depends-on ("package"))
369                (:file "ex7-buffer" :depends-on ("package"))
370                (:file "ex7-server" :depends-on ("package" "ex7-buffer"))
371                (:file "ex8-buffer" :depends-on ("package"))
372                (:file "ex8-server" :depends-on ("package" "ex8-buffer"))))