当前位置: 首页 > news >正文

makefile-- 其他函数

fuctions

join

​$(join <list1>,<list2>)

连接函数

把list2 中单词对应的添加到list1 的后面

若list1 的单词个数> list2 ,多出的list1  保持不变

若list2 的单词个数> list21,多出的list2 添加到list1 后面

foreach

​$(foreach <var>,<list>,<text>)

for循环函数

把list的单词逐一取出放在参数 var 里面,然后在执行text所包含的表达式

call

​$(call <function>,<param1>,<param2>,...)

call 调用其他的函数

param1 对应$(1) ,以此类推

origin

​$(origin var)

查询var变量的来源

有如下几种返回值

default,默认的

environment,环境变量

undefined,未定义的

file,makefile内定义的

command line

override,被override重新定义的

automatic,自动化变量

shell

​$(shell  pwd)

 可以与awk 和sed 使用

error

​$(error  <texts> )

makefile 控制函数,输出error 信息 

warning

​$(warning  <texts>)

makefile 控制函数,输出warning 信息

example 

list1 := 111 222 333
list2 := aaa bbb ccc ddd 
list :=  $(join $(list1),$(list2) ) ################################################
#### foreach var,list,text
####  loop in list ,and put evevy item in var and do  text 
################################################
for_data= item env monitor 
rst_for := $(foreach var,$(for_data),$(var).sv )################################################
#### common if 
#### when  condition return is not "" [strip xxx],call  'then_part' ,else call 'else part' 
#### $(if <condition>,<then patr>,<else part> ) 
#### $(if <condition>,<then patr>) 
rst_if = $(if name==ryz, name is ryz,name is not ryz)################################################
#### call function,param1,param2,param3,....
#### call others functions 
################################################
max=$(2) $(1).sv
rst_call:=$(call max,119,33)################################################
#### origin var 
#### tell var from 
#### if var not define ,return undefined
#### if define in makefine ,return file
#### if var is a default  ,return default 
#### if var is a environment and make not -e option ,return environment
#### if define in makefine ,return file
#### return command line 
#### return override 
#### return automatic 
################################################
var_file := llll
var_file:=$(origin $(var_file) )
var_undefined = $(origin $(var_no) )################################################
#### shell 
#### using awk and sed         
################################################rst_pwd := $(shell pwd)################################################
#### makefile control functions 
#### $(error text),quit now
#### $(warning text),only type text,not quit
################################################
warning_info := $(warning get a warning msg)
error_info =$(error  get an error)ifdef ERROR_MSG$(error_info)
endiferr:$(error_info)war:$(warning_info)all:@echo $(list)@echo $(rst_for)@echo $(rst_if)@echo $(rst_call)@echo $(var_file)@echo $(rst_pwd)

http://www.dtcms.com/a/291401.html

相关文章:

  • Linux PCI总线子系统
  • 网络基础DAY15-RSTP
  • OpenGL鼠标控制沿着指定轴旋转
  • linux --frp内网穿透
  • 低速信号设计之 RMII
  • 服务器系统时间不准确怎么办?
  • C++ 中的默认构造函数:非必要,不提供
  • 缓存数组,并遍历循环读取数组
  • springboot实战篇1
  • Windows VS2019 编译 Apache Thrift 0.15.0
  • DigitalOcean 云平台上线 AMD MI325X GPU Droplet 服务器
  • 如何编写假设和约束---SRS软件需求规格指南系列
  • accelerate 在Pycham中执行的设置方法
  • C语言字符串相关函数
  • 【网络编程】网络传输-protobuf
  • Prometheus+altermanager搭配钉钉报警
  • 【PTA数据结构 | C语言版】旅游规划
  • qwen 提示词
  • 试用SAP BTP 02B:试用SAP HANA Cloud
  • Spring处理器和Bean的生命周期
  • Jenkins 不同节点间文件传递:跨 Job 与 同 Job 的实现方法
  • 西门子 WinCC预定义报警控件过滤条件
  • 尚庭公寓的结构
  • claude code提示词设计
  • 【前端】jszip+file-saver:多个视频url下载到zip、页面预加载视频、预览视频、强制刷新视频
  • AV1平滑缓冲区
  • 闲庭信步使用图像验证平台加速FPGA的开发:第二十七课——图像腐蚀的FPGA实现
  • Spring Boot05-热部署
  • Android开发中ANR治理方案
  • RSTP协议