X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=configure.ac;h=890a37999cfe94b57c6df04a664c6d0ad506a842;hb=e027935a795ecf546f3e4abcc25655766f9615ac;hp=b2065d3fe14aeb6e6f91913854eb0eb3fbb90db8;hpb=fc30992a54dbf4274e8741ebd64f289e06b38096;p=mesa.git diff --git a/configure.ac b/configure.ac index b2065d3fe14..890a37999cf 100644 --- a/configure.ac +++ b/configure.ac @@ -73,7 +73,7 @@ AC_SUBST([OPENCL_VERSION]) # 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_RADEON_REQUIRED=2.4.71 LIBDRM_AMDGPU_REQUIRED=2.4.63 LIBDRM_INTEL_REQUIRED=2.4.75 LIBDRM_NVVIEUX_REQUIRED=2.4.66 @@ -83,7 +83,7 @@ LIBDRM_VC4_REQUIRED=2.4.69 LIBDRM_ETNAVIV_REQUIRED=2.4.74 dnl Versions for external dependencies -DRI2PROTO_REQUIRED=2.6 +DRI2PROTO_REQUIRED=2.8 DRI3PROTO_REQUIRED=1.0 PRESENTPROTO_REQUIRED=1.0 GLPROTO_REQUIRED=1.4.14 @@ -94,6 +94,7 @@ WAYLAND_REQUIRED=1.11 XCB_REQUIRED=1.9.3 XCBDRI2_REQUIRED=1.8 XCBGLX_REQUIRED=1.8.1 +XDAMAGE_REQUIRED=1.1 XSHMFENCE_REQUIRED=1.1 XVMC_REQUIRED=1.0.6 PYTHON_MAKO_REQUIRED=0.8.0 @@ -304,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" @@ -312,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 @@ -337,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 @@ -350,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. @@ -442,7 +443,7 @@ int main () { CFLAGS=$save_CFLAGS AC_ARG_ENABLE(pwr8, - [AC_HELP_STRING([--disable-pwr8-inst], + [AS_HELP_STRING([--disable-pwr8-inst], [disable POWER8-specific instructions])], [enable_pwr8=$enableval], [enable_pwr8=auto]) @@ -767,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*) ;; @@ -901,42 +904,30 @@ llvm_add_target() { # $1 is the llvm-config command with arguments. 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' \ - -e 's/-Wcovered-switch-default\>//g' \ - -e 's/-O.\>//g' \ - -e 's/-g\>//g' \ - -e 's/-Wall\>//g' \ - -e 's/-Wcast-qual\>//g' \ - -e 's/-Woverloaded-virtual\>//g' \ - -e 's/-fcolor-diagnostics\>//g' \ - -e 's/-fdata-sections\>//g' \ - -e 's/-ffunction-sections\>//g' \ - -e 's/-fno-exceptions\>//g' \ - -e 's/-fomit-frame-pointer\>//g' \ - -e 's/-fvisibility-inlines-hidden\>//g' \ - -e 's/-fPIC\>//g' \ - -e 's/-fstack-protector-strong\>//g' + 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/^ //' } llvm_set_environment_variables() { if test "x$LLVM_CONFIG" != xno; then LLVM_VERSION=`$LLVM_CONFIG --version | egrep -o '^[[0-9.]]+'` - LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags` LLVM_CPPFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cppflags"` - LLVM_CFLAGS=$LLVM_CPPFLAGS # CPPFLAGS seem to be sufficient - LLVM_CXXFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cxxflags"` LLVM_INCLUDEDIR=`$LLVM_CONFIG --includedir` LLVM_LIBDIR=`$LLVM_CONFIG --libdir` - # We need to respect LLVM_CFLAGS when compiling LLVM headers. + # We need to respect LLVM_CPPFLAGS when compiling LLVM headers. save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $LLVM_CFLAGS" + CFLAGS="$CFLAGS $LLVM_CPPFLAGS" AC_COMPUTE_INT([LLVM_VERSION_MAJOR], [LLVM_VERSION_MAJOR], [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"]) @@ -962,8 +953,8 @@ llvm_set_environment_variables() { } require_llvm() { - if test "x$enable_gallium_llvm" != "xyes"; then - AC_MSG_ERROR([--enable-gallium-llvm is required when building $1]) + if test "x$enable_llvm" != "xyes"; then + AC_MSG_ERROR([--enable-llvm is required when building $1]) fi } @@ -1471,7 +1462,7 @@ xdri) # DRI-based GLX # find the DRI deps for libGL - dri_modules="x11 xext xdamage xfixes x11-xcb xcb xcb-glx >= $XCBGLX_REQUIRED" + dri_modules="x11 xext xdamage >= $XDAMAGE_REQUIRED xfixes x11-xcb xcb xcb-glx >= $XCBGLX_REQUIRED" if test x"$driglx_direct" = xyes; then if test x"$dri_platform" = xdrm ; then @@ -1683,17 +1674,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) @@ -1703,11 +1694,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]) @@ -1720,25 +1711,41 @@ fi dnl dnl Gallium LLVM -dnl -dnl With follow-up commits we'll rework --enable-gallium-llvm to --enable-llvm -dnl Since that is too invasive to stable, do the more conservative thing for now -dnl and consider it as a global LLVM toggle. +dnl Deprecated: kept for backwards compatibility dnl AC_ARG_ENABLE([gallium-llvm], [AS_HELP_STRING([--enable-gallium-llvm], - [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])], + [DEPRECATED: use --enable-llvm instead])], [enable_gallium_llvm="$enableval"], [enable_gallium_llvm=auto]) -if test "x$enable_gallium_llvm" = xauto; then - case "$host_cpu" in - i*86|x86_64|amd64) enable_gallium_llvm=yes;; - esac +if test "x$enable_gallium_llvm" != xauto; then + AC_MSG_WARN([The --enable-gallium-llvm option has been deprecated. Use --enable-llvm instead.]) + enable_llvm=$enable_gallium_llvm fi -if test "x$enable_gallium_llvm" = xyes -a "x$FOUND_LLVM" = xno; then - AC_MSG_ERROR([--enable-gallium-llvm selected but llvm-config is not found]) +dnl +dnl LLVM +dnl +AC_ARG_ENABLE([llvm], + [AS_HELP_STRING([--enable-llvm], + [build with LLVM support @<:@default=enabled on x86/x86_64@:>@])], + [enable_llvm="$enableval"], + [enable_llvm=auto]) + +if test "x$enable_llvm" = xauto -a "x$FOUND_LLVM" = xyes; then + if test "x$FOUND_LLVM" = xyes; then + case "$host_cpu" in + i*86|x86_64|amd64) enable_llvm=yes;; + *) enable_llvm=no;; + esac + else + enable_llvm=no + fi +fi + +if test "x$enable_llvm" = xyes -a "x$FOUND_LLVM" = xno; then + AC_MSG_ERROR([--enable-llvm selected but llvm-config is not found]) fi # @@ -1768,6 +1775,10 @@ 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 @@ -1775,13 +1786,13 @@ if test -n "$with_vulkan_drivers"; then if test "x$HAVE_I965_DRI" != xyes; then AC_MSG_ERROR([Intel Vulkan driver requires the i965 dri driver]) fi - HAVE_INTEL_VULKAN=yes; + HAVE_INTEL_VULKAN=yes ;; xradeon) 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]) @@ -2223,13 +2234,6 @@ require_basic_egl() { esac } -radeon_gallium_llvm_check() { - if test "x$enable_gallium_llvm" != "xyes"; then - AC_MSG_ERROR([--enable-gallium-llvm is required when building $2]) - fi - radeon_llvm_check $* -} - swr_require_cxx_feature_flags() { feature_name="$1" preprocessor_test="$2" @@ -2294,7 +2298,7 @@ if test -n "$with_gallium_drivers"; then PKG_CHECK_MODULES([RADEON], [libdrm >= $LIBDRM_RADEON_REQUIRED libdrm_radeon >= $LIBDRM_RADEON_REQUIRED]) require_libdrm "r600" if test "x$enable_opencl" = xyes; then - radeon_gallium_llvm_check $LLVM_REQUIRED_R600 "r600" + radeon_llvm_check $LLVM_REQUIRED_R600 "r600" llvm_add_component "asmparser" "r600" llvm_add_component "bitreader" "r600" @@ -2305,8 +2309,10 @@ if test -n "$with_gallium_drivers"; then PKG_CHECK_MODULES([RADEON], [libdrm >= $LIBDRM_RADEON_REQUIRED libdrm_radeon >= $LIBDRM_RADEON_REQUIRED]) PKG_CHECK_MODULES([AMDGPU], [libdrm >= $LIBDRM_AMDGPU_REQUIRED libdrm_amdgpu >= $LIBDRM_AMDGPU_REQUIRED]) require_libdrm "radeonsi" - radeon_gallium_llvm_check $LLVM_REQUIRED_RADEONSI "radeonsi" - require_basic_egl "radeonsi" + radeon_llvm_check $LLVM_REQUIRED_RADEONSI "radeonsi" + if test "x$enable_egl" = xyes; then + require_basic_egl "radeonsi" + fi ;; xnouveau) HAVE_GALLIUM_NOUVEAU=yes @@ -2328,7 +2334,7 @@ if test -n "$with_gallium_drivers"; then ;; xswrast) HAVE_GALLIUM_SOFTPIPE=yes - if test "x$enable_gallium_llvm" = xyes; then + if test "x$enable_llvm" = xyes; then HAVE_GALLIUM_LLVMPIPE=yes fi ;; @@ -2374,7 +2380,7 @@ if test -n "$with_gallium_drivers"; then done fi -if test "x$enable_gallium_llvm" = "xyes" -a "$with_gallium_drivers"; then +if test "x$enable_llvm" = "xyes" -a "$with_gallium_drivers"; then llvm_require_version $LLVM_REQUIRED_GALLIUM "gallium" llvm_add_default_components "gallium" fi @@ -2382,15 +2388,19 @@ fi 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_ERROR([Building with imx requires etnaviv]) + AC_MSG_ERROR([Building with imx requires etnaviv]) fi dnl dnl Set defines and buildtime variables only when using LLVM. dnl -if test "x$enable_gallium_llvm" = xyes; then +if test "x$enable_llvm" = xyes; then DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DMESA_LLVM_VERSION_PATCH=$LLVM_VERSION_PATCH" + LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags` + LLVM_CFLAGS=$LLVM_CPPFLAGS # CPPFLAGS seem to be sufficient + LLVM_CXXFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cxxflags"` + 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 @@ -2497,7 +2507,7 @@ AM_CONDITIONAL(NEED_RADEON_DRM_WINSYS, test "x$HAVE_GALLIUM_R300" = xyes -o \ AM_CONDITIONAL(NEED_WINSYS_XLIB, test "x$enable_glx" = xgallium-xlib) AM_CONDITIONAL(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_gallium_llvm" = xyes) +AM_CONDITIONAL(HAVE_GALLIUM_LLVM, test "x$enable_llvm" = xyes) AM_CONDITIONAL(USE_VC4_SIMULATOR, test x$USE_VC4_SIMULATOR = xyes) AM_CONDITIONAL(HAVE_LIBDRM, test "x$have_libdrm" = xyes) @@ -2683,7 +2693,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 @@ -2777,7 +2787,7 @@ else fi echo "" -if test "x$enable_gallium_llvm" = xyes; then +if test "x$enable_llvm" = xyes; then echo " llvm: yes" echo " llvm-config: $LLVM_CONFIG" echo " llvm-version: $LLVM_VERSION" @@ -2824,7 +2834,7 @@ echo " CFLAGS: $cflags" echo " CXXFLAGS: $cxxflags" echo " Macros: $defines" echo "" -if test "x$enable_gallium_llvm" = xyes; then +if test "x$enable_llvm" = xyes; then echo " LLVM_CFLAGS: $LLVM_CFLAGS" echo " LLVM_CXXFLAGS: $LLVM_CXXFLAGS" echo " LLVM_CPPFLAGS: $LLVM_CPPFLAGS"