## 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 will invoke 'abld build' on their project, not knowing that their makefiles will be 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 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 following dialog when you initiate a build from the IDE.

Figure 1 -Dependency Tracking dialog

If you plan to continue building in Carbide it is recommended you choose the option to Improve Carbide build times. However, be cautious of this as Carbide will remove all the object code and build everything from scratch. If you do choose the option Do not update dependencies, then Carbide will disable the option to manage dependencies under the Carbide Project Settings, SBSv1 tab.

##### Related references

- Carbide Project Settings
- Carbide Global Build Settings