[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)''': 1. Go to http://sourceforge.net/project/showfiles.php?group_id=10894 2. Download msys_mingw8.zip (or newer version) 3. Download tcl8416-src.zip 4. Download tk8416-src.zip '''Second (Unzip)''': 1. Unzip msys_mingw8.zip to whereever you want to keep it (I put mine on the root of the C drive.) It will create a top level directory called msys and a directory tree underneath containing all necessary files for msys/mingw operation. Now start msys by double clicking on msys.bat (in C:\msys) or msys95 for Win95. The following commands are typed into the msys shell. 2. Create a src directory somewhere convenient. I used "mkdir /src" (C:\msys\src if looking at it from outside msys.) 3. Unzip tcl8416-src.zip into the src directory 4. Unzip tk8416-src.zip into the src directory '''Third (Build Tcl)''': 1. mkdir /build 2. mkdir /build/tcl 3. cd /build/tcl 4. /src/tcl8.4.16/win/configure --prefix=/opt/tcl 5. make 6. make install '''Fourth (Build Tk)''': 1. mkdir /build/tk 2. cd /build/tk 3. /scr/tk8.4.16/win/configure --prefix=/opt/tcl --with-tcl=/build/tcl 4. make 5. make install '''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''' * [mingw] * [Building TclBlend with msys_mingw] * [cygwin] * [Building Tcl and Tk with Cygwin] ---- 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 } } } ====== --- Note that you can install them to an absolute path like ====== $ win/configure --prefix=/c/pathname ====== And that you can install Tk/Tcl to their "default" location by using ====== tcl: $ win/configure --prefix=/mingw tk: $ win/configure --prefix=/mingw --with-tcl=/mingw/lib ====== ---- !!!!!! %| [Category Windows] | [Category Dev. Tools] |% !!!!!!