As long as you set the deployment target correctly for each architecture you want to build for, you shouldn't have a problem at all. Also, I'd recommend 3.2.x over 3.1.x, as I don't remember if 3.1.x can build for x86-64 (of course, since any x86-64 machine can run x86 binaries without a hitch, this shouldn't be that big of a deal).I.M. Weasel wrote:Even though BCrab mentions 3.2.x, im hoping i'll have no problem building for 10.3/10.4 architecture. Of course i'll also recompile MDT Services. I can't recall but I think in my research i found that xcode 4.x wont run on snow leopard (or that you had to use a special version of 4.x to run on snow leopard).
Basically, what I do is as follows (for CrabEmu), using the 10.4u SDK as the base SDK, and using GCC 4.0 as the compiler:
For PowerPC, set the architecture type to "ppc", and the deployment target to Mac OS X 10.3.
For x86, set the deployment target to Mac OS X 10.3 (yes, this seems odd, but it doesn't really make much of a difference in this case).
For x86-64, set the deployment target to Mac OS X 10.6 and set the base SDK to the 10.6 one.
Xcode 3.2.6 has no problem shoving all of that together into one fat binary, and everything seems to work pretty much as intended across all the platforms. As long as you don't use any 10.4 and later APIs, setting the deployment target to 10.3 should make everything work fine on 10.3 and later. In theory, if you don't use any 10.3 APIs, you may be able to set the deployment target to 10.2 and that should work as well. However, you may need to set it to use GCC 3.x to build for 10.2 (I don't really remember, as I dropped CrabEmu's support for 10.2 a few years back). Either way, I'm relatively sure you could probably drop 10.2 support and not really upset anyone anyway. Especially if you're not actually changing anything and adding new functionality -- just point people to the old binary if they really want to use it on 10.2.
Oh, and I personally prefer the way Xcode 3.x works to Xcode 4.x. I was one of those stragglers that stayed behind on Xcode 2.x until I couldn't do so anymore, and I'll probably do the same with 3.x.