On Tiger, TCP_KEEPALIVE only appears if neither _XOPEN_SOURCE nor
_POSIX_C_SOURCE is defined. Instead of dealing with other possible
ramifications of undefining those, just pop in the TCP_KEEPALIVE
definition from <netinet/tcp.h>.

--- fmacros.h.orig
+++ fmacros.h
@@ -6,7 +6,7 @@
 
 #if defined(__APPLE__) && defined(__MACH__)
 /* Enable TCP_KEEPALIVE */
-#define _DARWIN_C_SOURCE
+#define TCP_KEEPALIVE 0x10
 #endif
 
 #endif
