プログラミングユーティリティ

条件付きマクロのパターン

make は、条件付きマクロ定義のターゲット部分において、ワイルドカードパターンである % を認識します。以下に例を示します。

profile_% := CFLAGS += -pg

この例は、profile_ という接頭辞を持つすべてのターゲットについて、CFLAGS マクロを変更します。条件付き定義の値では、パターン置換を使用できます。以下に例を示します。

profile_% := OBJECTS = $(SOURCES:%.c=profile_%.o)

この例は、SOURCES 値に指定されているすべての .c ファイルのベース名の前後に、profile_ という接頭辞および .o という接尾辞を追加します。

接尾辞の置換の優先度

部分文字列の置換は、参照されるマクロが展開されてから実行されます。旧バージョンの make では、置換が先に実行されるため、結果を直観的に理解しにくくなっていました。

入れ子にしたマクロ参照

このバージョンの make は、内側の参照を展開してから外側の参照を展開します。以下に例を示します。

CFLAGS-g = -I../include
  OPTION = -g
  $(CFLAGS$(OPTION))

この例の入れ子にした参照の値は、旧バージョンでは NULL 値になりましたが、このバージョンでは -I../include になります。

クロスコンパイルマクロ

定義済みマクロの HOST_ARCH および TARGET_ARCH をクロスコンパイルで使用できます。デフォルトでは、arch マクロは、arch コマンドが返す値に設定されます。