Running the default procedure:
If you're in a checkout of the Emacs repository, as the OP title suggests, then there's a missing step there: the configure
script is generated by the autogen.sh
script, so you need to run the latter first.
If instead you're in a release tarball, then the generated configure
script is already included.
Results in building both the C source files and the Elisp source files.
Note that release tarballs already include the byte-compiled .elc
files, so they will not be recompiled by running make
.
What command (or target) do I have to pass to make
in order for me to build JUST the C source files?
The Emacs sources are organised such that many subdirectories have their own makefile, and most of the C sources are under the src
subdirectory.
So I think the easiest way to build (mostly) just the C sources is via make -C src temacs
. This builds a bare Emacs executable called temacs
that lacks any of the usually preloaded Elisp libraries like lisp/subr.el
or lisp/simple.el
. Actually, this target will also generate some charset files, but at least it won't byte-compile Elisp.
Alternatively, make -C src
will additionally byte-compile the necessary preloaded Elisp libraries, and dump a functional emacs
executable. This avoids byte-compiling most auxiliary Elisp packages, such as Gnus or Org.
Note that there are also some auxiliary C sources under lib-src
, such as those for emacsclient
. Run make -C lib-src
or similar to build those.
See (info "(elisp) Building Emacs")
for more details on how Emacs is bootstrapped.