Directory structure

Hi,
I always have problems with the directory structure of my bigger
programs, earlier, I used absolute paths, which is of course a very bad
solution and stopped working when I started to do distributed projects
with my brother.

Now I use relative paths, but it’s still not very flexible, since it is
relative to the path when the program was started.

Also, I once restructured my files and that was really a mess.

But I thought that this should be a very common problem, so I just
wanted to ask how one should solve that correctly.