<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html version="-//W3C//DTD XHTML 1.1//EN"
      xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.w3.org/1999/xhtml
                          http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  <meta name="google-site-verification" content="MxsMq6bdLOx0KSuz1MY6yG9ZTIJ7_7DVRfl5NCAT5Yg"/>
  <title>ImageMagick: Advanced Unix Source Installation</title>
  <meta http-equiv="Content-Language" content="en-US"/>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
  <meta name="Application-name" content="ImageMagick"/>
  <meta name="Description" content="Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats.  In addition resize, rotate, shear, distort and transform images automagically."/>
  <meta name="Application-url" content="http://www.imagemagick.org"/>
  <meta name="Generator" content="PHP"/>
  <meta name="Keywords" content="advanced, unix, source, installation, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Image, Processing, Automagically"/>
  <meta name="Rating" content="GENERAL"/>
  <meta name="Robots" content="INDEX, FOLLOW"/>
  <meta name="Generator" content="ImageMagick Studio LLC"/>
  <meta name="Author" content="ImageMagick Studio LLC"/>
  <meta name="Revisit-after" content="2 DAYS"/>
  <meta name="Resource-type" content="document"/>
  <meta name="Copyright" content="Copyright (c) 1999-2011 ImageMagick Studio LLC"/>
  <meta name="Distribution" content="Global"/>
  <link rel="icon" href="../images/wand.png"/>
  <link rel="shortcut icon" href="../images/wand.ico"  type="images/x-icon"/>
  <link rel="canonical" href="http://www.imagemagick.org" />
  <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
  <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />
  <link rel="stylesheet" type="text/css" href="http://www.imagemagick.org/fancybox/jquery.fancybox-1.3.4.css" media="screen" />
  <style type="text/css" media="all">
    @import url("../www/magick.css");
  </style>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
  <script type="text/javascript" src="http://www.imagemagick.org/fancybox/jquery.fancybox-1.3.4.pack.js"></script>
  <script type="text/javascript">
    $(document).ready(function() {
      $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({
        'transitionIn'  : 'elastic',
        'transitionOut' : 'elastic',
        'overlayShow'   : false,
        'opacity'       : true
      });
    });
  </script>
</head>

<body id="www-imagemagick-org">
<div class="titlebar">
<div style="margin: 17px auto; float: left;">
  <script type="text/javascript">
  <!--
    google_ad_client = "pub-3129977114552745";
    google_ad_slot = "5439289906";
    google_ad_width = 728;
    google_ad_height = 90;
  //-->
  </script>
  <script type="text/javascript"
    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
  </script>
</div>
<a href="http://www.imagemagick.org/discourse-server/">
  <img src="../images/logo.jpg"
  alt="ImageMagick Logo"
  style="width: 123px; height: 118px; border: 0px; float: right;" /></a>
<a href="../index.html">
  <img src="../images/sprite.jpg"
  alt="ImageMagick Sprite"
  style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
</div>

<div class="westbar">

<div class="menu">
  <a title="About ImageMagick" href="../index.html">About ImageMagick</a>
</div>
<div class="menu">
  <a title="Binary Releases" href="../www/binary-releases.html">Binary Releases</a>
</div>
<div class="sub">
    <a title="Binary Release: Unix" href="../www/binary-releases.html#unix">Unix</a>
</div>
<div class="sub">
    <a title="Binary Release: MacOS X" href="../www/binary-releases.html#macosx">Mac OS X</a>
</div>
<div class="sub">
    <a title="Binary Release: iOS" href="../www/binary-releases.html#iOS">iOS</a>
</div>
<div class="sub">
    <a title="Binary Release: Windows" href="../www/binary-releases.html#windows">Windows</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Command-line Tools" href="../www/command-line-tools.html">Command-line Tools</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Processing" href="../www/command-line-processing.html">Processing</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Options" href="../www/command-line-options.html">Options</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
</div>
<div class="menu">
  <a title="Program Interfaces" href="../www/api.html">Program Interfaces</a>
</div>
<div class="sub">
    <a title="Program Interface: MagickWand" href="../www/magick-wand.html">MagickWand</a>
</div>
<div class="sub">
    <a title="Program Interface: MagickCore" href="../www/magick-core.html">MagickCore</a>
</div>
<div class="sub">
    <a title="Program Interface: PerlMagick" href="../www/perl-magick.html">PerlMagick</a>
</div>
<div class="sub">
    <a title="Program Interface: Magick++" href="../www/magick++.html">Magick++</a>
</div>
<div class="sep"></div>
<div  class="menu">
   <a title="Install from Source" href="../www/install-source.html">Install from Source</a>
</div>
<div class="sub">
    <a title="Install from Source: Unix" href="../www/install-source.html#unix">Unix</a>
</div>
<div class="sub">
    <a title="Install from Source: Windows" href="../www/install-source.html#windows">Windows</a>
 </div>
<div class="menu">
  <a title="Resources" href="../www/resources.html">Resources</a>
</div>
<div class="menu">
  <a title="Architecture" href="../www/architecture.html">Architecture</a>
</div>
<div class="menu">
  <a title="Download" href="../www/download.html">Download</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Search" href="../www/search.html">Search</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Site Map" href="../www/sitemap.html">Site Map</a>
</div>
<div  class="sub">
  <a title="Site Map: Links" href="../www/links.html">Links</a>
</div>
<div class="sep"></div>
<div  class="menu">
  <a rel="follow" title="Sponsors" href="../www/sponsors.html">Sponsors:</a>

<a href="http://www.networkredux.com">
  <img src="../images/networkredux.png" width="140" height="31" alt="[sponsor]"
  style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a>
<div class="sponsbox">
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Autoteile" href="http://www.q11-shop.de">Autoteile</a><!-- 201205010540s suvalj -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting" href="http://www.micfo.com">Web Hosting</a><!-- 209901010090s golestan -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Search engine optimisation" href="http://www.seomoves.com.au">Search engine optimisation</a><!-- 201110010090s jen@seo lowprofilelinks -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting Deals" href="http://www.webhostingdeals.org">Web Hosting Deals</a><!-- 201111010270 chee.hoa darin -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Autos part" href="http://www.pkwteile.de/autoteile">Autos part</a><!-- 201112010090s jr@pkwte... -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingsecretrevealed.com">Web Hosting Secret Revealed</a><!-- 201204010540 iamchee jerry -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting Break" href="http://www.webhostingbreak.com">Web Hosting Break</a><!-- 201109010090 ian@ian-m... -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201110010090 alexanian media -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
   <a rel="follow" title="Sponsor: Günstige Turbolader" href="http://www.autoteile-carparts.de/">Günstige Turbolader</a><!-- 20111101000030 -->
</div>
</div>
</div>
</div>

<div class="eastbar">
  <div class="g-plusone" data-size="standard" data-count="false"></div>
</div>

<div class="main">


<h1>ImageMagick Advanced Unix Installation</h1>
<p class="navigation-index">[<a href="#download">Download &amp; Unpack</a> &bull; <a href="#configure">Configure</a>  &bull; <a href="#build">Build</a> &bull; <a href="#install">Install</a> &bull; <a href="#linux">Linux-specific Build Instructions</a> &bull; <a href="#macosx">Mac OS X-specific Build Instructions</a> &bull; <a href="#mingw">MinGW-specific Build Instructions</a> &bull; <a href="#problems">Dealing with Unexpected Problems</a>]</p>

<div class="doc-section">
<p>It's possible you don't want to concern yourself with advanced installation under Unix or Linux systems.  If so, you also have the option of installing a pre-compiled <a href="../www/binary-releases.html#unix">binary release</a>  or if you still want to install from source without all the fuss see the simple <a href="../www/install-source.html#unix">Install From Source</a> instructions.  However, if you want to customize the configuration and installation of ImageMagick under Unix or Linux systems, lets begin.</p>
</div>

<h2><a id="download"></a>Download &amp; Unpack</h2>
<div class="doc-section">

<p>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 <a href="ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz">ImageMagick.tar.gz</a> from <a href="ftp://ftp.imagemagick.org/pub/ImageMagick">ftp.imagemagick.org</a> or its <a href="../www/download.html">mirrors</a> and verify the distribution against its <a href="http://www.imagemagick.org/download/digest.rdf">message digest</a>.</p>

<p>Unpack the distribution it with this command:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>tar xvfz ImageMagick.tar.gz</span></p>
<p>Now that you have the ImageMagick Unix/Linux source distribution unpacked, let's configure it.</p>

</div>

<h2><a id="configure"></a>Configure</h2>
<div class="doc-section">

<p>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:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>cd ImageMagick-6.7.1-3</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>./configure</span></p>
<p>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:</p>

<div class="viewport">
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              --with-lcms=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
</div>

<p>You can influence 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:</p>

<dl class="doc">
<dt>CC</dt>
  <dd>Name of C compiler (e.g. <kbd>cc -Xa</kbd>) to use.</dd>
<dt>CXX</dt>
  <dd>Name of C++ compiler to use (e.g. <kbd>CC</kbd>).</dd>
<dt>CFLAGS</dt>
  <dd>Compiler flags (e.g. <kbd>-g -O2</kbd>) to compile C code.</dd>
<dt>CXXFLAGS</dt>
  <dd>Compiler flags (e.g. <kbd>-g -O2</kbd>) to compile C++ code.</dd>
<dt>CPPFLAGS</dt>
  <dd>Include paths (.e.g. <kbd>-I/usr/local</kbd>) to look for header files.</dd>
<dt>LDFLAGS</dt>
  <dd>Library paths (.e.g. <kbd>-L/usr/local</kbd>) 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 <em>-R/path</em>.  Some Linux systems will work with <kbd>-rpath /usr/local/lib</kbd>, while some other Linux systems who's gcc does not pass <kbd>-rpath</kbd> to the linker, require an argument of the form <kbd>-Wl,-rpath,/usr/local/lib</kbd>.</dd>
<dt>LIBS</dt>
  <dd>Extra libraries (.e.g. <kbd>-l/usr/local/lib</kbd>) required to link.</dd>
</dl>

<p>Here is an example of setting configure variables from the command line:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>./configure CC=c99 CFLAGS=-O2 LDFLAGS='-L/usr/local/lib -R/usr/local/lib' LIBS=-lposix</span></p>
<p>Any variable (e.g. CPPFLAGS or LDFLAGS) which requires a directory path must specify an absolute path rather than a relative path.</p>

<p>Configure can usually find the X include and library files automagically, but if it doesn't, you can use the <em>--x-includes=path</em> and <em>--x-libraries=path</em> options to specify their locations.</p>

<p>The configure script provides a number of ImageMagick specific options.  When disabling an option <em>--disable-something</em> is equivalent to specifying <em>--enable-something=no</em> and <em>--without-something</em> is equivalent to <em>--with-something=no</em>.  The configure options are as follows (execute <kbd>configure --help</kbd> to see all options).</p>

<p> ImageMagick options represent either features to be enabled, disabled, or packages to be included in the build.  When a feature is enabled (via <em>--enable-something</em>), it enables code already present in ImageMagick.  When a package is enabled (via <em>--with-something</em>), 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).</p>

<p>Here are the optional features you can configure:</p>

<dl class="doc">
<dt>--enable-shared</dt>
  <dd>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.
  <br /><br />
  ImageMagick built with delegates (see MAGICK PLUG-INS below) can pose additional challenges. If ImageMagick is built using static libraries (the default without <kbd>--enable-shared</kbd>) 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 <kbd>.a</kbd>, while shared libraries typically have extensions like <kbd>.so</kbd>, <kbd>.sa</kbd>, or <kbd>.dll</kbd>. 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.
  <br /><br />
  PIC compilation flags differ from vendor to vendor (gcc's is <kbd>-fPIC</kbd>). However, you must compile all shared library source with the same flag (for gcc use <kbd>-fPIC</kbd> rather than <kbd>-fpic</kbd>). While static libraries are normally created using an archive tool like <kbd>ar</kbd>, shared libraries are built using special linker or compiler options (e.g. <kbd>-shared</kbd> for gcc).
  <br/><br />
  If <kbd>--enable-shared</kbd> 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 <kbd>--enable-shared</kbd> 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 <kbd>--enable-shared</kbd> if possible (note that all libraries used with ImageMagick must be shared libraries!).</dd>
<dt>--disable-static</dt>
  <dd>static archive libraries (with extension <kbd>.a</kbd>) 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.</dd>
<dt>--disable-installed</dt>
  <dd>disable building an installed ImageMagick (default enabled).
  <br/><br />
  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.</dd>
<dt>--enable-ccmalloc</dt>
  <dd>enable 'ccmalloc' memory debug support (default disabled).</dd>
<dt>--enable-prof</dt>
  <dd>enable 'prof' profiling support (default disabled).</dd>
<dt>--enable-gprof</dt>
  <dd>enable 'gprof' profiling support (default disabled).</dd>
<dt>--enable-gcov</dt>
  <dd>enable 'gcov' profiling support (default disabled).</dd>
<dt>--disable-openmp</dt>
  <dd>disable OpenMP (default enabled).
  <br/><br />
  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.</dd>
<dt>--disable-largefile</dt>
  <dd>disable support for large (64 bit) file offsets.
  <br/><br />
  By default, ImageMagick is compiled with support for large files (&gt; 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 <kbd>--disable-largefile</kbd>, dependent applications do not require special compilation options for large files in order to use the library.</dd>
</dl>

<p>Here are the optional packages you can configure:</p>

<dl class="doc">
<dt>--with-quantum-depth</dt>
  <dd>number of bits in a pixel quantum (default 16).
  <br/><br />
  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, <kbd>--with-quantum-depth=8</kbd> 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.
  <br /><br />
  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.
  <br /><br />
  <pre class="text">
  Quantum Depth     Valid Range (Decimal)   Valid Range (Hex)
      8             0-255                   00-FF
     16             0-65535                 0000-FFFF
     32             0-4294967295            00000000-FFFFFFFF
  </pre>
  <br /><br />
  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.
  <br /><br />
  The amount of virtual memory consumed by an image can be computed by the equation <em>(5 * Quantum Depth * Rows * Columns) / 8</em>. 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:
  <br /><br />
  <pre class="text">
  Quantum Depth   Virtual Memory
       8               3MB
      16               8MB
      32              15MB
  </pre></dd>
  <dt>--enable-hdri</dt>
  <dd>accurately represent the wide range of intensity levels.</dd>
  <dt>--enable-osx-universal-binary</dt>
  <dd>build a universal binary on OS X.</dd>
  <dt>--without-modules</dt>
  <dd>disable support for dynamically loadable modules.
  <br /><br />
  Image coders and process modules are built as loadable modules which are installed under the directory <em>[prefix]/lib/ImageMagick-X.X.X/modules-QN</em> (where 'N' equals 8, 16, or 32 depending on the quantum depth) in the subdirectories <kbd>coders</kbd> and <kbd>filters</kbd> respectively. The modules build option is only available in conjunction with <kbd>--enable-shared</kbd>. If <kbd>--enable-shared</kbd> is not also specified, support for building modules is disabled.  Note that if <kbd>--enable-shared</kbd> and <kbd>--disable-modules</kbd> 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.</dd>
<dt>--with-cache</dt>
  <dd>set pixel cache threshold (defaults to available memory).
  <br /><br />
  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.</dd>
<dt>--without-threads</dt>
  <dd>disable threads support.
  <br /><br />
  By default, the ImageMagick library is compiled with multi-thread support.  If this undesirable, specify <kbd>--without-threads</kbd>.</dd>
<dt>--with-frozenpaths</dt>
  <dd>enable frozen delegate paths.
  <br /><br />
  Normally, external program names are substituted into the <kbd>delegates.xml</kbd> 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.</dd>
<dt>--without-magick-plus-plus</dt>
  <dd>disable build/install of Magick++.
  <br /><br />
  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 <kbd>g++</kbd>), and CXXFLAGS to select the desired compiler optimization and debug flags (default <kbd>-g -O2</kbd>). Antique C++ compilers will normally be rejected by configure tests so specifying this option should only be necessary if Magick++ fails to compile.</dd>
<dt>--without-perl</dt>
  <dd>disable build/install of PerlMagick, or
  <br /><br />
  By default, PerlMagick is conveniently compiled and installed as part of ImageMagick's normal <kbd>configure</kbd>, <kbd>make</kbd>, <kbd>sudo make install</kbd> process. When <kbd>--without-perl</kbd> is specified, you must first install ImageMagick, change to the PerlMagick subdirectory, build, and finally install PerlMagick. Note, PerlMagick is configured even if <kbd>--without-perl</kbd> is specified. If the argument <em>--with-perl=/path/to/perl</em> is supplied, <em>/../path/to/perl</em> is be taken as the PERL interpreter to use. This important in case the <kbd>perl</kbd> executable in your PATH is not PERL5, or is not the PERL you want to use.</dd>
<dt>--with-perl=PERL</dt>
  <dd>use specified Perl binary to configure PerlMagick.</dd>
<dt>--with-perl-options=OPTIONS</dt>
  <dd>options to pass on command-line when generating PerlMagick's Makefile from Makefile.PL.
  <br /><br />
  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 <kbd>sudo make install</kbd> 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.</dd>
<dt>--without-bzlib</dt>
  <dd>disable BZLIB support.</dd>
<dt>--without-dps</dt>
  <dd>disable Display Postscript support.</dd>
<dt>--with-fpx</dt>
  <dd>enable FlashPIX support.</dd>
<dt>--without-freetype</dt>
  <dd>disable TrueType support.</dd>
<dt>--with-gslib</dt>
  <dd>enable Ghostscript library support.</dd>
<dt>--without-jbig</dt>
  <dd>disable JBIG support.</dd>
<dt>--without-jpeg</dt>
  <dd>disable JPEG support.</dd>
<dt>--without-jp2</dt>
  <dd>disable JPEG v2 support.</dd>
<dt>--without-lcms</dt>
  <dd>disable LCMS support.</dd>
<dt>--without-lzma</dt>
  <dd>disable LZMA support.</dd>
<dt>--without-png</dt>
  <dd>disable PNG support.</dd>
<dt>--without-tiff</dt>
  <dd>disable TIFF support.</dd>
<dt>--without-wmf</dt>
  <dd>disable WMF support.</dd>
<dt>--with-fontpath</dt>
  <dd>prepend to default font search path.</dd>
<dt>--with-gs-font-dir</dt>
  <dd>directory containing Ghostscript fonts.
  <br /><br />
  Specify the directory containing the Ghostscript Postscript Type 1 font files (e.g. <kbd>n022003l.pfb</kbd>) so that they can be rendered using the FreeType library. If the font files are installed using the default Ghostscript installation paths (<em>${prefix}/share/ghostwww/fonts</em>), 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.</dd>
<dt>--with-windows-font-dir</dt>
  <dd>directory containing MS-Windows fonts.
  <br /><br />
  Specify the directory containing MS-Windows-compatible fonts. This not necessary when ImageMagick is running under MS-Windows.</dd>
<dt>--without-xml</dt>
  <dd>disable XML support.</dd>
<dt>--without-zlib</dt>
  <dd>disable ZLIB support.</dd>
<dt>--without-x</dt>
  <dd>don't use the X Window System.
  <br /><br />
  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).</dd>
<dt>--with-share-path=DIR</dt>
  <dd>Alternate path to share directory (default share/ImageMagick).</dd>
<dt>--with-libstdc=DIR</dt>
  <dd>use libstdc++ in DIR (for GNU C++).</dd>
</dl>

<p>While <kbd>configure</kbd> 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 <kbd>config.log</kbd>. 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 <kbd>config.log</kbd> are normal* because configure works by trying something and seeing if it fails. An error in <kbd>config.log</kbd> is only a problem if the test should have passed on your system.</p>

<p>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.</p>
<p>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 <a href="http://www.imagemagick.org/discourse-server/viewforum.php?f=3">ImageMagick Defect Support Forum</a>. All bug reports should contain the operating system type (as reported by <kbd>uname -a</kbd>) and the compiler/compiler-version. A copy of the configure script output and/or the relevant portion of  <kbd>config.log</kbd> file may be valuable in order to find the problem.  If you post portions of <kbd>config.log</kbd>, 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.</p>

<p>ImageMagick is now configured and ready to build</p>

</div>

<h2><a id="build"></a>Build</h2>
<div class="doc-section">

<p>Once ImageMagick is configured, these standard build targets are available from the generated <kbd>make</kbd> files:</p>

<dl class="doc">
<dt>make</dt>
  <dd>build ImageMagick.</dd>
<dt>sudo make install</dt>
  <dd>install ImageMagick.</dd>
<dt>make check</dt>
  <dd>Run tests using the installed ImageMagick (<kbd>sudo make install</kbd> must be done first). Ghostscript is a prerequisite, otherwise the EPS, PS, and PDF
    tests will fail.</dd>
<dt>make clean</dt>
  <dd> Remove everything in the build directory created by <kbd>make</kbd>.</dd>
<dt>make distclean</dt>
  <dd>remove everything in the build directory created by <kbd>configure</kbd> and <kbd>make</kbd>.  This useful if you want to start over from scratch.</dd>
<dt>make uninstall</dt>
  <dd>Remove all files from the system which are (or would be) installed by <kbd>sudo make install</kbd> using the current configuration.  Note that this target is imperfect for PerlMagick since Perl no longer supports an <em>uninstall</em> target.</dd>
</dl>

<p>In most cases you will simply wand to compile ImageMagick with this command:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>make</span></p>
<p>Once built, you can optionally install ImageMagick on your system as discussed below.</p>
</div>

<h2><a id="install"></a>Install</h2>
<div class="doc-section">

<p>Now that ImageMagick is configured and built, type:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>make install</span></p>
<p>to install it.</p>

<p>By default, ImageMagick is installs binaries in <kbd>/../usr/local/bin</kbd>, libraries in <kbd>/../usr/local/lib</kbd>, header files in <kbd>/../usr/local/include</kbd> and documentation in <kbd>/../usr/local/share</kbd>.  You can specify an alternative installation prefix other than <kbd>/../usr/local</kbd> by giving <kbd>configure</kbd> the option <em>--prefix=PATH</em>.  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.</p>

<p>To confirm your installation of the ImageMagick distribution was successful, ensure that the installation directory is in your executable search path and type:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>display</span></p>
<p>The ImageMagick logo is displayed on your X11 display.</p>

<p>To verify the ImageMagick build configuration, type:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>identify -list configure</span></p>
<p>To list which image formats are supported , type:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>identify -list format</span></p>
<p>For a more comprehensive test, you run the ImageMagick test suite by typing:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>make check</span></p>
<p>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.</p>

</div>

<h2><a id="linux"></a>Linux-specific Build instructions</h2>
<div class="doc-section">

<p>Download <a href="ftp://ftp.imagemagick.org/pub/ImageMagick/linux/SRPMS/ImageMagick.src.rpm">ImageMagick.src.rpm</a> from <a href="ftp://ftp.imagemagick.org/pub/ImageMagick">ftp.imagemagick.org</a> or its <a href="../www/download.html">mirrors</a> and verify the distribution against its <a href="http://www.imagemagick.org/download/linux/SRPMS/digest.rdf">message digest</a>.</p>

<p>Build ImageMagick with this command:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>rpmbuild --rebuild ImageMagick.src.rpm</span></p>
<p>After the build you, locate the RPMS folder and install the ImageMagick binary RPM distribution:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>rpm -ivh ImageMagick-6.7.1-?.*.rpm</span></p>
</div>

<h2><a id="macosx"></a>Mac OS X-specific Build instructions</h2>
<div class="doc-section">

<p>Perform these steps as an administrator or with the <tt>sudo</tt> command:</p>

<div class="doc-section">
  <p>Install <a href="http://www.macports.org">MacPorts</a>.  Download and install MacPorts and type the following commands:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>sudo port -v install freetype +bytecode</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>sudo port -v install librsvg</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>sudo port -v install +graphviz +gs +wmf +jbig +jpeg2 +lcms</span></p>
<p>This installs many of the delegate libraries ImageMagick will utilize such as JPEG and FreeType.</p>


	  <p>Install the latest <a href="http://developer.apple.com/tools/download/">Xcode</a> from Apple.</p>
	  <p>Use the <tt>port</tt> command to install any delegate libraries you require, for example:</p>
	  <p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>sudo port install jpeg</span></p>	</div>

<p>Now lets build ImageMagick:</p>

	<div class="doc-section">
	  <p><a href="../www/download.html">Download</a> the ImageMagick source distribution and verify the distribution against its <a href="http://www.imagemagick.org/download/digest.rdf">message digest</a>.</p>
	  <p>Unpack and change into the top-level ImageMagick directory:</p>
		<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>tar xvfz ImageMagick-6.7.1-3.tar.gz</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>cd ImageMagick-6.7.1-3</span></p>	  <p>Configure ImageMagick:</p>
	<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>./configure --prefix=/opt --with-quantum-depth=16 \ <br/>
		--disable-dependency-tracking --with-x=yes \ <br/>
		--x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib/ \ <br/>
		--without-perl</span></p>	  <p>Build ImageMagick:</p>
	<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>make</span></p>	  <p>Install ImageMagick:</p>
	<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>sudo make install</span></p>  <p>To verify your install, type</p>

  <p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>/opt/local/bin/identify -list font</span></p>
  <p>to list all the fonts ImageMagick knows about.</p>
	  <p>To test the ImageMagick GUI, in a new shell, type:</p>
	<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>display -display :0</span></p></div>

</div>

<h2><a id="mingw"></a>MinGW-specific Build instructions</h2>
<div class="doc-section">

<p>Although you can download and install delegate libraries yourself, many are already available in the <a href="http://gnuwin32.sourceforge.net/">GnuWin32</a> 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,</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>tar jxvf ImageMagick-6.7.1-?.tar.bz2</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>cd ImageMagick-6.7.1-3</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>./configure --without-perl</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>make</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>sudo make install</span></p></div>

<h2><a id="problems"></a>Dealing with Unexpected Problems</h2>
<div class="doc-section">

<p>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</p>

<h4>Build Problems</h4>
<p>If the build complains about missing dependencies (e.g. <em>.deps/source.PLO</em>), add <kbd>--disable-dependency-tracking</kbd> to your <kbd>configure</kbd> command line.</p>

<p>Some systems may fail to link at build time due to unresolved symbols. Try adding the LDFLAGS to the <kbd>configure</kbd> command line:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>configure LDFLAGS='-L/usr/local/lib -R/usr/local/lib'</span></p>
<h4>Dynamic Linker Run-time Bindings</h4>
<p>On some systems, ImageMagick may not find its shared library, <em>libMagick.so</em>.  Try running the <kbd>ldconfig</kbd> with the library path:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>/sbin/ldconfig /usr/local/lib</span></p>
<p>Solaris and Linux systems have the <kbd>ldd</kbd> command which is useful to track which libraries ImageMagick depends on:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>ldd `which convert`</span></p>
<h4>Delegate Libraries</h4>
<p>On occasion you may receive these warnings:</p>
<pre class="text">
  no decode delegate for this image format
  no encode delegate for this image format
</pre>
<p>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:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>yum install libjpeg libjpeg-devel</span></p>
<p>Now reconfigure, rebuild, and reinstall ImageMagick.  To verify JPEG is now properly supported within ImageMagick, use this command:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>identify -list format</span></p>
<p>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.</p>

<h4>PerlMagick</h4>
<p>If PerlMagick fails to link with a message similar to <em>libperl.a is not found</em>, rerun <kbd>configure</kbd> with the <kbd>--enable-shared</kbd> or <kbd>--enable-shared --with-modules</kbd> options.</p>

</div>

</div>

<div id="linkbar">
    <span id="linkbar-west">&nbsp;</span>
    <span id="linkbar-center">
      <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
      <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
    </span>
    <span id="linkbar-east">&nbsp;</span>
  </div>
  <div class="footer">
    <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>
    <span id="footer-east"> <a href="http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
  </div>
  <div style="clear: both; margin: 0; width: 100%; "></div>
  <script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-17690367-1']);
    _gaq.push(['_trackPageview']);

    (function() {
      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
  </script>
</body>
</html>
