Makefile でサブディレクトリに同じターゲットを実行する方法

投稿者: Anonymous
.
|--- Makefile
|--- a
|    |--- Makefile
|
|--- b
     |--- Makefile

という構成で

subdirs := a b

all: $(subdirs)

$(subdirs):
  make -C [email protected]

というトップのMakefileをかいて
make とうったら各ディレクトリで make を実行することはできるんですが

トップで make test や make clean とうったら各ディレクトリで
同じコマンドを実行できるようにする方法はないでしょうか

GNU Make 4.2.1 です

解決

GNU make には MAKECMDGOALS という変数がありますので make -C [email protected] $(MAKECMDGOALS) としておいて、test clean: $(subdirs) を追加するなどしておくと良いかと思います。


この投稿は @metropolis さんのコメント の内容を元に コミュニティwiki として投稿しました。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *