Алексей Махоткин

домашняя страница

Autoconf

Go to the first, previous, next, last section, table of contents.


Автоматическая пересборка

@anchor{Automatic Remaking}

Вы можете поместить правила, упомянутые ниже, в файл `Makefile.in’ верхнего уровня пакета, для того чтобы автоматически обновлять информацию о конфигурации при изменении файлов конфигурации. Этот пример использует все дополнительные файлы, такие как `aclocal.m4’, а также то, что относятся к заголовочным файлам конфигурации. Уберите из правила для `Makefile.in’ файлы, не использующиеся в вашем пакете.

Префикс `${srcdir}/’ добавлен из-за ограничений механизма использования VPATH.

Файлы `stamp-’ являются необходимыми, поскольку время последнего изменения файлов `config.h.in’ и `config.h’ останется прежним, если пересоздание этих файлов не изменит их содержимого. Эта возможность позволяет избежать ненужной перекомпиляции. Вы должны включить файл `stamp-h.in’ в дистрибутив вашего пакета, так что make будет считать `config.h.in’ обновленным. На некоторых старых системах BSD, команда touch или любая другая, создающая файл нулевой длины, не обновляет время изменения этого файла, так что используйте для правильной работы команду echo.

${srcdir}/configure: configure.in aclocal.m4
        cd ${srcdir} && autoconf

# autoheader мог не изменить config.h.in, так что обновить дату stamp-файла.
${srcdir}/config.h.in: stamp-h.in
${srcdir}/stamp-h.in: configure.in aclocal.m4 acconfig.h \
    config.h.top config.h.bot
        cd ${srcdir} && autoheader
        echo timestamp > ${srcdir}/stamp-h.in

config.h: stamp-h
stamp-h: config.h.in config.status
        ./config.status

Makefile: Makefile.in config.status
        ./config.status

config.status: configure
        ./config.status –recheck

Вдобавок вы должны передать `echo timestamp > stamp-h’ в аргументе extra-cmds макросу AC_OUTPUT, так что `config.status’ будет гарантировать, что файл `config.h’ будет рассматриваться как обновленный. See section Создание выходных файлов, для дополнительной информации о AC_OUTPUT.

See section Воссоздание конфигурации, где описаны дополнительные примеры обработки конфигурационных зависимостей.


Go to the first, previous, next, last section, table of contents.

Comments