r11156: fix trans extension for sbcl, fix index for mrrel
[umlisp.git] / umlisp.asd
index 7287053f9ff1fcfd7117a5533dc082807e9e5f38..44aa906dffbc12ad96fe5e3370f4aafe496aa289 100644 (file)
@@ -4,38 +4,56 @@
 ;;;;
 ;;;; Name:          umlisp.asd
 ;;;; Purpose:       ASDF system definition file for UMLisp
-;;;; Programmer:    Kevin M. Rosenberg
+;;;; Author:        Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: umlisp.asd,v 1.12 2003/01/15 02:01:39 kevin Exp $
+;;;; $Id$
 ;;;;
 ;;;; This file, part of UMLisp, is
-;;;;    Copyright (c) 2000-2002 by Kevin M. Rosenberg, M.D.
+;;;;    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)
 
-#+(or allegro lispworks cmu sbcl openmcl scl)
-(defsystem :umlisp
-  :perform (load-op :after (op umlisp)
-                   (pushnew :umlisp cl:*features*))
-  
+;; 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 "sql-create" :depends-on ("parse-common"))
-      (:file "classes" :depends-on ("utils"))
-      (:file "sql-classes" :depends-on ("classes" "sql"))
-      (:file "composite" :depends-on ("sql-classes")))
-     :depends-on (:clsql
-                 :kmrcl
-                 :hyperobject))
+  ((: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))))