私は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」になることは理解できますが、$(姓) は最終的に「Lin」であるためです。
しかし、make hello1
なぜ $(ALL_PACKAGES) が if 条件で空であるかの結果 (if は同じように "package1" になると思いますmake hello
)?
さらに、最初のエコー メッセージ (「パッケージがありません」) が出力されず、エラー メッセージだけが表示されるのはなぜですか?
先生たちに感謝します。