MinGW - Download

Contents


MinGW and MSYS Distributions

Development of MinGW is done within a framework of inter-related packages. There is a package for the MinGW runtime, packages for GCC and other tool ports, a package for the w32api, and so forth. All of these packages conform to a set of common conventions (internal layout, directory structure, naming scheme). The traditional method for installing MinGW was to create a directory for the installation, download the desired individual packages, and extract their contents into the installation directory (the common internal layout shared by the packages made this possible).

However, in mid-2001 the team began publishing a single-archive "MinGW distribution"... bundling the latest versions of key individual packages available at the time of release. This was done partially to streamline the installation process for newbies, and partially to help application and library developers design products that will build using MinGW (previously MinGW was a moving target with all the constant updates to individual packages, but now it is easier to verify things as being "MinGW 1.0 compatible").

Early in 2002 the MinGW team delivered a package they had dubbed MSYS. This is a Minimal SYStem providing a self hosted mingw32 target POSIX style environment. The updates to this package and it's utilities are more controlled as the entire package (which uses subsets of many smaller packages) is considered to be one package. This package is also delivered in a Win32 style setup installation binary for better control of the installation.

The individual packages making up the MinGW distribution are still produced and made available for download separately. Updated versions of individual packages will sometimes be made available in between releases of the main MinGW distribution... in most cases it should be possible to extract a package's content into your MinGW directory to take advantage of the updates immediately.

MinGW packages available for download are hosted by SourceForge. SourceForge provides each project with a File Release System for us to upload our releases to. This system is adequate for describing the singular package distribution but provides challenges for the project that provides an all-in-one type of package with updates distributed individually. We use the FRS provided by SourceForge to load the files to one of five categories, Candidate, Contributed, Current, Previous and Snapshot. These categories are defined at the FRS package level. The FRS release name is used to specify the package name and the files themselves are what identify the release.


Downloads

The files are currently available on the Sourceforge File Release page. The easiest way to install MinGW is through the mingw-installer found in the Current package set, Current->MinGW


Mirror Sites

These sites host (possibly) older releases of MinGW files:

If you wish to mirror the MinGW distributions then please send a request to mingw-users-admin@lists.sourceforge.net.


Understanding MinGW Packaging

Each package is the responsibility of the individual developer. It is the developer to decide what archive, compression and distribution methods to use. You will see any combination of file extentions, .tar.gz, .tar.bz2, .zip, .exe, etc. Typically we use a file naming convention of <package>-<version>-<timestamp>-<fileversion>.<filetype>. This is not strictly adhered to but timestamp is always in some form of YYYYMMDD format. The fileversion if given represents the number of occurrences a file with the same name otherwise has been uploaded. For example, a developer uploads foo-1.0-20030601-1.tar.gz and then later that day realizes he forgot something important, so he then uploads foo-1.0-20030601-2.tar.gz to correct the mistake. The timestamp is optional on the Current release but is a must for anything else.

The packages that have a suffix .exe are developer prepared Win32 installer executables. They install the package on your system in a known to the developer manner. This helps the developer to give you assistance when it is requested. Currently, two of these installer executables are package bundles, MinGW-<version>-<fileversion>.exe. and MSYS-<version>.exe. MinGW consists of various packages chosen by the developer to be included in a base package bundle. Updates to MinGW can be accomplished by installing the individual package updates. With MSYS there currently isn't an individual package for each package in its bundle. The developer distributes the entire package when there's an update.


Decompression and Unarchiving Utilities

WinZip Caution:
Make sure that you first uncheck the "TAR file smart CR/LF conversion" checkbox found in the Configuration -> Miscellaneous tab of the Options menu.

An Open Source Win32 style solution:
7-Zip offers an open source compression and decompression utility that will compress in two formats and decompress in several formats.


Installing MinGW

How are you going to use MinGW? That is a question you need to ask yourself. If you are a Bourne command line wizard and want to use ./configure && make then you want to install MSYS as well. If you are an IDE wizard and have a configurable IDE then you need to determine if the IDE distributors provide MinGW for you. If it does then the only thing you need to download from MinGW are updates to the individual packages. You can if you want even use MinGW from the %COMSPEC% shell if you're proficient with that.

Once you've decided how you are using MinGW, then you need to decide what to download. The MinGW bundle with individual updates are a good choice if you're also going to use MSYS or from the %COMSPEC% shell. The individual packages you need to update your IDE with are a good choice for that. If you plan to use MSYS then you could install MSYS first and install MinGW into the <msys_prefix>/mingw directory. Or install MinGW in a separate directory tree and use the MSYS /etc/fstab file to point the MSYS /mingw directory to it.

If you want to download the minimal set of tar.[gz|bz2] you will need the mingw-runtime, w32api, binutils and gcc tarball packages. You can find the current versions of these in the "Current" category on the Download page. These will allow you to create your win32 native packages from the command line or configurable IDE. Other packages that you might need to round out your minimal installation are gdb and mingw32-make.


Updating MinGW

You should watch the mailing list and news entries for updates to packages. In particular you want to update the mingw-runtime and w32api when new versions of these packages are announced. Make sure that you install the updates in your c:\mingw (or whereever you installed MinGW). If your using MSYS you can cd /mingw to unarchive the updated tarballs.


Installing MSYS

MSYS is a self contained, win32 style installation package. To install it, simply download the MSYS .exe file and then execute the file. Once you've executed the installation package accept the License, look at the changes, choose the install directory, select if you want icons, etc. and when you are done you should have a working MSYS environment to execute your configure scripts in. If you need autoconf, automake, libtool, cvs, etc. you will want to also install the msysDTK package. Similar to MSYS, the download is an installation binary. It will default the directory location to your MSYS installation assuming that you've installed MSYS which you need to do anyway as the package is dependent on it.


Updating MSYS

Watch for annoucements in the mailing list and news posts for updates to the MSYS packages. Make certain that you have exited all MSYS binaries before updating. The update is executed similar to the installation process. Note, changes to files in the /etc directory will be overwritten. You should refrain from making changes to files such as /etc/profile and instead add entries to ~/.profile. Similarly changes to /msys.bat should also be avoided as this file will also be overwritten. If you wish to change the colors of the rxvt terminal then create appropriate environment variables as described in the msys.bat file.