Compiling PostgreSQL On Native Win32 FAQ Last updated: Thu Oct 14 18:22:57 EDT 2004 Current maintainer: Bruce Momjian 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)