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>>

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 libipq headers, like:
	# make install-devel

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

1) If you want to try some extensions, you can do the following:
	% make patch-o-matic KERNEL_DIR=<<where-your-kernel-is>>

This offers you a collection of maybe-broken maybe-cool third-part
extensions.  It will modify you kernel source (so back it up first!).

2) If you want to test out `iptables-save' and `iptables-restore', you
can use
	% make experimental
	% make install-experimental

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

1) This package requires a 2.4.0 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

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