1dnl bsd_sockets.m4--which socket libraries do we need?
2dnl Derrick Brashear
3dnl from Zephyr
4
5dnl Hacked on by Rob Earhart to not just toss stuff in LIBS
6dnl It now puts everything required for sockets into LIB_SOCKET
7
8AC_DEFUN([CMU_SOCKETS], [
9	save_LIBS="$LIBS"
10	AC_CHECK_HEADERS([sys/socket.h ws2tcpip.h])
11	AC_CHECK_FUNC(socket, , [
12		AC_CHECK_LIB(socket, socket, [LIB_SOCKET=-lsocket], [
13			LIBS="$LIBS -lws2_32"
14			AC_LINK_IFELSE([
15				AC_LANG_PROGRAM([[
16					#ifdef HAVE_SYS_SOCKET_H
17					#	include <sys/socket.h>
18					#endif
19					#ifdef HAVE_WS2TCPIP_H
20					#	include <ws2tcpip.h>
21					#endif
22				]], [[return socket(0, 0, 0);]])
23			],
24			[LIB_SOCKET=-lws2_32
25			 AC_MSG_RESULT(yes)],
26			[AC_MSG_ERROR([socket not found])])
27		])
28	])
29	LIBS="$save_LIBS"
30	AC_CHECK_FUNC(connect, :,
31		[AC_CHECK_LIB(nsl, gethostbyname,
32			     LIB_SOCKET="-lnsl $LIB_SOCKET")
33		AC_CHECK_LIB(socket, connect,
34			     LIB_SOCKET="-lsocket $LIB_SOCKET")]
35	)
36	LIBS="$LIB_SOCKET $save_LIBS"
37	AC_CHECK_FUNC(res_search, :,
38		[LIBS="-lresolv $LIB_SOCKET $save_LIBS"
39		AC_TRY_LINK([[
40#include <sys/types.h>
41#include <netinet/in.h>
42#include <arpa/nameser.h>
43#ifdef HAVE_ARPA_NAMESER_COMPAT_H
44#include <arpa/nameser_compat.h>
45#endif
46#include <resolv.h>]],[[
47const char host[12]="openafs.org";
48u_char ans[1024];
49res_search( host, C_IN, T_MX, (u_char *)&ans, sizeof(ans));
50return 0;
51]], LIB_SOCKET="-lresolv $LIB_SOCKET")
52        ])
53	LIBS="$LIB_SOCKET $save_LIBS"
54	AC_CHECK_FUNCS(dn_expand dns_lookup)
55	LIBS="$save_LIBS"
56	AC_SUBST(LIB_SOCKET)
57	])
58