Makefile函数扩展

Makefile函数扩展,makefile,Makefile,在我的选项中,$(call warn,…)将扩展到 build_debug:=dltvr define debug $$(findstring $(2),$$(if $$(DEBUG_SCOPE_DIR),$$(if $$(filter $$(DEBUG_SCOPE_DIR)%,$(1)),$(build_debug)),$(build_debug))) endef define warn $$(if $(call debug,$(1),$(2)),$$(warning $(3))) en

在我的选项中,
$(call warn,…)
将扩展到

build_debug:=dltvr
define debug
$$(findstring $(2),$$(if $$(DEBUG_SCOPE_DIR),$$(if $$(filter $$(DEBUG_SCOPE_DIR)%,$(1)),$(build_debug)),$(build_debug)))
endef   
define warn
$$(if $(call debug,$(1),$(2)),$$(warning $(3)))
endef   
$(call warn,jianxi,d,D jianxi)
并将输出
Makefile:13:D简写

您是正确的<代码>$(调用警告…)将扩展为
$(如果$(findstring…)
)。但它将不会进一步扩展

您将“$”符号转义得太远了。试试这个:

$(if $(findstring d,$(if $(DEBUG_SCOPE_DIR),$(if $(filter $(DEBUG_SCOPE_DIR)%,jianxi),dltvr),dltvr)),$(warning D jianxi))
define warn
$(if $(call debug,$(1),$(2)),$(warning $(3)))
endef