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

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

Autoconf

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


Использование autoheader для создания `config.h.in’

@anchor{Invoking autoheader}

Программа autoheader может создать шаблон файла, содержащего директивы `#define’, для использования с configure. Если `configure.in’ использует AC_CONFIG_HEADER(file), то autoheader создает `file.in’; если в качестве аргумента задано несколько имен файлов, то используется только первое имя. В противном случае autoheader создаст файл `config.h.in’.

Если вы зададите аргумент программе autoheader, то она будет считывать данные из этого файла, а не из файла `configure.in’ и будет выводить данные в поток стандартного вывода вместо `config.h.in’. Если вы зададите autoheader аргумент `-’, то программа будет считывать данные со стандартного ввода вместо `configure.in’ и выдавать результаты на стандартный вывод.

autoheader сканирует файл `configure.in’ и определяет, какие символы препроцессора C могут быть определены в нем. Программа копирует комментарии и директивы #define и #undef из файла с именем `acconfig.h’, который поставляется вместе с Autoconf. Программа также использует файл с именем `acconfig.h’ из текущего каталога, если он присутствует. Если вы определите с помощью макроса AC_DEFINE дополнительные символы, то вы должны создать этот файл с записями для них. Для символов, определенных макросами AC_CHECK_HEADERS, AC_CHECK_FUNCS, AC_CHECK_SIZEOF или AC_CHECK_LIB, программа autoheader сама создает комментарии и директивы #undef, а не копирует их из файла, поскольку количество возможных символов фактически бесконечно.

Файл, который создается autoheader, содержит в основном директивы #define и #undef и комментарии к ним. Если `./acconfig.h’ содержит строку `@TOP@’, то autoheader копирует строки, которые находятся выше строки `@TOP@’, прямо в заголовок создаваемого файла. Аналогично, если `./acconfig.h’ содержит строку `@BOTTOM@’, то autoheader скопирует строки, расположенные сразу после этой строки, в конец создаваемого файла. Можно не использовать как `@TOP@’, так и `@BOTTOM@’.

Другой способ добиться точно такого же результата – создать в текущем каталоге файлы `file.top’ (обычно `config.h.top’) и/или `file.bot’. Если эти файлы существуют, то autoheader копирует их содержимое в начало и в конец выводимых данных. Их использование не рекомендуется, поскольку имена этих файлов содержат две точки и не могут применяться в MS-DOS; также это увеличивает содержимое каталога еще на два файла. Но если вы воспользуетесь ключом `–localdir=dir для использования `acconfig.h’ находящегося в другом каталоге, то эти файлы позволят вам вставлять произвольные куски кода в каждый конкретный файл `config.h.in’.

autoheader распознает следующие ключи командной строки:

–help
-h
Выдает список ключей командной строки и прекращает работу.
–localdir=dir
-l dir
Искать файлы `aclocal.m4’ и `acconfig.h’ (но не файлы `file.top’ и `file.bot’) в каталоге dir вместо текущего каталога.
–macrodir=dir
-m dir
Искать инсталлированные файлы макросов и `acconfig.h’ в каталоге dir. Вы можете также установить переменную среды AC_MACRODIR, указывающую на этот каталог; этот ключ переопределяет значение переменной среды.
–version
Выдает номер версии Autoconf и прекращает работу.


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

Comments