Хотя структура вашего репозитория и файла модулей будут взаимодействовать с системой сборки (т.е. `Makefile'), они независимы друг от друга.
CVS не указывает, как собирать что-то. Она просто хранит файлы для получения нужной вам структуры дерева.
CVS не указывает, как использовать дисковое пространство в полученных рабочих каталогах. Если вы напишете `Makefile' или скрипты в каждом каталоге так, что они должны знать относительное положение чего-то еще, то, возможно, что придется обновлять весь репозиторий.
Если вы постараетесь задать модульную структуру для проекта и создадите систему сборки, которая будет совместно использовать файлы ( посредством ссылок, монтирования, VPATH в `Makefile' и т. д.), то сможете использовать дисковое пространство, как захотите. Но вам надо помнить, что любая подобная система требует серьезной работы по ее созданию и поддержанию. CVS не предназначена для решения возникающих при этом проблем.
Разумеется, вам нужно поместить в CVS средства, созданные для поддержки подобной системы сборки (скрипты, `Makefile' и т. д.).
Вычисление того, какие файлы нуждаются в перекомпилировании
когда что-то меняется, так же не входит в задачи CVS. Одним из
традиционных подходов является использование make для сборки и
использование каких-либо специальных средств для создания зависимостей,
используемых make
.