= make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。
:= 表示变量的值决定于它在makefile中的位置,而不是整个makefile展开后的最终值。
?= 是如果没有被赋值过就赋予等号后面的值
+= 是添加等号后面的值
$@ 目标文件
$^ 所有的依赖文件
$< 第一个依赖文件。
原文:http://www.cnblogs.com/ZXNblog/p/4004875.html