Helpful pointers for making flow-tools on cygwin exist. However, they don't get the job done on cygwin-1.5.24-2, you need to tell flow-tools that it doesn't have multicast or pktinfo support:
Prerequisites: install minires-devel, byacc, flex
After you run './configure', apply the following patch:
diff -urN flow-tools-0.66/src/flow-capture.c flow-tools-fixed/src/flow-capture.c
--- flow-tools-0.66/src/flow-capture.c 2003-04-02 10:03:01.000000000 -0800
+++ flow-tools-fixed/src/flow-capture.c 2007-08-11 16:38:08.403488000 -0700
@@ -566,7 +566,7 @@
/* unicast bind -- no multicast support */
if (bind(ftnet.fd, (struct sockaddr*)&ftnet.loc_addr,
sizeof(ftnet.loc_addr)) < 0)
- fterr_err(1, "bind(%s)", inet_ntoa(ftnet.loc_addr.sin_addr)));
+ fterr_err(1, "bind(%s)", inet_ntoa(ftnet.loc_addr.sin_addr));
#endif /* IP_ADD_MEMBERSHIP */
diff -urN flow-tools-0.66/src/flow-cat.c flow-tools-fixed/src/flow-cat.c
--- flow-tools-0.66/src/flow-cat.c 2003-04-02 10:03:01.000000000 -0800
+++ flow-tools-fixed/src/flow-cat.c 2007-08-11 16:42:52.001281600 -0700
@@ -550,7 +550,7 @@
if (done)
break;
-next_file:
+next_file:;
} /* FOREACH filename in dir */
diff -urN flow-tools-0.66/src/flow-dscan.c flow-tools-fixed/src/flow-dscan.c
--- flow-tools-0.66/src/flow-dscan.c 2003-04-02 10:03:01.000000000 -0800
+++ flow-tools-fixed/src/flow-dscan.c 2007-08-11 16:43:09.556524800 -0700
@@ -559,7 +559,7 @@
if (ds.ager_timeout && (!(total_flows % 1000)))
ager(&ds, total_flows32);
-skip2:
+skip2:;
} /* while rec */
@@ -804,7 +804,7 @@
ager_i = 0;
fterr_info("ager: reset hash run");
-skip3:
+skip3:;
} /* ager */
diff -urN flow-tools-0.66/src/flow-fanout.c flow-tools-fixed/src/flow-fanout.c
--- flow-tools-0.66/src/flow-fanout.c 2003-04-03 18:24:40.000000000 -0800
+++ flow-tools-fixed/src/flow-fanout.c 2007-08-11 16:44:07.900419200 -0700
@@ -808,7 +808,7 @@
} /* fte.buf_size */
-skip1:
+skip1:;
} /* if FD_ISSET */
diff -urN flow-tools-0.66/src/flow-receive.c flow-tools-fixed/src/flow-receive.c
--- flow-tools-0.66/src/flow-receive.c 2003-04-02 10:03:02.000000000 -0800
+++ flow-tools-fixed/src/flow-receive.c 2007-08-11 16:43:44.817227200 -0700
@@ -752,7 +752,7 @@
} /* for */
-skip1:
+skip1:;
} /* if FD_ISSET */
diff -urN flow-tools-0.66/src/ftbuild.h flow-tools-fixed/src/ftbuild.h
--- flow-tools-0.66/src/ftbuild.h 2003-04-03 18:26:45.000000000 -0800
+++ flow-tools-fixed/src/ftbuild.h 2007-08-11 17:06:59.001966400 -0700
@@ -1 +1,8 @@
-#define FT_PROG_BUILD "maf@faith on Thu Apr 3 21:26:45 EST 2003"
+#define FT_PROG_BUILD "Administrator@labtest2000 on Sat Aug 11 15:22:16 PDT 2007"
+
+// cygwin doesn't have multicast
+#undef IP_ADD_MEMBERSHIP
+#undef IP_ADD_SOURCE_MEMBERSHIP
+
+// cygwin lacks
+#undef IP_PKTINFO
--- flow-tools-0.66/lib/ftlib.h 2003-04-03 07:06:25.000000000 -0800
+++ flow-tools-fixed/lib/ftlib.h 2007-08-11 18:14:10.318715200 -0700
@@ -26,6 +26,7 @@
* $Id: ftlib.h,v 1.87 2003/04/03 15:06:25 maf Exp $
*/
+
#ifndef FTLIB_H
#define FTLIB_H
@@ -42,6 +43,8 @@
#include
#include
+#undef IP_PKTINFO
+
#ifndef BIG_ENDIAN
#define BIG_ENDIAN 4321
#endif
@@ -84,6 +87,8 @@
#include "ftpaths.h"
#include "radix.h"
+
+
/*
* compatability
*/
Then run 'make' and you should have working flow-tools install. Follow the INSTALL file for full installation and testing.
Next is figuring out how to package this all up....