Re: cross-compiling a GTK app, linux - darwin

2007-03-30 Thread Allin Cottrell
On Thu, 29 Mar 2007, Michael Torrie wrote:

 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...

Thanks very much.  Yes, it does look doable -- on a day when one 
is feeling strong!

--
Allin Cottrell
Department of Economics
Wake Forest University, NC
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: cross-compiling a GTK app, linux - darwin

2007-03-29 Thread Michael Torrie
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