web-dev-qa-db-ja.com

Makefile:文字列を含む

変数はMINGW32_NT-5.1またはCYGWIN_NT-5.1.(はい、末尾にドット)を返します

指定されたvarには、NT-5.1がどこにでも配置されていることを比較する必要があります。

Cygwinを使用し、ほとんどすべての* nixと互換性があります。

61
Pablo

findstring 関数はあなたの心が望んでいるものです:

$(findstringfind,in)

infindの出現を検索します。発生する場合、値はfind;それ以外の場合、値は空です。この関数を条件付きで使用して、特定の文字列に特定の部分文字列が存在するかどうかをテストできます。したがって、2つの例、

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

値を生成します"a"および""(空の文字列)、それぞれ。 findstringの実用的なアプリケーションについては、 テストフラグ を参照してください。

何かのようなもの:

ifneq (,$(findstring NT-5.1,$(VARIABLE)))
    # Found
else
    # Not found
endif
101
John Kugelman
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))"

指定された文字列と一致し、戻ります

17
vimjet