Мой проект использует статическую библиотеку от внешнего поставщика, libext.a
.Библиотека хранится в центральном месте, совместно используемой всеми разработчиками проекта, central/
, и с каждым обновленным выпуском библиотеки добавляется новый файл с суффиксом текущей версии: central/libext.a.1
, central/libext.a.2
, central/libext.a.3
, ...
Репозиторий проекта Subversion содержит символическую ссылку libext.a
, которая указывает на последнюю версию библиотеки в central
.Всякий раз, когда добавляется новая версия, ссылка изменяется и фиксируется в хранилище.
Проблема заключается в том, что при перекомпиляции проекта после изменения ссылки и обновления рабочей копии make
смотрит на время измененияцели ссылки, а не во время модификации самой ссылки (libext.a
).Таким образом, библиотека, используемая в скомпилированном проекте, все еще является старой версией.
Мне известно о флаге -L
/ --check-symlink-times
, доступном в GNU Make начиная с версии 3.81, котораяmake
смотрит на время модификации как цели ссылки, так и самой ссылки, но мой проект использует версию 3.80, и обновление будет очень трудным, поскольку компиляция должна поддерживаться на многих разных машинах, некоторые из которых у меня нетcontrol.
Какой самый простой способ эмулировать поведение этого нового флага в моей старой версии make
?Я предпочитаю что-то, что может быть локальным для определенного Makefile и реализовано в нем, а не сценарий, который нужно запустить перед запуском make
, или параметр командной строки, который должен быть указан с ним, хотя это не является абсолютно неприемлемым.