_SAVE_CPPFLAGS="$CPPFLAGS"
dnl Compiler macros
-DEFINES=""
+DEFINES="-DUSE_EXTERNAL_DXTN_LIB=1"
AC_SUBST([DEFINES])
case "$host_os" in
linux*|*-gnu*|gnu*)
*)
AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=],
[AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt],
- [AC_MSG_ERROR([Couldn't find clock_gettime])])])
+ [AC_MSG_ERROR([Could not find clock_gettime])])])
AC_SUBST([CLOCK_LIB])
;;
esac
AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
dnl Check for pthreads
-AX_PTHREAD
+case "$host_os" in
+mingw*)
+ ;;
+*)
+ AX_PTHREAD
+ ;;
+esac
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.
AM_CONDITIONAL(HAVE_DRI_GLX, test "x$enable_glx" = xyes -a \
"x$enable_dri" = xyes)
-AM_CONDITIONAL(HAVE_DRI, test "x$enable_dri" = xyes)
-AM_CONDITIONAL(HAVE_DRI3, test "x$enable_dri3" = xyes)
+
+# Select which platform-dependent DRI code gets built
+case "$host_os" in
+darwin*)
+ dri_platform='apple' ;;
+gnu*|mingw*|cygwin*)
+ dri_platform='none' ;;
+*)
+ dri_platform='drm' ;;
+esac
+
+AM_CONDITIONAL(HAVE_DRICOMMON, test "x$enable_dri" = xyes )
+AM_CONDITIONAL(HAVE_DRISW, test "x$enable_dri" = xyes )
+AM_CONDITIONAL(HAVE_DRI2, test "x$enable_dri" = xyes && test "x$dri_platform" = xdrm )
+AM_CONDITIONAL(HAVE_DRI3, test "x$enable_dri3" = xyes && test "x$dri_platform" = xdrm )
+AM_CONDITIONAL(HAVE_APPLEDRI, test "x$enable_dri" = xyes && test "x$dri_platform" = xapple )
AC_ARG_ENABLE([shared-glapi],
[AS_HELP_STRING([--enable-shared-glapi],
case "$host_os" in
linux*)
- need_libudev=yes ;;
+ need_pci_id=yes ;;
*)
- need_libudev=no ;;
+ need_pci_id=no ;;
esac
PKG_CHECK_MODULES([LIBUDEV], [libudev >= $LIBUDEV_REQUIRED],
have_libudev=yes, have_libudev=no)
+AC_ARG_ENABLE([sysfs],
+ [AS_HELP_STRING([--enable-sysfs],
+ [enable /sys PCI identification @<:@default=disabled@:>@])],
+ [have_sysfs="$enableval"],
+ [have_sysfs=no]
+)
+
if test "x$enable_dri" = xyes; then
if test "$enable_static" = yes; then
AC_MSG_ERROR([Cannot use static libraries for DRI drivers])
fi
fi
-dnl Direct rendering or just indirect rendering
-case "$host_os" in
-gnu*)
- dnl Disable by default on GNU/Hurd
- driglx_direct_default="no"
- ;;
-cygwin*)
- dnl Disable by default on cygwin
- driglx_direct_default="no"
- ;;
-*)
- driglx_direct_default="yes"
- ;;
-esac
AC_ARG_ENABLE([driglx-direct],
[AS_HELP_STRING([--disable-driglx-direct],
[disable direct rendering in GLX and EGL for DRI \
@<:@default=auto@:>@])],
[driglx_direct="$enableval"],
- [driglx_direct="$driglx_direct_default"])
+ [driglx_direct="yes"])
dnl
dnl libGL configuration per driver
xyesno)
# DRI-based GLX
PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
- if test x"$driglx_direct" = xyes; then
- if test "x$have_libdrm" != xyes; then
- AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
- fi
- 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
- fi
# find the DRI deps for libGL
- dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx >= $XCBGLX_REQUIRED xcb-dri2 >= $XCBDRI2_REQUIRED"
+ dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx >= $XCBGLX_REQUIRED"
- if test x"$enable_dri3" = xyes; then
- dri_modules="$dri_modules xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
+ if test x"$driglx_direct" = xyes; then
+ if test x"$dri_platform" = xdrm ; then
+ DEFINES="$DEFINES -DGLX_USE_DRM"
+ if test "x$have_libdrm" != xyes; then
+ AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
+ fi
+
+ 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
+ dri_modules="$dri_modules xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
+ fi
+ fi
+ if test x"$dri_platform" = xapple ; then
+ DEFINES="$DEFINES -DGLX_USE_APPLEGL"
+ fi
fi
# add xf86vidmode if available
;;
esac
+have_pci_id=no
if test "$have_libudev" = yes; then
DEFINES="$DEFINES -DHAVE_LIBUDEV"
+ have_pci_id=yes
+fi
+
+if test "$have_sysfs" = yes; then
+ DEFINES="$DEFINES -DHAVE_SYSFS"
+ have_pci_id=yes
fi
# This is outside the case (above) so that it is invoked even for non-GLX
# Platform specific settings and drivers to build
case "$host_os" in
linux*)
- DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1"
DEFINES="$DEFINES -DHAVE_ALIAS"
if test "x$enable_dri3" = xyes; then
DEFINES="$DEFINES -DHAVE_DRI3"
fi
- if test "x$have_libudev" != xyes; then
- AC_MSG_ERROR([libudev-dev required for building DRI])
+ if test "x$have_pci_id" != xyes; then
+ AC_MSG_ERROR([libudev-dev or sysfs required for building DRI])
fi
case "$host_cpu" in
esac
;;
*freebsd* | dragonfly* | *netbsd* | openbsd*)
- DEFINES="$DEFINES -DHAVE_PTHREAD -DUSE_EXTERNAL_DXTN_LIB=1"
+ DEFINES="$DEFINES -DHAVE_PTHREAD"
DEFINES="$DEFINES -DHAVE_ALIAS"
;;
gnu*)
- DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1"
DEFINES="$DEFINES -DHAVE_ALIAS"
;;
- solaris*)
- DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1"
- ;;
cygwin*)
- DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1"
if test "x$with_dri_drivers" = "xyes"; then
with_dri_drivers="swrast"
fi
;;
darwin*)
- DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DGLX_ALIAS_UNSUPPORTED"
+ DEFINES="$DEFINES -DGLX_ALIAS_UNSUPPORTED"
if test "x$with_dri_drivers" = "xyes"; then
with_dri_drivers="swrast"
fi
esac
fi
if test "x$enable_gbm" = xyes; then
- if test "x$need_libudev$have_libudev" = xyesno; then
- AC_MSG_ERROR([gbm requires udev >= $LIBUDEV_REQUIRED])
+ if test "x$need_pci_id$have_pci_id" = xyesno; then
+ AC_MSG_ERROR([gbm requires udev >= $LIBUDEV_REQUIRED or sysfs])
fi
if test "x$enable_dri" = xyes; then
fi
fi
AM_CONDITIONAL(HAVE_GBM, test "x$enable_gbm" = xyes)
-if test "x$need_libudev" = xyes; then
+if test "x$need_pci_id$have_libudev" = xyesyes; then
GBM_PC_REQ_PRIV="libudev >= $LIBUDEV_REQUIRED"
else
GBM_PC_REQ_PRIV=""
if test "x$with_gallium_drivers" = xswrast; then
AC_MSG_ERROR([
Building xa requires at least one non swrast gallium driver.
- If you are looking to use libxatracker.so with vmware's virtual gpu,
+ If you are looking to use libxatracker.so with the VMware driver,
make sure to include svga in the gallium drivers list, apart from
enabling XA.
Example: ./configure --enable-xa --with-gallium-drivers=svga...])
dnl
dnl Gallium G3DVL configuration
dnl
-if test -n "$with_gallium_drivers" && ! echo "$with_gallium_drivers" | grep -q 'swrast'; then
+if test -n "$with_gallium_drivers" -a "x$with_gallium_drivers" != xswrast; then
if test "x$enable_xvmc" = xauto; then
PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
fi
if test "x$enable_xvmc" = xyes; then
PKG_CHECK_MODULES([XVMC], [xvmc >= $XVMC_REQUIRED x11-xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xvmc"
+ enable_gallium_loader=yes
fi
AM_CONDITIONAL(HAVE_ST_XVMC, test "x$enable_xvmc" = xyes)
PKG_CHECK_MODULES([VDPAU], [vdpau >= $VDPAU_REQUIRED x11-xcb xcb-dri2 >= $XCBDRI2_REQUIRED],
[VDPAU_LIBS="`$PKG_CONFIG --libs x11-xcb xcb-dri2`"])
GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
+ enable_gallium_loader=yes
fi
AM_CONDITIONAL(HAVE_ST_VDPAU, test "x$enable_vdpau" = xyes)
;;
esac
- case "$plat$need_libudev$have_libudev" in
+ case "$plat$need_pci_id$have_pci_id" in
waylandyesno|drmyesno)
- AC_MSG_ERROR([cannot build $plat platform without udev >= $LIBUDEV_REQUIRED]) ;;
+ AC_MSG_ERROR([cannot build $plat platform without udev >= $LIBUDEV_REQUIRED or sysfs]) ;;
esac
done
if $LLVM_CONFIG --components | grep -qw 'option'; then
LLVM_COMPONENTS="${LLVM_COMPONENTS} option"
fi
+ # Current OpenCL/Clover and LLVM 3.5 require ObjCARCOpts and ProfileData
+ if $LLVM_CONFIG --components | grep -qw 'objcarcopts'; then
+ LLVM_COMPONENTS="${LLVM_COMPONENTS} objcarcopts"
+ fi
+ if $LLVM_CONFIG --components | grep -qw 'profiledata'; then
+ LLVM_COMPONENTS="${LLVM_COMPONENTS} profiledata"
+ fi
fi
DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DLLVM_VERSION_PATCH=$LLVM_VERSION_PATCH"
MESA_LLVM=1
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
gallium_require_drm_loader() {
if test "x$enable_gallium_loader" = xyes; then
- if test "x$need_libudev$have_libudev" = xyesno; then
- AC_MSG_ERROR([Gallium drm loader requires libudev >= $LIBUDEV_REQUIRED])
+ if test "x$need_pci_id$have_pci_id" = xyesno; then
+ AC_MSG_ERROR([Gallium drm loader requires libudev >= $LIBUDEV_REQUIRED or sysfs])
fi
if test "x$have_libdrm" != xyes; then
AC_MSG_ERROR([Gallium drm loader requires libdrm >= $LIBDRM_REQUIRED])
HAVE_GALLIUM_I915=yes
PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
gallium_require_drm_loader
- GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
- if test "x$MESA_LLVM" = x1; then
- GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
- fi
- GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
+ GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
gallium_check_st "i915/drm" "dri-i915"
DRICOMMON_NEED_LIBDRM=yes
;;
if test "x$enable_opencl" = xyes; then
LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
fi
- gallium_check_st "radeon/drm" "r600/dri" "" "r600/xvmc" "r600/vdpau" "r600/omx"
+ gallium_check_st "radeon/drm" "r600/dri" "" "xvmc/r600" "vdpau/r600" "r600/omx"
DRICOMMON_NEED_LIBDRM=yes
;;
xradeonsi)
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS radeonsi"
radeon_llvm_check "radeonsi"
require_egl_drm "radeonsi"
- gallium_check_st "radeon/drm" "radeonsi/dri" "" "" "radeonsi/vdpau" "radeonsi/omx"
+ gallium_check_st "radeon/drm" "radeonsi/dri" "" "" "vdpau/radeonsi" "radeonsi/omx"
DRICOMMON_NEED_LIBDRM=yes
;;
xnouveau)
PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
gallium_require_drm_loader
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau"
- gallium_check_st "nouveau/drm" "dri-nouveau" "" "xvmc-nouveau" "vdpau-nouveau" "omx-nouveau"
+ gallium_check_st "nouveau/drm" "dri-nouveau" "" "xvmc/nouveau" "vdpau/nouveau" "omx-nouveau"
DRICOMMON_NEED_LIBDRM=yes
;;
xfreedreno)
AM_CONDITIONAL(HAVE_GALLIUM_LLVMPIPE, test "x$HAVE_GALLIUM_LLVMPIPE" = xyes)
AM_CONDITIONAL(NEED_GALLIUM_SOFTPIPE_DRIVER, test "x$HAVE_GALLIUM_SVGA" = xyes -o \
- "x$HAVE_GALLIUM_I915" = xyes -o \
"x$HAVE_GALLIUM_SOFTPIPE" = xyes)
-AM_CONDITIONAL(NEED_GALLIUM_LLVMPIPE_DRIVER, test "x$HAVE_GALLIUM_I915" = xyes -o \
- "x$HAVE_GALLIUM_SOFTPIPE" = xyes \
+AM_CONDITIONAL(NEED_GALLIUM_LLVMPIPE_DRIVER, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes \
&& test "x$MESA_LLVM" = x1)
+# Enable static gallium targets for now.
+# Do not touch this unless you know what you are doing.
+AM_CONDITIONAL(HAVE_GALLIUM_STATIC_TARGETS, test "xyes" = xyes)
+
# NOTE: anything using xcb or other client side libs ends up in separate
# _CLIENT variables. The pipe loader is built in two variants,
# one that is standalone and does not link any x client libs (for
src/gallium/targets/dri-vmwgfx/Makefile
src/gallium/targets/egl-static/Makefile
src/gallium/targets/gbm/Makefile
- src/gallium/targets/opencl/Makefile
- src/gallium/targets/xa/Makefile
- src/gallium/targets/xa/xatracker.pc
+ src/gallium/targets/libgl-xlib/Makefile
src/gallium/targets/omx-nouveau/Makefile
+ src/gallium/targets/opencl/Makefile
src/gallium/targets/osmesa/Makefile
src/gallium/targets/osmesa/osmesa.pc
src/gallium/targets/pipe-loader/Makefile
- src/gallium/targets/radeonsi/dri/Makefile
- src/gallium/targets/radeonsi/omx/Makefile
- src/gallium/targets/radeonsi/vdpau/Makefile
src/gallium/targets/r300/dri/Makefile
src/gallium/targets/r600/dri/Makefile
src/gallium/targets/r600/omx/Makefile
- src/gallium/targets/r600/vdpau/Makefile
- src/gallium/targets/r600/xvmc/Makefile
- src/gallium/targets/libgl-xlib/Makefile
- src/gallium/targets/vdpau-nouveau/Makefile
- src/gallium/targets/xvmc-nouveau/Makefile
+ src/gallium/targets/radeonsi/dri/Makefile
+ src/gallium/targets/radeonsi/omx/Makefile
+ src/gallium/targets/vdpau/Makefile
+ src/gallium/targets/xa/Makefile
+ src/gallium/targets/xa/xatracker.pc
+ src/gallium/targets/xvmc/Makefile
src/gallium/tests/trivial/Makefile
src/gallium/tests/unit/Makefile
src/gallium/winsys/Makefile
src/gallium/winsys/freedreno/drm/Makefile
src/gallium/winsys/i915/drm/Makefile
- src/gallium/winsys/i915/sw/Makefile
src/gallium/winsys/intel/drm/Makefile
src/gallium/winsys/nouveau/drm/Makefile
src/gallium/winsys/radeon/drm/Makefile
src/gbm/main/gbm.pc
src/glsl/Makefile
src/glx/Makefile
+ src/glx/apple/Makefile
src/glx/tests/Makefile
src/gtest/Makefile
src/loader/Makefile
;;
esac
+echo ""
if test "x$enable_dri" != xno; then
+ echo " DRI platform: $dri_platform"
if test -z "$DRI_DIRS"; then
echo " DRI drivers: no"
else