【发布时间】:2016-12-19 19:52:19
【问题描述】:
前言:
是的,我的 makefile 写得不好。
不,我/我们没有写它们;我们从另一家公司继承了这个代码库。
我想知道是否可以在不重写的情况下解决我的问题。
问题
有没有办法从另一个 makefile 中引用目标并将其用作先决条件?
假设你有:
all: libs binary
binary: # I need to add prereqs here
blah
blah2
blah3
对于binary,我需要将其他 makefile 中的目标作为先决条件。
我不能只 include 那些 makefile 以及那些目标,因为这些 makefile 定义了相同的变量但具有不同的值。
是否可以这样做:
binary: C:/mk1:foo C:/mk2:bar
blah
blah2
blah3
更新
如果不清楚,makefilesC:/mk1 和C:/mk2 是同一个makefile 项目的一部分,该项目通过带有make --jobs=X 的一些顶级makefile 执行,因此理论上所有makefile 都可以并行制作。
【问题讨论】:
-
简短回答:不。长答案:是的,但是您可能会不必要地重建目标。这可以接受吗?
-
@Beta 是的。主要目标是对 makefile 的最小修改,因此显然会有妥协。请继续。