-;;; Setup logical pathname translaton with separate binary directories
-;;; for each implementation
-
-;; push allegro case sensitivity on *features*
-#+allegro
-(eval-when (:compile-toplevel :load-toplevel :execute)
- (if (or (eq excl:*current-case-mode* :case-sensitive-lower)
- (eq excl:*current-case-mode* :case-sensitive-upper))
- (pushnew :case-sensitive cl:*features*)
- (pushnew :case-insensitive cl:*features*)))
-
-(defconstant +uffi-compiler-name+
- #+(and allegro ics case-sensitive) "acl-modern"
- #+(and allegro (not ics) case-sensitive) "acl-modern8"
- #+(and allegro ics (not case-sensitive)) "acl-ansi"
- #+(and allegro (not ics) (not case-sensitive)) "acl-ansi8"
- #+lispworks "lispworks"
- #+clisp "clisp"
- #+cmu "cmucl"
- #+sbcl "sbcl"
- #+corman "corman"
- #+mcl "mcl"
- #-(or allegro lispworks clisp cmu sbcl corman mcl) "unknown")
-
-(setf (logical-pathname-translations "UFFI")
- `(("**;bin;*.*.*" ,(merge-pathnames
- (make-pathname
- :name :wild
- :type :wild
- :directory
- (append '(:relative :wild-inferiors
- ".bin" #.+uffi-compiler-name+)))
- *load-truename*))
- ("**;*.*.*" ,(merge-pathnames
- (make-pathname
- :name :wild
- :type :wild
- :directory '(:relative :wild-inferiors))
- *load-truename*))))
+(load (make-pathname :name "set-logical" :type "cl"
+ :defaults *load-truename*))
+
+(set-logical-host-for-pathname "UFFI" *load-truename*)
+(set-logical-host-for-pathname "UFFI-SRC"
+ (merge-pathnames
+ (make-pathname
+ :directory
+ #+(or cmu allegro lispworks)
+ '(:relative "src")
+ #+mcl
+ '(:relative "src" "mcl")
+ #+cormanlisp
+ '(:relative "src" "corman")
+ )
+ *load-truename*))