662 lines
28 KiB
Plaintext
662 lines
28 KiB
Plaintext
|
Download & Unpack
|
||
|
|
||
|
ImageMagick builds on a variety of Unix and Unix-like operating systems
|
||
|
including Linux, Solaris, FreeBSD, Mac OS X, and others. A compiler is
|
||
|
required and fortunately almost all modern Unix systems have one. Download
|
||
|
ImageMagick.tar.gz from ftp.imagemagick.org or its mirrors and verify the
|
||
|
distribution against its message digest.
|
||
|
|
||
|
Unpack the distribution with this command:
|
||
|
|
||
|
$magick> tar xvfz ImageMagick.tar.gz
|
||
|
|
||
|
Now that you have the ImageMagick Unix/Linux source distribution unpacked,
|
||
|
let's configure it.
|
||
|
|
||
|
Configure
|
||
|
|
||
|
The configure script looks at your environment and decides what it can cobble
|
||
|
together to get ImageMagick compiled and installed on your system. This
|
||
|
includes finding a compiler, where your compiler header files are located
|
||
|
(e.g. stdlib.h), and if any delegate libraries are available for ImageMagick
|
||
|
to use (e.g. JPEG, PNG, TIFF, etc.). If you are willing to accept configure's
|
||
|
default options, and build from within the source directory, you can simply
|
||
|
type:
|
||
|
|
||
|
$magick> cd ImageMagick-7.0.9
|
||
|
$magick> ./configure
|
||
|
|
||
|
Watch the configure script output to verify that it finds everything that
|
||
|
you think it should. Pay particular attention to the last lines of the script
|
||
|
output. For example, here is a recent report from our system:
|
||
|
|
||
|
ImageMagick is configured as follows. Please verify that this configuration
|
||
|
matches your expectations.
|
||
|
|
||
|
Host system type: x86_64-unknown-linux-gnu
|
||
|
Build system type: x86_64-unknown-linux-gnu
|
||
|
|
||
|
Option Value
|
||
|
----------------------------------------------------------------------------
|
||
|
Shared libraries --enable-shared=yes yes
|
||
|
Static libraries --enable-static=yes yes
|
||
|
Module support --with-modules=yes yes
|
||
|
GNU ld --with-gnu-ld=yes yes
|
||
|
Quantum depth --with-quantum-depth=16 16
|
||
|
High Dynamic Range Imagery
|
||
|
--enable-hdri=no no
|
||
|
|
||
|
Delegate Configuration:
|
||
|
BZLIB --with-bzlib=yes yes
|
||
|
Autotrace --with-autotrace=yes yes
|
||
|
DJVU --with-djvu=yes no
|
||
|
DPS --with-dps=yes no
|
||
|
FlashPIX --with-fpx=yes no
|
||
|
FontConfig --with-fontconfig=yes yes
|
||
|
FreeType --with-freetype=yes yes
|
||
|
GhostPCL None pcl6 (unknown)
|
||
|
GhostXPS None gxps (unknown)
|
||
|
Ghostscript None gs (8.63)
|
||
|
result_ghostscript_font_dir='none'
|
||
|
Ghostscript fonts --with-gs-font-dir=default
|
||
|
Ghostscript lib --with-gslib=yes no (failed tests)
|
||
|
Graphviz --with-gvc=yes yes
|
||
|
JBIG --with-jbig= no
|
||
|
JPEG v1 --with-jpeg=yes yes
|
||
|
JPEG-2000 --with-jp2=yes yes
|
||
|
LCMS v1 --with-lcms=yes yes
|
||
|
LCMS v2 --with-lcms2=yes yes
|
||
|
LQR --with-lqr=yes no
|
||
|
Magick++ --with-magick-plus-plus=yes yes
|
||
|
OpenEXR --with-openexr=yes yes
|
||
|
PERL --with-perl=yes /usr/bin/perl
|
||
|
PNG --with-png=yes yes
|
||
|
RSVG --with-rsvg=yes yes
|
||
|
TIFF --with-tiff=yes yes
|
||
|
result_windows_font_dir='none'
|
||
|
Windows fonts --with-windows-font-dir=
|
||
|
WMF --with-wmf=yes yes
|
||
|
X11 --with-x= yes
|
||
|
XML --with-xml=yes yes
|
||
|
ZLIB --with-zlib=yes yes
|
||
|
|
||
|
X11 Configuration:
|
||
|
X_CFLAGS =
|
||
|
X_PRE_LIBS = -lSM -lICE
|
||
|
X_LIBS =
|
||
|
X_EXTRA_LIBS =
|
||
|
|
||
|
Options used to compile and link:
|
||
|
PREFIX = /usr/local
|
||
|
EXEC-PREFIX = /usr/local
|
||
|
VERSION = 6.4.8
|
||
|
CC = gcc -std=gnu99
|
||
|
CFLAGS = -fopenmp -g -O2 -Wall -W -pthread
|
||
|
MAGICK_CFLAGS = -fopenmp -g -O2 -Wall -W -pthread
|
||
|
CPPFLAGS = -I/usr/local/include/ImageMagick
|
||
|
PCFLAGS = -fopenmp
|
||
|
DEFS = -DHAVE_CONFIG_H
|
||
|
LDFLAGS = -lfreetype
|
||
|
MAGICK_LDFLAGS = -L/usr/local/lib -lfreetype
|
||
|
LIBS = -lMagickCore -llcms -ltiff -lfreetype -ljpeg
|
||
|
-lfontconfig -lXext -lSM -lICE -lX11 -lXt -lbz2 -lz
|
||
|
-lm -lgomp -lpthread -lltdl
|
||
|
CXX = g++
|
||
|
CXXFLAGS = -g -O2 -Wall -W -pthread
|
||
|
|
||
|
You can influence the choice of compiler, compilation flags, or libraries of the
|
||
|
configure script by setting initial values for variables in the configure
|
||
|
command line. These include, among others:
|
||
|
|
||
|
CC
|
||
|
Name of C compiler (e.g. cc -Xa) to use.
|
||
|
|
||
|
CXX
|
||
|
Name of C++ compiler to use (e.g. CC).
|
||
|
|
||
|
CFLAGS
|
||
|
Compiler flags (e.g. -g -O2) to compile C code.
|
||
|
|
||
|
CXXFLAGS
|
||
|
Compiler flags (e.g. -g -O2) to compile C++ code.
|
||
|
|
||
|
CPPFLAGS
|
||
|
Include paths (.e.g. -I/usr/local) to look for header files.
|
||
|
|
||
|
LDFLAGS
|
||
|
Library paths (.e.g. -L/usr/local) to look for libraries systems that
|
||
|
support the notion of a library run-path may require an additional
|
||
|
argument in order to find shared libraries at run time. For example,
|
||
|
the Solaris linker requires an argument of the form -R/path. Some
|
||
|
Linux systems will work with -rpath /usr/local/lib, while some other
|
||
|
Linux systems who's gcc does not pass -rpath to the linker require
|
||
|
an argument of the form -Wl,-rpath,/usr/local/lib.
|
||
|
|
||
|
LIBS
|
||
|
Extra libraries (.e.g. -l/usr/local/lib) required to link.
|
||
|
|
||
|
Here is an example of setting configure variables from the command line:
|
||
|
|
||
|
$magick> ./configure CC=c99 CFLAGS=-O2 LIBS=-lposix
|
||
|
|
||
|
Any variable (e.g. CPPFLAGS or LDFLAGS) which requires a directory path must
|
||
|
specify an absolute path rather than a relative path.
|
||
|
|
||
|
Configure can usually find the X include and library files automagically,
|
||
|
but if it doesn't, you can use the --x-includes=path and --x-libraries=path
|
||
|
options to specify their locations.
|
||
|
|
||
|
The configure script provides a number of ImageMagick specific
|
||
|
options. When disabling an option --disable-something is equivalent to
|
||
|
specifying --enable-something=no and --without-something is equivalent to
|
||
|
--with-something=no. The configure options are as follows (execute configure
|
||
|
--help to see all options).
|
||
|
|
||
|
ImageMagick options represent either features to be enabled, disabled,
|
||
|
or packages to be included in the build. When a feature is enabled (via
|
||
|
--enable-something), it enables code already present in ImageMagick. When a
|
||
|
package is enabled (via --with-something), the configure script will search
|
||
|
for it, and if is properly installed and ready to use (headers and built
|
||
|
libraries are found by compiler) it will be included in the build. The
|
||
|
configure script is delivered with all features disabled and all packages
|
||
|
enabled. In general, the only reason to disable a package is if a package
|
||
|
exists but it is unsuitable for the build (perhaps an old version or not
|
||
|
compiled with the right compilation flags).
|
||
|
|
||
|
Here are the optional features you can configure:
|
||
|
|
||
|
--enable-shared
|
||
|
build the shared libraries and support for loading coder and process
|
||
|
modules. Shared libraries are preferred because they allow programs
|
||
|
to share common code, making the individual programs much smaller. In
|
||
|
addition shared libraries are required in order for PerlMagick to be
|
||
|
dynamically loaded by an installed PERL (otherwise an additional PERL
|
||
|
(PerlMagick) must be installed.
|
||
|
|
||
|
ImageMagick built with delegates (see MAGICK PLUG-INS below) can pose
|
||
|
additional challenges. If ImageMagick is built using static libraries (the
|
||
|
default without --enable-shared) then delegate libraries may be built as
|
||
|
either static libraries or shared libraries. However, if ImageMagick is
|
||
|
built using shared libraries, then all delegate libraries must also be
|
||
|
built as shared libraries. Static libraries usually have the extension
|
||
|
.a, while shared libraries typically have extensions like .so, .sa, or
|
||
|
.dll. Code in shared libraries normally must compiled using a special
|
||
|
compiler option to produce Position Independent Code (PIC). The only
|
||
|
time this not necessary is if the platform compiles code as PIC by
|
||
|
default.
|
||
|
|
||
|
PIC compilation flags differ from vendor to vendor (gcc's is
|
||
|
-fPIC). However, you must compile all shared library source with the
|
||
|
same flag (for gcc use -fPIC rather than -fpic). While static libraries
|
||
|
are normally created using an archive tool like ar, shared libraries
|
||
|
are built using special linker or compiler options (e.g. -shared for gcc).
|
||
|
|
||
|
If --enable-shared is not specified, a new PERL interpreter (PerlMagick)
|
||
|
is built which is statically linked against the PerlMagick extension. This
|
||
|
new interpreter is installed into the same directory as the ImageMagick
|
||
|
utilities. If --enable-shared is specified, the PerlMagick extension is
|
||
|
built as a dynamically loadable object which is loaded into your current
|
||
|
PERL interpreter at run-time. Use of dynamically-loaded extensions is
|
||
|
preferable over statically linked extensions so use --enable-shared if
|
||
|
possible (note that all libraries used with ImageMagick must be shared
|
||
|
libraries!).
|
||
|
|
||
|
--disable-static
|
||
|
static archive libraries (with extension .a) are not built. If you
|
||
|
are building shared libraries, there is little value to building static
|
||
|
libraries. Reasons to build static libraries include: 1) they can be
|
||
|
easier to debug; 2) clients do not have external dependencies (i.e.
|
||
|
libMagick.so); 3) building PIC versions of the delegate libraries may
|
||
|
take additional expertise and effort; 4) you are unable to build shared
|
||
|
libraries.
|
||
|
|
||
|
--disable-installed
|
||
|
disable building an installed ImageMagick (default enabled).
|
||
|
|
||
|
By default the ImageMagick build is configured to formally install
|
||
|
into a directory tree. This the most secure and reliable way to install
|
||
|
ImageMagick. Use this option to configure ImageMagick so that it doesn't
|
||
|
use hard-coded paths and locates support files by computing an offset path
|
||
|
from the executable (or from the location specified by the MAGICK_HOME
|
||
|
environment variable. The uninstalled configuration is ideal for binary
|
||
|
distributions which are expected to extract and run in any location.
|
||
|
|
||
|
--enable-ccmalloc
|
||
|
enable 'ccmalloc' memory debug support (default disabled).
|
||
|
|
||
|
--enable-prof
|
||
|
enable 'prof' profiling support (default disabled).
|
||
|
|
||
|
--enable-gprof
|
||
|
enable 'gprof' profiling support (default disabled).
|
||
|
|
||
|
--enable-gcov
|
||
|
enable 'gcov' profiling support (default disabled).
|
||
|
|
||
|
--disable-openmp
|
||
|
disable OpenMP (default enabled).
|
||
|
|
||
|
Certain ImageMagick algorithms, for example convolution, can achieve
|
||
|
a significant speed-up with the assistance of the OpenMP API when
|
||
|
running on modern dual and quad-core processors.
|
||
|
|
||
|
--disable-largefile
|
||
|
disable support for large (64 bit) file offsets.
|
||
|
|
||
|
By default, ImageMagick is compiled with support for large files (>
|
||
|
2GB on a 32-bit CPU) if the operating system supports large files. Some
|
||
|
applications which use the ImageMagick library may also require support
|
||
|
for large files. By disabling support for large files via
|
||
|
--disable-largefile, dependent applications do not require special
|
||
|
compilation options for large files in order to use the library.
|
||
|
|
||
|
Here are the optional packages you can configure:
|
||
|
|
||
|
--enable-legacy-support
|
||
|
install legacy command-line utilities (default disabled).
|
||
|
|
||
|
--with-quantum-depth
|
||
|
number of bits in a pixel quantum (default 16).
|
||
|
|
||
|
Use this option to specify the number of bits to use per pixel quantum
|
||
|
(the size of the red, green, blue, and alpha pixel components). For
|
||
|
example, --with-quantum-depth=8 builds ImageMagick using 8-bit quantums.
|
||
|
Most computer display adapters use 8-bit quantums. Currently supported
|
||
|
arguments are 8, 16, or 32. We recommend the default of 16 because
|
||
|
some image formats support 16 bits-per-pixel. However, this option is
|
||
|
important in determining the overall run-time performance of ImageMagick.
|
||
|
|
||
|
The number of bits in a quantum determines how many values it may
|
||
|
contain. Each quantum level supports 256 times as many values as the
|
||
|
previous level. The following table shows the range available for various
|
||
|
quantum sizes.
|
||
|
|
||
|
Quantum Depth Valid Range (Decimal) Valid Range (Hex)
|
||
|
8 0-255 00-FF
|
||
|
16 0-65535 0000-FFFF
|
||
|
32 0-4294967295 00000000-FFFFFFFF
|
||
|
|
||
|
Larger pixel quantums can cause ImageMagick to run more slowly and to
|
||
|
require more memory. For example, using sixteen-bit pixel quantums can
|
||
|
cause ImageMagick to run 15% to 50% slower (and take twice as much memory)
|
||
|
than when it is built to support eight-bit pixel quantums.
|
||
|
|
||
|
The amount of virtual memory consumed by an image can be computed by
|
||
|
the equation (5 * Quantum Depth * Rows * Columns) / 8. This an important
|
||
|
consideration when resources are limited, particularly since processing
|
||
|
an image may require several images to be in memory at one time. The
|
||
|
following table shows memory consumption values for a 1024x768 image:
|
||
|
|
||
|
Quantum Depth Virtual Memory
|
||
|
8 3MB
|
||
|
16 8MB
|
||
|
32 15MB
|
||
|
|
||
|
--enable-hdri
|
||
|
accurately represent the wide range of intensity levels (experimental).
|
||
|
|
||
|
--enable-osx-universal-binary
|
||
|
build a universal binary on OS X.
|
||
|
|
||
|
--without-modules
|
||
|
disable support for dynamically loadable modules.
|
||
|
|
||
|
Image coders and process modules are built as loadable modules which are
|
||
|
installed under the directory [prefix]/lib/ImageMagick-X.X.X/modules-QN
|
||
|
(where 'N' equals 8, 16, or 32 depending on the quantum depth) in the
|
||
|
subdirectories coders and filters respectively. The modules build option
|
||
|
is only available in conjunction with --enable-shared. If --enable-shared
|
||
|
is not also specified, support for building modules is disabled. Note that
|
||
|
if --enable-shared and --disable-modules are specified, the module loader
|
||
|
is active (allowing extending an installed ImageMagick by simply copying
|
||
|
a module into place) but ImageMagick itself is not built using modules.
|
||
|
|
||
|
--with-cache
|
||
|
set pixel cache threshold (defaults to available memory).
|
||
|
|
||
|
Specify a different image pixel cache threshold with this option. This
|
||
|
sets the maximum amount of heap memory that ImageMagick is allowed to
|
||
|
consume before switching to using memory-mapped temporary files to store
|
||
|
raw pixel data.
|
||
|
|
||
|
--without-threads
|
||
|
disable threads support.
|
||
|
|
||
|
By default, the ImageMagick library is compiled with multi-thread
|
||
|
support. If this undesirable, specify --without-threads.
|
||
|
|
||
|
--with-frozenpaths
|
||
|
enable frozen delegate paths.
|
||
|
|
||
|
Normally, external program names are substituted into the delegates.xml
|
||
|
configuration file without full paths. Specify this option to enable
|
||
|
saving full paths to programs using locations determined by configure.
|
||
|
This useful for environments where programs are stored under multiple
|
||
|
paths, and users may use different PATH settings than the person who
|
||
|
builds ImageMagick.
|
||
|
|
||
|
--without-magick-plus-plus
|
||
|
disable build/install of Magick++.
|
||
|
|
||
|
Disable building Magick++, the C++ application programming interface
|
||
|
to ImageMagick. A suitable C++ compiler is required in order to build
|
||
|
Magick++. Specify the CXX configure variable to select the C++ compiler
|
||
|
to use (default g++), and CXXFLAGS to select the desired compiler
|
||
|
optimization and debug flags (default -g -O2). Antique C++ compilers
|
||
|
will normally be rejected by configure tests so specifying this option
|
||
|
should only be necessary if Magick++ fails to compile.
|
||
|
|
||
|
--with-package-release-name
|
||
|
encode this name into the shared library name (see libtools -release
|
||
|
option).
|
||
|
|
||
|
--without-perl
|
||
|
disable build/install of PerlMagick, or
|
||
|
|
||
|
By default, PerlMagick is conveniently compiled and installed as part
|
||
|
of ImageMagick's normal configure, make, sudo make install process. When
|
||
|
--without-perl is specified, you must first install ImageMagick, change to
|
||
|
the PerlMagick subdirectory, build, and finally install PerlMagick. Note,
|
||
|
PerlMagick is configured even if --without-perl is specified. If the
|
||
|
argument --with-perl=/path/to/perl is supplied, /../path/to/perl is be
|
||
|
taken as the PERL interpreter to use. This important in case the perl
|
||
|
executable in your PATH is not PERL5, or is not the PERL you want to use.
|
||
|
|
||
|
--with-perl=PERL
|
||
|
use specified Perl binary to configure PerlMagick.
|
||
|
|
||
|
--with-perl-options=OPTIONS
|
||
|
options to pass on command-line when generating PerlMagick's Makefile
|
||
|
from Makefile.PL.
|
||
|
|
||
|
The PerlMagick module is normally installed using the Perl interpreter's
|
||
|
installation PREFIX, rather than ImageMagick's. If ImageMagick's
|
||
|
installation prefix is not the same as PERL's PREFIX, then you
|
||
|
may find that PerlMagick's sudo make install step tries to install
|
||
|
into a directory tree that you don't have write permissions to. This
|
||
|
common when PERL is delivered with the operating system or on Internet
|
||
|
Service Provider (ISP) web servers. If you want PerlMagick to install
|
||
|
elsewhere, then provide a PREFIX option to PERL's configuration step
|
||
|
via "--with-perl-options=PREFIX=/some/place". Other options accepted by
|
||
|
MakeMaker are 'LIB', 'LIBPERL_A', 'LINKTYPE', and 'OPTIMIZE'. See the
|
||
|
ExtUtils::MakeMaker(3) manual page for more information on configuring
|
||
|
PERL extensions.
|
||
|
|
||
|
--without-bzlib
|
||
|
disable BZLIB support.
|
||
|
|
||
|
--without-dps
|
||
|
disable Display Postscript support.
|
||
|
|
||
|
--with-fpx
|
||
|
enable FlashPIX support.
|
||
|
|
||
|
--without-freetype
|
||
|
disable TrueType support.
|
||
|
|
||
|
--with-gslib
|
||
|
enable Ghostscript library support.
|
||
|
|
||
|
--without-jbig
|
||
|
disable JBIG support.
|
||
|
|
||
|
--without-jpeg
|
||
|
disable JPEG support.
|
||
|
|
||
|
--without-jp2
|
||
|
disable JPEG v2 support.
|
||
|
|
||
|
--without-lcms
|
||
|
disable lcms (v1.1X) support
|
||
|
|
||
|
--without-lcms2
|
||
|
disable lcms (v2.X) support
|
||
|
|
||
|
--without-lzma
|
||
|
disable LZMA support.
|
||
|
|
||
|
--without-png
|
||
|
disable PNG support.
|
||
|
|
||
|
--without-tiff
|
||
|
disable TIFF support.
|
||
|
|
||
|
--without-wmf
|
||
|
disable WMF support.
|
||
|
|
||
|
--with-fontpath
|
||
|
prepend to default font search path.
|
||
|
|
||
|
--with-gs-font-dir
|
||
|
directory containing Ghostscript fonts.
|
||
|
|
||
|
Specify the directory containing the Ghostscript Postscript Type 1 font
|
||
|
files (e.g. n022003l.pfb) so that they can be rendered using the FreeType
|
||
|
library. If the font files are installed using the default Ghostscript
|
||
|
installation paths (${prefix}/share/ghostscript/fonts), they should
|
||
|
be discovered automagically by configure and specifying this option is
|
||
|
not necessary. Specify this option if the Ghostscript fonts fail to be
|
||
|
located automagically, or the location needs to be overridden.
|
||
|
|
||
|
--with-windows-font-dir
|
||
|
directory containing MS-Windows fonts.
|
||
|
|
||
|
Specify the directory containing MS-Windows-compatible fonts. This not
|
||
|
necessary when ImageMagick is running under MS-Windows.
|
||
|
|
||
|
--without-xml
|
||
|
disable XML support.
|
||
|
|
||
|
--without-zlib
|
||
|
disable ZLIB support.
|
||
|
|
||
|
--without-x
|
||
|
don't use the X Window System.
|
||
|
|
||
|
By default, ImageMagick uses the X11 delegate libraries if they are
|
||
|
available. When --without-x is specified, use of X11 is disabled. The
|
||
|
display, animate, and import sub-commands are not included. The remaining
|
||
|
sub-commands have reduced functionality such as no access to X11 fonts
|
||
|
(consider using Postscript or TrueType fonts instead).
|
||
|
|
||
|
--with-share-path=DIR
|
||
|
Alternate path to share directory (default share/ImageMagick).
|
||
|
|
||
|
--with-libstdc=DIR
|
||
|
use libstdc++ in DIR (for GNU C++).
|
||
|
|
||
|
While configure is designed to ease installation of ImageMagick, it often
|
||
|
discovers problems that would otherwise be encountered later when compiling
|
||
|
ImageMagick. The configure script tests for headers and libraries by
|
||
|
executing the compiler (CC) with the specified compilation flags (CFLAGS),
|
||
|
pre-processor flags (CPPFLAGS), and linker flags (LDFLAGS). Any errors are
|
||
|
logged to the file config.log. If configure fails to discover a header or
|
||
|
library please review this log file to determine why, however, please be
|
||
|
aware that *errors in the config.log are normal* because configure works by
|
||
|
trying something and seeing if it fails. An error in config.log is only a
|
||
|
problem if the test should have passed on your system.
|
||
|
|
||
|
Common causes of configure failures are: 1) a delegate header is not in the
|
||
|
header include path (CPPFLAGS -I option); 2) a delegate library is not in
|
||
|
the linker search/run path (LDFLAGS -L/-R option); 3) a delegate library is
|
||
|
missing a function (old version?); or 4) compilation environment is faulty.
|
||
|
|
||
|
If all reasonable corrective actions have been tried and the problem appears
|
||
|
be due to a flaw in the configure script, please send a bug report to the
|
||
|
ImageMagick Defect Support Forum. All bug reports should contain the operating
|
||
|
system type (as reported by uname -a) and the compiler/compiler-version. A
|
||
|
copy of the configure script output and/or the relevant portion of config.log
|
||
|
file may be valuable in order to find the problem. If you post portions
|
||
|
of config.log, please also send a script of the configure output and a
|
||
|
description of what you expected to see (and why) so the failure you are
|
||
|
observing can be identified and resolved.
|
||
|
|
||
|
ImageMagick is now configured and ready to build
|
||
|
|
||
|
Build
|
||
|
|
||
|
Once ImageMagick is configured, these standard build targets are available
|
||
|
from the generated make files:
|
||
|
|
||
|
make
|
||
|
build ImageMagick.
|
||
|
|
||
|
sudo make install
|
||
|
install ImageMagick.
|
||
|
|
||
|
make check
|
||
|
Run tests using the installed ImageMagick (sudo make install must be
|
||
|
done first). Ghostscript is a prerequisite, otherwise the EPS, PS,
|
||
|
and PDF tests will fail.
|
||
|
|
||
|
make clean
|
||
|
Remove everything in the build directory created by make.
|
||
|
|
||
|
make distclean
|
||
|
remove everything in the build directory created by configure and
|
||
|
make. This useful if you want to start over from scratch.
|
||
|
|
||
|
make uninstall
|
||
|
Remove all files from the system which are (or would be) installed by sudo
|
||
|
make install using the current configuration. Note that this target is
|
||
|
imperfect for PerlMagick since Perl no longer supports an uninstall
|
||
|
target.
|
||
|
|
||
|
In most cases you will simply want to compile ImageMagick with this command:
|
||
|
|
||
|
$magick> make
|
||
|
|
||
|
Once built, you can optionally install ImageMagick on your system as
|
||
|
discussed below.
|
||
|
|
||
|
Install
|
||
|
|
||
|
Now that ImageMagick is configured and built, type:
|
||
|
|
||
|
$magick> make install
|
||
|
|
||
|
to install it.
|
||
|
|
||
|
By default, ImageMagick is installs binaries in /../usr/local/bin, libraries
|
||
|
in /../usr/local/lib, header files in /../usr/local/include and documentation
|
||
|
in /../usr/local/share. You can specify an alternative installation prefix
|
||
|
other than /../usr/local by giving configure the option --prefix=PATH. This
|
||
|
valuable in case you don't have privileges to install under the default
|
||
|
paths or if you want to install in the system directories instead.
|
||
|
|
||
|
To confirm your installation of the ImageMagick distribution was successful,
|
||
|
ensure that the installation directory is in your executable search path
|
||
|
and type:
|
||
|
|
||
|
$magick> display
|
||
|
|
||
|
The ImageMagick logo is displayed on your X11 display.
|
||
|
|
||
|
To verify the ImageMagick build configuration, type:
|
||
|
|
||
|
$magick> identify -list configure
|
||
|
|
||
|
To list which image formats are supported , type:
|
||
|
|
||
|
$magick> identify -list format
|
||
|
|
||
|
For a more comprehensive test, you run the ImageMagick test suite by typing:
|
||
|
|
||
|
$magick> make check
|
||
|
|
||
|
Ghostscript is a prerequisite, otherwise the EPS, PS, and PDF tests will
|
||
|
fail. Note that due to differences between the developer's environment and
|
||
|
your own it is possible that a few tests may fail even though the results are
|
||
|
ok. Differences between the developer's environment environment and your own
|
||
|
may include the compiler, the CPU type, and the library versions used. The
|
||
|
ImageMagick developers use the current release of all dependent libraries.
|
||
|
|
||
|
Linux-specific Build instructions
|
||
|
|
||
|
Download ImageMagick.src.rpm from ftp.imagemagick.org or its mirrors and
|
||
|
verify the distribution against its message digest.
|
||
|
|
||
|
Build ImageMagick with this command:
|
||
|
|
||
|
$magick> rpmbuild --rebuild ImageMagick.src.rpm
|
||
|
|
||
|
After the build you, locate the RPMS folder and install the ImageMagick
|
||
|
binary RPM distribution:
|
||
|
|
||
|
$magick> rpm -ivh ImageMagick-7.0.0-?.*.rpm
|
||
|
|
||
|
MinGW-specific Build instructions
|
||
|
|
||
|
Although you can download and install delegate libraries yourself, many
|
||
|
are already available in the GnuWin32 distribution. Download and install
|
||
|
whichever delegate libraries you require such as JPEG, PNG, TIFF, etc. Make
|
||
|
sure you specify the development headers when you install a package. Next
|
||
|
type,
|
||
|
|
||
|
$magick> tar jxvf ImageMagick-7.0.0-?.tar.bz2
|
||
|
$magick> cd ImageMagick-7.0.0
|
||
|
$magick> export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"
|
||
|
$magick> export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"
|
||
|
$magick> ./configure --without-perl
|
||
|
$magick> make $magick> sudo make install
|
||
|
|
||
|
Dealing with Unexpected Problems
|
||
|
|
||
|
Chances are the download, configure, build, and install of ImageMagick went
|
||
|
flawlessly as it is intended, however, certain systems and environments may
|
||
|
cause one or more steps to fail. We discuss a few problems we've run across
|
||
|
and how to take corrective action to ensure you have a working release
|
||
|
of ImageMagick
|
||
|
|
||
|
Build Problems
|
||
|
|
||
|
If the build complains about missing dependencies (e.g. .deps/source.PLO),
|
||
|
add --disable-dependency-tracking to your configure command line.
|
||
|
|
||
|
Some systems may fail to link at build time due to unresolved symbols. Try
|
||
|
adding the LDFLAGS to the configure command line:
|
||
|
|
||
|
$magick> configure LDFLAGS='-L/usr/local/lib -R/usr/local/lib'
|
||
|
|
||
|
Dynamic Linker Run-time Bindings
|
||
|
|
||
|
On some systems, ImageMagick may not find its shared library, libMagick.so. Try
|
||
|
running the ldconfig with the library path:
|
||
|
|
||
|
$magick> /sbin/ldconfig /usr/local/lib
|
||
|
|
||
|
Solaris and Linux systems have the ldd command which is useful to track which
|
||
|
libraries ImageMagick depends on:
|
||
|
|
||
|
$magick> ldd `which convert`
|
||
|
|
||
|
Delegate Libraries
|
||
|
|
||
|
On occasion you may receive these warnings:
|
||
|
|
||
|
no decode delegate for this image format
|
||
|
no encode delegate for this image format
|
||
|
|
||
|
This exception indicates that an external delegate library or its headers
|
||
|
were not available when ImageMagick was built. To add support for the image
|
||
|
format, download and install the requisite delegate library and its header
|
||
|
files and reconfigure, rebuild, and reinstall ImageMagick. As an example,
|
||
|
lets add support for the JPEG image format. First we install the JPEG RPMS:
|
||
|
|
||
|
$magick> yum install libjpeg libjpeg-devel
|
||
|
|
||
|
Now reconfigure, rebuild, and reinstall ImageMagick. To verify JPEG is now
|
||
|
properly supported within ImageMagick, use this command:
|
||
|
|
||
|
$magick> identify -list format
|
||
|
|
||
|
You should see a mode of rw- associated with the JPEG tag. This mode means
|
||
|
the image can be read or written and can only support one image per image
|
||
|
file.
|
||
|
|
||
|
PerlMagick
|
||
|
|
||
|
If PerlMagick fails to link with a message similar to libperl.a is not found,
|
||
|
rerun configure with the --enable-shared or --enable-shared --with-modules
|
||
|
options.
|