我有一个基于生成文件的构建系统,它构建一些库和依赖关系,并将它们放入压缩归档中。 我有一个问题,在依赖链中删除中间依赖只会导致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