;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Feb 2002
;;;;
-;;;; $Id: libraries.cl,v 1.14 2002/04/06 19:53:08 kevin Exp $
+;;;; $Id: libraries.cl,v 1.18 2002/09/30 07:51:01 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"
- #-(or win32 mswindows) "so")
+ #+macosx "dylib"
+ #-(or win32 mswindows macosx) "so"
+)
(defun find-foreign-library (names directories &key types drive-letters)
"Looks for a foreign library. directories can be a single
#+allegro (declare (ignore module supporting-libraries))
#+lispworks (declare (ignore supporting-libraries))
#+cmu (declare (ignore module))
+ #+openmcl (declare (ignore module supporting-libraries))
(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
- #+cmu
- (let ((type (pathname-type (parse-namestring filename))))
- (if (equal type "so")
- (sys::load-object-file filename)
+ (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)
-
- (push filename *loaded-libraries*)
- t)))
- )
+ #+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)