Cleanup in callback marshalers
[clg] / clg.system
index b72edc1..eeafe11 100644 (file)
 (defvar *gtk-library-path* (pkg-variable "gtk+-2.0" "libdir"))
 (defvar *cmucl-include-path* (ext:unix-namestring "target:lisp"))
 
-;; A hack to get around a bug in gdk's init code
-(defvar argc (make-alien c-call:int))
-(defvar progname (make-alien c-call:char))
-(defvar argv0 (make-alien (* c-call:char)))
-(defvar argv (make-alien (* (* c-call:char))))
-(setf (deref argc) 1)
-(setf (deref progname) 0)
-(setf (deref argv0) progname)
-(setf (deref argv) argv0)
-
 ;; Without this, MAKE uses "CLG:glib;.err" as a namestring, which fails.
 ;; TODO: Find and fix the bug, then remove this.
 (setq mk::*cmu-errors-to-file* nil)
  `(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"))
+      (pkg-exists-p "glib-2.0" :atleast-version "1.3.12")
+      (pkg-exists-p "pango" :atleast-version "0.23")
+      (pkg-exists-p "atk" :atleast-version "0.8")
+      (pkg-exists-p "gtk+-2.0" :atleast-version "1.3.12"))
     :source-pathname "clg:"
     :binary-pathname "clg:"
     :components
@@ -74,6 +65,7 @@
        (:file "gboxed" :depends-on ("gtype"))
        (:file "genums" :depends-on ("gtype"))
        (:file "gparam" :depends-on ("genums"))
+       (:file "ginterface" :depends-on ("gtype"))
        (:file "gobject" :depends-on ("gparam"))
        (:file "gcallback" :depends-on ("gtype" "gparam" "gobject" "callback"))
        (:file "glib-export"
        (load-shared-library "libgdk-x11-1.3.so"
         :init "gdk_init"
         :prototype '(function
-                     c-call:void (* c-call:int) (* (* (* char))))
-        :initargs (list argc argv)))
+                     c-call:void
+                     system-area-pointer
+                     system-area-pointer)
+        :initargs (list (system:int-sap 0) (system:int-sap 0))))
       :language :c
       :source-extension "c"
       :binary-extension "o"
         (:file "pango" :depends-on ("pango-package"))
         (:file "pango-export" :depends-on ("pango")))
        :depends-on (glib))
+     (:module atk
+      :initially-do (load-shared-library "libatk.so")
+       :components
+       ((:file "atk-package")
+        (:file "atk" :depends-on ("atk-package"))
+        (:file "atk-export" :depends-on ("atk")))
+       :depends-on (glib))
      (:file "gtkglue"
       :source-pathname "gtk;"
       :binary-pathname "gtk;"
        (:file "gtkcontainer" :depends-on ("gtktypes"))
        (:file "gtk" :depends-on ("gtktypes"))
        (:file "gtkutils" :depends-on ("gtk")))
-      :depends-on (glib gdk pango "gtkglue")))))
-
-
-
+      :depends-on (glib gdk pango atk "gtkglue")))))