Makefile ifeq问题

时间:2011-08-03 11:07:29

标签: makefile

我有一个Makefile,如下所示:

....
ifeq ($(strip $(MY_LIB)), $(strip $(SH_LIB))
    @echo "TRUE-$(MY_LIB) $(SH_LIB)"
    ......
else 
    @echo "FALSE-$(MY_LIB) $(SH_LIB)"
    ......
endif
......

有了这个我就陷入了问题。当它们两个具有相同的值时,它会进入其他地方。我确认了印刷品,它显示两者都有相同的字符串。 在根makefile中,

SH_LIB := display

即使MY_LIB正在显示,它总是转到其他部分并打印 FALSE - 显示屏显示。

经过大量的改动,我能够得到它。

....
ifeq ("strip $(MY_LIB)", "display")
    @echo "TRUE-$(MY_LIB) $(SH_LIB)"
    ......
else 
    @echo "FALSE-$(MY_LIB) $(SH_LIB)"
    ......
endif
.....

在此更改后,它进入了TRUE。 有人可以解释一下吗?

修改 我已将相似的代码放在root make文件中,它完全正常工作。

1 个答案:

答案 0 :(得分:0)

在您的第一个剪辑中,尝试删除逗号后ifeq内的空格。您还错过了ifeq中的结尾权限:

ifeq ($(strip $(MY_LIB)),$(strip $(SH_LIB)))
    @echo "TRUE-$(MY_LIB) $(SH_LIB)"
    ......
else 
    @echo "FALSE-$(MY_LIB) $(SH_LIB)"
    ......
endif