Move your application from CodeWarrior to Xcode and be ready for Intel-based Macs. It’s easier than you may think, and this article gets you started.
Move your application from CodeWarrior to Xcode and be ready for Intel-based Macs. It’s easier than you may think, and this article gets you started.
“It’s easier than you may think”
Yeah, right…if you’re dealing with a “Hello, World!” project maybe. A full-sized program with multiple projects and cross-dependencies however can give you days of headaches. Not to mention that Xcode itself is rather slow and is not very good at handling larger projects.
Hate to pee in your wheaties but OS X is built using Xcode. Openstep and NeXTSTEP used Project Builder to build the operating system.
The internal build system for an Operating System being different than an application, one does take into account the tools to build the kernel so on and so forth that are not actually part of Xcode but are custom to Apple, as par for the course.
However, if you think Final Cut Pro or any Apple Development or App specific application to be small then I’d love to see your project.
Hate to pee in your wheaties but OS X is built using Xcode.
Why then can I build the entire Darwin system without Xcode?
Darwin != OS X
Darwin may be the underlying core of OS X, but it doesn’t contain the Cocoa, Carbon and pretty much any other framework that makes OS X function.
“Hate to pee in your wheaties but OS X is built using Xcode. Openstep and NeXTSTEP used Project Builder to build the operating system. ”
Does XCode function without a GUI? If not, and OSX is built on it, where does the GUI come from?
OSX may be made on gcc, but I’m struggling to see how OSX could be built with a tool that requires OSX to run.
[rolls eyes]
How does a compiler work without a host operating system? how does a compiler compile itself?
Good lord, and as for the complaining; does anyone here actually spend the time and update their software? XCode 2.2 is released – along with the updates, GCC 4.0.1 corrects some file bloat which someone here is complaining about.
So before whinge, whine, complain and belly ache; spend a wee bit of time researching whether it has already been corrected via patch or update, becuse shock horror, some companies actually do that! support their own products! ๐
How does a compiler work without a host operating system? how does a compiler compile itself?
I’m not sure exactly what people are debating. There is, indeed, a chicken-and-egg problem, but precisely determining what is possible really needs to be done in light of the evolutionary nature of software.
In theory, an early, not-publicly-released version of XCode could have been written to run on MacOS 9 and used to develop OSX. Newer versions of OSX and XCode could then be developed on older versions of OSX and XCode.
After all, neither the chicken nor the egg just magically came into existence; they each evolved from previous versions of each other. But I have no idea what the real story is behind the development of OSX and XCode.
Edited 2005-11-30 17:04
“After all, neither the chicken nor the egg just magically came into existence; they each evolved from previous versions of each other.”
Sure… this my comment is VERY off-topic but I feel it important to say that your comment is a very darwinistic way of thinking.
I find it interesting that so few are willing to consider the possibility that either the chicken or egg were first created… rather than they being evolved from a lesser being like you suggested.
Creationist theory can be approached just as scientifically as a darwinistic theory. It all boils down to there having to be something that created the objects which set this process into motion. If you accept the notion that the matter simply always was… then you can’t negate the possibility of a being that always was that created these things.
But I digress…
ok, back to your OS discussion.
Edited 2005-11-30 18:07
Actually, the only reason I used the chicken-and-egg analogy was because I thought people would be able to understand what I was talking about.
My analogy is flawed. Inanimate objects and ideas do not “evolve”; they are the result of intelligent (or sometimes not-so-intelligent) design by beings with vastly superior reasoning capabilities. In other words, if we could let a beta CD of Amiga OS 4.0 sit for hundreds of millions of years and later examine it, we would be very surprised if it evolved into the hypothetical “gold” release version.
Darwinistic theory implies that inanimate matter somehow became intelligent and began improving itself. Add a few parts sophistry, ego, and self-deception; beat vigorously for a few hundred million years; and suddenly you’ve got geeks with iPods.
Social debates can be spun ’round and ’round endlessly until everyone’s too dizzy too think straight. I’m so sick of it all that I don’t want to do anything more than work in a few half-hearted digs at the prevailing theories of the day.
For those who worked at NeXT a custom version of Openstep was used to help build up Rhapsody until we transitioned over. That approach was taken for the entire system and its set of tools, etc.
I’m in the process of porting a “vertical market” suite of old software from MPW (!) to XCode. I use CodeWarrior as intermediate for this process that roughly consists of ANSI-C-ification, update to Universal Headers 3.3 and finally Carbonizing before the jump to X can be done.
The switch to Xcode is indeed the easiest part of the work, but I noticed the following:
– Importing does NOT (*) work with the old versions (Pro 5) of Codewarrior that we have. Pro 5.3 is a special version, because it is the latest that can still generate 68K code. Believe it or not, there are still a few 68K machines out there I possibly might have to support. For import to work, you probably want CW Pro 9. The new 10 is newer than the documents, so something might be b0rked. (* edited:) Hmm. Maybe because I just did not have Classic on the G5. Anyway.
– Initially, XCode has a steep learning curve with its stacked compilation flag logic. It can be quite overwhelming. Best is to take one of the sample projects and build up from there. I did so, and in the overall scope of the project it took much less time to just drop in my source files than to figure out what flags to set and what to enter in which .plist file.
– XCode is abysmally slow, compared to CW on 9. (CW on X feels sluggish, too, but at least inherits the fast compiler). Regular parallel CW-on-9 and XCode work would require two machines, where one supports 9 and the other is fast enough for XCode (Dual G5 suggested). You might be lucky with a late model MDD G4 or TiPB to do both. You could maybe get along in Classic by building with your old CW while debugging with a special version of CW Pro 8 from Metrowerks.
– Convert to linefeeds!!! I have had cases where XCode would get line numbers wrong, making the debugger useless. You also want LFs for subversion diffs to work.
That said, once you get the hang, and a very fast machine, XCode is quite pretty – and free, of course. The early versions were a bit flakey, but with 2.1+ it has gained a good amount of solidity, too (if only it was faster than with a snail interpreting java on a slide rule VM).
Rich
Edited 2005-11-30 10:21
Hmmm, Codewarrior 6 Pro does 68000 dev for me. CW 9 doesn’t, but then its running under MacOS X anyway.
The 68000 compiler never went off the radar also, because they used it in the PalmOS version of CW.
> Hmmm, Codewarrior 6 Pro does 68000 dev for me. CW 9 doesn’t, but then its running under MacOS X anyway.
Yes. You’re right. It was the Pascal compiler that disappeared after 5. I mixed that up. Eventually 68K did go though. (I wonder now, and this actually keeps me on topic, whether it would be feasible to do a GCC-68K build of an XCode project, or at least XCode-compliant source)
> The 68000 compiler never went off the radar also, because they used it in the PalmOS version of CW.
Did you know you could run 5.x for Mac, plus a (then?) free dev pack for PalmOS? As a special bonus this package would build Mac-native Palm API apps…
I am dealing with a project with millions lines of code, and i have a very good experience with Xcode. Its fast, very stable, and yes we made the transition from CodeWarrior to Xcode a few months ago, and its was very smooth. Xcode offer a large set of features that help a lot, i give credit to that. Its not a one minute task, sure, but thats not a headache with a clean project. Xcode has grown very well since the first version, it got fast (for example code completion is largely improved in 2.1), stable and very rich featured. The last version 2.1 offers a lot of new improvements and features. Some are aimed to catch up and go beyond some CodeWarrior features (breakpoints actions, conditions and watchpoints, integrated unit testing), some are Xcode only. The new build configurations (a matrix of settings) are very powerful and really simplify the setting of different values for multiple projects or targets independently or accross the sames ones and are very powerful for managing dependencies accross multiple targets. I find it very powerful for very large projects. And a so powerful development environment for free, i can not ask more!!!!
Its like that everything that Apple is saying is marketing, come one, ……you better read the document and stop trolling!!!!
Its fast, very stable, and yes we made the transition from CodeWarrior to Xcode a few months ago, and its was very smooth.
I envy you.
you better read the document and stop trolling!!!!
I wish I were a troll. If I made this up, then Xcode would not abort importing CodeWarrior projects with errors like this:
2005-11-30 10:28:01.885 Xcode[414] CodeWarrior XML export file not generated for the following reason: {
NSAppleScriptErrorBriefMessage = “Can’t make U00abclass ctnrU00bb of alias “stew:dev:BuildAllMac (CW8)ForXcodeExport.mcp” into type alias.”;
NSAppleScriptErrorMessage = “Can’t make U00abclass ctnrU00bb of alias “stew:dev:wxWindows21:BuildAllMac (CW8)ForXcodeExport.mcp” into type alias.”;
NSAppleScriptErrorNumber = -1700;
NSAppleScriptErrorRange = <00000000 00000000 >;
}
If I were making this up, Xcode would resolve three-level dependancies correctly and relink my app.
If I were making this up, I wouldn’t have to wait a minute for Xcode to fully load and parse a preprocessed source file.
If I were making this up, Xcode wouldn’t produce a 450MB binary (debug build) or take twenty minutes to link (release build with dead code stripping).
Reading that document gave me nothing I didn’t learn the hard way a year ago. Boy I wish I were a troll and Xcode was as good as Apple wants me to think it is. Then my life would be a lot easier.
It’s easier than you may think, and this article gets you started.
Of course there is going to be a dedicated team at Redmond trying to figure out how to screw this up.
Present MS Mac apps are built on CW, I wouldn’t trust their first X-Code offerings.
Neither would I trust Adobe’s firsts either, but at least they have a friend in Apple to get over the bumps.
I think Apple is doing a rather fine job of supporting the developer’s transition over to the Mactels. No other company would be able to offer an importer, and “universal binaries” so easily. Do you think Linux or Microsoft could EVER do something like this?
By the time Leopard comes around, the one single OS install disc will boot & install on both PPC and Intel machines. Amazing.
By the time Leopard comes around, the one single OS install disc will boot & install on both PPC and Intel machines. Amazing.
Back in the days, we called that BeOS R3.
I still miss that OS. Too bad Steve and Bill didn’t learn from it.
And in even earlier days, there was an OS named NeXT…
Browser: Links (2.1pre15; FreeBSD 5.3-RELEASE i386; 80×24)
Shipped with two CDs; one for the PPC and one for the x86. I have them and the white jacket that they shipped in.
BeOS R4 was the first single CD distro IIRC. R4.5 definately came on one CD. DR8 was on multiple CD’s and it only supported the PowerPC – there was a diffrernt Mac and BeBox version IIRC.
Let’s not hijack yet another thread with BeOS talk now ๐
The only debate on Intelligent Design that is worthy of its subject
Moderator: We’re here today to debate the hot new topic, evolution versus Intelligent Des—
(Scientist pulls out baseball bat.)
Moderator: Hey, what are you doing?
(Scientist breaks Intelligent Design advocate’s kneecap.)
Intelligent Design advocate: YEAAARRRRGGGHHHH! YOU BROKE MY KNEECAP!
Scientist: Perhaps it only appears that I broke your kneecap. Certainly, all the evidence points to the hypothesis I broke your kneecap. For example, your kneecap is broken; it appears to be a fresh
wound; and I am holding a baseball bat, which is spattered with your blood. However, a mere preponderance of evidence doesn’t mean
anything. Perhaps your kneecap was designed that way. Certainly, there are some features of the current situation that are inexplicable according to the “naturalistic” explanation you have just advanced,
such as the exact contours of the excruciating pain that you are experiencing right now.
Intelligent Design advocate: AAAAH! THE PAIN!
Scientist: Frankly, I personally find it completely implausible that the random actions of a scientist such as myself could cause pain of
this particular kind. I have no precise explanation for why I find this hypothesis implausible — it just is. Your knee must have been designed that way!
Intelligent Design advocate: YOU BASTARD! YOU KNOW YOU DID IT!
Scientist: I surely do not. How can we know anything for certain? Frankly, I think we should expose people to all points of view. Furthermore, you should really re-examine whether your hypothesis is scientific at all: the breaking of your kneecap happened in the past, so we can’t rewind and run it over again, like a laboratory experiment. Even if we could, it wouldn’t prove that I broke your kneecap the previous time. Plus, let’s not even get into the fact that the entire universe might have just popped into existence right before I said this sentence, with all the evidence of my alleged kneecap-breaking already pre-formed.
Intelligent Design advocate: That’s a load of bullpoop sophistry! Get me a doctor and a lawyer, not necessarily in that order, and we’ll see how that plays in court!
Scientist (turning to audience): And so we see, ladies and gentlemen, when push comes to shove, advocates of Intelligent Design do not actually believe any of the arguments that they profess to believe. When it comes to matters that hit home, they prefer evidence, the scientific method, testable hypotheses, and naturalistic explanations.
In fact, they strongly privilege naturalistic explanations over supernatural hocus-pocus or metaphysical wankery. It is only within the reality-distortion field of their ideological crusade that they give credence to the flimsy, ridiculous arguments which we so commonly see on display. I must confess, it kind of felt good, for once, to be the one spouting free-form bullshit; it’s so terribly easy and relaxing, compared to marshaling rigorous arguments backed up by empirical evidence. But I fear that if I were to continue, then it would be habit-forming, and bad for my soul. Therefore, I bid you
adieu
I’m glad you at least acknowledge that Darwinism is a theory.. in that it is backed up by evidence and based on known facts. I assume you use the word “sophistry” in its lesser-understood meaning, being that people dare to demand their knowledge be backed up by observation rather than extrapolated from a 2000-yr old folk-myth.