Added support for socket options.
[iolib.git] / iolib.asd
blobb91d3358db1a85c05a994a1b695895b2ba740000
1 ;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp -*-
3 (in-package #:cl-user)
5 (eval-when (:compile-toplevel :load-toplevel :execute)
6   (require :sb-grovel))
8 (defpackage #:iolib-system
9   (:use #:common-lisp #:asdf #:sb-grovel))
11 (eval-when (:compile-toplevel :load-toplevel :execute)
12   (defpackage #:iolib-alien
13     (:nicknames #:et)
14     (:use #:common-lisp #:sb-alien)
15     (:shadow #:listen)))
16 (in-package #:iolib-system)
18 (sb-alien:with-alien ((a (array (sb-alien:unsigned 8) 4)))
19   (dotimes (i 4)
20     (setf (sb-alien:deref a i) (1+ i)))
21   (pushnew (case (sb-alien:deref (sb-alien:cast (sb-alien:addr a) (* sb-alien:unsigned)))
22              (#x01020304 :big-endian)
23              (#x04030201 :little-endian)
24              (otherwise
25               (error "Your machine seems to be neither little-endian nor big-endian. Please report this to the maintainer(s).")))
26            *features*))
28 (defsystem iolib-alien
29   :description "Alien definitions for IOLib."
30   :author "Stelian Ionescu <sionescu@common-lisp.net>"
31   :maintainer "Stelian Ionescu <sionescu@common-lisp.net>"
32   :licence "public domain"
33   :depends-on (#:sb-grovel
34                #:sb-posix)
35   :components
36   ((sb-grovel:grovel-constants-file
37        "alien-constants"
38        :package #:iolib-alien)
39    (:file "alien-functions" :depends-on ("alien-constants"))))
41 (defsystem net.sockets
42   :description "Socket library for SBCL."
43   :author "Stelian Ionescu <sionescu@common-lisp.net>"
44   :maintainer "Stelian Ionescu <sionescu@common-lisp.net>"
45   :licence "GPL-2.1"
46   :depends-on (#:sb-posix
47                #:iolib-alien)
48   :components
49   ((:module :sockets
50     :components
51     ((:file "defpackage")
52      (:file "common" :depends-on ("defpackage"))
53      (:file "config" :depends-on ("defpackage"))
54      (:file "conditions" :depends-on ("defpackage"))
55      (:file "iface" :depends-on ("defpackage" "conditions" "common"))
56      (:file "address" :depends-on ("defpackage" "conditions" "common"))
57      (:file "resolv" :depends-on ("defpackage" "common" "config" "conditions" "address"))
58      (:file "base-sockets"
59             :depends-on ("defpackage" "config" "common"))
60      (:file "socket-options"
61             :depends-on ("defpackage" "common" "base-sockets"))))))
63 (defsystem iolib
64   :description "I/O library for SBCL."
65   :author "Stelian Ionescu <sionescu@common-lisp.net>"
66   :maintainer "Stelian Ionescu <sionescu@common-lisp.net>"
67   :licence "GPL-2.1"
68   :depends-on (#:iolib-alien
69                #:net.sockets))