这是学习此处文章摘要的点:http://blog.csdn.net/haoel/article/category/9198/3
1.这个是Makefile文件的格式:
target ... : prerequisites ;command
command...
...
target:目标,在Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要让make知道你的最终目标是什么。一般来说,定义在Makefile中的目标可能会有很多,但是第一条规则中的目标将被确立为最终的目标。如果第一条规则中的目标有很多个,那么,第一个目标会成为最终的目标。make所完成的也就是这个目标。
command是命令行,如果其不与“target:prerequisites”在一行,那么,必须以[Tab键]开头,如果和prerequisites在一行,那么可以用分号做为分隔。
make命令执行的依据:prerequisites中如果有一个以上的文件比target文件要新的话,command所定义的命令就会被执行。这就是Makefile的规则。也就是Makefile中最核心的内容。
一般来说,make会以UNIX的标准Shell,也就是/bin/sh来执行命令
2.整个make的依赖性:make会一层又一层地去找文件的依赖关系,直到最终编译出第一个目标文件。
3.在Makefile中的命令必须要以Tab键开头(注意此处只是说命令);
4.可以使用-f参数来引用Makefile文件,比如:make -f Make.Linux
5.包含其他Makefile文件:
语法:include <filename> 注意:在include之前可以有一些空格,但决不能是Tab键开头
6.make的工作方式:
1、读入所有的Makefile。
2、读入被include的其它Makefile。
3、初始化文件中的变量。
4、推导隐晦规则,并分析所有规则。
5、为所有的目标文件创建依赖关系链。
6、根据依赖关系,决定哪些目标要重新生成。
7、执行生成命令。
7.显示命令:当我们用“@”字符在命令行前,那么,这个命令将不被make显示出来,最具代表性的例子是,我们用这个功能来像屏幕显示一些信息