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