FOLLOW THESE STEPS:

0) There may be some outstanding bugfixes or tweaks which are not yet
   in the official kernel.  To look through these, do:
	% make pending-patches KERNEL_DIR=<<where-your-kernel-is>>

   Please note that you have to recompile your kernel and your kernel modules
   after this step of kernel patching.

1) Next, make the package.
	% make KERNEL_DIR=<<where-your-kernel-is>>

2) Finally, you need to to install the shared libraries, and the binary:
	# make install KERNEL_DIR=<<where-your-kernel-is>>

If you are a developer, you can install the headers, development libraries
and associated development man pages, with:
	# make install-devel

That's it!
================================================================
FEELING BRAVE?

1) The netfilter core team is maintaining a set of extensions / new 
   features which are not yet committed to the mainstream kernel tree.

They are a collection of maybe-broken maybe-cool third-party extensions. 

Please note that you cannot apply any combination of any of those patches.
Some of them are incompatible... 

This is why we provide two ways of applying them:

If you want to try some extensions, and be sure that they don't break each
other, you can do the following:

	% make most-of-pom KERNEL_DIR=<<where-your-kernel-is>>

It will modify you kernel source (so back it up first!).  You will have
to recompile / rebuild your kernel and modules.

Alternatively, if you really know what your are doing, you can use the
following command in order to offer you the full list of choices.  Be aware
that we don't prevent you from shooting yourself in the foot.

	% make patch-o-matic KERNEL_DIR=<<where-your-kernel-is>>

================================================================
PROBLEMS YOU MAY ENCOUNTER:

1) This package requires a 2.4.4 kernel, or above.

2) If you get the kernel directory wrong, you may see a message like:
	Please try `make KERNEL_DIR=path-to-correct-kernel'

3) If you want to specify alternate directories for installation
(instead of /usr/local/ bin lib man), do this:

	% make BINDIR=/usr/bin LIBDIR=/usr/lib MANDIR=/usr/man
	# make BINDIR=/usr/bin LIBDIR=/usr/lib MANDIR=/usr/man install

4) If you want to build a statically linked version of the iptables binary,
   without the need for loading the plugins at runtime (e.g. for an embedded
   device or router-on-a-disk), please use

	% make NO_SHARED_LIBS=1

NOTE: make sure you build with at least the correct LIBDIR=
specification, otherwise iptables(8) won't know where to find the
dynamic objects.
