INSTALL 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768
  1. GNU Emacs Installation Guide
  2. Copyright (C) 1992, 1994, 1996-1997, 2000-2012
  3. Free Software Foundation, Inc.
  4. See the end of the file for license conditions.
  5. This file contains general information on building GNU Emacs.
  6. For more information specific to the MS-Windows, GNUstep/Mac OS X, and
  7. MS-DOS ports, also read the files nt/INSTALL, nextstep/INSTALL, and
  8. msdos/INSTALL. For information about building from a Bazaar checkout
  9. (rather than a release), also read the file INSTALL.BZR.
  10. BASIC INSTALLATION
  11. On most Unix systems, you build Emacs by first running the `configure'
  12. shell script. This attempts to deduce the correct values for
  13. various system-dependent variables and features, and find the
  14. directories where certain system headers and libraries are kept.
  15. In a few cases, you may need to explicitly tell configure where to
  16. find some things, or what options to use.
  17. `configure' creates a `Makefile' in several subdirectories, and a
  18. `src/config.h' file containing system-dependent definitions.
  19. Running the `make' utility then builds the package for your system.
  20. Here's the procedure to build Emacs using `configure' on systems which
  21. are supported by it. In some cases, if the simplified procedure fails,
  22. you might need to use various non-default options, and maybe perform
  23. some of the steps manually. The more detailed description in the other
  24. sections of this guide will help you do that, so please refer to those
  25. sections if you need to.
  26. 1. Unpacking the Emacs 24.1 release requires about 180 MB of free
  27. disk space. Building Emacs uses about another 70 MB of space.
  28. The final installed Emacs uses about 110 MB of disk space.
  29. This includes the space-saving that comes from automatically
  30. compressing the Lisp source files on installation.
  31. 2a. `cd' to the directory where you unpacked Emacs and invoke the
  32. `configure' script:
  33. ./configure
  34. 2b. Alternatively, create a separate directory, outside the source
  35. directory, where you want to build Emacs, and invoke `configure'
  36. from there:
  37. SOURCE-DIR/configure
  38. where SOURCE-DIR is the top-level Emacs source directory.
  39. This may not work unless you use GNU make.
  40. 3. When `configure' finishes, it prints several lines of details
  41. about the system configuration. Read those details carefully
  42. looking for anything suspicious, such as wrong CPU and operating
  43. system names, wrong places for headers or libraries, missing
  44. libraries that you know are installed on your system, etc.
  45. If you find anything wrong, you may have to pass to `configure'
  46. one or more options specifying the explicit machine configuration
  47. name, where to find various headers and libraries, etc.
  48. Refer to the section DETAILED BUILDING AND INSTALLATION below.
  49. If `configure' didn't find some (optional) image support libraries,
  50. such as Xpm, jpeg, etc., and you want to use them, refer to the
  51. subsection "Image support libraries" below.
  52. If the details printed by `configure' don't make any sense to
  53. you, but there are no obvious errors, assume that `configure' did
  54. its job and proceed.
  55. 4. If you need to run the `configure' script more than once (e.g.,
  56. with some non-default options), always clean the source
  57. directories before running `configure' again:
  58. make distclean
  59. ./configure
  60. 5. Invoke the `make' program:
  61. make
  62. 6. If `make' succeeds, it will build an executable program `emacs'
  63. in the `src' directory. You can try this program, to make sure
  64. it works:
  65. src/emacs -Q
  66. 7. Assuming that the program `src/emacs' starts and displays its
  67. opening screen, you can install the program and its auxiliary
  68. files into their installation directories:
  69. make install
  70. You are now ready to use Emacs. If you wish to conserve disk space,
  71. you may remove the program binaries and object files from the
  72. directory where you built Emacs:
  73. make clean
  74. You can delete the entire build directory if you do not plan to
  75. build Emacs again, but it can be useful to keep for debugging.
  76. Note that the install automatically saves space by compressing
  77. (provided you have the `gzip' program) those installed Lisp source (.el)
  78. files that have corresponding .elc versions, as well as the Info files.
  79. ADDITIONAL DISTRIBUTION FILES
  80. * Complex Text Layout support libraries
  81. On GNU and Unix systems, Emacs needs the optional libraries "m17n-db",
  82. "libm17n-flt", "libotf" to correctly display such complex scripts as
  83. Indic and Khmer, and also for scripts that require Arabic shaping
  84. support (Arabic and Farsi). On some systems, particularly GNU/Linux,
  85. these libraries may be already present or available as additional
  86. packages. Note that if there is a separate `dev' or `devel' package,
  87. for use at compilation time rather than run time, you will need that
  88. as well as the corresponding run time package; typically the dev
  89. package will contain header files and a library archive. Otherwise,
  90. you can download and build libraries from sources.
  91. The sources of these libraries are available by anonymous CVS from
  92. cvs.m17n.org.
  93. % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n login
  94. % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n co m17n-db
  95. % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n co m17n-lib
  96. % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n co libotf
  97. For m17n-lib, if you have problems with making the whole package
  98. because you lack some other packages on which m17n-lib depends, try to
  99. configure it with the option "--without-gui".
  100. Note that Emacs cannot support complex scripts on a TTY, unless the
  101. terminal includes such a support.
  102. * intlfonts-VERSION.tar.gz
  103. The intlfonts distribution contains X11 fonts in various encodings
  104. that Emacs can use to display international characters. If you see a
  105. non-ASCII character appear as a hollow box, that means you don't have
  106. a font for it. You might find one in the intlfonts distribution. If
  107. you do have a font for a non-ASCII character, but some characters
  108. don't look right, or appear improperly aligned, a font from the
  109. intlfonts distribution might look better.
  110. The fonts in the intlfonts distribution are also used by the ps-print
  111. package for printing international characters. The file
  112. lisp/ps-mule.el defines the *.bdf font files required for printing
  113. each character set.
  114. The intlfonts distribution contains its own installation instructions,
  115. in the intlfonts/README file.
  116. * Image support libraries
  117. Emacs needs optional libraries to be able to display images (with the
  118. exception of PBM and XBM images whose support is built-in).
  119. On some systems, particularly on GNU/Linux, these libraries may
  120. already be present or available as additional packages. Note that if
  121. there is a separate `dev' or `devel' package, for use at compilation
  122. time rather than run time, you will need that as well as the
  123. corresponding run time package; typically the dev package will
  124. contain header files and a library archive. Otherwise, you can
  125. download and build libraries from sources. None of them are vital for
  126. running Emacs; however, note that Emacs will not be able to use
  127. colored icons in the toolbar if XPM support is not compiled in.
  128. Here's the list of some of these optional libraries, and the URLs
  129. where they can be found (in the unlikely event that your distribution
  130. does not provide them):
  131. . libXaw3d http://directory.fsf.org/project/xaw3d/
  132. . libxpm for XPM: http://www.x.org/releases/current/src/lib/
  133. . libpng for PNG: http://www.libpng.org/
  134. . libz (for PNG): http://www.zlib.net/
  135. . libjpeg for JPEG: http://www.ijg.org/
  136. . libtiff for TIFF: http://www.libtiff.org/
  137. . libgif for GIF: http://sourceforge.net/projects/giflib/
  138. Emacs will configure itself to build with these libraries if the
  139. `configure' script finds them on your system, unless you supply the
  140. appropriate --without-LIB option. In some cases, older versions of
  141. these libraries won't work because some routines are missing, and
  142. configure should avoid such old versions. If that happens, use the
  143. --without-LIB options to `configure', if you need to.
  144. * Extra fonts
  145. The Emacs distribution does not include fonts and does not install
  146. them.
  147. On the GNU system, Emacs supports both X fonts and local fonts
  148. (i.e. fonts managed by the fontconfig library). If you need more
  149. fonts than your distribution normally provides, you must install them
  150. yourself. See <URL:http://www.gnu.org/software/freefont/> for a large
  151. number of free Unicode fonts.
  152. * GNU/Linux development packages
  153. Many GNU/Linux systems do not come with development packages by default;
  154. they include the files that you need to run Emacs, but not those you
  155. need to compile it. For example, to compile Emacs with support for X
  156. and graphics libraries, you may need to install the `X development'
  157. package(s), and development versions of the jpeg, png, etc. packages.
  158. The names of the packages that you need varies according to the
  159. GNU/Linux distribution that you use, and the options that you want to
  160. configure Emacs with. On Debian-based systems, you can install all the
  161. packages needed to build the installed version of Emacs with a command
  162. like `apt-get build-dep emacs23'. On Red Hat systems, the
  163. corresponding command is `yum-builddep emacs'.
  164. DETAILED BUILDING AND INSTALLATION:
  165. (This is for a Unix or Unix-like system. For MS-DOS and MS Windows 3.X,
  166. see msdos/INSTALL. For later versions of MS Windows, see the file
  167. nt/INSTALL. For GNUstep and Mac OS X, see nextstep/INSTALL.)
  168. 1) Make sure your system has enough swapping space allocated to handle
  169. a program whose pure code is 1.5 MB and whose data area is at
  170. least 2.8 MB and can reach 100 MB or more. If the swapping space is
  171. insufficient, you will get an error in the command `temacs -batch -l
  172. loadup dump', found in `./src/Makefile.in', or possibly when
  173. running the final dumped Emacs. (This should not be an issue
  174. on any recent system.)
  175. Building Emacs requires about 230 MB of disk space (including the
  176. Emacs sources). Once installed, Emacs occupies about 120 MB in the file
  177. system where it is installed; this includes the executable files, Lisp
  178. libraries, miscellaneous data files, and on-line documentation. If
  179. the building and installation take place in different directories,
  180. then the installation procedure momentarily requires 230+120 MB.
  181. 2) In the unlikely event that `configure' does not detect your system
  182. type correctly, consult `./etc/MACHINES' to see what --host, --build
  183. options you should pass to `configure'. That file also offers hints
  184. for getting around some possible installation problems.
  185. 3) You can build Emacs in the top-level Emacs source directory
  186. or in a separate directory.
  187. 3a) To build in the top-level Emacs source directory, go to that
  188. directory and run the program `configure' as follows:
  189. ./configure [--OPTION[=VALUE]] ...
  190. If `configure' cannot determine your system type, try again
  191. specifying the proper --build, --host options explicitly.
  192. If you don't want X support, specify `--with-x=no'. If you omit this
  193. option, `configure' will try to figure out for itself whether your
  194. system has X, and arrange to use it if present.
  195. The `--x-includes=DIR' and `--x-libraries=DIR' options tell the build
  196. process where the compiler should look for the include files and
  197. object libraries used with the X Window System. Normally, `configure'
  198. is able to find them; these options are necessary if you have your X
  199. Window System files installed in unusual places. These options also
  200. accept a list of directories, separated with colons.
  201. To get more attractive menus, you can specify an X toolkit when you
  202. configure Emacs; use the option `--with-x-toolkit=TOOLKIT', where
  203. TOOLKIT is `gtk' (the default), `athena', or `motif' (`yes' and
  204. `lucid' are synonyms for `athena'). On some systems, it does not work
  205. to use a toolkit with shared libraries. A free implementation of
  206. Motif, called LessTif, is available from <http://www.lesstif.org>.
  207. Compiling with LessTif or Motif causes a standard File Selection
  208. Dialog to pop up when you invoke file commands with the mouse. You
  209. can get fancy 3D-style scroll bars, even without Gtk or LessTif/Motif,
  210. if you have the Xaw3d library installed (see "Image support libraries"
  211. above for Xaw3d availability).
  212. You can tell configure where to search for GTK by specifying
  213. `--with-pkg-config-prog=PATH' where PATH is the pathname to
  214. pkg-config. Note that GTK version 2.6 or newer is required for Emacs.
  215. The Emacs mail reader RMAIL is configured to be able to read mail from
  216. a POP3 server by default. Versions of the POP protocol older than
  217. POP3 are not supported. For Kerberos-authenticated POP add
  218. `--with-kerberos', for Hesiod support add `--with-hesiod'. While POP3
  219. is always enabled, whether Emacs actually uses POP is controlled by
  220. individual users--see the Rmail chapter of the Emacs manual.
  221. For image support you may have to download, build, and install the
  222. appropriate image support libraries for image types other than XBM and
  223. PBM, see the list of URLs in "ADDITIONAL DISTRIBUTION FILES" above.
  224. (Note that PNG support requires libz in addition to libpng.)
  225. To disable individual types of image support in Emacs for some reason,
  226. even though configure finds the libraries, you can configure with one
  227. or more of these options:
  228. --without-xpm for XPM image support
  229. --without-jpeg for JPEG image support
  230. --without-tiff for TIFF image support
  231. --without-gif for GIF image support
  232. --without-png for PNG image support
  233. Use --without-toolkit-scroll-bars to disable LessTif/Motif or Xaw3d
  234. scroll bars.
  235. Use --without-xim to inhibit the default use of X Input Methods.
  236. In this case, the X resource useXIM can be used to turn on use of XIM.
  237. Use --disable-largefile to omit support for files larger than 2GB on
  238. systems which support that.
  239. Use --without-sound to disable sound support.
  240. Use --with-wide-int to implement Emacs values with the type 'long long',
  241. even on hosts where a narrower type would do. With this option, on a
  242. typical 32-bit host, Emacs integers have 62 bits instead of 30.
  243. The `--prefix=PREFIXDIR' option specifies where the installation process
  244. should put emacs and its data files. This defaults to `/usr/local'.
  245. - Emacs (and the other utilities users run) go in PREFIXDIR/bin
  246. (unless the `--exec-prefix' option says otherwise).
  247. - The architecture-independent files go in PREFIXDIR/share/emacs/VERSION
  248. (where VERSION is the version number of Emacs, like `23.2').
  249. - The architecture-dependent files go in
  250. PREFIXDIR/libexec/emacs/VERSION/CONFIGURATION
  251. (where CONFIGURATION is the configuration name, like
  252. i686-pc-linux-gnu), unless the `--exec-prefix' option says otherwise.
  253. The `--exec-prefix=EXECDIR' option allows you to specify a separate
  254. portion of the directory tree for installing architecture-specific
  255. files, like executables and utility programs. If specified,
  256. - Emacs (and the other utilities users run) go in EXECDIR/bin, and
  257. - The architecture-dependent files go in
  258. EXECDIR/libexec/emacs/VERSION/CONFIGURATION.
  259. EXECDIR/bin should be a directory that is normally in users' PATHs.
  260. For example, the command
  261. ./configure --build=i386-linux-gnu --without-sound
  262. configures Emacs to build for a 32-bit GNU/Linux distribution,
  263. without sound support.
  264. `configure' doesn't do any compilation or installation itself.
  265. It just creates the files that influence those things:
  266. `./Makefile' in the top-level directory and several subdirectories;
  267. and `./src/config.h'. For details on exactly what it does, see the
  268. section called `CONFIGURATION BY HAND', below.
  269. When it is done, `configure' prints a description of what it did and
  270. creates a shell script `config.status' which, when run, recreates the
  271. same configuration. If `configure' exits with an error after
  272. disturbing the status quo, it removes `config.status'. `configure'
  273. also creates a file `config.cache' that saves the results of its tests
  274. to make reconfiguring faster, and a file `config.log' containing compiler
  275. output (useful mainly for debugging `configure'). You can give
  276. `configure' the option `--cache-file=FILE' to use the results of the
  277. tests in FILE instead of `config.cache'. Set FILE to `/dev/null' to
  278. disable caching, for debugging `configure'.
  279. If the description of the system configuration printed by `configure'
  280. is not right, or if it claims some of the features or libraries are not
  281. available when you know they are, look at the `config.log' file for
  282. the trace of the failed tests performed by `configure' to check
  283. whether these features are supported. Typically, some test fails
  284. because the compiler cannot find some function in the system
  285. libraries, or some macro-processor definition in the system headers.
  286. Some tests might fail because the compiler should look in special
  287. directories for some header files, or link against optional
  288. libraries, or use special compilation options. You can force
  289. `configure' and the build process which follows it to do that by
  290. setting the variables CPPFLAGS, CFLAGS, LDFLAGS, LIBS, CPP and CC
  291. before running `configure'. CPP is the command which invokes the
  292. preprocessor, CPPFLAGS lists the options passed to it, CFLAGS are
  293. compilation options, LDFLAGS are options used when linking, LIBS are
  294. libraries to link against, and CC is the command which invokes the
  295. compiler. By default, gcc is used if available.
  296. Here's an example of a `configure' invocation, assuming a Bourne-like
  297. shell such as Bash, which uses these variables:
  298. CPPFLAGS='-I/foo/myinclude' LDFLAGS='-L/bar/mylib' \
  299. CFLAGS='-O3' LIBS='-lfoo -lbar' ./configure
  300. (this is all one long line). This tells `configure' to instruct the
  301. preprocessor to look in the `/foo/myinclude' directory for header
  302. files (in addition to the standard directories), instruct the linker
  303. to look in `/bar/mylib' for libraries, pass the -O3 optimization
  304. switch to the compiler, and link against libfoo and libbar
  305. libraries in addition to the standard ones.
  306. For some libraries, like Gtk+, fontconfig and ALSA, `configure' uses
  307. pkg-config to find where those libraries are installed.
  308. If you want pkg-config to look in special directories, you have to set
  309. the environment variable PKG_CONFIG_PATH to point to the directories
  310. where the .pc-files for those libraries are.
  311. For example:
  312. PKG_CONFIG_PATH='/usr/local/alsa/lib/pkgconfig:/opt/gtk+-2.8/lib/pkgconfig' \
  313. ./configure
  314. The work of `configure' can be done by editing various files in the
  315. distribution, but using `configure' is easier. See the section called
  316. "CONFIGURATION BY HAND" below if you want to do the configuration
  317. yourself.
  318. 3b) To build in a separate directory, go to that directory
  319. and run the program `configure' as follows:
  320. SOURCE-DIR/configure CONFIGURATION-NAME [--OPTION[=VALUE]] ...
  321. SOURCE-DIR refers to the top-level Emacs source directory which is
  322. where Emacs's configure script is located. `configure' looks for the
  323. Emacs source code in the directory that `configure' is in.
  324. To build in a separate directory, you must use a version of `make'
  325. that supports the `VPATH' variable, such as GNU `make'.
  326. (Do not try to build in a separate directory by creating many links
  327. to the real source directory--there is no need, and installation will
  328. fail.)
  329. 4) Look at `./lisp/paths.el'; if some of those values are not right
  330. for your system, set up the file `./lisp/site-init.el' with Emacs
  331. Lisp code to override them; it is not a good idea to edit paths.el
  332. itself. YOU MUST USE THE LISP FUNCTION `setq' TO ASSIGN VALUES,
  333. rather than `defvar', as used by `./lisp/paths.el'. For example,
  334. (setq news-inews-program "/usr/bin/inews")
  335. is how you would override the default value of the variable
  336. news-inews-program.
  337. Before you override a variable this way, *look at the value* that the
  338. variable gets by default! Make sure you know what kind of value the
  339. variable should have. If you don't pay attention to what you are
  340. doing, you'll make a mistake.
  341. 5) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs
  342. Lisp code you want Emacs to load before it is dumped out. Use
  343. site-load.el for additional libraries if you arrange for their
  344. documentation strings to be in the etc/DOC file (see
  345. src/Makefile.in if you wish to figure out how to do that). For all
  346. else, use site-init.el. Do not load byte-compiled code which
  347. was built with a non-nil value of `byte-compile-dynamic'.
  348. If you set load-path to a different value in site-init.el or
  349. site-load.el, Emacs will use *precisely* that value when it starts up
  350. again. If you do this, you are on your own!
  351. The `site-*.el' files are nonexistent in the distribution. You do not
  352. need to create them if you have nothing to put in them.
  353. 6) Refer to the file `./etc/TERMS' for information on fields you may
  354. wish to add to various termcap entries. (This is unlikely to be necessary.)
  355. 7) Run `make' in the top directory of the Emacs distribution to finish
  356. building Emacs in the standard way. The final executable file is
  357. named `src/emacs'. You can execute this file "in place" without
  358. copying it, if you wish; then it automatically uses the sibling
  359. directories ../lisp, ../lib-src, ../info.
  360. Or you can "install" the executable and the other files into their
  361. installed locations, with `make install'. By default, Emacs's files
  362. are installed in the following directories:
  363. `/usr/local/bin' holds the executable programs users normally run -
  364. `emacs', `etags', `ctags', `emacsclient',
  365. `grep-changelog', and `rcs-checkin'.
  366. `/usr/local/share/emacs/VERSION/lisp' holds the Emacs Lisp library;
  367. `VERSION' stands for the number of the Emacs version
  368. you are installing, like `23.1' or `23.2'. Since the
  369. Lisp library changes from one version of Emacs to
  370. another, including the version number in the path
  371. allows you to have several versions of Emacs installed
  372. at the same time; in particular, you don't have to
  373. make Emacs unavailable while installing a new version.
  374. `/usr/local/share/emacs/VERSION/etc' holds the Emacs tutorial, the DOC
  375. file, and other architecture-independent files Emacs
  376. might need while running.
  377. `/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME' contains executable
  378. programs used by Emacs that users are not expected to
  379. run themselves.
  380. `VERSION' is the number of the Emacs version you are
  381. installing, and `CONFIGURATION-NAME' is the value
  382. deduced by the `configure' program to identify the
  383. architecture and operating system of your machine,
  384. like `i686-pc-linux-gnu' or `sparc-sun-sunos'. Since
  385. these files are specific to the version of Emacs,
  386. operating system, and architecture in use, including
  387. the configuration name in the path allows you to have
  388. several versions of Emacs for any mix of machines and
  389. operating systems installed at the same time; this is
  390. useful for sites at which different kinds of machines
  391. share the file system Emacs is installed on.
  392. `/usr/local/share/info' holds the on-line documentation for Emacs,
  393. known as "info files". Many other GNU programs are
  394. documented using info files as well, so this directory
  395. stands apart from the other, Emacs-specific directories.
  396. `/usr/local/share/man/man1' holds the man pages for the programs installed
  397. in `/usr/local/bin'.
  398. Any version of Emacs, whether installed or not, also looks for Lisp
  399. files in these directories.
  400. `/usr/local/share/emacs/VERSION/site-lisp' holds the local Emacs Lisp
  401. files installed for Emacs version VERSION only.
  402. `/usr/local/share/emacs/site-lisp' holds the local Emacs Lisp
  403. files installed for all Emacs versions.
  404. When Emacs is installed, it searches for its Lisp files
  405. in `/usr/local/share/emacs/VERSION/site-lisp', then in
  406. `/usr/local/share/emacs/site-lisp', and finally in
  407. `/usr/local/share/emacs/VERSION/lisp'.
  408. If these directories are not what you want, you can specify where to
  409. install Emacs's libraries and data files or where Emacs should search
  410. for its Lisp files by giving values for `make' variables as part of
  411. the command. See the section below called `MAKE VARIABLES' for more
  412. information on this.
  413. 8) Check the file `dir' in your site's info directory (usually
  414. /usr/local/share/info) to make sure that it has a menu entry for the
  415. Emacs info files.
  416. 9) If your system uses lock files to interlock access to mailer inbox files,
  417. then you might need to make the movemail program setuid or setgid
  418. to enable it to write the lock files. We believe this is safe.
  419. 10) You are done! You can remove executables and object files from
  420. the build directory by typing `make clean'. To also remove the files
  421. that `configure' created (so you can compile Emacs for a different
  422. configuration), type `make distclean'. If you don't need some, or all
  423. of the input methods from the Leim package, you can remove the
  424. unneeded files in the leim subdirectories of your site's lisp
  425. directory (usually /usr/local/share/emacs/VERSION/).
  426. MAKE VARIABLES
  427. You can change where the build process installs Emacs and its data
  428. files by specifying values for `make' variables as part of the `make'
  429. command line. For example, if you type
  430. make install bindir=/usr/local/gnubin
  431. the `bindir=/usr/local/gnubin' argument indicates that the Emacs
  432. executable files should go in `/usr/local/gnubin', not
  433. `/usr/local/bin'.
  434. Here is a complete list of the variables you may want to set.
  435. `bindir' indicates where to put executable programs that users can
  436. run. This defaults to /usr/local/bin.
  437. `datadir' indicates where to put the architecture-independent
  438. read-only data files that Emacs refers to while it runs; it
  439. defaults to /usr/local/share. We create the following
  440. subdirectories under `datadir':
  441. - `emacs/VERSION/lisp', containing the Emacs Lisp library, and
  442. - `emacs/VERSION/etc', containing the tutorials, DOC file, etc.
  443. `VERSION' is the number of the Emacs version you are installing,
  444. like `23.1' or `23.2'. Since these files vary from one version
  445. of Emacs to another, including the version number in the path
  446. allows you to have several versions of Emacs installed at the
  447. same time; this means that you don't have to make Emacs
  448. unavailable while installing a new version.
  449. `libexecdir' indicates where to put architecture-specific data files that
  450. Emacs refers to as it runs; it defaults to `/usr/local/libexec'.
  451. We create the following subdirectories under `libexecdir':
  452. - `emacs/VERSION/CONFIGURATION-NAME', containing executable
  453. programs used by Emacs that users are not expected to run
  454. themselves.
  455. `VERSION' is the number of the Emacs version you are installing,
  456. and `CONFIGURATION-NAME' is the value deduced by the
  457. `configure' program to identify the architecture and operating
  458. system of your machine, like `i686-pc-linux-gnu' or `sparc-sun-sunos'.
  459. Since these files are specific to the version of Emacs,
  460. operating system, and architecture in use, including the
  461. configuration name in the path allows you to have several
  462. versions of Emacs for any mix of machines and operating
  463. systems installed at the same time; this is useful for sites
  464. at which different kinds of machines share the file system
  465. Emacs is installed on.
  466. `infodir' indicates where to put the info files distributed with
  467. Emacs; it defaults to `/usr/local/share/info'.
  468. `mandir' indicates where to put the man pages for Emacs and its
  469. utilities (like `etags'); it defaults to
  470. `/usr/local/share/man/man1'.
  471. `prefix' doesn't give a path for any specific part of Emacs; instead,
  472. its value is used to determine the defaults for all the
  473. architecture-independent path variables - `datadir',
  474. `sharedstatedir', `infodir', and `mandir'. Its default value is
  475. `/usr/local'; the other variables add on `lib' or `man' to it
  476. by default.
  477. For example, suppose your site generally places GNU software
  478. under `/usr/users/software/gnusoft' instead of `/usr/local'.
  479. By including
  480. `prefix=/usr/users/software/gnusoft'
  481. in the arguments to `make', you can instruct the build process
  482. to place all of the Emacs data files in the appropriate
  483. directories under that path.
  484. `exec_prefix' serves the same purpose as `prefix', but instead
  485. determines the default values for the architecture-dependent
  486. path variables - `bindir' and `libexecdir'.
  487. The above variables serve analogous purposes in the makefiles for all
  488. GNU software; the following variable is specific to Emacs.
  489. `archlibdir' indicates where Emacs installs and expects the executable
  490. files and other architecture-dependent data it uses while
  491. running. Its default value, based on `libexecdir' (which
  492. see), is `/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME'
  493. (where VERSION and CONFIGURATION-NAME are as described above).
  494. Remember that you must specify any variable values you need each time
  495. you run `make' in the top directory. If you run `make' once to build
  496. emacs, test it, and then run `make' again to install the files, you
  497. must provide the same variable settings each time. To make the
  498. settings persist, you can edit them into the `Makefile' in the top
  499. directory, but be aware that running the `configure' program erases
  500. `Makefile' and rebuilds it from `Makefile.in'.
  501. The path for finding Lisp files is specified in src/epaths.h,
  502. a file which is generated by running configure. To change the path,
  503. you can edit the definition of PATH_LOADSEARCH in that file
  504. before you run `make'.
  505. The top-level Makefile stores the variable settings it used in the
  506. Makefiles for the subdirectories, so you don't have to specify them
  507. when running make in the subdirectories.
  508. CONFIGURATION BY HAND
  509. This should not be necessary and is not recommended. Instead of
  510. running the `configure' program, you have to perform the following steps.
  511. 1) Copy `./src/config.in' to `./src/config.h'.
  512. 2) Consult `./etc/MACHINES' to see what configuration name you should
  513. use for your system. Look at the code of the `configure' script to
  514. see which operating system and architecture description files from
  515. `src/s' and `src/m' should be used for that configuration name. Edit
  516. `src/config.h', and change the two `#include' directives to include
  517. the appropriate system and architecture description files.
  518. 2) Edit `./src/config.h' to set the right options for your system. If
  519. you need to override any of the definitions in the s/*.h and m/*.h
  520. files for your system and machine, do so by editing config.h, not by
  521. changing the s/*.h and m/*.h files.
  522. 3) Create `Makefile' files in various directories from the
  523. corresponding `Makefile.in' files. This isn't so hard, just a matter
  524. of editing in appropriate substitutions for the @...@ constructs.
  525. The `configure' script is built from `configure.in' by the `autoconf'
  526. program. You need at least the version of autoconf specified in the
  527. AC_PREREQ(...) command to rebuild `configure' from `configure.in'.
  528. BUILDING GNU EMACS BY HAND
  529. Once Emacs is configured, running `make' in the top directory performs
  530. the following steps.
  531. 1) Run `make epaths-force' in the top directory. This produces
  532. `./src/epaths.h' from the template file `./src/epaths.in', changing
  533. the paths to the values specified in `./Makefile'.
  534. 2) Go to directory `./lib' and run `make'. This creates include files
  535. and libraries used in later steps.
  536. 3) Go to directory `./lib-src' and run `make'. This creates
  537. executables named `etags', `make-docfile', and others.
  538. 4) Go to directory `./src' and run `make'. This refers to files in
  539. the `./lisp', `./lib', and `./lib-src' subdirectories using names
  540. `../lisp', `../lib', and `../lib-src'.
  541. This creates a file `./src/emacs' which is the runnable Emacs,
  542. which has another name that contains a version number.
  543. Each time you do this, that version number increments in the last place.
  544. It also creates a file in `./etc' whose name is `DOC' followed by the
  545. current Emacs version. This file contains documentation strings for
  546. all the functions in Emacs. Each time you run make to make a new
  547. emacs, a new DOC file with a new name is made. You must keep the DOC
  548. file for an Emacs version as long as you keep using that Emacs version.
  549. INSTALLATION BY HAND
  550. The steps below are done by running `make install' in the main
  551. directory of the Emacs distribution.
  552. 1) Copy `./lisp' and its subdirectories, `./etc', and the executables
  553. in `./lib-src' to their final destinations, as selected in `./src/epaths.h'.
  554. Strictly speaking, not all of the executables in `./lib-src' need be copied.
  555. - The programs `hexl', `movemail', `profile', `rcs2log', and `vcdiff'
  556. are used by Emacs; they do need to be copied.
  557. - The programs `etags', `ctags', `emacsclient', and `rcs-checkin'
  558. are intended to be run by users; they are handled below.
  559. - The programs `make-docfile' and `test-distrib' were
  560. used in building Emacs, and are not needed any more.
  561. 2) Copy the files in `./info' to the place specified in
  562. `./lisp/site-init.el' or `./lisp/paths.el'. Note that if the
  563. destination directory already contains a file named `dir', you
  564. probably don't want to replace it with the `dir' file in the Emacs
  565. distribution. Instead, you should make sure that the existing `dir'
  566. file contains an appropriate menu entry for the Emacs info.
  567. 3) Copy `./src/emacs' to `/usr/local/bin', or to some other directory
  568. in users' search paths. `./src/emacs' has an alternate name
  569. `./src/emacs-EMACSVERSION'; you may wish to make a symbolic link named
  570. `/usr/local/bin/emacs' pointing to that alternate name, as an easy way
  571. of installing different versions.
  572. You can delete `./src/temacs'.
  573. 4) Copy the programs `emacsclient', `ctags', `etags', and `rcs-checkin'
  574. from `./lib-src' to `/usr/local/bin'. These programs are intended for
  575. users to run.
  576. 5) Copy the man pages in `./doc/man' into the appropriate man directory.
  577. 6) The files in the `./src' subdirectory, except for `emacs', are not
  578. used by Emacs once it is built. However, it is very desirable to keep
  579. the source on line for debugging.
  580. PROBLEMS
  581. See the file `./etc/PROBLEMS' for a list of various problems sometimes
  582. encountered, and what to do about them.
  583. This file is part of GNU Emacs.
  584. GNU Emacs is free software: you can redistribute it and/or modify
  585. it under the terms of the GNU General Public License as published by
  586. the Free Software Foundation, either version 3 of the License, or
  587. (at your option) any later version.
  588. GNU Emacs is distributed in the hope that it will be useful,
  589. but WITHOUT ANY WARRANTY; without even the implied warranty of
  590. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  591. GNU General Public License for more details.
  592. You should have received a copy of the GNU General Public License
  593. along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.