gpt4 book ai didi

configure - 您可以覆盖运行 autoconf 时生成的默认配置帮助消息吗?

转载 作者:行者123 更新时间:2023-12-02 17:42:21 26 4
gpt4 key购买 nike

我想修改一个configure.ac脚本,以便当我通过autoconf生成它的配置脚本时,它将有一个自定义帮助消息。

例如:

$autoconf
$./configure --help

产量

"Hello World"

而不是默认的谈论微调安装目录和修改构建标志。

这可能吗?

最佳答案

看看_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 脚本。

<小时/>

如果您想对帮助文本进行更多更改,您可以在 configure.ac 文件的开头包含您自己的 m4 脚本:

m4_include([custom_help.m4])

_AC_INIT_HELP 宏复制到 custom_help.m4 脚本中,并根据您的需要进行修改。

关于configure - 您可以覆盖运行 autoconf 时生成的默认配置帮助消息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29928799/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com