CSDN は Makefile コードをサポートしていません。
メイクファイルの例
ifneq (,$(filter $(region), global eea ru in id tr tw jp))
ifneq (,$(filter $(region), tw))
PRODUCT_NAME := product_global
else
PRODUCT_NAME := product_$(region)
endif
endif
2 つの変数 (通常は文字列) が等しいかどうかを判断します。
ifeq( 变量1, 变量2)
それらが等しくないかどうかを判断します。
ifneq( 变量1, 变量2)
フィルター
$(filter PATTERN...,TEXT)
関数名: フィルター関数 - フィルター。
Function 機能: 文字列「TEXT」内のパターン「PATTERN」に一致しないすべての単語をフィルターで除外し、このパターンに一致するすべての単語を保持します。複数のパターンを使用できます。通常、パターンにはパターン文字「%」が含まれている必要があります。複数のパターンがある場合、パターン式はスペースで区切られます。
はっきり言って、分かりやすいです。TEXT に一致するパターンがある場合は、対応する文字列を返し、そうでない場合は空を返します。
戻り値: スペースで区切られた「TEXT」文字列内のパターン「PATTERN」に一致するすべての文字列。関数の説明: 「filter」関数は変数内の特定の文字列を削除するために使用できます。この関数は
次の例で使用されています。例:
sources := foo.c bar.c baz.s ugh.h
foo: $(sources)
cc $(filter %.c %.s,$(sources)) -o foo
cc がターゲット「foo」をコンパイルして生成するために使用される戻り値“$(filter %.c %.s,$(sources))”
は、関数の戻り
値は「foo.c bar.c baz.s」で、.h 接尾辞ファイルは削除されます。
$(ストリップ)
ストリップはヌル文字を削除するステートメントで、文字列の先頭と末尾にあるヌル文字を削除します (ヌル文字にはスペース、[タブ]、およびその他の表示不可能な文字が含まれます)
ifeq (1, $(strip $(MY_BUILD)))
唯一の欠点は、入れ子になったスペースが多数あり、読みにくいことです。理解するのも不便です。