make内置函数call

在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 ...



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: GNU make 内置函数如下: - subst - patsubst - strip - findstring - filter - filter-out - sort - word - wordlist - words - firstword - lastword - dir - notdir - suffix - basename - addsuffix - addprefix - join - wildcard - realpath - abspath - error - warning - shell - origin - flavor - if - and - or - call - foreach - eval - value - eval-value ### 回答2: GNU make是一个常用的构建工具,在其中使用一些内置函数可以帮助我们更灵活地定义和处理变量。以下是一些GNU make中常见的内置函数: 1. $(subst from,to,text):在text中将from替换为to。 2. $(patsubst pattern,replacement,text):将text中符合pattern的部分替换为replacement。 3. $(wildcard pattern):使用通配符匹配文件或目录。 4. $(shell command):执行command命令并将结果返回。 5. $(strip string):去掉string前后的空格。 6. $(findstring find,in):在字符串in中查找find。 7. $(filter pattern...,text):从text中筛选出符合pattern的部分。 8. $(sort list):对list进行排序。 9. $(word n,text):返回text中第n个单词。 10. $(wordlist s,e,text):返回text中从第s个到第e个的单词。 11. $(words text):返回text中的单词个数。 12. $(firstword names...):返回names中的第一个单词。 13. $(lastword names...):返回names中的最后一个单词。 除了上述常见的内置函数外,GNU make还有其他一些函数,如替代函数、条件函数、循环函数等,这些函数可以根据不同的需求和用法来进行使用。请注意,由于篇幅所限,以上只是对一部分常用内置函数的简要介绍,详细用法和示例请参考GNU make的官方文档。 ### 回答3: GNU make中常用的内置函数有: 1. subst 2. patsubst 3. strip 4. findstring 5. filter 6. filter-out 7. sort 8. word 9. wordlist 10. words 11. firstword 12. lastword 13. dir 14. notdir 15. suffix 16. basename 17. addsuffix 18. addsuffixes 19. addprefix 20. join 21. wildcard 22. realpath 23. abspath 24. if 25. or 26. and 27. foreach 28. call 29. value 30. origin 31. flavor 32. guile 33. error 34. warning 35. info 36. shell 37. make 38. file 39. eval 40. foreach-eval 41. value-eval 42. call-eval 43. make-eval 44. notdir-eval 45. message 46. warning-eval 47. info-eval 48. origin-eval 49. flavor-eval 50. file-eval 以上是GNU make内置函数的一部分,能够在Makefile中使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值