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

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

Automake

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


Что войдет в дистрибутив

Цель dist, создаваемая в генерируемом файле `Makefile.in’, может быть использована для создания сжатого файла tar с дистрибутивом. Имя tar-файла основывается на переменных `PACKAGE’ и `VERSION’; а точнее, он называется `package-version.tar.gz’. Вы можете использовать переменную make с именем `GZIP_ENV’ для того, чтобы управлять запуском gzip. Значением по умолчанию является строка `–best’.

В большинстве случаев файлы, необходимые для дистрибутива, автоматически находятся Automake: все файлы исходных текстов автоматически включаются в состав дистрибутива, так же как и все файлы `Makefile.am’ и `Makefile.in’. Automake также имеет встроенный список часто используемых файлов, которые автоматически включаются в состав дистрибутива, если они существуют в текущем каталоге. Этот список показывается при выполнении `automake –help’. Также автоматически включаются файлы, которые читает скрипт configure (например, файлы исходных текстов, относящиеся к файлам, указанным при запуске макроса AC_OUTPUT).

Все равно, иногда существуют файлы, которые должны входить в состав дистрибутива, но которые не смогли попасть в автоматически созданный список. Эти файлы должны быть перечислены в переменной EXTRA_DIST. Вы можете указывать в переменной EXTRA_DIST файлы из подкаталогов. Вы можете также указывать каталоги: в этом случае весь каталог будет рекурсивно скопирован в дистрибутив.

Если вы определили переменную SUBDIRS, то Automake будет рекурсивно включать подкаталоги в состав дистрибутива. Если SUBDIRS определен условно (see section Условные операторы), то Automake включит в дистрибутив все подкаталоги, которые могут появиться в SUBDIRS. Если вам необходимо указать список каталогов условно, то вы можете задать в переменной DIST_SUBDIRS точный список подкаталогов, которые необходимо включить в дистрибутив.

Время от времени полезно иметь возможность изменить дистрибутив до того, как он будет упакован. Если существует цель dist-hook, то она запускается после создания каталога с дистрибутивом, но до того, как создается файл `.tar’ (или `.shar’). Это применяется для распространения файлов из подкаталогов, в которых было бы избыточным создавать файл `Makefile.am’:

dist-hook:
        mkdir $(distdir)/random
        cp -p $(srcdir)/random/a1 $(srcdir)/random/a2 $(distdir)/random

Automake также создает цель distcheck, которая может помочь убедиться в том, что дистрибутив работает. distcheck создает дистрибутив и пытается его построить с помощью VPATH.


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

Comments