configure.ac revision 7204935c
1dnl Process this file with autoconf to produce a configure script. 2 3# Initialize Autoconf 4AC_PREREQ([2.60]) 5AC_INIT([libxcb],[1.12], 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.12) 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 93# Find support for sending a message from a socket 94AC_SEARCH_LIBS(sendmsg, socket, [have_sendmsg="yes"], [have_sendmsg="no"]) 95 96# XPG4v2/UNIX95 added msg_control - check to see if we need to define 97# _XOPEN_SOURCE to get it (such as on Solaris) 98AC_CHECK_MEMBER([struct msghdr.msg_control], [], [], 99 [ 100AC_INCLUDES_DEFAULT 101#include <sys/socket.h> 102 ]) 103# First try for Solaris in C99 compliant mode, which requires XPG6/UNIX03 104if test "x$ac_cv_member_struct_msghdr_msg_control" = xno; then 105 unset ac_cv_member_struct_msghdr_msg_control 106 AC_MSG_NOTICE([trying again with _XOPEN_SOURCE=600]) 107 AC_CHECK_MEMBER([struct msghdr.msg_control], 108 [AC_DEFINE([_XOPEN_SOURCE], [600], 109 [Defined if needed to expose struct msghdr.msg_control]) 110 ], [], [ 111#define _XOPEN_SOURCE 600 112AC_INCLUDES_DEFAULT 113#include <sys/socket.h> 114 ]) 115fi 116# If that didn't work, fall back to XPG5/UNIX98 with C89 117if test "x$ac_cv_member_struct_msghdr_msg_control" = xno; then 118 unset ac_cv_member_struct_msghdr_msg_control 119 AC_MSG_NOTICE([trying again with _XOPEN_SOURCE=500]) 120 AC_CHECK_MEMBER([struct msghdr.msg_control], 121 [AC_DEFINE([_XOPEN_SOURCE], [500], 122 [Defined if needed to expose struct msghdr.msg_control]) 123 ], [have_sendmsg="no"], [ 124#define _XOPEN_SOURCE 500 125AC_INCLUDES_DEFAULT 126#include <sys/socket.h> 127 ]) 128fi 129 130case x$have_sendmsg in 131xyes) 132 AC_DEFINE([HAVE_SENDMSG],1,[Define if your platform supports sendmsg]) 133 ;; 134esac 135 136have_win32="no" 137lt_enable_auto_import="" 138case $host_os in 139mingw*) 140 have_win32="yes" 141 lt_enable_auto_import="-Wl,--enable-auto-import" 142 ;; 143linux*) 144 AC_DEFINE([HAVE_ABSTRACT_SOCKETS], 1, [Define if your platform supports abstract sockets]) 145 ;; 146esac 147 148AC_SUBST(lt_enable_auto_import) 149AM_CONDITIONAL([XCB_HAVE_WIN32], [test "x${have_win32}" = "xyes"]) 150 151dnl define buffer queue size 152AC_ARG_WITH([queue-size], 153 AS_HELP_STRING([--with-queue-size=SIZE], 154 [Set the XCB buffer queue size (default is 16384)]), 155 [xcb_queue_buffer_size="$withval"], 156 [xcb_queue_buffer_size=16384]) 157AC_DEFINE_UNQUOTED(XCB_QUEUE_BUFFER_SIZE, [$xcb_queue_buffer_size], 158 [XCB buffer queue size]) 159 160dnl check for the sockaddr_un.sun_len member 161AC_CHECK_MEMBER([struct sockaddr_un.sun_len], 162 [AC_DEFINE(HAVE_SOCKADDR_SUN_LEN,1,[Have the sockaddr_un.sun_len member.])], 163 [], 164 [ #include <sys/types.h> 165 #include <sys/un.h> 166 ]) 167 168dnl check for support for Solaris Trusted Extensions 169AC_CHECK_HEADERS([tsol/label.h]) 170AC_CHECK_FUNCS([is_system_labeled]) 171 172dnl check for IOV_MAX, and fall back to UIO_MAXIOV on BSDish systems 173AC_CHECK_DECL([IOV_MAX], [], 174 [AC_CHECK_DECL([UIO_MAXIOV], [AC_DEFINE([IOV_MAX], [UIO_MAXIOV])], 175 [AC_DEFINE([IOV_MAX], [16], [Define if not provided by <limits.h>])], 176 [[#include <sys/uio.h>]])], 177 [[#include <limits.h>]]) 178 179xcbincludedir='${includedir}/xcb' 180AC_SUBST(xcbincludedir) 181 182XCB_CHECK_VISIBILITY() 183 184AC_CHECK_FUNC(getaddrinfo, [AC_DEFINE(HAVE_GETADDRINFO, 1, [getaddrinfo() function is available])], ) 185 186case $host_os in 187 # darwin through Snow Leopard has poll() but can't be used to poll character devices. 188 darwin@<:@789@:>@*|darwin10*) ;; 189 darwin*) 190 _ac_xorg_macosx_version_min="" 191 if echo $CPPFLAGS $CFLAGS | grep -q mmacosx-version-min ; then 192 _ac_xorg_macosx_version_min=`echo $CPPFLAGS $CFLAGS | sed 's/^.*-mmacosx-version-min=\(@<:@^ @:>@*\).*$/\1/'` 193 else 194 _ac_xorg_macosx_version_min=$MACOSX_DEPLOYMENT_TARGET 195 fi 196 case $_ac_xorg_macosx_version_min in 197 10.@<:@0123456@:>@|10.@<:@0123456@:>@.*) ;; 198 *) 199 AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], ) 200 ;; 201 esac 202 unset _ac_xorg_macosx_version_min 203 ;; 204 *) 205 AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], ) 206 ;; 207esac 208 209dnl Link with winsock for socket functions on MinGW 210case $host_os in 211 *mingw*) 212 AC_CHECK_LIB([ws2_32],[main]) 213 ;; 214 *) 215 ;; 216esac 217 218XCB_EXTENSION(Composite, yes) 219XCB_EXTENSION(Damage, yes) 220XCB_EXTENSION(DPMS, yes) 221XCB_EXTENSION(DRI2, yes) 222XCB_EXTENSION(DRI3, $have_sendmsg) 223XCB_EXTENSION(GLX, yes) 224XCB_EXTENSION(Present, yes) 225XCB_EXTENSION(RandR, yes) 226XCB_EXTENSION(Record, yes) 227XCB_EXTENSION(Render, yes) 228XCB_EXTENSION(Resource, yes) 229XCB_EXTENSION(Screensaver, yes) 230XCB_EXTENSION(Shape, yes) 231XCB_EXTENSION(Shm, yes) 232XCB_EXTENSION(Sync, yes) 233XCB_EXTENSION(Xevie, no) 234XCB_EXTENSION(XFixes, yes) 235XCB_EXTENSION(XFree86-DRI, yes) 236XCB_EXTENSION(Xinerama, yes) 237XCB_EXTENSION(XInput, no) 238XCB_EXTENSION(XKB, yes) 239XCB_EXTENSION(Xprint, no) 240XCB_EXTENSION(SELinux, no) 241XCB_EXTENSION(XTest, yes) 242XCB_EXTENSION(Xv, yes) 243XCB_EXTENSION(XvMC, yes) 244 245AC_ARG_WITH(launchd, AS_HELP_STRING([--with-launchd], [Build with support for Apple's launchd (default: auto)]), [LAUNCHD=$withval], [LAUNCHD=auto]) 246if test "x$LAUNCHD" = xauto; then 247 unset LAUNCHD 248 AC_CHECK_PROG(LAUNCHD, [launchd], [yes], [no], [$PATH$PATH_SEPARATOR/sbin]) 249fi 250 251if test "x$LAUNCHD" = xyes ; then 252 AC_DEFINE(HAVE_LAUNCHD, 1, [launchd support available]) 253fi 254 255AC_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]) 256 257AM_CONDITIONAL(XCB_SERVERSIDE_SUPPORT, test "x$XCB_SERVERSIDE_SUPPORT" = "xyes") 258 259AC_CONFIG_FILES([ 260Makefile 261doc/Makefile 262man/Makefile 263src/Makefile 264tests/Makefile 265]) 266 267AC_CONFIG_FILES([ 268xcb.pc 269xcb-composite.pc 270xcb-damage.pc 271xcb-dpms.pc 272xcb-dri2.pc 273xcb-dri3.pc 274xcb-glx.pc 275xcb-present.pc 276xcb-randr.pc 277xcb-record.pc 278xcb-render.pc 279xcb-res.pc 280xcb-screensaver.pc 281xcb-shape.pc 282xcb-shm.pc 283xcb-sync.pc 284xcb-xevie.pc 285xcb-xf86dri.pc 286xcb-xfixes.pc 287xcb-xinerama.pc 288xcb-xinput.pc 289xcb-xkb.pc 290xcb-xprint.pc 291xcb-xselinux.pc 292xcb-xtest.pc 293xcb-xv.pc 294xcb-xvmc.pc 295]) 296 297AC_CONFIG_FILES([ 298doc/xcb.doxygen 299]) 300 301AC_OUTPUT 302 303dnl Configuration output 304 305echo "" 306echo " Package: ${PACKAGE_NAME} ${PACKAGE_VERSION}" 307echo "" 308echo " Configuration" 309echo " XDM support.........: ${have_xdmcp}" 310echo " sendmsg fd passing..: ${have_sendmsg}" 311echo " Build unit tests....: ${HAVE_CHECK}" 312echo " with html results.: ${HTML_CHECK_RESULT}" 313echo " XCB buffer size.....: ${xcb_queue_buffer_size}" 314echo "" 315echo " X11 extensions" 316echo " Composite...........: ${BUILD_COMPOSITE}" 317echo " Damage..............: ${BUILD_DAMAGE}" 318echo " Dpms................: ${BUILD_DPMS}" 319echo " Dri2................: ${BUILD_DRI2}" 320echo " Dri3................: ${BUILD_DRI3}" 321echo " Glx.................: ${BUILD_GLX}" 322echo " Randr...............: ${BUILD_RANDR}" 323echo " Record..............: ${BUILD_RECORD}" 324echo " Render..............: ${BUILD_RENDER}" 325echo " Resource............: ${BUILD_RESOURCE}" 326echo " Screensaver.........: ${BUILD_SCREENSAVER}" 327echo " selinux.............: ${BUILD_SELINUX}" 328echo " Shape...............: ${BUILD_SHAPE}" 329echo " Shm.................: ${BUILD_SHM}" 330echo " Sync................: ${BUILD_SYNC}" 331echo " Xevie...............: ${BUILD_XEVIE}" 332echo " Xfixes..............: ${BUILD_XFIXES}" 333echo " Xfree86-dri.........: ${BUILD_XFREE86_DRI}" 334echo " xinerama............: ${BUILD_XINERAMA}" 335echo " xinput..............: ${BUILD_XINPUT}" 336echo " xkb.................: ${BUILD_XKB}" 337echo " xprint..............: ${BUILD_XPRINT}" 338echo " xtest...............: ${BUILD_XTEST}" 339echo " xv..................: ${BUILD_XV}" 340echo " xvmc................: ${BUILD_XVMC}" 341echo "" 342echo " Used CFLAGS:" 343echo " CPPFLAGS............: ${CPPFLAGS}" 344echo " CFLAGS..............: ${CFLAGS}" 345echo "" 346echo " Installation:" 347echo " Prefix..............: ${prefix}" 348echo "" 349