;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Feb 2002
;;;;
-;;;; $Id: libraries.lisp,v 1.1 2002/09/30 10:02:36 kevin Exp $
+;;;; $Id: libraries.lisp,v 1.6 2002/11/20 21:01:31 kevin Exp $
;;;;
;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
(defun default-foreign-library-type ()
"Returns string naming default library type for platform"
#+(or win32 mswindows) "dll"
- #+macosx "dylib"
- #-(or win32 mswindows macosx) "so"
+ #+(or macosx darwin ccl-5.0) "dylib"
+ #-(or win32 mswindows macosx darwin ccl-5.0) "so"
)
(defun find-foreign-library (names directories &key types drive-letters)
(defun load-foreign-library (filename &key module supporting-libraries
force-load)
- #+allegro (declare (ignore module supporting-libraries))
- #+lispworks (declare (ignore supporting-libraries))
- #+cmu (declare (ignore module))
- #+openmcl (declare (ignore module supporting-libraries))
+ #+(or allegro lispworks mcl) (declare (ignore module supporting-libraries))
+ #+(or cmu scl sbcl) (declare (ignore module))
(when (and filename (probe-file filename))
(if (pathnamep filename) ;; ensure filename is a string to check if
(find filename *loaded-libraries* :test #'string-equal))
t ;; return T, but don't reload library
(progn
- (when
- #+cmu
- (let ((type (pathname-type (parse-namestring filename))))
- (if (equal type "so")
- (sys::load-object-file filename)
- (alien:load-foreign filename
- :libraries
- (convert-supporting-libraries-to-string
- supporting-libraries))))
- #+lispworks (fli:register-module module :real-name filename)
- #+allegro (load filename)
- #+openmcl (ccl:open-shared-library filename)
- #+(and mcl (not openmcl)) (ccl:add-to-shared-library-search-path filename t)
-
- (push filename *loaded-libraries*)
- t)))))
+ #+cmu
+ (let ((type (pathname-type (parse-namestring filename))))
+ (if (equal type "so")
+ (sys::load-object-file filename)
+ (alien:load-foreign filename
+ :libraries
+ (convert-supporting-libraries-to-string
+ supporting-libraries))))
+ #+scl
+ (let ((type (pathname-type (parse-namestring filename))))
+ (alien:load-foreign filename
+ :libraries
+ (convert-supporting-libraries-to-string
+ supporting-libraries)))
+ #+sbcl
+ (sb-alien:load-foreign filename
+ :libraries
+ (convert-supporting-libraries-to-string
+ supporting-libraries))
+ #+lispworks (fli:register-module module :real-name filename)
+ #+allegro (load filename)
+ #+openmcl (ccl:open-shared-library filename)
+ #+(and mcl (not openmcl)) (ccl:add-to-shared-library-search-path filename t)
+
+ (push filename *loaded-libraries*)
+ t))))
(defun convert-supporting-libraries-to-string (libs)
(let (lib-load-list)