
                   Compiling PostgreSQL On Native Win32 FAQ
                                       
   Last updated: Thu Oct 14 18:22:57 EDT 2004
   
   Current maintainer: Bruce Momjian <bruce@momjian.us>
   
   The most recent version of this document can be viewed at
   http://www.postgresql.org/docs/faqs.FAQ_MINGW.html.
   
   The FAQ Running & Installing PostgreSQL On Native Windows is at
   http://pginstaller.projects.postgresql.org/faq/FAQ_windows.html.
   
   The native Win32 port is built from source using MinGW tools.  There
   is also a precompiled binary installer called pginstaller which you
   can find at from http://pgfoundry.org/projects/pginstaller.  It is a
   fully native build and uses no additional software like MinGW. The
   ready-made installer files are available on the main PostgreSQL ftp
   servers in the binary/win32 directory.
   
Tools for Building Binaries

   The native Win32 port requires a 32-bit NT-based Microsoft operating
   system, like Windows NT 4, Windows 2000/2003, or Windows XP. (NT 4 is
   no longer supported since version 8.2)  Earlier operating systems do
   not have sufficient infrastructure. Building the port also requires
   MinGW and Msys, which can be downloaded from http://www.mingw.org/.
   MinGW is a Unix-like build environment for Microsoft operating
   systems. Msys is a collection of unix tools required to run shell
   scripts like configure.  Neither is required to run the resulting
   binaries;  they are needed only for creating the binaries.  Work is in
   progress to support building using Visual C++ in a future version.
   
Steps For Building Binaries

     * Download the nightly snapshot tarball from
       ftp://ftp.postgresql.org/pub/dev or checkout via CVS (you will
       need bison, flex, and perl installed to build from CVS)
     * Run configure (you might need to add the --without-zlib argument,
       depending on whether you have installed zlib on MinGW)
     * Run make install
       
   Note:  it is suggested that you run psql under CMD.EXE., as the Msys
   console has buffering issues.
   If you make a change that you want to contribute, make a context diff
   and send it to the mailing list.
   
Resources

   There are several resources that helped us complete this port:
     * PeerDirect port of PostgreSQL 7.2 to Win32
       (ftp://momjian.postgresql.org/pub/postgresql/win32/PeerDirect)
     * CONNX Win32 signal
       code(ftp://momjian.postgresql.org/pub/postgresql/win32/CONNX)
     * SRA port of PostgreSQL to Win32 (unfortunately, this is not
       publically available because the threaded portion is proprietary)
     * CHM help files
       (http://www.pgadmin.org/snapshots/help/en_US/pgadmin3.chm)
