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