comparison nt/INSTALL @ 90261:7beb78bc1f8e

Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-97 Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 616-696) - Add lisp/mh-e/.arch-inventory - Update from CVS - Merge from gnus--rel--5.10 - Update from CVS: lisp/smerge-mode.el: Add 'tools' to file keywords. - lisp/gnus/ChangeLog: Remove duplicate entry * gnus--rel--5.10 (patch 147-181) - Update from CVS - Merge from emacs--cvs-trunk--0 - Update from CVS: lisp/mml.el (mml-preview): Doc fix. - Update from CVS: texi/message.texi: Fix default values. - Update from CVS: texi/gnus.texi (RSS): Addition.
author Miles Bader <miles@gnu.org>
date Mon, 16 Jan 2006 08:37:27 +0000
parents 2d92f5c9d6ae dc47c26ee643
children c5406394f567
comparison
equal deleted inserted replaced
90260:0ca0d9181b5e 90261:7beb78bc1f8e
27 "touch.exe" in your path, and that it will create files that do not 27 "touch.exe" in your path, and that it will create files that do not
28 yet exist. 28 yet exist.
29 29
30 To compile Emacs, you will need either Microsoft Visual C++ 2.0 or 30 To compile Emacs, you will need either Microsoft Visual C++ 2.0 or
31 later and nmake, or a Windows port of GCC 2.95 or later with MinGW 31 later and nmake, or a Windows port of GCC 2.95 or later with MinGW
32 and W32 API support and a port of GNU make. You can use the Cygwin 32 and W32 API support and a port of GNU Make. You can use the Cygwin
33 ports of GCC, but Emacs requires the MinGW headers and libraries to 33 ports of GCC, but Emacs requires the MinGW headers and libraries to
34 build (latest versions of the Cygwin toolkit, at least since v1.3.3, 34 build (latest versions of the Cygwin toolkit, at least since v1.3.3,
35 include the MinGW headers and libraries as an integral part). 35 include the MinGW headers and libraries as an integral part).
36 36
37 Other compilers may work, but specific reports from people that have 37 If you use the MinGW port of GCC and GNU Make to build Emacs, there
38 tried suggest that the Intel C compiler (for example) may produce an 38 are some compatibility issues wrt Make and the shell that is run by
39 Emacs executable with strange filename completion behaviour. Unless 39 Make, either the standard COMMAND.COM/CMD.EXE supplied with Windows
40 you would like to assist by finding and fixing the cause of any bugs 40 or sh.exe., a port of a Unixy shell. For reference, here is a list
41 like this, we recommend the use of the supported compilers mentioned 41 of which builds of GNU Make are known to work or not, and whether
42 in the previous paragraph. 42 they work in the presence and/or absence of sh.exe, the Cygwin port
43 43 of Bash. Note that any version of Make that is compiled with Cygwin
44 You will also need a copy of the Posix cp, rm and mv programs. These 44 will only work with Cygwin tools, due to the use of cygwin style
45 and other useful Posix utilities can be obtained from one of several 45 paths. This means Cygwin Make is unsuitable for building parts of
46 projects: 46 Emacs that need to invoke Emacs itself (leim and "make bootstrap",
47 47 for example). Also see the Trouble-shooting section below if you
48 * http://www.mingw.org/ ( MinGW ) 48 decide to go ahead and use Cygwin make.
49 * http://www.cygwin.com/ ( Cygwin )
50 * http://unxutils.sourceforge.net/ ( UnxUtils )
51 * http://gnuwin32.sourceforge.net/ ( GnuWin32 )
52
53 If you build Emacs on Windows 9X or ME, not on Windows 2K/XP or
54 Windows NT, we suggest to install the Cygwin port of Bash.
55
56 Additional instructions and help for building Emacs on Windows can be
57 found at the Emacs Wiki:
58
59 http://www.emacswiki.org/cgi-bin/wiki/WThirtyTwoInstallationKit
60
61 and at this URL:
62
63 http://ourcomments.org/Emacs/w32-build-emacs.html
64
65 For reference, here is a list of which builds of GNU make are known
66 to work or not, and whether they work in the presence and/or absence
67 of sh.exe, the Cygwin port of Bash. Note that any version of make
68 that is compiled with Cygwin will only work with Cygwin tools, due to
69 the use of cygwin style paths. This means Cygwin make is unsuitable
70 for building parts of Emacs that need to invoke Emacs itself (leim and
71 "make bootstrap", for example). Also see the Trouble-shooting section
72 below if you decide to go ahead and use Cygwin make.
73 49
74 In addition, using 4NT as your shell is known to fail the build process, 50 In addition, using 4NT as your shell is known to fail the build process,
75 at least for 4NT version 3.01. Use cmd.exe, the default NT shell, 51 at least for 4NT version 3.01. Use CMD.EXE, the default Windows shell,
76 instead. MSYS sh.exe also appears to cause various problems. If you have 52 instead. MSYS sh.exe also appears to cause various problems. If you have
77 MSYS installed, try "make SHELL=cmd.exe" to force the use of cmd.exe 53 MSYS installed, try "make SHELL=cmd.exe" to force the use of cmd.exe
78 instead of sh.exe. 54 instead of sh.exe.
79 55
80 sh exists no sh 56 sh exists no sh
99 versions of cygwin. 75 versions of cygwin.
100 [4] may fail on Windows 9X and Windows ME; if so, install Bash. 76 [4] may fail on Windows 9X and Windows ME; if so, install Bash.
101 [5] fails when building leim due to the use of cygwin style paths. 77 [5] fails when building leim due to the use of cygwin style paths.
102 May work if building emacs without leim. 78 May work if building emacs without leim.
103 [6] please report if you try this combination. 79 [6] please report if you try this combination.
80
81 Other compilers may work, but specific reports from people that have
82 tried suggest that the Intel C compiler (for example) may produce an
83 Emacs executable with strange filename completion behaviour. Unless
84 you would like to assist by finding and fixing the cause of any bugs
85 like this, we recommend the use of the supported compilers mentioned
86 in the previous paragraph.
87
88 You will also need a copy of the Posix cp, rm and mv programs. These
89 and other useful Posix utilities can be obtained from one of several
90 projects:
91
92 * http://www.mingw.org/ ( MinGW )
93 * http://www.cygwin.com/ ( Cygwin )
94 * http://unxutils.sourceforge.net/ ( UnxUtils )
95 * http://gnuwin32.sourceforge.net/ ( GnuWin32 )
96
97 If you build Emacs on Windows 9X or ME, not on Windows 2K/XP or
98 Windows NT, we suggest to install the Cygwin port of Bash.
99
100 Additional instructions and help for building Emacs on Windows can be
101 found at the Emacs Wiki:
102
103 http://www.emacswiki.org/cgi-bin/wiki/WThirtyTwoInstallationKit
104
105 and at this URL:
106
107 http://ourcomments.org/Emacs/w32-build-emacs.html
104 108
105 * Configuring 109 * Configuring
106 110
107 Configuration of Emacs is now handled by running configure.bat in the 111 Configuration of Emacs is now handled by running configure.bat in the
108 nt subdirectory. It will detect which compiler you have available, 112 nt subdirectory. It will detect which compiler you have available,
237 241
238 * Debugging 242 * Debugging
239 243
240 You should be able to debug Emacs using the debugger that is 244 You should be able to debug Emacs using the debugger that is
241 appropriate for the compiler you used, namely DevStudio or Windbg if 245 appropriate for the compiler you used, namely DevStudio or Windbg if
242 compiled with MSVC, or gdb if compiled with gcc. 246 compiled with MSVC, or GDB if compiled with GCC.
247
248 When Emacs aborts due to a fatal internal error, Emacs on Windows
249 pops up an Emacs Abort Dialog asking you whether you want to debug
250 Emacs or terminate it. If Emacs was built with MSVC, click YES
251 twice, and Windbg or the DevStudio debugger will start up
252 automatically. If Emacs was built with GCC, first start GDB and
253 attach it to the Emacs process with the "gdb -p EMACS-PID" command,
254 where EMACS-PID is the Emacs process ID (which you can see in the
255 Windows Task Manager), type the "continue" command inside GDB, and
256 only then click YES on the abort dialog. This will pass control to
257 the debugger, and you will be able to debug the cause of the fatal
258 error.
243 259
244 Emacs functions implemented in C use a naming convention that reflects 260 Emacs functions implemented in C use a naming convention that reflects
245 their names in lisp. The names of the C routines are the lisp names 261 their names in lisp. The names of the C routines are the lisp names
246 prefixed with 'F', and with dashes converted to underscores. For 262 prefixed with 'F', and with dashes converted to underscores. For
247 example, the function call-process is implemented in C by 263 example, the function call-process is implemented in C by
248 Fcall_process. Similarly, lisp variables are prefixed with 'V', again 264 Fcall_process. Similarly, lisp variables are prefixed with 'V', again
249 with dashes converted to underscores. These conventions enable you to 265 with dashes converted to underscores. These conventions enable you to
250 easily set breakpoints or examine familiar lisp variables by name. 266 easily set breakpoints or examine familiar lisp variables by name.
251 267
252 Since Emacs data is often in the form of a lisp object, and the 268 Since Emacs data is often in the form of a lisp object, and the
253 Lisp_Object type is difficult to examine manually in the MSVC 269 Lisp_Object type is difficult to examine manually in a debugger,
254 debugger, Emacs provides a helper routine called debug_print that 270 Emacs provides a helper routine called debug_print that prints out a
255 prints out a readable representation of a Lisp_Object. (If you are 271 readable representation of a Lisp_Object. If you are using GDB,
256 using gdb, there is a .gdbinit file in the src directory which 272 there is a .gdbinit file in the src directory which provides
257 provides definitions that are useful for examining lisp objects. The 273 definitions that are useful for examining lisp objects. Therefore,
258 following tips are mainly of interest when using MSVC.) The output 274 the following tips are mainly of interest when using MSVC.
259 from debug_print is sent to stderr, and to the debugger via the 275
260 OutputDebugString routine. The output sent to stderr should be 276 The output from debug_print is sent to stderr, and to the debugger
261 displayed in the console window that was opened when the emacs.exe 277 via the OutputDebugString routine. The output sent to stderr should
262 executable was started. The output sent to the debugger should be 278 be displayed in the console window that was opened when the
263 displayed in its "Debug" output window. 279 emacs.exe executable was started. The output sent to the debugger
280 should be displayed in its "Debug" output window.
264 281
265 When you are in the process of debugging Emacs and you would like to 282 When you are in the process of debugging Emacs and you would like to
266 examine the contents of a Lisp_Object variable, popup the QuickWatch 283 examine the contents of a Lisp_Object variable, popup the QuickWatch
267 window (QuickWatch has an eyeglass symbol on its button in the 284 window (QuickWatch has an eyeglass symbol on its button in the
268 toolbar). In the text field at the top of the window, enter 285 toolbar). In the text field at the top of the window, enter