Backport the :end-of-capability fix
[emacs.git] / msdos / INSTALL
blobde527f0d5b3285501af43616a7ad1d51f5de7c4c
1 GNU Emacs Installation Guide for the DJGPP (a.k.a. MS-DOS) port
3 Copyright (C) 1992, 1994, 1996-1997, 2000-2015 Free Software Foundation,
4 Inc.
5 See the end of the file for license conditions.
7 The DJGPP port of GNU Emacs builds and runs on all versions of
8 MS-Windows from version 3.X on, including Windows XP, Vista, and
9 Windows 7 (however, see below for issues with Windows Vista and 7).
10 Building on plain MS-DOS is supported only if long file names are
11 supported (e.g., with a specialized driver such as doslfn).
13 To build and install the DJGPP port, you need to have the DJGPP ports
14 of GCC (the GNU C compiler), GNU Make, rm, mv, cp, and sed.  See the
15 remarks in CONFIG.BAT for more information about locations and
16 versions.  The Emacs FAQ (see info/efaq.info) includes pointers to
17 Internet sites where you can find the necessary utilities; search for
18 "MS-DOS".  The configuration step (see below) will test for these
19 utilities and will refuse to continue if any of them isn't found.
21 Bootstrapping Emacs or recompiling Lisp files in the `lisp'
22 subdirectory using the various targets in the lisp/Makefile file
23 requires additional utilities: `find' (from Findutils), GNU `echo' and
24 `test' (from Sh-utils or Coreutils), `ls' and `chmod' (from Fileutils
25 or Coreutils), `grep' (from Grep), and a port of Bash.  However, you
26 should not normally need to run lisp/Makefile, as all the Lisp files
27 are distributed in byte-compiled form as well.  As for bootstrapping
28 itself, you will only need that if you check-out development sources
29 from the Emacs source repository.
31 Building the DJGPP version of Emacs is currently supported only on
32 systems which support long file names (e.g. Windows 9X or Windows XP).
33 You need to unpack Emacs distribution in a way that doesn't truncate
34 the original long filenames to the DOS 8.3 namespace; the easiest way
35 to do this is to use djtar program which comes with DJGPP, since it
36 will behave consistently with the rest of DJGPP tools.  Do _not_
37 disable the DJGPP long-file-name support (a.k.a. "LFN") while building
38 Emacs.
40 (By the time you read this, you have already unpacked the Emacs
41 distribution, but if the explanations above imply that you should have
42 done it differently, it's safer to delete the directory tree created
43 by the unpacking program and unpack Emacs again, than to risk running
44 into strange problems during the build process.)
46 To unpack Emacs with djtar, type this command:
48     djtar -x emacs.tgz
50 (This assumes that the Emacs distribution is called `emacs.tgz' on
51 your system.)
53 When unpacking Emacs is done, a directory called `emacs-XX.YY' will be
54 created, where XX.YY is the Emacs version.
56 If you want to print international characters, install the intlfonts
57 distribution.  For this, create a directory called `fonts' under the
58 `emacs-XX.YY' top-level directory created by unpacking emacs.tgz,
59 chdir into the directory `emacs-XX.YY/fonts', and type this:
61     djtar -x intlfonts.tgz
63 To build and install Emacs, chdir to the `emacs-XX.YY' directory and
64 type these commands:
66     config msdos
67     make install
69 Running "config msdos" checks for several programs that are required
70 to configure and build Emacs; if one of those programs is not found,
71 CONFIG.BAT stops and prints an error message.  If you have DJGPP
72 version 2.0 or 2.01, it will complain about a program called
73 DJECHO.EXE.  These old versions of DJGPP shipped that program under
74 the name ECHO.EXE, so you can simply copy ECHO.EXE to DJECHO.EXE and
75 rerun CONFIG.BAT.  If you have neither ECHO.EXE nor DJECHO.EXE, you
76 should be able to find them in your djdevNNN.zip archive (where NNN is
77 the DJGPP version number).
79 On Windows NT and Windows 2000/XP/Vista/7, running "config msdos"
80 might print an error message like "VDM has been already loaded".  This
81 is because those systems have a program called `redir.exe' which is
82 incompatible with a program by the same name supplied with DJGPP,
83 which is used by config.bat.  To resolve this, move the DJGPP's `bin'
84 subdirectory to the front of your PATH environment variable.
86 Windows Vista/7 has several bugs in its DPMI server related to memory
87 allocation: it fails DPMI resize memory block function, and it
88 arbitrarily limits the default amount of DPMI memory to 32MB.  To work
89 around these bugs, first configure Emacs to use the `malloc' function
90 from the DJGPP library.  To this end, run CONFIG.BAT with the
91 "--with-system-malloc" option:
93     config --with-system-malloc msdos
94     make install
96 In addition, for Windows Vista you'll need to install Service Pack 1
97 (SP1) or later and enlarge its DPMI memory limit by setting the value
98 of this Registry key:
100   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Wow\DpmiLimit
102 Create this key if it does not exist.  The value is a DWORD; setting
103 it to 536870912 should let Emacs use up to 512MB of memory.
105 If you have other problems, either building Emacs or running the
106 produced binary, look in the file etc/PROBLEMS for some known problems
107 related to the DJGPP port (search for "MS-DOS").
109 To install the international fonts, chdir to the intlfonts-X.Y
110 directory created when you unpacked the intlfonts distribution (X.Y is
111 the version number of the fonts' distribution), and type the following
112 command:
114     make bdf INSTALLDIR=..
116 After Make finishes, you may remove the directory intlfonts-X.Y; the
117 fonts are installed into the fonts/bdf subdirectory of the top-level
118 Emacs directory, and that is where Emacs will look for them by
119 default.
121 Building Emacs creates executable files in the src and lib-src
122 directories.  Installing the DJGPP port of Emacs moves these
123 executables to a sibling directory called bin.  For example, if you
124 build in directory C:/emacs, installing moves the executables from
125 C:/emacs/src and C:/emacs/lib-src to the directory C:/emacs/bin, so
126 you can then delete the subdirectories C:/emacs/src and
127 C:/emacs/lib-src if you wish.  The only subdirectories you need to
128 keep are bin, lisp, etc and info.  (If you installed intlfonts, keep
129 the fonts directory and all its subdirectories as well.)  The bin
130 subdirectory should be added to your PATH.  The msdos subdirectory
131 includes a PIF and an icon file for Emacs which you might find useful
132 if you run Emacs under MS Windows.
134 Emacs on MSDOS finds the lisp, etc and info directories by looking in
135 ../lisp, ../etc and ../info, starting from the directory where the
136 Emacs executable was run from.  You can override this by setting the
137 environment variables EMACSDATA (for the location of `etc' directory),
138 EMACSLOADPATH (for the location of `lisp' directory) and INFOPATH (for
139 the location of the `info' directory).
141 Emacs features which require asynchronous subprocesses that depend on
142 multitasking do not work in the DJGPP port.  Synchronous subprocesses
143 do work, so features such as compilation, grep, and Ispell run
144 synchronously, unlike on other platforms.
146 Version 2.0 of djgpp has two bugs that affect Emacs.  We've included
147 corrected versions of two files from djgpp in the msdos subdirectory:
148 is_exec.c and sigaction.c.  To work around the bugs, compile these
149 files and link them into temacs.  Djgpp versions 2.01 and later have
150 these bugs fixed, so upgrade if you can before building Emacs.
153 This file is part of GNU Emacs.
155 GNU Emacs is free software: you can redistribute it and/or modify
156 it under the terms of the GNU General Public License as published by
157 the Free Software Foundation, either version 3 of the License, or
158 (at your option) any later version.
160 GNU Emacs is distributed in the hope that it will be useful,
161 but WITHOUT ANY WARRANTY; without even the implied warranty of
162 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
163 GNU General Public License for more details.
165 You should have received a copy of the GNU General Public License
166 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.