質問: ``` . |--- Makefile |--- a | |--- Makefile | |--- b |--- Makefile ``` という構成で ``` subdirs := a b all: $(subdirs) $(subdirs): make -C $@ ``` というトップのMakefileをかいて make とうったら各ディレクトリで make を実行することはできるんですが トップで make test や make clean とうったら各ディレクトリで 同じコマンドを実行できるようにする方法はないでしょうか GNU Make 4.2.1 です
回答: GNU make には `MAKECMDGOALS` という変数がありますので `make -C $@ $(MAKECMDGOALS)` としておいて、`test clean: $(subdirs)` を追加するなどしておくと良いかと思います。 *この投稿は @metropolis さんのコメント の内容を元に コミュニティwiki として投稿しました。*