makefileのforeachのハマりどころ - podhmo's diary
上の記事で発見したforeach。この組み込み関数で出来ることとしては自身で指定したターゲットのリストをループで回すことができる仕組み
EXCLUDES := .DS_Store .git TARGET_FILE := $(wildcard ./bin/*.o) FILES := $(filter-out $(EXCULDES), $(TARGET_FILES)) .PHONY: ALL: @$(foreach val, $(FILES), ls -l $(val);)
wildcardでディレクトリを指定して正規表現でファイルのリストを生成
filter-outで除外ファイルを生成したリストから除外
foreachでFILESの値をそれぞれ評価していく仕組み
ディレクトリやファイルごとに固有のアクションを行いたい際に使うことができる。
下記のようにディレクトリごとにdocker buildするみたいなCIで使える
docker-template/Makefile at master · ryuichi1208/docker-template · GitHub