最近在看google开源项目中,发现有部分makefile语法不是很清楚,想想要对make语法规则做一下梳理,以后好查问题,由于本人能力有限,可能有些纰漏。
makefile文件是告诉make如何去编译和链接程序语言文件
make的概念
make是一个工具程序,经由读取叫做makefile的文件,自动话构建软件
make a.txt
makefile的文件格式
构建规则都写在makefile文件里面,所以需要学会如何编写makefile
概述
makefile文件有一系列规则构成,每个规则结构如下:
target ... : prerequistes ...
command
...
...
target可以是一个object file,也可以是一个执行文件,还可以是一个标签。
prerequisites就是要生成那个target所需要的文件或者目标(即为素材)。
command是make需要执行的命令(任意的shell命令)。
这是一个文件的依赖关系,也就是说,target这个或者多个的明白文件依赖于prerequisites中的文件,其生成规则定义在command。说白一点就是说,prerequisites中如果有一个以上的文件比target文件要更新的话,command所定义的命令就会被执行。