请求帮忙解释下下面makefile的含义
BINARY_PREREQS = bin/.dummybin/.dummy:
@if (: >> $@ || : > $@) >/dev/null 2>&1; then :; else \
dir=bin $(MAKEDIR); fi
@: >> $@ || : > $@ # what a fancy emoticon!
请求解释下整段内容,尤其是 : >> $@ || : > $@是什么意思? 我的理解: :>>$@,看文件是否存在
:>$@,清空文件 你好,能具体解析一下为什么这么理解嘛。麻烦了 找本makefile的书看下吧 和makefile无关吧,这应该是一堆正则表达式 尽量不帅气 发表于 2014-08-06 10:19 static/image/common/back.gif
和makefile无关吧,这应该是一堆正则表达式
这是 Shell 脚本,和正则没有关系。 qxhgd 发表于 2014-07-16 17:53 static/image/common/back.gif
找本makefile的书看下吧
楼主理解不了的东西基本和 Makefile 无关,都是些 shell 的东西。 回复 2# 流氓无产者
|| 后面的部分看起来有点多余。至少在 bash 下,空命令 `:` 始终返回成功。 本帖最后由 MMMIX 于 2014-08-06 22:09 编辑
回复 1# usdark
`$@` 是 Makefile 变量,表示当前规则的目标;
`:` 是 shell 的空命令,始终返回成功;
`>` 和 `>>` 是 shell 的输出重定向语法,表示将标准输出写入/追加到后面的文件中;
`||` 是 shell 的操作符,和 C 的 || 作用类似,左边的表达式返回失败,才执行右边的表达式。
在 `: >> $@ || : > $@` 中,`|| : > $@` 看起来有点多余,因为前面的 `: >> $@` 始终会返回成功。 回复 9# MMMIX
||好像是左边的只有失败才会执行右边的吧
页:
[1]
2