Réponses:
make -C /path/to/dir
Comme indiqué dans d'autres réponses, make (1) a une -C
option pour cela; plusieurs commandes ont des options similaires (par exemple tar). Il est utile de noter que pour d'autres commandes qui manquent de telles options, les éléments suivants peuvent être utilisés:
(cd /dir/path && command-to-run)
Cela 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é au lieu de ;
pour détecter les cas d'erreur où le répertoire ne peut pas être modifié.
Si la raison pour laquelle vous ne voulez pas cd dans un répertoire est parce que vous devez rester dans le répertoire en cours pour une tâche ultérieure, vous pouvez utiliser pushd et popd:
pushd ProjectDir ; make ; popd
Cela va dans le ProjectDir, exécute make et revient là où vous étiez.
makefile:
all:
gcc -Wall -Wpedantic -std=gnu99 -g src/test.c -o build/test
run:
./build/test
ou
run:
./../build/test
etc.