generate_testapi.py
मेरे लिनक्स कर्नेल मॉड्यूल के स्रोत पेड़ में एक स्क्रिप्ट बनें, जो mymod_test.h
में प्रवेश करता है और उपयोगकर्तालैंड (ioctl, debugfs, आप इसे नाम दें) की ओर एक इंटरफ़ेस स्रोत फ़ाइल उत्पन्न करता है, और यह $(obj)/mymod_test_interfaces.gen.c
नाम देता है।Kbuild में जेनरेट की गई स्रोत फ़ाइल पर निर्भरता कैसे जोड़ें?
Kbuild makefile में mymod-y
वस्तु फ़ाइलों कि मॉड्यूल फार्म की सूची को शामिल चर, यानी रहने दो
कैसे एक Kbuild-ish नियम देखो की तरह, उस वस्तु फ़ाइल कहते हैं संकलित रूप में स्रोत उत्पन्न करता है से करता है Mymod की निर्भरता और पीढ़ी की प्रक्रिया का वर्णन करता है।
निम्नलिखित, इस तरह के नियम सेट पर मेरा पहला निष्पक्ष प्रयास काम नहीं करता है।
obj-m := mymod.o
mymod-y := \
mymod_kmod.o \
$(obj)/mymod_test_interfaces.gen.o
$(obj)/mymod_test_interfaces.gen.o: $(src)/mymod_test.h $(src)/generate_testapi.py
$(src)/generate_testapi.py < $(src)/mymod_test.h > $<
उस के साथ make
की कोशिश कर रहा है, जिसके परिणामस्वरूप त्रुटि है, वहाँmymod_test_interfaces.gen.o
बनाने के लिए नहीं नियम यह है कि।
अद्यतन (एलेक्जेंडर Belloni द्वारा टिप्पणी की वजह से)
हाँ, मैं भी रूप के एक जनरेटर नियम
$(obj)/mymod_test_interfaces.gen.c: $(src)/mymod_test.h $(src)/generate_testapi.py
$(src)/generate_testapi.py < $(src)/mymod_test.h > $<
ही परिणाम है, जो है, कि यह काम नहीं करता साथ की कोशिश की ।
नहीं करना चाहिए ' t my myodod_test_interfaces.gen.o mymod_test_interfaces.gen.c हो? –
@AlexandreBelloni: यही वह है जिसे मैं ढूंढने की कोशिश कर रहा हूं। अच्छी टिप्पणी, लेकिन निश्चित रूप से मैंने यह भी कोशिश की और नहीं, यह वांछित परिणाम नहीं दिया। – datenwolf