Gtk OSX Using imendio script

From GCompris
Jump to: navigation, search

Universal binaries

  • add -arch ppc -arch i386 to CFLAGS and LDFLAGS.
  • does not work with standard autoconf/automake way. Needs to add --disable-dependency-tracking to configure flags.
  • all libs (gtk and others) needs to be universal too.
  • needs to redo a clean build.
  • add -arch ppc -arch i386 to ${PREFIX}/bin/libtool in two places, after -dynamiclib.


  • error with nmedit for arch ppc.
  • suppress png_pass_width from libpng.sym


  • detection of float words endianess fails.
  • add ax_cv_c_float_words_bigendian=no into at cairo options.


  • fails because intl shared lib is linked only with i386.
  • hack : edit libtool (3 in gettext) and add -arch ppc -arch i386 at dynamiclib creation


  • same hack as in gettext


  • copy ${PREFIX}/bin/libtool in buil/unix/libtool


  • copy ${PREFIX}/bin/libtool in buil/unix/libtool
  • pass CC=gcc -arch i386 -arch ppc in the Makefile

Imendio port of Gtk on quartz

warning: the name of the script is now gtk-osx-build and not


I have edited the script to set the prefix:

export PREFIX=${PREFIX-~/opt/gtk}

export PYTHONPATH=$PREFIX/lib/python2.3/site-packages:$PREFIX/lib/python2.3/site-packages/gtk-2.0

all the --prefix below are related to this one

Building Gtk

Nothing to comment.

./ bootstrapping

./ build

Building python modules

./ build python

  • error at first run (files exist at install). Clean at second run. strange.
  • pygobject and pygtk needs manuel suppress of docs subdir in Known problem.

Building GCompris

Need to be inside the gtk-osx environnement . Run ./ shell.

The right compilation command looks like that:

GMSGFMT=/Users/yves/opt/gtk/bin/msgfmt PKG_CONFIG_PATH=/usr/lib/pkgconfig/ ./ --disable-gtk-doc --enable-shared --prefix=/Users/yves/opt/gtk/

  • GMSGFMT is becuse there is a detection error. I don't know why.
  • PKG_CONFIG_PATH is to use OSX versions of libxml2 and sqlite3.

If all the dependants libs (see below) are installed detected that should give you a working GCompris.

Others dependancies

We should make our own version of he script adding libart_lgpl, libgnomecanvas and pysqlite2.

SDL and SDL_mixer

I have used officials OSX frameworks. The SDL_mixer one seems broken, it does not use #include <SDL/SDL.h> way to wall SDL header. I have modified it manually.


This lib is needed for libgnomecanvas.

  • get from svn:

svn co libart_lgpl

  • configure:

./ --disable-gtk-doc --enable-shared --prefix=/Users/yves/opt/gtk/

  • then make and make install as usual.


This lib is needed for libgnomecanvas.

  • get from svn:

svn co libglade

  • configure (needs OSX libxml2):

PKG_CONFIG_PATH=/usr/lib/pkgconfig/ ./ --disable-gtk-doc --enable-shared --prefix=/Users/yves/opt/gtk/

  • then make and make install as usual.


  • get from svn:

svn co libgnomecanvas

  • configure (needs libxml2 because of libglade ?):

PKG_CONFIG_PATH=/usr/lib/pkgconfig/ ./ --disable-gtk-doc --enable-shared --prefix=/Users/yves/opt/gtk/

  • then make and make install as usual.


is included, but without pkgconfig file, into MacOSX.

I have just added a file /usr/lib/pkgconfig/sqlite3.pc like that:

# Package Information for pkg-config


Name: SQLite
Description: SQL database engine
Version: 3.1.3
Libs: -L${libdir} -lsqlite3
Cflags: -I${includedir}



error: static declaration of 'input_thread' follows non-static declaration
common.h:719: error: previous declaration of 'input_thread' was here

Solution is here: Change line 95 in src/input.c

-static pthread_t input_thread;
+pthread_t input_thread;
  • then make and make install as usual.