Though our initial focus was to deliver a Kutano add-on for Internet Explorer and Firefox on Windows, we planned to deliver Kutano across multiple operating system and browser platforms from the get-go. At first I even compiled our C++ source code using Visual Studio, XCode, and NetBeans, on Windows, OS X, and Linux, respectively. However, maintaining multiple project files across multiple IDEs becomes tiresome very quickly. I started to compile on Windows only.
In March of 2009, all the client and server pieces came together, and we had an integrated Kutano system. By this time, Raul and Matt had also gotten the brower-specifc add-on code implemented for Firefox, and the JavaScript tuned for Firefox too.
Having delivered the Kutano client for Firefox on Windows, our next target was Firefox on OS X. Most of this work involved implementation of a cross-platform build system, for which Boost.Build was a natural choice. Boost.Build delivers a rich set of predefined jam rules for the most popular compiler tools on each platform. Richard Crowly's Cross platform XPCOM (a howto) also helped me resolve some Firefox build details on OS X.
With a cross platform build system in place, it took a few days of fixing C++ compilation errors and implementing some limited platform-specific code to get the core Kutano library and Firefox add-on compiled and executing on the Macintosh. After over a year of C++ development, it was very rewarding to get the Kutano client running on OS X in Firefox within a few weeks.
Next stop: Linux. Our goal was to support precompiled binaries on distributions derived from Debian and Red Hat. After the OS X effort, Linux development on Ubuntu 8 only took another two days. As a Linux noob, this was a learning experience, and it went very smoothly.
I was concerned that we would have to rebuild Kutano for each Linux platform we wanted to support. But, I fired up Ubuntu 9, and Kutano worked. Then I fired up Kubuntu 9 (Ubuntu with KDE), and again, it worked. Then I booted into Fedora 10, and once again, the Kutano client built on Ubuntu 8 worked. What a relief! I hope other i686 distributions work too, but we cannot test them all.
With Kutano on Internet Explorer and Firefox on Windows, OS X, and the i686 editions of Linux, we hope to be delivering to a majority of our potential user base.
Michael W

0 comments:
Post a Comment