Use x86 Boxes to Compile Mac OS X Binaries
IceFox writes "While working on the KDE on Darwin project I have only had one Mac to do development with. At the same time I have been playing around with distcc for Linux/x86 compiling. Combining the two projects I built a Mac OS X cross-compiler (for Linux/x86) and have created the DistccPPCKnoppix distribution. DistccPPCKnoppix is a 46MB Knoppix distribution based on distccKnoppix; with it you can use your extra x86 computers to build Linux/x86 or Mac OS X/PPC binaries. It might not be as shiny as an Xserve cluster, but it is a heck of a lot cheaper."
The reason it's news is that GNU has no support for Mach-O, Apple has their own assembler and linker. Making them work on linux is a real pain in the ass.
WWJD? JWRTFM!!!
But check out this excerpt from gcc's man pages:Aww man...all my moderation's going to be undone in this discussion now. Well, to the person who said something funny up there: Good job.
Hehe I learned my lesson before. I'll be putting the 46MB iso up later tonight, but if someone wants to host it you can e-mail me or im (aim: icefox2) me and I can get you the file.
-Benjamin Meyer
Do you changes clothes while making the "chee-chee-cha-cha-choh" transformation sound?
It's almost compatible already. XCode uses standard GNU gcc, g++, etc. for compiling.
In XCode, the equivalent of a Makefile is called project.pbxproj (it's a text file) and the equivalent of make is a command called pbxbuild.
So everything you need to do is to create the utility that parses project.pbxproj and compiles.
Of course, make with a Makefile works perfectly fine, but XCode doesn't create those files for you.
And one more thing...
.pbproj to Unix Makefile
PBTOMAKE -- Xcode
??
Why not, I hear you ask??
From Apple
She loves me: 09F911029D74E35BD84156C5635688C0 She loves me not: 09F911029D74E35BD84156C5635688BF
Caveats: Xcode's distributed compiling is fantastic. It was an unexpected gift and I know a number of people who have networks to make great use of it. But...
There is latency added to the compile process by having to distribute things out over the network. I think there was an Apple white paper or tech note that talked about these issues in more detail.
It needs a speedy network. Apple engineers recommend Gigabit Ethernet but 100baseT will due in a pinch. They don't see much speed savings over 10BaseT or Airport.
It needs fast processors. G5's are the recommended platform. Be wary of sub-Gigahertz G4's. Forget the G3's.
The distributed compilation feature is a GREAT addition to XCode, but I still see a place for this project among those who are really on a tight budget (like me) but who still want to support Macs when feasible.