xtrans.m4 revision b53e5eea
173143b9aSmrgdnl $XdotOrg: lib/xtrans/xtrans.m4,v 1.6 2005/07/26 18:59:11 alanc Exp $
273143b9aSmrgdnl
373143b9aSmrgdnl Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
473143b9aSmrgdnl 
573143b9aSmrgdnl Permission to use, copy, modify, distribute, and sell this software and its
673143b9aSmrgdnl documentation for any purpose is hereby granted without fee, provided that
773143b9aSmrgdnl the above copyright notice appear in all copies and that both that
873143b9aSmrgdnl copyright notice and this permission notice appear in supporting
973143b9aSmrgdnl documentation.
1073143b9aSmrgdnl 
1173143b9aSmrgdnl The above copyright notice and this permission notice shall be included
1273143b9aSmrgdnl in all copies or substantial portions of the Software.
1373143b9aSmrgdnl 
1473143b9aSmrgdnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
1573143b9aSmrgdnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1673143b9aSmrgdnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
1773143b9aSmrgdnl IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
1873143b9aSmrgdnl OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
1973143b9aSmrgdnl ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
2073143b9aSmrgdnl OTHER DEALINGS IN THE SOFTWARE.
2173143b9aSmrgdnl 
2273143b9aSmrgdnl Except as contained in this notice, the name of the copyright holders shall
2373143b9aSmrgdnl not be used in advertising or otherwise to promote the sale, use or
2473143b9aSmrgdnl other dealings in this Software without prior written authorization
2573143b9aSmrgdnl from the copyright holders.
2673143b9aSmrgdnl 
2773143b9aSmrg
2873143b9aSmrg# XTRANS_TCP_FLAGS()
2973143b9aSmrg# ------------------
3073143b9aSmrg# Find needed libraries for TCP sockets, and check for IPv6 support
3173143b9aSmrgAC_DEFUN([XTRANS_TCP_FLAGS],[
3273143b9aSmrg # SVR4 hides these in libraries other than libc
3373143b9aSmrg AC_SEARCH_LIBS(socket, [socket])
3473143b9aSmrg AC_SEARCH_LIBS(gethostbyname, [nsl])
35b53e5eeaSmrg if test "$ac_cv_search_socket$ac_cv_search_gethostbyname" = "nono"; then
36b53e5eeaSmrg   AC_HAVE_LIBRARY([ws2_32])
37b53e5eeaSmrg fi
3873143b9aSmrg
3973143b9aSmrg # Needs to come after above checks for libsocket & libnsl for SVR4 systems
4073143b9aSmrg AC_ARG_ENABLE(ipv6, 
418d4c0f7bSmrg	AC_HELP_STRING([--enable-ipv6],[Enable IPv6 support]),
4273143b9aSmrg	[IPV6CONN=$enableval], 
4373143b9aSmrg	[AC_CHECK_FUNC(getaddrinfo,[IPV6CONN=yes],[IPV6CONN=no])])
4473143b9aSmrg AC_MSG_CHECKING([if IPv6 support should be built])
4573143b9aSmrg if test "$IPV6CONN" = "yes"; then
4673143b9aSmrg	AC_DEFINE(IPv6,1,[Support IPv6 for TCP connections])
4773143b9aSmrg fi
4873143b9aSmrg AC_MSG_RESULT($IPV6CONN)
4973143b9aSmrg
5073143b9aSmrg # 4.3BSD-Reno added a new member to struct sockaddr_in
5173143b9aSmrg AC_CHECK_MEMBER([struct sockaddr_in.sin_len], 
5273143b9aSmrg	AC_DEFINE([BSD44SOCKETS],1,
5373143b9aSmrg 	    [Define to 1 if `struct sockaddr_in' has a `sin_len' member]), [], [
5473143b9aSmrg#include <sys/types.h>
5573143b9aSmrg#include <sys/socket.h>
5673143b9aSmrg#include <netinet/in.h>
5773143b9aSmrg ])
5873143b9aSmrg
5973143b9aSmrg # POSIX.1g changed the type of pointer passed to getsockname/getpeername/etc.
6073143b9aSmrg AC_CHECK_TYPES([socklen_t], [], [], [
6173143b9aSmrgAC_INCLUDES_DEFAULT
6273143b9aSmrg#include <sys/socket.h>])
6373143b9aSmrg 
6473143b9aSmrg]) # XTRANS_TCP_FLAGS
6573143b9aSmrg
6673143b9aSmrg# XTRANS_CONNECTION_FLAGS()
6773143b9aSmrg# -------------------------
6873143b9aSmrg# Standard checks for which Xtrans transports to use by the Xorg packages
6973143b9aSmrg# that use Xtrans functions
7073143b9aSmrgAC_DEFUN([XTRANS_CONNECTION_FLAGS],[
7173143b9aSmrg AC_REQUIRE([AC_CANONICAL_HOST])
7273143b9aSmrg AC_REQUIRE([AC_TYPE_SIGNAL])
7373143b9aSmrg [case $host_os in
7473143b9aSmrg	mingw*)	unixdef="no"   ;;
7573143b9aSmrg	*)	unixdef="yes"  ;;
7673143b9aSmrg esac]
7773143b9aSmrg AC_ARG_ENABLE(unix-transport,
7873143b9aSmrg	AC_HELP_STRING([--enable-unix-transport],[Enable UNIX domain socket transport]),
7973143b9aSmrg	[UNIXCONN=$enableval], [UNIXCONN=$unixdef])
8073143b9aSmrg AC_MSG_CHECKING([if Xtrans should support UNIX socket connections])
8173143b9aSmrg if test "$UNIXCONN" = "yes"; then
8273143b9aSmrg	AC_DEFINE(UNIXCONN,1,[Support UNIX socket connections])
8373143b9aSmrg fi
8473143b9aSmrg AC_MSG_RESULT($UNIXCONN)
8573143b9aSmrg AC_ARG_ENABLE(tcp-transport, 
8673143b9aSmrg	AC_HELP_STRING([--enable-tcp-transport],[Enable TCP socket transport]),
8773143b9aSmrg	[TCPCONN=$enableval], [TCPCONN=yes])
8873143b9aSmrg AC_MSG_CHECKING([if Xtrans should support TCP socket connections])
8973143b9aSmrg AC_MSG_RESULT($TCPCONN)
9073143b9aSmrg if test "$TCPCONN" = "yes"; then
9173143b9aSmrg	AC_DEFINE(TCPCONN,1,[Support TCP socket connections])
9273143b9aSmrg	XTRANS_TCP_FLAGS
9373143b9aSmrg fi
9473143b9aSmrg [case $host_os in
9573143b9aSmrg	solaris*|sco*|sysv4*)	localdef="yes" ;;
9673143b9aSmrg	*)			localdef="no"  ;;
9773143b9aSmrg esac]
9873143b9aSmrg AC_ARG_ENABLE(local-transport,
9973143b9aSmrg	AC_HELP_STRING([--enable-local-transport],[Enable os-specific local transport]),
10073143b9aSmrg	[LOCALCONN=$enableval], [LOCALCONN=$localdef])
10173143b9aSmrg AC_MSG_CHECKING([if Xtrans should support os-specific local connections])
10273143b9aSmrg AC_MSG_RESULT($LOCALCONN)
10373143b9aSmrg if test "$LOCALCONN" = "yes"; then
10473143b9aSmrg	AC_DEFINE(LOCALCONN,1,[Support os-specific local connections])
10573143b9aSmrg fi
10673143b9aSmrg 
10773143b9aSmrg]) # XTRANS_CONNECTION_FLAGS
10873143b9aSmrg
10973143b9aSmrg
11073143b9aSmrg# XTRANS_SECURE_RPC_FLAGS()
11173143b9aSmrg# -------------------------
11273143b9aSmrg# Check for Secure RPC functions - must come after XTRANS_TCP_FLAGS
11373143b9aSmrg# so that any necessary networking libraries are already found
11473143b9aSmrgAC_DEFUN([XTRANS_SECURE_RPC_FLAGS],
11573143b9aSmrg[AC_REQUIRE([XTRANS_TCP_FLAGS])
11673143b9aSmrg AC_ARG_ENABLE(secure-rpc, 
11773143b9aSmrg	AC_HELP_STRING([--enable-secure-rpc],[Enable Secure RPC]),
11873143b9aSmrg        [SECURE_RPC=$enableval], [SECURE_RPC="try"])
11973143b9aSmrg
12073143b9aSmrg if test "x$SECURE_RPC" = "xyes" -o "x$SECURE_RPC" = "xtry" ; then
12173143b9aSmrg	FOUND_SECURE_RPC="no"
12273143b9aSmrg	AC_CHECK_FUNCS([authdes_seccreate authdes_create],
12373143b9aSmrg			[FOUND_SECURE_RPC="yes"])
12473143b9aSmrg	if test "x$FOUND_SECURE_RPC" = "xno" ; then
12573143b9aSmrg		if test "x$SECURE_RPC" = "xyes" ; then
12673143b9aSmrg	AC_MSG_ERROR([Secure RPC requested, but required functions not found])
12773143b9aSmrg		fi	
12873143b9aSmrg		SECURE_RPC="no"
12973143b9aSmrg	else
13073143b9aSmrg		dnl FreeBSD keeps getsecretkey in librpcsvc
13173143b9aSmrg		AC_SEARCH_LIBS(getsecretkey, [rpcsvc])
13273143b9aSmrg		SECURE_RPC="yes"
13373143b9aSmrg	fi
13473143b9aSmrg fi
13573143b9aSmrg AC_MSG_CHECKING([if Secure RPC authentication ("SUN-DES-1") should be supported])
13673143b9aSmrg if test "x$SECURE_RPC" = "xyes" ; then
13773143b9aSmrg	AC_DEFINE(SECURE_RPC, 1, [Support Secure RPC ("SUN-DES-1") authentication for X11 clients])
13873143b9aSmrg fi
13973143b9aSmrg AC_MSG_RESULT($SECURE_RPC)
14073143b9aSmrg]) # XTRANS_SECURE_RPC_FLAGS
14173143b9aSmrg
142