-# select.m4 serial 3
-dnl Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+# select.m4 serial 6
+dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_REQUIRE([gl_SOCKETS])
if test "$ac_cv_header_winsock2_h" = yes; then
- AC_LIBOBJ([select])
+ REPLACE_SELECT=1
else
dnl On Interix 3.5, select(0, NULL, NULL, NULL, timeout) fails with error
dnl EFAULT.
])
case "$gl_cv_func_select_supports0" in
*yes) ;;
- *)
- REPLACE_SELECT=1
- AC_LIBOBJ([select])
+ *) REPLACE_SELECT=1 ;;
+ esac
+ fi
+
+ dnl Determine the needed libraries.
+ LIB_SELECT="$LIBSOCKET"
+ if test $REPLACE_SELECT = 1; then
+ case "$host_os" in
+ mingw*)
+ dnl On the MSVC platform, the function MsgWaitForMultipleObjects
+ dnl (used in lib/select.c) requires linking with -luser32. On mingw,
+ dnl it is implicit.
+ AC_LINK_IFELSE(
+ [AC_LANG_SOURCE([[
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+int
+main ()
+{
+ MsgWaitForMultipleObjects (0, NULL, 0, 0, 0);
+ return 0;
+}]])],
+ [],
+ [LIB_SELECT="$LIB_SELECT -luser32"])
;;
esac
fi
+ AC_SUBST([LIB_SELECT])
])