diff --git a/systems/db-sockets.system b/systems/db-sockets.system index 35f77a054a1396c77789136af7000f3cb8204c30..0bc2e2ee8249f033cb00056c5b8d79a3b7794026 100644 --- a/systems/db-sockets.system +++ b/systems/db-sockets.system @@ -56,17 +56,22 @@ (defmethod perform :after ((operation compile-system) (dso unix-dso)) (let ((dso-name (unix-name (car (output-files operation dso))))) - (if (zerop - (run-shell-command - "gcc -shared -o ~S ~{~S ~}" - dso-name - (mapcar #'unix-name - (mapcan (lambda (c) - (output-files operation c)) - (module-components dso))))) - #+sbcl (sb-sys::load-1-foreign dso-name) - #+cmu (system::load-object-file filename) - (error 'operation-error :operation operation :component dso)))) + (unless (zerop + (run-shell-command + "gcc -shared -o ~S ~{~S ~}" + dso-name + (mapcar #'unix-name + (mapcan (lambda (c) + (output-files operation c)) + (module-components dso))))) + (error 'operation-error :operation operation :component dso)))) + +(defmethod perform ((operation load-system) (dso unix-dso)) + (let ((dso-name (unix-name (car (output-files + (make-instance 'compile-system) dso))))) + #+sbcl (sb-sys::load-1-foreign dso-name) + #+cmu (system::load-object-file dso-name))) + ;;; if this goes into the standard asdf, it could reasonably be extended ;;; to allow cflags to be set somehow @@ -81,6 +86,9 @@ (unix-name (component-pathname c)))) (error 'operation-error :operation op :component c))) +(defmethod perform ((operation load-system) (c c-source-file)) + t) + (defmethod perform ((o load-system) (c unix-dso)) (let ((co (make-instance 'compile-system))) (perform co c) @@ -90,8 +98,7 @@ (defsystem db-sockets :source-pathname #p"cl-library:db-sockets;" - :components ((:file "defpackage" - :in-order-to ((compile-system (load-system "def-to-lisp")))) + :components ((:file "defpackage" :depends-on ("rt")) (:file "split" :depends-on ("defpackage")) (:unix-dso "alien" :components ((:file "undefs.c") @@ -107,7 +114,7 @@ "foreign-glue")))) (:file "sockets" :in-order-to ((compile-system - (load-system "malloc" "split")))) + (load-system "constants")))) (:file "sockopt" :depends-on ("sockets")) (:file "inet" :depends-on ("sockets" "split" "constants" ))