[wiki:UsersWikiWinCompile Back to Windows Compile] = Compiling PostGIS 1.5 under VC++ = This is still a work in progress: A good tool for extracting tar, gz, and bz files: [http://www.7-zip.org/ http://www.7-zip.org/] == Compile PostgreSQL under VC++ 2008 (express or Studio) == Note that if you are compiling for 64-bit, Express is not supported so you have to use VC++ Professional or above. [http://www.postgresql.org/docs/9.0/interactive/install-win32-full.html Full details here] We will just cover enough to be able to compile PostGIS so will not be compiling with additional dependencies 1. Install Active State ActivePerl (5.8+) [http://www.activestate.com/activeperl/downloads http://www.activestate.com/activeperl/downloads] 2. Download PostgreSQL source and Extract PostgreSQL 9.0 source tar ball [http://www.postgresql.org/ftp/source/ http://www.postgresql.org/ftp/source/] into folder C:\Projects\PostgreSQL\postgresql-9.0.1win 3. Create a file C:\Projects\PostgreSQL\postgresql-9.0.1win\src\tools\msvc\buildenv.pl Add add a line -- note in our case -- we compile with mingw usually, so we are completely overwriting the path with one that doesn't contain mingw because mingw and VC++ don't play well together when compiling PostgreSQL {{{ #-- buildenv.pl starts here -- $ENV{PATH}='C:\perl\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\;C:\Program Files\Support Tools\;C:\opt\gtk\bin;C:\Program Files\R\R-2.10.1\bin'; $ENV{PATH} = $ENV{PATH} . ';C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN;C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools;C:\WINDOWS\Microsoft.NET\Framework\v3.5;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 9.0\VC\VCPackages'; # -- buildenv.pl ends here -- }}} 4. Open up VC ++ commandling from: start->Programs->Visual c++ Express 2008 ->Visual Studio Tools 5. cd C:\Projects\PostgreSQL\postgresql-9.0.1win\src\tools\msvc 6. clean.bat 7. build.bat == Compile GEOS 3.2.2 under VC++ == ''Note that from GEOS 3.3+ -- GEOS is moving to CMake build'' If you wish to compile GEOS 3.3+ instead, please refer to [http://trac.osgeo.org/geos/wiki/BuildingOnWindowsWithCMake GEOS Windows CMake build instructions] 1. download [http://download.osgeo.org/geos/geos-3.2.2.tar.bz2 http://download.osgeo.org/geos/geos-3.2.2.tar.bz2] 2. extract into c:\projects\geos\geos-3.2.2win 3. Launch start-programs->MS visual c++ 2008->Visual Studio tools command prompt 4. cd c:\projects\geos\geos-3.2.2win 5. Following nmake directions from [http://trac.osgeo.org/geos/wiki/BuildingOnWindowsWithNMake http://trac.osgeo.org/geos/wiki/BuildingOnWindowsWithNMake] {{{ autogen.bat nmake /f makefile.vc MSVC_VER=1400 }}} 6. The above will generate 2 dlls in the c:\projects\geos\geos-3.2.2win\source folder (geos.dll, geos_c.dll ) == Compile Proj under VC++ == 1. download [http://download.osgeo.org/proj/proj-4.7.0.tar.gz http://download.osgeo.org/proj/proj-4.7.0.tar.gz] 2. extract into c:\projects\proj\proj-4.7.0win 3. Download the [http://download.osgeo.org/proj/proj-datumgrid-1.5.zip http://download.osgeo.org/proj/proj-datumgrid-1.5.zip] and extract into your proj-4.7.0-win\nad folder 4. At your VC++ prompt {{{ cd C:\projects\proj\proj-4.7.0win nmake /f makefile.vc MSVC_VER=1400 }}} 5. the above will create a proj.dll in your C:\Projects\proj\proj-4.7.0win\src folder == Compile libi-conv == == Compile or get binaries for libxml2 == == Compiling PostGIS == 1. Download [http://www.postgis.org/download/postgis-1.5.3SVN.tar.gz http://www.postgis.org/download/postgis-1.5.3SVN.tar.gz] 2. Extract into c:\projects\postgis\postgis-1.5.3win 3. Copy the build and platform folders from Mateusz zip file [http://mateusz.loskot.net/2009/03/29/building-postgis-using-visual-cpp/ http://mateusz.loskot.net/2009/03/29/building-postgis-using-visual-cpp/] and copy into your postgis-1.5.2win folder