To compile Gtk-Server on MacOSX you will need:
If you haven't already done you should install the gtk libraries and headers with: (NB: the following output appears only if you have already installer the gtk libraries and headers)
$ sudo apt-get install gtk+2 gtk+2-dev Reading Package Lists... Done Building Dependency Tree... Done Sorry, gtk+2 is already the newest version. Sorry, gtk+2-dev is already the newest version. 0 packages upgraded, 0 newly installed, 0 to remove and 22 not upgraded.
Now you should uncompress the libffi source package with: (please correct the source package effective location)
$ tar xvzf libffi-src.tar.gz libffi-src/ libffi-src/CVS/ libffi-src/CVS/Root libffi-src/CVS/Repository libffi-src/CVS/Entries ..... more output here ..... $
Now you should enter in the created directory and start the configure script with:
$ cd libffi-src $ ./configure --with-target-subdir=. ..... lot of output here ..... updating cache ./config.cache creating ./config.status creating include/Makefile creating testsuite/Makefile creating include/ffi.h creating Makefile creating fficonfig.h fficonfig.h unchanged Adding multilib support to Makefile in . with_multisubdir= $
And now you can issue make
$ make ..... lot out output here ..... $
And now you should make install as root
$ sudo make install
Uncompress the gtk-server source package: (please correct the sourcepackage location)
$ tar xvzf gtk-server-2.0.12.tar.gz ..... lots of output here .....
Now you should configure the gtk-server package with:
$ cd gtk-server-2.0.12/ $ ./configure --with-gtk2 ..... lots of output here ..... checking for strstr... yes configure: creating ./config.status config.status: creating Makefile config.status: creating config.h $
But remember: the FIFO protocol with gtk-server under MacOSX probably does not work and is in testing phase.
And now you can compile with:
$ make gcc -Wall -pedantic -I/sw/include/gtk-2.0 -I/sw/lib/gtk-2.0/include -I/sw/include/atk-1.0 -I/sw/include/pango-1.0 -I/usr/X11R6/include -I/usr/X11R6/include/freetype2 -I/sw/include/glib-2.0 -I/sw/lib/glib-2.0/include -DHAVE_CONFIG_H -DLOCALCFG=\"/usr/local/etc/gtk-server.cfg\" -c -o gtk-server.o gtk-server.c gcc -o gtk-server gtk-server.o -lffi -L/sw/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv ld: warning multiple definitions of symbol _locale_charset /sw/lib/libiconv.dylib(localcharset.o) definition of _locale_charset /sw/lib/libintl.dylib(localcharset.lo) definition of _locale_charset ld: warning suggest use of -bind_at_load, as lazy binding may result in errors or different symbols being used symbol _locale_charset used from dynamic library /sw/lib/libiconv.dylib(localcharset.o) not from earlier dynamic library /sw/lib/libintl.1.dylib(localcharset.lo) strip gtk-server $And now, if you want, you can:
$ sudo make install
Now you should change your gtk-server.cfg file to reflect the MacOSX configuration. You should only change the library names (in the head of the configuration file) to reflect the library extension on MacOSX.
As esample my gtk-server.cfg file in MacOSX starts with:
# Config file containing API calls used by the GTK-server. # # Do you want to use more GTK functions? Please consult the GTK documenation # at http://www.gtk.org/api/ #--------------------------------------------------------------------------- # Only when the gtk-server binary does not contain the GTK libs, this # setting must be changed. # # For Linux uncomment these: GTK_LIB_NAME = libgtk-x11-2.0.dylib GDK_LIB_NAME = libgdk-x11-2.0.dylib GLIB_LIB_NAME = libglib-2.0.dylib PIXBUF_LIB_NAME = libgdk_pixbuf_xlib.dylib #
Instead of:
# Config file containing API calls used by the GTK-server. # # Do you want to use more GTK functions? Please consult the GTK documenation # at http://www.gtk.org/api/ #--------------------------------------------------------------------------- # Only when the gtk-server binary does not contain the GTK libs, this # setting must be changed. # # For Linux uncomment these: GTK_LIB_NAME = libgtk-x11-2.0.so GDK_LIB_NAME = libgdk-x11-2.0.so GLIB_LIB_NAME = libglib-2.0.so PIXBUF_LIB_NAME = libgdk_pixbuf_xlib.so
I hope you have completed all the steps.
Now you should only put some environment variables to make gtk-server work correctly. As an esample you should run something similiar to this bash script before using gtk-server.
# Gtk-server export GTK_SERVER_CONFIG=/Users/leonardo/gtk-server-2.0.12/gtk-server.cfg export PATH=$PATH:$HOME/gtk-server-2.0.12 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/local/lib