0

假设我有一个include指令:

include dep/dep.mk

包括我的构建所需的其他信息。但是,我只希望在构建某些目标之后将其包含在内。我怎样才能做到这一点?

例如:

test: foo.c bar.c
     include dep/dep.mk

在这种情况下,include将不起作用,因为 Make 将其理解为 shell 命令。

4

1 回答 1

2

你不能那样做。如果您使用的是足够现代的 GNU make,您可以使用$(eval include dep/dep.mk),但请注意,包含的 makefile不能定义任何规则。一旦 make 开始构建目标,就不能定义新的规则/目标,即使使用$(eval ...).

您可以做的最好的事情是让那些想要包含该文件的命令递归地调用make,以便子make将包含该文件。

但是我同意埃尔达的观点;你需要重新考虑你的要求。也许如果您解释了为什么要这样做,我们可以提供更好的建议。

于 2012-05-28T20:03:53.173 回答