Re: compiling on windows with mingw - Mailing list pgsql-hackers

From Kevin Grittner
Subject Re: compiling on windows with mingw
Date
Msg-id 4371EA7D02000025000005AD@gwmta.wicourts.gov
Whole thread Raw
In response to compiling on windows with mingw  ("Gevik babakhani" <gevik@xs4all.nl>)
Responses Re: compiling on windows with mingw  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-hackers
We have spent a lot of time on this to be able to do Windows builds
during the beta cycle.  Our DBA manager is going to start with a
fresh machine and attempt to do a full setup from our existing notes
and produce a "how to" document.  When we have this, somebody
here will submit it to the community in hopes the it can be included
in the documentation and will help others.

In the meantime, I'll try to extract something from my notes here on
what we did on a fresh machine to get the 8.1.0 release running on
a fresh Windows Server 2003 machine.

Install msys.1.9.10.exe -- taking all defaults.
Install MinGW-4.1.1.exe -- taking all defaults.
From an msys shell, update /etc/fstab as recommended:

C:/MinGW /mingw

Get a fresh msys window and execute gcc --version
to confirm that things are set up right so far.

Install bison-1.875-4.exe changing directory to C:\GnuWin32 (We had problems with the space-embedded derault path.)
Install flex-2.5.4a-1.exe -- taking defaults (It picked up the C:\GnuWin32 from previous install.)
Install zlib-1.2.3.exe -- taking defaults (same)

Update /etc/fstab to add a mount point for C:\GnuWin32.
Update /etc/profile to add /gnuwin32/bin to the msys PATH.
(The previous step may not be needed if you do the following step.)
Add C:\GnuWin32\bin to the Windows Path environment variable.
(I don't remember why we did that -- something wasn't working and
we fixed it that way.)

Unzip zlib-1.2.3-lib.zip on top of mingw directory.
(This corrected run-time problems.)

Using Windows management applications, create a postgres user
with no group memberships.

(Somehow we had a /home/postgres dir -- don't remember how
we created it -- might matter because of permissions.)
Copy postgresql-8.1.0.tar.gz into \msys\1.0\home\postgres dir.

From a cmd window >runas /user:postgres cmd
From the resulting cmd window: > cd \msys\1.0.\bin > C:\msys\1.0\msys.bat
From the resulting msys window (as postgres): $ cd /home/postgres $ tar -xzf postgresql-8.1.0.tar.gz $ cd
postgresql-8.1.0$ ./configure <your preferred switches here> $ make $ make check
 

Open an msys window as administrator. $ cd /home/postgres/postgresql-8.1.0/ $ make install

Using explorer copy C:\msys\1.0\local\pgsql to your preferred
location.  (We used C:\pgsql.)
Add to the Windows Path environment variable: C:\pgsql\bin;C:\pgsql\lib

Add postgres to the Users group (needed just for this step).
Get cmd session as postgres.
Make your directories.  For example: > G: > mkdir pgsql > mkdir pgsql\data > initdb <your preferred switches here>

Remove the Users group from the postgres login.

At this point we could run pg_ctl to start the postmaster.
We still needed to modify the conf files, and set up the
Windows service for PostgreSQL.

I'm only reporting what worked for us.  Use at your own risk,
as there may be better practice documented that we've missed,
and this represents preliminary notes on a single successful
install.  (As always, comments and pointers welcome.)

I hope it is of some help.

-Kevin


>>> "Gevik babakhani" <gevik@xs4all.nl>  >>>
I would like to compile the code on windows. I understand I need mingw. 

on the mingw site there are may packages to download and install.


Does anyone know which ones to download install in order to compile pg.


Thanx,

Gevik.





pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Optimization of the alignment padding
Next
From: Ron Mayer
Date:
Subject: Re: Supporting NULL elements in arrays