Introduction

A project is equivalent to a X.Org module. Projects have different build settings and separate source repositories.

A workspace is a set of related projects. Workspaces have different settings, and a workspace can only be opened by a single instance of Eclipse at any given time.

NOTE: You don't need to create a project for every single X.Org module, and that would be overkill. The modules you are planning to actively develop and debug are perfectly sufficient, as you can still open and debug through files outside the projects.

Eclipse organizes windows in views and perspectives.

A view is a display. You can add and re-arrange existing views.

A perpective is a set of views in a given layout. You can switch perspectives. The most interesting are the C/C++ and the Debug perspective.

Xorg How-to

It is assumed you have installed the xorg development packages from your distribution, or you have built xorg from source as explained in the Building the X Window System in /opt/xorg.

Initial configuration

Start eclipse and enter the path to your workspace (it can be an inexistent directory as Eclipse creates one for you)

You'll be presented with the welcome screen. Click to go to the workbench.

Full tree setup

You can add the whole tree as a project, which is advantageous when cross-module work is done, or you are interested in module interdependecies. However, index generation can get darn slow then. Manually specifying include directories and disabling automated discovery in the project's discovery options may be helpful.

Also, eclipse prior to ganymede had the tendency to spend a few minutes on collecting the (admittedly huge) index whenever you'd type a member access operator (. or ->). Disabling Content Assist should help that.

Tips

To avoid out-of-memory errors change the last lines of eclipse.ini to

-vmargs
-Xms64m
-Xmx1024m

The autotools plugin simplifies the invocation of autoconf and automake, but it has some bugs that you should watch out for:

egit -- git integration plugin -- is still on early stages of development with very limited functionality and must be compiled from source, but it already provides a visual history viewer similar to gitk.