一个简单的makefile文件包含一系列的“规则”,如下
目标... : 依赖...
<TAB>命令
目标是要生成的文件名称,一般是可执行文件或OBJ文件或一个执行的动作名称,诸如“clean”
(每个命令前面必须是一个tab字符)
1.makefile文件里的赋值方法
变量的定义语法形式如下:
immediate = deferred
immediate ?= deferred
immediate : = deferred
immediate + = deferred or immediate
define immediate
deferred
endef
在GNU make中对变量的赋值有两种方式:延时变量、立即变量。前者意指在使用到该变量时值才确定,后者在定义时值就已经确定。
使用“=”、“?=”定义或使用define指令制定的变量时延时变量,使用“:=”定义的变量时立即变量。注意“?=”用来定义第一次出现的延时变量
对于附加操作符“+=”,右边变量如果在前面使用(:=)定义为立即变量则它也是立即变量,否则均为延时变量。