ฉันมี makefile ที่สร้างแล้วเรียก makefile อื่น เนื่องจาก makefile นี้เรียกใช้ makefiles เพิ่มเติมที่ใช้งานได้จริง ๆ มันจึงไม่เปลี่ยน ดังนั้นจึงยังคงคิดว่าโครงการนี้ถูกสร้างขึ้นและทันสมัย
dnetdev11 ~ # make
make: `release' is up to date.
ฉันจะบังคับให้ makefile สร้างเป้าหมายใหม่ได้อย่างไร
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
ไม่ใช่ปัญหาเดียวของคุณและคุณไม่ควรแก้ไขคำตอบให้กับคำถามหรืออย่างน้อยก็ไม่ใช่อีกต่อไป)