r1518: Initial revision
[uffi.git] / uffi.system
1 ;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
2 ;;;; *************************************************************************
3 ;;;; FILE IDENTIFICATION
4 ;;;;
5 ;;;; Name:          uffi.system
6 ;;;; Purpose:       Defsystem-3/4 system definition file for UFFI package
7 ;;;; Programmer:    Kevin M. Rosenberg
8 ;;;; Date Started:  Feb 2002
9 ;;;;
10 ;;;; Copyright (c) 2002 Kevin M. Rosenberg
11 ;;;;
12 ;;;; $Id: uffi.system,v 1.1 2002/03/09 19:55:33 kevin Exp $
13 ;;;;
14 ;;;; This file is part of UFFI. 
15 ;;;;
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.
19 ;;;;
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.
24 ;;;;
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 ;;;; *************************************************************************
29
30 (declaim (optimize (debug 3) (speed 3) (safety 1) (compilation-speed 0)))
31 (in-package :cl-user)
32
33 ;;; Setup logical pathname translaton with separate binary directories
34 ;;; for each implementation
35
36 ;; push allegro case sensitivity on *features*
37 #+allegro
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*)))
43
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"
50     #+clisp "clisp"
51     #+cmu "cmucl"
52     #+sbcl "sbcl"
53     #+corman "corman"
54     #+mcl "mcl"
55     #-(or allegro lispworks clisp cmu sbcl corman mcl) "unknown")
56
57 (setf (logical-pathname-translations "UFFI")
58   `(("**;bin;*.*.*" ,(merge-pathnames
59                       (make-pathname 
60                        :name :wild
61                        :type :wild
62                        :directory 
63                        (append '(:relative :wild-inferiors
64                                  ".bin" #.+uffi-compiler-name+)))
65                       *load-truename*))
66     ("**;*.*.*" ,(merge-pathnames
67                   (make-pathname
68                    :name :wild
69                    :type :wild
70                    :directory '(:relative :wild-inferiors))
71                   *load-truename*))))
72
73 ;;; UFFI system definition
74
75 (mk:defsystem :uffi
76     :source-pathname "UFFI:src;"
77     :source-extension "cl"
78     :binary-pathname "UFFI:src;bin;"
79     :components 
80     ((:file "package")
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")))
87     )
88
89
90
91
92