]> code.delx.au - gnu-emacs/blob - nt/INSTALL.MSYS
Merge from trunk.
[gnu-emacs] / nt / INSTALL.MSYS
1 Building and Installing Emacs on MS-Windows
2 using the MSYS and MinGW tools
3
4 Copyright (C) 2013 Free Software Foundation, Inc.
5 See the end of the file for license conditions.
6
7 The MSYS/MinGW build described here is supported on versions of
8 Windows starting with Windows 2000 and newer. Windows 9X are not
9 supported (but the Emacs binary produced by this build will run on
10 Windows 9X as well).
11
12 * For the brave (a.k.a. "impatient"):
13
14 For those who have a working MSYS/MinGW development environment and
15 are comfortable with running Posix configure scripts, here are the
16 concise instructions for configuring and building the native Windows
17 binary of Emacs with these tools.
18
19 Do not use this recipe with Cygwin. For building on Cygwin, use the
20 normal installation instructions, ../INSTALL.
21
22 Do not use these instructions if you don't have MSYS installed; for
23 that, see the file INSTALL in this directory.
24
25 0. Start the MSYS Bash window. Everything else below is done from
26 that window's Bash prompt.
27
28 0a. If you are building from the development trunk (as opposed to a
29 release tarball), produce the configure script, by typing from
30 the top-level Emacs source directory:
31
32 ./autogen.sh
33
34 1. If you want to build Emacs outside of the source tree
35 (recommended), create the build directory and chdir there.
36
37 2. Invoke the MSYS-specific configure script:
38
39 - If you are building outside the source tree:
40
41 /PATH/TO/EMACS/SOURCE/TREE/nt/msysconfig.sh --prefix=PREFIX ...
42
43 - If you are building in-place, i.e. inside the source tree:
44
45 ./nt/msysconfig.sh --prefix=PREFIX ...
46
47 It is always preferable to use --prefix to configure Emacs for
48 some specific location of its installed tree; the default
49 /usr/local is not suitable for Windows.
50
51 You can pass other options to the configure script. Here's a
52 typical example (for an in-place debug build):
53
54 CPPFLAGS='-DGLYPH_DEBUG=1' CFLAGS='-O0 -g3' ./nt/msysconfig.sh --prefix=d:/usr/emacs --enable-checking
55
56 3. After the configure script finishes, it should display the
57 resulting configuration. After that, type
58
59 make
60
61 Use "make -j N" if your MSYS Make supports parallel execution;
62 the build will take significantly less time in that case. Here N
63 is the number of simultaneous parallel jobs; use the number of
64 the cores on your system.
65
66 4. Install the produced binaries:
67
68 make install
69
70 If you want the installation tree to go to a place that is
71 different from the one specified by --prefix, say
72
73 make install prefix=/where/ever/you/want
74
75 That's it!
76
77 If these short instructions somehow fail, read the rest of this
78 file.
79
80 * Installing MinGW and MSYS
81
82 Make sure you carefully read the following two sections in their
83 entirety and install/configure the various packages as instructed.
84 A correct installation makes all the rest almost trivial; a botched
85 installation will likely make you miserable for quite some time.
86
87 There are two alternative to installing MinGW + MSYS: using the GUI
88 installer, called mingw-get, provided by the MinGW project, or
89 manual installation. The next two sections describe each one of
90 these.
91
92 ** Installing MinGW and MSYS using mingw-get
93
94 A nice GUI installer, called mingw-get, is available for those who
95 don't like to mess with manual installations. You can download it
96 from here:
97
98 https://sourceforge.net/projects/mingw/files/Installer/mingw-get/
99
100 (This installer only supports packages downloaded from the MinGW
101 site; for the rest you will still need the manual method.)
102
103 After installing mingw-get, invoke it to install the packages that
104 are already selected by default on the "Select Components" screen of
105 its wizard.
106
107 After that, use "ming-get install PACKAGE" to install the following
108 additional packages:
109
110 . msys-base
111 . mingw-developer-toolkit
112 . msys-automake
113
114 (We recommend that you refrain from installing the MSYS Texinfo
115 package, which is part of msys-base, because it might produce mixed
116 EOL format when installing Info files. Instead, install the MinGW
117 port of Texinfo, see the ezwinports URL below.)
118
119 At this point, you should be ready to configure and build Emacs in
120 its basic configuration. Skip to the "Generating the configure
121 script" section for the build instructions. If you want to build it
122 with image support and other optional libraries, read about the
123 optional libraries near the end of this document, before you start
124 the build. Also, consider installing additional MinGW packages that
125 are required/recommended, especially if you are building from the
126 Bazaar repository, as described in the next section.
127
128 ** Installing MinGW and MSYS manually
129
130 *** MinGW
131
132 You will need to install the MinGW port of GCC and Binutils, and the
133 MinGW runtime and Windows API distributions, to compile Emacs. You
134 can find these on the MinGW download/Base page:
135
136 https://sourceforge.net/projects/mingw/files/MinGW/Base/
137
138 In general, install the latest stable versions of the following
139 MinGW packages from that page: gcc, binutils, mingw-rt, w32api. You
140 only need the 'bin' and the 'dll' tarballs of each of the above.
141
142 MinGW packages are distributed as .tar.lzma compressed archives. To
143 install the packages manually, we recommend to use the Windows port
144 of the 'bsdtar' program to unpack the tarballs. 'bsdtar' is
145 available as part of the 'libarchive' package from here:
146
147 http://sourceforge.net/projects/ezwinports/files/
148
149 The recommended place to install these packages is a single tree
150 starting from some directory on a drive other than the system drive
151 C:. A typical example would be D:\usr, with D:\usr\bin holding the
152 binaries and DLLs (should be added to your Path environment
153 variable), D:\usr\include holding the include files, D:\usr\lib
154 holding the static and import libraries, D:\usr\share holding docs,
155 message catalogs, and package-specific subdirectories, etc.
156
157 Having all the headers and libraries in a single place will greatly
158 reduce the number of -I and -L flags you will have to pass to the
159 configure script (see below), as these files will be right where the
160 compiler expects them.
161
162 We specifically do NOT recommend installing packages below
163 "C:\Program Files" or "C:\Program Files (x86)". These directories
164 are protected on versions of Windows from Vista and on, and you will
165 have difficulties updating and maintaining your installation later,
166 due to UAC elevation prompts, file virtualization, etc. You *have*
167 been warned!
168
169 Additional MinGW packages are required/recommended, especially if
170 you are building from the Bazaar repository:
171
172 . Texinfo (needed to produce the Info manuals when building from
173 bzr, and for "make install")
174
175 Available from http://sourceforge.net/projects/ezwinports/files/.
176
177 . gzip (needed to compress files during "make install")
178
179 Available from http://gnuwin32.sourceforge.net/packages/gzip.htm.
180
181 . pkg-config (needed for building with some optional libraries,
182 such as GnuTLS and libxml2)
183
184 Available from http://www.gtk.org/download/win32.php
185
186 Each package might list other packages as prerequisites on its
187 download page (under "Runtime requirements"); download those as
188 well. (Using the GUI installer mingw-get will fetch those
189 prerequisites automatically for you.) A missing prerequisite will
190 manifest itself by the program failing to run and presenting a
191 pop-up dialog that states the missing or incompatible DLL; be sure
192 to find and install these missing DLLs.
193
194 Once you think you have MinGW installed, test the installation by
195 building a trivial "hello, world!" program, and make sure that it
196 builds without any error messages and the binary works when run.
197
198 *** MSYS
199
200 You will need a reasonably full MSYS installation. MSYS is an
201 environment needed to run the Posix configure scripts and the
202 resulting Makefile's, in order to produce native Windows binaries
203 using the MinGW compiler and runtime libraries. Here's the list of
204 MSYS packages that are required:
205
206 . All the packages from the MSYS Base distribution, listed here:
207
208 https://sourceforge.net/projects/mingw/files/MSYS/Base/
209
210 . Additional packages listed below, from the MSYS Extension
211 distribution here:
212
213 https://sourceforge.net/projects/mingw/files/MSYS/Extension/
214
215 - flex
216 - bison
217 - m4
218 - perl
219 - mktemp
220
221 These should only be needed if you intend to build development
222 versions of Emacs from the Bazaar repository.
223
224 . Additional packages (needed only if building from the Bazaar
225 repository): Automake and Autoconf. They are available from
226 here:
227
228 http://sourceforge.net/projects/ezwinports/files/automake-1.11.6-msys-bin.zip/download
229 http://sourceforge.net/projects/ezwinports/files/autoconf-2.65-msys-bin.zip/download
230
231 MSYS packages are distributed as .tar.lzma compressed archives. To
232 install the packages manually, we recommend to use the Windows port
233 of the 'bsdtar' program, already mentioned above.
234
235 If/when you are confident in your MinGW/MSYS installation, and want
236 to speed up the builds, we recommend installing a pre-release
237 version of Make from here:
238
239 https://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/
240
241 These are snapshot builds of many packages, but you only need
242 make.exe from there. The advantage of this make.exe is that it
243 supports parallel builds, so you can use "make -j N" to considerably
244 speed up your builds
245
246 For each of these packages, install the 'bin' and 'dll' tarballs of
247 their latest stable releases. If there's an 'ext' tarball (e.g.,
248 msysCORE and Coreutils have it), download and install those as well.
249
250 Each package might list other packages as prerequisites on its
251 download page (under "Runtime requirements"); download those as
252 well. (Using the GUI installer mingw-get will fetch those
253 prerequisites automatically for you.) A missing prerequisite will
254 manifest itself by the program failing to run and presenting a
255 pop-up dialog that states the missing or incompatible DLL; be sure
256 to find and install these missing DLLs.
257
258 MSYS packages should be installed in a separate tree from MinGW.
259 For example, use D:\MSYS or D:\usr\MSYS as the top-level directory
260 from which you unpack all of the MSYS packages.
261
262 Do NOT add the MSYS bin directory to your Windows Path! Only the
263 MinGW bin directory should be on Path. When you install MSYS, it
264 creates a shortcut on your desktop that invokes the MSYS Bash shell
265 in a Command Prompt window; that shell is already set up so that the
266 MSYS bin directory is on PATH ahead of any other directory. Thus,
267 Bash will find MSYS executables first, which is exactly what you
268 need.
269
270 At this point, you are ready to build Emacs in its basic
271 configuration. If you want to build it with image support and other
272 optional libraries, read about that near the end of this document.
273
274 * Generating the configure script
275
276 If you are building a release or pretest tarball, skip this section,
277 because the configure script is already present in the tarball.
278
279 To build a development snapshot from the Emacs Bazaar repository,
280 you will first need to generate the configure script and a few other
281 auto-generated files. (If this step, described below, somehow
282 fails, you can use the files in the autogen/ directory instead, but
283 they might be outdated, and, most importantly, you are well advised
284 not to disregard any failures in your local build procedures, as
285 these are likely to be symptoms of incorrect installation that will
286 bite you down the road.)
287
288 To generate the configure script, type this at the MSYS Bash prompt
289 from the top-level directory of the Emacs tree:
290
291 ./autogen.sh
292
293 If successful, this command should produce the following output:
294
295 $ ./autogen.sh
296 Checking whether you have the necessary tools...
297 (Read INSTALL.BZR for more details on building Emacs)
298
299 Checking for autoconf (need at least version 2.65)...
300 ok
301 Checking for automake (need at least version 1.11)...
302 ok
303 Your system has the required tools, running autoreconf...
304 You can now run `./configure'.
305
306 * Configuring Emacs for MinGW:
307
308 Now it's time to run the configure script. You can do that either
309 from a separate build directory that is outside of the Emacs source
310 tree (recommended), or from inside the source tree. The former is
311 recommended because it allows you to have several different builds,
312 e.g., an optimized build and an unoptimized one, of the same
313 revision of the source tree; the source tree will be left in its
314 pristine state, without any build products.
315
316 You invoke the configure script like this:
317
318 /PATH/TO/EMACS/SOURCE/TREE/nt/msysconfig.sh --prefix=PREFIX ...
319
320 or, if you are building in-place, i.e. inside the source tree:
321
322 ./nt/msysconfig.sh --prefix=PREFIX ...
323
324 Here PREFIX is the place where you eventually want to install Emacs
325 once built, e.g. d:/usr.
326
327 You can pass additional options to the configure script, for the
328 full list type
329
330 ./nt/msysconfig.sh --help
331
332 As explained in the help text, you may need to tell the script what
333 are the optional flags to invoke the compiler. This is needed if
334 some of your headers and libraries, e.g., those belonging to
335 optional image libraries, are installed in places where the compiler
336 normally doesn't look for them. (Remember that advice above to
337 avoid such situations? here's is where you will start paying for
338 disregarding that recommendation.) For example, if you have libpng
339 headers in C:\emacs\libs\libpng-1.2.37-lib\include and jpeg library
340 headers in C:\emacs\libs\jpeg-6b-4-lib\include, you will need to say
341 something like this:
342
343 CPPFLAGS='-Ic:/emacs/libs/libpng-1.2.37-lib/include -Ic:/emacs/libs/jpeg-6b-4-lib/include' ./nt/msysconfig.sh --prefix=PREFIX
344
345 which is quite a mouth-full, especially if you have more directories
346 to specify... Perhaps you may wish to revisit your installation
347 decisions now.
348
349 A few frequently used options are needed when you want to produce an
350 unoptimized binary with runtime checks enabled:
351
352 CPPFLAGS='-DGLYPH_DEBUG=1' CFLAGS='-O0 -g3' ./nt/msysconfig.sh --prefix=PREFIX --enable-checking
353
354 Once invoked, the configure script will run for some time, and, if
355 successful, will eventually produce a summary of the configuration
356 like this:
357
358 Configured for `i686-pc-mingw32'.
359
360 Where should the build process find the source code? /path/to/emacs/sources
361 What compiler should emacs be built with? gcc -std=gnu99 -O0 -g3
362 Should Emacs use the GNU version of malloc? yes
363 Should Emacs use a relocating allocator for buffers? yes
364 Should Emacs use mmap(2) for buffer allocation? no
365 What window system should Emacs use? w32
366 What toolkit should Emacs use? none
367 Where do we find X Windows header files? NONE
368 Where do we find X Windows libraries? NONE
369 Does Emacs use -lXaw3d? no
370 Does Emacs use -lXpm? yes
371 Does Emacs use -ljpeg? yes
372 Does Emacs use -ltiff? yes
373 Does Emacs use a gif library? yes
374 Does Emacs use -lpng? yes
375 Does Emacs use -lrsvg-2? no
376 Does Emacs use imagemagick? no
377 Does Emacs use -lgpm? no
378 Does Emacs use -ldbus? no
379 Does Emacs use -lgconf? no
380 Does Emacs use GSettings? no
381 Does Emacs use -lselinux? no
382 Does Emacs use -lgnutls? yes
383 Does Emacs use -lxml2? yes
384 Does Emacs use -lfreetype? no
385 Does Emacs use -lm17n-flt? no
386 Does Emacs use -lotf? no
387 Does Emacs use -lxft? no
388 Does Emacs use toolkit scroll bars? yes
389
390 You are almost there, hang on.
391
392 If the output is significantly different, or if configure finishes
393 prematurely and displays some error message, you should examine the
394 configuration log in config.log and find the reason for the failure.
395
396 Once you succeeded in configuring Emacs, and just want to rebuild it
397 after updating your local repository from the main repository, you
398 don't need to re-run the configure script manually, unless you want
399 to change the configure-time options. Just typing "make" will
400 re-run configure if necessary with the exact same options you
401 specified originally, and then go on to invoking Make, described
402 below.
403
404 * Running Make.
405
406 This is simple: just type "make" and sit back, watching the fun.
407
408 If you installed a snapshot build of Make, the build will be much
409 faster if you type "make -j N" instead, where N is the number of
410 independent processing units on your machine. E.g., on a core i7
411 system try using N of 6 or even 8.
412
413 When Make finishes, you can install the produced binaries:
414
415 make install
416
417 or, if you want the installed tree to go in a place different from
418 the configured one, type
419
420 make install prefix=WHEREVER
421
422 Congrats! You have built and installed your own Emacs!
423
424 * Make targets
425
426 The following make targets may be used by users building the source
427 distribution, or users who have checked out of Bazaar after
428 an initial bootstrapping.
429
430 make
431 Builds Emacs from the available sources and pre-compiled lisp files.
432
433 make install
434 Installs the built programs and the auxiliary files.
435
436 make clean
437 Removes object and executable files produced by the build process in
438 the current configuration. After "make clean", you can rebuild with
439 the same configuration using make. useful when you want to be sure
440 that all of the products are built from coherent sources.
441
442 make distclean
443 In addition to the files removed by make clean, this also removes
444 Makefiles and other generated files to get back to the state of a
445 freshly unpacked source distribution. After make distclean, it is
446 necessary to run the configure script followed by "make", in order
447 to rebuild.
448
449 The following targets are intended only for use with the Bazaar sources.
450
451 make bootstrap
452 Removes all the auto-generated files and all the *.elc byte-compiled
453 files, and builds Emacs from scratch. Useful when some change in
454 basic Emacs functionality makes byte compilation of updated files
455 fail.
456
457 make maintainer-clean
458 Removes everything that can be recreated, including compiled Lisp
459 files, to get back to the state of a fresh Bazaar tree. After make
460 maintainer-clean, it is necessary to run configure and "make" or
461 "make bootstrap" to rebuild. Occasionally it may be necessary to
462 run this target after an update.
463
464 * Optional image library support
465
466 In addition to its "native" image formats (pbm and xbm), Emacs can
467 handle other image types: xpm, tiff, gif, png, jpeg and experimental
468 support for svg.
469
470 To build Emacs with support for them, the corresponding headers must
471 be in the include path and libraries should be where the linker
472 looks for them, when the configure script is run. If needed, this
473 can be set up using the CPPFLAGS and CFLAGS variable specified on
474 the configure command line. The configure script will report
475 whether it was able to detect the headers and libraries. If the
476 results of this testing appear to be incorrect, please look for
477 details in the file config.log: it will show the failed test
478 programs and compiler error messages that should explain what is
479 wrong. (Usually, any such failures happen because some headers are
480 missing due to bad packaging of the image support libraries.)
481
482 Note that any file path passed to the compiler or linker must use
483 forward slashes, or double each backslash, as that is how Bash
484 works.
485
486 If the configure script finds the necessary headers and libraries,
487 but they are for some reason incompatible, or if you want to omit
488 support for some image library that is installed on your system for
489 some other reason, use the --without-PACKAGE option to configure,
490 such as --without-gif to omit GIF, --without-tiff to omit TIFF, etc.
491 Passing the --help option to the configure script displays all of
492 the supported --without-PACKAGE options.
493
494 To use the external image support, the DLLs implementing the
495 functionality must be found when Emacs first needs them, either on the
496 PATH, or in the same directory as emacs.exe. Failure to find a
497 library is not an error; the associated image format will simply be
498 unavailable. Note that once Emacs has determined that a library can
499 not be found, there's no way to force it to try again, other than
500 restarting. See the variable `dynamic-library-alist' to configure the
501 expected names of the libraries.
502
503 Some image libraries have dependencies on one another, or on zlib.
504 For example, tiff support depends on the jpeg library. If you did not
505 compile the libraries yourself, you must make sure that any dependency
506 is in the PATH or otherwise accessible and that the binaries are
507 compatible (for example, that they were built with the same compiler).
508
509 Binaries for the image libraries (among many others) can be found at
510 the GnuWin32 project. PNG, JPEG and TIFF libraries are also
511 included with GTK, which is installed along with other Free Software
512 that requires it. Note specifically that, due to some packaging
513 snafus in the GnuWin32-supplied image libraries, you will need to
514 download _source_ packages for some of the libraries in order to get
515 the header files necessary for building Emacs with image support.
516
517 For PNG images, we recommend to use versions 1.4.x and later of
518 libpng, because previous versions had security issues. You can find
519 precompiled libraries and headers on the GTK download page for
520 Windows (http://www.gtk.org/download/win32.php).
521
522 Versions 1.4.0 and later of libpng are binary incompatible with
523 earlier versions, so Emacs will only look for libpng libraries which
524 are compatible with the version it was compiled against. That
525 version is given by the value of the Lisp variable `libpng-version';
526 e.g., 10403 means version 1.4.3. The variable `dynamic-library-alist'
527 is automatically set to name only those DLL names that are known to
528 be compatible with the version given by `libpng-version'. If PNG
529 support does not work for you even though you have the support DLL
530 installed, check the name of the installed DLL against
531 `dynamic-library-alist' and the value of `libpng-version', and
532 download compatible DLLs if needed.
533
534 * Optional GnuTLS support
535
536 To compile with GnuTLS, you will need pkg-config to be installed, as
537 the configure script invokes pkg-config to find out which compiler
538 switches to use for GnuTLS. See above for the URL where you can
539 find pkg-config for Windows.
540
541 You will also need to install the p11-kit package, which is a
542 dependency of GnuTLS, and its header files are needed for
543 compilation of programs that use GnuTLS. You can find p11-kit on
544 the same site as GnuTLS, see the URL below.
545
546 If the configure script finds the GnuTLS header files and libraries
547 on your system, Emacs is built with GnuTLS support by default; to
548 avoid that you can pass the argument --without-gnutls.
549
550 In order to support GnuTLS at runtime, a GnuTLS-enabled Emacs must
551 be able to find the relevant DLLs during startup; failure to do so
552 is not an error, but GnuTLS won't be available to the running
553 session.
554
555 You can get pre-built binaries (including any required DLL and the
556 header files) at http://sourceforge.net/projects/ezwinports/files/.
557
558 * Optional libxml2 support
559
560 To compile with libxml2, you will need pkg-config to be installed,
561 as the configure script invokes pkg-config to find out which
562 compiler switches to use for libxml2. See above for the URL where
563 you can find pkg-config for Windows.
564
565 If the configure script finds the libxml2 header files and libraries
566 on your system, Emacs is built with libxml2 support by default; to
567 avoid that you can pass the argument --without-libxml2.
568
569 In order to support libxml2 at runtime, a libxml2-enabled Emacs must
570 be able to find the relevant DLLs during startup; failure to do so
571 is not an error, but libxml2 features won't be available to the
572 running session.
573
574 One place where you can get pre-built Windows binaries of libxml2
575 (including any required DLL and the header files) is here:
576
577 http://sourceforge.net/projects/ezwinports/files/
578
579 For runtime support of libxml2, you will also need to install the
580 libiconv "development" tarball, because the libiconv headers need to
581 be available to the compiler when you compile with libxml2 support.
582 A MinGW port of libiconv can be found on the MinGW site:
583
584 http://sourceforge.net/projects/mingw/files/MinGW/Base/libiconv/
585
586 You need the libiconv-X.Y.Z-N-mingw32-dev.tar.lzma tarball from that
587 site.
588
589 * Experimental SVG support
590
591 To compile with SVG, you will need pkg-config to be installed, as
592 the configure script invokes pkg-config to find out which compiler
593 switches to use for SVG. See above for the URL where you can find
594 pkg-config for Windows.
595
596 SVG support is currently experimental, and not built by default.
597 Specify --with-rsvg and ensure you have all the dependencies in your
598 include path. Unless you have built a minimalist librsvg yourself
599 (untested), librsvg depends on a significant chunk of GTK+ to build,
600 plus a few Gnome libraries, libxml2, libbz2 and zlib at runtime. The
601 easiest way to obtain the dependencies required for building is to
602 download a pre-bundled GTK+ development environment for Windows.
603
604 To use librsvg at runtime, ensure that librsvg and its dependencies
605 are on your PATH. If you didn't build librsvg yourself, you will
606 need to check with where you downloaded it from for the
607 dependencies, as there are different build options. If it is a
608 short list, then it most likely only lists the immediate
609 dependencies of librsvg, but the dependencies themselves have
610 dependencies - so don't download individual libraries from GTK+,
611 download and install the whole thing. If you think you've got all
612 the dependencies and SVG support is still not working, check your
613 PATH for other libraries that shadow the ones you downloaded.
614 Libraries of the same name from different sources may not be
615 compatible, this problem was encountered with libbzip2 from GnuWin32
616 with libcroco from gnome.org.
617
618 If you can see etc/images/splash.svg, then you have managed to get
619 SVG support working. Congratulations for making it through DLL hell
620 to this point. You'll probably find that some SVG images crash
621 Emacs. Problems have been observed in some images that contain
622 text, they seem to be a problem in the Windows port of Pango, or
623 maybe a problem with the way Cairo or librsvg is using it that
624 doesn't show up on other platforms.
625
626 \f
627 This file is part of GNU Emacs.
628
629 GNU Emacs is free software: you can redistribute it and/or modify
630 it under the terms of the GNU General Public License as published by
631 the Free Software Foundation, either version 3 of the License, or
632 (at your option) any later version.
633
634 GNU Emacs is distributed in the hope that it will be useful,
635 but WITHOUT ANY WARRANTY; without even the implied warranty of
636 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
637 GNU General Public License for more details.
638
639 You should have received a copy of the GNU General Public License
640 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.