wiki:UsersWikiWinCompile

Version 4 (modified by nicklas, 16 years ago) ( diff )

A step by step guide how I managed with compiling Postgis in windows

I have used this installdirectories:
MinGW: c:\MinGW
Msys: c:\msys
sources c:\thesrc
installdirectory for postgresql: c:\postgresql

a good tool for extracting tar-files is 7-zip from www.7-zip.org

Installing Minimalist GNU for Windows (MinGW)
Download MinGW autoinstaller (Current - MinGW-5.1.4) from sourceforge.net/project/showfiles.php?group_id=2435

  1. Run the setup file and choose everything (except possibly Ada)
  2. Accept the default Install location of C:\MinGW

Installing Minimal System (Mys)
Msys provides you with a unix shell environment for compiling code under windows
Download Msys downloads.sourceforge.net/mingw/MSYS-1.0.10.exe

  1. Say y to post Installation
  2. When prompted do you have MinGW → y
  3. When prompted for where it is type → C:\MinGW

Installing Msy Development Toolkit
Download the MysDTK1.0.1 from downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe

  1. Run the EXE install and accept all the defaults

  1. Download MSYS Core 1.0.11 fromhttp://downloads.sourceforge.net/mingw/msysCORE-1.0.11-2007.01.19-1.tar.bz2 untar them and copy all content to c:\msys\1.0 and and click ok to overwrite existing files and folders.

Download and install the following from gnuwin32.sourceforge.net/packages.html Change install directory to c:\mingw Bison (kent.dl.sourceforge.net/sourceforge/gnuwin32/bison-2.1.exe) zlib (kent.dl.sourceforge.net/sourceforge/gnuwin32/zlib-1.2.3.exe) Flex (http://kent.dl.sourceforge.net/sourceforge/gnuwin32/flex-2.5.4a-1.exe) GetText LibIconv

update m4 by downloading downloads.sourceforge.net/mingw/m4-1.4.7-MSYS.tar.bz2 untar and copy the m4.exe-file in the end of the path to C:\msys\1.0\bin

between the lines is copied direct from www.mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_Suite


Environment Settings

When you install command line tools, such as MinGW, or GnuWin32 tools, you have to tell the command line interpreter where to find them; this is usually accomplished by adding the appropriate directory names to the PATH variable in your environment. Typically, it is your responsibility to do this; please do not expect the installer, (if you used one), to do it for you.

Warning: Adding entries to the PATH is normally benign. However, if you delete, you may mess up your PATH string, and you could seriously compromise the functioning of your computer. Please be careful.

  1. Right-click on "My Computer" and select "Properties".
  2. Click Advanced → Environment Variables.
  3. In the box entitled "System Variables" scroll down to the line that says "PATH" and double-click the entry.
  4. You will be presented with a dialog box with two text boxes, the bottom text box allows you to edit the PATH variable. It is very important that you do not delete the existing values in the PATH string, this will cause all sorts of problems for you!
  5. Scroll to the end of the string and at the end add ";<installation-directory>\bin". Here <installation-directory> is the full absolute path name of the installation directory; if you accepted the defaults when installing tar and gzip, then for these, it will (probably) be C:\Program Files\GnuWin32, while for MinGW it will be C:\MinGW\bin, (if you kept to the recommended default installation directory). Don't forget the semicolon; this separates the entries in the PATH.
  6. press OK → OK → OK and you are done.

———————————————————————————————————-

Set the environment variable HOME to C:\msys\1.0\home

Now, download the sourcecode of : autoconf from ftp.gnu.org/gnu/autoconf automake from ftp.gnu.org/gnu/automake libtool from ftp.gnu.org/gnu/libtool

The latest releases 2009-04-11 is: autoconf 2.63 (1.4MB) automake 1.10.2 (1.2MB) libtool 2.2.4 (1.8MB)

make a filder c:\thesrc and untar the source-files there

Launch MSys from Start→Programs→MinGW→msys now you get a terminal-window that understands a bunch of unix/linux-commands (at least enough for compiling) print

  1. cd /c/thesrc
  2. ls

Now you will get the filders you have copied to the directory listed. The names of the folders will be different than in this example if you have newer releases of the tools. 4 cd autoconf-2.63

ok, now we are in the directory with the autoconf source-code print ls if you just see a new folder called autoconf-2.63 you have to go into that one to: cd autoconf-2.63 when you se a lot of folders like bin and lib and a lot of files, then you are right

now we shall configure and make this tool print 5 configure —prefix-/c/mingw && make && make install

now a lot of text shall appear in the window and after a while you will hopefully get no error-messages but jut get back to your prompt.

now go to the other source-code directories and do the same

cd .. (backing to the directory c:\thesrc) cd automake-1.10.2 configure —prefix-/c/mingw && make && make install

cd .. (backing to the directory c:\thesrc) cd libtool-2.2.4 configure —prefix-/c/mingw && make && make install

  1. Compiling PostgreSQL

Download latest PostgreSQL source and untar in C:\thesrc move to folder cd /c/thesrc/postgresql-8.3.7 (the version of today) configure —prefix-/c/postgres && make && make install

note that we now have changed the install-directory from mingw to postgres

if you get an error something like: e:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/sspi.h:60: error: syntax error before SECURITY_STRING In file included from e:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/security.h:39, from libpq-int.h:57, from fe-auth.h:18, from fe-auth.c:48: e:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/ntsecpkg.h:123: error: syntax error before SECURITY_STRING

the solution is to edit two of the source-files. In both files: postgresql-8.3.7/src/include/libpq/libpq-be.h and postgresql-8.3.7/src/interfaces/libpq/libpq-int.h:

add a new include-file: #ifdef ENABLE_SSPI #define SECURITY_WIN32 #include <ntsecapi.h> ← Add this include #include <security.h> #undef SECURITY_WIN32

read about this here: pgolub.wordpress.com/2008/12/15/building-postgresql-client-library-using-mingw-under-winxp-sp3/ and postgresqlorg.blogspot.com/2008/09/hackers-83-4-vista-mingw-initdb.html

Compiling GEOS Download latest GEOS — from trac.osgeo.org/geos/ (download.osgeo.org/geos/geos-3.1.0rc2.tar.bz2) Do the same as with postgresql, extract to c:\thesrc in msys terminal print configure —prefix-/c/postgres && make && make install

Compiling Proj Download latest Proj — from trac.osgeo.org/proj/ (download.osgeo.org/proj/proj-4.6.1.zip) in msys terminal print configure —prefix-/c/postgres && make && make install

Compiling PostGIS SVN 1.4

  1. Download postgis.refractions.net/download/postgis-1.4.0SVN.tar.gz and put in C:/thesrc
  2. cd /c/thesrc
  3. gzip -d -c postgis-1.4.0SVN.tar.gz | tar xvf -
  4. cd postgis-svn
  5. configure —prefix=/c/postgresql —with-pgconfig=/c/postgresql/bin/pg_config -with-geosconfig=/c/postgresql/bin/geos-config —with-projdir=/c/postgresql
  6. make
  7. make install
  8. copy postgis-1.4.dll from C:\postgresql\lib to your windows PostgreSQL lib folder
  9. copy C:\postgresql\bin\libgeos-3-1-0.dll and libgeos_c-1.dll to your PostgreSQL bin folder
Note: See TracWiki for help on using the wiki.