|
|
1.1 ! root 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: But you don't have to change it yourself. `build-install' and `make' ! 44: edit `src/paths.h' automatically. ! 45: ! 46: If you are using the shell-script `build-install' ! 47: edit the assignment that sets the variable `EMACS'. ! 48: If you are using `make' in the main Emacs directory to do ! 49: the installation, edit the definition of `LIBDIR' in `Makefile' ! 50: in that directory. ! 51: ! 52: If you are doing the building by hand (not using `build-install' or ! 53: `make') then you yourself must copy $BUILD/src/paths.h-dist to ! 54: paths.h, and edit it to contain the correct directory names: ! 55: $EMACS/lisp for the directory for Lisp libraries, and $EMACS/etc for ! 56: the directory for executables and text files. ! 57: ! 58: Emacs will use these names once it has been built. ! 59: During building, Emacs searches the directory ../lisp for ! 60: Lisp files before the directories specified in paths.h, and ! 61: executable files are found in ../etc. So the main Emacs ! 62: directory $BUILD can be anywhere while Emacs is built, but ! 63: must be renamed to $EMACS afterwards in order for Emacs to ! 64: work properly. ! 65: ! 66: 4) Look at $BUILD/lisp/paths.el; if some of those values ! 67: are not right for your system, create a file ! 68: $BUILD/lisp/site-init.el containing Lisp code to override them. ! 69: You would use the Lisp function `setq'. For example, ! 70: ! 71: (setq news-inews-program "/usr/bin/inews") ! 72: ! 73: is how you would override the default value of the ! 74: variable news-inews-program (which is "/usr/local/inews"). ! 75: ! 76: 5) Put into $BUILD/lisp/site-init.el any Lisp code ! 77: you want loaded into Emacs before it is dumped out. ! 78: ! 79: This file is nonexistent in the distribution. ! 80: You do not need to create it, if you have nothing ! 81: to put in it. ! 82: ! 83: 6) Decide what compiler switches to use. ! 84: For example, if you would like to compile with optimization, ! 85: you might want to change the definition of CFLAGS in ! 86: the file $BUILD/src/ymakefile to use C_OPTIMIZE_SWITCH ! 87: instead of C_DEBUG_SWITCH. ! 88: ! 89: Note that many Unix compilers have bugs that affect -O; if you use ! 90: -O, be prepared to recompile without -O if you have any trouble. ! 91: ! 92: Note that many (most?) versions of debuggers ! 93: other than GDB do not know how to handle programs like Emacs ! 94: that use raw or cbreak mode, change other terminal status bits, ! 95: and use asynchronous SIGIO signals for terminal input. ! 96: However, most debuggers may work if Emacs uses a separate terminal ! 97: from the one being used by the debugger, or if Emacs is using ! 98: its own X window. ! 99: ! 100: If you do have a debugger that works, it is probably best to use `-g' ! 101: so that you are not helpless in the face of a problem. ! 102: ! 103: With GCC, you can use -O and -g together. The easiest way to do this ! 104: is to change C_DEBUG_SWITCH to include both -O and -g. GCC is probably ! 105: more reliable with -O than without, as it is tested more with -O. ! 106: ! 107: The way to specify use of GCC is to set the environment variable CC ! 108: to `gcc' before you do `make install' ! 109: ! 110: 7) If you wish to compile with GCC, you may need to use -traditional ! 111: or run fixincludes. This is needed if your system's header files ! 112: are incompatible with ANSI C. If your system header files are designed ! 113: for ANSI C, then GCC should handle them properly. For more info, refer ! 114: the INSTALL file of GCC. ! 115: ! 116: If your system header files are non-ANSI and you don't use -traditional ! 117: or fixincludes to compensate, the usual effect is that the ioctl ! 118: system call does not work. The result is an Emacs that almost completely ! 119: fails to work. ! 120: ! 121: 8) Refer to the file $BUILD/etc/TERMS for information on ! 122: fields you may wish to add to various termcap entries. ! 123: ! 124: 9) Run `make install' in the main directory of the Emacs distribution ! 125: to finish building and installing Emacs in the standard way. ! 126: You are done! ! 127: ! 128: (On system V, you need to use `make install.sysv' instead of `make install'. ! 129: On Xenix, use `make install.xenix'. ! 130: On AIX, use `make install.aix'. ! 131: You can also try `make INSTALL=./install.sh install' ! 132: on any kind of system.) ! 133: ! 134: The last step of building Emacs involves running Emacs in a special ! 135: way. At this time, if the directories that Emacs will refer to during ! 136: use for Lisp code and executables do not already exist, Emacs will ! 137: print a warning to this effect. If you plan to have `make' create ! 138: these directories while it installs Emacs, then do not be alarmed by ! 139: the warnings. ! 140: ! 141: The shell script `build-install' is an alternative to `make install'. ! 142: It is a little less sophisticated than the makefile, but probably ! 143: easier to customize for nonstandard kinds of installation. If you ! 144: want to install in precisely the usual fashion, we recommend using ! 145: `make' rather than `build-install'. ! 146: ! 147: ! 148: BUILDING GNU EMACS ! 149: `make install' and its variants start with these steps to compile Emacs. ! 150: ! 151: 1) Cd to $BUILD/etc and run `make'. ! 152: This creates files named `ctags' and `etags' and `wakeup' ! 153: and `make-docfile' and `digest-doc' and `test-distrib'. And others. ! 154: ! 155: 2) Cd to $BUILD/src and Run `make' ! 156: This refers to files in the $BUILD/lisp and $BUILD/etc subdirectories ! 157: using names ../lisp and ../etc. ! 158: ! 159: This creates a file $BUILD/src/xemacs which is the runnable Emacs, ! 160: assigning it a new version number by incrementing the version ! 161: stored in $BUILD/lisp/version.el. ! 162: ! 163: It also creates a file in $BUILD/etc, whose name is ! 164: DOC followed by the current Emacs version. ! 165: This file contains documentation strings for all the ! 166: functions in Emacs. Each time you run make to make a new xemacs, ! 167: a new DOC file with a new name is made. You must keep ! 168: the DOC file for an Emacs version as long as you keep using ! 169: that Emacs version. ! 170: ! 171: ! 172: INSTALLATION ! 173: ! 174: After compilation, `make install' and its variants continue with these steps ! 175: to install the Emacs already compiled. ! 176: ! 177: 0) Move files from $BUILD to $EMACS if they are not the same directory. ! 178: The files that you need include at least the subdirectories ! 179: lisp, etc and info. After this, the directory in which you said ! 180: (in paths.h) Emacs would be installed actually contains the necessary ! 181: parts of Emacs. ! 182: ! 183: 1) Move the file $EMACS/xemacs to /usr/local/bin/emacs, ! 184: or some other name in users' search paths. ! 185: `xemacs' has an alternate name $EMACS/src/emacs-EMACSVERSION; ! 186: you may wish to make a symbolic link ! 187: named /usr/local/bin/emacs pointing to that alternate name, ! 188: as an easy way of installing different versions. ! 189: ! 190: You can delete $EMACS/src/temacs. ! 191: ! 192: 3) Move the programs ctags, etags and emacsclient from $EMACS/etc ! 193: to /usr/local/bin. These programs are run by users as shell commands. ! 194: ! 195: The program $EMACS/etc/wakeup is invoked by Emacs when appropriate. ! 196: ! 197: The programs $EMACS/etc/make-docfile and $EMACS/etc/test-distrib ! 198: are not used any more; they were used in building Emacs. ! 199: ! 200: $EMACS/etc/digest-doc can be used to convert DOC into a ! 201: file for users to read. There is no important reason to move it. ! 202: ! 203: 4) The files in $EMACS/src subdirectory, except for xemacs, ! 204: are not used by Emacs once it is built. ! 205: ! 206: ! 207: See the file PROBLEMS in this directory for a list of various ! 208: problems sometimes encountered, and what to do about them.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.