के एकाधिक हिस्सों में एक उपसर्ग के रूप में एक चर लागू करना मेरे पास एक छोटा जावा प्रोजेक्ट है जिसे मैं मेकफ़ाइल का उपयोग करके बनाना चाहता हूं, कोड src/package... /*.java
में है, बाइटकोड bin/package.../*.class
पर जाना चाहिए।
मेरे वर्तमान फ़ाइल की तरह इस (सरलीकृत) दिखता है:मेकफ़ाइल - किसी अन्य चर के
JC = javac
SRCDIR = src
BINDIR = bin
JCFLAGS = -d $(BINDIR)/
CLASSES = $(SRCDIR)/package/class1.java $(SRCDIR)/package/class2.java $(SRCDIR)/package/class3.java
default:
$(JC) $(JCFLAGS) $(CLASSES)
यह काम करता है और क्या यह होना चाहिए है, लेकिन वहाँ यह करने के लिए एक और अधिक सुरुचिपूर्ण तरीका हो गया है।
उदाहरण के लिए, क्या सभी वर्ग फ़ाइल नामों के उपसर्ग के रूप में पथ ($(SRCDIR)
और पैकेज का नाम) लागू करने का कोई तरीका है, इसलिए मुझे हर वर्ग के सामने पथ को अलग-अलग नहीं रखना है?
सभी वर्गों, एक javac-कॉल में संकलित की के रूप में वहाँ उन में परिपत्र निर्भरता हैं, इसलिए प्रत्येक वर्ग के लिए एक स्वयं के लक्ष्य का उपयोग काम नहीं करता है:
default: $(CLASSES)
%.java:
$(JC) $(JCFLAGS) $(SRCDIR)/[email protected]
आपकी मदद के लिए धन्यवाद।