我想通过一个配方设置一个全局变量,然后在另一个配方中引用该变量独立的 recipe
下面的代码是在配方内设置变量的示例代码,但如果在配方外部引用,则变量将保持初始值
ACTIVE = a
switch:
ifeq ($(ACTIVE),b)
ACTIVE=$(shell echo 'a')
else
ACTIVE=$(shell echo 'b')
endif
print:
$(info acitve = $(ACTIVE))
我知道有一些方法可以将特定于目标的变量的值广播到依赖目标,但这不是我想要的。
您可以使用$(eval ...)
为此,尽管这几乎总是一个坏主意。我必须假设您的实际情况要复杂得多,因为有许多更好的方法可以完成您在示例 makefile 中实际提供的内容。
switch:
$(eval ACTIVE=$(if $(filter-out a,$(ACTIVE)),a,b))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)