ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

【Makefile】patsubst 関数の使い方

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