मैनुअल में:मेकफ़ाइल में कैसे eval फ़ंक्शन का उपयोग किया जा सकता है?
eval समारोह बहुत ही खास है: यह आप नए makefile निर्माणों कि स्थिर नहीं कर रहे हैं परिभाषित करने के लिए अनुमति देता है; जो का परिणाम अन्य चर और कार्यों का मूल्यांकन कर रहे हैं। Eval फ़ंक्शन का तर्क विस्तारित किया गया है, उसके बाद उस विस्तार के परिणाम मेकफ़ाइल सिंटैक्स के रूप में पार्स किए गए हैं।
यह जानना महत्वपूर्ण है कि eval तर्क दो बार विस्तारित किया गया है; पहले eval फ़ंक्शन द्वारा, तो उस विस्तार के परिणाम फिर से विस्तारित होते हैं जब उन्हें मेकफ़ाइल सिंटैक्स के रूप में पार्स किया जाता है। इसका मतलब है कि को eval का उपयोग करते हुए "$" वर्णों से बचने के अतिरिक्त स्तर प्रदान करने की आवश्यकता हो सकती है।
"विस्तारित दो बार" मुझे भ्रमित करता है।
define func
tmp = $(OBJPATH)/$(strip $1)
objs += $$(tmp)
$$(tmp) : $2
gcc $$^ -o [email protected]
endef
all : foo
$(eval $(call func, foo, 1.c))
कैसे eval समारोह विस्तार किया जाएगा:
उदाहरण के लिए, मैं एक makefile बनाने?
"eval फ़ंक्शन का विस्तार कैसे किया जाएगा?" या तुमने कोशिश की? – Beta