c70fd787e5c8696dc3d8093715527f3dbae134f6
[clsql.git] / clsql.asd
1 ;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
2 ;;;; *************************************************************************
3 ;;;; FILE IDENTIFICATION
4 ;;;;
5 ;;;; Name:     clsql.asd
6 ;;;; Purpose:  System definition for CLSQL-CLASSIC
7 ;;;; Authors:  Marcus Pearce and Kevin M. Rosenberg
8 ;;;; Created:  March 2004
9 ;;;;
10 ;;;; $Id$
11 ;;;;
12 ;;;; CLSQL users are granted the rights to distribute and use this software
13 ;;;; as governed by the terms of the Lisp Lesser GNU Public License
14 ;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
15 ;;;; *************************************************************************
16
17 (in-package #:cl-user)
18 (defpackage #:clsql-system (:use #:asdf #:cl))
19 (in-package #:clsql-system)
20
21 ;; need to load uffi for below perform :after method 
22 (eval-when (:compile-toplevel :load-toplevel :execute)
23   (unless (find-package 'uffi)
24     (asdf:operate 'asdf:load-op 'uffi)))
25
26 (defsystem clsql
27     :name "CLSQL"
28     :author "Kevin Rosenberg <kevin@rosenberg.net>"
29     :maintainer "Kevin M. Rosenberg <kmr@debian.org>"
30     :licence "Lessor Lisp General Public License"
31     :description "Common Lisp SQL Interface library"
32     :long-description "A Common Lisp interface to SQL RDBMS based on
33 the Xanalys CommonSQL interface for Lispworks. It depends on the
34 low-level database interfaces as well as a functional and an object
35 oriented interface."
36     :components
37     ((:module sql
38               :components
39               ((:module base
40                         :pathname ""
41                         :components
42                         ((:file "cmucl-compat")
43                          (:file "package")
44                          (:file "kmr-mop" :depends-on ("package"))
45                          (:file "base-classes" :depends-on ("package"))
46                          (:file "conditions" :depends-on ("base-classes"))
47                          (:file "db-interface" :depends-on ("conditions"))
48                          (:file "time" :depends-on ("package" "conditions"))
49                          (:file "utils" :depends-on ("package" "db-interface"))
50                          (:file "generics" :depends-on ("package"))))
51                (:module database
52                         :pathname ""
53                         :components
54                         ((:file "initialize")
55                          (:file "database" :depends-on ("initialize"))
56                          (:file "recording" :depends-on ("database"))
57                          (:file "pool"))
58                         :depends-on (base))
59                (:module syntax
60                         :pathname ""
61                         :components ((:file "expressions")
62                                      (:file "operations"
63                                             :depends-on ("expressions"))
64                                      (:file "syntax" :depends-on ("operations")))
65                         :depends-on (database))
66                (:module functional
67                         :pathname ""
68                         :components ((:file "fdml")
69                                      (:file "transaction" :depends-on ("fdml"))
70                                      (:file "loop-extension"
71                                             :depends-on ("fdml"))
72                                      (:file "fddl" :depends-on ("fdml")))
73                         :depends-on (syntax))
74                (:module object
75                         :pathname ""
76                         :components ((:file "metaclasses")
77                                      (:file "ooddl" :depends-on ("metaclasses"))
78                                      (:file "oodml" :depends-on ("ooddl")))
79                         :depends-on (functional))
80                (:module generic
81                         :pathname ""
82                         :components ((:file "generic-postgresql")
83                                      (:file "generic-odbc")
84                                      (:file "sequences"))
85                         :depends-on (functional))))))
86
87
88 (defmethod perform ((o test-op) (c (eql (find-system 'clsql))))
89   (operate 'load-op 'clsql-tests)
90   (operate 'test-op 'clsql-tests :force t))
91
92 (defmethod perform :after ((o load-op) (c (eql (find-system 'clsql))))
93   (let* ((init-var (uffi:getenv "CLSQLINIT"))
94          (init-file (or (when init-var (probe-file init-var))
95                         (probe-file "/etc/clsql-init.lisp"))))
96     (when init-file (load init-file))))
97