% West-chamber Installation instructions

Installation instructions for west-chamber
==========================================

West-chamber borrows build system from xtables-addons.

Xtables-addons uses the well-known configure(autotools) infrastructure
in combination with the kernel's Kbuild system.

     $ ./configure
     $ make
     # make install

You have to run ./autogen.sh (requires automake) if `configure` script is not
present. The `configure` script should be run with bash.

To install the UDPENCAP target, you need to enable it in `mconfig`. Warning:
this module is highly experimental. Use with caution!

Supported configurations for this release
=========================================

 * iptables >= 1.4.3
 * kernel-source >= 2.6.29 with prepared build/output directory

Selecting extensions
====================

You can edit the "mconfig" file to select what modules to build and
install. By default, all modules are enabled.

Configuring and compiling
=========================

    ./configure [options]

    --with-kbuild=

Specifies the path to the kernel build output directory. We need it for
building the kernel extensions. It defaults to `/lib/modules/$(runningversion)/build`,
which usually points to the right directory. (If not, you need
to install something.)

For RPM building, it should be `/usr/src/linux-obj/...`  or whatever location the
distro makes use of.

    --with-xtlibdir=

Specifies the path to where the newly built extensions should be installed when
`make install` is run. The default is to use the same path that
Xtables/iptables modules use, as determined by `pkg-config xtables --variable
xtlibdir`.  Thus, this option normally does NOT need to be specified anymore,
even if your distribution put modules in a strange location.

If you want to enable debugging, use

    ./configure CFLAGS="-ggdb3 -O0"

(-O0 is used to turn off instruction reordering, which makes debugging much
easier.)

To make use of a libxtables that is not in the default path, either

  a) append the location of the pkg-config files like:

         PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

(assuming that files have been installed), or,

  b) override the pkg-config variables, for example:

         ./configure libxtables_CFLAGS="-I../iptables/include" \
                     libxtables_LIBS="-L../iptables/.libs \
                     -Wl,-rpath,../iptables/.libs -lxtables"

(Use this in case you wish to use it without having to run `make install`. This
is because the `libxtables.pc` pkgconfig file in `../iptables` would already point
to e.g. `/usr/local`.)


Build-time options
==================

    V= controls the verbosity of make commands.
    V=0	"silent" (output filename)
    V=1	"verbose" (entire gcc command line)


Note to distribution packagers
==============================

Except for `--with-kbuild`, distributions should not have a need to supply any
other flags (besides `--prefix=/usr` and perhaps `--libdir=/usr/lib64`, etc.) to
configure when all prerequired packages are installed. If iptables-devel is
installed, necessary headers should already be in `/usr/include`, so that
overriding `PKG_CONFIG_PATH`, `libxtables_CFLAGS` and `libxtables_LIBS` variables
should not be needed.
