## Dependency Tracking

This section only applies to the SBSv1 (abld) build system. If you are using the Raptor (SBSv2) build system Carbide does not perform any build system modifications to optimize dependency tracking.

Carbide has made some performance improvements over command-line builds when performing incremental builds. Once a project has been built, many users invoke 'abld build' on their project, not knowing that their makefiles are regenerated each time, taking a large performance hit. Although a command-line user can invoke 'abld target' to improve incremental build performance, Carbide invokes each build stage independently for a full incremental build (including the 'abld makefile' stage). In order to get around this performance hit from the IDE, Carbide manages the source and resource dependencies in separate .d (dependency) files generated under the build system. Then Carbide makes a small modification to each component's (MMP) makefile under the \epoc32\build\ directory by including the generated .d files as dependency includes. This performance modification makes incremental builds faster from Carbide.

Normally, you do not need to know the details of dependency management unless you first build from the command-line and then try to build their project from the IDE. When this happens, Carbide will prompt you with the Project rebuild notification dialog when you initiate a build from the IDE.

Figure 1 -Dependency Tracking dialog

It is recommended you choose the Improve Carbide build times option if you plan to continue building in Carbide. However, be cautious of this as Carbide will remove all the object code and build everything from scratch.

If you choose the option Do not update dependencies, Carbide disables the option to manage dependencies under the Carbide Project Settings, SBSv1 tab.

##### Related references

- Carbide Project Settings
- Carbide Global Build Settings