4.12在子目录中配置其他包

在大多数情况下,呼叫交流输出足以生产子目录中的makefiles。然而,配置脚本控制多个独立包可以使用交流_配置_子目录运行配置其他的脚本子目录中的包。

宏:交流_配置_子目录 (目录…)

制造商交流输出运行配置在每个子目录中目录在给定的空白或新行分隔列表中。每个目录应该字面意思,即请不要使用:

如果测试“x$package_foo_enabled”=xyes;然后my_subdirs=“$my_subdirs foo”fi(菲涅耳)AC_CONFIG_SUBDIRS([$my_SUBDIRS])

因为这可以防止'./configure--help=递归'来自显示包的选项foo公司相反,你应该写入:

AS_IF([测试“x$package_foo_enabled”=xyes],[AC_CONFIG_SUBDIRS([foo])])

如果给定目录在中找不到配置运行时,a报告警告;如果子目录是可选的,请写入:

AS_IF([test-d“$srcdir/foo”],[AC_CONFIG_SUBDIRS([foo])])

这些示例使用AS_IF系统而不是普通的外壳如果避免Autoconf在shell条件中的宏调用出现问题外部宏定义。请参见常见外壳构造.

如果给定目录包含配置菜单,改为运行属于配置。这适用于可能使用非Autoconf脚本配置,无法通过调用包装器配置因为它与上的文件相同区分大小写的文件系统。

子目录配置脚本被赋予相同的命令为此提供的行选项配置脚本,带辅音必要时进行更改,包括:

  • 调整缓存文件的相对名称;
  • 调整源目录的相对名称;
  • 传播当前值$前缀,包括如果是默认值,如果顶层和子目录的默认值为配置不同。

此宏还设置输出变量细分到列表目录'目录’. 制定规则可以使用此变量用于确定递归到哪个子目录。

可以多次调用此宏。