makefile 简介
makefile就是一个简单的文本文件,它基本上就是由一条条的规则构成。下面,我们就来看一下makefile里的最基本的语法单元,规则。一条makefile的规则构成如下:
target:prerequisites
<tab> command1
<tab> command2
.....
<tab> commandN
- target:规则的目标,可以简单理解为这条规则存在的目的是什么。通常是程序中间或者最后需要生成的文件名,也可以不对应具体的文件,而仅仅就是个概念上的规则目标。
- prerequisites:规则的依赖列表,可以简单的理解为要达到本条规则的目标所需要的先决条件是什么。可以是文件名,也可以是其他规则的目标;
- command:规则的命令,可以简单的理解为当目标所需要的先决条件的满足了之后,需要执行什么动作来达成规则的目标。规则的命令其实就是shell命令。一条规则中可以有多行命令,特别注意:每行命令都必须以tab键开始!
make 的工作机理
make命令的基本使用范式如下:
make [ -f makefile ] [ options ] ... [ targets ] ...
使用make命令的最简单的方式主要有以下四种形式:
- 简单粗暴,不带任何参数,直接执行make:
$ make
- 指定makefile文件:
$ make -f <makefile_name>
- 指定 makefile 目标:
$ make <target>
- 到指定目录下执行make:
$ make -C <subdir> <target>