Sous Unix, puis-je lancer "make" dans un répertoire sans d'abord y accéder?
make -C /path/to/dir
Comme indiqué dans d'autres réponses, make (1) a un -C
option pour cela; plusieurs commandes ont des options similaires (par exemple, tar). Il est utile de noter que pour d'autres commandes ne disposant pas de telles options, les suivantes peuvent être utilisées:
(cd /dir/path && command-to-run)
Ceci exécute la commande dans un sous-shell dont le répertoire de travail a d'abord été modifié (tout en laissant le répertoire de travail du shell parent seul). Ici &&
est utilisé à la place de ;
pour intercepter les cas d'erreur dans lesquels le répertoire ne peut pas être modifié.
Si la raison pour laquelle vous ne souhaitez pas utiliser un répertoire est parce que vous devez rester dans le répertoire actuel pour une tâche ultérieure, vous pouvez utiliser pushd et popd:
pushd ProjectDir ; make ; popd
Cela entre dans le ProjectDir, les courses make et retourne à l’endroit où vous étiez.
Aussi, vous pouvez utiliser:
make --directory /path/to/dir