Is it possible to develop PowerPC applications on OS X Yosemite? - xcode

I have an iMac g3 running Tiger 10.4.11. I'm really interested in developing applications for it, but I would like to do all of the programming on my Macbook Pro(running Yosemite).
Is it possible to build an application on Yosemite that will run on PowerPC macs? I've tried downloading xCode 3.1.4, but it isn't supported on Yosemite.

Yes, you can. What you need to do is restore PowerPC support in your version of Xcode like described here: https://github.com/devernay/xcodelegacy

I'd imagine you cannot. Apple stripped PowerPC emulation from it's latest versions of OSX so if you can't run the apps it's only logical to think that you couldn't develop or compile them.
As far as I'm aware the latest version of OSX that can run PPC apps is Snow Leopard, although I cannot comment on Xcode support for developing for PowerPC architectures.
Yosemite as far as I'm aware definitely will not serve as a platform to develop PowerPC apps.

Related

Is an app created in Qt on Mavericks executable on other osx

I usually use a computer on snow leopard to create apps compatible upwards but I'm on holidays at the moment and only have my macbook pro with Mavericks on it.
I need to send an app to a customer who's on snow leopard (or lion)
Is this possible? Can I create a compatible app building it on Mavericks.
I'm not an expert on building on Mac, but I believe it is/can be. If the target computer also has Qt 5, then it should work.
There used to be "Universal" binaries that would work with both Intel based Macs and with Power PC based macs... I've seen that break on my Mavericks install for some things that were built with a "Universal" binary. It might be just a problem with that one or two programs I was running.
The default compiler for Mavericks and Qt 5 is clang64, and so it should work on any 64 bit Intel based mac. Make sure you are using the commandline deployment tool for qt mac deployment, so that all the dylib's get included in your app package.
Hope that helps.

Simulate run on older OS X version

How can simulate a run on a older OS X version ?
Right now my app works on 10.7 and 10.8 but I want to make it compatible with 10.6. Since I'm using some new apis I'm still compiling with the 10.8 base SDK, I can only change the deployment target.
So on my OS X 10.8, how can I simulate a run on OS X 10.6 ? (If it's possible)
Thanks
TheZ mentions virtual machines. Lots of hoops to jump through with licensing.
My personal "path of least resistance" was to use an old PPC Mac Mini and an almost-as-old intel-based. PPC runs 10.4 for old app testing; Intel mini boots various OS versions with which to test. All install images are disposable and can be restored from a network volume for a clean environment no matter what I do to it.
If you don't care about PPC, then just get a used Intel Mac Mini, partition it for the older OS versions and use it exclusively as a test environment.
2022 Update: Apple has relaxed their stance on virtualization. Today I use VMWare (Parallels works too).

How do I add Leopard and Snow Leopard support to a Lion Cocoa App?

I have developed a Cocoa App on Lion and now I would like to add compatibility with Leopard and Snow Leopard.
I tried to set the development target to 10.5 but it still has crash problems on Leopard and Snow Leopard.
I tried also to open the project with old versions of Xcode, but I get hundreds of compile errors (I guess it's because I can't compile the program with the old Mac OS SDK)
Do you have any advice about solving the retro-compatibility problems of Cocoa Apps?
I think it's generally not a very good idea to develop for the latest OS then try to support older OSes at the last minute. If you've used any APIs that were introduced in an OS later than the oldest you're trying to support, you'll have to rewrite code to avoid using those APIs. It's generally not worth the trouble.
That said, there's no secret to supporting older OSes. You just need to make sure that you only use APIs (classes, methods, functions) that are available on the oldest OS you're trying to support. You'll notice when looking at the documentation that for each method, under "Availability", it will tell you which versions of the OS include that method. Something like:
Availability
Available in Mac OS X v10.6 and later.
Assuming you don't use any APIs not available on an OS version you're targeting, all you need to do is set the deployment target to the lowest OS you're targeting, and build. You will of course also want to test thoroughly on each OS version you're supporting.
Your question would be easier to answer in more detail if you elaborated on the "crash problems" you're seeing on Leopard and Snow Leopard.
First, install the 10.5 SDK on your Mac. This may not be necessary, but do it anyway. You can find instructions on the Internet. Keep in mind that compiling with the 10.5 SDK will ensure compatibility, but you won't be able to use newer OS X features unless you load them dynamically.
Second, go into your .xib files and on the File Properties tab (first notch in the Inspector pane) disable auto layout and set the deployment target to 10.5.

OpenCL support on Leopard

I want to use OpenCL in my software but I am running Leopard.
I will probably update to Snow Leopard later. In the mean time I would like to get started with OpenCL in Leopard. Setting up on 10.5 is confusing: most SDKs and articles assume that you must be using Snow Leopard. Searching for "Using OpenCL on Leopard" is completely useless, as you would expect.
I downloaded the cuda toolkit, devdriver and gpucomputing SDK from nvidia but the examples won't compile because OpenCL/opencl.h is not found. The OpenCL release notes don't mention MacOSX so again I think this is assuming that all Mac users are running Snow Leopard.
Where can I find OpenCL includes and libraries for Mac OSX 10.5 ?
Or, is this just a waste of time and I should go and get Snow Leopard ASAP ?
After upgrading to Snow Leopard I would like my software to support Leopard. Is this possible ?
I believe the headers necessary to compile OpenCL code are included with the Nvidia GPU Computing SDK (path is something like NVIDIA_GPU_Computing_SDK/OpenCL/common/inc/CL). You could copy or link these into the directory where your compiler looks for includes (/usr/include/CL/ on Linux, not sure for Mac). Alternatively, you could get the headers from khronos.org/registry/cl. The libraries themselves should be included with either the SDK or the cuda toolkit (I don't recall which).
You will need to upgrade to Snow Leopard. Also note that OpenCL really isn't ready for "prime time" software development on any platform yet. CUDA is much more mature than OpenCL and you should consider using CUDA rather than OpenCL if you want to develop and deploy GPGPU-dependent software in the near future.

Is there a way to get/use the OS X 10.3 Cocoa SDK on a 10.6 machine?

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?
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?
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 ...
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.

Resources