Fix ASDF metadata
[iolib.git] / iolib.asd
blobdf77d2ff3d4223db44fb9ee176bda3f2b2764cd7
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   :licence "MIT"
10   :version (:read-file-form "version.lisp-expr")
11   :depends-on (:alexandria)
12   :encoding :utf-8
13   :pathname "src/base/"
14   :components
15   ((:file "asdf")))
17 (asdf:defsystem :iolib/conf
18   :description "Compile-time configuration for IOLib."
19   :author "Stelian Ionescu <sionescu@cddr.org>"
20   :licence "MIT"
21   :version (:read-file-form "version.lisp-expr")
22   :defsystem-depends-on (:iolib/asdf)
23   :around-compile "iolib/asdf:compile-wrapper"
24   :encoding :utf-8
25   :pathname "src/conf/"
26   :components
27   ((:file "pkgdcl")
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>"
33   :licence "MIT"
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"
38   :encoding :utf-8
39   :pathname "src/new-cl/"
40   :components
41   ((:file "conduits")
42    #+scl (:file "scl-gray-streams")
43    (:file "pkgdcl" :depends-on ("conduits" #+scl "scl-gray-streams")
44     :perform
45     (asdf:compile-op :before (o c)
46       (uiop:symbol-call :iolib/conf '#:load-gray-streams))
47     :perform
48     (asdf:load-op :before (o c)
49       (uiop:symbol-call :iolib/conf '#:load-gray-streams))
50     :perform
51     (asdf:load-source-op :before (o c)
52       (uiop:symbol-call :iolib/conf '#:load-gray-streams)))
53    (:file "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>"
61   :licence "MIT"
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"
66   :encoding :utf-8
67   :pathname "src/base/"
68   :components
69   ((:file "pkgdcl")
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>"
87   :licence "MIT"
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"
94   :encoding :utf-8
95   :pathname "src/grovel/"
96   :components
97   ((:file "package")
98    (:file "invoke")
99    (:static-file "grovel-common.h")
100    (:file "grovel")
101    (:file "asdf"))
102   :serial t)
104 (asdf:defsystem :iolib/syscalls
105   :description "Syscalls and foreign types."
106   :author "Stelian Ionescu <sionescu@cddr.org>"
107   :licence "MIT"
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"
112   :encoding :utf-8
113   :pathname "src/syscalls/"
114   :components
115   ((:file "pkgdcl")
116    #+unix
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")
120    (:file "conditions")
121    (:file "os-conditions" :pathname #+unix "os-conditions-unix")
122    (:file "designators")
123    (:file "early")
124    (:file "ffi-functions" :pathname #+unix "ffi-functions-unix"))
125   :serial t)
127 (asdf:defsystem :iolib/multiplex
128   :description "I/O multiplexing library."
129   :author "Stelian Ionescu <sionescu@cddr.org>"
130   :licence "MIT"
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"
135   :encoding :utf-8
136   :pathname "src/multiplex/"
137   :components
138   ((:file "pkgdcl")
140    ;; Scheduler
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"))
146    ;; Event loop
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"))
152    ;; FD wait
153    (:file "fd-wait" :depends-on ("pkgdcl" "utils"))
155    ;; Event sources
156    (:file "backend-select"
157     :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
158    #+linux
159    (:file "backend-epoll"
160     :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
161    #+bsd
162    (:file "backend-kqueue"
163     :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
164    (:file "detect"
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>"
171   :licence "MIT"
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"
176   :encoding :utf-8
177   :pathname "src/streams/gray/"
178   :components
179   ((:file "pkgdcl")
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"))
184    (:file "io-helpers"
185      :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"))
186    (:file "gray-stream-methods"
187      :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"
188                   "io-helpers"))))
190 (asdf:defsystem :iolib/zstreams
191   :description "Zeta streams."
192   :author "Stelian Ionescu <sionescu@cddr.org>"
193   :licence "MIT"
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"
198   :encoding :utf-8
199   :pathname "src/streams/zeta/"
200   :components
201   ((:file "pkgdcl")
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"))
212    ;; Low-level buffers
213    (:file "iobuf" :depends-on ("pkgdcl" "types"))
215    ;; Streams
216    (:file "stream" :depends-on ("pkgdcl" "types" "conditions" "device" "iobuf"))
218    ;; Devices
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>"
225   :licence "MIT"
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
230                :idna :swap-bytes)
231   :around-compile "iolib/asdf:compile-wrapper"
232   :encoding :utf-8
233   :pathname "src/sockets/"
234   :components
235   ((:file "pkgdcl")
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"))
268    (:file "make-socket"
269      :depends-on ("pkgdcl" "grovel" "common" "config" "address" "address-predicates"
270                   "base-sockets" "socket-options" "services" "socket-methods"))
272    ;; DNS client
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>"
293   :licence "MIT"
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"
298   :encoding :utf-8
299   :pathname "src/sockets/"
300   :components
301   ((:file "trivial-sockets")))
303 (asdf:defsystem :iolib/pathnames
304   :description "New pathnames."
305   :author "Stelian Ionescu <sionescu@cddr.org>"
306   :licence "MIT"
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"
311   :encoding :utf-8
312   :pathname "src/pathnames/"
313   :components
314   ((:file "pkgdcl")
315    (:file "file-path")
316    (:file "file-path-os" :pathname #+unix "file-path-unix"))
317   :serial t)
319 (asdf:defsystem :iolib/os
320   :description "OS interface."
321   :author "Stelian Ionescu <sionescu@cddr.org>"
322   :licence "MIT"
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"
328   :encoding :utf-8
329   :pathname "src/os/"
330   :components
331   ((:file "pkgdcl")
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"))
336   :serial t)
338 (asdf:defsystem :iolib
339   :description "I/O library."
340   :author "Stelian Ionescu <sionescu@cddr.org>"
341   :licence "MIT"
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"
346   :encoding :utf-8
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>"
359   :licence "MIT"
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"
364   :encoding :utf-8
365   :pathname "tests/"
366   :components
367   ((:file "pkgdcl")
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>"
380   :licence "MIT"
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"))))