如何强制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)
万一