1.x/WindowsInstallationManual

Environment

Download prebuild-dll-2-7-0-release from  ftp://sources.redhat.com/pub/pthreads-win32/

cp /include/*.h /mingw/include
cp /lib/libpthreadGC2.a /mingw/lib/libpthread.a

CMake

Use latest version(2.4.7)

#./configure --prefix=E:/Build/msys/1.0/local
#make
#make install

Or you can use Windows installer.

Boost

Use previous version (1.33.1) because of v2 problem

#bjam -sTOOLS=mingw "-sBUILD=release <runtime-link>static <threading>multi <native-wchar_t>on" --prefix=/e/Build/msys/1.0/local install 
#mv /usr/local/include/boost-1_33_1/boost /usr/local/include/boost 
#rmdir /usr/local/include/boost-1_33_1 

If you don't need CGAL library (driving distance functionality), pgRouting uses only Boost headers. So you needs download Boost headers(1.33.1 or later), and extract it.

Gaul

Use latest version(0.1849-0)

#./configure --enable-slang=no
edit /util/Makefile
	DEFS = -DHAVE_CONFIG_H
	 -> DEFS = -DHAVE_CONFIG_H -DBUILDING_DLL
edit /src/Makefile
	DEFS = -DHAVE_CONFIG_H
	 -> DEFS = -DHAVE_CONFIG_H -DBUILDING_DLL
	INCLUDES = -I../util/ -I../../util/
	 -> INCLUDES = -I../util -I../../util
edit /tests/Makefile
	DEFS = -DHAVE_CONFIG_H
	 -> DEFS = -DHAVE_CONFIG_H -DBUILDING_DLL
	INCLUDES = -I../util/ -I../../util/ -I../src/ -I../../src/ -I/usr/include/slang/
	 -> INCLUDES = -I../util -I../../util -I../src -I../../src -I/usr/include/slang/
#make
#make install

CGAL

Use latest version(3.2.1)

#./install_cgal --prefix=/usr/local/cgal  --with-BOOST --BOOST_INCL_DIR=/usr/local/include --BOOST_LIB_DIR=/usr/local/lib --without-autofind -ni /mingw/bin/g++
#cp /usr/local/cgal/include/CGAL/config/i686_MINGW32NT-5.1_g++-3.4.2/CGAL/compiler_config.h /usr/local/cgal/include/CGAL/compiler_config.h
#cp /usr/local/cgal/lib/i686_MINGW32NT-5.1_g++-3.4.2/libCGAL.a /usr/local/cgal/lib/libCGAL.a
#cp /usr/local/cgal/lib/i686_MINGW32NT-5.1_g++-3.4.2/libCGAL.so /usr/local/cgal/lib/libCGAL.so

pgRouting

#cmake -G"MSYS Makefiles" -DWITH_TSP=ON -DWITH_DD=ON .

Edit CMakeCache.txt

        Boost_INCLUDE_DIR:PATH=Boost_INCLUDE_DIR-NOTFOUND
         -> Boost_INCLUDE_DIR:PATH=E:/Build/msys/1.0/local/include

        CGAL_INCLUDE_DIR:PATH=CGAL_INCLUDE_DIR-NOTFOUND
         -> CGAL_INCLUDE_DIR:PATH=E:/Build/msys/1.0/local/cgal/include

        CGAL_LIBRARIES:FILEPATH=CGAL_LIBRARIES-NOTFOUND
         -> CGAL_LIBRARIES:FILEPATH=E:/Build/msys/1.0/local/cgal/lib

        GAUL_LIBRARIES:FILEPATH=GAUL_LIBRARIES-NOTFOUND
         -> GAUL_LIBRARIES:FILEPATH=E:/Build/msys/1.0/local/lib

Edit core\src\CMakeFiles\routing.dir\flags.make

Adjust <drive> (ie. "C") and <my path> to your system environment!

C_FLAGS = -Drouting_EXPORTS -O2 -g \
          -I/<drive>/<my path>/msys/1.0/local/src/pgrouting/pgrouting/. \
          -I/<drive>/<my path>/msys/1.0/local/src/pgrouting/pgrouting/core \
          -I/<drive>/<my path>/msys/1.0/local/src/pgrouting/pgrouting/core/src \
          -I/<drive>/<my path>/msys/1.0/local/src/pgrouting/pgrouting/extra \
          -I/<drive>/<my path>/msys/1.0/local/src/pgrouting/pgrouting/extra/tsp \
          -I/<drive>/<my path>/msys/1.0/local/src/pgrouting/pgrouting/extra/tsp/src \
          -I/<drive>/<my path>/msys/1.0/local/src/pgrouting/pgrouting/extra/driving_distance \
          -I/<drive>/<my path>/msys/1.0/local/src/pgrouting/pgrouting/extra/driving_distance/src \
          -I/boost \
          -I/<drive>/<my path>/msys/1.0/local/include \
          -IC:/PROGRA~1/PostgreSQL/8.2/include/server \
          -IC:/PROGRA~1/PostgreSQL/8.2/include/server/port/win32
CXX_FLAGS = -Drouting_EXPORTS -O2 -g 
            -I/<drive>/<my path>/msys/1.0/local/src/pgrouting/pgrouting/. \
            -I/<drive>/<my path>/msys/1.0/local/src/pgrouting/pgrouting/core \
            -I/<drive>/<my path>/msys/1.0/local/src/pgrouting/pgrouting/core/src \
            -I/<drive>/<my path>/msys/1.0/local/src/pgrouting/pgrouting/extra \
            -I/<drive>/<my path>/msys/1.0/local/src/pgrouting/pgrouting/extra/tsp \
            -I/<drive>/<my path>/msys/1.0/local/src/pgrouting/pgrouting/extra/tsp/src \
            -I/<drive>/<my path>/msys/1.0/local/src/pgrouting/pgrouting/extra/driving_distance \
            -I/<drive>/<my path>/msys/1.0/local/src/pgrouting/pgrouting/extra/driving_distance/src \
            -I/boost \
            -I/<drive>/<my path>/msys/1.0/local/include \
            -IC:/PROGRA~1/PostgreSQL/8.2/include/server \
            -IC:/PROGRA~1/PostgreSQL/8.2/include/server/port/win32

Edit core\src\CMakeFiles\routing.dir\build.make

Adjust <drive> (ie. "C") and <my path> to your system environment!

routing_EXTERNAL_OBJECTS = \

Edit last line as follows (not make clean!!!)

cd /<drive>/<my path>/pgrouting/core/src && /<drive>/<my path>/mingw/bin/g++.exe $(routing_OBJECTS) $(routing_EXTERNAL_OBJECTS) \
           -L/<drive>/<my path>/msys/1.0/local/lib \
           -LC:/PROGRA~1/PostgreSQL/8.2/lib \
           -lpostgres -shared -o ../../lib/librouting.dll \
           -Wl,--out-implib,../../lib/librouting.dll.a \
           -Wl,--major-image-version,0,--minor-image-version,0

Edit extra\tsp\src\CMakeFiles\routing_tsp.dir\flags.make

C_FLAGS = -Drouting_tsp_EXPORTS -g -O2 -IE:/Build/msys/1.0/local/include -I/E/Build/msys/1.0/local/src/pgrouting/pgrouting/core/src -IC:/PROGRA~1/PostgreSQL/8.2/include/server -IC:/PROGRA~1/PostgreSQL/8.2/include/server/port/win32
CXX_FLAGS = -Drouting_tsp_EXPORTS -g -O2 -IE:/Build/msys/1.0/local/include -I/E/Build/msys/1.0/local/src/pgrouting/pgrouting/core/src -IC:/PROGRA~1/PostgreSQL/8.2/include/server -IC:/PROGRA~1/PostgreSQL/8.2/include/server/port/win32 -DBUILDING_DLL

Edit extra\tsp\src\CMakeFiles\routing_tsp.dir\build.make

routing_tsp_EXTERNAL_OBJECTS = \

Edit last line as follows

cd /E/Build/msys/1.0/local/src/pgrouting/pgrouting/extra/tsp/src && /e/Build/mingw/bin/g++.exe $(routing_tsp_OBJECTS) $(routing_tsp_EXTERNAL_OBJECTS) -LE:/Build/msys/1.0/local/lib -LC:/PROGRA~1/PostgreSQL/8.2/lib -lpostgres -lgaul -lgaul_util -lm -shared -o ../../../lib/librouting_tsp.dll -Wl,--out-implib,../../../lib/librouting_tsp.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -Wl,--export-all-symbols

Edit extra\driving_distance\src\CMakeFiles\routing_dd.dir\flags.make

C_FLAGS = -Drouting_dd_EXPORTS -g -O2 -IE:/Build/msys/1.0/local/include -I/E/Build/msys/1.0/local/src/pgrouting/pgrouting/core/src -I/E/Build/msys/1.0/local/cgal/include -IC:/PROGRA~1/PostgreSQL/8.2/include/server -IC:/PROGRA~1/PostgreSQL/8.2/include/server/port/win32
CXX_FLAGS = -Drouting_dd_EXPORTS -g -O2 -IE:/Build/msys/1.0/local/include -I/E/Build/msys/1.0/local/src/pgrouting/pgrouting/core/src -I/E/Build/msys/1.0/local/cgal/include -IC:/PROGRA~1/PostgreSQL/8.2/include/server -IC:/PROGRA~1/PostgreSQL/8.2/include/server/port/win32

Edit extra\driving_distance\src\CMakeFiles\routing_dd.dir\build.make

routing_dd_EXTERNAL_OBJECTS = \

Edit last line as follows

cd /E/Build/msys/1.0/local/src/pgrouting/pgrouting/extra/driving_distance/src && /e/Build/mingw/bin/g++.exe $(routing_dd_OBJECTS) $(routing_dd_EXTERNAL_OBJECTS) -LE:/Build/msys/1.0/local/lib -LE:/Build/msys/1.0/local/cgal/lib -LC:/PROGRA~1/PostgreSQL/8.2/lib -lCGAL -lpostgres -shared -o ../../../lib/librouting_dd.dll -Wl,--out-implib,../../../lib/librouting_dd.dll.a -Wl,--major-image-version,0,--minor-image-version,0

Build pgRouting

#make