-(in-package :cl-user)
-
-(load (make-pathname :name "set-logical" :type "cl"
- :defaults *load-truename*))
-
-(set-logical-host-for-pathname "UFFI" *load-truename*)
-
-(defconstant +uffi-src-dir+
- (format nil "UFFI:src;~A;"
- #+allegro "allegro"
- #+lispworks "lispworks"
- #+cmu "cmucl"
- #+mcl "mcl"
- #+clisp "clisp"
- #+corman "corman")
- "Logical pathname for source")
-
-(defconstant +uffi-bin-dir+ (concatenate 'string +uffi-src-dir+ "bin;")
- "Logical pathname for binaries")
-
-;;; UFFI system definition
-
-#+(or cmu allegro lispworks)
-(mk:defsystem :uffi
- :source-pathname "UFFI:src;"
+(in-package :make)
+
+;; For use with non-Common Lisp Controller installations
+#-common-lisp-controller
+(let ((path (make-pathname :name "set-logical" :type "cl"
+ :defaults *load-truename*)))
+ (when (probe-file path)
+ (load path)
+ (set-logical-host-for-pathname
+ "uffi"
+ (make-pathname :host (pathname-host *load-truename*)
+ :device (pathname-device *load-truename*)
+ :directory (pathname-directory *load-truename*)))))
+
+(defconstant +uffi-logical-host+
+ #+common-lisp-controller "cl-library"
+ #-common-lisp-controller "uffi"
+ "Logical hostname for loading system")
+
+(make:defsystem :uffi
+ :source-pathname
+ #-mcl #.(format nil "~A:uffi;" +uffi-logical-host+)
+ #+mcl #.(format nil "~A:uffi;mcl;" +uffi-logical-host+)