Installation guide for Halibut
==============================

This file is a guide to building and installing the documentation
utility `Halibut' from its source archive.

If you are reading this, then you have probably already unpacked the
source archive somewhere.

Building Halibut
----------------

If you have GNU make and gcc, you should simply be able to type
`make'. The Makefile will generate a `build' subdirectory, and will
put all the object files and binaries in there.

In a release archive, the Makefile will also check the source files
against a list of MD5 checksums, and if they match it will
automatically add the correct version number to the build. This is
_not_ a secure measure intended to enforce that only approved
Halibut sources are ever built into a binary with a given version
number; it is merely a sanity check against heavily modified copies
_accidentally_ confusing users expecting standard versions of
Halibut. Distribution maintainers are entirely at liberty, if they
choose, to modify Halibut source files as appropriate for their
distribution and then have the resulting binary call itself by the
original version number. If you run `make VERSION=x.y', the
resulting Halibut binary will call itself version x.y irrespective
of the md5sum manifest. (You may also need to do this if your build
system does not have the md5sum program.)

Halibut unfortunately does not yet come with an autoconf-generated
makefile, so if you do not have these utilities then you will have
to do the build manually. Look in the master `Makefile' to find the
list of source modules (they will be listed on the line starting
`MODULES :=', and continued on lines starting `MODULES +='), compile
those files with the C compiler of your choice, and link them
together into a binary. In addition to the modules on that list, you
will also need to compile `version.c', and if you wish your Halibut
binary to identify itself with a version number then you will have
to define the preprocessor symbol `VERSION' to the required version
number string. On Unix this can be done with a command such as

  cc -c -DVERSION=\"0.9\" version.c

Halibut's source files are intended to be almost entirely portable
ANSI C. If they fail to compile and run correctly on your compiler,
this might very well be considered a bug.

Building the Halibut manual
---------------------------

Once you have built Halibut itself, you might well want to build its
manual. If you're using GNU make, you can do this just by changing
into the `doc' subdirectory and typing `make'. (This relies on the
Halibut binary you built in the previous step being present in the
`build' subdirectory.)

Failing that, you will need to read the Makefile and run a manual
Halibut command, of the form

  halibut --text=halibut.txt --html blurb.but intro.but [...] index.but

(The precise list of .but files is given at the top of doc/Makefile.)

This will build plain text documentation in `halibut.txt', and a set
of HTML files (*.html). It will also build a short man page
`halibut.1', although this is by no means a replacement for the full
manual.

Installing Halibut
------------------

Halibut requires no additional data files. Simply install the
binary, man page and full documentation in appropriate places for
your system.
