BAR=sometext
include ../Makefile
FOO=othertext
ifneq ($(BAR),)
FOOBAR=$(FOO) $(BAR)
else
FOOBAR=$(FOO)
endif
all:
@echo $(FOOBAR)
这将打印"othertext"
,无论我是否在BAR
中定义了../Makefile
。这是为什么?如果我在本地定义了BAR
,它将打印我想要的"othertext sometext"
。但是在我的情况下,我只能使用include。
我已经尝试过使用$(value $(BAR))
$(strip $(BAR))
等各种情况,但是我似乎无法使它按我的意愿工作。
答案 0 :(得分:0)
您可以采用其他方法。在Makefile
中:
FOO=othertext
BAR=$(FOO)
include ../Makefile
all:
@echo $(BAR)
和../Makefile
BAR+=sometext