diff options
| author | Eli Zaretskii | 2000-12-27 16:14:51 +0000 |
|---|---|---|
| committer | Eli Zaretskii | 2000-12-27 16:14:51 +0000 |
| commit | 071fcb2cebd24233fbc75ce5168834571a26eadc (patch) | |
| tree | e1e1a16651f3a7d9123f991000f7fe0260726517 | |
| parent | 14ec09d77ec49c6e061026fea83bcf5065fcc829 (diff) | |
| download | emacs-071fcb2cebd24233fbc75ce5168834571a26eadc.tar.gz emacs-071fcb2cebd24233fbc75ce5168834571a26eadc.zip | |
Add basic installation procedure which assumes `configure' does its job.
Elaborate on image support libraries. Add a pointer to Xaw3d library.
Add advice about solving configure-time problems by looking in
config.log and setting variables in the envoronment.
| -rw-r--r-- | INSTALL | 208 |
1 files changed, 174 insertions, 34 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | GNU Emacs Installation Guide | 1 | GNU Emacs Installation Guide |
| 2 | Copyright (c) 1992, 1994, 1996, 1997 Free software Foundation, Inc. | 2 | Copyright (c) 1992, 1994, 1996, 1997, 2000 Free software Foundation, Inc. |
| 3 | 3 | ||
| 4 | Permission is granted to anyone to make or distribute verbatim copies | 4 | Permission is granted to anyone to make or distribute verbatim copies |
| 5 | of this document as received, in any medium, provided that the | 5 | of this document as received, in any medium, provided that the |
| @@ -14,16 +14,105 @@ Copyright (c) 1992, 1994, 1996, 1997 Free software Foundation, Inc. | |||
| 14 | and that any new or changed statements about the activities | 14 | and that any new or changed statements about the activities |
| 15 | of the Free Software Foundation are approved by the Foundation. | 15 | of the Free Software Foundation are approved by the Foundation. |
| 16 | 16 | ||
| 17 | BASIC INSTALLATION | ||
| 18 | |||
| 19 | The simplest way to build Emacs is to use the `configure' shell script | ||
| 20 | which attempts to guess correct values for various system-dependent | ||
| 21 | variables and features and find the directories where various system | ||
| 22 | headers and libraries are kept. It then creates a `Makefile' in each | ||
| 23 | subdirectory and a `config.h' file containing system-dependent | ||
| 24 | definitions. Running the Make utility then builds the package for | ||
| 25 | your system. | ||
| 26 | |||
| 27 | Here's the procedure to build Emacs using `configure' on systems which | ||
| 28 | are supported by it. If this simplified procedure fails, or if you | ||
| 29 | are using a platform such as MS-Windows where `configure' script | ||
| 30 | doesn't work, you might need to use various non-default options, and | ||
| 31 | maybe perform some of the steps manually. The more detailed | ||
| 32 | description in the rest of the sections of this guide will help you do | ||
| 33 | that, so please refer to them if the simple procedure does not work. | ||
| 34 | |||
| 35 | 1. If you want to be able to input international characters which | ||
| 36 | your keyboard doesn't support directly (i.e., you cannot type | ||
| 37 | them at the shell prompt), download the leim-M.N.tar.gz | ||
| 38 | distribution and unpack it into the same directory where you have | ||
| 39 | unpacked the main Emacs distribution. See ADDITIONAL | ||
| 40 | DISTRIBUTION FILES, below, for more about this. | ||
| 41 | |||
| 42 | 2. Make sure your system has at least 120 MB of free disk space. | ||
| 43 | |||
| 44 | 3a. `cd' to the directory where you unpacked Emacs and invoke the | ||
| 45 | `configure' script: | ||
| 46 | |||
| 47 | ./configure | ||
| 48 | |||
| 49 | 3b. Alternatively, create a separate directory, outside the source | ||
| 50 | directory, where you want to build Emacs, and invoke `configure' | ||
| 51 | from there: | ||
| 52 | |||
| 53 | SOURCE-DIR/configure | ||
| 54 | |||
| 55 | where SOURCE-DIR is the top-level Emacs source directory. | ||
| 56 | |||
| 57 | 4. When `configure' finishes, it prints several lines of details | ||
| 58 | about the system configuration. Read those details carefully | ||
| 59 | looking for anything suspicious, such as wrong CPU and operating | ||
| 60 | system names, wrong places for headers or libraries, missing | ||
| 61 | libraries that you know are installed on your system, etc. | ||
| 62 | |||
| 63 | If you find anything wrong, you will have to pass to `configure' | ||
| 64 | explicit machine configuration name, and one or more options | ||
| 65 | which tell it where to find various headers and libraries; refer | ||
| 66 | to DETAILED BUILDING AND INSTALLATION section below. | ||
| 67 | |||
| 68 | If `configure' didn't find some image support libraries, such as | ||
| 69 | Xpm, jpeg, etc., refer to the subsection "Image support | ||
| 70 | libraries", below. | ||
| 71 | |||
| 72 | If the details printed by `configure' don't make any sense to | ||
| 73 | you, assume that `configure' did its job and proceed. | ||
| 74 | |||
| 75 | 5. If you need to run the `configure' script more than once (e.g., | ||
| 76 | with some non-default options), always clean the source | ||
| 77 | directories before running `configure' again: | ||
| 78 | |||
| 79 | make distclean | ||
| 80 | ./configure | ||
| 81 | |||
| 82 | 6. Invoke the Make program: | ||
| 83 | |||
| 84 | make | ||
| 85 | |||
| 86 | 7. If Make succeeds, it will build an executable program `emacs' in | ||
| 87 | the `src' directory. You can try this program, to make sure it | ||
| 88 | works: | ||
| 89 | |||
| 90 | src/emacs -q | ||
| 91 | |||
| 92 | 8. Assuming that the program `src/emacs' starts and displays its | ||
| 93 | opening screen, you can install the program and its auxiliary | ||
| 94 | files into their installation directories: | ||
| 95 | |||
| 96 | make install | ||
| 97 | |||
| 98 | You are now ready to use Emacs. If you wish to conserve disk space, | ||
| 99 | you may remove the program binaries and object files from the | ||
| 100 | directory where you built Emacs: | ||
| 101 | |||
| 102 | make clean | ||
| 103 | |||
| 17 | 104 | ||
| 18 | ADDITIONAL DISTRIBUTION FILES | 105 | ADDITIONAL DISTRIBUTION FILES |
| 19 | 106 | ||
| 20 | * leim-M.N.tar.gz | 107 | * leim-M.N.tar.gz |
| 21 | 108 | ||
| 22 | The Emacs Lisp code for input methods for various international | 109 | The Emacs Lisp code for input methods for various international |
| 23 | character scripts is distributed in a separate tar file because it | 110 | character scripts allows you to input characters in scripts which are |
| 24 | amounts to a significant fraction of the size of the distribution. | 111 | not directly supported by your keyboard. It is distributed in a |
| 25 | This tar file is called leim-M.N.tar.gz, with the same version number | 112 | separate tar file because it amounts to a significant fraction of the |
| 26 | as Emacs, and it unpacks into the directory emacs-M.N/leim. | 113 | size of the distribution. This tar file is called leim-M.N.tar.gz, |
| 114 | with the same version number as Emacs, and it unpacks into the | ||
| 115 | directory emacs-M.N/leim. | ||
| 27 | 116 | ||
| 28 | You should unpack leim-M.N.tar.gz into the same directory where you | 117 | You should unpack leim-M.N.tar.gz into the same directory where you |
| 29 | have previously unpacked the main Emacs distribution. It fills in the | 118 | have previously unpacked the main Emacs distribution. It fills in the |
| @@ -40,13 +129,14 @@ first, just unpack Leim, build Emacs again, and install it again. | |||
| 40 | The intlfonts distribution contains X11 fonts that Emacs needs in | 129 | The intlfonts distribution contains X11 fonts that Emacs needs in |
| 41 | order to display international characters. If you see a non-ASCII | 130 | order to display international characters. If you see a non-ASCII |
| 42 | character appear as a hollow box, that means you don't have a font for | 131 | character appear as a hollow box, that means you don't have a font for |
| 43 | it. You might find a font in the intlfonts distribution. If some | 132 | it. You might find a font in the intlfonts distribution. If you do |
| 44 | characters don't look right, or appear improperly aligned, a font | 133 | have a font for a non-ASCII character, but some characters don't look |
| 45 | from the intlfonts distribution might look better. | 134 | right, or appear improperly aligned, a font from the intlfonts |
| 135 | distribution might look better. | ||
| 46 | 136 | ||
| 47 | The fonts in the intlfonts distribution are also used by the ps-print | 137 | The fonts in the intlfonts distribution are also used by the ps-print |
| 48 | package for printing international characters. The file | 138 | package for printing international characters. The file |
| 49 | lisp/ps-mule.el defines the .bdf font files required for printing | 139 | lisp/ps-mule.el defines the *.bdf font files required for printing |
| 50 | each character set. | 140 | each character set. |
| 51 | 141 | ||
| 52 | The intlfonts distribution contains its own installation instructions, | 142 | The intlfonts distribution contains its own installation instructions, |
| @@ -55,12 +145,16 @@ in the intlfonts/README file. | |||
| 55 | * elisp-manual-M.N.tar.gz | 145 | * elisp-manual-M.N.tar.gz |
| 56 | 146 | ||
| 57 | This distribution contains the Emacs Lisp Reference Manual which | 147 | This distribution contains the Emacs Lisp Reference Manual which |
| 58 | complements the Emacs Lisp Manual. It is a good idea to install the | 148 | complements the Emacs Manual. (The Emacs Manual is accessible from |
| 59 | Emacs Lisp Reference Manual after installing Emacs, to complete the | 149 | within the editor by typing "C-h i", then selecting the "Emacs" item |
| 60 | on-line documentation of Emacs in Info. | 150 | from the menu, or by clicking "Help" in the menu bar and selecting |
| 151 | "Read Emacs Manual".) It is a good idea to install the Emacs Lisp | ||
| 152 | Reference Manual after installing Emacs, to complete the on-line | ||
| 153 | documentation of Emacs in Info. | ||
| 61 | 154 | ||
| 62 | If you have installed Texinfo, you can install the Emacs Lisp | 155 | If you have installed Texinfo, you can install the Emacs Lisp |
| 63 | Reference Manual this way: | 156 | Reference Manual this way (after unpacking the elisp-manual-M.N.tar.gz |
| 157 | file): | ||
| 64 | 158 | ||
| 65 | cd elisp-manual-M.N | 159 | cd elisp-manual-M.N |
| 66 | ./configure --prefix=PREFIXDIR | 160 | ./configure --prefix=PREFIXDIR |
| @@ -76,16 +170,19 @@ that file `dir' in this directory contains an entry like this: | |||
| 76 | * Image support libraries | 170 | * Image support libraries |
| 77 | 171 | ||
| 78 | Emacs needs optional libraries to be able to display images (with the | 172 | Emacs needs optional libraries to be able to display images (with the |
| 79 | exception of PBM and XBM images whose support is built-in). On some | 173 | exception of PBM and XBM images whose support is built-in). |
| 80 | systems these may already be present or available as additional | 174 | |
| 81 | packages, particularly on GNU/Linux. (In some cases older versions | 175 | On some systems, particularly on GNU/Linux, these libraries may |
| 82 | won't work because some routines are missing, and configure should | 176 | already be present or available as additional packages. If not, you |
| 83 | avoid such old versions.) | 177 | can download and build them from sources. None of them are vital for |
| 178 | running Emacs; however, note that Emacs will not be able to use color | ||
| 179 | icons in the toolbar if the XPM support is not available. | ||
| 84 | 180 | ||
| 85 | If necessary, you can build them from source. None are vital for | 181 | Here's the list of these optional libraries, and the URLs where they |
| 86 | running Emacs. Here's the list of these optional libraries, and the | 182 | can be found: |
| 87 | URLs where they can be found: | ||
| 88 | 183 | ||
| 184 | . libXaw3d for fancy 3D-style | ||
| 185 | scroll bars: ftp://ftp.x.org/contrib/widgets/Xaw3d/ | ||
| 89 | . libxpm for XPM: ftp://ftp.x.org/contrib/libraries/ | 186 | . libxpm for XPM: ftp://ftp.x.org/contrib/libraries/ |
| 90 | . libpng for PNG: ftp://www.libpng.org/pub/png/ | 187 | . libpng for PNG: ftp://www.libpng.org/pub/png/ |
| 91 | . libz (for PNG): http://www.info-zip.org/pub/infozip/zlib/ | 188 | . libz (for PNG): http://www.info-zip.org/pub/infozip/zlib/ |
| @@ -94,19 +191,20 @@ URLs where they can be found: | |||
| 94 | . libungif for GIF: | 191 | . libungif for GIF: |
| 95 | http://prtr-13.ucsc.edu/~badger/software/libungif/index.shtml | 192 | http://prtr-13.ucsc.edu/~badger/software/libungif/index.shtml |
| 96 | 193 | ||
| 97 | [libungif-4.1.0 can crash Emacs with uncompressed GIFs -- use | 194 | Emacs will configure itself to build with these libraries if the |
| 98 | libungif-4.1.0b1.] | 195 | `configure' script finds them on your system, unless you supply the |
| 196 | appropriate --without-LIB option. In some cases, older versions of | ||
| 197 | these libraries won't work because some routines are missing, and | ||
| 198 | configure should avoid such old versions. If that happens, use the | ||
| 199 | --without-LIB options to `configure'. See below for more details. | ||
| 99 | 200 | ||
| 100 | Emacs will configure itself to build with these libraries if configure | ||
| 101 | finds them on your system unless you supply the appropriate | ||
| 102 | --without-LIB option. See below for more details. | ||
| 103 | 201 | ||
| 202 | DETAILED BUILDING AND INSTALLATION: | ||
| 104 | 203 | ||
| 105 | BUILDING AND INSTALLATION: | 204 | (This is for a Unix or Unix-like system. For MS-DOS and Windows 3.X, |
| 106 | 205 | see below; search for MSDOG. For Windows 9X, Windows ME, Windows NT, | |
| 107 | (This is for a Unix or Unix-like system. For MSDOS, see below; search | 206 | and Windows 2000, see the file nt/INSTALL. For the Mac, see the file |
| 108 | for MSDOG. For Windows NT or Windows 95, see the file nt/INSTALL. | 207 | mac/INSTALL.) |
| 109 | For the Mac, see the file mac/INSTALL.) | ||
| 110 | 208 | ||
| 111 | 1) Make sure your system has enough swapping space allocated to handle | 209 | 1) Make sure your system has enough swapping space allocated to handle |
| 112 | a program whose pure code is 1.5 MB and whose data area is at | 210 | a program whose pure code is 1.5 MB and whose data area is at |
| @@ -121,11 +219,14 @@ about 60 MB (70 MB with Leim) in the file system where it is | |||
| 121 | installed; this includes the executable files, Lisp libraries, | 219 | installed; this includes the executable files, Lisp libraries, |
| 122 | miscellaneous data files, and on-line documentation. If the building | 220 | miscellaneous data files, and on-line documentation. If the building |
| 123 | and installation take place in different directories, then the | 221 | and installation take place in different directories, then the |
| 124 | installation procedure momentarily requires 95+60 MB (130+170 MB). | 222 | installation procedure momentarily requires 95+60 MB (130+70 MB). |
| 125 | 223 | ||
| 126 | 2) Consult `./etc/MACHINES' to see what configuration name you should | 224 | 2) Consult `./etc/MACHINES' to see what configuration name you should |
| 127 | give to the `configure' program. That file offers hints for | 225 | give to the `configure' program. That file offers hints for |
| 128 | getting around some possible installation problems. | 226 | getting around some possible installation problems. The file lists |
| 227 | many different configurations, but only the part for your machine and | ||
| 228 | operating system is relevant. (The list is arranged in alphabetical | ||
| 229 | order by the vendor name.) | ||
| 129 | 230 | ||
| 130 | 3) You can build Emacs in the top-level Emacs source directory | 231 | 3) You can build Emacs in the top-level Emacs source directory |
| 131 | or in a separate directory. | 232 | or in a separate directory. |
| @@ -159,7 +260,10 @@ configure Emacs; use the option `--with-x-toolkit=TOOLKIT', where | |||
| 159 | TOOLKIT is `athena' or `motif' (`yes' and `lucid' are synonyms for | 260 | TOOLKIT is `athena' or `motif' (`yes' and `lucid' are synonyms for |
| 160 | `athena'). On some systems, it does not work to use a toolkit with | 261 | `athena'). On some systems, it does not work to use a toolkit with |
| 161 | shared libraries. A free implementation of Motif, called LessTif, is | 262 | shared libraries. A free implementation of Motif, called LessTif, is |
| 162 | available ftom <http://www.lesstif.org>. | 263 | available ftom <http://www.lesstif.org>. You can get fancy 3D-style |
| 264 | scroll bars, even without LessTif/Motif, if you have the Xaw3d library | ||
| 265 | installed (see "Image support libraries" above for Xaw3d | ||
| 266 | availability). | ||
| 163 | 267 | ||
| 164 | The `--with-gcc' option specifies that the build process should | 268 | The `--with-gcc' option specifies that the build process should |
| 165 | compile Emacs using GCC. If you don't want to use GCC, specify | 269 | compile Emacs using GCC. If you don't want to use GCC, specify |
| @@ -188,6 +292,11 @@ or more of these options: | |||
| 188 | --without-gif for GIF image support | 292 | --without-gif for GIF image support |
| 189 | --without-png for PNG image support | 293 | --without-png for PNG image support |
| 190 | 294 | ||
| 295 | Use --without-toolkit-scroll-bars to disable LessTif/Motif or Xaw3d | ||
| 296 | scroll bars. --without-xim disables the use of X Input Methods, and | ||
| 297 | --disable-largefile omits support for files larger than 2GB on systems | ||
| 298 | which support that. | ||
| 299 | |||
| 191 | The `--prefix=PREFIXDIR' option specifies where the installation process | 300 | The `--prefix=PREFIXDIR' option specifies where the installation process |
| 192 | should put emacs and its data files. This defaults to `/usr/local'. | 301 | should put emacs and its data files. This defaults to `/usr/local'. |
| 193 | - Emacs (and the other utilities users run) go in PREFIXDIR/bin | 302 | - Emacs (and the other utilities users run) go in PREFIXDIR/bin |
| @@ -232,6 +341,37 @@ output (useful mainly for debugging `configure'). You can give | |||
| 232 | tests in FILE instead of `config.cache'. Set FILE to `/dev/null' to | 341 | tests in FILE instead of `config.cache'. Set FILE to `/dev/null' to |
| 233 | disable caching, for debugging `configure'. | 342 | disable caching, for debugging `configure'. |
| 234 | 343 | ||
| 344 | If the description of the system configuration printed by `configure' | ||
| 345 | is not right, or if it claims some of the fatures or libraries are not | ||
| 346 | available when you know they are, look at the `config.log' file for | ||
| 347 | the trace of the failed tests performed by `configure' to check | ||
| 348 | whether these features are supported. Typically, some test fails | ||
| 349 | because the compiler cannot find some function in the system | ||
| 350 | libraries, or some macro-processor definition in the system headers. | ||
| 351 | |||
| 352 | Some tests might fail because the compiler should look in special | ||
| 353 | directories for some header files, or link against optional | ||
| 354 | directories, or use special compilation options. You can force | ||
| 355 | `configure' and the build process which follows it to do that by | ||
| 356 | setting the variables CPPFLAGS, CFLAGS, LDFLAGS, LIBS, and CC before | ||
| 357 | running `configure'. CPPFLAGS lists the options passed to the | ||
| 358 | preprocessor, CFLAGS are compilation options, LDFLAGS are options used | ||
| 359 | when linking, LIBS are libraries to link against, and CC is the | ||
| 360 | command which invokes the compiler. | ||
| 361 | |||
| 362 | Here's an example of a `configure' invocation which uses these | ||
| 363 | variables: | ||
| 364 | |||
| 365 | CPPFLAGS='-I/foo/myinclude' LDFLAGS='-L/bar/mylib' \ | ||
| 366 | CFLAGS='-O3' LIBS='-lfoo -lbar' ./configure | ||
| 367 | |||
| 368 | (this is all one long line). This tells `configure' to instruct the | ||
| 369 | preprocessor to look in the `/foo/myinclude' directory for header | ||
| 370 | files (in addition to the standard directories), instruct the linker | ||
| 371 | to look in `/bar/mylib' for libraries, pass the -O3 optimization | ||
| 372 | switch to the compiler, and link against libfoo.a and libbar.a | ||
| 373 | libraries in addition to the standard ones. | ||
| 374 | |||
| 235 | The work of `configure' can be done by editing various files in the | 375 | The work of `configure' can be done by editing various files in the |
| 236 | distribution, but using `configure' is easier. See the section called | 376 | distribution, but using `configure' is easier. See the section called |
| 237 | "CONFIGURATION BY HAND" below if you want to do the configuration | 377 | "CONFIGURATION BY HAND" below if you want to do the configuration |