June 25, 2005

wxWidgets on Intel Macs

Posted at June 25, 2005 09:48 AM in wxWidgets .

While the news about Apple switching to Intel chips next year is pretty stale now, we have received some inquiries about BitWise support on Intel-based Macs. We don't anticipate any problems, using either the G3 emulation or the new fat binaries.
Without any changes, BitWise should run as-is on Intel Macs using the G3 emulation mode. I don't have access to one of the test machines, and we probably won't be purchasing preliminary hardware, but given the reports of success with almost any other modern application, no problems are expected. Good job Apple!

And what about the fat binaries, i.e. an executable with combined G3 and x86-based code? This shouldn't be a problem either; wxWidgets for Mac OS X was updated the day of the announcement to support Intel Macs, so all that will be required is a recompile using the new XCode 2.1 with an x86 or fat binary target. Good job Apple and wxWidgets!

In terms of the code differences between the two platforms, the only difference that affects BitWise is platform endian-ness. BitWise's source is peppered with byte-swapping macros that conditionally swap on big-endian platforms (e.g. the IBM Power PC processors), so the BitWise source already deals with the endian issue. We already know BitWise compiles on x86 Linux, so compiling on x86 Darwin/OS X isn't much of a stretch at all.

Now for my gratuitous plug for wxWidgets: the benefit of an open-source continually-changing library like wxWidgets is the flexibility it offers to accommodate newer technologies. A community provides better support than any one individual, and that's true with wxWidgets too. As a developer, wxWidgets helps me manage technological advancements; I have no doubt that when Longhorn approaches (whenever that may be!), wxWidgets will again help ease the transition to the new technology. Best of all, I don't have to learn all of the peculiarities of each new platform.

Sometimes people ask me, "If you had to choose again, would you still choose wxWidgets?" My answer is still the same: "Absolutely."