How to cross-compile iTALC
What is cross-compiling? Why is it needed for iTALC?
If you compile your software for a foreign platform using a special environment (compiler, libraries etc.), then you cross-compile it. The big advantage is, that you can use your usual working-environment and do not need to run the according platform. It's obvious that no Linux developer wants to use Windows but if there's a need for Windows-builds of the software, then you either have to use Windows or cross-compile your software under e.g. Linux. Additionally there's no need for big changes in build-system. Of course testing etc. still needs to be done on the according target-platform.
In case of iTALC, cross-compiling is being used for building official win32-binaries.
Preparations for cross-compiling
First of all: Ubuntu Intrepid is the only platform that is directly supported for cross-compiling.
Ready-to-use packages for i386, amd64 and lpia are available at tobydox' PPA. Simply add the following line to your /etc/apt/sources.list or a new file under /etc/apt/sources.list.d/:
deb http://ppa.launchpad.net/tobydox/ubuntu intrepid main deb-src http://ppa.launchpad.net/tobydox/ubuntu intrepid main
sudo apt-get update sudo apt-get install mingw-x-binutils mingw-x-gcc mingw-x-libjpeg mingw-x-openssl mingw-x-qt mingw-x-runtime mingw-x-w32api mingw-x-zlib
Afterwards you'll have a fully-featured MinGW cross-compiling environment in /opt/mingw. If you're running a Debian-based distro other than Ubuntu Intrepid you'll need to download the source-packages from the above repository and build packages on your own using dpkg-buildpackage.
The final step
All you have to do now is to go into the according iTALC-source-tree and run
make -f Makefile.svn ./build_mingw32
which will launch configure with according options. After it has finished, you can run make the usual way. Finally run
export PATH=$PATH:/opt/mingw/bin make win32-pkg
which will create a ZIP-file like the ones that can be officially downloaded.