いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

makeで特定のディレクトリの下にあるMakefileを移動せずに実行する (-C, --directory)

概要

周りに知らない人が結構いたので、メモ代わりにここに残しておきます。

makeを実行する際に、毎回Makefileが存在するディレクトリまで cd して、$ make と実行して、また元の場所に戻ってという作業を繰り返している場合、以下のようにすると少し楽になるかもしません。

$ make -C /path/to/makefile [ターゲット]

もしくは

$ make --directory /path/to/makefile [ターゲット]

上記のオプションはどちらも同じ意味で、makeコマンドに指定したディレクトリをカレントにした上で Makefile を実行してほしいと伝えています。

実行すると例えばこんな感じになります。makeコマンドの出力で最初にディレクトリを自動で移動してくれているのがわかります。

$ make -C examples/singleapp/stdlib_plugin_pkg/
make: Entering directory '/workspace/try-golang/examples/singleapp/stdlib_plugin_pkg'
[BUILD] ********************************
cd lib ; go build -buildmode=plugin
go build -o app
[RUN  ] ********************************
./app
HELLO WORLD
[CLEAN] ********************************
rm -f ./app
find . -name "*.so" | xargs -I{} rm -f {}
make: Leaving directory '/workspace/try-golang/examples/singleapp/stdlib_plugin_pkg'

終わったらちゃんとディレクトリから出ていく出力も見えますね。


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。