configure.ac revision 1c7386f4
1dnl Process this file with autoconf to produce a configure script. 2 3# Initialize Autoconf 4AC_PREREQ([2.60]) 5AC_INIT([libxcb],[1.11], 6 [https://bugs.freedesktop.org/enter_bug.cgi?product=xcb], 7 [libxcb]) 8AC_CONFIG_AUX_DIR([build-aux]) 9AC_CONFIG_MACRO_DIR([m4]) 10AC_CONFIG_SRCDIR([xcb.pc.in]) 11AC_CONFIG_HEADERS([src/config.h]) 12 13# Initialize Automake 14AM_INIT_AUTOMAKE([foreign dist-bzip2]) 15AM_PATH_PYTHON([2.6]) 16 17# Set common system defines for POSIX extensions, such as _GNU_SOURCE 18# Must be called before any macros that run the compiler (like AC_PROG_LIBTOOL) 19# to avoid autoconf errors. 20AC_USE_SYSTEM_EXTENSIONS 21 22# Initialize libtool 23LT_PREREQ([2.2]) 24LT_INIT([win32-dll]) 25 26# Require xorg-macros minimum of 1.18 - Initial version 27m4_ifndef([XORG_MACROS_VERSION], 28 [m4_fatal([must install xorg-macros 1.18 or later before running autoconf/autogen])]) 29XORG_MACROS_VERSION(1.18) 30XORG_DEFAULT_OPTIONS 31XORG_ENABLE_DEVEL_DOCS 32XORG_WITH_DOXYGEN 33 34# The dot drawing tool is checked by XORG_WITH_DOXYGEN, needed for xcb manual 35if test x"$HAVE_DOT" = xno; then 36 AC_MSG_WARN([dot not found - doxygen targets will be skipped]) 37fi 38 39PKG_CHECK_MODULES(CHECK, [check >= 0.9.4], [HAVE_CHECK=yes], [HAVE_CHECK=no]) 40AM_CONDITIONAL(HAVE_CHECK, test x$HAVE_CHECK = xyes) 41 42XSLTPROC=no 43HTML_CHECK_RESULT=no 44if test x"$HAVE_CHECK" = xyes; then 45 AC_PATH_PROG(XSLTPROC, xsltproc, no) 46 if test x"$XSLTPROC" != xno; then 47 HTML_CHECK_RESULT=yes 48 fi 49fi 50AC_SUBST(HTML_CHECK_RESULT) 51 52# Checks for pkg-config packages 53PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.11) 54NEEDED="pthread-stubs xau >= 0.99.2" 55PKG_CHECK_MODULES(NEEDED, $NEEDED) 56 57have_xdmcp="no" 58PKG_CHECK_MODULES(XDMCP, xdmcp, 59 AC_CHECK_LIB(Xdmcp, XdmcpWrap, 60 [ 61 AC_DEFINE(HASXDMAUTH,1,[Has Wraphelp.c needed for XDM AUTH protocols]) 62 NEEDED="$NEEDED xdmcp" 63 have_xdmcp="yes" 64 ], 65 [ 66 XDMCP_CFLAGS= 67 XDMCP_LIBS= 68 ], [$XDMCP_LIBS]), 69 [AC_MSG_RESULT(no)]) 70 71AC_SUBST(NEEDED) 72 73# Find the xcb-proto protocol descriptions 74AC_MSG_CHECKING(XCBPROTO_XCBINCLUDEDIR) 75XCBPROTO_XCBINCLUDEDIR=`$PKG_CONFIG --variable=xcbincludedir xcb-proto` 76AC_MSG_RESULT($XCBPROTO_XCBINCLUDEDIR) 77AC_SUBST(XCBPROTO_XCBINCLUDEDIR) 78 79# Find the xcb-proto version 80XCBPROTO_VERSION=`$PKG_CONFIG --modversion xcb-proto` 81AC_SUBST(XCBPROTO_VERSION) 82 83# Find the xcbgen Python package 84AC_MSG_CHECKING(XCBPROTO_XCBPYTHONDIR) 85XCBPROTO_XCBPYTHONDIR=`$PKG_CONFIG --variable=pythondir xcb-proto` 86AC_MSG_RESULT($XCBPROTO_XCBPYTHONDIR) 87AC_SUBST(XCBPROTO_XCBPYTHONDIR) 88 89AC_HEADER_STDC 90AC_SEARCH_LIBS(getaddrinfo, socket) 91AC_SEARCH_LIBS(connect, socket) 92 93AC_ARG_ENABLE(sendfds, AS_HELP_STRING([--disable-sendfds], [Support FD passing (default: auto)]), 94 [sendfds=$enableval], [sendfds=auto]) 95 96case x$sendfds in 97xauto) 98 AC_SEARCH_LIBS(sendmsg, socket, [sendfds="yes"], [sendfds="no"]) 99 ;; 100esac 101 102# XPG4v2/UNIX95 added msg_control - check to see if we need to define 103# _XOPEN_SOURCE to get it (such as on Solaris) 104AC_CHECK_MEMBER([struct msghdr.msg_control], [], [], 105 [ 106AC_INCLUDES_DEFAULT 107#include <sys/socket.h> 108 ]) 109# First try for Solaris in C99 compliant mode, which requires XPG6/UNIX03 110if test "x$ac_cv_member_struct_msghdr_msg_control" = xno; then 111 unset ac_cv_member_struct_msghdr_msg_control 112 AC_MSG_NOTICE([trying again with _XOPEN_SOURCE=600]) 113 AC_CHECK_MEMBER([struct msghdr.msg_control], 114 [AC_DEFINE([_XOPEN_SOURCE], [600], 115 [Defined if needed to expose struct msghdr.msg_control]) 116 ], [], [ 117#define _XOPEN_SOURCE 600 118AC_INCLUDES_DEFAULT 119#include <sys/socket.h> 120 ]) 121fi 122# If that didn't work, fall back to XPG5/UNIX98 with C89 123if test "x$ac_cv_member_struct_msghdr_msg_control" = xno; then 124 unset ac_cv_member_struct_msghdr_msg_control 125 AC_MSG_NOTICE([trying again with _XOPEN_SOURCE=500]) 126 AC_CHECK_MEMBER([struct msghdr.msg_control], 127 [AC_DEFINE([_XOPEN_SOURCE], [500], 128 [Defined if needed to expose struct msghdr.msg_control]) 129 ], [sendfds="no"], [ 130#define _XOPEN_SOURCE 500 131AC_INCLUDES_DEFAULT 132#include <sys/socket.h> 133 ]) 134fi 135 136case x$sendfds in 137xyes) 138 AC_DEFINE([HAVE_SENDMSG],1,[Define if your platform supports sendmsg]) 139 ;; 140esac 141 142have_win32="no" 143lt_enable_auto_import="" 144case $host_os in 145mingw*) 146 have_win32="yes" 147 lt_enable_auto_import="-Wl,--enable-auto-import" 148 ;; 149linux*) 150 AC_DEFINE([HAVE_ABSTRACT_SOCKETS], 1, [Define if your platform supports abstract sockets]) 151 ;; 152esac 153 154AC_SUBST(lt_enable_auto_import) 155AM_CONDITIONAL([XCB_HAVE_WIN32], [test "x${have_win32}" = "xyes"]) 156 157dnl define buffer queue size 158AC_ARG_WITH([queue-size], 159 AS_HELP_STRING([--with-queue-size=SIZE], 160 [Set the XCB buffer queue size (default is 16384)]), 161 [xcb_queue_buffer_size="$withval"], 162 [xcb_queue_buffer_size=16384]) 163AC_DEFINE_UNQUOTED(XCB_QUEUE_BUFFER_SIZE, [$xcb_queue_buffer_size], 164 [XCB buffer queue size]) 165 166dnl check for the sockaddr_un.sun_len member 167AC_CHECK_MEMBER([struct sockaddr_un.sun_len], 168 [AC_DEFINE(HAVE_SOCKADDR_SUN_LEN,1,[Have the sockaddr_un.sun_len member.])], 169 [], 170 [ #include <sys/types.h> 171 #include <sys/un.h> 172 ]) 173 174dnl check for support for Solaris Trusted Extensions 175AC_CHECK_HEADERS([tsol/label.h]) 176AC_CHECK_FUNCS([is_system_labeled]) 177 178dnl check for IOV_MAX, and fall back to UIO_MAXIOV on BSDish systems 179AC_CHECK_DECL([IOV_MAX], [], 180 [AC_CHECK_DECL([UIO_MAXIOV], [AC_DEFINE([IOV_MAX], [UIO_MAXIOV])], 181 [AC_DEFINE([IOV_MAX], [16], [Define if not provided by <limits.h>])], 182 [[#include <sys/uio.h>]])], 183 [[#include <limits.h>]]) 184 185xcbincludedir='${includedir}/xcb' 186AC_SUBST(xcbincludedir) 187 188XCB_CHECK_VISIBILITY() 189 190AC_CHECK_FUNC(getaddrinfo, [AC_DEFINE(HAVE_GETADDRINFO, 1, [getaddrinfo() function is available])], ) 191 192case $host_os in 193 # darwin through Snow Leopard has poll() but can't be used to poll character devices. 194 darwin@<:@789@:>@*|darwin10*) ;; 195 darwin*) 196 _ac_xorg_macosx_version_min="" 197 if echo $CPPFLAGS $CFLAGS | grep -q mmacosx-version-min ; then 198 _ac_xorg_macosx_version_min=`echo $CPPFLAGS $CFLAGS | sed 's/^.*-mmacosx-version-min=\(@<:@^ @:>@*\).*$/\1/'` 199 else 200 _ac_xorg_macosx_version_min=$MACOSX_DEPLOYMENT_TARGET 201 fi 202 case $_ac_xorg_macosx_version_min in 203 10.@<:@0123456@:>@|10.@<:@0123456@:>@.*) ;; 204 *) 205 AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], ) 206 ;; 207 esac 208 unset _ac_xorg_macosx_version_min 209 ;; 210 *) 211 AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], ) 212 ;; 213esac 214 215XCB_EXTENSION(Composite, "yes") 216XCB_EXTENSION(Damage, "yes") 217XCB_EXTENSION(DPMS, "yes") 218XCB_EXTENSION(DRI2, "yes") 219XCB_EXTENSION(DRI3, "$sendfds") 220XCB_EXTENSION(GLX, "yes") 221XCB_EXTENSION(Present, "yes") 222XCB_EXTENSION(RandR, "yes") 223XCB_EXTENSION(Record, "yes") 224XCB_EXTENSION(Render, "yes") 225XCB_EXTENSION(Resource, "yes") 226XCB_EXTENSION(Screensaver, "yes") 227XCB_EXTENSION(Shape, "yes") 228XCB_EXTENSION(Shm, "yes") 229XCB_EXTENSION(Sync, "yes") 230XCB_EXTENSION(Xevie, "yes") 231XCB_EXTENSION(XFixes, "yes") 232XCB_EXTENSION(XFree86-DRI, "yes") 233XCB_EXTENSION(Xinerama, "yes") 234XCB_EXTENSION(XInput, "no") 235XCB_EXTENSION(XKB, "yes") 236XCB_EXTENSION(Xprint, "yes") 237XCB_EXTENSION(SELinux, "no") 238XCB_EXTENSION(XTest, "yes") 239XCB_EXTENSION(Xv, "yes") 240XCB_EXTENSION(XvMC, "yes") 241 242AC_ARG_WITH(launchd, AS_HELP_STRING([--with-launchd], [Build with support for Apple's launchd (default: auto)]), [LAUNCHD=$withval], [LAUNCHD=auto]) 243if test "x$LAUNCHD" = xauto; then 244 unset LAUNCHD 245 AC_CHECK_PROG(LAUNCHD, [launchd], [yes], [no], [$PATH$PATH_SEPARATOR/sbin]) 246fi 247 248if test "x$LAUNCHD" = xyes ; then 249 AC_DEFINE(HAVE_LAUNCHD, 1, [launchd support available]) 250fi 251 252AC_CONFIG_FILES([ 253Makefile 254doc/Makefile 255man/Makefile 256src/Makefile 257tests/Makefile 258]) 259 260AC_CONFIG_FILES([ 261xcb.pc 262xcb-composite.pc 263xcb-damage.pc 264xcb-dpms.pc 265xcb-dri2.pc 266xcb-dri3.pc 267xcb-glx.pc 268xcb-present.pc 269xcb-randr.pc 270xcb-record.pc 271xcb-render.pc 272xcb-res.pc 273xcb-screensaver.pc 274xcb-shape.pc 275xcb-shm.pc 276xcb-sync.pc 277xcb-xevie.pc 278xcb-xf86dri.pc 279xcb-xfixes.pc 280xcb-xinerama.pc 281xcb-xinput.pc 282xcb-xkb.pc 283xcb-xprint.pc 284xcb-xselinux.pc 285xcb-xtest.pc 286xcb-xv.pc 287xcb-xvmc.pc 288]) 289 290AC_CONFIG_FILES([ 291doc/xcb.doxygen 292]) 293 294AC_OUTPUT 295 296dnl Configuration output 297 298echo "" 299echo " Package: ${PACKAGE_NAME} ${PACKAGE_VERSION}" 300echo "" 301echo " Configuration" 302echo " XDM support.........: ${have_xdmcp}" 303echo " sendmsg fd passing..: ${sendfds}" 304echo " Build unit tests....: ${HAVE_CHECK}" 305echo " with html results.: ${HTML_CHECK_RESULT}" 306echo " XCB buffer size.....: ${xcb_queue_buffer_size}" 307echo "" 308echo " X11 extensions" 309echo " Composite...........: ${BUILD_COMPOSITE}" 310echo " Damage..............: ${BUILD_DAMAGE}" 311echo " Dpms................: ${BUILD_DPMS}" 312echo " Dri2................: ${BUILD_DRI2}" 313echo " Dri3................: ${BUILD_DRI3}" 314echo " Glx.................: ${BUILD_GLX}" 315echo " Randr...............: ${BUILD_RANDR}" 316echo " Record..............: ${BUILD_RECORD}" 317echo " Render..............: ${BUILD_RENDER}" 318echo " Resource............: ${BUILD_RESOURCE}" 319echo " Screensaver.........: ${BUILD_SCREENSAVER}" 320echo " selinux.............: ${BUILD_SELINUX}" 321echo " Shape...............: ${BUILD_SHAPE}" 322echo " Shm.................: ${BUILD_SHM}" 323echo " Sync................: ${BUILD_SYNC}" 324echo " Xevie...............: ${BUILD_XEVIE}" 325echo " Xfixes..............: ${BUILD_XFIXES}" 326echo " Xfree86-dri.........: ${BUILD_XFREE86_DRI}" 327echo " xinerama............: ${BUILD_XINERAMA}" 328echo " xinput..............: ${BUILD_XINPUT}" 329echo " xkb.................: ${BUILD_XKB}" 330echo " xprint..............: ${BUILD_XPRINT}" 331echo " xtest...............: ${BUILD_XTEST}" 332echo " xv..................: ${BUILD_XV}" 333echo " xvmc................: ${BUILD_XVMC}" 334echo "" 335echo " Used CFLAGS:" 336echo " CPPFLAGS............: ${CPPFLAGS}" 337echo " CFLAGS..............: ${CFLAGS}" 338echo " Warning CFLAGS......: ${BASE_CFLAGS}" 339echo "" 340echo " Installation:" 341echo " Prefix..............: ${prefix}" 342echo "" 343