深入探究Makefile:构建与依赖管理优化
1. 修改后的Makefile
为了在源文件内容发生变化时重新构建目标文件,我们可以使用一个检查源文件MD5校验和的Makefile。以下是完整的Makefile代码:
to-md5 = $1 $(addsuffix .md5,$1)
.PHONY: all
all: foo.o
foo.o: $(call to-md5,foo.c foo.h)
%.md5: FORCE
@$(if $(filter-out $(shell cat $@ 2>/dev/null),$(shell md5sum $*)),md5sum $* > $@)
FORCE:
在这个Makefile中, foo.o 的依赖列表从 foo.c foo.h 变为 $(call to-md5,foo.c foo.h) 。 to-md5 函数会为参数中的所有文件名添加 .md5 后缀,展开后 foo.o 的依赖变为 foo.c foo.h foo.c.md5 foo.h.md5 。这意味着只要 .md5 文件或源文件 foo.c 、 foo.h 有更新, foo.o 就会被重新构建。
为确保 .md5
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



