我关注项目的结构:
|
|---libs
| |---lib1
| |---lib2
|
|---lib3
依赖项:
因此,automake应按以下顺序构建库:lib2,lib3,lib1 我的问题是(我知道这个库应该先重新设计,但假设它不可能):是否有可能在Makefile.am中定义依赖项,以正确构建这个项目?
答案 0 :(得分:0)
如果您坚持使用递归目录结构,则可以使用SUBDIRS
变量控制下降顺序。这适用于单独的库和测试目录之类的东西; "递归使得被认为是有害的"全部夸大了案例。但是,在这个的情况下,这是一个很好的建议。你显然意识到这一点 - 它可以做到吗?
顶级Makefile.am
使用:
SUBDIRS = libs/lib2 lib3 libs/lib1
这个'工作' - 但这意味着没有 libs/Makefile.am
。因此,如果您将它们全部链接在一起作为便利(noinst_LTLIBRARIES
)库或已安装的库,则需要在顶层处理它。
理论上,我想你可以添加libs
作为最后一个目录。但我怀疑这会起作用,例如make dist
- 无论如何它都会是疯狂的。只是假装这段从未写过,这是最好的。