【发布时间】:2014-01-10 03:23:26
【问题描述】:
我想用 gmake 实现以下目标:
让 A 依赖于 X。如果 X 通过,我们就完成了。否则 A 必须依赖于 B(它有一个配方和额外的依赖项)。我也希望能够并行运行make,所以不能从A: X B开始
我需要类似的东西:
X:
$(run_recipe1_and_set_pass_or_fail)
B: B1 B2
$(run_recipe2)
A: X
if "X.failed" "evaluate_target(B)" ""
我还想避免在此过程中运行另一个 make - 这会减慢速度。
【问题讨论】:
-
如果不调用另一个 make,您将无法执行此操作。
-
Make 在 执行任何规则之前创建依赖关系图,因此您所要求的无法完成,但调用另一个 make 确实不会减慢很多速度。
-
那么,evaluate_target(B) 真的应该是对某个 makefile 的 make 调用来生成 B 吗?
标签: makefile dependencies gnu-make