1.makefile文件的组成内容
makefile主要由一下5部分组成:
- 显示规则:显示规则说明了生成一个或多个目标文件的方法和步骤。这是在编写makefile文件时明显指出的,包括要生成的文件、生成文件的依赖文件及生成的命令等。
- 隐式规则:由于make工具有自动推导的功能,所以在编写makefile文件的时候可以利用该规则,简略的书写makefile,再由makefile工具本身自动推导需要使用的规则。
- 变量的定义:make工具支持变量的定义,这些变量往往都是字符串,因此makefile中的变量更像是C语言中的宏。当makefile被执行时,其中的变量都会被展开到相应的位置上。
- 文件指示:其中包括3部分,一部分是在一个makefile中引导另外一个makefile,就像C语言中的include一样。另一部分是根据某些情况指定makefile中的有效部分,就像C语言中的预编译#if一样。还有一部分就是定义一个多行的命令。
- 注释:makefile中支持行注释,用“#”字符。如果需要#字符,要使用“\”对其进行转义。
2.makefile文件包含
makefile文件的文件名最好命名为makefile或者Makefile。因为在默认的情况下,make命令会在当前目录下按循序寻找这两个文件进行解释。
用户也可以为makefile文件自定义文件名,如果使用了自定义的makefile,在执行make时就要添加特定的参数:-f或-file,如下:
make -f makefile.make
在makefile中使用include关键字可以把其他的makefile包含进来:
include <文件名> #例如:include /home/admin/make.mk#该语句表示当前makefile文件包含/home/admin目录下的make.mk文件 文件名>
3.make工具的退出码
makefile文件执行后有一个退出码,该退出码有以下三种情况。
- 0:表示makefile文件执行成功
- 1:表示makefile文件执行时出现了错误
- 2:如果用户使用了make的-q选项,并且make使一些目标不需要更新,则返回2