Started CLHS-like docs.
[iolib.git] / io.multiplex.asd
blob3ce477ba3dd820008d12f55fbae7184ef066eb6d
1 ;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Indent-tabs-mode: NIL -*-
2 ;;;
3 ;;; io-multiplex.asd --- ASDF system definition.
4 ;;;
5 ;;; Copyright (C) 2006-2008, Stelian Ionescu  <sionescu@common-lisp.net>
6 ;;;
7 ;;; This code is free software; you can redistribute it and/or
8 ;;; modify it under the terms of the version 2.1 of
9 ;;; the GNU Lesser General Public License as published by
10 ;;; the Free Software Foundation, as clarified by the
11 ;;; preamble found here:
12 ;;;     http://opensource.franz.com/preamble.html
13 ;;;
14 ;;; This program is distributed in the hope that it will be useful,
15 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 ;;; GNU General Public License for more details.
18 ;;;
19 ;;; You should have received a copy of the GNU Lesser General
20 ;;; Public License along with this library; if not, write to the
21 ;;; Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
22 ;;; Boston, MA 02110-1301, USA
24 (in-package :common-lisp-user)
26 ;;; Need trivial-features to correctly handle the reader conditionals
27 ;;; in the system definition form.
28 (eval-when (:load-toplevel)
29   (asdf:oos 'asdf:load-op :cffi)
30   (asdf:oos 'asdf:load-op :trivial-features))
32 (asdf:defsystem :io.multiplex
33   :description "I/O multiplexing library."
34   :author "Stelian Ionescu <sionescu@common-lisp.net>"
35   :maintainer "Stelian Ionescu <sionescu@common-lisp.net>"
36   :licence "LLGPL-2.1"
37   :depends-on (:osicat :alexandria :series)
38   :pathname (merge-pathnames #p"io.multiplex/" *load-truename*)
39   :components
40   ((:file "pkgdcl")
42    ;; Foreign definitions
43    (cffi-grovel:grovel-file "grovel" :depends-on ("pkgdcl"))
44    (:file "foreign-unix" :depends-on ("pkgdcl" "grovel"))
45    #+linux (:file "foreign-linux" :depends-on ("pkgdcl" "grovel"))
46    #+bsd (:file "foreign-bsd" :depends-on ("pkgdcl" "grovel"))
48    ;; Scheduler
49    (:file "time" :depends-on ("pkgdcl"))
50    (:file "utils" :depends-on ("pkgdcl" "grovel" "time"))
51    (:file "timers" :depends-on ("pkgdcl" "time"))
52    (:file "queue" :depends-on ("pkgdcl"))
53    (:file "scheduler" :depends-on ("pkgdcl" "timers" "queue"))
55    ;; Event loop
56    (:file "fd-entry" :depends-on ("pkgdcl" "timers"))
57    (:file "multiplexer" :depends-on ("pkgdcl" "utils" "fd-entry"))
58    (:file "event-loop" :depends-on ("pkgdcl" "time" "timers" "queue"
59                                     "scheduler" "fd-entry" "multiplexer"))
61    ;; FD wait
62    (:file "fd-wait" :depends-on ("pkgdcl" "grovel" "foreign-unix" "utils"))
64    ;; Event sources
65    (:file "select" :depends-on ("pkgdcl" "utils" "grovel" "foreign-unix"
66                                 "fd-entry" "multiplexer"))
67    #+linux (:file "epoll" :depends-on ("pkgdcl" "grovel" "foreign-linux"
68                                        "utils" "fd-entry" "multiplexer"))
69    #+bsd (:file "kqueue" :depends-on ("pkgdcl" "grovel" "foreign-bsd"
70                                       "utils" "fd-entry" "multiplexer"))
71    (:file "detect" :depends-on ("pkgdcl" "multiplexer" "select"
72                                 #+linux "epoll" #+bsd "kqueue"))))