Makefile:正则表达式匹配的语法作为if语句中的条件

时间:2018-06-15 17:56:18

标签: bash makefile

我想在Makefile中添加一行来检查安装的python版本是否为2.7.X,最好是2.7.9或更高。特别是不是3.X。

我对bash脚本和Makefile有点新,但似乎Makefiles使用与普通bash或shell脚本不同的语法,所以我不能做我通常会做的事情。类似的东西:

if [[ $(python --version) =~ "Python 2.7.*" ]]; then echo "Version matched!"; fi

在Makefile中将字符串与正则表达式匹配的语法是什么?

我找到替换的Makefile模式以及ifeqifneq,但他们似乎无法按照我的意愿去做。

感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

如果要在任何特定规则之外编写此测试,则必须使用make语法。假设您正在使用GNU make,您可以编写如下内容:

$(or $(findstring Python 2.7.,$(shell python --version 2>&1)),$(error Python 2.7.x is required))

(奇怪的是,python --version将其版本打印到stderr而不是stdout。

有关这些功能的更多详细信息,请参阅Syntax of Functions

答案 1 :(得分:0)

试试这样:

<!- HTML -->
<tr onmouseover="mOvr(this,'#ffa');" onmouseout="mOut(this,'#FFF');">

<script>
function mOvr(src,clrOver) { 
  if (!src.contains(event.fromElement)) { 
  src.bgColor = clrOver; 
  } 
} 
function mOut(src,clrIn) { 
  if (!src.contains(event.toElement)) { 
  src.bgColor = clrIn; 
  } 
} 
</script>