Makefile:包含字符串

时间:2010-04-30 00:59:37

标签: string makefile conditional-statements

变量返回MINGW32_NT-5.1CYGWIN_NT-5.1.(是,最后点)

需要比较给定的var包含位于任何位置的NT-5.1

使用cygwin并希望与几乎任何* nix兼容。

2 个答案:

答案 0 :(得分:97)

findstring功能是您的心愿:

  

$(findstring ,中找到 )

     

中搜索查找。如果发生,则值为 find ;否则,该值为空。您可以在条件中使用此函数来测试给定字符串中是否存在特定子字符串。因此,这两个例子,

$(findstring a,a b c)
$(findstring a,b c)
     

分别生成值"a"""(空字符串)。有关findstring的实际应用,请参阅Testing Flags

类似的东西:

ifneq (,$(findstring NT-5.1,$(VARIABLE)))
    # Found
else
    # Not found
endif

答案 1 :(得分:17)

VARIABLE=NT-5.1_Can_be_any_string
ifeq ($(findstring NT-5.1,$(VARIABLE)),NT-5.1)
    # Found
    RESULT=found
else
    # Not found
    RESULT=notfound
endif

all:
    @echo "RESULT=${RESULT} , output=$(findstring NT-5.1,$(VARIABLE))"

它匹配给定的字符串并返回