跳过不需要编译的项目的配置
Skipping configuration of projects that do not need compiling
我是 运行 一个编译很多项目的长构建脚本,对于大多数构建 make
通常 returns 和 make: Nothing to be done for 'all'
,这很好,因为我不会在每次构建时更改那么多代码。然而,该脚本仍然需要很长时间才能完成,这仅仅是因为它为每个项目调用 autotools configure
script 和其他一些脚本。
我在某处读到 make 使用时间戳来测试它是否需要构建。
有没有办法在调用configure
脚本之前询问Make是否需要构建?
或者另一种防止重新配置所有项目的方法?
每个项目配置一次后,你不需要再运行每个configure
脚本,除非那些configure
脚本本身改变了,或者你有理由相信测试结果将会改变。如有必要,您可以 运行 config.status
而不是重新创建输出文件,而无需重新 运行 进行所有测试。如果您确信输出文件也不需要重新创建,那么您可以 运行 make
.
此外,如果您将 Automake 与 Autoconf 结合使用,那么您的 Makefile 是使用检测 configure
的 m4 源(通常是 configure.ac
)何时发生变化的工具构建的,因此需要一个重新配置。只要由基于 Automake 的 configure
生成的 Makefile
仍然存在,您只需 运行 make
,它就会做正确的事情。如果缺少 Makefile
,那么您仍然需要 运行 configure
或 config.status
。
此外,您可以考虑为所有配置脚本使用共享缓存文件,方法是通过 --config-cache
选项为每个配置脚本指定该文件。这应该通过避免冗余测试来减少每个 configure
脚本消耗的时间。
我是 运行 一个编译很多项目的长构建脚本,对于大多数构建 make
通常 returns 和 make: Nothing to be done for 'all'
,这很好,因为我不会在每次构建时更改那么多代码。然而,该脚本仍然需要很长时间才能完成,这仅仅是因为它为每个项目调用 autotools configure
script 和其他一些脚本。
我在某处读到 make 使用时间戳来测试它是否需要构建。
有没有办法在调用configure
脚本之前询问Make是否需要构建?
或者另一种防止重新配置所有项目的方法?
每个项目配置一次后,你不需要再运行每个configure
脚本,除非那些configure
脚本本身改变了,或者你有理由相信测试结果将会改变。如有必要,您可以 运行 config.status
而不是重新创建输出文件,而无需重新 运行 进行所有测试。如果您确信输出文件也不需要重新创建,那么您可以 运行 make
.
此外,如果您将 Automake 与 Autoconf 结合使用,那么您的 Makefile 是使用检测 configure
的 m4 源(通常是 configure.ac
)何时发生变化的工具构建的,因此需要一个重新配置。只要由基于 Automake 的 configure
生成的 Makefile
仍然存在,您只需 运行 make
,它就会做正确的事情。如果缺少 Makefile
,那么您仍然需要 运行 configure
或 config.status
。
此外,您可以考虑为所有配置脚本使用共享缓存文件,方法是通过 --config-cache
选项为每个配置脚本指定该文件。这应该通过避免冗余测试来减少每个 configure
脚本消耗的时间。