;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Aug 2002
;;;;
-;;;; $Id: uffi.asd,v 1.2 2002/08/18 01:57:18 kevin Exp $
+;;;; $Id: uffi.asd,v 1.15 2002/09/25 12:44:59 kevin Exp $
;;;;
;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
;;;; *************************************************************************
(declaim (optimize (debug 3) (speed 3) (safety 1) (compilation-speed 0)))
-(in-package :cl-user)
-
-;; For use with non-Debian installations
-(let ((helper-pathname (make-pathname :name "set-cl-library" :type "cl"
- :defaults *load-truename*)))
- (when (probe-file helper-pathname)
- (load helper-pathname)))
-
(in-package :asdf)
-(defclass uffi-cl-source-file (cl-source-file) ())
-(defmethod source-file-type ((c uffi-cl-source-file) (s module))
- "cl")
-
+#+(or allegro lispworks cmu openmcl mcl)
(defsystem uffi
:name "cl-uffi"
- :author "Kevin M. Rosenberg <kmr@debian.org"
- :version "0.6.1"
- :maintainer "Kevin M. Rosenberg <kmr@debian.org"
- :license "Lessor Lisp General Public License"
+ :author "Kevin M. Rosenberg <kmr@debian.org>"
+ :version "0.7.2"
+ :maintainer "Kevin M. Rosenberg <kmr@debian.org>"
+ :licence "Lessor Lisp General Public License"
:description "Universal Foreign Function Library for Common Lisp"
:long-description "UFFI provides a universal foreign function interface (FFI) for Common Lisp. UFFI supports CMUCL, Lispworks, and AllegroCL."
- :default-component-class uffi-cl-source-file
- :pathname #-mcl "cl-library:uffi;"
- #+mcl "cl-library:uffi;mcl;"
:perform (load-op :after (op uffi)
- (pushnew :uffi cl:*features*))
- :components
- ((:file "package")
- (:file "primitives" :depends-on ("package"))
- (:file "strings" :depends-on ("primitives"))
- (:file "objects" :depends-on ("primitives"))
- (:file "aggregates" :depends-on ("primitives"))
- (:file "functions" :depends-on ("primitives"))
- (:file "libraries" :depends-on ("package")))
- )
+ (pushnew :uffi cl:*features*))
+
+ :components
+ (
+ #+(or cmu sbcl allegro lispworks)
+ (:module :src-main
+ :components
+ ((:file "package")
+ (:file "primitives" :depends-on ("package"))
+ (:file "strings" :depends-on ("primitives"))
+ (:file "objects" :depends-on ("primitives"))
+ (:file "aggregates" :depends-on ("primitives"))
+ (:file "functions" :depends-on ("primitives"))
+ (:file "libraries" :depends-on ("package"))))
+ #+mcl
+ (:module :src-mcl
+ :components
+ ((:file "package")
+ (:file "primitives" :depends-on ("package"))
+ (:file "strings" :depends-on ("primitives"))
+ (:file "objects" :depends-on ("primitives"))
+ (:file "aggregates" :depends-on ("primitives"))
+ (:file "functions" :depends-on ("primitives"))
+ (:file "libraries" :depends-on ("package"))))
+ #+cormanlisp
+ (:module :src-corman
+ :components
+ ((:file "uffi-corman")))
+ ))
+
+
+#+(or allegro lispworks cmu openmcl mcl)
+(defmethod source-file-type ((c cl-source-file) (s (eql (find-system :uffi))))
+ "cl")
+#+(or allegro lispworks cmu openmcl mcl)
+(when (ignore-errors (find-class 'load-compiled-op))
+ (defmethod perform :after ((op load-compiled-op) (c (eql (find-system :uffi))))
+ (pushnew :uffi cl:*features*)))