Fix fontification bugs with constructors and const.
[bpt/emacs.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 2eab039..f5c9d8f 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 GNU Emacs Installation Guide
 GNU Emacs Installation Guide
-Copyright (C) 1992, 1994, 1996-1997, 2000-2012
+Copyright (C) 1992, 1994, 1996-1997, 2000-2013
   Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
   Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
@@ -70,24 +70,17 @@ sections if you need to.
      you, but there are no obvious errors, 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
-     directories before running `configure' again:
-
-               make distclean
-               ./configure
-
-  5. Invoke the `make' program:
+  4. Invoke the `make' program:
 
                 make
 
 
                 make
 
-  6. If `make' succeeds, it will build an executable program `emacs'
+  5. If `make' succeeds, it will build an executable program `emacs'
      in the `src' directory.  You can try this program, to make sure
      it works:
 
                 src/emacs -Q
 
      in the `src' directory.  You can try this program, to make sure
      it works:
 
                 src/emacs -Q
 
-  7. Assuming that the program `src/emacs' starts and displays its
+  6. Assuming that the program `src/emacs' starts and displays its
      opening screen, you can install the program and its auxiliary
      files into their installation directories:
 
      opening screen, you can install the program and its auxiliary
      files into their installation directories:
 
@@ -101,6 +94,10 @@ sections if you need to.
 
   You can delete the entire build directory if you do not plan to
   build Emacs again, but it can be useful to keep for debugging.
 
   You can delete the entire build directory if you do not plan to
   build Emacs again, but it can be useful to keep for debugging.
+  If you want to build Emacs again with different configure options,
+  first clean the source directories:
+
+               make distclean
 
   Note that the install automatically saves space by compressing
   (provided you have the `gzip' program) those installed Lisp source (.el)
 
   Note that the install automatically saves space by compressing
   (provided you have the `gzip' program) those installed Lisp source (.el)
@@ -120,19 +117,7 @@ packages.  Note that if there is a separate `dev' or `devel' package,
 for use at compilation time rather than run time, you will need that
 as well as the corresponding run time package; typically the dev
 package will contain header files and a library archive.  Otherwise,
 for use at compilation time rather than run time, you will need that
 as well as the corresponding run time package; typically the dev
 package will contain header files and a library archive.  Otherwise,
-you can download and build libraries from sources.
-
-The sources of these libraries are available by anonymous CVS from
-cvs.m17n.org.
-
-    % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n login
-    % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n co m17n-db
-    % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n co m17n-lib
-    % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n co libotf
-
-For m17n-lib, if you have problems with making the whole package
-because you lack some other packages on which m17n-lib depends, try to
-configure it with the option "--without-gui".
+you can download the libraries from <http://www.nongnu.org/m17n/>.
 
 Note that Emacs cannot support complex scripts on a TTY, unless the
 terminal includes such a support.
 
 Note that Emacs cannot support complex scripts on a TTY, unless the
 terminal includes such a support.
@@ -179,7 +164,7 @@ does not provide them):
   . libpng for PNG:   http://www.libpng.org/
   . libz (for PNG):   http://www.zlib.net/
   . libjpeg for JPEG: http://www.ijg.org/
   . libpng for PNG:   http://www.libpng.org/
   . libz (for PNG):   http://www.zlib.net/
   . libjpeg for JPEG: http://www.ijg.org/
-  . libtiff for TIFF: http://www.libtiff.org/
+  . libtiff for TIFF: http://www.remotesensing.org/libtiff/
   . libgif for GIF:   http://sourceforge.net/projects/giflib/
 
 Emacs will configure itself to build with these libraries if the
   . libgif for GIF:   http://sourceforge.net/projects/giflib/
 
 Emacs will configure itself to build with these libraries if the
@@ -212,7 +197,7 @@ 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
 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'.  On Red Hat systems, the
+like `apt-get build-dep emacs24'.  On Red Hat systems, the
 corresponding command is `yum-builddep emacs'.
 
 
 corresponding command is `yum-builddep emacs'.
 
 
@@ -280,6 +265,12 @@ 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.
 
 `--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.
 
+Emacs will autolaunch a D-Bus session bus, when the environment
+variable DISPLAY is set, but no session bus is running.  This might be
+inconvenient for Emacs when running as daemon or running via a remote
+ssh connection.  In order to completely prevent the use of D-Bus, configure
+Emacs with the options `--without-dbus --without-gconf --without-gsettings'.
+
 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
 POP3 are not supported.  For Kerberos-authenticated POP add
 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
 POP3 are not supported.  For Kerberos-authenticated POP add
@@ -313,6 +304,23 @@ systems which support that.
 
 Use --without-sound to disable sound support.
 
 
 Use --without-sound to disable sound support.
 
+Use --without-all if you want to build a small executable with the minimal
+dependencies on external libraries, at the cost of disabling most of the
+features that are normally enabled by default.  Using --without-all is
+equivalent to --without-sound --without-dbus --without-libotf
+--without-selinux --without-xft --without-gsettings --without-gnutls
+--without-rsvg --without-xml2 --without-gconf --without-imagemagick
+--without-m17n-flt --without-jpeg --without-tiff --without-gif
+--without-png --without-gpm --without-file-notification.  Note that
+--without-all leaves X support enabled, and using the GTK2 or GTK3
+toolkit creates a lot of library dependencies.  So if you want to
+build a small executable with very basic X support, use --without-all
+--with-x-toolkit=no.  For the smallest possible executable without X,
+use --without-all --without-x.  If you want to build with just a few
+features enabled, you can combine --without-all with --with-FEATURE.
+For example, you can use --without-all --with-dbus to build with DBus
+support and nothing more.
+
 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.
 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.
@@ -634,7 +642,7 @@ Here is a complete list of the variables you may want to set.
        path variables - `bindir' and `libexecdir'.
 
 The above variables serve analogous purposes in the makefiles for all
        path variables - `bindir' and `libexecdir'.
 
 The above variables serve analogous purposes in the makefiles for all
-GNU software; the following variable is specific to Emacs.
+GNU software; the following variables are specific to Emacs.
 
 `archlibdir' indicates where Emacs installs and expects the executable
        files and other architecture-dependent data it uses while
 
 `archlibdir' indicates where Emacs installs and expects the executable
        files and other architecture-dependent data it uses while
@@ -642,6 +650,10 @@ GNU software; the following variable is specific to Emacs.
        see), is `/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME'
        (where VERSION and CONFIGURATION-NAME are as described above).
 
        see), is `/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME'
        (where VERSION and CONFIGURATION-NAME are as described above).
 
+`GZIP_PROG' is the name of the executable that compresses installed info,
+       manual, and .el files.  It defaults to gzip.  Setting it to
+       the empty string suppresses compression.
+
 Remember that you must specify any variable values you need each time
 you run `make' in the top directory.  If you run `make' once to build
 emacs, test it, and then run `make' again to install the files, you
 Remember that you must specify any variable values you need each time
 you run `make' in the top directory.  If you run `make' once to build
 emacs, test it, and then run `make' again to install the files, you
@@ -667,25 +679,15 @@ running the `configure' program, you have to perform the following steps.
 
 1) Copy `./src/config.in' to `./src/config.h'.
 
 
 1) Copy `./src/config.in' to `./src/config.h'.
 
-2) Consult `./etc/MACHINES' to see what configuration name you should
-use for your system.  Look at the code of the `configure' script to
-see which operating system and architecture description files from
-`src/s' and `src/m' should be used for that configuration name.  Edit
-`src/config.h', and change the two `#include' directives to include
-the appropriate system and architecture description files.
-
-2) Edit `./src/config.h' to set the right options for your system.  If
-you need to override any of the definitions in the s/*.h and m/*.h
-files for your system and machine, do so by editing config.h, not by
-changing the s/*.h and m/*.h files.
+2) Edit `./src/config.h' to set the right options for your system.
 
 3) Create `Makefile' files in various directories from the
 corresponding `Makefile.in' files.  This isn't so hard, just a matter
 of editing in appropriate substitutions for the @...@ constructs.
 
 
 3) Create `Makefile' files in various directories from the
 corresponding `Makefile.in' files.  This isn't so hard, just a matter
 of editing in appropriate substitutions for the @...@ constructs.
 
-The `configure' script is built from `configure.ac' by the `autoconf'
-program.  You need at least the version of autoconf specified in the
-AC_PREREQ(...) command to rebuild `configure' from `configure.ac'.
+The `configure' script is built from `configure.ac' by the
+`autogen.sh' script, which checks that `autoconf' and other build
+tools are sufficiently up to date and then runs the build tools.
 
 BUILDING GNU EMACS BY HAND
 
 
 BUILDING GNU EMACS BY HAND