【问题标题】:Convert gmake Makefile to make Makefile?将 gmake Makefile 转换为 Makefile?
【发布时间】:2012-01-19 00:09:12
【问题描述】:

是否存在将用于 gmake 的 GNU Makefile 转换为可用于 make (FreeBSD-make) 的 Makefile 的实用程序?

【问题讨论】:

  • @pmod,不,在我发帖之前我没有看到过。有趣的阅​​读,不幸的是 - 它仍然没有回答我的问题。
  • 当您使用为 freebsd-make 中的 gmake 编写的 makefile 时,您预计会出现什么样的不兼容性?你试过使用makefile吗?即您能否详细说明您的问题
  • 我正在尝试在 FreeBSD 上构建 luajit.org,看起来 makefile 是使用 gmake 构建的。我的 FreeBSD 理念是在我的服务器上没有任何 GPL 代码。 LuaJIT 在 MIT 下获得许可,但需要 gmake 来构建它。因此,我想轻松地将 LuaJIT makefile 转换为 freebsd-make,以便在我的服务器上构建它。
  • 这意味着“需要 gmake 来构建它”是什么意思?如果你使用 make 来构建它会发生什么?

标签: makefile freebsd gnu-make


【解决方案1】:

不太可能有一个,因为有些事情你可以在 GNU make 中做,而在其他版本的 make 中是做不到的。其中,用于操作字符串的函数宏和 makefile 中的条件通常不可用。

【讨论】:

    【解决方案2】:

    如前所述,没有这样的转换器,我非常怀疑是否存在这样的转换器。据我了解,您有两种选择:

    1. 使用 GNU make 移植到 FreeBSD。例如this

    2. 修补 makefile 以使其与 FreeBSD make 兼容。实际上 LuaJIT 中并没有太多的(主要的 Makefilesrc/Makefile)。这应该很容易。只需确保您拥有所有工具(检查 shell 中调用的内容),并逐步修复“错误”。

      例如,第 29 行的错误 (export PREFIX= /usr/local) 是由于 GNU make 指令 export 而在 FreeBSD make 中没有类似的。 manual 表示 “环境变量设置在运行 make 的 shell 中的 Makefile 之外”,因此您必须遵守此要求。

      你还需要修复所有的 make 条件等等,所有的差异都收集在 BSD make vs. GNU make

    【讨论】:

      【解决方案3】:

      该实用程序被称为 developer(程序员、制作大师……):-) 说真的,这项任务所需的 AI 已经足够复杂,而且对自动转换的需求非常接近 epsilon,以至于没有人会认真考虑编程。

      如果您有 GNU makefile,最好使用 GNU make。

      【讨论】:

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