X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=configure.ac;h=7d1a9bb8dd467beae21fb102479131bea60d4942;hb=d1fe26a62862f4e47a799222dca1bc1dc14ca4af;hp=78895a3ced4030a550bcee481a208170a18eba6c;hpb=1a100d4f2827cdfed67b563fba7ef2d9ea6a926b;p=mesa.git diff --git a/configure.ac b/configure.ac index 78895a3ced4..7d1a9bb8dd4 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 @@ -223,8 +224,11 @@ AX_GCC_FUNC_ATTRIBUTE([format]) AX_GCC_FUNC_ATTRIBUTE([malloc]) 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) @@ -247,18 +251,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" @@ -299,10 +306,6 @@ if test "x$GCC" = xyes; then # 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 @@ -342,9 +345,8 @@ if test "x$GXX" = xyes; then # 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]) @@ -513,6 +515,8 @@ else DEFINES="$DEFINES -DNDEBUG" fi +DEFAULT_GL_LIB_NAME=GL + dnl dnl Check if linker supports -Bsymbolic dnl @@ -610,6 +614,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 @@ -647,13 +668,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 @@ -756,6 +777,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"]) @@ -798,6 +820,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], @@ -858,8 +896,8 @@ AC_ARG_ENABLE([dri3], [enable_dri3="$enableval"], [enable_dri3="$dri3_default"]) AC_ARG_ENABLE([glx], - [AS_HELP_STRING([--enable-glx], - [enable GLX library @<:@default=enabled@:>@])], + [AS_HELP_STRING([--enable-glx@<:@=dri|xlib|gallium-xlib@:>@], + [enable the GLX library and choose an implementation @<:@default=auto@:>@])], [enable_glx="$enableval"], [enable_glx=yes]) AC_ARG_ENABLE([osmesa], @@ -925,11 +963,6 @@ AC_ARG_ENABLE([opencl_icd], @<:@default=disabled@:>@])], [enable_opencl_icd="$enableval"], [enable_opencl_icd=no]) -AC_ARG_ENABLE([xlib-glx], - [AS_HELP_STRING([--enable-xlib-glx], - [make GLX library Xlib-based instead of DRI-based @<:@default=disabled@:>@])], - [enable_xlib_glx="$enableval"], - [enable_xlib_glx=no]) AC_ARG_ENABLE([gallium-tests], [AS_HELP_STRING([--enable-gallium-tests], @@ -988,36 +1021,86 @@ AM_CONDITIONAL(NEED_OPENGL_COMMON, test "x$enable_opengl" = xyes -o \ "x$enable_gles1" = xyes -o \ "x$enable_gles2" = xyes) -if test "x$enable_glx" = xno; then - AC_MSG_WARN([GLX disabled, disabling Xlib-GLX]) - enable_xlib_glx=no -fi - -if test "x$enable_dri$enable_xlib_glx" = xyesyes; then - AC_MSG_ERROR([DRI and Xlib-GLX cannot be built together]) +# Validate GLX options +if test "x$enable_glx" = xyes; then + if test "x$enable_dri" = xyes; then + enable_glx=dri + elif test -n "$with_gallium_drivers"; then + enable_glx=gallium-xlib + else + enable_glx=xlib + fi fi +case "x$enable_glx" in +xdri | xxlib | xgallium-xlib) + # GLX requires OpenGL + if test "x$enable_opengl" = xno; then + AC_MSG_ERROR([GLX cannot be built without OpenGL]) + fi -if test "x$enable_opengl$enable_xlib_glx" = xnoyes; then - AC_MSG_ERROR([Xlib-GLX cannot be built without OpenGL]) -fi + # Check individual dependencies + case "x$enable_glx" in + xdri) + if test "x$enable_dri" = xno; then + AC_MSG_ERROR([DRI-based GLX requires DRI to be enabled]) + fi + ;; + xxlib) + if test "x$enable_dri" = xyes; then + AC_MSG_ERROR([Xlib-based GLX cannot be built with DRI enabled]) + fi + ;; + xgallium-xlib ) + if test "x$enable_dri" = xyes; then + AC_MSG_ERROR([Xlib-based (Gallium) GLX cannot be built with DRI enabled]) + fi + if test -z "$with_gallium_drivers"; then + AC_MSG_ERROR([Xlib-based (Gallium) GLX cannot be built without Gallium enabled]) + fi + ;; + esac + ;; +xno) + ;; +*) + AC_MSG_ERROR([Illegal value for --enable-glx: $enable_glx]) + ;; +esac -# Disable GLX if OpenGL is not enabled -if test "x$enable_glx$enable_opengl" = xyesno; then - AC_MSG_WARN([OpenGL not enabled, disabling GLX]) - enable_glx=no -fi +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 -# Disable GLX if DRI and Xlib-GLX are not enabled -if test "x$enable_glx" = xyes -a \ - "x$enable_dri" = xno -a \ - "x$enable_xlib_glx" = xno; then - AC_MSG_WARN([Neither DRI nor Xlib-GLX enabled, disabling GLX]) - enable_glx=no + PKG_CHECK_MODULES([GLVND], libglvnd >= 0.1.0) + DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1" + DEFAULT_GL_LIB_NAME=GLX_mesa fi -AM_CONDITIONAL(HAVE_DRI_GLX, test "x$enable_glx" = xyes -a \ - "x$enable_dri" = xyes) - # Check for libdrm PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED], [have_libdrm=yes], [have_libdrm=no]) @@ -1072,10 +1155,6 @@ dnl dnl Driver specific build directories dnl -if test -n "$with_gallium_drivers" -a "x$enable_glx$enable_xlib_glx" = xyesyes; then - NEED_WINSYS_XLIB="yes" -fi - if test "x$enable_gallium_osmesa" = xyes; then if ! echo "$with_gallium_drivers" | grep -q 'swrast'; then AC_MSG_ERROR([gallium_osmesa requires the gallium swrast driver]) @@ -1268,8 +1347,8 @@ AC_ARG_ENABLE([driglx-direct], dnl dnl libGL configuration per driver dnl -case "x$enable_glx$enable_xlib_glx" in -xyesyes) +case "x$enable_glx" in +xxlib | xgallium-xlib) # Xlib-based GLX dri_modules="x11 xext xcb" PKG_CHECK_MODULES([XLIBGL], [$dri_modules]) @@ -1279,7 +1358,7 @@ xyesyes) GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS" GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm $PTHREAD_LIBS" ;; -xyesno) +xdri) # DRI-based GLX PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED]) @@ -1306,7 +1385,7 @@ xyesno) if test x"$enable_dri3" = xyes; then PKG_CHECK_EXISTS([xcb >= $XCB_REQUIRED], [], AC_MSG_ERROR([DRI3 requires xcb >= $XCB_REQUIRED])) - dri3_modules="xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED" + dri3_modules="xcb xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED" PKG_CHECK_MODULES([XCB_DRI3], [$dri3_modules]) fi fi @@ -1368,11 +1447,11 @@ AC_SUBST([HAVE_XF86VIDMODE]) dnl dnl More GLX setup dnl -case "x$enable_glx$enable_xlib_glx" in -xyesyes) +case "x$enable_glx" in +xxlib | xgallium-xlib) DEFINES="$DEFINES -DUSE_XSHM" ;; -xyesno) +xdri) DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING" if test "x$driglx_direct" = xyes; then DEFINES="$DEFINES -DGLX_DIRECT_RENDERING" @@ -1567,9 +1646,9 @@ 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]) if test -n "$with_vulkan_drivers"; then @@ -1596,7 +1675,7 @@ fi AM_CONDITIONAL(NEED_MEGADRIVER, test -n "$DRI_DIRS") -AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_xlib_glx" = xyes -o \ +AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_glx" = xxlib -o \ "x$enable_osmesa" = xyes -o \ -n "$DRI_DIRS") @@ -1611,7 +1690,7 @@ AC_ARG_WITH([osmesa-bits], [osmesa_bits="$withval"], [osmesa_bits=8]) if test "x$osmesa_bits" != x8; then - if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then + if test "x$enable_dri" = xyes -o "x$enable_glx" != xno; then AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver]) osmesa_bits=8 fi @@ -1767,7 +1846,12 @@ if test "x$enable_xvmc" = xyes -o \ "x$enable_vdpau" = xyes -o \ "x$enable_omx" = xyes -o \ "x$enable_va" = xyes; then - PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED]) + if test x"$enable_dri3" = xyes; then + PKG_CHECK_MODULES([VL], [xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED + x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED]) + else + PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED]) + fi need_gallium_vl_winsys=yes fi AM_CONDITIONAL(NEED_GALLIUM_VL_WINSYS, test "x$need_gallium_vl_winsys" = xyes) @@ -1958,6 +2042,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]) ;; @@ -1978,11 +2065,11 @@ else EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM" fi -AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep -q 'x11') -AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep -q 'wayland') +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_NULL, echo "$egl_platforms" | grep -q 'null') +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") @@ -2023,6 +2110,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' \ @@ -2100,7 +2190,7 @@ if test "x$enable_gallium_llvm" = xyes; then LLVM_COMPONENTS="engine bitwriter mcjit mcdisassembler" 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" @@ -2248,6 +2338,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` @@ -2317,34 +2446,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 @@ -2414,7 +2535,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 @@ -2459,12 +2580,13 @@ AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes) AM_CONDITIONAL(HAVE_INTEL_VULKAN, test "x$HAVE_INTEL_VULKAN" = xyes) -AM_CONDITIONAL(HAVE_INTEL_DRIVERS, test "x$HAVE_INTEL_VULKAN" = xyes) +AM_CONDITIONAL(HAVE_INTEL_DRIVERS, test "x$HAVE_INTEL_VULKAN" = xyes -o \ + "x$HAVE_I965_DRI" = xyes) 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$NEED_WINSYS_XLIB" = 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_MESA_LLVM, test x$MESA_LLVM = x1) @@ -2474,7 +2596,6 @@ if test "x$USE_VC4_SIMULATOR" = xyes -a "x$HAVE_GALLIUM_ILO" = xyes; then fi AM_CONDITIONAL(HAVE_LIBDRM, test "x$have_libdrm" = xyes) -AM_CONDITIONAL(HAVE_X11_DRIVER, test "x$enable_xlib_glx" = xyes) AM_CONDITIONAL(HAVE_OSMESA, test "x$enable_osmesa" = xyes) AM_CONDITIONAL(HAVE_GALLIUM_OSMESA, test "x$enable_gallium_osmesa" = xyes) @@ -2508,6 +2629,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)])], @@ -2621,6 +2744,10 @@ AC_CONFIG_FILES([Makefile src/glx/apple/Makefile src/glx/tests/Makefile src/gtest/Makefile + src/intel/Makefile + src/intel/genxml/Makefile + src/intel/isl/Makefile + src/intel/vulkan/Makefile src/loader/Makefile src/mapi/Makefile src/mapi/es1api/glesv1_cm.pc @@ -2647,6 +2774,14 @@ AC_CONFIG_FILES([Makefile 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 dnl Output some configuration info for the user dnl @@ -2685,12 +2820,15 @@ if test "x$enable_dri" != xno; then echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR" fi -case "x$enable_glx$enable_xlib_glx" in -xyesyes) +case "x$enable_glx" in +xdri) + echo " GLX: DRI-based" + ;; +xxlib) echo " GLX: Xlib-based" ;; -xyesno) - echo " GLX: DRI-based" +xgallium-xlib) + echo " GLX: Xlib-based (Gallium)" ;; *) echo " GLX: $enable_glx"