地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

Makefileの便利 Tips [foreach編]

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