If statement Makefile条件错误相等

If statement Makefile条件错误相等,if-statement,makefile,If Statement,Makefile,所以,我对makefile有点陌生,但我有一条规则: $(rc)/%.class: $(r)/%.java echo $(strip $(findstring $*,"Robot RoboController")) ifneq (,$(strip $(findstring $*,"Robot RoboController"))) echo "Robot or RoboController" else echo "other"; endif 我的目标是,如果匹配的文本是R

所以,我对makefile有点陌生,但我有一条规则:

$(rc)/%.class: $(r)/%.java
    echo $(strip $(findstring $*,"Robot RoboController"))
ifneq (,$(strip $(findstring $*,"Robot RoboController")))
    echo "Robot or RoboController"
else
    echo "other";
endif
我的目标是,如果匹配的文本是Robot或RoboController,那么它将以一种方式编译,否则,它将以另一种方式编译,不幸的是,当我运行make时,我将获得以下输出:

$ make Classes/RobotSuite/robot/Robot.class
    echo Robot
    Robot
    echo "other";   
    other
$ make Classes/RobotSuite/robot/RoboComm.class
    echo 

    echo "other";   
    other
似乎无论我在
ifneq
中输入什么,它都会错误地将其计算为等于空字符串。有人能解释为什么吗


我使用的是GNU Make v3.81,它是为i686 pc linux GNU构建的。

如果您使用的是GNU Make,请不要使用
ifneq
来解决此问题,请使用。

为什么要将其标记为“java”?哇。糟糕的选择。我真的没有注意到。嘿,有没有什么方法可以在不发牢骚的情况下打断这个帖子?你可以删除这个问题并重新提交。若你们解释一下你们使用的系统是什么样子的,也许会有帮助。若你们愿意,我可以发布一个像样的答案。你为什么要“撞这根线”(你说的这句话是什么意思)?