| 1 | Building and Installing Emacs from the Repository |
| 2 | |
| 3 | Simply run 'make'. This should work if your files are freshly checked |
| 4 | out from the repository, and if you have the proper tools installed. |
| 5 | If it doesn't work, or if you have special build requirements, the |
| 6 | following information may be helpful. |
| 7 | |
| 8 | Building Emacs from the source-code repository requires some tools |
| 9 | that are not needed when building from a release. You will need: |
| 10 | |
| 11 | autoconf - at least the version specified near the start of |
| 12 | configure.ac (in the AC_PREREQ command). |
| 13 | automake - at least the version specified near the start of |
| 14 | configure.ac (in the AM_INIT_AUTOMAKE command). |
| 15 | makeinfo - not strictly necessary, but highly recommended, so that |
| 16 | you can build the manuals. |
| 17 | |
| 18 | To use the autotools, run the following shell command to generate the |
| 19 | 'configure' script and some related files: |
| 20 | |
| 21 | $ ./autogen.sh |
| 22 | |
| 23 | You can then configure your build as follows: |
| 24 | |
| 25 | $ ./configure |
| 26 | |
| 27 | The 'configure' script has many options; run './configure --help' to |
| 28 | see them. For example, if you want later builds to go faster, albeit |
| 29 | sometimes doing the wrong thing if you update the build procedure, you |
| 30 | can invoke './configure -C'. After configuring, build Emacs as follows: |
| 31 | |
| 32 | $ make |
| 33 | |
| 34 | If you want to install Emacs, type 'make install' instead of 'make' in |
| 35 | the last command. |
| 36 | |
| 37 | Occasionally the file 'lisp/loaddefs.el' (and similar automatically |
| 38 | generated files, such as 'esh-groups.el', and '*-loaddefs.el' in some |
| 39 | subdirectories of 'lisp/', e.g., 'mh-e/' and 'calendar/') will need to be |
| 40 | updated to reflect new autoloaded functions. If you see errors (rather |
| 41 | than warnings) about undefined lisp functions during compilation, that |
| 42 | may be the reason. Finally, sometimes there can be build failures |
| 43 | related to '*loaddefs.el' (e.g., "required feature `esh-groups' was not |
| 44 | provided"). In that case, follow the instructions below. |
| 45 | |
| 46 | To update loaddefs.el (and similar files), do: |
| 47 | |
| 48 | $ cd lisp |
| 49 | $ make autoloads |
| 50 | |
| 51 | If either of the above partial procedures fails, try 'make bootstrap'. |
| 52 | If CPU time is not an issue, 'make bootstrap' is the most thorough way |
| 53 | to rebuild, and avoid any spurious problems. |
| 54 | |
| 55 | Users of non-Posix systems (MS-Windows, etc.) should run the |
| 56 | platform-specific configuration scripts ('nt/configure.bat', |
| 57 | 'config.bat', etc.) before 'make'; the rest of the procedure is |
| 58 | applicable to those systems as well. |
| 59 | |
| 60 | Because the repository version of Emacs is a work in progress, it will |
| 61 | sometimes fail to build. Please wait a day or so (and check the |
| 62 | archives of the emacs-buildstatus, emacs-devel, and bug-gnu-emacs |
| 63 | mailing lists) before reporting such problems. In most cases, the |
| 64 | problem is known about and is just waiting for someone to fix it. |
| 65 | This is especially true for Lisp compilation errors, which are almost |
| 66 | never platform-specific. |
| 67 | |
| 68 | |
| 69 | \f |
| 70 | Copyright (C) 2002-2014 Free Software Foundation, Inc. |
| 71 | |
| 72 | This file is part of GNU Emacs. |
| 73 | |
| 74 | GNU Emacs is free software: you can redistribute it and/or modify |
| 75 | it under the terms of the GNU General Public License as published by |
| 76 | the Free Software Foundation, either version 3 of the License, or |
| 77 | (at your option) any later version. |
| 78 | |
| 79 | GNU Emacs is distributed in the hope that it will be useful, |
| 80 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 81 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 82 | GNU General Public License for more details. |
| 83 | |
| 84 | You should have received a copy of the GNU General Public License |
| 85 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |