[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Cross Compiling for OS X?
From: |
address@hidden |
Subject: |
Re: Cross Compiling for OS X? |
Date: |
Sat, 3 May 2008 02:26:27 -0700 (PDT) |
User-agent: |
G2/1.0 |
After thinking a little and taking into account that essentially the
same question was asked twice this week, I have thought to write some
simple FAQ:
1. I have a GNUstep source running on Linux/GNUstep and want the same
application to run on OSX
You have several options - more or less complex.
a) Copy source files to OSX
Add a wrapping Xcode project (in addition to the GNUstep makefile) and
configure it to compile directly on OSX for OSX using the OSX Cocoa
frameworks. You can share the sources e.g. through SVN. There is no
problem having GNUmakefiles and some .xcodeproj in the same source
code directory.
Examples: SWK Browser from the GNUstep SWK project, DataBuilder from
GSCoreData (look into the sources at www.gna.org)
Development is done by either working on Linux and using GORM/Project
Center and compiling for Linux. or on OSX opening the project in
Xcode. The only thing to keep in mind is that you also update the
Xcode project or the GNUmakefile if you add source files or resources.
The GNUstep .app bundle is different and runs on Linux only. The
OSX .app bundle runs only on OSX, i.e. there is no single bundle that
covers all architectures (unless you do some additional tricks).
b) Install GNUstep on OSX using MacPorts.
Then, you can set up an identical build environment on both machines.
The drawback is that you don't have a "native" OSX application which
you can easily launch by a double-click on the .app icon.
c) Real cross-compiling
This means that you have a gcc version on your Linux machine that
emits executables that run on OSX. Unfortunately, OSX uses MACH-O
binaries and building a cross-compiling gcc is very tricky.
So I would not consider this as a reasonable option.
2. I have an Xcode project and want to run on Linux
a) your target machine has a compiler
Here, you have to check that you are not using too specific
frameworks. Then, add a GNUmakefile. Copy the files to your Linux
system and run the GNUstep makefile.
b) your target machine is an embedded system
In this case, you need a cross-compiler on the build host. This can be
a full Linux machine or a OSX machine (but it is more difficult to get
a working cross-compiler running on OSX).
I hope this helps to clarify things a little. If you have more
comments, hints, tricks&tips, we can move and merge this into the
Wiki.
-- hns
- Re: Cross Compiling for OS X?, TMC, 2008/05/02
- Re: Cross Compiling for OS X?, Blake Nicholson, 2008/05/03
- Re: Cross Compiling for OS X?, Nicolas Roard, 2008/05/04
- Re: Cross Compiling for OS X?, Tim McIntosh, 2008/05/04
- Re: Cross Compiling for OS X?, Blake Nicholson, 2008/05/04
- Re: Cross Compiling for OS X?, Nicola Pero, 2008/05/05