GNU make 规则

clean :  
    rm *.tmp

 

规则格式:

targets : prerequisites
    recipe
    ...


targets : prerequisites :    recipe
    recipe
    ...

target:  中文为目标,一般指目标文件名。即你编译产生的目标文件。

prerequisite:依赖,目标文件的依赖文件。make根据prerequisite的时间戳来判断target是否需要更新。

recipe:中文指烹饪方法。这里指的是使用prerequisite生成target的方法。如gcc tmp.c -o tmp。recipe行的开始符号一般为\tab。你也可以通过设置.RECIPEPREFIX变量来使用其他字符,而非tab。

 

不是所有target都需要前置依赖的,target也不一定非的是一个文件名,如 

clean :
    rm *.tmp

 

 当我们执行make clean 时,他会执行相应的shell命令删除所有的tmp文件。

  clean这种没有前置依赖的target属于phony target,即伪目标。他不会生成相应的文件。由于没有前置依赖,伪目标被视为永远最新,所以make不会自动执行伪目标(除非显示的make target)。

  凡事有特殊,处于首行的target为默认target。如果phony target在首行,会被默认执行。

  

 

posted @ 2016-08-08 15:36  三复苏  阅读(241)  评论(0编辑  收藏  举报