Makefile ifeq проблема - PullRequest
       5

Makefile ifeq проблема

1 голос
/ 03 августа 2011

У меня есть Makefile, как показано ниже:

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

С этим у меня проблемы. То есть это входит в другое, когда они оба имеют одинаковую ценность. Я подтвердил с отпечатками, и это показывает, что оба имеют одинаковую строку. В корневом make-файле

SH_LIB := display

Даже когда MY_LIB показывает, он всегда идет в другую часть и печатает ЛОЖЬ - дисплей дисплея.

После множества изменений я смог его получить.

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

После этого изменения оно вошло в ИСТИНА. Может кто-нибудь объяснить это?

EDIT: Я поместил подобный код в корневой файл make, и он отлично работает.

1 Ответ

0 голосов
/ 03 августа 2011

В своем первом фрагменте попытайтесь удалить пробел внутри ifeq после запятой. Вы также пропускаете окончание правой пары в ifeq:

ifeq ($(strip $(MY_LIB)),$(strip $(SH_LIB)))
    @echo "TRUE-$(MY_LIB) $(SH_LIB)"
    ......
else 
    @echo "FALSE-$(MY_LIB) $(SH_LIB)"
    ......
endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...