(setf
(logical-pathname-translations "clg")
'(("**;*.*.*" "/home/espen/src/clg/**/*.*.*")))
-(setq mk::*cmu-errors-to-file* nil)
-(setq ext:*environment-list* (cons '(:PKG_CONFIG_PATH . "/opt/gnome/lib/pkgconfig") ext:*environment-list*))
+
+;; Uncomment and edit the next line if pkg-config needs to search for
+;; .pc files in directories other than the default (/usr/lib/pkgconfig)
+:(push '(:PKG_CONFIG_PATH . "/opt/gnome/lib/pkgconfig") ext:*environment-list*)
(load "clg:tools;config")
(load "clg:tools;sharedlib")
(import 'alien:load-shared-library)
+(defvar gtk-library-path (pkg-variable "gtk+-2.0" "libdir"))
+(defvar cmucl-include-path "/usr/src/cmucl-2.4.20/src/lisp")
+
+
+;; A hack to get around a bug in gdk's init code
+(defvar argc (alien:make-alien c-call:int))
+(defvar progname (alien:make-alien c-call:char))
+(defvar argv0 (alien:make-alien (* c-call:char)))
+(defvar argv (alien:make-alien (* (* c-call:char))))
+(setf (alien:deref argc) 1)
+(setf (alien:deref progname) 0)
+(setf (alien:deref argv0) progname)
+(setf (alien:deref argv) argv0)
+
+(setq mk::*cmu-errors-to-file* nil)
+
(eval
`(mk:defsystem clg
+ :initially-do
+ (progn
+ (pkg-exists-p "glib-2.0" :atleast-version "1.3.9")
+ (pkg-exists-p "pango" :atleast-version "0.20")
+ (pkg-exists-p "gtk+-2.0" :atleast-version "1.3.9"))
:source-pathname "clg:"
:binary-pathname "clg:"
:components
((:module tools
:components ("autoexport"))
+ (:file "pcl" :source-pathname "glib;" :binary-pathname "glib;")
(:module glib
:initially-do
(progn
- (load-shared-library "libglib-1.3.so.4")
- (load-shared-library "libgobject-1.3.so.4" :init "g_type_init"))
+ (load-shared-library "libglib-1.3.so")
+ (load-shared-library "libgobject-1.3.so" :init "g_type_init"))
:components
((:file "callback"
:language :c
+ :source-extension "c"
+ :binary-extension "o"
:compiler-options
(:cflags ,(pkg-cflags "glib-2.0")
:optimize 2
:definitions (#+cmu CMUCL)
- :include-paths ("/usr/src/cmucl-2.4.20/src/lisp")))
+ :include-paths (,cmucl-include-path)))
(:file "glib-package")
(:file "gutils" :depends-on ("glib-package"))
(:file "gforeign" :depends-on ("gutils"))
(:file "proxy" :depends-on ("glib"))
(:file "gtype" :depends-on ("proxy"))
(:file "gboxed" :depends-on ("gtype"))
- (:file "gcallback" :depends-on ("gtype" "gparam" "callback"))
(:file "genums" :depends-on ("gtype"))
(:file "gparam" :depends-on ("genums"))
(:file "gobject" :depends-on ("gparam"))
+ (:file "gcallback" :depends-on ("gtype" "gparam" "gobject" "callback"))
(:file "glib-export"
:depends-on
("gutils" "glib" "proxy" "gboxed" "gtype" "gparam" "gcallback"
"genums" "gobject")))
- :depends-on (tools))
+ :depends-on (tools "pcl"))
(:file "gdkglue"
:source-pathname "gdk;"
:binary-pathname "gdk;"
:initially-do
(progn
- (load-shared-library "libgdk_pixbuf-1.3.so.4")
- (load-shared-library "libgdk-x11-1.3.so.4"
+ (load-shared-library "libgdk_pixbuf-1.3.so")
+ (load-shared-library "libgdk-x11-1.3.so"
:init "gdk_init"
:prototype '(function
- c-call:void
- alien:system-area-pointer
- alien:system-area-pointer)
- :initargs (list (system:int-sap 0) (system:int-sap 0))))
+ c-call:void (* c-call:int) (* (* (* char))))
+ :initargs (list argc argv)))
:language :c
+ :source-extension "c"
+ :binary-extension "o"
:compiler-options (:cflags ,(pkg-cflags "gtk+-2.0")
:optimize 2))
(:module gdk
(:file "gdkevents" :depends-on ("gdktypes"))
(:file "gdk" :depends-on ("gdkevents")))
:depends-on (glib "gdkglue"))
+ (:module pango
+ :initially-do (load-shared-library "libpango.so")
+ :components
+ ((:file "pango-package")
+ (:file "pango" :depends-on ("pango-package"))
+ (:file "pango-export" :depends-on ("pango")))
+ :depends-on (glib))
(:file "gtkglue"
:source-pathname "gtk;"
:binary-pathname "gtk;"
:initially-do
(progn
(load-shared-library
- "libgtk-x11-1.3.so.4"
+ "libgtk-x11-1.3.so"
:init "gtk_init"
:prototype '(function
c-call:void
alien:system-area-pointer)
:initargs (list (system:int-sap 0) (system:int-sap 0))))
:language :c
+ :source-extension "c"
+ :binary-extension "o"
:compiler-options (:cflags ,(pkg-cflags "gtk+-2.0")
:optimize 2
:definitions (#+cmu CMUCL)
- :include-paths ("/usr/lib/cmucl")))
+ :include-paths (,cmucl-include-path)))
(:module gtk
:components
((:file "gtk-package")
-; (:file "gtk-export" :depends-on ("gtkenums" "gtktypes" "gtk"))
-; (:file "gtkobject" :depends-on ("gtk-package"))
-; (:file "gtktypes" :depends-on ("gtkenums" "gtkobject"))
-; (:file "gtkwidget" :depends-on ("gtktypes"))
-; (:file "gtkcontainer" :depends-on ("gtktypes"))
-; (:file "gtk" :depends-on ("gtktypes"))
-; (:file "gtkutils" :depends-on ("gtk"))
- )
- :depends-on (glib gdk "gtkglue"))
-)))
+ (:file "gtk-export" :depends-on ("gtktypes" "gtk"))
+ (:file "gtkobject" :depends-on ("gtk-package"))
+ (:file "gtktypes" :depends-on ("gtkobject"))
+ (:file "gtkwidget" :depends-on ("gtktypes"))
+ (:file "gtkcontainer" :depends-on ("gtktypes"))
+ (:file "gtk" :depends-on ("gtktypes"))
+ (:file "gtkutils" :depends-on ("gtk")))
+ :depends-on (glib gdk pango "gtkglue")))))