Допустим, есть некоторый программный проект. Часть функционала вынесена в отдельные разделяемые библиотеки. Они могут быть ценны по отдельности без основной программы сторонним разработчикам. Как следует всё реализовать? Например:
1) Библиотеки лежат в подкаталогах основного проекта. Они имеют собственный Makefile, который дёргает Makefile главного проекта перед сборкой. Всё это лежит в одном git-репозитории.
2) То же самое, но библиотеки являются отдельными git-репозиториями. Соответственно, пользователь для сборки должен вытянуть основной проект, а потом библиотеки в специальные подкаталоги.
3) И основной проект, и библиотека лежат в независимых каталогах на диске и репозиториях. Перед сборкой главной программы нужно собрать и установить все библиотеки.
4) Другой вариант?