मैं एक कंपाइलर के लिए एक (gmake) मेकफ़ाइल लिखना चाहता हूं - जीसीसी के विपरीत - सभी आउटपुट फ़ाइलों को एक विशिष्ट निर्देशिका में रखता है। दुर्भाग्यवश यह व्यवहार बदला नहीं जा सकता है।मेकफ़ाइल, पैटर्न-नियम और निर्देशिका
मेरे स्रोत एकाधिक निर्देशिका में हैं। मैं पैटर्न-नियम कैसे लिखूं जो मुझे स्रोतों को संकलित करने देता है।
ठीक है, यह थोड़ा अस्पष्ट है। यहाँ एक उदाहरण है। मेरे सूत्रों यह पसंद कर सकते हैं देखने के लिए:
./folder1/foo.c
./folder2/bar.c
और आउटपुट फ़ाइलें इस तरह खत्म हो जाएगा:
./obj/foo.obj
./obj/bar.obj
कैसे मेरा नियम मेरी सूत्रों की तरह लग रहे संकलित करने के लिए करना चाहिए?
%.obj : %.c
$(COMPILER) -c $<
काम नहीं करेगा।
कोई विचार? मैं एक स्रोत फ़ाइल के लिए एक अंतर्निहित नियम से बचना चाहते हैं ...
आप उस के लिए 'VPATH' का उपयोग कर सकते हैं = या = आप 'फ़ोल्डर 1/मेकफ़ाइल' और 'ओबीजे/मेकफ़ाइल' बना सकते हैं जिसमें '/fffof.inc' शामिल होगा, जिसमें सामान्य नियम होना चाहिए (उदाहरण के लिए एक जो आपने दिया है)। –