【发布时间】:2013-08-05 23:13:35
【问题描述】:
摆弄一个主要基于纯 Makefile 的构建系统,我来到了以下宏,以便于测试是否存在并设置构建过程所需的每个外部工具的内部变量。
define tool-available
$(eval $(1) := $(shell which $(2)))
$(if $($(1)),$(info $(2) available at $($(1))),$(error error: missing tool $(2)))
endef
$(eval $(call tool-available,DOT,dot))
$(eval $(call tool-available,RBIN,R))
$(eval $(call tool-available,FIND,find))
但是,经验表明,在 makefile 中这样做并不常见,第三方构建系统通常更喜欢外部配置脚本和替代机制。
除了 which(1) 程序在平台上的可用性有限这一事实之外,还有什么强烈的理由不将其放入 Makefile 中?
【问题讨论】: