configure: Allow manual disabling of each DRI level

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2014-06-13 07:48:15 +01:00
parent ffe067705b
commit 7bc669dd4b
1 changed files with 52 additions and 31 deletions

View File

@ -296,6 +296,21 @@ AC_ARG_ENABLE(dri,
[Disable DRI support [[default=auto]]]),
[DRI=$enableval],
[DRI=auto])
AC_ARG_ENABLE(dri1,
AS_HELP_STRING([--disable-dri1],
[Disable DRI1 support [[default=yes]]]),
[DRI1=$enableval],
[DRI1=yes])
AC_ARG_ENABLE(dri2,
AS_HELP_STRING([--disable-dri2],
[Disable DRI2 support [[default=yes]]]),
[DRI2=$enableval],
[DRI2=yes])
AC_ARG_ENABLE(dri3,
AS_HELP_STRING([--disable-dri3],
[Disable DRI3 support [[default=yes]]]),
[DRI3=$enableval],
[DRI3=yes])
AC_ARG_ENABLE(xvmc, AS_HELP_STRING([--disable-xvmc],
[Disable XvMC support [[default=yes]]]),
@ -461,15 +476,15 @@ if test "x$UMS" = "xyes"; then
AC_DEFINE(UMS,1,[Assume UMS support])
fi
DRI1=no
have_dri1=no
XORG_DRIVER_CHECK_EXT(XF86DRI, xf86driproto)
if test "x$_EXT_CHECK" != "xno" -a "x$DRI" != "xno" -a "x$UMS" = "xyes"; then
PKG_CHECK_MODULES(DRI1, [xf86driproto], [DRI1=$DRI], [DRI1=no])
if test "x$_EXT_CHECK" != "xno" -a "x$DRI" != "xno" -a "x$DRI1" != "xno" -a "x$UMS" = "xyes"; then
PKG_CHECK_MODULES(DRI1, [xf86driproto], [have_dri1=$DRI], [have_dri1=no])
save_CFLAGS="$CFLAGS"
save_CPPFLAGS="$CPPFLAGS"
CFLAGS="$CFLAGS $XORG_CFLAGS $DRI1_CFLAGS $DRM_CFLAGS"
CPPFLAGS="$CPPFLAGS $XORG_CFLAGS $DRI1_CFLAGS $DRM_CFLAGS"
AC_CHECK_HEADERS([dri.h sarea.h dristruct.h], [], [DRI1=no],
AC_CHECK_HEADERS([dri.h sarea.h dristruct.h], [], [have_dri1=no],
[/* for dri.h */
#include <xf86str.h>
/* for dristruct.h */
@ -486,49 +501,55 @@ if test "x$_EXT_CHECK" != "xno" -a "x$DRI" != "xno" -a "x$UMS" = "xyes"; then
fi
AC_MSG_CHECKING([whether to include DRI1 support])
AC_MSG_RESULT([$DRI1])
AC_MSG_RESULT([$have_dri1])
AM_CONDITIONAL(DRI1, test "x$DRI1" != "xno")
if test "x$DRI1" != "xno"; then
AM_CONDITIONAL(DRI1, test "x$have_dri1" != "xno")
if test "x$have_dri1" != "xno"; then
AC_DEFINE(HAVE_DRI1,1,[Enable DRI1 driver support])
dri_msg="$dri_msg DRI1"
else
DRI1_CFLAGS=""
DRI1_LIBS=""
if test "x$DRI" = "xyes" -a "x$UMS" = "xyes"; then
if test "x$DRI" = "xyes" -a "x$UMS" = "xyes" -a "x$DRI1" != "xno"; then
AC_MSG_ERROR([DRI1 requested but prerequisites not found])
fi
fi
DRI2=no
DRI3=no
have_dri2=no
have_dri3=no
if test "x$DRI" != "xno"; then
PKG_CHECK_MODULES(DRI2, [dri2proto >= 2.6], [DRI2=$DRI], [DRI2=no])
dridriverdir=`$PKG_CONFIG --variable=dridriverdir dri`
if test "x$dridriverdir" = "x"; then
dridriverdir="$libdir/dri"
fi
AC_DEFINE_DIR(DRI_DRIVER_PATH, dridriverdir, [Default DRI2 driver path])
if test "x$DRI2" != "xno"; then
PKG_CHECK_MODULES(have_dri2, [dri2proto >= 2.6], [have_dri2=$DRI], [have_dri2=no])
fi
if test "x$have_dri2" != "xno"; then
save_CFLAGS=$CFLAGS
CFLAGS="$XORG_CFLAGS $DRM_CFLAGS $DRI1_CFLAGS $DRI2_CFLAGS"
AC_CHECK_HEADERS([dri2.h], [], [DRI2=no], [
AC_CHECK_HEADERS([dri2.h], [], [have_dri2=no], [
#include <dixstruct.h>
#include <drm.h>
])
CFLAGS=$save_CFLAGS
fi
XORG_DRIVER_CHECK_EXT(DRI3, dri3proto)
if test "x$_EXT_CHECK" != "xno"; then
PKG_CHECK_MODULES(DRI3, [dri3proto], [DRI3=$DRI], [])
if test "x$have_dri2" != "xno"; then
dridriverdir=`$PKG_CONFIG --variable=dridriverdir dri`
if test "x$dridriverdir" = "x"; then
dridriverdir="$libdir/dri"
fi
AC_DEFINE_DIR(DRI_DRIVER_PATH, dridriverdir, [Default have_dri2 driver path])
fi
if test "x$DRI3" != "xno"; then
XORG_DRIVER_CHECK_EXT(DRI3, dri3proto)
if test "x$_EXT_CHECK" != "xno"; then
PKG_CHECK_MODULES(DRI3, [dri3proto], [have_dri3=$DRI], [])
fi
fi
if test "x$have_dri3" != "xno"; then
save_CFLAGS=$CFLAGS
CFLAGS="$XORG_CFLAGS $DRI3_CFLAGS"
AC_CHECK_DECL(DRI3, [], [DRI3=no], [#include <xorg-server.h>])
AC_CHECK_HEADERS([misyncstr.h misyncshm.h], [], [DRI3=no], [
AC_CHECK_DECL(DRI3, [], [have_dri3=no], [#include <xorg-server.h>])
AC_CHECK_HEADERS([misyncstr.h misyncshm.h], [], [have_dri3=no], [
#include <xorg-server.h>
#include <xf86str.h>
#include <misync.h>
@ -538,13 +559,13 @@ if test "x$DRI" != "xno"; then
fi
AC_MSG_CHECKING([whether to include DRI2 support])
AM_CONDITIONAL(DRI2, test "x$DRI2" != "xno")
AC_MSG_RESULT([$DRI2])
if test "x$DRI2" != "xno"; then
AM_CONDITIONAL(DRI2, test "x$have_dri2" != "xno")
AC_MSG_RESULT([$have_dri2])
if test "x$have_dri2" != "xno"; then
AC_DEFINE(HAVE_DRI2,1,[Enable DRI2 driver support])
dri_msg="$dri_msg DRI2"
else
if test "x$DRI" = "xyes" -a "x$KMS" = "xyes"; then
if test "x$DRI" = "xyes" -a "x$DRI2" != "xno" -a "x$KMS" = "xyes"; then
AC_MSG_ERROR([DRI2 requested but prerequisites not found])
fi
@ -553,13 +574,13 @@ else
fi
AC_MSG_CHECKING([whether to include DRI3 support])
AM_CONDITIONAL(DRI3, test "x$DRI3" != "xno")
AC_MSG_RESULT([$DRI3])
if test "x$DRI3" != "xno"; then
AM_CONDITIONAL(DRI3, test "x$have_dri3" != "xno")
AC_MSG_RESULT([$have_dri3])
if test "x$have_dri3" != "xno"; then
AC_DEFINE(HAVE_DRI3,1,[Enable DRI3 driver support])
dri_msg="$dri_msg DRI3"
else
if test "x$DRI" = "xyes" -a "x$KMS" = "xyes"; then
if test "x$DRI" = "xyes" -a "x$DRI3" != "xno" -a "x$KMS" = "xyes"; then
AC_MSG_ERROR([DRI3 requested but prerequisites not found])
fi
fi