X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=configure.ac;h=18a40fceade5d267a02f4f3747587e0122cfc774;hb=027ce0c493a85c863df88b43f61aea34bcd4cd58;hp=56aac7a81a25a53b0bae152f9069649afb7f4c57;hpb=3c799623785a835c620cec9be28247ca7ab21b2b;p=mesa.git diff --git a/configure.ac b/configure.ac index 56aac7a81a2..18a40fceade 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ 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], @@ -16,6 +16,15 @@ AC_INIT([Mesa],[mesa_version], [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa]) AC_CONFIG_AUX_DIR([bin]) AC_CANONICAL_HOST +AM_INIT_AUTOMAKE([foreign]) + +# 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" @@ -24,7 +33,7 @@ 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_INTEL_REQUIRED=2.4.30 LIBDRM_NOUVEAU_REQUIRED=0.6 DRI2PROTO_REQUIRED=2.6 GLPROTO_REQUIRED=1.4.14 @@ -37,8 +46,9 @@ AC_PROG_CC 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]) @@ -65,6 +75,18 @@ solaris*) ;; 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]) @@ -155,9 +177,6 @@ esac 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 # Enable -fvisibility=hidden if using a gcc that supports it save_CFLAGS="$CFLAGS" @@ -172,6 +191,10 @@ if test "x$GCC" = xyes; then # 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" @@ -191,6 +214,10 @@ if test "x$GXX" = xyes; then # 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 @@ -341,6 +368,28 @@ else 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 @@ -358,7 +407,6 @@ fi GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION} GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION} -GLUT_LIB_NAME='lib$(GLUT_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} @@ -366,11 +414,9 @@ 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}'*' 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}'*' @@ -379,11 +425,9 @@ GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LI 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([OSMESA_LIB_NAME]) AC_SUBST([EGL_LIB_NAME]) AC_SUBST([GLESv1_CM_LIB_NAME]) @@ -391,11 +435,9 @@ 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([OSMESA_LIB_GLOB]) AC_SUBST([EGL_LIB_GLOB]) AC_SUBST([GLESv1_CM_LIB_GLOB]) @@ -403,7 +445,6 @@ 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 @@ -475,11 +516,6 @@ if test "x$enable_asm" = xyes; then 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)' @@ -623,12 +659,12 @@ AC_ARG_ENABLE([gallium_gbm], [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"]) @@ -757,6 +793,8 @@ if test "x$enable_glx" = xno; then enable_xlib_glx=no fi +AM_CONDITIONAL(HAVE_DRI, test x"$enable_dri" = xyes) + dnl dnl Driver specific build directories dnl @@ -769,7 +807,7 @@ GLU_DIRS="sgi" GALLIUM_DIRS="auxiliary drivers state_trackers" GALLIUM_TARGET_DIRS="" GALLIUM_WINSYS_DIRS="sw" -GALLIUM_DRIVERS_DIRS="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 @@ -896,16 +934,8 @@ if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then 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 @@ -964,7 +994,7 @@ xyesno) # 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) @@ -972,11 +1002,6 @@ xyesno) 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" @@ -993,12 +1018,27 @@ xyesno) 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. @@ -1007,6 +1047,11 @@ xyesno) ;; 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" @@ -1022,7 +1067,7 @@ AC_SUBST([GLESv1_CM_PC_LIB_PRIV]) 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]) @@ -1032,26 +1077,14 @@ DRI_CXXFLAGS='$(CXXFLAGS)' 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]) @@ -1155,19 +1188,19 @@ if test "x$enable_dri" = xyes; then case "$host_cpu" in x86_64) if test "x$DRI_DIRS" = "xyes"; then - DRI_DIRS="i915 i965 nouveau r200 r300 r600 radeon swrast" + DRI_DIRS="i915 i965 nouveau r200 radeon swrast" fi ;; powerpc*) # Build only the drivers for cards that exist on PowerPC. if test "x$DRI_DIRS" = "xyes"; then - DRI_DIRS="r200 r300 r600 radeon swrast" + DRI_DIRS="r200 radeon swrast" fi ;; sparc*) # Build only the drivers for cards that exist on sparc if test "x$DRI_DIRS" = "xyes"; then - DRI_DIRS="r200 r300 r600 radeon swrast" + DRI_DIRS="r200 radeon swrast" fi ;; esac @@ -1177,7 +1210,7 @@ if test "x$enable_dri" = xyes; then DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS" if test "x$DRI_DIRS" = "xyes"; then - DRI_DIRS="i915 i965 nouveau r200 r300 r600 radeon swrast" + DRI_DIRS="i915 i965 nouveau r200 radeon swrast" fi ;; gnu*) @@ -1197,7 +1230,7 @@ if test "x$enable_dri" = xyes; then # default drivers if test "x$DRI_DIRS" = "xyes"; then - DRI_DIRS="i915 i965 nouveau r200 r300 r600 radeon swrast" + DRI_DIRS="i915 i965 nouveau r200 radeon swrast" fi DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'` @@ -1215,8 +1248,10 @@ if test "x$enable_dri" = xyes; then 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 @@ -1226,7 +1261,7 @@ if test "x$enable_dri" = xyes; then fi 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]) @@ -1236,31 +1271,58 @@ AC_SUBST([DRI_LIB_DEPS]) 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*) - PKG_CHECK_MODULES([LIBDRM_RADEON], - [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED], - HAVE_LIBDRM_RADEON=yes, - HAVE_LIBDRM_RADEON=no) - - 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 -AC_SUBST([RADEON_CFLAGS]) -AC_SUBST([RADEON_LDFLAGS]) +case $DRI_DIRS in +*swrast*) + HAVE_SWRAST_DRI=yes; + ;; +esac + +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) dnl dnl OSMesa configuration @@ -1280,17 +1342,16 @@ if test "x$osmesa_bits" != x8; then 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 @@ -1320,11 +1381,9 @@ if test "x$enable_gbm" = xauto; then 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" @@ -1333,14 +1392,10 @@ if test "x$enable_gbm" = xyes; then 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 configuration @@ -1408,8 +1463,8 @@ 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 ;; @@ -1422,6 +1477,10 @@ if test "x$enable_gallium_gbm" = xyes; then 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" @@ -1445,9 +1504,21 @@ fi 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 @@ -1717,9 +1788,9 @@ 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|sed 's/-DNDEBUG\>//g'` - 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`" LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags` DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS" @@ -1798,7 +1869,7 @@ if test "x$with_gallium_drivers" != x; then case "x$driver" in xsvga) GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe" - gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx" "xa-vmwgfx" + gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx" ;; xi915) PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED]) @@ -1809,14 +1880,6 @@ if test "x$with_gallium_drivers" != x; then GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw" gallium_check_st "i915/drm" "dri-i915" "xorg-i915" ;; - xi965) - PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED]) - GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965 softpipe" - if test "x$MESA_LLVM" = x1; then - GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe" - fi - gallium_check_st "i965/drm" "dri-i965" "xorg-i965" - ;; xr300) gallium_require_llvm "Gallium R300" GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300" @@ -1824,12 +1887,12 @@ if test "x$with_gallium_drivers" != x; then ;; xr600) GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600" - gallium_check_st "r600/drm radeon/drm" "dri-r600" "xorg-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" @@ -1849,9 +1912,9 @@ if test "x$with_gallium_drivers" != x; then 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_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 @@ -1880,7 +1943,19 @@ 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/mesa/drivers/dri/dri.pc + src/mesa/drivers/dri/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],[ @@ -1929,7 +2004,6 @@ if test "x$enable_dri" != xno; then 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 @@ -1938,7 +2012,6 @@ xyesyes) ;; xyesno) echo " GLX: DRI-based" - echo " Use XCB: $enable_xcb" ;; *) echo " GLX: $enable_glx" @@ -1988,6 +2061,7 @@ else echo " Gallium: no" fi + dnl Libraries echo "" echo " Shared libs: $enable_shared"