Иногда из-за того, что SCM не запоминает строго временную метку файлов, сгенерированный Makefile будет думать, что ему нужно повторно запустить «autoreconf -i» или эквивалентный ему для повторной генерации Makefile.in из Makefile.am, настроить из configure. переменного тока и т. д.
Как мне предотвратить это?
Я хочу предотвратить это, потому что это вызывает следующие проблемы:
- при создании архива dist (git archive --format = tar ...) временная метка будет неправильной, и проблема будет для конечных пользователей. Не круто.
- На медленных системах компиляция занимает намного больше времени, потому что она больше не конфигурирует, делает, делает установку, но настраивает, autoreconf -i, настраивает, делает make install.
Я знаю, что могу «дотронуться» до сгенерированных файлов до создания дистрибутива, но, по моему мнению, это решает проблему только для тарболлов, а не для разработчиков. Это также уродливый хак, чтобы обойти ошибку, которая должна быть отключена. Кроме того, это нарушает работу git-архива, поскольку временные метки в любом случае не всегда будут правильными.
Другие SCM также имеют это, поэтому проблема не в (IMO) с git.