OPENCL_VERSION=1
AC_SUBST([OPENCL_VERSION])
-dnl Versions for external dependencies
+# 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.66
LIBDRM_RADEON_REQUIRED=2.4.56
LIBDRM_AMDGPU_REQUIRED=2.4.63
LIBDRM_FREEDRENO_REQUIRED=2.4.74
LIBDRM_VC4_REQUIRED=2.4.69
LIBDRM_ETNAVIV_REQUIRED=2.4.74
+
+dnl Versions for external dependencies
DRI2PROTO_REQUIRED=2.6
DRI3PROTO_REQUIRED=1.0
PRESENTPROTO_REQUIRED=1.0
DEFINES="$DEFINES -DNDEBUG"
fi
-DEFAULT_GL_LIB_NAME=GL
-
dnl
dnl Check if linker supports -Bsymbolic
dnl
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
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
fi
}
-llvm_check_version_for() {
+require_llvm() {
+ if test "x$enable_gallium_llvm" != "xyes"; then
+ AC_MSG_ERROR([--enable-gallium-llvm is required when building $1])
+ fi
+}
+
+llvm_require_version() {
if test "x$MESA_LLVM" = x0; then
AC_MSG_ERROR([LLVM $1 or newer is required for $2])
return
fi
+ 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]]+'`
amdgpu_llvm_target_name='amdgpu'
fi
- llvm_check_version_for $*
+ llvm_require_version $*
llvm_add_target $amdgpu_llvm_target_name $2
llvm_set_environment_variables
-AC_SUBST([MESA_LLVM])
AC_SUBST([LLVM_BINDIR])
AC_SUBST([LLVM_CFLAGS])
AC_SUBST([LLVM_CPPFLAGS])
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,vc4,virgl,etnaviv,imx"
+ "i915,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,swr,vc4,virgl,etnaviv,imx"
@<:@default=r300,r600,svga,swrast@:>@])],
[with_gallium_drivers="$withval"],
[with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
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
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])
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])
+
+if test "x$enable_gallium_llvm" = xauto; then
+ case "$host_cpu" in
+ i*86|x86_64|amd64) enable_gallium_llvm=yes;;
+ esac
+fi
+
#
# Vulkan driver configuration
#
AC_MSG_ERROR([Clover requires libelf])
fi
- llvm_check_version_for $LLVM_REQUIRED_OPENCL "opencl"
+ llvm_require_version $LLVM_REQUIRED_OPENCL "opencl"
llvm_add_default_components "opencl"
llvm_add_component "all-targets" "opencl"
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])
-
-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
-
dnl Directory for XVMC libs
AC_ARG_WITH([xvmc-libdir],
[AS_HELP_STRING([--with-xvmc-libdir=DIR],
[D3D_DRIVER_INSTALL_DIR="${libdir}/d3d"])
AC_SUBST([D3D_DRIVER_INSTALL_DIR])
-dnl
-dnl Gallium helper functions
-dnl
-gallium_require_llvm() {
- if test "x$enable_gallium_llvm" = "xyes"; then
- llvm_check_version_for $LLVM_REQUIRED_GALLIUM "gallium"
- else
- AC_MSG_ERROR([--enable-gallium-llvm is required when building $1])
- fi
-}
-
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
r300_require_llvm() {
case "$host" in *gnux32) return;; esac
case "$host_cpu" in
- i*86|x86_64|amd64) gallium_require_llvm $1
+ i*86|x86_64|amd64) require_llvm $1
;;
esac
}
fi
;;
xswr)
- llvm_check_version_for $LLVM_REQUIRED_SWR "swr"
- gallium_require_llvm "swr"
+ llvm_require_version $LLVM_REQUIRED_SWR "swr"
swr_require_cxx_feature_flags "C++11" "__cplusplus >= 201103L" \
",-std=c++11" \
done
fi
-if test "x$enable_gallium_llvm" == "xyes"; then
- llvm_check_version_for $LLVM_REQUIRED_GALLIUM "gallium"
+if test "x$enable_gallium_llvm" == "xyes" -a "$with_gallium_drivers"; then
+ llvm_require_version $LLVM_REQUIRED_GALLIUM "gallium"
llvm_add_default_components "gallium"
fi
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