Building and installing Pandora
===============================

Pandora is made of several libraries. The libpandora library is the
core of the system and is used in conjunction with the others
libraries which contains component and packet definitions. The other
libraries (those found under the pandora_components directory in the
distribution) contain the components and packets used by Pandora.
Those are grouped by field: e.g. all components related to HTTP
monitoring are in the libphttp library, and the packets they use are
in the libphttp_pkt library.  Programs using Pandora needs to be
linked with the libpandora.

************************************************************************
* Important Note: Do not make Pandora setuid root for it loads dynamic *
*  libraries without any check. This makes local (and possibly remote) *
*  exploits really trivial.                                            *
************************************************************************

You need GNU gcc and g++ compilers to build Pandora (other ANSI
compilers may work, but have not been tested extensively). Pandora
uses a modified version of the libpcap library tuned for full-frame
capture. In particular, the Linux capture module utilizes mmap'ed
packet I/O, which is only available in kernels > 2.4 with
CONFIG_PACKET and CONFIG_PACKET_MMAP options set. However, it should
work without those or with a stock libpcap library (see
http://www.tcpdump.org/ for release information).

Provided those, basic installation process should be quite straight
forward. Just uncompress the archive and type inside the pandora-x.y
directory:

> ./configure
> make
> make install

Unfortunately, I do not have enough distinct platforms (especially not
yours!) to guarantee that this will always work. See the README file
for a list of platforms on which Pandora is known to build
successfully.

You may pass several switches to the ./configure command to
customise the way Pandora is compiled. The most useful are:

  --disable-debug
    suppress most debug checks, resulting in smaller a faster code

  --disable-shared
    build static component libraries @emph{instead of} shared ones

  --enable-static
    build static component libraries @emph{in addition to} shared ones

  --without-thread
    remove any threading support from Pandora, resulting in much faster
    code (if you do not need this feature!)


Other options are available, see ./configure --help for a
complete list.

