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
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
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
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'
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
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'.
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
+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'.
- ./configure --lockdir=/nfs/emacslock
+4) Create `Makefile' files in various other directories
+from the corresponding `Makefile.in' files. This isn't so hard,
+just a matter of substitution.
-4) If you're going to use the build-install script to build Emacs,
+5) 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.
`./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
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
used in building Emacs, and are not needed any more.
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
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.