X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=configure.ac;h=a4943e126b61efab41affe1900429203532e2fae;hb=20b0daf82de91fd57b7e8d825786789149f6358d;hp=a586f0ae64d6e5b100cbaa52797041c4d9debc58;hpb=67aba799bc9f32bf60b1587bc7e6072dfadff13d;p=mesa.git diff --git a/configure.ac b/configure.ac index a586f0ae64d..a4943e126b6 100644 --- a/configure.ac +++ b/configure.ac @@ -17,10 +17,14 @@ 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_INTEL_REQUIRED=2.4.27 LIBDRM_NOUVEAU_REQUIRED=0.6 DRI2PROTO_REQUIRED=2.6 GLPROTO_REQUIRED=1.4.14 @@ -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 @@ -168,6 +172,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" @@ -187,6 +195,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 @@ -337,6 +349,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 @@ -355,7 +389,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 +401,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 +414,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 +426,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]) @@ -628,7 +658,7 @@ GALLIUM_DRIVERS_DEFAULT="r300,r600,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"]) @@ -769,7 +799,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="galahad trace rbug noop identity" GALLIUM_STATE_TRACKERS_DIRS="" # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled @@ -807,6 +837,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 @@ -946,15 +977,8 @@ 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 - # 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 @@ -1028,7 +1052,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]) @@ -1068,11 +1092,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 @@ -1165,25 +1184,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 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 @@ -1193,8 +1207,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 radeon swrast" fi ;; gnu*) @@ -1214,8 +1227,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 radeon swrast" fi DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'` @@ -1264,15 +1276,10 @@ case $DRI_DIRS in 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]) ;; esac -AC_SUBST([RADEON_CFLAGS]) -AC_SUBST([RADEON_LDFLAGS]) dnl @@ -1293,17 +1300,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,6 +1326,41 @@ AC_SUBST([OSMESA_MESA_DEPS]) 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 @@ -1330,6 +1371,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 @@ -1361,41 +1404,6 @@ 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 @@ -1419,8 +1427,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 ;; @@ -1433,6 +1441,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" @@ -1456,9 +1468,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 @@ -1511,42 +1535,39 @@ if test "x$enable_gallium_g3dvl" = xyes; then 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 xorg-server]) 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 @@ -1585,7 +1606,6 @@ if test "x$enable_glu" = xyes; then else GLU_LIB_DEPS="" GLU_MESA_DEPS="" - APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++" fi fi fi @@ -1600,155 +1620,6 @@ AC_SUBST([GLU_PC_REQ_PRIV]) 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 @@ -1756,9 +1627,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]) @@ -1803,6 +1671,9 @@ yes) 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])]) @@ -1878,13 +1749,14 @@ 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|sed 's/-DNDEBUG\>//g'` - LLVM_LIBS="`$LLVM_CONFIG --libs` -lstdc++" + LLVM_LIBS="`$LLVM_CONFIG --libs`" LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags` - GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe" DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS" MESA_LLVM=1 else @@ -1933,12 +1805,15 @@ gallium_check_st() { 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 } @@ -1951,36 +1826,44 @@ 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" "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) 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) 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 @@ -1993,6 +1876,13 @@ 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_WINSYS_XLIB" != xyes; then + GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib" + fi + fi ;; *) AC_MSG_ERROR([Unknown Gallium driver: $driver]) @@ -2001,6 +1891,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" @@ -2008,6 +1902,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]) @@ -2020,10 +1918,10 @@ ln -s autoconf configs/current ]) 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 @@ -2076,8 +1974,6 @@ esac echo "" echo " GLU: $enable_glu" -echo " GLw: $enable_glw (Motif: $enable_motif)" -echo " glut: $enable_glut" dnl EGL echo "" @@ -2119,6 +2015,7 @@ else echo " Gallium: no" fi + dnl Libraries echo "" echo " Shared libs: $enable_shared"