-# should malicious code be compiled (code used for testing with malicious peers)
-enable_malicious=0
-AC_MSG_CHECKING(whether to compile malicious code)
-AC_ARG_ENABLE(malicious,
- [AS_HELP_STRING([--enable-malicious],
- [enable compiling malicious code (only for developers for testing)])],
- [enable_malicious=1],
- [enable_malicious=0])
-AC_MSG_RESULT($enable_malicious)
-AM_CONDITIONAL([HAVE_MALICIOUS], [test "x$enable_malicious" = "x1"])
-AC_DEFINE_UNQUOTED([HAVE_MALICIOUS], $enable_malicious, [Compile malicious code])
+# should code be enabled that works around missing OS functionality on Windows?
+# used for test cases
+if test $build_target = "mingw"
+then
+ workarounds=1
+
+AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [#include <ws2tcpip.h>
+ ],[
+ int s = socket (0, 0, 0);])
+ ],[
+ AC_DEFINE_UNQUOTED([HAVE_SOCKET],1,[Define this if socket() is available])
+ ],[
+ AC_DEFINE_UNQUOTED([HAVE_SOCKET],0,[Define this if socket() is available])
+ ])
+
+AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [#include <ws2tcpip.h>
+ ],[
+ int s = select (0, NULL, NULL, NULL, NULL);])
+ ],[
+ AC_DEFINE_UNQUOTED([HAVE_SELECT],1,[Define this if select() is available])
+ ],[
+ AC_DEFINE_UNQUOTED([HAVE_SELECT],0,[Define this if select() is available])
+ ])
+
+AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [#include <ws2tcpip.h>
+ ],[
+ struct in_addr i;
+ char *s = inet_ntoa (i);])
+ ],[
+ AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],1,[Define this if inet_ntoa() is available])
+ ],[
+ AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],0,[Define this if inet_ntoa() is available])
+ ])
+
+AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [#include <ws2tcpip.h>
+ ],[
+ int s = getnameinfo (NULL, 0, NULL, 0, NULL, 0, 0);])
+ ],[
+ AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],1,[Define this if getnameinfo() is available])
+ ],[
+ AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],0,[Define this if getnameinfo() is available])
+ ])
+
+AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [#include <ws2tcpip.h>
+ ],[
+ int s = gethostname (NULL, 0);])
+ ],[
+ AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],1,[Define this if gethostname() is available])
+ ],[
+ AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],0,[Define this if gethostname() is available])
+ ])
+
+AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [#include <ws2tcpip.h>
+ ],[
+ void *s = gethostbyname (NULL);])
+ ],[
+ AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],1,[Define this if gethostbyname() is available])
+ ],[
+ AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],0,[Define this if gethostbyname() is available])
+ ])
+
+AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [#include <ws2tcpip.h>
+ ],[
+ void *s = gethostbyaddr (NULL, 0, 0);])
+ ],[
+ AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],1,[Define this if gethostbyaddr() is available])
+ ],[
+ AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],0,[Define this if gethostbyaddr() is available])
+ ])
+
+AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [#include <ws2tcpip.h>
+ ],[
+ int s = getaddrinfo (NULL, NULL, NULL, NULL);])
+ ],[
+ AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
+ ],[
+ AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
+ ])
+
+else
+ AC_MSG_CHECKING(whether to enable windows workarounds)
+ AC_ARG_ENABLE([windows_workarounds],
+ [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
+ [enable_workarounds=${enableval}],
+ [enable_workarounds=no])
+ AC_MSG_RESULT($enable_workarounds)
+ if test x$enable_windows_workarounds = "xyes"
+ then
+ workarounds=1
+ else
+ workarounds=0
+ fi
+fi
+AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])