# Compiling PostgreSQL On Native Win32 FAQ Using MinGW

Last updated: Thu Oct 14 18:22:57 EDT 2004

Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)

The most recent version of this document can be viewed at http://momjian.postgresql.org/main/writings/pgsql/project/win32.html.

The FAQ for running PostgreSQL on native Win32 is at http://pginstaller.projects.postgresql.org/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 download from http://pgfoundry.org/projects/pginstaller. It is a fully native build and uses no additional software like MinGW.

## 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 doesn't support tablespaces because it doesn't support the junction points needed for symlinks.) 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. We have no intention of supporting Visual C; their build environment is just too different from Unix, and maintenance of such a build environment would be too burdensome.

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

## Access

The mailing list for discussion is pgsql-hackers-win32@postgresql.org. You can subscribe by sending an email body containing the word subscribe to pgsql-hackers-win32-request@postgresql.org.

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