]> granicus.if.org Git - imagemagick/blobdiff - Install-windows.txt
https://github.com/ImageMagick/ImageMagick/issues/1295
[imagemagick] / Install-windows.txt
index 594f5a093af556106622b529f3f1587539af9053..ca7eba150be7151e9ef6dae3d27bc2b58da21748 100644 (file)
-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 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. 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 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 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. 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 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 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 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 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.
-  
-  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) 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) 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) 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.
-  
-  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
-  is in any of the environment variables. You can even have user specific
-  environment variables if you wish.
-  
-  PATH
-  
-  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
-  
-    $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.
+This document describes the requirements and instructions to build ImageMagick
+for Windows on your own machine.
 
-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_
+Requirements
+
+  o Visual Studio 2013 (or newer)
+  o Git for Windows
+  o AMD APP SDK (optional
+  for OpenCL support)
+
+Install Visual Studio dependencies
+
+To build ImageMagick with Visual Studio the following components should
+be installed:
+
+  o Desktop development with C++ (workload)
+  o Visual C++ ATL for x86 and x64
+  o Visual C++ MFC for x86 and x64
+  o Windows XP support for C++ (optional if the output needs to run on Windows
+    XP)
+
+Naming of these components might differ between version of Visual Studio. The
+example above use the Visual Studio 2017 names.
+
+Clone the dependencies
+
+The ImageMagick library is build with a number of third party libraries. Run
+CloneRepositories.cmd to clone these libraries and the ImageMagick library.
+
+Build configure.exe
+
+One of the folders that was created in the previous step is called VisualMagick
+and this folder contains a folder called configure. This folder contains a
+solution configure.sln. Open this solution with Visual Studio and start a
+Release build of the project. This will create a file called configure.exe in
+the folder. Running this program will start a Wizard that allows configuration
+of ImageMagick and its individual components.
+
+Build ImageMagick
+
+Depending on which options where chosen when running configure.exe one of
+the following solutions will be created in the VisualMagick folder:
+
+  o VisualDynamicMT.sln (Dynamic Multi-threaded DLL runtimes)
+  o VisualStaticMTD.sln (Static Multi-threaded DLL runtimes)
+  o VisualStaticMT.sln (Static Multi-threaded runtimes)
+
+Open the solution to start building ImageMagick. The binaries will be created
+in the VisualMagick\bin folder.