是否有任何方法可以检测是否使makefile变量不死而已?

问题描述 投票:0回答:1

我想在makefile中找到所有与模式匹配的变量,并打印它们的值。所以我有:

$(foreach var,$(filter XX_%,$(.VARIABLES)), \
     $(info $(var)=$($(var))))

好简单。但是,在某些地方,人们喜欢毒害变量...即:]

XX_FOO = $(error XX_FOO is deprecated, please use XX_FOOBAR instead)

这会导致我上面的代码段在尝试扩展变量时失败。我想知道是否有某种方法可以在扩展变量之前测试变量是否中毒...

makefile
1个回答
1
投票

您可以使用value功能来避免解释变量。

顺便说一句,如果您提供一个实际的最小工作示例,这会有所帮助:上面有许多语法错误。

尝试一下:

errorpat := $$(error%

$(foreach var,$(filter XX_%,$(.VARIABLES)),\
     $(info $(var) =$(if $(filter $(errorpat),$(value $(var))),\
                         $(value $(var)),\
                         $($(var)))))

这里errorpat是与您的“中毒”变量匹配的过滤器模式。

© www.soinside.com 2019 - 2024. All rights reserved.