Tcl Source Code

View Ticket
Login
Ticket UUID: 3116490
Title: cross-compile Tcl mingw32 on unix
Type: Patch Version: None
Submitter: nijtmans Created on: 2010-11-23 11:27:28
Subsystem: 52. Portability Support Assigned To: nijtmans
Priority: 5 Medium Severity:
Status: Closed Last Modified: 2011-09-21 18:29:41
Resolution: Fixed Closed By: nijtmans
    Closed on: 2011-09-21 11:29:41
Description:
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
same way.

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!)
User Comments: nijtmans added on 2011-09-21 18:29:41:

allow_comments - 1

nijtmans added on 2010-12-06 20:02:09:
fixed on HEAD

nijtmans added on 2010-11-23 18:29:00:

File Added - 394145: 3116490.patch

Attachments: