如何在makefile中取消定义“多个”环境变量

时间:2019-03-01 21:51:15

标签: makefile environment-variables

我想在make环境中定义几个shell环境变量。

我知道我可以取消定义ASHELLENV,但是我正在尝试使用通配符对环境变量进行模式匹配,然后对每个未定义的对象进行匹配,但是没有任何运气。

我认为类似的方法可以工作,但是shell env仍然存在。

$(foreach v, SOMEENVS_% SOMEOTHERENVS, $eval(undefine $$(v))

1 个答案:

答案 0 :(得分:0)

我的意思是,您的语法不正确(例如eval是一个makefile函数,您必须将其编写为$(eval ...))。

您可以执行以下操作(在GNU make manual中查找各种功能等):

$(foreach v,$(filter SOMEENV_%,$(.VARIABLES)) SOMEOTHERENV,$(eval undefine $$v))