使用gmake v3.80,如何创建一个将两个OR组合在一起的规则。我从这段代码开始:
ifeq "$(BUILD_ARCH)" "lnx86_22"
TEST_ARCH := i86
endif
ifeq "$(BUILD_ARCH)" "linux_24_i86"
TEST_ARCH := i86
endif
并希望将两个ifeq(s)组合成一个如果将两个条件组合在一起,也许是这样的?
ifeq "$(BUILD_ARCH)" "lnx86_22" OR "$(BUILD_ARCH)" "linux_24_i86"
TEST_ARCH := i86
endif
允许我这样做的实际语法是什么?
答案 0 :(得分:2)
您可以使用$(filter ...)。像这样:
ifneq (,$(filter $(BUILD_ARCH),lnx86_22 linux_24_i86))
TEST_ARCH := i86
endif
另一种选择是使用构造的变量名称:
lnx86_22_ARCH := i86
linux_24_i86_ARCH := i86
...
TEST_ARCH := $($(BUILD_ARCH)_ARCH)
ifeq (,$(TEST_ARCH))
$(error Failed, unknown arch $(BUILD_ARCH))
Failed, unknown arch $(BUILD_ARCH)
endif
如果您能够升级到更新版本的GNU make,还有其他选择。