Compilation de Imagemagick pour Linux
Introduction
Les applications SCENARI utilisent l'utilitaire convert de la suite ImageMagick pour toute manipulation d'image.
Par défaut nous incluons une version statique de cet exécutable qu'il est nécessaire de compiler à la main.
| Conseil |
|---|
Cette procédure à été élaboré sur Ubuntu 7.10 en se basant sur la procédure pour MacOSX. |
| Attention ! |
|---|
La difficulté de la production d'un convert statique réside dans le fait que le make standard de Imagemagick, même configurée pour produire des binaires statiques, ne marche pas: les binaires produits, bien que visiblement contenant toutes les dépendances (au vue de leurs taille) sont toujours liés aux versions dynamiques des dépendances. |
Prérequis
- Les sources de Imagemagick ( http://www.imagemagick.org/script/download.php)
- Les sources du delegate jbigkit
- Les paquetages dev de libpng, libjpeg, libtiff, libbz2, libz, libjasper, libxml2, liblcms, libfreetype
Procédure
- Compilez jbigkit dans un préfix quelqonque:
$ make $ cp libjbig/libjbig.a /home/sam/dev/im/bui/lib $ cp libjbig/jbig.h /home/sam/dev/im/bui/include $ ranlib /home/sam/dev/im/bui/lib/libjbig.a
- Configurez ImageMagick:
$ ./configure --prefix=/home/sam/dev/im/bui --enable-delegate-build CPPFLAGS='-I/home/sam/dev/im/bui/include' LDFLAGS='-L/home/sam/dev/im/bui/lib' --disable-shared --without-modules --without-x --without-openexr --without-wmf --without-perl --with-xml --without-gvc --without-magick-plus-plus
- Lancez et "installez" ImageMagick:
$ make $ make install
- Relancez "à la main" la compilation de l'utilitaire convert:
$ gcc utilities/convert.o -o convert -Lmagick/.libs -Lwand/.libs -static -lMagickWand -lMagickCore -lm -ltiff -lz -lbz2 -lpng -ljasper -ljpeg -lxml2 -llcms -lfreetype -L/home/sam/dev/im/bui/lib -ljbig -enable_shared -lpthread
- Le binaire convert aussi obtenu est enfin réellement statique par rapport aux delagates.