2.3. Building the documentation

We use the DocBook DTD, which is widely used. Most shrink-wrapped distributions seem to be broken in one way or another; thanks to heroic efforts by Sven Panne and Manuel Chakravarty, we now support most of them, plus properly installed versions.

Instructions on installing and configuring the DocBook tools follow.

2.3.1. Installing the DocBook tools from RPMs

If you're 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.

2.3.2. Installing DocBook on FreeBSD

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
This installs the FreeBSD documentation project tools, which includes everything needed to format the GHC documentation.

2.3.3. Installing from binaries on Windows

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).

2.3.4. Installing the DocBook tools from source

2.3.4.1. Jade

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'.
your version of hyperref is out of date; download it from CTAN (macros/latex/contrib/supported/hyperref), and make it, ensuring that you have first removed or renamed your old copy. If you start getting file not found errors when making the test for hyperref, you can abort at that point and proceed straight to make install, or enter them as ../filename.)

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.

2.3.4.2. DocBook and the DocBook stylesheets

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.

2.3.5. Configuring the DocBook tools

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.

2.3.6. Remaining problems

If you install from source, you'll get a pile of warnings of the form
DTDDECL catalog entries are not supported
every time you build anything. These can safely be ignored, but if you find them tedious you can get rid of them by removing all the DTDDECL entries from docbook.cat.