【问题标题】:Internal dependencies for automake build systemautomake 构建系统的内部依赖项
【发布时间】:2015-02-22 11:33:13
【问题描述】:

我的项目结构如下:

|
|---libs
|    |---lib1
|    |---lib2
|
|---lib3

以及依赖:

  • lib1 依赖于 lib3
  • lib3 依赖于 lib2

所以 automake 应该按以下顺序构建库:lib2、lib3、lib1 我的问题是(我知道这个库应该首先重新设计,但假设它不能):是否可以在 Makefile.am 中定义依赖项,以正确构建这个项目?

【问题讨论】:

    标签: autotools automake


    【解决方案1】:

    如果您坚持使用递归目录结构,您可以使用 SUBDIRS 变量控制下降顺序。这对于单独的库和测试目录之类的东西很好; “递归使被认为是有害的”包罗万象夸大了这种情况。但是,在 this 的情况下,这是一个合理的建议。你显然意识到了这一点——那能做到吗?

    顶级Makefile.am使用:

    SUBDIRS = libs/lib2 lib3 libs/lib1
    

    这“有效” - 但它意味着 libs/Makefile.am。因此,如果您将它们作为便利 (noinst_LTLIBRARIES) 库或已安装库链接在一起,则需要在顶层进行处理。

    理论上,我想您可以将libs 添加为最后一个目录。但我怀疑这是否可行,例如make dist - 无论如何这将是疯狂的。最好只是假装这一段从未写过。

    【讨论】:

    • 嗯,我想避免使用唯一的 Makefile.am 和 SUBDIRS = libs/lib2 lib3 libs/lib1。但似乎这是唯一的解决方案。无论如何谢谢;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    相关资源
    最近更新 更多