我正在学习Makefile的一些基础知识,并编写如下简单示例:
urname=Chang
givenname=SJ
fullname=$(givenname) $(surname)
hello:
@echo $(fullname)
surname=Lin
ALL_PACKAGES=
hello1:
ifeq (,$(ALL_PACKAGES))
@echo There is no package
$(error $(ALL_PACKAGES) is empty)
else
@echo there are some packages
endif
@echo $(ALL_PACKAGES)
ALL_PACKAGES += package1
我可以理解make hello
结果将是“SJ Lin”,因为 $(surname) 最后是“Lin”。
但是,在结果中make hello1
,为什么 $(ALL_PACKAGES) 在 if 条件下为空(我猜如果在上以相同的方式是“package1” make hello
)?
此外,为什么第一个回显消息(“没有包”)不会打印,而只有错误消息呢?
谢谢老师。