Как запретить автоинструментам автоматически генерировать скрипт конфигурации? - PullRequest
4 голосов
/ 01 июня 2009

Иногда из-за того, что SCM не запоминает строго временную метку файлов, сгенерированный Makefile будет думать, что ему нужно повторно запустить «autoreconf -i» или эквивалентный ему для повторной генерации Makefile.in из Makefile.am, настроить из configure. переменного тока и т. д.

Как мне предотвратить это?

Я хочу предотвратить это, потому что это вызывает следующие проблемы:

  • при создании архива dist (git archive --format = tar ...) временная метка будет неправильной, и проблема будет для конечных пользователей. Не круто.
  • На медленных системах компиляция занимает намного больше времени, потому что она больше не конфигурирует, делает, делает установку, но настраивает, autoreconf -i, настраивает, делает make install.

Я знаю, что могу «дотронуться» до сгенерированных файлов до создания дистрибутива, но, по моему мнению, это решает проблему только для тарболлов, а не для разработчиков. Это также уродливый хак, чтобы обойти ошибку, которая должна быть отключена. Кроме того, это нарушает работу git-архива, поскольку временные метки в любом случае не всегда будут правильными.

Другие SCM также имеют это, поэтому проблема не в (IMO) с git.

1 Ответ

8 голосов
/ 01 июня 2009

Вам нужно заглянуть в режим сопровождающего - это должно предотвратить шаг autoreconf, который устранит проблемы конечных пользователей.

Добавить

AM_MAINTAINER_MODE

в ваш файл configure.ac / configure.in, затем (если вы не укажете --enable-maintainer-mode) при настройке ваш Makefile не будет содержать правил перенастройки.

...