X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-bsd-sockets%2Fsb-bsd-sockets.asd;h=267cbc354f94d83224910eda1d917df7db1d5c59;hb=78fa16bf55be44cc16845be84d98023e83fb14bc;hp=4aa65e11ffed513648f16ea21204fa0131f6fe05;hpb=9f8b254664d2864ae524c3a12c912437accfdb20;p=sbcl.git diff --git a/contrib/sb-bsd-sockets/sb-bsd-sockets.asd b/contrib/sb-bsd-sockets/sb-bsd-sockets.asd index 4aa65e1..267cbc3 100644 --- a/contrib/sb-bsd-sockets/sb-bsd-sockets.asd +++ b/contrib/sb-bsd-sockets/sb-bsd-sockets.asd @@ -29,8 +29,13 @@ (let ((dso-name (unix-name (car (output-files operation dso))))) (unless (zerop (run-shell-command - #+sunos "gcc -shared -lresolv -lsocket -lnsl -o ~S ~{~S ~}" - #-sunos "gcc -shared -o ~S ~{~S ~} " + "gcc ~A -o ~S ~{~S ~}" + (concatenate 'string + (sb-ext:posix-getenv "EXTRA_LDFLAGS") + " " + #+sunos "-shared -lresolv -lsocket -lnsl" + #+darwin "-bundle" + #-(or darwin sunos) "-shared") dso-name (mapcar #'unix-name (mapcan (lambda (c) @@ -46,7 +51,11 @@ (component-pathname c)))) (defmethod perform ((op compile-op) (c c-source-file)) (unless - (= 0 (run-shell-command "gcc -fPIC -o ~S -c ~S" + (= 0 (run-shell-command "gcc ~A -o ~S -c ~S" + (concatenate 'string + (sb-ext:posix-getenv "EXTRA_CFLAGS") + " " + "-fPIC") (unix-name (car (output-files op c))) (unix-name (component-pathname c)))) (error 'operation-error :operation op :component c))) @@ -58,25 +67,25 @@ (let ((co (make-instance 'compile-op))) (let ((filename (car (output-files co c)))) #+cmu (ext:load-foreign filename) - #+sbcl (sb-alien:load-1-foreign filename)))) + #+sbcl (sb-alien:load-shared-object filename)))) (defsystem sb-bsd-sockets :version "0.58" - :depends-on (sb-rt sb-grovel) + :depends-on (sb-grovel) + #+sb-building-contrib :pathname + #+sb-building-contrib "SYS:CONTRIB;SB-BSD-SOCKETS;" :components ((:file "defpackage") (:file "split" :depends-on ("defpackage")) - (:file "array-data" :depends-on ("defpackage")) (:unix-dso "alien" :components ((:c-source-file "undefs") (:c-source-file "get-h-errno"))) (:file "malloc" :depends-on ("defpackage")) - (:file "foreign-glue" :depends-on ("defpackage" "malloc")) (sb-grovel:grovel-constants-file "constants" - :package :sockint :pathname "constants.lisp" - :depends-on ("def-to-lisp" "defpackage" "foreign-glue")) + :package :sockint + :depends-on ("defpackage")) (:file "sockets" - :depends-on ("constants" "array-data")) + :depends-on ("constants")) (:file "sockopt" :depends-on ("sockets")) (:file "inet" :depends-on ("sockets" "split" "constants" )) @@ -84,13 +93,10 @@ (:file "name-service" :depends-on ("sockets" "constants" "alien")) (:file "misc" :depends-on ("sockets" "constants")) - (:file "def-to-lisp") - (:file "tests" :depends-on ("inet" "sockopt")) - (:static-file "NEWS") ;; (:static-file "INSTALL") - (:static-file "README") - (:static-file "index" :pathname "index.html") + ;; (:static-file "README") + ;; (:static-file "index" :pathname "index.html") (:static-file "doc" :pathname "doc.lisp") (:static-file "TODO"))) @@ -98,6 +104,13 @@ (provide 'sb-bsd-sockets)) (defmethod perform ((o test-op) (c (eql (find-system :sb-bsd-sockets)))) + (operate 'load-op 'sb-bsd-sockets-tests) + (operate 'test-op 'sb-bsd-sockets-tests)) + +(defsystem sb-bsd-sockets-tests + :depends-on (sb-rt sb-bsd-sockets sb-posix) + :components ((:file "tests"))) + +(defmethod perform ((o test-op) (c (eql (find-system :sb-bsd-sockets-tests)))) (or (funcall (intern "DO-TESTS" (find-package "SB-RT"))) (error "test-op failed"))) -