X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Flibraries.lisp;h=56829a0155d6a287c6e21f6c769854070c12a138;hb=944a7d156be31efb1c01b9dfc49a5661a825eced;hp=eec904597c8e56daa7ed7cff3c88758b33145ab9;hpb=c6c305a69913c148753813cc057be7127017ae6a;p=uffi.git diff --git a/src/libraries.lisp b/src/libraries.lisp index eec9045..56829a0 100644 --- a/src/libraries.lisp +++ b/src/libraries.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Feb 2002 ;;;; -;;;; $Id: libraries.lisp,v 1.2 2002/10/14 01:51:15 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 ;;;; @@ -25,8 +25,8 @@ (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) @@ -73,8 +73,8 @@ library type if type is not specified." (defun load-foreign-library (filename &key module supporting-libraries force-load) - #+(or allegro lispworks openmcl) (declare (ignore module supporting-libraries)) - #+(or cmu sbcl) (declare (ignore module)) + #+(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 @@ -84,27 +84,32 @@ library type if type is not specified." (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)))) - #+sbcl - (sb-alien:load-foreign filename - :libraries + #+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))))) + #+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)