通配符

$@ 目标集合

$< 第一个依赖文件

$^ 所有依赖文件

$? 执行结果

% 表示任意长度的字符

$$$$ 随机数

@<command> 执行时不输出该命令到控制台

变量赋值

=  直接赋值

:= 未定义赋值

+= 追加赋值

?=

Makefile函数

在Makefile中可以使用函数来处理变量,函数的返回值可以当做变量来使用。
函数调用,很像变量的使用,也是以“$”来标识的,其语法为:$( )或${ }。
参数间以逗号分隔,函数名和参数间以空格分隔。函数调用以“$”开头,以圆括号或花括号把函数名和参数括起。

1) wildcard

objects := $(wildcard *.o)

等价于objects := a.o b.o xxx.o

2) subst

$(subst FROM, TO, TEXT),即将字符串TEXT中的子串FROM变为TO

3) patsubst

$(patsubst <pattern>, <replacement>, <text>)

查找text中的单词(以空格、Tab、回车、换行分隔)是否符合pattern模式,如果匹配,则以replacement替换。其中,pattern可以包括通配符%,表示任意长度的字符串。

4) filter

$(filter PATTERN…,TEXT)

函数功能:过滤掉字串“TEXT”中所有不符合模式“PATTERN”的单词,保留所有符合此模式的单词。可以使用多个模式。模式中一般需要包含模式字符“%”。存在多个模式时,模式表达式之间使用空格分割。 
返回值:空格分割的“TEXT”字串中所有符合模式“PATTERN”的字串。

5) filter-out

$(filter-out <pattern>, <text>)

顾名思义,反过滤函数,返回text中不匹配pattern的字符串

6) firstword

$(firstword NAMES…) 
函数名称:取首单词函数—firstword。 
函数功能:取字串“NAMES…”中的第一个单词。 
返回值:字串“NAMES…”的第一个单词。 
函数说明:“NAMES”被认为是使用空格分割的多个单词(名字)的序列。函数忽略“NAMES…”中除第一个单词以外的所有的单词。

7) $(var:a=b)

把var中所有以a字符串结尾的a替换成b字符串,结尾指空格或者结束符。

8) strip

$(strip STRINT) 
函数名称:去空格函数—strip。 
函数功能:去掉字串(若干单词,使用若干空字符分割) “STRINT”开头和结尾的
空字符,并将其中多个连续空字符合并为一个空字符。 
返回值:无前导和结尾空字符、使用单一空格分割的多单词字符串。 
函数说明:空字符包括空格、[Tab]等不可显示字符。

9) findstring 查找字符串函数

$(findstring <find>, <in>)

在in中查找find字符串,如果找到,返回find,否则返回空字符串。

10) sort 按照升序排序函数

$(sort <list>)

11) word

$(word <n>, <text>)

取单词函数,取text字符串中第n个字符,从1开始计数。

示例$(word 2, foo bar baz)返回bar

12) wordlist

$(wordlist <s>, <e>, <text>)

取单词串,在text中取s到e的单词串

13) words

$(words <text>)

统计text字符串中的单词个数

调试技巧

$(info xxx)

$(warning xxx)

$(error xxx)

GNU Makefile手札相关推荐

  1. 【开发工具】之windows下gnu makefile编写

    序  本文旨在示例怎么编写windows下的makefile, 依赖于"GnuWin32",可自行网上下载. 安装方法一: 下载网址:http://gnuwin32.sourcef ...

  2. GNU makefile 学习 - ongoing

    资料: <跟我一起写makefile>---中文,baiduNetdisk http://www.gnu.org/software/make/manual/make.html 转载于:ht ...

  3. GNU Makefile中文手册

    搜了十几分钟找gun Makefile中文手册的下载地址,结果不是要积分就是要下载券,索性爬梯子去找. 现在把百度云链接分享给需要的朋友. 提取码:gd03 点击提取码获取.

  4. Android 的NDK的Makefile编写

    Android.mk 是google根据Linux GNU Makefile精简编译脚本.具体来说:这就是GNU Makefile的一小部分. 举一个简单例子: LOCAL_PATH := $(cal ...

  5. 自动生成Makefile的全过程详解

    automake/autoconf入门 作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefil ...

  6. Linux下Makefile的automake生成全攻略--转

    http://www.yesky.com/120/1865620.shtml 作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下 ...

  7. 【Android.mk】android编译系统makefile文件Android.mk的写法

    (1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件.由于一般情况下 Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式: LOCAL_PATH:=$ ...

  8. ALSA(二), makefile, Autotools, premake

    http://antkillerfarm.github.io/ 从Gstreamer到ALSA(续) 4.SOC_SINGLE类宏 这里对SOC_SINGLE类的宏,详细说明一下,因为只有这些宏才是真 ...

  9. 使用AutoMake轻松生成Makefile

                                                                     许明彥 摘要:在 Unix 上写过程序的人一般都遇到过 Makefil ...

最新文章

  1. 程序员学历低,该被歧视吗? | 每日趣闻
  2. 重庆python培训-重庆python培训机构排.行榜
  3. POJ 2709 Painter
  4. oracle数据库查询代码,ORACLE数据库查询表实例代码
  5. Python 去除序列s中的重复元素
  6. leetcode84. 柱状图中最大的矩形
  7. SAP HANA如何在存储过程中使用自定义的table type
  8. 基本排序算法比较与选择
  9. 第十五章:进程间通信
  10. 教你炒股票19:学习缠中说禅技术分析理论的关键
  11. BSOD 0x00000133
  12. 桌面计算机找不到硬盘,bios找不到硬盘完美解决方法 选择STATConfigur
  13. 20172301 《程序设计与数据结构》第六周学习总结
  14. 携手李连杰壹基金计划 创慈善博客
  15. 2022年上半年中国企业员工主动离职率大幅下降至6%;三成以上中国企业大部分高管岗位没有后备人选 | 美通社头条...
  16. 《IDSSIM:基于改进的疾病语义相似度方法的lncRNA功能相似度计算模型》论文梳理
  17. SSH日期录入,日期精确不能精准到时分秒处理
  18. Jquery hiden() 与 .css('visibility','visible') 区别
  19. paillier同态加密
  20. quick-and-dirty如何翻译

热门文章

  1. 跨境电商各平台的入驻条件都有哪些?
  2. 快速打开文件命令行的三种方法
  3. 简书Android APP上线了
  4. 用学过的python写一个计算三角形面积和周长
  5. 俄罗斯方块游戏及排行榜——c语言
  6. C++打印沙漏问题分析
  7. java字符串相加_String字符串相加的原理
  8. 编写可维护软件的不朽代码随想-2
  9. scrapy爬取昆工信自院导师信息
  10. 用python计算成绩_Python使用splinter自动登录教务系统查询并计算成绩(CUMT新版教务系统)...