--- configure.ac.orig 2014-02-07 23:03:26.000000000 +0100 +++ configure.ac 2014-02-23 17:38:45.000000000 +0100 @@ -37,6 +37,7 @@ DRI3PROTO_REQUIRED=1.0 PRESENTPROTO_REQUIRED=1.0 LIBUDEV_REQUIRED=151 +LIBDEVQ_REQUIRED=0.1.0 GLPROTO_REQUIRED=1.4.14 dnl Check for progs @@ -774,6 +775,9 @@ PKG_CHECK_MODULES([LIBUDEV], [libudev >= $LIBUDEV_REQUIRED], have_libudev=yes, have_libudev=no) +PKG_CHECK_MODULES([LIBDEVQ], [libdevq-1.0], + have_libdevq=yes, have_libdevq=no) + if test "x$enable_dri" = xyes; then # DRI must be shared, I think if test "$enable_static" = yes; then @@ -830,9 +834,18 @@ PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED]) GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED" if test x"$enable_dri3" = xyes; then - if test x"$have_libudev" != xyes; then - AC_MSG_ERROR([DRI3 requires libudev >= $LIBUDEV_REQUIRED]) - fi + case "$host_os" in + *freebsd*) + if test x"have_libdevq" != xyes; then + AC_MSG_ERROR([DRI3 requires libdevq >= $LIBDEVQ_REQUIRED]) + fi + ;; + *) + if test x"have_libudev" != xyes; then + AC_MSG_ERROR([DRI3 requires libudev >= $LIBUDEV_REQUIRED]) + fi + ;; + esac PKG_CHECK_MODULES([DRI3PROTO], [dri3proto >= $DRI3PROTO_REQUIRED]) PKG_CHECK_MODULES([PRESENTPROTO], [presentproto >= $PRESENTPROTO_REQUIRED]) fi @@ -861,16 +874,25 @@ GL_LIB_DEPS="$GL_LIB_DEPS" fi + if test x"$enable_dri3$have_libdevq" = xyesyes; then + X11_INCLUDES="$X11_INCLUDES $LIBDEVQ_CFLAGS" + GL_LIB_DEPS="$GL_LIB_DEPS" + fi + # need DRM libs, $PTHREAD_LIBS, etc. GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS" GL_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS" ;; esac -if test "$have_libudev" = yes; then +if test x"$have_libudev" = xyes; then DEFINES="$DEFINES -DHAVE_LIBUDEV" fi +if test x"$have_libdevq" = xyes; then + DEFINES="$DEFINES -DHAVE_DEVQ" +fi + # This is outside the case (above) so that it is invoked even for non-GLX # builds. AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes) @@ -1178,9 +1200,18 @@ esac fi if test "x$enable_gbm" = xyes; then - if test x"$have_libudev" != xyes; then - AC_MSG_ERROR([gbm needs udev]) - fi + case "$host_os" in + *freebsd*) + if x"$have_libdevq" != xyes; then + AC_MSG_ERROR([gdm needs devq]) + fi + ;; + *) + if test x"$have_libudev" != xyes; then + AC_MSG_ERROR([gbm needs udev]) + fi + ;; + esac if test "x$enable_dri" = xyes; then GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri" @@ -1190,7 +1221,14 @@ fi fi AM_CONDITIONAL(HAVE_GBM, test "x$enable_gbm" = xyes) -GBM_PC_REQ_PRIV="libudev" +case "$host_os" in +*freebsd*) + GBM_PC_REQ_PRIV="libdevq-1.0" + ;; +*) + GBM_PC_REQ_PRIV="libudev" + ;; +esac GBM_PC_LIB_PRIV="$DLOPEN_LIBS" AC_SUBST([GBM_PC_REQ_PRIV]) AC_SUBST([GBM_PC_LIB_PRIV]) @@ -1461,9 +1499,19 @@ ;; esac - case "$plat$have_libudev" in - waylandno|drmno) - AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;; + case "$host_os" in + *freebsd*) + case "$plat$have_libdevq" in + waylandno|drmno) + AC_MSG_ERROR([cannot build $plat platfrom without libdevq]) ;; + esac + ;; + *) + case "$plat$have_libudev" in + waylandno|drmno) + AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;; + esac + ;; esac done @@ -1702,8 +1750,18 @@ gallium_require_drm_loader() { if test "x$enable_gallium_loader" = xyes; then - PKG_CHECK_MODULES([LIBUDEV], [libudev], [], - AC_MSG_ERROR([Gallium drm loader requires libudev])) + case "$host_os" in + *freebsd*) + if test x"$have_libdevq" != xyes; then + AC_MSG_ERROR([Gallium drm loader requires libdevq]) + fi + ;; + *) + if test x"$have_libudev" != xyes; then + AC_MSG_ERROR([Gallium drm loader requires libudev]) + fi + ;; + esac if test "x$have_libdrm" != xyes; then AC_MSG_ERROR([Gallium drm loader requires libdrm >= $LIBDRM_REQUIRED]) fi