我的GNU Makefile中有一堆变量,用户可能会改变它们的值。我希望Makefile在开始执行之前失败,如果其中一些值没有任何意义的话。
例如:
FOODIR=foo
BARDIR=bar
没问题,但是如果用户将其设置为
FOODIR=foo
BARDIR=foo
我希望Makefile失败。我正在寻找正确的语法来做到这一点。类似的东西:
ifeq ($(FOODIR),$(BARDIR))
exit 1;
endif
但这不起作用。这样做的最佳方式是什么?
答案 0 :(得分:3)
Makefile不是shell脚本;你不能使用像exit
这样的shell命令。
你可以使用一个GNU make函数$(error ...)
(如果你的GNU make已经足够了):
ifeq ($(FOODIR),$(BARDIR))
$(error FOODIR is the same as BARDIR: $(FOODIR))
endif