There are a number of different possible compile-time options for Deadwood. It can be compiled as follows: * CentOS 5, no IPV6 * CentOS 5, IPV6 * Windows XP, no IPV6 The default compile gives no IPv6 To compile Deadwood with IPv6 support, add '-DIPV6' to the compile-time flags, e.g. 'cd src/ ; export FLAGS='-O3 -DIPV6'; make' The reason why one may wish IPv6 is to use Deadwood on an IPv6 network. --- Full list of compile flags Deadwood has: IPV6 (-DIPV6): Adds IPv6 support to Deadwood STRICT_RFC2671_COMPLIANCE (-DSTRICT_RFC2671_COMPLIANCE): Normally, Deadwood handles EDNS (RFC2671) packets by acting like the packet was an ordinary RFC1035 DNS request. This flag conforms to section 5.3 of RFC2671 by having Deadwood instead reply to ENDS packets with a "not implemented" error. MINGW (use the correct Makefile): Used to replace *NIX sockets with Windows sockets and make other changes to make the program a native Windows service. This flag should not be invoked by the end-user compiling Deadwood; instead use the 'Makefile.mingw' file: make -f Makefile.mingw342 __CYGWIN__ (no flag to set; Cygwin sets this): It is also possible to compile this program using Cygwin, an environment that fully emulates a *NIX development environment in Windows. Note: The following compile-time flags will only be of interest to developers debugging Deadwood VALGRIND_NOERRORS (-DVALGRIND_NOERRORS): Normally, Deadwood uses the contents of uninitialized memory as an entropy source for the random number generator. This compile-time flag disables that behavior so that Valgrind (a debugging tool for C programs) does not complain about program behavior affected by uninitizlized data. XTRA_STUFF (-DXTRA_STUFF): Add some routines that allow the printing of debug information to standard output. OTHER_STUFF (-DOTHER_STUFF): Add some routines that aren't actually used by Deadwood HASH_DEBUG (-DHASH_DEBUG): Add information used by the dwood2rc_n_hash_magic_number SQA regression HAVE_MAIN (-DHAVE_MAIN): DwCompress.c, DwHash.c, DwMararc.c, and DwRadioGatun.c all have main() routines that can be enabled with this compile-time flag. This is mainly used for debugging. DwRadioGatun.c, when compiled with 'gcc -g -DHAVE_MAIN -o RadioGatun DwRadioGatun.c' makes a program that will output on standard output the RadioGatun[32] sum of the first argument given to the program. We use this in the SQA test (sqa_rg32) to ensure that DwRadioGatun.c makes a RadioGatun[32] implementation that passes all official RadioGatun[32] test vectors. HSCK (-DHSCK): Adds some routines to ensure that DwHash.c is correctly creating a doubly linked list hash and queue. Used with the debug-only Makefile.hsck make file. INFLIGHT_VERBOSE (-DINFLIGHT_VERBOSE): Used by the dwood2rc_n_max_inflights SQA test to ensure multiple inflight merging works MARARC_C: Used internally by DwMararc.c to ensure that it sees some data in DwMararc.h that other program files should not see. Not used as a compile-time flag. We do things this way so a new dwood3rc parameter can be added by only modifying one file (however, we still need to modify DwMararc.c to give said parameter a default value) NO_INET_PTON: Deadwood uses inet_pton() to convert human-readable IP addresses like "10.1.2.3" in to binary IPs. If a given system doesn't have inet_pton() (Windows doesn't), this creates a inet_pton() using inet_addr() to convert the actual IP (since Windows does have inet_addr() )