BSD 4_4 release
[unix-history] / usr / src / contrib / emacs-18.57 / INSTALL
CommitLineData
ec2595a0
C
1GNU Emacs Installation Guide
2Copyright (c) 1988 Free software Foundation, Inc.
3
4 Permission is granted to anyone to make or distribute verbatim copies
5 of this document as received, in any medium, provided that the
6 copyright notice and permission notice are preserved,
7 and that the distributor grants the recipient permission
8 for further redistribution as permitted by this notice.
9
10 Permission is granted to distribute modified versions
11 of this document, or of portions of it,
12 under the above conditions, provided also that they
13 carry prominent notices stating who last changed them,
14 and that any new or changed statements about the activities
15 of the Free Software Foundation are approved by the Foundation.
16
17
18PREPARATION
19
200) Make sure your system has enough swapping space allocated
21 to handle a program whose pure code is 400k bytes or
22 and whose data area is at least 150k and can reach 600k
23 bytes or much more. If the swapping space is insufficient, you
24 will get an error in the command temacs -l loadup inc dump,
25 found in $BUILD/src/ymakefile, or possibly when running the
26 final dumped Emacs.
27
281) Choose a place in the file structure for the main directory
29 of Emacs code to reside. This will ultimately have
30 subdirectories named src, lisp, etc, etc. Call this name
31 $EMACS. Let $BUILD stand for the name the directory has now.
32
332) Copy $BUILD/src/config.h-dist to $BUILD/src/config.h,
34 and edit it to set the right options for your system. The file
35 $BUILD/etc/MACHINES may help you decide what to put there.
36 If you need to override any of the definitions in the s- and m-
37 files for your system and machine, do so by editing config.h,
38 not by changing the s- and m- files. Occasionally you may
39 need to redefine parameters used in etc/movemail.c.
40
413) Declare the place in the file system where Emacs will
42 be once installed. This is done in the file `src/paths.h'.
43
44 If you are using the shell-script `build-install'
45 edit the `set' command that sets the variable `EMACS'.
46 If you are using `make' in the main Emacs directory to do
47 the installation, edit the definition of `LIBDIR' in `Makefile'
48 in that directory. `build-install' and `make' edit `src/paths.h'
49 automatically.
50
51 If you are doing the building by hand (not using `build-install' or
52 `make') then you yourself must copy $BUILD/src/paths.h-dist to
53 paths.h, and edit it to contain the correct directory names:
54 $EMACS/lisp for the directory for Lisp libraries, and $EMACS/etc for
55 the directory for executables and text files.
56
57 Emacs will use these names once it has been built.
58 During building, Emacs searches the directory ../lisp for
59 Lisp files before the directories specified in paths.h, and
60 executable files are found in ../etc. So the main Emacs
61 directory $BUILD can be anywhere while Emacs is built, but
62 must be renamed to $EMACS afterwards in order for Emacs to
63 work properly.
64
654) Look at $BUILD/lisp/paths.el; if some of those values
66 are not right for your system, create a file
67 $BUILD/lisp/site-init.el containing Lisp code to override them.
68 You would use the Lisp function `setq'. For example,
69
70 (setq news-inews-program "/usr/bin/inews")
71
72 is how you would override the default value of the
73 variable news-inews-program (which is "/usr/local/inews").
74
755) Put into $BUILD/lisp/site-init.el any Lisp code
76 you want loaded into Emacs before it is dumped out.
77
78 This file is nonexistent in the distribution.
79 You do not need to create it, if you have nothing
80 to put in it.
81
826) Decide what compiler switches to use.
83 You might want to replace the `-g' in the file $BUILD/src/ymakefile
84 with `-O'. If you are not running on 4.2 on a vax,
85 it is possible that no debugger you have will be able
86 to run Emacs with its symbol table, so you might as well
87 use `-O' instead. If you do have a debugger that works,
88 it is probably best to use `-g' so that you are not
89 helpless in the face of a problem.
90
917) If you wish to compile with GCC, you should use -traditional.
92 This is needed for certain include files. For more info, refer
93 the INSTALL file of GCC.
94
958) Refer to the file $BUILD/etc/TERMS for information on
96 fields you may wish to add to various termcap entries.
97
989) Run `make' in the main directory of the Emacs distribution
99 to finish building and installing Emacs in the standard way.
100 You are done!
101
102
103BUILDING GNU EMACS
104The steps below are done by the shell script `build-install'
105or by running `make' in the main directory of the Emacs distribution.
106
1071) Cd to $BUILD/etc and run `make'.
108 This creates files named `ctags' and `etags' and `wakeup'
109 and `make-docfile' and `digest-doc' and `test-distrib'. And others.
110
1112) Cd to $BUILD/src and Run `make'
112 This refers to files in the $BUILD/lisp and $BUILD/etc subdirectories
113 using names ../lisp and ../etc.
114
115 This creates a file $BUILD/src/xemacs which is the runnable Emacs,
116 assigning it a new version number by incrementing the version
117 stored in $BUILD/lisp/version.el.
118
119 It also creates a file in $BUILD/etc, whose name is
120 DOC followed by the current Emacs version.
121 This file contains documentation strings for all the
122 functions in Emacs. Each time you run make to make a new xemacs,
123 a new DOC file with a new name is made. You must keep
124 the DOC file for an Emacs version as long as you keep using
125 that Emacs version.
126
127
128INSTALLATION
129The steps below are done by the shell script `build-install'
130or by running `make' in the main directory of the Emacs distribution.
131
1320) mv $BUILD $EMACS if $BUILD and $EMACS are not the same.
133 This moves the main Emacs directory to the name you have told
134 Emacs (via paths.h) it is going to have.
135
1361) Move the file $EMACS/xemacs to /usr/local/bin/emacs,
137 or some other name in users' search paths.
138 `xemacs' has an alternate name $EMACS/src/emacs-EMACSVERSION;
139 you may wish to make a symbolic link
140 named /usr/local/bin/emacs pointing to that alternate name,
141 as an easy way of installing different versions.
142
143 You can delete $EMACS/src/temacs.
144
1453) Move the programs ctags and etags from $EMACS/etc
146 to /usr/local/bin. These programs are run by users as shell commands.
147
148 The program $EMACS/etc/loadst is invoked by Emacs when appropriate.
149
150 The programs $EMACS/etc/make-docfile and $EMACS/etc/test-distrib
151 are not used any more; they were used in building Emacs.
152
153 $EMACS/etc/digest-doc can be used to convert DOC into a
154 file for users to read. There is no important reason to move it.
155
1564) The files in $EMACS/src subdirectory, except for xemacs,
157 are not used by Emacs once it is built.
158
159
160See the file PROBLEMS in this directory for a list of various
161problems sometimes encountered, and what to do about them.