我有一个include
指令:
include dep/dep.mk
包含我的构建的其他必需信息。但是,我只希望在构建某些目标后包含它。我怎么能这样做?
例如:
test: foo.c bar.c
include dep/dep.mk
在这种情况下,include
无法正常工作,因为请将其理解为shell命令。
答案 0 :(得分:2)
你做不到。如果你正在使用足够现代的GNU make,你可以使用$(eval include dep/dep.mk)
,但请注意所包含的makefile 不能定义任何规则。一旦make开始构建目标,即使使用$(eval ...)
,也无法定义新的规则/目标。
您可以做的最好的事情就是让那些想要包含该文件的命令以递归方式调用make,使得sub-make将包含该文件。
但我同意Eldar;你需要重新考虑你的要求。也许如果你解释了为什么要这样做,我们可以给出更好的建议。