;;;; Author: Kevin M. Rosenberg
;;;; Date Started: Apr 2000
;;;;
-;;;; $Id: umlisp.asd,v 1.15 2003/05/02 18:47:53 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.
(defpackage #:umlisp-system (:use #:asdf #:cl))
(in-package #:umlisp-system)
-#+(or allegro lispworks cmu sbcl openmcl scl)
+;; 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 "sql" :depends-on ("utils"))
(: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 "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 "sql-classes" :depends-on ("class-support" "sql"))
(:file "composite" :depends-on ("sql-classes")))
- :depends-on (:clsql :clsql-mysql :kmrcl :hyperobject))
+ :depends-on (clsql clsql-mysql kmrcl hyperobject))
-#+(or allegro lispworks cmu sbcl openmcl scl)
-(defmethod perform ((o test-op) (c (eql (find-system :umlisp))))
- (oos 'load-op 'umlisp-tests)
- (oos 'test-op 'umlisp-tests))
+(defmethod perform ((o test-op) (c (eql (find-system 'umlisp))))
+ (operate 'load-op 'umlisp-tests)
+ (operate 'test-op 'umlisp-tests :force t))
-(defsystem umlisp-tests
- :depends-on (rt)
- :components ((:file "tests")))
+(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))))
-(defmethod perform ((o test-op) (c (eql (find-system :umlisp-tests))))
- (or (funcall (intern (symbol-name '#:do-tests) (find-package '#:rtest)))
- (error "test-op failed")))