AC_CONFIG_AUX_DIR([bin])
AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_SYSTEM
-AM_INIT_AUTOMAKE([foreign])
+AM_INIT_AUTOMAKE([foreign tar-ustar dist-xz])
# Support silent build rules, requires at least automake-1.11. Disable
# by either passing --disable-silent-rules to configure or passing V=1
LIBUDEV_REQUIRED=151
GLPROTO_REQUIRED=1.4.14
LIBOMXIL_BELLAGIO_REQUIRED=0.0
+LIBVA_REQUIRED=0.35.0
VDPAU_REQUIRED=0.4.1
WAYLAND_REQUIRED=1.2.0
XCB_REQUIRED=1.9.3
AC_CHECK_PROG(INDENT, indent, indent, cat)
if test "x$INDENT" != "xcat"; then
- AC_SUBST(INDENT_FLAGS, '-i4 -nut -br -brs -npcs -ce -TGLubyte -TGLbyte -TBool')
+ # Only GNU indent is supported
+ INDENT_VERSION=`indent --version | grep GNU`
+ if test $? -eq 0; then
+ AC_SUBST(INDENT_FLAGS, '-i4 -nut -br -brs -npcs -ce -TGLubyte -TGLbyte -TBool')
+ else
+ INDENT="cat"
+ fi
fi
+AX_CHECK_PYTHON_MAKO_MODULE(0.3.4)
+
AC_PROG_INSTALL
dnl We need a POSIX shell for parts of the build. Assume we have one
AC_MSG_RESULT([$acv_mesa_CLANG])
-dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
+dnl If we're using GCC, make sure that it is at least version 4.2.0. Older
dnl versions are explictly not supported.
GEN_ASM_OFFSETS=no
if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
GCC_VERSION_MINOR=`echo $GCC_VERSION | cut -d. -f2`
fi
- if test $GCC_VERSION_MAJOR -lt 3 -o $GCC_VERSION_MAJOR -eq 3 -a $GCC_VERSION_MINOR -lt 3 ; then
+ if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 2 ; then
AC_MSG_RESULT([no])
- AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
+ AC_MSG_ERROR([If using GCC, version 4.2.0 or later is required.])
else
AC_MSG_RESULT([yes])
fi
dnl
dnl Optional flags, check for compiler support
dnl
-AX_CHECK_COMPILE_FLAG([-msse4.1], [SSE41_SUPPORTED=1], [SSE41_SUPPORTED=0])
+SSE41_CFLAGS="-msse4.1"
+dnl Code compiled by GCC with -msse* assumes a 16 byte aligned
+dnl stack, but on x86-32 such alignment is not guaranteed.
+case "$target_cpu" in
+i?86)
+ SSE41_CFLAGS="$SSE41_CFLAGS -mstackrealign"
+ ;;
+esac
+save_CFLAGS="$CFLAGS"
+CFLAGS="$SSE41_CFLAGS $CFLAGS"
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+#include <smmintrin.h>
+int main () {
+ __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
+ c = _mm_max_epu32(a, b);
+ return 0;
+}]])], SSE41_SUPPORTED=1)
+CFLAGS="$save_CFLAGS"
if test "x$SSE41_SUPPORTED" = x1; then
DEFINES="$DEFINES -DUSE_SSE41"
fi
AM_CONDITIONAL([SSE41_SUPPORTED], [test x$SSE41_SUPPORTED = x1])
+AC_SUBST([SSE41_CFLAGS], $SSE41_CFLAGS)
dnl Can't have static and shared libraries, default to static if user
dnl explicitly requested. If both disabled, set to static since shared
esac
fi
+AC_CHECK_HEADER([xlocale.h], [DEFINES="$DEFINES -DHAVE_XLOCALE_H"])
+AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"])
+
dnl Check to see if dlopen is in default libraries (like Solaris, which
dnl has it in libc), or if libdl is needed to get it.
AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"],
[enable gbm library @<:@default=auto@:>@])],
[enable_gbm="$enableval"],
[enable_gbm=auto])
+AC_ARG_ENABLE([nine],
+ [AS_HELP_STRING([--enable-nine],
+ [enable build of the nine Direct3D9 API @<:@default=no@:>@])],
+ [enable_nine="$enableval"],
+ [enable_nine=no])
AC_ARG_ENABLE([xvmc],
[AS_HELP_STRING([--enable-xvmc],
[make GLX library Xlib-based instead of DRI-based @<:@default=disabled@:>@])],
[enable_xlib_glx="$enableval"],
[enable_xlib_glx=no])
-AC_ARG_ENABLE([gallium-egl],
- [AS_HELP_STRING([--enable-gallium-egl],
- [enable optional EGL state tracker (not required
- for EGL support in Gallium with OpenGL and OpenGL ES)
- @<:@default=disabled@:>@])],
- [enable_gallium_egl="$enableval"],
- [enable_gallium_egl=no])
-AC_ARG_ENABLE([gallium-gbm],
- [AS_HELP_STRING([--enable-gallium-gbm],
- [enable optional gbm state tracker (not required for
- gbm support in Gallium)
- @<:@default=auto@:>@])],
- [enable_gallium_gbm="$enableval"],
- [enable_gallium_gbm=auto])
AC_ARG_ENABLE([r600-llvm-compiler],
[AS_HELP_STRING([--enable-r600-llvm-compiler],
if test "x$enable_opengl" = xno -a \
"x$enable_gles1" = xno -a \
"x$enable_gles2" = xno -a \
+ "x$enable_nine" = xno -a \
"x$enable_openvg" = xno -a \
"x$enable_xa" = xno -a \
"x$enable_xvmc" = xno -a \
fi
# Check for expat
- PKG_CHECK_EXISTS([expat], [have_expat=yes], [have_expat=no])
- if test "x$have_expat" = "xyes"; then
- PKG_CHECK_MODULES([EXPAT], [expat], [],
- AC_MSG_ERROR([Expat required for DRI.]))
- else
- # expat version 2.0 and earlier do not provide expat.pc
- EXPAT_LIBS=-lexpat
- fi
+ PKG_CHECK_MODULES([EXPAT], [expat], [],
+ # expat version 2.0 and earlier do not provide expat.pc
+ [AC_CHECK_HEADER([expat.h],[],
+ [AC_MSG_ERROR([Expat headers required for DRI not found])])
+ AC_CHECK_LIB([expat],[XML_ParserCreate],[],
+ [AC_MSG_ERROR([Expat library required for DRI not found])])
+ EXPAT_LIBS="-lexpat"])
DRICOMMON_NEED_LIBDRM=no
# If we are building any DRI driver other than swrast.
AM_CONDITIONAL(HAVE_EGL, test "x$enable_egl" = xyes)
AC_SUBST([EGL_LIB_DEPS])
-dnl
-dnl EGL Gallium configuration
-dnl
-if test "x$enable_gallium_egl" = xyes; then
- if test -z "$with_gallium_drivers"; then
- AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
- fi
- if test "x$enable_egl" = xno; then
- AC_MSG_ERROR([cannot enable egl_gallium without EGL])
- fi
- if test "x$have_libdrm" != xyes; then
- AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
- fi
-# XXX: Uncomment once converted to use static/shared pipe-drivers
-# enable_gallium_loader=$enable_shared_pipe_drivers
-fi
-AM_CONDITIONAL(HAVE_GALLIUM_EGL, test "x$enable_gallium_egl" = xyes)
-
-dnl
-dnl gbm Gallium configuration
-dnl
-if test "x$enable_gallium_gbm" = xauto; then
- case "$enable_gbm$enable_gallium_egl$enable_dri$with_egl_platforms" in
- yesyesyes*drm*)
- enable_gallium_gbm=yes ;;
- *)
- enable_gallium_gbm=no ;;
- esac
-fi
-if test "x$enable_gallium_gbm" = xyes; then
- if test -z "$with_gallium_drivers"; then
- AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
- fi
- if test "x$enable_gbm" = xno; then
- AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
- fi
-
- if test "x$enable_gallium_egl" != xyes; then
- AC_MSG_ERROR([gbm_gallium is only used by egl_gallium])
- fi
-
- enable_gallium_loader=$enable_shared_pipe_drivers
-fi
-AM_CONDITIONAL(HAVE_GALLIUM_GBM, test "x$enable_gallium_gbm" = xyes)
-
dnl
dnl XA configuration
dnl
if test -z "$with_gallium_drivers"; then
AC_MSG_ERROR([cannot enable OpenVG without Gallium])
fi
- if test "x$enable_gallium_egl" = xno; then
- AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
- fi
+
+ AC_MSG_ERROR([Cannot enable OpenVG, because egl_gallium has been removed and
+ OpenVG has not been integrated into standard libEGL yet])
EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS $PTHREAD_LIBS"
dnl
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])
+ PKG_CHECK_EXISTS([xvmc >= $XVMC_REQUIRED], [enable_xvmc=yes], [enable_xvmc=no])
fi
if test "x$enable_vdpau" = xauto; then
- PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
+ PKG_CHECK_EXISTS([vdpau >= $VDPAU_REQUIRED], [enable_vdpau=yes], [enable_vdpau=no])
fi
if test "x$enable_omx" = xauto; then
- PKG_CHECK_EXISTS([libomxil-bellagio], [enable_omx=yes], [enable_omx=no])
+ PKG_CHECK_EXISTS([libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED], [enable_omx=yes], [enable_omx=no])
fi
if test "x$enable_va" = xauto; then
- PKG_CHECK_EXISTS([libva], [enable_va=yes], [enable_va=no])
+ PKG_CHECK_EXISTS([libva >= $LIBVA_REQUIRED], [enable_va=yes], [enable_va=no])
fi
fi
+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])
+ need_gallium_vl=yes
+fi
+AM_CONDITIONAL(NEED_GALLIUM_VL, test "x$need_gallium_vl" = xyes)
+
if test "x$enable_xvmc" = xyes; then
- PKG_CHECK_MODULES([XVMC], [xvmc >= $XVMC_REQUIRED x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
+ PKG_CHECK_MODULES([XVMC], [xvmc >= $XVMC_REQUIRED])
enable_gallium_loader=$enable_shared_pipe_drivers
fi
AM_CONDITIONAL(HAVE_ST_XVMC, test "x$enable_xvmc" = xyes)
if test "x$enable_vdpau" = xyes; then
- PKG_CHECK_MODULES([VDPAU], [vdpau >= $VDPAU_REQUIRED x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED],
- [VDPAU_LIBS="`$PKG_CONFIG --libs x11-xcb xcb xcb-dri2`"])
+ PKG_CHECK_MODULES([VDPAU], [vdpau >= $VDPAU_REQUIRED])
enable_gallium_loader=$enable_shared_pipe_drivers
fi
AM_CONDITIONAL(HAVE_ST_VDPAU, test "x$enable_vdpau" = xyes)
if test "x$enable_omx" = xyes; then
- PKG_CHECK_MODULES([OMX], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
+ PKG_CHECK_MODULES([OMX], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED])
enable_gallium_loader=$enable_shared_pipe_drivers
fi
AM_CONDITIONAL(HAVE_ST_OMX, test "x$enable_omx" = xyes)
if test "x$enable_va" = xyes; then
- PKG_CHECK_MODULES([VA], [libva >= 0.35.0 x11-xcb xcb-dri2 >= $XCBDRI2_REQUIRED],
- [VA_LIBS="`$PKG_CONFIG --libs x11-xcb xcb-dri2`"])
+ PKG_CHECK_MODULES([VA], [libva >= $LIBVA_REQUIRED])
enable_gallium_loader=$enable_shared_pipe_drivers
fi
AM_CONDITIONAL(HAVE_ST_VA, test "x$enable_va" = xyes)
+dnl
+dnl Nine Direct3D9 configuration
+dnl
+if test "x$enable_nine" = xyes; then
+ if ! echo "$with_gallium_drivers" | grep -q 'swrast'; then
+ AC_MSG_ERROR([nine requires the gallium swrast driver])
+ fi
+ if test "x$with_gallium_drivers" == xswrast; then
+ AC_MSG_ERROR([nine requires at least one non-swrast gallium driver])
+ fi
+ if test "x$enable_dri3" = xno; then
+ AC_MSG_WARN([using nine together with wine requires DRI3 enabled system])
+ fi
+
+ enable_gallium_loader=$enable_shared_pipe_drivers
+fi
+AM_CONDITIONAL(HAVE_ST_NINE, test "x$enable_nine" = xyes)
+
dnl
dnl OpenCL configuration
dnl
[CLANG_LIBDIR=''])
PKG_CHECK_EXISTS([libclc], [have_libclc=yes], [have_libclc=no])
+AC_CHECK_LIB([elf], [elf_memory], [have_libelf=yes;ELF_LIB=-lelf])
if test "x$enable_opencl" = xyes; then
if test -z "$with_gallium_drivers"; then
else
OPENCL_LIBNAME="OpenCL"
fi
+
+ if test "x$have_libelf" != xyes; then
+ AC_MSG_ERROR([Clover requires libelf])
+ fi
fi
AM_CONDITIONAL(HAVE_CLOVER, test "x$enable_opencl" = xyes)
AM_CONDITIONAL(HAVE_CLOVER_ICD, test "x$enable_opencl_icd" = xyes)
fi
LLVM_REQUIRED_VERSION_MAJOR="3"
- LLVM_REQUIRED_VERSION_MINOR="1"
+ 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
AC_ARG_WITH([va-libdir],
[AS_HELP_STRING([--with-va-libdir=DIR],
- [directory for the VA libraries @<:@default=`pkg-config libva --variable=driverdir`@:>@])],
+ [directory for the VA libraries @<:@${libdir}/dri@:>@])],
[VA_LIB_INSTALL_DIR="$withval"],
- [VA_LIB_INSTALL_DIR=`pkg-config libva --variable=driverdir`])
+ [VA_LIB_INSTALL_DIR="${libdir}/dri"])
AC_SUBST([VA_LIB_INSTALL_DIR])
+AC_ARG_WITH([d3d-libdir],
+ [AS_HELP_STRING([--with-d3d-libdir=DIR],
+ [directory for the D3D modules @<:@${libdir}/d3d@:>@])],
+ [D3D_DRIVER_INSTALL_DIR="$withval"],
+ [D3D_DRIVER_INSTALL_DIR="${libdir}/d3d"])
+AC_SUBST([D3D_DRIVER_INSTALL_DIR])
+
dnl
dnl Gallium helper functions
dnl
fi
LLVM_COMPONENTS="${LLVM_COMPONENTS} r600 bitreader ipo"
NEED_RADEON_LLVM=yes
- AC_CHECK_LIB([elf], [elf_memory], [ELF_LIB=-lelf],
- [AC_MSG_ERROR([$1 requires libelf when using LLVM])])
+ if test "x$have_libelf" != xyes; then
+ AC_MSG_ERROR([$1 requires libelf when using llvm])
+ fi
}
dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
fi
dnl Set LLVM_LIBS - This is done after the driver configuration so
-dnl that drivers can add additonal components to LLVM_COMPONENTS.
+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
invocation and rebuild.])])
dnl We don't need to update LLVM_LIBS in this case because the LLVM
- dnl install uses a shared object for each compoenent and we have
+ dnl install uses a shared object for each component and we have
dnl already added all of these objects to LLVM_LIBS.
fi
else
- AC_MSG_WARN([Building mesa with staticly linked LLVM may cause compilation issues])
+ AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues])
+ dnl We need to link to llvm system libs when using static libs
+ dnl However, only llvm 3.5+ provides --system-libs
+ if test $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then
+ LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --system-libs`"
+ fi
fi
fi
AM_CONDITIONAL(HAVE_X86_64_ASM, test "x$asm_arch" = xx86_64)
AM_CONDITIONAL(HAVE_SPARC_ASM, test "x$asm_arch" = xsparc)
+AC_SUBST([NINE_MAJOR], 1)
+AC_SUBST([NINE_MINOR], 0)
+AC_SUBST([NINE_TINY], 0)
+AC_SUBST([NINE_VERSION], "$NINE_MAJOR.$NINE_MINOR.$NINE_TINY")
+
AC_SUBST([VDPAU_MAJOR], 1)
AC_SUBST([VDPAU_MINOR], 0)
src/egl/drivers/dri2/Makefile
src/egl/main/Makefile
src/egl/main/egl.pc
- src/egl/wayland/Makefile
src/egl/wayland/wayland-drm/Makefile
src/egl/wayland/wayland-egl/Makefile
src/egl/wayland/wayland-egl/wayland-egl.pc
src/gallium/drivers/vc4/kernel/Makefile
src/gallium/state_trackers/clover/Makefile
src/gallium/state_trackers/dri/Makefile
- src/gallium/state_trackers/egl/Makefile
- src/gallium/state_trackers/gbm/Makefile
src/gallium/state_trackers/glx/xlib/Makefile
+ src/gallium/state_trackers/nine/Makefile
src/gallium/state_trackers/omx/Makefile
src/gallium/state_trackers/osmesa/Makefile
src/gallium/state_trackers/va/Makefile
src/gallium/state_trackers/vega/Makefile
src/gallium/state_trackers/xa/Makefile
src/gallium/state_trackers/xvmc/Makefile
+ src/gallium/targets/d3dadapter9/Makefile
+ src/gallium/targets/d3dadapter9/d3d.pc
src/gallium/targets/dri/Makefile
- src/gallium/targets/egl-static/Makefile
- src/gallium/targets/gbm/Makefile
src/gallium/targets/libgl-xlib/Makefile
src/gallium/targets/omx/Makefile
src/gallium/targets/opencl/Makefile
egl_drivers="$egl_drivers builtin:egl_dri2"
fi
- if test "x$enable_gallium_egl" = xyes; then
- echo " EGL drivers: ${egl_drivers} egl_gallium"
- echo " EGL Gallium STs:$EGL_CLIENT_APIS"
- else
- echo " EGL drivers: $egl_drivers"
- fi
+ echo " EGL drivers: $egl_drivers"
fi
echo ""