一、Makefile包含内容
1、显示规则:显示规则说明一个文件如何由其他文件生成,由编写者指明生成的文件、文件的依赖条件以及生成的命令;
2、隐式规则:make会有自动推导功能,简略写makefile;
3、变量定义:makefile中定义了一系列的变量,一般都是字符串;
4、文件指示:包括3部分,在makefile中包含另一个文件;根据情况执行部分命令,类比条件编译;定义一个多行命令;
5、注释:“#”表示注释,如果需要用到“#”字符,则使用“#”进行转义;
二、make文件命名
可以为GNUmakefile,makefile,Makefile,一般为Makefile!使用其他文件名作为Makefile,如下格式
make -f Make.linux或者make file Make.linux
三、引用其他的Makefile文件
可以使用如下格式:
#include <filename>
其中的filename可以包含路径和通配符。include和filename之间可以用若干空格隔开,但是不能用tab隔开!如果没有指定路径,则会在当前目录中找;在make执行时,有“-I”或者“–include-dir”参数,在此参数指定的文件目录中找;如果目录/include如(usr/include或者usr/local/bin)存在的话,make也会取其中寻找。
如果都没有找到,则会生成警告信息,但仍会继续载入其他文件;makefile读取完成还没有找到,则会出现第二条致命信息并退出。
四、环节变量
MAKEFILES环境变量,make对这个变量值做一个类似include动作,只是从这个变量中引入的值不会起作用,出问题,make也不理。
五、make执行步骤
1、读入所有的makefile;
2、读入被include的其他makefile;
3、初始化文中的变量;
4、推导隐晦公式,并分析所有的规则;
5、创建依赖关系键;
6、根据依赖关系,决定哪些目标重新生成;
7、执行生成命令;