所以,我对makefiles有点新意,但我有这个规则:
$(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 Classes/RobotSuite/robot/Robot.class
echo Robot
Robot
echo "other";
other
$ make Classes/RobotSuite/robot/RoboComm.class
echo
echo "other";
other
似乎无论我放入ifneq
,它都会错误地将其评估为等于空字符串。任何人都可以解释原因吗?
我正在使用为i686-pc-linux-gnu构建的GNU Make v3.81。