r11128: add init file processing
authorKevin M. Rosenberg <kevin@rosenberg.net>
Sun, 10 Sep 2006 17:42:24 +0000 (17:42 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Sun, 10 Sep 2006 17:42:24 +0000 (17:42 +0000)
umlisp.asd

index d3439e036ecc39b1174766c0e7bd3997f7646f42..bc97895af25f5152d42fd18066799a1c63848518 100644 (file)
 (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")
 (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))))
+