目录
1.什么是make,makefile?
简单的说make是一个命令,实现的功能是读入Makefile文件。通过makefile文件来描述源程序之间的相互关系并自动维护编译工作
假如写了一个简单程序,只要两个源文件,输入:
gcc file1.c file2.c
此时只有两个文件需要编译,工作量大吗?如果是只有其中几个源文件发生改变,只需要编译 发生改变的源文件,采用如下办法:
gcc file1.o file2.o ... file40.c ...
但是这样不能解决频繁输入问题,这时候就出现Makefile,这个文件决定源文件之间依赖关系,还决定源文件什么时候被编译。Makefile通常和相关源文件保存在同一个目录下
2.Makefile 规则
规则:一般用于解释怎样和何时重建目标,通常一个依赖发生变化就需要规则调用命令更新或创建目标(但是不是所有目标都需要依赖 如 clean 它作用是清除文件,没有依赖) 。此时需要make首先调用命令处理依赖,才能创建和更新目标。
规则样式如下:
目标:依赖
<TAB>命令
目标:可以是可执行文件或OBJ文件或只是一个执行动作,如clean
依赖:产生目标需要的材料(比如源文件)
命令:生成目标执行的动作,一个规则可以含几个命令,每个命令占一行(命令行前面必须有Tab缩 进不能空格)
一个专业的makefile文件通常可以用于实现安装make install 和 make check等额外目标
3.Makefile常用函数
函数调用格式:
$(function arguments)
function:函数名 arguments:函数参数
参数和函数名用空格或者Tab键隔开,多个参数用都好隔开
3.1 字符串替换和分析函数 
3.2 文件名函数
4. Makefile实例