PlutoPlus Installation:
----------------------
Prior to installing PlutoPlus, you will need to install the 
NIST Cerberus IPsec software and the GNU Multiple Precision Arithmetic 
Library(GMP).

GMP (GNU Multiple Precision Arithmetic Library)
-----------------------------------------------
PlutoPlus uses GMP for the Diffie-Hellman calculations.  In order to build 
successfully, it requires the library libgmp.a and the header file gmp.h.  
Included in this distribution is the file gmp-2_0_2_tar.gz, which contains the 
latest version of gmp.  In gmp's INSTALL file is a warning that, for the 
RS/6000 and PowerPC, it will not compile on GCC versions 2.6.3 and 2.7.2.  
We successfully compiled gmp on a variety of x86 machines using GCC 2.7.2,
2.7.2.3 and 2.8.1, but were unable to compile gmp with GCC 2.7.2.2.

Installing GMP for plutoplus is fairly straight forward:
1) tar -zxf gmp-2_0_2_tar.gz in the plutoplus-0.1 directory
2) cd gmp-2.0.2
3) ./configure
4) make

To build PlutoPlus:
------------------
1) Modify the Makefile
   - Change paths variables.
   - Change flag settings if necessary.
2) make clean
3) make

This version of PlutoPlus has been successfully built and tested using
Slackware 7.0 and Redhat 6.2 using a 2.2.14 kernel.  Most of the testing
has been in DEBUG mode.

For instructions on how to operate the plutoplus daemon, refer to the
./doc/plutoplus.n man page.

To enable PlutoPlus to negotiate with itself on a single host:
-------------------------------------------------------------
The 2 special makefiles, mf.zi and mf.zr, are used to build 2 special forms of
PlutoPlus that can negotiate with each other.   mf.zi turns on the compile-time 
flag ZZZZI and creates an executable named plutoplus_i; mf.zr turns on the 
compile-time flag ZZZZR and creates an executable named plutoplus_r. 

To build these executables, do the following:
1) Edit mf.zi and mf.zr and set the other compile-time flags to the desired
   settings.  The DEBUG flag should be on.
2) make clean
3) make -f mf.zi
4) If mf.zi and mf.zr have the same flag settings (except ZZZZI/ZZZZR),
   run rmo (a script that deletes the *.o files that are affected by the 
   ZZZZI or ZZZZR flags)
   If mf.zi and mf.zr have different flag settings, make clean.
5) make -f mf.zr

To allow PlutoPlus to negotiate with itself, do the following:
1) Edit the scripts pzi and pzr and change the argument of the -d option to the 
   address of your machine.
2) Run pzr on 1 virtual terminal.  This will run plutoplus_r, with all output
   sent to the terminal and also to the file ./or1.
3) Run pzi on a 2nd virtual terminal.  This will run plutoplus_i, with all 
   output sent to the terminal and also to the file ./oi1.
