Make - लिनक्स कमांड - युनिक्स कमांड

मेक - प्रोग्रॅमचे गट राखण्यासाठी GNU युटिलिटि बनवा

सारांश

[ -f मेकफाइल ] [पर्याय] ... लक्ष्य करा ...

चेतावणी

हे पृष्ठ GNU बनविलेले कागदपत्रांचे एक अर्क आहे . हे केवळ काही वेळाच अद्ययावत केले जाते कारण GNU प्रोजेक्ट nroff वापरत नाही. संपूर्ण, वर्तमान दस्तऐवजीकरणासाठी, इन्फो फाइल करा info.info पहा जे Texinfo स्रोत फाइल make.texinfo वरून तयार केले आहे .

वर्णन

मेक युटिलिटीचा उद्देश स्वयंचलितरित्या निश्चित आहे की कोणत्या मोठ्या कार्यक्रमाचे कोणते भाग पुनः कंपाइल करायची आणि त्यांना पुन्हा कंपाइल करण्याच्या आदेशांना जारी करणे आवश्यक आहे. मॅन्युअलमध्ये मेकच्या जीएनयू अंमलबजावणीचे वर्णन केले आहे, जे रिचर्ड स्टॉलमन आणि रोलँड मॅक्ग्रा यांनी लिहिले होते. आमची उदाहरणे सी प्रोग्राम दर्शवतात कारण ते सर्वात सामान्य आहेत, परंतु आपण कोणत्याही प्रोग्रामिंग भाषेसह मेक वापरू शकता ज्याचे कम्पायलर शेल कमांडने चालू शकतात. खरेतर, प्रोग्रामसाठी मर्यादित नाही. आपण ते कोणत्याही कार्याचे वर्णन करण्यासाठी वापरू शकता जिथे इतर फाईल्स इतरांकडून आपोआप अद्ययावत होण्याची आवश्यकता आहे.

मेक वापरण्यासाठी तयार करण्यासाठी , आपण एक मेसेफाइल नावाची एक फाइल लिहावी जी आपल्या प्रोग्राममधील फायलींमधील संबंधांचे वर्णन करते आणि प्रत्येक फाईल अद्ययावत करण्याच्या आज्ञा दर्शवते. एका कार्यक्रमात सामान्यत: एक्झिक्युटेबल फाईल ऑब्जेक्ट फाईल्सवरून अद्ययावत केलेली असते, जी त्या स्त्रोत फाइल कंपाईल करून बनविल्या जातात.

एक योग्य makefile अस्तित्वात केल्यानंतर, प्रत्येक वेळी आपण काही स्रोत फाइल्स बदलू शकता, ही शेल कमांड आहे:

बनवा

सर्व आवश्यक पुनरंभने करण्यास पुरेसे आहे मेक प्रोग्रॅम मेसेफाइल डेटा बेस आणि फाइल्सच्या शेवटच्या-दुरुस्ती वेळाचा वापर करते जे निर्णय घ्यावयाच्या आहेत. प्रत्येक फाईल्ससाठी, हे डेटाबेसमध्ये रेकॉर्ड केलेल्या कमांड्सची समस्या काढते.

एक किंवा अधिक लक्ष्य नावे अद्यतनित करण्यासाठी मेकफाइलमध्ये आज्ञा कार्यान्वीत करा, जेथे सामान्यपणे एक कार्यक्रम असतो जर no -f पर्याय उपलब्ध असेल तर, त्या क्रमाने मेकफाइल जीएनयुमेकफाइल , मेकफाइल आणि मेकफाइल पाहा .

साधारणपणे आपण आपल्या मेसेफाइलला मेकफाइल किंवा मेकफाइल म्हणू शकता. (आम्ही मेफीफाइलची शिफारस करतो कारण ती निर्देशिका सूचीच्या सुरवातीला जवळ येते, इतर महत्त्वाच्या फाइली जसे की README जवळ आहे.) पहिले नाव तपासले गेले आहे, GNUmakefile हे बहुतेक मेकफील्ससाठी शिफारस केलेले नाही. जर आपण एक मेकफाइल तयार केली असेल जी GNU बनविण्यासाठी विशिष्ट आहे, आणि मेकच्या इतर आवृत्त्यांद्वारे समजणार नाही तर आपण हे नाव वापरावे. मेकफाइल `- 'असल्यास, मानक इनपुट वाचला जातो.

लक्ष्य शेवटचे संपादीत झाल्यापासून किंवा लक्ष्य अस्तित्वात नाही तर सुधारित केलेल्या पूर्वगलीच्या फाइल्सवर अवलंबून असल्यास लक्ष्य अद्ययावत करा .

पर्याय

-बी

-एम

हे पर्याय मेकच्या इतर आवृत्त्यांसह सुसंगततेकडे दुर्लक्ष केले जातात.

-सी डीअर

मेकफाइल वाचण्यापूर्वी किंवा इतर काहीही करत करण्यापूर्वी निर्देशिका निर्देशिकामध्ये बदला. जर एकाधिक- सी पर्याय निर्देशीत केले असल्यास, त्यातील प्रत्येक पूर्वीच्या एकाशी सापेक्ष केले आहे: -C / -C इत्यादी- C / etc शी समतुल्य आहे. हे विशेषतः मेकच्या पुनरावर्ती आमंत्रणाने वापरले जाते.

-डी

सामान्य प्रक्रिया व्यतिरिक्त डीबगिंग माहिती प्रिंट करा. डीबगिंगची माहिती म्हणते की कोणत्या फायली पुनर्मेक्डीसाठी विचारात घेण्यात येत आहेत, कोणत्या फाईल-टाइम्सची तुलना केली जात आहे आणि कोणत्या परिणामांमुळे कोणत्या फाइल्सची पुनर्रचना करण्याची गरज आहे, कोणते अनिवार्य नियम विचारात घेतले जातात आणि कोणते लागू केले जातात - प्रत्येक गोष्टी कोणत्या गोष्टी ठरवितात याबद्दल मनोरंजक काय करायचं.

-e

मेकफाइलपासूनच्या व्हेरिएबल्सच्या पर्यावरणातील अग्रक्रमाने घेतलेल्या व्हेरिएबल्स द्या.

-f फाईल

मेसेफाइल म्हणून फाइल वापरा.

-i

फायली रीमेक करण्यासाठी वापरल्या जाणार्या आज्ञांमध्ये सर्व त्रुटी दुर्लक्षित करा

-आई dir

समाविष्ट केलेल्या मेकफाइलचा शोध घेण्यासाठी निर्देशिका निर्देशिका निर्दिष्ट करते. जर अनेक-डी पर्यायांचा उपयोग अनेक डिरेक्टरीज दर्शविण्याकरीता केला जातो, तर निर्देशीत क्रमवारीत निर्देशिकेत शोधले जातात. मेकच्या इतर ध्वजांवरील वितर्कांप्रमाणे, -आय ध्वजांकरीता दिलेली निर्देशिका थेट ध्वज नंतर येऊ शकते: -आय डीआयआरची अनुमती आहे, तसेच -आय डीर. या सिन्टॅक्सला सी प्रीप्रोसेसर च्या -आय फ्लॅगशी सुसंगततेसाठी अनुमती आहे.

-j नोकर्या

एकाच वेळी चालविण्यासाठी जॉब (कमांड्स) ची संख्या निर्दिष्ट करते. एकापेक्षा अधिक -जे पर्याय असल्यास, शेवटचा एक प्रभावी आहे. जर -जे पर्याय आर्ग्यूमेंटशिवाय दिला असेल, तर एकाच वेळी कार्यरत असलेल्या नोकर्यांची संख्या मर्यादित करणार नाही.

-के

त्रुटी नंतर शक्य तेवढ्याच पुढे चालू ठेवा अयशस्वी होणारे लक्ष्य आणि त्यावर अवलंबून असलेले, पुन्हा तयार केले जाऊ शकत नाही, परंतु या लक्ष्यांच्या इतर अवलंबनांवर सर्व प्रक्रियांवर प्रक्रिया केली जाऊ शकते.

-एल

-ल लोड

निर्दिष्ट करते की नवीन रोजगार (कमांडस्) सुरू झाल्या पाहिजेत जर इतर नोकर्या चालू असतील आणि भार सरासरी किमान लोड (एक फ्लोटिंग-पॉइंट नंबर) असेल. एकही युक्तिवाद न करता, मागील लोड मर्यादा काढून टाकते

-एन

कार्यान्वीत होईल अशी आज्ञा मुद्रित करा, परंतु ती कार्यान्वित करू नका.

-o फाईल

फाईल फाइलची पुनरावृत्ती करू नका जरी ती त्याच्या अवलंबनांपेक्षा जुनी असली, आणि फाइलमधील बदलांमुळे काहीही रीमेक करू नका. मूलत: ही फाइल खूपच जुनी समजली जाते आणि त्याचे नियम दुर्लक्षित केले जातात.

-पी

मेकफाइल वाचण्यास परिणाम करणारे डेटा बेस (नियम आणि परिवर्तनशील मूल्ये) प्रिंट करा; नंतर नेहमीप्रमाणे कार्यान्वित करा किंवा अन्यथा निर्दिष्ट करा हे देखील -v स्विच (खाली पहा) द्वारे दिलेली आवृत्ती माहिती प्रिंट करते. कोणतीही फाइल रीमेक न करता डेटा बेस मुद्रित करण्यासाठी, make -p -f / dev / null वापरा

-कडी

`` प्रश्न मोड ''. कोणत्याही आज्ञा चालवू नका किंवा काहीही प्रिंट करू नका; निर्दिष्ट लक्ष्य आधीच अद्ययावत असल्यास, अन्यथा नॉनजरओ असल्यास शून्य असणारे निर्गमन स्थिती परत करा.

-आर

अंगभूत निहित नियमांचा वापर कमी करा. प्रत्यय नियमांकरिता प्रत्ययांची डिफॉल्ट सूची देखील काढून टाका.

-स्

मूक ऑपरेशन; ते कार्यान्वित केल्याप्रमाणे आदेश प्रिंट करू नका.

-एस

-k पर्यायचा प्रभाव रद्द करा. हे कधीही रिकर्सिव करण्याशिवाय वगळता आवश्यक नाही जेथे -K कदाचित मॅक्फ्लग्ज द्वारे उच्च स्तरीय करातून किंवा आपण आपल्या वातावरणात मॅकेफ्लग्ज मध्ये सेट केले असल्यास, वारशाने जाऊ शकता .

-टी

फाईल्स स्पर्श करा (त्यांना खरोखर बदल न करता त्यांचे चिन्हांकित करा) त्यांच्या आदेश चालवण्याऐवजी हे आचारसंहिता भोगल्याबद्दल भविष्यकाळासाठी बेतक करण्यासाठी आदेश दिले गेले.

-वी

मेक प्रोग्रामची आवृत्ती आणि कॉपीराइट, लेखकाची एक सूची आणि नोटीसची कोणतीही मुद्रण करा ज्यात कोणतीही हमी नाही.

-उ

इतर प्रक्रियेच्या आधी आणि नंतर कार्यरत निर्देशिका असलेला संदेश प्रिंट करा. पुनरावर्ती मेक आज्ञावलींच्या गुंतागुंतीच्या घरट्यांमधील चुका तपासण्यासाठी हे उपयुक्त असू शकते.

-W फाईल

ढोंग करा की लक्ष्य फाईल नुकतीच बदलली आहे. -n फ्लॅगसह वापरताना , हे दाखवते की आपण त्या फाईलमध्ये फेरबदल करायचे असल्यास काय होईल. विना- एन , चालविण्याआधी दिलेल्या फाइलवर टच कमांड चालविणे जवळपास सारखेच आहे, सिवाय हे बदलण्याची वेळ केवळ मेकच्या कल्पनेत बदलली आहे.