2013-06-18 2 views
5

मेरे पास एक विशाल ऑटोटूल-संचालित प्रोजेक्ट है जो एक निर्देशिका पेड़ में रहता है जिसमें उपनिर्देशिकाओं के साथ कई निर्देशिकाएं होती हैं। इसे check (प्रत्येक उपनिर्देशिका के साथ-साथ मुख्य निर्देशिका में) भी लक्षित किया गया है जो पूरे स्वचालित परीक्षणों को निष्पादित करता है। check लक्ष्य दोबारा बनाया गया है।मेक: एकल लक्ष्य के लिए उपनिर्देशिका में समानांतर इमारत को अक्षम करें केवल

बिल्डिंग के साथ-साथ समानांतर में परीक्षण (-j विकल्प के माध्यम से) अधिकांश निर्देशिकाओं के लिए काम करता है। हालांकि एक निर्देशिका है जिसमें परीक्षण होता है जो समानांतर (समय संवेदनशीलता) में निष्पादित होने पर काम नहीं करता है, लेकिन क्रमशः चलाने पर गुजरता है।

सवाल यह है: क्या इस तरह के एक उपनिर्देशिका में समानांतर में check लक्ष्य क्रमशः लक्ष्य बनाने के लिए मजबूर करने का कोई तरीका है?

+0

एकमात्र चाल जो मैं सोच सकता हूं वह धारावाहिक जांच के लिए झूठी निर्भरता डालना है। मैन्युअल में एक [मूल विचार] (http://www.gnu.org/software/automake/manual/automake.html#true) है। –

+0

लक्ष्य को एक-दूसरे पर निर्भर करके इसे बनाने का तरीका क्यों हल नहीं करें? – reinierpost

उत्तर

1

अगर मैं तुम्हें सही ढंग से समझ में आया, तो जब आप उस check लक्ष्य बनाता है पुनरावर्ती मेक चलाने तुम सिर्फ -j1 विशेष रूप से पारित कर सकते हैं, यह सुनिश्चित करें कि यह क्रमानुसार चलाता है:

check: ; $(MAKE) -j1 ... 
+0

मैं कोशिश करता हूं कि जब मुझे कुछ मिनट मिल जाए। – arne

+0

यह काम नहीं करता है: यह मुझे चेतावनी देता है: -जेएन –

+1

सबमिशन में मजबूर करता है यह बिल्कुल काम करता है। हाँ, आपको एक चेतावनी मिलेगी। लेकिन यह समानांतर में नौकरियां नहीं चलाएगा। NOTPARALLEL का उपयोग क्लीनर है यदि आप हमेशा उस मेकफ़ाइल के प्रत्येक आमंत्रण को समानांतर नहीं चलाना चाहते हैं (केवल एक विशिष्ट आमंत्रण के बजाय एक विशिष्ट आमंत्रण के बजाय), और आप मेकफ़ाइल बदल सकते हैं। यदि इनमें से एक या दोनों सत्य नहीं हैं, तो NOTPARALLEL कम सहायक है। – MadScientist

6

अपने Makefile में जोड़ें:

.NOTPARALLEL:

जीएनयू के दस्तावेज देखें here

संबंधित मुद्दे