Create new files for Apt repo configuration
[iolib.git] / iolib.asd
blob3dce9b2a9ab712a943ecd91848e96038d305784f
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>"
9   :licence "MIT"
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"
14   :encoding :utf-8
15   :pathname "src/syscalls/"
16   :components
17   ((:file "pkgdcl")
18    #+unix
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")
22    (:file "conditions")
23    (:file "os-conditions" :pathname #+unix "os-conditions-unix")
24    (:file "designators")
25    (:file "early")
26    (:file "ffi-functions" :pathname #+unix "ffi-functions-unix"))
27   :serial t)
29 (defsystem :iolib/multiplex
30   :description "I/O multiplexing library."
31   :author "Stelian Ionescu <sionescu@cddr.org>"
32   :licence "MIT"
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"
37   :encoding :utf-8
38   :pathname "src/multiplex/"
39   :components
40   ((:file "pkgdcl")
42    ;; Scheduler
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"))
48    ;; Event loop
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"))
54    ;; FD wait
55    (:file "fd-wait" :depends-on ("pkgdcl" "utils"))
57    ;; Event sources
58    (:file "backend-select"
59     :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
60    #+linux
61    (:file "backend-epoll"
62     :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
63    #+bsd
64    (:file "backend-kqueue"
65     :depends-on ("pkgdcl" "utils" "fd-entry" "multiplexer"))
66    (:file "detect"
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>"
73   :licence "MIT"
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"
78   :encoding :utf-8
79   :pathname "src/streams/gray/"
80   :components
81   ((:file "pkgdcl")
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"))
86    (:file "io-helpers"
87      :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"))
88    (:file "gray-stream-methods"
89      :depends-on ("pkgdcl" "classes" "conditions" "buffer" "fd-mixin"
90                   "io-helpers"))))
92 (defsystem :iolib/zstreams
93   :description "Zeta streams."
94   :author "Stelian Ionescu <sionescu@cddr.org>"
95   :licence "MIT"
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"
100   :encoding :utf-8
101   :pathname "src/streams/zeta/"
102   :components
103   ((:file "pkgdcl")
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"))
114    ;; Low-level buffers
115    (:file "iobuf" :depends-on ("pkgdcl" "types"))
117    ;; Streams
118    (:file "stream" :depends-on ("pkgdcl" "types" "conditions" "device" "iobuf"))
120    ;; Devices
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>"
127   :licence "MIT"
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
132                :idna :swap-bytes)
133   :around-compile "iolib/asdf:compile-wrapper"
134   :encoding :utf-8
135   :pathname "src/sockets/"
136   :components
137   ((:file "pkgdcl")
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"))
170    (:file "make-socket"
171      :depends-on ("pkgdcl" "grovel" "common" "config" "address" "address-predicates"
172                   "base-sockets" "socket-options" "services" "socket-methods"))
174    ;; DNS client
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>"
195   :licence "MIT"
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"
200   :encoding :utf-8
201   :pathname "src/sockets/"
202   :components
203   ((:file "trivial-sockets")))
205 (defsystem :iolib/pathnames
206   :description "New pathnames."
207   :author "Stelian Ionescu <sionescu@cddr.org>"
208   :licence "MIT"
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"
213   :encoding :utf-8
214   :pathname "src/pathnames/"
215   :components
216   ((:file "pkgdcl")
217    (:file "file-path")
218    (:file "file-path-os" :pathname #+unix "file-path-unix"))
219   :serial t)
221 (defsystem :iolib/os
222   :description "OS interface."
223   :author "Stelian Ionescu <sionescu@cddr.org>"
224   :licence "MIT"
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"
230   :encoding :utf-8
231   :pathname "src/os/"
232   :components
233   ((:file "pkgdcl")
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"))
238   :serial t)
240 (defsystem :iolib
241   :description "I/O library."
242   :author "Stelian Ionescu <sionescu@cddr.org>"
243   :licence "MIT"
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"
248   :encoding :utf-8
249   :pathname "src/iolib/"
250   :components ((:file "pkgdcl"))
251   :in-order-to ((test-op (test-op :iolib.tests))))