X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=configure.ac;h=ac7d49f1f60ffd568cc6b496d124134cf4a99ca3;hb=ea663d56e2000ba02f53cc8a99ded78ccad0a126;hp=0caa1b1bdf512b6694b4b3bb29fcf58f36e64be1;hpb=e6fa2d89e14452b6bdf42c7eb4150fb2a2c46a4a;p=mesa.git diff --git a/configure.ac b/configure.ac index 0caa1b1bdf5..ac7d49f1f60 100644 --- a/configure.ac +++ b/configure.ac @@ -37,7 +37,7 @@ USER_CXXFLAGS="$CXXFLAGS" dnl Versions for external dependencies LIBDRM_REQUIRED=2.4.24 LIBDRM_RADEON_REQUIRED=2.4.31 -LIBDRM_INTEL_REQUIRED=2.4.30 +LIBDRM_INTEL_REQUIRED=2.4.32 LIBDRM_NOUVEAU_REQUIRED=0.6 DRI2PROTO_REQUIRED=2.6 GLPROTO_REQUIRED=1.4.14 @@ -379,6 +379,7 @@ fi AC_SUBST([GL_LIB]) AC_SUBST([GLU_LIB]) AC_SUBST([OSMESA_LIB]) +AM_CONDITIONAL(HAVE_MANGLED_GL, test $GL_LIB = MangledGL) dnl dnl potentially-infringing-but-nobody-knows-for-sure stuff @@ -701,8 +702,10 @@ if test "x$enable_shared_glapi" = xyes; then # libGL will use libglapi for function lookups (IN_DRI_DRIVER means to use # the remap table) DEFINES="$DEFINES -DIN_DRI_DRIVER" + SRC_DIRS="$SRC_DIRS mapi/shared-glapi" fi AC_SUBST([SHARED_GLAPI]) +AM_CONDITIONAL(HAVE_SHARED_GLAPI, test $SHARED_GLAPI = 1) dnl dnl Driver configuration. Options are xlib, dri and osmesa right now. @@ -1040,6 +1043,7 @@ esac # builds. AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT, test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes) +AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes) GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS" GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS" @@ -1398,14 +1402,13 @@ EGL_CLIENT_APIS="" if test "x$enable_egl" = xyes; then SRC_DIRS="$SRC_DIRS egl" EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread" - EGL_DRIVERS_DIRS="" AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"]) if test "$enable_static" != yes; then # build egl_glx when libGL is built if test "x$enable_glx" = xyes; then - EGL_DRIVERS_DIRS="glx" + HAVE_EGL_DRIVER_GLX=1 fi PKG_CHECK_MODULES([LIBUDEV], [libudev > 150], @@ -1417,10 +1420,8 @@ if test "x$enable_egl" = xyes; then # build egl_dri2 when xcb-dri2 is available PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes], [have_xcb_dri2=yes],[have_xcb_dri2=no]) - if test "$have_xcb_dri2" = yes; then - EGL_DRIVER_DRI2=dri2 - DEFINES="$DEFINES -DHAVE_XCB_DRI2" + HAVE_EGL_DRIVER_DRI2=1 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6 save_LIBS="$LIBS" AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [], @@ -1429,11 +1430,9 @@ if test "x$enable_egl" = xyes; then fi fi - EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2" fi fi AC_SUBST([EGL_LIB_DEPS]) -AC_SUBST([EGL_DRIVERS_DIRS]) dnl dnl EGL Gallium configuration @@ -1581,19 +1580,19 @@ if test "x$enable_gallium_g3dvl" = xyes; then fi if test "x$enable_xvmc" = xyes; then - PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6]) + PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 x11-xcb xcb-dri2 >= 1.8]) GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xvmc" HAVE_ST_XVMC="yes" fi if test "x$enable_vdpau" = xyes; then - PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1]) + PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1 x11-xcb xcb-dri2 >= 1.8]) GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau" HAVE_ST_VDPAU="yes" fi if test "x$enable_va" = xyes; then - PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1]) + PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1 x11-xcb xcb-dri2 >= 1.8]) AC_MSG_WARN([vaapi state tracker currently unmaintained]) GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va" HAVE_ST_VA="yes" @@ -1679,23 +1678,21 @@ AC_ARG_WITH([egl-platforms], [comma delimited native platforms libEGL supports, e.g. "x11,drm" @<:@default=auto@:>@])], [with_egl_platforms="$withval"], - [with_egl_platforms=yes]) + [if test "x$enable_egl" = xyes; then + with_egl_platforms="x11" + else + with_egl_platforms="" + fi]) EGL_PLATFORMS="" -case "$with_egl_platforms" in -yes) - if test "x$enable_egl" = xyes; then - EGL_PLATFORMS="x11" - fi - ;; -*) - if test "x$enable_egl" != xyes; then - AC_MSG_ERROR([cannot build egl state tracker without EGL library]) - fi - # verify the requested driver directories exist - egl_platforms=`IFS=', '; echo $with_egl_platforms` - for plat in $egl_platforms; do +if test "x$with_egl_platforms" != "x" -a "x$enable_egl" != xyes; then + AC_MSG_ERROR([cannot build egl state tracker without EGL library]) +fi + +# verify the requested driver directories exist +egl_platforms=`IFS=', '; echo $with_egl_platforms` +for plat in $egl_platforms; do test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \ AC_MSG_ERROR([EGL platform '$plat' does not exist]) if test "$plat" = "fbdev"; then @@ -1719,11 +1716,31 @@ yes) waylandno|drmno) AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;; esac - done - EGL_PLATFORMS="$egl_platforms" - ;; -esac +done + +# libEGL wants to default to the first platform specified in +# ./configure. parse that here. +if test "x$egl_platforms" != "x"; then + FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr 'a-z' 'A-Z'` + EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS" +else + EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM" +fi + +EGL_PLATFORMS="$egl_platforms" + +AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1) +AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep 'wayland' >/dev/null 2>&1) +AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep 'drm' >/dev/null 2>&1) +AM_CONDITIONAL(HAVE_EGL_PLATFORM_FBDEV, echo "$egl_platforms" | grep 'fbdev' >/dev/null 2>&1) +AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep 'null' >/dev/null 2>&1) + +AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x") +AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != "x") + +AC_SUBST([EGL_NATIVE_PLATFORM]) AC_SUBST([EGL_PLATFORMS]) +AC_SUBST([EGL_CFLAGS]) AC_ARG_WITH([egl-driver-dir], [AS_HELP_STRING([--with-egl-driver-dir=DIR], @@ -1919,6 +1936,29 @@ if test "x$NEED_G3DVL_DRI" = xyes; then GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri" fi +dnl Tell Automake which drivers to build +for driver in $GALLIUM_DRIVERS_DIRS; do + case "x$driver" in + xgalahad) + HAVE_GALAHAD_GALLIUM=yes; + ;; + xidentity) + HAVE_IDENTITY_GALLIUM=yes; + ;; + xnoop) + HAVE_NOOP_GALLIUM=yes; + ;; + *) + GALLIUM_MAKE_DIRS="$GALLIUM_MAKE_DIRS $driver" + ;; + esac +done + +AM_CONDITIONAL(HAVE_GALAHAD_GALLIUM, test x$HAVE_GALAHAD_GALLIUM = xyes) +AM_CONDITIONAL(HAVE_IDENTITY_GALLIUM, test x$HAVE_IDENTITY_GALLIUM = xyes) +AM_CONDITIONAL(HAVE_NOOP_GALLIUM, test x$HAVE_NOOP_GALLIUM = xyes) +AC_SUBST([GALLIUM_MAKE_DIRS]) + dnl prepend CORE_DIRS to SRC_DIRS SRC_DIRS="$CORE_DIRS $SRC_DIRS" @@ -1932,13 +1972,21 @@ CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS" dnl Substitute the config AC_CONFIG_FILES([configs/autoconf + src/gallium/drivers/Makefile src/gallium/drivers/r300/Makefile src/gbm/Makefile src/gbm/main/gbm.pc + src/egl/drivers/Makefile + src/egl/drivers/dri2/Makefile + src/egl/drivers/glx/Makefile + src/egl/main/Makefile + src/egl/main/egl.pc src/egl/wayland/Makefile src/egl/wayland/wayland-egl/Makefile src/egl/wayland/wayland-egl/wayland-egl.pc src/egl/wayland/wayland-drm/Makefile + src/glx/Makefile + src/mapi/shared-glapi/Makefile src/mesa/drivers/dri/dri.pc src/mesa/drivers/dri/Makefile src/mesa/drivers/dri/common/Makefile @@ -1963,6 +2011,7 @@ dnl Sort the dirs alphabetically GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "` GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "` GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "` +GALLIUM_MAKE_DIRS=`echo $GALLIUM_MAKE_DIRS|tr " " "\n"|sort -u|tr "\n" " "` GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "` AC_OUTPUT @@ -2022,9 +2071,12 @@ if test "$enable_egl" = yes; then echo " EGL platforms: $EGL_PLATFORMS" egl_drivers="" - for d in $EGL_DRIVERS_DIRS; do - egl_drivers="$egl_drivers builtin:egl_$d" - done + if test "x$HAVE_EGL_DRIVER_GLX" != "x"; then + egl_drivers="$egl_drivers builtin:egl_glx" + fi + if test "x$HAVE_EGL_DRIVER_DRI2" != "x"; then + egl_drivers="$egl_drivers builtin:egl_dri2" + fi if test "x$HAVE_ST_EGL" = xyes; then echo " EGL drivers: ${egl_drivers} egl_gallium"