Dependencies
============

uAnytun can be built by using either libgcrypt or the openssl-crypto library. 
The latter is more performant in most cases but there are some license 
issues when using this library. It also needs more space when installed.


Linux
-----
(this includes Debian with FreeBSD Kernel)

using libgcrypt:
 
 build-essential
 libgcrypt11-dev

using ssl crypto library:

 build-essential
 libssl-dev

if you want to rebuild the manpage:

 asciidoc


OpenBSD/FreeBSD
---------------

using libgcrypt:

 devel/gmake
 security/libgcrypt

using ssl crypto library:

 devel/gmake

if you want to rebuild the manpage:

 textproc/asciidoc
 textproc/libxslt
 textproc/docbook-xsl
 sysutils/readlink
 misc/getopt 



Installation
============

Getting the source via subversion:
----------------------------------

svn co https://svn.anytun.org/uanytun/trunk uanytun
cd uanytun


Building from source
--------------------

using libgcrypt:

# cd src
# ./configure
# make

using ssl crypto library:

# cd src
# ./configure --use-ssl-crypto
# make

Notes: 
  - try './configure --help' for further information
  - if using openssl pre 0.9.8 you have to disable passphrase
    because openssl had no SHA256 implementation prior to this
    version
  - on OpenBSD/FreeBSD you have to use gmake instead of make


Installing
----------

# sudo make install

This will install anytun under the --prefix defined with configure.


Uninstalling
------------

# sudo make remove

This removes everytthing except for the config files

# sudo make purge

This also removes the config files



Usage:
======

init.d script
-------------

The init.d script can be used to start uanytun at boot time. It searches for 
configuration files which reside at $CONFIG_DIR. For each instance of uanytun
which should be started there must be a directory containing at least a file
named config. This file must contain all command line parameter which should
be used when starting the daemon. One line for each parameter. Empty lines and
lines starting with # are ignored. Besides the config file there may be a script
named post-up.sh which will be called when the tun/tap device comes up. 
This is an example of how the init.d script can be used to start uanytun:

# /etc/init.d/uanytun start client1 p2p-a

In this case the script will start 2 instances of uanytun using the config files
$CONFIG_DIR/client1/config and $CONFIG_DIR/p2p-a/config. 
If no instance name is specified the script will use the file $CONFIG_DIR/autostart
to determine which instances to start or stop. This file must contain a list 
of instance names which should be used when no names are specified at the command 
line. One line for each name. Empty lines and lines starting with # are ignored.
