2012-05-20 3 views
0

Использование gmake v3.80, как я могу создать правило, в котором ORs объединяет две вещи. Я начинаю с этим кодом:Как я могу совместно использовать условия gnumakefile?

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

И хотел бы объединить два ifeq (ы) в один, если это OrS два условия вместе, возможно, что-то вроде этого?

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

Каков фактический синтаксис, который позволил бы мне это сделать?

ответ

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 сделать есть и другие варианты.

+0

Просьба дать способы сделать это в v3.82. – WilliamKF

Смежные вопросы