configure.ac revision b20a2039
1# -*- Autoconf -*- 2# Process this file with autoconf to produce a configure script. 3 4AC_PREREQ(2.57) 5AC_INIT([libxcb], 6 1.7, 7 [xcb@lists.freedesktop.org]) 8AC_CONFIG_SRCDIR([xcb.pc.in]) 9AM_INIT_AUTOMAKE([foreign dist-bzip2]) 10 11AM_PATH_PYTHON([2.5]) 12 13PKG_CHECK_MODULES(CHECK, [check >= 0.9.4], [HAVE_CHECK=yes], [HAVE_CHECK=no]) 14AM_CONDITIONAL(HAVE_CHECK, test x$HAVE_CHECK = xyes) 15 16AC_CONFIG_HEADERS([src/config.h]) 17 18AC_PROG_LIBTOOL 19AC_PROG_CC 20 21AC_PATH_PROG(XSLTPROC, xsltproc, no) 22if test "$XSLTPROC" = "no"; then 23 AC_MSG_ERROR([XCB requires xsltproc.]) 24fi 25 26HTML_CHECK_RESULT=false 27if test x"$HAVE_CHECK" = xyes; then 28 if test x"$XSLTPROC" != xno; then 29 HTML_CHECK_RESULT=true 30 fi 31fi 32AC_SUBST(HTML_CHECK_RESULT) 33 34# Checks for pkg-config packages 35PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.6) 36NEEDED="pthread-stubs xau >= 0.99.2" 37PKG_CHECK_MODULES(NEEDED, $NEEDED) 38 39have_xdmcp="no" 40PKG_CHECK_MODULES(XDMCP, xdmcp, 41 AC_CHECK_LIB(Xdmcp, XdmcpWrap, 42 [ 43 AC_DEFINE(HASXDMAUTH,1,[Has Wraphelp.c needed for XDM AUTH protocols]) 44 NEEDED="$NEEDED xdmcp" 45 have_xdmcp="yes" 46 ], 47 [ 48 XDMCP_CFLAGS= 49 XDMCP_LIBS= 50 ], [$XDMCP_LIBS]), 51 [AC_MSG_RESULT(no)]) 52 53AC_SUBST(NEEDED) 54 55# Find the xcb-proto protocol descriptions 56AC_MSG_CHECKING(XCBPROTO_XCBINCLUDEDIR) 57XCBPROTO_XCBINCLUDEDIR=`$PKG_CONFIG --variable=xcbincludedir xcb-proto` 58AC_MSG_RESULT($XCBPROTO_XCBINCLUDEDIR) 59AC_SUBST(XCBPROTO_XCBINCLUDEDIR) 60 61# Find the xcb-proto version 62XCBPROTO_VERSION=`$PKG_CONFIG --modversion xcb-proto` 63AC_SUBST(XCBPROTO_VERSION) 64 65# Find the xcbgen Python package 66AC_MSG_CHECKING(XCBPROTO_XCBPYTHONDIR) 67XCBPROTO_XCBPYTHONDIR=`$PKG_CONFIG --variable=pythondir xcb-proto` 68AC_MSG_RESULT($XCBPROTO_XCBPYTHONDIR) 69AC_SUBST(XCBPROTO_XCBPYTHONDIR) 70 71AC_HEADER_STDC 72AC_SEARCH_LIBS(getaddrinfo, socket) 73AC_SEARCH_LIBS(connect, socket) 74 75case $host_os in 76linux*) 77 AC_DEFINE([HAVE_ABSTRACT_SOCKETS], 1, [Define if your platform supports abstract sockets]) 78 ;; 79esac 80 81dnl define buffer queue size 82AC_ARG_WITH([queue-size], 83 AC_HELP_STRING([--with-queue-size=SIZE], 84 [Set the XCB buffer queue size (default is 16384)]), 85 [xcb_queue_buffer_size="$withval"], 86 [xcb_queue_buffer_size=16384]) 87AC_DEFINE_UNQUOTED(XCB_QUEUE_BUFFER_SIZE, [$xcb_queue_buffer_size], 88 [XCB buffer queue size]) 89 90dnl check for the sockaddr_un.sun_len member 91AC_CHECK_MEMBER([struct sockaddr_un.sun_len], 92 [AC_DEFINE(HAVE_SOCKADDR_SUN_LEN,1,[Have the sockaddr_un.sun_len member.])], 93 [], 94 [ #include <sys/types.h> 95 #include <sys/un.h> 96 ]) 97 98xcbincludedir='${includedir}/xcb' 99AC_SUBST(xcbincludedir) 100 101if test "x$GCC" = xyes ; then 102 CWARNFLAGS="-Wall -pedantic -Wpointer-arith \ 103 -Wstrict-prototypes -Wmissing-declarations -Wnested-externs" 104else 105 AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) 106 if test "x$SUNCC" = "xyes"; then 107 CWARNFLAGS="-v" 108 fi 109fi 110AC_SUBST(CWARNFLAGS) 111 112XCB_CHECK_VISIBILITY() 113 114# htmldir is not defined prior to autoconf 2.59c, so on earlier versions 115# set an equivalent value. 116AC_PREREQ([2.59c], [], [AC_SUBST([htmldir], [m4_ifset([AC_PACKAGE_TARNAME], 117 ['${datadir}/doc/${PACKAGE_TARNAME}'], 118 ['${datadir}/doc/${PACKAGE}']) 119])]) 120 121XCB_CHECK_DOXYGEN() 122 123case $host_os in 124 # darwin has poll() but can't be used to poll character devices (atleast through SnowLeopard) 125 darwin*) ;; 126 *) 127 AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], ) 128 ;; 129esac 130 131XCB_EXTENSION(Composite, "yes") 132XCB_EXTENSION(Damage, "yes") 133XCB_EXTENSION(DPMS, "yes") 134XCB_EXTENSION(DRI2, "yes") 135XCB_EXTENSION(GLX, "yes") 136XCB_EXTENSION(RandR, "yes") 137XCB_EXTENSION(Record, "yes") 138XCB_EXTENSION(Render, "yes") 139XCB_EXTENSION(Resource, "yes") 140XCB_EXTENSION(Screensaver, "yes") 141XCB_EXTENSION(Shape, "yes") 142XCB_EXTENSION(Shm, "yes") 143XCB_EXTENSION(Sync, "yes") 144XCB_EXTENSION(Xevie, "yes") 145XCB_EXTENSION(XFixes, "yes") 146XCB_EXTENSION(XFree86-DRI, "yes") 147XCB_EXTENSION(Xinerama, "yes") 148XCB_EXTENSION(XInput, "no") 149XCB_EXTENSION(Xprint, "yes") 150XCB_EXTENSION(SELinux, "no") 151XCB_EXTENSION(XTest, "yes") 152XCB_EXTENSION(Xv, "yes") 153XCB_EXTENSION(XvMC, "yes") 154 155AC_ARG_WITH(launchd, AS_HELP_STRING([--with-launchd], [Build with support for Apple's launchd (default: auto)]), [LAUNCHD=$withval], [LAUNCHD=auto]) 156if test "x$LAUNCHD" = xauto; then 157 unset LAUNCHD 158 AC_CHECK_PROG(LAUNCHD, [launchd], [yes], [no], [$PATH$PATH_SEPARATOR/sbin]) 159fi 160 161if test "x$LAUNCHD" = xyes ; then 162 AC_DEFINE(HAVE_LAUNCHD, 1, [launchd support available]) 163fi 164 165AC_CONFIG_FILES([ 166Makefile 167doc/Makefile 168src/Makefile 169tests/Makefile 170]) 171 172AC_CONFIG_FILES([ 173xcb.pc 174xcb-composite.pc 175xcb-damage.pc 176xcb-dpms.pc 177xcb-dri2.pc 178xcb-glx.pc 179xcb-randr.pc 180xcb-record.pc 181xcb-render.pc 182xcb-res.pc 183xcb-screensaver.pc 184xcb-shape.pc 185xcb-shm.pc 186xcb-sync.pc 187xcb-xevie.pc 188xcb-xf86dri.pc 189xcb-xfixes.pc 190xcb-xinerama.pc 191xcb-xinput.pc 192xcb-xprint.pc 193xcb-xselinux.pc 194xcb-xtest.pc 195xcb-xv.pc 196xcb-xvmc.pc 197]) 198 199AC_CONFIG_FILES([ 200doc/xcb.doxygen 201]) 202 203AC_OUTPUT 204 205dnl Configuration output 206 207echo "" 208echo " Package: ${PACKAGE_NAME} ${PACKAGE_VERSION}" 209echo "" 210echo " Configuration" 211echo " XDM support.........: ${have_xdmcp}" 212echo " Build unit tests....: ${HAVE_CHECK}" 213echo " XCB buffer size.....: ${xcb_queue_buffer_size}" 214echo "" 215echo " X11 extensions" 216echo " Composite...........: ${BUILD_COMPOSITE}" 217echo " Damage..............: ${BUILD_DAMAGE}" 218echo " Dpms................: ${BUILD_DPMS}" 219echo " Dri2................: ${BUILD_DRI2}" 220echo " Glx.................: ${BUILD_GLX}" 221echo " Randr...............: ${BUILD_RANDR}" 222echo " Record..............: ${BUILD_RECORD}" 223echo " Render..............: ${BUILD_RENDER}" 224echo " Resource............: ${BUILD_RESOURCE}" 225echo " Screensaver.........: ${BUILD_SCREENSAVER}" 226echo " selinux.............: ${BUILD_SELINUX}" 227echo " Shape...............: ${BUILD_SHAPE}" 228echo " Shm.................: ${BUILD_SHM}" 229echo " Sync................: ${BUILD_SYNC}" 230echo " Xevie...............: ${BUILD_XEVIE}" 231echo " Xfixes..............: ${BUILD_XFIXES}" 232echo " Xfree86-dri.........: ${BUILD_XFREE86_DRI}" 233echo " xinerama............: ${BUILD_XINERAMA}" 234echo " xinput..............: ${BUILD_XINPUT}" 235echo " xprint..............: ${BUILD_XPRINT}" 236echo " xtest...............: ${BUILD_XTEST}" 237echo " xv..................: ${BUILD_XV}" 238echo " xvmc................: ${BUILD_XVMC}" 239echo "" 240echo " Used CFLAGS:" 241echo " CPPFLAGS............: ${CPPFLAGS}" 242echo " CFLAGS..............: ${CFLAGS}" 243echo " Warning CFLAGS......: ${CWARNFLAGS}" 244echo "" 245echo " Installation:" 246echo " Prefix..............: ${prefix}" 247echo "" 248