【问题标题】:Makefile include makefile from different directoryMakefile 包括来自不同目录的 makefile
【发布时间】:2014-05-05 00:25:48
【问题描述】:

我有两个 makefile,directoryA/MakefiledirectoryB/Makefile

directoryA/Makefile 依赖于一个相当大而复杂的directoryB/Makefile 中的目标。

我可以做一个递归制作

$(MAKE) -C directoryB

但这对several reasons 来说是不可取的。两大原因:我 make 必须多次执行 makefile,而make 无法正确知道何时需要重建目标。

我想使用include 指令。问题是双重的:

  1. directoryB/Makefile 中的目标都是相对于该 Makefile 定义的。

  2. 许多命令依赖于工作目录directoryB

递归 make 解决了这两个问题,但有很大的缺点(前面提到过)。使用include时有没有办法解决这两个问题?

【问题讨论】:

  • 必须至少重写一个makefile。必须从一开始就创建非递归 makefile 以了解它们是非递归的。
  • directoryA/Makefile 中的目标/命令是否同样取决于工作目录directoryA
  • @Beta,目前是,但directoryA/Makefile 不是这样。我想我可以重写那个以便能够被包含,然后让directoryB/Makefile 包含它。
  • @MadScientist,真的......我应该怎么做才能重写它们?有没有办法获取当前Makefile 的位置?这是最好的方法吗?
  • @MadScientist,根据您的建议,我尝试了this 解决方案。

标签: makefile gnu-make


【解决方案1】:

没有看到directoryA/Makefile很难说,但另一种选择是拥有它include directoryB/Makefile,然后

cd directoryB
make -f ../directoryA/Makefile

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    相关资源
    最近更新 更多