मैं इस तरह से है कि मैं इस तरह के रूप में अपने Makefile के हर नियम में उपयोग कर सकते हैं, में एक खोल समारोहमेकफ़ाइल में वैश्विक शैल फ़ंक्शंस को कैसे परिभाषित किया जाए?
#!/bin/sh
test()
{
do_some_complicated_tests $1 $2;
if something; then
build_thisway $1 $2;
else
build_otherway $1 $2;
fi
}
परिभाषित करना चाहते हैं:
foo: bar
test foo baz
स्पष्ट है कि, मैं खोल चाहते मेकफ़ाइल का हिस्सा बनने के लिए कार्य करें। ऐसा करने का सबसे शानदार तरीका क्या है? बोनस पॉइंट्स यदि आप बिना कॉल किए इसे कॉल कर सकते हैं।
पृष्ठभूमि: मेरे वास्तविक समस्या यह है कि make -n
एक बहुत लंबा और अपठनीय उत्पादन उत्पादन होता है। प्रत्येक नियम अपठनीय शैल आदेशों के लगभग समान अनुक्रम का उपयोग करता है, और कई नियम हैं। उपरोक्त समाधान make -n
का उत्पादन अधिक उपयोगी बना देगा।
मैंने किया है @JonathanLeffler 'नहीं कर सके कहा -n बनाने टी नहीं किया जा सकता है?मैं कम से कम एक महीने के लिए खुद से प्रसन्नता से प्रसन्न होने जा रहा हूं। – Beta
क्यों न केवल कोड को एक शेल स्क्रिप्ट में डालें और उसे कॉल करें? – reinierpost