Make浅谈
一、What’s Make
- 代码变成可执行文件叫做编译(compile);先编译这个,还是先编译那个(即编译的安排),叫做构建(build);
- make只是一个根据指定的Shell命令进行构建的工具。它的规则很简单,你规定要构建哪个文件、它依赖哪些源文件,当那些文件有变动时,如何重新构建它;
二、Makefile的格式
1.概述
- Makefile文件由一系列make的构建规则组成;每条规则的组成形式如下:
<target> : <prerequisites> <commands>
- 前置条件和命令都是可选项,但是必须至少存在一个;
2.target
- 一般情况,target为文件名,指明make命令要构建的对象(当为多个文件名时,需要用空格隔开);
- target也可以是操作的名字,同时为了和当前目录中已存在的文件重复,需要声明其为伪目标,如下:
.PHONY: clean clean : rm *.o temp
3.prerequisites
- 前置条件通常是一组文件名,之间用空格分隔。它指定了”目标”是否重新构建的判断标准:只要有一个前置文件不存在,或者有过更新(前置文件的last-modification时间戳比目标的时间戳新),”目标”就需要重新构建。
4.commands
- 命令(commands)表示如何更新目标文件,由一行或多行的Shell命令组成。它是构建”目标”的具体指令,它的运行结果通常就是生成目标文件。