X-Git-Url: http://git.kpe.io/?p=umlisp.git;a=blobdiff_plain;f=umlisp.asd;h=44aa906dffbc12ad96fe5e3370f4aafe496aa289;hp=7287053f9ff1fcfd7117a5533dc082807e9e5f38;hb=f4ea91e2cf0eb22db02498e54d1f75ef5dcd4239;hpb=10106819f88ea2c2616cc5361e1a93f8298e34b2 diff --git a/umlisp.asd b/umlisp.asd index 7287053..44aa906 100644 --- a/umlisp.asd +++ b/umlisp.asd @@ -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))))