1.3.1.1. 在Cygwin下建立Docbook开发环境

就像我之前写的教程中:

纯Windows环境下的Docbook开发环境的搭建

详细介绍的一样,对于Docbook环境的搭建,其实是可以使用Windows下的二进制的xsltproc+fop来实现的

但是,其总体上能够实现的功能相对较弱。

而我此处,有个相对比较复杂的需求:

需要管理20多个Docbook的book

如果编译每一个book,都需要手动去输入对应的编译命令的话,相关的工作量极大且极其繁琐,且容易出错,直接就把人累死了

而通过Cygwin中的makefile来实现,就相对轻松多了。

所以后来就去花点时间,去写了对应的makefile

以实现,对于每个book下的src文件夹下,去:

make html
make pdf
make htmls
make rtf
make chm
make txt
            

就可以对于每个book,生成其对应的不同格式的输出文件。

而在windows下面,类似的功能,我最多只能用batch批处理文件去实现,

但是却缺少了Makefile中的依赖特性,其可以自动检测所依赖的文件是否已更新,决定是否重新编译。

即,对于多个文件,尤其是中型大型等项目的管理方面,windows的batch,比linux中的makefile差的太远了。

另外,由于要生成chm等格式的文件,我此处还需要一些其他的辅助工具

比如用于转换编码的iconv,而这类好用易用的各种工具,在Linux下面,都是必备的,无需额外安装和太操心

但是如果想要在windows下使用,还要去一个个找到对应的windows下面的版本,或者找到相应的源码,自己去编译一个版本。

如此,经常需要利用到Linux下面的各种强大好用的工具,但是windows下面常常没有或者有类似的但不好用或功能很弱,

因此,才需要用到Cygwin去模拟Linux,

然后在Linux下面,利用已有的各种工具,实现各种复杂的需求的。

关于实现细节,可参考:

Windows环境下的,基于Cygwin的Docbook开发环境的搭建