यकीन है, लेकिन जब आप यह चाहते हैं कि उन्हें बाहर थूकना है?
लक्ष्य का नाम रिपोर्ट करने के लिए, जब वह नियम चलाता है, नियम में एक पंक्ति डालें:
foo$(VAR): $(PREREQS)
@echo now making the foo target: $@
do_other_stuff...
एक बार में उन सभी को बाहर निकालने के लिए, आप एक अलग PHONY लक्ष्य बना सकते हैं:
.PHONY: show_vars
show_vars:
@echo foo$(VAR)
@echo bar$(PARAM) blah$(FLAG)
# and so on
और इसे आपके डिफ़ॉल्ट लक्ष्य की शर्त बनाया जा सकता है:
all: show_vars
...
संपादित करें:
आप एक मनमाना मेकफिल के सभी संभावित लक्ष्यों को दिखाने का एक तरीका चाहते हैं, जो मुझे लगता है कि इसका मतलब गैर-घुसपैठ है। कुंआ...
बिल्कुल ऐसा करने के लिए, और परिष्कृत मेकफाइल्स के साथ सामना करने में सक्षम होने के लिए, उदाहरण के लिए eval
बयानों द्वारा निर्मित नियम शामिल हैं , आपको मेक एमुलेटर के करीब कुछ लिखना होगा। अव्यावहारिक।
सरल नियमों के लक्ष्यों को देखने के लिए, आप एक मेकफाइल लिख सकते हैं जो एक मेकफाइल स्कैनर के रूप में काम करेगा, जो मनमाने ढंग से मेकफाइल पर काम कर रहा है:
- Sed का उपयोग करते हुए makefile से सभी लक्षित नाम प्राप्त करें।
- `चर शामिल करने के लिए इसका इस्तेमाल करने के लिए मेकफाइल को शामिल करें।
- `Show_% का उपयोग करें:; सभी लक्ष्यों को मुद्रित करने के लिए $ $ * प्रतिध्वनि करें
यह एक प्रभावशाली कृति होगी। क्या आप सुनिश्चित हैं कि लक्ष्य प्रयास के लायक है?