Replace string-to-int with string-to-number.
[bpt/emacs.git] / nt / INSTALL
index bc46adb..a96f182 100644 (file)
@@ -1,41 +1,87 @@
                      Building and Installing Emacs
-                 on Windows NT and Windows 95/98/2000
+               on Windows NT/2K/XP and Windows 95/98/ME
+
+  Copyright (c) 2001,2004 Free Software Foundation, Inc.
+  See the end of the file for copying permissions.
+
+  If you used WinZip to unpack the distribution, we suggest to
+  remove the files and unpack again with a different program!
+  WinZip is known to create some subtle and hard to debug problems,
+  such as converting files to DOS CR-LF format, not creating empty
+  directories, etc.  We suggest to use djtarnt.exe from the GNU FTP
+  site.
+
+  If you are building out of CVS, then some files in this directory
+  (.bat files, nmake.defs and makefile.w32-in) may need the line-ends
+  fixing first. The easiest way to do this and avoid future conflicts
+  is to run the following command in this (emacs/nt) directory:
+     cvs update -kb
+  In addition to this file, you should also read INSTALL.CVS in the
+  parent directory, and make sure that you have a version of "touch.exe"
+  in your path, and that it will create files that do not yet exist.
 
   To compile Emacs, you will need either Microsoft Visual C++ 2.0 or
-  later, or a Windows port of GCC 2.95 or later with Mingw and W32 API
-  support and a port of GNU make.  You can use the Cygwin ports of GCC,
-  but Emacs requires the Mingw headers and libraries to build.
+  later and nmake, or a Windows port of GCC 2.95 or later with Mingw
+  and W32 API support and a port of GNU make.  You can use the Cygwin
+  ports of GCC, but Emacs requires the Mingw headers and libraries to
+  build (latest versions of the Cygwin toolkit, at least since v1.3.3,
+  include the MinGW headers and libraries as an integral part).
+
+  Other compilers may work, but specific reports from people that have
+  tried suggest that the Intel C compiler (for example) may produce an
+  Emacs executable with strange filename completion behaviour.  Unless
+  you would like to assist by finding and fixing the cause of any bugs
+  like this, we recommend the use of the supported compilers mentioned
+  in the previous paragraph.
+
+  You will also need a copy of the Posix cp, rm and mv programs. These
+  and other useful Posix utilities can be obtained from the Mingw or
+  Cygwin projects.
 
-  If you build Emacs on Windows 9X or ME, not on Windows 2000 or
-  Windows/NT, we suggest to install the Cygwin port of Bash.
+  If you build Emacs on Windows 9X or ME, not on Windows 2K/XP or
+  Windows NT, we suggest to install the Cygwin port of Bash.
 
-  Please see http://www.mingw.org for pointers to GCC/Mingw binaries.
+  Please see http://www.mingw.org for pointers to GCC/Mingw and binaries.
 
   For reference, here is a list of which builds of GNU make are known
   to work or not, and whether they work in the presence and/or absence
-  of sh.exe, the Cygwin port of Bash.
+  of sh.exe, the Cygwin port of Bash. Note that any version of make
+  that is compiled with Cygwin will only work with Cygwin tools, due to
+  the use of cygwin style paths. This means Cygwin make is unsuitable
+  for building parts of Emacs that need to invoke Emacs itself (leim and
+  "make bootstrap", for example). Also see the Trouble-shooting section
+  below if you decide to go ahead and use Cygwin make.
+
+  In addition, using 4NT as your shell is known to fail the build process,
+  at least for 4NT version 3.01.  Use cmd.exe, the default NT shell,
+  instead. MSYS sh.exe also appears to cause various problems. If you have
+  MSYS installed, try "make SHELL=cmd.exe" to force the use of cmd.exe
+  instead of sh.exe.
+
                                          sh exists     no sh
 
-    cygwin b20.1 make (3.75):            okay[1]       fails[2]
+    cygwin b20.1 make (3.75):            fails[1, 5]   fails[2, 5]
     MSVC compiled gmake 3.77:            okay          okay
     MSVC compiled gmake 3.78.1:          okay          okay
     MSVC compiled gmake 3.79.1:          okay          okay
     mingw32/gcc-2.92.2 make (3.77):      okay          okay[4]
-    cygwin compiled gmake 3.77:          okay[1]       fails[2]
-    cygwin compiled gmake 3.78.1:        okay          fails[2]
-    cygwin compiled gmake 3.79.1:        couldn't build make[3]
+    cygwin compiled gmake 3.77:          fails[1, 5]   fails[2, 5]
+    cygwin compiled make 3.78.1:         fails[5]      fails[2, 5]
+    cygwin compiled make 3.79.1:         fails[3, 5]   fails[2?, 5]
+    mingw32 compiled make 3.79.1:        okay          okay
 
   Notes:
 
     [1] doesn't cope with makefiles with DOS line endings, so must mount
         emacs source with text!=binary.
     [2] fails when needs to invoke shell commands; okay invoking gcc etc.
-    [3] requires LC_MESSAGES support to build; maybe 2.95.x update to
-        cygwin provides this?
+    [3] requires LC_MESSAGES support to build; cannot build with early
+        versions of cygwin.
     [4] may fail on Windows 9X and Windows ME; if so, install Bash.
+    [5] fails when building leim due to the use of cygwin style paths.
+        May work if building emacs without leim.
 
-Configuring:
+* Configuring
 
   Configuration of Emacs is now handled by running configure.bat in the
   nt subdirectory.  It will detect which compiler you have available,
@@ -51,7 +97,39 @@ Configuring:
   is running, when gcc support is being tested.  These cannot be
   surpressed because of limitations in the Windows 9x command.com shell.
 
-Building:
+* Optional image library support
+
+  In addition to its "native" image formats (pbm and xbm), Emacs can
+  handle other image types: xpm, tiff, gif, png and jpeg (postscript is
+  currently unsupported on Windows).  To build Emacs with support for
+  them, the corresponding headers must be in the include path when the
+  configure script is run.  This can be setup using environment
+  variables, or by specifying --cflags -I... options on the command-line
+  to configure.bat.  The configure script will report whether it was
+  able to detect the headers.
+
+  To use the external image support, the DLLs implementing the
+  functionality must be found when Emacs is started, either on the PATH,
+  or in the same directory as emacs.exe.  Failure to find a library is
+  not an error; the associated image format will simply be unavailable.
+
+  Some image libraries have dependencies on one another, or on zlib.
+  For example, tiff support depends on the jpeg library.  If you did not
+  compile the libraries yourself, you must make sure that any dependency
+  is in the PATH or otherwise accesible and that the binaries are
+  compatible (for example, that they were built with the same compiler).
+
+  Binaries for the image libraries (among many others) can be found at
+  GnuWin32 (http://gnuwin32.sourceforge.net).  These are built with
+  MinGW, and so are very compatible with GCC/MinGW builds of Emacs (like
+  the official binary tarballs for Windows).  Compatibility with MSVC,
+  on the other hand, is still weak and should not be trusted in
+  production environments; if you really need an MSVC-compiled Emacs
+  with image support, you should try to build the required libraries
+  with the same compiler (though it can be extremely non-trivial, and
+  we'll be interested on hearing of any such effort).
+
+* Building
 
   After running configure, simply run the appropriate `make' program for
   your compiler to build Emacs.  For MSVC, this is nmake; for GCC, it is
@@ -63,9 +141,11 @@ Building:
   The warnings may be fixed in the main FSF source at some point, but
   until then we will just live with them.
 
-Installing:
+* Installing
 
-  To install Emacs after it has compiled, simply run `make install'.
+  To install Emacs after it has compiled, simply run `nmake install'
+  or `make install', depending on which version of the Make utility
+  do you have.
 
   By default, Emacs will be installed in the location where it was
   built, but a different location can be specified either using the
@@ -74,10 +154,12 @@ Installing:
 
      make install INSTALL_DIR=D:/emacs
 
+  (for `nmake', type "nmake install INSTALL_DIR=D:/emacs" instead).
+
   The install process will run addpm to setup the registry entries, and
   to create a Start menu icon for Emacs.
 
-Trouble-shooting:
+* Trouble-shooting
 
   The main problems that are likely to be encountered when building
   Emacs stem from using an old version of GCC, or old Mingw or W32 API
@@ -104,7 +186,19 @@ Trouble-shooting:
   build without sh.exe.  (Some versions of Windows shells are too dumb
   for Makefile's used by Emacs.)
 
-Debugging:
+  If you are using certain Cygwin builds of GCC, such as Cygwin version
+  1.1.8, you may need to specify some extra compiler flags like so:
+
+    configure --with-gcc --cflags -mwin32 --cflags -D__MSVCRT__
+      --ldflags -mwin32
+
+  However, the latest Cygwin versions, such as 1.3.3, don't need those
+  switches; you can simply use "configure --with-gcc".
+
+  We will attempt to auto-detect the need for these flags in a future
+  release.
+
+* Debugging
 
   You should be able to debug Emacs using the debugger that is
   appropriate for the compiler you used, namely DevStudio or Windbg if
@@ -158,3 +252,18 @@ Debugging:
   execution (e.g., due to a breakpoint) in the context of the current
   thread, so this should only be a problem if you've explicitly switched
   threads.
+
+COPYING PERMISSIONS
+
+  Permission is granted to anyone to make or distribute verbatim copies
+  of this document as received, in any medium, provided that the
+  copyright notice and permission notice are preserved,
+  and that the distributor grants the recipient permission
+  for further redistribution as permitted by this notice.
+
+  Permission is granted to distribute modified versions
+  of this document, or of portions of it,
+  under the above conditions, provided also that they
+  carry prominent notices stating who last changed them,
+  and that any new or changed statements about the activities
+  of the Free Software Foundation are approved by the Foundation.