makefile中的常用关键字和函数

记录一下makefile中常用的函数和关键字:

Makefile学习之路(3) — Makefile的函数_makefile findstring_Willliam_william的博客-CSDN博客

makefile中函数的调用格式为:

$(function argument1, argument2, argument3)

 其中的function为函数名,argument是参数,函数名与参数之间用空格或者Tab隔开,如果有多个参数,之间用逗号隔开。

关键字功能
ifeq判断是否相等,相等则为true
ifneq判断是否不相等,不相等则为true
ifdef判断是否有值,有值则为true
ifndef判断是否没有值,没有值则为true

1、wildcard

$(wildcard pattern) 

查找pattern中指定的【目录+文件名】若不写目录则默认为当前目录,在函数名与参数之间用空格隔开就行

A = $(wildcard dir/*.c dir/*.o)

all:
	@echo A = $(A)

2、patsubst

$(patsubst pattern,replacement,text)

对于text中每一个用空格隔开的值,将取出后,如果这个符合pattern的格式,就把它替换成 replacement 格式,然后将这些值用空格连接起来后作为函数的返回值;

A = a.c b.c c.bin d.c e.c abc
B = $(patsubst %.c,%.o,$(A))

all:
	@echo B = $(B)

字符串替换和分析函数

3、subst

$(subst from,to,text)

对于text字符串中每一个from字符(串),替换为to字符(串),然后作为函数的返回值;

A = a.c b.c c.bin d.c e.c abc
B = $(subst c,o, $(A))

all:
	@echo A = $(A)
	@echo B = $(B)

4、patsubst

5、strip

$(strip string)

去掉string中前面和结尾的空格,将中间的多个空格压缩为单个空格

A = "  a.c    b.c c.bin d.c   e.c abc"
B = $(strip $(A))

all:
	@echo A = $(A)
	@echo B = $(B)

6、findstring

$(findstring find,in)

在字符串in中搜寻find字符(串),如果找到,则返回find字符(串),否则返回值为空。

A = a.c b.c c.bin d.c e.c abc
B = $(findstring c.bin, $(A))

all:
	@echo A = $(A)
	@echo B = $(B)

7、filter

$(filter pattern1 pattern2 pattern3, text)

对于text中每一个用空格隔开的值,依次取出后,找到符合格式pattern格式(可以有多种格式,用空格隔开)的值,然后将这些值用空格连接起来后作为函数的返回值

A = a.c b.o c.s d/ e.bin
B = $(filter %.s %/ %.c, $(A))

all:
	@echo B = $(B)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值