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 :
- Rendez vous dans le répertoire des sources du projet JTS et créez le répertoire où seront stoquées les classes java compilées :
machine ~ # cd jts-1.7.2 machine jts-1.7.2 # mkdir classes
- Compilation de l'ensemble des classes java avec
gcj
:machine jts-1.7.2 # gcj -C -d classes -classpath jts.jar $(find src/com/vividsolutions/jts -name '*.java')
- Définition de la variable d'environnement
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"
- Création du répertoire et de ses sous-répertoires destinés à contenir les fichiers d'entêtes générés avec
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
- Rendez vous dans le répertoire nouvellemenet créé puis créez les fichiers d'entêtes correspondants :
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 #
- Génération du fichier d'entête principal
jts.h
:machine jts-1.7.2 # gcjh -I jts.jar -stub -o ./include/jts.h ${JTSCLASSES}
- Génération de la librairie dynamique
libjts.so
à partir de l'archive binairejts.jar
:machine jts-1.7.2 # gcj -fPIC -O2 -shared -o libjts.so ./jts.jar
- Compilation de la classe Geometry.java :
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 ./
- Génération de librairie
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).
Posted in version imprimable | Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | 3269 lectures
Posté par djay le 21 Mai, 2007 - 12:54.