X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=clsql.asd;h=d469b95de3baa112122893ddc28e82080d75e93c;hp=2e7efe9659f29145707c95e228405ff79fedfe89;hb=906d7a71b35ee1cd6d281623694bc90ced22c339;hpb=c47ffde0f8939ddf0a04623b33777bb3a9fd365c diff --git a/clsql.asd b/clsql.asd index 2e7efe9..d469b95 100644 --- a/clsql.asd +++ b/clsql.asd @@ -3,12 +3,10 @@ ;;;; FILE IDENTIFICATION ;;;; ;;;; Name: clsql.asd -;;;; Purpose: System definition for CLSQL-CLASSIC +;;;; Purpose: ASDF System definition for CLSQL ;;;; Authors: Marcus Pearce and Kevin M. Rosenberg ;;;; Created: March 2004 ;;;; -;;;; $Id$ -;;;; ;;;; 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. @@ -18,6 +16,18 @@ (defpackage #:clsql-system (:use #:asdf #:cl)) (in-package #:clsql-system) +#+(and clisp (not :clsql-cffi)) +(asdf:operate 'asdf:load-op 'clsql-cffi) + +;; need to load uffi for below perform :after method +(eval-when (:compile-toplevel :load-toplevel :execute) + #+:clsql-cffi + (unless (find-package 'cffi-uffi-compat) + (asdf:operate 'asdf:load-op 'cffi-uffi-compat)) + #-:clsql-cffi + (unless (find-package 'uffi) + (asdf:operate 'asdf:load-op 'uffi))) + (defsystem clsql :name "CLSQL" :author "Kevin Rosenberg " @@ -25,9 +35,10 @@ :licence "Lessor Lisp General Public License" :description "Common Lisp SQL Interface library" :long-description "A Common Lisp interface to SQL RDBMS based on -the Xanalys CommonSQL interface for Lispworks. It depends on the -low-level database interfaces as well as a functional and an object +the Xanalys CommonSQL interface for Lispworks. It provides low-level +database interfaces as well as a functional and an object oriented interface." + :version "6.4" :components ((:module sql :components @@ -40,21 +51,21 @@ oriented interface." (:file "base-classes" :depends-on ("package")) (:file "conditions" :depends-on ("base-classes")) (:file "db-interface" :depends-on ("conditions")) - (:file "time" :depends-on ("package" "conditions")) (:file "utils" :depends-on ("package" "db-interface")) + (:file "time" :depends-on ("package" "conditions" "utils")) (:file "generics" :depends-on ("package")))) - (:module database - :pathname "" - :components + (:module database + :pathname "" + :components ((:file "initialize") (:file "database" :depends-on ("initialize")) (:file "recording" :depends-on ("database")) - (:file "pool")) + (:file "pool" :depends-on ("database"))) :depends-on (base)) (:module syntax :pathname "" :components ((:file "expressions") - (:file "operations" + (:file "operations" :depends-on ("expressions")) (:file "syntax" :depends-on ("operations"))) :depends-on (database)) @@ -62,8 +73,9 @@ oriented interface." :pathname "" :components ((:file "fdml") (:file "transaction" :depends-on ("fdml")) - (:file "loop-extension" - :depends-on ("fdml")) + #+clisp (:file "ansi-loop") + (:file "loop-extension" + :depends-on ("fdml" #+clisp "ansi-loop")) (:file "fddl" :depends-on ("fdml"))) :depends-on (syntax)) (:module object @@ -76,10 +88,24 @@ oriented interface." :pathname "" :components ((:file "generic-postgresql") (:file "generic-odbc") - (:file "sequences")) + (:file "sequences") + (:file "command-object")) :depends-on (functional)))))) (defmethod perform ((o test-op) (c (eql (find-system 'clsql)))) (operate 'load-op 'clsql-tests) (operate 'test-op 'clsql-tests :force t)) + +(defmethod perform :after ((o load-op) (c (eql (find-system 'clsql)))) + (let* ((init-var (uffi:getenv "CLSQLINIT")) + (init-file (or (when init-var (probe-file init-var)) + (probe-file + (concatenate 'string + (namestring (user-homedir-pathname)) + ".clsql-init.lisp")) + (probe-file "/etc/clsql-init.lisp") + #+(or mswin windows win32 win64 mswindows) + (probe-file "c:\\etc\\clsql-init.lisp")))) + (when init-file (load init-file)))) +