2012-05-20 76 views
0

使用gmake v3.80,我该如何创建一个规则来将两个东西组合在一起。我开始使用此代码:我怎样才能一起gnumakefile条件?

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 

什么是可以让我做到这一点的实际语法?

回答

2

您可以使用$(过滤器...)。就像这样:

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的新版本让还有其他的选择。

+0

请在v3.82中提供这样做的方法。 – WilliamKF