2015-04-28 1 views
3

Я хотел бы изменить скрипт configure.ac, чтобы при генерации скрипта configure с помощью autoconf у него будет собственное справочное сообщение.Можете ли вы переопределить сообщение справки по умолчанию, сгенерированное как часть запуска autoconf?

например:

$autoconf 
$./configure --help 

дает

"Hello World" 

Вместо умолчанию, который говорит о прекрасных каталогах установки настройки и модифицирующих флаги сборки.

Возможно ли это?

ответ

1

Посмотрите на _AC_INIT_HELP макрос в autoconf general.m4 сценарий. Он отвечает за печать справочного сообщения.

Этот скрипт вставляет текст к различным diversions, как указано в general.m4:

dnl The order of the diversions here is 
dnl - HELP_BEGIN 
dnl which may be extended by extra generic options such as with X or 
dnl AC_ARG_PROGRAM. Displayed only in long --help. 
dnl 
dnl - HELP_CANON 
dnl Support for cross compilation (--build, --host and --target). 
dnl Display only in long --help. 
dnl 
dnl - HELP_ENABLE 
dnl which starts with the trailer of the HELP_BEGIN, HELP_CANON section, 
dnl then implements the header of the non generic options. 
dnl 
dnl - HELP_WITH 
dnl 
dnl - HELP_VAR 
dnl 
dnl - HELP_VAR_END 
dnl 
dnl - HELP_END 
dnl initialized below, in which we dump the trailer (handling of the 
dnl recursion for instance). 

Самый простой способ отображения Hello World сообщение справки будет просто вставить следующий код в конце файла configure.ac:

m4_cleardivert([HELP_BEGIN])dnl 
m4_cleardivert([HELP_CANON])dnl 
m4_cleardivert([HELP_ENABLE])dnl 
m4_cleardivert([HELP_WITH])dnl 
m4_cleardivert([HELP_VAR])dnl 
m4_cleardivert([HELP_VAR_END])dnl 
m4_cleardivert([HELP_END])dnl 
m4_divert_push([HELP_BEGIN])dnl 
    cat <<_ACEOF 
Hello World 
_ACEOF 
m4_divert_pop([HELP_BEGIN])dnl 
m4_divert_push([HELP_END])dnl 
exit 0 
m4_divert_pop([HELP_END])dnl 

Он очистит все утечки и вставляет свой текст без необходимости вносить любые настраиваемые сценарии m4. exit необходим, чтобы остановить обработку. configure скрипт, когда отображается справка.


Если вы хотите, чтобы ввести дополнительные изменения в текст справки вы можете включить свой собственный сценарий m4 в начале configure.ac файла:

m4_include([custom_help.m4]) 

Копия _AC_INIT_HELP макрос к вашему custom_help.m4 сценария и изменить его в соответствии с твои нужды.

Смежные вопросы