./configure:什么是疯狂的构建环境?

sik*_*ela 58 compiling configure

./configure 总是检查 whether the build environment is sane...

我不禁想知道什么是疯狂的构建环境。此检查会引发哪些错误?

Gil*_*il' 53

这来自automake,特别是来自它的AM_SANITY_CHECK ,它被称为 from AM_INIT_AUTOMAKE,通常在configure.ac. 这个宏的要点是:

  • 检查源目录的路径是否不包含某些“不安全”字符,这些字符很难正确包含在 shell 脚本生成文件中。
  • 检查ls似乎工作。
  • 检查在构建目录中创建的新文件是否比该configure文件新。如果不是(通常是因为构建系统上的时钟设置不正确),构建过程可能会失败,因为构建过程通常依赖于生成的文件,其时间戳比生成它们的源文件更新。

  • @terdon 一些 automake 模板使用 `ls`。`AM_SANITY_CHECK` 宏本身使用 `ls` 来检查 `configure` 和临时文件的相对时间(它不使用 `test -nt`,因为并非所有 shell 都有它)。 (2认同)