Wil*_*mKF 57 makefile gnu-make
我想在我的makefile中检测一个工具是错误版本的条件,并强制make失败,并显示一条错误消息,指出该项目不是正确的版本.
谁能举个例子呢?
我尝试了以下但是它不是正确的语法:
ifeq "$(shell svnversion --version | sed s/[^0-9\.]*://)" "1.4"
$error("Bad svnversion v1.4, please install v1.6")
endif
Run Code Online (Sandbox Code Playgroud)
谢谢.
Lir*_*una 73
从手册:
$(error Bad svn version v1.4, please install v1.6)
Run Code Online (Sandbox Code Playgroud)
这将导致make致命错误:
$ make
Makefile:2: *** Bad svn version v1.4, please install v1.6. Stop.
Run Code Online (Sandbox Code Playgroud)
而$(错误...有效,有时更容易使用失败的规则
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
Run Code Online (Sandbox Code Playgroud)
然后,使test_svn_version成为顶级目标的先决条件.
条件也需要一些关注.
ifeq ($(shell svnversion --version | sed s/[^0-9\.]*://), 1.4)
$(error Bad svnversion v1.4, please install v1.6)
endif