【makefileメモ】patsubstとwildcard関数の使い方
patsubst関数はGNU makeの組み込み関数で、指定された文字列のモジュール交換を行います。syntaxは以下のようになっています:
$(patsubst pattern,replacement,text)
パターンは照合するべき模式、置換は置換に利用する文字列、テキストは置換を行うテキストだ
patsubst 関数は、text 内で pattern と一致する部分を検索し、replacement に置換します。ファイル名やパス名などのパターン置換に利用されます。
以下にpatsubst関数の使用例を示します。
# 将src目录下的所有.c文件替换为.o文件
OBJS = $(patsubst src/%.c,obj/%.o,$(wildcard src/*.c))
# 将所有的.c文件替换为.o文件
OBJS = $(patsubst %.c,%.o,$(wildcard *.c))
ワイルドカード関数はGNU makeの組み込み関数で、ファイルの検索に使用されます。構文は次のとおりです
$(wildcard pattern)
patternは検索対象ファイルの形式です。
ワイルドカード関数を使用して、カレントディレクトリからpatternに一致するファイルを見つけ、ファイルのリストを返します。 ディレクトリ内のファイルのリストを取得したり、ファイルパターンに基づいて操作したりするために使用できます。
ワイルドカード関数使用例
# 获取当前目录下所有的.c文件
SRCS = $(wildcard *.c)
# 获取src目录下的所有的.c文件
SRCS = $(wildcard src/*.c)
patsubstやwildcard関数は同時に使用されるケースが多く、ファイル名やパス名の置換や検索を柔軟に行うことができます。