summaryrefslogtreecommitdiff
blob: 89294125bfb55b88c5c7e85b01bec3a881b063d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
diff -ur clsql-3.5.2.orig/db-mysql/mysql-loader.lisp clsql-3.5.2/db-mysql/mysql-loader.lisp
--- clsql-3.5.2.orig/db-mysql/mysql-loader.lisp	2005-07-05 19:51:52.000000000 -0500
+++ clsql-3.5.2/db-mysql/mysql-loader.lisp	2005-12-29 16:34:32.000000000 -0600
@@ -18,17 +18,6 @@
 
 (in-package #:mysql)
 
-(defparameter *clsql-mysql-library-candidate-names* 
-  (list #+(or 64bit x86-64) "clsql_mysql64"
-        #+(or 64bit x86-64) (make-pathname :name "clsql_mysql64"
-                                           :directory (pathname-directory *load-truename*))
-        "clsql_mysql"
-        (make-pathname :name "clsql_mysql"
-                       :directory (pathname-directory *load-truename*))))
-
-(defvar *mysql-library-candidate-names*
-  '("libmysqlclient" "libmysql"))
-
 (defvar *mysql-supporting-libraries* '("c")
   "Used only by CMU. List of library flags needed to be passed to ld to
 load the MySQL client library succesfully.  If this differs at your site,
@@ -41,12 +30,16 @@
   *mysql-library-loaded*)
 				      
 (defmethod clsql-sys:database-type-load-foreign ((database-type (eql :mysql)))
-  (clsql-uffi:find-and-load-foreign-library *mysql-library-candidate-names*
-                                            :module "mysql" 
-                                            :supporting-libraries *mysql-supporting-libraries*)
-  (clsql-uffi:find-and-load-foreign-library *clsql-mysql-library-candidate-names*
-                                            :module "clsql-mysql" 
-                                            :supporting-libraries *mysql-supporting-libraries*)
+  (uffi:load-foreign-library (make-pathname :directory '(:absolute "usr" "@LIBDIR@")
+					    :name "libmysqlclient"
+					    :type "so")
+			     :module "mysql"
+			     :supporting-libraries *mysql-supporting-libraries*)
+  (uffi:load-foreign-library (make-pathname :directory '(:absolute "usr" "@LIBDIR@" "clsql")
+					    :name "clsql_mysql.so"
+					    :type "so")
+			     :module "clsql-mysql"
+			     :supporting-libraries *mysql-supporting-libraries*)
   (setq *mysql-library-loaded* t))
 
 
diff -ur clsql-3.5.2.orig/uffi/clsql-uffi-loader.lisp clsql-3.5.2/uffi/clsql-uffi-loader.lisp
--- clsql-3.5.2.orig/uffi/clsql-uffi-loader.lisp	2005-08-22 15:24:22.000000000 -0500
+++ clsql-3.5.2/uffi/clsql-uffi-loader.lisp	2005-12-29 16:22:44.000000000 -0600
@@ -18,37 +18,6 @@
 
 (in-package #:clsql-uffi)
 
-(defun find-and-load-foreign-library (filenames &key module supporting-libraries (errorp t))
-  (setq filenames (if (listp filenames) filenames (list filenames))
-        filenames
-          (append
-           (loop for search-path in clsql:*foreign-library-search-paths*
-                 nconc (loop for filename in filenames
-                             collect (merge-pathnames filename search-path)))
-           filenames))
-  (or (loop for type in (uffi:foreign-library-types)
-            for suffix = (make-pathname :type type)
-            thereis (loop for filename in filenames
-                          thereis (handler-case
-                                    (uffi:load-foreign-library (merge-pathnames filename suffix)
-                                                               :module module
-                                                               :supporting-libraries supporting-libraries)
-                                    (error (c)
-                                      (warn "~A" c)
-                                      nil))))
-      (when errorp
-	(error "Couldn't load foreign librar~@P ~{~S~^, ~}. (searched ~S)"
-               (length filenames) filenames
-	       'clsql:*foreign-library-search-paths*))))
-
-(defvar *clsql-uffi-library-filenames*
-    (list #+(or 64bit x86-64) "clsql_uffi64"
-          #+(or 64bit x86-64) (make-pathname :name "clsql_uffi64"
-                                             :directory clsql-uffi-system::*library-file-dir*)
-          "clsql_uffi"
-          (make-pathname :name "clsql_uffi"
-                         :directory clsql-uffi-system::*library-file-dir*)))
-
 (defvar *clsql-uffi-supporting-libraries* '("c")
   "Used only by CMU. List of library flags needed to be passed to ld to
 load the MySQL client library succesfully.  If this differs at your site,
@@ -58,10 +27,12 @@
   "T if foreign library was able to be loaded successfully")
 
 (defun load-uffi-foreign-library ()
-  (find-and-load-foreign-library *clsql-uffi-library-filenames*
-                                 :module "clsql-uffi"
-                                 :supporting-libraries
-                                 *clsql-uffi-supporting-libraries*)
+  (uffi:load-foreign-library (make-pathname :directory '(:absolute "usr" "@LIBDIR@" "clsql")
+						:name "clsql_uffi"
+						:type "so")
+			     :module "clsql-uffi"
+			     :supporting-libraries
+			     *clsql-uffi-supporting-libraries*)
   (setq *uffi-library-loaded* t))
 
 (load-uffi-foreign-library)