- 总是能在 Makefile 里面看到好多目标的依赖列表中包含一个
FORCE,如:
vmlinux: scripts/link-vmlinux.sh $(vmlinux-deps) FORCE
FORCE是一个伪目标,一般是像下面这样定义的
PHONY +=FORCE
FORCE:
# Declare the contents of the .PHONY variable as phony. We keep that
# information in a variable so we can use it in if_changed and friends.
.PHONY: $(PHONY)
由上面的定义可知,FORCE是个伪目标,它的规则没有依赖没有命令。
如果一个规则里没有依赖也没有命令,并且它的目标不是已存在的文件名,那么每次执行这条规则时,make就认为这个目标被更新,该目标就被视为最新的。
在第一个代码块中,FORCE 做为依赖每次遇到都被认为是最新的,因此目标 vmlinux 也是每次都要被更新(即它的命令必执行,目标必须要比它的依赖还要 " 新 " )
博客介绍了Makefile里伪目标的相关内容。提到在Makefile目标依赖列表中常见伪目标,其规则无依赖和命令,若目标不是已存在文件名,每次执行规则make会认为目标被更新。如特定伪目标作为依赖时,其关联目标每次都会被更新。
5万+

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



