我有一个第三方生成文件,我希望在先构建另一个自定义目标 (T2) 之前不要构建其中一个目标 (T1)。通常,这可以通过使 T2 成为 T1 的先决条件来实现。但是,T1 在其规则之一中使用 $^.. 所以,通过添加先决条件,我最终破坏了构建......我所拥有的是:
T1: x y z T2
$(MAKE) -j $^;
# fails because T2 should not be passed to the make!!!
.PHONY: T2
T2:
#do some linking and prep for T1
有什么好的方法可以确保 T2 在 T1 之前运行吗?(注:上面的例子其实稍微简化了一点。T1其实是Linux内核makefile中的vmlinux目标,所以重写它不仅困难,而且使代码不可移植。另外,我之前不能运行T2由于其他一些依赖关系,在内核上调用 make )。