Next: Modifying your project, Previous: EDE Mode, Up: Top

## 3 Creating a project

To create a new project, first visit a file that you want to include in that project. If you have a hierarchy of directories, first visit a file in the topmost directory. From this buffer, type `M-x ede-new`, or click on the ‘`Create Project`’ item in the ‘`Development`’ menu.

The `ede-new` command prompts for the type of project you would like to create. Each project type has its own benefits or language specific enhancements. EDE supports four different project types: ‘`Make`’, ‘`Automake`’, ‘`direct Automake`’, and ‘`Simple`’.

- For the ‘`Make`’ project type, EDE creates a project file, called `Project.ede`, in each project directory. Information about the project is stored in this file. This project autogenerates a `Makefile`.
- For the ‘`Automake`’ project type, EDE creates a `Project.ede` project file similar to a ‘`Make`’ project. Unlike a ‘`Make`’ project, this project autogenerates a `Makefile.am` file. EDE handles the Automake bootstrapping routines, which import and maintain a `configure.am` script and other required files.
- For the ‘`direct Automake`’ project type, EDE reads directly from the Automake files.

  You cannot create direct Automake projects with the `ede-new` command. Instead, when you visit a project with existing Automake files, EDE automatically detects them.

- The ‘`Simple`’ project type provides light-weight constructs for identifying a project root and looking up files. If you already have a non-EDE project infrastructure, you can use a ‘`Simple`’ project to provide other Emacs packages, such as Semantic, with some information about the project. See Simple projects.

A subproject is merely a project in a subdirectory of another project. You can create a subproject by using the `ede-new` command (or the ‘`Create Project`’ menu item), while visiting a buffer in a subdirectory of the project root. This new project is automatically added to the parent project, and will be automatically loaded when EDE reads the parent project.

When using a project command that involves a makefile, EDE uses the top-most project's makefile as a starting place for the build. How the toplevel project handles subprojects in the build process is dependent on that project's type.