जवाबों:
make -C /path/to/dir
जैसा कि अन्य उत्तरों में उल्लेख किया गया है, मेक (1) के पास इसके लिए एक -C
विकल्प है; कई आदेशों के समान विकल्प होते हैं (जैसे टार)। यह नोट करना उपयोगी है कि अन्य आदेशों के लिए जिनमें ऐसे विकल्पों की कमी है, निम्नलिखित का उपयोग किया जा सकता है:
(cd /dir/path && command-to-run)
यह एक उप-शेल में कमांड चलाता है, जिसमें पहले इसकी कार्यशील निर्देशिका बदल गई है (अकेले पैरेंट शेल की कार्यशील निर्देशिका को छोड़ते हुए)। यहां &&
उन ;
त्रुटि मामलों को पकड़ने के बजाय उपयोग किया जाता है जहां निर्देशिका को बदला नहीं जा सकता है।
यदि आप किसी निर्देशिका में सीडी नहीं चाहते हैं, क्योंकि आपको बाद के कार्य के लिए वर्तमान निर्देशिका में रहने की आवश्यकता है, तो आप पुश और पॉप का उपयोग कर सकते हैं:
pushd ProjectDir ; make ; popd
यह प्रोजेक्टडिअर में चला जाता है, रन बनाता है, और जहाँ आप थे, वापस चला जाता है।
makefile:
all:
gcc -Wall -Wpedantic -std=gnu99 -g src/test.c -o build/test
run:
./build/test
या
run:
./../build/test
आदि।