Makefile Conditionals ошибочное равенство - PullRequest
0 голосов
/ 07 ноября 2011

Итак, я новичок в make-файлах, но у меня есть следующее правило:

$(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.

1 Ответ

1 голос
/ 07 ноября 2011

Если вы используете GNU Make, не используйте ifneq для решения этой проблемы, используйте Значения целевой переменной .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...