/ Snippets

ImageMagick, compile with delegates

Afin de pouvoir resizer les images que nous stockons dans mongo, via node (easyimage), j'ai récemment dû packager un Imagemagick portable pour pouvoir le livrer sur un serveur sans le net, et sans gcc.

Voici un rapide snippet pour évité les not found sur les Delegates.
Problème fréquent de par leurs particularités à la config.

Script install.sh à éxecuter :

#!/bin/bash

# Structure to work, for example in a folder test
# ./test
# ./test/install.sh
# ./test/ImageMagick.tar.gz
# ./test/jpegsrc.v9b.tar
# ./test/libpng-1.6.31.tar
# ./test/zlib-1.2.11.tar.gz

# Conf Var
folder=/home/user/toto/test
release=ImageMagick-7.0.7-10

# Conf Tar
tar -xzf ImageMagick.tar.gz
tar -xf jpegsrc.v9b.tar
tar -xf libpng-1.6.31.tar
tar -xzf zlib-1.2.11.tar.gz

# Package
mv jpeg-9b $release/jpeg
mv libpng-1.6.31 $release/png
mv zlib-1.2.11 $release/zlib

cd $folder/$release/jpeg
./configure --enable-shared --prefix="$folder/$release/jpeg"
make clean
make
make install

cd $folder/$release/zlib
./configure --enable-shared --prefix="$folder/$release/zlib"
make clean
make
make install

cd $folder/$release/png
CPPFLAGS="-I$folder/$release/zlib/" LDFLAGS="-L$folder/$release/zlib/" ./configure --enable-shared --prefix="$folder/$release/png" --libdir="$folder/$release/zlib"
make clean
make
make install

cd $folder/$release
PKG_CONFIG_PATH="$folder/$release/png:$folder/$release/zlib/lib/pkgconfig" ./configure --enable-shared --enable-delegate-build --with-x=no --without-perl --with-freetype=no --with-magick-plus-plus=no --without-frozenpaths --with-bzlib=yes --with-png=yes --with-jpeg=yes --prefix="$folder/$release/" -x-libraries="$folder/$release/"
make clean
make
make install

Pierre Brisorgueil

Pierre Brisorgueil

Bi-Diplôme commerce ESSCA, ingénieur ECAM. Passionné par le Management et l'innovation. Actuellement Manager Data Viz chez Société Générale, et auto-entrepreneur yourcreation.fr.

Read More