r9320: add THE declaration to DEREF array, fix convert-to-uffi-type to make unsized...
[uffi.git] / src / libraries.lisp
index 5e72a920ef96c89bd0d0c42b7592843a52f81615..8fa6612477f727c40ee4afb924d682ff0892a74f 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Feb 2002
 ;;;;
-;;;; $Id: libraries.lisp,v 1.11 2003/08/26 17:39:47 kevin Exp $
+;;;; $Id$
 ;;;;
 ;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
   #-(or win32 mswindows macosx darwin ccl-5.0) "so"
 )
 
+(defun foreign-library-types ()
+  "Returns list of string naming possible library types for platform, sorted by preference"
+  #+(or win32 mswindows) '("dll" "lib")
+  #+(or macosx darwin ccl-5.0) '("dylib" "bundle")
+  #-(or win32 mswindows macosx darwin ccl-5.0) '("so" "a" "o")
+)
+
 (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."
   (unless types
-    (setq types (default-foreign-library-type)))
+    (setq types (foreign-library-types)))
   (unless (listp types)
     (setq types (list types)))
   (unless (listp names)
@@ -100,6 +107,7 @@ library type if type is not specified."
        #+sbcl
        (let ((type (pathname-type (parse-namestring filename))))
          (if (or (string-equal type "so")
+                 (string-equal type "bundle")
                  (string-equal type "dylib"))
              (sb-alien::load-1-foreign filename)
              (sb-alien:load-foreign filename