chiark / gitweb /
Updated for pango 1.0.0
[clg] / clg.system
1 ;;; -*- Mode: lisp -*-
2
3 (defpackage "CLG-SYSTEM"
4   (:use "COMMON-LISP" "EXTENSIONS" "ALIEN")
5   (:export "*GTK-LIBRARY-PATH*"))
6
7 (in-package "CLG-SYSTEM")
8
9 ;; We used to do this, but I think it's better if everybody puts such
10 ;; definitions in his/her own Lisp startup files so that clg.system
11 ;; can be used without local modifications.
12 ;(setf
13 ; (logical-pathname-translations "clg")
14 ; '(("**;*.*.*" "/home/espen/src/clg/**/*.*.*")))
15
16 ;; Uncomment and edit the next line if pkg-config needs to search for
17 ;; .pc files in directories other than the default (/usr/lib/pkgconfig)
18 ;(push '(:PKG_CONFIG_PATH . "/opt/gnome/lib/pkgconfig") ext:*environment-list*)
19
20 (load "clg:tools;config")
21 (load "clg:tools;sharedlib")
22
23 (defvar *gtk-library-path* (pkg-variable "gtk+-2.0" "libdir"))
24 (defvar *cmucl-include-path* (ext:unix-namestring "target:lisp"))
25
26 ;; Without this, MAKE uses "CLG:glib;.err" as a namestring, which fails.
27 ;; TODO: Find and fix the bug, then remove this.
28 (setq mk::*cmu-errors-to-file* nil)
29
30 (eval
31  `(mk:defsystem clg
32     :initially-do
33     (progn
34       (pkg-exists-p "glib-2.0" :atleast-version "2.0.0")
35       (pkg-exists-p "pango" :atleast-version "1.0.0")
36       (pkg-exists-p "atk" :atleast-version "1.0.0")
37       (pkg-exists-p "gtk+-2.0" :atleast-version "2.0.0"))
38     :source-pathname "clg:"
39     :binary-pathname "clg:"
40     :components
41     ((:module tools
42       :components ("autoexport"))
43      (:file "pcl" :source-pathname "glib;" :binary-pathname "glib;")
44      (:module glib
45       :initially-do
46       (progn
47         (load-shared-library "libglib-2.0.so")
48         (load-shared-library "libgobject-2.0.so" :init "g_type_init"))
49       :components
50       ((:file "callback"
51         :language :c
52         :source-extension "c"
53         :binary-extension "o"
54         :compiler-options
55         (:cflags ,(pkg-cflags "glib-2.0")
56                  :optimize 2
57                  :definitions (#+cmu CMUCL)
58                  :include-paths (,*cmucl-include-path*)))
59        (:file "glib-package")
60        (:file "gutils" :depends-on ("glib-package"))
61        (:file "gforeign" :depends-on ("gutils"))
62        (:file "glib" :depends-on ("gforeign"))
63        (:file "proxy" :depends-on ("glib"))
64        (:file "gtype" :depends-on ("proxy"))
65        (:file "gboxed" :depends-on ("gtype"))
66        (:file "genums" :depends-on ("gtype"))
67        (:file "gparam" :depends-on ("genums"))
68        (:file "ginterface" :depends-on ("gtype"))
69        (:file "gobject" :depends-on ("gparam"))
70        (:file "gcallback" :depends-on ("gtype" "gparam" "gobject" "callback"))
71        (:file "glib-export"
72         :depends-on
73         ("gutils" "glib" "proxy" "gboxed" "gtype" "gparam" "gcallback"
74          "genums" "gobject")))
75       :depends-on (tools "pcl"))
76      (:file "gdkglue"
77       :source-pathname "gdk;"
78       :binary-pathname "gdk;"
79       :initially-do
80       (progn
81         (load-shared-library "libgdk_pixbuf-2.0.so")
82         (load-shared-library "libgdk-x11-2.0.so"
83          :init "gdk_init"
84          :prototype '(function
85                       c-call:void
86                       system-area-pointer
87                       system-area-pointer)
88          :initargs (list (system:int-sap 0) (system:int-sap 0))))
89       :language :c
90       :source-extension "c"
91       :binary-extension "o"
92       :compiler-options (:cflags ,(pkg-cflags "gtk+-2.0")
93                          :optimize 2))
94      (:module gdk
95        :components
96        ((:file "gdk-package")
97         (:file "gdk-export" :depends-on ("gdkevents" "gdktypes" "gdk"))
98         (:file "gdktypes" :depends-on ("gdk-package"))
99         (:file "gdkevents" :depends-on ("gdktypes"))
100         (:file "gdk" :depends-on ("gdkevents")))
101        :depends-on (glib "gdkglue"))
102      (:module pango
103       :initially-do (load-shared-library "libpango-1.0.so")
104        :components
105        ((:file "pango-package")
106         (:file "pango" :depends-on ("pango-package"))
107         (:file "pango-export" :depends-on ("pango")))
108        :depends-on (glib))
109      (:module atk
110       :initially-do (load-shared-library "libatk-1.0.so")
111        :components
112        ((:file "atk-package")
113         (:file "atk" :depends-on ("atk-package"))
114         (:file "atk-export" :depends-on ("atk")))
115        :depends-on (glib))
116      (:file "gtkglue"
117       :source-pathname "gtk;"
118       :binary-pathname "gtk;"
119       :initially-do
120       (progn
121         (load-shared-library
122          "libgtk-x11-2.0.so"
123          :init "gtk_init"
124          :prototype '(function
125                       c-call:void
126                       system-area-pointer
127                       system-area-pointer)
128          :initargs (list (system:int-sap 0) (system:int-sap 0))))
129       :language :c
130       :source-extension "c"
131       :binary-extension "o"
132       :compiler-options (:cflags ,(pkg-cflags "gtk+-2.0")
133                          :optimize 2
134                          :definitions (#+cmu CMUCL)
135                          :include-paths (,*cmucl-include-path*)))
136      (:module gtk
137       :components
138       ((:file "gtk-package")
139        (:file "gtk-export" :depends-on ("gtktypes" "gtk"))
140        (:file "gtkobject" :depends-on ("gtk-package"))
141        (:file "gtktypes" :depends-on ("gtkobject"))
142        (:file "gtkwidget" :depends-on ("gtktypes"))
143        (:file "gtkcontainer" :depends-on ("gtktypes"))
144        (:file "gtk" :depends-on ("gtktypes"))
145        (:file "gtkutils" :depends-on ("gtk")))
146       :depends-on (glib gdk pango atk "gtkglue")))))