我尝试在我当前的项目中实现一个非递归的 make 构建系统。我挣扎的是变量范围。目标特定变量不符合我的需求,因为变量通常定义目标而不是先决条件。我需要的是:
生成文件1:
SOMEVAR := original_value
include Makefile2
$(warning $(SOMEVAR))
生成文件2:
#some magic here to do what I want and make me happy
SOMEVAR := included_value
#and maybe here
我想要的输出是'original_value'。
有什么策略可以让它成为现实吗?
编辑:我目前唯一的解决方案是强迫和组织自己将所有包含在每个特定 Makefile 的末尾并使用立即变量赋值:=