tags:

views:

218

answers:

3

Before you ask, yes, I have a very good reason for wanting something to run on 10.3. It's a very small in-house project that must run on a very important person's machine, which cannot be upgraded for a very good reason. =)

The 10.6 DVD doesn't seem to offer an option to install the 10.3 SDK, only 10.4+. I also can't seem to find it on Apples website.

I found this tip about how to install it on 10.5, via the Xcode optional installs, but that doesn't seem to be the case for 10.6? http://www.cocoabuilder.com/archive/cocoa/201508-10-3-9-sdk-with-xcode-2-5-on-leopard.html

Is it incompatible, or just not offered because it's so old? Must I use an earlier version of Xcode? Can I just try to install it via a <10.6 DVD?

A: 

It may be that the 10.3 SDK isn’t supported on 10.6 because 10.6 is intel-only. Also, 10.3 doesn’t support intel. Remember that 10.4 was the first OS to support intel, which is why that’d be the earliest OS supported on 10.6. However, I could be wrong.

oneinfiniteloop
You can still build for PowerPC Macs, and even build PowerPC-only software, in Snow Leopard.
Peter Hosey
Cross-compilation?...
AriX
+3  A: 

If the 10.3 system is running 10.3.9, you may be able to use the optional 10.4u SDK for your build on 10.6 by setting the deployment target to 10.3 and sticking to gcc-4.0, rather than gcc-4.2, the 10.6 default. The python.org installers for OS X are intended to be built that way, that is, one executable that works on 10.3.9 through 10.6 (although, at the moment, there are still a few problems with building all variants on 10.6 so 10.5 is still used). Also the python builds are primarily using Carbon frameworks rather than Cocoa and they do not use Xcode to manage the building of the product. If you can't get Xcode to do it directly, you might be able to build from the command line.

export MACOSX_DEPLOYMENT_TARGET=10.3
/usr/bin/gcc-4.0 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc ...
Ned Deily
Thanks! I got it to work via Xcode.
zekel
+5  A: 

You don't need the Mac OS X 10.3 SDK to build for Mac OS X 10.3. Just install the optional Mac OS X 10.4 (Universal) SDK, then:

  • Set your Base SDK to the Mac OS X 10.4 (Universal) SDK
  • Set your Compiler Version to GCC 4.0
  • Set your Mac OS X Deployment Target to Mac OS X 10.3 for the PowerPC architecture (using build setting conditions)
  • Carefully avoid any API that isn't on Mac OS X 10.3

This should be sufficient for building a Mac OS X application that will run on Mac OS X 10.3.9, even on Snow Leopard.

The 10.3.9 version number is important; if you're using any C++ in this application, Mac OS X 10.3.9 is the first version (and the only version of 10.3) that includes the Standard C++ Library in shared library form, which is required for using GCC 4.0 or later. Otherwise you'd have to use GCC 3.3, which is neither included nor supported with Xcode 3.2 on Snow Leopard.

On the other hand, C and Objective-C code may even run on earlier releases of Mac OS X 10.3. I can't think of a reason it wouldn't, but I haven't tried it myself. Even people sticking with a 6-year-old version of Mac OS X will use the most recent version of it, right?

Chris Hanson
It worked! Question: is there specifically a 10.4 Universal SDK, or do you set the Base SDK to 10.4 and the Architecture to 32-bit universal?
zekel
The traditional name of the Mac OS X 10.4 SDK that everyone uses is "Mac OS X 10.4 (Universal)" because it supports building for both Intel and PowerPC; the orginal Mac OS X 10.4 SDK that came with Tiger only supported PowerPC, because the Intel-based Macs weren't announced yet.Set your Base SDK to 10.4
Chris Hanson