Risposte:
make -C /path/to/dir
Come notato in altre risposte, make (1) ha -C
un'opzione per questo; diversi comandi hanno opzioni simili (ad es. tar). È utile notare che per altri comandi privi di tali opzioni è possibile utilizzare:
(cd /dir/path && command-to-run)
Questo esegue il comando in una sotto-shell che per prima cosa ha cambiato la sua directory di lavoro (lasciando solo la directory di lavoro della shell madre). Qui &&
viene utilizzato invece di ;
rilevare casi di errore in cui non è possibile modificare la directory.
Se il motivo per cui non si desidera eseguire il cd in una directory è perché è necessario rimanere nella directory corrente per un'attività successiva, è possibile utilizzare pushd e popd:
pushd ProjectDir ; make ; popd
Questo va in ProjectDir, esegue make e torna a dove eri.
makefile:
all:
gcc -Wall -Wpedantic -std=gnu99 -g src/test.c -o build/test
run:
./build/test
o
run:
./../build/test
eccetera.