https://blog.youkuaiyun.com/xiaoshuai537/article/details/79340153
1. Makefile会默认执行或生成第一个target,如果是动作,就执行动作,如果是target,就会默认生成这个文件;
2. 可以通过$object对一组文件进行命名;
3. phony 用于指定操作,避免当前目录存在和操作同名的文件,误认为是target文件
如:
clean:
rm *.o temp
因为"rm"命令并不产生"clean"文件,则每次执行"make clean"的时候,该命令都会执行。如果目录中出现了"clean"文件,则规则失效了:没有依赖文件,文件"clean"始终是最新的,命令永远不会 执行;为避免这个问题,可使用".PHONY"指明该目标。如:
.PHONY : clean
这样执行"make clean"会无视"clean"文件存在与否。
4. makefile中:=, ?=,=的不同:
= 是最基本的赋值
:= 是覆盖之前的值
?= 是如果没有被赋值过就赋予等号后面的值
+= 是添加等号后面的值
5. 在makefile中可以通过include,直接include其他路径下的makefile,此时变量也是可以直接传递给其他makefile文件的。