Makefile の関数について調べてみたので、ここにメモを残します。
patsubst 関数の使い方
使い方
$(patsubst PATTERN, REPLACEMENT, TEXT)
TEXT 内から PATTERN にマッチしたものを REPLACEMENT に置き換えます。
PATTERN はワイルドカードの ‘%’ を含み、語のなかのすべての文字とマッチさせます。 REPLACEMENT にも ‘%’ がある場合、その ‘%’ はPATTERN の なかの ‘%’ にマッチしたテキストに置換されます。
動作検証
Makefile
以下のような Makefile を作成します。
$ cat Makefile FILES := sample_01.c sample_02.j sample_03.c sample_04.j all: @echo 'c -> csv : '$(patsubst %.c,%.csv,$(FILES)) @echo 'j -> json: '$(patsubst %.j,%.json,$(FILES))
実行結果
実行結果は以下の通りです。
$ make c -> csv : sample_01.csv sample_02.j sample_03.csv sample_04.j j -> json: sample_01.c sample_02.json sample_03.c sample_04.json