autoconf: Fail when --with-state-trackers is incomplete.
[mesa.git] / configure.ac
index d1a9fefdf6e6f2d103fec12ba94923d8ea1eb623..f51ad9edc8c968d89714f8469077982c0385a6e3 100644 (file)
@@ -18,11 +18,11 @@ AC_CONFIG_AUX_DIR([bin])
 AC_CANONICAL_HOST
 
 dnl Versions for external dependencies
-LIBDRM_REQUIRED=2.4.15
-LIBDRM_RADEON_REQUIRED=2.4.17
+LIBDRM_REQUIRED=2.4.23
+LIBDRM_RADEON_REQUIRED=2.4.23
 DRI2PROTO_REQUIRED=2.1
 GLPROTO_REQUIRED=1.4.11
-LIBDRM_XORG_REQUIRED=2.4.17
+LIBDRM_XORG_REQUIRED=2.4.23
 LIBKMS_XORG_REQUIRED=1.0.0
 
 dnl Check for progs
@@ -377,14 +377,14 @@ if test "x$enable_asm" = xyes; then
     case "$host_cpu" in
     i?86)
         case "$host_os" in
-        linux* | *freebsd* | dragonfly*)
+        linux* | *freebsd* | dragonfly* | *netbsd*)
             test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
             ;;
         esac
         ;;
     x86_64)
         case "$host_os" in
-        linux* | *freebsd* | dragonfly*)
+        linux* | *freebsd* | dragonfly* | *netbsd*)
             test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
             ;;
         esac
@@ -483,9 +483,9 @@ AC_ARG_ENABLE([gles2],
     [enable_gles2=no])
 AC_ARG_ENABLE([gles-overlay],
     [AS_HELP_STRING([--enable-gles-overlay],
-        [build separate OpenGL ES only libraries @<:@default=no@:>@])],
-    [enable_gles_overlay="$enableval"],
-    [enable_gles_overlay=no])
+        [DEPRECATED.  Same as --enable-gles1 and --enable-gles2])],
+    [enable_gles1="$enableval"; enable_gles2="$enableval"],
+    [])
 
 AC_ARG_ENABLE([openvg],
     [AS_HELP_STRING([--enable-openvg],
@@ -493,16 +493,24 @@ AC_ARG_ENABLE([openvg],
     [enable_openvg="$enableval"],
     [enable_openvg=no])
 
+dnl smooth the transition; should be removed eventually
+if test "x$enable_openvg" = xno; then
+    case "x$with_state_trackers" in
+    x*vega*)
+        AC_MSG_WARN([vega state tracker is enabled without --enable-openvg])
+        enable_openvg=yes
+        ;;
+    esac
+fi
+
 if test "x$enable_opengl" = xno -a \
         "x$enable_gles1" = xno -a \
         "x$enable_gles2" = xno -a \
-        "x$enable_gles_overlay" = xno -a \
         "x$enable_openvg" = xno; then
     AC_MSG_ERROR([at least one API should be enabled])
 fi
 
 API_DEFINES=""
-GLES_OVERLAY=0
 if test "x$enable_opengl" = xno; then
     API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
 else
@@ -514,11 +522,7 @@ fi
 if test "x$enable_gles2" = xyes; then
     API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
 fi
-if test "x$enable_gles_overlay" = xyes; then
-    GLES_OVERLAY=1
-fi
 AC_SUBST([API_DEFINES])
-AC_SUBST([GLES_OVERLAY])
 
 dnl
 dnl Driver configuration. Options are xlib, dri and osmesa right now.
@@ -532,7 +536,7 @@ linux*)
     i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
     esac
     ;;
-*freebsd* | dragonfly*)
+*freebsd* | dragonfly* | *netbsd*)
     case "$host_cpu" in
     i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
     esac
@@ -578,7 +582,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 identity"
+GALLIUM_DRIVERS_DIRS="softpipe failover galahad trace rbug noop identity"
 GALLIUM_STATE_TRACKERS_DIRS=""
 
 # build glapi if OpenGL is enabled
@@ -586,12 +590,15 @@ if test "x$enable_opengl" = xyes; then
     CORE_DIRS="$CORE_DIRS mapi/glapi"
 fi
 
-# build es1api and es2api if OpenGL ES is enabled
-case "x$enable_gles1$enable_gles2$enable_gles_overlay" in
-x*yes*)
-    CORE_DIRS="$CORE_DIRS mapi/es1api mapi/es2api"
-    ;;
-esac
+# build es1api if OpenGL ES 1.x is enabled
+if test "x$enable_gles1" = xyes; then
+    CORE_DIRS="$CORE_DIRS mapi/es1api"
+fi
+
+# build es2api if OpenGL ES 2.x is enabled
+if test "x$enable_gles2" = xyes; then
+    CORE_DIRS="$CORE_DIRS mapi/es2api"
+fi
 
 # build vgapi if OpenVG is enabled
 if test "x$enable_openvg" = xyes; then
@@ -599,7 +606,7 @@ if test "x$enable_openvg" = xyes; then
 fi
 
 # build glsl and mesa if OpenGL or OpenGL ES is enabled
-case "x$enable_opengl$enable_gles1$enable_gles2$enable_gles_overlay" in
+case "x$enable_opengl$enable_gles1$enable_gles2" in
 x*yes*)
     CORE_DIRS="$CORE_DIRS glsl mesa"
     ;;
@@ -801,13 +808,19 @@ if test "$mesa_driver" = xlib; then
 fi
 
 dnl
-dnl More DRI setup
+dnl TLS detection
 dnl
+
 AC_ARG_ENABLE([glx-tls],
     [AS_HELP_STRING([--enable-glx-tls],
         [enable TLS support in GLX @<:@default=disabled@:>@])],
     [GLX_USE_TLS="$enableval"],
     [GLX_USE_TLS=no])
+AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
+
+dnl
+dnl More DRI setup
+dnl
 dnl Directory for DRI drivers
 AC_ARG_WITH([dri-driverdir],
     [AS_HELP_STRING([--with-dri-driverdir=DIR],
@@ -899,16 +912,13 @@ if test "$mesa_driver" = dri -o "$mesa_driver" = no; then
             ;;
         esac
         ;;
-    freebsd* | dragonfly*)
+    freebsd* | dragonfly* | *netbsd*)
         DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
         DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
         DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
         if test "x$driglx_direct" = xyes; then
             DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
         fi
-        if test "x$GXX" = xyes; then
-            CXXFLAGS="$CXXFLAGS -ansi -pedantic"
-        fi
 
         if test "x$DRI_DIRS" = "xyes"; then
             DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon tdfx \
@@ -962,7 +972,7 @@ AC_SUBST([DRI_LIB_DEPS])
 
 case $DRI_DIRS in
 *i915*|*i965*)
-    PKG_CHECK_MODULES([INTEL], [libdrm_intel >= 2.4.21])
+    PKG_CHECK_MODULES([INTEL], [libdrm_intel >= 2.4.23])
     ;;
 esac
 
@@ -1330,6 +1340,27 @@ AC_SUBST([LLVM_VERSION])
 dnl
 dnl Gallium state trackers configuration
 dnl
+
+AC_ARG_ENABLE([gallium-egl],
+    [AS_HELP_STRING([--enable-gallium-egl],
+        [enable gallium EGL state tracker @<:@default=auto@:>@])],
+    [enable_gallium_egl="$enableval"],
+    [enable_gallium_egl=auto])
+if test "x$enable_gallium_egl" = xauto; then
+    case "$mesa_driver" in
+    dri|no)
+        enable_gallium_egl=$enable_egl
+        ;;
+    *)
+        enable_gallium_egl=$enable_openvg
+        ;;
+    esac
+fi
+case "x$enable_egl$enable_gallium_egl" in
+xnoyes)
+    AC_MSG_ERROR([cannot build Gallium EGL state tracker without EGL])
+esac
+
 AC_ARG_WITH([state-trackers],
     [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
         [comma delimited state_trackers list, e.g.
@@ -1342,8 +1373,6 @@ no)
     GALLIUM_STATE_TRACKERS_DIRS=""
     ;;
 yes)
-    st_egl="no"
-
     # look at what else is built
     case "$mesa_driver" in
     xlib)
@@ -1352,14 +1381,11 @@ yes)
     dri)
         GALLIUM_STATE_TRACKERS_DIRS="dri"
         HAVE_ST_DRI="yes"
-        st_egl="yes"
         # Have only tested st/xorg on 1.6.0 servers
         PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6.0 libdrm >= $LIBDRM_XORG_REQUIRED libkms >= $LIBKMS_XORG_REQUIRED],
             HAVE_ST_XORG="yes"; GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg",
             HAVE_ST_XORG="no")
         ;;
-    no)
-        st_egl="yes"
     esac
 
     if test "x$enable_egl" = xyes; then
@@ -1368,7 +1394,7 @@ yes)
             st_egl="yes"
         fi
 
-        if test "$st_egl" = yes; then
+        if test "$enable_gallium_egl" = yes; then
             GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS egl"
             HAVE_ST_EGL="yes"
         fi
@@ -1398,6 +1424,12 @@ yes)
             PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
             HAVE_ST_XORG="yes"
             ;;
+        vega)
+            if test "x$enable_openvg" != xyes; then
+                AC_MSG_ERROR([cannot build vega state tracker without --enable-openvg])
+            fi
+            have_st_vega="yes"
+            ;;
         esac
 
        if test -n "$tracker"; then
@@ -1411,6 +1443,14 @@ yes)
         fi
     done
     GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
+
+    # append --enable-openvg/--enable-gallium-egl to --with-state-trackers
+    if test "x$have_st_vega" != xyes -a "x$enable_openvg" = xyes; then
+        AC_MSG_ERROR([--with-state-trackers specified but vega is missing])
+    fi
+    if test "x$HAVE_ST_EGL" != xyes -a "x$enable_gallium_egl" = xyes; then
+        AC_MSG_ERROR([--with-state-trackers specified but egl is missing])
+    fi
     ;;
 esac
 
@@ -1423,9 +1463,6 @@ x*yes*)
     EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
     ;;
 esac
-if test "x$enable_gles_overlay" = xyes; then
-    EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GLESv1_CM_LIB) $(GLESv2_LIB)'
-fi
 if test "x$enable_openvg" = xyes; then
     EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
     VG_LIB_DEPS="$VG_LIB_DEPS -lpthread"
@@ -1436,10 +1473,6 @@ AC_SUBST([EGL_CLIENT_APIS])
 
 if test "x$HAVE_ST_EGL" = xyes; then
        GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl"
-       # define GLX_DIRECT_RENDERING even when the driver is not dri
-       if test "x$mesa_driver" != xdri -a "x$driglx_direct" = xyes; then
-            DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
-       fi
 fi
 
 if test "x$HAVE_ST_XORG" = xyes; then
@@ -1527,7 +1560,7 @@ AC_ARG_ENABLE([gallium-llvm],
 if test "x$enable_gallium_llvm" = xyes; then
     if test "x$LLVM_CONFIG" != xno; then
        LLVM_VERSION=`$LLVM_CONFIG --version`
-       LLVM_CFLAGS=`$LLVM_CONFIG --cflags`
+       LLVM_CFLAGS=`$LLVM_CONFIG --cppflags`
        LLVM_LIBS="`$LLVM_CONFIG --libs jit interpreter nativecodegen bitwriter` -lstdc++"
 
        if test "x$HAS_UDIS86" != xno; then
@@ -1659,7 +1692,7 @@ AC_ARG_ENABLE([gallium-nouveau],
     [enable_gallium_nouveau="$enableval"],
     [enable_gallium_nouveau=no])
 if test "x$enable_gallium_nouveau" = xyes; then
-    GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50"
+    GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
     gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
 fi
 
@@ -1706,25 +1739,55 @@ echo "        exec_prefix:     $exec_prefix"
 echo "        libdir:          $libdir"
 echo "        includedir:      $includedir"
 
+dnl API info
+echo ""
+echo "        OpenGL:          $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
+echo "        OpenVG:          $enable_openvg"
+
 dnl Driver info
 echo ""
 echo "        Driver:          $mesa_driver"
-if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
-    echo "        OSMesa:          lib$OSMESA_LIB"
-else
-    echo "        OSMesa:          no"
-fi
-if test "$mesa_driver" = dri; then
-    # cleanup the drivers var
-    dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/  */ /;s/ *$//'`
-if test "x$DRI_DIRS" = x; then
-    echo "        DRI drivers:     no"
-else
-    echo "        DRI drivers:     $dri_dirs"
+if test "$mesa_driver" != no; then
+    if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
+        echo "        OSMesa:          lib$OSMESA_LIB"
+    else
+        echo "        OSMesa:          no"
+    fi
+    if test "$mesa_driver" = dri; then
+        # cleanup the drivers var
+        dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/  */ /;s/ *$//'`
+        if test "x$DRI_DIRS" = x; then
+            echo "        DRI drivers:     no"
+        else
+            echo "        DRI drivers:     $dri_dirs"
+        fi
+        echo "        DRI driver dir:  $DRI_DRIVER_INSTALL_DIR"
+        echo "        Use XCB:         $enable_xcb"
+    fi
 fi
-    echo "        DRI driver dir:  $DRI_DRIVER_INSTALL_DIR"
+echo ""
+echo "        GLU:             $enable_glu"
+echo "        GLw:             $enable_glw (Motif: $enable_motif)"
+echo "        glut:            $enable_glut"
+
+dnl EGL
+echo ""
+echo "        EGL:             $enable_egl"
+if test "$enable_egl" = yes; then
+    echo "        EGL platforms:   $EGL_PLATFORMS"
+
+    egl_drivers=""
+    for d in $EGL_DRIVERS_DIRS; do
+        egl_drivers="$egl_drivers builtin:egl_$d"
+    done
+
+    if test "$enable_gallium" = yes -a "$HAVE_ST_EGL" = yes; then
+        echo "        EGL drivers:    ${egl_drivers} egl_gallium"
+        echo "        EGL Gallium STs:$EGL_CLIENT_APIS"
+    else
+        echo "        EGL drivers:    $egl_drivers"
+    fi
 fi
-echo "        Use XCB:         $enable_xcb"
 
 echo ""
 if test "x$MESA_LLVM" = x1; then
@@ -1743,9 +1806,6 @@ if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
     echo "        Winsys dirs:     $GALLIUM_WINSYS_DIRS"
     echo "        Driver dirs:     $GALLIUM_DRIVERS_DIRS"
     echo "        Trackers dirs:   $GALLIUM_STATE_TRACKERS_DIRS"
-    if test "x$HAVE_ST_EGL" = xyes; then
-        echo "        EGL client APIs: $EGL_CLIENT_APIS"
-    fi
 else
     echo "        Gallium:         no"
 fi
@@ -1754,15 +1814,6 @@ dnl Libraries
 echo ""
 echo "        Shared libs:     $enable_shared"
 echo "        Static libs:     $enable_static"
-if test "$enable_egl" = yes; then
-    echo "        EGL:             $EGL_DRIVERS_DIRS"
-    echo "        EGL platforms:   $EGL_PLATFORMS"
-else
-    echo "        EGL:             no"
-fi
-echo "        GLU:             $enable_glu"
-echo "        GLw:             $enable_glw (Motif: $enable_motif)"
-echo "        glut:            $enable_glut"
 
 dnl Compiler options
 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars