| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 1 | Download & Unpack | 
 | 2 |    | 
 | 3 |   ImageMagick builds on a variety of Unix and Unix-like operating systems | 
 | 4 |   including Linux, Solaris, FreeBSD, Mac OS X, and others. A compiler is | 
 | 5 |   required and fortunately almost all modern Unix systems have one. Download | 
 | 6 |   ImageMagick.tar.gz from ftp.imagemagick.org or its mirrors and verify the | 
 | 7 |   distribution against its message digest. | 
 | 8 |    | 
 | 9 |   Unpack the distribution it with this command: | 
 | 10 |    | 
 | 11 |     $magick> tar xvfz ImageMagick.tar.gz | 
 | 12 |    | 
 | 13 |   Now that you have the ImageMagick Unix/Linux source distribution unpacked, | 
 | 14 |   let's configure it. | 
 | 15 |    | 
 | 16 | Configure | 
 | 17 |    | 
 | 18 |   The configure script looks at your environment and decides what it can cobble | 
 | 19 |   together to get ImageMagick compiled and installed on your system. This | 
 | 20 |   includes finding a compiler, where your compiler header files are located | 
 | 21 |   (e.g. stdlib.h), and if any delegate libraries are available for ImageMagick | 
 | 22 |   to use (e.g. JPEG, PNG, TIFF, etc.). If you are willing to accept configure's | 
 | 23 |   default options, and build from within the source directory, you can simply | 
 | 24 |   type: | 
 | 25 |    | 
| cristy | df1e382 | 2012-03-20 00:48:54 +0000 | [diff] [blame] | 26 |     $magick> cd ImageMagick-7.0.0 | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 27 |      $magick> ./configure | 
 | 28 |    | 
 | 29 |   Watch the configure script output to verify that it finds everything that | 
 | 30 |   you think it should. Pay particular attention to the last lines of the script | 
 | 31 |   output. For example, here is a recent report from our system: | 
 | 32 |    | 
 | 33 |   ImageMagick is configured as follows. Please verify that this configuration | 
 | 34 |   matches your expectations. | 
 | 35 |    | 
 | 36 |     Host system type: x86_64-unknown-linux-gnu | 
 | 37 |     Build system type: x86_64-unknown-linux-gnu | 
 | 38 |      | 
 | 39 |                       Option                     Value | 
 | 40 |     ---------------------------------------------------------------------------- | 
 | 41 |     Shared libraries  --enable-shared=yes		yes | 
 | 42 |     Static libraries  --enable-static=yes		yes | 
 | 43 |     Module support    --with-modules=yes		yes | 
 | 44 |     GNU ld            --with-gnu-ld=yes		yes | 
 | 45 |     Quantum depth     --with-quantum-depth=16	16 | 
 | 46 |     High Dynamic Range Imagery | 
 | 47 |                       --enable-hdri=no		no | 
 | 48 |      | 
 | 49 |     Delegate Configuration: | 
 | 50 |     BZLIB             --with-bzlib=yes		yes | 
 | 51 |     Autotrace         --with-autotrace=yes	yes | 
 | 52 |     DJVU              --with-djvu=yes		no | 
 | 53 |     DPS               --with-dps=yes		no | 
 | 54 |     FlashPIX          --with-fpx=yes		no | 
 | 55 |     FontConfig        --with-fontconfig=yes	yes | 
 | 56 |     FreeType          --with-freetype=yes		yes | 
 | 57 |     GhostPCL          None			pcl6 (unknown) | 
 | 58 |     GhostXPS          None			gxps (unknown) | 
 | 59 |     Ghostscript       None			gs (8.63) | 
 | 60 |     result_ghostscript_font_dir='none' | 
 | 61 |     Ghostscript fonts --with-gs-font-dir=default | 
 | 62 |     Ghostscript lib   --with-gslib=yes		no (failed tests) | 
 | 63 |     Graphviz          --with-gvc=yes		yes | 
 | 64 |     JBIG              --with-jbig=		no | 
 | 65 |     JPEG v1           --with-jpeg=yes		yes | 
 | 66 |     JPEG-2000         --with-jp2=yes		yes | 
| cristy | 6e5802e | 2011-05-24 22:44:07 +0000 | [diff] [blame] | 67 |     LCMS v1           --with-lcms=yes		yes | 
 | 68 |     LCMS v2           --with-lcms2=yes		yes | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 69 |     LQR               --with-lqr=yes		no | 
 | 70 |     Magick++          --with-magick-plus-plus=yes	yes | 
 | 71 |     OpenEXR           --with-openexr=yes		yes | 
 | 72 |     PERL              --with-perl=yes		/usr/bin/perl | 
 | 73 |     PNG               --with-png=yes		yes | 
 | 74 |     RSVG              --with-rsvg=yes		yes | 
 | 75 |     TIFF              --with-tiff=yes		yes | 
 | 76 |     result_windows_font_dir='none' | 
 | 77 |     Windows fonts     --with-windows-font-dir= | 
 | 78 |     WMF               --with-wmf=yes		yes | 
 | 79 |     X11               --with-x=			yes | 
 | 80 |     XML               --with-xml=yes		yes | 
 | 81 |     ZLIB              --with-zlib=yes		yes | 
 | 82 |      | 
 | 83 |     X11 Configuration: | 
 | 84 |           X_CFLAGS        = | 
 | 85 |           X_PRE_LIBS      = -lSM -lICE | 
 | 86 |           X_LIBS          = | 
 | 87 |           X_EXTRA_LIBS    = | 
 | 88 |      | 
 | 89 |     Options used to compile and link: | 
 | 90 |       PREFIX          = /usr/local | 
 | 91 |       EXEC-PREFIX     = /usr/local | 
 | 92 |       VERSION         = 6.4.8 | 
 | 93 |       CC              = gcc -std=gnu99 | 
 | 94 |       CFLAGS          = -fopenmp -g -O2 -Wall -W -pthread | 
 | 95 |       MAGICK_CFLAGS   = -fopenmp -g -O2 -Wall -W -pthread | 
 | 96 |       CPPFLAGS        = -I/usr/local/include/ImageMagick | 
 | 97 |       PCFLAGS         = -fopenmp | 
 | 98 |       DEFS            = -DHAVE_CONFIG_H | 
 | 99 |       LDFLAGS         = -lfreetype | 
 | 100 |       MAGICK_LDFLAGS  = -L/usr/local/lib -lfreetype | 
 | 101 |       LIBS            = -lMagickCore -llcms -ltiff -lfreetype -ljpeg | 
 | 102 |                         -lfontconfig -lXext -lSM -lICE -lX11 -lXt -lbz2 -lz | 
 | 103 |                         -lm -lgomp -lpthread -lltdl | 
 | 104 |       CXX             = g++ | 
 | 105 |       CXXFLAGS        = -g -O2 -Wall -W -pthread | 
 | 106 |    | 
 | 107 |   You can influence choice of compiler, compilation flags, or libraries of the | 
 | 108 |   configure script by setting initial values for variables in the configure | 
 | 109 |   command line. These include, among others: | 
 | 110 |    | 
 | 111 |     CC | 
 | 112 |         Name of C compiler (e.g. cc -Xa) to use. | 
| cristy | 3ed852e | 2009-09-05 21:47:34 +0000 | [diff] [blame] | 113 |  | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 114 |     CXX | 
 | 115 |         Name of C++ compiler to use (e.g. CC). | 
| cristy | 3ed852e | 2009-09-05 21:47:34 +0000 | [diff] [blame] | 116 |  | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 117 |     CFLAGS | 
 | 118 |         Compiler flags (e.g. -g -O2) to compile C code. | 
| cristy | 3ed852e | 2009-09-05 21:47:34 +0000 | [diff] [blame] | 119 |  | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 120 |     CXXFLAGS | 
 | 121 |         Compiler flags (e.g. -g -O2) to compile C++ code. | 
| cristy | 3ed852e | 2009-09-05 21:47:34 +0000 | [diff] [blame] | 122 |  | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 123 |     CPPFLAGS | 
 | 124 |         Include paths (.e.g. -I/usr/local) to look for header files. | 
| cristy | 3ed852e | 2009-09-05 21:47:34 +0000 | [diff] [blame] | 125 |  | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 126 |     LDFLAGS | 
 | 127 |         Library paths (.e.g. -L/usr/local) to look for libraries systems that | 
 | 128 |         support the notion of a library run-path may require an additional | 
 | 129 |         argument in order to find shared libraries at run time. For example, | 
 | 130 |         the Solaris linker requires an argument of the form -R/path. Some | 
 | 131 |         Linux systems will work with -rpath /usr/local/lib, while some other | 
 | 132 |         Linux systems who's gcc does not pass -rpath to the linker, require | 
 | 133 |         an argument of the form -Wl,-rpath,/usr/local/lib. | 
| cristy | 3ed852e | 2009-09-05 21:47:34 +0000 | [diff] [blame] | 134 |  | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 135 |     LIBS | 
 | 136 |         Extra libraries (.e.g. -l/usr/local/lib) required to link. | 
 | 137 |    | 
 | 138 |   Here is an example of setting configure variables from the command line: | 
 | 139 |    | 
 | 140 |     $magick> ./configure CC=c99 CFLAGS=-O2 LIBS=-lposix | 
 | 141 |    | 
 | 142 |   Any variable (e.g. CPPFLAGS or LDFLAGS) which requires a directory path must | 
 | 143 |   specify an absolute path rather than a relative path. | 
 | 144 |    | 
 | 145 |   Configure can usually find the X include and library files automagically, | 
 | 146 |   but if it doesn't, you can use the --x-includes=path and --x-libraries=path | 
 | 147 |   options to specify their locations. | 
 | 148 |    | 
 | 149 |   The configure script provides a number of ImageMagick specific | 
 | 150 |   options. When disabling an option --disable-something is equivalent to | 
 | 151 |   specifying --enable-something=no and --without-something is equivalent to | 
 | 152 |   --with-something=no. The configure options are as follows (execute configure | 
 | 153 |   --help to see all options). | 
 | 154 |    | 
 | 155 |   ImageMagick options represent either features to be enabled, disabled, | 
 | 156 |   or packages to be included in the build. When a feature is enabled (via | 
 | 157 |   --enable-something), it enables code already present in ImageMagick. When a | 
 | 158 |   package is enabled (via --with-something), the configure script will search | 
 | 159 |   for it, and if is properly installed and ready to use (headers and built | 
 | 160 |   libraries are found by compiler) it will be included in the build. The | 
 | 161 |   configure script is delivered with all features disabled and all packages | 
 | 162 |   enabled. In general, the only reason to disable a package is if a package | 
 | 163 |   exists but it is unsuitable for the build (perhaps an old version or not | 
 | 164 |   compiled with the right compilation flags). | 
 | 165 |    | 
 | 166 |   Here are the optional features you can configure: | 
 | 167 |    | 
 | 168 |     --enable-shared | 
 | 169 |       build the shared libraries and support for loading coder and process | 
 | 170 |       modules. Shared libraries are preferred because they allow programs | 
 | 171 |       to share common code, making the individual programs much smaller. In | 
 | 172 |       addition shared libraries are required in order for PerlMagick to be | 
 | 173 |       dynamically loaded by an installed PERL (otherwise an additional PERL | 
 | 174 |       (PerlMagick) must be installed. | 
 | 175 |    | 
 | 176 |       ImageMagick built with delegates (see MAGICK PLUG-INS below) can pose | 
 | 177 |       additional challenges. If ImageMagick is built using static libraries (the | 
 | 178 |       default without --enable-shared) then delegate libraries may be built as | 
 | 179 |       either static libraries or shared libraries. However, if ImageMagick is | 
 | 180 |       built using shared libraries, then all delegate libraries must also be | 
 | 181 |       built as shared libraries. Static libraries usually have the extension | 
 | 182 |       .a, while shared libraries typically have extensions like .so, .sa, or | 
 | 183 |       .dll. Code in shared libraries normally must compiled using a special | 
 | 184 |       compiler option to produce Position Independent Code (PIC). The only | 
 | 185 |       time this not necessary is if the platform compiles code as PIC by | 
 | 186 |       default. | 
 | 187 |    | 
 | 188 |       PIC compilation flags differ from vendor to vendor (gcc's is | 
 | 189 |       -fPIC). However, you must compile all shared library source with the | 
 | 190 |       same flag (for gcc use -fPIC rather than -fpic). While static libraries | 
 | 191 |       are normally created using an archive tool like ar, shared libraries | 
 | 192 |       are built using special linker or compiler options (e.g. -shared for gcc). | 
 | 193 |    | 
 | 194 |       If --enable-shared is not specified, a new PERL interpreter (PerlMagick) | 
 | 195 |       is built which is statically linked against the PerlMagick extension. This | 
 | 196 |       new interpreter is installed into the same directory as the ImageMagick | 
 | 197 |       utilities. If --enable-shared is specified, the PerlMagick extension is | 
 | 198 |       built as a dynamically loadable object which is loaded into your current | 
 | 199 |       PERL interpreter at run-time. Use of dynamically-loaded extensions is | 
 | 200 |       preferable over statically linked extensions so use --enable-shared if | 
 | 201 |       possible (note that all libraries used with ImageMagick must be shared | 
 | 202 |       libraries!). | 
 | 203 |    | 
 | 204 |     --disable-static | 
 | 205 |       static archive libraries (with extension .a) are not built. If you | 
 | 206 |       are building shared libraries, there is little value to building static | 
 | 207 |       libraries. Reasons to build static libraries include: 1) they can be | 
 | 208 |       easier to debug; 2) clients do not have external dependencies (i.e. | 
 | 209 |       libMagick.so); 3) building PIC versions of the delegate libraries may | 
 | 210 |       take additional expertise and effort; 4) you are unable to build shared | 
 | 211 |       libraries. | 
 | 212 |    | 
 | 213 |     --disable-installed | 
 | 214 |       disable building an installed ImageMagick (default enabled). | 
 | 215 |    | 
 | 216 |       By default the ImageMagick build is configured to formally install | 
 | 217 |       into a directory tree. This the most secure and reliable way to install | 
 | 218 |       ImageMagick. Use this option to configure ImageMagick so that it doesn't | 
 | 219 |       use hard-coded paths and locates support files by computing an offset path | 
 | 220 |       from the executable (or from the location specified by the MAGICK_HOME | 
 | 221 |       environment variable. The uninstalled configuration is ideal for binary | 
 | 222 |       distributions which are expected to extract and run in any location. | 
 | 223 |    | 
 | 224 |     --enable-ccmalloc | 
 | 225 |       enable 'ccmalloc' memory debug support (default disabled). | 
 | 226 |    | 
 | 227 |     --enable-prof | 
 | 228 |       enable 'prof' profiling support (default disabled). | 
 | 229 |    | 
 | 230 |     --enable-gprof | 
 | 231 |       enable 'gprof' profiling support (default disabled). | 
 | 232 |    | 
 | 233 |     --enable-gcov | 
 | 234 |     | 
 | 235 |      enable 'gcov' profiling support (default disabled). | 
 | 236 |     --disable-openmp | 
 | 237 |       disable OpenMP (default enabled). | 
 | 238 |    | 
 | 239 |       Certain ImageMagick algorithms, for example convolution, can achieve | 
 | 240 |       a significant speed-up with the assistance of the OpenMP API when | 
 | 241 |       running on modern dual and quad-core processors. | 
 | 242 |    | 
 | 243 |     --disable-largefile | 
 | 244 |       disable support for large (64 bit) file offsets. | 
 | 245 |    | 
 | 246 |       By default, ImageMagick is compiled with support for large files (> | 
 | 247 |       2GB on a 32-bit CPU) if the operating system supports large files. Some | 
 | 248 |       applications which use the ImageMagick library may also require support | 
 | 249 |       for large files. By disabling support for large files via | 
 | 250 |       --disable-largefile, dependent applications do not require special | 
 | 251 |       compilation options for large files in order to use the library. | 
 | 252 |    | 
 | 253 |   Here are the optional packages you can configure: | 
| cristy | 71d8c20 | 2012-03-20 17:05:01 +0000 | [diff] [blame] | 254 |  | 
 | 255 |     --enable-legacy-support | 
 | 256 |       install legacy command-line utilities (default disabled). | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 257 |    | 
 | 258 |     --with-quantum-depth | 
 | 259 |       number of bits in a pixel quantum (default 16). | 
 | 260 |    | 
 | 261 |       Use this option to specify the number of bits to use per pixel quantum | 
 | 262 |       (the size of the red, green, blue, and alpha pixel components). For | 
 | 263 |       example, --with-quantum-depth=8 builds ImageMagick using 8-bit quantums. | 
 | 264 |       Most computer display adapters use 8-bit quantums. Currently supported | 
 | 265 |       arguments are 8, 16, or 32. We recommend the default of 16 because | 
 | 266 |       some image formats support 16 bits-per-pixel. However, this option is | 
 | 267 |       important in determining the overall run-time performance of ImageMagick. | 
 | 268 |    | 
 | 269 |       The number of bits in a quantum determines how many values it may | 
 | 270 |       contain. Each quantum level supports 256 times as many values as the | 
 | 271 |       previous level. The following table shows the range available for various | 
 | 272 |       quantum sizes. | 
 | 273 |    | 
 | 274 |         Quantum Depth  Valid Range (Decimal)  Valid Range (Hex) | 
 | 275 |             8             0-255                  00-FF | 
 | 276 |            16             0-65535                0000-FFFF | 
 | 277 |            32             0-4294967295           00000000-FFFFFFFF | 
 | 278 |          | 
 | 279 |       Larger pixel quantums can cause ImageMagick to run more slowly and to | 
 | 280 |       require more memory. For example, using sixteen-bit pixel quantums can | 
 | 281 |       cause ImageMagick to run 15% to 50% slower (and take twice as much memory) | 
 | 282 |       than when it is built to support eight-bit pixel quantums. | 
 | 283 |    | 
 | 284 |       The amount of virtual memory consumed by an image can be computed by | 
 | 285 |       the equation (5 * Quantum Depth * Rows * Columns) / 8. This an important | 
 | 286 |       consideration when resources are limited, particularly since processing | 
 | 287 |       an image may require several images to be in memory at one time. The | 
 | 288 |       following table shows memory consumption values for a 1024x768 image: | 
 | 289 |    | 
 | 290 |         Quantum Depth   Virtual Memory | 
 | 291 |              8               3MB | 
 | 292 |             16               8MB | 
 | 293 |             32              15MB | 
 | 294 |    | 
 | 295 |     --enable-hdri | 
 | 296 |       accurately represent the wide range of intensity levels (experimental). | 
 | 297 |    | 
 | 298 |     --enable-osx-universal-binary | 
 | 299 |       build a universal binary on OS X. | 
 | 300 |    | 
 | 301 |     --without-modules | 
 | 302 |       disable support for dynamically loadable modules. | 
 | 303 |    | 
 | 304 |       Image coders and process modules are built as loadable modules which are | 
 | 305 |       installed under the directory [prefix]/lib/ImageMagick-X.X.X/modules-QN | 
 | 306 |       (where 'N' equals 8, 16, or 32 depending on the quantum depth) in the | 
 | 307 |       subdirectories coders and filters respectively. The modules build option | 
 | 308 |       is only available in conjunction with --enable-shared. If --enable-shared | 
 | 309 |       is not also specified, support for building modules is disabled. Note that | 
 | 310 |       if --enable-shared and --disable-modules are specified, the module loader | 
 | 311 |       is active (allowing extending an installed ImageMagick by simply copying | 
 | 312 |       a module into place) but ImageMagick itself is not built using modules. | 
 | 313 |    | 
 | 314 |     --with-cache | 
 | 315 |       set pixel cache threshold (defaults to available memory). | 
 | 316 |    | 
 | 317 |       Specify a different image pixel cache threshold with this option. This | 
 | 318 |       sets the maximum amount of heap memory that ImageMagick is allowed to | 
 | 319 |       consume before switching to using memory-mapped temporary files to store | 
 | 320 |       raw pixel data. | 
 | 321 |    | 
 | 322 |     --without-threads | 
 | 323 |       disable threads support. | 
 | 324 |    | 
 | 325 |       By default, the ImageMagick library is compiled with multi-thread | 
 | 326 |       support. If this undesirable, specify --without-threads. | 
 | 327 |    | 
 | 328 |     --with-frozenpaths | 
 | 329 |       enable frozen delegate paths. | 
 | 330 |    | 
 | 331 |       Normally, external program names are substituted into the delegates.xml | 
 | 332 |       configuration file without full paths. Specify this option to enable | 
 | 333 |       saving full paths to programs using locations determined by configure. | 
 | 334 |       This useful for environments where programs are stored under multiple | 
 | 335 |       paths, and users may use different PATH settings than the person who | 
 | 336 |       builds ImageMagick. | 
 | 337 |    | 
 | 338 |     --without-magick-plus-plus | 
 | 339 |       disable build/install of Magick++. | 
 | 340 |    | 
 | 341 |       Disable building Magick++, the C++ application programming interface | 
 | 342 |       to ImageMagick. A suitable C++ compiler is required in order to build | 
 | 343 |       Magick++. Specify the CXX configure variable to select the C++ compiler | 
 | 344 |       to use (default g++), and CXXFLAGS to select the desired compiler | 
 | 345 |       optimization and debug flags (default -g -O2). Antique C++ compilers | 
 | 346 |       will normally be rejected by configure tests so specifying this option | 
 | 347 |       should only be necessary if Magick++ fails to compile. | 
| cristy | 8eb4a67 | 2012-09-08 23:45:06 +0000 | [diff] [blame] | 348 |  | 
 | 349 |     --with-package-release-name | 
 | 350 |       encode this name into the shared library name (see libtools -release | 
 | 351 |       option). | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 352 |    | 
 | 353 |     --without-perl | 
 | 354 |       disable build/install of PerlMagick, or | 
 | 355 |    | 
 | 356 |       By default, PerlMagick is conveniently compiled and installed as part | 
 | 357 |       of ImageMagick's normal configure, make, sudo make install process. When | 
 | 358 |       --without-perl is specified, you must first install ImageMagick, change to | 
 | 359 |       the PerlMagick subdirectory, build, and finally install PerlMagick. Note, | 
 | 360 |       PerlMagick is configured even if --without-perl is specified. If the | 
 | 361 |       argument --with-perl=/path/to/perl is supplied, /../path/to/perl is be | 
 | 362 |       taken as the PERL interpreter to use. This important in case the perl | 
 | 363 |       executable in your PATH is not PERL5, or is not the PERL you want to use. | 
 | 364 |    | 
 | 365 |     --with-perl=PERL | 
 | 366 |       use specified Perl binary to configure PerlMagick. | 
 | 367 |    | 
 | 368 |     --with-perl-options=OPTIONS | 
 | 369 |       options to pass on command-line when generating PerlMagick's Makefile | 
 | 370 |       from Makefile.PL. | 
 | 371 |    | 
 | 372 |       The PerlMagick module is normally installed using the Perl interpreter's | 
 | 373 |       installation PREFIX, rather than ImageMagick's. If ImageMagick's | 
 | 374 |       installation prefix is not the same as PERL's PREFIX, then you | 
 | 375 |       may find that PerlMagick's sudo make install step tries to install | 
 | 376 |       into a directory tree that you don't have write permissions to. This | 
 | 377 |       common when PERL is delivered with the operating system or on Internet | 
 | 378 |       Service Provider (ISP) web servers. If you want PerlMagick to install | 
 | 379 |       elsewhere, then provide a PREFIX option to PERL's configuration step | 
 | 380 |       via "--with-perl-options=PREFIX=/some/place". Other options accepted by | 
 | 381 |       MakeMaker are 'LIB', 'LIBPERL_A', 'LINKTYPE', and 'OPTIMIZE'. See the | 
 | 382 |       ExtUtils::MakeMaker(3) manual page for more information on configuring | 
 | 383 |       PERL extensions. | 
 | 384 |    | 
 | 385 |     --without-bzlib | 
 | 386 |       disable BZLIB support. | 
 | 387 |    | 
 | 388 |     --without-dps | 
 | 389 |       disable Display Postscript support. | 
 | 390 |    | 
 | 391 |     --with-fpx | 
 | 392 |       enable FlashPIX support. | 
 | 393 |    | 
 | 394 |     --without-freetype | 
 | 395 |       disable TrueType support. | 
 | 396 |    | 
 | 397 |     --with-gslib | 
 | 398 |       enable Ghostscript library support. | 
 | 399 |    | 
 | 400 |     --without-jbig | 
 | 401 |       disable JBIG support. | 
 | 402 |    | 
 | 403 |     --without-jpeg | 
 | 404 |       disable JPEG support. | 
 | 405 |    | 
 | 406 |     --without-jp2 | 
 | 407 |       disable JPEG v2 support. | 
 | 408 |    | 
 | 409 |     --without-lcms | 
| cristy | 6e5802e | 2011-05-24 22:44:07 +0000 | [diff] [blame] | 410 |       disable lcms (v1.1X) support | 
 | 411 |  | 
 | 412 |     --without-lcms2 | 
 | 413 |       disable lcms (v2.X) support | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 414 |    | 
| cristy | fbb0ef0 | 2010-12-19 02:32:11 +0000 | [diff] [blame] | 415 |     --without-lzma | 
 | 416 |       disable LZMA support. | 
 | 417 |  | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 418 |     --without-png | 
 | 419 |       disable PNG support. | 
 | 420 |    | 
 | 421 |     --without-tiff | 
 | 422 |       disable TIFF support. | 
 | 423 |    | 
 | 424 |     --without-wmf | 
 | 425 |       disable WMF support. | 
 | 426 |    | 
 | 427 |     --with-fontpath | 
 | 428 |       prepend to default font search path. | 
 | 429 |    | 
 | 430 |     --with-gs-font-dir | 
 | 431 |       directory containing Ghostscript fonts. | 
 | 432 |    | 
 | 433 |       Specify the directory containing the Ghostscript Postscript Type 1 font | 
 | 434 |       files (e.g. n022003l.pfb) so that they can be rendered using the FreeType | 
 | 435 |       library. If the font files are installed using the default Ghostscript | 
 | 436 |       installation paths (${prefix}/share/ghostscript/fonts), they should | 
 | 437 |       be discovered automagically by configure and specifying this option is | 
 | 438 |       not necessary. Specify this option if the Ghostscript fonts fail to be | 
 | 439 |       located automagically, or the location needs to be overridden. | 
 | 440 |    | 
 | 441 |     --with-windows-font-dir | 
 | 442 |       directory containing MS-Windows fonts. | 
 | 443 |    | 
 | 444 |       Specify the directory containing MS-Windows-compatible fonts. This not | 
 | 445 |       necessary when ImageMagick is running under MS-Windows. | 
 | 446 |    | 
 | 447 |     --without-xml | 
 | 448 |       disable XML support. | 
 | 449 |    | 
 | 450 |     --without-zlib | 
 | 451 |       disable ZLIB support. | 
 | 452 |    | 
 | 453 |     --without-x | 
 | 454 |       don't use the X Window System. | 
 | 455 |    | 
 | 456 |       By default, ImageMagick uses the X11 delegate libraries if they are | 
 | 457 |       available. When --without-x is specified, use of X11 is disabled. The | 
 | 458 |       display, animate, and import sub-commands are not included. The remaining | 
 | 459 |       sub-commands have reduced functionality such as no access to X11 fonts | 
 | 460 |       (consider using Postscript or TrueType fonts instead). | 
 | 461 |    | 
 | 462 |     --with-share-path=DIR | 
 | 463 |       Alternate path to share directory (default share/ImageMagick). | 
 | 464 |    | 
 | 465 |     --with-libstdc=DIR | 
 | 466 |       use libstdc++ in DIR (for GNU C++). | 
 | 467 |    | 
| cristy | 3ed852e | 2009-09-05 21:47:34 +0000 | [diff] [blame] | 468 |   While configure is designed to ease installation of ImageMagick, it often | 
 | 469 |   discovers problems that would otherwise be encountered later when compiling | 
 | 470 |   ImageMagick. The configure script tests for headers and libraries by | 
 | 471 |   executing the compiler (CC) with the specified compilation flags (CFLAGS), | 
 | 472 |   pre-processor flags (CPPFLAGS), and linker flags (LDFLAGS). Any errors are | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 473 |   logged to the file config.log. If configure fails to discover a header or | 
 | 474 |   library please review this log file to determine why, however, please be | 
 | 475 |   aware that *errors in the config.log are normal* because configure works by | 
 | 476 |   trying something and seeing if it fails. An error in config.log is only a | 
 | 477 |   problem if the test should have passed on your system. | 
 | 478 |    | 
| cristy | 3ed852e | 2009-09-05 21:47:34 +0000 | [diff] [blame] | 479 |   Common causes of configure failures are: 1) a delegate header is not in the | 
 | 480 |   header include path (CPPFLAGS -I option); 2) a delegate library is not in | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 481 |   the linker search/run path (LDFLAGS -L/-R option); 3) a delegate library is | 
 | 482 |   missing a function (old version?); or 4) compilation environment is faulty. | 
 | 483 |    | 
| cristy | 3ed852e | 2009-09-05 21:47:34 +0000 | [diff] [blame] | 484 |   If all reasonable corrective actions have been tried and the problem appears | 
 | 485 |   be due to a flaw in the configure script, please send a bug report to the | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 486 |   ImageMagick Defect Support Forum. All bug reports should contain the operating | 
 | 487 |   system type (as reported by uname -a) and the compiler/compiler-version. A | 
 | 488 |   copy of the configure script output and/or the relevant portion of config.log | 
 | 489 |   file may be valuable in order to find the problem. If you post portions | 
 | 490 |   of config.log, please also send a script of the configure output and a | 
| cristy | 3ed852e | 2009-09-05 21:47:34 +0000 | [diff] [blame] | 491 |   description of what you expected to see (and why) so the failure you are | 
 | 492 |   observing can be identified and resolved. | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 493 |    | 
 | 494 |   ImageMagick is now configured and ready to build | 
 | 495 |    | 
 | 496 | Build | 
 | 497 |    | 
 | 498 |   Once ImageMagick is configured, these standard build targets are available | 
 | 499 |   from the generated make files: | 
 | 500 |    | 
 | 501 |     make | 
 | 502 |       build ImageMagick. | 
 | 503 |    | 
 | 504 |     sudo make install | 
 | 505 |       install ImageMagick. | 
 | 506 |    | 
| cristy | 3ed852e | 2009-09-05 21:47:34 +0000 | [diff] [blame] | 507 |     make check | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 508 |       Run tests using the installed ImageMagick (sudo make install must be | 
 | 509 |       done first). Ghostscript is a prerequisite, otherwise the EPS, PS, | 
 | 510 |       and PDF tests will fail. | 
 | 511 |    | 
 | 512 |     make clean | 
 | 513 |       Remove everything in the build directory created by make. | 
 | 514 |    | 
 | 515 |     make distclean | 
 | 516 |       remove everything in the build directory created by configure and | 
 | 517 |       make. This useful if you want to start over from scratch. | 
 | 518 |    | 
 | 519 |     make uninstall | 
 | 520 |       Remove all files from the system which are (or would be) installed by sudo | 
 | 521 |       make install using the current configuration. Note that this target is | 
 | 522 |       imperfect for PerlMagick since Perl no longer supports an uninstall | 
 | 523 |       target. | 
 | 524 |    | 
 | 525 |   In most cases you will simply wand to compile ImageMagick with this command: | 
 | 526 |    | 
 | 527 |     $magick> make | 
 | 528 |    | 
 | 529 |   Once built, you can optionally install ImageMagick on your system as | 
 | 530 |   discussed below. | 
 | 531 |    | 
 | 532 | Install | 
 | 533 |    | 
 | 534 |   Now that ImageMagick is configured and built, type: | 
 | 535 |    | 
 | 536 |     $magick> make install | 
 | 537 |    | 
 | 538 |   to install it. | 
 | 539 |    | 
 | 540 |   By default, ImageMagick is installs binaries in /../usr/local/bin, libraries | 
 | 541 |   in /../usr/local/lib, header files in /../usr/local/include and documentation | 
 | 542 |   in /../usr/local/share. You can specify an alternative installation prefix | 
 | 543 |   other than /../usr/local by giving configure the option --prefix=PATH. This | 
 | 544 |   valuable in case you don't have privileges to install under the default | 
 | 545 |   paths or if you want to install in the system directories instead. | 
 | 546 |    | 
 | 547 |   To confirm your installation of the ImageMagick distribution was successful, | 
 | 548 |   ensure that the installation directory is in your executable search path | 
 | 549 |   and type: | 
 | 550 |    | 
 | 551 |     $magick> display | 
 | 552 |    | 
 | 553 |   The ImageMagick logo is displayed on your X11 display. | 
 | 554 |    | 
 | 555 |   To verify the ImageMagick build configuration, type: | 
 | 556 |    | 
 | 557 |     $magick> identify -list configure | 
 | 558 |    | 
 | 559 |   To list which image formats are supported , type: | 
 | 560 |    | 
 | 561 |     $magick> identify -list format | 
 | 562 |    | 
 | 563 |   For a more comprehensive test, you run the ImageMagick test suite by typing: | 
 | 564 |    | 
 | 565 |     $magick> make check | 
 | 566 |    | 
 | 567 |   Ghostscript is a prerequisite, otherwise the EPS, PS, and PDF tests will | 
 | 568 |   fail. Note that due to differences between the developer's environment and | 
 | 569 |   your own it is possible that a few tests may fail even though the results are | 
 | 570 |   ok. Differences between the developer's environment environment and your own | 
 | 571 |   may include the compiler, the CPU type, and the library versions used. The | 
 | 572 |   ImageMagick developers use the current release of all dependent libraries. | 
| cristy | 3ed852e | 2009-09-05 21:47:34 +0000 | [diff] [blame] | 573 |  | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 574 | Linux-specific Build instructions | 
 | 575 |    | 
 | 576 |   Download ImageMagick.src.rpm from ftp.imagemagick.org or its mirrors and | 
 | 577 |   verify the distribution against its message digest. | 
 | 578 |    | 
 | 579 |   Build ImageMagick with this command: | 
 | 580 |    | 
 | 581 |     $magick> rpmbuild --rebuild ImageMagick.src.rpm | 
 | 582 |    | 
 | 583 |   After the build you, locate the RPMS folder and install the ImageMagick | 
 | 584 |   binary RPM distribution: | 
 | 585 |    | 
| cristy | df1e382 | 2012-03-20 00:48:54 +0000 | [diff] [blame] | 586 |     $magick> rpm -ivh ImageMagick-7.0.0-?.*.rpm | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 587 |    | 
 | 588 | MinGW-specific Build instructions | 
 | 589 |    | 
 | 590 |   Although you can download and install delegate libraries yourself, many | 
 | 591 |   are already available in the GnuWin32 distribution. Download and install | 
 | 592 |   whichever delegate libraries you require such as JPEG, PNG, TIFF, etc. Make | 
 | 593 |   sure you specify the development headers when you install a package. Next | 
 | 594 |   type, | 
 | 595 |    | 
| cristy | df1e382 | 2012-03-20 00:48:54 +0000 | [diff] [blame] | 596 |     $magick> tar jxvf ImageMagick-7.0.0-?.tar.bz2 | 
 | 597 |     $magick> cd ImageMagick-7.0.0 | 
| cristy | ebe41ab | 2010-01-14 02:58:18 +0000 | [diff] [blame] | 598 |     $magick> export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include" | 
 | 599 |     $magick> export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib" | 
 | 600 |     $magick> ./configure --without-perl | 
 | 601 |     $magick> make $magick> sudo make install | 
 | 602 |    | 
 | 603 | Dealing with Unexpected Problems | 
 | 604 |    | 
 | 605 |   Chances are the download, configure, build, and install of ImageMagick went | 
 | 606 |   flawlessly as it is intended, however, certain systems and environments may | 
 | 607 |   cause one or more steps to fail. We discuss a few problems we've run across | 
 | 608 |   and how to take corrective action to ensure you have a working release | 
 | 609 |   of ImageMagick | 
 | 610 |    | 
 | 611 |   Build Problems | 
 | 612 |    | 
 | 613 |   If the build complains about missing dependencies (e.g. .deps/source.PLO), | 
 | 614 |   add --disable-dependency-tracking to your configure command line. | 
 | 615 |    | 
 | 616 |   Some systems may fail to link at build time due to unresolved symbols. Try | 
 | 617 |   adding the LDFLAGS to the configure command line: | 
 | 618 |    | 
 | 619 |     $magick> configure LDFLAGS='-L/usr/local/lib -R/usr/local/lib' | 
 | 620 |    | 
 | 621 |   Dynamic Linker Run-time Bindings | 
 | 622 |    | 
 | 623 |   On some systems, ImageMagick may not find its shared library, libMagick.so. Try | 
 | 624 |   running the ldconfig with the library path: | 
 | 625 |    | 
 | 626 |     $magick> /sbin/ldconfig /usr/local/lib | 
 | 627 |    | 
 | 628 |   Solaris and Linux systems have the ldd command which is useful to track which | 
 | 629 |   libraries ImageMagick depends on: | 
 | 630 |    | 
 | 631 |     $magick> ldd `which convert` | 
 | 632 |    | 
 | 633 |   Delegate Libraries | 
 | 634 |    | 
 | 635 |   On occasion you may receive these warnings: | 
 | 636 |    | 
 | 637 |     no decode delegate for this image format | 
 | 638 |     no encode delegate for this image format | 
 | 639 |    | 
 | 640 |   This exception indicates that an external delegate library or its headers | 
 | 641 |   were not available when ImageMagick was built. To add support for the image | 
 | 642 |   format, download and install the requisite delegate library and its header | 
 | 643 |   files and reconfigure, rebuild, and reinstall ImageMagick. As an example, | 
 | 644 |   lets add support for the JPEG image format. First we install the JPEG RPMS: | 
 | 645 |    | 
 | 646 |     $magick> yum install libjpeg libjpeg-devel | 
 | 647 |    | 
 | 648 |   Now reconfigure, rebuild, and reinstall ImageMagick. To verify JPEG is now | 
 | 649 |   properly supported within ImageMagick, use this command: | 
 | 650 |    | 
 | 651 |     $magick> identify -list format | 
 | 652 |    | 
 | 653 |   You should see a mode of rw- associated with the JPEG tag. This mode means | 
 | 654 |   the image can be read or written and can only support one image per image | 
 | 655 |   file. | 
 | 656 |    | 
 | 657 | PerlMagick | 
 | 658 |    | 
 | 659 |   If PerlMagick fails to link with a message similar to libperl.a is not found, | 
 | 660 |   rerun configure with the --enable-shared or --enable-shared --with-modules | 
 | 661 |   options. |