《专业嵌入式软件开发》——读书笔记——makefile

规则语法:

目标(target):先决条件(prerequisites)

命令(command)

……


.PHONY(假目标,phony target)

.PHONY: clean


自动变量:

$@:用于表示一个规则中的目标。当一个规则中有多个目标时,$@所指的是其中任何造成规则命令被运行的目标。

$^:表示的是规则中的所有先决条件。

$<:表示的是规则中的第一个先决条件。


变量的类别与赋值:

递归扩展变量(recursively expanded variable):使用“=”符号定义。递归展开。

简单扩展变量(simply expanded variable):使用“:=”符号定义。只展开一次。


"?="条件赋值:当变量没有被定义时就定义它,若已定义则不改变其原值。

"+="追加赋值:在原值后面追加。


函数:

  1. abspath:将路径名转换成绝对路径并返回。eg:$(abspath name)
  2. addprefix:增加前缀并返回。eg:$(addprefix prefix, name)
  3. addsuffix:增加后缀并返回。eg:$(addsuffix suffix, name)
  4. eval:使make再一次解析text语句并返回空字符串。eg:$(eval text)
  5. filter:模式匹配(过滤)并返回满足pattern的内容。eg:$(filter pattern, text)
  6. filter-out:类似filter,只是返回是过滤后余下的部分。
  7. notdir:从路径中抽取文件名并返回。eg:$(notdir names)
  8. patsubst:将符合pattern的名字替换为replacement并返回替换后的名字。eg:$(patsubst pattern, replacement, text)
  9. realpath:返回name所对应的真实路径名。eg:$(realpath name)
  10. strip:清除名字列表中多余的空格并返回。eg:$(strip string)
  11. wildcard:获取满足pattern的文件或目录名列表。eg:$(wildcard pattern)




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值