这是一个非常简单的测试,我无法理解我错在哪里:
文件Makefile.inc
MSG = I am
myprog: USE_FOO = 1
ifeq ($(USE_FOO), 1)
MSG += using foo
else
MSG += not using foo
endif
文件Makefile
include Makefile.inc
all: myprog
myprog:
@echo "USE_FOO = $(USE_FOO)"
@echo $(MSG)
我获得了:
$> make
USE_FOO = 1
I am not using foo
请你告诉我,为什么我的信息不是“我正在使用foo”?
答案 0 :(得分:2)
ifeq
未在目标myprog
的上下文中进行评估,因此将其评估为false,并将MSG设置为"我不使用foo。"
您可以使用File Makefile.inc
:
MSG = I am not using foo
myprog: USE_FOO = 1
myprog: MSG=I am using foo