Building and Organising a Multi-Platform Development Code Base

By Jim Hague

There must be few codebases that don’t face some sort of cross-platform or multi-platform challenge. The size of the challenge varies. At its simplest it might be just to get your system working on a limited number of different releases of the same operating system running on the same processor architecture. Or perhaps you’ve been asked to make your Linux application run on AIX - a job filled with snake Dpits to trap the unwary, as anyone who’s crossed swords with AIX will know. And at the extreme, you may be faced with cross-compiling from a variety of host operating systems to target multiple very different operating systems, GUIs, processor architectures and toolchains.

Judging by some of the open source libraries I’ve been working with recently, this isn’t an area that’s commonly done well.

This aim of this session is to share techniques and experiences of organising and building multi-platform and cross-platform code. I’ll be looking at the common approaches to multi-platform and cross-platform coding and how some build tools I’ve experienced deal with it. There will also be a bit of a rant about GNU Autotools and the perils of system introspection.

But mainly I want this to be a highly interactive session. I want to hear from you, and your experiences meeting the same challenge - what are the tools and techniques you use, what are their good and bad points? Let’s improve our portability together.