GTK for the iPhone?  Sure thing :-) 


So we decided to take it to the next level... GTK native?  Sure!


You just know that GIMP is coming next :)))


Well seems that it is kinda sorta possible:  




So now the nitty gritty!



imac /gtk+-2.10.14/ ls -ltra /usr/local/arm-apple-darwin/lib/ | tail -15
lrwxr-xr-x     1 root    wheel       30 Jan  4 19:52 libgdk-x11-2.0.dylib -> libgdk-x11-2.0.0.1000.14.dylib
lrwxr-xr-x     1 root    wheel       30 Jan  4 19:52 libgdk-x11-2.0.0.dylib -> libgdk-x11-2.0.0.1000.14.dylib
-rwxr-xr-x     1 root    wheel   829068 Jan  4 19:52 libgdk-x11-2.0.0.1000.14.dylib
drwxr-xr-x     4 root    wheel      136 Jan  4 19:52 gtk-2.0
-rw-r--r--     1 root    wheel      866 Jan  4 19:53 libgdk-x11-2.0.la
lrwxr-xr-x     1 root    wheel       30 Jan  4 19:53 libgtk-x11-2.0.dylib -> libgtk-x11-2.0.0.1000.14.dylib
lrwxr-xr-x     1 root    wheel       30 Jan  4 19:53 libgtk-x11-2.0.0.dylib -> libgtk-x11-2.0.0.1000.14.dylib
-rwxr-xr-x     1 root    wheel  5399012 Jan  4 19:53 libgtk-x11-2.0.0.1000.14.dylib
-rw-r--r--     1 root    wheel      866 Jan  4 19:53 libgtk-x11-2.0.la
-rwxr-xr-x     1 root    wheel     1697 Jan  4 19:53 libgdk_pixbuf_xlib-2.0.la
lrwxr-xr-x     1 root    wheel       38 Jan  4 19:53 libgdk_pixbuf_xlib-2.0.dylib -> libgdk_pixbuf_xlib-2.0.0.1000.14.dylib
lrwxr-xr-x     1 root    wheel       38 Jan  4 19:53 libgdk_pixbuf_xlib-2.0.0.dylib -> libgdk_pixbuf_xlib-2.0.0.1000.14.dylib
-rwxr-xr-x     1 root    wheel    94872 Jan  4 19:53 libgdk_pixbuf_xlib-2.0.0.1000.14.dylib


imac /gtk+-2.10.14/ file /usr/local/arm-apple-darwin/bin/gtk-demo 
/usr/local/arm-apple-darwin/bin/gtk-demo: Mach-O executable acorn

We needed "some" fonts:

imac /gtk+-2.10.14/ scp -r /usr/X11R6/lib/X11/fonts/75dpi root@iphone:/usr/X11R6/lib/X11/fonts/

and:

imac /~/ scp -r /usr/local/arm-apple-darwin//lib/pango/ root@iphone:/usr/local/arm-apple-darwin/lib/
pango-basic-x.a                                                                        100%   81KB  80.8KB/s   00:00    

# ./pango-querymodules > /usr/local/arm-apple-darwin//etc/pango/pango.modules

and then:

# /var/root/gtk-query-immodules-2.0 > /usr/local/arm-apple-darwin//etc/gtk-2.0/gdk-pixbuf.loaders


And then!  RESULT!

Easy as pie :)

Well distribution of this will take a while... check out this native OTOOL for GTK:

# uname -m
iPhone1,1

# file bin/gtk-demo 
bin/gtk-demo: Mach-O executable acorn
# /var/root/otool -L bin/gtk-demo
bin/gtk-demo:
        /usr/local/arm-apple-darwin//lib/libgdk_pixbuf-2.0.0.dylib (compatibility version 1001.0.0, current version 1001.14.0)
        /usr/local/arm-apple-darwin//lib/libgdk-x11-2.0.0.dylib (compatibility version 1001.0.0, current version 1001.14.0)
        /usr/local/arm-apple-darwin//lib/libgtk-x11-2.0.0.dylib (compatibility version 1001.0.0, current version 1001.14.0)
        /usr/local/arm-apple-darwin//lib/libXext.6.dylib (compatibility version 11.0.0, current version 11.0.0)
        /usr/local/arm-apple-darwin//lib/libpangocairo-1.0.0.dylib (compatibility version 1901.0.0, current version 1901.0.0)
        /usr/local/arm-apple-darwin//lib/libpangoft2-1.0.0.dylib (compatibility version 1901.0.0, current version 1901.0.0)
        /usr/local/arm-apple-darwin//lib/libpango-1.0.0.dylib (compatibility version 1901.0.0, current version 1901.0.0)
        /usr/local/arm-apple-darwin//lib/libatk-1.0.0.dylib (compatibility version 902.0.0, current version 902.0.0)
        /usr/local/arm-apple-darwin/lib/libgobject-2.0.0.dylib (compatibility version 1401.0.0, current version 1401.0.0)
        /usr/local/arm-apple-darwin/lib/libgmodule-2.0.0.dylib (compatibility version 1401.0.0, current version 1401.0.0)
        /usr/local/arm-apple-darwin/lib/libglib-2.0.0.dylib (compatibility version 1401.0.0, current version 1401.0.0)
        /usr/local/arm-apple-darwin/lib/libintl.8.dylib (compatibility version 9.0.0, current version 9.1.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 94.0.0)
        /usr/local/arm-apple-darwin//lib/libcairo.2.dylib (compatibility version 12.0.0, current version 12.3.0)
        /usr/local/arm-apple-darwin//lib/libfontconfig.1.dylib (compatibility version 5.0.0, current version 5.0.0)
        /usr/lib/libiconv.2.dylib (compatibility version 5.0.0, current version 5.0.0)
        /usr/local/arm-apple-darwin//lib/libfreetype.6.dylib (compatibility version 10.0.0, current version 10.16.0)
        /usr/local/arm-apple-darwin/lib/libexpat.1.dylib (compatibility version 7.0.0, current version 7.2.0)
        /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
        /usr/local/arm-apple-darwin//lib/libXrender.1.dylib (compatibility version 5.0.0, current version 5.0.0)
        /usr/local/arm-apple-darwin/lib/libX11.6.dylib (compatibility version 9.0.0, current version 9.0.0)
        /usr/local/arm-apple-darwin//lib/libXdmcp.6.dylib (compatibility version 7.0.0, current version 7.0.0)
        /usr/local/arm-apple-darwin/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)


Well so let's try and copy them [all native on the iphone of course :)]:

# tcsh

# foreach h (`/var/root/otool -L bin/gtk-demo | awk '{print $1}'`)
foreach? cp $h ./lib/
foreach? end
cp: cannot stat `bin/gtk-demo:': No such file or directory
# 

now to remove the apple specials from there:

# rm libSystem.B.dylib libgcc_s.1.dylib libz.1.dylib 


ok so the tar file above should be good to go - it also has some significant 
hand compiled goodies in there:

# tar zcvf gtk.0.1.tgz gtk
gtk/
gtk/bin/
gtk/bin/gtk-demo
gtk/bin/gtk-query-immodules-2.0
gtk/bin/gtk-update-icon-cache
gtk/lib/
gtk/lib/libX11.6.dylib
gtk/lib/libXdmcp.6.dylib
gtk/lib/libXext.6.dylib
gtk/lib/libXrender.1.dylib
gtk/lib/libatk-1.0.0.dylib
gtk/lib/libcairo.2.dylib
gtk/lib/libexpat.1.dylib
gtk/lib/libfontconfig.1.dylib
gtk/lib/libfreetype.6.dylib
gtk/lib/libgdk-x11-2.0.0.dylib
gtk/lib/libgdk_pixbuf-2.0.0.dylib
gtk/lib/libglib-2.0.0.dylib
gtk/lib/libgmodule-2.0.0.dylib
gtk/lib/libgobject-2.0.0.dylib
gtk/lib/libgthread-2.0.0.1400.0.dylib
gtk/lib/libgthread-2.0.0.dylib
gtk/lib/libgthread-2.0.dylib
gtk/lib/libgtk-x11-2.0.0.1000.14.dylib
gtk/lib/libgtk-x11-2.0.0.dylib
gtk/lib/libgtk-x11-2.0.dylib
gtk/lib/libiconv.2.dylib
gtk/lib/libintl.8.dylib
gtk/lib/libpango-1.0.0.dylib
gtk/lib/libpangocairo-1.0.0.dylib
gtk/lib/libpangoft2-1.0.0.dylib


PARTY TIME!