configure.ac revision 8ffb90f1
11c7386f4Smrgdnl Process this file with autoconf to produce a configure script. 2602e473dSmrg 321298544Smrg# Initialize Autoconf 41016ad83SmrgAC_PREREQ([2.60]) 58ffb90f1SmrgAC_INIT([libxcb],[1.15], 6aa30ed02Smrg [https://gitlab.freedesktop.org/xorg/lib/libxcb/issues], 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 14aa30ed02SmrgAM_INIT_AUTOMAKE([foreign dist-xz]) 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 398ffb90f1SmrgPKG_CHECK_MODULES(CHECK, [check >= 0.9.6], [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 53aa30ed02SmrgPKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.14) 54aa30ed02SmrgNEEDED="xau >= 0.99.2" 55aa30ed02Smrgcase $host_os in 56aa30ed02Smrglinux*) ;; 57aa30ed02Smrg *) NEEDED="$NEEDED pthread-stubs" ;; 58aa30ed02Smrgesac 59602e473dSmrgPKG_CHECK_MODULES(NEEDED, $NEEDED) 60602e473dSmrg 61602e473dSmrghave_xdmcp="no" 62602e473dSmrgPKG_CHECK_MODULES(XDMCP, xdmcp, 631c7386f4Smrg AC_CHECK_LIB(Xdmcp, XdmcpWrap, 641c7386f4Smrg [ 651c7386f4Smrg AC_DEFINE(HASXDMAUTH,1,[Has Wraphelp.c needed for XDM AUTH protocols]) 661c7386f4Smrg NEEDED="$NEEDED xdmcp" 671c7386f4Smrg have_xdmcp="yes" 681c7386f4Smrg ], 691c7386f4Smrg [ 701c7386f4Smrg XDMCP_CFLAGS= 711c7386f4Smrg XDMCP_LIBS= 721c7386f4Smrg ], [$XDMCP_LIBS]), 731c7386f4Smrg [AC_MSG_RESULT(no)]) 74602e473dSmrg 75602e473dSmrgAC_SUBST(NEEDED) 76602e473dSmrg 77602e473dSmrg# Find the xcb-proto protocol descriptions 78602e473dSmrgAC_MSG_CHECKING(XCBPROTO_XCBINCLUDEDIR) 79602e473dSmrgXCBPROTO_XCBINCLUDEDIR=`$PKG_CONFIG --variable=xcbincludedir xcb-proto` 80602e473dSmrgAC_MSG_RESULT($XCBPROTO_XCBINCLUDEDIR) 81602e473dSmrgAC_SUBST(XCBPROTO_XCBINCLUDEDIR) 82602e473dSmrg 83602e473dSmrg# Find the xcb-proto version 84602e473dSmrgXCBPROTO_VERSION=`$PKG_CONFIG --modversion xcb-proto` 85602e473dSmrgAC_SUBST(XCBPROTO_VERSION) 86602e473dSmrg 87602e473dSmrg# Find the xcbgen Python package 88602e473dSmrgAC_MSG_CHECKING(XCBPROTO_XCBPYTHONDIR) 89602e473dSmrgXCBPROTO_XCBPYTHONDIR=`$PKG_CONFIG --variable=pythondir xcb-proto` 90602e473dSmrgAC_MSG_RESULT($XCBPROTO_XCBPYTHONDIR) 91602e473dSmrgAC_SUBST(XCBPROTO_XCBPYTHONDIR) 92602e473dSmrg 93602e473dSmrgAC_HEADER_STDC 94602e473dSmrgAC_SEARCH_LIBS(getaddrinfo, socket) 95602e473dSmrgAC_SEARCH_LIBS(connect, socket) 96602e473dSmrg 977204935cSmrg# Find support for sending a message from a socket 987204935cSmrgAC_SEARCH_LIBS(sendmsg, socket, [have_sendmsg="yes"], [have_sendmsg="no"]) 991016ad83Smrg 1001016ad83Smrg# XPG4v2/UNIX95 added msg_control - check to see if we need to define 1011016ad83Smrg# _XOPEN_SOURCE to get it (such as on Solaris) 1021016ad83SmrgAC_CHECK_MEMBER([struct msghdr.msg_control], [], [], 1031016ad83Smrg [ 1041016ad83SmrgAC_INCLUDES_DEFAULT 1051016ad83Smrg#include <sys/socket.h> 1061016ad83Smrg ]) 1071016ad83Smrg# First try for Solaris in C99 compliant mode, which requires XPG6/UNIX03 1081016ad83Smrgif test "x$ac_cv_member_struct_msghdr_msg_control" = xno; then 1091016ad83Smrg unset ac_cv_member_struct_msghdr_msg_control 1101016ad83Smrg AC_MSG_NOTICE([trying again with _XOPEN_SOURCE=600]) 1111016ad83Smrg AC_CHECK_MEMBER([struct msghdr.msg_control], 1121016ad83Smrg [AC_DEFINE([_XOPEN_SOURCE], [600], 1131016ad83Smrg [Defined if needed to expose struct msghdr.msg_control]) 1141016ad83Smrg ], [], [ 1151016ad83Smrg#define _XOPEN_SOURCE 600 1161016ad83SmrgAC_INCLUDES_DEFAULT 1171016ad83Smrg#include <sys/socket.h> 1181016ad83Smrg ]) 1191016ad83Smrgfi 1201016ad83Smrg# If that didn't work, fall back to XPG5/UNIX98 with C89 1211016ad83Smrgif test "x$ac_cv_member_struct_msghdr_msg_control" = xno; then 1221016ad83Smrg unset ac_cv_member_struct_msghdr_msg_control 1231016ad83Smrg AC_MSG_NOTICE([trying again with _XOPEN_SOURCE=500]) 1241016ad83Smrg AC_CHECK_MEMBER([struct msghdr.msg_control], 1251016ad83Smrg [AC_DEFINE([_XOPEN_SOURCE], [500], 1261016ad83Smrg [Defined if needed to expose struct msghdr.msg_control]) 1277204935cSmrg ], [have_sendmsg="no"], [ 1281016ad83Smrg#define _XOPEN_SOURCE 500 1291016ad83SmrgAC_INCLUDES_DEFAULT 1301016ad83Smrg#include <sys/socket.h> 1311016ad83Smrg ]) 1321016ad83Smrgfi 1331016ad83Smrg 1347204935cSmrgcase x$have_sendmsg in 1351016ad83Smrgxyes) 1361016ad83Smrg AC_DEFINE([HAVE_SENDMSG],1,[Define if your platform supports sendmsg]) 1371016ad83Smrg ;; 1381016ad83Smrgesac 1391016ad83Smrg 14021298544Smrghave_win32="no" 14121298544Smrglt_enable_auto_import="" 142602e473dSmrgcase $host_os in 14321298544Smrgmingw*) 1441c7386f4Smrg have_win32="yes" 1451c7386f4Smrg lt_enable_auto_import="-Wl,--enable-auto-import" 1461c7386f4Smrg ;; 147602e473dSmrglinux*) 1481c7386f4Smrg AC_DEFINE([HAVE_ABSTRACT_SOCKETS], 1, [Define if your platform supports abstract sockets]) 1491c7386f4Smrg ;; 150602e473dSmrgesac 151602e473dSmrg 15221298544SmrgAC_SUBST(lt_enable_auto_import) 15321298544SmrgAM_CONDITIONAL([XCB_HAVE_WIN32], [test "x${have_win32}" = "xyes"]) 15421298544Smrg 155602e473dSmrgdnl define buffer queue size 156602e473dSmrgAC_ARG_WITH([queue-size], 1571c7386f4Smrg AS_HELP_STRING([--with-queue-size=SIZE], 158602e473dSmrg [Set the XCB buffer queue size (default is 16384)]), 159602e473dSmrg [xcb_queue_buffer_size="$withval"], 160602e473dSmrg [xcb_queue_buffer_size=16384]) 161602e473dSmrgAC_DEFINE_UNQUOTED(XCB_QUEUE_BUFFER_SIZE, [$xcb_queue_buffer_size], 162602e473dSmrg [XCB buffer queue size]) 163602e473dSmrg 164602e473dSmrgdnl check for the sockaddr_un.sun_len member 165602e473dSmrgAC_CHECK_MEMBER([struct sockaddr_un.sun_len], 1661c7386f4Smrg [AC_DEFINE(HAVE_SOCKADDR_SUN_LEN,1,[Have the sockaddr_un.sun_len member.])], 1671c7386f4Smrg [], 1681c7386f4Smrg [ #include <sys/types.h> 1691c7386f4Smrg #include <sys/un.h> 1701c7386f4Smrg ]) 171602e473dSmrg 17221298544Smrgdnl check for support for Solaris Trusted Extensions 17321298544SmrgAC_CHECK_HEADERS([tsol/label.h]) 17421298544SmrgAC_CHECK_FUNCS([is_system_labeled]) 17521298544Smrg 17621298544Smrgdnl check for IOV_MAX, and fall back to UIO_MAXIOV on BSDish systems 17721298544SmrgAC_CHECK_DECL([IOV_MAX], [], 1781c7386f4Smrg [AC_CHECK_DECL([UIO_MAXIOV], [AC_DEFINE([IOV_MAX], [UIO_MAXIOV])], 1791c7386f4Smrg [AC_DEFINE([IOV_MAX], [16], [Define if not provided by <limits.h>])], 1801c7386f4Smrg [[#include <sys/uio.h>]])], 1811c7386f4Smrg [[#include <limits.h>]]) 18221298544Smrg 183602e473dSmrgxcbincludedir='${includedir}/xcb' 184602e473dSmrgAC_SUBST(xcbincludedir) 185602e473dSmrg 186602e473dSmrgXCB_CHECK_VISIBILITY() 187602e473dSmrg 18821298544SmrgAC_CHECK_FUNC(getaddrinfo, [AC_DEFINE(HAVE_GETADDRINFO, 1, [getaddrinfo() function is available])], ) 18921298544Smrg 190602e473dSmrgcase $host_os in 1911c7386f4Smrg # darwin through Snow Leopard has poll() but can't be used to poll character devices. 1921c7386f4Smrg darwin@<:@789@:>@*|darwin10*) ;; 1931c7386f4Smrg darwin*) 1941c7386f4Smrg _ac_xorg_macosx_version_min="" 1951c7386f4Smrg if echo $CPPFLAGS $CFLAGS | grep -q mmacosx-version-min ; then 1961c7386f4Smrg _ac_xorg_macosx_version_min=`echo $CPPFLAGS $CFLAGS | sed 's/^.*-mmacosx-version-min=\(@<:@^ @:>@*\).*$/\1/'` 1971c7386f4Smrg else 1981c7386f4Smrg _ac_xorg_macosx_version_min=$MACOSX_DEPLOYMENT_TARGET 1991c7386f4Smrg fi 2001c7386f4Smrg case $_ac_xorg_macosx_version_min in 2011c7386f4Smrg 10.@<:@0123456@:>@|10.@<:@0123456@:>@.*) ;; 2021c7386f4Smrg *) 2031c7386f4Smrg AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], ) 2041c7386f4Smrg ;; 2051c7386f4Smrg esac 2061c7386f4Smrg unset _ac_xorg_macosx_version_min 2071c7386f4Smrg ;; 2081c7386f4Smrg *) 2091c7386f4Smrg AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], ) 2101c7386f4Smrg ;; 211602e473dSmrgesac 212602e473dSmrg 2137204935cSmrgdnl Link with winsock for socket functions on MinGW 2147204935cSmrgcase $host_os in 2157204935cSmrg *mingw*) 2167204935cSmrg AC_CHECK_LIB([ws2_32],[main]) 2177204935cSmrg ;; 2187204935cSmrg *) 2197204935cSmrg ;; 2207204935cSmrgesac 2217204935cSmrg 2227204935cSmrgXCB_EXTENSION(Composite, yes) 2237204935cSmrgXCB_EXTENSION(Damage, yes) 2247204935cSmrgXCB_EXTENSION(DPMS, yes) 2257204935cSmrgXCB_EXTENSION(DRI2, yes) 2267204935cSmrgXCB_EXTENSION(DRI3, $have_sendmsg) 227245c37e9SmrgXCB_EXTENSION(GE, no) 2287204935cSmrgXCB_EXTENSION(GLX, yes) 2297204935cSmrgXCB_EXTENSION(Present, yes) 2307204935cSmrgXCB_EXTENSION(RandR, yes) 2317204935cSmrgXCB_EXTENSION(Record, yes) 2327204935cSmrgXCB_EXTENSION(Render, yes) 2337204935cSmrgXCB_EXTENSION(Resource, yes) 2347204935cSmrgXCB_EXTENSION(Screensaver, yes) 2357204935cSmrgXCB_EXTENSION(Shape, yes) 2367204935cSmrgXCB_EXTENSION(Shm, yes) 2377204935cSmrgXCB_EXTENSION(Sync, yes) 2387204935cSmrgXCB_EXTENSION(Xevie, no) 2397204935cSmrgXCB_EXTENSION(XFixes, yes) 2407204935cSmrgXCB_EXTENSION(XFree86-DRI, yes) 2417204935cSmrgXCB_EXTENSION(Xinerama, yes) 242245c37e9SmrgXCB_EXTENSION(XInput, yes) 2437204935cSmrgXCB_EXTENSION(XKB, yes) 2447204935cSmrgXCB_EXTENSION(Xprint, no) 2457204935cSmrgXCB_EXTENSION(SELinux, no) 2467204935cSmrgXCB_EXTENSION(XTest, yes) 2477204935cSmrgXCB_EXTENSION(Xv, yes) 2487204935cSmrgXCB_EXTENSION(XvMC, yes) 249602e473dSmrg 250602e473dSmrgAC_ARG_WITH(launchd, AS_HELP_STRING([--with-launchd], [Build with support for Apple's launchd (default: auto)]), [LAUNCHD=$withval], [LAUNCHD=auto]) 251602e473dSmrgif test "x$LAUNCHD" = xauto; then 2521c7386f4Smrg unset LAUNCHD 2531c7386f4Smrg AC_CHECK_PROG(LAUNCHD, [launchd], [yes], [no], [$PATH$PATH_SEPARATOR/sbin]) 254602e473dSmrgfi 255602e473dSmrg 256602e473dSmrgif test "x$LAUNCHD" = xyes ; then 2571c7386f4Smrg AC_DEFINE(HAVE_LAUNCHD, 1, [launchd support available]) 258602e473dSmrgfi 259602e473dSmrg 2607204935cSmrgAC_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]) 2617204935cSmrg 2627204935cSmrgAM_CONDITIONAL(XCB_SERVERSIDE_SUPPORT, test "x$XCB_SERVERSIDE_SUPPORT" = "xyes") 2637204935cSmrg 264602e473dSmrgAC_CONFIG_FILES([ 265602e473dSmrgMakefile 266602e473dSmrgdoc/Makefile 2671c7386f4Smrgman/Makefile 268602e473dSmrgsrc/Makefile 269602e473dSmrgtests/Makefile 270602e473dSmrg]) 271602e473dSmrg 272602e473dSmrgAC_CONFIG_FILES([ 273602e473dSmrgxcb.pc 274602e473dSmrgxcb-composite.pc 275602e473dSmrgxcb-damage.pc 276602e473dSmrgxcb-dpms.pc 277602e473dSmrgxcb-dri2.pc 2781016ad83Smrgxcb-dri3.pc 279245c37e9Smrgxcb-ge.pc 280602e473dSmrgxcb-glx.pc 2811016ad83Smrgxcb-present.pc 282602e473dSmrgxcb-randr.pc 283602e473dSmrgxcb-record.pc 284602e473dSmrgxcb-render.pc 285602e473dSmrgxcb-res.pc 286602e473dSmrgxcb-screensaver.pc 287602e473dSmrgxcb-shape.pc 288602e473dSmrgxcb-shm.pc 289602e473dSmrgxcb-sync.pc 290602e473dSmrgxcb-xevie.pc 291602e473dSmrgxcb-xf86dri.pc 292602e473dSmrgxcb-xfixes.pc 293602e473dSmrgxcb-xinerama.pc 294602e473dSmrgxcb-xinput.pc 29521298544Smrgxcb-xkb.pc 296602e473dSmrgxcb-xprint.pc 297602e473dSmrgxcb-xselinux.pc 298602e473dSmrgxcb-xtest.pc 299602e473dSmrgxcb-xv.pc 300602e473dSmrgxcb-xvmc.pc 301602e473dSmrg]) 302602e473dSmrg 303602e473dSmrgAC_CONFIG_FILES([ 304602e473dSmrgdoc/xcb.doxygen 305602e473dSmrg]) 306602e473dSmrg 307602e473dSmrgAC_OUTPUT 308602e473dSmrg 309602e473dSmrgdnl Configuration output 310602e473dSmrg 311602e473dSmrgecho "" 312602e473dSmrgecho " Package: ${PACKAGE_NAME} ${PACKAGE_VERSION}" 313602e473dSmrgecho "" 314602e473dSmrgecho " Configuration" 315602e473dSmrgecho " XDM support.........: ${have_xdmcp}" 3167204935cSmrgecho " sendmsg fd passing..: ${have_sendmsg}" 317602e473dSmrgecho " Build unit tests....: ${HAVE_CHECK}" 3181016ad83Smrgecho " with html results.: ${HTML_CHECK_RESULT}" 319602e473dSmrgecho " XCB buffer size.....: ${xcb_queue_buffer_size}" 320602e473dSmrgecho "" 321b20a2039Smrgecho " X11 extensions" 322b20a2039Smrgecho " Composite...........: ${BUILD_COMPOSITE}" 323b20a2039Smrgecho " Damage..............: ${BUILD_DAMAGE}" 324b20a2039Smrgecho " Dpms................: ${BUILD_DPMS}" 325b20a2039Smrgecho " Dri2................: ${BUILD_DRI2}" 3261016ad83Smrgecho " Dri3................: ${BUILD_DRI3}" 327245c37e9Smrgecho " GenericEvent........: ${BUILD_GE}" 328b20a2039Smrgecho " Glx.................: ${BUILD_GLX}" 329b20a2039Smrgecho " Randr...............: ${BUILD_RANDR}" 330b20a2039Smrgecho " Record..............: ${BUILD_RECORD}" 331b20a2039Smrgecho " Render..............: ${BUILD_RENDER}" 332b20a2039Smrgecho " Resource............: ${BUILD_RESOURCE}" 333b20a2039Smrgecho " Screensaver.........: ${BUILD_SCREENSAVER}" 334b20a2039Smrgecho " selinux.............: ${BUILD_SELINUX}" 335b20a2039Smrgecho " Shape...............: ${BUILD_SHAPE}" 336b20a2039Smrgecho " Shm.................: ${BUILD_SHM}" 337b20a2039Smrgecho " Sync................: ${BUILD_SYNC}" 338b20a2039Smrgecho " Xevie...............: ${BUILD_XEVIE}" 339b20a2039Smrgecho " Xfixes..............: ${BUILD_XFIXES}" 340b20a2039Smrgecho " Xfree86-dri.........: ${BUILD_XFREE86_DRI}" 341b20a2039Smrgecho " xinerama............: ${BUILD_XINERAMA}" 342b20a2039Smrgecho " xinput..............: ${BUILD_XINPUT}" 34321298544Smrgecho " xkb.................: ${BUILD_XKB}" 344b20a2039Smrgecho " xprint..............: ${BUILD_XPRINT}" 345b20a2039Smrgecho " xtest...............: ${BUILD_XTEST}" 346b20a2039Smrgecho " xv..................: ${BUILD_XV}" 347b20a2039Smrgecho " xvmc................: ${BUILD_XVMC}" 348b20a2039Smrgecho "" 349602e473dSmrgecho " Used CFLAGS:" 350602e473dSmrgecho " CPPFLAGS............: ${CPPFLAGS}" 351602e473dSmrgecho " CFLAGS..............: ${CFLAGS}" 352602e473dSmrgecho "" 353602e473dSmrgecho " Installation:" 354602e473dSmrgecho " Prefix..............: ${prefix}" 355602e473dSmrgecho "" 356