[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 64-bit build on Windows

From: Juanma Barranquero
Subject: Re: 64-bit build on Windows
Date: Sat, 21 Jan 2017 19:57:01 +0100

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.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]