MacTechNews testet das neue Xcode 2.1 - Wie einfach ist die Umsetzung auf Intel?
An MacStammbaum ausprobiert
Apple stellte direkt nach der WWDC 2005 Keynote Xcode 2.1 für Entwickler bereit, mit dem sich auch Fat-Binaries für PowerPC- und Intel-Prozessoren erstellen lassen, die auf beiden Prozessoren funktionieren.
Als erstes fällt bei der Installation auf, dass WebObjects samt Builder und den Launchern mitgeliefert wird, dies war bei Xcode 2.0 nicht der Fall. Außerdem müssen Sie bei der Installation beachten, dass man zur Erstellung von Fat-Binaries das Cross-Development SDK von 10.4 mit installieren muss.
Zur Erstellung eines kleinen Testprojektes für beide Plattformen ist einfach im frisch erstellten Projekt das Cross Development Target auf "Mac OS X 10.4 Universal" anzulegen und unter Build die Architectures auf Intel und PowerPC ändern.
Xcode und GCC kompilieren dann für die PowerPC- und die Intel-Architektur ein Fat-Binary, welches auf beiden Architekturen ausführbar sein sollte.
Um aber wirklich zu ermitteln, wie lange es dauern wird, ein bestehendes Projekt zu portieren, probieren wir dies am Beispiel von MacStammbaum von OnlyMac Software.
Nach den obigen Einstellungen verlief die Kompilierung bis auf wenige Warnungen, die auf GCC 4.0 zurückzuführen sind, erfolgreich. Die Mac-Version linkte auch ohne Probleme, bei der x86-Version gab es Probleme. Da Macstammbaum für die .mac-Integration das .mac-Framework benutzt, welches momentan nicht für Intel vorliegt, konnte der Linker natürlich nicht funktionieren. Hätte man diesen Teil des Programmes allerdings auskommentiert, wäre es höchstwahrscheinlich auf Intel-Macs lauffähig gewesen.
Die Portierung von Applikationen auf den neuen Prozessor scheint also nicht sehr komplex zu sein, besonders wenn die Applikationen nicht auf bestimmte Prozessor-Features wie eine bestimmte Byte-Order setzen.
Es ist lobenswert, dass Apple direkt nach einer solchen Ankündigung die Entwicklerwerkzeuge liefert, um den Softwareentwicklern frühzeitig die Möglichkeit zu geben, sich auf den Umstieg vorzubereiten.