当我在Makefile中定义自定义函数时,就像这样
define add_target
${1}: ${2} ${3}
endef
如何获得已提供给 $(call add_target, ...)
的所有参数的列表?
所以 $(call add_target, A, B)
将扩展为 A: B
, $(call add_target, A, B, C, D)
将扩展为 A: B C D
GNU manual只是说
当make扩展此函数时,它会将每个参数分配给临时变量$(1),$(2)等 . 变量$(0)将包含变量 . 没有最大数量的参数参数 .
但没有关于如何获得所有参数 .
1 回答
没有办法,除了写出
$1 $2 $3 $4 $5 $6 ...
当然,无论您枚举多少变量,调用者都可以使用更多 .但是,在您的示例中,最简单的方法是传递两个参数:目标名称和先决条件列表(作为单个参数) . 所以它会是:
(没有逗号分隔列表中的先决条件)