
		    HOW TO BUILD AND INSTALL DISCOUNT

1) Unpacking the distribution

The DISCOUNT sources are distributed in tarballs.  After extracting from
the tarball, you should end up with all the source and build files in the
directory
		discount-(version)

2) Installing the distribution

DISCOUNT uses configure.sh to set itself up for compilation.   To run
configure, just do ``./configure.sh'' and it will check your system for
build dependencies and build makefiles for you.   If configure.sh finishes
without complaint, you can then do a ``make'' to compile everything and a
``make install'' to install the binaries.

Configure.sh has a few options that can be set:

--src=DIR		where the source lives (.)
--prefix=DIR		where to install the final product (/usr/local)
--execdir=DIR		where to put executables (prefix/bin)
--sbindir=DIR		where to put static executables (prefix/sbin)
--confdir=DIR		where to put configuration information (/etc)
--libdir=DIR		where to put libraries (prefix/lib)
--libexecdir=DIR	where to put private executables
--mandir=DIR		where to put manpages
--with-amalloc		Use my paranoid malloc library to catch memory leaks
--shared		Build shared libraries
--debian-glitch		When mangling email addresses, do them deterministically
			so the Debian regression tester won't complain
--pkg-config		Build & install a pkg-config(1) .pc file for
			the discount library.
--h1-title		Have theme & mkd2html use the first h1 in a document
			as the title if there's no pandoc header or title
			specified on the command line.
--cxx-binding		Wrap mkdio.h with (conditional) 'extern "C"' for c++
			binding.

3) Testing

``make test'' runs discount against a collection of test cases.


4) Installing sample programs and manpages

The standard ``make install'' rule just installs the binaries. If you
want to install the sample programs, they are installed with
``make install.samples'';  to install manpages, ``make install.man''.
A shortcut to install everything is ``make install.everything''


5) Assorted platform gotchas

   1.  On NetBSD (version 8 for certain) running configure.sh by
       itself will result in logging output being mixed in with diagnostic
       output on the screen instead of having it written to config.log.
       If, instead, you do `ksh ./configure.sh`, it will be much less
       garbled (the shell defaults all fds > stderr to close on exec,
       so my redirecting stdout fails after the first subprocess.)
   2.  On 9Front (and maybe every other extant plan9 variant) the
       system mkfile sets the `T' flag in CFLAGS; there are several
       places where I typedef voids to opaque structure pointers and
       this makes the build die when it attempts to link anything.
