MinGW , short for Minimalist GNU for Windows, provides a port of GCC to Microsoft Windows, along a shell and a collection of utilities that constitute a typical minimal environment in which to build software with GCC.
MinGW ("Minimalistic GNU for Windows") refers to a set of runtime headers, used in building a compiler system based on the GNU GCC and binutils projects. It compiles and links code to be run on Win32 platforms ... providing C, C++ and Fortran compilers plus other related tools. If you see references to "mingw32" or "MinGW-w64" instead of "MinGW", they are referring to the same compiler system. The project's name changed from mingw32 to MinGW (for 32 bit Windows) and the fork that now supports both 32 and 64 bit is called MinGW-w64 (located here: https://www.mingw-w64.org ). MinGW uses the Microsoft runtime libraries, distributed with the Windows operating system. Unlike other ports of GCC to Windows, the runtime libraries are not distributed using Gnu's General Public License (GPL). You, therefore, do not have to distribute your source code with your programs unless, of course, you use a GPL library in your programs.
In the Internet Archive you can still check out the project history for the interesting story of How MinGW Began: https://web.archive.org/web/20201101014531/http://www.mingw.org/history
See Msys for the relationship of Msys and MinGW.
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: