如果用户提供配置
选项--带有-包裹或--没有-包裹,运行shell命令给定的操作。如果没有给出任何选项,请运行shell命令未提供的行动.名称包裹表示另一个此程序应该使用的软件包。它应该包括只有字母数字字符、破折号、加号和点。
选项的参数可用于shell命令给定的操作在shell变量中带有val
,这是实际上只是名为带有_包裹
,其中包含任何非字母数字字符包裹已更改为'_’. 您可以使用该变量,如果你愿意的话。
请注意未提供的行动直到AC_ARG_WITH公司
已扩展。如果您需要带有_包裹
通过时间参数设置为默认值解析完成,请使用m4发送文本
到默认值
分流(参见m4发送文本)(如果作为AC_ARG_WITH公司
,还提供非转移文本以避免出现shell语法错误)。
争论帮助存储是对选项的描述看起来像这样:
帮助存储如果更多细节是需要。只需确保列在“配置--帮助’. 避免在帮助字符串中使用制表符正确的前导空格是格式化帮助存储使用宏AS_帮助_字符串
(请参见使帮助字符串看起来漂亮).
以下示例显示了如何使用AC_ARG_WITH公司
中的宏常见的情况。您想让用户决定是否启用支持外部库(例如readline库);如果用户均未指定--带读出线也不是--没有读线,仅当库可用时,才希望启用对readline的支持在系统上。
AC_ARG_WITH([readline],[AS_HELP_STRING([--带读行],[支持花式命令行编辑@<:@default=check@:>@]),[],[:m4_divert_text([DEFAULTS],[with_readline=检查])]图书馆线=AS_IF([测试“x$with_readline”!=xno],[AC_CHECK_LIB([读线]、[主],[AC_SUBST([LIBREADLINE],[“-lreadline-lncurces”])AC_DEFINE([HAVE_LIBREADLINE],[1],[如果您有libreadline,请定义])],[如果测试“x$with_readline”!=xcheck;那么AC_MSG_故障([--with-readline已给定,但readline测试失败])fi(菲涅耳)],-插入)])
下一个示例显示如何使用AC_ARG_WITH公司
为用户提供可以启用对readline库的支持,以防它仍然存在实验性和未经良好测试,因此默认禁用。
AC_ARG_WITH([readline],[AS_HELP_STRING([--带读行],[为readline启用实验支持]),[],[with_readline=否])图书馆线=AS_IF([测试“x$with_readline”!=xno],[AC_CHECK_LIB([readline],[main],[AC_SUBST([LIBREADLINE],[“-lreadline-lncurces”])AC_DEFINE([HAVE_LIBREADLINE],[1],[如果您有libreadline,请定义])],[AC_MSG_失败([--with-readline已给定,但readline测试失败]),[-注释])
最后一个示例显示了如何使用AC_ARG_WITH公司
为用户提供可以禁用对readline库的支持,前提是这是一个重要的功能,默认情况下应该启用它。
AC_ARG_WITH([readline],[AS_HELP_STRING([--不带读行],[禁用对readline的支持])],[],[with_readline=是])图书馆线=AS_IF([测试“x$with_readline”!=xno],[AC_CHECK_LIB([readline],[main],[AC_SUBST([LIBREADLINE],[“-lreadline-lncurses”])AC_DEFINE([HAVE_LIBREADLINE],[1],[如果您有libreadline,请定义])],[AC_MSG_故障([读取线测试失败(--没有禁用读取线)]),[-注释])
这三个示例可以很容易地适应以下情况AC_ARG_启用
应优先于AC_ARG_WITH公司
(请参见选择程序包选项).