Commit | Line | Data |
---|---|---|
ec2595a0 C |
1 | GNU Emacs Installation Guide |
2 | Copyright (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 | ||
18 | PREPARATION | |
19 | ||
20 | 0) 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 | ||
28 | 1) 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 | ||
33 | 2) 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 | ||
41 | 3) 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 | ||
65 | 4) 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 | ||
75 | 5) 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 | ||
82 | 6) 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 | ||
91 | 7) 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 | ||
95 | 8) Refer to the file $BUILD/etc/TERMS for information on | |
96 | fields you may wish to add to various termcap entries. | |
97 | ||
98 | 9) 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 | ||
103 | BUILDING GNU EMACS | |
104 | The steps below are done by the shell script `build-install' | |
105 | or by running `make' in the main directory of the Emacs distribution. | |
106 | ||
107 | 1) 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 | ||
111 | 2) 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 | ||
128 | INSTALLATION | |
129 | The steps below are done by the shell script `build-install' | |
130 | or by running `make' in the main directory of the Emacs distribution. | |
131 | ||
132 | 0) 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 | ||
136 | 1) 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 | ||
145 | 3) 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 | ||
156 | 4) The files in $EMACS/src subdirectory, except for xemacs, | |
157 | are not used by Emacs once it is built. | |
158 | ||
159 | ||
160 | See the file PROBLEMS in this directory for a list of various | |
161 | problems sometimes encountered, and what to do about them. |