1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-22 18:35:09 +00:00

Make compressing the info files optional.

* configure.in (--without-compress-info): New option.
(GZIP_INFO): New output variable.

* Makefile.in (GZIP_INFO): New, set by configure.
(install-arch-indep): Don't gzip info pages if GZIP_INFO is nil.
Handle man pages in the same way.

* etc/NEWS: Re-order installation section, and add new item.
This commit is contained in:
Glenn Morris 2010-06-10 20:35:40 -07:00
parent 3ef0a6a5fe
commit 338648ad79
5 changed files with 153 additions and 141 deletions

View File

@ -1,3 +1,12 @@
2010-06-11 Glenn Morris <rgm@gnu.org>
* configure.in (--without-compress-info): New option.
(GZIP_INFO): New output variable.
* Makefile.in (GZIP_INFO): New, set by configure.
(install-arch-indep): Don't gzip info pages if GZIP_INFO is nil.
Handle man pages in the same way.
2010-06-10 Glenn Morris <rgm@gnu.org>
* Makefile.in (install-arch-indep): Gzip the info files too.

255
INSTALL
View File

@ -6,31 +6,37 @@ See the end of the file for license conditions.
This file contains general information. For more specific information
for the Windows, GNUstep/Mac OS X, and MS-DOS ports, also see the files
nt/INSTALL nextstep/INSTALL, and msdos/INSTALL. For 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.
BASIC INSTALLATION
The simplest way to build Emacs is to use the `configure' shell script
which attempts to guess correct values for various system-dependent
variables and features and find the directories where various system
headers and libraries are kept. It then creates a `Makefile' in each
subdirectory and a `config.h' file containing system-dependent
definitions. Running the `make' utility then builds the package for
your system.
On most Unix systems, you can build Emacs by first running the
`configure' shell script. This attempts to deduce 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
find some things, or what options to use.
`configure' creates a `Makefile' in several subdirectories, and a
`src/config.h' file containing system-dependent definitions.
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. If this simplified procedure fails, or if you
are using a platform such as MS-Windows, where `configure' script
doesn't work, 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 them if the simple procedure does not work.
are supported by it. In rare 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.
1. Make sure your system has at least 120 MB of free disk space.
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.
This includes the space-saving that comes from automatically
compressing the Lisp source files on installation.
2a. `cd' to the directory where you unpacked Emacs and invoke the
`configure' script:
@ -52,17 +58,18 @@ that, so please refer to them if the simple procedure does not work.
system names, wrong places for headers or libraries, missing
libraries that you know are installed on your system, etc.
If you find anything wrong, you will have to pass to `configure'
explicit machine configuration name, and one or more options
which tell it where to find various headers and libraries; refer
to DETAILED BUILDING AND INSTALLATION section below.
If you find anything wrong, you may have to pass to `configure'
one or more options specifying the explicit machine configuration
name, where to find various headers and libraries, etc.
Refer to the section DETAILED BUILDING AND INSTALLATION below.
If `configure' didn't find some image support libraries, such as
Xpm, jpeg, etc., and you want to use them refer to the subsection
"Image support libraries", 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
subsection "Image support libraries" below.
If the details printed by `configure' don't make any sense to
you, assume that `configure' did its job and proceed.
you, but there are no obvious errors, assume that `configure' did
its job and proceed.
4. If you need to run the `configure' script more than once (e.g.,
with some non-default options), always clean the source
@ -79,7 +86,7 @@ that, so please refer to them if the simple procedure does not work.
in the `src' directory. You can try this program, to make sure
it works:
src/emacs -q
src/emacs -Q
7. Assuming that the program `src/emacs' starts and displays its
opening screen, you can install the program and its auxiliary
@ -93,9 +100,13 @@ that, so please refer to them if the simple procedure does not work.
make clean
You can also save some space by compressing (with `gzip') Info files
and installed Lisp source (.el) files which have corresponding .elc
versions.
You can delete the entire build directory if you do not plan to
build Emacs again.
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.
ADDITIONAL DISTRIBUTION FILES
@ -157,19 +168,15 @@ download and build libraries from sources. None of them are vital for
running Emacs; however, note that Emacs will not be able to use
colored icons in the toolbar if XPM support is not compiled in.
Here's the list of these optional libraries, and the URLs where they
can be found:
Here's the list of some of these optional libraries, and the URLs
where they can be found (in the unlikely event that your distribution
does not provide them):
. libXaw3d for fancy 3D-style
scroll bars: ftp://ftp.x.org/contrib/widgets/Xaw3d/
. libxpm for XPM: ftp://ftp.x.org/contrib/libraries/
Get version 3.4k or later, which lets Emacs
use its own color allocation functions.
. libpng for PNG: ftp://ftp.simplesystems.org/pub/libpng/png/
. libXaw3d http://directory.fsf.org/project/xaw3d/
. 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: ftp://ftp.uu.net/graphics/jpeg/
Get version 6b -- 6a is reported to fail in
Emacs.
. libjpeg for JPEG: http://www.ijg.org/ (use a version newer than 6a)
. libtiff for TIFF: http://www.libtiff.org/
. libgif for GIF: http://sourceforge.net/projects/giflib/
@ -183,29 +190,22 @@ configure should avoid such old versions. If that happens, use the
* Extra fonts
The Emacs distribution does not include fonts and does not install
them. You must do that yourself.
them. You must do that yourself, if you need more fonts than your
distribution normally provides.
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://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.
XFree86 release 4 (from <URL:ftp://ftp.xfree86.org/pub/XFree86/> and mirrors)
contains font support for most, if not all, of the charsets that Emacs
currently supports, including iso10646-1 encoded fonts for use with
the mule-unicode charsets. The font files should also be usable with
older X releases. Note that XFree 4 contains many iso10646-1 fonts
with minimal character repertoires, which can cause problems -- see
etc/PROBLEMS.
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
@ -217,15 +217,17 @@ lists a large number of free Unicode fonts.
* GNU/Linux development packages
Many GNU/Linux systems do not come with development packages by
default; they just include the files that you need to run Emacs, but
not those you need to compile it. For example, to compile Emacs with
X11 support, you may need to install the special `X11 development'
package. For example, in April 2003, the package names to install
were `XFree86-devel' and `Xaw3d-devel' on Red Hat. On Debian, the
packages necessary to build the installed version should be
sufficient; they can be installed using `apt-get build-dep emacs21' in
Debian 3 and above.
Many GNU/Linux systems do not come with development packages by default;
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.
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'.
DETAILED BUILDING AND INSTALLATION:
@ -240,21 +242,20 @@ a program whose pure code is 1.5 MB and whose data area is at
least 2.8 MB and can reach 100 MB or more. If the swapping space is
insufficient, you will get an error in the command `temacs -batch -l
loadup dump', found in `./src/Makefile.in', or possibly when
running the final dumped Emacs.
running the final dumped Emacs. (This should not be an issue
on any recent system.)
Building Emacs requires about 140 MB of disk space (including the
Emacs sources) Once installed, Emacs occupies about 77 MB in the file
Building Emacs requires about 230 MB of disk space (including the
Emacs sources). Once installed, Emacs occupies about 120 MB in the file
system where it is installed; this includes the executable files, Lisp
libraries, miscellaneous data files, and on-line documentation. If
the building and installation take place in different directories,
then the installation procedure momentarily requires 140+77 MB.
then the installation procedure momentarily requires 230+120 MB.
2) Consult `./etc/MACHINES' to see what configuration name you should
give to the `configure' program. That file offers hints for
getting around some possible installation problems. The file lists
many different configurations, but only the part for your machine and
operating system is relevant. (The list is arranged in alphabetical
order by the vendor name.)
2) In the unlikely event that `configure' does not detect your system
type correctly, consult `./etc/MACHINES' to see what --host, --build
options you should pass to `configure'. That file also offers hints
for getting around some possible installation problems.
3) You can build Emacs in the top-level Emacs source directory
or in a separate directory.
@ -262,15 +263,10 @@ or in a separate directory.
3a) To build in the top-level Emacs source directory, go to that
directory and run the program `configure' as follows:
./configure [CONFIGURATION-NAME] [--OPTION[=VALUE]] ...
./configure [--OPTION[=VALUE]] ...
The CONFIGURATION-NAME argument should be a configuration name given
in `./etc/MACHINES', with the system version number added at the end.
You should try first omitting CONFIGURATION-NAME. This way,
`configure' will try to guess your system type. If it cannot guess,
or if something goes wrong in building or installing Emacs this way,
try again specifying the proper CONFIGURATION-NAME explicitly.
If `configure' cannot determine your system type, try again
specifying the proper --build, --host options explicitly.
If you don't want X support, specify `--with-x=no'. If you omit this
option, `configure' will try to figure out for itself whether your
@ -283,15 +279,16 @@ is able to find them; these options are necessary if you have your X
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 `athena', `motif' or `gtk' (`yes' and `lucid' are synonyms
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 LessTif/Motif, if you have the
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).
@ -325,10 +322,10 @@ or more of these options:
Use --without-toolkit-scroll-bars to disable LessTif/Motif or Xaw3d
scroll bars.
Use --without-xim to inhibit the default use of X Input Methods. In
this case, the X resource useXIM can be used to turn on use of XIM.
Use --without-xim to inhibit the default use of X Input Methods.
In this case, the X resource useXIM can be used to turn on use of XIM.
Use --disable-largefile omits support for files larger than 2GB on
Use --disable-largefile to omit support for files larger than 2GB on
systems which support that.
Use --without-sound to disable sound support.
@ -338,11 +335,11 @@ should put emacs and its data files. This defaults to `/usr/local'.
- Emacs (and the other utilities users run) go in PREFIXDIR/bin
(unless the `--exec-prefix' option says otherwise).
- The architecture-independent files go in PREFIXDIR/share/emacs/VERSION
(where VERSION is the version number of Emacs, like `19.27').
(where VERSION is the version number of Emacs, like `23.2').
- The architecture-dependent files go in
PREFIXDIR/libexec/emacs/VERSION/CONFIGURATION
(where CONFIGURATION is the configuration name, like mips-dec-ultrix4.2),
unless the `--exec-prefix' option says otherwise.
(where CONFIGURATION is the configuration name, like
i686-pc-linux-gnu), unless the `--exec-prefix' option says otherwise.
The `--exec-prefix=EXECDIR' option allows you to specify a separate
portion of the directory tree for installing architecture-specific
@ -354,17 +351,16 @@ EXECDIR/bin should be a directory that is normally in users' PATHs.
For example, the command
./configure mips-dec-ultrix --with-x11
./configure --build=i386-linux-gnu --without-sound
configures Emacs to build for a DECstation running Ultrix, with
support for the X11 window system.
configures Emacs to build for a 32-bit GNU/Linux distribution,
without sound.
`configure' doesn't do any compilation or installation
itself. It just creates the files that influence those things:
`./Makefile', `lib-src/Makefile', `oldXMenu/Makefile',
`lwlib/Makefile', `src/Makefile', and `./src/config.h'. For details
on exactly what it does, see the section called `CONFIGURATION BY
HAND', below.
`configure' doesn't do any compilation or installation itself.
It just creates the files that influence those things:
`./Makefile' in the top-level directory and several subdirectories;
and `./src/config.h'. For details on exactly what it does, see the
section called `CONFIGURATION BY HAND', below.
When it is done, `configure' prints a description of what it did and
creates a shell script `config.status' which, when run, recreates the
@ -436,14 +432,9 @@ Emacs source code in the directory that `configure' is in.
To build in a separate directory, you must use a version of `make'
that supports the `VPATH' variable, such as GNU `make'.
3c) Some people try to build in a separate directory by filling
it full of symlinks to the files in the real source directory.
If you do that, `make all' does work, but `make install' fails:
it copies the symbolic links rather than the actual files.
As far as is known, there is no particular reason to use
a directory full of links rather than use the standard GNU
facilities to build in a separate directory (see 3b above).
(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.)
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
@ -454,7 +445,7 @@ rather than `defvar', as used by `./lisp/paths.el'. 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").
news-inews-program.
Before you override a variable this way, *look at the value* that the
variable gets by default! Make sure you know what kind of value the
@ -473,18 +464,11 @@ If you set load-path to a different value in site-init.el or
site-load.el, Emacs will use *precisely* that value when it starts up
again. If you do this, you are on your own!
Note that, on some systems, the code you place in site-init.el must
not use expand-file-name or any other function which may look
something up in the system's password and user information database.
See `./etc/PROBLEMS' for more details on which systems this affects.
The `site-*.el' files are nonexistent in the distribution. You do not
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. The files `./etc/termcap.ucb'
and `./etc/termcap.dat' may already contain appropriately-modified
entries.
wish to add to various termcap entries.
7) Run `make' in the top directory of the Emacs distribution to finish
building Emacs in the standard way. The final executable file is
@ -498,11 +482,11 @@ are installed in the following directories:
`/usr/local/bin' holds the executable programs users normally run -
`emacs', `etags', `ctags', `b2m', `emacsclient',
and `rcs-checkin'.
`grep-changelog', and `rcs-checkin'.
`/usr/local/share/emacs/VERSION/lisp' holds the Emacs Lisp library;
`VERSION' stands for the number of the Emacs version
you are installing, like `18.59' or `19.27'. Since the
you are installing, like `23.1' or `23.2'. Since the
Lisp library changes from one version of Emacs to
another, including the version number in the path
allows you to have several versions of Emacs installed
@ -510,18 +494,17 @@ are installed in the following directories:
make Emacs unavailable while installing a new version.
`/usr/local/share/emacs/VERSION/etc' holds the Emacs tutorial, the DOC
file, the `yow' database, and other
architecture-independent files Emacs might need while
running. VERSION is as specified for `.../lisp'.
file, and other architecture-independent files Emacs
might need while running.
`/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME' contains executable
programs used by Emacs that users are not expected to
run themselves.
`VERSION' is the number of the Emacs version you are
installing, and `CONFIGURATION-NAME' is the argument
you gave to the `configure' program to identify the
installing, and `CONFIGURATION-NAME' is the value
deduced by the `configure' program to identify the
architecture and operating system of your machine,
like `mips-dec-ultrix' or `sparc-sun-sunos'. Since
like `i686-pc-linux-gnu' or `sparc-sun-sunos'. Since
these files are specific to the version of Emacs,
operating system, and architecture in use, including
the configuration name in the path allows you to have
@ -533,10 +516,9 @@ are installed in the following directories:
`/usr/local/share/info' holds the on-line documentation for Emacs,
known as "info files". Many other GNU programs are
documented using info files as well, so this directory
stands apart from the other, Emacs-specific
directories.
stands apart from the other, Emacs-specific directories.
`/usr/local/man/man1' holds the man pages for the programs installed
`/usr/local/share/man/man1' holds the man pages for the programs installed
in `/usr/local/bin'.
Any version of Emacs, whether installed or not, also looks for Lisp
@ -599,10 +581,9 @@ Here is a complete list of the variables you may want to set.
defaults to /usr/local/share. We create the following
subdirectories under `datadir':
- `emacs/VERSION/lisp', containing the Emacs Lisp library, and
- `emacs/VERSION/etc', containing the Emacs tutorial, the DOC
file, and the `yow' database.
- `emacs/VERSION/etc', containing the tutorials, DOC file, etc.
`VERSION' is the number of the Emacs version you are installing,
like `18.59' or `19.0'. Since these files vary from one version
like `23.1' or `23.2'. Since these files vary from one version
of Emacs to another, including the version number in the path
allows you to have several versions of Emacs installed at the
same time; this means that you don't have to make Emacs
@ -615,23 +596,25 @@ Here is a complete list of the variables you may want to set.
programs used by Emacs that users are not expected to run
themselves.
`VERSION' is the number of the Emacs version you are installing,
and `CONFIGURATION-NAME' is the argument you gave to the
and `CONFIGURATION-NAME' is the value deduced by the
`configure' program to identify the architecture and operating
system of your machine, like `mips-dec-ultrix' or
`sparc-sun-sunos'. Since these files are specific to the version
of Emacs, operating system, and architecture in use, including
the configuration name in the path allows you to have several
versions of Emacs for any mix of machines and operating systems
installed at the same time; this is useful for sites at which
different kinds of machines share the file system Emacs is
installed on.
system of your machine, like `i686-pc-linux-gnu' or `sparc-sun-sunos'.
Since these files are specific to the version of Emacs,
operating system, and architecture in use, including the
configuration name in the path allows you to have several
versions of Emacs for any mix of machines and operating
systems installed at the same time; this is useful for sites
at which different kinds of machines share the file system
Emacs is installed on.
`infodir' indicates where to put the info files distributed with
Emacs; it defaults to `/usr/local/share/info'.
`mandir' indicates where to put the man pages for Emacs and its
utilities (like `etags'); it defaults to
`/usr/local/man/man1'.
`/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

View File

@ -243,6 +243,8 @@ INSTALL_STRIP =
# We use gzip to compress installed .el files.
GZIP_PROG = @GZIP_PROG@
# If non-nil, gzip the installed Info and man pages.
GZIP_INFO = @GZIP_INFO@
# ============================= Targets ==============================
@ -580,8 +582,9 @@ install-arch-indep: mkdir info install-etc
for f in `ls $$elt $$elt-[1-9] $$elt-[1-9][0-9] 2>/dev/null`; do \
${INSTALL_DATA} $$f $(DESTDIR)${infodir}/$$f; \
chmod a+r $(DESTDIR)${infodir}/$$f; \
[ -n "${GZIP_PROG}" ] && \
if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \
${GZIP_PROG} -9n $(DESTDIR)${infodir}/$$f; \
else true; fi; \
done; \
done); \
else true; fi
@ -601,7 +604,10 @@ install-arch-indep: mkdir info install-etc
for page in ${MAN_PAGES}; do \
(cd $${thisdir}; \
${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${page}; \
chmod a+r $(DESTDIR)${man1dir}/$${page}); \
chmod a+r $(DESTDIR)${man1dir}/$${page}; \
if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \
${GZIP_PROG} -9n $(DESTDIR)${man1dir}/$${page}; \
else true; fi ); \
done
## Install those items from etc/ that need to end up elsewhere.

View File

@ -174,6 +174,16 @@ OPTION_DEFAULT_ON([selinux],[don't compile with SELinux support])
dnl http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01844.html
OPTION_DEFAULT_ON([makeinfo],[don't require makeinfo for building manuals])
## This is an option because I do not know if all info/man support
## compressed files, nor how to test if they do so.
OPTION_DEFAULT_ON([compress-info],[don't compress the installed Info pages])
if test $with_compress_info = yes; then
GZIP_INFO=yes
else
GZIP_INFO=
fi
AC_SUBST(GZIP_INFO)
AC_ARG_WITH([pkg-config-prog],dnl
[AS_HELP_STRING([--with-pkg-config-prog=PATH],
[path to pkg-config for finding GTK and librsvg])])

View File

@ -24,6 +24,13 @@ so we will look at it and add it to the manual.
* Installation Changes in Emacs 24.1
** Configure links against libselinux if it is found.
You can disable this by using --without-selinux.
---
** By default, the installed Info and man pages are compressed.
You can disable this by configuring --without-compress-info.
---
** There are new configure options:
--with-mmdf, --with-mail-unlink, --with-mailhost.
@ -34,9 +41,6 @@ lib-src/Makefile by hand in order to use the associated features.
** There is a new configure option --with-crt-dir.
This is only useful if your crt*.o files are in a non-standard location.
** Configure links against libselinux if it is found.
You can disable this by using --without-selinux.
* Startup Changes in Emacs 24.1