如何检查变量是否在Makefile中包含空格?

时间:2012-04-19 15:01:31

标签: makefile

我想知道变量CHAPTER是否包含空格。我试图使用findstring但没有成功:

CHAPTER=default
new:
ifeq (" ",$(findstring " ",$(CHAPTER)))
    $(error Variable contains space)
else
    echo "variable ok"
endif

这段代码说“变量确定”,而我希望相反。

我做错了什么?

我该怎么办?

1 个答案:

答案 0 :(得分:3)

使用words function测试变量值是否为单个词:

ifneq (1,$(words [$(CHAPTER)]))
# Things are bad...
endif

注意方括号,它也有助于检测前导/尾随空格。

UPD。

另一个选择是定义一个变量,其值中包含一个空格,并搜索目标变量的出现次数。

space :=
space +=

ifneq (,$(findstring,$(space),$(CHAPTER)))
# Things are bad...
endif