X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=configure.ac;h=903a3979d47ea19a0f42f7f05d1b35abb04b775b;hb=f84a63bc0022ea72c122b96344cd5f88034d9b62;hp=7ee777bc4601010be77b5c5b62acf094295b18af;hpb=8616a9bd35d8919de99477a3372f5914cbab0bbd;p=mesa.git diff --git a/configure.ac b/configure.ac index 7ee777bc460..903a3979d47 100644 --- a/configure.ac +++ b/configure.ac @@ -74,7 +74,7 @@ AC_SUBST([OPENCL_VERSION]) # in the first entry. LIBDRM_REQUIRED=2.4.75 LIBDRM_RADEON_REQUIRED=2.4.71 -LIBDRM_AMDGPU_REQUIRED=2.4.81 +LIBDRM_AMDGPU_REQUIRED=2.4.82 LIBDRM_INTEL_REQUIRED=2.4.75 LIBDRM_NVVIEUX_REQUIRED=2.4.66 LIBDRM_NOUVEAU_REQUIRED=2.4.66 @@ -282,86 +282,51 @@ esac AM_CONDITIONAL(HAVE_ANDROID, test "x$android" = xyes) -dnl Add flags for gcc and g++ -if test "x$GCC" = xyes; then - CFLAGS="$CFLAGS -Wall" +dnl +dnl Check compiler flags +dnl +AX_CHECK_COMPILE_FLAG([-Wall], [CFLAGS="$CFLAGS -Wall"]) +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"]) +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"]) + +dnl +dnl Check C++ compiler flags +dnl +AC_LANG_PUSH([C++]) +AX_CHECK_COMPILE_FLAG([-Wall], [CXXFLAGS="$CXXFLAGS -Wall"]) +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"]) +AC_LANG_POP([C++]) + +# Flags to help ensure that certain portions of the code -- and only those +# portions -- can be built with MSVC: +# - src/util, src/gallium/auxiliary, rc/gallium/drivers/llvmpipe, and +# - 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"]) +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"]) +AC_LANG_POP([C++]) +AC_SUBST([MSVC2013_COMPAT_CFLAGS]) +AC_SUBST([MSVC2013_COMPAT_CXXFLAGS]) + +if test "x$GCC" = xyes; then if test "x$USE_GNU99" = xyes; then CFLAGS="$CFLAGS -std=gnu99" else CFLAGS="$CFLAGS -std=c99" fi - - # Enable -Werror=implicit-function-declaration and - # -Werror=missing-prototypes, if available, or otherwise, just - # -Wmissing-prototypes. This is particularly useful to avoid - # generating a loadable driver module that has undefined symbols. - save_CFLAGS="$CFLAGS" - AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes]) - 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])]) - - # Enable -fvisibility=hidden if using a gcc that supports it - save_CFLAGS="$CFLAGS" - AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden]) - VISIBILITY_CFLAGS="-fvisibility=hidden" - CFLAGS="$CFLAGS $VISIBILITY_CFLAGS" - AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]), - [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]) - - # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed. - CFLAGS=$save_CFLAGS - - # We don't want floating-point math functions to set errno or trap - CFLAGS="$CFLAGS -fno-math-errno -fno-trapping-math" - - # Flags to help ensure that certain portions of the code -- and only those - # portions -- can be built with MSVC: - # - src/util, src/gallium/auxiliary, rc/gallium/drivers/llvmpipe, and - # - non-Linux/Posix OpenGL portions needs to build on MSVC 2013 (which - # supports most of C99) - # - the rest has no compiler compiler restrictions - MSVC2013_COMPAT_CFLAGS="-Werror=pointer-arith" - MSVC2013_COMPAT_CXXFLAGS="-Werror=pointer-arith" - - # Enable -Werror=vla if compiler supports it - save_CFLAGS="$CFLAGS" - 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])) - CFLAGS="$save_CFLAGS" -fi -if test "x$GXX" = xyes; then - CXXFLAGS="$CXXFLAGS -Wall" - - # Enable -fvisibility=hidden if using a gcc that supports it - save_CXXFLAGS="$CXXFLAGS" - AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden]) - VISIBILITY_CXXFLAGS="-fvisibility=hidden" - CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS" - AC_LANG_PUSH([C++]) - AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]), - [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]) - AC_LANG_POP([C++]) - - # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed. - CXXFLAGS=$save_CXXFLAGS - - # We don't want floating-point math functions to set errno or trap - CXXFLAGS="$CXXFLAGS -fno-math-errno -fno-trapping-math" fi -AC_SUBST([MSVC2013_COMPAT_CFLAGS]) -AC_SUBST([MSVC2013_COMPAT_CXXFLAGS]) - 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 @@ -374,6 +339,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 +AC_SUBST([WNO_OVERRIDE_INIT]) + dnl dnl Optional flags, check for compiler support dnl @@ -410,8 +379,21 @@ int main() { }]])], GCC_ATOMIC_BUILTINS_SUPPORTED=1) if test "x$GCC_ATOMIC_BUILTINS_SUPPORTED" = x1; 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 dnl note that lack of support usually results in link (not compile) error @@ -773,6 +755,20 @@ if test "x$enable_asm" = xyes; then ;; esac ;; + aarch64) + case "$host_os" in + linux*) + asm_arch=aarch64 + ;; + esac + ;; + arm) + case "$host_os" in + linux*) + asm_arch=arm + ;; + esac + ;; esac case "$asm_arch" in @@ -792,6 +788,14 @@ if test "x$enable_asm" = xyes; then DEFINES="$DEFINES -DUSE_PPC64LE_ASM" AC_MSG_RESULT([yes, ppc64le]) ;; + aarch64) + DEFINES="$DEFINES -DUSE_AARCH64_ASM" + AC_MSG_RESULT([yes, aarch64]) + ;; + arm) + DEFINES="$DEFINES -DUSE_ARM_ASM" + AC_MSG_RESULT([yes, arm]) + ;; *) AC_MSG_RESULT([no, platform not supported]) ;; @@ -804,11 +808,32 @@ AC_CHECK_HEADER([sys/sysctl.h], [DEFINES="$DEFINES -DHAVE_SYS_SYSCTL_H"]) AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"]) AC_CHECK_FUNC([mkostemp], [DEFINES="$DEFINES -DHAVE_MKOSTEMP"]) +AC_MSG_CHECKING([whether strtod has locale support]) +AC_LINK_IFELSE([AC_LANG_SOURCE([[ + #define _GNU_SOURCE + #include + #include + #ifdef HAVE_XLOCALE_H + #include + #endif + int main() { + locale_t loc = newlocale(LC_CTYPE_MASK, "C", NULL); + const char *s = "1.0"; + char *end; + double d = strtod_l(s, end, loc); + float f = strtof_l(s, end, loc); + freelocale(loc); + return 0; + }]])], + [DEFINES="$DEFINES -DHAVE_STRTOD_L"]; + AC_MSG_RESULT([yes]), + AC_MSG_RESULT([no])) + 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 @@ -1216,9 +1241,14 @@ AC_ARG_ENABLE([vdpau], [enable_vdpau=auto]) AC_ARG_ENABLE([omx], [AS_HELP_STRING([--enable-omx], - [enable OpenMAX library @<:@default=disabled@:>@])], - [enable_omx="$enableval"], - [enable_omx=no]) + [DEPRECATED: Use --enable-omx-bellagio instead @<:@default=auto@:>@])], + [AC_MSG_ERROR([--enable-omx is deprecated. Use --enable-omx-bellagio 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([va], [AS_HELP_STRING([--enable-va], [enable va library @<:@default=auto@:>@])], @@ -1269,7 +1299,7 @@ if test "x$enable_opengl" = xno -a \ "x$enable_xa" = xno -a \ "x$enable_xvmc" = xno -a \ "x$enable_vdpau" = xno -a \ - "x$enable_omx" = xno -a \ + "x$enable_omx_bellagio" = xno -a \ "x$enable_va" = xno -a \ "x$enable_opencl" = xno; then AC_MSG_ERROR([at least one API should be enabled]) @@ -1681,20 +1711,28 @@ 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 wayland-protocols >= $WAYLAND_PROTOCOLS_REQUIRED]) - ac_wayland_protocols_pkgdatadir=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols` - AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, $ac_wayland_protocols_pkgdatadir) + PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= $WAYLAND_REQUIRED]) + PKG_CHECK_MODULES([WAYLAND_SERVER], [wayland-server >= $WAYLAND_REQUIRED]) 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" + 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" ;; x11) @@ -1784,6 +1822,11 @@ if test "x$with_dri_drivers" = xno; then with_dri_drivers='' fi +# Check for expat +PKG_CHECK_MODULES([EXPAT], [expat],, + [PKG_CHECK_MODULES([EXPAT], [expat21])] +) + 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 @@ -1817,15 +1860,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 @@ -2111,8 +2145,8 @@ if test -n "$with_gallium_drivers" -a "x$with_gallium_drivers" != xswrast; then PKG_CHECK_EXISTS([vdpau >= $VDPAU_REQUIRED], [enable_vdpau=yes], [enable_vdpau=no]) fi - 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]) + if test "x$enable_omx_bellagio" = xauto -a "x$have_omx_platform" = xyes; then + PKG_CHECK_EXISTS([libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED], [enable_omx_bellagio=yes], [enable_omx_bellagio=no]) fi if test "x$enable_va" = xauto -a "x$have_va_platform" = xyes; then @@ -2123,7 +2157,7 @@ fi if test "x$enable_dri" = xyes -o \ "x$enable_xvmc" = xyes -o \ "x$enable_vdpau" = xyes -o \ - "x$enable_omx" = xyes -o \ + "x$enable_omx_bellagio" = xyes -o \ "x$enable_va" = xyes; then need_gallium_vl=yes fi @@ -2131,7 +2165,7 @@ 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" = xyes -o \ + "x$enable_omx_bellagio" = xyes -o \ "x$enable_va" = xyes; then PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED]) need_gallium_vl_winsys=yes @@ -2157,14 +2191,14 @@ if test "x$enable_vdpau" = xyes; then fi AM_CONDITIONAL(HAVE_ST_VDPAU, test "x$enable_vdpau" = xyes) -if test "x$enable_omx" = xyes; then +if test "x$enable_omx_bellagio" = 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" + PKG_CHECK_MODULES([OMX_BELLAGIO], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED]) + gallium_st="$gallium_st omx_bellagio" fi -AM_CONDITIONAL(HAVE_ST_OMX, test "x$enable_omx" = xyes) +AM_CONDITIONAL(HAVE_ST_OMX_BELLAGIO, test "x$enable_omx_bellagio" = xyes) if test "x$enable_va" = xyes; then if test "x$have_va_platform" != xyes; then @@ -2326,15 +2360,15 @@ AC_ARG_WITH([vdpau-libdir], [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau']) AC_SUBST([VDPAU_LIB_INSTALL_DIR]) -dnl Directory for OMX libs +dnl Directory for OMX_BELLAGIO libs -AC_ARG_WITH([omx-libdir], - [AS_HELP_STRING([--with-omx-libdir=DIR], - [directory for the OMX libraries])], - [OMX_LIB_INSTALL_DIR="$withval"], - [OMX_LIB_INSTALL_DIR=`$PKG_CONFIG --exists libomxil-bellagio && \ - $PKG_CONFIG --define-variable=libdir=\$libdir --variable=pluginsdir libomxil-bellagio`]) -AC_SUBST([OMX_LIB_INSTALL_DIR]) +AC_ARG_WITH([omx-bellagio-libdir], + [AS_HELP_STRING([--with-omx-bellagio-libdir=DIR], + [directory for the OMX_BELLAGIO libraries])], + [OMX_BELLAGIO_LIB_INSTALL_DIR="$withval"], + [OMX_BELLAGIO_LIB_INSTALL_DIR=`$PKG_CONFIG --exists libomxil-bellagio && \ + $PKG_CONFIG --define-variable=libdir=\$libdir --variable=pluginsdir libomxil-bellagio`]) +AC_SUBST([OMX_BELLAGIO_LIB_INSTALL_DIR]) dnl Directory for VA libs @@ -2352,6 +2386,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 @@ -2495,14 +2538,49 @@ if test -n "$with_gallium_drivers"; then 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 ;; @@ -2541,6 +2619,11 @@ if test "x$enable_llvm" = "xyes" -a "$with_gallium_drivers"; then 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 @@ -2573,35 +2656,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 -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 fi else AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues]) @@ -2619,8 +2704,7 @@ 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_R600" = xyes -o \ - "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) @@ -2679,6 +2763,8 @@ 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) +AM_CONDITIONAL(HAVE_AARCH64_ASM, test "x$asm_arch" = xaarch64) +AM_CONDITIONAL(HAVE_ARM_ASM, test "x$asm_arch" = xarm) AC_SUBST([NINE_MAJOR], 1) AC_SUBST([NINE_MINOR], 0) @@ -2784,7 +2870,7 @@ AC_CONFIG_FILES([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/omx_bellagio/Makefile src/gallium/state_trackers/osmesa/Makefile src/gallium/state_trackers/va/Makefile src/gallium/state_trackers/vdpau/Makefile @@ -2794,7 +2880,7 @@ AC_CONFIG_FILES([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/omx-bellagio/Makefile src/gallium/targets/opencl/Makefile src/gallium/targets/opencl/mesa.icd src/gallium/targets/osmesa/Makefile @@ -2842,7 +2928,6 @@ AC_CONFIG_FILES([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 @@ -2854,8 +2939,11 @@ AC_CONFIG_FILES([Makefile src/mesa/drivers/osmesa/osmesa.pc src/mesa/drivers/x11/Makefile src/mesa/main/tests/Makefile + src/mesa/state_tracker/tests/Makefile src/util/Makefile src/util/tests/hash_table/Makefile + src/util/tests/string_buffer/Makefile + src/util/xmlpool/Makefile src/vulkan/Makefile]) AC_OUTPUT @@ -2864,6 +2952,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 @@ -2980,6 +3070,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"