
Dependencies / System reqs for building from release tarballs
==============================================================

A reasonably "normal" 32 or 64 bit CPU architecture
A modern POSIX-ish operating system with a decent C99 compiler and a
  reasonably up to date and conforming libc and POSIX threads support.
For Linux: libcap 2.x+ is recommended

Most development and testing is done on modern Linux and MacOS X machines,
  and mostly on x86_64 CPUs.

In the past the code has been tested successfully on several Linux and
  *BSD variants on x86 and x86_64 CPUs, OpenSolaris, and even an embedded
  Linux target running on a big-endian MIPS CPU.  Most of these haven't
  been re-tested in several releases now, so there could be minor fixups
  in order as far as I know.  Bug reports and/or patches welcome.

Building from git
==================

While the distribution tarballs contain just about everything they need
short of "make" and "cc", most auto-generated distribution files are
not included in the git repository, so you'll need additional
tools installed in your $PATH to get things working

The latest versions of GNU autoconf, automake, libtool and libltdl
Ragel v6.6+: http://complang.org/ragel
And everything listed below for the testsuite...

On a fresh git clone, start with "./autogen.sh", which will re-generate
all of the autotools outputs and then run "./configure && make".

"make maintainer-clean" will get rid of a lot of autogenerated files,
but if you really want to get back to a pristine state, the best option
is "git clean -dffx".  Just be careful with that one, as it *will* wipe
out uncommitted work you have laying around as well.

Running the test suite (make check, etc)
=========================================

Perl version 5.8.1 or higher is required for running the test suite and
generating the documentation.

The test suite also needs the following non-standard Perl modules (the "aka"
are what you will sometimes find them as in OS package managers):
  Test::More (aka perl-Test-Simple)
  LWP (aka perl-libwww-perl)
  Socket6
  IO::Socket::INET6
  HTTP::Daemon

You can install the above modules via the standard CPAN mechanisms, which
usually involves invoking the CPAN shell "cpan" with appropriate privileges to
install Perl modules.  Your OS vendor may also have pre-built packages for at
least some of these modules.

Building and Installing gdnsd
==============================

gdnsd uses autoconf and automake, so the process here is fairly
straightforward:

./configure --prefix=/some/where
make
make check  # optional, requires Perl stuff above
sudo make install

Interesting non-standard configure options:

--enable-developer
  Builds a debugging build (-g) with a lot of extra gcc warnings
    flags, a large suite of assert()ions, and extra
    informative debug information via STDERR or syslog().
    It also does other excessive runtime checks that really
    slow things down.
  Not generally for production use.  If you just want debug
    symbols, put -g in your CFLAGS.

--with-testport=N
  The test suite needs to be able to bind to 3 consecutive ports
   on 127.0.0.1, starting with port N.  The default is 12345.  If
   this conflicts with some existing service on your machine, change
   it here.

--without-libcap
  Explicitly disable libcap support on Linux

