0

使用 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) 组合成一个 if 将这两个条件 OR 在一起,也许是这样的?

ifeq "$(BUILD_ARCH)" "lnx86_22" OR "$(BUILD_ARCH)" "linux_24_i86"
TEST_ARCH := i86
endif

允许我这样做的实际语法是什么?

4

1 回答 1

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,那么还有其他可用选项。

于 2012-05-20T21:45:43.297 回答