]> git.eshelyaron.com Git - emacs.git/commitdiff
Add nt/INSTALL.W64 build instructions
authorBrian Burns <bburns.km@gmail.com>
Thu, 31 Dec 2015 17:00:16 +0000 (19:00 +0200)
committerEli Zaretskii <eliz@gnu.org>
Thu, 31 Dec 2015 17:00:16 +0000 (19:00 +0200)
* nt/INSTALL.W64: New file.
* nt/INSTALL: Point to INSTALL.W64 for 64-bit build instructions.

nt/INSTALL
nt/INSTALL.W64 [new file with mode: 0644]

index e1d9e0633c797091f158c2c9cb930b1d9b99955f..1be6d99c02e8e8138e71a2e4dac670e96c286dc0 100644 (file)
@@ -12,6 +12,9 @@ build will run on Windows 9X and newer systems).
   Do not use this recipe with Cygwin.  For building on Cygwin, use the
   normal installation instructions, ../INSTALL.
 
+  For building Emacs using the MinGW64/MSYS2 toolchain, see the
+  instructions in the file INSTALL.W64 in this directory.
+
 * For the brave (a.k.a. "impatient"):
 
   For those who have a working MSYS/MinGW development environment and
diff --git a/nt/INSTALL.W64 b/nt/INSTALL.W64
new file mode 100644 (file)
index 0000000..95fbfe0
--- /dev/null
@@ -0,0 +1,224 @@
+         Building and Installing Emacs on 64-bit MS-Windows
+                     using MSYS2 and MinGW-w64
+
+  Copyright (c) 2015 Free Software Foundation, Inc.
+  See the end of the file for license conditions.
+
+This document describes how to compile a 64-bit GNU Emacs using MSYS2
+and MinGW-w64.  For instructions for building a 32-bit Emacs using
+MSYS and MinGW, see the file INSTALL in this directory.
+
+Do not use this recipe with Cygwin. For building on Cygwin, use the normal
+installation instructions in ../INSTALL.
+
+* Requirements
+
+The total space required is 3GB: 1.8GB for MSYS2 / MinGW-w64 and 1.2GB for
+Emacs with the full repository, or less if you're using a release tarball.
+
+* Set up the MinGW-w64 / MSYS2 build environment
+
+MinGW-w64 provides a complete runtime for projects built with GCC for 64-bit
+Windows -- it's located at http://mingw-w64.org/.
+
+MSYS2 is a Cygwin-derived software distribution for Windows which provides
+build tools for MinGW-w64 -- see http://msys2.github.io/.
+
+** Download and install MinGW-w64 and MSYS2
+
+You can download the x86_64 version of MSYS2 (i.e. msys2-x86_64-<date>.exe)
+from
+
+  https://sourceforge.net/projects/msys2/files/Base/x86_64
+
+Run this file to install MSYS2 in your preferred directory, e.g. the default
+C:\msys64 -- this will install MinGW-w64 also.  Note that directory names
+containing spaces may cause problems.
+
+Then you'll need to add the following directories to your Windows PATH
+environment variable:
+
+  c:\msys64\usr\bin;c:\msys64\mingw64\bin
+
+you can do this through Control Panel / System and Security / System /
+Advanced system settings / Environment Variables / Edit path.
+
+Adding these directories to your PATH tells Emacs where to find the DLLs it
+needs to run, and some optional commands like grep and find.  These commands
+will also be available at the Windows console.
+
+** Download and install the necessary packages
+
+Run msys2_shell.bat in your MSYS2 directory and you will see a BASH window
+opened.
+
+In the BASH prompt, use the following command to install the necessary
+packages (you can copy and paste it into the shell with Shift + Insert):
+
+  pacman -S base-devel \
+  mingw-w64-x86_64-toolchain \
+  mingw-w64-x86_64-xpm-nox \
+  mingw-w64-x86_64-libtiff \
+  mingw-w64-x86_64-giflib \
+  mingw-w64-x86_64-libpng \
+  mingw-w64-x86_64-libjpeg-turbo \
+  mingw-w64-x86_64-librsvg \
+  mingw-w64-x86_64-libxml2 \
+  mingw-w64-x86_64-gnutls
+
+The packages include the base developer tools (autoconf, automake, grep, make,
+etc.), the compiler toolchain (gcc, gdb, etc.), several image libraries, an
+XML library, and the GnuTLS (transport layer security) library.  Only the
+first three packages are required (base-devel, toolchain, xpm-nox); the rest
+are optional.
+
+You now have a complete build environment for Emacs.
+
+* Install Git (optional) and disable autocrlf
+
+If you're going to be building the development version of Emacs from the Git
+repository, and you don't already have Git on your system, you can install it
+in your MSYS2 environment with:
+
+  pacman -S git
+
+The autocrlf feature of Git may interfere with the configure file, so it is
+best to disable this feature by running the command:
+
+  git config core.autocrlf false
+
+* Get the Emacs source code
+
+Now you can either get an existing release version of the Emacs source code
+from the GNU ftp site, or get the more current version and history from the
+Git repository.
+
+You can always find the most recent information on these sources from the GNU
+Savannah Emacs site, https://savannah.gnu.org/projects/emacs.
+
+** From the FTP site
+
+The Emacs ftp site is located at http://ftp.gnu.org/gnu/emacs/ - download the
+version you want to build and put the file into a location like C:\emacs\,
+then uncompress it with tar.  This will put the Emacs source into a folder like
+C:\emacs\emacs-24.5:
+
+  cd /c/emacs
+  tar xJf emacs-24.5.tar.xz
+
+** From the Git repository
+
+To download the Git repository, do something like the following -- this will
+put the Emacs source into C:\emacs\emacs-25:
+
+  mkdir /c/emacs
+  cd /c/emacs
+  git clone git://git.sv.gnu.org/emacs.git emacs-25
+
+(We recommend using the command shown on Savannah Emacs project page.)
+
+* Build Emacs
+
+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.:
+
+  cd /c/emacs/emacs-25
+
+** Run autogen
+
+If you are building the development sources, run autogen to generate the
+configure script (note: this step is not necessary if you are using a
+release source tarball, as the configure file is included):
+
+  ./autogen.sh
+
+** Run configure
+
+Now you can run configure, which will build the various Makefiles -- note
+that the example given here is just a simple one - for more information
+on the options available please see the INSTALL file in this directory.
+
+The '--prefix' option specifies a location for the resulting binary files,
+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
+directory:
+
+  make
+
+To speed up the process, you can try running
+
+  make -jN
+
+where N is the number of cores in your system -- if your MSYS2 make supports
+parallel execution it will run significantly faster.
+
+** Run make install
+
+Now you can run "make install", which will copy the executable and
+other files to the location specified in the configure step. This will
+create the bin, libexec, share, and var directories:
+
+  make install
+
+You can also say
+
+  make install prefix=/c/somewhere
+
+to install them somewhere else.
+
+* Test Emacs
+
+To test it out, run
+
+  ./bin/runemacs.exe -Q
+
+and if all went well, you will have a new 64-bit version of Emacs.
+
+* Make a shortcut
+
+To make a shortcut to run the new Emacs, right click on the location where you
+want to put it, e.g. the Desktop, select New / Shortcut, then select
+runemacs.exe in the bin folder of the new Emacs, and give it a name.
+
+You can set any command line options by right clicking on the resulting
+shortcut, select Properties, then add any options to the Target command,
+e.g. --debug-init.
+
+* Credits
+
+Thanks to Chris Zheng for the original build outline as used by the
+emacsbinw64 project, located at:
+
+  https://sourceforge.net/p/emacsbinw64/wiki/Build%20guideline%20for%20MSYS2-MinGW-w64%20system/
+
+* License
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.