X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=db-mysql%2Fmysql-loader.lisp;h=db664e7ba667c96263f4bf0bdd8132458b79c9e8;hb=2961f4f122593e9d4875e88e6af159de28c8dd47;hp=cafa2e6c821a625d028f56959e86bd851b0f8ece;hpb=bf8d709a2b29f30ceaa6a48b842b4b16a8c99b13;p=clsql.git diff --git a/db-mysql/mysql-loader.lisp b/db-mysql/mysql-loader.lisp index cafa2e6..db664e7 100644 --- a/db-mysql/mysql-loader.lisp +++ b/db-mysql/mysql-loader.lisp @@ -2,54 +2,38 @@ ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; -;;;; Name: mysql-loader.sql -;;;; Purpose: MySQL library loader using UFFI -;;;; Programmers: Kevin M. Rosenberg -;;;; Date Started: Feb 2002 +;;;; Name: mysql-loader.sql +;;;; Purpose: MySQL library loader using UFFI +;;;; Author: Kevin M. Rosenberg +;;;; Created: Feb 2002 ;;;; ;;;; $Id$ ;;;; -;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg +;;;; This file, part of CLSQL, is Copyright (c) 2002-2004 by Kevin M. Rosenberg ;;;; ;;;; CLSQL users are granted the rights to distribute and use this software ;;;; as governed by the terms of the Lisp Lesser GNU Public License ;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. ;;;; ************************************************************************* -(in-package :mysql) - -;;;; Modified by Kevin Rosenberg -;;;; - probe potential directories to find library -;;;; - Changed from CMUCL functions to UFFI to -;;;; -- prevent library from being loaded multiple times -;;;; -- support Allegro CL and Lispworks +(in-package #:mysql) (defparameter *clsql-mysql-library-path* (uffi:find-foreign-library "mysql" - `(,(make-pathname :directory (pathname-directory *load-truename*)) + `(,clsql-mysql-system::*library-file-dir* "/usr/lib/clsql/" - "/sw/lib/clsql/" - "/home/kevin/debian/src/clsql/db-mysql/") + "/sw/lib/clsql/") :drive-letters '("C"))) -(defparameter *libz-library-path* - (uffi:find-foreign-library - '("libz" "zlib") - `(,(make-pathname :directory (pathname-directory *load-truename*)) - "/usr/lib/" - "/sw/lib/" - "/usr/local/lib/" - "/home/kevin/debian/src/clsql/db-mysql/" - "/mysql/lib/opt/") - :drive-letters '("C"))) - (defvar *mysql-library-candidate-names* '("libmysqlclient" "libmysql")) (defparameter *mysql-library-candidate-directories* `(,(pathname-directory *load-pathname*) - "/opt/mysql/lib/mysql/" "/usr/local/lib/" "/usr/lib/" "/usr/local/lib/mysql/" "/usr/lib/mysql/" "/mysql/lib/opt/" "/sw/lib/mysql/")) + "/opt/mysql/lib/mysql/" "/usr/local/lib/" + #+64bit "/usr/lib64/" + "/usr/lib/" "/usr/local/lib/mysql/" "/usr/lib/mysql/" "/mysql/lib/opt/" "/sw/lib/mysql/" "/opt/local/lib/mysql/")) (defvar *mysql-library-candidate-drive-letters* '("C" "D" "E")) @@ -61,10 +45,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-base-sys:database-type-library-loaded ((database-type (eql :mysql))) +(defmethod clsql-sys:database-type-library-loaded ((database-type (eql :mysql))) *mysql-library-loaded*) -(defmethod clsql-base-sys:database-type-load-foreign ((database-type (eql :mysql))) +(defmethod clsql-sys:database-type-load-foreign ((database-type (eql :mysql))) (let ((mysql-path (uffi:find-foreign-library *mysql-library-candidate-names* *mysql-library-candidate-directories* @@ -72,7 +56,6 @@ set to the right path before compiling or loading the system.") *mysql-library-candidate-drive-letters*))) (unless (probe-file mysql-path) (error "Can't find mysql client library to load")) - (uffi:load-foreign-library *libz-library-path*) (uffi:load-foreign-library mysql-path :module "mysql" :supporting-libraries @@ -84,5 +67,5 @@ set to the right path before compiling or loading the system.") (setq *mysql-library-loaded* t)) -(clsql-base-sys:database-type-load-foreign :mysql) +(clsql-sys:database-type-load-foreign :mysql)