X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=configure.ac;h=b414edd30f1c31a6f71bed2cbed538c733a05823;hb=a597c8ad5b75f37336257e3f4462caebacb621ef;hp=de62e8babce3e22ce4a88b0a2d965cea941f806a;hpb=4424bf5da4f9cd18bb30fc14d1d8403e4ec6caff;p=mesa.git diff --git a/configure.ac b/configure.ac index de62e8babce..b414edd30f1 100644 --- a/configure.ac +++ b/configure.ac @@ -74,7 +74,8 @@ LIBDRM_AMDGPU_REQUIRED=2.4.63 LIBDRM_INTEL_REQUIRED=2.4.61 LIBDRM_NVVIEUX_REQUIRED=2.4.66 LIBDRM_NOUVEAU_REQUIRED=2.4.66 -LIBDRM_FREEDRENO_REQUIRED=2.4.67 +LIBDRM_FREEDRENO_REQUIRED=2.4.68 +LIBDRM_VC4_REQUIRED=2.4.69 DRI2PROTO_REQUIRED=2.6 DRI3PROTO_REQUIRED=1.0 PRESENTPROTO_REQUIRED=1.0 @@ -89,7 +90,8 @@ XCBDRI2_REQUIRED=1.8 XCBGLX_REQUIRED=1.8.1 XSHMFENCE_REQUIRED=1.1 XVMC_REQUIRED=1.0.6 -PYTHON_MAKO_REQUIRED=0.3.4 +PYTHON_MAKO_REQUIRED=0.8.0 +LIBSENSORS_REQUIRED=4.0.0 dnl Check for progs AC_PROG_CPP @@ -99,7 +101,6 @@ AM_PROG_CC_C_O AM_PROG_AS AX_CHECK_GNU_MAKE AC_CHECK_PROGS([PYTHON2], [python2.7 python2 python]) -AC_CHECK_PROGS([PYTHON3], [python3.5 python3.4 python3]) AC_PROG_SED AC_PROG_MKDIR_P @@ -109,6 +110,7 @@ LT_PREREQ([2.2]) LT_INIT([disable-static]) AC_CHECK_PROG(RM, rm, [rm -f]) +AC_CHECK_PROG(XXD, xxd, [xxd]) AX_PROG_BISON([], AS_IF([test ! -f "$srcdir/src/compiler/glsl/glcpp/glcpp-parse.c"], @@ -226,7 +228,9 @@ AX_GCC_FUNC_ATTRIBUTE([packed]) AX_GCC_FUNC_ATTRIBUTE([pure]) AX_GCC_FUNC_ATTRIBUTE([returns_nonnull]) AX_GCC_FUNC_ATTRIBUTE([unused]) +AX_GCC_FUNC_ATTRIBUTE([visibility]) AX_GCC_FUNC_ATTRIBUTE([warn_unused_result]) +AX_GCC_FUNC_ATTRIBUTE([weak]) AM_CONDITIONAL([GEN_ASM_OFFSETS], test "x$GEN_ASM_OFFSETS" = xyes) @@ -249,18 +253,21 @@ _SAVE_CPPFLAGS="$CPPFLAGS" dnl Compiler macros DEFINES="-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS" AC_SUBST([DEFINES]) +android=no case "$host_os" in -linux*|*-gnu*|gnu*) +*-android) + android=yes + ;; +linux*|*-gnu*|gnu*|cygwin*) DEFINES="$DEFINES -D_GNU_SOURCE" ;; solaris*) DEFINES="$DEFINES -DSVR4" ;; -cygwin*) - DEFINES="$DEFINES -D_XOPEN_SOURCE=700" - ;; 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" @@ -295,16 +302,9 @@ if test "x$GCC" = xyes; then # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed. CFLAGS=$save_CFLAGS - # Work around aliasing bugs - developers should comment this out - CFLAGS="$CFLAGS -fno-strict-aliasing" - # We don't want floating-point math functions to set errno or trap CFLAGS="$CFLAGS -fno-math-errno -fno-trapping-math" - # gcc's builtin memcmp is slower than glibc's - # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052 - CFLAGS="$CFLAGS -fno-builtin-memcmp" - # 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 @@ -341,12 +341,8 @@ if test "x$GXX" = xyes; then # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed. CXXFLAGS=$save_CXXFLAGS - # Work around aliasing bugs - developers should comment this out - CXXFLAGS="$CXXFLAGS -fno-strict-aliasing" - - # gcc's builtin memcmp is slower than glibc's - # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052 - CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp" + # 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]) @@ -392,6 +388,17 @@ 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([[ +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 + DEFINES="$DEFINES -DUSE_GCC_ATOMIC_BUILTINS" +fi +AM_CONDITIONAL([GCC_ATOMIC_BUILTINS_SUPPORTED], [test x$GCC_ATOMIC_BUILTINS_SUPPORTED = x1]) + dnl Check for Endianness AC_C_BIGENDIAN( little_endian=no, @@ -515,6 +522,8 @@ else DEFINES="$DEFINES -DNDEBUG" fi +DEFAULT_GL_LIB_NAME=GL + dnl dnl Check if linker supports -Bsymbolic dnl @@ -612,6 +621,23 @@ esac AM_CONDITIONAL(HAVE_COMPAT_SYMLINKS, test "x$HAVE_COMPAT_SYMLINKS" = xyes) +DEFAULT_GL_LIB_NAME=GL + +dnl +dnl Libglvnd configuration +dnl +AC_ARG_ENABLE([libglvnd], + [AS_HELP_STRING([--enable-libglvnd], + [Build for libglvnd @<:@default=disabled@:>@])], + [enable_libglvnd="$enableval"], + [enable_libglvnd=no]) +AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd" = xyes) +#AM_COND_IF([USE_LIBGLVND_GLX], [DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"]) +if test "x$enable_libglvnd" = xyes ; then + DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1" + DEFAULT_GL_LIB_NAME=GLX_mesa +fi + dnl dnl library names dnl @@ -649,13 +675,13 @@ AC_ARG_WITH([gl-lib-name], [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@], [specify GL library name @<:@default=GL@:>@])], [GL_LIB=$withval], - [GL_LIB=GL]) + [GL_LIB="$DEFAULT_GL_LIB_NAME"]) AC_ARG_WITH([osmesa-lib-name], [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@], [specify OSMesa library name @<:@default=OSMesa@:>@])], [OSMESA_LIB=$withval], [OSMESA_LIB=OSMesa]) -AS_IF([test "x$GL_LIB" = xyes], [GL_LIB=GL]) +AS_IF([test "x$GL_LIB" = xyes], [GL_LIB="$DEFAULT_GL_LIB_NAME"]) AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa]) dnl @@ -758,6 +784,7 @@ if test "x$enable_asm" = xyes; then esac 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_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"]) @@ -800,6 +827,22 @@ dnl to -pthread, which causes problems if we need -lpthread to appear in dnl pkgconfig files. test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread" +dnl pthread-stubs is mandatory on targets where it exists +case "$host_os" in +cygwin* ) + pthread_stubs_possible="no" + ;; +* ) + pthread_stubs_possible="yes" + ;; +esac + +if test "x$pthread_stubs_possible" = xyes; then + PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs) + AC_SUBST(PTHREADSTUBS_CFLAGS) + AC_SUBST(PTHREADSTUBS_LIBS) +fi + dnl SELinux awareness. AC_ARG_ENABLE([selinux], [AS_HELP_STRING([--enable-selinux], @@ -841,6 +884,32 @@ AC_ARG_ENABLE([dri], [enable_dri="$enableval"], [enable_dri=yes]) +AC_ARG_ENABLE([gallium-extra-hud], + [AS_HELP_STRING([--enable-gallium-extra-hud], + [enable HUD block/NIC I/O HUD stats support @<:@default=disabled@:>@])], + [enable_gallium_extra_hud="$enableval"], + [enable_gallium_extra_hud=no]) +AM_CONDITIONAL(HAVE_GALLIUM_EXTRA_HUD, test "x$enable_gallium_extra_hud" = xyes) +if test "x$enable_gallium_extra_hud" = xyes ; then + DEFINES="${DEFINES} -DHAVE_GALLIUM_EXTRA_HUD=1" +fi + +#TODO: no pkgconfig .pc available for libsensors. +#PKG_CHECK_MODULES([LIBSENSORS], [libsensors >= $LIBSENSORS_REQUIRED], [enable_lmsensors=yes], [enable_lmsensors=no]) +AC_ARG_ENABLE([lmsensors], + [AS_HELP_STRING([--enable-lmsensors], + [enable HUD lmsensor support @<:@default=disabled@:>@])], + [enable_lmsensors="$enableval"], + [enable_lmsensors=no]) +AM_CONDITIONAL(HAVE_LIBSENSORS, test "x$enable_lmsensors" = xyes) +if test "x$enable_lmsensors" = xyes ; then + DEFINES="${DEFINES} -DHAVE_LIBSENSORS=1" + LIBSENSORS_LDFLAGS="-lsensors" +else + LIBSENSORS_LDFLAGS="" +fi +AC_SUBST(LIBSENSORS_LDFLAGS) + case "$host_os" in linux*) dri3_default=yes @@ -1031,10 +1100,40 @@ xno) ;; esac +AM_CONDITIONAL(HAVE_GLX, test "x$enable_glx" != xno) AM_CONDITIONAL(HAVE_DRI_GLX, test "x$enable_glx" = xdri) AM_CONDITIONAL(HAVE_XLIB_GLX, test "x$enable_glx" = xxlib) AM_CONDITIONAL(HAVE_GALLIUM_XLIB_GLX, test "x$enable_glx" = xgallium-xlib) +dnl +dnl Libglvnd configuration +dnl +AC_ARG_ENABLE([libglvnd], + [AS_HELP_STRING([--enable-libglvnd], + [Build for libglvnd @<:@default=disabled@:>@])], + [enable_libglvnd="$enableval"], + [enable_libglvnd=no]) +AM_CONDITIONAL(USE_LIBGLVND_GLX, 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.1.0) + DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1" + DEFAULT_GL_LIB_NAME=GLX_mesa +fi + # Check for libdrm PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED], [have_libdrm=yes], [have_libdrm=no]) @@ -1046,7 +1145,9 @@ fi case "$host_os" in darwin*) dri_platform='apple' ;; -gnu*|cygwin*) +cygwin*) + dri_platform='windows' ;; +gnu*) dri_platform='none' ;; *) dri_platform='drm' ;; @@ -1062,6 +1163,9 @@ AM_CONDITIONAL(HAVE_DRISW_KMS, test "x$have_drisw_kms" = xyes ) AM_CONDITIONAL(HAVE_DRI2, test "x$enable_dri" = xyes -a "x$dri_platform" = xdrm -a "x$have_libdrm" = xyes ) AM_CONDITIONAL(HAVE_DRI3, test "x$enable_dri3" = xyes -a "x$dri_platform" = xdrm -a "x$have_libdrm" = xyes ) AM_CONDITIONAL(HAVE_APPLEDRI, test "x$enable_dri" = xyes -a "x$dri_platform" = xapple ) +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 ) AC_ARG_ENABLE([shared-glapi], [AS_HELP_STRING([--enable-shared-glapi], @@ -1242,6 +1346,9 @@ if test "x$with_sha1" = "x"; then fi fi AM_CONDITIONAL([ENABLE_SHADER_CACHE], [test x$enable_shader_cache = xyes]) +if test "x$enable_shader_cache" = "xyes"; then + AC_DEFINE([ENABLE_SHADER_CACHE], [1], [Enable shader cache]) +fi case "$host_os" in linux*) @@ -1326,6 +1433,9 @@ xdri) if test x"$dri_platform" = xapple ; then DEFINES="$DEFINES -DGLX_USE_APPLEGL" fi + if test x"$dri_platform" = xwindows ; then + DEFINES="$DEFINES -DGLX_USE_WINDOWSGL" + fi fi # add xf86vidmode if available @@ -1580,11 +1690,18 @@ esac AC_ARG_WITH([vulkan-icddir], [AS_HELP_STRING([--with-vulkan-icddir=DIR], - [directory for the Vulkan driver icd files @<:@${sysconfdir}/vulkan/icd.d@:>@])], + [directory for the Vulkan driver icd files @<:@${datarootdir}/vulkan/icd.d@:>@])], [VULKAN_ICD_INSTALL_DIR="$withval"], - [VULKAN_ICD_INSTALL_DIR='${sysconfdir}/vulkan/icd.d']) + [VULKAN_ICD_INSTALL_DIR='${datarootdir}/vulkan/icd.d']) AC_SUBST([VULKAN_ICD_INSTALL_DIR]) +AC_ARG_ENABLE([vulkan-icd-full-driver-path], + [AS_HELP_STRING([--disable-vulkan-icd-full-driver-path], + [create Vulkan ICD files with just a .so name and no path])], + [vulkan_icd_driver_path="$enableval"], + [vulkan_icd_driver_path="yes"]) +AM_CONDITIONAL(VULKAN_ICD_DRIVER_PATH, test "x$vulkan_icd_driver_path" = xyes) + if test -n "$with_vulkan_drivers"; then VULKAN_DRIVERS=`IFS=', '; echo $with_vulkan_drivers` for driver in $VULKAN_DRIVERS; do @@ -1599,6 +1716,13 @@ if test -n "$with_vulkan_drivers"; then HAVE_INTEL_VULKAN=yes; ;; + xradeon) + PKG_CHECK_MODULES([AMDGPU], [libdrm_amdgpu >= $LIBDRM_AMDGPU_REQUIRED]) + HAVE_RADEON_VULKAN=yes; + if test "x$with_sha1" == "x"; then + AC_MSG_ERROR([radv vulkan driver requires SHA1]) + fi + ;; *) AC_MSG_ERROR([Vulkan driver '$driver' does not exist]) ;; @@ -1938,8 +2062,8 @@ 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`, +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]) @@ -1976,6 +2100,9 @@ for plat in $egl_platforms; do AC_MSG_ERROR([EGL platform surfaceless requires libdrm >= $LIBDRM_REQUIRED]) ;; + android) + ;; + *) AC_MSG_ERROR([EGL platform '$plat' does not exist]) ;; @@ -2000,6 +2127,7 @@ 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') AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x") @@ -2040,6 +2168,9 @@ AC_ARG_WITH([llvm-prefix], strip_unwanted_llvm_flags() { # Use \> (marks the end of the word) echo `$1` | sed \ + -e 's/-march=\S*//g' \ + -e 's/-mtune=\S*//g' \ + -e 's/-mcpu=\S*//g' \ -e 's/-DNDEBUG\>//g' \ -e 's/-D_GNU_SOURCE\>//g' \ -e 's/-pedantic\>//g' \ @@ -2075,7 +2206,7 @@ if test "x$enable_gallium_llvm" = xauto; then i*86|x86_64|amd64) enable_gallium_llvm=yes;; esac fi -if test "x$enable_gallium_llvm" = xyes; then +if test "x$enable_gallium_llvm" = xyes || test "x$HAVE_RADEON_VULKAN" = xyes; then if test -n "$llvm_prefix"; then AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no], ["$llvm_prefix/bin"]) else @@ -2116,8 +2247,12 @@ if test "x$enable_gallium_llvm" = xyes; then LLVM_COMPONENTS="engine bitwriter mcjit mcdisassembler" + if $LLVM_CONFIG --components | grep -q inteljitevents ; then + LLVM_COMPONENTS="${LLVM_COMPONENTS} inteljitevents" + fi + if test "x$enable_opencl" = xyes; then - llvm_check_version_for "3" "5" "0" "opencl" + llvm_check_version_for "3" "6" "0" "opencl" LLVM_COMPONENTS="${LLVM_COMPONENTS} all-targets ipo linker instrumentation" LLVM_COMPONENTS="${LLVM_COMPONENTS} irreader option objcarcopts profiledata" @@ -2241,10 +2376,7 @@ radeon_llvm_check() { else amdgpu_llvm_target_name='amdgpu' fi - if test "x$enable_gallium_llvm" != "xyes"; then - AC_MSG_ERROR([--enable-gallium-llvm is required when building $1]) - fi - llvm_check_version_for "3" "6" "0" $1 + llvm_check_version_for $2 $3 $4 $1 if test true && $LLVM_CONFIG --targets-built | grep -iqvw $amdgpu_llvm_target_name ; then AC_MSG_ERROR([LLVM $amdgpu_llvm_target_name not enabled in your LLVM build.]) fi @@ -2255,6 +2387,13 @@ radeon_llvm_check() { fi } +radeon_gallium_llvm_check() { + if test "x$enable_gallium_llvm" != "xyes"; then + AC_MSG_ERROR([--enable-gallium-llvm is required when building $1]) + fi + radeon_llvm_check $* +} + swr_llvm_check() { gallium_require_llvm $1 if test ${LLVM_VERSION_INT} -lt 306; then @@ -2265,6 +2404,45 @@ swr_llvm_check() { fi } +swr_require_cxx_feature_flags() { + feature_name="$1" + preprocessor_test="$2" + option_list="$3" + output_var="$4" + + AC_MSG_CHECKING([whether $CXX supports $feature_name]) + AC_LANG_PUSH([C++]) + save_CXXFLAGS="$CXXFLAGS" + save_IFS="$IFS" + IFS="," + found=0 + for opts in $option_list + do + unset IFS + CXXFLAGS="$opts $save_CXXFLAGS" + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [ #if !($preprocessor_test) + #error + #endif + ])], + [found=1; break], + []) + IFS="," + done + IFS="$save_IFS" + CXXFLAGS="$save_CXXFLAGS" + AC_LANG_POP([C++]) + if test $found -eq 1; then + AC_MSG_RESULT([$opts]) + eval "$output_var=\$opts" + return 0 + fi + AC_MSG_RESULT([no]) + AC_MSG_ERROR([swr requires $feature_name support]) + return 1 +} + dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block if test -n "$with_gallium_drivers"; then gallium_drivers=`IFS=', '; echo $with_gallium_drivers` @@ -2300,7 +2478,7 @@ if test -n "$with_gallium_drivers"; then gallium_require_drm "Gallium R600" gallium_require_drm_loader if test "x$enable_opencl" = xyes; then - radeon_llvm_check "r600g" + radeon_gallium_llvm_check "r600g" "3" "6" "0" LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser" fi ;; @@ -2310,7 +2488,7 @@ if test -n "$with_gallium_drivers"; then PKG_CHECK_MODULES([AMDGPU], [libdrm_amdgpu >= $LIBDRM_AMDGPU_REQUIRED]) gallium_require_drm "radeonsi" gallium_require_drm_loader - radeon_llvm_check "radeonsi" + radeon_gallium_llvm_check "radeonsi" "3" "6" "0" require_egl_drm "radeonsi" ;; xnouveau) @@ -2334,34 +2512,26 @@ if test -n "$with_gallium_drivers"; then xswr) swr_llvm_check "swr" - AC_MSG_CHECKING([whether $CXX supports c++11/AVX/AVX2]) - AVX_CXXFLAGS="-march=core-avx-i" - AVX2_CXXFLAGS="-march=core-avx2" - - AC_LANG_PUSH([C++]) - save_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="-std=c++11 $CXXFLAGS" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],[], - [AC_MSG_ERROR([c++11 compiler support not detected])]) - CXXFLAGS="$save_CXXFLAGS" - - save_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$AVX_CXXFLAGS $CXXFLAGS" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],[], - [AC_MSG_ERROR([AVX compiler support not detected])]) - CXXFLAGS="$save_CXXFLAGS" - - save_CFLAGS="$CXXFLAGS" - CXXFLAGS="$AVX2_CXXFLAGS $CXXFLAGS" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],[], - [AC_MSG_ERROR([AVX2 compiler support not detected])]) - CXXFLAGS="$save_CXXFLAGS" - AC_LANG_POP([C++]) + 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" \ + 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]) HAVE_GALLIUM_SWR=yes ;; xvc4) HAVE_GALLIUM_VC4=yes + PKG_CHECK_MODULES([VC4], [libdrm_vc4 >= $LIBDRM_VC4_REQUIRED]) gallium_require_drm "vc4" gallium_require_drm_loader @@ -2383,6 +2553,10 @@ if test -n "$with_gallium_drivers"; then done fi +if test "x$HAVE_RADEON_VULKAN" = "xyes"; then + radeon_llvm_check "radv" "3" "9" "0" +fi + dnl Set LLVM_LIBS - This is done after the driver configuration so dnl that drivers can add additional components to LLVM_COMPONENTS. dnl Previously, gallium drivers were updating LLVM_LIBS directly @@ -2431,7 +2605,7 @@ if test "x$MESA_LLVM" != x0; then 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 -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then + 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 @@ -2474,8 +2648,13 @@ AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes) AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes) 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 \ + "x$HAVE_RADEON_VULKAN" = xyes) + AM_CONDITIONAL(HAVE_INTEL_DRIVERS, test "x$HAVE_INTEL_VULKAN" = xyes -o \ "x$HAVE_I965_DRI" = xyes) @@ -2494,6 +2673,8 @@ fi AM_CONDITIONAL(HAVE_LIBDRM, test "x$have_libdrm" = xyes) AM_CONDITIONAL(HAVE_OSMESA, test "x$enable_osmesa" = xyes) AM_CONDITIONAL(HAVE_GALLIUM_OSMESA, test "x$enable_gallium_osmesa" = xyes) +AM_CONDITIONAL(HAVE_COMMON_OSMESA, test "x$enable_osmesa" = xyes -o \ + "x$enable_gallium_osmesa" = xyes) 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) @@ -2525,6 +2706,8 @@ AC_SUBST([XA_MINOR], $XA_MINOR) AC_SUBST([XA_TINY], $XA_TINY) AC_SUBST([XA_VERSION], "$XA_MAJOR.$XA_MINOR.$XA_TINY") +AC_SUBST([TIMESTAMP_CMD], '`test $(SOURCE_DATE_EPOCH) && echo $(SOURCE_DATE_EPOCH) || date +%s`') + AC_ARG_ENABLE(valgrind, [AS_HELP_STRING([--enable-valgrind], [Build mesa with valgrind support (default: auto)])], @@ -2563,6 +2746,9 @@ CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS" dnl Substitute the config AC_CONFIG_FILES([Makefile src/Makefile + src/amd/Makefile + src/amd/common/Makefile + src/amd/vulkan/Makefile src/compiler/Makefile src/egl/Makefile src/egl/main/egl.pc @@ -2637,10 +2823,11 @@ AC_CONFIG_FILES([Makefile 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/intel/genxml/Makefile - src/intel/isl/Makefile + src/intel/tools/Makefile src/intel/vulkan/Makefile src/loader/Makefile src/mapi/Makefile @@ -2671,9 +2858,6 @@ AC_OUTPUT # Fix up dependencies in *.Plo files, where we changed the extension of a # source file $SED -i -e 's/brw_blorp.cpp/brw_blorp.c/' src/mesa/drivers/dri/i965/.deps/brw_blorp.Plo -$SED -i -e 's/gen6_blorp.cpp/gen6_blorp.c/' src/mesa/drivers/dri/i965/.deps/gen6_blorp.Plo -$SED -i -e 's/gen7_blorp.cpp/gen7_blorp.c/' src/mesa/drivers/dri/i965/.deps/gen7_blorp.Plo -$SED -i -e 's/gen8_blorp.cpp/gen8_blorp.c/' src/mesa/drivers/dri/i965/.deps/gen8_blorp.Plo dnl @@ -2772,6 +2956,19 @@ else echo " Gallium: no" fi +echo "" +if test "x$enable_gallium_extra_hud" != xyes; then + echo " HUD extra stats: no" +else + echo " HUD extra stats: yes" +fi + +if test "x$enable_lmsensors" != xyes; then + echo " HUD lmsensors: no" +else + echo " HUD lmsensors: yes" +fi + dnl Shader cache echo "" echo " Shader cache: $enable_shader_cache" @@ -2805,7 +3002,6 @@ if test "x$MESA_LLVM" = x1; then echo "" fi echo " PYTHON2: $PYTHON2" -echo " PYTHON3: $PYTHON3" echo "" echo " Run '${MAKE-make}' to build Mesa"