projects
/
uffi.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
r11087: add cygwin support
[uffi.git]
/
src
/
libraries.lisp
diff --git
a/src/libraries.lisp
b/src/libraries.lisp
index a8d09c3f2dc7781e4b772eed46369e31f0ef7805..5378deb77c1ed44cb9518819c66c74978bc78151 100644
(file)
--- a/
src/libraries.lisp
+++ b/
src/libraries.lisp
@@
-20,9
+20,9
@@
(defun default-foreign-library-type ()
"Returns string naming default library type for platform"
(defun default-foreign-library-type ()
"Returns string naming default library type for platform"
- #+(or win32 mswindows) "dll"
+ #+(or win32
cygwin
mswindows) "dll"
#+(or macosx darwin ccl-5.0) "dylib"
#+(or macosx darwin ccl-5.0) "dylib"
- #-(or win32 mswindows macosx darwin ccl-5.0) "so"
+ #-(or win32
cygwin
mswindows macosx darwin ccl-5.0) "so"
)
(defun foreign-library-types ()
)
(defun foreign-library-types ()
@@
-32,7
+32,7
@@
#-(or win32 mswindows macosx darwin ccl-5.0) '("so" "a" "o")
)
#-(or win32 mswindows macosx darwin ccl-5.0) '("so" "a" "o")
)
-(defun find-foreign-library (names directories &key types drive-letters)
+(defun find-foreign-library (names directories &key types drive-letters)
"Looks for a foreign library. directories can be a single
string or a list of strings of candidate directories. Use default
library type if type is not specified."
"Looks for a foreign library. directories can be a single
string or a list of strings of candidate directories. Use default
library type if type is not specified."
@@
-53,21
+53,21
@@
library type if type is not specified."
(dolist (name names)
(dolist (dir directories)
(dolist (type types)
(dolist (name names)
(dolist (dir directories)
(dolist (type types)
- (let ((path (make-pathname
+ (let ((path (make-pathname
#+lispworks :host
#+lispworks (when drive-letter drive-letter)
#-lispworks :device
#-lispworks (when drive-letter drive-letter)
#+lispworks :host
#+lispworks (when drive-letter drive-letter)
#-lispworks :device
#-lispworks (when drive-letter drive-letter)
- :name name
+ :name name
:type type
:type type
- :directory
+ :directory
(etypecase dir
(pathname
(pathname-directory dir))
(list
dir)
(string
(etypecase dir
(pathname
(pathname-directory dir))
(list
dir)
(string
- (pathname-directory
+ (pathname-directory
(parse-namestring dir)))))))
(when (probe-file path)
(return-from find-foreign-library path)))))))
(parse-namestring dir)))))))
(when (probe-file path)
(return-from find-foreign-library path)))))))
@@
-84,11
+84,11
@@
library type if type is not specified."
(probe-file filename)))
(if (pathnamep filename) ;; ensure filename is a string to check if already loaded
(setq filename (namestring (if (null (pathname-directory filename))
(probe-file filename)))
(if (pathnamep filename) ;; ensure filename is a string to check if already loaded
(setq filename (namestring (if (null (pathname-directory filename))
- filename
+ filename
;; lispworks treats as UNC, so use truename
#+(and lispworks win32) (truename filename)
#-(and lispworks win32) filename))))
;; lispworks treats as UNC, so use truename
#+(and lispworks win32) (truename filename)
#-(and lispworks win32) filename))))
-
+
(if (and (not force-load)
(find filename *loaded-libraries* :test #'string-equal))
t ;; return T, but don't reload library
(if (and (not force-load)
(find filename *loaded-libraries* :test #'string-equal))
t ;; return T, but don't reload library
@@
-97,13
+97,13
@@
library type if type is not specified."
(let ((type (pathname-type (parse-namestring filename))))
(if (string-equal type "so")
(sys::load-object-file filename)
(let ((type (pathname-type (parse-namestring filename))))
(if (string-equal type "so")
(sys::load-object-file filename)
- (alien:load-foreign filename
+ (alien:load-foreign filename
:libraries
(convert-supporting-libraries-to-string
supporting-libraries))))
#+scl
(let ((type (pathname-type (parse-namestring filename))))
:libraries
(convert-supporting-libraries-to-string
supporting-libraries))))
#+scl
(let ((type (pathname-type (parse-namestring filename))))
- (alien:load-foreign filename
+ (alien:load-foreign filename
:libraries
(convert-supporting-libraries-to-string
supporting-libraries)))
:libraries
(convert-supporting-libraries-to-string
supporting-libraries)))
@@
-119,7
+119,7
@@
library type if type is not specified."
#+allegro (load filename)
#+openmcl (ccl:open-shared-library filename)
#+digitool (ccl:add-to-shared-library-search-path filename t)
#+allegro (load filename)
#+openmcl (ccl:open-shared-library filename)
#+digitool (ccl:add-to-shared-library-search-path filename t)
-
+
(push filename *loaded-libraries*)
t))))
(push filename *loaded-libraries*)
t))))