Recursion 从子目录调用makefile

Recursion 从子目录调用makefile,recursion,makefile,Recursion,Makefile,我有一个dir的结构和几个项目。有些项目依赖于其他项目,而其他项目又可能依赖于其他项目 Dir +-Proj1 | +-Debug | | makefile | +-Release | makefile | <sources> +-Proj2 | +-Debug | | makefile | +-Release | makefile | <sources> ... 这里的USER\u DEPS包含此项目所依赖的文件列表。比如说 USER_DEPS:=

我有一个dir的结构和几个项目。有些项目依赖于其他项目,而其他项目又可能依赖于其他项目

Dir
+-Proj1
| +-Debug
| |  makefile
| +-Release
|    makefile
|  <sources>
+-Proj2
| +-Debug
| |  makefile
| +-Release
|    makefile
|  <sources>
...
这里的
USER\u DEPS
包含此项目所依赖的文件列表。比如说

USER_DEPS:=../../Proj2/Debug/proj2.so \
../../Proj3/Debug/proj3.so
所有这些都有效,直到我在Proj2的源代码中做了一些更改。现在,如果我为Proj1运行
make
,它会看到
。/../Proj2/Debug/Proj2.so
在这里,但它不会看到它不是实际的。理想的做法是将Proj2的
makefile
包含到Proj1中,而不是编写标有
(*)
的规则,但是Proj2的
makefile
包含对其源的相对引用。也就是说,如果我尝试将它们包含到Proj1中,
make
将尝试在Proj1的目录中查找Proj2的源


有人有什么想法吗?

我相信这就是下一代构建工具发明的目的。。。你考虑给Gradle一个镜头吗?你可以试试<代码>。但它可能会增加构建时间,因为它总是调用递归make。@MathiasDolidon,简言之:不。我相信这就是下一代构建工具发明的目的。。。你考虑给Gradle一个镜头吗?你可以试试<代码>。但它可能会增加构建时间,因为它总是调用递归make。@MathiasDolidon,简而言之:否。
USER_DEPS:=../../Proj2/Debug/proj2.so \
../../Proj3/Debug/proj3.so