>
Building the documentationThe following additional tools are required if you want to format the documentation that comes with the fptools projects:
Much of our documentation is written in SGML, using the DocBook DTD. Instructions on installing and configuring the DocBook tools are below.
A decent TeX distribution is required if you want to produce printable documentation. We recomment teTeX, which includes just about everything you need.
Haddock is a Haskell documentation tool that we use for automatically generating documentation from the library source code. It is an fptools project in itself. To build documentation for the libraries (fptools/libraries) you should check out and build Haddock in fptools/haddock. Haddock requires GHC to build.
If you're on a recent RedHat system (7.0+), you probably have working DocBook tools already installed. The configure script should detect your setup and you're away.
If you don't have DocBook tools installed, and you are using a system that can handle RedHat RPM packages, you can probably use the Cygnus DocBook tools, which is the most shrink-wrapped SGML suite that we could find. You need all the RPMs except for psgml (i.e. docbook, jade, jadetex, sgmlcommon and stylesheets). Note that most of these RPMs are architecture neutral, so are likely to be found in a noarch directory. The SuSE RPMs also work; the RedHat ones don't in RedHat 6.2 (7.0 and later should be OK), but they are easy to fix: just make a symlink from /usr/lib/sgml/stylesheets/nwalsh-modular/lib/dblib.dsl to /usr/lib/sgml/lib/dblib.dsl.
On FreeBSD systems, the easiest way to get DocBook up and running is to install it from the ports tree or a pre-compiled package (packages are available from your local FreeBSD mirror site).
To use the ports tree, do this:
$ cd /usr/ports/textproc/docproj $ make install |
It's a good idea to use Norman Walsh's installation notes as a guide. You should get version 3.1 of DocBook, and note that his file test.sgm won't work, as it needs version 3.0. You should unpack Jade into \Jade, along with the entities, DocBook into \docbook, and the DocBook stylesheets into \docbook\stylesheets (so they actually end up in \docbook\stylesheets\docbook).
Install OpenJade (Windows binaries are available as well as sources). If you want DVI, PS, or PDF then install JadeTeX from the dsssl subdirectory. (If you get the error:
! LaTeX Error: Unknown option implicit=false' for package hyperref'. |
Make links from virtex to jadetex and pdfvirtex to pdfjadetex (otherwise DVI, PostScript and PDF output will not work). Copy dsssl/*.{dtd,dsl} and catalog to /usr/[local/]lib/sgml.
Get a Zip of DocBook and install the contents in /usr/[local/]/lib/sgml.
Get the DocBook stylesheets and install in /usr/[local/]lib/sgml/stylesheets (thereby creating a subdirectory docbook). For indexing, copy or link collateindex.pl from the DocBook stylesheets archive in bin into a directory on your PATH.
Download the ISO entities into /usr/[local/]lib/sgml.
Once the DocBook tools are installed, the configure script will detect them and set up the build system accordingly. If you have a system that isn't supported, let us know, and we'll try to help.
If you install from source, you'll get a pile of warnings of the form
DTDDECL catalog entries are not supported |
To build documentation in a certain format, you can say, for example,
$ make html |
to build HTML documentation below the current directory. The available formats are: dvi, ps, pdf, html, and rtf. Note that not all documentation can be built in all of these formats: HTML documentation is generally supported everywhere, and DocBook documentation might support the other formats (depending on what other tools you have installed).
All of these targets are recursive; that is, saying make html will make HTML docs for all the documents recursively below the current directory.
Because there are many different formats that the DocBook documentation can be generated in, you have to select which ones you want by setting the SGMLDocWays variable to a list of them. For example, in build.mk you might have a line:
SGMLDocWays = html ps |
This will cause the documentation to be built in the requested formats as part of the main build (the default is not to build any documentation at all).
To install the documentation, use:
$ make install-docs |
This will install the documentation into $(datadir) (which defaults to $(prefix)/share). The exception is HTML documentation, which goes into $(datadir)/html, to keep things tidy.
Note that unless you set $(SGMLDocWays) to a list of formats, the install-docs target won't do anything for SGML documentation.