0
我对makefile规则下开始(感谢别人的帮助),但它不是做得比较工作尚未:棘手的makefile语法
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
似乎在有条件的单引号无法比拟的。
请帮助更正语法。我尝试了很多变体,但没有一个看起来是正确的。
谢谢。
- 威廉
该示例缺少svn命令之后的管道(|)和echo之后的反斜杠。这些只是在例子中的拼写错误,还是他们从源头上错过了? – 2009-12-08 16:29:49
通常更容易使用长线条和一个可以处理它的编辑器,而不是放入大量反斜杠。不过,我仍然将perl命令放在一行上。或者让svn版本进入Make变量,并且在make中做更多的逻辑。还有用于比较版本号的工具。您不必解析版本号并将其添加到整数中......虽然在这种情况下看起来很简单。 – 2009-12-08 21:18:16