-;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
+;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*-
;;;; *************************************************************************
;;;; FILE IDENTIFICATION
;;;;
;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Feb 2002
;;;;
-;;;; Copyright (c) 2002 Kevin M. Rosenberg
+;;;; $Id: uffi.system,v 1.14 2002/04/09 20:06:18 kevin Exp $
;;;;
-;;;; $Id: uffi.system,v 1.2 2002/03/09 21:53:58 kevin Exp $
+;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
-;;;; This file is part of UFFI.
-;;;;
-;;;; UFFI is free software; you can redistribute it and/or modify
-;;;; it under the terms of the GNU General Public License (version 2) as
-;;;; published by the Free Software Foundation.
-;;;;
-;;;; UFFI is distributed in the hope that it will be useful,
-;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;;;; GNU General Public License for more details.
-;;;;
-;;;; You should have received a copy of the GNU General Public License
-;;;; along with UFFI; if not, write to the Free Software Foundation, Inc.,
-;;;; 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+;;;; UFFI users are granted the rights to distribute and use this software
+;;;; as governed by the terms of the Lisp Lesser GNU Public License
+;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
;;;; *************************************************************************
(declaim (optimize (debug 3) (speed 3) (safety 1) (compilation-speed 0)))
(in-package :cl-user)
-;;; 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*))
;;; UFFI system definition
(mk:defsystem :uffi
- :source-pathname "UFFI:src;"
+ :source-pathname "UFFI-SRC:"
:source-extension "cl"
- :binary-pathname "UFFI:src;bin;"
+ :binary-pathname "UFFI-SRC:bin;"
:components
((:file "package")
- (:file "immediates" :depends-on ("package"))
- (:file "strings" :depends-on ("immediates"))
- (:file "objects" :depends-on ("immediates"))
- (:file "aggregates" :depends-on ("immediates"))
- (:file "functions" :depends-on ("immediates"))
+ (:file "primitives" :depends-on ("package"))
+ (:file "strings" :depends-on ("primitives"))
+ (:file "objects" :depends-on ("primitives"))
+ (:file "aggregates" :depends-on ("primitives"))
+ (:file "functions" :depends-on ("primitives"))
(:file "libraries" :depends-on ("package")))
- )
-
-
-
-
+ :finally-do
+ (pushnew :uffi cl:*features*))