मेरे पास एक मेकफाइल है जो बनाता है और फिर एक और मेकफाइल कहता है। चूंकि यह मेकफाइल अधिक मेकफाइल्स को कॉल करता है जो वह काम करता है जो वास्तव में नहीं बदलता है। इस प्रकार यह सोचता रहता है कि यह परियोजना निर्मित और अद्यतित है।
dnetdev11 ~ # make
make: `release' is up to date.
मैं लक्ष्य को फिर से बनाने के लिए मेकफिल को कैसे मजबूर करूं?
clean = $(MAKE) -f ~/xxx/xxx_compile.workspace.mak clean
build = svn up ~/xxx \
$(clean) \
~/cbp2mak/cbp2mak -C ~/xxx ~/xxx/xxx_compile.workspace \
$(MAKE) -f ~/xxx/xxx_compile.workspace.mak $(1) \
release:
$(build )
debug:
$(build DEBUG=1)
clean:
$(clean)
install:
cp ~/xxx/source/xxx_utility/release/xxx_util /usr/local/bin
cp ~/xxx/source/xxx_utility/release/xxxcore.so /usr/local/lib
नोट: मासूमों की सुरक्षा के लिए नाम हटाए गए
संपादित करें: अंतिम निश्चित संस्करण:
clean = $(MAKE) -f xxx_compile.workspace.mak clean;
build = svn up; \
$(clean) \
./cbp2mak/cbp2mak -C . xxx_compile.workspace; \
$(MAKE) -f xxx_compile.workspace.mak $(1); \
.PHONY: release debug clean install
release:
$(call build,)
debug:
$(call build,DEBUG=1)
clean:
$(clean)
install:
cp ./source/xxx_utillity/release/xxx_util /usr/bin
cp ./dlls/Release/xxxcore.so /usr/lib
.PHONY
कि यह आपकी एकमात्र समस्या नहीं थी, और आप वास्तव में प्रश्न में समाधान को संपादित करने के लिए नहीं हैं, या कम से कम अब और नहीं।)