File: clue.system

package info (click to toggle)
clue 20011230
  • links: PTS
  • area: main
  • in suites: woody
  • size: 6,112 kB
  • ctags: 2,646
  • sloc: lisp: 31,991; makefile: 40; sh: 24
file content (71 lines) | stat: -rw-r--r-- 2,617 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
;;; -*- Mode: LISP; Syntax: Common-Lisp; Package: User; Base: 10 -*-

(in-package :User)

#+pcl
(progn
  (pushnew 'compile pcl::*defclass-times*)
  (pushnew 'compile pcl::*defgeneric-times*))

;; Ensure VALUES is a legal declaration
#-cmu17
(proclaim '(declaration values))

#+cmu17 ;; Don't warn about botched values decls
(setf c:*suppress-values-declaration* t)

#+pcl ;; This is now in current sources
(pushnew 'values pcl::*non-variable-declarations*)

;; Ensure *features* knows about CLOS and PCL
(when (find-package 'pcl)
  (pushnew :pcl  *features*)
  (pushnew :clos *features*)
  (unless (find-package :clos)
    (rename-package :pcl :pcl '(:clos))))

;; Ensure *features* knows about the Common Lisp Error Handler
(when (find-package 'conditions)
  (pushnew :cleh *features*))

;;; handle PCL's precompile "feature"
(defun hack-precom (path op &optional (pathname "precom"))
  (declare (type (member :compile :load :ignore) op))
  (let* ((src (merge-pathnames (make-pathname :name pathname :type "lisp")
			       path))
	 (obj (compile-file-pathname src)))
    ;;(format t "~& ~a ~a ~a ~a~%" path op pathname src)
    (case op
      (:compile
       (when (probe-file src)
	 (unless (probe-file obj)
	   (compile-file src))))
      (:load
       (when (probe-file obj)
	 (load obj))))))

(mk:defsystem clue
    :source-pathname "cl-library:clue;"
    :depends-on (:cmucl-clx)
    :components
    ((:file "clue")                     ; Define packages
     (:module clue-precom-load
              :load-form (hack-precom "cl-library:clue;" :load)
              :compile-form t)
     (:file "defgeneric")		; pw adds 
     (:file "event-parse")		; Utilities for event translation
     (:file "defcontact")		; CLOS for resources and type conversion
     (:file "intrinsics")		; The "guts"
     (:file "caches")                   ; Support for gcontext, pixmap, cursor cacheing
     (:file "resource")                 ; Resource and type conversion
     (:file "gray")                     ; Gray stipple patterns
     (:file "cursor")                   ; Standard cursor names
     (:file "events")                   ; Event handling
     (:file "virtual")                  ; Support for windowless contacts
     (:file "shells")                   ; Support for top-level window/session mgr.
     (:file "root-gmgmt")		; Geometry management methods for root contacts
     (:file "package")                  ; External cluei symbols exported from clue
     (:module clue-precom-com
              :load-form t
              :compile-only t
              :compile-form (hack-precom "cl-library:clue;" :compile))))