62779

[code]

    .
    |--- Makefile
    |--- a
    |    |--- Makefile
    |
    |--- b
         |--- Makefile
    
[/code]

という構成で

[code]

    subdirs := a b
    
    all: $(subdirs)
    
    $(subdirs):
      make -C $@
    
[/code]

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

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

GNU Make 4.2.1 です


CC BY-SA 4.0
2020-01-11T07:38:40.080
62152
2020-02-05T00:45:16.403
question
makefile
Makefile でサブディレクトリに同じターゲットを実行する方法


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

* * *

_この投稿は[@metropolis
さんのコメント](https://ja.stackoverflow.com/questions/62152/makefile-%e3%81%a7%e3%82%b5%e3%83%96%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e3%81%ab%e5%90%8c%e3%81%98%e3%82%bf%e3%83%bc%e3%82%b2%e3%83%83%e3%83%88%e3%82%92%e5%ae%9f%e8%a1%8c%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95#comment67893_62152)
の内容を元に コミュニティwiki として投稿しました。_


CC BY-SA 4.0
2020-02-05T00:45:16.403
62779
2020-02-05T00:45:16.403
3060
62152
answer