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