X-Git-Url: https://git.libre-soc.org/?p=mesa.git;a=blobdiff_plain;f=configure.ac;h=ffb8424a07b989473a883ad646e9513c8add0dc7;hp=70e5b088626be59e34c9ab1b113a79a6a9c1d7bb;hb=c6449e33e3b3ec9ea0509aa7c91d1127c81ef1e5;hpb=06bfb2d28f7adca7edc6be9c210a7a3583023652 diff --git a/configure.ac b/configure.ac index 70e5b088626..ffb8424a07b 100644 --- a/configure.ac +++ b/configure.ac @@ -74,24 +74,29 @@ AC_SUBST([OPENCL_VERSION]) # in the first entry. LIBDRM_REQUIRED=2.4.75 LIBDRM_RADEON_REQUIRED=2.4.71 -LIBDRM_AMDGPU_REQUIRED=2.4.82 +LIBDRM_AMDGPU_REQUIRED=2.4.91 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_ETNAVIV_REQUIRED=2.4.82 +LIBDRM_FREEDRENO_REQUIRED=2.4.92 +LIBDRM_ETNAVIV_REQUIRED=2.4.89 +LIBDRM_VC4_REQUIRED=2.4.89 dnl Versions for external dependencies DRI2PROTO_REQUIRED=2.8 GLPROTO_REQUIRED=1.4.14 LIBOMXIL_BELLAGIO_REQUIRED=0.0 -LIBVA_REQUIRED=0.38.0 +LIBOMXIL_TIZONIA_REQUIRED=0.10.0 +LIBVA_REQUIRED=0.39.0 VDPAU_REQUIRED=1.1 WAYLAND_REQUIRED=1.11 +WAYLAND_EGL_BACKEND_REQUIRED=3 WAYLAND_PROTOCOLS_REQUIRED=1.8 XCB_REQUIRED=1.9.3 XCBDRI2_REQUIRED=1.8 +XCBDRI3_MODIFIERS_REQUIRED=1.13 XCBGLX_REQUIRED=1.8.1 +XCBPRESENT_MODIFIERS_REQUIRED=1.13 XDAMAGE_REQUIRED=1.1 XSHMFENCE_REQUIRED=1.1 XVMC_REQUIRED=1.0.6 @@ -101,17 +106,23 @@ ZLIB_REQUIRED=1.2.3 dnl LLVM versions LLVM_REQUIRED_GALLIUM=3.3.0 -LLVM_REQUIRED_OPENCL=3.6.0 +LLVM_REQUIRED_OPENCL=3.9.0 LLVM_REQUIRED_R600=3.9.0 -LLVM_REQUIRED_RADEONSI=3.9.0 -LLVM_REQUIRED_RADV=3.9.0 -LLVM_REQUIRED_SWR=3.9.0 +LLVM_REQUIRED_RADEONSI=5.0.0 +LLVM_REQUIRED_RADV=5.0.0 +LLVM_REQUIRED_SWR=5.0.0 dnl Check for progs AC_PROG_CPP AC_PROG_CC AC_PROG_CXX +dnl add this here, so the help for this environmnet variable is close to +dnl other CC/CXX flags related help +AC_ARG_VAR([CXX11_CXXFLAGS], [Compiler flag to enable C++11 support (only needed if not + enabled by default and different from -std=c++11)]) AM_PROG_CC_C_O +AC_PROG_GREP +AC_PROG_NM AM_PROG_AS AX_CHECK_GNU_MAKE AC_CHECK_PROGS([PYTHON2], [python2.7 python2 python]) @@ -120,6 +131,7 @@ AC_PROG_MKDIR_P AC_SYS_LARGEFILE + LT_PREREQ([2.2]) LT_INIT([disable-static]) @@ -245,6 +257,7 @@ AX_GCC_FUNC_ATTRIBUTE([visibility]) AX_GCC_FUNC_ATTRIBUTE([warn_unused_result]) AX_GCC_FUNC_ATTRIBUTE([weak]) AX_GCC_FUNC_ATTRIBUTE([alias]) +AX_GCC_FUNC_ATTRIBUTE([noreturn]) AM_CONDITIONAL([GEN_ASM_OFFSETS], test "x$GEN_ASM_OFFSETS" = xyes) @@ -289,7 +302,10 @@ AX_CHECK_COMPILE_FLAG([-Wall], [CFLAGS="$CFLAGS AX_CHECK_COMPILE_FLAG([-Werror=implicit-function-declaration], [CFLAGS="$CFLAGS -Werror=implicit-function-declaration"]) AX_CHECK_COMPILE_FLAG([-Werror=missing-prototypes], [CFLAGS="$CFLAGS -Werror=missing-prototypes"]) AX_CHECK_COMPILE_FLAG([-Wmissing-prototypes], [CFLAGS="$CFLAGS -Wmissing-prototypes"]) +dnl Dylan Baker: gcc and clang always accepr -Wno-*, hence check for the original warning, then set the no-* flag +AX_CHECK_COMPILE_FLAG([-Wmissing-field-initializers], [CFLAGS="$CFLAGS -Wno-missing-field-initializers"]) AX_CHECK_COMPILE_FLAG([-fno-math-errno], [CFLAGS="$CFLAGS -fno-math-errno"]) + AX_CHECK_COMPILE_FLAG([-fno-trapping-math], [CFLAGS="$CFLAGS -fno-trapping-math"]) AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], [VISIBILITY_CFLAGS="-fvisibility=hidden"]) @@ -301,6 +317,7 @@ AX_CHECK_COMPILE_FLAG([-Wall], [CXXFLAGS="$CXXFL AX_CHECK_COMPILE_FLAG([-fno-math-errno], [CXXFLAGS="$CXXFLAGS -fno-math-errno"]) AX_CHECK_COMPILE_FLAG([-fno-trapping-math], [CXXFLAGS="$CXXFLAGS -fno-trapping-math"]) AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], [VISIBILITY_CXXFLAGS="-fvisibility=hidden"]) +AX_CHECK_COMPILE_FLAG([-Wmissing-field-initializers], [CXXFLAGS="$CXXFLAGS -Wno-missing-field-initializers"]) AC_LANG_POP([C++]) # Flags to help ensure that certain portions of the code -- and only those @@ -309,11 +326,11 @@ AC_LANG_POP([C++]) # - non-Linux/Posix OpenGL portions needs to build on MSVC 2013 (which # supports most of C99) # - the rest has no compiler compiler restrictions -AX_CHECK_COMPILE_FLAG([-Werror=pointer-arith], [MSVC2013_COMPAT_CFLAGS="-Werror=pointer-arith"]) -AX_CHECK_COMPILE_FLAG([-Werror=vla], [MSVC2013_COMPAT_CFLAGS="-Werror=vla"]) +AX_CHECK_COMPILE_FLAG([-Werror=pointer-arith], [MSVC2013_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=pointer-arith"]) +AX_CHECK_COMPILE_FLAG([-Werror=vla], [MSVC2013_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=vla"]) AC_LANG_PUSH([C++]) -AX_CHECK_COMPILE_FLAG([-Werror=pointer-arith], [MSVC2013_COMPAT_CXXFLAGS="-Werror=pointer-arith"]) -AX_CHECK_COMPILE_FLAG([-Werror=vla], [MSVC2013_COMPAT_CXXFLAGS="-Werror=vla"]) +AX_CHECK_COMPILE_FLAG([-Werror=pointer-arith], [MSVC2013_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS -Werror=pointer-arith"]) +AX_CHECK_COMPILE_FLAG([-Werror=vla], [MSVC2013_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS -Werror=vla"]) AC_LANG_POP([C++]) AC_SUBST([MSVC2013_COMPAT_CFLAGS]) @@ -327,6 +344,56 @@ if test "x$GCC" = xyes; then fi fi +dnl +dnl Check whether C++11 is supported, if the environment variable +dnl CXX11_CXXFLAGS is set it takes precedence. +dnl + +AC_LANG_PUSH([C++]) + +check_cxx11_available() { + output_support=$1 + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([ + #if !(__cplusplus >= 201103L) + #error + #endif + #include + ]) + ], [ + AC_MSG_RESULT(yes) + cxx11_support=yes + ], AC_MSG_RESULT(no)) + eval "$output_support=\$cxx11_support" +} + +HAVE_CXX11=no +save_CXXFLAGS="$CXXFLAGS" + +dnl If the user provides a flag to enable c++11, then we test only this +if test "x$CXX11_CXXFLAGS" != "x"; then + CXXFLAGS="$CXXFLAGS $CXX11_CXXFLAGS" + AC_MSG_CHECKING(whether c++11 is enabled by via $CXX11_CXXFLAGS) + check_cxx11_available HAVE_CXX11 +else + dnl test whether c++11 is enabled by default + AC_MSG_CHECKING(whether c++11 is enabled by default) + check_cxx11_available HAVE_CXX11 + + dnl C++11 not enabled by default, test whether -std=c++11 does the job + if test "x$HAVE_CXX11" != "xyes"; then + CXX11_CXXFLAGS=-std=c++11 + CXXFLAGS="$CXXFLAGS $CXX11_CXXFLAGS" + AC_MSG_CHECKING(whether c++11 is enabled by via $CXX11_CXXFLAGS) + check_cxx11_available HAVE_CXX11 + fi +fi + +CXXFLAGS="$save_CXXFLAGS" +AM_CONDITIONAL(HAVE_STD_CXX11, test "x$HAVE_CXX11" = "xyes") +AC_SUBST(CXX11_CXXFLAGS) +AC_LANG_POP([C++]) + dnl even if the compiler appears to support it, using visibility attributes isn't dnl going to do anything useful currently on cygwin apart from emit lots of warnings case "$host_os" in @@ -339,8 +406,10 @@ esac AC_SUBST([VISIBILITY_CFLAGS]) AC_SUBST([VISIBILITY_CXXFLAGS]) -AX_CHECK_COMPILE_FLAG([-Wno-override-init], [WNO_OVERRIDE_INIT="-Wno-override-init"]) # gcc -AX_CHECK_COMPILE_FLAG([-Wno-initializer-overrides], [WNO_OVERRIDE_INIT="-Wno-initializer-overrides"]) # clang +dnl For some reason, the test for -Wno-foo always succeeds with gcc, even if the +dnl option is not supported. Hence, check for -Wfoo instead. +AX_CHECK_COMPILE_FLAG([-Woverride-init], [WNO_OVERRIDE_INIT="$WNO_OVERRIDE_INIT -Wno-override-init"]) # gcc +AX_CHECK_COMPILE_FLAG([-Winitializer-overrides], [WNO_OVERRIDE_INIT="$WNO_OVERRIDE_INIT -Wno-initializer-overrides"]) # clang AC_SUBST([WNO_OVERRIDE_INIT]) dnl @@ -371,28 +440,41 @@ fi AM_CONDITIONAL([SSE41_SUPPORTED], [test x$SSE41_SUPPORTED = x1]) AC_SUBST([SSE41_CFLAGS], $SSE41_CFLAGS) -dnl Check for new-style atomic builtins -AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ +dnl Check for new-style atomic builtins. We first check without linking to +dnl -latomic. +AC_MSG_CHECKING(whether __atomic_load_n is supported) +AC_LINK_IFELSE([AC_LANG_SOURCE([[ +#include int main() { - int n; - return __atomic_load_n(&n, __ATOMIC_ACQUIRE); -}]])], GCC_ATOMIC_BUILTINS_SUPPORTED=1) -if test "x$GCC_ATOMIC_BUILTINS_SUPPORTED" = x1; then + struct { + uint64_t *v; + } x; + return (int)__atomic_load_n(x.v, __ATOMIC_ACQUIRE) & + (int)__atomic_add_fetch(x.v, (uint64_t)1, __ATOMIC_ACQ_REL); +}]])], GCC_ATOMIC_BUILTINS_SUPPORTED=yes, GCC_ATOMIC_BUILTINS_SUPPORTED=no) + +dnl If that didn't work, we try linking with -latomic, which is needed on some +dnl platforms. +if test "x$GCC_ATOMIC_BUILTINS_SUPPORTED" != xyes; then + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -latomic" + AC_LINK_IFELSE([AC_LANG_SOURCE([[ + #include + int main() { + struct { + uint64_t *v; + } x; + return (int)__atomic_load_n(x.v, __ATOMIC_ACQUIRE) & + (int)__atomic_add_fetch(x.v, (uint64_t)1, __ATOMIC_ACQ_REL); + }]])], GCC_ATOMIC_BUILTINS_SUPPORTED=yes LIBATOMIC_LIBS="-latomic", + GCC_ATOMIC_BUILTINS_SUPPORTED=no) + LDFLAGS=$save_LDFLAGS +fi +AC_MSG_RESULT($GCC_ATOMIC_BUILTINS_SUPPORTED) + +if test "x$GCC_ATOMIC_BUILTINS_SUPPORTED" = xyes; then DEFINES="$DEFINES -DUSE_GCC_ATOMIC_BUILTINS" - dnl On some platforms, new-style atomics need a helper library - AC_MSG_CHECKING(whether -latomic is needed) - AC_LINK_IFELSE([AC_LANG_SOURCE([[ - #include - uint64_t v; - int main() { - return (int)__atomic_load_n(&v, __ATOMIC_ACQUIRE); - }]])], GCC_ATOMIC_BUILTINS_NEED_LIBATOMIC=no, GCC_ATOMIC_BUILTINS_NEED_LIBATOMIC=yes) - AC_MSG_RESULT($GCC_ATOMIC_BUILTINS_NEED_LIBATOMIC) - if test "x$GCC_ATOMIC_BUILTINS_NEED_LIBATOMIC" = xyes; then - LIBATOMIC_LIBS="-latomic" - fi fi -AM_CONDITIONAL([GCC_ATOMIC_BUILTINS_SUPPORTED], [test x$GCC_ATOMIC_BUILTINS_SUPPORTED = x1]) AC_SUBST([LIBATOMIC_LIBS]) dnl Check if host supports 64-bit atomics @@ -606,16 +688,7 @@ dnl Check if linker supports version scripts dnl AC_MSG_CHECKING([if the linker supports version-scripts]) save_LDFLAGS=$LDFLAGS -LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" -cat > conftest.map < conftest.dyn <@])], - [enable_texture_float="$enableval"], - [enable_texture_float=no] -) -if test "x$enable_texture_float" = xyes; then - AC_MSG_WARN([Floating-point textures enabled.]) - AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.]) - DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED" -fi - dnl dnl Arch/platform-specific settings dnl @@ -805,8 +871,12 @@ fi AC_HEADER_MAJOR AC_CHECK_HEADER([xlocale.h], [DEFINES="$DEFINES -DHAVE_XLOCALE_H"]) AC_CHECK_HEADER([sys/sysctl.h], [DEFINES="$DEFINES -DHAVE_SYS_SYSCTL_H"]) +AC_CHECK_HEADERS([endian.h]) +AC_CHECK_HEADER([dlfcn.h], [DEFINES="$DEFINES -DHAVE_DLFCN_H"]) AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"]) AC_CHECK_FUNC([mkostemp], [DEFINES="$DEFINES -DHAVE_MKOSTEMP"]) +AC_CHECK_FUNC([timespec_get], [DEFINES="$DEFINES -DHAVE_TIMESPEC_GET"]) +AC_CHECK_FUNC([memfd_create], [DEFINES="$DEFINES -DHAVE_MEMFD_CREATE"]) AC_MSG_CHECKING([whether strtod has locale support]) AC_LINK_IFELSE([AC_LANG_SOURCE([[ @@ -831,9 +901,9 @@ AC_LINK_IFELSE([AC_LANG_SOURCE([[ dnl Check to see if dlopen is in default libraries (like Solaris, which dnl has it in libc), or if libdl is needed to get it. -AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"], +AC_CHECK_FUNC([dlopen], [], [AC_CHECK_LIB([dl], [dlopen], - [DEFINES="$DEFINES -DHAVE_DLOPEN"; DLOPEN_LIBS="-ldl"])]) + [DLOPEN_LIBS="-ldl"])]) AC_SUBST([DLOPEN_LIBS]) dnl Check if that library also has dladdr @@ -860,6 +930,7 @@ AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"]) dnl Check for zlib PKG_CHECK_MODULES([ZLIB], [zlib >= $ZLIB_REQUIRED]) +DEFINES="$DEFINES -DHAVE_ZLIB" dnl Check for pthreads AX_PTHREAD @@ -879,10 +950,10 @@ 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 pthread-stubs is mandatory on some BSD platforms, due to the nature of the dnl project. Even then there's a notable issue as described in the project README case "$host_os" in -linux* | cygwin* | darwin* | solaris* | *-gnu* | gnu*) +linux* | cygwin* | darwin* | solaris* | *-gnu* | gnu* | openbsd*) pthread_stubs_possible="no" ;; * ) @@ -894,6 +965,9 @@ if test "x$pthread_stubs_possible" = xyes; then PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs >= 0.4) fi +dnl Check for futex for fast inline simple_mtx_t. +AC_CHECK_HEADER([linux/futex.h], [DEFINES="$DEFINES -DHAVE_LINUX_FUTEX_H"]) + dnl SELinux awareness. AC_ARG_ENABLE([selinux], [AS_HELP_STRING([--enable-selinux], @@ -955,6 +1029,15 @@ llvm_add_component() { fi } +llvm_add_optional_component() { + new_llvm_component=$1 + driver_name=$2 + + if $LLVM_CONFIG --components | grep -iqw $new_llvm_component ; then + LLVM_COMPONENTS="${LLVM_COMPONENTS} ${new_llvm_component}" + fi +} + llvm_add_default_components() { driver_name=$1 @@ -965,9 +1048,7 @@ llvm_add_default_components() { llvm_add_component "mcjit" $driver_name # Optional default components - if $LLVM_CONFIG --components | grep -iqw inteljitevents ; then - LLVM_COMPONENTS="$LLVM_COMPONENTS inteljitevents" - fi + llvm_add_optional_component "inteljitevents" $driver_name } llvm_add_target() { @@ -1213,10 +1294,10 @@ AC_ARG_ENABLE([xa], [enable_xa=no]) AC_ARG_ENABLE([gbm], [AS_HELP_STRING([--enable-gbm], - [enable gbm library @<:@default=yes except cygwin@:>@])], + [enable gbm library @<:@default=yes except cygwin and macOS@:>@])], [enable_gbm="$enableval"], [case "$host_os" in - cygwin*) + cygwin* | darwin*) enable_gbm=no ;; *) @@ -1241,14 +1322,19 @@ AC_ARG_ENABLE([vdpau], [enable_vdpau=auto]) AC_ARG_ENABLE([omx], [AS_HELP_STRING([--enable-omx], - [DEPRECATED: Use --enable-omx-bellagio instead @<:@default=auto@:>@])], - [AC_MSG_ERROR([--enable-omx is deprecated. Use --enable-omx-bellagio instead.])], + [DEPRECATED: Use --enable-omx-bellagio or --enable-omx-tizonia instead @<:@default=auto@:>@])], + [AC_MSG_ERROR([--enable-omx is deprecated. Use --enable-omx-bellagio or --enable-omx-tizonia instead.])], []) AC_ARG_ENABLE([omx-bellagio], [AS_HELP_STRING([--enable-omx-bellagio], [enable OpenMAX Bellagio library @<:@default=disabled@:>@])], [enable_omx_bellagio="$enableval"], [enable_omx_bellagio=no]) +AC_ARG_ENABLE([omx-tizonia], + [AS_HELP_STRING([--enable-omx-tizonia], + [enable OpenMAX Tizonia library @<:@default=disabled@:>@])], + [enable_omx_tizonia="$enableval"], + [enable_omx_tizonia=no]) AC_ARG_ENABLE([va], [AS_HELP_STRING([--enable-va], [enable va library @<:@default=auto@:>@])], @@ -1262,9 +1348,9 @@ AC_ARG_ENABLE([opencl], AC_ARG_ENABLE([opencl_icd], [AS_HELP_STRING([--enable-opencl-icd], [Build an OpenCL ICD library to be loaded by an ICD implementation - @<:@default=disabled@:>@])], + @<:@default=enabled@:>@])], [enable_opencl_icd="$enableval"], - [enable_opencl_icd=no]) + [enable_opencl_icd=yes]) AC_ARG_ENABLE([gallium-tests], [AS_HELP_STRING([--enable-gallium-tests], @@ -1280,7 +1366,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,pl111,svga,swrast,swr,vc4,virgl,etnaviv,imx" + "i915,nouveau,r300,r600,radeonsi,freedreno,pl111,svga,swrast,swr,tegra,v3d,vc4,virgl,etnaviv,imx" @<:@default=r300,r600,svga,swrast@:>@])], [with_gallium_drivers="$withval"], [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"]) @@ -1300,11 +1386,17 @@ if test "x$enable_opengl" = xno -a \ "x$enable_xvmc" = xno -a \ "x$enable_vdpau" = xno -a \ "x$enable_omx_bellagio" = xno -a \ + "x$enable_omx_tizonia" = xno -a \ "x$enable_va" = xno -a \ "x$enable_opencl" = xno; then AC_MSG_ERROR([at least one API should be enabled]) fi +if test "x$enable_omx_bellagio" = xyes -a \ + "x$enable_omx_tizonia" = xyes; then + AC_MSG_ERROR([Can't enable both bellagio and tizonia at same time]) +fi + # Building OpenGL ES1 and/or ES2 without OpenGL is not supported on mesa 9.0.x if test "x$enable_opengl" = xno -a \ "x$enable_gles1" = xyes; then @@ -1390,18 +1482,10 @@ AC_ARG_ENABLE([libglvnd], AM_CONDITIONAL(USE_LIBGLVND, test "x$enable_libglvnd" = xyes) if test "x$enable_libglvnd" = xyes ; then - dnl XXX: update once we can handle more than libGL/glx. - dnl Namely: we should error out if neither of the glvnd enabled libraries - dnl are built case "x$enable_glx" in - xno) - AC_MSG_ERROR([cannot build libglvnd without GLX]) - ;; xxlib | xgallium-xlib ) AC_MSG_ERROR([cannot build libgvnd when Xlib-GLX or Gallium-Xlib-GLX is enabled]) ;; - xdri) - ;; esac PKG_CHECK_MODULES([GLVND], libglvnd >= 0.2.0) @@ -1410,6 +1494,10 @@ if test "x$enable_libglvnd" = xyes ; then DEFINES="${DEFINES} -DUSE_LIBGLVND=1" DEFAULT_GL_LIB_NAME=GLX_mesa + + if test "x$enable_glx" = xno -a "x$enable_egl" = xno; then + AC_MSG_ERROR([cannot build libglvnd without GLX or EGL]) + fi fi AC_ARG_WITH([gl-lib-name], @@ -1481,6 +1569,7 @@ AM_CONDITIONAL(HAVE_APPLEDRI, test "x$enable_dri" = xyes -a "x$dri_platform" = x AM_CONDITIONAL(HAVE_LMSENSORS, test "x$enable_lmsensors" = xyes ) AM_CONDITIONAL(HAVE_GALLIUM_EXTRA_HUD, test "x$enable_gallium_extra_hud" = xyes ) AM_CONDITIONAL(HAVE_WINDOWSDRI, test "x$enable_dri" = xyes -a "x$dri_platform" = xwindows ) +AM_CONDITIONAL(HAVE_XLEASE, test "x$have_xlease" = xyes ) AC_ARG_ENABLE([shared-glapi], [AS_HELP_STRING([--enable-shared-glapi], @@ -1545,7 +1634,7 @@ fi AC_ARG_ENABLE([driglx-direct], [AS_HELP_STRING([--disable-driglx-direct], [disable direct rendering in GLX and EGL for DRI \ - @<:@default=auto@:>@])], + @<:@default=enabled@:>@])], [driglx_direct="$enableval"], [driglx_direct="yes"]) @@ -1704,19 +1793,6 @@ if test "x$with_platforms" = xauto; then with_platforms=$with_egl_platforms fi -PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner], - WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`, - WAYLAND_SCANNER='') -if test "x$WAYLAND_SCANNER" = x; then - AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner], [:]) -fi - -PKG_CHECK_EXISTS([wayland-protocols >= $WAYLAND_PROTOCOLS_REQUIRED], [have_wayland_protocols=yes], [have_wayland_protocols=no]) -if test "x$have_wayland_protocols" = xyes; then - ac_wayland_protocols_pkgdatadir=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols` -fi -AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, $ac_wayland_protocols_pkgdatadir) - # Do per platform setups and checks platforms=`IFS=', '; echo $with_platforms` for plat in $platforms; do @@ -1725,13 +1801,22 @@ for plat in $platforms; do PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= $WAYLAND_REQUIRED]) PKG_CHECK_MODULES([WAYLAND_SERVER], [wayland-server >= $WAYLAND_REQUIRED]) + PKG_CHECK_MODULES([WAYLAND_PROTOCOLS], [wayland-protocols >= $WAYLAND_PROTOCOLS_REQUIRED]) + if test "x$enable_egl" = xyes; then + PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl-backend >= $WAYLAND_EGL_BACKEND_REQUIRED]) + fi + WAYLAND_PROTOCOLS_DATADIR=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols` + + PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner], + WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`, + WAYLAND_SCANNER='') + if test "x$WAYLAND_SCANNER" = x; then + AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner], [:]) + fi if test "x$WAYLAND_SCANNER" = "x:"; then AC_MSG_ERROR([wayland-scanner is needed to compile the wayland platform]) fi - if test "x$have_wayland_protocols" = xno; then - AC_MSG_ERROR([wayland-protocols >= $WAYLAND_PROTOCOLS_REQUIRED is needed to compile the wayland platform]) - fi DEFINES="$DEFINES -DHAVE_WAYLAND_PLATFORM -DWL_HIDE_DEPRECATED" ;; @@ -1752,6 +1837,9 @@ for plat in $platforms; do android) PKG_CHECK_MODULES([ANDROID], [cutils hardware sync]) + if test -n "$with_gallium_drivers"; then + PKG_CHECK_MODULES([BACKTRACE], [backtrace]) + fi DEFINES="$DEFINES -DHAVE_ANDROID_PLATFORM" ;; @@ -1766,6 +1854,7 @@ for plat in $platforms; do ;; esac done +AC_SUBST([WAYLAND_PROTOCOLS_DATADIR]) if test "x$enable_glx" != xno; then if ! echo "$platforms" | grep -q 'x11'; then @@ -1778,6 +1867,26 @@ if test x"$enable_dri3" = xyes; then 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]) + dri3_modifier_modules="xcb-dri3 >= $XCBDRI3_MODIFIERS_REQUIRED xcb-present >= $XCBPRESENT_MODIFIERS_REQUIRED" + PKG_CHECK_MODULES([XCB_DRI3_MODIFIERS], [$dri3_modifier_modules], [have_dri3_modifiers=yes], [have_dri3_modifiers=no]) + + if test "x$have_dri3_modifiers" == xyes; then + DEFINES="$DEFINES -DHAVE_DRI3_MODIFIERS" + fi +fi + + +if echo "$platforms" | grep -q 'x11' && echo "$platforms" | grep -q 'drm'; then + have_xlease=yes +else + have_xlease=no +fi + +if test x"$have_xlease" = xyes; then + randr_modules="x11-xcb xcb-randr" + PKG_CHECK_MODULES([XCB_RANDR], [$randr_modules]) + xlib_randr_modules="xrandr" + PKG_CHECK_MODULES([XLIB_RANDR], [$xlib_randr_modules]) fi AM_CONDITIONAL(HAVE_PLATFORM_X11, echo "$platforms" | grep -q 'x11') @@ -1786,6 +1895,25 @@ AM_CONDITIONAL(HAVE_PLATFORM_DRM, echo "$platforms" | grep -q 'drm') AM_CONDITIONAL(HAVE_PLATFORM_SURFACELESS, echo "$platforms" | grep -q 'surfaceless') AM_CONDITIONAL(HAVE_PLATFORM_ANDROID, echo "$platforms" | grep -q 'android') +AC_ARG_ENABLE(xlib-lease, + [AS_HELP_STRING([--enable-xlib-lease] + [enable VK_acquire_xlib_display using X leases])], + [enable_xlib_lease=$enableval], [enable_xlib_lease=auto]) +case "x$enable_xlib_lease" in +xyes) + ;; +xno) + ;; +*) + if echo "$platforms" | grep -q 'x11' && echo "$platforms" | grep -q 'drm'; then + enable_xlib_lease=yes + else + enable_xlib_lease=no + fi +esac + +AM_CONDITIONAL(HAVE_XLIB_LEASE, test "x$enable_xlib_lease" = xyes) + dnl dnl More DRI setup dnl @@ -2004,6 +2132,9 @@ if test -n "$with_vulkan_drivers"; then PKG_CHECK_MODULES([AMDGPU], [libdrm >= $LIBDRM_AMDGPU_REQUIRED libdrm_amdgpu >= $LIBDRM_AMDGPU_REQUIRED]) radeon_llvm_check $LLVM_REQUIRED_RADV "radv" require_x11_dri3 "radv" + if test "x$acv_mako_found" = xno; then + AC_MSG_ERROR([Python mako module v$PYTHON_MAKO_REQUIRED or higher not found]) + fi HAVE_RADEON_VULKAN=yes ;; *) @@ -2121,13 +2252,13 @@ else have_vdpau_platform=no fi -if echo $platforms | grep -q "x11\|drm"; then +if echo $platforms | egrep -q "x11|drm"; then have_omx_platform=yes else have_omx_platform=no fi -if echo $platforms | grep -q "x11\|drm\|wayland"; then +if echo $platforms | egrep -q "x11|drm|wayland"; then have_va_platform=yes else have_va_platform=no @@ -2149,6 +2280,10 @@ if test -n "$with_gallium_drivers" -a "x$with_gallium_drivers" != xswrast; then PKG_CHECK_EXISTS([libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED], [enable_omx_bellagio=yes], [enable_omx_bellagio=no]) fi + if test "x$enable_omx_tizonia" = xauto -a "x$have_omx_platform" = xyes; then + PKG_CHECK_EXISTS([libtizonia >= $LIBOMXIL_TIZONIA_REQUIRED], [enable_omx_tizonia=yes], [enable_omx_tizonia=no]) + fi + 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 @@ -2158,6 +2293,7 @@ if test "x$enable_dri" = xyes -o \ "x$enable_xvmc" = xyes -o \ "x$enable_vdpau" = xyes -o \ "x$enable_omx_bellagio" = xyes -o \ + "x$enable_omx_tizonia" = xyes -o \ "x$enable_va" = xyes; then need_gallium_vl=yes fi @@ -2166,8 +2302,11 @@ AM_CONDITIONAL(NEED_GALLIUM_VL, test "x$need_gallium_vl" = xyes) if test "x$enable_xvmc" = xyes -o \ "x$enable_vdpau" = xyes -o \ "x$enable_omx_bellagio" = xyes -o \ + "x$enable_omx_tizonia" = xyes -o \ "x$enable_va" = xyes; then - PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED]) + if echo $platforms | grep -q "x11"; then + PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED]) + fi need_gallium_vl_winsys=yes fi AM_CONDITIONAL(NEED_GALLIUM_VL_WINSYS, test "x$need_gallium_vl_winsys" = xyes) @@ -2197,9 +2336,27 @@ if test "x$enable_omx_bellagio" = xyes; then fi PKG_CHECK_MODULES([OMX_BELLAGIO], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED]) gallium_st="$gallium_st omx_bellagio" + AC_DEFINE([ENABLE_ST_OMX_BELLAGIO], 1, [Use Bellagio for OMX IL]) +else + AC_DEFINE([ENABLE_ST_OMX_BELLAGIO], 0) fi AM_CONDITIONAL(HAVE_ST_OMX_BELLAGIO, test "x$enable_omx_bellagio" = xyes) +if test "x$enable_omx_tizonia" = 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_TIZONIA], + [libtizonia >= $LIBOMXIL_TIZONIA_REQUIRED + tizilheaders >= $LIBOMXIL_TIZONIA_REQUIRED + libtizplatform >= $LIBOMXIL_TIZONIA_REQUIRED]) + gallium_st="$gallium_st omx_tizonia" + AC_DEFINE([ENABLE_ST_OMX_TIZONIA], 1, [Use Tizoina for OMX IL]) +else + AC_DEFINE([ENABLE_ST_OMX_TIZONIA], 0) +fi +AM_CONDITIONAL(HAVE_ST_OMX_TIZONIA, test "x$enable_omx_tizonia" = 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]) @@ -2248,8 +2405,8 @@ if test "x$enable_opencl" = xyes; then AC_MSG_ERROR([cannot enable OpenCL without Gallium]) fi - if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 7; then - AC_MSG_ERROR([gcc >= 4.7 is required to build clover]) + if test "x$HAVE_CXX11" != "xyes"; then + AC_MSG_ERROR([clover requires c++11 support]) fi if test "x$have_libclc" = xno; then @@ -2294,13 +2451,16 @@ if test "x$enable_opencl" = xyes; then llvm_add_default_components "opencl" llvm_add_component "all-targets" "opencl" + llvm_add_component "coverage" "opencl" llvm_add_component "linker" "opencl" llvm_add_component "instrumentation" "opencl" llvm_add_component "ipo" "opencl" llvm_add_component "irreader" "opencl" + llvm_add_component "lto" "opencl" llvm_add_component "option" "opencl" llvm_add_component "objcarcopts" "opencl" llvm_add_component "profiledata" "opencl" + llvm_add_optional_component "coroutines" "opencl" dnl Check for Clang internal headers if test -z "$CLANG_LIBDIR"; then @@ -2370,6 +2530,15 @@ AC_ARG_WITH([omx-bellagio-libdir], $PKG_CONFIG --define-variable=libdir=\$libdir --variable=pluginsdir libomxil-bellagio`]) AC_SUBST([OMX_BELLAGIO_LIB_INSTALL_DIR]) +dnl Directory for OMX_TIZONIA libs + +AC_ARG_WITH([omx-tizonia-libdir], + [AS_HELP_STRING([--with-omx-tizonia-libdir=DIR], + [directory for the OMX_TIZONIA libraries])], + [OMX_TIZONIA_LIB_INSTALL_DIR="$withval"], + [OMX_TIZONIA_LIB_INSTALL_DIR=`$PKG_CONFIG --define-variable=libdir=\$libdir --variable=pluginsdir libtizcore`]) +AC_SUBST([OMX_TIZONIA_LIB_INSTALL_DIR]) + dnl Directory for VA libs AC_ARG_WITH([va-libdir], @@ -2414,12 +2583,13 @@ dnl Surfaceless is an alternative for the last one. dnl require_basic_egl() { case "$with_platforms" in - *drm*|*surfaceless*) + *drm*|*surfaceless*|*android*) ;; *) AC_MSG_ERROR([$1 requires one of these: 1) --with-platforms=drm (X, Wayland, offscreen rendering based on DRM) 2) --with-platforms=surfaceless (offscreen only) + 3) --with-platforms=android (Android only) Recommended options: drm,x11]) ;; esac @@ -2523,6 +2693,10 @@ if test -n "$with_gallium_drivers"; then ximx) HAVE_GALLIUM_IMX=yes ;; + xtegra) + HAVE_GALLIUM_TEGRA=yes + require_libdrm "tegra" + ;; xswrast) HAVE_GALLIUM_SOFTPIPE=yes if test "x$enable_llvm" = xyes; then @@ -2532,10 +2706,9 @@ if test -n "$with_gallium_drivers"; then xswr) llvm_require_version $LLVM_REQUIRED_SWR "swr" - swr_require_cxx_feature_flags "C++11" "__cplusplus >= 201103L" \ - ",-std=c++11" \ - SWR_CXX11_CXXFLAGS - AC_SUBST([SWR_CXX11_CXXFLAGS]) + if test "x$HAVE_CXX11" != "xyes"; then + AC_MSG_ERROR([swr requires c++11 support]) + fi swr_require_cxx_feature_flags "AVX" "defined(__AVX__)" \ ",-target-cpu=sandybridge,-mavx,-march=core-avx,-tp=sandybridge" \ @@ -2582,17 +2755,30 @@ if test -n "$with_gallium_drivers"; then AC_MSG_ERROR([swr enabled but no swr architectures selected]) fi + # test if more than one swr arch configured + if test `echo $swr_archs | wc -w` -eq 1; then + HAVE_SWR_BUILTIN=yes + fi + HAVE_GALLIUM_SWR=yes ;; xvc4) HAVE_GALLIUM_VC4=yes - require_libdrm "vc4" + PKG_CHECK_MODULES([VC4], [libdrm >= $LIBDRM_VC4_REQUIRED]) PKG_CHECK_MODULES([SIMPENROSE], [simpenrose], [USE_VC4_SIMULATOR=yes; DEFINES="$DEFINES -DUSE_VC4_SIMULATOR"], [USE_VC4_SIMULATOR=no]) ;; + xv3d) + HAVE_GALLIUM_V3D=yes + + PKG_CHECK_MODULES([V3D_SIMULATOR], [v3dv3], + [USE_V3D_SIMULATOR=yes; + DEFINES="$DEFINES -DUSE_V3D_SIMULATOR"], + [USE_V3D_SIMULATOR=no]) + ;; xpl111) HAVE_GALLIUM_PL111=yes ;; @@ -2611,8 +2797,9 @@ if test -n "$with_gallium_drivers"; then 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) +AM_CONDITIONAL(SWR_INVALID_LLVM_VERSION, test "x$LLVM_VERSION" != x5.0.0 -a \ + "x$LLVM_VERSION" != x5.0.1 -a \ + "x$LLVM_VERSION" != x5.0.2) if test "x$enable_llvm" = "xyes" -a "$with_gallium_drivers"; then llvm_require_version $LLVM_REQUIRED_GALLIUM "gallium" @@ -2623,6 +2810,7 @@ AM_CONDITIONAL(HAVE_SWR_AVX, test "x$HAVE_SWR_AVX" = xyes) AM_CONDITIONAL(HAVE_SWR_AVX2, test "x$HAVE_SWR_AVX2" = xyes) AM_CONDITIONAL(HAVE_SWR_KNL, test "x$HAVE_SWR_KNL" = xyes) AM_CONDITIONAL(HAVE_SWR_SKX, test "x$HAVE_SWR_SKX" = xyes) +AM_CONDITIONAL(HAVE_SWR_BUILTIN, test "x$HAVE_SWR_BUILTIN" = xyes) dnl We need to validate some needed dependencies for renderonly drivers. @@ -2634,6 +2822,42 @@ if test "x$HAVE_GALLIUM_VC4" != xyes -a "x$HAVE_GALLIUM_PL111" = xyes ; then AC_MSG_ERROR([Building with pl111 requires vc4]) fi +if test "x$HAVE_GALLIUM_NOUVEAU" != xyes -a "x$HAVE_GALLIUM_TEGRA" = xyes; then + AC_MSG_ERROR([Building with tegra requires nouveau]) +fi + +detect_old_buggy_llvm() { + dnl llvm-config may not give the right answer when llvm is a built as a + dnl single shared library, so we must work the library name out for + dnl ourselves. + dnl (See https://llvm.org/bugs/show_bug.cgi?id=6823) + dnl We can't use $LLVM_VERSION because it has 'svn' stripped out, + LLVM_SO_NAME=LLVM-`$LLVM_CONFIG --version` + AS_IF([test -f "$LLVM_LIBDIR/lib$LLVM_SO_NAME.$IMP_LIB_EXT"], [llvm_have_one_so=yes]) + + if test "x$llvm_have_one_so" = xyes; then + dnl LLVM was built using auto*, so there is only one shared object. + LLVM_LIBS="-l$LLVM_SO_NAME" + else + dnl If LLVM was built with CMake, there will be one shared object per + dnl component. + AS_IF([test ! -f "$LLVM_LIBDIR/libLLVMTarget.$IMP_LIB_EXT"], + [AC_MSG_ERROR([Could not find llvm shared libraries: + Please make sure you have built llvm with the --enable-shared option + and that your llvm libraries are installed in $LLVM_LIBDIR + If you have installed your llvm libraries to a different directory you + can use the --with-llvm-prefix= configure flag to specify this directory. + NOTE: Mesa is attempting to use llvm shared libraries by default. + If you do not want to build with llvm shared libraries and instead want to + use llvm static libraries then add --disable-llvm-shared-libs to your configure + invocation and rebuild.])]) + + dnl We don't need to update LLVM_LIBS in this case because the LLVM + dnl install uses a shared object for each component and we have + dnl already added all of these objects to LLVM_LIBS. + fi +} + dnl dnl Set defines and buildtime variables only when using LLVM. dnl @@ -2651,51 +2875,42 @@ if test "x$enable_llvm" = xyes; then dnl this was causing the same libraries to be appear multiple times dnl in LLVM_LIBS. - if ! $LLVM_CONFIG --libs ${LLVM_COMPONENTS} >/dev/null; then - AC_MSG_ERROR([Calling ${LLVM_CONFIG} failed]) - fi - LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`" - - if test "x$enable_llvm_shared_libs" = xyes; then - if test $LLVM_VERSION_MAJOR -lt 4 -o "`$LLVM_CONFIG --shared-mode ${LLVM_COMPONENTS}`" = static; then - dnl llvm-config may not give the right answer when llvm is a built as a - dnl single shared library, so we must work the library name out for - dnl ourselves. - dnl (See https://llvm.org/bugs/show_bug.cgi?id=6823) - dnl We can't use $LLVM_VERSION because it has 'svn' stripped out, - LLVM_SO_NAME=LLVM-`$LLVM_CONFIG --version` - AS_IF([test -f "$LLVM_LIBDIR/lib$LLVM_SO_NAME.$IMP_LIB_EXT"], [llvm_have_one_so=yes]) - - if test "x$llvm_have_one_so" = xyes; then - dnl LLVM was built using auto*, so there is only one shared object. - LLVM_LIBS="-l$LLVM_SO_NAME" - else - dnl If LLVM was built with CMake, there will be one shared object per - dnl component. - AS_IF([test ! -f "$LLVM_LIBDIR/libLLVMTarget.$IMP_LIB_EXT"], - [AC_MSG_ERROR([Could not find llvm shared libraries: - Please make sure you have built llvm with the --enable-shared option - and that your llvm libraries are installed in $LLVM_LIBDIR - If you have installed your llvm libraries to a different directory you - can use the --with-llvm-prefix= configure flag to specify this directory. - NOTE: Mesa is attempting to use llvm shared libraries by default. - If you do not want to build with llvm shared libraries and instead want to - use llvm static libraries then add --disable-llvm-shared-libs to your configure - invocation and rebuild.])]) - - dnl We don't need to update LLVM_LIBS in this case because the LLVM - dnl install uses a shared object for each component and we have - dnl already added all of these objects to LLVM_LIBS. - fi + if test $LLVM_VERSION_MAJOR -ge 4 -o $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 9; then + if test "x$enable_llvm_shared_libs" = xyes; then + LLVM_LIBS="`$LLVM_CONFIG --link-shared --libs ${LLVM_COMPONENTS}`" + else + dnl Invoking llvm-config with both -libs and --system-libs produces the + dnl two separate lines - each for the set of libraries. + dnl Call the program twice, effectively folding them into a single line. + LLVM_LIBS="`$LLVM_CONFIG --link-static --libs ${LLVM_COMPONENTS}`" + dnl We need to link to llvm system libs when using static libs + LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --link-static --system-libs`" fi else - AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues]) - dnl We need to link to llvm system libs when using static libs - dnl However, only llvm 3.5+ provides --system-libs - if test $LLVM_VERSION_MAJOR -ge 4 -o $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then - LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --system-libs`" + LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`" + if test "x$enable_llvm_shared_libs" = xyes; then + detect_old_buggy_llvm + else + AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues]) + dnl We need to link to llvm system libs when using static libs + dnl However, only llvm 3.5+ provides --system-libs + if test $LLVM_VERSION_MAJOR -ge 4 -o $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then + LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --system-libs`" + fi fi fi + + dnl The gallium-xlib GLX and gallium OSMesa targets directly embed the + dnl swr/llvmpipe driver into the final binary. Adding LLVM_LIBS results in + dnl the LLVM library propagated in the Libs.private of the respective .pc + dnl file which ensures complete dependency information when statically + dnl linking. + if test "x$enable_glx" == xgallium-xlib; then + GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $LLVM_LIBS" + fi + if test "x$enable_gallium_osmesa" = xyes; then + OSMESA_PC_LIB_PRIV="$OSMESA_PC_LIB_PRIV $LLVM_LIBS" + fi fi AM_CONDITIONAL(HAVE_GALLIUM_SVGA, test "x$HAVE_GALLIUM_SVGA" = xyes) @@ -2704,17 +2919,18 @@ 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) -AM_CONDITIONAL(HAVE_GALLIUM_RADEON_COMMON, test "x$HAVE_GALLIUM_RADEONSI" = xyes) AM_CONDITIONAL(HAVE_GALLIUM_NOUVEAU, test "x$HAVE_GALLIUM_NOUVEAU" = xyes) AM_CONDITIONAL(HAVE_GALLIUM_FREEDRENO, test "x$HAVE_GALLIUM_FREEDRENO" = xyes) AM_CONDITIONAL(HAVE_GALLIUM_ETNAVIV, test "x$HAVE_GALLIUM_ETNAVIV" = xyes) AM_CONDITIONAL(HAVE_GALLIUM_IMX, test "x$HAVE_GALLIUM_IMX" = xyes) +AM_CONDITIONAL(HAVE_GALLIUM_TEGRA, test "x$HAVE_GALLIUM_TEGRA" = xyes) AM_CONDITIONAL(HAVE_GALLIUM_SOFTPIPE, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes) AM_CONDITIONAL(HAVE_GALLIUM_LLVMPIPE, test "x$HAVE_GALLIUM_LLVMPIPE" = xyes) AM_CONDITIONAL(HAVE_GALLIUM_SWR, test "x$HAVE_GALLIUM_SWR" = xyes) AM_CONDITIONAL(HAVE_GALLIUM_SWRAST, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes -o \ "x$HAVE_GALLIUM_LLVMPIPE" = xyes -o \ "x$HAVE_GALLIUM_SWR" = xyes) +AM_CONDITIONAL(HAVE_GALLIUM_V3D, test "x$HAVE_GALLIUM_V3D" = xyes) AM_CONDITIONAL(HAVE_GALLIUM_VC4, test "x$HAVE_GALLIUM_VC4" = xyes) AM_CONDITIONAL(HAVE_GALLIUM_VIRGL, test "x$HAVE_GALLIUM_VIRGL" = xyes) @@ -2742,6 +2958,9 @@ AM_CONDITIONAL(HAVE_INTEL_VULKAN, test "x$HAVE_INTEL_VULKAN" = xyes) AM_CONDITIONAL(HAVE_AMD_DRIVERS, test "x$HAVE_GALLIUM_RADEONSI" = xyes -o \ "x$HAVE_RADEON_VULKAN" = xyes) +AM_CONDITIONAL(HAVE_BROADCOM_DRIVERS, test "x$HAVE_GALLIUM_VC4" = xyes -o \ + "x$HAVE_GALLIUM_V3D" = xyes) + AM_CONDITIONAL(HAVE_INTEL_DRIVERS, test "x$HAVE_INTEL_VULKAN" = xyes -o \ "x$HAVE_I965_DRI" = xyes) @@ -2751,6 +2970,7 @@ AM_CONDITIONAL(NEED_RADEON_DRM_WINSYS, test "x$HAVE_GALLIUM_R300" = xyes -o \ AM_CONDITIONAL(NEED_WINSYS_XLIB, test "x$enable_glx" = xgallium-xlib) AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes) AM_CONDITIONAL(HAVE_GALLIUM_LLVM, test "x$enable_llvm" = xyes) +AM_CONDITIONAL(USE_V3D_SIMULATOR, test x$USE_V3D_SIMULATOR = xyes) AM_CONDITIONAL(USE_VC4_SIMULATOR, test x$USE_VC4_SIMULATOR = xyes) AM_CONDITIONAL(HAVE_LIBDRM, test "x$have_libdrm" = xyes) @@ -2768,8 +2988,8 @@ AM_CONDITIONAL(HAVE_ARM_ASM, test "x$asm_arch" = xarm) AC_SUBST([NINE_MAJOR], 1) AC_SUBST([NINE_MINOR], 0) -AC_SUBST([NINE_TINY], 0) -AC_SUBST([NINE_VERSION], "$NINE_MAJOR.$NINE_MINOR.$NINE_TINY") +AC_SUBST([NINE_PATCH], 0) +AC_SUBST([NINE_VERSION], "$NINE_MAJOR.$NINE_MINOR.$NINE_PATCH") AC_SUBST([VDPAU_MAJOR], 1) AC_SUBST([VDPAU_MINOR], 0) @@ -2786,15 +3006,10 @@ AM_CONDITIONAL(HAVE_VULKAN_COMMON, test "x$VULKAN_DRIVERS" != "x") AC_SUBST([XVMC_MAJOR], 1) AC_SUBST([XVMC_MINOR], 0) -XA_HEADER="$srcdir/src/gallium/state_trackers/xa/xa_tracker.h" -XA_MAJOR=`grep "#define XA_TRACKER_VERSION_MAJOR" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_MAJOR //'` -XA_MINOR=`grep "#define XA_TRACKER_VERSION_MINOR" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_MINOR //'` -XA_TINY=`grep "#define XA_TRACKER_VERSION_PATCH" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_PATCH //'` - -AC_SUBST([XA_MAJOR], $XA_MAJOR) -AC_SUBST([XA_MINOR], $XA_MINOR) -AC_SUBST([XA_TINY], $XA_TINY) -AC_SUBST([XA_VERSION], "$XA_MAJOR.$XA_MINOR.$XA_TINY") +AC_SUBST([XA_MAJOR], 2) +AC_SUBST([XA_MINOR], 4) +AC_SUBST([XA_PATCH], 0) +AC_SUBST([XA_VERSION], "$XA_MAJOR.$XA_MINOR.$XA_PATCH") AC_ARG_ENABLE(valgrind, [AS_HELP_STRING([--enable-valgrind], @@ -2841,46 +3056,44 @@ AC_CONFIG_FILES([Makefile src/egl/Makefile src/egl/main/egl.pc src/egl/wayland/wayland-drm/Makefile - src/egl/wayland/wayland-egl/Makefile - src/egl/wayland/wayland-egl/wayland-egl.pc src/gallium/Makefile src/gallium/auxiliary/Makefile src/gallium/auxiliary/pipe-loader/Makefile src/gallium/drivers/freedreno/Makefile - src/gallium/drivers/ddebug/Makefile src/gallium/drivers/i915/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 src/gallium/drivers/radeonsi/Makefile - src/gallium/drivers/rbug/Makefile src/gallium/drivers/softpipe/Makefile src/gallium/drivers/svga/Makefile src/gallium/drivers/swr/Makefile - src/gallium/drivers/trace/Makefile + src/gallium/drivers/tegra/Makefile src/gallium/drivers/etnaviv/Makefile src/gallium/drivers/imx/Makefile + src/gallium/drivers/v3d/Makefile src/gallium/drivers/vc4/Makefile src/gallium/drivers/virgl/Makefile src/gallium/state_trackers/clover/Makefile src/gallium/state_trackers/dri/Makefile src/gallium/state_trackers/glx/xlib/Makefile src/gallium/state_trackers/nine/Makefile - src/gallium/state_trackers/omx_bellagio/Makefile + src/gallium/state_trackers/omx/Makefile + src/gallium/state_trackers/omx/bellagio/Makefile + src/gallium/state_trackers/omx/tizonia/Makefile src/gallium/state_trackers/osmesa/Makefile src/gallium/state_trackers/va/Makefile src/gallium/state_trackers/vdpau/Makefile src/gallium/state_trackers/xa/Makefile + src/gallium/state_trackers/xa/xa_tracker.h src/gallium/state_trackers/xvmc/Makefile src/gallium/targets/d3dadapter9/Makefile src/gallium/targets/d3dadapter9/d3d.pc src/gallium/targets/dri/Makefile src/gallium/targets/libgl-xlib/Makefile - src/gallium/targets/omx-bellagio/Makefile + src/gallium/targets/omx/Makefile src/gallium/targets/opencl/Makefile src/gallium/targets/opencl/mesa.icd src/gallium/targets/osmesa/Makefile @@ -2907,6 +3120,8 @@ AC_CONFIG_FILES([Makefile src/gallium/winsys/sw/null/Makefile src/gallium/winsys/sw/wrapper/Makefile src/gallium/winsys/sw/xlib/Makefile + src/gallium/winsys/tegra/drm/Makefile + src/gallium/winsys/v3d/drm/Makefile src/gallium/winsys/vc4/drm/Makefile src/gallium/winsys/virgl/drm/Makefile src/gallium/winsys/virgl/vtest/Makefile @@ -2942,6 +3157,9 @@ AC_CONFIG_FILES([Makefile src/mesa/state_tracker/tests/Makefile src/util/Makefile src/util/tests/hash_table/Makefile + src/util/tests/set/Makefile + src/util/tests/string_buffer/Makefile + src/util/tests/vma/Makefile src/util/xmlpool/Makefile src/vulkan/Makefile]) @@ -2954,6 +3172,9 @@ $SED -i -e 's/brw_blorp.cpp/brw_blorp.c/' src/mesa/drivers/dri/i965/.deps/brw_bl rm -f src/compiler/spirv/spirv_info.lo echo "# dummy" > src/compiler/spirv/.deps/spirv_info.Plo +rm -f src/compiler/nir/.deps/nir_intrinsics.Plo +echo "# dummy" > src/compiler/nir/.deps/nir_intrinsics.Plo + dnl dnl Output some configuration info for the user dnl @@ -3071,7 +3292,11 @@ fi echo "" if test "x$HAVE_GALLIUM_SWR" != x; then - echo " SWR archs: $swr_archs" + if test "x$HAVE_SWR_BUILTIN" = xyes; then + echo " SWR archs: $swr_archs (builtin)" + else + echo " SWR archs: $swr_archs" + fi fi dnl Libraries @@ -3091,6 +3316,7 @@ defines=`echo $DEFINES | $SED 's/^ *//;s/ */ /;s/ *$//'` echo "" echo " CFLAGS: $cflags" echo " CXXFLAGS: $cxxflags" +echo " CXX11_CXXFLAGS: $CXX11_CXXFLAGS" echo " LDFLAGS: $ldflags" echo " Macros: $defines" echo ""