« Why does this make me laugh? | Main | I am not Australian, but I like the country. I promise »
January 14, 2006
Growl Universal Binary Beta 1
So now that the ia-32 macs are here, Growl needs to become Universal Binary. I kinda want an intel mac, I kinda don't, but I'm happy with my current iBook that Apple so generously gave to me last year.
Anyhow, back to the Universal Binary stuffs. For those not familiar with it, basically this is making a binary that will work on 2 cpu architectures, i386 and ppc. You can make one to work on ppc64 as well, but that's pointless for Growl.
Most of the process of making the ub was easy. I even made a nice text file I used a few times
Steps to making Universal Binary Nirvana on an existing project1) Launch Xcode
2) Get info on the main project
3) Go to build tab
4) Ensure it is on the All Configurations drop down selection for Configurations, and Collection is set to All Settings
5) Search for Architectures, edit this setting, and select both PPC and Intel
6) Try to build in Deployment or Release. Leave the inspector window for the main project open.
7) You will see a new error for Undefined symbols. This is because you are not linking to the 10.4u framework.
8) SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk needs to be put in.
9) If you plan to support or even just not crash on 10.2, you need to set all of these things:
ARCHS = ppc i386
SEPARATE_STRIP = YES
GCC_VERSION_i386 = 4.0
GCC_VERSION_ppc = 3.3
MACOSX_DEPLOYMENT_TARGET_i386 = 10.4
MACOSX_DEPLOYMENT_TARGET_ppc = 10.2
SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk
SDKROOT_ppc = /Developer/SDKs/MacOSX10.2.8.sdk
SDKROOT_ppc = /Developer/SDKs/MacOSX10.3.9.sdkThe only settings you do not need to add is ARCHS and SEPARATE_STRIP
This worked for most apps. It actually unconvered a problem in GrowlTunes, which was really easy to fix once I found the right docs.
Anyhow, here's the beta. If you have a chance, give it a shot, it should work. It's even built with xcode 2.2.1 and my shiny new 1 gb ram schtick!