# 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)