X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=configure.ac;h=9916a06a92f5574fcfaa3c19ab17c7c842b21f8d;hb=644929849ccc1134bb89f1e084761c4febdc4ced;hp=6568472bcfa178b02196761a604e8f1fda73998f;hpb=94ec5fd1b37077c3be8ef5d275b641654f87504c;p=android-x86%2Fexternal-mesa.git diff --git a/configure.ac b/configure.ac index 6568472bcfa..9916a06a92f 100644 --- a/configure.ac +++ b/configure.ac @@ -17,13 +17,17 @@ AC_INIT([Mesa],[mesa_version], AC_CONFIG_AUX_DIR([bin]) AC_CANONICAL_HOST +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_NOUVEAU_REQUIRED=0.6 -DRI2PROTO_REQUIRED=2.1 -GLPROTO_REQUIRED=1.4.11 +DRI2PROTO_REQUIRED=2.6 +GLPROTO_REQUIRED=1.4.14 LIBDRM_XORG_REQUIRED=2.4.24 LIBKMS_XORG_REQUIRED=1.0.0 @@ -85,7 +89,7 @@ if test "x$GCC" = xyes -a "x$CLANG" = xno; then 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 @@ -355,7 +359,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} -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} @@ -368,7 +371,6 @@ 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}'*' @@ -382,7 +384,6 @@ GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTE 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]) @@ -395,7 +396,6 @@ 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]) @@ -570,6 +570,11 @@ AC_ARG_ENABLE([xorg], [enable support for X.Org DDX API @<:@default=no@:>@])], [enable_xorg="$enableval"], [enable_xorg=no]) +AC_ARG_ENABLE([xa], + [AS_HELP_STRING([--enable-xa], + [enable build of the XA X Acceleration API @<:@default=no@:>@])], + [enable_xa="$enableval"], + [enable_xa=no]) AC_ARG_ENABLE([d3d1x], [AS_HELP_STRING([--enable-d3d1x], [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])], @@ -581,6 +586,22 @@ AC_ARG_ENABLE([gbm], [enable_gbm="$enableval"], [enable_gbm=auto]) +AC_ARG_ENABLE([xvmc], + [AS_HELP_STRING([--enable-xvmc], + [enable xvmc library @<:@default=auto@:>@])], + [enable_xvmc="$enableval"], + [enable_xvmc=auto]) +AC_ARG_ENABLE([vdpau], + [AS_HELP_STRING([--enable-vdpau], + [enable vdpau library @<:@default=auto@:>@])], + [enable_vdpau="$enableval"], + [enable_vdpau=auto]) +AC_ARG_ENABLE([va], + [AS_HELP_STRING([--enable-va], + [enable va library @<:@default=auto@:>@])], + [enable_va="$enableval"], + [enable_va=auto]) + AC_ARG_ENABLE([xlib_glx], [AS_HELP_STRING([--enable-xlib-glx], [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])], @@ -597,9 +618,9 @@ AC_ARG_ENABLE([gallium_gbm], [AS_HELP_STRING([--enable-gallium-gbm], [enable optional gbm state tracker (not required for gbm support in Gallium) - @<:@default=disable@:>@])], + @<:@default=auto@:>@])], [enable_gallium_gbm="$enableval"], - [enable_gallium_gbm=no]) + [enable_gallium_gbm=auto]) # Option for Gallium drivers GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast" @@ -612,12 +633,23 @@ AC_ARG_WITH([gallium-drivers], [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 \ "x$enable_openvg" = xno -a \ "x$enable_xorg" = xno -a \ - "x$enable_d3d1x" = xno; then + "x$enable_xa" = xno -a \ + "x$enable_d3d1x" = xno -a \ + "x$enable_xvmc" = xno -a \ + "x$enable_vdpau" = xno -a \ + "x$enable_va" = xno; then AC_MSG_ERROR([at least one API should be enabled]) fi @@ -737,7 +769,7 @@ GLU_DIRS="sgi" 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="failover galahad trace rbug noop identity" GALLIUM_STATE_TRACKERS_DIRS="" # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled @@ -775,6 +807,7 @@ xyesyes) 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 @@ -785,7 +818,7 @@ esac 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 @@ -819,11 +852,10 @@ if test "x$enable_dri" = xyes; then AC_MSG_ERROR([Can't use static libraries for DRI drivers]) fi - if test "x$have_libdrm" != xyes; then - AC_MSG_ERROR([DRI drivers require libdrm >= $LIBDRM_REQUIRED]) + # not a hard requirement as swrast does not depend on it + if test "x$have_libdrm" = xyes; then + DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED" fi - - DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED" fi dnl @@ -915,7 +947,7 @@ xyesyes) 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 @@ -1037,11 +1069,6 @@ AC_SUBST([MESA_MODULES]) 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 @@ -1134,25 +1161,20 @@ if test "x$enable_dri" = xyes; then 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 r300 r600 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 r300 r600 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 r300 r600 radeon swrast" fi ;; esac @@ -1162,8 +1184,7 @@ if test "x$enable_dri" = xyes; then 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 r300 r600 radeon swrast" fi ;; gnu*) @@ -1183,8 +1204,7 @@ if test "x$enable_dri" = xyes; then # 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 r300 r600 radeon swrast" fi DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'` @@ -1206,6 +1226,13 @@ if test "x$enable_dri" = xyes; then [AC_MSG_ERROR([Expat required for DRI.])]) fi + # libdrm is required for all except swrast + if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then + if test "x$have_libdrm" != xyes; then + AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED]) + fi + fi + # put all the necessary libs together, including possibly libdricore DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS" fi @@ -1227,6 +1254,11 @@ 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 @@ -1283,6 +1315,41 @@ 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" + 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 configuration dnl EGL_CLIENT_APIS="" @@ -1292,6 +1359,8 @@ if test "x$enable_egl" = xyes; then 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 @@ -1324,41 +1393,6 @@ 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 if test "x$enable_gallium_egl" = xyes; then @@ -1380,6 +1414,14 @@ fi 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*) + enable_gallium_gbm=yes ;; + *) + enable_gallium_gbm=no ;; + esac +fi if test "x$enable_gallium_gbm" = xyes; then if test "x$with_gallium_drivers" = x; then AC_MSG_ERROR([cannot enable gbm_gallium without Gallium]) @@ -1408,6 +1450,14 @@ if test "x$enable_xorg" = xyes; then fi dnl +dnl XA configuration +dnl +if test "x$enable_xa" = xyes; then + GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS" + HAVE_ST_XA=yes +fi + +dnl dnl OpenVG configuration dnl VG_LIB_DEPS="" @@ -1444,6 +1494,53 @@ if test "x$enable_d3d1x" = xyes; then fi dnl +dnl Gallium G3DVL configuration +dnl +AC_ARG_ENABLE([gallium-g3dvl], + [AS_HELP_STRING([--enable-gallium-g3dvl], + [build gallium g3dvl @<:@default=disabled@:>@])], + [enable_gallium_g3dvl="$enableval"], + [enable_gallium_g3dvl=no]) +if test "x$enable_gallium_g3dvl" = xyes; then + if test "x$with_gallium_drivers" = x; then + AC_MSG_ERROR([cannot enable G3DVL without Gallium]) + fi + + if test "x$enable_xvmc" = xauto; then + PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no]) + fi + + if test "x$enable_vdpau" = xauto; then + 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 + +if test "x$enable_xvmc" = xyes; then + PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server]) + GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc" + HAVE_ST_XVMC="yes" +fi + +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 + +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 + +dnl dnl GLU configuration dnl AC_ARG_ENABLE([glu], @@ -1497,136 +1594,6 @@ 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 @@ -1652,9 +1619,6 @@ dnl Gallium configuration 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]) @@ -1662,8 +1626,6 @@ AC_SUBST([LLVM_LIBS]) AC_SUBST([LLVM_LDFLAGS]) AC_SUBST([LLVM_VERSION]) - - case "x$enable_opengl$enable_gles1$enable_gles2" in x*yes*) EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)' @@ -1707,9 +1669,13 @@ yes) WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS" GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland" fi - if test "$plat" = "drm" && test "x$enable_gbm" = no; then + if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then AC_MSG_ERROR([EGL platform drm needs gbm]) fi + case "$plat$have_libudev" in + waylandno|drmno) + AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;; + esac done EGL_PLATFORMS="$egl_platforms" ;; @@ -1772,14 +1738,15 @@ if test "x$enable_gallium_llvm" = xauto; then 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_CFLAGS=`$LLVM_CONFIG --cppflags|sed 's/-DNDEBUG\>//g'` LLVM_LIBS="`$LLVM_CONFIG --libs` -lstdc++" 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 @@ -1788,11 +1755,32 @@ else MESA_LLVM=0 fi +dnl Directory for VDPAU libs +AC_ARG_WITH([vdpau-libdir], + [AS_HELP_STRING([--with-vdpau-libdir=DIR], + [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])], + [VDPAU_LIB_INSTALL_DIR="$withval"], + [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau']) +AC_SUBST([VDPAU_LIB_INSTALL_DIR]) + +dnl Directory for VA libs +AC_ARG_WITH([va-libdir], + [AS_HELP_STRING([--with-va-libdir=DIR], + [directory for the VA libraries @<:@default=${libdir}/va@:>@])], + [VA_LIB_INSTALL_DIR="$withval"], + [VA_LIB_INSTALL_DIR='${libdir}/va']) +AC_SUBST([VA_LIB_INSTALL_DIR]) + dnl dnl Gallium helper functions dnl gallium_check_st() { - if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes; then + if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes || + test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes || + test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then + if test "x$have_libdrm" != xyes; then + AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED]) + fi GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1" fi if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then @@ -1801,6 +1789,21 @@ gallium_check_st() { if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3" fi + if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then + GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4" + 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 } gallium_require_llvm() { @@ -1812,39 +1815,71 @@ gallium_require_llvm() { } 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" + GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe" + gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-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) + 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_check_st "radeon/drm" "dri-r300" "xorg-r300" + GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300" + gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300" ;; xr600) GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600" - gallium_check_st "r600/drm" "dri-r600" + gallium_check_st "r600/drm 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" + gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-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_VDPAU" = xyes; then + GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe" + fi + if test "x$HAVE_ST_XVMC" = xyes; then + GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe" + 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]) @@ -1853,6 +1888,10 @@ if test "x$with_gallium_drivers" != x; then 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" @@ -1860,6 +1899,10 @@ dnl Restore LDFLAGS and CPPFLAGS 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]) @@ -1928,8 +1971,6 @@ esac echo "" echo " GLU: $enable_glu" -echo " GLw: $enable_glw (Motif: $enable_motif)" -echo " glut: $enable_glut" dnl EGL echo ""