[Makefile-随笔] ifdef多条件判断

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/pengfei240/article/details/76262389

在使用Makefile时,有时需要实现如下的逻辑:

ifdef VAR1 || VAR2 || VAR3

ifdef VAR1 && VAR2 && VAR3

ifdef只支持单一的变量操作,在网上搜索了一下,有一个非常好的解决方案,总结如下。

原文链接

||操作

ifdef_any_of = $(filter-out undefined,$(foreach v,$(1),$(origin $(v))))

ifneq ($(call ifdef_any_of,VAR1 VAR2),)
result=define
else
result=undefine
endif

all:
        @echo $(result)

&&操作

ifndef_any_of = $(filter undefined,$(foreach v,$(1),$(origin $(v))))

ifeq ($(call ifndef_any_of,VAR1 VAR2),)
result=define
else
result=undefine
endif

all:
        @echo $(result)

猜你喜欢

转载自blog.csdn.net/pengfei240/article/details/76262389