GNU Emacs Installation Guide
-Copyright (C) 1992, 1994, 1996, 1997, 2000, 2001, 2002, 2003, 2004,
- 2005, 2006, 2007, 2008, 2009, 2010
+Copyright (C) 1992, 1994, 1996-1997, 2000-2011
Free Software Foundation, Inc.
See the end of the file for license conditions.
-This file contains general information. For more specific information
-for the MS-Windows, GNUstep/Mac OS X, and MS-DOS ports, also see the files
-nt/INSTALL, nextstep/INSTALL, and msdos/INSTALL. For information
-specific to building from a Bazaar checkout (rather than a release), see
-the file INSTALL.BZR.
+This file contains general information on building GNU Emacs.
+For more information specific to the MS-Windows, GNUstep/Mac OS X, and
+MS-DOS ports, also read the files nt/INSTALL, nextstep/INSTALL, and
+msdos/INSTALL. For information about building from a Bazaar checkout
+(rather than a release), also read the file INSTALL.BZR.
BASIC INSTALLATION
-On most Unix systems, you can build Emacs by first running the
-`configure' shell script. This attempts to deduce correct values for
+On most Unix systems, you build Emacs by first running the `configure'
+shell script. This attempts to deduce the correct values for
various system-dependent variables and features, and find the
directories where certain system headers and libraries are kept.
In a few cases, you may need to explicitly tell configure where to
Running the `make' utility then builds the package for your system.
Here's the procedure to build Emacs using `configure' on systems which
-are supported by it. In rare cases, if the simplified procedure fails,
+are supported by it. In some cases, if the simplified procedure fails,
you might need to use various non-default options, and maybe perform
-some of the steps manually. The more detailed description in the rest
-of the sections of this guide will help you do that, so please refer
-to those sections if you need to.
+some of the steps manually. The more detailed description in the other
+sections of this guide will help you do that, so please refer to those
+sections if you need to.
- 1. Make sure your system has at least 230 MB of free disk space.
- This is for Emacs 23.2; Emacs gets bigger as more features are added.
- The size of the final installed Emacs is about half this; see below.
+ 1. Unpacking the Emacs 23.2 release requires about 170 MB of free
+ disk space. Building Emacs uses about another 60 MB of space.
+ The final installed Emacs uses about 120 MB of disk space.
This includes the space-saving that comes from automatically
compressing the Lisp source files on installation.
SOURCE-DIR/configure
- where SOURCE-DIR is the top-level Emacs source directory. This
- may not work unless you use GNU make.
+ where SOURCE-DIR is the top-level Emacs source directory.
+ This may not work unless you use GNU make.
3. When `configure' finishes, it prints several lines of details
about the system configuration. Read those details carefully
Refer to the section DETAILED BUILDING AND INSTALLATION below.
If `configure' didn't find some (optional) image support libraries,
- such as Xpm, jpeg, etc., and you want to use them refer to the
+ such as Xpm, jpeg, etc., and you want to use them, refer to the
subsection "Image support libraries" below.
If the details printed by `configure' don't make any sense to
make clean
You can delete the entire build directory if you do not plan to
- build Emacs again.
+ build Emacs again, but it can be useful to keep for debugging.
Note that the install automatically saves space by compressing
(provided you have the `gzip' program) those installed Lisp source (.el)
- files that have corresponding .elc versions. You may also wish
- to compress the installed Info files.
+ files that have corresponding .elc versions, as well as the Info files.
ADDITIONAL DISTRIBUTION FILES
. libxpm for XPM: http://www.x.org/releases/current/src/lib/
. libpng for PNG: http://www.libpng.org/
. libz (for PNG): http://www.zlib.net/
- . libjpeg for JPEG: http://www.ijg.org/ (use a version newer than 6a)
+ . libjpeg for JPEG: http://www.ijg.org/
. libtiff for TIFF: http://www.libtiff.org/
. libgif for GIF: http://sourceforge.net/projects/giflib/
appropriate --without-LIB option. In some cases, older versions of
these libraries won't work because some routines are missing, and
configure should avoid such old versions. If that happens, use the
---without-LIB options to `configure'. See below for more details.
+--without-LIB options to `configure', if you need to.
* Extra fonts
The Emacs distribution does not include fonts and does not install
-them. You must do that yourself, if you need more fonts than your
-distribution normally provides.
+them.
-Emacs running on the GNU system supports both X fonts and local fonts
-(i.e. the fonts managed by the fontconfig library).
-
-For `Unicode' (ISO 10646) X fonts, see
-<URL:http://czyborra.com/unifont/> (packaged in Debian),
-<URL:http://openlab.ring.gr.jp/efont/> (packaged in Debian).
-(In recent Debian versions, there is an extensive `misc-fixed'
-iso10646-1 in the default X installation.) Perhaps also see
-<URL:http://www.cl.cam.ac.uk/%7Emgk25/ucs-fonts.html>.
-
-<URL:http://czyborra.com/charsets/> has basic fonts for Emacs's
-ISO-8859 charsets.
-
-BDF Unicode fonts etl-unicode.tar.gz are available from
-<URL:ftp://ftp.x.org/contrib/fonts/> and
-<URL:ftp://ftp.xfree86.org/pub/mirror/X.Org/contrib/fonts/>. These
-fonts can also be used by ps-print and ps-mule to print Unicode
-characters.
-
-Finally, the Web page <URL:http://www.gnu.org/software/freefont/>
-lists a large number of free Unicode fonts.
+On the GNU system, Emacs supports both X fonts and local fonts
+(i.e. fonts managed by the fontconfig library). If you need more
+fonts than your distribution normally provides, you must install them
+yourself. See <URL:http://www.gnu.org/software/freefont/> for a large
+number of free Unicode fonts.
* GNU/Linux development packages
they include the files that you need to run Emacs, but not those you
need to compile it. For example, to compile Emacs with support for X
and graphics libraries, you may need to install the `X development'
-package(s) and development versions of the jpeg, png, etc. packages.
+package(s), and development versions of the jpeg, png, etc. packages.
The names of the packages that you need varies according to the
GNU/Linux distribution that you use, and the options that you want to
configure Emacs with. On Debian-based systems, you can install all the
packages needed to build the installed version of Emacs with a command
-like `apt-get build-dep emacs23'.
+like `apt-get build-dep emacs23'. On Red Hat systems, the
+corresponding command is `yum-builddep emacs'.
DETAILED BUILDING AND INSTALLATION:
-(This is for a Unix or Unix-like system. For MS-DOS and Windows 3.X,
-see msdos/INSTALL. For Windows 9X, Windows ME, Windows NT, Windows
-2000, Windows XP/2003, and Windows Vista/2008, see the file
+(This is for a Unix or Unix-like system. For MS-DOS and MS Windows 3.X,
+see msdos/INSTALL. For later versions of MS Windows, see the file
nt/INSTALL. For GNUstep and Mac OS X, see nextstep/INSTALL.)
1) Make sure your system has enough swapping space allocated to handle
Window System files installed in unusual places. These options also
accept a list of directories, separated with colons.
-[gtk is default]
To get more attractive menus, you can specify an X toolkit when you
configure Emacs; use the option `--with-x-toolkit=TOOLKIT', where
-TOOLKIT is `gtk', `athena', or `motif' (`yes' and `lucid' are synonyms
-for `athena'). On some systems, it does not work to use a toolkit
-with shared libraries. A free implementation of Motif, called
-LessTif, is available from <http://www.lesstif.org>. Compiling with
-LessTif or Motif causes a standard File Selection Dialog to pop up
-when you invoke file commands with the mouse. You can get fancy
-3D-style scroll bars, even without Gtk or LessTif/Motif, if you have the
-Xaw3d library installed (see "Image support libraries" above for Xaw3d
-availability).
-
-If `--with-x-toolkit=gtk' is specified, you can tell configure where
-to search for GTK by specifying `--with-pkg-config-prog=PATH' where
-PATH is the pathname to pkg-config. Note that GTK version 2.4 or
-newer is required for Emacs.
+TOOLKIT is `gtk' (the default), `athena', or `motif' (`yes' and
+`lucid' are synonyms for `athena'). On some systems, it does not work
+to use a toolkit with shared libraries. A free implementation of
+Motif, called LessTif, is available from <http://www.lesstif.org>.
+Compiling with LessTif or Motif causes a standard File Selection
+Dialog to pop up when you invoke file commands with the mouse. You
+can get fancy 3D-style scroll bars, even without Gtk or LessTif/Motif,
+if you have the Xaw3d library installed (see "Image support libraries"
+above for Xaw3d availability).
+
+You can tell configure where to search for GTK by specifying
+`--with-pkg-config-prog=PATH' where PATH is the pathname to
+pkg-config. Note that GTK version 2.6 or newer is required for Emacs.
The Emacs mail reader RMAIL is configured to be able to read mail from
a POP3 server by default. Versions of the POP protocol older than
Use --without-sound to disable sound support.
+Use --with-wide-int to implement Emacs values with the type 'long long',
+even on hosts where a narrower type would do. With this option, on a
+typical 32-bit host, Emacs integers have 62 bits instead of 30.
+
The `--prefix=PREFIXDIR' option specifies where the installation process
should put emacs and its data files. This defaults to `/usr/local'.
- Emacs (and the other utilities users run) go in PREFIXDIR/bin
./configure --build=i386-linux-gnu --without-sound
configures Emacs to build for a 32-bit GNU/Linux distribution,
-without sound.
+without sound support.
`configure' doesn't do any compilation or installation itself.
It just creates the files that influence those things:
preprocessor to look in the `/foo/myinclude' directory for header
files (in addition to the standard directories), instruct the linker
to look in `/bar/mylib' for libraries, pass the -O3 optimization
-switch to the compiler, and link against libfoo.a and libbar.a
+switch to the compiler, and link against libfoo and libbar
libraries in addition to the standard ones.
For some libraries, like Gtk+, fontconfig and ALSA, `configure' uses
that supports the `VPATH' variable, such as GNU `make'.
(Do not try to build in a separate directory by creating many links
-to the real source directory -- there is no need, and installation
-will fail.)
+to the real source directory--there is no need, and installation will
+fail.)
4) Look at `./lisp/paths.el'; if some of those values are not right
for your system, set up the file `./lisp/site-init.el' with Emacs
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.
+wish to add to various termcap entries. (This is unlikely to be necessary.)
7) Run `make' in the top directory of the Emacs distribution to finish
building Emacs in the standard way. The final executable file is
are installed in the following directories:
`/usr/local/bin' holds the executable programs users normally run -
- `emacs', `etags', `ctags', `b2m', `emacsclient',
+ `emacs', `etags', `ctags', `emacsclient',
`grep-changelog', and `rcs-checkin'.
`/usr/local/share/emacs/VERSION/lisp' holds the Emacs Lisp library;
utilities (like `etags'); it defaults to
`/usr/local/share/man/man1'.
-[here]
-
-`manext' gives the extension the man pages should be installed with.
- It should contain a period, followed by the appropriate
- digit. It defaults to `.1'. For example given the default
- values for `mandir' and `manext', the Emacs man page would be
- installed as `/usr/local/man/man1/emacs.1'.
-
`prefix' doesn't give a path for any specific part of Emacs; instead,
its value is used to determine the defaults for all the
architecture-independent path variables - `datadir',
path variables - `bindir' and `libexecdir'.
The above variables serve analogous purposes in the makefiles for all
-GNU software; this variable is specific to Emacs.
+GNU software; the following variable is specific to Emacs.
`archlibdir' indicates where Emacs installs and expects the executable
files and other architecture-dependent data it uses while
directory, but be aware that running the `configure' program erases
`Makefile' and rebuilds it from `Makefile.in'.
-The path for finding Lisp files is specified in src/paths.h,
+The path for finding Lisp files is specified in src/epaths.h,
a file which is generated by running configure. To change the path,
you can edit the definition of PATH_LOADSEARCH in that file
before you run `make'.
Once Emacs is configured, running `make' in the top directory performs
the following steps.
-1) Run `make src/paths.h' in the top directory. This produces
-`./src/paths.h' from the template file `./src/paths.in', changing
+1) Run `make epaths-force' in the top directory. This produces
+`./src/epaths.h' from the template file `./src/epaths.in', changing
the paths to the values specified in `./Makefile'.
-2) Go to directory `./lib-src' and run `make'. This creates
-executables named `ctags' and `etags' and `make-docfile' and
-`digest-doc' and `test-distrib'. And others.
+2) Go to directory `./lib' and run `make'. This creates include files
+and libraries used in later steps.
+
+3) Go to directory `./lib-src' and run `make'. This creates
+executables named `etags', `make-docfile', and others.
-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'.
+4) Go to directory `./src' and run `make'. This refers to files in
+the `./lisp', `./lib', and `./lib-src' subdirectories using names
+`../lisp', `../lib', and `../lib-src'.
This creates a file `./src/emacs' which is the runnable Emacs,
which has another name that contains a version number.
current Emacs version. This file contains documentation strings for
all the functions in Emacs. Each time you run make to make a new
emacs, 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.
+file for an Emacs version as long as you keep using that Emacs version.
INSTALLATION BY HAND
directory of the Emacs distribution.
1) Copy `./lisp' and its subdirectories, `./etc', and the executables
-in `./lib-src' to their final destinations, as selected in `./src/paths.h'.
+in `./lib-src' to their final destinations, as selected in `./src/epaths.h'.
Strictly speaking, not all of the executables in `./lib-src' need be copied.
-- The programs `fakemail', `hexl', `movemail', `profile', `rcs2log',
- and `vcdiff' are used by Emacs; they do need to be copied.
-- The programs `etags', `ctags', `emacsclient', `b2m', and `rcs-checkin'
+- The programs `hexl', `movemail', `profile', `rcs2log', and `vcdiff'
+ are used by Emacs; they do need to be copied.
+- The programs `etags', `ctags', `emacsclient', and `rcs-checkin'
are intended to be run by users; they are handled below.
- The programs `make-docfile' and `test-distrib' were
used in building Emacs, and are not needed any more.
-- The programs `digest-doc' and `sorted-doc' convert a `DOC' file into
- a file for users to read. There is no important reason to move them.
2) Copy the files in `./info' to the place specified in
`./lisp/site-init.el' or `./lisp/paths.el'. Note that if the
You can delete `./src/temacs'.
-4) Copy the programs `b2m', `emacsclient', `ctags', `etags', and
-`rcs-checkin' from `./lib-src' to `/usr/local/bin'. These programs are
-intended for users to run.
+4) Copy the programs `emacsclient', `ctags', `etags', and `rcs-checkin'
+from `./lib-src' to `/usr/local/bin'. These programs are intended for
+users to run.
-5) Copy the man pages in `./etc' for emacs, ctags, and etags into the
-appropriate man directories.
+5) Copy the man pages in `./doc/man' into the appropriate man directory.
6) The files in the `./src' subdirectory, except for `emacs', are not
used by Emacs once it is built. However, it is very desirable to keep
PROBLEMS
-See the file PROBLEMS in etc subdirectory for a list of various
-problems sometimes encountered, and what to do about them.
+See the file `./etc/PROBLEMS' for a list of various problems sometimes
+encountered, and what to do about them.
\f
This file is part of GNU Emacs.