对 makefile 中 .PRECIOUS 的学习
2012-09-21 13:49
260 查看
参考 stackoverflow 的例子:
http://stackoverflow.com/questions/5426934/why-this-makefile-removes-my-goal
下面的 :
运行时,用 make a.txt --dry-run, 会得到如下的结果:
#pass
#pass
rm foo.log
也就是说, 中间文件 foo.log 被删除。
但是,如果改为:
这时候,再运行 make --dry-run, 会得到如下的结果:
#pass
#pass
也就是说 foo.log 想成为中间文件,是需要条件的。
接着再看 .PRECIOUS 的作用:
make a.txt --dry-run
执行结果:
#pass
#pass
在 .PRECIOUS 中声明的文件,没有被删除。
http://stackoverflow.com/questions/5426934/why-this-makefile-removes-my-goal
下面的 :
%.txt: foo.log #pass %.log: #pass
运行时,用 make a.txt --dry-run, 会得到如下的结果:
#pass
#pass
rm foo.log
也就是说, 中间文件 foo.log 被删除。
但是,如果改为:
all: foo.log #pass %.log: #pass
这时候,再运行 make --dry-run, 会得到如下的结果:
#pass
#pass
也就是说 foo.log 想成为中间文件,是需要条件的。
接着再看 .PRECIOUS 的作用:
.PRECIOUS: %.log %.txt:foo.log #pass %.log: #pass
make a.txt --dry-run
执行结果:
#pass
#pass
在 .PRECIOUS 中声明的文件,没有被删除。
相关文章推荐
- Linux Makefile学习(二)
- makefile学习笔记
- Linux Make(Makefile)由浅入深的学习与示例剖析
- Makefile学习之使用函数
- 通过cuda的sdk学习makefile
- Android学习 - Makefile之wildcard
- Makefile 基础学习
- 学习Makefile文件
- linux驱动学习(三) helloword 和 驱动Makefile
- 对 makefile 中 $(MAKE) 的学习体会
- automake中Makefile.am文件的学习
- Linux学习篇------gcc编译及Makefile基本知识
- Makefile学习
- 对 makefile 中 .SECONDARY 的学习体会
- Makefile学习教程
- linux下Makefile学习
- Makefile学习笔记
- 对 makefile 中 .DELETE_ON_ERRORS 的学习体会
- 深入学习Make命令和Makefile(下)(2)
- 对 makefile 中 $*和静态模式规则结合的学习