首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Makefile中的函数

在Makefile中,函数是一种处理或操作变量和文本的方法。Makefile中的函数可以用来执行各种操作,例如字符串处理、文件名操作、条件判断等。

Makefile中的函数可以使用$(function_name)的形式来调用。函数可以接受参数,并且可以返回值。函数可以嵌套调用其他函数。

常用的Makefile函数包括:

  • subst:替换字符串中的一部分。
  • patsubst:使用通配符替换字符串中的一部分。
  • strip:删除字符串开头和结尾的空格。
  • findstring:在字符串中查找指定的子字符串。
  • filter:从一个列表中过滤出符合条件的项。
  • sort:对一个列表进行排序。
  • word:从一个字符串中提取指定位置的单词。
  • words:将一个字符串按空格分割成一个单词列表。
  • firstword:提取一个字符串中的第一个单词。
  • lastword:提取一个字符串中的最后一个单词。

Makefile中的函数可以大大简化Makefile的编写和维护。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Makefile中部分函数使用

notdir 把展开文件路径去掉,只显示文件名而不包含其路径信息,例如: FILES =(notdir (SOURCES)) 这行作用是把上面以 .c 结尾文件文件列表附带路径去掉,只显示符合条件文件名...patsubst ( patten substitude, 匹配替换缩写)函数。它需要3个参数:第一个是一个需要匹配式样,第二个表示用什么来替换它,第三个是一个需要被处理由空格分隔字列。...参考文献 Makefileforeach函数使用方法:https://blog.csdn.net/yanlaifan/article/details/71402771 Makefilewildcard...、notdir、patsubst函数用法:https://blog.csdn.net/zqj6893/article/details/9066225 Makefilewildcard用法:Makefile...: Frytea Title: Makefile中部分函数使用 Link: https://blog.frytea.com/archives/466/ Copyright: This work

1.2K40

Makefile:=, =, ?=和+=含义

Makefile语法,时不时会见到各种“=”号赋值语句,除了常见“=”和“:=”,还有“?=”等 那么这些赋值等号分别表示什么含义呢?...“=” “=”是最普通等号,然而在Makefile确实最容易搞错赋值等号,使用”=”进行赋值,变量值是整个makefile中最后被指定值。...在make时,会把整个makefile展开,拉通决定变量值 “:=” 相比于前面“最普通””=”,”:=”就容易理解多了。”:=”就表示直接赋值,赋予当前位置值。...因此相比于”=”,”:=”才是真正意义上直接赋值。 “?=” “?=”表示如果该变量没有被赋值,则赋予等号后值。举例: VIR ?...= new_value 这种情况下,VIR值就是old_value “+=” “+=”和平时写代码理解是一样,表示将等号后面的值添加到前面的变量上

1.1K20

Makefile】简单Makefile编写

(任意Shell命令) 这是一个文件依赖关系,也就是说,target这一个或多个目标文件依赖于prerequisites文件,其生成规则定义要在command。...这就是Makefile规则,也就是Makefile中最核心内容。...如果找到,它会找文件第一个目标文件(target),例如上面示例test_demo,并把这个文件作为最终目标文件。...---- Make变量 一个Makefile我们发现经常会有重复内容,例如上面示例: test01.o test02.o main.o 如果我们需要再加入一个新.o文件,那么好几个地方都需要修改...所以,为了makefile易维护,在makefile我们可以使用变量。makefile变量也就是一个字符串。可以理解为C语言中宏。

94410

MakefileShell脚本简介

给很多刚接触Makefile的人: 1、Makefile可以嵌入shell脚本,而且能像shell脚本中一样,各种命令、控制结构都可使用。 2、Makefile主要结构是 ......3、Makefileshell,不同行在不同进程执行,不同行直接不能传递变量,所以很多时候shell都尽量使用反斜杠()来把相关内容串成一行。...4、Makefile变量和shell变量是两个不同东西,并且为了避免Makefile变量和shell变量冲突,引用Makefile变量最好使用$(Makefile_Var),引用shell变量时最好使用...5、Makefile多字符变量只能使用$(VAR)或${VAR}来引用,不能使用$VAR,$VAR会被解释成$(V)AR....但如果在纯粹shell编程,纯shell脚本里可以使用$VAR来引用VAR这个变量。 收藏于 2012-08-08

2K80

makefile 常用函数notdir、wildcard、patsubst

notdir,wildcard和patsubst是makefile几个有用函数,以前没留意过makefile函数用法,今天稍微看看~ 1、makefile函数 makefile函数使用...,和取变量值类似,是以一个‘$’开始,然后是一个括号里面是函数名和需要参数列表,多个变量用逗号隔开,像这样 return = $(functionname arg1,arg2,arg3…)。.../foo/下所有以.c结尾文件,生成一个以空格间隔文件名列表,并赋值给SRC.当前目录文件只有文件名,子目录下文件名包含路径信息,比如./foor/bar.c。...传说中万能makefile ###########################################################  # Generic makefile   #  ....:  #  # 現在來改變任何你想改動隱含規則變量,例如  CFLAGS := -g -Wall -O3 -m486  CXXFLAGS := $(CFLAGS)  # The next bit

1.5K40

Makefile 使用

命令被执行 2 个条件:依赖文件比目标文件新,或是 目标文件还没生成。 ③ 先介绍 Makefile 2 个函数 A....3.4 Makefile 常用函数 函数调用格式如下: $(function arguments) 这里function是函数名,arguments是该函数参数。...参数和函数名之间是用空格或 Tab 隔开, 如果有多个参数,它们之间用逗号隔开。这些空格和逗号不是参数值一部分。 内核 Makefile 中用到大量函数,现在介绍一些常用。...3.4.2 文件名函数 (1)$(dir names…) 抽取names...每一个文件名路径部分,文件名路径部分包括从文件名首字符到最后一个斜 杠(含斜杠)之前一切字符。...函数结果是由空格隔开text 在list多次扩展后,得到新list,就是说:text 多次扩展字串联起来,字与字之间由空格隔开,如此就产生了函数 foreach 返回值。

4.3K42

芯片设计Makefile简明教程

Makefile可以做什么? Makefile可以根据指定依赖规则和文件是否有修改来执行命令。常用来编译软件源代码,只需要重新编译修改过文件,使得编译速度大大加快。...示例一: simv: tb.sv dut.v vcs -full64 -sverilog tb.sv dut.v 这个例子,simv是目标,是我们要生成仿真执行文件。.../simv -xxx 这个例子,sim并不是要生成结果文件,而只是我们给操作起一个名字。由于伪目标总是不存在,所以命令也一定会重新执行,即使simv没有修改。...shell find rtl -name "*.v") simv: $(tbfile) $(rtlfile) vcs -full64 -sverilog $(tbfile) $(rtlfile) 例七...所以示例七命令可以简化成: simv: $(tbfile) $(rtlfile) vcs -full64 -sverilog $^ 学到到这里你已经可以写出大部分Makefile脚本了。

1.9K50

makefile伪目标的理解

我们知道Makefile语法是这样: target ... : prerequisites ... command … … 2....Test: a.o b.o   gcc -o Test a.o b.oclean:  rm *.o 我们可以单独这么运行: make a.o 或者 make b.o 或者 make clean 注意上面三个区别...前两个都会生成目标,而第三个不会生成目标,仅仅希望执行所在规则(clean)定义命令(rm)。 这个时候就需要伪目标出马了:目的不是为了生成目标,仅仅是希望执行其所在规则定义后面的命令。 3....为什么要使用伪目标: 1)避免在我们Makefile定义只执行命令目标和工作目录下实际文件名字出现冲突。...(比如,假如当前目录有一个clean文件,那么上面的 make clean 就不能达到我们预期了) 2)提高执行效率,被声明为伪目标后,make在执行此规则时不会视图去查找隐含规则来创建这个目标。

1.5K80
领券