The following example shows the work area for the same projects shown in the previous example, except that the bar-1 subproject is relative instead of absolute.
c:\ccm_wa\ccm_tools
foo-1\
foo\
a.c
b.c
bar\
c.c
/users/joe/ccm_wa/ccm_tools
foo-1\
foo\
a.c
b.c
bar\
c.c
You can use a relative subproject as a subproject only once because it resides in the work area of the parent project and can be synchronized only to one location. If you want to use a relative project in multiple locations, you must use multiple versions of the project.
Projects on both the Windows and UNIX clients are absolute by default when they are created. If you check out a new version of a project, the new work area of the version is relative only if you check it out from a relative project. Otherwise, it is absolute.
If the makefiles in a project hierarchy reference the members of a subproject through a relative path (as if the subproject is a subdirectory), or if you are unable to use a symbolic link to a subproject directory, you must keep the project relative. If the makefiles in a project hierarchy reference the members of a subproject (as if the subproject is in an entirely unrelated directory structure), the subproject can be absolute.
You can change your makefiles to work with either absolute or relative projects, or a combination of both. Alternatively, you can set up your subprojects as either absolute or relative so that your existing makefiles can recognize the work area directory structure.