【问题标题】:OSX autotools: `aclocal.m4' not being output by `autom4te'OSX autotools:“autom4te”没有输出“aclocal.m4”
【发布时间】:2014-06-20 11:39:33
【问题描述】:

我已经尝试在 OSX Mavericks 中构建 freetype2 库数周了,但没有成功。

问题在于使用GNU Autotools 创建configure 构建脚本。

我已经使用 macports port 命令安装了 automakeautoconflibtoolizem4perl5

执行aclocal 时,应该在configure 目录中创建一个包含Autotools 宏的文件:aclocal.m4。然而,这个文件并没有被输出,随后的glibtoolizeautoconf 命令正在生成一个虚假的configure 脚本。

结果是:没有aclocal.m4 文件,./autom4te.cache/traces.* 的通常内容被转储到生成的configure 文件的顶部(traces.* 文件为空)。

例如:

m4trace:configure.ac:14: -1- AC_SUBST([SHELL])
m4trace:configure.ac:14: -1- AC_SUBST_TRACE([SHELL])
m4trace:configure.ac:14: -1- m4_pattern_allow([^SHELL$])

任何帮助将不胜感激。

【问题讨论】:

  • 我在最新的 autoconf 源代码树 (2.6.9) 中运行了 make check 命令,在 configure 之后。这调用了testsuite,它输出了许多“FAILED”消息。完整的输出可以在这里找到:link如果你以前看到过类似的症状,或者可以解释它们,请告诉我。
  • 为什么不从 macports 安装 freetype?
  • @arved 我需要为 iOS 设备 (arm7/arm7s) 交叉编译 freetype 的自定义版本。这不是freetype 的问题,而是GNU Autotools 和我的OSX 环境的问题。
  • 您是否尝试过使用 --verbose 运行 aclocal 以了解可能出了什么问题?
  • @arved 是的,我已经为 Autotools 二进制文件尝试了各种 --verbose--debug 选项,并运行 testsuite 工具。没有建议解决方案的明确错误消息。似乎autom4te 在执行时会输出虚假的m4trace 消息。

标签: macos shell macports autotools m4


【解决方案1】:

GNU Autotools 不支持在存储在FAT32 文件系统上的工作目录上执行。它会导致虚假的m4trace 调试消息输出到生成的configure 脚本。

不知道为什么会这样,但可能与依赖sleep 命令检查文件是否已更改有关。 FAT32 将时间戳舍入到最接近的秒数,执行和后续的修改检查可能会在亚秒级的时间尺度上发生。

这已与开发团队提出,但现在,我在执行GNU Autotools 之前将我的工作目录移动到我的OSX 引导分区。

【讨论】:

    猜你喜欢
    • 2015-08-31
    • 1970-01-01
    • 2014-01-29
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 2012-02-20
    • 1970-01-01
    相关资源
    最近更新 更多