/ / एक और मेकफाइल - मेकफाइल से निर्भरता प्राप्त करें

एक और मेकफ़ाइल - मेकफ़ाइल से निर्भरता प्राप्त करें

मैं इस तरह से कई मेकफाइल्स का उपयोग करने की कोशिश कर रहा हूं:

में ~/generator/Makefile:

foo.xml: foo-part1.xml foo-part2.xml foo-part3.xml
./generate $^ > $@

और में ~/some/other/dir/Makefile:

foo.xml:
$(MAKE) -C ~/generator $@
mv ~/generator/$@ $@

समस्या यह है: जब मैं जाता हूं ~/some/other/dir/ और भाग खड़ा हुआ make foo.xml, के लिए कोई निर्भरता सूची नहीं है foo.xml, तथा make -C ~/generator foo.xml isn "t भी अगर (उदाहरण के लिए) कहा जाता है ~/generator/foo-part1.xml लक्ष्य से नया है।

एकमात्र उपाय जिसका मैंने सोचा था कि निरपेक्ष पथ के साथ निर्भरता सूची की प्रतिलिपि बनाई जा रही है ~/some/other/dir/Makefile, जो काफी भयानक है:

foo.xml: ~/generator/foo-part1.xml ~/generator/foo-part2.xml ~/generator/foo-part3.xml

फिर, मेरा सवाल यह है: क्या पूछने के लिए एक मेकफाइल में एक तरीका है एक और makefile लक्ष्य की निर्भरताएँ क्या हैं? या केवल अनुरोध को आगे बढ़ाने के लिए foo.xml उस मेकफाइल और परिणाम को इकट्ठा करने के लिए? मैं मूल रूप से दूसरा मेकफाइल चाहता हूं कि वह पहले एक पर भरोसा करे जब यह तय हो जाए कि क्या लक्ष्य को फिर से बनाया जाना चाहिए, और जब इसे बनाने की बात आती है।

उत्तर:

जवाब के लिए 0 № 1

मैंने दूसरे मेकफाइल में दो नियम बनाकर इसे हल किया:

और में ~/some/other/dir/Makefile:

.PHONY: ~/generator/foo.xml
~/generator/foo.xml:
$(MAKE) -C ~/generator $(notdir $@)

foo.xml: ~/generator/foo.xml
cp $< $@