Maintenant que vous avez compiler les sources du projet JTS, vous devez créer des librairies dynamiques C. En effet vous savez sans doute que le code source de PostGIS est en C et non en java, un convertion est donc nécessaire. Heureusement GNU met à disposition, avec son compilateur gcc
, un compilateur java permettant une telle convertion. Vous verrez de plus qu'il est aussi possible de générer des fichiers d'entête avec la commande gcjh
.
Pour créer ces librairies dynamique ainsi que les fichiers d'entêtes requis lors de la compilation de PostGIS que nous verrons dans la section suivante, je vous invite à suivre les quelques instructions ci-dessous :
machine ~ # cd jts-1.7.2 machine jts-1.7.2 # mkdir classes
gcj
:
machine jts-1.7.2 # gcj -C -d classes -classpath jts.jar $(find src/com/vividsolutions/jts -name '*.java')
JTSCLASSES
qui liste l'ensemble des classes requisent lors de la compimlation de PostGIS :
machine jts-1.7.2 # export JTSCLASSES="com.vividsolutions.jts.geom.Geometry \ com.vividsolutions.jts.geom.Point \ com.vividsolutions.jts.geom.MultiPoint \ com.vividsolutions.jts.geom.LineString \ com.vividsolutions.jts.geom.LinearRing \ com.vividsolutions.jts.geom.MultiLineString \ com.vividsolutions.jts.geom.Polygon \ com.vividsolutions.jts.geom.MultiPolygon \ com.vividsolutions.jts.geom.GeometryCollection \ com.vividsolutions.jts.geom.GeometryFactory \ com.vividsolutions.jts.geom.PrecisionModel \ com.vividsolutions.jts.geom.Coordinate \ com.vividsolutions.jts.geom.CoordinateSequenceFactory \ com.vividsolutions.jts.geom.CoordinateSequence \ com.vividsolutions.jts.geom.IntersectionMatrix \ com.vividsolutions.jts.io.WKTReader \ com.vividsolutions.jts.io.WKTWriter \ com.vividsolutions.jts.JTSVersion"
gcjh
:
machine jts-1.7.2 # mkdir -p include machine jts-1.7.2 # jts_include_path="com/vividsolutions/jts/" \ for i in geom io ;do mkdir -p include/${jts_include_path}/${i} ; done
machine jts-1.7.2 # cd include machine jts-1.7.2/include # gcjh -classpath ../jts.jar ${JTSCLASSES} machine jts-1.7.2/include # cd .. machine jts-1.7.2 #
jts.h
:
machine jts-1.7.2 # gcjh -I jts.jar -stub -o ./include/jts.h ${JTSCLASSES}
libjts.so
à partir de l'archive binaire jts.jar
:
machine jts-1.7.2 # gcj -fPIC -O2 -shared -o libjts.so ./jts.jar
machine jts-1.7.2 # gcj -C -classpath jts.jar src/com/vividsolutions/jts/geom/Geometry.java machine jts-1.7.2 # mv src/com/vividsolutions/jts/geom/Geometry*class ./
libstatis_geom.so
machine jts-1.7.2 # gcj -fPIC -classpath jts.jar -shared -o libstatic_geom.so "Geometry\$1.class"
include
(find ./include
pour s'en assurer) et les libraries dynamiques dans le répertoire où vous avez décompmressé les sources du projet JTS (jts-1.7.2
dans notre exemple).