Ответы:
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
и т.п.