您的位置:首页 > 理论基础 > 计算机网络

高级网络综合实战架构案例

2016-01-15 08:38 337 查看
1,如果一个目标task它在目录中并不存在这个文件(还没有生成或被删除),就标记为过时,make task就会执行该任务以生成文件。

2,生成task目标时,检查相关文件是否比task文件新,如果是就认为task是过时的,要重新生成。

3,对目标更新时采取递归,即从底层开始更新。

例如,make文件如下:

############ a test of Makefile################

test:test.o subtest.o

gcc -o test test.o subtest.o

test.o:test.c heler.h

gcc -c -I . -o test.o heler.h

subtest.o:subtest.c

gcc -c -o subtest.o subtest.c

clean:

rm -f *.o

#################################################

第一次执行时,test文件不存在,标记为过时,应该更新,此时检查它所依赖的文件test.o 和subtest.o并判断它们是否为最新,同样,发现为过时(不存在),则检查它依赖的文件,递归下去,直到最后底层,依次生成所须文件,即执行从底层到上层的命令。

现在假如subtest.c被更改了,那么依赖它的文件是subtest.o发现时间上更晚些,即subtest.o是比较落后的,于是会被更新(重新生成)。这样接着依赖subtest.o的文件也会被重新生成以更新,最后到底顶层文件被更新的过程。

------------以上为自己理解,如有其它想法可留言交流,在此请教----------

5.9.2010 夜
本文出自 “七月吹风” 博客,请务必保留此出处http://conflee.blog.51cto.com/1482173/313208
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: