X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=configure.ac;h=3fe47c7bbc733ce03847b29acaf60c033b84e950;hb=463de32b952383c793836ab828851a2a7274ed5c;hp=7d92b33a0fa11f6b60c8165c0146355ac26dd9ed;hpb=3c52a7316a1b968a780f387b70a17183d5bc9054;p=mesa.git diff --git a/configure.ac b/configure.ac index 7d92b33a0fa..3fe47c7bbc7 100644 --- a/configure.ac +++ b/configure.ac @@ -74,23 +74,21 @@ AC_SUBST([OPENCL_VERSION]) # in the first entry. LIBDRM_REQUIRED=2.4.75 LIBDRM_RADEON_REQUIRED=2.4.71 -LIBDRM_AMDGPU_REQUIRED=2.4.77 +LIBDRM_AMDGPU_REQUIRED=2.4.82 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.74 +LIBDRM_ETNAVIV_REQUIRED=2.4.82 dnl Versions for external dependencies DRI2PROTO_REQUIRED=2.8 -DRI3PROTO_REQUIRED=1.0 -PRESENTPROTO_REQUIRED=1.0 GLPROTO_REQUIRED=1.4.14 LIBOMXIL_BELLAGIO_REQUIRED=0.0 LIBVA_REQUIRED=0.38.0 VDPAU_REQUIRED=1.1 WAYLAND_REQUIRED=1.11 +WAYLAND_PROTOCOLS_REQUIRED=1.8 XCB_REQUIRED=1.9.3 XCBDRI2_REQUIRED=1.8 XCBGLX_REQUIRED=1.8.1 @@ -99,13 +97,13 @@ 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 LLVM_REQUIRED_OPENCL=3.6.0 -LLVM_REQUIRED_R600=3.8.0 -LLVM_REQUIRED_RADEONSI=3.8.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 @@ -271,7 +269,7 @@ DEFINES="-D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS" AC_SUBST([DEFINES]) android=no case "$host_os" in -*-android) +*-android*) android=yes ;; linux*|*-gnu*|gnu*|cygwin*) @@ -289,9 +287,9 @@ if test "x$GCC" = xyes; then CFLAGS="$CFLAGS -Wall" if test "x$USE_GNU99" = xyes; then - CFLAGS="$CFLAGS -std=gnu99" + CFLAGS="$CFLAGS -std=gnu99" else - CFLAGS="$CFLAGS -std=c99" + CFLAGS="$CFLAGS -std=c99" fi # Enable -Werror=implicit-function-declaration and @@ -303,9 +301,9 @@ if test "x$GCC" = xyes; then CFLAGS="$CFLAGS -Werror=implicit-function-declaration" CFLAGS="$CFLAGS -Werror=missing-prototypes" AC_LINK_IFELSE([AC_LANG_PROGRAM()], - AC_MSG_RESULT([yes]), - [CFLAGS="$save_CFLAGS -Wmissing-prototypes"; - AC_MSG_RESULT([no])]) + AC_MSG_RESULT([yes]), + [CFLAGS="$save_CFLAGS -Wmissing-prototypes"; + AC_MSG_RESULT([no])]) # Enable -fvisibility=hidden if using a gcc that supports it save_CFLAGS="$CFLAGS" @@ -313,7 +311,7 @@ if test "x$GCC" = xyes; then VISIBILITY_CFLAGS="-fvisibility=hidden" CFLAGS="$CFLAGS $VISIBILITY_CFLAGS" AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]), - [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]) + [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]) # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed. CFLAGS=$save_CFLAGS @@ -335,10 +333,10 @@ if test "x$GCC" = xyes; then AC_MSG_CHECKING([whether $CC supports -Werror=vla]) CFLAGS="$CFLAGS -Werror=vla" AC_LINK_IFELSE([AC_LANG_PROGRAM()], - [MSVC2013_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=vla"; - MSVC2013_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS -Werror=vla"; - AC_MSG_RESULT([yes])], - AC_MSG_RESULT([no])) + [MSVC2013_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=vla"; + MSVC2013_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS -Werror=vla"; + AC_MSG_RESULT([yes])], + AC_MSG_RESULT([no])) CFLAGS="$save_CFLAGS" fi if test "x$GXX" = xyes; then @@ -351,7 +349,7 @@ if test "x$GXX" = xyes; then CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS" AC_LANG_PUSH([C++]) AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]), - [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]) + [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]) AC_LANG_POP([C++]) # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed. @@ -457,7 +455,7 @@ int main () { CFLAGS=$save_CFLAGS AC_ARG_ENABLE(pwr8, - [AS_HELP_STRING([--disable-pwr8-inst], + [AS_HELP_STRING([--disable-pwr8], [disable POWER8-specific instructions])], [enable_pwr8=$enableval], [enable_pwr8=auto]) @@ -515,6 +513,12 @@ AC_ARG_ENABLE([profile], [enable_profile=no] ) +AC_ARG_ENABLE([sanitize], + [AS_HELP_STRING([--enable-sanitize@<:@=address|undefined@:>@], + [enable code sanitizer @<:@default=disabled@:>@])], + [enable_sanitize="$enableval"], + [enable_sanitize=no]) + if test "x$enable_profile" = xyes; then DEFINES="$DEFINES -DPROFILE" if test "x$GCC" = xyes; then @@ -550,6 +554,21 @@ else DEFINES="$DEFINES -DNDEBUG" fi +if test "x$enable_sanitize" != xno; then + if test "x$enable_profile" = xyes; then + AC_MSG_WARN([Sanitize and Profile are enabled at the same time]) + fi + + CFLAGS="$CFLAGS -fsanitize=$enable_sanitize" + CXXFLAGS="$CXXFLAGS -fsanitize=$enable_sanitize" + LDFLAGS="$LDFLAGS -fsanitize=$enable_sanitize" + + AC_LINK_IFELSE( + [AC_LANG_SOURCE([int main(){return 0;}])], + [], + [AC_MSG_FAILURE([sanitize flags '$enable_sanitize' not supported])]) +fi + dnl dnl Check if linker supports -Bsymbolic dnl @@ -590,7 +609,12 @@ case "$host_os" in openbsd* | darwin* ) LD_NO_UNDEFINED="" ;; *) - LD_NO_UNDEFINED="-Wl,--no-undefined" ;; + if test "x$enable_sanitize" = xno; then + LD_NO_UNDEFINED="-Wl,--no-undefined" + else + LD_NO_UNDEFINED="" + fi + ;; esac AC_SUBST([LD_NO_UNDEFINED]) @@ -700,7 +724,7 @@ dnl Arch/platform-specific settings dnl AC_ARG_ENABLE([asm], [AS_HELP_STRING([--disable-asm], - [disable assembly usage @<:@default=enabled on supported plaforms@:>@])], + [disable assembly usage @<:@default=enabled on supported platforms@:>@])], [enable_asm="$enableval"], [enable_asm=yes] ) @@ -742,6 +766,13 @@ if test "x$enable_asm" = xyes; then ;; esac ;; + powerpc64le) + case "$host_os" in + linux*) + asm_arch=ppc64le + ;; + esac + ;; esac case "$asm_arch" in @@ -757,6 +788,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]) ;; @@ -813,6 +848,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 @@ -827,8 +867,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. @@ -1042,26 +1080,18 @@ 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_MODULES(LIBUNWIND, 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 - if test "x$HAVE_LIBUNWIND" != "xyes"; then - AC_MSG_ERROR([libunwind requested but not installed.]) - fi + PKG_CHECK_MODULES(LIBUNWIND, libunwind) AC_DEFINE(HAVE_LIBUNWIND, 1, [Have libunwind support]) fi -AM_CONDITIONAL(HAVE_LIBUNWIND, [test "x$LIBUNWIND" = xyes]) - dnl Options for APIs AC_ARG_ENABLE([opengl], @@ -1220,7 +1250,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"]) @@ -1262,6 +1292,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 @@ -1321,10 +1354,11 @@ dnl Libglvnd configuration dnl AC_ARG_ENABLE([libglvnd], [AS_HELP_STRING([--enable-libglvnd], - [Build for libglvnd @<:@default=disabled@:>@])], + [Build GLX and EGL for libglvnd @<:@default=disabled@:>@])], [enable_libglvnd="$enableval"], [enable_libglvnd=no]) -AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd" = xyes) +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 @@ -1340,8 +1374,11 @@ if test "x$enable_libglvnd" = xyes ; then ;; esac - PKG_CHECK_MODULES([GLVND], libglvnd >= 0.1.0) - DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1" + PKG_CHECK_MODULES([GLVND], libglvnd >= 0.2.0) + LIBGLVND_DATADIR=`$PKG_CONFIG --variable=datadir libglvnd` + AC_SUBST([LIBGLVND_DATADIR]) + + DEFINES="${DEFINES} -DUSE_LIBGLVND=1" DEFAULT_GL_LIB_NAME=GLX_mesa fi @@ -1379,7 +1416,7 @@ AC_SUBST([OSMESA_LIB]) PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED], [have_libdrm=yes], [have_libdrm=no]) if test "x$have_libdrm" = xyes; then - DEFINES="$DEFINES -DHAVE_LIBDRM" + DEFINES="$DEFINES -DHAVE_LIBDRM" fi require_libdrm() { @@ -1512,20 +1549,10 @@ xdri) 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 - PKG_CHECK_MODULES([DRI3PROTO], [dri3proto >= $DRI3PROTO_REQUIRED]) - PKG_CHECK_MODULES([PRESENTPROTO], [presentproto >= $PRESENTPROTO_REQUIRED]) - fi 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" @@ -1614,6 +1641,120 @@ if test "x$enable_glx_read_only_text" = xyes; then DEFINES="$DEFINES -DGLX_X86_READONLY_TEXT" fi +dnl +dnl DEPRECATED: EGL Platforms configuration +dnl +AC_ARG_WITH([egl-platforms], + [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@], + [DEPRECATED: use --with-platforms instead@<:@default=auto@:>@])], + [with_egl_platforms="$withval"], + [with_egl_platforms=auto]) + +if test "x$with_egl_platforms" = xauto; then + 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.]) +fi + +dnl +dnl Platforms configuration +dnl +AC_ARG_WITH([platforms], + [AS_HELP_STRING([--with-platforms@<:@=DIRS...@:>@], + [comma delimited native platforms libEGL/Vulkan/other supports, e.g. + "x11,drm,wayland,surfaceless..." @<:@default=auto@:>@])], + [with_platforms="$withval"], + [with_platforms=auto]) + +# Reuse the autodetection rather than duplicating it. +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 + case "$plat" in + wayland) + + PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED]) + + 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" + ;; + + 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" + ;; + + *) + AC_MSG_ERROR([platform '$plat' does not exist]) + ;; + esac + + case "$plat" in + wayland|drm|surfaceless) + require_libdrm "Platform $plat" + ;; + 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') +AM_CONDITIONAL(HAVE_PLATFORM_SURFACELESS, echo "$platforms" | grep -q 'surfaceless') +AM_CONDITIONAL(HAVE_PLATFORM_ANDROID, echo "$platforms" | grep -q 'android') + dnl dnl More DRI setup dnl @@ -1650,16 +1791,15 @@ if test "x$with_dri_drivers" = xno; then with_dri_drivers='' fi +# Check for expat +PKG_CHECK_MODULES([EXPAT], [expat]) + dnl If $with_dri_drivers is yes, drivers will be added through dnl platform checks. Set DEFINES and LIB_DEPS 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 @@ -1687,15 +1827,6 @@ if test "x$enable_dri" = xyes; then with_dri_drivers="i915 i965 nouveau r200 radeon swrast" fi - # Check for expat - PKG_CHECK_MODULES([EXPAT], [expat], [], - # expat version 2.0 and earlier do not provide expat.pc - [AC_CHECK_HEADER([expat.h],[], - [AC_MSG_ERROR([Expat headers required for DRI not found])]) - AC_CHECK_LIB([expat],[XML_ParserCreate],[], - [AC_MSG_ERROR([Expat library required for DRI not found])]) - EXPAT_LIBS="-lexpat"]) - # put all the necessary libs together DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS" fi @@ -1716,12 +1847,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" @@ -1815,6 +1945,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]) @@ -1825,13 +1963,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 ;; *) @@ -1937,23 +2076,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 - PKG_CHECK_EXISTS([vdpau >= $VDPAU_REQUIRED], [enable_vdpau=yes], [enable_vdpau=no]) + 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 @@ -1971,23 +2134,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" @@ -1995,12 +2159,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 @@ -2117,97 +2287,21 @@ dnl Gallium configuration dnl AM_CONDITIONAL(HAVE_GALLIUM, test -n "$with_gallium_drivers") -dnl -dnl EGL Platforms configuration -dnl -AC_ARG_WITH([egl-platforms], - [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@], - [comma delimited native platforms libEGL supports, e.g. - "x11,drm" @<:@default=auto@:>@])], - [with_egl_platforms="$withval"], - [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="" - fi]) - -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 - -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 - -# Do per-EGL platform setups and checks -egl_platforms=`IFS=', '; echo $with_egl_platforms` -for plat in $egl_platforms; do - case "$plat" in - wayland) - - PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED]) - - if test "x$WAYLAND_SCANNER" = "x:"; then - AC_MSG_ERROR([wayland-scanner is needed to compile the wayland egl platform]) - fi - ;; - - x11) - PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED xcb-xfixes]) - ;; - - drm) - test "x$enable_gbm" = "xno" && - AC_MSG_ERROR([EGL platform drm needs gbm]) - ;; - - surfaceless) - ;; - - android) - PKG_CHECK_MODULES([ANDROID], [cutils hardware sync]) - ;; - - *) - AC_MSG_ERROR([EGL platform '$plat' does not exist]) - ;; - esac - - case "$plat" in - wayland|drm|surfaceless) - require_libdrm "Platform $plat" - ;; - 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]]'` +if test "x$platforms" != "x"; then + FIRST_PLATFORM_CAPS=`echo $platforms | sed 's| .*||' | tr '[[a-z]]' '[[A-Z]]'` EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS" else EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM" fi -AM_CONDITIONAL(HAVE_PLATFORM_X11, echo "$egl_platforms" | grep -q 'x11') -AM_CONDITIONAL(HAVE_PLATFORM_WAYLAND, echo "$egl_platforms" | grep -q 'wayland') -AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep -q 'drm') -AM_CONDITIONAL(HAVE_EGL_PLATFORM_SURFACELESS, echo "$egl_platforms" | grep -q 'surfaceless') -AM_CONDITIONAL(HAVE_EGL_PLATFORM_ANDROID, echo "$egl_platforms" | grep -q 'android') - AC_SUBST([EGL_NATIVE_PLATFORM]) AC_SUBST([EGL_CFLAGS]) # If we don't have the X11 platform, set this define so we don't try to include # the X11 headers. -if ! echo "$egl_platforms" | grep -q 'x11'; then +if ! echo "$platforms" | grep -q 'x11'; then DEFINES="$DEFINES -DMESA_EGL_NO_X11_HEADERS" GL_PC_CFLAGS="$GL_PC_CFLAGS -DMESA_EGL_NO_X11_HEADERS" fi @@ -2259,6 +2353,15 @@ AC_ARG_WITH([d3d-libdir], [D3D_DRIVER_INSTALL_DIR="${libdir}/d3d"]) AC_SUBST([D3D_DRIVER_INSTALL_DIR]) +dnl Architectures to build SWR library for + +AC_ARG_WITH([swr-archs], + [AS_HELP_STRING([--with-swr-archs@<:@=DIRS...@:>@], + [comma delimited swr architectures list, e.g. + "avx,avx2,knl,skx" @<:@default="avx,avx2"@:>@])], + [with_swr_archs="$withval"], + [with_swr_archs="avx,avx2"]) + dnl dnl r300 doesn't strictly require LLVM, but for performance reasons we dnl highly recommend LLVM usage. So require it at least on x86 and x86_64 @@ -2277,13 +2380,13 @@ dnl DRM is needed by X, Wayland, and offscreen rendering. dnl Surfaceless is an alternative for the last one. dnl require_basic_egl() { - case "$with_egl_platforms" in + case "$with_platforms" in *drm*|*surfaceless*) ;; *) AC_MSG_ERROR([$1 requires one of these: - 1) --with-egl-platforms=drm (X, Wayland, offscreen rendering based on DRM) - 2) --with-egl-platforms=surfaceless (offscreen only) + 1) --with-platforms=drm (X, Wayland, offscreen rendering based on DRM) + 2) --with-platforms=surfaceless (offscreen only) Recommended options: drm,x11]) ;; esac @@ -2339,7 +2442,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) @@ -2396,26 +2499,60 @@ 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" \ + ",-target-cpu=sandybridge,-mavx,-march=core-avx,-tp=sandybridge" \ SWR_AVX_CXXFLAGS AC_SUBST([SWR_AVX_CXXFLAGS]) - swr_require_cxx_feature_flags "AVX2" "defined(__AVX2__)" \ - ",-mavx2 -mfma -mbmi2 -mf16c,-march=core-avx2" \ - SWR_AVX2_CXXFLAGS - AC_SUBST([SWR_AVX2_CXXFLAGS]) + swr_archs=`IFS=', '; echo $with_swr_archs` + for arch in $swr_archs; do + case "x$arch" in + xavx) + HAVE_SWR_AVX=yes + ;; + xavx2) + swr_require_cxx_feature_flags "AVX2" "defined(__AVX2__)" \ + ",-target-cpu=haswell,-mavx2 -mfma -mbmi2 -mf16c,-march=core-avx2,-tp=haswell" \ + SWR_AVX2_CXXFLAGS + AC_SUBST([SWR_AVX2_CXXFLAGS]) + HAVE_SWR_AVX2=yes + ;; + xknl) + swr_require_cxx_feature_flags "KNL" "defined(__AVX512F__) && defined(__AVX512ER__)" \ + ",-target-cpu=mic-knl,-march=knl,-xMIC-AVX512" \ + SWR_KNL_CXXFLAGS + AC_SUBST([SWR_KNL_CXXFLAGS]) + HAVE_SWR_KNL=yes + ;; + xskx) + swr_require_cxx_feature_flags "SKX" "defined(__AVX512F__) && defined(__AVX512BW__)" \ + ",-target-cpu=x86-skylake,-march=skylake-avx512,-xCORE-AVX512" \ + SWR_SKX_CXXFLAGS + AC_SUBST([SWR_SKX_CXXFLAGS]) + HAVE_SWR_SKX=yes + ;; + *) + AC_MSG_ERROR([unknown SWR build architecture '$arch']) + ;; + esac + done + + if test "x$HAVE_SWR_AVX" != xyes -a \ + "x$HAVE_SWR_AVX2" != xyes -a \ + "x$HAVE_SWR_KNL" != xyes -a \ + "x$HAVE_SWR_SKX" != xyes; then + AC_MSG_ERROR([swr enabled but no swr architectures selected]) + fi HAVE_GALLIUM_SWR=yes ;; 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], @@ -2423,10 +2560,15 @@ 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" - require_basic_egl "virgl" + if test "x$enable_egl" = xyes; then + require_basic_egl "virgl" + fi ;; *) AC_MSG_ERROR([Unknown Gallium driver: $driver]) @@ -2435,17 +2577,30 @@ 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" fi +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) + dnl We need to validate some needed dependencies for renderonly drivers. 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 @@ -2468,35 +2623,37 @@ if test "x$enable_llvm" = xyes; then fi LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`" - 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) if test "x$enable_llvm_shared_libs" = xyes; then - 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. + if test $LLVM_VERSION_MAJOR -lt 4; 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 fi else AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues]) @@ -2510,6 +2667,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) @@ -2549,8 +2707,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 \ @@ -2573,6 +2730,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) @@ -2609,18 +2767,18 @@ AC_ARG_ENABLE(valgrind, [Build mesa with valgrind support (default: auto)])], [VALGRIND=$enableval], [VALGRIND=auto]) if test "x$VALGRIND" != xno; then - PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no]) + PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no]) fi AC_MSG_CHECKING([whether to enable Valgrind support]) if test "x$VALGRIND" = xauto; then - VALGRIND="$have_valgrind" + VALGRIND="$have_valgrind" fi if test "x$VALGRIND" = "xyes"; then - if ! test "x$have_valgrind" = xyes; then - AC_MSG_ERROR([Valgrind support required but not present]) - fi - AC_DEFINE([HAVE_VALGRIND], 1, [Use valgrind intrinsics to suppress false warnings]) + if ! test "x$have_valgrind" = xyes; then + AC_MSG_ERROR([Valgrind support required but not present]) + fi + AC_DEFINE([HAVE_VALGRIND], 1, [Use valgrind intrinsics to suppress false warnings]) fi AC_MSG_RESULT([$VALGRIND]) @@ -2641,113 +2799,116 @@ CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS" dnl Substitute the config AC_CONFIG_FILES([Makefile - src/Makefile - src/amd/Makefile - src/amd/vulkan/Makefile - src/compiler/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/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/etnaviv/Makefile - src/gallium/drivers/imx/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/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/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/Makefile - src/gallium/targets/opencl/Makefile - src/gallium/targets/opencl/mesa.icd - src/gallium/targets/osmesa/Makefile - src/gallium/targets/osmesa/osmesa.pc - src/gallium/targets/pipe-loader/Makefile - src/gallium/targets/va/Makefile - src/gallium/targets/vdpau/Makefile - src/gallium/targets/xa/Makefile - src/gallium/targets/xa/xatracker.pc - src/gallium/targets/xvmc/Makefile - src/gallium/tests/trivial/Makefile - src/gallium/tests/unit/Makefile - src/gallium/winsys/etnaviv/drm/Makefile - src/gallium/winsys/imx/drm/Makefile - src/gallium/winsys/freedreno/drm/Makefile - src/gallium/winsys/i915/drm/Makefile - src/gallium/winsys/nouveau/drm/Makefile - src/gallium/winsys/radeon/drm/Makefile - src/gallium/winsys/amdgpu/drm/Makefile - src/gallium/winsys/svga/drm/Makefile - src/gallium/winsys/sw/dri/Makefile - src/gallium/winsys/sw/kms-dri/Makefile - src/gallium/winsys/sw/null/Makefile - src/gallium/winsys/sw/wrapper/Makefile - src/gallium/winsys/sw/xlib/Makefile - src/gallium/winsys/vc4/drm/Makefile - src/gallium/winsys/virgl/drm/Makefile - src/gallium/winsys/virgl/vtest/Makefile - src/gbm/Makefile - src/gbm/main/gbm.pc - src/glx/Makefile - src/glx/apple/Makefile - src/glx/tests/Makefile - src/glx/windows/Makefile - src/glx/windows/windowsdriproto.pc - src/gtest/Makefile - src/intel/Makefile - src/loader/Makefile - src/mapi/Makefile - src/mapi/es1api/glesv1_cm.pc - src/mapi/es2api/glesv2.pc - src/mapi/glapi/gen/Makefile - src/mesa/Makefile - src/mesa/gl.pc - src/mesa/drivers/dri/dri.pc - src/mesa/drivers/dri/common/Makefile - src/mesa/drivers/dri/common/xmlpool/Makefile - src/mesa/drivers/dri/i915/Makefile - src/mesa/drivers/dri/i965/Makefile - src/mesa/drivers/dri/Makefile - src/mesa/drivers/dri/nouveau/Makefile - src/mesa/drivers/dri/r200/Makefile - src/mesa/drivers/dri/radeon/Makefile - src/mesa/drivers/dri/swrast/Makefile - src/mesa/drivers/osmesa/Makefile - src/mesa/drivers/osmesa/osmesa.pc - src/mesa/drivers/x11/Makefile - src/mesa/main/tests/Makefile - src/util/Makefile - src/util/tests/hash_table/Makefile - src/vulkan/Makefile]) + src/Makefile + src/amd/Makefile + src/amd/vulkan/Makefile + src/broadcom/Makefile + src/compiler/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/etnaviv/Makefile + src/gallium/drivers/imx/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/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/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/Makefile + src/gallium/targets/opencl/Makefile + src/gallium/targets/opencl/mesa.icd + src/gallium/targets/osmesa/Makefile + src/gallium/targets/osmesa/osmesa.pc + src/gallium/targets/pipe-loader/Makefile + src/gallium/targets/va/Makefile + src/gallium/targets/vdpau/Makefile + src/gallium/targets/xa/Makefile + src/gallium/targets/xa/xatracker.pc + src/gallium/targets/xvmc/Makefile + src/gallium/tests/trivial/Makefile + src/gallium/tests/unit/Makefile + src/gallium/winsys/etnaviv/drm/Makefile + src/gallium/winsys/imx/drm/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 + src/gallium/winsys/sw/dri/Makefile + src/gallium/winsys/sw/kms-dri/Makefile + src/gallium/winsys/sw/null/Makefile + src/gallium/winsys/sw/wrapper/Makefile + src/gallium/winsys/sw/xlib/Makefile + src/gallium/winsys/vc4/drm/Makefile + src/gallium/winsys/virgl/drm/Makefile + src/gallium/winsys/virgl/vtest/Makefile + src/gbm/Makefile + src/gbm/main/gbm.pc + src/glx/Makefile + src/glx/apple/Makefile + src/glx/tests/Makefile + src/glx/windows/Makefile + src/glx/windows/windowsdriproto.pc + src/gtest/Makefile + src/intel/Makefile + src/loader/Makefile + src/mapi/Makefile + src/mapi/es1api/glesv1_cm.pc + src/mapi/es2api/glesv2.pc + src/mapi/glapi/gen/Makefile + src/mesa/Makefile + src/mesa/gl.pc + src/mesa/drivers/dri/dri.pc + src/mesa/drivers/dri/common/Makefile + src/mesa/drivers/dri/i915/Makefile + src/mesa/drivers/dri/i965/Makefile + src/mesa/drivers/dri/Makefile + src/mesa/drivers/dri/nouveau/Makefile + src/mesa/drivers/dri/r200/Makefile + src/mesa/drivers/dri/radeon/Makefile + src/mesa/drivers/dri/swrast/Makefile + src/mesa/drivers/osmesa/Makefile + src/mesa/drivers/osmesa/osmesa.pc + src/mesa/drivers/x11/Makefile + src/mesa/main/tests/Makefile + src/util/Makefile + src/util/tests/hash_table/Makefile + src/util/xmlpool/Makefile + src/vulkan/Makefile]) AC_OUTPUT @@ -2755,6 +2916,8 @@ AC_OUTPUT # source file $SED -i -e 's/brw_blorp.cpp/brw_blorp.c/' src/mesa/drivers/dri/i965/.deps/brw_blorp.Plo +rm -f src/compiler/spirv/spirv_info.lo +echo "# dummy" > src/compiler/spirv/.deps/spirv_info.Plo dnl dnl Output some configuration info for the user @@ -2813,7 +2976,6 @@ dnl EGL echo "" echo " EGL: $enable_egl" if test "$enable_egl" = yes; then - echo " EGL platforms: $egl_platforms" egl_drivers="" if test "x$enable_dri" != "xno"; then @@ -2831,6 +2993,8 @@ else echo " GBM: no" fi + echo " EGL/Vulkan/VL platforms: $platforms" + # Vulkan echo "" if test "x$VULKAN_DRIVERS" != x; then @@ -2870,6 +3034,11 @@ else echo " HUD lmsensors: yes" fi +echo "" +if test "x$HAVE_GALLIUM_SWR" != x; then + echo " SWR archs: $swr_archs" +fi + dnl Libraries echo "" echo " Shared libs: $enable_shared" @@ -2877,15 +3046,17 @@ echo " Static libs: $enable_static" echo " Shared-glapi: $enable_shared_glapi" dnl Compiler options -# cleanup the CFLAGS/CXXFLAGS/DEFINES vars +# cleanup the CFLAGS/CXXFLAGS/LDFLAGS/DEFINES vars cflags=`echo $CFLAGS | \ $SED 's/^ *//;s/ */ /;s/ *$//'` cxxflags=`echo $CXXFLAGS | \ $SED 's/^ *//;s/ */ /;s/ *$//'` +ldflags=`echo $LDFLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'` defines=`echo $DEFINES | $SED 's/^ *//;s/ */ /;s/ *$//'` echo "" echo " CFLAGS: $cflags" echo " CXXFLAGS: $cxxflags" +echo " LDFLAGS: $ldflags" echo " Macros: $defines" echo "" if test "x$enable_llvm" = xyes; then