The msys and mingw download should be used to compile Tcl/Tk sources on a Windows machine. A zip file containing all the needed software is available here:http://sourceforge.net/project/showfiles.php?group_id=10894The msys and mingw download available above has been tested with current releases of Tcl and Tk. It is the same software available from mingw.org, except that all the needed software has already been packaged into a single download.See Building Tcl/Tk with Mingw for info about building Tcl/Tk with Msys and Mingw.
The precompiled ActiveTcl is a popular alternative to building yourself. As it is built with MSVC, there have been some questions about compatibility for extensions that want to build with mingw or cygwin.Kevan Hashemi went to the effort of confirming the following using ActiveTcl 8.4.16 ...I have three libraries (iocpsock, mine from Cygwin and mine from MinGW) and two TclTks (mine from MinGW and Active State's) and therefore six combinations. I tried them all, made some changes, and tried them again. I browsed the web.My conclusions are these:
- For at least the past two years, Visual C++, MinGW, and Cygwin all use the same calling convention by default. The default seems to be caller-cleanup, or __cdecl.
- By default, Cygwin-compiled libraries are dependent upon Cygwin API libraries. If you put copies of the Cygwin API libraries in the load path for any non-Cygwin TclTk, TclTk will freeze.
- You can avoid dependence upon the Cygwin API libraries when compiling on Cygwin with the "-mno-cygwin" compiler option, but you have to have the MinGW header files available instead (in which case, you could compile with MinGW instead, so why bother with Cygwin?).
- I prefer MinGW to Cygwin.
- Building Tcl/Tk with Mingw (which also contains information on how to install mingw manually with gcc4.x)
- Cross-Compiling Tcl/Tk 8.3.2 for WinNT 
- DLL Creation in MingW