@anchor{Configuration Headers}
Когда пакет производит тестирование большого количества символов
препроцессора C, то командная строка ключей `-D', передаваемых
компилятору, может получиться достаточно длинной. Это вызывает две
проблемы. Первая заключается в том, что вывод результатов команды
make будет тяжело читать в поисках ошибок. Вторая и более
серьезная заключается в том, что длина командной строки может
превысить предельную длину командной строки в некоторых операционных
системах. В качестве альтернативы передаче компилятору ключей `-D',
скрипты configure могут создавать заголовочные файлы C, которые
содержат директивы `#define'. Макрос AC_CONFIG_HEADER
выбирает этот способ выдачи результатов. Макрос должен быть вызван сразу
после вызова AC_INIT.
Пакет должен подключить с помощью #include заголовочный файл
настройки до подключения остальных заголовочных файлов, чтобы избежать
несовместимости в объявлениях (например, если этот файл переопределяет
const). Используйте директиву `#include <config.h>' вместо
`#include "config.h"', и передайте компилятору C
ключ `-I.' (или `-I..', смотря где находится
файл `config.h'). Таким образом, даже если сам каталог с исходными
текстами сконфигурирован (например, для создания дистрибутива), то
другие сборочные каталоги можно будет сконфигурировать, не используя при
этом файл `config.h' и каталога с исходными текстами.
AC_OUTPUT создать файлы с именами из
разделенного пробелами списка header-to-create, которые будут
содержать директивы #define препроцессора C, и заменить
`@DEFS@' в созданных файлах на `-DHAVE_CONFIG_H' вместо
значения DEFS. Обычным значением для header-to-create
является `config.h'.
Если header-to-create уже существует и его содержимое не отличается от того, что в него хотят поместить, то он остается неизмененным. Это позволяет вносить некоторые изменения в конфигурацию без ненужной перекомпиляции объектных файлов, которые зависят от данных заголовочных файлов.
Обычно входной файл называется `header-to-create.in'; однако вы можете переопределить имя входного файла, добавив к header-to-create список входных файлов, разделенный двоеточием. Примеры:
AC_CONFIG_HEADER(defines.h:defines.hin) AC_CONFIG_HEADER(defines.h:defs.pre:defines.h.in:defs.post)
Это позволяет вам сохранить имена в виде, приемлемом для использования в MS-DOS, а также для добавления стандартных кусков кода к файлам.
Go to the first, previous, next, last section, table of contents.