我有一個基於生成文件的構建系統,它構建一些庫和依賴關係,並將它們放入壓縮歸檔中。 我有一個問題,在依賴鏈中刪除中間依賴只會導致make構建整個部分。刪除製造中的中間依賴關係
我的鏈看起來是這樣的:
.PHONY: all
all: targets
objs/myprog: src/myprog.c
gcc -c $< -o [email protected]
bin/myprog: objs/myprog
cp $< [email protected]
archive.tar.gz: bin/myprog
cd bin && tar -czf ../archive.tar.gz *
.PHONY: targets
targets: archive.tar.gz bin/myprog objs/myprog
如果我刪除斌/ MYPROG然後運行make
然後objs/myprog
被編譯,但它是不複製到bin/myprog
,歸檔不重建。如果我再次運行make
,則執行兩個缺失的步驟。
任何想法,我可能做錯了,或者這是打算的行爲或缺點?
'targets:archive.tar.gz bin/myprog objs/myprog'有點多餘。它也可以是'targets:archive.tar.gz' – 2011-05-19 15:12:20