X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=uffi.system;h=f0c4beb9643a324f802af051972806cfcdd19186;hb=01a6946b2543ade1bfd5672ca92827da7e56bf85;hp=020d8c047e00b466235a01dbc6dc71ca7ff1775c;hpb=e41ee8065d399e0fb1d0d851a27aa53ba9015cf2;p=uffi.git diff --git a/uffi.system b/uffi.system index 020d8c0..f0c4beb 100644 --- a/uffi.system +++ b/uffi.system @@ -1,4 +1,4 @@ -;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*- +;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*- ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; @@ -7,84 +7,66 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Feb 2002 ;;;; -;;;; Copyright (c) 2002 Kevin M. Rosenberg +;;;; $Id: uffi.system,v 1.8 2002/03/21 10:52:17 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 +(load (make-pathname :name "set-logical" :type "cl" + :defaults *load-truename*)) -;; 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*))) +(set-logical-host-for-pathname "UFFI" *load-truename*) -(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") +(defconstant +uffi-src-dir+ + (format nil "UFFI:src;~A;" + #+allegro "allegro" + #+lispworks "lispworks" + #+cmu "cmucl" + #+mcl "mcl" + #+corman "corman") + "Logical pathname for source") -(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*)))) +(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;" :source-extension "cl" :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 "libraries" :depends-on ("package"))) - ) + (: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")))) + +#-(or cmu allegro lispworks) +(mk:defsystem :uffi + :source-pathname #.+uffi-src-dir+ + :source-extension "cl" + :binary-pathname #.+uffi-bin-dir+ + :components + ((:file "package") + (: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")))) + +