GNU Make 高级特性与技巧详解
1. 检测 $(eval) 函数
$(eval) 函数是 GNU make 在 3.80 版本引入的强大功能。其参数会先被展开,然后当作 makefile 的一部分进行解析,这使得我们能够在运行时修改 makefile。
在使用 $(eval) 时,要确保读取 makefile 的 GNU make 版本支持该功能。可以使用 MAKE_VERSION 检查版本是否为 3.80,也可以使用以下代码,只有当 $(eval) 可用时,才会将 eval_available 设置为 T :
$(eval eval_available := T)
若 $(eval) 不可用,GNU make 会查找名为 eval eval_available := T 的变量并尝试获取其值,由于该变量不存在, eval_available 将被设为空字符串。
可结合 eval_available 和 ifneq 来处理 $(eval) 不可用的情况:
ifneq ($(eval_available),T)
$(error This makefile only works with a Make program that supports $$(eval))
超级会员免费看
订阅专栏 解锁全文
2223

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



