;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*- ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; ;;;; Name: uffi.system ;;;; Purpose: Defsystem-3/4 system definition file for UFFI package ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Feb 2002 ;;;; ;;;; Copyright (c) 2002 Kevin M. Rosenberg ;;;; ;;;; $Id: uffi.system,v 1.1 2002/03/09 19:55:33 kevin Exp $ ;;;; ;;;; 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 ;;;; ************************************************************************* (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*)))) ;;; UFFI system definition (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 "routine" :depends-on ("immediates")) (:file "libraries" :depends-on ("package"))) )