जीएनयू मेक -B
विकल्प है जो मौजूदा लक्ष्यों को अनदेखा करने के लिए make
को मजबूर करता है। यह एक लक्ष्य को पुनर्निर्माण करने की अनुमति देता है, लेकिन यह लक्ष्य के सभी निर्भरता पेड़ का पुनर्निर्माण भी करता है। मुझे आश्चर्य है कि अपनी निर्भरताओं के पुनर्निर्माण के बिना लक्ष्य को पुनर्निर्माण करने का कोई तरीका है (जीएनयू मेक विकल्प, मेकफ़ाइल में सेटिंग्स, संगत make
-जैसे सॉफ़्टवेयर इत्यादि)? समस्या काक्या अपनी निर्भरताओं के पुनर्निर्माण के बिना लक्ष्य (मेक-बी) के पुनर्निर्माण को मजबूर करने का कोई तरीका है?
उदाहरण:
$ mkdir test; cd test
$ unexpand -t4 >Makefile <<EOF
huge:
@echo "rebuilding huge"; date >huge
small: huge
@echo "rebuilding small"; sh -c 'cat huge; date' >small
EOF
$ make small
rebuilding huge
rebuilding small
$ ls
huge Makefile small
$ make small
make: 'small' is up to date.
$ make -B small
rebuilding huge # how to get rid of this line?
rebuilding small
$ make --version | head -n3
GNU Make 4.0
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2013 Free Software Foundation, Inc.
बेशक
एक rm small; make small
कर सकते हैं, लेकिन वहाँ एक अंतर्निहित तरीका है?
-o FILE, --old-file=FILE, --assume-old=FILE Consider FILE to be very old and don't remake it.
संपादित
मुझे लगता है कि आप प्रलेखन ग़लत व्याख्या कर रहे हैं:
करता है [इस सवाल] (http://stackoverflow.com/questions/12199237/बताते-से-अनदेखा-निर्भरता-जब-शीर्ष-लक्ष्य-निर्मित किया गया है) आपकी मदद करता है? – sycko
धन्यवाद, लेकिन अधिक नहीं: जैसा कि मैंने 'ls' का उपयोग करके दिखाया है, 'विशाल' यहां संरक्षित है (बिना' सिकंदरी: 'लक्ष्य) और पुनर्निर्माण' -B' के कारण है। –