Fix c-ts-common--fill-paragraph for C
[emacs.git] / INSTALL.REPO
blob77d8153a5a8841be9ddc329e951361e0f18e9ab6
1              Building and Installing Emacs from the Repository
3 The Emacs repository is hosted on Savannah.  The following Git command
4 will clone the repository to the 'emacs' subdirectory of the current
5 directory on your local machine:
7     git clone https://git.savannah.gnu.org/git/emacs.git
9 To build the repository code, simply run 'make' in the 'emacs'
10 directory.  This should work if your files are freshly checked out
11 from the repository, and if you have the proper tools installed; the
12 default configuration options will be used.  Other configuration
13 options can be specified by setting a 'configure' variable, for
14 example:
16   $ make configure="--prefix=/opt/emacs CFLAGS='-O0 -g3'"
18 If the above doesn't work, or if you have special build requirements,
19 the following information may be helpful.
21 Building Emacs from the source-code repository requires some tools
22 that are not needed when building from a release.  You will need:
24 autoconf  - at least the version specified near the start of
25   configure.ac (in the AC_PREREQ command).
26 git - at least Git 1.7.1.  If your repository was created by an older
27   Git version, you may need to reclone it.
28 makeinfo  - not strictly necessary, but highly recommended, so that
29   you can build the manuals.  GNU Texinfo 4.13 or later should work.
31 To use the autotools, run the following shell command to generate the
32 'configure' script and some related files, and to set up your git
33 configuration:
35   $ ./autogen.sh
37 You can then configure your build as follows:
39   $ ./configure
41 The 'configure' script has many options; run './configure --help' to
42 see them.  For example, if you want later builds to go faster, albeit
43 sometimes doing the wrong thing if you update the build procedure, you
44 can invoke './configure -C'.  After configuring, build Emacs as follows:
46   $ make
48 You can also type 'make check' to test and 'make install' to install
49 Emacs.
51 Occasionally the file 'lisp/loaddefs.el' (and similar automatically
52 generated files, such as 'esh-groups.el', and '*-loaddefs.el' in some
53 subdirectories of 'lisp/', e.g., 'mh-e/' and 'calendar/') will need to be
54 updated to reflect new autoloaded functions.  If you see errors (rather
55 than warnings) about undefined lisp functions during compilation, that
56 may be the reason.  Finally, sometimes there can be build failures
57 related to '*loaddefs.el' (e.g., "required feature ‘esh-groups’ was not
58 provided").  In that case, follow the instructions below.
60 To update loaddefs.el (and similar files), do:
62   $ cd lisp
63   $ make autoloads
65 If either of the above partial procedures fails, try 'make bootstrap'.
66 If CPU time is not an issue, 'make bootstrap' is a more thorough way
67 to rebuild, avoiding spurious problems.  'make bootstrap' rebuilds
68 Emacs with the same configuration options as the previous build; it
69 can also be used to rebuild Emacs with other configuration options by
70 setting a 'configure' variable, for example:
72   $ make bootstrap configure="CFLAGS='-O0 -g3'"
74 To rebuild Emacs with the default configuration options, you can use:
76   $ make bootstrap configure=default
78 Occasionally, there are changes that 'make bootstrap' won't be able to
79 handle.  The most thorough cleaning can be achieved by 'git clean -fdx'
80 which will leave you with only files from the git repository.  Here
81 are some faster methods for a couple of particular error cases:
83     /usr/bin/m4:aclocal.m4:9: cannot open `m4/count-leading-zeros.m4': No such file or directory
85 This can be fixed with 'rm aclocal.m4'.
87     make: *** No rule to make target 'lib/Makefile.am', needed by 'lib/Makefile.in'
89 This can be fixed with 'rm lib/Makefile Makefile'.
91 Because the repository version of Emacs is a work in progress, it will
92 sometimes fail to build.  Please wait a day or so (and check the
93 archives of the emacs-buildstatus, emacs-devel, and bug-gnu-emacs
94 mailing lists) before reporting such problems.  In most cases, the
95 problem is known about and is just waiting for someone to fix it.
96 This is especially true for Lisp compilation errors, which are almost
97 never platform-specific.
101 Copyright (C) 2002-2024 Free Software Foundation, Inc.
103 This file is part of GNU Emacs.
105 GNU Emacs is free software: you can redistribute it and/or modify
106 it under the terms of the GNU General Public License as published by
107 the Free Software Foundation, either version 3 of the License, or
108 (at your option) any later version.
110 GNU Emacs is distributed in the hope that it will be useful,
111 but WITHOUT ANY WARRANTY; without even the implied warranty of
112 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
113 GNU General Public License for more details.
115 You should have received a copy of the GNU General Public License
116 along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.