Unixでは、最初にそのディレクトリにcdせずにディレクトリで「make」を実行できますか?
make -C /path/to/dir
他の回答で述べたように、make(1)にはこのための-C
オプションがあります。いくつかのコマンドには同様のオプションがあります(例:tar)。このようなオプションを持たない他のコマンドについては、以下を使用できることに注意してください。
(cd /dir/path && command-to-run)
これにより、最初に作業ディレクトリが変更されたサブシェルでコマンドが実行されます(親シェルの作業ディレクトリはそのまま残されます)。ここでは、&&
の代わりに;
を使用して、ディレクトリを変更できないエラーの場合をキャッチします。
ディレクトリにcdしたくない理由が、後のタスクのために現在のディレクトリにとどまる必要があるためである場合、pushdとpopdを使用できます。
pushd ProjectDir ; make ; popd
それはProjectDirに入り、makeを実行し、元の場所に戻ります。
また、使用することができます:
make --directory /path/to/dir