In an openSUSE 11.1
I download, compile and install ImageMagick
via:
wget ftp://.../pub/graphics/ImageMagick/ImageMagick-6.7.7-0.zip
unzip ImageMagick-6.7.7-0.zip
cd ImageMagick-6.7.7-0
./configure --prefix=/usr/local/ImageMagick
make
make install
Everything works nicelly until I discover that JPG is not supported:
identify -list format | grep -i jpg
[nothing related to JPG returned]
So I reconfigure and recompile using:
./configure --prefix=/usr/local/ImageMagick --with-jpeg=yes --with-jp2=yes
make
make install
But that changes nothing.
I end up uninstalling:
make uninstall
and installing via zypper
:
zypper install ImageMagick
This installed version 6.4.3 and now it does support JPG:
identify -list format | grep -i jpg
JPG* JPEG rw- Joint Photographic Experts Group JFIF format
Any idea on what is going on here? What is a possible reason that this capability of ImageMagick
was not there when compiled from source but was there when installed from rpm?
Note that I don't necessarily care a lot about ImageMagick (since it now works), but generally about his kind of behaviour, becase in one way or another I've seen this happen in other ocasions as well.
There are at least two probable causes of difference between the 2 methods:
zypper takes care of the dependencies. So that if ImageMagick depends on a dynamicly-linked library you don't have, it will retrieve it so that ImageMagick can provide the feature related to that library. In that case, the executable resulting of your own compilation should work now that ImageMagick and its dependencies are installed.
zypper (AFAIK) doesn't compile the package, it only install a pre-compiled binary. There are dependencies that are needed only at compile-time to be able to compile specific features, usually headers of libraries (-dev or -devel packages). If you don't have them, configure may omit to enable the feature for compilation with more or less verbosity. To install those, the right command seems to be:
# zypper in -d imagemagick
Looks like you forget to
make clean
/make mrproper
after 2ndconfigure
with other options.