Organizing Projects in Directories
SDK projects can be created either inside a workspace, or in any other folder on the hard disk. Due to the various inter dependencies (application projects depend on BSPs and hardware projects, and BSPs depend on the hardware projects), SDK generated tool invocations have to point to files in their dependent projects. To make builds reproducible, it is highly advantageous if there are no absolute paths used in any SDK saved settings.
In order to get SDK to use relative paths, put all the dependent projects in a single folder. As long as the hardware, BSP and application projects are in the same folder, all the SDK generated command line invocations of various tools will use relative paths.
If software repositories are used to store drivers and libraries that are processed by SDK, then these repositories should also be placed in the same folder as the BSP project (which is the same folder as the application and hardware projects). If such a directory structure is maintained, SDK uses a relative path to access these software repositories.
The use of Eclipse variables (like ${WORKSPACE}), can lead to the use of absolute paths. So the use of such variables should be considered on a case by case basis.