summaryrefslogtreecommitdiff
path: root/lib/mesa/configure.ac
diff options
context:
space:
mode:
authorJonathan Gray <jsg@cvs.openbsd.org>2017-08-26 16:59:42 +0000
committerJonathan Gray <jsg@cvs.openbsd.org>2017-08-26 16:59:42 +0000
commit81ece42815e80818f160cdd85fab57d65b56ad15 (patch)
tree1059ff094da1aa50334115952fcb1cfcbda3acc6 /lib/mesa/configure.ac
parentb0244145d5bb49623d58f6b5cab8143ada692b60 (diff)
Revert to Mesa 13.0.6 to hopefully address rendering issues a handful of
people have reported with xpdf/fvwm on ivy bridge with modesetting driver.
Diffstat (limited to 'lib/mesa/configure.ac')
-rw-r--r--lib/mesa/configure.ac1449
1 files changed, 694 insertions, 755 deletions
diff --git a/lib/mesa/configure.ac b/lib/mesa/configure.ac
index 5cc47013f..6120ab1b2 100644
--- a/lib/mesa/configure.ac
+++ b/lib/mesa/configure.ac
@@ -9,6 +9,7 @@ dnl Copyright © 2009-2014 Jon TURNEY
dnl Copyright © 2011-2012 Benjamin Franzke
dnl Copyright © 2008-2014 David Airlie
dnl Copyright © 2009-2013 Brian Paul
+dnl Copyright © 2003-2007 Keith Packard, Daniel Stone
dnl
dnl Permission is hereby granted, free of charge, to any person obtaining a
dnl copy of this software and associated documentation files (the "Software"),
@@ -68,46 +69,30 @@ AC_SUBST([OSMESA_VERSION])
OPENCL_VERSION=1
AC_SUBST([OPENCL_VERSION])
-# The idea is that libdrm is distributed as one cohesive package, even
-# though it is composed of multiple libraries. However some drivers
-# may have different version requirements than others. This list
-# 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.75
-LIBDRM_RADEON_REQUIRED=2.4.71
-LIBDRM_AMDGPU_REQUIRED=2.4.79
-LIBDRM_INTEL_REQUIRED=2.4.75
+dnl Versions for external dependencies
+LIBDRM_REQUIRED=2.4.66
+LIBDRM_RADEON_REQUIRED=2.4.56
+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.74
+LIBDRM_FREEDRENO_REQUIRED=2.4.68
LIBDRM_VC4_REQUIRED=2.4.69
-LIBDRM_ETNAVIV_REQUIRED=2.4.80
-
-dnl Versions for external dependencies
-DRI2PROTO_REQUIRED=2.8
+DRI2PROTO_REQUIRED=2.6
+DRI3PROTO_REQUIRED=1.0
+PRESENTPROTO_REQUIRED=1.0
GLPROTO_REQUIRED=1.4.14
LIBOMXIL_BELLAGIO_REQUIRED=0.0
LIBVA_REQUIRED=0.38.0
VDPAU_REQUIRED=1.1
-WAYLAND_REQUIRED=1.11
+WAYLAND_REQUIRED=1.2.0
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.3
-
-dnl LLVM versions
-LLVM_REQUIRED_GALLIUM=3.3.0
-LLVM_REQUIRED_OPENCL=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.9.0
dnl Check for progs
AC_PROG_CPP
@@ -126,6 +111,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"],
@@ -255,7 +241,6 @@ AX_GCC_FUNC_ATTRIBUTE([unused])
AX_GCC_FUNC_ATTRIBUTE([visibility])
AX_GCC_FUNC_ATTRIBUTE([warn_unused_result])
AX_GCC_FUNC_ATTRIBUTE([weak])
-AX_GCC_FUNC_ATTRIBUTE([alias])
AM_CONDITIONAL([GEN_ASM_OFFSETS], test "x$GEN_ASM_OFFSETS" = xyes)
@@ -276,11 +261,11 @@ _SAVE_LDFLAGS="$LDFLAGS"
_SAVE_CPPFLAGS="$CPPFLAGS"
dnl Compiler macros
-DEFINES="-D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS"
+DEFINES="-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS"
AC_SUBST([DEFINES])
android=no
case "$host_os" in
-*-android*)
+*-android)
android=yes
;;
linux*|*-gnu*|gnu*|cygwin*)
@@ -314,7 +299,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"
@@ -322,7 +307,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
@@ -347,7 +332,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
@@ -360,7 +345,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.
@@ -424,33 +409,6 @@ if test "x$GCC_ATOMIC_BUILTINS_SUPPORTED" = x1; then
fi
AM_CONDITIONAL([GCC_ATOMIC_BUILTINS_SUPPORTED], [test x$GCC_ATOMIC_BUILTINS_SUPPORTED = x1])
-dnl Check if host supports 32-bit atomics
-AC_MSG_CHECKING(whether __sync_add_and_fetch_4 is supported)
-AC_LINK_IFELSE([AC_LANG_SOURCE([[
-#include <stdint.h>
-uint64_t v;
-int main() {
- return __sync_add_and_fetch(&v, (uint32_t)1);
-}]])], GCC_32BIT_ATOMICS_SUPPORTED=yes, GCC_32BIT_ATOMICS_SUPPORTED=no)
-if test "x$GCC_32BIT_ATOMICS_SUPPORTED" != xyes; then
- DEFINES="$DEFINES -DMISSING_32BIT_ATOMICS"
-fi
-AC_MSG_RESULT($GCC_32BIT_ATOMICS_SUPPORTED)
-
-dnl Check if host supports 64-bit atomics
-dnl note that lack of support usually results in link (not compile) error
-AC_MSG_CHECKING(whether __sync_add_and_fetch_8 is supported)
-AC_LINK_IFELSE([AC_LANG_SOURCE([[
-#include <stdint.h>
-uint64_t v;
-int main() {
- return __sync_add_and_fetch(&v, (uint64_t)1);
-}]])], GCC_64BIT_ATOMICS_SUPPORTED=yes, GCC_64BIT_ATOMICS_SUPPORTED=no)
-if test "x$GCC_64BIT_ATOMICS_SUPPORTED" != xyes; then
- DEFINES="$DEFINES -DMISSING_64BIT_ATOMICS"
-fi
-AC_MSG_RESULT($GCC_64BIT_ATOMICS_SUPPORTED)
-
dnl Check for Endianness
AC_C_BIGENDIAN(
little_endian=no,
@@ -479,7 +437,7 @@ int main () {
CFLAGS=$save_CFLAGS
AC_ARG_ENABLE(pwr8,
- [AS_HELP_STRING([--disable-pwr8-inst],
+ [AC_HELP_STRING([--disable-pwr8-inst],
[disable POWER8-specific instructions])],
[enable_pwr8=$enableval], [enable_pwr8=auto])
@@ -511,10 +469,12 @@ dnl explicitly requested. If both disabled, set to static since shared
dnl was explicitly requested.
case "x$enable_static$enable_shared" in
xyesyes)
- AC_MSG_ERROR([Cannot enable both static and shared. Building using --enable-shared is strongly recommended])
+ AC_MSG_WARN([Cannot build static and shared libraries, disabling shared])
+ enable_shared=no
;;
xnono)
- AC_MSG_ERROR([Cannot disable both static and shared. Building using --enable-shared is strongly recommended])
+ AC_MSG_WARN([Cannot disable both static and shared libraries, enabling shared])
+ enable_shared=yes
;;
esac
@@ -537,12 +497,6 @@ AC_ARG_ENABLE([profile],
[enable_profile=no]
)
-AC_ARG_ENABLE([sanitize],
- [AS_HELP_STRING([--enable-sanitize@<:@=address|undefined@:>@],
- [enable code sanitizer @<:@default=disabled@:>@])],
- [enable_sanitize="$enableval"],
- [enable_sanitize=no])
-
if test "x$enable_profile" = xyes; then
DEFINES="$DEFINES -DPROFILE"
if test "x$GCC" = xyes; then
@@ -578,20 +532,7 @@ else
DEFINES="$DEFINES -DNDEBUG"
fi
-if test "x$enable_sanitize" != xno; then
- if test "x$enable_profile" = xyes; then
- AC_MSG_WARN([Sanitize and Profile are enabled at the same time])
- fi
-
- CFLAGS="$CFLAGS -fsanitize=$enable_sanitize"
- CXXFLAGS="$CXXFLAGS -fsanitize=$enable_sanitize"
- LDFLAGS="$LDFLAGS -fsanitize=$enable_sanitize"
-
- AC_LINK_IFELSE(
- [AC_LANG_SOURCE([int main(){return 0;}])],
- [],
- [AC_MSG_FAILURE([sanitize flags '$enable_sanitize' not supported])])
-fi
+DEFAULT_GL_LIB_NAME=GL
dnl
dnl Check if linker supports -Bsymbolic
@@ -633,12 +574,7 @@ case "$host_os" in
openbsd* | darwin* )
LD_NO_UNDEFINED="" ;;
*)
- if test "x$enable_sanitize" = xno; then
- LD_NO_UNDEFINED="-Wl,--no-undefined"
- else
- LD_NO_UNDEFINED=""
- fi
- ;;
+ LD_NO_UNDEFINED="-Wl,--no-undefined" ;;
esac
AC_SUBST([LD_NO_UNDEFINED])
@@ -695,6 +631,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
@@ -728,6 +681,36 @@ esac
AC_SUBST([LIB_EXT])
+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="$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="$DEFAULT_GL_LIB_NAME"])
+AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
+
+dnl
+dnl Mangled Mesa support
+dnl
+AC_ARG_ENABLE([mangling],
+ [AS_HELP_STRING([--enable-mangling],
+ [enable mangled symbols and library name @<:@default=disabled@:>@])],
+ [enable_mangling="${enableval}"],
+ [enable_mangling=no]
+)
+if test "x${enable_mangling}" = "xyes" ; then
+ DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
+ GL_LIB="Mangled${GL_LIB}"
+ OSMESA_LIB="Mangled${OSMESA_LIB}"
+fi
+AC_SUBST([GL_LIB])
+AC_SUBST([OSMESA_LIB])
+
dnl
dnl potentially-infringing-but-nobody-knows-for-sure stuff
dnl
@@ -748,7 +731,7 @@ dnl Arch/platform-specific settings
dnl
AC_ARG_ENABLE([asm],
[AS_HELP_STRING([--disable-asm],
- [disable assembly usage @<:@default=enabled on supported platforms@:>@])],
+ [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
[enable_asm="$enableval"],
[enable_asm=yes]
)
@@ -814,7 +797,6 @@ 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_HEADER([sys/random.h], [DEFINES="$DEFINES -DHAVE_SYS_RANDOM_H"])
AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"])
AC_CHECK_FUNC([mkostemp], [DEFINES="$DEFINES -DHAVE_MKOSTEMP"])
@@ -831,8 +813,6 @@ 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*)
;;
@@ -847,12 +827,6 @@ esac
dnl See if posix_memalign is available
AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
-dnl See if getentropy is available
-AC_CHECK_FUNC([getentropy], [DEFINES="$DEFINES -DHAVE_GETENTROPY"])
-
-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
@@ -860,21 +834,12 @@ if test "x$ax_pthread_ok" = xno; then
fi
dnl AX_PTHREADS leaves PTHREAD_LIBS empty for gcc and sets PTHREAD_CFLAGS
dnl to -pthread, which causes problems if we need -lpthread to appear in
-dnl pkgconfig files. Since Android doesn't have a pthread lib, this check
-dnl is not valid for that platform.
-if test "x$android" = xno; then
- test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread"
-fi
-dnl According to the manual when using pthreads, one should add -pthread to
-dnl both compile and link-time arguments.
-dnl In practise that should be sufficient for all platforms, since any
-dnl platforms build with GCC and Clang support the flag.
-PTHREAD_LIBS="$PTHREAD_LIBS -pthread"
-
-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
+dnl pkgconfig files.
+test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread"
+
+dnl pthread-stubs is mandatory on targets where it exists
case "$host_os" in
-linux* | cygwin* | darwin* | solaris* | *-gnu* | gnu*)
+cygwin* )
pthread_stubs_possible="no"
;;
* )
@@ -906,216 +871,6 @@ fi
AC_SUBST([SELINUX_CFLAGS])
AC_SUBST([SELINUX_LIBS])
-dnl
-dnl LLVM
-dnl
-AC_ARG_ENABLE([llvm-shared-libs],
- [AS_HELP_STRING([--enable-llvm-shared-libs],
- [link with LLVM shared libraries @<:@default=enabled@:>@])],
- [enable_llvm_shared_libs="$enableval"],
- [enable_llvm_shared_libs=yes])
-
-AC_ARG_WITH([llvm-prefix],
- [AS_HELP_STRING([--with-llvm-prefix],
- [Prefix for LLVM installations in non-standard locations])],
- [llvm_prefix="$withval"],
- [llvm_prefix=''])
-
-PKG_CHECK_MODULES([LIBELF], [libelf], [have_libelf=yes], [have_libelf=no])
-if test "x$have_libelf" = xno; then
- LIBELF_LIBS=''
- LIBELF_CFLAGS=''
- AC_CHECK_LIB([elf], [elf_memory], [have_libelf=yes;LIBELF_LIBS=-lelf], [have_libelf=no])
- AC_SUBST([LIBELF_LIBS])
- AC_SUBST([LIBELF_CFLAGS])
-fi
-
-if test -z "$LLVM_CONFIG"; then
- if test -n "$llvm_prefix"; then
- AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no], ["$llvm_prefix/bin"])
- else
- AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no])
- fi
-fi
-
-llvm_add_component() {
- new_llvm_component=$1
- driver_name=$2
-
- if $LLVM_CONFIG --components | grep -iqw $new_llvm_component ; then
- LLVM_COMPONENTS="${LLVM_COMPONENTS} ${new_llvm_component}"
- else
- AC_MSG_ERROR([LLVM component '$new_llvm_component' not enabled in your LLVM build. Required by $driver_name.])
- fi
-}
-
-llvm_add_default_components() {
- driver_name=$1
-
- # Required default components
- llvm_add_component "bitwriter" $driver_name
- llvm_add_component "engine" $driver_name
- llvm_add_component "mcdisassembler" $driver_name
- llvm_add_component "mcjit" $driver_name
-
- # Optional default components
- if $LLVM_CONFIG --components | grep -iqw inteljitevents ; then
- LLVM_COMPONENTS="$LLVM_COMPONENTS inteljitevents"
- fi
-}
-
-llvm_add_target() {
- new_llvm_target=$1
- driver_name=$2
-
- if $LLVM_CONFIG --targets-built | grep -iqw $new_llvm_target ; then
- llvm_add_component $new_llvm_target $driver_name
- else
- AC_MSG_ERROR([LLVM target '$new_llvm_target' not enabled in your LLVM build. Required by $driver_name.])
- fi
-}
-
-# Call this inside ` ` to get the return value.
-# $1 is the llvm-config command with arguments.
-strip_unwanted_llvm_flags() {
- 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() {
- if test "x$LLVM_CONFIG" != xno; then
- LLVM_VERSION=`$LLVM_CONFIG --version | egrep -o '^[[0-9.]]+'`
- LLVM_CPPFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cppflags"`
- LLVM_INCLUDEDIR=`$LLVM_CONFIG --includedir`
- LLVM_LIBDIR=`$LLVM_CONFIG --libdir`
-
- # We need to respect LLVM_CPPFLAGS when compiling LLVM headers.
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $LLVM_CPPFLAGS"
-
- AC_COMPUTE_INT([LLVM_VERSION_MAJOR], [LLVM_VERSION_MAJOR],
- [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
- AC_COMPUTE_INT([LLVM_VERSION_MINOR], [LLVM_VERSION_MINOR],
- [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
- AC_COMPUTE_INT([LLVM_VERSION_PATCH], [LLVM_VERSION_PATCH],
- [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
-
- CFLAGS="$save_CFLAGS"
-
- # Only needed for LLVM < 3.6.0
- if test -z "$LLVM_VERSION_PATCH"; then
- LLVM_VERSION_PATCH=0
- fi
-
- LLVM_VERSION_INT="${LLVM_VERSION_MAJOR}0${LLVM_VERSION_MINOR}"
-
- FOUND_LLVM=yes
- else
- FOUND_LLVM=no
- LLVM_VERSION_INT=0
- fi
-}
-
-require_llvm() {
- if test "x$enable_llvm" != "xyes"; then
- AC_MSG_ERROR([--enable-llvm is required when building $1])
- fi
-}
-
-llvm_require_version() {
- require_llvm $2
-
- llvm_target_version_major=`echo $1 | cut -d. -f1 | egrep -o '^[[0-9]]+'`
- llvm_target_version_minor=`echo $1 | cut -d. -f2 | egrep -o '^[[0-9]]+'`
- llvm_target_version_patch=`echo $1 | cut -d. -f3 | egrep -o '^[[0-9]]+'`
-
- if test "$LLVM_VERSION_MAJOR" -gt "$llvm_target_version_major"; then
- # major > required major
- # --> OK
- return
- fi
-
- if test "$LLVM_VERSION_MAJOR" -eq "$llvm_target_version_major"; then
- if test "$LLVM_VERSION_MINOR" -gt "$llvm_target_version_minor"; then
- # major = required major and
- # minor > required minor
- # --> OK
- return
- else
- if test "$LLVM_VERSION_MINOR" -eq "$llvm_target_version_minor"; then
- if test "$LLVM_VERSION_PATCH" -ge "$llvm_target_version_patch"; then
- # major = required major and
- # minor = required minor and
- # patch >= required patch
- # --> OK
- return
- fi
- fi
- fi
- fi
-
- AC_MSG_ERROR([LLVM $1 or newer is required for $2])
-}
-
-radeon_llvm_check() {
- if test ${LLVM_VERSION_INT} -lt 307; then
- amdgpu_llvm_target_name='r600'
- else
- amdgpu_llvm_target_name='amdgpu'
- fi
-
- llvm_require_version $*
-
- llvm_add_target $amdgpu_llvm_target_name $2
-
- llvm_add_default_components $2
- llvm_add_component "bitreader" $2
- llvm_add_component "ipo" $2
-
- if test "x$have_libelf" != xyes; then
- AC_MSG_ERROR([$2 requires libelf when using llvm])
- fi
-}
-
-llvm_set_environment_variables
-
-AC_SUBST([LLVM_CFLAGS])
-AC_SUBST([LLVM_CXXFLAGS])
-AC_SUBST([LLVM_LIBS])
-AC_SUBST([LLVM_LDFLAGS])
-AC_SUBST([LLVM_INCLUDEDIR])
-
-dnl
-dnl libunwind
-dnl
-AC_ARG_ENABLE([libunwind],
- [AS_HELP_STRING([--enable-libunwind],
- [Use libunwind for backtracing (default: auto)])],
- [LIBUNWIND="$enableval"],
- [LIBUNWIND="auto"])
-
-PKG_CHECK_EXISTS(libunwind, [HAVE_LIBUNWIND=yes], [HAVE_LIBUNWIND=no])
-if test "x$LIBUNWIND" = "xauto"; then
- LIBUNWIND="$HAVE_LIBUNWIND"
-fi
-
-if test "x$LIBUNWIND" = "xyes"; then
- PKG_CHECK_MODULES(LIBUNWIND, libunwind)
- AC_DEFINE(HAVE_LIBUNWIND, 1, [Have libunwind support])
-fi
-
-
dnl Options for APIs
AC_ARG_ENABLE([opengl],
[AS_HELP_STRING([--disable-opengl],
@@ -1159,11 +914,11 @@ AC_ARG_ENABLE([lmsensors],
AM_CONDITIONAL(HAVE_LIBSENSORS, test "x$enable_lmsensors" = xyes)
if test "x$enable_lmsensors" = xyes ; then
DEFINES="${DEFINES} -DHAVE_LIBSENSORS=1"
- LIBSENSORS_LIBS="-lsensors"
+ LIBSENSORS_LDFLAGS="-lsensors"
else
- LIBSENSORS_LIBS=""
+ LIBSENSORS_LDFLAGS=""
fi
-AC_SUBST(LIBSENSORS_LIBS)
+AC_SUBST(LIBSENSORS_LDFLAGS)
case "$host_os" in
linux*)
@@ -1211,16 +966,9 @@ AC_ARG_ENABLE([xa],
[enable_xa=no])
AC_ARG_ENABLE([gbm],
[AS_HELP_STRING([--enable-gbm],
- [enable gbm library @<:@default=yes except cygwin@:>@])],
+ [enable gbm library @<:@default=auto@:>@])],
[enable_gbm="$enableval"],
- [case "$host_os" in
- cygwin*)
- enable_gbm=no
- ;;
- *)
- enable_gbm=yes
- ;;
- esac])
+ [enable_gbm=auto])
AC_ARG_ENABLE([nine],
[AS_HELP_STRING([--enable-nine],
[enable build of the nine Direct3D9 API @<:@default=no@:>@])],
@@ -1273,7 +1021,7 @@ GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
AC_ARG_WITH([gallium-drivers],
[AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
[comma delimited Gallium drivers list, e.g.
- "i915,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,swr,vc4,virgl,etnaviv,imx"
+ "i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl"
@<:@default=r300,r600,svga,swrast@:>@])],
[with_gallium_drivers="$withval"],
[with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
@@ -1315,9 +1063,6 @@ AM_CONDITIONAL(HAVE_OPENGL_ES2, test "x$enable_gles2" = xyes)
AM_CONDITIONAL(NEED_OPENGL_COMMON, test "x$enable_opengl" = xyes -o \
"x$enable_gles1" = xyes -o \
"x$enable_gles2" = xyes)
-AM_CONDITIONAL(NEED_KHRPLATFORM, test "x$enable_egl" = xyes -o \
- "x$enable_gles1" = xyes -o \
- "x$enable_gles2" = xyes)
# Validate GLX options
if test "x$enable_glx" = xyes; then
@@ -1370,18 +1115,15 @@ 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)
-DEFAULT_GL_LIB_NAME=GL
-
dnl
dnl Libglvnd configuration
dnl
AC_ARG_ENABLE([libglvnd],
[AS_HELP_STRING([--enable-libglvnd],
- [Build GLX and EGL for libglvnd @<:@default=disabled@:>@])],
+ [Build for libglvnd @<:@default=disabled@:>@])],
[enable_libglvnd="$enableval"],
[enable_libglvnd=no])
-AM_CONDITIONAL(USE_LIBGLVND, test "x$enable_libglvnd" = xyes)
-
+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
@@ -1397,44 +1139,11 @@ if test "x$enable_libglvnd" = xyes ; then
;;
esac
- PKG_CHECK_MODULES([GLVND], libglvnd >= 0.2.0)
- LIBGLVND_DATADIR=`$PKG_CONFIG --variable=datadir libglvnd`
- AC_SUBST([LIBGLVND_DATADIR])
-
- DEFINES="${DEFINES} -DUSE_LIBGLVND=1"
+ PKG_CHECK_MODULES([GLVND], libglvnd >= 0.1.0)
+ DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"
DEFAULT_GL_LIB_NAME=GLX_mesa
fi
-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="$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="$DEFAULT_GL_LIB_NAME"])
-AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
-
-dnl
-dnl Mangled Mesa support
-dnl
-AC_ARG_ENABLE([mangling],
- [AS_HELP_STRING([--enable-mangling],
- [enable mangled symbols and library name @<:@default=disabled@:>@])],
- [enable_mangling="${enableval}"],
- [enable_mangling=no]
-)
-if test "x${enable_mangling}" = "xyes" ; then
- DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
- GL_LIB="Mangled${GL_LIB}"
- OSMESA_LIB="Mangled${OSMESA_LIB}"
-fi
-AC_SUBST([GL_LIB])
-AC_SUBST([OSMESA_LIB])
-
# Check for libdrm
PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
[have_libdrm=yes], [have_libdrm=no])
@@ -1510,24 +1219,158 @@ if test "x$enable_gallium_osmesa" = xyes; then
fi
fi
-require_dri_shared_libs_and_glapi() {
- if test "x$enable_static" = xyes; then
- AC_MSG_ERROR([$1 cannot be build as static library])
- fi
+AC_SUBST([MESA_LLVM])
- if test "x$enable_dri" != xyes; then
- # There is only a single backend which won't be build/used otherwise.
- # XXX: Revisit this as the egl/haiku is a thing.
- AC_MSG_ERROR([$1 requires --enable-dri])
- fi
+# SHA1 hashing
+AC_ARG_WITH([sha1],
+ [AS_HELP_STRING([--with-sha1=libc|libmd|libnettle|libgcrypt|libcrypto|libsha1|CommonCrypto|CryptoAPI],
+ [choose SHA1 implementation])])
+case "x$with_sha1" in
+x | xlibc | xlibmd | xlibnettle | xlibgcrypt | xlibcrypto | xlibsha1 | xCommonCrypto | xCryptoAPI)
+ ;;
+*)
+ AC_MSG_ERROR([Illegal value for --with-sha1: $with_sha1])
+esac
+
+AC_CHECK_FUNC([SHA1Init], [HAVE_SHA1_IN_LIBC=yes])
+if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_LIBC" = xyes; then
+ with_sha1=libc
+fi
+if test "x$with_sha1" = xlibc && test "x$HAVE_SHA1_IN_LIBC" != xyes; then
+ AC_MSG_ERROR([sha1 in libc requested but not found])
+fi
+if test "x$with_sha1" = xlibc; then
+ AC_DEFINE([HAVE_SHA1_IN_LIBC], [1],
+ [Use libc SHA1 functions])
+ SHA1_LIBS=""
+fi
+AC_CHECK_FUNC([CC_SHA1_Init], [HAVE_SHA1_IN_COMMONCRYPTO=yes])
+if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_COMMONCRYPTO" = xyes; then
+ with_sha1=CommonCrypto
+fi
+if test "x$with_sha1" = xCommonCrypto && test "x$HAVE_SHA1_IN_COMMONCRYPTO" != xyes; then
+ AC_MSG_ERROR([CommonCrypto requested but not found])
+fi
+if test "x$with_sha1" = xCommonCrypto; then
+ AC_DEFINE([HAVE_SHA1_IN_COMMONCRYPTO], [1],
+ [Use CommonCrypto SHA1 functions])
+ SHA1_LIBS=""
+fi
+dnl stdcall functions cannot be tested with AC_CHECK_LIB
+AC_CHECK_HEADER([wincrypt.h], [HAVE_SHA1_IN_CRYPTOAPI=yes], [], [#include <windows.h>])
+if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_CRYPTOAPI" = xyes; then
+ with_sha1=CryptoAPI
+fi
+if test "x$with_sha1" = xCryptoAPI && test "x$HAVE_SHA1_IN_CRYPTOAPI" != xyes; then
+ AC_MSG_ERROR([CryptoAPI requested but not found])
+fi
+if test "x$with_sha1" = xCryptoAPI; then
+ AC_DEFINE([HAVE_SHA1_IN_CRYPTOAPI], [1],
+ [Use CryptoAPI SHA1 functions])
+ SHA1_LIBS=""
+fi
+AC_CHECK_LIB([md], [SHA1Init], [HAVE_LIBMD=yes])
+if test "x$with_sha1" = x && test "x$HAVE_LIBMD" = xyes; then
+ with_sha1=libmd
+fi
+if test "x$with_sha1" = xlibmd && test "x$HAVE_LIBMD" != xyes; then
+ AC_MSG_ERROR([libmd requested but not found])
+fi
+if test "x$with_sha1" = xlibmd; then
+ AC_DEFINE([HAVE_SHA1_IN_LIBMD], [1],
+ [Use libmd SHA1 functions])
+ SHA1_LIBS=-lmd
+fi
+PKG_CHECK_MODULES([LIBSHA1], [libsha1], [HAVE_LIBSHA1=yes], [HAVE_LIBSHA1=no])
+if test "x$with_sha1" = x && test "x$HAVE_LIBSHA1" = xyes; then
+ with_sha1=libsha1
+fi
+if test "x$with_sha1" = xlibsha1 && test "x$HAVE_LIBSHA1" != xyes; then
+ AC_MSG_ERROR([libsha1 requested but not found])
+fi
+if test "x$with_sha1" = xlibsha1; then
+ AC_DEFINE([HAVE_SHA1_IN_LIBSHA1], [1],
+ [Use libsha1 for SHA1])
+ SHA1_LIBS=-lsha1
+fi
+AC_CHECK_LIB([nettle], [nettle_sha1_init], [HAVE_LIBNETTLE=yes])
+if test "x$with_sha1" = x && test "x$HAVE_LIBNETTLE" = xyes; then
+ with_sha1=libnettle
+fi
+if test "x$with_sha1" = xlibnettle && test "x$HAVE_LIBNETTLE" != xyes; then
+ AC_MSG_ERROR([libnettle requested but not found])
+fi
+if test "x$with_sha1" = xlibnettle; then
+ AC_DEFINE([HAVE_SHA1_IN_LIBNETTLE], [1],
+ [Use libnettle SHA1 functions])
+ SHA1_LIBS=-lnettle
+fi
+AC_CHECK_LIB([gcrypt], [gcry_md_open], [HAVE_LIBGCRYPT=yes])
+if test "x$with_sha1" = x && test "x$HAVE_LIBGCRYPT" = xyes; then
+ with_sha1=libgcrypt
+fi
+if test "x$with_sha1" = xlibgcrypt && test "x$HAVE_LIBGCRYPT" != xyes; then
+ AC_MSG_ERROR([libgcrypt requested but not found])
+fi
+if test "x$with_sha1" = xlibgcrypt; then
+ AC_DEFINE([HAVE_SHA1_IN_LIBGCRYPT], [1],
+ [Use libgcrypt SHA1 functions])
+ SHA1_LIBS=-lgcrypt
+fi
+# We don't need all of the OpenSSL libraries, just libcrypto
+AC_CHECK_LIB([crypto], [SHA1_Init], [HAVE_LIBCRYPTO=yes])
+PKG_CHECK_MODULES([OPENSSL], [openssl], [HAVE_OPENSSL_PKC=yes],
+ [HAVE_OPENSSL_PKC=no])
+if test "x$HAVE_LIBCRYPTO" = xyes || test "x$HAVE_OPENSSL_PKC" = xyes; then
+ if test "x$with_sha1" = x; then
+ with_sha1=libcrypto
+ fi
+else
+ if test "x$with_sha1" = xlibcrypto; then
+ AC_MSG_ERROR([OpenSSL libcrypto requested but not found])
+ fi
+fi
+if test "x$with_sha1" = xlibcrypto; then
+ if test "x$HAVE_LIBCRYPTO" = xyes; then
+ SHA1_LIBS=-lcrypto
+ else
+ SHA1_LIBS="$OPENSSL_LIBS"
+ SHA1_CFLAGS="$OPENSSL_CFLAGS"
+ fi
+fi
+AC_MSG_CHECKING([for SHA1 implementation])
+AC_MSG_RESULT([$with_sha1])
+AC_SUBST(SHA1_LIBS)
+AC_SUBST(SHA1_CFLAGS)
+
+# Enable a define for SHA1
+if test "x$with_sha1" != "x"; then
+ DEFINES="$DEFINES -DHAVE_SHA1"
+fi
- if test "x$enable_shared_glapi" != xyes; then
- AC_MSG_ERROR([$1 requires --enable-shared-glapi])
+# Allow user to configure out the shader-cache feature
+AC_ARG_ENABLE([shader-cache],
+ AS_HELP_STRING([--disable-shader-cache], [Disable binary shader cache]),
+ [enable_shader_cache="$enableval"],
+ [if test "x$with_sha1" != "x"; then
+ enable_shader_cache=yes
+ else
+ enable_shader_cache=no
+ fi])
+if test "x$with_sha1" = "x"; then
+ if test "x$enable_shader_cache" = "xyes"; then
+ AC_MSG_ERROR([Cannot enable shader cache (no SHA-1 implementation found)])
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
if test "x$enable_dri" = xyes; then
- require_dri_shared_libs_and_glapi "DRI"
+ if test "$enable_static" = yes; then
+ AC_MSG_ERROR([Cannot use static libraries for DRI drivers])
+ fi
# not a hard requirement as swrast does not depend on it
if test "x$have_libdrm" = xyes; then
@@ -1563,7 +1406,7 @@ xdri)
# DRI-based GLX
# find the DRI deps for libGL
- dri_modules="x11 xext xdamage >= $XDAMAGE_REQUIRED xfixes x11-xcb xcb xcb-glx >= $XCBGLX_REQUIRED"
+ dri_modules="x11 xext xdamage xfixes x11-xcb xcb xcb-glx >= $XCBGLX_REQUIRED"
if test x"$driglx_direct" = xyes; then
if test x"$dri_platform" = xdrm ; then
@@ -1572,10 +1415,20 @@ xdri)
PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED"
+ if test x"$enable_dri3" = xyes; then
+ PKG_CHECK_MODULES([DRI3PROTO], [dri3proto >= $DRI3PROTO_REQUIRED])
+ PKG_CHECK_MODULES([PRESENTPROTO], [presentproto >= $PRESENTPROTO_REQUIRED])
+ fi
if test x"$enable_dri" = xyes; then
dri_modules="$dri_modules xcb-dri2 >= $XCBDRI2_REQUIRED"
fi
+
+ if test x"$enable_dri3" = xyes; then
+ PKG_CHECK_EXISTS([xcb >= $XCB_REQUIRED], [], AC_MSG_ERROR([DRI3 requires xcb >= $XCB_REQUIRED]))
+ dri3_modules="xcb xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
+ PKG_CHECK_MODULES([XCB_DRI3], [$dri3_modules])
+ fi
fi
if test x"$dri_platform" = xapple ; then
DEFINES="$DEFINES -DGLX_USE_APPLEGL"
@@ -1645,14 +1498,13 @@ dnl
AC_ARG_ENABLE([glx-tls],
[AS_HELP_STRING([--enable-glx-tls],
- [enable TLS support in GLX @<:@default=enabled@:>@])],
+ [enable TLS support in GLX @<:@default=disabled@:>@])],
[GLX_USE_TLS="$enableval"],
- [GLX_USE_TLS=yes])
+ [GLX_USE_TLS=no])
AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
-if test "x$GLX_USE_TLS" = xyes; then
- DEFINES="$DEFINES -DGLX_USE_TLS"
-fi
+AS_IF([test "x$GLX_USE_TLS" = xyes -a "x$ax_pthread_ok" = xyes],
+ [DEFINES="${DEFINES} -DGLX_USE_TLS"])
dnl Read-only text section on x86 hardened platforms
AC_ARG_ENABLE([glx-read-only-text],
@@ -1665,111 +1517,6 @@ if test "x$enable_glx_read_only_text" = xyes; then
fi
dnl
-dnl DEPRECATED: EGL Platforms configuration
-dnl
-AC_ARG_WITH([egl-platforms],
- [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
- [DEPRECATED: use --with-platforms instead@<:@default=auto@:>@])],
- [with_egl_platforms="$withval"],
- [with_egl_platforms=auto])
-
-if test "x$with_egl_platforms" = xauto; then
- with_egl_platforms="x11,surfaceless"
- if test "x$enable_gbm" = xyes; then
- with_egl_platforms="$with_egl_platforms,drm"
- fi
-else
- AC_MSG_WARN([--with-egl-platforms is deprecated. Use --with-platforms instead.])
-fi
-
-dnl
-dnl Platforms configuration
-dnl
-AC_ARG_WITH([platforms],
- [AS_HELP_STRING([--with-platforms@<:@=DIRS...@:>@],
- [comma delimited native platforms libEGL/Vulkan/other supports, e.g.
- "x11,drm,wayland,surfaceless..." @<:@default=auto@:>@])],
- [with_platforms="$withval"],
- [with_platforms=auto])
-
-# Reuse the autodetection rather than duplicating it.
-if test "x$with_platforms" = xauto; then
- with_platforms=$with_egl_platforms
-fi
-
-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], [:])
-fi
-
-# Do per platform setups and checks
-platforms=`IFS=', '; echo $with_platforms`
-for plat in $platforms; do
- case "$plat" in
- wayland)
-
- PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED])
-
- if test "x$WAYLAND_SCANNER" = "x:"; then
- AC_MSG_ERROR([wayland-scanner is needed to compile the wayland platform])
- fi
- DEFINES="$DEFINES -DHAVE_WAYLAND_PLATFORM"
- ;;
-
- x11)
- PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED xcb-xfixes])
- DEFINES="$DEFINES -DHAVE_X11_PLATFORM"
- ;;
-
- drm)
- test "x$enable_gbm" = "xno" &&
- AC_MSG_ERROR([EGL platform drm needs gbm])
- DEFINES="$DEFINES -DHAVE_DRM_PLATFORM"
- ;;
-
- surfaceless)
- DEFINES="$DEFINES -DHAVE_SURFACELESS_PLATFORM"
- ;;
-
- android)
- PKG_CHECK_MODULES([ANDROID], [cutils hardware sync])
- DEFINES="$DEFINES -DHAVE_ANDROID_PLATFORM"
- ;;
-
- *)
- AC_MSG_ERROR([platform '$plat' does not exist])
- ;;
- esac
-
- case "$plat" in
- wayland|drm|surfaceless)
- require_libdrm "Platform $plat"
- ;;
- esac
-done
-
-if test "x$enable_glx" != xno; then
- if ! echo "$platforms" | grep -q 'x11'; then
- AC_MSG_ERROR([Building without the x11 platform as GLX is enabled, is not supported])
- fi
-fi
-
-if test x"$enable_dri3" = xyes; then
- DEFINES="$DEFINES -DHAVE_DRI3"
-
- dri3_modules="x11-xcb xcb >= $XCB_REQUIRED xcb-dri3 xcb-xfixes xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
- PKG_CHECK_MODULES([XCB_DRI3], [$dri3_modules])
-fi
-
-AM_CONDITIONAL(HAVE_PLATFORM_X11, echo "$platforms" | grep -q 'x11')
-AM_CONDITIONAL(HAVE_PLATFORM_WAYLAND, echo "$platforms" | grep -q 'wayland')
-AM_CONDITIONAL(HAVE_PLATFORM_DRM, echo "$platforms" | grep -q 'drm')
-AM_CONDITIONAL(HAVE_PLATFORM_SURFACELESS, echo "$platforms" | grep -q 'surfaceless')
-AM_CONDITIONAL(HAVE_PLATFORM_ANDROID, echo "$platforms" | grep -q 'android')
-
-dnl
dnl More DRI setup
dnl
dnl Directory for DRI drivers
@@ -1790,7 +1537,7 @@ dnl Which drivers to build - default is chosen by platform
AC_ARG_WITH([dri-drivers],
[AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
[comma delimited classic DRI drivers list, e.g.
- "i915,i965,nouveau,radeon,r200,swrast" @<:@default=auto@:>@])],
+ "swrast,i965,radeon" @<:@default=auto@:>@])],
[with_dri_drivers="$withval"],
[with_dri_drivers=auto])
@@ -1811,6 +1558,11 @@ if test "x$enable_dri" = xyes; then
# Platform specific settings and drivers to build
case "$host_os" in
linux*)
+ DEFINES="$DEFINES -DHAVE_ALIAS"
+ if test "x$enable_dri3" = xyes; then
+ DEFINES="$DEFINES -DHAVE_DRI3"
+ fi
+
case "$host_cpu" in
powerpc* | sparc*)
# Build only the drivers for cards that exist on PowerPC/sparc
@@ -1820,13 +1572,19 @@ if test "x$enable_dri" = xyes; then
;;
esac
;;
+ *freebsd* | dragonfly* | *netbsd* | openbsd*)
+ DEFINES="$DEFINES -DHAVE_ALIAS"
+ ;;
+ gnu*)
+ DEFINES="$DEFINES -DHAVE_ALIAS"
+ ;;
cygwin*)
if test "x$with_dri_drivers" = "xyes"; then
with_dri_drivers="swrast"
fi
;;
darwin*)
- DEFINES="$DEFINES -DBUILDING_MESA"
+ DEFINES="$DEFINES -DGLX_ALIAS_UNSUPPORTED -DBUILDING_MESA"
if test "x$with_dri_drivers" = "xyes"; then
with_dri_drivers="swrast"
fi
@@ -1865,32 +1623,27 @@ if test -n "$with_dri_drivers"; then
DRI_DIRS="$DRI_DIRS $driver"
case "x$driver" in
xi915)
- require_libdrm "i915"
- HAVE_I915_DRI=yes
- PKG_CHECK_MODULES([INTEL], [libdrm >= $LIBDRM_INTEL_REQUIRED libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
+ HAVE_I915_DRI=yes;
+ PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
;;
xi965)
- require_libdrm "i965"
- HAVE_I965_DRI=yes
- PKG_CHECK_MODULES([INTEL], [libdrm >= $LIBDRM_INTEL_REQUIRED libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
+ HAVE_I965_DRI=yes;
+ PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
;;
xnouveau)
- require_libdrm "nouveau"
- HAVE_NOUVEAU_DRI=yes
- PKG_CHECK_MODULES([NVVIEUX], [libdrm >= $LIBDRM_NVVIEUX_REQUIRED libdrm_nouveau >= $LIBDRM_NVVIEUX_REQUIRED])
+ HAVE_NOUVEAU_DRI=yes;
+ PKG_CHECK_MODULES([NVVIEUX], [libdrm_nouveau >= $LIBDRM_NVVIEUX_REQUIRED])
;;
xradeon)
- require_libdrm "radeon"
HAVE_RADEON_DRI=yes;
- PKG_CHECK_MODULES([RADEON], [libdrm >= $LIBDRM_RADEON_REQUIRED libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
+ PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
;;
xr200)
- require_libdrm "r200"
- HAVE_R200_DRI=yes
- PKG_CHECK_MODULES([RADEON], [libdrm >= $LIBDRM_RADEON_REQUIRED libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
+ HAVE_R200_DRI=yes;
+ PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
;;
xswrast)
- HAVE_SWRAST_DRI=yes
+ HAVE_SWRAST_DRI=yes;
;;
*)
AC_MSG_ERROR([classic DRI driver '$driver' does not exist])
@@ -1901,45 +1654,6 @@ if test -n "$with_dri_drivers"; then
fi
-dnl
-dnl Gallium LLVM
-dnl Deprecated: kept for backwards compatibility
-dnl
-AC_ARG_ENABLE([gallium-llvm],
- [AS_HELP_STRING([--enable-gallium-llvm],
- [DEPRECATED: use --enable-llvm instead])],
- [enable_gallium_llvm="$enableval"],
- [enable_gallium_llvm=auto])
-
-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
-
-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
-
#
# Vulkan driver configuration
#
@@ -1966,35 +1680,27 @@ AC_ARG_WITH([vulkan-icddir],
[VULKAN_ICD_INSTALL_DIR='${datarootdir}/vulkan/icd.d'])
AC_SUBST([VULKAN_ICD_INSTALL_DIR])
-require_x11_dri3() {
- if echo "$platforms" | grep -q 'x11'; then
- if test "x$enable_dri3" != xyes; then
- AC_MSG_ERROR([$1 Vulkan driver requires DRI3 when built with X11])
- fi
- fi
-}
-
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)
- require_libdrm "ANV"
- PKG_CHECK_MODULES([INTEL], [libdrm >= $LIBDRM_INTEL_REQUIRED libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
- require_x11_dri3 "ANV"
- HAVE_INTEL_VULKAN=yes
+ if test "x$HAVE_I965_DRI" != xyes; then
+ AC_MSG_ERROR([Intel Vulkan driver requires the i965 dri driver])
+ fi
+ if test "x$with_sha1" == "x"; then
+ AC_MSG_ERROR([Intel Vulkan driver requires SHA1])
+ fi
+ 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"
- require_x11_dri3 "radv"
- HAVE_RADEON_VULKAN=yes
- ;;
+ 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])
;;
@@ -2004,7 +1710,6 @@ if test -n "$with_vulkan_drivers"; then
fi
-DEFINES="$DEFINES -DENABLE_SHADER_CACHE"
AM_CONDITIONAL(NEED_MEGADRIVER, test -n "$DRI_DIRS")
AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_glx" = xxlib -o \
"x$enable_osmesa" = xyes -o \
@@ -2056,8 +1761,27 @@ AC_SUBST([OSMESA_PC_LIB_PRIV])
dnl
dnl gbm configuration
dnl
+if test "x$enable_gbm" = xauto; then
+ case "$with_egl_platforms" in
+ *drm*)
+ enable_gbm=yes ;;
+ *)
+ enable_gbm=no ;;
+ esac
+fi
if test "x$enable_gbm" = xyes; then
- require_dri_shared_libs_and_glapi "gbm"
+ if test "x$enable_dri" = xyes; then
+ if test "x$enable_shared_glapi" = xno; then
+ AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
+ fi
+ else
+ # Strictly speaking libgbm does not require --enable-dri, although
+ # both of its backends do. Thus one can build libgbm without any
+ # backends if --disable-dri is set.
+ # To avoid unnecessary complexity of checking if at least one backend
+ # is available when building, just mandate --enable-dri.
+ AC_MSG_ERROR([gbm requires --enable-dri])
+ fi
fi
AM_CONDITIONAL(HAVE_GBM, test "x$enable_gbm" = xyes)
# FINISHME: GBM has a number of dependencies which we should add below
@@ -2069,13 +1793,32 @@ AC_SUBST([GBM_PC_LIB_PRIV])
dnl
dnl EGL configuration
dnl
+EGL_CLIENT_APIS=""
if test "x$enable_egl" = xyes; then
EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS $PTHREAD_LIBS"
AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
- require_dri_shared_libs_and_glapi "egl"
+ if test "$enable_static" != yes; then
+ if test "x$enable_dri" = xyes; then
+ HAVE_EGL_DRIVER_DRI2=1
+ if test "x$enable_shared_glapi" = xno; then
+ AC_MSG_ERROR([egl_dri2 requires --enable-shared-glapi])
+ fi
+ if test "x$enable_dri3" = xyes; then
+ HAVE_EGL_DRIVER_DRI3=1
+ if test "x$enable_shared_glapi" = xno; then
+ AC_MSG_ERROR([egl_dri3 requires --enable-shared-glapi])
+ fi
+ fi
+ else
+ # Avoid building an "empty" libEGL. Drop/update this
+ # when other backends (haiku?) come along.
+ AC_MSG_ERROR([egl requires --enable-dri])
+ fi
+
+ fi
fi
AM_CONDITIONAL(HAVE_EGL, test "x$enable_egl" = xyes)
AC_SUBST([EGL_LIB_DEPS])
@@ -2098,47 +1841,23 @@ if test "x$enable_xa" = xyes; then
fi
AM_CONDITIONAL(HAVE_ST_XA, test "x$enable_xa" = xyes)
-if echo $platforms | grep -q "x11"; then
- have_xvmc_platform=yes
-else
- have_xvmc_platform=no
-fi
-
-if echo $platforms | grep -q "x11"; then
- have_vdpau_platform=yes
-else
- have_vdpau_platform=no
-fi
-
-if echo $platforms | grep -q "x11\|drm"; then
- have_omx_platform=yes
-else
- have_omx_platform=no
-fi
-
-if echo $platforms | grep -q "x11\|drm\|wayland"; then
- have_va_platform=yes
-else
- have_va_platform=no
-fi
-
dnl
dnl Gallium G3DVL configuration
dnl
if test -n "$with_gallium_drivers" -a "x$with_gallium_drivers" != xswrast; then
- if test "x$enable_xvmc" = xauto -a "x$have_xvmc_platform" = xyes; then
+ if test "x$enable_xvmc" = xauto; then
PKG_CHECK_EXISTS([xvmc >= $XVMC_REQUIRED], [enable_xvmc=yes], [enable_xvmc=no])
fi
- if test "x$enable_vdpau" = xauto -a "x$have_vdpau_platform" = xyes; then
+ if test "x$enable_vdpau" = xauto; then
PKG_CHECK_EXISTS([vdpau >= $VDPAU_REQUIRED], [enable_vdpau=yes], [enable_vdpau=no])
fi
- if test "x$enable_omx" = xauto -a "x$have_omx_platform" = xyes; then
+ if test "x$enable_omx" = xauto; then
PKG_CHECK_EXISTS([libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED], [enable_omx=yes], [enable_omx=no])
fi
- if test "x$enable_va" = xauto -a "x$have_va_platform" = xyes; then
+ if test "x$enable_va" = xauto; then
PKG_CHECK_EXISTS([libva >= $LIBVA_REQUIRED], [enable_va=yes], [enable_va=no])
fi
fi
@@ -2156,24 +1875,23 @@ 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)
if test "x$enable_xvmc" = xyes; then
- if test "x$have_xvmc_platform" != xyes; then
- AC_MSG_ERROR([XVMC requires the x11 platforms])
- fi
PKG_CHECK_MODULES([XVMC], [xvmc >= $XVMC_REQUIRED])
gallium_st="$gallium_st xvmc"
fi
AM_CONDITIONAL(HAVE_ST_XVMC, test "x$enable_xvmc" = xyes)
if test "x$enable_vdpau" = xyes; then
- if test "x$have_vdpau_platform" != xyes; then
- AC_MSG_ERROR([VDPAU requires the x11 platforms])
- fi
PKG_CHECK_MODULES([VDPAU], [vdpau >= $VDPAU_REQUIRED])
gallium_st="$gallium_st vdpau"
DEFINES="$DEFINES -DHAVE_ST_VDPAU"
@@ -2181,18 +1899,12 @@ fi
AM_CONDITIONAL(HAVE_ST_VDPAU, test "x$enable_vdpau" = xyes)
if test "x$enable_omx" = xyes; then
- if test "x$have_omx_platform" != xyes; then
- AC_MSG_ERROR([OMX requires at least one of the x11 or drm platforms])
- fi
PKG_CHECK_MODULES([OMX], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED])
gallium_st="$gallium_st omx"
fi
AM_CONDITIONAL(HAVE_ST_OMX, test "x$enable_omx" = xyes)
if test "x$enable_va" = xyes; then
- if test "x$have_va_platform" != xyes; then
- AC_MSG_ERROR([VA requires at least one of the x11 drm or wayland platforms])
- fi
PKG_CHECK_MODULES([VA], [libva >= $LIBVA_REQUIRED])
gallium_st="$gallium_st va"
fi
@@ -2231,6 +1943,15 @@ AC_ARG_WITH([clang-libdir],
[CLANG_LIBDIR=''])
PKG_CHECK_EXISTS([libclc], [have_libclc=yes], [have_libclc=no])
+PKG_CHECK_MODULES([LIBELF], [libelf], [have_libelf=yes], [have_libelf=no])
+
+if test "x$have_libelf" = xno; then
+ LIBELF_LIBS=''
+ LIBELF_CFLAGS=''
+ AC_CHECK_LIB([elf], [elf_memory], [have_libelf=yes;LIBELF_LIBS=-lelf], [have_libelf=no])
+ AC_SUBST([LIBELF_LIBS])
+ AC_SUBST([LIBELF_CFLAGS])
+fi
if test "x$enable_opencl" = xyes; then
if test -z "$with_gallium_drivers"; then
@@ -2279,55 +2000,269 @@ if test "x$enable_opencl" = xyes; then
AC_SUBST([CLOVER_STD_OVERRIDE])
fi
- llvm_require_version $LLVM_REQUIRED_OPENCL "opencl"
-
- llvm_add_default_components "opencl"
- llvm_add_component "all-targets" "opencl"
- llvm_add_component "linker" "opencl"
- llvm_add_component "instrumentation" "opencl"
- llvm_add_component "ipo" "opencl"
- llvm_add_component "irreader" "opencl"
- llvm_add_component "option" "opencl"
- llvm_add_component "objcarcopts" "opencl"
- llvm_add_component "profiledata" "opencl"
-
- dnl Check for Clang internal headers
- if test -z "$CLANG_LIBDIR"; then
- CLANG_LIBDIR=${LLVM_LIBDIR}
- fi
- CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION}
- AS_IF([test ! -f "$CLANG_RESOURCE_DIR/include/stddef.h"],
- [AC_MSG_ERROR([Could not find clang internal header stddef.h in $CLANG_RESOURCE_DIR Use --with-clang-libdir to specify the correct path to the clang libraries.])])
fi
AM_CONDITIONAL(HAVE_CLOVER, test "x$enable_opencl" = xyes)
AM_CONDITIONAL(HAVE_CLOVER_ICD, test "x$enable_opencl_icd" = xyes)
AC_SUBST([OPENCL_LIBNAME])
-AC_SUBST([CLANG_RESOURCE_DIR])
dnl
dnl Gallium configuration
dnl
AM_CONDITIONAL(HAVE_GALLIUM, test -n "$with_gallium_drivers")
+AC_SUBST([LLVM_BINDIR])
+AC_SUBST([LLVM_CFLAGS])
+AC_SUBST([LLVM_CPPFLAGS])
+AC_SUBST([LLVM_CXXFLAGS])
+AC_SUBST([LLVM_LIBDIR])
+AC_SUBST([LLVM_LIBS])
+AC_SUBST([LLVM_LDFLAGS])
+AC_SUBST([LLVM_INCLUDEDIR])
+AC_SUBST([LLVM_VERSION])
+AC_SUBST([CLANG_RESOURCE_DIR])
+
+case "x$enable_opengl$enable_gles1$enable_gles2" in
+x*yes*)
+ EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
+ ;;
+esac
+
+AC_SUBST([VG_LIB_DEPS])
+AC_SUBST([EGL_CLIENT_APIS])
+
+dnl
+dnl EGL Platforms configuration
+dnl
+AC_ARG_WITH([egl-platforms],
+ [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
+ [comma delimited native platforms libEGL supports, e.g.
+ "x11,drm" @<:@default=auto@:>@])],
+ [with_egl_platforms="$withval"],
+ [if test "x$enable_egl" = xyes; then
+ with_egl_platforms="x11"
+ else
+ with_egl_platforms=""
+ fi])
+
+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`,
+ WAYLAND_SCANNER='')
+if test "x$WAYLAND_SCANNER" = x; then
+ AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner])
+fi
+
+# Do per-EGL platform setups and checks
+egl_platforms=`IFS=', '; echo $with_egl_platforms`
+for plat in $egl_platforms; do
+ case "$plat" in
+ wayland)
+
+ PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED])
+
+ if test "x$WAYLAND_SCANNER" = x; then
+ AC_MSG_ERROR([wayland-scanner is needed to compile the wayland egl platform])
+ fi
+ ;;
+
+ x11)
+ PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED xcb-xfixes])
+ ;;
+
+ drm)
+ test "x$enable_gbm" = "xno" &&
+ AC_MSG_ERROR([EGL platform drm needs gbm])
+ ;;
+
+ surfaceless)
+ ;;
+
+ android)
+ ;;
+
+ *)
+ AC_MSG_ERROR([EGL platform '$plat' does not exist])
+ ;;
+ esac
+
+ case "$plat" in
+ wayland|drm|surfaceless)
+ require_libdrm "Platform $plat"
+ ;;
+ esac
+done
+
# libEGL wants to default to the first platform specified in
# ./configure. parse that here.
-if test "x$platforms" != "x"; then
- FIRST_PLATFORM_CAPS=`echo $platforms | sed 's| .*||' | tr '[[a-z]]' '[[A-Z]]'`
+if test "x$egl_platforms" != "x"; then
+ FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr '[[a-z]]' '[[A-Z]]'`
EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS"
else
EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM"
fi
+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")
+
AC_SUBST([EGL_NATIVE_PLATFORM])
AC_SUBST([EGL_CFLAGS])
# If we don't have the X11 platform, set this define so we don't try to include
# the X11 headers.
-if ! echo "$platforms" | grep -q 'x11'; then
+if ! echo "$egl_platforms" | grep -q 'x11'; then
DEFINES="$DEFINES -DMESA_EGL_NO_X11_HEADERS"
GL_PC_CFLAGS="$GL_PC_CFLAGS -DMESA_EGL_NO_X11_HEADERS"
fi
+dnl
+dnl Gallium LLVM
+dnl
+AC_ARG_ENABLE([gallium-llvm],
+ [AS_HELP_STRING([--enable-gallium-llvm],
+ [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
+ [enable_gallium_llvm="$enableval"],
+ [enable_gallium_llvm=auto])
+
+AC_ARG_ENABLE([llvm-shared-libs],
+ [AS_HELP_STRING([--enable-llvm-shared-libs],
+ [link with LLVM shared libraries @<:@default=enabled@:>@])],
+ [enable_llvm_shared_libs="$enableval"],
+ [enable_llvm_shared_libs=yes])
+
+AC_ARG_WITH([llvm-prefix],
+ [AS_HELP_STRING([--with-llvm-prefix],
+ [Prefix for LLVM installations in non-standard locations])],
+ [llvm_prefix="$withval"],
+ [llvm_prefix=''])
+
+
+# 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/-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'
+}
+
+llvm_check_version_for() {
+ if test "${LLVM_VERSION_INT}${LLVM_VERSION_PATCH}" -lt "${1}0${2}${3}"; then
+ AC_MSG_ERROR([LLVM $1.$2.$3 or newer is required for $4])
+ fi
+}
+
+
+
+if test -z "$with_gallium_drivers"; then
+ enable_gallium_llvm=no
+fi
+if test "x$enable_gallium_llvm" = xauto; then
+ case "$host_cpu" in
+ i*86|x86_64|amd64) enable_gallium_llvm=yes;;
+ esac
+fi
+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
+ AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no])
+ fi
+
+ if test "x$LLVM_CONFIG" != xno; then
+ LLVM_VERSION=`$LLVM_CONFIG --version | egrep -o '^[[0-9.]]+'`
+ LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
+ LLVM_BINDIR=`$LLVM_CONFIG --bindir`
+ 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`
+
+ AC_COMPUTE_INT([LLVM_VERSION_MAJOR], [LLVM_VERSION_MAJOR],
+ [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
+ AC_COMPUTE_INT([LLVM_VERSION_MINOR], [LLVM_VERSION_MINOR],
+ [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
+
+ LLVM_VERSION_PATCH=`echo $LLVM_VERSION | cut -d. -f3 | egrep -o '^[[0-9]]+'`
+ if test -z "$LLVM_VERSION_PATCH"; then
+ LLVM_VERSION_PATCH=0
+ fi
+
+ if test -n "${LLVM_VERSION_MAJOR}"; then
+ LLVM_VERSION_INT="${LLVM_VERSION_MAJOR}0${LLVM_VERSION_MINOR}"
+ else
+ LLVM_VERSION_INT=`echo $LLVM_VERSION | sed -e 's/\([[0-9]]\)\.\([[0-9]]\)/\10\2/g'`
+ fi
+
+ LLVM_REQUIRED_VERSION_MAJOR="3"
+ LLVM_REQUIRED_VERSION_MINOR="3"
+ if test "$LLVM_VERSION_INT" -lt "${LLVM_REQUIRED_VERSION_MAJOR}0${LLVM_REQUIRED_VERSION_MINOR}"; then
+ AC_MSG_ERROR([LLVM $LLVM_REQUIRED_VERSION_MAJOR.$LLVM_REQUIRED_VERSION_MINOR or newer is required])
+ fi
+
+ 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" "6" "0" "opencl"
+
+ LLVM_COMPONENTS="${LLVM_COMPONENTS} all-targets ipo linker instrumentation"
+ LLVM_COMPONENTS="${LLVM_COMPONENTS} irreader option objcarcopts profiledata"
+ fi
+ DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DMESA_LLVM_VERSION_PATCH=$LLVM_VERSION_PATCH"
+ MESA_LLVM=1
+
+ dnl Check for Clang internal headers
+ if test "x$enable_opencl" = xyes; then
+ if test -z "$CLANG_LIBDIR"; then
+ CLANG_LIBDIR=${LLVM_LIBDIR}
+ fi
+ CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION}
+ AS_IF([test ! -f "$CLANG_RESOURCE_DIR/include/stddef.h"],
+ [AC_MSG_ERROR([Could not find clang internal header stddef.h in $CLANG_RESOURCE_DIR Use --with-clang-libdir to specify the correct path to the clang libraries.])])
+ fi
+ else
+ MESA_LLVM=0
+ LLVM_VERSION_INT=0
+ fi
+else
+ MESA_LLVM=0
+ LLVM_VERSION_INT=0
+
+ if test "x$enable_opencl" = xyes; then
+ AC_MSG_ERROR([cannot enable OpenCL without LLVM])
+ fi
+fi
+
dnl Directory for XVMC libs
AC_ARG_WITH([xvmc-libdir],
[AS_HELP_STRING([--with-xvmc-libdir=DIR],
@@ -2355,8 +2290,7 @@ 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 --exists libomxil-bellagio && \
- $PKG_CONFIG --define-variable=libdir=\$libdir --variable=pluginsdir libomxil-bellagio`])
+ [OMX_LIB_INSTALL_DIR=`$PKG_CONFIG --define-variable=libdir=\$libdir --variable=pluginsdir libomxil-bellagio`])
AC_SUBST([OMX_LIB_INSTALL_DIR])
dnl Directory for VA libs
@@ -2376,33 +2310,61 @@ AC_ARG_WITH([d3d-libdir],
AC_SUBST([D3D_DRIVER_INSTALL_DIR])
dnl
-dnl r300 doesn't strictly require LLVM, but for performance reasons we
-dnl highly recommend LLVM usage. So require it at least on x86 and x86_64
-dnl architectures.
+dnl Gallium helper functions
dnl
-r300_require_llvm() {
- case "$host" in *gnux32) return;; esac
- case "$host_cpu" in
- i*86|x86_64|amd64) require_llvm $1
- ;;
- esac
+gallium_require_llvm() {
}
-dnl
-dnl DRM is needed by X, Wayland, and offscreen rendering.
-dnl Surfaceless is an alternative for the last one.
-dnl
-require_basic_egl() {
- case "$with_platforms" in
- *drm*|*surfaceless*)
+dnl This is for Glamor. Skip this if OpenGL is disabled.
+require_egl_drm() {
+ if test "x$enable_opengl" = xno; then
+ return 0
+ fi
+
+ case "$with_egl_platforms" in
+ *drm*)
;;
- *)
- AC_MSG_ERROR([$1 requires one of these:
- 1) --with-platforms=drm (X, Wayland, offscreen rendering based on DRM)
- 2) --with-platforms=surfaceless (offscreen only)
- Recommended options: drm,x11])
+ *)
+ AC_MSG_ERROR([--with-egl-platforms=drm is required to build the $1 driver.])
;;
esac
+ if test "x$enable_gbm" != xyes; then
+ AC_MSG_ERROR([--enable-gbm is required to build the $1 driver.])
+ fi
+}
+
+radeon_llvm_check() {
+ if test ${LLVM_VERSION_INT} -lt 307; then
+ amdgpu_llvm_target_name='r600'
+ else
+ amdgpu_llvm_target_name='amdgpu'
+ fi
+ 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
+ LLVM_COMPONENTS="${LLVM_COMPONENTS} $amdgpu_llvm_target_name bitreader ipo"
+ NEED_RADEON_LLVM=yes
+ if test "x$have_libelf" != xyes; then
+ AC_MSG_ERROR([$1 requires libelf when using llvm])
+ 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
+ AC_MSG_ERROR([LLVM version 3.6 or later required when building $1])
+ fi
+ if test "x$enable_gallium_llvm" != "xyes"; then
+ AC_MSG_ERROR([--enable-gallium-llvm is required when building $1])
+ fi
}
swr_require_cxx_feature_flags() {
@@ -2455,62 +2417,55 @@ if test -n "$with_gallium_drivers"; then
;;
xi915)
HAVE_GALLIUM_I915=yes
- PKG_CHECK_MODULES([INTEL], [libdrm >= $LIBDRM_INTEL_REQUIRED libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
+ PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
require_libdrm "Gallium i915"
;;
+ xilo)
+ HAVE_GALLIUM_ILO=yes
+ PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
+ require_libdrm "Gallium i965/ilo"
+ ;;
xr300)
HAVE_GALLIUM_R300=yes
- PKG_CHECK_MODULES([RADEON], [libdrm >= $LIBDRM_RADEON_REQUIRED libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
- require_libdrm "r300"
-# r300_require_llvm "r300"
+ PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
+ require_libdrm "Gallium R300"
+ gallium_require_llvm "Gallium R300"
;;
xr600)
HAVE_GALLIUM_R600=yes
- PKG_CHECK_MODULES([RADEON], [libdrm >= $LIBDRM_RADEON_REQUIRED libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
- require_libdrm "r600"
- if test "x$enable_llvm" = xyes; then
- radeon_llvm_check $LLVM_REQUIRED_R600 "r600"
-
- llvm_add_component "asmparser" "r600"
- llvm_add_component "bitreader" "r600"
+ PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
+ require_libdrm "Gallium R600"
+ if test "x$enable_opencl" = xyes; then
+ radeon_gallium_llvm_check "r600g" "3" "6" "0"
+ LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
fi
;;
xradeonsi)
HAVE_GALLIUM_RADEONSI=yes
- 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])
+ PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
+ PKG_CHECK_MODULES([AMDGPU], [libdrm_amdgpu >= $LIBDRM_AMDGPU_REQUIRED])
require_libdrm "radeonsi"
- radeon_llvm_check $LLVM_REQUIRED_RADEONSI "radeonsi"
- if test "x$enable_egl" = xyes; then
- require_basic_egl "radeonsi"
- fi
+ radeon_gallium_llvm_check "radeonsi" "3" "6" "0"
+ require_egl_drm "radeonsi"
;;
xnouveau)
HAVE_GALLIUM_NOUVEAU=yes
- PKG_CHECK_MODULES([NOUVEAU], [libdrm >= $LIBDRM_NOUVEAU_REQUIRED libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
+ PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
require_libdrm "nouveau"
;;
xfreedreno)
HAVE_GALLIUM_FREEDRENO=yes
- PKG_CHECK_MODULES([FREEDRENO], [libdrm >= $LIBDRM_FREEDRENO_REQUIRED libdrm_freedreno >= $LIBDRM_FREEDRENO_REQUIRED])
+ PKG_CHECK_MODULES([FREEDRENO], [libdrm_freedreno >= $LIBDRM_FREEDRENO_REQUIRED])
require_libdrm "freedreno"
;;
- xetnaviv)
- HAVE_GALLIUM_ETNAVIV=yes
- PKG_CHECK_MODULES([ETNAVIV], [libdrm >= $LIBDRM_ETNAVIV_REQUIRED libdrm_etnaviv >= $LIBDRM_ETNAVIV_REQUIRED])
- require_libdrm "etnaviv"
- ;;
- ximx)
- HAVE_GALLIUM_IMX=yes
- ;;
xswrast)
HAVE_GALLIUM_SOFTPIPE=yes
- if test "x$enable_llvm" = xyes; then
+ if test "x$MESA_LLVM" = x1; then
HAVE_GALLIUM_LLVMPIPE=yes
fi
;;
xswr)
- llvm_require_version $LLVM_REQUIRED_SWR "swr"
+ swr_llvm_check "swr"
swr_require_cxx_feature_flags "C++11" "__cplusplus >= 201103L" \
",-std=c++11" \
@@ -2531,7 +2486,7 @@ if test -n "$with_gallium_drivers"; then
;;
xvc4)
HAVE_GALLIUM_VC4=yes
- PKG_CHECK_MODULES([VC4], [libdrm >= $LIBDRM_VC4_REQUIRED libdrm_vc4 >= $LIBDRM_VC4_REQUIRED])
+ PKG_CHECK_MODULES([VC4], [libdrm_vc4 >= $LIBDRM_VC4_REQUIRED])
require_libdrm "vc4"
PKG_CHECK_MODULES([SIMPENROSE], [simpenrose],
@@ -2542,9 +2497,7 @@ if test -n "$with_gallium_drivers"; then
xvirgl)
HAVE_GALLIUM_VIRGL=yes
require_libdrm "virgl"
- if test "x$enable_egl" = xyes; then
- require_basic_egl "virgl"
- fi
+ require_egl_drm "virgl"
;;
*)
AC_MSG_ERROR([Unknown Gallium driver: $driver])
@@ -2553,37 +2506,18 @@ if test -n "$with_gallium_drivers"; then
done
fi
-# XXX: Keep in sync with LLVM_REQUIRED_SWR
-AM_CONDITIONAL(SWR_INVALID_LLVM_VERSION, test "x$LLVM_VERSION" != x3.9.0 -a \
- "x$LLVM_VERSION" != x3.9.1)
-
-if test "x$enable_llvm" = "xyes" -a "$with_gallium_drivers"; then
- llvm_require_version $LLVM_REQUIRED_GALLIUM "gallium"
- llvm_add_default_components "gallium"
+if test "x$HAVE_RADEON_VULKAN" = "xyes"; then
+ radeon_llvm_check "radv" "3" "9" "0"
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_MSG_ERROR([Building with imx requires etnaviv])
-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
+dnl by calling llvm-config --libs ${DRIVER_LLVM_COMPONENTS}, but
+dnl this was causing the same libraries to be appear multiple times
+dnl in LLVM_LIBS.
-dnl
-dnl Set defines and buildtime variables only when using LLVM.
-dnl
-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
- dnl by calling llvm-config --libs ${DRIVER_LLVM_COMPONENTS}, but
- dnl this was causing the same libraries to be appear multiple times
- dnl in LLVM_LIBS.
+if test "x$MESA_LLVM" != x0; then
if ! $LLVM_CONFIG --libs ${LLVM_COMPONENTS} >/dev/null; then
AC_MSG_ERROR([Calling ${LLVM_CONFIG} failed])
@@ -2635,6 +2569,7 @@ fi
AM_CONDITIONAL(HAVE_GALLIUM_SVGA, test "x$HAVE_GALLIUM_SVGA" = xyes)
AM_CONDITIONAL(HAVE_GALLIUM_I915, test "x$HAVE_GALLIUM_I915" = xyes)
+AM_CONDITIONAL(HAVE_GALLIUM_ILO, test "x$HAVE_GALLIUM_ILO" = xyes)
AM_CONDITIONAL(HAVE_GALLIUM_R300, test "x$HAVE_GALLIUM_R300" = xyes)
AM_CONDITIONAL(HAVE_GALLIUM_R600, test "x$HAVE_GALLIUM_R600" = xyes)
AM_CONDITIONAL(HAVE_GALLIUM_RADEONSI, test "x$HAVE_GALLIUM_RADEONSI" = xyes)
@@ -2642,8 +2577,6 @@ AM_CONDITIONAL(HAVE_GALLIUM_RADEON_COMMON, test "x$HAVE_GALLIUM_R600" = xyes -o
"x$HAVE_GALLIUM_RADEONSI" = xyes)
AM_CONDITIONAL(HAVE_GALLIUM_NOUVEAU, test "x$HAVE_GALLIUM_NOUVEAU" = xyes)
AM_CONDITIONAL(HAVE_GALLIUM_FREEDRENO, test "x$HAVE_GALLIUM_FREEDRENO" = xyes)
-AM_CONDITIONAL(HAVE_GALLIUM_ETNAVIV, test "x$HAVE_GALLIUM_ETNAVIV" = xyes)
-AM_CONDITIONAL(HAVE_GALLIUM_IMX, test "x$HAVE_GALLIUM_IMX" = xyes)
AM_CONDITIONAL(HAVE_GALLIUM_SOFTPIPE, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes)
AM_CONDITIONAL(HAVE_GALLIUM_LLVMPIPE, test "x$HAVE_GALLIUM_LLVMPIPE" = xyes)
AM_CONDITIONAL(HAVE_GALLIUM_SWR, test "x$HAVE_GALLIUM_SWR" = xyes)
@@ -2685,9 +2618,13 @@ 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(HAVE_MESA_LLVM, test x$MESA_LLVM = x1)
AM_CONDITIONAL(USE_VC4_SIMULATOR, test x$USE_VC4_SIMULATOR = xyes)
+if test "x$USE_VC4_SIMULATOR" = xyes -a "x$HAVE_GALLIUM_ILO" = xyes; then
+ AC_MSG_ERROR([VC4 simulator on x86 replaces i965 driver build, so ilo must be disabled.])
+fi
AM_CONDITIONAL(HAVE_LIBDRM, test "x$have_libdrm" = xyes)
AM_CONDITIONAL(HAVE_OSMESA, test "x$enable_osmesa" = xyes)
@@ -2707,10 +2644,8 @@ AC_SUBST([NINE_VERSION], "$NINE_MAJOR.$NINE_MINOR.$NINE_TINY")
AC_SUBST([VDPAU_MAJOR], 1)
AC_SUBST([VDPAU_MINOR], 0)
-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
+VA_MAJOR=`$PKG_CONFIG --modversion libva | $SED -n 's/\([[^\.]]*\)\..*$/\1/p'`
+VA_MINOR=`$PKG_CONFIG --modversion libva | $SED -n 's/.*\.\(.*\)\..*$/\1/p'`
AC_SUBST([VA_MAJOR], $VA_MAJOR)
AC_SUBST([VA_MINOR], $VA_MINOR)
@@ -2729,6 +2664,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)])],
@@ -2768,6 +2705,7 @@ 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
@@ -2781,6 +2719,7 @@ AC_CONFIG_FILES([Makefile
src/gallium/drivers/freedreno/Makefile
src/gallium/drivers/ddebug/Makefile
src/gallium/drivers/i915/Makefile
+ src/gallium/drivers/ilo/Makefile
src/gallium/drivers/llvmpipe/Makefile
src/gallium/drivers/noop/Makefile
src/gallium/drivers/nouveau/Makefile
@@ -2793,8 +2732,6 @@ AC_CONFIG_FILES([Makefile
src/gallium/drivers/svga/Makefile
src/gallium/drivers/swr/Makefile
src/gallium/drivers/trace/Makefile
- src/gallium/drivers/etnaviv/Makefile
- src/gallium/drivers/imx/Makefile
src/gallium/drivers/vc4/Makefile
src/gallium/drivers/virgl/Makefile
src/gallium/state_trackers/clover/Makefile
@@ -2824,10 +2761,9 @@ AC_CONFIG_FILES([Makefile
src/gallium/targets/xvmc/Makefile
src/gallium/tests/trivial/Makefile
src/gallium/tests/unit/Makefile
- src/gallium/winsys/etnaviv/drm/Makefile
- src/gallium/winsys/imx/drm/Makefile
src/gallium/winsys/freedreno/drm/Makefile
src/gallium/winsys/i915/drm/Makefile
+ src/gallium/winsys/intel/drm/Makefile
src/gallium/winsys/nouveau/drm/Makefile
src/gallium/winsys/radeon/drm/Makefile
src/gallium/winsys/amdgpu/drm/Makefile
@@ -2849,6 +2785,8 @@ 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
@@ -2872,7 +2810,7 @@ AC_CONFIG_FILES([Makefile
src/mesa/main/tests/Makefile
src/util/Makefile
src/util/tests/hash_table/Makefile
- src/vulkan/Makefile])
+ src/vulkan/wsi/Makefile])
AC_OUTPUT
@@ -2938,24 +2876,18 @@ dnl EGL
echo ""
echo " EGL: $enable_egl"
if test "$enable_egl" = yes; then
+ echo " EGL platforms: $egl_platforms"
egl_drivers=""
- if test "x$enable_dri" != "xno"; then
+ if test "x$HAVE_EGL_DRIVER_DRI2" != "x"; then
egl_drivers="$egl_drivers builtin:egl_dri2"
fi
- if test "x$enable_dri3" != "xno"; then
+ if test "x$HAVE_EGL_DRIVER_DRI3" != "x"; then
egl_drivers="$egl_drivers builtin:egl_dri3"
fi
echo " EGL drivers: $egl_drivers"
fi
-if test "x$enable_gbm" = xyes; then
- echo " GBM: yes"
-else
- echo " GBM: no"
-fi
-
- echo " EGL/Vulkan/VL platforms: $platforms"
# Vulkan
echo ""
@@ -2967,7 +2899,7 @@ else
fi
echo ""
-if test "x$enable_llvm" = xyes; then
+if test "x$MESA_LLVM" = x1; then
echo " llvm: yes"
echo " llvm-config: $LLVM_CONFIG"
echo " llvm-version: $LLVM_VERSION"
@@ -2996,6 +2928,13 @@ else
echo " HUD lmsensors: yes"
fi
+dnl Shader cache
+echo ""
+echo " Shader cache: $enable_shader_cache"
+if test "x$enable_shader_cache" = "xyes"; then
+ echo " With SHA1 from: $with_sha1"
+fi
+
dnl Libraries
echo ""
echo " Shared libs: $enable_shared"
@@ -3014,7 +2953,7 @@ echo " CFLAGS: $cflags"
echo " CXXFLAGS: $cxxflags"
echo " Macros: $defines"
echo ""
-if test "x$enable_llvm" = xyes; then
+if test "x$MESA_LLVM" = x1; then
echo " LLVM_CFLAGS: $LLVM_CFLAGS"
echo " LLVM_CXXFLAGS: $LLVM_CXXFLAGS"
echo " LLVM_CPPFLAGS: $LLVM_CPPFLAGS"