如何强制gnumake文件中的错误
我想在我的生成文件中检测到一个工具是错误版本的情况,并强制make失败,并显示错误消息,指出该项目不是正确的版本。
任何人都可以举个例子吗?
我尝试了以下,但它不是正确的语法:
ifeq "$(shell svnversion --version | sed s/[^0-9\.]*://)" "1.4" $error("Bad svnversion v1.4, please install v1.6") endif
谢谢。
从手册 :
$(error Bad svn version v1.4, please install v1.6)
这将导致致命的错误:
$ make Makefile:2: *** Bad svn version v1.4, please install v1.6. Stop.
虽然$(错误…的作品,有时更容易使用失败的规则
test_svn_version: @if [ $$(svn --version --quiet | \ perl -ne '@a=split(/\./); \ print $$a[0]*10000 + $$a[1]*100 + $$a[2]') \ -lt 10600 ]; \ then \ echo >&2 "Svn version $$(svn --version --quiet) too old; upgrade to v1.6"; false; \ fi
然后,您将test_svn_version作为顶级目标的先决条件。
条件也需要一些关注。
ifeq($(shell svnversion --version | sed s / [^ 0-9 \。] *://),1.4) $(错误的svnversion v1.4,请安装v1.6) 万一