【问题标题】:How to list features that can be enabled and disabled in ./configure script?如何列出可以在 ./configure 脚本中启用和禁用的功能?
【发布时间】:2011-12-07 07:08:22
【问题描述】:

许多开源软件都以源代码的形式通过自动工具构建系统分发。为了构建这样的软件,我发出./configure && make。但是对于某些软件,我只需要构建它的子集——例如,在 SRP 中,我只对库感兴趣,而不对终端或 ftp 客户端感兴趣。要指定要构建的内容,./configure 脚本接受--disable---enable---with---without-./configure --help“功能和包”部分中列出的命令行键。

鉴于带有./configure 脚本的第三方开源存档,我是否可以轻松获取所有可启用-禁用功能的列表?当然,这些信息可以在源代码中获得,例如在makefile.ammakefile.in 中——但是它们很大并且难以阅读。也许存在更简单的方法,比如./configure --list-features

【问题讨论】:

标签: autotools


【解决方案1】:

./configure --help 可以解决问题。

这显示了使用宏 AC_ARG_ENABLEAC_ARG_WITH 定义的任何 --enable-X--with-X 参数,以及配置脚本将关注的环境变量列表,例如 CC .

在一些组织为一系列子项目的大型项目中,每个子项目都有自己的配置脚本,您可能需要执行./configure --help=recursive 以查看所有子项目的所有功能/包。

【讨论】:

  • 但有时它只显示一般帮助 - 这是否意味着我不能使用任何其他选项?像 --with-gcc=clang 这样根本没有列出的选项呢
  • 这意味着没有定义--enable-X--with-X 选项。你可以随时运行CC=clang ./configure;这些变量在最后一节中列出,标记为“一些有影响的环境变量”。
  • 这并不总是有效。例如,我正在查看一个描述“-disable-FEATURE”,但没有给出“FEATURES”列表的文件。
  • 它总是显示--disable-FEATURE,即使没有定义。如果没有列出特定的 FEATURE,则没有定义。
  • @ptomato,您是说./configure --help 显示了所有可能的功能吗?谢谢。
【解决方案2】:

AFAIK,如果 configure.ac 使用 AC_ARG_ENABLEAC_ARG_WITH 宏,则选项应显示在帮助输出中。我不知道为什么一个包会试图绕过这个,除非它是一个旧脚本。在 configure.acconfigure.in 脚本中搜索这些宏可能会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多