]> granicus.if.org Git - imagemagick/blobdiff - Install-windows.txt
(no commit message)
[imagemagick] / Install-windows.txt
index 4ba828c1a21f5aaa8f910884c74ba131e5763195..594f5a093af556106622b529f3f1587539af9053 100644 (file)
-WINDOWS XP/Win2K/98 VISUAL C++ 6.0 AND 7.0 COMPILATION
-
-  The Visual C++ distribution targeted at Windows XP, Win2K, or Windows
-  98 does not provide any stock workspace (DSW) or project files (DSP)
-  except for those included with third party libraries. Instead, there
-  is a `configure' program that must be built and run that creates build
-  environments to satisfy various requirements.
-
-  The Visual C++ system provides three different types of "runtimes" that
-  must match across all application, library, and DLL code that is built. The
-  `configure' program creates a set of build files that are consistent for
-  a specific runtime selection.
-
-  The three options for runtime support are:
-
-    1) Dynamic Multi-threaded DLL runtimes (VisualDynamicMT).
-    2) Static Single-threaded runtimes (VisualStaticST).
-    3) Static Multi-threaded runtimes (VisualStaticMT).
-    4) Static Multi-threaded DLL runtimes (VisualStaticMTDLL).
-
+Download & Unpack
+  
+  Building ImageMagick source for Windows requires a modern version of Microsoft
+  Visual Studio IDE. Users have reported success with the Borland C++ compiler
+  as well. If you don't have a compiler you can still install a self-installing
+  binary release.
+  
+  Download ImageMagick-windows.zip from ftp.imagemagick.org or its mirrors
+  and verify the distribution against its message digest.
+  
+  You can unpack the distribution with WinZip or type the following from any
+  MS-DOS Command Prompt window:
+  
+    $magick> unzip ImageMagick-windows.zip
+  
+  Now that you have the ImageMagick Windows source distribution unpacked,
+  let's configure it.
+  
+Configure
+  
+  These instructions are specific to building ImageMagick with the Visual
+  Studio under Windows XP, Win2K, or Windows 98. ImageMagick does not include
+  any workspace (DSW) or project files (DSP) except for those included with
+  third party libraries. Instead, there is a configure program that must be
+  built and run which creates the Visual Studio workspaces for ImageMagick. The
+  Visual Studio system provides four different types of runtime environments
+  that must match across all application, library, and dynamic-library (DLL)
+  code that is built. The configure program creates a set of build files that
+  are consistent for a specific runtime selection listed here:
+  
+     1. Dynamic Multi-threaded DLL runtimes (VisualDynamicMT).
+     2. Static Single-threaded runtimes (VisualStaticST).
+     3. Static Multi-threaded runtimes (VisualStaticMT).
+     4. Static Multi-threaded DLL runtimes (VisualStaticMTDLL).
+  
   In addition to these runtimes, the VisualMagick build environment allows
-  you to select whether to include the X11 libraries in the build or not.
-  X11 DLLs and headers are provided with the VisualMagick build environment.
-  Most Windows users do not use X11 so they will prefer to build without
-  X11 support.  Without X11 support, the `animate', `display', and `import'
-  will not work.
-
-  This leads to five different possible build options, which should cover
-  almost any particular situation.  The default binary distribution is built
-  using #1 from above with the X11 libraries included.  This results in an
-  X11 compatible build using all DLL's for everything and multi-threaded
-  support (the only option for DLL's).
-
-  To do a build for your requirements, simply go to the configure subdirectory
-  under VisualMagick and open the configure.dsw workspace (for Visual C++
-  6.0) or configure.sln (for Visual C++ 7.0). Set the build configuration to
-  "Release" under the
-
-      "Build..., Set Active Configuration..."
-
-  menu.
-
+  you to select whether to include the X11 libraries in the build or not. X11
+  DLLs and headers are provided with the VisualMagick build environment. Most
+  Windows users are probably not interested in using X11, so you might prefer
+  to build without X11 support. Since the animate, display, and import program
+  depends on the X11 delegate libraries, these programs will no work if you
+  choose not to include X11 support.
+  
+  This leads to five different possible build options. The default binary
+  distribution is built using the Dynamic Multi-threaded DLL (VisualDynamicMT)
+  option with the X11 libraries included. This results in an X11 compatible
+  build using all DLL's for everything and multi-threaded support (the only
+  option for DLL's).
+  
+  To create a workspace for your requirements, simply go to the
+  VisualMagick\configure folder and open the configure.dsw workspace (for
+  Visual Studio 6) or configure.sln (for Visual Studio 7 or 8). Set the build
+  configuration to Release.
+  
   Build and execute the configure program and follow the on-screen
-  instructions.  Generally you can accept the configuration defaults.
-
-  The configure program provides a button titled
-
-     Edit "magick_config.h"
-
-  Clicking this button allows you to edit `magick_config.h' in a Windows
-  Notepad window for optionally changing any preprocessor defines.
-  This file is copied to `magick\magick_config.h'.  You may safely open
-  `magick\magick_config.h', modify it, and recompile without re-running the
-  configure program.  In fact, using the notepad program to edit the copied
-  file may be preferable since it preserves the original `magick_config.hi'
-  file.
-
-  Key user tunables in magick_config.h include:
-
+  instructions. You should not change any of the defaults unless you have a
+  specific reason to do so.
+  
+  The configure program has a button entitled:
+  
+    Edit "magick_config.h"
+  
+  Click on this button to bring up magick-config.h in Windows Notepad. Review
+  and optionally change any preprocessor defines in ImageMagick's
+  magick_config.h file to suit your needs. This file is copied to
+  magick\magick_config.h. You may safely open magick\magick_config.h, modify
+  it, and recompile without re-running the configure program. In fact, using
+  Notepad to edit the copied file may be preferable since it preserves the
+  original magick_config.h file.
+  
+  Key user defines in magick_config.h include:
+  
     MAGICKCORE_QUANTUM_DEPTH (default 16)
-
-      Specify the size of PixelPacket color Quantums (8, 16, or 32).
-      If you need to preserve the fidelity of 16-bit images (gray, png,
-      etc), use 16.  If you want to work in remote sensing or if you are
-      a mad scientist you might consider 32.  Note, that a quantum-depth
-      16 uses 4-times as much memory as the default quantum-depth of 8,
-      whereas a quantum-depth of 32 uses 16-times as much memory.
-
+      Specify the depth of the pixel component depth (8, 16, or 32). A value of
+      8 uses half the memory than 16 and may run 30% faster, but provides 256
+      times less color resolution than a value of 16. We recommend a quantum
+      depth of 16 because 16-bit images are becoming more prevalent on the
+      Internet.
+  
     MAGICKCORE_INSTALLED_SUPPORT (default undefined)
-
-      Define to build an ImageMagick which uses registry settings or embedded
+      Define to build a ImageMagick which uses registry settings or embedded
       paths to locate installed components (coder modules and configuration
-      files).  The default is to look for all files in the same directory
-      as the executable.
-
+      files). The default is to look for all files in the same directory as
+      the executable. You will wand to define this value if you intend on
+      installing ImageMagick on your system.
+  
     ProvideDllMain (default defined)
-
       Define to include a DllMain() function ensures that the ImageMagick
       DLL is properly initialized without participation from dependent
-      applications.  This avoids the requirement to invoke IntializeMagick()
-      from dependent applications but only works for DLL builds.
-
-  After creating your build environment you can proceed to open the DSW
-  (or SLN) file that was generated in the VisualMagick directory and build
-  everything from there.
-
-  In the final DSW file you will find a project call "All". In order to
-  build everything in the distribution, select this project and make it the
-  "active" project. Set the build configuration to the desired one (Debug,
-  or Release) and do a "clean" followed by a "build".  You should do the
-  build in a specific way:
-
-    1) Make the "All" project the active project (Bold)
-       Right click on the All project and select "Set As Active Project"
-    2) Select "Build..., Clean" 3) Select "Build..., Build" 4) Go get some
-    coffee unless you have a very fast machine!.
-
-  The "Clean" step is needed in order to make sure that all of the target
-  support libraries are updated with any patches needed to get them to
-  compile properly under Visual C++.
-
-  All of the required files that are needed to run any of the command
-  line tools will be found in the "bin" subdirectory of the VisualMagick
-  subdirectory.  This includes EXE, and DLL files. You should be able to test
-  the build directly from this directory without having to move anything to any
-  of the global SYSTEM or SYSTEM32 areas in the operating system installation.
-
-  Note #1:
-
-  The Visual C++ distribution of ImageMagick comes with the Magick++
-  C++ wrapper by default.  This add-on layer has a large number of demo
+      applications. This avoids the requirement to invoke IntializeMagick()
+      from dependent applications is only useful for DLL builds.
+  
+  ImageMagick is now configured and ready to build.
+  
+  The default build is WIN32. For 64-bit, open a newly created static solution
+  and enter Configuration Manager. Add a x64 configuration, copying the
+  configuration from WIn32. Be sure that it adds the configuration to all the
+  projects. Now compile.
+  
+Build
+  
+  After creating your build environment, proceed to open the DSW (or SLN)
+  workspace in the VisualMagick folder. In the DSW file choose the All project
+  to make it the active project. Set the build configuration to the desired one
+  (Debug, or Release) and clean and build:
+  
+     1. Right click on the All project and select Set As Active Project
+     2. Select "Build=>Clean Solution"
+     3. Select "Build=>Build Solution"
+  
+  The clean step is necessary in order to make sure that all of the target
+  support libraries are updated with any patches needed to get them to compile
+  properly under Visual Studio.
+  
+  After a successful build, all of the required files that are needed to run
+  any of the command line tools are located in the VisualMagick\bin folder. This
+  includes EXE, DLL libraries, and ImageMagick configuration files. You should
+  be able to test the build directly from this directory without having to
+  move anything to any of the global SYSTEM or SYSTEM32 areas in the operating
+  system installation.
+  
+  The Visual Studio distribution of ImageMagick comes with the Magick++
+  C++ wrapper by default. This add-on layer has a large number of demo
   and test files that can be found in ImageMagick\Magick++\demo, and
-  ImageMagick\Magick++\tests. There are also a variety of tests that use
-  the straight C API as well in ImageMagick\tests.
-
-  All of these programs are NOT configured to be built in the default
-  workspace created by the configure program.  You can build these demos
-  and test programs to be built by checking the box in configure that says:
-
-    "Include all demo and test programs"
-
+  ImageMagick\Magick++\tests. There are also a variety of tests that use the
+  straight C API as well in ImageMagick\tests.
+  
+  All of these programs are not configured to be built in the default workspace
+  created by the configure program. You can cause all of these demos and test
+  programs to be built by checking the box in configure that says:
+  
+    Include all demo and test programs
+  
   In addition, there is another related checkbox (checked by default) that
   causes all generated project files to be created standalone so that they
   can be copied to other areas of you system.
-
-  This is the checkbox:
-
-    "Generate all utility projects with full paths rather then relative paths"
-
-  Visual C++ uses a concept of "dependencies" that tell it what other
-  components need to be build when a particular project is being build.
-  This mechanism is also used to ensure that components link properly.
-  With this feature enabled, you should be able to nab a copy of...
-
-    VisualMagick\utilities\UTIL_convert_xxx_exe.dsp  (for C)
-
-  or
-
+  
+    This the checkbox:
+  
+  Generate all utility projects with full paths rather then relative paths.
+  
+  Visual Studio uses a concept of dependencies that tell it what other
+  components need to be build when a particular project is being build. This
+  mechanism is also used to ensure that components link properly. In my normal
+  development environment, I want to be able to make changes and debug the
+  system as a whole, so I like and NEED to use dependencies. However, most end
+  users don't want to work this way.
+  
+  Instead they really just want to build the package and then get down to
+  business working on their application. The solution is to make all the utility
+  projects (UTIL_xxxx_yy_exe.dsp) use full absolute paths to all the things they
+  need. This way the projects stand on their own and can actually be copied
+  and used as templates to get a particular custom application compiling with
+  little effort.
+  
+  With this feature enabled, you should be able to nab a copy of
+  
+    VisualMagick\utilities\UTIL_convert_xxx_exe.dsp (for C) or
     VisualMagick\Magick++\demo\UTIL_demo_xxx_exe.dsp (for C++)
-
-  and pop it into the notepad program, modify it (carefully) to your needs
-  and be on your way to happy compiling and linking.
-
+  
+  and pop it into Notepad, modify it (carefully) to your needs and be on your
+  way to happy compiling and linking.
+  
   You can feel free to pick any of the standard utilities, tests, or demo
-  programs as the basis for a new program by copying the project and the
-  source and hacking away.
-
+  programs as the basis for a new program by copying the project and the source
+  and hacking away.
+  
   The choice of what to use as a starting point is very easy.
-
+  
   For straight C API command line applications use something from:
-
-    ImageMagick\tests or ImageMagick\utilities (source code)
-    ImageMagick\VisualMagick\tests or ImageMagick\Visualmagick\utilities (project - DSP)
-
+  
+    ImageMagick\tests or
+    ImageMagick\utilities (source code) or
+    ImageMagick\VisualMagick\tests or
+    ImageMagick\Visualmagick\utilities (project - DSP)
+  
   For C++ and Magick++ command line applications use something from:
-
-    ImageMagick\Magick++\tests or ImageMagick\Magick++\demo (source code)
-    ImageMagick\VisualMagick\Magick++\tests or ImageMagick\VisualMagick\Magick++\demo (project - DSP)
-
+  
+    ImageMagick\Magick++\tests or ImageMagick\Magick++\demo (source code) or
+    ImageMagick\VisualMagick\Magick++\tests or
+    ImageMagick\VisualMagick\Magick++\demo (project - DSP)
+  
   For C++ and Magick++ and MFC windows applications use:
-
-    ImageMagick\contrib\win32\MFC\NtMagick (source code)
-    ImageMagick\VisualMagick\contrib\win32\MFC\NtMagick (project - DSP)
-
-  Note #2:
-
-  The ImageMagick distribution is very modular. The default configuration
-  is there to get you rolling, but you need to make some serious choices
-  when you wish to change things around.
-
-  The default options are all targeted at having all the components in one
-  place (e.g. the "bin" directory of the VisualMagick build tree). These
-  components may be copied to another folder (such as to another computer).
-
-  The folder containing the executables and DLLs should contain all the
-  configuration files, *.xml.
-
-  The "bin" folder should contains all EXE's and DLL's as well as the very
-  important "coder.xml" file.
-
+  
+    ImageMagick\contrib\win32\MFC\NtMagick (source code) or
+   ImageMagick\VisualMagick\contrib\win32\MFC\NtMagick (project - DSP)
+  
+  The ImageMagick distribution is very modular. The default configuration is
+  there to get you rolling, but you need to make some serious choices when
+  you wish to change things around.
+  
+  The default options are all targeted at having all the components in one place
+  (e.g. the bin directory of the VisualMagick build tree). These components
+  may be copied to another folder (such as to another computer).
+  
+  The folder containing the executables and DLLs should contain the following
+  files:
+  
+     1. magic.xml
+     2. delegates.xml
+     3. modules.xml
+     4. colors.xml
+  
+  among others.
+  
+  The bin folder should contains all EXE's and DLL's as well as the very
+  important modules.xml file.
+  
   With this default setup, you can use any of the command line tools and run
-  scripts as normal.  You can actually get by quite nicely this way by doing
-  something like "pushd e:\xxx\yyy\bin" in any scripts you write to execute
-  "out of" this directory.
-
+  scripts as normal. You can actually get by quite nicely this way by doing
+  something like pushd e:\xxx\yyy\bin in any scripts you write to execute out
+  of this directory.
+  
   By default the core of ImageMagick on Win32 always looks in the place were
   the exe program is run from in order to find all of the files as well as
   the DLL's it needs.
-
-
-ENVIRONMENT VARIABLES
-
-  You can use the "System" control panel to allow you to add and delete what
+  
+  ENVIRONMENT VARIABLES
+  
+  You can use the System control panel to allow you to add and delete what
   is in any of the environment variables. You can even have user specific
   environment variables if you wish.
-
+  
   PATH
-
-    This sets the default list of places were Windows looks for EXE's
-    and DLL's.  Windows CMD shell seems to look in the "current" directory
-    first - no matter what, which may make it unnecessary to update the PATH.
-    If you wish to run any of utilities from another location, you must
-    add the path to your "bin" directory in. For instance, you might add:
-
-       D:\CVS\ImageMagick\VisualMagick\bin
-
-    to do this for the default build environment like I do.
-
-  MAGICK_HOME
-
-    If all you do is modify the PATH variable, the first problem you will run
-    into is that ImageMagick may not be able to find any of its "modules".
-    Modules are all the IM_MOD*.DLL files you see in the distribution.
-    There is one of these for each and every file format that ImageMagick
-    supports. This environment variable tells the system were to look for
-    these DLL's.  The compiled in "default" is "execution path" - which says
-    - look in the same place that the application is running "in".  If you
-    are running from somewhere other then "bin" - this will no longer work
-    and you must use this variable.  If you elect to leave the modules in
-    the same place as the EXE's (a good idea), you can simply set this to
-    the same place as you did the PATH variable. In my case:
-
-       D:\\ImageMagick\coders
-
-    This is also the place were ImageMagick expects to find the configuration
-    files, *.xml, including module.xml, type.xml, etc.
-
-    One cool thing about the modules build of ImageMagick is that you can
-    now leave out file formats and lighten you load.  If all you ever need is
-    GIF and JPEG, simply drop all the other DLL's into the local trash
-    can and get on with your life.  However, always keep the "xc" format,
-    since ImageMagick uses it for internal purposes.
-
-  Also. You can elect to changes these things the good old "hard-coded"
-  way. Two #defines are applicable.
-
-  defines.h has
-
-      #define MagickConfigurePath  "c:\\ImageMagick\\"
-
+  
+  This environmental variable sets the default list of places were Windows
+  looks for EXE's and DLL's. Windows CMD shell seems to look in the current
+  directory first no matter what, which may make it unnecessary to update the
+  PATH. If you wish to run any of utilities from another location then you
+  must add the path to your bin directory in. For instance, to do this for
+  the default build environment like I do, you might add:
+  
+    C:\ImageMagick\VisualMagick\bin
+    MAGICK_HOME
+  
+  If all you do is modify the PATH variable, the first problem you will run into
+  is that ImageMagick may not be able to find any of its modules. Modules are
+  all the IM_MOD*.DLL files you see in the distribution. There is one of these
+  for each and every file format that ImageMagick supports. This environment
+  variable tells the system were to look for these DLL's. The compiled in
+  default is execution path - which says - look in the same place that the
+  application is running in. If you are running from somewhere other then bin
+  - this will no longer work and you must use this variable. If you elect to
+  leave the modules in the same place as the EXE's (a good idea) then you can
+  simply set this to the same place as you did the PATH variable. In my case:
+  
+    C:\ImageMagick\coders
+  
+  This also the place were ImageMagick expects to find the colors.xml,
+  delegates.xml, magic.xml, modules.xml, and type.xml files.
+  
+  One cool thing about the modules build of ImageMagick is that you can now
+  leave out file formats and lighten you load. If all you ever need is GIF and
+  JPEG, then simply drop all the other DLL's into the local trash can and get
+  on with your life.
+  
+  Always keep the XC format, since ImageMagick uses it internally.
+  
+  You can elect to changes these things the good old hard-coded way. This
+  define is applicable in magick-config.h:
+  
+    #define MagickConfigurePath "C:\\ImageMagick\\"
+  
   To view any image in a Microsoft window, type
-
-      convert image.ext win:
-
-  Make sure Ghostscript is installed, otherwise, you will be unable to
-  convert or view a Postscript document, and Postscript standard fonts will
-  not be available.
-
-  You may use any standard web browser (e.g. Internet Explorer) to browse
-  the ImageMagick documentation.
-
+  
+    $magick> convert image.ext win:
+  
+  Make sure Ghostscript is installed, otherwise, you will be unable to convert
+  or view a Postscript document, and Postscript standard fonts will not be
+  available.
+  
+  You may use any standard web browser (e.g. Internet Explorer) to browse the
+  ImageMagick documentation.
+  
   The Win2K executables will work under Windows 98.
-
+  
+  ImageMagick is now configured and built. You can optionally install it on
+  your system as discussed below.
+  
+  If you are looking to install the ImageMagick COM+ object, see Installing
+  the ImageMagickObject COM+ Component.
+
+Install
+  
+  You can run ImageMagick command line utilities directly from the
+  VisualMagick\bin folder, however, in most cases you may want the convenience
+  of an installer script. ImageMagick provides Inno Setup scripts for this
+  purpose. Note, you must define MAGICKCORE_INSTALLED_SUPPORT at configure
+  time to utilize the installer scripts.
+  
+  To get started building a self-installing ImageMagick executable, go to
+  VisualMagick\installer folder and click on a script that matches your build
+  environment. Press F9 to build and install ImageMagick. The default location
+  is C:Program Files\ImageMagick-6.?.?\Q?. The exact folder name depends
+  on the ImageMagick version and quantum depth. Once installed, ImageMagick
+  command line utilities and libraries are available to the MS Command Prompt,
+  web scripts, or to meet your development needs.
+  
+Create a Self-Installing Binary Distribution
+  
+  Prerequisites
+  
+     1. Download and install Inno Setup 5.
+     2. Download and install ActiveState ActivePerl @
+        http://www.activestate.com/activeperl/downloads/.
+  
+  Run the Configure Wizard
+  
+     1. Double-click on VisualMagick/configure/configure.sln to build the
+        configure wizard.
+     2. Select Rebuild All and launch the configure wizard.
+     3. Uncheck Use X11 Stubs and check Build demo and test programs.
+     4. Click on Edit magick_config.h and define MAGICKCORE_INSTALLED_SUPPORT.
+     5. Complete the configure wizard screens to create the ImageMagick Visual
+        C++ workspace.
+  
+  Build ImageMagick
+  
+     1. Double-click on VisualMagick/VisualDynamicMT.sln to launch the
+        ImageMagick Visual workspace.
+     2. Set the active configuration to Win32 Release.
+     3. Select Rebuild All to build the ImageMagick binary distribution.
+  
+  Build ImageMagickObject
+  
+     1. Launch the MS-DOS Command Prompt application and move to the
+        contrib\win32\ATL7\ImageMagickObject folder.
+     2. Build ImageMagickObject with these commands:
+  
+          $magick> BuildImageMagickObject clean
+          $magick> BuildImageMagickObject release
+  
+  Build PerlMagick
+  
+     1. Launch the MS-DOS Command Prompt application and move to the PerlMagick
+        folder.
+     2. Build PerlMagick with these commands:
+  
+          $magick> perl Makefile.nt
+          $magick> nmake release
+  
+  Create the Self-installing ImageMagick Binary Distribution
+  
+     1. Double-click on VisualMagick/installer/im-dll-16.iss to launch the
+        Inno Setup 5 wizard.
+     2. Select File->Compile.
+  
+  Install the Binary Distribution
+  
+     1. Double-click on VisualMagick/bin/ImageMagick-7.0.0-0-Q16-windows-dll.exe
+        to launch the ImageMagick binary distribution.
+     2. Complete the installer screens to install ImageMagick on your system.
+  
+  Test the Binary Distribution
+  
+     1. Launch the MS-DOS Command Prompt application and move to the PerlMagick
+        folder and type
+  
+          $magick> nmake test
+  
+     2. Move to the VisualMagick/tests folder and type
+  
+          $magick> validate
+  
+     3. Move to the VisualMagick/Magick++/tests folder and type
+  
+          $magick> run_tests.bat
+  
+     4. Move to the VisualMagick/Magick++/demo folder and type
+  
+          $magick> run_demos.bat
+  
+  If all the tests pass without complaint, the ImageMagick self-install binary
+  distribution is ready for use.
+  
+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.
+  
+  If the compiler generates an error or if it quits unexpectedly, go to the
+  Visual Studio web site and look for Visual Studio service packs. Chances
+  are, after you download and install all the Visual Studio service packs,
+  ImageMagick will compile and build as expected.
+  
+Building Your Custom Project
+  
+  The Windows binary distribution includes a number of demo projects that
+  you can use as a template for your own custom project. For example,
+  start with the Button project, generally located in the c:/Program
+  Files/ImageMagick-7.0.0-0/Magick++_demos folder. If not, be sure to select
+  Configuration Properties->C/C++->Preprocessor and set these definitions:
+  
+    NDEBUG
+    WIN32
+    _CONSOLE
+    _VISUALC_
+    NeedFunctionPrototypes
+    _DLL
+    _MAGICKMOD_