$Id: INSTALL,v 1.16 2003/04/25 02:41:15 rossta Exp $

These installation instructions are for *nix developers.
Cygwin developers please refer to INSTALL.cygwin.
Debian developers please refer to INSTALL.debian.
MSVC developers please refer to INSTALL.msvc.

In order to compile grapevine, you will first need to install 
the Berkeley DB, and Expat libraries.  Crypto++ is also used,
but this it built automatically as part of our build.


Installing Required Libraries
=============================


Installing the Berkeley DB Library
--------------------------

NOTE: This step is only necessary if you don't have the
development package for Berkeley DB installed on your system.

$ make -f db.mak
$ su -c 'make -f db.mak install'

The Makefile assumes wget is installed on your system.


Installing the Expat Library
--------------------------

NOTE: This step is only necessary if you don't have the
development package for Expat installed on your system.

$ make -f expat.mak
$ su -c 'make -f expat.mak install'

The Makefile assumes wget is installed on your system.


Compiling Grapevine
===================

Once you have the required libraries installed, type:

$ ./configure

for a release build, or

$ ./configure --enable-debug

for a debug build.

This script will run autoconf/automake and ./configure.

Then type:

$ make

to build the grapevine executable.

After that, you only need to run ./a if you change Makefile.am
or configure.ac.

If you want to create default options to pass to ./a whenever you run
the command, type:

$ echo --enable-release >.configure

The ./a script reads the .configure file for default options.
Any command(s) you enter on the command line will supercede the options in
.configure.

Alternatively, you can specify options in the GRAPEVINE_CONFIGURE_OPTIONS
environment variable:

$ export GRAPEVINE_CONFIGURE_OPTIONS="--enable-release"

These options take precedence over .configure but are superceded by any
command line options.


Using autotools
---------------

If you want to do a clean build using autotools, then type

./a

instead of ./configure in the instructions above.

You will need

  autoconf2.53
  automake1.5


Running Grapevine
-----------------

To run grapevine, type:

$ ./grapevine


Validating XML
--------------
If 'xmllint' (an executable that comes with libxml2) is detected, then the
build will use it to validate the XML of the Raisen code.

Footnotes
---------

http://www.sleepycat.com/
http://sourceforge.net/projects/cryptopp/
http://sourceforge.net/projects/expat/
