r2246: *** empty log message ***
[uffi.git] / uffi.system
index f5c5ba7f09146e12ec9b3fb68f1064d9a0fd4b39..545fd4760a0ee2e96eacda9fbae4d3dfde25db92 100644 (file)
@@ -1,4 +1,4 @@
-;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
+;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*-
 ;;;; *************************************************************************
 ;;;; FILE IDENTIFICATION
 ;;;;
@@ -7,86 +7,38 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Feb 2002
 ;;;;
-;;;; Copyright (c) 2002 Kevin M. Rosenberg
+;;;; $Id: uffi.system,v 1.15 2002/07/26 03:18:27 kevin Exp $
 ;;;;
-;;;; $Id: uffi.system,v 1.1 2002/03/09 19:55:33 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*)))
+(in-package :make)
 
-(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*))))
+;; For use with non-Debian installations
+(let ((helper-pathname (make-pathname :name "set-cl-library" :type "cl"
+                                     :defaults *load-truename*)))
+  (when (probe-file helper-pathname)
+      (load helper-pathname)))
 
 ;;; UFFI system definition
 
-(mk:defsystem :uffi
-    :source-pathname "UFFI:src;"
+(make:defsystem :uffi
+    :source-pathname #-mcl "cl-library:uffi;"
+                     #+mcl "cl-library:uffi;mcl;"
     :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 "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*))