# 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
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
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
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
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"],
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"
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
[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
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.
AC_CHECK_FUNCS([dladdr])
LIBS="$save_LIBS"
+AC_CHECK_FUNC([dl_iterate_phdr], [DEFINES="$DEFINES -DHAVE_DL_ITERATE_PHDR"])
+
case "$host_os" in
darwin*)
;;
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
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"
;;
* )
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
# 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() {
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
}
# 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
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)
;;
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])
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])
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"
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
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
;;
[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
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"
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
"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)
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)
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
src/mesa/main/tests/Makefile
src/util/Makefile
src/util/tests/hash_table/Makefile
- src/vulkan/wsi/Makefile])
+ src/vulkan/Makefile])
AC_OUTPUT