X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=clsql.asd;h=d469b95de3baa112122893ddc28e82080d75e93c;hp=67e9b7f8dcd24a92ab43d9de18bfc08506f5f289;hb=906d7a71b35ee1cd6d281623694bc90ced22c339;hpb=0140f390dc26d640b2289c212da82e5b3f51106f diff --git a/clsql.asd b/clsql.asd index 67e9b7f..d469b95 100644 --- a/clsql.asd +++ b/clsql.asd @@ -2,49 +2,110 @@ ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; -;;;; Name: clsql.system -;;;; Purpose: Defsystem-3/4 for CLSQL -;;;; Programmer: Kevin M. Rosenberg -;;;; Date Started: Feb 2002 -;;;; -;;;; $Id: clsql.asd,v 1.14 2002/10/14 04:09:02 kevin Exp $ -;;;; -;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg +;;;; Name: clsql.asd +;;;; Purpose: ASDF System definition for CLSQL +;;;; Authors: Marcus Pearce and Kevin M. Rosenberg +;;;; Created: March 2004 ;;;; ;;;; 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 :asdf) - -#+(or allegro lispworks cmu sbcl openmcl mcl) -(defsystem :clsql - :name "cl-sql" - :author "Kevin M. Rosenberg " - :version "0.9.2" - :maintainer "Kevin M. Rosenberg " - :licence "Lessor Lisp General Public License" - :description "Common Lisp SQL Interface Library" - :long-description "cl-sql package provides the high-level interface for the CLSQL system." - - :perform (load-op :after (op clsql) - (pushnew :clsql cl:*features*)) - :components - ((:module :sql - :components - ((:file "package") - (:file "pool" :depends-on ("package")) - (:file "loop-extension") - (:file "sql" :depends-on ("pool")) - (:file "transactions" :depends-on ("sql")) - (:file "functional" :depends-on ("sql")) - (:file "usql" :depends-on ("sql"))))) - :depends-on (:clsql-base) - ) - -#+(or allegro lispworks cmu sbcl openmcl mcl) -(when (ignore-errors (find-class 'load-compiled-op)) - (defmethod perform :after ((op load-compiled-op) (c (eql (find-system :clsql)))) - (pushnew :clsql cl:*features*))) +(in-package #:cl-user) +(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 " + :maintainer "Kevin M. Rosenberg " + :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 provides low-level +database interfaces as well as a functional and an object +oriented interface." + :version "6.4" + :components + ((:module sql + :components + ((:module base + :pathname "" + :components + ((:file "cmucl-compat") + (:file "package") + (:file "kmr-mop" :depends-on ("package")) + (:file "base-classes" :depends-on ("package")) + (:file "conditions" :depends-on ("base-classes")) + (:file "db-interface" :depends-on ("conditions")) + (:file "utils" :depends-on ("package" "db-interface")) + (:file "time" :depends-on ("package" "conditions" "utils")) + (:file "generics" :depends-on ("package")))) + (:module database + :pathname "" + :components + ((:file "initialize") + (:file "database" :depends-on ("initialize")) + (:file "recording" :depends-on ("database")) + (:file "pool" :depends-on ("database"))) + :depends-on (base)) + (:module syntax + :pathname "" + :components ((:file "expressions") + (:file "operations" + :depends-on ("expressions")) + (:file "syntax" :depends-on ("operations"))) + :depends-on (database)) + (:module functional + :pathname "" + :components ((:file "fdml") + (:file "transaction" :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 + :pathname "" + :components ((:file "metaclasses") + (:file "ooddl" :depends-on ("metaclasses")) + (:file "oodml" :depends-on ("ooddl"))) + :depends-on (functional)) + (:module generic + :pathname "" + :components ((:file "generic-postgresql") + (:file "generic-odbc") + (: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))))