Follow Glenn's lead and update format of Copyright.
[bpt/emacs.git] / nt / INSTALL
index 489941e..54b8ad2 100644 (file)
@@ -1,7 +1,7 @@
                      Building and Installing Emacs
                on Windows NT/2K/XP and Windows 95/98/ME
 
-  Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
+  Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
     Free Software Foundation, Inc.
   See the end of the file for license conditions.
 
   dos2unix and unix2dos available from GnuWin32 or dtou and utod from
   the DJGPP project.
 
+  Additionally, the files lisp/international/uni-*.el and
+  lisp/ldefs-boot.el need Unix line ends due to some embedded ^M
+  characters that are not at the end of the line.  So in the
+  lisp/international directory you should run the following command, or
+  use dos2unix on those files.
+
+     cvs update -kb uni-*.el
+
+  and in the lisp directory, use the command:
+
+     cvs update -kb lisp/ldefs-boot.el
+
   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
 
   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
+  Emacs executable with strange filename completion behavior.  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.
 
   N.B.  It is normal to see a few error messages output while configure
   is running, when gcc support is being tested.  These cannot be
-  surpressed because of limitations in the Windows 9x command.com shell.
+  suppressed because of limitations in the Windows 9x command.com shell.
 
   You are encouraged to look at the file config.log which shows details
   for failed tests, after configure.bat finishes.  Any unexplained failure
 * 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.  If the results of this testing appear to be
-  incorrect, please look for details in the file config.log: it will show
-  the failed test programs and compiler error messages that should explain
-  what is wrong.  (Usually, any such failures happen because some headers
-  are missing due to bad packaging of the image support libraries.)
+  handle other image types: xpm, tiff, gif, png, jpeg and experimental
+  support for svg.
+  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.  If
+  the results of this testing appear to be incorrect, please look for
+  details in the file config.log: it will show the failed test
+  programs and compiler error messages that should explain what is
+  wrong.  (Usually, any such failures happen because some headers are
+  missing due to bad packaging of the image support libraries.)
 
   To use the external image support, the DLLs implementing the
   functionality must be found when Emacs first needs them, either on the
   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
+  is in the PATH or otherwise accessible 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
-  the GnuWin32 project.  These are built with MinGW, but they can be
-  used with both GCC/MinGW and MSVC builds of Emacs.  See the info on
+  the GnuWin32 project.  PNG, JPEG and TIFF libraries are also
+  included with GTK, which is installed along with other Free Software
+  that requires it.  These are built with MinGW, but they can be used
+  with both GCC/MinGW and MSVC builds of Emacs.  See the info on
   http://ourcomments.org/Emacs/w32-build-emacs.html, under "How to Get
   Images Support", for more details about installing image support
   libraries.  Note specifically that, due to some packaging snafus in
   _source_ packages for some of the libraries in order to get the
   header files necessary for building Emacs with image support.
 
+  If GTK 2.0 is installed, addpm will arrange for its image libraries
+  to be on the DLL search path for Emacs.
+
+* Experimental SVG support
+
+  SVG support is currently experimental, and not built by default.
+  Specify --with-svg and ensure you have all the dependencies in your
+  include path. Unless you have built a minimalist librsvg yourself
+  (untested), librsvg depends on a significant chunk of GTK+ to build,
+  plus a few Gnome libraries, libxml2, libbz2 and zlib at runtime. The
+  easiest way to obtain the dependencies required for building is to
+  download a pre-bundled GTK+ development environment for Windows.
+  GTK puts its header files all over the place, so you will need to
+  run pkgconfig to list the include path you will need (either passed
+  to configure.bat as --cflags options, or set in the environment).
+
+  To use librsvg at runtime, ensure that librsvg and its dependencies
+  are on your PATH.  If you didn't build librsvg yourself, you will
+  need to check with where you downloaded it from for the
+  dependencies, as there are different build options.  If it is a
+  short list, then it most likely only lists the immediate
+  dependencies of librsvg, but the dependencies themselves have
+  dependencies - so don't download individual libraries from GTK+,
+  download and install the whole thing. If you think you've got all
+  the dependencies and SVG support is still not working, check your
+  PATH for other libraries that shadow the ones you downloaded.
+  Libraries of the same name from different sources may not be
+  compatible, this problem was encountered with libbzip2 from GnuWin32
+  with libcroco from gnome.org.
+
+  If you can see etc/images/splash.svg, then you have managed to get
+  SVG support working.  Congratulations for making it through DLL hell
+  to this point. You'll probably find that some SVG images crash
+  Emacs.  Problems have been observed in some images that contain
+  text, they seem to be a problem in the Windows port of Pango, or
+  maybe a problem with the way Cairo or librsvg is using it that
+  doesn't show up on other platforms.
+
 * Building
 
   After running configure, simply run the appropriate `make' program for
   The install process will run addpm to setup the registry entries, and
   to create a Start menu icon for Emacs.
 
+* Make targets
+
+  The following make targets may be used by users building the source
+  distribution, or users who have checked out of CVS after
+  an initial bootstrapping.
+
+  make
+  Builds Emacs from the available sources and pre-compiled lisp files.
+
+  make install
+  Installs programs to the bin directory, and runs addpm to create
+  Start Menu icons.
+
+  make clean
+  Removes object and executable files produced by the build process in
+  the current configuration.  After make clean, you can rebuild with
+  the same configuration using make.
+
+  make distclean
+  In addition to the files removed by make clean, this also removes
+  Makefiles and other generated files to get back to the state of a
+  freshly unpacked source distribution. Note that this will not remove
+  installed files, or the results of builds performed with different
+  compiler or optimization options than the current configuration.
+  After make distclean, it is necessary to run configure.bat followed
+  by make to rebuild.
+
+  make cleanall
+  Removes object and executable files that may have been created by
+  previous builds with different configure options, in addition to
+  the files produced by the current configuration.
+
+  make realclean
+  Removes the installed files in the bin subdirectory in addition to
+  the files removed by make cleanall.
+
+
+  The following targets are intended only for users who have checked out
+  of CVS.
+
+  make bootstrap
+  Creates a temporary emacs binary with lisp source files and
+  uses it to compile the lisp files.  Once the lisp files are built,
+  emacs is redumped with the compiled lisp.
+
+  make recompile
+  Recompiles any changed lisp files after a cvs update.  This saves
+  doing a full bootstrap after every update.  If this or a subsequent
+  make fail, you probably need to perform a full bootstrap, though
+  running this target multiple times may eventually sort out the
+  interdependencies.
+
+  make maintainer-clean
+  Removes everything that can be recreated, including compiled lisp
+  files, to get back to the state of a fresh CVS checkout.  After make
+  maintainer-clean, it is necessary to run configure.bat and make
+  bootstrap to rebuild.  Occasionally it may be necessary to run this
+  target after a cvs update.
+
+
 * Trouble-shooting
 
   The main problems that are likely to be encountered when building
   headers it is using, are not suitable for building Emacs.  GCC version
   2.95 or later is needed, because that is when the Windows port gained
   sufficient support for anonymous structs and unions to cope with some
-  definitions from winnt.h that are used by addsection.c.  The W32 API
-  headers that come with Cygwin b20.1 are incomplete, and do not include
-  some definitions required by addsection.c, for instance.  Also, older
-  releases of the W32 API headers from Anders Norlander contain a typo
-  in the definition of IMAGE_FIRST_SECTION in winnt.h, which
-  addsection.c relies on.  Versions of w32api-xxx.zip from at least
-  1999-11-18 onwards are okay.
+  definitions from winnt.h that are used by addsection.c.
+  Older versions of the W32 API headers that come with Cygwin and MinGW
+  may be missing some definitions required by Emacs, or broken in other
+  ways.  In particular, uniscribe APIs were added to MinGW CVS only on
+  2006-03-26, so releases from before then cannot be used.
 
   When in doubt about correctness of what configure did, look at the file
   config.log, which shows all the failed test programs and compiler
   should be displayed in its "Debug" output window.
 
   When you are in the process of debugging Emacs and you would like to
-  examine the contents of a Lisp_Object variable, popup the QuickWatch
+  examine the contents of a Lisp_Object variable, pop up the QuickWatch
   window (QuickWatch has an eyeglass symbol on its button in the
   toolbar).  In the text field at the top of the window, enter
   debug_print(<variable>) and hit return.  For example, start and run
 \f
 This file is part of GNU Emacs.
 
-GNU Emacs is free software; you can redistribute it and/or modify
+GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -462,6 +573,4 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with GNU Emacs; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.
+along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.