Відповіді:
make -C /path/to/dir
Як зазначається в інших відповідях, make (1) має -C
для цього варіант; кілька команд мають подібні параметри (наприклад, tar). Корисно зазначити, що для інших команд, у яких відсутні такі параметри, можна використовувати наступне:
(cd /dir/path && command-to-run)
Це запускає команду в підколонці, яка спочатку змінює свій робочий каталог (залишаючи робочий каталог батьківської оболонки в спокої). Тут &&
використовується замість того, ;
щоб виловлювати випадки помилок, коли каталог неможливо змінити.
Якщо ви не хочете записати в каталог, тому що вам потрібно залишитися в поточному каталозі для подальшого завдання, ви можете використовувати pushd і popd:
pushd ProjectDir ; make ; popd
Це входить у ProjectDir, запускає make і повертається туди, де ви були.
makefile:
all:
gcc -Wall -Wpedantic -std=gnu99 -g src/test.c -o build/test
run:
./build/test
або
run:
./../build/test
тощо.