GNU Make 高级特性与使用技巧
1. 检测 $(eval) 函数
$(eval) 函数是 GNU make 3.80 版本新增的强大特性。其参数会先被展开,然后当作 makefile 的一部分进行解析,这使得我们可以在运行时修改 makefile。
在使用 $(eval) 时,需要检查当前使用的 GNU make 版本是否支持该特性。可以使用 MAKE_VERSION 来检查版本是否为 3.80 或更高,也可以使用以下代码来判断:
$(eval eval_available := T)
如果 $(eval) 不可用,GNU make 会查找名为 eval eval_available := T 的变量并尝试获取其值。由于该变量不存在, eval_available 将被设为空字符串。
可以结合 ifneq 和 eval_available 来生成一个致命错误,若 $(eval) 未实现:
ifneq ($(eval_available),T)
$(error This makefile only works with a Make program that supports $$(eval))
endif
当无法检查 MAKE_VERSION 时,比如使
超级会员免费看
订阅专栏 解锁全文
1

被折叠的 条评论
为什么被折叠?



