]> code.delx.au - gnu-emacs/blobdiff - INSTALL
(set-face-background): If color is gray, and frame
[gnu-emacs] / INSTALL
diff --git a/INSTALL b/INSTALL
index 45dd0dc6f6aeaee5661589778df84cbd70b61e91..b817abd2fbe6a38367759e80b4510af46a74184d 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 GNU Emacs Installation Guide
-Copyright (c) 1992 Free software Foundation, Inc.
+Copyright (c) 1992, 1994 Free software Foundation, Inc.
 
    Permission is granted to anyone to make or distribute verbatim copies
    of this document as received, in any medium, provided that the
@@ -26,12 +26,12 @@ insufficient, you will get an error in the command `temacs -batch -l
 loadup dump', found in `./src/Makefile.in.in', or possibly when
 running the final dumped Emacs.
  
-Building Emacs requires about 30 Mb of disk space (including the Emacs
+Building Emacs requires about 50 Mb of disk space (including the Emacs
 sources).  Once installed, Emacs occupies about 20 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 30+20 Mb.
+then the installation procedure momentarily requires 50+20 Mb.
 
 2) Consult `./etc/MACHINES' to see what configuration name you should
 give to the `configure' program.  That file sometimes offers hints for
@@ -62,15 +62,22 @@ only be necessary if you have your X Window System files installed in
 unusual places.
 
 You can specify toolkit operation when you configure Emacs; use the
-option --with-x-toolkit=athena, --with-x-toolkit=motif, or
---with-x-toolkit=open-look.
+option --with-x-toolkit.
+
+Note: on some systems, it does not work to use the toolkit with shared
+libraries.
 
 The `--run-in-place' option sets up default values for the path
 variables in `./Makefile' so that Emacs will expect to find its data
 files (lisp libraries, runnable programs, and the like) in the same
-locations they occupy while Emacs builds.  This means that you don't
-have to install Emacs in order to run it; it uses its data files as
-they were unpacked.
+locations they occupy while Emacs builds.  If you use `--run-in-place'
+then you don't need to do `make install'.
+
+`--run-in-place' is pretty much obsolete now.  If you put the Emacs
+executable in a subdirectory named src, which has siblings named lisp,
+lib-src, etc, info and so on, Emacs automatically uses those sibling
+directories if the standard installation directory names don't contain
+what Emacs needs.
 
 The `--with-gcc' option specifies that the build process should
 compile Emacs using GCC.  If you don't want to use GCC, specify
@@ -117,9 +124,10 @@ options.
 
 Note that `configure' doesn't do any compilation or installation
 itself.  It just creates the files that influence those things:
-`./Makefile', `build-install', and `./src/config.h'.  For details on
-exactly what it does, see the section called `CONFIGURATION BY HAND',
-below.
+`./Makefile', `lib-src/Makefile', `oldXMenu/Makefile',
+`lwlib/Makefile', `src/Makefile', and `./src/config.h'.  For details
+on exactly what it does, see the section called `CONFIGURATION BY
+HAND', below.
 
 When it is done, `configure' prints a description of what it did and
 leaves a copy in the file `config.status'.  That file is also a shell
@@ -153,15 +161,15 @@ Lisp code you want Emacs to load before it is dumped out.  Use
 site-load.el for additional libraries if you arrange for their
 documentation strings to be in the etc/DOC file (see
 src/Makefile.in.in if you wish to figure out how to do that).  For all
-else, use site-load.el.
+else, use site-init.el.
 
 Note that, on some systems, the code you place in site-init.el must
 not use expand-file-name or any other function which may look
 something up in the system's password and user information database.
 See `./PROBLEMS' for more details on which systems this affects.
 
-This file is nonexistent in the distribution.  You do not need to
-create it if you have nothing to put in it.
+The `site-*.el' files are nonexistent in the distribution.  You do not
+need to create them if you have nothing to put in them.
 
 6) Refer to the file `./etc/TERMS' for information on fields you may
 wish to add to various termcap entries.  The files `./etc/termcap.ucb'
@@ -176,7 +184,8 @@ and data files installed as well, run `make install'.
 By default, Emacs installs its files in the following directories:
 
 `/usr/local/bin' holds the executable programs users normally run -
-               `emacs', `etags', `ctags', `b2m', and `emacsclient'.
+               `emacs', `etags', `ctags', `b2m', `emacsclient',
+               and `rcs-checkin'.
 
 `/usr/local/lib/emacs/VERSION/lisp' holds the Emacs Lisp library;
                `VERSION' stands for the number of the Emacs version
@@ -261,7 +270,7 @@ Here is a complete list of the variables you may want to set.
 
 `datadir' indicates where to put the architecture-independent
        read-only data files that Emacs refers to while it runs; it
-       defaults to /usr/local/lib.  We create the following
+       defaults to /usr/local/share.  We create the following
        subdirectories under `datadir':
        - `emacs/VERSION/lisp', containing the Emacs lisp library, and
        - `emacs/VERSION/etc', containing the Emacs tutorial, the DOC
@@ -273,17 +282,17 @@ Here is a complete list of the variables you may want to set.
        same time; this means that you don't have to make Emacs
        unavailable while installing a new version.
 
-`statedir' indicates where to put architecture-independent data files
+`sharedstatedir' indicates where to put architecture-independent data files
        that Emacs modifies while it runs; it defaults to
-       /usr/local/lib as well.  We create the following
-       subdirectories under `statedir':
+       /usr/local/com.  We create the following
+       subdirectories under `sharedstatedir':
        - `emacs/lock', containing files indicating who is editing
                what, so Emacs can detect editing clashes between
                users.
 
-`libdir' indicates where to put architecture-specific data files that
-       Emacs refers to as it runs; it too defaults to `/usr/local/lib'.
-       We create the following subdirectories under `libdir':
+`libexecdir' indicates where to put architecture-specific data files that
+       Emacs refers to as it runs; it defaults to `/usr/local/libexec'.
+       We create the following subdirectories under `libexecdir':
        - `emacs/VERSION/CONFIGURATION-NAME', containing executable
                programs used by Emacs that users are not expected to run
                themselves.  
@@ -315,7 +324,7 @@ Here is a complete list of the variables you may want to set.
 `prefix' doesn't give a path for any specific part of Emacs; instead,
        its value is used to determine the defaults for all the
        architecture-independent path variables - `datadir',
-       `statedir', `infodir', and `mandir'.  Its default value is
+       `sharedstatedir', `infodir', and `mandir'.  Its default value is
        `/usr/local'; the other variables add on `lib' or `man' to it
        by default.
 
@@ -329,7 +338,7 @@ Here is a complete list of the variables you may want to set.
 
 `exec_prefix' serves the same purpose as `prefix', but instead
        determines the default values for the architecture-dependent
-       path variables - `bindir' and `libdir'.
+       path variables - `bindir' and `libexecdir'.
 
 The above variables serve analogous purposes in the makefiles for all
 GNU software; here are some variables specific to Emacs.
@@ -357,12 +366,12 @@ GNU software; here are some variables specific to Emacs.
        (which see), is `/usr/local/lib/emacs/VERSION/etc'.
 
 `lockdir' indicates the directory where Emacs keeps track of its
-       locking information.  Its default value, based on `statedir'
+       locking information.  Its default value, based on `sharedstatedir'
        (which see), is `/usr/local/lib/emacs/lock'.
 
 `archlibdir' indicates where Emacs installs and expects the
        executable files and other architecture-dependent data it uses
-       while running.  Its default value, based on `libdir' (which
+       while running.  Its default value, based on `libexecdir' (which
        see), is `/usr/local/lib/emacs/VERSION/CONFIGURATION-NAME'
        (where VERSION and CONFIGURATION-NAME are as described above).
 
@@ -381,7 +390,8 @@ when running make in the subdirectories.
 
 CONFIGURATION BY HAND
 
-Running the `configure' program performs the following steps.
+Instead of running the `configure' program, you have to perform the
+following steps.
 
 1) Copy `./src/config.h.in' to `./src/config.h'.
 
@@ -398,20 +408,15 @@ files for your system and machine, do so by editing config.h, not by
 changing the s/*.h and m/*.h files.  Occasionally you may need to
 redefine parameters used in `./lib-src/movemail.c'.
 
-3) If you're going to use the make utility to build Emacs, you will
-still need to run `configure' first, giving theappropriate values for
-the variables in the sections entitled "Things `configure' Might Edit"
-and "Where To Install Things."  Note that you may only need to change
-the variables `prefix' and `exec_prefix', since the rest of the
-variables have reasonable defaults based on them.  For each Makefile
-variable of this type, there is a corresponding configure option; for
-example, to change the location of the lock directory, you might use
-
-        ./configure --lockdir=/nfs/emacslock
+3) Create src/Makefile and lib-src/Makefile from the corresponding
+`Makefile.in.in' files.  First copy `Makefile.in.in' to `Makefile.in',
+then edit in appropriate substituions for the @...@ constructs,
+and then copy the shell commands near the end of `configure'
+that run cpp to construct `Makefile'.
 
-4) If you're going to use the build-install script to build Emacs,
-copy `./build-ins.in' to `./build-install', and edit the
-definitions found at the top of the script.
+4) Create `Makefile' files in various other directories
+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.  However, since Emacs has configuration requirements that
@@ -423,24 +428,24 @@ rebuilding `configure' from `configure.in' when possible.
 
 BUILDING GNU EMACS BY HAND
 
-Once Emacs is configured, running `make' or running the shell script
-`build-install' in the top directory performs the following steps.
+Once Emacs is configured, running `make' in the top directory performs
+the following steps.
 
 1) Run `make src/paths.h' in the top directory.  This produces
 `./src/paths.h' from the template file `./src/paths.h.in', changing
 the paths to the values specified in `./Makefile'.
 
-2) Cd to `./lib-src' and run `make'.  This creates executables named
-`ctags' and `etags' and `wakeup' and `make-docfile' and `digest-doc'
-and `test-distrib'.  And others.
+2) Go to directory `./lib-src' and run `make'.  This creates
+executables named `ctags' and `etags' and `wakeup' and `make-docfile'
+and `digest-doc' and `test-distrib'.  And others.
 
-3) Cd to `./src' and Run `make'.  This refers to files in the `./lisp'
-and `./lib-src' subdirectories using names `../lisp' and
+3) Go to directory `./src' and Run `make'.  This refers to files in
+the `./lisp' and `./lib-src' subdirectories using names `../lisp' and
 `../lib-src'.
 
 This creates a file `./src/emacs' which is the runnable Emacs,
-assigning it a new build version number by incrementing the build
-version stored in `./lisp/version.el'.
+which has another name that contains a version number.
+Each time you do this, that version number increments in the last place.
 
 It also creates a file in `./etc' whose name is `DOC' followed by the
 current Emacs version.  This file contains documentation strings for
@@ -452,20 +457,19 @@ version.
 
 INSTALLATION BY HAND
 
-The steps below are done by the shell script `build-install' or by
-running `make install' in the main directory of the Emacs
-distribution.
+The steps below are done by running `make install' in the main
+directory of the Emacs distribution.
 
 1) Copy `./lisp' and its subdirectories, `./etc', and the executables
 in `./lib-src' to their final destinations, as selected in `./src/paths.h'.
 
 Strictly speaking, not all of the executables in `./lib-src' need be copied.
-- The programs `cvtmail', `emacsserver', `env', `fakemail', `hexl',
-    `movemail', `timer', `vcdiff', `wakeup', and `yow' are used by
-    Emacs; they do need to be copied.
-- The programs `etags', `ctags', `emacsclient', `b2m', and `rcs2log'
+- The programs `cvtmail', `emacsserver', `fakemail', `hexl',
+    `movemail', `profile', `rcs2log', `timer', `vcdiff', `wakeup',
+    and `yow' are used by Emacs; they do need to be copied.
+- The programs `etags', `ctags', `emacsclient', `b2m', and `rcs-checkin'
     are intended to be run by users; they are handled below.
-- The programs `make-docfile', `make-path', and `test-distrib' were
+- The programs `make-docfile' and `test-distrib' were
     used in building Emacs, and are not needed any more.
 - The programs `digest-doc' and `sorted-doc' convert a `DOC' file into
     a file for users to read.  There is no important reason to move them.
@@ -489,15 +493,15 @@ of installing different versions.
 You can delete `./src/temacs'.
 
 5) Copy the programs `b2m', `emacsclient', `ctags', `etags', and
-`rcs2log' from `./lib-src' to `/usr/local/bin'.  These programs are
+`rcs-checkin' from `./lib-src' to `/usr/local/bin'.  These programs are
 intended for users to run.
 
 6) Copy the man pages in `./etc' for emacs, ctags, and etags into the
 appropriate man directories.
 
 7) The files in the `./src' subdirectory, except for `emacs', are not
-used by Emacs once it is built.  The source would be handy for
-debugging.
+used by Emacs once it is built.  However, it is very desirable to keep
+the source on line for debugging.
 
 
 PROBLEMS
@@ -508,16 +512,18 @@ problems sometimes encountered, and what to do about them.
 
 Installation on MSDOG (a.k.a. MSDOS)
 
-To install on MSDOG, you need to have the GNU C compiler (also known
-as djgpp), GNU Make, rm, mv, chmod, and sed.  Type these commands:
+To install on MSDOG, you need to have the GNU C compiler for MSDOG
+(also known as djgpp), GNU Make, rm, mv, chmod, and sed.  Type these
+commands:
 
 config msdos
 make install
 
-To save disk space, Emacs is built in-place.  As the /usr/local/
-subtree does not exist on most MSDOG systems, the executables are
-placed in /emacs/bin/.
+To save disk space, Emacs is built with the idea that you will execute
+it from the same place in the file system where you built it.  As the
+/usr/local/ subtree does not exist on most MSDOG systems, the
+executables are placed in /emacs/bin/.
 
-MSDOG is a not a multi-tasking operating system, so Emacs features
-that depend on multitasking will not work.  Synchronous subprocesses
-do work.
+MSDOG is a not a multitasking operating system, so Emacs features such
+as asynchronous subprocesses that depend on multitasking will not
+work.  Synchronous subprocesses do work.