On Fri, Jan 20, 2017 at 4:54 PM, Eli Zaretskii <
address@hidden> wrote:
> There's no problem when Imagemagick is absent. The --without-*
> switches are only needed when the package is present, but you want to
> override its automatic detection.
>
> AFAIR, the problem with Imagemagick support on Windows is that it can
> only be supported when linked in statically, so the produced binary
> can only be safely used on the system where it was built. And on top
> of that, there's a problem with Imagemagick 7.x, which I think is not
> specific to Windows.
I think there are two issues here. One is what to do (and explain) when ImageMagick is present. As you say,
> You see, w32-win.el doesn't have ImageMagick-related DLL names in its
> value of dynamic-library-alist, and without that Emacs won't know
> which libraries to look for when ImageMagick support is requested.
>
> That alist is how officially supported optional libraries should be
> introduced into the Windows build of Emacs -- we want a binary that
> was built with these libraries to be able to run on systems without
> the DLLs being available. By contrast, just linking with the -lLIB
> link-time switch produces a binary that will refuse to load if the DLL
> is not found.
That's entirely correct and we will want to modify ImageMagick support on Windows as we did with other image libraries and GnuTLS and libxml.
But I am now worried about nt/INSTALL.W64, which is directed to those who want to build the 64-bit port anew, from scratch (from the repository or a source tarball). Following that file's steps, Imagemagick is not installed. I think that anyone knowledgeable enough to install Imagemagick and try to build with it will know to use --without-imagemagick if needed. So, I think the following minimal patch best reflects the current experience:
diff --git a/nt/INSTALL.W64 b/nt/INSTALL.W64
index a12b7fc..1b2bf72 100644
--- a/nt/INSTALL.W64
+++ b/nt/INSTALL.W64
@@ -125,8 +125,8 @@ Now you're ready to build and install Emacs with autogen, configure, make,
and make install.
First we need to switch to the MinGW-w64 environment. Exit the MSYS2 BASH
-console and run mingw64_shell.bat in the C:\msys64 folder, then cd back to
-your Emacs source directory, e.g.:
+console and run mingw64.exe in the C:\msys64 folder, then cd back to your
+Emacs source directory, e.g.:
cd /c/emacs/emacs-25
@@ -149,12 +149,9 @@ which 'make install' will use - in this example we set it to C:\emacs\emacs-25.
If a prefix is not specified the files will be put in the standard Unix
directories located in your C:\msys64 directory, but this is not recommended.
-Note also that we need to disable Imagemagick because Emacs does not yet
-support it on Windows.
-
- PKG_CONFIG_PATH=/mingw64/lib/pkgconfig \
./configure --prefix=/c/emacs/emacs-25 --without-imagemagick
+
** Run make
This will compile Emacs and build the executables, putting them in the src
warning: LF will be replaced by CRLF in nt/INSTALL.W64.
The file will have its original line endings in your working directory.