]> 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 12bea68ad1bbef6f97d2029132e5cc9ebf9d6c53..b817abd2fbe6a38367759e80b4510af46a74184d 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -70,9 +70,14 @@ 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
@@ -119,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
@@ -178,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
@@ -263,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
@@ -275,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.  
@@ -317,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.
 
@@ -331,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.
@@ -359,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).
 
@@ -383,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'.
 
@@ -400,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
@@ -425,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
@@ -454,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', `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'
+    `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.
@@ -491,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