X-Git-Url: https://git.distorted.org.uk/~mdw/clg/blobdiff_plain/f58a6533dfd4e0ac3d31f0ae77f0361e6dcc8b9e..0c0db5e2b38bf90a44b4cfb4646102470093fed1:/clg.system diff --git a/clg.system b/clg.system index 9e4e520..6397ee8 100644 --- a/clg.system +++ b/clg.system @@ -4,12 +4,24 @@ (logical-pathname-translations "clg") '(("**;*.*.*" "/home/espen/src/clg/**/*.*.*"))) (setq mk::*cmu-errors-to-file* nil) +(push '(:PKG_CONFIG_PATH . "/opt/gnome/lib/pkgconfig") ext:*environment-list*) (load "clg:tools;config") (load "clg:tools;sharedlib") (import 'alien:load-shared-library) +;; 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) + + (eval `(mk:defsystem clg :source-pathname "clg:" @@ -17,16 +29,17 @@ :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.2") - (load-shared-library "libgobject-1.3.so.2" :init "g_type_init")) + (load-shared-library "libglib-1.3.so.9") + (load-shared-library "libgobject-1.3.so.9" :init "g_type_init")) :components ((:file "callback" :language :c :compiler-options - (:cflags ,(configure-cflags "glib-config-2.0") + (:cflags ,(pkg-cflags "glib-2.0") :optimize 2 :definitions (#+cmu CMUCL) :include-paths ("/usr/src/cmucl-2.4.20/src/lisp"))) @@ -34,24 +47,54 @@ (:file "gutils" :depends-on ("glib-package")) (:file "gforeign" :depends-on ("gutils")) (:file "glib" :depends-on ("gforeign")) - (:file "gtype" :depends-on ("glib")) - (:file "gparam" :depends-on ("glib")) - (:file "gcallback" :depends-on ("gtype" "gparam" "callback")) - (:file "gobject" :depends-on ("gtype")) + (:file "proxy" :depends-on ("glib")) + (:file "gtype" :depends-on ("proxy")) + (:file "gboxed" :depends-on ("gtype")) + (: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" "gtype" "gparam" "gcallback" "gobject"))) - :depends-on (tools)) + :depends-on + ("gutils" "glib" "proxy" "gboxed" "gtype" "gparam" "gcallback" + "genums" "gobject"))) + :depends-on (tools "pcl")) (:file "gdkglue" :source-pathname "gdk;" :binary-pathname "gdk;" :initially-do (progn - (load-shared-library "libgdk_pixbuf-1.3.so.2") - (load-shared-library "libgdk-x11-1.3.so.2") - ;; Initializing of gdk types is done by gtk, so we - ;; have to load an initialize it at this point + (load-shared-library "libgdk_pixbuf-1.3.so.9") + (load-shared-library "libgdk-x11-1.3.so.9" + :init "gdk_init" + :prototype '(function + c-call:void (* c-call:int) (* (* (* char)))) + :initargs (list argc argv))) + :language :c + :compiler-options (:cflags ,(pkg-cflags "gtk+-2.0") + :optimize 2)) + (:module gdk + :components + ((:file "gdk-package") + (:file "gdk-export" :depends-on ("gdkevents" "gdktypes" "gdk")) + (:file "gdktypes" :depends-on ("gdk-package")) + (:file "gdkevents" :depends-on ("gdktypes")) + (:file "gdk" :depends-on ("gdkevents"))) + :depends-on (glib "gdkglue")) + (:module pango + :initially-do (load-shared-library "libpango-0.20.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.2" + "libgtk-x11-1.3.so.9" :init "gtk_init" :prototype '(function c-call:void @@ -59,37 +102,21 @@ alien:system-area-pointer) :initargs (list (system:int-sap 0) (system:int-sap 0)))) :language :c - :compiler-options (:cflags ,(configure-cflags "gtk-config-2.0") - :optimize 2)) - (:module gdk - :components - ((:file "gdk-package") - (:file "gdk-export" :depends-on ("gdkenums" "gdktypes" "gdk")) - (:file "gdkenums" :depends-on ("gdk-package")) - (:file "gdktypes" :depends-on ("gdkenums")) - (:file "gdk" :depends-on ("gdktypes"))) - :depends-on (glib "gdkglue")) - (:file "gtkglue" - :source-pathname "gtk;" - :binary-pathname "gtk;" - :language :c - :compiler-options (:cflags ,(configure-cflags "gtk-config-2.0") + :compiler-options (:cflags ,(pkg-cflags "gtk+-2.0") :optimize 2 :definitions (#+cmu CMUCL) :include-paths ("/usr/lib/cmucl"))) (:module gtk :components ((:file "gtk-package") - (:file "gtk-export" :depends-on ("gtkenums" "gtktypes" "gtk")) + (:file "gtk-export" :depends-on ("gtktypes" "gtk")) (:file "gtkobject" :depends-on ("gtk-package")) - (:file "gtkenums" :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 "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")))))