summaryrefslogtreecommitdiff
path: root/INSTALL
diff options
context:
space:
mode:
Diffstat (limited to 'INSTALL')
-rw-r--r--INSTALL208
1 files changed, 208 insertions, 0 deletions
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 00000000000..96199f683ba
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,208 @@
+GNU Emacs Installation Guide
+Copyright (c) 1988 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
+ copyright notice and permission notice are preserved,
+ and that the distributor grants the recipient permission
+ for further redistribution as permitted by this notice.
+
+ Permission is granted to distribute modified versions
+ of this document, or of portions of it,
+ under the above conditions, provided also that they
+ carry prominent notices stating who last changed them,
+ and that any new or changed statements about the activities
+ of the Free Software Foundation are approved by the Foundation.
+
+
+PREPARATION
+
+0) Make sure your system has enough swapping space allocated
+ to handle a program whose pure code is 400k bytes or
+ and whose data area is at least 150k and can reach 600k
+ bytes or much more. If the swapping space is insufficient, you
+ will get an error in the command temacs -l loadup inc dump,
+ found in $BUILD/src/ymakefile, or possibly when running the
+ final dumped Emacs.
+
+1) Choose a place in the file structure for the main directory
+ of Emacs code to reside. This will ultimately have
+ subdirectories named src, lisp, etc, etc. Call this name
+ $EMACS. Let $BUILD stand for the name the directory has now.
+
+2) Copy $BUILD/src/config.h-dist to $BUILD/src/config.h,
+ and edit it to set the right options for your system. The file
+ $BUILD/etc/MACHINES may help you decide what to put there.
+ If you need to override any of the definitions in the s- and m-
+ files for your system and machine, do so by editing config.h,
+ not by changing the s- and m- files. Occasionally you may
+ need to redefine parameters used in etc/movemail.c.
+
+3) Declare the place in the file system where Emacs will
+ be once installed. This is done in the file `src/paths.h'.
+ But you don't have to change it yourself. `build-install' and `make'
+ edit `src/paths.h' automatically.
+
+ If you are using the shell-script `build-install'
+ edit the assignment that sets the variable `EMACS'.
+ If you are using `make' in the main Emacs directory to do
+ the installation, edit the definition of `LIBDIR' in `Makefile'
+ in that directory.
+
+ If you are doing the building by hand (not using `build-install' or
+ `make') then you yourself must copy $BUILD/src/paths.h-dist to
+ paths.h, and edit it to contain the correct directory names:
+ $EMACS/lisp for the directory for Lisp libraries, and $EMACS/etc for
+ the directory for executables and text files.
+
+ Emacs will use these names once it has been built.
+ During building, Emacs searches the directory ../lisp for
+ Lisp files before the directories specified in paths.h, and
+ executable files are found in ../etc. So the main Emacs
+ directory $BUILD can be anywhere while Emacs is built, but
+ must be renamed to $EMACS afterwards in order for Emacs to
+ work properly.
+
+4) Look at $BUILD/lisp/paths.el; if some of those values
+ are not right for your system, create a file
+ $BUILD/lisp/site-init.el containing Lisp code to override them.
+ You would use the Lisp function `setq'. For example,
+
+ (setq news-inews-program "/usr/bin/inews")
+
+ is how you would override the default value of the
+ variable news-inews-program (which is "/usr/local/inews").
+
+5) Put into $BUILD/lisp/site-init.el any Lisp code
+ you want loaded into Emacs before it is dumped out.
+
+ This file is nonexistent in the distribution.
+ You do not need to create it, if you have nothing
+ to put in it.
+
+6) Decide what compiler switches to use.
+ For example, if you would like to compile with optimization,
+ you might want to change the definition of CFLAGS in
+ the file $BUILD/src/ymakefile to use C_OPTIMIZE_SWITCH
+ instead of C_DEBUG_SWITCH.
+
+ Note that many Unix compilers have bugs that affect -O; if you use
+ -O, be prepared to recompile without -O if you have any trouble.
+
+ Note that many (most?) versions of debuggers
+ other than GDB do not know how to handle programs like Emacs
+ that use raw or cbreak mode, change other terminal status bits,
+ and use asynchronous SIGIO signals for terminal input.
+ However, most debuggers may work if Emacs uses a separate terminal
+ from the one being used by the debugger, or if Emacs is using
+ its own X window.
+
+ If you do have a debugger that works, it is probably best to use `-g'
+ so that you are not helpless in the face of a problem.
+
+ With GCC, you can use -O and -g together. The easiest way to do this
+ is to change C_DEBUG_SWITCH to include both -O and -g. GCC is probably
+ more reliable with -O than without, as it is tested more with -O.
+
+ The way to specify use of GCC is to set the environment variable CC
+ to `gcc' before you do `make install'
+
+7) If you wish to compile with GCC, you may need to use -traditional
+ or run fixincludes. This is needed if your system's header files
+ are incompatible with ANSI C. If your system header files are designed
+ for ANSI C, then GCC should handle them properly. For more info, refer
+ the INSTALL file of GCC.
+
+ If your system header files are non-ANSI and you don't use -traditional
+ or fixincludes to compensate, the usual effect is that the ioctl
+ system call does not work. The result is an Emacs that almost completely
+ fails to work.
+
+8) Refer to the file $BUILD/etc/TERMS for information on
+ fields you may wish to add to various termcap entries.
+
+9) Run `make install' in the main directory of the Emacs distribution
+ to finish building and installing Emacs in the standard way.
+ You are done!
+
+(On system V, you need to use `make install.sysv' instead of `make install'.
+On Xenix, use `make install.xenix'.
+On AIX, use `make install.aix'.
+You can also try `make INSTALL=./install.sh install'
+on any kind of system.)
+
+The last step of building Emacs involves running Emacs in a special
+way. At this time, if the directories that Emacs will refer to during
+use for Lisp code and executables do not already exist, Emacs will
+print a warning to this effect. If you plan to have `make' create
+these directories while it installs Emacs, then do not be alarmed by
+the warnings.
+
+The shell script `build-install' is an alternative to `make install'.
+It is a little less sophisticated than the makefile, but probably
+easier to customize for nonstandard kinds of installation. If you
+want to install in precisely the usual fashion, we recommend using
+`make' rather than `build-install'.
+
+
+BUILDING GNU EMACS
+`make install' and its variants start with these steps to compile Emacs.
+
+1) Cd to $BUILD/etc and run `make'.
+ This creates files named `ctags' and `etags' and `wakeup'
+ and `make-docfile' and `digest-doc' and `test-distrib'. And others.
+
+2) Cd to $BUILD/src and Run `make'
+ This refers to files in the $BUILD/lisp and $BUILD/etc subdirectories
+ using names ../lisp and ../etc.
+
+ This creates a file $BUILD/src/xemacs which is the runnable Emacs,
+ assigning it a new version number by incrementing the version
+ stored in $BUILD/lisp/version.el.
+
+ It also creates a file in $BUILD/etc, whose name is
+ DOC followed by the current Emacs version.
+ This file contains documentation strings for all the
+ functions in Emacs. Each time you run make to make a new xemacs,
+ a new DOC file with a new name is made. You must keep
+ the DOC file for an Emacs version as long as you keep using
+ that Emacs version.
+
+
+INSTALLATION
+
+After compilation, `make install' and its variants continue with these steps
+to install the Emacs already compiled.
+
+0) Move files from $BUILD to $EMACS if they are not the same directory.
+ The files that you need include at least the subdirectories
+ lisp, etc and info. After this, the directory in which you said
+ (in paths.h) Emacs would be installed actually contains the necessary
+ parts of Emacs.
+
+1) Move the file $EMACS/xemacs to /usr/local/bin/emacs,
+ or some other name in users' search paths.
+ `xemacs' has an alternate name $EMACS/src/emacs-EMACSVERSION;
+ you may wish to make a symbolic link
+ named /usr/local/bin/emacs pointing to that alternate name,
+ as an easy way of installing different versions.
+
+ You can delete $EMACS/src/temacs.
+
+3) Move the programs ctags, etags and emacsclient from $EMACS/etc
+ to /usr/local/bin. These programs are run by users as shell commands.
+
+ The program $EMACS/etc/wakeup is invoked by Emacs when appropriate.
+
+ The programs $EMACS/etc/make-docfile and $EMACS/etc/test-distrib
+ are not used any more; they were used in building Emacs.
+
+ $EMACS/etc/digest-doc can be used to convert DOC into a
+ file for users to read. There is no important reason to move it.
+
+4) The files in $EMACS/src subdirectory, except for xemacs,
+ are not used by Emacs once it is built.
+
+
+See the file PROBLEMS in this directory for a list of various
+problems sometimes encountered, and what to do about them.