X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=configure.ac;h=70885fb9a6bf801157d36a8a628b2e2e1dc15d52;hb=c836f2ce288f202a1c5a1514cd4890e47f60f3d7;hp=f001743ea21b216a0d76a177f5c0cb3d354de64e;hpb=43b09ee0b2826772e55e0781dcc3f93314c12b26;p=mesa.git diff --git a/configure.ac b/configure.ac index f001743ea21..70885fb9a6b 100644 --- a/configure.ac +++ b/configure.ac @@ -72,9 +72,9 @@ AC_SUBST([OPENCL_VERSION]) # codifies which drivers need which version of libdrm. Any libdrm # version dependencies in non-driver-specific code should be reflected # in the first entry. -LIBDRM_REQUIRED=2.4.66 -LIBDRM_RADEON_REQUIRED=2.4.56 -LIBDRM_AMDGPU_REQUIRED=2.4.63 +LIBDRM_REQUIRED=2.4.75 +LIBDRM_RADEON_REQUIRED=2.4.71 +LIBDRM_AMDGPU_REQUIRED=2.4.76 LIBDRM_INTEL_REQUIRED=2.4.75 LIBDRM_NVVIEUX_REQUIRED=2.4.66 LIBDRM_NOUVEAU_REQUIRED=2.4.66 @@ -99,14 +99,15 @@ 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 dnl LLVM versions LLVM_REQUIRED_GALLIUM=3.3.0 LLVM_REQUIRED_OPENCL=3.6.0 -LLVM_REQUIRED_R600=3.6.0 -LLVM_REQUIRED_RADEONSI=3.6.0 +LLVM_REQUIRED_R600=3.8.0 +LLVM_REQUIRED_RADEONSI=3.8.0 LLVM_REQUIRED_RADV=3.9.0 -LLVM_REQUIRED_SWR=3.6.0 +LLVM_REQUIRED_SWR=3.9.0 dnl Check for progs AC_PROG_CPP @@ -125,7 +126,6 @@ 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"], @@ -305,7 +305,7 @@ if test "x$GCC" = xyes; then AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]), [CFLAGS="$save_CFLAGS -Wmissing-prototypes"; - AC_MSG_RESULT([no])]); + AC_MSG_RESULT([no])]) # Enable -fvisibility=hidden if using a gcc that supports it save_CFLAGS="$CFLAGS" @@ -313,7 +313,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 @@ -338,7 +338,7 @@ if test "x$GCC" = xyes; then [MSVC2013_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=vla"; MSVC2013_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS -Werror=vla"; AC_MSG_RESULT([yes])], - AC_MSG_RESULT([no])); + AC_MSG_RESULT([no])) CFLAGS="$save_CFLAGS" fi if test "x$GXX" = xyes; then @@ -351,7 +351,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. @@ -768,6 +768,8 @@ LIBS="$LIBS $DLOPEN_LIBS" AC_CHECK_FUNCS([dladdr]) LIBS="$save_LIBS" +AC_CHECK_FUNC([dl_iterate_phdr], [DEFINES="$DEFINES -DHAVE_DL_ITERATE_PHDR"]) + case "$host_os" in darwin*) ;; @@ -782,6 +784,9 @@ esac dnl See if posix_memalign is available AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"]) +dnl Check for zlib +PKG_CHECK_MODULES([ZLIB], [zlib >= $ZLIB_REQUIRED]) + dnl Check for pthreads AX_PTHREAD if test "x$ax_pthread_ok" = xno; then @@ -795,9 +800,10 @@ if test "x$android" = xno; then test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread" fi -dnl pthread-stubs is mandatory on targets where it exists +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 case "$host_os" in -cygwin* ) +linux* | cygwin* | darwin* | solaris* | gnu*) pthread_stubs_possible="no" ;; * ) @@ -806,7 +812,7 @@ cygwin* ) esac if test "x$pthread_stubs_possible" = xyes; then - PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs) + PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs >= 0.4) AC_SUBST(PTHREADSTUBS_CFLAGS) AC_SUBST(PTHREADSTUBS_LIBS) fi @@ -901,19 +907,19 @@ llvm_add_target() { # Call this inside ` ` to get the return value. # $1 is the llvm-config command with arguments. strip_unwanted_llvm_flags() { - # Use \> (marks the end of the word) - echo " `$1`" | sed \ - -e 's/\s\+-m\S*//g' \ - -e 's/\s\+-DNDEBUG\>//g' \ - -e 's/\s\+-D_GNU_SOURCE\>//g' \ - -e 's/\s\+-pedantic\>//g' \ - -e 's/\s\+-W\S*//g' \ - -e 's/\s\+-O\S*//g' \ - -e 's/\s\+-g\S*//g' \ - -e 's/-fno-rtti\>/-Fno-rtti/g' \ - -e 's/\s\+-f\S*//g' \ - -e 's/-Fno-rtti\>/-fno-rtti/g' \ - -e 's/^ //' + echo " `$1` " | sed -E \ + -e 's/[[[:space:]]]+-m[[^[:space:]]]*//g' \ + -e 's/[[[:space:]]]+-DNDEBUG[[[:space:]]]/ /g' \ + -e 's/[[[:space:]]]+-D_GNU_SOURCE[[[:space:]]]/ /g' \ + -e 's/[[[:space:]]]+-pedantic[[[:space:]]]/ /g' \ + -e 's/[[[:space:]]]+-W[[^[:space:]]]*//g' \ + -e 's/[[[:space:]]]+-O[[^[:space:]]]*//g' \ + -e 's/[[[:space:]]]+-g[[^[:space:]]]*//g' \ + -e 's/-fno-rtti[[[:space:]]]/-Fno-rtti /g' \ + -e 's/[[[:space:]]]+-f[[^[:space:]]]*//g' \ + -e 's/-Fno-rtti[[[:space:]]]/-fno-rtti /g' \ + -e 's/^[[[:space:]]]//' \ + -e 's/[[[:space:]]]$//' } llvm_set_environment_variables() { @@ -1006,9 +1012,8 @@ radeon_llvm_check() { llvm_add_component "bitreader" $2 llvm_add_component "ipo" $2 - NEED_RADEON_LLVM=yes if test "x$have_libelf" != xyes; then - AC_MSG_ERROR([$1 requires libelf when using llvm]) + AC_MSG_ERROR([$2 requires libelf when using llvm]) fi } @@ -1672,17 +1677,17 @@ if test -n "$with_dri_drivers"; then case "x$driver" in xi915) require_libdrm "i915" - HAVE_I915_DRI=yes; + HAVE_I915_DRI=yes PKG_CHECK_MODULES([INTEL], [libdrm >= $LIBDRM_INTEL_REQUIRED libdrm_intel >= $LIBDRM_INTEL_REQUIRED]) ;; xi965) require_libdrm "i965" - HAVE_I965_DRI=yes; + HAVE_I965_DRI=yes PKG_CHECK_MODULES([INTEL], [libdrm >= $LIBDRM_INTEL_REQUIRED libdrm_intel >= $LIBDRM_INTEL_REQUIRED]) ;; xnouveau) require_libdrm "nouveau" - HAVE_NOUVEAU_DRI=yes; + HAVE_NOUVEAU_DRI=yes PKG_CHECK_MODULES([NVVIEUX], [libdrm >= $LIBDRM_NVVIEUX_REQUIRED libdrm_nouveau >= $LIBDRM_NVVIEUX_REQUIRED]) ;; xradeon) @@ -1692,11 +1697,11 @@ if test -n "$with_dri_drivers"; then ;; xr200) require_libdrm "r200" - HAVE_R200_DRI=yes; + HAVE_R200_DRI=yes PKG_CHECK_MODULES([RADEON], [libdrm >= $LIBDRM_RADEON_REQUIRED libdrm_radeon >= $LIBDRM_RADEON_REQUIRED]) ;; xswrast) - HAVE_SWRAST_DRI=yes; + HAVE_SWRAST_DRI=yes ;; *) AC_MSG_ERROR([classic DRI driver '$driver' does not exist]) @@ -1773,20 +1778,23 @@ AC_ARG_WITH([vulkan-icddir], AC_SUBST([VULKAN_ICD_INSTALL_DIR]) 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]) + fi + VULKAN_DRIVERS=`IFS=', '; echo $with_vulkan_drivers` for driver in $VULKAN_DRIVERS; do case "x$driver" in xintel) - if test "x$HAVE_I965_DRI" != xyes; then - AC_MSG_ERROR([Intel Vulkan driver requires the i965 dri driver]) - fi - HAVE_INTEL_VULKAN=yes; - + require_libdrm "ANV" + PKG_CHECK_MODULES([INTEL], [libdrm >= $LIBDRM_INTEL_REQUIRED libdrm_intel >= $LIBDRM_INTEL_REQUIRED]) + 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" - HAVE_RADEON_VULKAN=yes; + HAVE_RADEON_VULKAN=yes ;; *) AC_MSG_ERROR([Vulkan driver '$driver' does not exist]) @@ -2027,6 +2035,20 @@ if test "x$enable_opencl" = xyes; then AC_MSG_ERROR([Clover requires libelf]) fi + if test "x${ac_cv_cxx_compiler_gnu}" = xyes; then + altivec_enabled=no + AC_COMPILE_IFELSE([AC_LANG_SOURCE([ + #if !defined(__VEC__) || !defined(__ALTIVEC__) + #error "AltiVec not enabled" + #endif + ])], altivec_enabled=yes) + + if test "$altivec_enabled" = yes; then + CLOVER_STD_OVERRIDE="-std=gnu++11" + fi + AC_SUBST([CLOVER_STD_OVERRIDE]) + fi + llvm_require_version $LLVM_REQUIRED_OPENCL "opencl" llvm_add_default_components "opencl" @@ -2083,7 +2105,7 @@ 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]) + AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner], [:]) fi # Do per-EGL platform setups and checks @@ -2094,7 +2116,7 @@ for plat in $egl_platforms; do PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED]) - if test "x$WAYLAND_SCANNER" = x; then + if test "x$WAYLAND_SCANNER" = "x:"; then AC_MSG_ERROR([wayland-scanner is needed to compile the wayland egl platform]) fi ;; @@ -2179,7 +2201,8 @@ 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 --define-variable=libdir=\$libdir --variable=pluginsdir libomxil-bellagio`]) + [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]) dnl Directory for VA libs @@ -2291,7 +2314,7 @@ if test -n "$with_gallium_drivers"; then HAVE_GALLIUM_R600=yes PKG_CHECK_MODULES([RADEON], [libdrm >= $LIBDRM_RADEON_REQUIRED libdrm_radeon >= $LIBDRM_RADEON_REQUIRED]) require_libdrm "r600" - if test "x$enable_opencl" = xyes; then + if test "x$enable_llvm" = xyes; then radeon_llvm_check $LLVM_REQUIRED_R600 "r600" llvm_add_component "asmparser" "r600" @@ -2304,7 +2327,9 @@ if test -n "$with_gallium_drivers"; then PKG_CHECK_MODULES([AMDGPU], [libdrm >= $LIBDRM_AMDGPU_REQUIRED libdrm_amdgpu >= $LIBDRM_AMDGPU_REQUIRED]) require_libdrm "radeonsi" radeon_llvm_check $LLVM_REQUIRED_RADEONSI "radeonsi" - require_basic_egl "radeonsi" + if test "x$enable_egl" = xyes; then + require_basic_egl "radeonsi" + fi ;; xnouveau) HAVE_GALLIUM_NOUVEAU=yes @@ -2497,7 +2522,6 @@ AM_CONDITIONAL(NEED_RADEON_DRM_WINSYS, test "x$HAVE_GALLIUM_R300" = xyes -o \ "x$HAVE_GALLIUM_R600" = xyes -o \ "x$HAVE_GALLIUM_RADEONSI" = xyes) AM_CONDITIONAL(NEED_WINSYS_XLIB, test "x$enable_glx" = xgallium-xlib) -AM_CONDITIONAL(NEED_RADEON_LLVM, test x$NEED_RADEON_LLVM = xyes) AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes) AM_CONDITIONAL(HAVE_GALLIUM_LLVM, test "x$enable_llvm" = xyes) AM_CONDITIONAL(USE_VC4_SIMULATOR, test x$USE_VC4_SIMULATOR = xyes) @@ -2520,8 +2544,10 @@ AC_SUBST([NINE_VERSION], "$NINE_MAJOR.$NINE_MINOR.$NINE_TINY") AC_SUBST([VDPAU_MAJOR], 1) AC_SUBST([VDPAU_MINOR], 0) -VA_MAJOR=`$PKG_CONFIG --modversion libva | $SED -n 's/\([[^\.]]*\)\..*$/\1/p'` -VA_MINOR=`$PKG_CONFIG --modversion libva | $SED -n 's/.*\.\(.*\)\..*$/\1/p'` +if test "x$enable_va" = xyes; then + VA_MAJOR=`$PKG_CONFIG --modversion libva | $SED -n 's/\([[^\.]]*\)\..*$/\1/p'` + VA_MINOR=`$PKG_CONFIG --modversion libva | $SED -n 's/.*\.\(.*\)\..*$/\1/p'` +fi AC_SUBST([VA_MAJOR], $VA_MAJOR) AC_SUBST([VA_MINOR], $VA_MINOR) @@ -2660,8 +2686,6 @@ AC_CONFIG_FILES([Makefile src/glx/windows/windowsdriproto.pc src/gtest/Makefile src/intel/Makefile - src/intel/tools/Makefile - src/intel/vulkan/Makefile src/loader/Makefile src/mapi/Makefile src/mapi/es1api/glesv1_cm.pc @@ -2685,7 +2709,7 @@ AC_CONFIG_FILES([Makefile src/mesa/main/tests/Makefile src/util/Makefile src/util/tests/hash_table/Makefile - src/vulkan/wsi/Makefile]) + src/vulkan/Makefile]) AC_OUTPUT