X-Git-Url: http://git.demorecorder.com/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=configure.ac;h=6d0f844b827cc45cda0397beef621442e29f9779;hb=010872f611a044ced4e96b18a7514796b2a443df;hp=91f7ae57472f99020e4cf7f9b6544614fc2bbad4;hpb=ee78071902e93ce22a3170f0937c158fd16894d8;p=free-sw%2Fxcb%2Flibxcb diff --git a/configure.ac b/configure.ac index 91f7ae5..6d0f844 100644 --- a/configure.ac +++ b/configure.ac @@ -1,38 +1,47 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -AC_PREREQ(2.57) +# Initialize Autoconf +AC_PREREQ([2.60]) AC_INIT([libxcb], - 1.1.90, + 1.10, [xcb@lists.freedesktop.org]) +AC_CONFIG_AUX_DIR([build-aux]) +AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_SRCDIR([xcb.pc.in]) + +# Initialize Automake AM_INIT_AUTOMAKE([foreign dist-bzip2]) +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +# Set common system defines for POSIX extensions, such as _GNU_SOURCE +# Must be called before any macros that run the compiler (like AC_PROG_LIBTOOL) +# to avoid autoconf errors. +AC_USE_SYSTEM_EXTENSIONS -AM_PATH_PYTHON([2.5]) +AM_PATH_PYTHON([2.6]) PKG_CHECK_MODULES(CHECK, [check >= 0.9.4], [HAVE_CHECK=yes], [HAVE_CHECK=no]) AM_CONDITIONAL(HAVE_CHECK, test x$HAVE_CHECK = xyes) AC_CONFIG_HEADERS([src/config.h]) +AC_LIBTOOL_WIN32_DLL AC_PROG_LIBTOOL AC_PROG_CC -AC_PATH_PROG(XSLTPROC, xsltproc, no) -if test "$XSLTPROC" = "no"; then - AC_MSG_ERROR([XCB requires xsltproc.]) -fi - -HTML_CHECK_RESULT=false +XSLTPROC=no +HTML_CHECK_RESULT=no if test x"$HAVE_CHECK" = xyes; then + AC_PATH_PROG(XSLTPROC, xsltproc, no) if test x"$XSLTPROC" != xno; then - HTML_CHECK_RESULT=true + HTML_CHECK_RESULT=yes fi fi AC_SUBST(HTML_CHECK_RESULT) # Checks for pkg-config packages -PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.1) +PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.10) NEEDED="pthread-stubs xau >= 0.99.2" PKG_CHECK_MODULES(NEEDED, $NEEDED) @@ -50,8 +59,6 @@ PKG_CHECK_MODULES(XDMCP, xdmcp, ], [$XDMCP_LIBS]), [AC_MSG_RESULT(no)]) -AC_CHECK_HEADER([execinfo.h], [AC_DEFINE(HAVE_BACKTRACE,1,[Has backtrace*() needed for retrieving stack traces])]) - AC_SUBST(NEEDED) # Find the xcb-proto protocol descriptions @@ -60,6 +67,10 @@ XCBPROTO_XCBINCLUDEDIR=`$PKG_CONFIG --variable=xcbincludedir xcb-proto` AC_MSG_RESULT($XCBPROTO_XCBINCLUDEDIR) AC_SUBST(XCBPROTO_XCBINCLUDEDIR) +# Find the xcb-proto version +XCBPROTO_VERSION=`$PKG_CONFIG --modversion xcb-proto` +AC_SUBST(XCBPROTO_VERSION) + # Find the xcbgen Python package AC_MSG_CHECKING(XCBPROTO_XCBPYTHONDIR) XCBPROTO_XCBPYTHONDIR=`$PKG_CONFIG --variable=pythondir xcb-proto` @@ -70,79 +81,218 @@ AC_HEADER_STDC AC_SEARCH_LIBS(getaddrinfo, socket) AC_SEARCH_LIBS(connect, socket) +AC_ARG_ENABLE(sendfds, AS_HELP_STRING([--disable-sendfds], [Support FD passing (default: auto)]), + [sendfds=$enableval], [sendfds=auto]) + +case x$sendfds in +xauto) + AC_SEARCH_LIBS(sendmsg, socket, [sendfds="yes"], [sendfds="no"]) + ;; +esac + +# XPG4v2/UNIX95 added msg_control - check to see if we need to define +# _XOPEN_SOURCE to get it (such as on Solaris) +AC_CHECK_MEMBER([struct msghdr.msg_control], [], [], + [ +AC_INCLUDES_DEFAULT +#include + ]) +# First try for Solaris in C99 compliant mode, which requires XPG6/UNIX03 +if test "x$ac_cv_member_struct_msghdr_msg_control" = xno; then + unset ac_cv_member_struct_msghdr_msg_control + AC_MSG_NOTICE([trying again with _XOPEN_SOURCE=600]) + AC_CHECK_MEMBER([struct msghdr.msg_control], + [AC_DEFINE([_XOPEN_SOURCE], [600], + [Defined if needed to expose struct msghdr.msg_control]) + ], [], [ +#define _XOPEN_SOURCE 600 +AC_INCLUDES_DEFAULT +#include + ]) +fi +# If that didn't work, fall back to XPG5/UNIX98 with C89 +if test "x$ac_cv_member_struct_msghdr_msg_control" = xno; then + unset ac_cv_member_struct_msghdr_msg_control + AC_MSG_NOTICE([trying again with _XOPEN_SOURCE=500]) + AC_CHECK_MEMBER([struct msghdr.msg_control], + [AC_DEFINE([_XOPEN_SOURCE], [500], + [Defined if needed to expose struct msghdr.msg_control]) + ], [sendfds="no"], [ +#define _XOPEN_SOURCE 500 +AC_INCLUDES_DEFAULT +#include + ]) +fi + +case x$sendfds in +xyes) + AC_DEFINE([HAVE_SENDMSG],1,[Define if your platform supports sendmsg]) + ;; +esac + +have_win32="no" +lt_enable_auto_import="" +case $host_os in +mingw*) + have_win32="yes" + lt_enable_auto_import="-Wl,--enable-auto-import" + ;; +linux*) + AC_DEFINE([HAVE_ABSTRACT_SOCKETS], 1, [Define if your platform supports abstract sockets]) + ;; +esac + +AC_SUBST(lt_enable_auto_import) +AM_CONDITIONAL([XCB_HAVE_WIN32], [test "x${have_win32}" = "xyes"]) + +dnl define buffer queue size +AC_ARG_WITH([queue-size], + AC_HELP_STRING([--with-queue-size=SIZE], + [Set the XCB buffer queue size (default is 16384)]), + [xcb_queue_buffer_size="$withval"], + [xcb_queue_buffer_size=16384]) +AC_DEFINE_UNQUOTED(XCB_QUEUE_BUFFER_SIZE, [$xcb_queue_buffer_size], + [XCB buffer queue size]) + +dnl check for the sockaddr_un.sun_len member +AC_CHECK_MEMBER([struct sockaddr_un.sun_len], + [AC_DEFINE(HAVE_SOCKADDR_SUN_LEN,1,[Have the sockaddr_un.sun_len member.])], + [], + [ #include + #include + ]) + +dnl check for support for Solaris Trusted Extensions +AC_CHECK_HEADERS([tsol/label.h]) +AC_CHECK_FUNCS([is_system_labeled]) + +dnl check for IOV_MAX, and fall back to UIO_MAXIOV on BSDish systems +AC_CHECK_DECL([IOV_MAX], [], + [AC_CHECK_DECL([UIO_MAXIOV], [AC_DEFINE([IOV_MAX], [UIO_MAXIOV])], + [AC_DEFINE([IOV_MAX], [16], [Define if not provided by ])], + [[#include ]])], + [[#include ]]) + xcbincludedir='${includedir}/xcb' AC_SUBST(xcbincludedir) if test "x$GCC" = xyes ; then - CWARNFLAGS="-Wall -pedantic -Wpointer-arith \ + CWARNFLAGS="-Wall -Wpointer-arith -Wold-style-definition \ -Wstrict-prototypes -Wmissing-declarations -Wnested-externs" else AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) if test "x$SUNCC" = "xyes"; then - CWARNFLAGS="-v" + CWARNFLAGS="-v -fd" fi fi AC_SUBST(CWARNFLAGS) -GCC_CHECK_VISIBILITY() - -# htmldir is not defined prior to autoconf 2.59c, so on earlier versions -# set an equivalent value. -AC_PREREQ([2.59c], [], [AC_SUBST([htmldir], [m4_ifset([AC_PACKAGE_TARNAME], - ['${datadir}/doc/${PACKAGE_TARNAME}'], - ['${datadir}/doc/${PACKAGE}']) -])]) -AM_CHECK_DOXYGEN() - -AC_ARG_ENABLE(composite, AS_HELP_STRING([--enable-composite], [Build XCB Composite Extension (default: yes)]), [BUILD_COMPOSITE=$enableval], [BUILD_COMPOSITE=yes]) -AM_CONDITIONAL(BUILD_COMPOSITE, [test "x$BUILD_COMPOSITE" = xyes]) -AC_ARG_ENABLE(damage, AS_HELP_STRING([--enable-damage], [Build XCB Damage Extension (default: yes)]), [BUILD_DAMAGE=$enableval], [BUILD_DAMAGE=yes]) -AM_CONDITIONAL(BUILD_DAMAGE, [test "x$BUILD_DAMAGE" = xyes]) -AC_ARG_ENABLE(dpms, AS_HELP_STRING([--enable-dpms], [Build XCB DPMS Extension (default: yes)]), [BUILD_DPMS=$enableval], [BUILD_DPMS=yes]) -AM_CONDITIONAL(BUILD_DPMS, [test "x$BUILD_DPMS" = xyes]) -AC_ARG_ENABLE(glx, AS_HELP_STRING([--enable-glx], [Build XCB GLX Extension (default: yes)]), [BUILD_GLX=$enableval], [BUILD_GLX=yes]) -AM_CONDITIONAL(BUILD_GLX, [test "x$BUILD_GLX" = xyes]) -AC_ARG_ENABLE(randr, AS_HELP_STRING([--enable-randr], [Build XCB RandR Extension (default: yes)]), [BUILD_RANDR=$enableval], [BUILD_RANDR=yes]) -AM_CONDITIONAL(BUILD_RANDR, [test "x$BUILD_RANDR" = xyes]) -AC_ARG_ENABLE(record, AS_HELP_STRING([--enable-record], [Build XCB Record Extension (default: yes)]), [BUILD_RECORD=$enableval], [BUILD_RECORD=yes]) -AM_CONDITIONAL(BUILD_RECORD, [test "x$BUILD_RECORD" = xyes]) -AC_ARG_ENABLE(render, AS_HELP_STRING([--enable-render], [Build XCB Render Extension (default: yes)]), [BUILD_RENDER=$enableval], [BUILD_RENDER=yes]) -AM_CONDITIONAL(BUILD_RENDER, [test "x$BUILD_RENDER" = xyes]) -AC_ARG_ENABLE(res, AS_HELP_STRING([--enable-res], [Build XCB X-Resource Extension (default: yes)]), [BUILD_RES=$enableval], [BUILD_RES=yes]) -AM_CONDITIONAL(BUILD_RES, [test "x$BUILD_RES" = xyes]) -AC_ARG_ENABLE(screensaver, AS_HELP_STRING([--enable-screensaver], [Build XCB Screensaver Extension (default: yes)]), [BUILD_SCREENSAVER=$enableval], [BUILD_SCREENSAVER=yes]) -AM_CONDITIONAL(BUILD_SCREENSAVER, [test "x$BUILD_SCREENSAVER" = xyes]) -AC_ARG_ENABLE(shape, AS_HELP_STRING([--enable-shape], [Build XCB Shape Extension (default: yes)]), [BUILD_SHAPE=$enableval], [BUILD_SHAPE=yes]) -AM_CONDITIONAL(BUILD_SHAPE, [test "x$BUILD_SHAPE" = xyes]) -AC_ARG_ENABLE(shm, AS_HELP_STRING([--enable-shm], [Build XCB Shm Extension (default: yes)]), [BUILD_SHM=$enableval], [BUILD_SHM=yes]) -AM_CONDITIONAL(BUILD_SHM, [test "x$BUILD_SHM" = xyes]) -AC_ARG_ENABLE(sync, AS_HELP_STRING([--enable-sync], [Build XCB Sync Extension (default: yes)]), [BUILD_SYNC=$enableval], [BUILD_SYNC=yes]) -AM_CONDITIONAL(BUILD_SYNC, [test "x$BUILD_SYNC" = xyes]) -AC_ARG_ENABLE(xevie, AS_HELP_STRING([--enable-xevie], [Build XCB Xevie Extension (default: yes)]), [BUILD_XEVIE=$enableval], [BUILD_XEVIE=yes]) -AM_CONDITIONAL(BUILD_XEVIE, [test "x$BUILD_XEVIE" = xyes]) -AC_ARG_ENABLE(xf86dri, AS_HELP_STRING([--enable-xf86dri], [Build XCB XFree86-DRI Extension (default: yes)]), [BUILD_XF86DRI=$enableval], [BUILD_XF86DRI=yes]) -AM_CONDITIONAL(BUILD_XF86DRI, [test "x$BUILD_XF86DRI" = xyes]) -AC_ARG_ENABLE(xfixes, AS_HELP_STRING([--enable-xfixes], [Build XCB XFixes Extension (default: yes)]), [BUILD_XFIXES=$enableval], [BUILD_XFIXES=yes]) -AM_CONDITIONAL(BUILD_XFIXES, [test "x$BUILD_XFIXES" = xyes]) -AC_ARG_ENABLE(xinerama, AS_HELP_STRING([--enable-xinerama], [Build XCB Xinerama Extension (default: yes)]), [BUILD_XINERAMA=$enableval], [BUILD_XINERAMA=yes]) -AM_CONDITIONAL(BUILD_XINERAMA, [test "x$BUILD_XINERAMA" = xyes]) -AC_ARG_ENABLE(xinput, AS_HELP_STRING([--enable-xinput], [Build XCB XInput Extension (EXPERIMENTAL) (default: no)]), [BUILD_XINPUT=$enableval], [BUILD_XINPUT=no]) -AM_CONDITIONAL(BUILD_XINPUT, [test "x$BUILD_XINPUT" = xyes]) -AC_ARG_ENABLE(xprint, AS_HELP_STRING([--enable-xprint], [Build XCB Xprint Extension (default: yes)]), [BUILD_XPRINT=$enableval], [BUILD_XPRINT=yes]) -AM_CONDITIONAL(BUILD_XPRINT, [test "x$BUILD_XPRINT" = xyes]) -AC_ARG_ENABLE(xselinux, AS_HELP_STRING([--enable-xselinux], [Build XCB SELinux Extension (default: no)]), [BUILD_SELINUX=$enableval], [BUILD_SELINUX=no]) -AM_CONDITIONAL(BUILD_SELINUX, [test "x$BUILD_SELINUX" = xyes]) -AC_ARG_ENABLE(xtest, AS_HELP_STRING([--enable-xtest], [Build XCB XTEST Extension (default: yes)]), [BUILD_XTEST=$enableval], [BUILD_XTEST=yes]) -AM_CONDITIONAL(BUILD_XTEST, [test "x$BUILD_XTEST" = xyes]) -AC_ARG_ENABLE(xv, AS_HELP_STRING([--enable-xv], [Build XCB Xv Extension (default: yes)]), [BUILD_XV=$enableval], [BUILD_XV=yes]) -AM_CONDITIONAL(BUILD_XV, [test "x$BUILD_XV" = xyes]) -AC_ARG_ENABLE(xvmc, AS_HELP_STRING([--enable-xvmc], [Build XCB XvMC Extension (default: yes)]), [BUILD_XVMC=$enableval], [BUILD_XVMC=yes]) -AM_CONDITIONAL(BUILD_XVMC, [test "x$BUILD_XVMC" = xyes]) - - -AC_CONFIG_FILES([Makefile src/Makefile tests/Makefile doc/Makefile]) -AC_CONFIG_FILES([xcb.pc xcb-xlib.pc xcb-composite.pc xcb-damage.pc xcb-dpms.pc xcb-glx.pc xcb-randr.pc xcb-record.pc xcb-render.pc xcb-res.pc xcb-screensaver.pc xcb-shape.pc xcb-shm.pc xcb-sync.pc xcb-xevie.pc xcb-xf86dri.pc xcb-xfixes.pc xcb-xinerama.pc xcb-xinput.pc xcb-xprint.pc xcb-xselinux.pc xcb-xtest.pc xcb-xv.pc xcb-xvmc.pc]) -AC_CONFIG_FILES([doc/xcb.doxygen]) +XCB_CHECK_VISIBILITY() + +XCB_CHECK_DOXYGEN() + +AC_CHECK_FUNC(getaddrinfo, [AC_DEFINE(HAVE_GETADDRINFO, 1, [getaddrinfo() function is available])], ) + +case $host_os in + # darwin through Snow Leopard has poll() but can't be used to poll character devices. + darwin@<:@789@:>@*|darwin10*) ;; + darwin*) + _ac_xorg_macosx_version_min="" + if echo $CPPFLAGS $CFLAGS | grep -q mmacosx-version-min ; then + _ac_xorg_macosx_version_min=`echo $CPPFLAGS $CFLAGS | sed 's/^.*-mmacosx-version-min=\(@<:@^ @:>@*\).*$/\1/'` + else + _ac_xorg_macosx_version_min=$MACOSX_DEPLOYMENT_TARGET + fi + case $_ac_xorg_macosx_version_min in + 10.@<:@0123456@:>@|10.@<:@0123456@:>@.*) ;; + *) + AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], ) + ;; + esac + unset _ac_xorg_macosx_version_min + ;; + *) + AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], ) + ;; +esac + +XCB_EXTENSION(Composite, "yes") +XCB_EXTENSION(Damage, "yes") +XCB_EXTENSION(DPMS, "yes") +XCB_EXTENSION(DRI2, "yes") +XCB_EXTENSION(DRI3, "$sendfds") +XCB_EXTENSION(GLX, "yes") +XCB_EXTENSION(Present, "yes") +XCB_EXTENSION(RandR, "yes") +XCB_EXTENSION(Record, "yes") +XCB_EXTENSION(Render, "yes") +XCB_EXTENSION(Resource, "yes") +XCB_EXTENSION(Screensaver, "yes") +XCB_EXTENSION(Shape, "yes") +XCB_EXTENSION(Shm, "yes") +XCB_EXTENSION(Sync, "yes") +XCB_EXTENSION(Xevie, "yes") +XCB_EXTENSION(XFixes, "yes") +XCB_EXTENSION(XFree86-DRI, "yes") +XCB_EXTENSION(Xinerama, "yes") +XCB_EXTENSION(XInput, "no") +XCB_EXTENSION(XKB, "yes") +XCB_EXTENSION(Xprint, "yes") +XCB_EXTENSION(SELinux, "no") +XCB_EXTENSION(XTest, "yes") +XCB_EXTENSION(Xv, "yes") +XCB_EXTENSION(XvMC, "yes") + +AC_ARG_WITH(launchd, AS_HELP_STRING([--with-launchd], [Build with support for Apple's launchd (default: auto)]), [LAUNCHD=$withval], [LAUNCHD=auto]) +if test "x$LAUNCHD" = xauto; then + unset LAUNCHD + AC_CHECK_PROG(LAUNCHD, [launchd], [yes], [no], [$PATH$PATH_SEPARATOR/sbin]) +fi + +if test "x$LAUNCHD" = xyes ; then + AC_DEFINE(HAVE_LAUNCHD, 1, [launchd support available]) +fi + +AC_CONFIG_FILES([ +Makefile +doc/Makefile +src/Makefile +tests/Makefile +]) + +AC_CONFIG_FILES([ +xcb.pc +xcb-composite.pc +xcb-damage.pc +xcb-dpms.pc +xcb-dri2.pc +xcb-dri3.pc +xcb-glx.pc +xcb-present.pc +xcb-randr.pc +xcb-record.pc +xcb-render.pc +xcb-res.pc +xcb-screensaver.pc +xcb-shape.pc +xcb-shm.pc +xcb-sync.pc +xcb-xevie.pc +xcb-xf86dri.pc +xcb-xfixes.pc +xcb-xinerama.pc +xcb-xinput.pc +xcb-xkb.pc +xcb-xprint.pc +xcb-xselinux.pc +xcb-xtest.pc +xcb-xv.pc +xcb-xvmc.pc +]) + +AC_CONFIG_FILES([ +doc/xcb.doxygen +]) AC_OUTPUT @@ -153,7 +303,37 @@ echo " Package: ${PACKAGE_NAME} ${PACKAGE_VERSION}" echo "" echo " Configuration" echo " XDM support.........: ${have_xdmcp}" +echo " sendmsg fd passing..: ${sendfds}" echo " Build unit tests....: ${HAVE_CHECK}" +echo " with html results.: ${HTML_CHECK_RESULT}" +echo " XCB buffer size.....: ${xcb_queue_buffer_size}" +echo "" +echo " X11 extensions" +echo " Composite...........: ${BUILD_COMPOSITE}" +echo " Damage..............: ${BUILD_DAMAGE}" +echo " Dpms................: ${BUILD_DPMS}" +echo " Dri2................: ${BUILD_DRI2}" +echo " Dri3................: ${BUILD_DRI3}" +echo " Glx.................: ${BUILD_GLX}" +echo " Randr...............: ${BUILD_RANDR}" +echo " Record..............: ${BUILD_RECORD}" +echo " Render..............: ${BUILD_RENDER}" +echo " Resource............: ${BUILD_RESOURCE}" +echo " Screensaver.........: ${BUILD_SCREENSAVER}" +echo " selinux.............: ${BUILD_SELINUX}" +echo " Shape...............: ${BUILD_SHAPE}" +echo " Shm.................: ${BUILD_SHM}" +echo " Sync................: ${BUILD_SYNC}" +echo " Xevie...............: ${BUILD_XEVIE}" +echo " Xfixes..............: ${BUILD_XFIXES}" +echo " Xfree86-dri.........: ${BUILD_XFREE86_DRI}" +echo " xinerama............: ${BUILD_XINERAMA}" +echo " xinput..............: ${BUILD_XINPUT}" +echo " xkb.................: ${BUILD_XKB}" +echo " xprint..............: ${BUILD_XPRINT}" +echo " xtest...............: ${BUILD_XTEST}" +echo " xv..................: ${BUILD_XV}" +echo " xvmc................: ${BUILD_XVMC}" echo "" echo " Used CFLAGS:" echo " CPPFLAGS............: ${CPPFLAGS}"