I'm Cross! is a tool that installs Windows and Mac OS X cross-compilers.
What is I'm Cross!?
I'm Cross! is a simple, scripted method of installing cross-compilers and cross-compiled libraries on a Linux (or possibly other *nix) system, so that you can develop programs targeted to run on Microsoft Windows and Mac OS X at the same time and in the same environment as you develop Linux versions of those programs. I focus on supporting Mac OS X versions 10.4 and 10.5, though some cross-built programs may work in earlier versions. Similarly, I focus on supporing C/C++ development, but Fortran and Objective-C cross-compilers are provided. Creation of installer programs for Windows (setup.exe) or Linux, or "application bundles" for Mac OS X, is supported as well. I'm Cross! makes it easy for you to set up such a cross-compilation environment without having to do a bunch of research and maneuver through a bunch of incomplete howtos.
I run several open-source projects which I develop and mainly use on Linux, but for which I want to create Microsoft Windows and Mac OS X versions as well. (See, for example, my Apollo Guidance Computer simulation, my DO-178B documentation software, or my Project Gutenberg markup program.) Usually what this has meant in the past is that I compile my programs and debug them on Linux, and then as an afterthought I fire up a Windows or Mac OS X box, copy all the source code over to it, build the program ... and then iterate when it doesn't work right. This approach is problematic for a variety of reasons, not the least of which are that it's time-consuming and I don't enjoy it, so the Windows-based executables for my programs tend to lag the Linux versions by months or years, with the Mac OS X executables lagging even more ... or absent entirely since I don't have access to an Intel-based Mac and my version of Mac OS X is ancient.
A much more satisfactory approach would be to be able to build the Windows and Mac OS X versions of the executables at the same time as the Linux executables are built, directly from the Linux box on which I'm developing. (And by "Linux", I don't mean to exclude other *nix-based environments, such as FreeBSD or Solaris. It's just that I have much less contact with those.) If the software you're developing is a command-line program and you're only interested in Windows targets, that turns out to be pretty easy, and I've been doing it for years. Linux-hosted versions of the MinGW GNU-gcc based Windows-targeted C/C++ compiler can be downloaded and installed fairly easily.
The difficulty level-or at least the difficulty of finding helpful information-goes up dramatically if you need to produce a GUI program or a program incorporating common libraries not included with MinGW. And it goes up astronomically for Mac OS X targets. Even supposing that you figure out (say) how to install some library such as the wxWidgets cross-platform GUI library in a way that lets you use it in a cross-compilation, you will be sure to have forgotten how to do so if you ever need to install it again on some other computer ... as inevitably you will need to do when your own computer dies or is upgraded. So you google ... google ... google ... and pray.
At any rate, in the course of figuring this out for myself for one of my projects, I idly scripted the cross-compiler/cross-library installation, so that I wouldn't have to solve the problem again in the future. It occurred to me that other people might benefit from having this installation script. So here it is! It has subsequently become somewhat of an obsession, so I keep improving it beyond my actual personal needs.
What's New in This Release: [ read full changelog ]
· The inability to install Mac OS X tools/libraries on Linux hosts running gcc 4.3 has been fixed.
· The full range of IMCROSS tools/libraries should now be available from any Linux host running gcc 4.x.