现在解剖GNU dbm的构建性文件。由于项目的构建使用了Autotools工具集及make工具来完成。因此只解剖一些对理解项目至关重要的文件,主要有开发者编写的README、NEWS、ChangeLog、configure.in,由Autotools自动生成的COPYING、INSTALL、Makefile文件(由Makefile.in生成)。由于Makefile文件在项目构建时比较重要(我们很多时候都是自己来编写Makefile),需要用到源代码树中的各个源文件,因此需要在解剖完各源代码文件之后再来解剖。其他一些由Autotools自动生成的文件,如aclocal.m4、configure脚本(由configure.in生成)、config.guess、config.sub、install-sh、autoconf.h(由autoconf.h.in生成)、config.status、libtool等,有可能的话也会在最后进行解剖(它们对项目的理解并没有太大的影响,因为我们在开发时常用Autotools工具来自动生成它们,一般无需自己编写)。
(1)README。介绍了软件包的编译和安装方法,以及项目中包含的文件列表。注意有时软件包可以根据不同配置来编译成多种的发布包形式,这里都会有介绍。
(2)NEWS。按版本号的顺序记录了所做的改进动作(略)。
(3)ChangeLog。按时间顺序记录了对每个文件所做的改进(略)。
(4)COPYING。记录了软件的版权信息,对于GNU项目,一般是GPL版权信息(略)。
(5)INSTALL。介绍编译和安装软件包的方法和建议,信息比较详细,对不同平台上的编译和安装都给出了具体建议。重点介绍了./configure的选项参数--srcdir=DIR、--prefix=PATH、--exec-prefix=PATH、--no-create、--with-PACKAGE等。
(6)configure.in。这个文件被autoconf使用,以生成configure脚本。它主要指定软件包的名称和版本、要生成的包含平台相关常量定义的文件和Makefile文件名、使用的程序语言、要测试的头文件、库、函数、结构体等。