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