Chinaunix首页 | 论坛 | 博客
  • 博客访问: 124730
  • 博文数量: 30
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 280
  • 用 户 组: 普通用户
  • 注册时间: 2015-12-14 10:05
个人简介

坚持学习,每天进步一点点……

文章分类

全部博文(30)

文章存档

2017年(13)

2016年(17)

分类: LINUX

2016-01-28 21:56:03

makefile中常用的函数

    makefile中常用函数列表如下:
    

名称

格式

含义

字符串处理部分

subst

$(subst from,to,$(text))

将字符串text中的from换成to

patsubst

$(patsubst %.mk, %.o, $(text))

$(text)变量中所有以.mk结尾的单词替换为.a结尾。

strip

$(strip $(text))

去除$(text)变量首尾的空格,变量中的空格不去除

findstring

$(findstring $(find) $(in))

在字符串$(in)中查找$(find).若找到则返回$(find),若未找到返回空

filter

$(filter $(pattern1)   $(patternn),$(in))

pattern1patternn的规则过滤$(in),输出过滤后的字符串。filterpattern1pattern1patternn之间均用空格分隔

filter-out

$(filter-out $(pattern1)         $(patternn),$(in))

filter功能相反,是反过滤函数

sort

$(sort $(in))

$(in)中各单词的首字母按照从小到大的顺序进行排列,返回排列后并去除重复单词的字符串

word

$(word N,$(word))

取出$(word)中的第N个单词,若超过单词的长度,则返回空。

wordlist

$(word M,N,$(word))

取出$(word)中从第M到第N个单词,若M超过单词的长度,则返回空。若N超过单词的数量,则返回从M开始知道字符串结束的单词。

words

$(words $(word))

统计$(word)中包含多少个单词

firstword

$(firstword $(word))

取出$(word)中的第一个单词

目录部分

dir

$(dir $(names))

从文件名序列$(names)中取出目录部分。取出的目录是指最后一个/之前的部分,若没有则返回./

notdir

$(notdir $(names))

从文件名序列$(names)中取出非目录部分。即最后一个/后的部分

suffix

$( suffix $(names))

从文件名序列$(names)中取出所有文件的后缀,若没有,返回空

basename

$( basename $(names))

从文件名序列$(names)中取出所有文件名的前缀。若没有,返回空。

test.txt /home/sfc0907/test.c的前缀是:/home/sfc0907/

addsuffix

$( addsuffix $(suffix),$(names))

将后缀$(suffix)添加到文件名序列$(names)中所有文件名之后

addprefix

$( addprefix $(prefix),$(names))

将前缀$( prefix)添加到文件名序列$(names)中所有文件名之前

join

$( join $(list1),$(list2))

$(list2) 中的内容对应的加到$(list1)后面。若不对应则不加

foreach

$( foreach $(var), $(list),$(text))

控制循环。$(var)是一个临时变量,在循环结束后自动失效,$(list)是一个表达式,$(text)通常包含$(var)变量来依次枚举$(list)中的单词。

if

$(if $(condition),$(then))或者是$(if $(condition),$(then), $(else))

if的参数可以是两个也可是三个,若$(condition)的值不为空或条件判断为真,则执行$(then),否则执行$(else)或什么也不执行

call

$(call $(expression),$(par1), $(par2), $(par3)……)

call用于调用用户自己定义的函数。

origin

$(origin $(variable))

查询变量的定义信息

shell

$(shell $(command), $(par1), $(par2), $(par3)……)

$(command)表示需要执行的shell命令,$(par1), $(par2), $(par3)是该命令的参数,返回shell命令的执行结果

阅读(1584) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~