热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

make内置函数call

在make中,内置函数call用来扩展变量或者宏,它的语法如下:$(callmacro-name[,param1])call会扩展它的第一个参数并把其余参数依次替换到出现$1

在make中,内置函数call用来扩展变量或者宏,它的语法如下:

$(call macro-name[, param1 ...])

call会扩展它的第一个参数并把其余参数依次替换到出现$1、$2 ......的地方,macro-name 可以是任何宏或变量的名称。macro-name之后是宏的参数,并以逗号为分隔符。
call的第一个参数是一个非扩展式变量名称,即它并非以一个美元符号开始。call的参数检查机制非常简单,你可以为call指定任意多个参数。如果一个宏引用了一个参数$n,但是调用它的call实例并未指定相应的参数,那么该变量就会变成空值。如果call实例所指定的参数比宏的$n引用还多,那么在宏中并不会扩展额外的参数。
使用示例:
Makefile:

tbl = ./syscall_32.tbl
systbl = ./systbl.sh
changed = true
if_changed = $(if $changed, $(call $(1)) $<$@, @:)
a.h:$(tbl) $(systbl)
$(call if_changed, systbl)

systbl.sh:

#!/bin/sh
in="$1"
out="$2"
echo "begin to generate $out from $in ..."

运行结果:

$ make
./systbl.sh syscall_32.tbl a.h
begin to generate a.h from syscall_32.tbl ...



 



推荐阅读
author-avatar
天秤小果冻cici
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有