मैं आमतौर पर विकल्प का उपयोग करते हुए "मेक लाइन" से "मेकफाइल" तक मैक्रो परिभाषाओं को पास करता हूं: -डैम = मान। परिभाषा मेकफिल के अंदर उपलब्ध है।
मैं इसी तरह के संकलक विकल्प का उपयोग करके "मेकफाइल" से "स्रोत कोड" तक मैक्रो परिभाषाओं को भी पास करता हूं: -Dname = मूल्य (कई संकलक में समर्थित)। स्रोत कोड में यह परिभाषा सुलभ है।
अब मुझे क्या चाहिए, मेरे मेकफाइल के उपयोगकर्ता को "मेकिंग। कमांडलाइन" से "सोर्स कोड" तक मनमानी मैक्रो परिभाषाओं को पास करने में सक्षम होने की अनुमति है, बिना मेकफाइल में कुछ भी बदलने के लिए।
इसलिए उपयोगकर्ता टाइप कर सकता है: make -f mymakefile.mk -SOMEOPTION var = 5
फिर सीधे कोड main.c var देख सकते हैं:
int main()
{
int i = var;
}