r11156: fix trans extension for sbcl, fix index for mrrel
[umlisp.git] / umlisp.asd
index b83899c3250b509f7018d764e5a1072c4b2a3060..44aa906dffbc12ad96fe5e3370f4aafe496aa289 100644 (file)
@@ -1,18 +1,59 @@
-;;;;  -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
-;;;; $Id: umlisp.asd,v 1.2 2002/10/08 22:08:56 kevin Exp $
+;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10; Package: umlisp -*-
+;;;; *************************************************************************
+;;;; FILE IDENTIFICATION
+;;;;
+;;;; Name:          umlisp.asd
+;;;; Purpose:       ASDF system definition file for UMLisp
+;;;; Author:        Kevin M. Rosenberg
+;;;; Date Started:  Apr 2000
+;;;;
+;;;; $Id$
+;;;;
+;;;; This file, part of UMLisp, is
+;;;;    Copyright (c) 2000-2006 by Kevin M. Rosenberg, M.D.
+;;;;
+;;;; UMLisp users are granted the rights to distribute and use this software
+;;;; as governed by the terms of the GNU General Public License.
+;;;; *************************************************************************
 
-(in-package :asdf)
+(defpackage #:umlisp-system (:use #:asdf #:cl))
+(in-package #:umlisp-system)
+
+;; need to load uffi for below perform :after method
+(eval-when (:compile-toplevel :load-toplevel :execute)
+  (unless (find-package 'uffi)
+    (asdf:operate 'asdf:load-op 'uffi)))
 
 (defsystem umlisp
     :components 
-     ((:file "package")
-      (:file "data-structures" :depends-on ("package"))
-      (:file "sql" :depends-on ("data-structures"))
-      (:file "utils" :depends-on ("data-structures"))
-      (:file "parse-macros"  :depends-on ("sql"))
-      (:file "parse-2002"  :depends-on ("parse-macros"))
-      (:file "parse-common"  :depends-on ("parse-2002"))
-      (:file "classes" :depends-on ("utils"))
-      (:file "sql-classes" :depends-on ("classes" "sql"))
-      (:file "composite" :depends-on ("sql-classes"))))
+  ((:file "package")
+   (:file "data-structures" :depends-on ("package"))
+   (:file "utils" :depends-on ("data-structures"))
+   (:file "sql" :depends-on ("utils"))
+   (:file "parse-macros"  :depends-on ("sql"))
+   (:file "parse-rrf"  :depends-on ("parse-macros"))
+   (:file "parse-common"  :depends-on ("parse-rrf"))
+   (:file "create-sql" :depends-on ("parse-common"))
+   (:file "sql-classes" :depends-on ("sql"))
+   (:file "classes" :depends-on ("sql-classes"))
+   (:file "class-support" :depends-on ("classes"))
+   (:file "composite" :depends-on ("sql-classes")))
+  :depends-on (clsql clsql-mysql kmrcl hyperobject))
+
+(defmethod perform ((o test-op) (c (eql (find-system 'umlisp))))
+  (operate 'load-op 'umlisp-tests)
+  (operate 'test-op 'umlisp-tests :force t))
+
+(defmethod perform :after ((o load-op) (c (eql (find-system 'umlisp))))
+  (let* ((init-var (uffi:getenv "UMLISPRC"))
+         (init-file (or (when init-var (probe-file init-var))
+                        (probe-file 
+                         (merge-pathnames
+                          (make-pathname :name ".umlisprc")
+                          (user-homedir-pathname)))
+                        #+(or mswin windows win32)
+                        (probe-file "c:\\etc\\umlisp-init.lisp"))))
+    (when init-file
+      (format t "loading umlisp init file ~A~%" init-file)
+      (load init-file))))