Simple install procedure
========================

  % gzip -cd mdh-1.9.XX.tar.gz | tar xvf -  # unpack the sources
  % cd mdh-1.9.XX                           # change to the toplevel directory
  % ./configure                             # run the `configure' script
  % make                                    # build mdh

  [ Become root if necessary ]
  % make install                            # install mdh

Requirements
============

mdh-1.9 requires pkg-config, which is tool for tracking the
compilation flags needed for libraries. (For each library, a small .pc
text file is installed in a standard location that contains the
compilation flags needed for that library along with version number
information.) Information about pkg-config can be found at:

  http://www.freedesktop.org/software/pkgconfig/

GTK+-2.4 (http://www.gtk.org/), a multi-platform toolkit for creating
graphical user interfaces. Offering a complete set of widgets, GTK+ is
suitable for projects ranging from small one-off projects to complete
application suites.

gini-0.4 (http://www.gozer.org/my_stuff/c/), a GLib-based .ini parser,
that uses hash tables for quick value lookup (included).

Recommended
===========

libcurl (http://curl.haxx.se/), a free and easy-to-use client-side URL
transfer library, supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET,
DICT, FILE and LDAP. libcurl supports HTTPS certificates, HTTP POST,
HTTP PUT, FTP uploading, kerberos, HTTP form based upload, proxies,
cookies, user+password authentication, file transfer resume, http
proxy tunneling and more!

libxml2 (http://www.xmlsoft.org/), a XML C parser and toolkit
developed for the Gnome project.

GNU make (http://www.gnu.org/software/make), a tool which controls the
generation of executables and other non-source files of a program from
the program's source files.

GNU Compiler Collection (http://gcc.gnu.org/), a compiler.

The Nitty-Gritty
================

The 'configure' script can be given a number of options to enable
and disable various features. For a complete list, type:

  ./configure --help

A few of the more important ones:

*  --prefix=PREFIX         install architecture-independent files in PREFIX
                           [ Defaults to /usr/local ]

*  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                           [ Defaults to the value given to --prefix ]

*  --enable-debug          enable debugging

Options can be given to the compiler and linker by setting
environment variables before running configure. A few of the more
important ones:

 CC       : The C compiler to use
 CPPFLAGS : Flags for the C preprocesser such as -I and -D
 CFLAGS   : C compiler flags

The most important use of this is to set the optimization/debugging
flags. For instance, to compile with no debugging information at all,
run configure as:

 CFLAGS=-O2 ./configure           # Bourne compatible shells (sh/bash/zsh)

or,

 setenv CFLAGS -O2 ; ./configure  # csh and variants

Installation directories
========================

The location of the installed files is determined by the --prefix
and --exec-prefix options given to configure. There are also more
detailed flags to control individual directories. However, the
use of these flags is not tested.

