X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=configure.ac;h=46fcd8f3fe78b9f2eb6dfa3f99d1c79bfc6e8b03;hb=0ee8d81718f059592ab484382c93073c43b71f54;hp=2c930004cfb2480e7aa0fef8cd26b5e70f741d4f;hpb=73682f82bc8ab2b96b76ec12da9d2d130ec5e352;p=mesa.git diff --git a/configure.ac b/configure.ac index 2c930004cfb..46fcd8f3fe7 100644 --- a/configure.ac +++ b/configure.ac @@ -74,12 +74,11 @@ AC_SUBST([OPENCL_VERSION]) # in the first entry. LIBDRM_REQUIRED=2.4.75 LIBDRM_RADEON_REQUIRED=2.4.71 -LIBDRM_AMDGPU_REQUIRED=2.4.79 +LIBDRM_AMDGPU_REQUIRED=2.4.81 LIBDRM_INTEL_REQUIRED=2.4.75 LIBDRM_NVVIEUX_REQUIRED=2.4.66 LIBDRM_NOUVEAU_REQUIRED=2.4.66 LIBDRM_FREEDRENO_REQUIRED=2.4.74 -LIBDRM_VC4_REQUIRED=2.4.69 LIBDRM_ETNAVIV_REQUIRED=2.4.80 dnl Versions for external dependencies @@ -97,7 +96,7 @@ XSHMFENCE_REQUIRED=1.1 XVMC_REQUIRED=1.0.6 PYTHON_MAKO_REQUIRED=0.8.0 LIBSENSORS_REQUIRED=4.0.0 -ZLIB_REQUIRED=1.2.8 +ZLIB_REQUIRED=1.2.3 dnl LLVM versions LLVM_REQUIRED_GALLIUM=3.3.0 @@ -766,6 +765,13 @@ if test "x$enable_asm" = xyes; then ;; esac ;; + powerpc64le) + case "$host_os" in + linux*) + asm_arch=ppc64le + ;; + esac + ;; esac case "$asm_arch" in @@ -781,6 +787,10 @@ if test "x$enable_asm" = xyes; then DEFINES="$DEFINES -DUSE_SPARC_ASM" AC_MSG_RESULT([yes, sparc]) ;; + ppc64le) + DEFINES="$DEFINES -DUSE_PPC64LE_ASM" + AC_MSG_RESULT([yes, ppc64le]) + ;; *) AC_MSG_RESULT([no, platform not supported]) ;; @@ -837,6 +847,11 @@ dnl is not valid for that platform. if test "x$android" = xno; then test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread" fi +dnl According to the manual when using pthreads, one should add -pthread to +dnl both compile and link-time arguments. +dnl In practise that should be sufficient for all platforms, since any +dnl platforms build with GCC and Clang support the flag. +PTHREAD_LIBS="$PTHREAD_LIBS -pthread" dnl pthread-stubs is mandatory on BSD platforms, due to the nature of the dnl project. Even then there's a notable issue as described in the project README @@ -851,8 +866,6 @@ esac if test "x$pthread_stubs_possible" = xyes; then PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs >= 0.4) - AC_SUBST(PTHREADSTUBS_CFLAGS) - AC_SUBST(PTHREADSTUBS_LIBS) fi dnl SELinux awareness. @@ -1066,16 +1079,12 @@ AC_SUBST([LLVM_INCLUDEDIR]) dnl dnl libunwind dnl +PKG_CHECK_EXISTS(libunwind, [HAVE_LIBUNWIND=yes], [HAVE_LIBUNWIND=no]) AC_ARG_ENABLE([libunwind], [AS_HELP_STRING([--enable-libunwind], [Use libunwind for backtracing (default: auto)])], [LIBUNWIND="$enableval"], - [LIBUNWIND="auto"]) - -PKG_CHECK_EXISTS(libunwind, [HAVE_LIBUNWIND=yes], [HAVE_LIBUNWIND=no]) -if test "x$LIBUNWIND" = "xauto"; then - LIBUNWIND="$HAVE_LIBUNWIND" -fi + [LIBUNWIND="$HAVE_LIBUNWIND"]) if test "x$LIBUNWIND" = "xyes"; then PKG_CHECK_MODULES(LIBUNWIND, libunwind) @@ -1240,7 +1249,7 @@ GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast" AC_ARG_WITH([gallium-drivers], [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@], [comma delimited Gallium drivers list, e.g. - "i915,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,swr,vc4,virgl,etnaviv,imx" + "i915,nouveau,r300,r600,radeonsi,freedreno,pl111,svga,swrast,swr,vc4,virgl,etnaviv,imx" @<:@default=r300,r600,svga,swrast@:>@])], [with_gallium_drivers="$withval"], [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"]) @@ -1282,6 +1291,9 @@ AM_CONDITIONAL(HAVE_OPENGL_ES2, test "x$enable_gles2" = xyes) AM_CONDITIONAL(NEED_OPENGL_COMMON, test "x$enable_opengl" = xyes -o \ "x$enable_gles1" = xyes -o \ "x$enable_gles2" = xyes) +AM_CONDITIONAL(NEED_KHRPLATFORM, test "x$enable_egl" = xyes -o \ + "x$enable_gles1" = xyes -o \ + "x$enable_gles2" = xyes) # Validate GLX options if test "x$enable_glx" = xyes; then @@ -1536,15 +1548,10 @@ xdri) PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED]) GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED" + if test x"$enable_dri" = xyes; then dri_modules="$dri_modules xcb-dri2 >= $XCBDRI2_REQUIRED" fi - - if test x"$enable_dri3" = xyes; then - PKG_CHECK_EXISTS([xcb >= $XCB_REQUIRED], [], AC_MSG_ERROR([DRI3 requires xcb >= $XCB_REQUIRED])) - dri3_modules="xcb xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED" - PKG_CHECK_MODULES([XCB_DRI3], [$dri3_modules]) - fi fi if test x"$dri_platform" = xapple ; then DEFINES="$DEFINES -DGLX_USE_APPLEGL" @@ -1643,14 +1650,9 @@ AC_ARG_WITH([egl-platforms], [with_egl_platforms=auto]) if test "x$with_egl_platforms" = xauto; then - if test "x$enable_egl" = xyes; then - if test "x$enable_gbm" = xyes; then - with_egl_platforms="x11,drm" - else - with_egl_platforms="x11" - fi - else - with_egl_platforms="" + with_egl_platforms="x11,surfaceless" + if test "x$enable_gbm" = xyes; then + with_egl_platforms="$with_egl_platforms,drm" fi else AC_MSG_WARN([--with-egl-platforms is deprecated. Use --with-platforms instead.]) @@ -1689,22 +1691,27 @@ for plat in $platforms; do if test "x$WAYLAND_SCANNER" = "x:"; then AC_MSG_ERROR([wayland-scanner is needed to compile the wayland platform]) fi + DEFINES="$DEFINES -DHAVE_WAYLAND_PLATFORM" ;; x11) PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED xcb-xfixes]) + DEFINES="$DEFINES -DHAVE_X11_PLATFORM" ;; drm) test "x$enable_gbm" = "xno" && AC_MSG_ERROR([EGL platform drm needs gbm]) + DEFINES="$DEFINES -DHAVE_DRM_PLATFORM" ;; surfaceless) + DEFINES="$DEFINES -DHAVE_SURFACELESS_PLATFORM" ;; android) PKG_CHECK_MODULES([ANDROID], [cutils hardware sync]) + DEFINES="$DEFINES -DHAVE_ANDROID_PLATFORM" ;; *) @@ -1719,6 +1726,19 @@ for plat in $platforms; do esac done +if test "x$enable_glx" != xno; then + if ! echo "$platforms" | grep -q 'x11'; then + AC_MSG_ERROR([Building GLX without the x11 platform is not supported]) + fi +fi + +if test x"$enable_dri3" = xyes; then + DEFINES="$DEFINES -DHAVE_DRI3" + + dri3_modules="x11-xcb xcb >= $XCB_REQUIRED xcb-dri3 xcb-xfixes xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED" + PKG_CHECK_MODULES([XCB_DRI3], [$dri3_modules]) +fi + AM_CONDITIONAL(HAVE_PLATFORM_X11, echo "$platforms" | grep -q 'x11') AM_CONDITIONAL(HAVE_PLATFORM_WAYLAND, echo "$platforms" | grep -q 'wayland') AM_CONDITIONAL(HAVE_PLATFORM_DRM, echo "$platforms" | grep -q 'drm') @@ -1767,10 +1787,6 @@ if test "x$enable_dri" = xyes; then # Platform specific settings and drivers to build case "$host_os" in linux*) - if test "x$enable_dri3" = xyes; then - DEFINES="$DEFINES -DHAVE_DRI3" - fi - case "$host_cpu" in powerpc* | sparc*) # Build only the drivers for cards that exist on PowerPC/sparc @@ -1827,12 +1843,11 @@ if test -n "$with_dri_drivers"; then xi915) require_libdrm "i915" HAVE_I915_DRI=yes - PKG_CHECK_MODULES([INTEL], [libdrm >= $LIBDRM_INTEL_REQUIRED libdrm_intel >= $LIBDRM_INTEL_REQUIRED]) + PKG_CHECK_MODULES([I915], [libdrm >= $LIBDRM_INTEL_REQUIRED libdrm_intel >= $LIBDRM_INTEL_REQUIRED]) ;; xi965) require_libdrm "i965" HAVE_I965_DRI=yes - PKG_CHECK_MODULES([INTEL], [libdrm >= $LIBDRM_INTEL_REQUIRED libdrm_intel >= $LIBDRM_INTEL_REQUIRED]) ;; xnouveau) require_libdrm "nouveau" @@ -1926,6 +1941,14 @@ AC_ARG_WITH([vulkan-icddir], [VULKAN_ICD_INSTALL_DIR='${datarootdir}/vulkan/icd.d']) AC_SUBST([VULKAN_ICD_INSTALL_DIR]) +require_x11_dri3() { + if echo "$platforms" | grep -q 'x11'; then + if test "x$enable_dri3" != xyes; then + AC_MSG_ERROR([$1 Vulkan driver requires DRI3 when built with X11]) + fi + fi +} + if test -n "$with_vulkan_drivers"; then if test "x$ac_cv_func_dl_iterate_phdr" = xno; then AC_MSG_ERROR([Vulkan drivers require the dl_iterate_phdr function]) @@ -1936,13 +1959,14 @@ if test -n "$with_vulkan_drivers"; then case "x$driver" in xintel) require_libdrm "ANV" - PKG_CHECK_MODULES([INTEL], [libdrm >= $LIBDRM_INTEL_REQUIRED libdrm_intel >= $LIBDRM_INTEL_REQUIRED]) + require_x11_dri3 "ANV" HAVE_INTEL_VULKAN=yes ;; xradeon) require_libdrm "radv" PKG_CHECK_MODULES([AMDGPU], [libdrm >= $LIBDRM_AMDGPU_REQUIRED libdrm_amdgpu >= $LIBDRM_AMDGPU_REQUIRED]) radeon_llvm_check $LLVM_REQUIRED_RADV "radv" + require_x11_dri3 "radv" HAVE_RADEON_VULKAN=yes ;; *) @@ -2048,23 +2072,47 @@ if test "x$enable_xa" = xyes; then fi AM_CONDITIONAL(HAVE_ST_XA, test "x$enable_xa" = xyes) +if echo $platforms | grep -q "x11"; then + have_xvmc_platform=yes +else + have_xvmc_platform=no +fi + +if echo $platforms | grep -q "x11"; then + have_vdpau_platform=yes +else + have_vdpau_platform=no +fi + +if echo $platforms | grep -q "x11\|drm"; then + have_omx_platform=yes +else + have_omx_platform=no +fi + +if echo $platforms | grep -q "x11\|drm\|wayland"; then + have_va_platform=yes +else + have_va_platform=no +fi + dnl dnl Gallium G3DVL configuration dnl if test -n "$with_gallium_drivers" -a "x$with_gallium_drivers" != xswrast; then - if test "x$enable_xvmc" = xauto; then - PKG_CHECK_EXISTS([xvmc >= $XVMC_REQUIRED], [enable_xvmc=yes], [enable_xvmc=no]) + if test "x$enable_xvmc" = xauto -a "x$have_xvmc_platform" = xyes; then + PKG_CHECK_EXISTS([xvmc >= $XVMC_REQUIRED], [enable_xvmc=yes], [enable_xvmc=no]) fi - if test "x$enable_vdpau" = xauto; then + if test "x$enable_vdpau" = xauto -a "x$have_vdpau_platform" = xyes; then PKG_CHECK_EXISTS([vdpau >= $VDPAU_REQUIRED], [enable_vdpau=yes], [enable_vdpau=no]) fi - if test "x$enable_omx" = xauto; then - PKG_CHECK_EXISTS([libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED], [enable_omx=yes], [enable_omx=no]) + if test "x$enable_omx" = xauto -a "x$have_omx_platform" = xyes; then + PKG_CHECK_EXISTS([libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED], [enable_omx=yes], [enable_omx=no]) fi - if test "x$enable_va" = xauto; then + if test "x$enable_va" = xauto -a "x$have_va_platform" = xyes; then PKG_CHECK_EXISTS([libva >= $LIBVA_REQUIRED], [enable_va=yes], [enable_va=no]) fi fi @@ -2082,23 +2130,24 @@ if test "x$enable_xvmc" = xyes -o \ "x$enable_vdpau" = xyes -o \ "x$enable_omx" = xyes -o \ "x$enable_va" = xyes; then - if test x"$enable_dri3" = xyes; then - PKG_CHECK_MODULES([VL], [xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED - xcb-xfixes x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED]) - else - PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED]) - fi + PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED]) need_gallium_vl_winsys=yes fi AM_CONDITIONAL(NEED_GALLIUM_VL_WINSYS, test "x$need_gallium_vl_winsys" = xyes) if test "x$enable_xvmc" = xyes; then + if test "x$have_xvmc_platform" != xyes; then + AC_MSG_ERROR([XVMC requires the x11 platforms]) + fi PKG_CHECK_MODULES([XVMC], [xvmc >= $XVMC_REQUIRED]) gallium_st="$gallium_st xvmc" fi AM_CONDITIONAL(HAVE_ST_XVMC, test "x$enable_xvmc" = xyes) if test "x$enable_vdpau" = xyes; then + if test "x$have_vdpau_platform" != xyes; then + AC_MSG_ERROR([VDPAU requires the x11 platforms]) + fi PKG_CHECK_MODULES([VDPAU], [vdpau >= $VDPAU_REQUIRED]) gallium_st="$gallium_st vdpau" DEFINES="$DEFINES -DHAVE_ST_VDPAU" @@ -2106,12 +2155,18 @@ fi AM_CONDITIONAL(HAVE_ST_VDPAU, test "x$enable_vdpau" = xyes) if test "x$enable_omx" = xyes; then + if test "x$have_omx_platform" != xyes; then + AC_MSG_ERROR([OMX requires at least one of the x11 or drm platforms]) + fi PKG_CHECK_MODULES([OMX], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED]) gallium_st="$gallium_st omx" fi AM_CONDITIONAL(HAVE_ST_OMX, test "x$enable_omx" = xyes) if test "x$enable_va" = xyes; then + if test "x$have_va_platform" != xyes; then + AC_MSG_ERROR([VA requires at least one of the x11 drm or wayland platforms]) + fi PKG_CHECK_MODULES([VA], [libva >= $LIBVA_REQUIRED]) gallium_st="$gallium_st va" fi @@ -2374,7 +2429,7 @@ if test -n "$with_gallium_drivers"; then ;; xi915) HAVE_GALLIUM_I915=yes - PKG_CHECK_MODULES([INTEL], [libdrm >= $LIBDRM_INTEL_REQUIRED libdrm_intel >= $LIBDRM_INTEL_REQUIRED]) + PKG_CHECK_MODULES([I915], [libdrm >= $LIBDRM_INTEL_REQUIRED libdrm_intel >= $LIBDRM_INTEL_REQUIRED]) require_libdrm "Gallium i915" ;; xr300) @@ -2431,10 +2486,10 @@ if test -n "$with_gallium_drivers"; then xswr) llvm_require_version $LLVM_REQUIRED_SWR "swr" - swr_require_cxx_feature_flags "C++14" "__cplusplus >= 201402L" \ - "-std=c++14" \ - SWR_CXX14_CXXFLAGS - AC_SUBST([SWR_CXX14_CXXFLAGS]) + swr_require_cxx_feature_flags "C++11" "__cplusplus >= 201103L" \ + ",-std=c++11" \ + SWR_CXX11_CXXFLAGS + AC_SUBST([SWR_CXX11_CXXFLAGS]) swr_require_cxx_feature_flags "AVX" "defined(__AVX__)" \ ",-mavx,-march=core-avx" \ @@ -2450,7 +2505,6 @@ if test -n "$with_gallium_drivers"; then ;; xvc4) HAVE_GALLIUM_VC4=yes - PKG_CHECK_MODULES([VC4], [libdrm >= $LIBDRM_VC4_REQUIRED libdrm_vc4 >= $LIBDRM_VC4_REQUIRED]) require_libdrm "vc4" PKG_CHECK_MODULES([SIMPENROSE], [simpenrose], @@ -2458,6 +2512,9 @@ if test -n "$with_gallium_drivers"; then DEFINES="$DEFINES -DUSE_VC4_SIMULATOR"], [USE_VC4_SIMULATOR=no]) ;; + xpl111) + HAVE_GALLIUM_PL111=yes + ;; xvirgl) HAVE_GALLIUM_VIRGL=yes require_libdrm "virgl" @@ -2472,6 +2529,10 @@ if test -n "$with_gallium_drivers"; then done fi +# XXX: Keep in sync with LLVM_REQUIRED_SWR +AM_CONDITIONAL(SWR_INVALID_LLVM_VERSION, test "x$LLVM_VERSION" != x3.9.0 -a \ + "x$LLVM_VERSION" != x3.9.1) + if test "x$enable_llvm" = "xyes" -a "$with_gallium_drivers"; then llvm_require_version $LLVM_REQUIRED_GALLIUM "gallium" llvm_add_default_components "gallium" @@ -2483,6 +2544,10 @@ if test "x$HAVE_GALLIUM_ETNAVIV" != xyes -a "x$HAVE_GALLIUM_IMX" = xyes ; then AC_MSG_ERROR([Building with imx requires etnaviv]) fi +if test "x$HAVE_GALLIUM_VC4" != xyes -a "x$HAVE_GALLIUM_PL111" = xyes ; then + AC_MSG_ERROR([Building with pl111 requires vc4]) +fi + dnl dnl Set defines and buildtime variables only when using LLVM. dnl @@ -2547,6 +2612,7 @@ fi AM_CONDITIONAL(HAVE_GALLIUM_SVGA, test "x$HAVE_GALLIUM_SVGA" = xyes) AM_CONDITIONAL(HAVE_GALLIUM_I915, test "x$HAVE_GALLIUM_I915" = xyes) +AM_CONDITIONAL(HAVE_GALLIUM_PL111, test "x$HAVE_GALLIUM_PL111" = xyes) AM_CONDITIONAL(HAVE_GALLIUM_R300, test "x$HAVE_GALLIUM_R300" = xyes) AM_CONDITIONAL(HAVE_GALLIUM_R600, test "x$HAVE_GALLIUM_R600" = xyes) AM_CONDITIONAL(HAVE_GALLIUM_RADEONSI, test "x$HAVE_GALLIUM_RADEONSI" = xyes) @@ -2586,8 +2652,7 @@ AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes) AM_CONDITIONAL(HAVE_RADEON_VULKAN, test "x$HAVE_RADEON_VULKAN" = xyes) AM_CONDITIONAL(HAVE_INTEL_VULKAN, test "x$HAVE_INTEL_VULKAN" = xyes) -AM_CONDITIONAL(HAVE_AMD_DRIVERS, test "x$HAVE_GALLIUM_R600" = xyes -o \ - "x$HAVE_GALLIUM_RADEONSI" = xyes -o \ +AM_CONDITIONAL(HAVE_AMD_DRIVERS, test "x$HAVE_GALLIUM_RADEONSI" = xyes -o \ "x$HAVE_RADEON_VULKAN" = xyes) AM_CONDITIONAL(HAVE_INTEL_DRIVERS, test "x$HAVE_INTEL_VULKAN" = xyes -o \ @@ -2610,6 +2675,7 @@ AM_CONDITIONAL(HAVE_COMMON_OSMESA, test "x$enable_osmesa" = xyes -o \ AM_CONDITIONAL(HAVE_X86_ASM, test "x$asm_arch" = xx86 -o "x$asm_arch" = xx86_64) AM_CONDITIONAL(HAVE_X86_64_ASM, test "x$asm_arch" = xx86_64) AM_CONDITIONAL(HAVE_SPARC_ASM, test "x$asm_arch" = xsparc) +AM_CONDITIONAL(HAVE_PPC64LE_ASM, test "x$asm_arch" = xppc64le) AC_SUBST([NINE_MAJOR], 1) AC_SUBST([NINE_MINOR], 0) @@ -2681,6 +2747,7 @@ AC_CONFIG_FILES([Makefile src/Makefile src/amd/Makefile src/amd/vulkan/Makefile + src/broadcom/Makefile src/compiler/Makefile src/egl/Makefile src/egl/main/egl.pc @@ -2696,6 +2763,7 @@ AC_CONFIG_FILES([Makefile src/gallium/drivers/llvmpipe/Makefile src/gallium/drivers/noop/Makefile src/gallium/drivers/nouveau/Makefile + src/gallium/drivers/pl111/Makefile src/gallium/drivers/r300/Makefile src/gallium/drivers/r600/Makefile src/gallium/drivers/radeon/Makefile @@ -2741,6 +2809,7 @@ AC_CONFIG_FILES([Makefile src/gallium/winsys/freedreno/drm/Makefile src/gallium/winsys/i915/drm/Makefile src/gallium/winsys/nouveau/drm/Makefile + src/gallium/winsys/pl111/drm/Makefile src/gallium/winsys/radeon/drm/Makefile src/gallium/winsys/amdgpu/drm/Makefile src/gallium/winsys/svga/drm/Makefile