1 ;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
2 ;;;; *************************************************************************
3 ;;;; FILE IDENTIFICATION
6 ;;;; Purpose: Defsystem-3/4 system definition file for UFFI package
7 ;;;; Programmer: Kevin M. Rosenberg
8 ;;;; Date Started: Feb 2002
10 ;;;; Copyright (c) 2002 Kevin M. Rosenberg
12 ;;;; $Id: uffi.system,v 1.1 2002/03/09 19:55:33 kevin Exp $
14 ;;;; This file is part of UFFI.
16 ;;;; UFFI is free software; you can redistribute it and/or modify
17 ;;;; it under the terms of the GNU General Public License (version 2) as
18 ;;;; published by the Free Software Foundation.
20 ;;;; UFFI is distributed in the hope that it will be useful,
21 ;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
22 ;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 ;;;; GNU General Public License for more details.
25 ;;;; You should have received a copy of the GNU General Public License
26 ;;;; along with UFFI; if not, write to the Free Software Foundation, Inc.,
27 ;;;; 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28 ;;;; *************************************************************************
30 (declaim (optimize (debug 3) (speed 3) (safety 1) (compilation-speed 0)))
33 ;;; Setup logical pathname translaton with separate binary directories
34 ;;; for each implementation
36 ;; push allegro case sensitivity on *features*
38 (eval-when (:compile-toplevel :load-toplevel :execute)
39 (if (or (eq excl:*current-case-mode* :case-sensitive-lower)
40 (eq excl:*current-case-mode* :case-sensitive-upper))
41 (pushnew :case-sensitive cl:*features*)
42 (pushnew :case-insensitive cl:*features*)))
44 (defconstant +uffi-compiler-name+
45 #+(and allegro ics case-sensitive) "acl-modern"
46 #+(and allegro (not ics) case-sensitive) "acl-modern8"
47 #+(and allegro ics (not case-sensitive)) "acl-ansi"
48 #+(and allegro (not ics) (not case-sensitive)) "acl-ansi8"
49 #+lispworks "lispworks"
55 #-(or allegro lispworks clisp cmu sbcl corman mcl) "unknown")
57 (setf (logical-pathname-translations "UFFI")
58 `(("**;bin;*.*.*" ,(merge-pathnames
63 (append '(:relative :wild-inferiors
64 ".bin" #.+uffi-compiler-name+)))
66 ("**;*.*.*" ,(merge-pathnames
70 :directory '(:relative :wild-inferiors))
73 ;;; UFFI system definition
76 :source-pathname "UFFI:src;"
77 :source-extension "cl"
78 :binary-pathname "UFFI:src;bin;"
81 (:file "immediates" :depends-on ("package"))
82 (:file "strings" :depends-on ("immediates"))
83 (:file "objects" :depends-on ("immediates"))
84 (:file "aggregates" :depends-on ("immediates"))
85 (:file "routine" :depends-on ("immediates"))
86 (:file "libraries" :depends-on ("package")))