Mo Dejong 10-12-2005
This page describes how to build Tcl/Tk under Windows using the Msys and Mingw packages. Mingw is a gcc port for Windows that can be used to build native Win32 applications and dlls. Msys is a bash shell ported to Windows that is used to run Tcl's configure script. This page does not describe how to build Tcl/Tk with VC++, although that build environment is also supported. It may possible to build Tcl/Tk with other compilers like the Borland or Cygwin, but these tools are not well supported and will require some effort to get everything working.
Building Tcl/Tk 8.4.16, the current stable release.
First (Downloads):
Second (Unzip):
Third (Build Tcl):
Fourth (Build Tk):
NOTE: At this point everything is installed and should be working. You could delete /build and /src if you wanted to. You will find it all in /opt/tcl (C:\msys\opt\tcl). Run Tcl from the msys shell by starting the tclsh84 shell found in /opt/tcl/bin. Run Tk from the msys shell by starting the wish84 shell found in /opt/tcl/bin.
RS It's also useful to copy tcl84.exe to tclsh.exe, and add /opt/tcl/bin to the msys PATH, so that you can run scripts directly when their first line is the famous
#!/usr/bin/env tclsh
See also
Note: ensure that your msys.bat file contains a set PATH= at the top or you will get coredumps.
RS 2007-10-11: This advice leads, on my W95 box, to msys dying very soon after startup. Trying to find another way...
DKF: I never needed to do that, but then I use XP. (It's much more important to make sure that you install things in a directory without spaces in the name; a lot of the build process is very fragile if you don't follow that...)
See Windows 95 for RS's adventures in building 8.5b1 on that unsupported platform...
LV Anyone tried this on Vista? Also, have you tried updating to newer versions of the compiler, etc. ? Just curious how robust of an environment mingw is. :Working fine under Windows 7 beta, so vista likely has no problems. Ian S.
edit that path typo in third step. I made the tclsh bin under XP inside VMWARE6.03 ACE from tcl856-src. salut
SV (2009-08-10) I would like to add that succesfull build of tcl 8.6b1.1 (from cvs) is possible with current mingw (gcc 4.4.0). After some tinkering with content of msys_mingw8.zip and reading some pages on MinGW site it was quite easy. Here follows what I did. Note: my platform is xp sp2 on Linux kvm.
1. Abandon use of MinGW-5.1.4.exe automatic installer, it's broken.
2. Download from http://sourceforge.net/projects/mingw/files/
mingwrt-3.15.2-mingw32-dev.tar.gz mingwrt-3.15.2-mingw32-dll.tar.gz mpfr-2.4.1-mingw32-dll.tar.gz gmp-4.2.4-mingw32-dll.tar.gz libiconv-1.13-mingw32-dll-2.tar.gz pthreads-w32-2.8.0-mingw32-dll.tar.gz gcc-core-4.4.0-mingw32-dll.tar.gz gcc-core-4.4.0-mingw32-bin.tar.gz binutils-2.19.1-mingw32-bin.tar.gz w32api-3.13-mingw32-dev.tar.gz (this one was corrupted on a few sourceforge mirrors)
Unpack all with paths in C:\MinGW. Directory tree should look like this on first level C:\MinGW
|-- bin |-- doc |-- include |-- info |-- lib |-- libexec |-- man |-- mingw32 `-- share
There is conflict on libiberty.a between gcc-core-4.4.0-mingw32-dll.tar.gz and binutils-2.19.1-mingw32-bin.tar.gz, keep that from gcc-core.
3. Add 'C:\MinGW\bin' to system PATH variable.
4. Download MSYS-1.0.11.exe, run it and answer questions. (However after all I have to manually correct fstab in msys's /etc directory to (note the double backslashes):
C:\\MinGW /mingw
5. Follow 'only' instruction about unpacking tcl and tk from Mo Dejong on top of this page.
6. Then in msys's shell you could run something like this script below or proceed compiling manually.
#!/bin/sh mkdir -p /src mkdir -p /opt/tcl mkdir -p /build/tcl mkdir -p /build/tk [ -e /src/tcl ] && { cd /build/tcl /src/tcl/win/configure --prefix=/opt/tcl --enable-threads && make && make install && { [ -e /src/tk ] && { cd /build/tk /src/tk/win/configure --prefix=/opt/tcl --enable-threads --with-tcl=/build/tcl \ && make && make install } } }