dnl checks the winsock library to use (ws2_32 or wsock32)
dnl may set ac_cv_func_select as a side effect
AC_DEFUN([SQUID_CHECK_WINSOCK_LIB],[
+ AC_CHECK_HEADERS(winsock2.h winsock.h)
SQUID_STATE_SAVE(winsock)
- AC_SEARCH_LIBS([closesocket],[ws2_32 wsock32])
+ SQUID_SEARCH_LIBS([squid_getprotobynumber],[ws2_32 wsock32],,,,[
+#if HAVE_WINSOCK2_H
+#include <winsock2.h>
+#elif HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
+/* ugly hack. */
+void squid_getprotobynumber(void) {
+ getprotobynumber(1);
+}
+ ])
AC_MSG_CHECKING([for winsock library])
- case "$ac_cv_search_closesocket" in
+ case "$ac_cv_search_squid_getprotobynumber" in
"no")
AC_MSG_RESULT([winsock library not found])
;;
;;
"-lws2_32")
AC_MSG_RESULT([winsock2])
+ XTRA_LIBS="-lws2_32 $XTRA_LIBS"
ac_cv_func_select='yes'
;;
"-lwsock32")
AC_MSG_RESULT([winsock])
+ XTRA_LIBS="-lwsock32 $XTRA_LIBS"
ac_cv_func_select='yes'
;;
esac
- AC_CHECK_HEADERS(winsock2.h winsock.h)
SQUID_STATE_ROLLBACK(winsock)
])
squid_cv_cpu_profiler_works=no])
)
])
+
+dnl check whether recv takes a char* or void* as a second argument
+AC_DEFUN([SQUID_CHECK_RECV_ARG_TYPE],[
+ AC_CACHE_CHECK([whether recv takes a pointer to void or char as second argument],
+ squid_cv_recv_second_arg_type, [
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <sys/types.h>
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#if HAVE_WINSOCK2_H
+#include <winsock2.h>
+#endif
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
+int main (int argc, char ** argv) {
+ void *buf;
+ recv(0,buf,0,0);
+}
+]])],[squid_cv_recv_second_arg_type=void],
+ [squid_cv_recv_second_arg_type=char])
+ AC_MSG_RESULT($squid_cv_recv_second_arg_type*)
+ ])
+ AC_DEFINE_UNQUOTED(RECV_ARG_TYPE,$squid_cv_recv_second_arg_type,
+ [Base type of the second argument to recv(2)])
+])
[Squid extended build info field for "squid -v" output])
fi
])
+
+dnl like AC_SEARCH_LIBS, with an extra argument which is
+dnl a prefix to the test program
+AC_DEFUN([SQUID_SEARCH_LIBS],
+[AS_VAR_PUSHDEF([ac_Search], [ac_cv_search_$1])dnl
+AC_CACHE_CHECK([for library containing $1], [ac_Search],
+[ac_func_search_save_LIBS=$LIBS
+AC_LANG_CONFTEST([AC_LANG_PROGRAM([$6], [$1()])])
+for ac_lib in '' $2; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $5 $ac_func_search_save_LIBS"
+ fi
+ AC_LINK_IFELSE([], [AS_VAR_SET([ac_Search], [$ac_res])])
+ AS_VAR_SET_IF([ac_Search], [break])
+done
+AS_VAR_SET_IF([ac_Search], , [AS_VAR_SET([ac_Search], [no])])
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS])
+ac_res=AS_VAR_GET([ac_Search])
+AS_IF([test "$ac_res" != no],
+ [test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+ $3],
+ [$4])
+AS_VAR_POPDEF([ac_Search])dnl
+])