On Thu, 2007-03-29 at 22:42 -0400, Allin Cottrell wrote:
> Does anyone have expertise/recommendations to share, on the 
> subject of compiling a GTK app on x86 Linux for the 
> powerpc-apple-darwin target?
> 
> I'm familiar with the linux -> win32 cross.  This is relatively 
> easy since mingw makes the win32 API available in a single 
> package, and Tor Lillqvist makes available the GTK dev material 
> for win32, plus various dependencies, also nicely packaged.
> 
> I'm wondering if tarring up all the GTK+ stuff from a fink 
> installation on OS X, and dumping it into a suitable directory on 
> Linux, is going to get me anywhere (having built a suitable 
> binutils and cross-gcc first, of course).

First, see http://ranger.befunk.com/fink/darwin-cross/ .  To build
useful exes, though, you have to populate the cross environment with
headers, libraries, and frameworks from the real OS X box.  It's a bit
tedious but doable.  Here are some tips:

- Place any .framework folders in the lib folder of the cross
environment.
- symlink any "Include" directories inside the frameworks to the include
folder, but without the .framwork extension. In otherwords, symlink
$CROSSROOT/lib/fooBar.framework/Headers to $CROSSROOT/include/fooBar
- You'll have to go through each dylib and use the otool and
install_name_tool command to find and fixup the linker paths to match
your cross environment's directory structure.  For example, many dylibs
want to link against /usr/lib/libSystem.B.dylib.  You'll have to use
install_name_tool to change that
to /path/to/cross/lib/libSystem.B.dylib.  This does not affect your exes
at all, unless you bundled a library with the exe, but then you'll want
to use install_name_tool anyway to adjust the paths to be relative to
the app bundle itself.  For more information on this in general, see the
following information that applies to more than just Qt:
http://doc.trolltech.com/4.2/deployment-mac.html


Right now I only have my OS X 10.3 PPC cross environment populated.  I
use it to, ahem, build Qt apps (app bundles and all) for OS X 10.3 or
later from my Linux box.  

I have some scripts I used to do the fixups, which I may be able to
e-mail to you.  I cannot offer the cross environment for download
anywhere because it contains actual apple libraries (the OS X runtime
libraries and frameworks) that cannot be distributed.  They'd have to
come from your own licensed copy of OS X.


I don't think it's currently possible to cross-compile GTK itself for
Quartz (you can for X11, though), but once GTK is built, it's just a
matter of transferring the headers, libraries, and frameworks to the
linux environment.

Michael


> 
> Allin Cottrell
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
> 

_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to