(compile-reinitialize-errors): Add help-echo to mouse-highlighted messages.
[bpt/emacs.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 0f41966..e171d52 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,18 +1,99 @@
 GNU Emacs Installation Guide
-Copyright (c) 1992, 1994, 1996, 1997 Free software Foundation, Inc.
+Copyright (c) 1992, 1994, 1996, 1997, 2000 Free software Foundation, Inc.
+See the end of the file for 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.
+BASIC INSTALLATION
+
+The simplest way to build Emacs is to use the `configure' shell script
+which attempts to guess correct values for various system-dependent
+variables and features and find the directories where various system
+headers and libraries are kept.  It then creates a `Makefile' in each
+subdirectory and a `config.h' file containing system-dependent
+definitions.  Running the `make' utility then builds the package for
+your system.
+
+Here's the procedure to build Emacs using `configure' on systems which
+are supported by it.  If this simplified procedure fails, or if you
+are using a platform such as MS-Windows, where `configure' script
+doesn't work, you might need to use various non-default options, and
+maybe perform some of the steps manually.  The more detailed
+description in the rest of the sections of this guide will help you do
+that, so please refer to them if the simple procedure does not work.
+
+  1. If you want to be able to input international characters which
+     your keyboard doesn't support directly (i.e. you cannot type
+     them at the shell prompt), download the leim-M.N.tar.gz
+     distribution and unpack it into the same directory where you have
+     unpacked the main Emacs distribution.  See ADDITIONAL
+     DISTRIBUTION FILES, below, for more about this.
+
+  2. Make sure your system has at least 120 MB of free disk space.
+
+  3a. `cd' to the directory where you unpacked Emacs and invoke the
+      `configure' script:
+
+                ./configure
+
+  3b. Alternatively, create a separate directory, outside the source
+      directory, where you want to build Emacs, and invoke `configure'
+      from there:
+
+                SOURCE-DIR/configure
+
+      where SOURCE-DIR is the top-level Emacs source directory.  This
+      may not work unless you use GNU make.
+
+  4. When `configure' finishes, it prints several lines of details
+     about the system configuration.  Read those details carefully
+     looking for anything suspicious, such as wrong CPU and operating
+     system names, wrong places for headers or libraries, missing
+     libraries that you know are installed on your system, etc.
+
+     If you find anything wrong, you will have to pass to `configure'
+     explicit machine configuration name, and one or more options
+     which tell it where to find various headers and libraries; refer
+     to DETAILED BUILDING AND INSTALLATION section below.
+
+     If `configure' didn't find some image support libraries, such as
+     Xpm, jpeg, etc., and you want to use them refer to the subsection
+     "Image support libraries", below.
+
+     If the details printed by `configure' don't make any sense to
+     you, assume that `configure' did its job and proceed.
+
+  5. If you need to run the `configure' script more than once (e.g.,
+     with some non-default options), always clean the source
+     directories before running `configure' again:
+
+               make distclean 
+               ./configure
+
+  6. Invoke the `make' program:
+
+                make
+
+  7. If `make' succeeds, it will build an executable program `emacs'
+     in the `src' directory.  You can try this program, to make sure
+     it works:
+
+                src/emacs -q
+
+  8. Assuming that the program `src/emacs' starts and displays its
+     opening screen, you can install the program and its auxiliary
+     files into their installation directories:
+
+                make install
+
+  You are now ready to use Emacs.  If you wish to conserve disk space,
+  you may remove the program binaries and object files from the
+  directory where you built Emacs:
+
+                make clean
+
+  You can also save some space by compressing (with `gzip') Info files
+  and installed Lisp source (.el) files which have corresponding .elc
+  versions.
 
 
 ADDITIONAL DISTRIBUTION FILES
@@ -20,10 +101,12 @@ ADDITIONAL DISTRIBUTION FILES
 * leim-M.N.tar.gz
 
 The Emacs Lisp code for input methods for various international
-character scripts is distributed in a separate tar file because it
-amounts to a significant fraction of the size of the distribution.
-This tar file is called leim-M.N.tar.gz, with the same version number
-as Emacs, and it unpacks into the directory emacs-M.N/leim.
+character scripts allows you to input characters in scripts which are
+not directly supported by your keyboard. It is distributed in a
+separate tar file because it amounts to a significant fraction of the
+size of the distribution.  This tar file is called leim-M.N.tar.gz,
+with the same version number as Emacs, and it unpacks into the
+directory emacs-M.N/leim.
 
 You should unpack leim-M.N.tar.gz into the same directory where you
 have previously unpacked the main Emacs distribution.  It fills in the
@@ -40,13 +123,14 @@ first, just unpack Leim, build Emacs again, and install it again.
 The intlfonts distribution contains X11 fonts that Emacs needs in
 order to display international characters.  If you see a non-ASCII
 character appear as a hollow box, that means you don't have a font for
-it.  You might find a font in the intlfonts distribution.  If some
-characters don't look right, or appear improperly aligned, a font
-from the intlfonts distribution might look better.
+it.  You might find a font in the intlfonts distribution.  If you do
+have a font for a non-ASCII character, but some characters don't look
+right, or appear improperly aligned, a font from the intlfonts
+distribution might look better.
 
 The fonts in the intlfonts distribution are also used by the ps-print
 package for printing international characters.  The file
-lisp/ps-mule.el defines the .bdf font files required for printing
+lisp/ps-mule.el defines the *.bdf font files required for printing
 each character set.
 
 The intlfonts distribution contains its own installation instructions,
@@ -55,12 +139,16 @@ in the intlfonts/README file.
 * elisp-manual-M.N.tar.gz
 
 This distribution contains the Emacs Lisp Reference Manual which
-complements the Emacs Lisp Manual.  It is a good idea to install the
-Emacs Lisp Reference Manual after installing Emacs, to complete the
-on-line documentation of Emacs in Info.
+complements the Emacs Manual.  (The Emacs Manual is accessible from
+within the editor by typing "C-h i", then selecting the "Emacs" item
+from the menu, or by clicking "Help" in the menu bar and selecting
+"Read Emacs Manual".)  It is a good idea to install the Emacs Lisp
+Reference Manual after installing Emacs, to complete the on-line
+documentation of Emacs in Info.
 
 If you have installed Texinfo, you can install the Emacs Lisp
-Reference Manual this way:
+Reference Manual this way (after unpacking the elisp-manual-M.N.tar.gz
+file):
 
      cd elisp-manual-M.N
      ./configure --prefix=PREFIXDIR
@@ -76,43 +164,86 @@ that file `dir' in this directory contains an entry like this:
 * Image support libraries
 
 Emacs needs optional libraries to be able to display images (with the
-exception of PBM images whose support is built-in).  Here's the list
-of these optional libraries, and the URLs where they can be found:
-
+exception of PBM and XBM images whose support is built-in).
+
+On some systems, particularly on GNU/Linux, these libraries may
+already be present or available as additional packages.  Note that if
+there is a separate `dev' or `devel' package, for use at compilation
+time rather than run time, you will need that as well as the
+corresponding run time package; typically the dev package will
+contain header files and a library archive.  Otherwise, you can
+download and build libraries from sources.  None of them are vital for
+running Emacs; however, note that Emacs will not be able to use
+colored icons in the toolbar if XPM support is not compiled in.
+
+Here's the list of these optional libraries, and the URLs where they
+can be found:
+
+  . libXaw3d for fancy 3D-style 
+      scroll bars:    ftp://ftp.x.org/contrib/widgets/Xaw3d/
   . libxpm for XPM:   ftp://ftp.x.org/contrib/libraries/
   . libpng for PNG:   ftp://www.libpng.org/pub/png/
-  . Zlib (for PNG):   http://www.info-zip.org/pub/infozip/zlib/
+  . libz (for PNG):   http://www.info-zip.org/pub/infozip/zlib/
   . libjpeg for JPEG: ftp://ftp.uu.net/graphics/jpeg/
+                      Get version 6b -- 6a is reported to fail in
+                      Emacs.
   . libtiff for TIFF: http://www.libtiff.org/
   . libungif for GIF: 
       http://prtr-13.ucsc.edu/~badger/software/libungif/index.shtml
+      Ensure you get version 4.1.0b1 or higher of libungif -- a bug in
+      4.1.0 can crash Emacs.
+
+Emacs will configure itself to build with these libraries if the
+`configure' script finds them on your system, unless you supply the
+appropriate --without-LIB option.  In some cases, older versions of
+these libraries won't work because some routines are missing, and
+configure should avoid such old versions.  If that happens, use the
+--without-LIB options to `configure'.  See below for more details.
 
-Emacs needs to be configured with the appropriate --with-LIB option,
-to be built with these libraries.  See below for more details.
+* Extra fonts
 
+To take proper advantage of Emacs 21's mule-unicode charsets, you need
+a Unicode font.  For information on Unicode fonts for X, see
+<URL:http://czyborra.com/unifont/>,
+<URL:http://openlab.ring.gr.jp/efont/> and
+<URL:http://www.cl.cam.ac.uk/%7Emgk25/ucs-fonts.html>.
+<URL:http://czyborra.com/charsets/> has basic fonts for Emacs's
+ISO-8859 charsets.
 
-BUILDING AND INSTALLATION:
+XFree86 release 4 (from <URL:ftp://ftp.xfree86.org/> and mirrors)
+contains font support for most, if not all, of the charsets that Emacs
+supports.  The font files should be usable separately with older X
+releases.
 
-(This is for a Unix or Unix-like system.  For MSDOS, see below; search
-for MSDOG.  For Windows NT or Windows 95, see the file nt/INSTALL.)
+
+DETAILED BUILDING AND INSTALLATION:
+
+(This is for a Unix or Unix-like system.  For MS-DOS and Windows 3.X,
+see below; search for MSDOG.  For Windows 9X, Windows ME, Windows NT,
+and Windows 2000, see the file nt/INSTALL.  For the Mac, see the file
+mac/INSTALL.)
 
 1) Make sure your system has enough swapping space allocated to handle
-a program whose pure code is 900k bytes and whose data area is at
-least 400k and can reach 8Mb or more.  If the swapping space is
+a program whose pure code is 1.5 MB and whose data area is at
+least 2.5 MB and can reach 80 MB or more.  If the swapping space is
 insufficient, you will get an error in the command `temacs -batch -l
 loadup dump', found in `./src/Makefile.in', or possibly when
 running the final dumped Emacs.
  
-Building Emacs requires about 70 Mb of disk space (including the Emacs
-sources).  Once installed, Emacs occupies about 35 Mb in the file
-system where it is installed; this includes the executable files, Lisp
-libraries, miscellaneous data files, and on-line documentation.  If
-the building and installation take place in different directories,
-then the installation procedure momentarily requires 70+35 Mb.
+Building Emacs requires about 95 MB of disk space (including the Emacs
+sources), or 130 MB if Leim is used.  Once installed, Emacs occupies
+about 60 MB (70 MB with Leim) in the file system where it is
+installed; this includes the executable files, Lisp libraries,
+miscellaneous data files, and on-line documentation.  If the building
+and installation take place in different directories, then the
+installation procedure momentarily requires 95+60 MB (130+70 MB).
 
 2) Consult `./etc/MACHINES' to see what configuration name you should
 give to the `configure' program.  That file offers hints for
-getting around some possible installation problems.
+getting around some possible installation problems.  The file lists
+many different configurations, but only the part for your machine and
+operating system is relevant.  (The list is arranged in alphabetical
+order by the vendor name.)
 
 3) You can build Emacs in the top-level Emacs source directory
 or in a separate directory.
@@ -146,34 +277,44 @@ configure Emacs; use the option `--with-x-toolkit=TOOLKIT', where
 TOOLKIT is `athena' or `motif' (`yes' and `lucid' are synonyms for
 `athena').  On some systems, it does not work to use a toolkit with
 shared libraries.  A free implementation of Motif, called LessTif, is
-available ftom <http://www.lesstif.org>.
+available ftom <http://www.lesstif.org>.  Compiling with LessTif or
+Motif causes a standard File Selection Dialog to pop up when you type
+"C-x C-f" and similar commands.  You can get fancy 3D-style scroll
+bars, even without LessTif/Motif, if you have the Xaw3d library
+installed (see "Image support libraries" above for Xaw3d
+availability).
 
 The `--with-gcc' option specifies that the build process should
 compile Emacs using GCC.  If you don't want to use GCC, specify
 `--with-gcc=no'.  If you omit this option, `configure' will search
 for GCC in your path, and use it if present.
 
-If you want the Emacs mail reader RMAIL to read mail from a POP
-server, you must specify `--with-pop'.  This provides support for the
-POP3 protocol; older versions are not supported.  For
-Kerberos-authenticated POP add `--with-kerberos', for Hesiod support
-add `--with-hesiod'.  These options enable Emacs to use POP; whether
-Emacs uses POP is controlled by individual users--see the Rmail
-chapter of the Emacs manual.
-
-To get Emacs with image support, configure with one or more of these
-options:
-
-  --with-xpm        for XPM image support
-  --with-jpeg       for JPEG image support
-  --with-tiff       for TIFF image support
-  --with-gif        for GIF image support
-  --with-png        for PNG image support
-
-You will have to download, build, and install the appropriate image
-support libraries, see the list of URLs in "ADDITIONAL DISTRIBUTION
-FILES" above.  (Note that configuring --with-png requires Zlib in
-addition to libpng.)
+The Emacs mail reader RMAIL is configured to be able to read mail from
+a POP3 server by default.  Versions of the POP protocol older than
+POP3 are not supported.  For Kerberos-authenticated POP add
+`--with-kerberos', for Hesiod support add `--with-hesiod'.  While POP3
+is always enabled, whether Emacs actually uses POP is controlled by
+individual users--see the Rmail chapter of the Emacs manual.
+
+For image support you may have to download, build, and install the
+appropriate image support libraries for image types other than XBM and
+PBM, see the list of URLs in "ADDITIONAL DISTRIBUTION FILES" above.
+(Note that PNG support requires libz in addition to libpng.)
+
+To disable individual types of image support in Emacs for some reason,
+even though configure finds the libraries, you can configure with one
+or more of these options:
+
+  --without-xpm        for XPM image support
+  --without-jpeg       for JPEG image support
+  --without-tiff       for TIFF image support
+  --without-gif        for GIF image support
+  --without-png        for PNG image support
+
+Use --without-toolkit-scroll-bars to disable LessTif/Motif or Xaw3d
+scroll bars.  --without-xim disables the use of X Input Methods, and
+--disable-largefile omits support for files larger than 2GB on systems
+which support that.
 
 The `--prefix=PREFIXDIR' option specifies where the installation process
 should put emacs and its data files.  This defaults to `/usr/local'.
@@ -219,6 +360,37 @@ output (useful mainly for debugging `configure').  You can give
 tests in FILE instead of `config.cache'.  Set FILE to `/dev/null' to
 disable caching, for debugging `configure'.
 
+If the description of the system configuration printed by `configure'
+is not right, or if it claims some of the fatures or libraries are not
+available when you know they are, look at the `config.log' file for
+the trace of the failed tests performed by `configure' to check
+whether these features are supported.  Typically, some test fails
+because the compiler cannot find some function in the system
+libraries, or some macro-processor definition in the system headers.
+
+Some tests might fail because the compiler should look in special
+directories for some header files, or link against optional
+libraries, or use special compilation options.  You can force
+`configure' and the build process which follows it to do that by
+setting the variables CPPFLAGS, CFLAGS, LDFLAGS, LIBS, and CC before
+running `configure'.  CPPFLAGS lists the options passed to the
+preprocessor, CFLAGS are compilation options, LDFLAGS are options used
+when linking, LIBS are libraries to link against, and CC is the
+command which invokes the compiler.
+
+Here's an example of a `configure' invocation, assuming a Bourne-like
+shell such as Bash, which uses these variables:
+
+ CPPFLAGS='-I/foo/myinclude' LDFLAGS='-L/bar/mylib' \
+  CFLAGS='-O3' LIBS='-lfoo -lbar' ./configure
+
+(this is all one long line).  This tells `configure' to instruct the
+preprocessor to look in the `/foo/myinclude' directory for header
+files (in addition to the standard directories), instruct the linker
+to look in `/bar/mylib' for libraries, pass the -O3 optimization
+switch to the compiler, and link against libfoo.a and libbar.a
+libraries in addition to the standard ones.
+
 The work of `configure' can be done by editing various files in the
 distribution, but using `configure' is easier.  See the section called
 "CONFIGURATION BY HAND" below if you want to do the configuration
@@ -513,7 +685,8 @@ from the corresponding `Makefile.in' files.  This isn't so hard,
 just a matter of substitution.
 
 The `configure' script is built from `configure.in' by the `autoconf'
-program.  You need version 2.0 or newer of `autoconf' to rebuild `configure'.
+program.  You need version 2.8 or newer of `autoconf' to rebuild
+`configure'.
 
 BUILDING GNU EMACS BY HAND
 
@@ -606,6 +779,14 @@ the necessary utilities; search for "MS-DOS".  The configuration step
 (see below) will test for these utilities and will refuse to continue
 if any of them isn't found.
 
+Recompiling Lisp files in the `lisp' subdirectory using the various
+targets in the lisp/Makefile file requires additional utilities:
+`find' and `xargs' (from Findutils), `touch' (from Fileutils) GNU
+`echo' and `test' (from Sh-utils), `tr, `sort', and `uniq' (from
+Textutils), and a port of Bash.  However, you should not normally need
+to run lisp/Makefile, as all the Lisp files are distributed in
+byte-compiled form as well.
+
 If you are building the MSDOG version of Emacs on an MSDOG-like system
 which supports long file names (e.g. Windows 95), you need to make
 sure that long file names are handled consistently both when you
@@ -670,6 +851,23 @@ Emacs, chdir to that directory and type these commands:
     config msdos
     make install
 
+Running "config msdos" checks for several programs that are required
+to configure and build Emacs; if one of those programs is not found,
+CONFIG.BAT stops and prints an error message.  If you have DJGPP
+version 2.0 or 2.01, it will complain about a program called
+DJECHO.EXE.  These old versions of DJGPP shipped that program under
+the name ECHO.EXE, so you can simply copy ECHO.EXE to DJECHO.EXE and
+rerun CONFIG.BAT.  If you have neither ECHO.EXE nor DJECHO.EXE, you
+should be able to find them in your djdevNNN.zip archive (where NNN is
+the DJGPP version number).
+
+On Windows NT or Windows 2000, running "config msdos" might print an
+error message like "VDM has been already loaded".  This is because
+those systems have a program called `redir.exe' which is incompatible
+with a program by the same name supplied with DJGPP, which is used by
+config.bat.  To resolve this, move the DJGPP's `bin' subdirectory to
+the front of your PATH environment variable.
+
 To install the international fonts, chdir to the intlfonts-X.Y
 directory created when you unpacked the intlfonts distribution (X.Y is
 the version number of the fonts' distribution), and type the following
@@ -690,7 +888,7 @@ sibling directory called bin.  For example, if you build in directory
 subdirectories /emacs/src and /emacs/lib-src if you wish.  The only
 subdirectories you need to keep are bin, lisp, etc and info.  (If you
 installed Leim, keep the leim subdirectory, and if you installed
-intlfonts, keep the fonts directory and all its sibdirectories as well.)
+intlfonts, keep the fonts directory and all its subdirectories as well.)
 The bin subdirectory should be added to your PATH.  The msdos
 subdirectory includes a PIF and an icon file for Emacs which you might
 find useful if you run Emacs under MS Windows.
@@ -711,3 +909,18 @@ corrected versions of two files from djgpp in the msdos subdirectory:
 is_exec.c and sigaction.c.  To work around the bugs, compile these
 files and link them into temacs.  Djgpp versions 2.01 and later have
 these bugs fixed, so upgrade if you can before building Emacs.
+\f
+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.