28.4 Emacs Development Environment

EDE (Emacs Development Environment) is a package that simplifies
the task of creating, building, and debugging large programs with
Emacs. It provides some of the features of an IDE, or Integrated
Development Environment, in Emacs.

This section provides a brief description of EDE usage.
For full details, see EDE.

EDE is implemented as a global minor mode (see Minor Modes). To
enable it, type M-x global-ede-mode or click on the
‘Project Support (EDE)’ item in the ‘Tools’ menu. You can
also enable EDE each time you start Emacs, by adding the following
line to your initialization file:

(global-ede-mode t)

Activating EDE adds a menu named ‘Development’ to the menu bar.
Many EDE commands, including the ones described below, can be invoked
from this menu.

EDE organizes files into projects, which correspond to
directory trees. The project root is the topmost directory of a
project. To define a new project, visit a file in the desired project
root and type M-x ede-new. This command prompts for a
project type, which refers to the underlying method that EDE
will use to manage the project (see EDE). The most common project types are
‘Make’, which uses Makefiles, and ‘Automake’, which uses GNU
Automake (see Automake). In both cases,
EDE also creates a file named Project.ede, which stores
information about the project.

A project may contain one or more targets. A target can be an
object file, executable program, or some other type of file, which is
built from one or more of the files in the project.

To add a new target to a project, type C-c . t
(M-x ede-new-target). This command also asks if you wish to
add the current file to that target, which means that the target
is to be built from that file. After you have defined a target, you
can add more files to it by typing C-c . a
(ede-add-file).

To build a target, type C-c . c (ede-compile-target).
To build all the targets in the project, type C-c . C
(ede-compile-project). EDE uses the file types to guess how
the target should be built.