dnl Process this file with autoconf to create configure.
-AC_PREREQ([2.59])
+AC_PREREQ([2.60])
dnl Versioning - scrape the version from configs/default
m4_define([mesa_version],
[https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
AC_CONFIG_AUX_DIR([bin])
AC_CANONICAL_HOST
+AM_INIT_AUTOMAKE([foreign])
+
+dnl http://people.gnome.org/~walters/docs/build-api.txt
+dnl We don't support srcdir != builddir.
+echo \#buildapi-variable-no-builddir >/dev/null
+
+# Support silent build rules, requires at least automake-1.11. Disable
+# by either passing --disable-silent-rules to configure or passing V=1
+# to make
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+
+LT_PREREQ([2.2])
+LT_INIT([disable-static])
+
+dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
+USER_CFLAGS="$CFLAGS"
+USER_CXXFLAGS="$CXXFLAGS"
dnl Versions for external dependencies
LIBDRM_REQUIRED=2.4.24
-LIBDRM_RADEON_REQUIRED=2.4.24
-LIBDRM_INTEL_REQUIRED=2.4.24
+LIBDRM_RADEON_REQUIRED=2.4.31
+LIBDRM_INTEL_REQUIRED=2.4.30
LIBDRM_NOUVEAU_REQUIRED=0.6
DRI2PROTO_REQUIRED=2.6
GLPROTO_REQUIRED=1.4.14
AC_PROG_CXX
AC_CHECK_PROGS([MAKE], [gmake make])
AC_CHECK_PROGS([PYTHON2], [python2 python])
+AC_PROG_SED
+AC_PROG_MKDIR_P
AC_PATH_PROG([MKDEP], [makedepend])
-AC_PATH_PROG([SED], [sed])
if test "x$MKDEP" = "x"; then
AC_MSG_ERROR([makedepend is required to build Mesa])
fi
-AC_PATH_PROG([FLEX], [flex])
-test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
-
-AC_PATH_PROG([BISON], [bison])
-test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
+AC_PROG_YACC
+AC_PATH_PROG([YACC_INST], $YACC)
+if test ! -f "$srcdir/src/glsl/glcpp/glcpp-parse.y"; then
+ if test -z "$YACC_INST"; then
+ AC_MSG_ERROR([yacc not found - unable to compile glcpp-parse.y])
+ fi
+fi
+AC_PROG_LEX
dnl Our fallback install-sh is a symlink to minstall. Use the existing
dnl configuration in that case.
;;
esac
+AC_PATH_PROG([GTESTCONFIG], [gtest-config])
+if test "x$GTESTCONFIG" != "x"; then
+ GTEST_CFLAGS=`gtest-config --cppflags --cxxflags`
+ GTEST_LIBS=`gtest-config --ldflags --libs`
+ AC_SUBST([GTEST_CFLAGS])
+ AC_SUBST([GTEST_LIBS])
+ HAVE_GTEST=yes
+else
+ HAVE_GTEST=no
+fi
+AM_CONDITIONAL(HAVE_GTEST, test x$HAVE_GTEST = xyes)
+
dnl clang is mostly GCC-compatible, but its version is much lower,
dnl so we have to check for it.
AC_MSG_CHECKING([if compiling with clang])
not clang
#endif
]])],
-[CLANG=yes], [CLANG=no])
+[acv_mesa_CLANG=yes], [acv_mesa_CLANG=no])
-AC_MSG_RESULT([$CLANG])
+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 versions are explictly not supported.
-if test "x$GCC" = xyes -a "x$CLANG" = xno; then
+if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
AC_MSG_CHECKING([whether gcc version is sufficient])
major=0
minor=0
GCC_VERSION=`$CC -dumpversion`
if test $? -eq 0; then
major=`echo $GCC_VERSION | cut -d. -f1`
- minor=`echo $GCC_VERSION | cut -d. -f1`
+ minor=`echo $GCC_VERSION | cut -d. -f2`
fi
if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
dnl Add flags for gcc and g++
if test "x$GCC" = xyes; then
- CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
- if test "x$CLANG" = "xno"; then
- CFLAGS="$CFLAGS -ffast-math"
- fi
+ CFLAGS="$CFLAGS -Wall -std=c99"
+
+ # Enable -Werror=implicit-function-declaration and
+ # -Werror=missing-prototypes, if available, or otherwise, just
+ # -Wmissing-prototypes. This is particularly useful to avoid
+ # generating a loadable driver module that has undefined symbols.
+ save_CFLAGS="$CFLAGS"
+ AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes])
+ CFLAGS="$CFLAGS -Werror=implicit-function-declaration"
+ CFLAGS="$CFLAGS -Werror=missing-prototypes"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM()],
+ AC_MSG_RESULT([yes]),
+ [CFLAGS="$save_CFLAGS -Wmissing-prototypes";
+ AC_MSG_RESULT([no])]);
# Enable -fvisibility=hidden if using a gcc that supports it
save_CFLAGS="$CFLAGS"
# Work around aliasing bugs - developers should comment this out
CFLAGS="$CFLAGS -fno-strict-aliasing"
+
+ # gcc's builtin memcmp is slower than glibc's
+ # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
+ CFLAGS="$CFLAGS -fno-builtin-memcmp"
fi
if test "x$GXX" = xyes; then
CXXFLAGS="$CXXFLAGS -Wall"
# Work around aliasing bugs - developers should comment this out
CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
+
+ # gcc's builtin memcmp is slower than glibc's
+ # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
+ CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
fi
dnl even if the compiler appears to support it, using visibility attributes isn't
fi
fi
-dnl
-dnl shared/static libraries, mimic libtool options
-dnl
-AC_ARG_ENABLE([static],
- [AS_HELP_STRING([--enable-static],
- [build static libraries @<:@default=disabled@:>@])],
- [enable_static="$enableval"],
- [enable_static=no]
-)
-case "x$enable_static" in
-xyes|xno ) ;;
-x ) enable_static=no ;;
-* )
- AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
- ;;
-esac
-AC_ARG_ENABLE([shared],
- [AS_HELP_STRING([--disable-shared],
- [build shared libraries @<:@default=enabled@:>@])],
- [enable_shared="$enableval"],
- [enable_shared=yes]
-)
-case "x$enable_shared" in
-xyes|xno ) ;;
-x ) enable_shared=yes ;;
-* )
- AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
- ;;
-esac
-
dnl Can't have static and shared libraries, default to static if user
dnl explicitly requested. If both disabled, set to static since shared
-dnl was explicitly requirested.
+dnl was explicitly requested.
case "x$enable_static$enable_shared" in
xyesyes )
AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
esac
fi
+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]
+)
+GL_LIB="GL"
+GLU_LIB="GLU"
+OSMESA_LIB="OSMesa"
+if test "x${enable_mangling}" = "xyes" ; then
+ DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
+ GL_LIB="MangledGL"
+ GLU_LIB="MangledGLU"
+ OSMESA_LIB="MangledOSMesa"
+fi
+AC_SUBST([GL_LIB])
+AC_SUBST([GLU_LIB])
+AC_SUBST([OSMESA_LIB])
+
dnl
dnl potentially-infringing-but-nobody-knows-for-sure stuff
dnl
GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
-GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
-GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
-WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
-GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
-GLUT_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLUT_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
-GLW_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLW_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
-WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
-GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
AC_SUBST([GL_LIB_NAME])
AC_SUBST([GLU_LIB_NAME])
-AC_SUBST([GLUT_LIB_NAME])
-AC_SUBST([GLW_LIB_NAME])
AC_SUBST([OSMESA_LIB_NAME])
AC_SUBST([EGL_LIB_NAME])
AC_SUBST([GLESv1_CM_LIB_NAME])
AC_SUBST([GLESv2_LIB_NAME])
AC_SUBST([VG_LIB_NAME])
AC_SUBST([GLAPI_LIB_NAME])
-AC_SUBST([WAYLAND_EGL_LIB_NAME])
-AC_SUBST([GBM_LIB_NAME])
AC_SUBST([GL_LIB_GLOB])
AC_SUBST([GLU_LIB_GLOB])
-AC_SUBST([GLUT_LIB_GLOB])
-AC_SUBST([GLW_LIB_GLOB])
AC_SUBST([OSMESA_LIB_GLOB])
AC_SUBST([EGL_LIB_GLOB])
AC_SUBST([GLESv1_CM_LIB_GLOB])
AC_SUBST([GLESv2_LIB_GLOB])
AC_SUBST([VG_LIB_GLOB])
AC_SUBST([GLAPI_LIB_GLOB])
-AC_SUBST([WAYLAND_EGL_LIB_GLOB])
-AC_SUBST([GBM_LIB_GLOB])
dnl
dnl Arch/platform-specific settings
GLAPI_ASM_SOURCES='$(X86-64_API)'
AC_MSG_RESULT([yes, x86_64])
;;
- ppc)
- ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
- MESA_ASM_SOURCES='$(PPC_SOURCES)'
- AC_MSG_RESULT([yes, ppc])
- ;;
sparc)
ASM_FLAGS="-DUSE_SPARC_ASM"
MESA_ASM_SOURCES='$(SPARC_SOURCES)'
[enable_gallium_gbm=auto])
# Option for Gallium drivers
-GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
+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,i965,nouveau,r300,r600,svga,swrast"
+ "i915,nouveau,r300,r600,svga,swrast"
@<:@default=r300,r600,swrast@:>@])],
[with_gallium_drivers="$withval"],
[with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
+# Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
+# here so that the script doesn't choke on an unknown driver name later.
+case "$with_gallium_drivers" in
+ yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
+ no) with_gallium_drivers='' ;;
+esac
+
if test "x$enable_opengl" = xno -a \
"x$enable_gles1" = xno -a \
"x$enable_gles2" = xno -a \
SHARED_GLAPI="0"
if test "x$enable_shared_glapi" = xyes; then
SHARED_GLAPI="1"
+ # libGL will use libglapi for function lookups (IN_DRI_DRIVER means to use
+ # the remap table)
+ DEFINES="$DEFINES -DIN_DRI_DRIVER"
fi
AC_SUBST([SHARED_GLAPI])
enable_xlib_glx=no
fi
+AM_CONDITIONAL(HAVE_DRI, test x"$enable_dri" = xyes)
+
dnl
dnl Driver specific build directories
dnl
GALLIUM_DIRS="auxiliary drivers state_trackers"
GALLIUM_TARGET_DIRS=""
GALLIUM_WINSYS_DIRS="sw"
-GALLIUM_DRIVERS_DIRS="softpipe failover galahad trace rbug noop identity"
+GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
GALLIUM_STATE_TRACKERS_DIRS=""
# build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
+ HAVE_WINSYS_XLIB="yes"
;;
xyesno)
# DRI-based GLX
if test "x$enable_dri" = xyes; then
DRIVER_DIRS="$DRIVER_DIRS dri"
- GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib sw/dri"
+ GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
HAVE_ST_DRI="yes"
fi
AC_MSG_ERROR([X11 development libraries needed for GLX])
fi
-dnl XCB - this is only used for GLX right now
-AC_ARG_ENABLE([xcb],
- [AS_HELP_STRING([--enable-xcb],
- [use XCB for GLX @<:@default=disabled@:>@])],
- [enable_xcb="$enableval"],
- [enable_xcb=no])
-if test "x$enable_xcb" = xyes; then
+if test "x$enable_glx" = xyes; then
DEFINES="$DEFINES -DUSE_XCB"
-else
- enable_xcb=no
fi
dnl Direct rendering or just indirect rendering
GL_PC_LIB_PRIV="$GL_LIB_DEPS"
GL_PC_CFLAGS="$X11_INCLUDES"
fi
- GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
+ GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
-
- # if static, move the external libraries to the programs
- # and empty the libraries for libGL
- if test "$enable_static" = yes; then
- APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
- GL_LIB_DEPS=""
- fi
;;
xyesno)
# DRI-based GLX
# find the DRI deps for libGL
if test "$x11_pkgconfig" = yes; then
- dri_modules="x11 xext xdamage xfixes"
+ dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx"
# add xf86vidmode if available
PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
dri_modules="$dri_modules xxf86vm"
fi
- # add xcb modules if necessary
- if test "$enable_xcb" = yes; then
- dri_modules="$dri_modules x11-xcb xcb-glx"
- fi
-
PKG_CHECK_MODULES([DRIGL], [$dri_modules])
GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
GL_PC_CFLAGS="$X11_INCLUDES"
# XCB can only be used from pkg-config
- if test "$enable_xcb" = yes; then
- PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
- GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
- X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
- GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
- fi
+ PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
+ GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
+ X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
+ GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
+ fi
+
+ # Check to see if the xcb-glx library is new enough to support
+ # GLX_ARB_create_context. This bit of hackery is necessary until XCB 1.8
+ # is released.
+ save_CPPFLAGS="$CPPFLAGS"
+ save_LDFLAGS="$LDFLAGS"
+ CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
+ LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
+ AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
+ [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
+ [HAVE_XCB_GLX_CREATE_CONTEXT=no])
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+
+ if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
+ X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
fi
# need DRM libs, -lpthread, etc.
;;
esac
+# This is outside the case (above) so that it is invoked even for non-GLX
+# builds.
+AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
+ test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
+
GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
AC_SUBST([GLESv2_LIB_DEPS])
AC_SUBST([GLESv2_PC_LIB_PRIV])
-GLAPI_LIB_DEPS="-lpthread"
+GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
AC_SUBST([GLAPI_LIB_DEPS])
DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
-AC_ARG_ENABLE([shared-dricore],
- [AS_HELP_STRING([--enable-shared-dricore],
- [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
- [enable_dricore="$enableval"],
- [enable_dricore=no])
-if test "x$enable_dri" = xyes ; then
- if test "$enable_dricore" = yes ; then
- if test "$GCC$GXX" != yesyes ; then
- AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
- enable_dricore=no
- else
- DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
- DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
- DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
- DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
- DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
- DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
- MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
- fi
- fi
+if test "x$enable_dri" = xyes && test "x$driglx_direct" = xyes ; then
+ DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
+ DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
+ DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
+ DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
+ DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
+ DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
+ MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
fi
AC_SUBST([DRICORE_LIBS])
AC_SUBST([DRICORE_GLSL_LIBS])
AC_SUBST([HAVE_XF86VIDMODE])
-PKG_CHECK_MODULES([LIBDRM_RADEON],
- [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED],
- HAVE_LIBDRM_RADEON=yes,
- HAVE_LIBDRM_RADEON=no)
-
dnl
dnl More GLX setup
dnl
case "$host_cpu" in
x86_64)
- # sis is missing because they have not be converted to use
- # the new interface. i810 are missing because there is no
- # x86-64 system where they could *ever* be used.
if test "x$DRI_DIRS" = "xyes"; then
- DRI_DIRS="i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
- radeon savage tdfx unichrome swrast"
+ DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
fi
;;
powerpc*)
# Build only the drivers for cards that exist on PowerPC.
- # At some point MGA will be added, but not yet.
if test "x$DRI_DIRS" = "xyes"; then
- DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
+ DRI_DIRS="r200 radeon swrast"
fi
;;
sparc*)
- # Build only the drivers for cards that exist on sparc`
+ # Build only the drivers for cards that exist on sparc
if test "x$DRI_DIRS" = "xyes"; then
- DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
+ DRI_DIRS="r200 radeon swrast"
fi
;;
esac
DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
if test "x$DRI_DIRS" = "xyes"; then
- DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
- radeon tdfx unichrome savage sis swrast"
+ DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
fi
;;
gnu*)
# default drivers
if test "x$DRI_DIRS" = "xyes"; then
- DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 radeon \
- savage sis tdfx unichrome swrast"
+ DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
fi
DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
])
AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
+ save_LIBS="$LIBS"
AC_CHECK_LIB([expat],[XML_ParserCreate],[],
[AC_MSG_ERROR([Expat required for DRI.])])
+ LIBS="$save_LIBS"
fi
- # libdrm is required for all except swrast
+ # if we are building any dri driver other than swrast ...
if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
+ # ... libdrm is required
if test "x$have_libdrm" != xyes; then
AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
fi
+ # ... and build dricommon
+ HAVE_COMMON_DRI=yes
fi
- # put all the necessary libs together, including possibly libdricore
+ # put all the necessary libs together
DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
fi
AC_SUBST([DRI_DIRS])
case $DRI_DIRS in
*i915*|*i965*)
PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
+
+ for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
+ case $d in
+ i915)
+ HAVE_I915_DRI=yes;
+ ;;
+ i965)
+ HAVE_I965_DRI=yes;
+ ;;
+ esac
+ done
+
;;
esac
case $DRI_DIRS in
*nouveau*)
PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
+ HAVE_NOUVEAU_DRI=yes;
;;
esac
case $DRI_DIRS in
-*radeon*|*r200*|*r300*|*r600*)
- if test "x$HAVE_LIBDRM_RADEON" = xyes; then
- RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
- RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
- fi
+*radeon*|*r200*)
+ PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
+
+ for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
+ case $d in
+ radeon)
+ HAVE_RADEON_DRI=yes;
+ ;;
+ r200)
+ HAVE_R200_DRI=yes;
+ ;;
+ esac
+ done
+
+ ;;
+esac
+
+case $DRI_DIRS in
+*swrast*)
+ HAVE_SWRAST_DRI=yes;
;;
esac
-AC_SUBST([RADEON_CFLAGS])
-AC_SUBST([RADEON_LDFLAGS])
+AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
+AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
+AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
+AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
+AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
+AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
+AM_CONDITIONAL(HAVE_COMMON_DRI, test x$HAVE_COMMON_DRI = xyes)
dnl
dnl OSMesa configuration
fi
case "x$osmesa_bits" in
x8)
- OSMESA_LIB=OSMesa
+ OSMESA_LIB="${OSMESA_LIB}"
;;
x16|x32)
- OSMESA_LIB="OSMesa$osmesa_bits"
+ OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
;;
*)
AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
;;
esac
-AC_SUBST([OSMESA_LIB])
if test "x$enable_osmesa" = xyes; then
# only link libraries with osmesa if shared
AC_SUBST([OSMESA_PC_REQ])
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
+ SRC_DIRS="$SRC_DIRS gbm"
+
+ PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
+ AC_MSG_ERROR([gbm needs udev]))
+
+ if test "x$enable_dri" = xyes; then
+ GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
+ if test "$SHARED_GLAPI" -eq 0; then
+ AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
+ fi
+ fi
+fi
+GBM_PC_REQ_PRIV="libudev"
+GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
+AC_SUBST([GBM_PC_REQ_PRIV])
+AC_SUBST([GBM_PC_LIB_PRIV])
+
dnl
dnl EGL configuration
dnl
EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
EGL_DRIVERS_DIRS=""
+ AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
+
if test "$enable_static" != yes; then
# build egl_glx when libGL is built
if test "x$enable_glx" = xyes; then
EGL_DRIVER_DRI2=dri2
DEFINES="$DEFINES -DHAVE_XCB_DRI2"
# workaround a bug in xcb-dri2 generated by xcb-proto 1.6
+ save_LIBS="$LIBS"
AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
[DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
+ LIBS="$save_LIBS"
fi
fi
AC_SUBST([EGL_LIB_DEPS])
AC_SUBST([EGL_DRIVERS_DIRS])
-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
- SRC_DIRS="$SRC_DIRS gbm"
- GBM_BACKEND_DIRS=""
-
- PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
- AC_MSG_ERROR([gbm needs udev]))
- GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
-
- if test "x$enable_dri" = xyes; then
- GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
- if test "$SHARED_GLAPI" -eq 0; then
- AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
- fi
- fi
-fi
-AC_SUBST([GBM_LIB_DEPS])
-AC_SUBST([GBM_BACKEND_DIRS])
-GBM_PC_REQ_PRIV="libudev"
-GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
-GBM_PC_CFLAGS=
-AC_SUBST([GBM_PC_REQ_PRIV])
-AC_SUBST([GBM_PC_LIB_PRIV])
-AC_SUBST([GBM_PC_CFLAGS])
-
dnl
dnl EGL Gallium configuration
dnl
dnl gbm Gallium configuration
dnl
if test "x$enable_gallium_gbm" = xauto; then
- case "$enable_gbm$HAVE_ST_EGL$with_egl_platforms" in
- yesyes*drm*)
+ case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
+ yesyesyes*drm*)
enable_gallium_gbm=yes ;;
*)
enable_gallium_gbm=no ;;
if test "x$enable_gbm" = xno; then
AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
fi
+ # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
+ if test "x$enable_dri" = xno; then
+ AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
+ fi
GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
dnl
dnl XA configuration
dnl
+if test "x$enable_xa" = xyes; then
+AC_PROG_AWK
+AC_PROG_GREP
+AC_CHECK_PROG(NM, nm, "nm")
+if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
+AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
+enable_xa=no
+fi
+fi
if test "x$enable_xa" = xyes; then
GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
HAVE_ST_XA=yes
+ AC_SUBST(AWK)
+ AC_SUBST(GREP)
+ AC_SUBST(NM)
fi
dnl
fi
if test "x$enable_xvmc" = xauto; then
- enable_xvmc=yes
+ PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
fi
if test "x$enable_vdpau" = xauto; then
- enable_vdpau=yes
+ PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
fi
if test "x$enable_va" = xauto; then
+ #don't enable vaapi state tracker even if package exists
+ #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
enable_va=no
fi
fi
-#TODO: Check for xvmc libs/headers
if test "x$enable_xvmc" = xyes; then
+ PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6])
GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
HAVE_ST_XVMC="yes"
fi
-#TODO: Check for vdpau libs/headers
if test "x$enable_vdpau" = xyes; then
+ PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
HAVE_ST_VDPAU="yes"
fi
-#TODO: Check for va libs/headers
if test "x$enable_va" = xyes; then
+ PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
+ AC_MSG_WARN([vaapi state tracker currently unmaintained])
GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
HAVE_ST_VA="yes"
fi
-if test "x$enable_xvmc" = xyes ||
- test "x$enable_vdpau" = xyes ||
- test "x$enable_va" = xyes; then
- GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
-fi
-
dnl
dnl GLU configuration
dnl
else
GLU_LIB_DEPS=""
GLU_MESA_DEPS=""
- APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
fi
fi
fi
AC_SUBST([GLU_PC_LIB_PRIV])
AC_SUBST([GLU_PC_CFLAGS])
-dnl
-dnl GLw configuration
-dnl
-AC_ARG_ENABLE([glw],
- [AS_HELP_STRING([--disable-glw],
- [enable Xt/Motif widget library @<:@default=enabled@:>@])],
- [enable_glw="$enableval"],
- [enable_glw=yes])
-dnl Don't build GLw on osmesa
-if test "x$enable_glw" = xyes -a "x$enable_glx" = xno; then
- AC_MSG_NOTICE([Disabling GLw since there is no OpenGL driver])
- enable_glw=no
-fi
-AC_ARG_ENABLE([motif],
- [AS_HELP_STRING([--enable-motif],
- [use Motif widgets in GLw @<:@default=disabled@:>@])],
- [enable_motif="$enableval"],
- [enable_motif=no])
-
-if test "x$enable_glw" = xyes; then
- SRC_DIRS="$SRC_DIRS glw"
- if test "$x11_pkgconfig" = yes; then
- PKG_CHECK_MODULES([GLW],[x11 xt])
- GLW_PC_REQ_PRIV="x11 xt"
- GLW_LIB_DEPS="$GLW_LIBS"
- else
- # should check these...
- GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
- GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
- GLW_PC_CFLAGS="$X11_INCLUDES"
- fi
-
- GLW_SOURCES="GLwDrawA.c"
- MOTIF_CFLAGS=
- if test "x$enable_motif" = xyes; then
- GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
- AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
- if test "x$MOTIF_CONFIG" != xno; then
- MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
- MOTIF_LIBS=`$MOTIF_CONFIG --libs`
- else
- AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
- [AC_MSG_ERROR([Can't locate Motif headers])])
- AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
- [AC_MSG_ERROR([Can't locate Motif Xm library])])
- fi
- # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
- GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
- GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
- GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
- fi
-
- # If static, empty GLW_LIB_DEPS and add libs for programs to link
- GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
- if test "$enable_static" = no; then
- GLW_MESA_DEPS='-l$(GL_LIB)'
- GLW_LIB_DEPS="$GLW_LIB_DEPS"
- else
- APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
- GLW_LIB_DEPS=""
- GLW_MESA_DEPS=""
- fi
-fi
-AC_SUBST([GLW_LIB_DEPS])
-AC_SUBST([GLW_MESA_DEPS])
-AC_SUBST([GLW_SOURCES])
-AC_SUBST([MOTIF_CFLAGS])
-AC_SUBST([GLW_PC_REQ_PRIV])
-AC_SUBST([GLW_PC_LIB_PRIV])
-AC_SUBST([GLW_PC_CFLAGS])
-
-dnl
-dnl GLUT configuration
-dnl
-if test -f "$srcdir/include/GL/glut.h"; then
- default_glut=yes
-else
- default_glut=no
-fi
-AC_ARG_ENABLE([glut],
- [AS_HELP_STRING([--disable-glut],
- [enable GLUT library @<:@default=enabled if source available@:>@])],
- [enable_glut="$enableval"],
- [enable_glut="$default_glut"])
-
-dnl Don't build glut without GLX
-if test "x$enable_glut" = xyes -a "x$enable_glx" = xno; then
- AC_MSG_NOTICE([Disabling glut since there is no OpenGL driver])
- enable_glut=no
-fi
-dnl Can't build glut if GLU not available
-if test "x$enable_glu$enable_glut" = xnoyes; then
- AC_MSG_WARN([Disabling glut since GLU is disabled])
- enable_glut=no
-fi
-
-if test "x$enable_glut" = xyes; then
- SRC_DIRS="$SRC_DIRS glut/glx"
- if test "$x11_pkgconfig" = yes; then
- PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
- GLUT_PC_REQ_PRIV="x11 xmu xi"
- GLUT_LIB_DEPS="$GLUT_LIBS"
- else
- # should check these...
- GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
- GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
- GLUT_PC_CFLAGS="$X11_INCLUDES"
- fi
- if test "x$GCC" = xyes; then
- GLUT_CFLAGS="$GLUT_CFLAGS -fexceptions"
- fi
- GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
- GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
-
- # If static, empty GLUT_LIB_DEPS and add libs for programs to link
- if test "$enable_static" = no; then
- GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
- else
- APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
- GLUT_LIB_DEPS=""
- GLUT_MESA_DEPS=""
- fi
-fi
-AC_SUBST([GLUT_LIB_DEPS])
-AC_SUBST([GLUT_MESA_DEPS])
-AC_SUBST([GLUT_CFLAGS])
-AC_SUBST([GLUT_PC_REQ_PRIV])
-AC_SUBST([GLUT_PC_LIB_PRIV])
-AC_SUBST([GLUT_PC_CFLAGS])
-
-dnl
-dnl Program library dependencies
-dnl Only libm is added here if necessary as the libraries should
-dnl be pulled in by the linker
-dnl
-if test "x$APP_LIB_DEPS" = x; then
- case "$host_os" in
- solaris*)
- APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
- ;;
- cygwin*)
- APP_LIB_DEPS="-lX11"
- ;;
- *)
- APP_LIB_DEPS="-lm"
- ;;
- esac
-fi
-AC_SUBST([APP_LIB_DEPS])
AC_SUBST([PROGRAM_DIRS])
dnl
dnl
if test "x$with_gallium_drivers" != x; then
SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
- AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
-else
- LLVM_CONFIG=no
fi
AC_SUBST([LLVM_CFLAGS])
[with_egl_platforms=yes])
EGL_PLATFORMS=""
-WAYLAND_EGL_LIB_DEPS=""
case "$with_egl_platforms" in
yes)
egl_platforms=`IFS=', '; echo $with_egl_platforms`
for plat in $egl_platforms; do
test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
- AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
+ AC_MSG_ERROR([EGL platform '$plat' does not exist])
if test "$plat" = "fbdev"; then
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
fi
+ if test "$plat" = "null"; then
+ GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
+ fi
if test "$plat" = "wayland"; then
PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
[AC_MSG_ERROR([cannot find libwayland-client])])
- WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
+
+ m4_ifdef([WAYLAND_SCANNER_RULES],
+ [WAYLAND_SCANNER_RULES(['$(top_srcdir)/src/egl/wayland/wayland-drm/protocol'])])
fi
if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
AC_MSG_ERROR([EGL platform drm needs gbm])
esac
AC_SUBST([EGL_PLATFORMS])
-AC_SUBST([WAYLAND_EGL_LIB_DEPS])
-WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
-WAYLAND_EGL_PC_LIB_PRIV=
-WAYLAND_EGL_PC_CFLAGS=
-
-AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
-AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
-AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
-
-
AC_ARG_WITH([egl-driver-dir],
[AS_HELP_STRING([--with-egl-driver-dir=DIR],
[directory for EGL drivers [[default=${libdir}/egl]]])],
esac
fi
if test "x$enable_gallium_llvm" = xyes; then
+ AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
+
if test "x$LLVM_CONFIG" != xno; then
- LLVM_VERSION=`$LLVM_CONFIG --version`
- LLVM_CFLAGS=`$LLVM_CONFIG --cppflags`
- LLVM_LIBS="`$LLVM_CONFIG --libs` -lstdc++"
+ LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
+ LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
+ LLVM_LIBS="`$LLVM_CONFIG --libs engine bitwriter`"
LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
- GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
- DEFINES="$DEFINES -DGALLIUM_LLVMPIPE -D__STDC_CONSTANT_MACROS"
+ DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
MESA_LLVM=1
else
MESA_LLVM=0
fi
if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
+ NEED_G3DVL_DRI="yes"
fi
if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
+ NEED_G3DVL_DRI="yes"
fi
if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
+ NEED_G3DVL_DRI="yes"
fi
}
}
dnl Gallium drivers
+dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
if test "x$with_gallium_drivers" != x; then
- # This is for compile-testing
- GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 i965 r300 svga"
- GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
-
gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
for driver in $gallium_drivers; do
case "x$driver" in
xsvga)
- gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx" "xa-vmwgfx"
+ GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
+ gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
;;
xi915)
+ PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
+ 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_check_st "i915/drm" "dri-i915" "xorg-i915"
;;
- xi965)
- gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
- ;;
xr300)
+ PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
gallium_require_llvm "Gallium R300"
- gallium_check_st "radeon/drm" "dri-r300" "xorg-radeon" "" "xvmc-r300" "vdpau-r300" "va-r300"
+ GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
+ gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
;;
xr600)
+ PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
- gallium_check_st "r600/drm" "dri-r600" "" "" "xvmc-r600" "vdpau-r600" "va-r600"
+ gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
;;
xnouveau)
+ PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
- gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau"
+ gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
;;
xswrast)
+ GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
+ if test "x$MESA_LLVM" = x1; then
+ GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
+ fi
+
if test "x$HAVE_ST_DRI" = xyes; then
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
fi
if test "x$HAVE_ST_VA" = xyes; then
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
fi
+ if test "x$HAVE_ST_VDPAU" = xyes ||
+ test "x$HAVE_ST_XVMC" = xyes ||
+ test "x$HAVE_ST_VA" = xyes; then
+ if test "x$HAVE_WINSYS_XLIB" != xyes; then
+ GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
+ fi
+ fi
;;
*)
AC_MSG_ERROR([Unknown Gallium driver: $driver])
done
fi
+if test "x$NEED_G3DVL_DRI" = xyes; then
+ GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
+fi
+
dnl prepend CORE_DIRS to SRC_DIRS
SRC_DIRS="$CORE_DIRS $SRC_DIRS"
LDFLAGS="$_SAVE_LDFLAGS"
CPPFLAGS="$_SAVE_CPPFLAGS"
+dnl Add user CFLAGS and CXXFLAGS
+CFLAGS="$CFLAGS $USER_CFLAGS"
+CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
+
dnl Substitute the config
-AC_CONFIG_FILES([configs/autoconf])
+AC_CONFIG_FILES([configs/autoconf
+ src/gbm/Makefile
+ src/gbm/main/gbm.pc
+ src/egl/wayland/Makefile
+ src/egl/wayland/wayland-egl/Makefile
+ src/egl/wayland/wayland-egl/wayland-egl.pc
+ src/egl/wayland/wayland-drm/Makefile
+ src/mesa/drivers/dri/dri.pc
+ src/mesa/drivers/dri/Makefile
+ src/mesa/drivers/dri/common/Makefile
+ src/mesa/drivers/dri/i915/Makefile
+ src/mesa/drivers/dri/i965/Makefile
+ src/mesa/drivers/dri/nouveau/Makefile
+ src/mesa/drivers/dri/r200/Makefile
+ src/mesa/drivers/dri/radeon/Makefile
+ src/mesa/drivers/dri/swrast/Makefile
+ tests/Makefile
+ tests/glx/Makefile])
dnl Replace the configs/current symlink
AC_CONFIG_COMMANDS([configs],[
])
dnl Sort the dirs alphabetically
-GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort|tr "\n" " "`
-GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort|tr "\n" " "`
-GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort|tr "\n" " "`
-GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort|tr "\n" " "`
+GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
+GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
+GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
+GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
AC_OUTPUT
echo " DRI drivers: $dri_dirs"
fi
echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
- echo " Shared dricore: $enable_dricore"
fi
case "x$enable_glx$enable_xlib_glx" in
;;
xyesno)
echo " GLX: DRI-based"
- echo " Use XCB: $enable_xcb"
;;
*)
echo " GLX: $enable_glx"
echo ""
echo " GLU: $enable_glu"
-echo " GLw: $enable_glw (Motif: $enable_motif)"
-echo " glut: $enable_glut"
dnl EGL
echo ""
echo " Gallium: no"
fi
+
dnl Libraries
echo ""
echo " Shared libs: $enable_shared"