【发布时间】:2019-08-19 19:26:38
【问题描述】:
[HEADS UP]:stackoverflow 上已经存在一些类似的问题,但它们似乎不能完全解决我的问题。因此,我发布了这个问题。
我正在尝试编写一个 makefile 函数,该函数应该为作为参数传递给函数的变量设置一个值。
所以,我称这个函数为 -
RESULT :=
$(eval $(call myfunction,RESULT,value,res1,res2))
这里 'res1' 和 'res2' 是 RESULT 的两个可能结果值,参数 'value' 将用于某些测试条件。
以下是我对myfunction定义的尝试。但是好像不行。
define myfunction
TEST1 := $(shell test `mybinary` -ge 5 && printf "TEST")
TEST2 := $(findstring $(2),$(SOME_SHELL_ENV))
$(info "$(TEST1)")
$(info "$(TEST2)")
ifneq "$$(or $(TEST1),$(TEST2)" ""
LOCAL_RESULT := true
else
LOCAL_RESULT := false
endif
ifeq($(LOCAL_RESULT),true)
$(1) = $(3)
else
$(1) = $(4)
endif
endef
在我看来,局部变量 TEST1 和 TEST2 似乎都没有设置。
谁能告诉我为什么我的功能不能正常工作以及我必须做出哪些改变来解决这些问题?
【问题讨论】:
-
GNU make 可以使用 Guile 或插件进行扩展。考虑使用它们。并使用remake 调试您的
Makefile