Eclipse "build automatically" is supposed to trigger a build when a resource has changed. In my Eclipse-RCP app I have a project with a custom Nature and my Builder. The builder gets invoked as expected (both with or without "build automatically"), except for one problem: when Eclipse starts with "build automatically" on, the project is not built; same if the project is closed and opened.
How does Eclipse build manager decides if a "new" project needs a build?
Are you using the IncrementalProjectBuilder?
If yes, then eclipse does not decide what gets built. It simply invokes your implementation of the build(...) method with the kind of build it is (Automatic, Full, Clean or Incremental). It is up to your builder to decide what to do, from then on, using the IDelta from the getDelta() method.
When eclipse starts, if no resources were changed while eclipse was off, then it will not trigger a build.