configure: omap, freedreno and tegra require atomics
authorEmil Velikov <emil.l.velikov@gmail.com>
Tue, 2 Dec 2014 00:12:34 +0000 (00:12 +0000)
committerEmil Velikov <emil.l.velikov@gmail.com>
Tue, 10 Mar 2015 18:09:18 +0000 (18:09 +0000)
They have used them since day one, but the check was never there.

v2:
 - Update the freedreno message (API is no longer experimental).
 - Move the freedreno host_cpu detection next to the intel one.

Cc: Rob Clark <robdclark@gmail.com>
Cc: Thierry Reding <treding@nvidia.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
configure.ac

index 8afee83..6300083 100644 (file)
@@ -214,7 +214,12 @@ if test "x$drm_cv_atomic_primitives" = "xlibatomic-ops"; then
        AC_DEFINE(HAVE_LIB_ATOMIC_OPS, 1, [Enable if you have libatomic-ops-dev installed])
 fi
 
-if test "x$INTEL" != "xno" -o "x$RADEON" != "xno" -o "x$NOUVEAU" != "xno"; then
+if test "x$INTEL" != "xno" -o \
+       "x$RADEON" != "xno" -o \
+       "x$NOUVEAU" != "xno" -o \
+       "x$OMAP" != "xno" -o \
+       "x$FREEDRENO" != "xno" -o \
+       "x$TEGRA" != "xno"; then
        if test "x$drm_cv_atomic_primitives" = "xnone"; then
                if test "x$INTEL" != "xauto"; then
                        if test "x$INTEL" != "xno"; then
@@ -240,6 +245,15 @@ if test "x$INTEL" != "xno" -o "x$RADEON" != "xno" -o "x$NOUVEAU" != "xno"; then
                        AC_MSG_WARN([Disabling libdrm_nouveau. It depends on atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package.])
                        NOUVEAU=no
                fi
+               if test "x$OMAP" != "xauto"; then
+                       AC_MSG_ERROR([libdrm_omap depends upon atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package, or, failing both of those, disable support for OMAP GPUs by passing --disable-omap-experimental-api to ./configure])
+               fi
+               if test "x$FREEDRENO" != "xauto"; then
+                       AC_MSG_ERROR([libdrm_freedreno depends upon atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package, or, failing both of those, disable support for QCOM's Adreno GPUs by passing --disable-freedreno to ./configure])
+               fi
+               if test "x$TEGRA" != "xauto"; then
+                       AC_MSG_ERROR([libdrm_tegra depends upon atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package, or, failing both of those, disable support for NVIDIA's Tegra GPUs by passing --disable-tegra-experimental-api to ./configure])
+               fi
        else
                if test "x$INTEL" != "xno"; then
                        case $host_cpu in
@@ -253,6 +267,12 @@ if test "x$INTEL" != "xno" -o "x$RADEON" != "xno" -o "x$NOUVEAU" != "xno"; then
                if test "x$NOUVEAU" != "xno"; then
                        NOUVEAU=yes
                fi
+               if test "x$FREEDRENO" != "xno"; then
+                       case $host_cpu in
+                               arm*|aarch64)   FREEDRENO=yes ;;
+                               *)              FREEDRENO=no ;;
+                       esac
+               fi
        fi
 fi
 
@@ -277,13 +297,6 @@ if test "x$LIBKMS" = xauto ; then
        esac
 fi
 
-if test "x$FREEDRENO" = xauto ; then
-       case $host_cpu in
-               arm*|aarch64)   FREEDRENO="yes" ;;
-               *)              FREEDRENO="no" ;;
-       esac
-fi
-
 AM_CONDITIONAL(HAVE_LIBKMS, [test "x$LIBKMS" = xyes])
 
 AM_CONDITIONAL(HAVE_INTEL, [test "x$INTEL" = xyes])