wiki:bui/lin/convert

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

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.