J'ai compilé pgRouting 1.02 sous Win32 pour PostgreSQL 8.2.9 et PostgreSQL 8.3.3

Les liens sont

  1. PostgreSQL 8.2.9: http://www.davidgis.fr/download/pgRouting-1.02_pg-8.2.9.zip
  2. PostgreSQL 8.3.3: http://www.davidgis.fr/download/pgRouting-1.02_pg-8.3.3.zip
Les tests ont été effectués sur TinyXP V9 sous VMWare Fedora 7 et VirtualBox sous Ubuntu Hardy Heron.

1. INSTALLATION

Une fois votre installation de PostgreSQL effectuée:

  1. téléchargez la version de pgrouting selon les liens ci-dessus;
  2. Décompressez l'archive zippée. Elle contient deux répertoires lib et share.
  3. Faîtes un GROS COPIER-COLLER (pas de race !) vers le répertoire C:\Program Files\PostgreSQL\8.X (où X=2,3)
Pour le chargement dans une base vierge avec PostGIS+pgRouting Ici je suppose que votre super-user=postgres et que "C:\Program Files\PostgreSQL\8.X\bin;C:\Program Files\PostgreSQL\8.X\lib" est dans le PATH de votre machine Depuis DOS
cd C:\Program Files\PostgreSQL\8.X\share\contrib
createdb -T template_postgis -U postgres testgis
psql -U postgres -d testgis -f routing_core.sql
psql -U postgres -d testgis -f routing_core_wrapper.sql
psql -U postgres -d testgis -f routing_tsp.sql
psql -U postgres -d testgis -f routing_ts¯wrapper.sql
psql -U postgres -d testgis -f routing_dd.sql
psql -U postgres -d testgis -f routing_dd_wrapper.sql
Le fichier routing_tsp.sql générera une erreur sur PG_MAGIC_BLOCK. J'essais pour le moment de le résoudre

2. COMPILATION (NOTES PERSONNELLES PAR RAPPORT A LA COMPILATION DU WIKI)

Pour la compilation, pas de secret, il faut suivre les instructions de http://pgrouting.postlbs.org/wiki/1.x/WindowsInstallationManual. Sauf pour les modifications de la dernière partie concernant pgRouting

Il faut en fait utiliser le ligne de compilation suivante en fonction des versions

2.a PostgreSQL 8.2.9

En pré-requis, il faut installer PostgreSQL 8.2.9 depuis l'installeur proposé sur http://www.postgresql.org La ligne est
cmake -G"MSYS Makefiles" -DWITH_TSP=ON -DWITH_DD=ON \
-DBoost_INCLUDE_DIR=/usr/local/include/boost \
-DCGAL_INCLUDE_DIR=/usr/local/cgal/include -DCGAL_LIBRARIES=/usr/local/cgal/lib/libCGAL.a \
 -DGAUL_INCLUDE_DIR=/usr/local/include -DGAUL_LIBRARIES=/usr/local/lib/libgaul.a \
 -DGAUL_UTIL_LIBRARIES=/usr/local/lib/libgaul_util.a
S'assurer aussi d'avoir "C:\Program Files\PostgreSQL\8.2\bin;C:\Program Files\PostgreSQL\8.2\lib" dans le PATH de sa machine

Quelques modifications sont à effectués dans les fichiers C:\Program Files\PostgreSQL\8.2\include\server, notamment pour port.h et pg_config_os.h

Il faut remplacer
ifndef HAVE_GETTIMEOFDAY
par
ifdef HAVE_GETTIMEOFDAY
ensuite Puis dans A COMPLETER puis dans le fichier pgrouting\extra\tsp\src\CMakeFiles\routing_tsp.dir\flags.make, à la fin de la ligne
CXX_FLAGS = ....
ajouter
 CXX_FLAGS = ...  -DBUILDING_DLL
ensuite
make

make install
Tout ce qui est généré (.dll et .sql) sera dans pgrouting\lib

2.b PostgreSQL 8.3.3

En pré-requis, ici il faut compiler soi-même PostgreSQL depuis les sources sous MinGW/Msys car les binaires fournis par l'installeur poseront problème si on compil depuis ces derniers.

Donc

tar xvjf postgresql-8.3.3.tar.bz2 cd postgresql-8.3.3 configure && make && make install

Tout sera installé dans /usr/local/pgsql.

La ligne du cmake de pgRouting sera alors
cmake -G"MSYS Makefiles" -DWITH_TSP=ON -DWITH_DD=ON \
-DBoost_INCLUDE_DIR=/usr/local/include/boost \
-DCGAL_INCLUDE_DIR=/usr/local/cgal/include -DCGAL_LIBRARIES=/usr/local/cgal/lib/libCGAL.a \
 -DGAUL_INCLUDE_DIR=/usr/local/include -DGAUL_LIBRARIES=/usr/local/lib/libgaul.a \
 -DGAUL_UTIL_LIBRARIES=/usr/local/lib/libgaul_util.a
-DPOSTGRESQL_INCLUDE_DIR=/usr/local/pgsql/include/server/ \
 -DPOSTGRESQL_LIBRARIES=/usr/local/pgsql/lib/
  • Faire les modifications de port.h et pg_config_os.h comme pour PostgreSQL 8.2.9
  • Faire aussi la petite modif pour pgrouting\extra\tsp\src\CMakeFiles\routing_tsp.dir\flags.make