X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=db-mysql%2Fmysql-loader.lisp;h=ffcc576c8287805f54d8b1f14bd7aabaa0b75c52;hb=06dfb268002579b31e8de6888c917f212fd1be1f;hp=e5f377fe371150db8a7e566cd0017a29116f2af9;hpb=17161e226fd3320ca8da1feb480d6b3cef1f9a35;p=clsql.git diff --git a/db-mysql/mysql-loader.lisp b/db-mysql/mysql-loader.lisp index e5f377f..ffcc576 100644 --- a/db-mysql/mysql-loader.lisp +++ b/db-mysql/mysql-loader.lisp @@ -2,55 +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: mysql-loader.lisp,v 1.10 2003/05/17 07:02:00 kevin Exp $ +;;;; $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. ;;;; ************************************************************************* -(declaim (optimize (debug 3) (speed 3) (safety 1) (compilation-speed 0))) -(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 - "clsql-mysql" - `(,(make-pathname :directory (pathname-directory *load-truename*)) + '(#+(or 64bit x86-64) "mysql64" "mysql") + `(,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/")) + #+(or 64bit x86-64) "/usr/lib64/" #+(or 64bit x86-64) "/usr/local/lib64/mysql/" + "/opt/mysql/lib/mysql/" "/usr/local/lib/" + "/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")) @@ -62,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* @@ -73,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 @@ -85,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)