summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorjinhyung.jo <jinhyung.jo@samsung.com>2013-09-26 14:58:40 +0900
committerQuanxian Wang <quanxian.wang@intel.com>2014-10-15 12:06:14 +0800
commitbb851c1ecad9e6924533bada63ef4714ece783b8 (patch)
tree3be63040f8b4348f92423662e3f844d94e30c894 /configure.ac
parent6737f6845cfc50596cd5f94d4080264b25168b43 (diff)
downloadlibdrm-bb851c1ecad9e6924533bada63ef4714ece783b8.tar.gz
libdrm-bb851c1ecad9e6924533bada63ef4714ece783b8.tar.bz2
libdrm-bb851c1ecad9e6924533bada63ef4714ece783b8.zip
libdrm_vigs added
Change-Id: Ie67c19bdb4a6f9e2190dbb4d3f825e878fca3635 Signed-off-by: Stanislav Vorobiov <s.vorobiov@samsung.com> Signed-off-by: Jinhyung Jo <jinhyung.jo@samsung.com>
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac98
1 files changed, 98 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index ee59b030..7e9d2fcf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -98,6 +98,11 @@ AC_ARG_ENABLE(freedreno-experimental-api,
[Enable support for freedreno's experimental API (default: disabled)]),
[FREEDRENO=$enableval], [FREEDRENO=no])
+AC_ARG_ENABLE(vigs,
+ AS_HELP_STRING([--disable-vigs],
+ [Enable support for VIGS's API (default: enabled)]),
+ [VIGS=$enableval], [VIGS=yes])
+
AC_ARG_ENABLE(install-test-programs,
AS_HELP_STRING([--enable-install-test-programs],
[Install test programs (default: no)]),
@@ -355,11 +360,101 @@ else
fi
AM_CONDITIONAL([HAVE_MANPAGES_STYLESHEET], [test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"])
+if test "x$INTEL" != "xno" -o "x$RADEON" != "xno" -o "x$NOUVEAU" != "xno" -o "x$OMAP" != "xno" -o "x$FREEDRENO" != "xno" -o "x$VIGS" != "xno"; then
+ # Check for atomic intrinsics
+ AC_CACHE_CHECK([for native atomic primitives], drm_cv_atomic_primitives,
+ [
+ drm_cv_atomic_primitives="none"
+
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+ int atomic_add(int i) { return __sync_fetch_and_add (&i, 1); }
+ int atomic_cmpxchg(int i, int j, int k) { return __sync_val_compare_and_swap (&i, j, k); }
+ ]],[[]])],
+ [drm_cv_atomic_primitives="Intel"],[])
+
+ if test "x$drm_cv_atomic_primitives" = "xnone"; then
+ AC_CHECK_HEADER([atomic_ops.h], drm_cv_atomic_primitives="libatomic-ops")
+ fi
+
+ # atomic functions defined in <atomic.h> & libc on Solaris
+ if test "x$drm_cv_atomic_primitives" = "xnone"; then
+ AC_CHECK_FUNC([atomic_cas_uint],
+ drm_cv_atomic_primitives="Solaris")
+ fi
+
+ ])
+ if test "x$drm_cv_atomic_primitives" = xIntel; then
+ AC_DEFINE(HAVE_LIBDRM_ATOMIC_PRIMITIVES, 1,
+ [Enable if your compiler supports the Intel __sync_* atomic primitives])
+ fi
+ 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$drm_cv_atomic_primitives" = "xnone"; then
+ if test "x$INTEL" != "xauto"; then
+ if test "x$INTEL" != "xno"; then
+ AC_MSG_ERROR([libdrm_intel 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 Intel GPUs by passing --disable-intel to ./configure])
+ fi
+ else
+ AC_MSG_WARN([Disabling libdrm_intel. 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.])
+ INTEL=no
+ fi
+ if test "x$RADEON" != "xauto"; then
+ if test "x$RADEON" != "xno"; then
+ AC_MSG_ERROR([libdrm_radeon 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 Radeon support by passing --disable-radeon to ./configure])
+ fi
+ else
+ AC_MSG_WARN([Disabling libdrm_radeon. 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.])
+ RADEON=no
+ fi
+ if test "x$NOUVEAU" != "xauto"; then
+ if test "x$NOUVEAU" != "xno"; then
+ AC_MSG_ERROR([libdrm_nouveau 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 GPUs by passing --disable-nouveau to ./configure])
+ fi
+ else
+ 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
+ else
+ if test "x$INTEL" != "xno"; then
+ case $host_cpu in
+ i?86|x86_64) INTEL=yes ;;
+ *) INTEL=no ;;
+ esac
+ fi
+ if test "x$RADEON" != "xno"; then
+ RADEON=yes
+ fi
+ if test "x$NOUVEAU" != "xno"; then
+ NOUVEAU=yes
+ fi
+ fi
+fi
+
+if test "x$VIGS" != "xno"; then
+ AC_DEFINE(HAVE_VIGS, 1, [Have VIGS])
+fi
+
+if test "x$INTEL" != "xno"; then
+ PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10])
+fi
+AC_SUBST(PCIACCESS_CFLAGS)
+AC_SUBST(PCIACCESS_LIBS)
+
PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no])
if test "x$have_valgrind" = "xyes"; then
AC_DEFINE([HAVE_VALGRIND], 1, [Use valgrind intrinsics to suppress false warnings])
fi
+AM_CONDITIONAL(HAVE_INTEL, [test "x$INTEL" != "xno"])
+AM_CONDITIONAL(HAVE_RADEON, [test "x$RADEON" != "xno"])
+AM_CONDITIONAL(HAVE_NOUVEAU, [test "x$NOUVEAU" != "xno"])
+if test "x$RADEON" = xyes; then
+ AC_DEFINE(HAVE_RADEON, 1, [Have radeon support])
+fi
+AM_CONDITIONAL(HAVE_VIGS, [test "x$VIGS" != "xno"])
+
AC_ARG_WITH([kernel-source],
[AS_HELP_STRING([--with-kernel-source],
[specify path to linux kernel source])],
@@ -403,6 +498,8 @@ AC_CONFIG_FILES([
exynos/libdrm_exynos.pc
freedreno/Makefile
freedreno/libdrm_freedreno.pc
+ vigs/Makefile
+ vigs/libdrm_vigs.pc
tests/Makefile
tests/modeprint/Makefile
tests/modetest/Makefile
@@ -425,4 +522,5 @@ echo " Nouveau API $NOUVEAU"
echo " OMAP API $OMAP"
echo " EXYNOS API $EXYNOS"
echo " Freedreno API $FREEDRENO"
+echo " VIGS API $VIGS"
echo ""