The mingw-w64 project <http://mingw-w64.sourceforge.net/> provides
toolchains which make it possible to compile windows (both 32-bit and 64-bit)
executables on UNIX hosts. Tcl 8.6 has almost complete cross-compile
support, here is the final patch to make it work.
- The configure script detects cross-compilation, and sets TCL_EXE
accordingly: This means that for cross-builds, TCL_EXE points to
a tclsh executable which must be available before starting make
for the first time! In native builds,TCL_EXE points to the tclsh
being created, so it does not need to be available beforehand.
modules in the pkgs directory (Thread, itcl, odbc) should upgrade
to the latest TEA tcl.m4, then they can be cross-compiled the
So, how to cross-compile win32 Tcl on UNIX?
For Linux (tested on Ubuntu 10.4):
Make sure you have the mingw-w64 toolchain
$ sudo apt-get install mingw-w64
Then, do as normal, only add --host=...
$ ./configure --prefix=/home/<user>/Tcl --host=i586-mingw32msvc
$ make install
That's it. You will have a complete build in
your /home/<user>/Tcl directory. If you have wine
installed, you can even run the tests (but don't expect
everything to pass, because wine is not windows!)