r2261: *** empty log message ***
[clsql.git] / interfaces / mysql / mysql-loader.cl
index 7434670da5a235391e45b2e3d2ed5506c7710bfe..7a2345ab2092f550c611ecab950f63a9c8add38b 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmers:   Kevin M. Rosenberg
 ;;;; Date Started:  Feb 2002
 ;;;;
-;;;; $Id: mysql-loader.cl,v 1.8 2002/05/13 22:05:21 kevin Exp $
+;;;; $Id: mysql-loader.cl,v 1.21 2002/07/26 02:47:12 kevin Exp $
 ;;;;
 ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
 ;;;;      -- support Allegro CL and Lispworks
 
 (defvar *clsql-mysql-library-filename* 
-    (translate-logical-pathname 
-     #+(or linux unix) "CL-LIBRARY:clsql;interfaces;mysql;clsql-mysql.so"
-     #+(or mswindows win32) "CL-LIBRARY:clsql;interfaces;mysql;clsql-mysql.dll"
-     ))
-
+  (uffi:find-foreign-library
+   "clsql-mysql"
+   `(,(directory-namestring
+       (translate-logical-pathname 
+       "cl-library:clsql;interfaces;mysql;"))
+     "/usr/lib/clsql/")
+   :drive-letters '("C" "D" "E" "F" "G")))
+  
 (defvar *mysql-library-filename*
     (cond
      ((probe-file "/opt/mysql/lib/mysql/libmysqlclient.so")
@@ -62,10 +65,10 @@ set to the right path before compiling or loading the system.")
 (defvar *mysql-library-loaded* nil
   "T if foreign library was able to be loaded successfully")
 
-(defmethod clsql-sys:database-type-library-loaded ((database-type (eql :mysql)))
+(defmethod clsql-base-sys:database-type-library-loaded ((database-type (eql :mysql)))
   *mysql-library-loaded*)
                                      
-(defmethod clsql-sys:database-type-load-foreign ((database-type (eql :mysql)))
+(defmethod clsql-base-sys:database-type-load-foreign ((database-type (eql :mysql)))
   (let ((mysql-path
         (uffi:find-foreign-library *mysql-library-candidate-names*
                                    *mysql-library-candidate-directories*
@@ -75,8 +78,7 @@ set to the right path before compiling or loading the system.")
     (uffi:load-foreign-library 
      (uffi:find-foreign-library '("libz" "zlib")
                                '("/usr/lib/" "/usr/local/" "/lib/")))
-    (when
-       (and
+    (if        (and
         (uffi:load-foreign-library mysql-path
                                    :module "mysql" 
                                    :supporting-libraries 
@@ -85,11 +87,10 @@ set to the right path before compiling or loading the system.")
                                    :module "clsql-mysql" 
                                    :supporting-libraries 
                                    (append *mysql-supporting-libraries*)))
-      (setq *mysql-library-loaded* t))))
+       (setq *mysql-library-loaded* t)
+      (warn "Unable to load MySQL client library ~A or CLSQL-MySQL library ~A"
+           mysql-path *clsql-mysql-library-filename*))))
+
 
+(clsql-base-sys:database-type-load-foreign :mysql)
 
-(clsql-sys:database-type-load-foreign :mysql)
-(when (clsql-sys:database-type-library-loaded :mysql)
-  (clsql-sys:initialize-database-type :database-type :mysql)
-  (setq clsql:*default-database-type* :mysql)
-  (pushnew :mysql cl:*features*))