configure.ac revision 7204935c
11c7386f4Smrgdnl Process this file with autoconf to produce a configure script. 2602e473dSmrg 321298544Smrg# Initialize Autoconf 41016ad83SmrgAC_PREREQ([2.60]) 57204935cSmrgAC_INIT([libxcb],[1.12], 61c7386f4Smrg [https://bugs.freedesktop.org/enter_bug.cgi?product=xcb], 71c7386f4Smrg [libxcb]) 81016ad83SmrgAC_CONFIG_AUX_DIR([build-aux]) 91016ad83SmrgAC_CONFIG_MACRO_DIR([m4]) 10602e473dSmrgAC_CONFIG_SRCDIR([xcb.pc.in]) 111c7386f4SmrgAC_CONFIG_HEADERS([src/config.h]) 1221298544Smrg 1321298544Smrg# Initialize Automake 14602e473dSmrgAM_INIT_AUTOMAKE([foreign dist-bzip2]) 151c7386f4SmrgAM_PATH_PYTHON([2.6]) 16602e473dSmrg 171016ad83Smrg# Set common system defines for POSIX extensions, such as _GNU_SOURCE 181016ad83Smrg# Must be called before any macros that run the compiler (like AC_PROG_LIBTOOL) 191016ad83Smrg# to avoid autoconf errors. 201016ad83SmrgAC_USE_SYSTEM_EXTENSIONS 211016ad83Smrg 221c7386f4Smrg# Initialize libtool 231c7386f4SmrgLT_PREREQ([2.2]) 241c7386f4SmrgLT_INIT([win32-dll]) 251c7386f4Smrg 261c7386f4Smrg# Require xorg-macros minimum of 1.18 - Initial version 271c7386f4Smrgm4_ifndef([XORG_MACROS_VERSION], 281c7386f4Smrg [m4_fatal([must install xorg-macros 1.18 or later before running autoconf/autogen])]) 291c7386f4SmrgXORG_MACROS_VERSION(1.18) 301c7386f4SmrgXORG_DEFAULT_OPTIONS 311c7386f4SmrgXORG_ENABLE_DEVEL_DOCS 321c7386f4SmrgXORG_WITH_DOXYGEN 331c7386f4Smrg 341c7386f4Smrg# The dot drawing tool is checked by XORG_WITH_DOXYGEN, needed for xcb manual 351c7386f4Smrgif test x"$HAVE_DOT" = xno; then 361c7386f4Smrg AC_MSG_WARN([dot not found - doxygen targets will be skipped]) 371c7386f4Smrgfi 38602e473dSmrg 39602e473dSmrgPKG_CHECK_MODULES(CHECK, [check >= 0.9.4], [HAVE_CHECK=yes], [HAVE_CHECK=no]) 40602e473dSmrgAM_CONDITIONAL(HAVE_CHECK, test x$HAVE_CHECK = xyes) 41602e473dSmrg 421016ad83SmrgXSLTPROC=no 431016ad83SmrgHTML_CHECK_RESULT=no 44602e473dSmrgif test x"$HAVE_CHECK" = xyes; then 451c7386f4Smrg AC_PATH_PROG(XSLTPROC, xsltproc, no) 461c7386f4Smrg if test x"$XSLTPROC" != xno; then 471c7386f4Smrg HTML_CHECK_RESULT=yes 481c7386f4Smrg fi 49602e473dSmrgfi 50602e473dSmrgAC_SUBST(HTML_CHECK_RESULT) 51602e473dSmrg 52602e473dSmrg# Checks for pkg-config packages 537204935cSmrgPKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.12) 54602e473dSmrgNEEDED="pthread-stubs xau >= 0.99.2" 55602e473dSmrgPKG_CHECK_MODULES(NEEDED, $NEEDED) 56602e473dSmrg 57602e473dSmrghave_xdmcp="no" 58602e473dSmrgPKG_CHECK_MODULES(XDMCP, xdmcp, 591c7386f4Smrg AC_CHECK_LIB(Xdmcp, XdmcpWrap, 601c7386f4Smrg [ 611c7386f4Smrg AC_DEFINE(HASXDMAUTH,1,[Has Wraphelp.c needed for XDM AUTH protocols]) 621c7386f4Smrg NEEDED="$NEEDED xdmcp" 631c7386f4Smrg have_xdmcp="yes" 641c7386f4Smrg ], 651c7386f4Smrg [ 661c7386f4Smrg XDMCP_CFLAGS= 671c7386f4Smrg XDMCP_LIBS= 681c7386f4Smrg ], [$XDMCP_LIBS]), 691c7386f4Smrg [AC_MSG_RESULT(no)]) 70602e473dSmrg 71602e473dSmrgAC_SUBST(NEEDED) 72602e473dSmrg 73602e473dSmrg# Find the xcb-proto protocol descriptions 74602e473dSmrgAC_MSG_CHECKING(XCBPROTO_XCBINCLUDEDIR) 75602e473dSmrgXCBPROTO_XCBINCLUDEDIR=`$PKG_CONFIG --variable=xcbincludedir xcb-proto` 76602e473dSmrgAC_MSG_RESULT($XCBPROTO_XCBINCLUDEDIR) 77602e473dSmrgAC_SUBST(XCBPROTO_XCBINCLUDEDIR) 78602e473dSmrg 79602e473dSmrg# Find the xcb-proto version 80602e473dSmrgXCBPROTO_VERSION=`$PKG_CONFIG --modversion xcb-proto` 81602e473dSmrgAC_SUBST(XCBPROTO_VERSION) 82602e473dSmrg 83602e473dSmrg# Find the xcbgen Python package 84602e473dSmrgAC_MSG_CHECKING(XCBPROTO_XCBPYTHONDIR) 85602e473dSmrgXCBPROTO_XCBPYTHONDIR=`$PKG_CONFIG --variable=pythondir xcb-proto` 86602e473dSmrgAC_MSG_RESULT($XCBPROTO_XCBPYTHONDIR) 87602e473dSmrgAC_SUBST(XCBPROTO_XCBPYTHONDIR) 88602e473dSmrg 89602e473dSmrgAC_HEADER_STDC 90602e473dSmrgAC_SEARCH_LIBS(getaddrinfo, socket) 91602e473dSmrgAC_SEARCH_LIBS(connect, socket) 92602e473dSmrg 937204935cSmrg# Find support for sending a message from a socket 947204935cSmrgAC_SEARCH_LIBS(sendmsg, socket, [have_sendmsg="yes"], [have_sendmsg="no"]) 951016ad83Smrg 961016ad83Smrg# XPG4v2/UNIX95 added msg_control - check to see if we need to define 971016ad83Smrg# _XOPEN_SOURCE to get it (such as on Solaris) 981016ad83SmrgAC_CHECK_MEMBER([struct msghdr.msg_control], [], [], 991016ad83Smrg [ 1001016ad83SmrgAC_INCLUDES_DEFAULT 1011016ad83Smrg#include <sys/socket.h> 1021016ad83Smrg ]) 1031016ad83Smrg# First try for Solaris in C99 compliant mode, which requires XPG6/UNIX03 1041016ad83Smrgif test "x$ac_cv_member_struct_msghdr_msg_control" = xno; then 1051016ad83Smrg unset ac_cv_member_struct_msghdr_msg_control 1061016ad83Smrg AC_MSG_NOTICE([trying again with _XOPEN_SOURCE=600]) 1071016ad83Smrg AC_CHECK_MEMBER([struct msghdr.msg_control], 1081016ad83Smrg [AC_DEFINE([_XOPEN_SOURCE], [600], 1091016ad83Smrg [Defined if needed to expose struct msghdr.msg_control]) 1101016ad83Smrg ], [], [ 1111016ad83Smrg#define _XOPEN_SOURCE 600 1121016ad83SmrgAC_INCLUDES_DEFAULT 1131016ad83Smrg#include <sys/socket.h> 1141016ad83Smrg ]) 1151016ad83Smrgfi 1161016ad83Smrg# If that didn't work, fall back to XPG5/UNIX98 with C89 1171016ad83Smrgif test "x$ac_cv_member_struct_msghdr_msg_control" = xno; then 1181016ad83Smrg unset ac_cv_member_struct_msghdr_msg_control 1191016ad83Smrg AC_MSG_NOTICE([trying again with _XOPEN_SOURCE=500]) 1201016ad83Smrg AC_CHECK_MEMBER([struct msghdr.msg_control], 1211016ad83Smrg [AC_DEFINE([_XOPEN_SOURCE], [500], 1221016ad83Smrg [Defined if needed to expose struct msghdr.msg_control]) 1237204935cSmrg ], [have_sendmsg="no"], [ 1241016ad83Smrg#define _XOPEN_SOURCE 500 1251016ad83SmrgAC_INCLUDES_DEFAULT 1261016ad83Smrg#include <sys/socket.h> 1271016ad83Smrg ]) 1281016ad83Smrgfi 1291016ad83Smrg 1307204935cSmrgcase x$have_sendmsg in 1311016ad83Smrgxyes) 1321016ad83Smrg AC_DEFINE([HAVE_SENDMSG],1,[Define if your platform supports sendmsg]) 1331016ad83Smrg ;; 1341016ad83Smrgesac 1351016ad83Smrg 13621298544Smrghave_win32="no" 13721298544Smrglt_enable_auto_import="" 138602e473dSmrgcase $host_os in 13921298544Smrgmingw*) 1401c7386f4Smrg have_win32="yes" 1411c7386f4Smrg lt_enable_auto_import="-Wl,--enable-auto-import" 1421c7386f4Smrg ;; 143602e473dSmrglinux*) 1441c7386f4Smrg AC_DEFINE([HAVE_ABSTRACT_SOCKETS], 1, [Define if your platform supports abstract sockets]) 1451c7386f4Smrg ;; 146602e473dSmrgesac 147602e473dSmrg 14821298544SmrgAC_SUBST(lt_enable_auto_import) 14921298544SmrgAM_CONDITIONAL([XCB_HAVE_WIN32], [test "x${have_win32}" = "xyes"]) 15021298544Smrg 151602e473dSmrgdnl define buffer queue size 152602e473dSmrgAC_ARG_WITH([queue-size], 1531c7386f4Smrg AS_HELP_STRING([--with-queue-size=SIZE], 154602e473dSmrg [Set the XCB buffer queue size (default is 16384)]), 155602e473dSmrg [xcb_queue_buffer_size="$withval"], 156602e473dSmrg [xcb_queue_buffer_size=16384]) 157602e473dSmrgAC_DEFINE_UNQUOTED(XCB_QUEUE_BUFFER_SIZE, [$xcb_queue_buffer_size], 158602e473dSmrg [XCB buffer queue size]) 159602e473dSmrg 160602e473dSmrgdnl check for the sockaddr_un.sun_len member 161602e473dSmrgAC_CHECK_MEMBER([struct sockaddr_un.sun_len], 1621c7386f4Smrg [AC_DEFINE(HAVE_SOCKADDR_SUN_LEN,1,[Have the sockaddr_un.sun_len member.])], 1631c7386f4Smrg [], 1641c7386f4Smrg [ #include <sys/types.h> 1651c7386f4Smrg #include <sys/un.h> 1661c7386f4Smrg ]) 167602e473dSmrg 16821298544Smrgdnl check for support for Solaris Trusted Extensions 16921298544SmrgAC_CHECK_HEADERS([tsol/label.h]) 17021298544SmrgAC_CHECK_FUNCS([is_system_labeled]) 17121298544Smrg 17221298544Smrgdnl check for IOV_MAX, and fall back to UIO_MAXIOV on BSDish systems 17321298544SmrgAC_CHECK_DECL([IOV_MAX], [], 1741c7386f4Smrg [AC_CHECK_DECL([UIO_MAXIOV], [AC_DEFINE([IOV_MAX], [UIO_MAXIOV])], 1751c7386f4Smrg [AC_DEFINE([IOV_MAX], [16], [Define if not provided by <limits.h>])], 1761c7386f4Smrg [[#include <sys/uio.h>]])], 1771c7386f4Smrg [[#include <limits.h>]]) 17821298544Smrg 179602e473dSmrgxcbincludedir='${includedir}/xcb' 180602e473dSmrgAC_SUBST(xcbincludedir) 181602e473dSmrg 182602e473dSmrgXCB_CHECK_VISIBILITY() 183602e473dSmrg 18421298544SmrgAC_CHECK_FUNC(getaddrinfo, [AC_DEFINE(HAVE_GETADDRINFO, 1, [getaddrinfo() function is available])], ) 18521298544Smrg 186602e473dSmrgcase $host_os in 1871c7386f4Smrg # darwin through Snow Leopard has poll() but can't be used to poll character devices. 1881c7386f4Smrg darwin@<:@789@:>@*|darwin10*) ;; 1891c7386f4Smrg darwin*) 1901c7386f4Smrg _ac_xorg_macosx_version_min="" 1911c7386f4Smrg if echo $CPPFLAGS $CFLAGS | grep -q mmacosx-version-min ; then 1921c7386f4Smrg _ac_xorg_macosx_version_min=`echo $CPPFLAGS $CFLAGS | sed 's/^.*-mmacosx-version-min=\(@<:@^ @:>@*\).*$/\1/'` 1931c7386f4Smrg else 1941c7386f4Smrg _ac_xorg_macosx_version_min=$MACOSX_DEPLOYMENT_TARGET 1951c7386f4Smrg fi 1961c7386f4Smrg case $_ac_xorg_macosx_version_min in 1971c7386f4Smrg 10.@<:@0123456@:>@|10.@<:@0123456@:>@.*) ;; 1981c7386f4Smrg *) 1991c7386f4Smrg AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], ) 2001c7386f4Smrg ;; 2011c7386f4Smrg esac 2021c7386f4Smrg unset _ac_xorg_macosx_version_min 2031c7386f4Smrg ;; 2041c7386f4Smrg *) 2051c7386f4Smrg AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], ) 2061c7386f4Smrg ;; 207602e473dSmrgesac 208602e473dSmrg 2097204935cSmrgdnl Link with winsock for socket functions on MinGW 2107204935cSmrgcase $host_os in 2117204935cSmrg *mingw*) 2127204935cSmrg AC_CHECK_LIB([ws2_32],[main]) 2137204935cSmrg ;; 2147204935cSmrg *) 2157204935cSmrg ;; 2167204935cSmrgesac 2177204935cSmrg 2187204935cSmrgXCB_EXTENSION(Composite, yes) 2197204935cSmrgXCB_EXTENSION(Damage, yes) 2207204935cSmrgXCB_EXTENSION(DPMS, yes) 2217204935cSmrgXCB_EXTENSION(DRI2, yes) 2227204935cSmrgXCB_EXTENSION(DRI3, $have_sendmsg) 2237204935cSmrgXCB_EXTENSION(GLX, yes) 2247204935cSmrgXCB_EXTENSION(Present, yes) 2257204935cSmrgXCB_EXTENSION(RandR, yes) 2267204935cSmrgXCB_EXTENSION(Record, yes) 2277204935cSmrgXCB_EXTENSION(Render, yes) 2287204935cSmrgXCB_EXTENSION(Resource, yes) 2297204935cSmrgXCB_EXTENSION(Screensaver, yes) 2307204935cSmrgXCB_EXTENSION(Shape, yes) 2317204935cSmrgXCB_EXTENSION(Shm, yes) 2327204935cSmrgXCB_EXTENSION(Sync, yes) 2337204935cSmrgXCB_EXTENSION(Xevie, no) 2347204935cSmrgXCB_EXTENSION(XFixes, yes) 2357204935cSmrgXCB_EXTENSION(XFree86-DRI, yes) 2367204935cSmrgXCB_EXTENSION(Xinerama, yes) 2377204935cSmrgXCB_EXTENSION(XInput, no) 2387204935cSmrgXCB_EXTENSION(XKB, yes) 2397204935cSmrgXCB_EXTENSION(Xprint, no) 2407204935cSmrgXCB_EXTENSION(SELinux, no) 2417204935cSmrgXCB_EXTENSION(XTest, yes) 2427204935cSmrgXCB_EXTENSION(Xv, yes) 2437204935cSmrgXCB_EXTENSION(XvMC, yes) 244602e473dSmrg 245602e473dSmrgAC_ARG_WITH(launchd, AS_HELP_STRING([--with-launchd], [Build with support for Apple's launchd (default: auto)]), [LAUNCHD=$withval], [LAUNCHD=auto]) 246602e473dSmrgif test "x$LAUNCHD" = xauto; then 2471c7386f4Smrg unset LAUNCHD 2481c7386f4Smrg AC_CHECK_PROG(LAUNCHD, [launchd], [yes], [no], [$PATH$PATH_SEPARATOR/sbin]) 249602e473dSmrgfi 250602e473dSmrg 251602e473dSmrgif test "x$LAUNCHD" = xyes ; then 2521c7386f4Smrg AC_DEFINE(HAVE_LAUNCHD, 1, [launchd support available]) 253602e473dSmrgfi 254602e473dSmrg 2557204935cSmrgAC_ARG_WITH(serverside-support, AS_HELP_STRING([--with-serverside-support], [Build with support for server-side usage of xcb. This is still EXPERIMENTAL! ABI/API may change! (default: no)]), [XCB_SERVERSIDE_SUPPORT=$withval], [XCB_SERVERSIDE_SUPPORT=no]) 2567204935cSmrg 2577204935cSmrgAM_CONDITIONAL(XCB_SERVERSIDE_SUPPORT, test "x$XCB_SERVERSIDE_SUPPORT" = "xyes") 2587204935cSmrg 259602e473dSmrgAC_CONFIG_FILES([ 260602e473dSmrgMakefile 261602e473dSmrgdoc/Makefile 2621c7386f4Smrgman/Makefile 263602e473dSmrgsrc/Makefile 264602e473dSmrgtests/Makefile 265602e473dSmrg]) 266602e473dSmrg 267602e473dSmrgAC_CONFIG_FILES([ 268602e473dSmrgxcb.pc 269602e473dSmrgxcb-composite.pc 270602e473dSmrgxcb-damage.pc 271602e473dSmrgxcb-dpms.pc 272602e473dSmrgxcb-dri2.pc 2731016ad83Smrgxcb-dri3.pc 274602e473dSmrgxcb-glx.pc 2751016ad83Smrgxcb-present.pc 276602e473dSmrgxcb-randr.pc 277602e473dSmrgxcb-record.pc 278602e473dSmrgxcb-render.pc 279602e473dSmrgxcb-res.pc 280602e473dSmrgxcb-screensaver.pc 281602e473dSmrgxcb-shape.pc 282602e473dSmrgxcb-shm.pc 283602e473dSmrgxcb-sync.pc 284602e473dSmrgxcb-xevie.pc 285602e473dSmrgxcb-xf86dri.pc 286602e473dSmrgxcb-xfixes.pc 287602e473dSmrgxcb-xinerama.pc 288602e473dSmrgxcb-xinput.pc 28921298544Smrgxcb-xkb.pc 290602e473dSmrgxcb-xprint.pc 291602e473dSmrgxcb-xselinux.pc 292602e473dSmrgxcb-xtest.pc 293602e473dSmrgxcb-xv.pc 294602e473dSmrgxcb-xvmc.pc 295602e473dSmrg]) 296602e473dSmrg 297602e473dSmrgAC_CONFIG_FILES([ 298602e473dSmrgdoc/xcb.doxygen 299602e473dSmrg]) 300602e473dSmrg 301602e473dSmrgAC_OUTPUT 302602e473dSmrg 303602e473dSmrgdnl Configuration output 304602e473dSmrg 305602e473dSmrgecho "" 306602e473dSmrgecho " Package: ${PACKAGE_NAME} ${PACKAGE_VERSION}" 307602e473dSmrgecho "" 308602e473dSmrgecho " Configuration" 309602e473dSmrgecho " XDM support.........: ${have_xdmcp}" 3107204935cSmrgecho " sendmsg fd passing..: ${have_sendmsg}" 311602e473dSmrgecho " Build unit tests....: ${HAVE_CHECK}" 3121016ad83Smrgecho " with html results.: ${HTML_CHECK_RESULT}" 313602e473dSmrgecho " XCB buffer size.....: ${xcb_queue_buffer_size}" 314602e473dSmrgecho "" 315b20a2039Smrgecho " X11 extensions" 316b20a2039Smrgecho " Composite...........: ${BUILD_COMPOSITE}" 317b20a2039Smrgecho " Damage..............: ${BUILD_DAMAGE}" 318b20a2039Smrgecho " Dpms................: ${BUILD_DPMS}" 319b20a2039Smrgecho " Dri2................: ${BUILD_DRI2}" 3201016ad83Smrgecho " Dri3................: ${BUILD_DRI3}" 321b20a2039Smrgecho " Glx.................: ${BUILD_GLX}" 322b20a2039Smrgecho " Randr...............: ${BUILD_RANDR}" 323b20a2039Smrgecho " Record..............: ${BUILD_RECORD}" 324b20a2039Smrgecho " Render..............: ${BUILD_RENDER}" 325b20a2039Smrgecho " Resource............: ${BUILD_RESOURCE}" 326b20a2039Smrgecho " Screensaver.........: ${BUILD_SCREENSAVER}" 327b20a2039Smrgecho " selinux.............: ${BUILD_SELINUX}" 328b20a2039Smrgecho " Shape...............: ${BUILD_SHAPE}" 329b20a2039Smrgecho " Shm.................: ${BUILD_SHM}" 330b20a2039Smrgecho " Sync................: ${BUILD_SYNC}" 331b20a2039Smrgecho " Xevie...............: ${BUILD_XEVIE}" 332b20a2039Smrgecho " Xfixes..............: ${BUILD_XFIXES}" 333b20a2039Smrgecho " Xfree86-dri.........: ${BUILD_XFREE86_DRI}" 334b20a2039Smrgecho " xinerama............: ${BUILD_XINERAMA}" 335b20a2039Smrgecho " xinput..............: ${BUILD_XINPUT}" 33621298544Smrgecho " xkb.................: ${BUILD_XKB}" 337b20a2039Smrgecho " xprint..............: ${BUILD_XPRINT}" 338b20a2039Smrgecho " xtest...............: ${BUILD_XTEST}" 339b20a2039Smrgecho " xv..................: ${BUILD_XV}" 340b20a2039Smrgecho " xvmc................: ${BUILD_XVMC}" 341b20a2039Smrgecho "" 342602e473dSmrgecho " Used CFLAGS:" 343602e473dSmrgecho " CPPFLAGS............: ${CPPFLAGS}" 344602e473dSmrgecho " CFLAGS..............: ${CFLAGS}" 345602e473dSmrgecho "" 346602e473dSmrgecho " Installation:" 347602e473dSmrgecho " Prefix..............: ${prefix}" 348602e473dSmrgecho "" 349