Installation on Woe32 (WinNT/2000/XP/Vista/7, Win95/98/ME):

Building requires the mingw or cygwin development environment (includes gcc).
MS Visual C/C++ with "nmake" is no longer supported.

This file explains how to create binaries for the mingw execution environment.
For how to create binaries for the cygwin environment, please see the normal
INSTALL file.  MS Visual C/C++ with "nmake" is no longer supported.

I recommend to use the cygwin environment as the development environment
and mingw only as the target (runtime, deployment) environment.
For this, you need to install
  - cygwin,
  - the mingw runtime package, also from the cygwin site.

You must not install cygwin programs directly under /usr/local -
because the mingw compiler and linker would pick up the include files
and libraries from there, thus introducing an undesired dependency to
cygwin. You can for example achieve this by using the
configure option --prefix=/usr/local/cygwin each time you build a
program for cygwin.

Building for mingw is then achieved through the following preparation
and configure commands:

   PATH=/usr/local/mingw/bin:$PATH
   export PATH
   ./configure --host=i586-pc-mingw32 --prefix=/usr/local/mingw \
     CC="gcc-3 -mno-cygwin" \
     CXX="g++-3 -mno-cygwin" \
     CPPFLAGS="-Wall -I/usr/local/mingw/include" \
     LDFLAGS="-L/usr/local/mingw/lib"

The -mno-cygwin tells the cygwin compiler and linker to build for mingw.
The -I and -L option are so that packages previously built for the
same environment are found. The --host option tells the various
tools that you are building for mingw, not cygwin.
