summaryrefslogtreecommitdiff
path: root/nt
diff options
context:
space:
mode:
authorBrian Burns <bburns.km@gmail.com>2015-12-31 19:00:16 +0200
committerEli Zaretskii <eliz@gnu.org>2015-12-31 19:00:16 +0200
commit410bb697ade71cb10d7f1932cc3712d24d4f34cb (patch)
tree10c97dec3ecaf841c88ea005fd7d2ba4ae583c0c /nt
parent8f5b524d04d393fb7f84aabd45250893d9805732 (diff)
Add nt/INSTALL.W64 build instructions
* nt/INSTALL.W64: New file. * nt/INSTALL: Point to INSTALL.W64 for 64-bit build instructions.
Diffstat (limited to 'nt')
-rw-r--r--nt/INSTALL3
-rw-r--r--nt/INSTALL.W64224
2 files changed, 227 insertions, 0 deletions
diff --git a/nt/INSTALL b/nt/INSTALL
index e1d9e0633c..1be6d99c02 100644
--- a/nt/INSTALL
+++ b/nt/INSTALL
@@ -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
index 0000000000..95fbfe014d
--- /dev/null
+++ b/nt/INSTALL.W64
@@ -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/>.