ZZ C 一个复杂的Makefile实例

下面是一段为GNU tar程序设计的Makefile代码,相当复杂。

由于“all”是第一个目标,所以它也是默认目标。下面这个程序段有一个非常有趣的特色,这个特色就是源代码程序中的“testpad.h”文件是一个由名叫testpad程序自动生成的,而这个testpad又是又是由“testpad.c”这个程序经过编译产生的。

如果您输入“make”或者“make all”,则make会让名为“tar”的目标运行从而开始编译指令,会让名为“rmt”的目标运行从而生成一个远程磁带数据存取的守护程序,会让名为 “tar.info”的目标运行从而生成INFO文档。

如果您输入“make install”,那么make就执行的就不仅仅只是“tar”、“rmt”和“tar.info”这三个目标了,还会执行相应的安装操作。< /br>
如果您输入“make clean”,那么make会清除所有的“.o”文件,以及“tar”、“rmt”、“testpad”、“testpad.h”和“core”这些文件。

如果您输入“make distclean”,那么make除了会清除“make clean”会清除的文件外,还会清除“TAGS”、“Makefile”和“config.status”这些文件(虽然不明显,但下面这个 makefile和“config.status”都是用户通过tar发行版中的“configure”文件生成的,这个“configure”文件这里没有列出)。

如果您输入“make realclean”,那么make除了清除“make distclean”会清除的文件外,还会清除由“tar.info”生成的INFO文档。

 posted on 2009-12-20 20:12  苏格拉西  阅读(807)  评论(0编辑  收藏  举报