ifneq(A,B)
ifneq(C,D)
ifneq(E,F)
a语句
b语句
c语句
endif
endif
endif
要是A=B是不是直接跳出了?
要是A=B为假(ifneq(A,B)成立),C=D成立执行了那个语句?
在网上看到一篇帖子说ifeq不能够嵌套???但是我的makefile明明就有这样的嵌套语句,望各位大侠指点!
if($(CONFIG_DIST),"micro")
if($(CONFIG_DIST),"micro-special")
语句a
if($(CONFIG_MISSID),y)
语句b
endif
语句c
endif
endif
Q1:CONFIG_DIST = "micro",CONFIG_MISSID = y时候执行那些语句?
Q2:CONFIG_DIST = "std"(不是micro和micro-special时候),CONFIG_MISSID =y时候执行那些语句?
Q3:CONFIG_DIST = "std",CONFIG_MISSID = no 时候执行那些语句?
引用: 引用 1 楼 skysoshy 的回复:
C/C++ code
A=1
B=2
C=3
D=4
E=5
F=6
RESULT_AB="A == B"
RESULT_CD="C == D"
RESULT_EF="E == F"
ifneq (A,B)
RESULT_AB="A != B"
ifneq (C,D)
RESULT_CD="C != D"
ifneq (E,F)
RESULT_EF="E != F"else
RESULT_EF="E == F"
endifelse
RESULT_CD="C == D"
endifelse
RESULT_AB="A == B"
endif
all:
@echo AB:$(RESULT_AB) CD:$(RESULT_CD) EF:$(RESULT_EF)
不知道够不够明白
谢谢回复,但是没看的很明白,我刚刚给出例子,你看看结果是什么我就了解了!
我上面的makefile 对你说的所有case 都有覆盖, 你可以调整里面ABCDEF的值来试验一下, 直观上可以看出来的就是 找ifeq(或ifneq) 和endif 的范围, 这个范围里面的代码对这个判断有效。
A:ifneq ($(A),$(B))
RESULT=" A != B"
endif
endif
A:endif
我想知道这里会不会直接跳出到最后一个endif?大哥写的代码我看的不是很懂