Makefile之函数:firstword、origin、patsubst、wildcard、

一、firstword

  函数格式:$(firstword<text>)

  函数作用:取出text字符串中的第一个单词

  返回值:获取到的单词。

二、origin

  函数格式:$(origin <variable>)

  函数作用:origin是函数,它不操作变量的值

  返回值:是变量来源

  举例:

#如果变量V是在命令行中定义的,那么它的变量来源就是command line
#如果编译的时候再命令行中输入V=1,即make V=1,那么
#"$(origin V)"则和"command line"相等,,若V=1,那么KBUILD_VERBOSE=1

ifeq ("$(origin V)", "command line")
  KBUILD_VERBOSE = $(V)
endif

三、patsubst

  函数格式:$(patsubst<pattern>,<replacement>,<text>)
  函数功能: patsubst是替换函数,在text中查找符合pattern的部分,如果匹配的话就用replacement替换掉。
  返回值:返回替换后的text

  举例:

#在script/basic中查找符合“tpl/%”的部分,然后将tpl/取消掉,但没有符合,故src=script/basic

src :=$(patsubst tpl/%,%,scripts/basic)

#将libs-y中的/替换为/built-in.o
 libs-y      := $(patsubst %/, %/built-in.o, $(libs-y))

四、wildcard

  函数格式:$(wildcard PATTERN)
  函数功能: 获取匹配 PATTERN 的所有对象
  返回值::使用空格分割的匹配对象列表

原文地址:https://www.cnblogs.com/keepdoing123/p/15515702.html