OSDN Git Service

Export drmDevicesEqual
[android-x86/external-libdrm.git] / configure.ac
index 43e6954..e5158b7 100644 (file)
@@ -20,7 +20,7 @@
 
 AC_PREREQ([2.63])
 AC_INIT([libdrm],
-        [2.4.46],
+        [2.4.80],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=DRI],
         [libdrm])
 
@@ -28,28 +28,55 @@ AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_SRCDIR([Makefile.am])
 AC_CONFIG_MACRO_DIR([m4])
 AC_CONFIG_AUX_DIR([build-aux])
+PKG_PROG_PKG_CONFIG
+
+# Require xorg-macros minimum of 1.12 for XORG_WITH_XSLTPROC
+m4_ifndef([XORG_MACROS_VERSION],
+          [m4_fatal([must install xorg-macros 1.12 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.12)
+XORG_WITH_XSLTPROC
+XORG_MANPAGE_SECTIONS
 
 AM_INIT_AUTOMAKE([1.10 foreign dist-bzip2])
-AM_MAINTAINER_MODE([enable])
 
 # Enable quiet compiles on automake 1.11.
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 
 # Check for programs
 AC_PROG_CC
+AC_PROG_CC_C99
+
+if test "x$ac_cv_prog_cc_c99" = xno; then
+       AC_MSG_ERROR([Building libdrm requires C99 enabled compiler])
+fi
 
 AC_USE_SYSTEM_EXTENSIONS
 AC_SYS_LARGEFILE
 AC_FUNC_ALLOCA
 
+AC_HEADER_MAJOR
+AC_CHECK_HEADERS([sys/sysctl.h sys/select.h])
+
 # Initialize libtool
 LT_PREREQ([2.2])
 LT_INIT([disable-static])
 
-
-PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs)
-AC_SUBST(PTHREADSTUBS_CFLAGS)
-AC_SUBST(PTHREADSTUBS_LIBS)
+dnl pthread-stubs is mandatory on BSD platforms, due to the nature of the
+dnl project. Even then there's a notable issue as described in the project README
+case "$host_os" in
+linux* | cygwin* | darwin* | solaris* | *-gnu* | gnu*)
+    pthread_stubs_possible="no"
+    ;;
+* )
+    pthread_stubs_possible="yes"
+    ;;
+esac
+
+if test "x$pthread_stubs_possible" = xyes; then
+    PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs >= 0.4)
+    AC_SUBST(PTHREADSTUBS_CFLAGS)
+    AC_SUBST(PTHREADSTUBS_LIBS)
+fi
 
 pkgconfigdir=${libdir}/pkgconfig
 AC_SUBST(pkgconfigdir)
@@ -60,12 +87,12 @@ AC_ARG_ENABLE([udev],
 
 AC_ARG_ENABLE(libkms,
              AS_HELP_STRING([--disable-libkms],
-             [Disable KMS mm abstraction library (default: auto)]),
+             [Disable KMS mm abstraction library (default: auto, enabled on supported platforms)]),
              [LIBKMS=$enableval], [LIBKMS=auto])
 
 AC_ARG_ENABLE(intel,
              AS_HELP_STRING([--disable-intel],
-             [Enable support for intel's KMS API (default: auto)]),
+             [Enable support for intel's KMS API (default: auto, enabled on x86)]),
              [INTEL=$enableval], [INTEL=auto])
 
 AC_ARG_ENABLE(radeon,
@@ -73,6 +100,11 @@ AC_ARG_ENABLE(radeon,
              [Enable support for radeon's KMS API (default: auto)]),
              [RADEON=$enableval], [RADEON=auto])
 
+AC_ARG_ENABLE(amdgpu,
+             AS_HELP_STRING([--disable-amdgpu],
+             [Enable support for amdgpu's KMS API (default: auto)]),
+             [AMDGPU=$enableval], [AMDGPU=auto])
+
 AC_ARG_ENABLE(nouveau,
              AS_HELP_STRING([--disable-nouveau],
              [Enable support for nouveau's KMS API (default: auto)]),
@@ -93,10 +125,30 @@ AC_ARG_ENABLE(exynos-experimental-api,
              [Enable support for EXYNOS's experimental API (default: disabled)]),
              [EXYNOS=$enableval], [EXYNOS=no])
 
-AC_ARG_ENABLE(freedreno-experimental-api,
-             AS_HELP_STRING([--enable-freedreno-experimental-api],
-             [Enable support for freedreno's experimental API (default: disabled)]),
-             [FREEDRENO=$enableval], [FREEDRENO=no])
+AC_ARG_ENABLE(freedreno,
+             AS_HELP_STRING([--disable-freedreno],
+             [Enable support for freedreno's KMS API (default: auto, enabled on arm)]),
+             [FREEDRENO=$enableval], [FREEDRENO=auto])
+
+AC_ARG_ENABLE(freedreno-kgsl,
+             AS_HELP_STRING([--enable-freedreno-kgsl],
+             [Enable support for freedreno's to use downstream android kernel API (default: disabled)]),
+             [FREEDRENO_KGSL=$enableval], [FREEDRENO_KGSL=no])
+
+AC_ARG_ENABLE(tegra-experimental-api,
+             AS_HELP_STRING([--enable-tegra-experimental-api],
+             [Enable support for Tegra's experimental API (default: disabled)]),
+             [TEGRA=$enableval], [TEGRA=no])
+
+AC_ARG_ENABLE(vc4,
+             AS_HELP_STRING([--disable-vc4],
+             [Enable support for vc4's API (default: auto, enabled on arm)]),
+             [VC4=$enableval], [VC4=auto])
+
+AC_ARG_ENABLE(etnaviv-experimental-api,
+             AS_HELP_STRING([--enable-etnaviv-experimental-api],
+             [Enable support for etnaviv's experimental API (default: disabled)]),
+             [ETNAVIV=$enableval], [ETNAVIV=no])
 
 AC_ARG_ENABLE(install-test-programs,
                  AS_HELP_STRING([--enable-install-test-programs],
@@ -145,8 +197,9 @@ MAYBE_WARN="-Wall -Wextra \
 -Wpacked -Wswitch-enum -Wmissing-format-attribute \
 -Wstrict-aliasing=2 -Winit-self \
 -Wdeclaration-after-statement -Wold-style-definition \
--Wno-missing-field-initializers -Wno-unused-parameter \
--Wno-attributes -Wno-long-long -Winline"
+-Wno-unused-parameter \
+-Wno-attributes -Wno-long-long -Winline -Wshadow \
+-Wno-missing-field-initializers"
 
 # invalidate cached value if MAYBE_WARN has changed
 if test "x$libdrm_cv_warn_maybe" != "x$MAYBE_WARN"; then
@@ -177,6 +230,107 @@ AC_CACHE_CHECK([for supported warning flags], libdrm_cv_warn_cflags, [
        AC_MSG_CHECKING([which warning flags were supported])])
 WARN_CFLAGS="$libdrm_cv_warn_cflags"
 
+# 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_add_and_fetch (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
+
+dnl Print out the approapriate message considering the value set be the
+dnl respective in $1.
+dnl $1 - value to be evaluated. Eg. $INTEL, $NOUVEAU, ...
+dnl $2 - libdrm shortname. Eg. intel, freedreno, ...
+dnl $3 - GPU name/brand. Eg. Intel, NVIDIA Tegra, ...
+dnl $4 - Configure switch. Eg. intel, omap-experimental-api, ...
+AC_DEFUN([LIBDRM_ATOMICS_NOT_FOUND_MSG], [
+       case "x$1" in
+               xyes)   AC_MSG_ERROR([libdrm_$2 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 $3 GPUs by passing --disable-$4 to ./configure]) ;;
+               xauto)  AC_MSG_WARN([Disabling $2. 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.]) ;;
+               *)      ;;
+       esac
+])
+
+if test "x$drm_cv_atomic_primitives" = "xnone"; then
+       LIBDRM_ATOMICS_NOT_FOUND_MSG($INTEL, intel, Intel, intel)
+       INTEL=no
+
+       LIBDRM_ATOMICS_NOT_FOUND_MSG($RADEON, radeon, Radeon, radeon)
+       RADEON=no
+
+       LIBDRM_ATOMICS_NOT_FOUND_MSG($AMDGPU, amdgpu, AMD, amdgpu)
+       AMDGPU=no
+
+       LIBDRM_ATOMICS_NOT_FOUND_MSG($NOUVEAU, nouveau, NVIDIA, nouveau)
+       NOUVEAU=no
+
+       LIBDRM_ATOMICS_NOT_FOUND_MSG($OMAP, omap, OMAP, omap-experimental-api)
+       OMAP=no
+
+       LIBDRM_ATOMICS_NOT_FOUND_MSG($FREEDRENO, freedreno, Qualcomm Adreno, freedreno)
+       FREEDRENO=no
+
+       LIBDRM_ATOMICS_NOT_FOUND_MSG($TEGRA, tegra, NVIDIA Tegra, tegra-experimental-api)
+       TEGRA=no
+
+       LIBDRM_ATOMICS_NOT_FOUND_MSG($ETNAVIV, etnaviv, Vivante, etnaviv-experimental-api)
+       ETNAVIV=no
+else
+       if test "x$INTEL" = xauto; then
+               case $host_cpu in
+                       i?86|x86_64)    INTEL=yes ;;
+                       *)              INTEL=no ;;
+               esac
+       fi
+       if test "x$RADEON" = xauto; then
+               RADEON=yes
+       fi
+       if test "x$AMDGPU" = xauto; then
+               AMDGPU=yes
+       fi
+       if test "x$NOUVEAU" = xauto; then
+               NOUVEAU=yes
+       fi
+       if test "x$FREEDRENO" = xauto; then
+               case $host_cpu in
+                       arm*|aarch64)   FREEDRENO=yes ;;
+                       *)              FREEDRENO=no ;;
+               esac
+       fi
+       if test "x$VC4" = xauto; then
+               case $host_cpu in
+                       arm*|aarch64)   VC4=yes ;;
+                       *)              VC4=no ;;
+               esac
+       fi
+fi
+
+if test "x$INTEL" != "xno"; then
+       PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10])
+fi
+AC_SUBST(PCIACCESS_CFLAGS)
+AC_SUBST(PCIACCESS_LIBS)
+
 if test "x$UDEV" = xyes; then
        AC_DEFINE(UDEV, 1, [Have UDEV support])
 fi
@@ -185,12 +339,20 @@ AC_CANONICAL_HOST
 if test "x$LIBKMS" = xauto ; then
        case $host_os in
                linux*)         LIBKMS="yes" ;;
+               freebsd* | kfreebsd*-gnu)
+                               LIBKMS="yes" ;;
+               dragonfly*)     LIBKMS="yes" ;;
                *)              LIBKMS="no" ;;
        esac
 fi
 
 AM_CONDITIONAL(HAVE_LIBKMS, [test "x$LIBKMS" = xyes])
 
+AM_CONDITIONAL(HAVE_INTEL, [test "x$INTEL" = xyes])
+if test "x$INTEL" = xyes; then
+       AC_DEFINE(HAVE_INTEL, 1, [Have intel support])
+fi
+
 AM_CONDITIONAL(HAVE_VMWGFX, [test "x$VMWGFX" = xyes])
 if test "x$VMWGFX" = xyes; then
        AC_DEFINE(HAVE_VMWGFX, 1, [Have vmwgfx kernel headers])
@@ -216,6 +378,67 @@ if test "x$FREEDRENO" = xyes; then
        AC_DEFINE(HAVE_FREEDRENO, 1, [Have freedreno support])
 fi
 
+if test "x$FREEDRENO_KGSL" = xyes; then
+       if test "x$FREEDRENO" != xyes; then
+               AC_MSG_ERROR([Cannot enable freedreno KGSL interface if freedreno is disabled])
+       fi
+fi
+AM_CONDITIONAL(HAVE_FREEDRENO_KGSL, [test "x$FREEDRENO_KGSL" = xyes])
+if test "x$FREEDRENO_KGSL" = xyes; then
+       AC_DEFINE(HAVE_FREEDRENO_KGSL, 1, [Have freedreno support for KGSL kernel interface])
+fi
+
+AM_CONDITIONAL(HAVE_RADEON, [test "x$RADEON" = xyes])
+if test "x$RADEON" = xyes; then
+       AC_DEFINE(HAVE_RADEON, 1, [Have radeon support])
+fi
+
+if test "x$AMDGPU" != xno; then
+       # Detect cunit library
+       PKG_CHECK_MODULES([CUNIT], [cunit >= 2.1], [have_cunit=yes], [have_cunit=no])
+       # If pkg-config does not find cunit, check it using AC_CHECK_LIB.  We
+       # do this because Debian (Ubuntu) lacks pkg-config file for cunit.
+       # fixed in 2.1-2.dfsg-3: http://anonscm.debian.org/cgit/collab-maint/cunit.git/commit/?h=debian
+       if test "x${have_cunit}" = "xno"; then
+               AC_CHECK_LIB([cunit], [CU_initialize_registry], [have_cunit=yes], [have_cunit=no])
+               if test "x${have_cunit}" = "xyes"; then
+                       CUNIT_LIBS="-lcunit"
+                       CUNIT_CFLAGS=""
+                       AC_SUBST([CUNIT_LIBS])
+                       AC_SUBST([CUNIT_CFLAGS])
+               fi
+       fi
+else
+       have_cunit=no
+fi
+AM_CONDITIONAL(HAVE_CUNIT, [test "x$have_cunit" != "xno"])
+
+AM_CONDITIONAL(HAVE_AMDGPU, [test "x$AMDGPU" = xyes])
+if test "x$AMDGPU" = xyes; then
+       AC_DEFINE(HAVE_AMDGPU, 1, [Have amdgpu support])
+
+       AC_DEFINE(HAVE_CUNIT, [test "x$have_cunit" != "xno"], [Enable CUNIT Have amdgpu support])
+
+       if test "x$have_cunit" = "xno"; then
+               AC_MSG_WARN([Could not find cunit library. Disabling amdgpu tests])
+       fi
+fi
+
+AM_CONDITIONAL(HAVE_TEGRA, [test "x$TEGRA" = xyes])
+if test "x$TEGRA" = xyes; then
+       AC_DEFINE(HAVE_TEGRA, 1, [Have Tegra support])
+fi
+
+AM_CONDITIONAL(HAVE_VC4, [test "x$VC4" = xyes])
+if test "x$VC4" = xyes; then
+       AC_DEFINE(HAVE_VC4, 1, [Have VC4 support])
+fi
+
+AM_CONDITIONAL(HAVE_ETNAVIV, [test "x$ETNAVIV" = xyes])
+if test "x$ETNAVIV" = xyes; then
+       AC_DEFINE(HAVE_ETNAVIV, 1, [Have etnaviv support])
+fi
+
 AM_CONDITIONAL(HAVE_INSTALL_TESTS, [test "x$INSTALL_TESTS" = xyes])
 if test "x$INSTALL_TESTS" = xyes; then
        AC_DEFINE(HAVE_INSTALL_TESTS, 1, [Install test programs])
@@ -225,7 +448,9 @@ AC_ARG_ENABLE([cairo-tests],
               [AS_HELP_STRING([--enable-cairo-tests],
                               [Enable support for Cairo rendering in tests (default: auto)])],
               [CAIRO=$enableval], [CAIRO=auto])
-PKG_CHECK_MODULES(CAIRO, cairo, [HAVE_CAIRO=yes], [HAVE_CAIRO=no])
+if test "x$CAIRO" != xno; then
+       PKG_CHECK_MODULES(CAIRO, cairo, [HAVE_CAIRO=yes], [HAVE_CAIRO=no])
+fi
 AC_MSG_CHECKING([whether to enable Cairo tests])
 if test "x$CAIRO" = xauto; then
        CAIRO="$HAVE_CAIRO"
@@ -239,18 +464,10 @@ fi
 AC_MSG_RESULT([$CAIRO])
 AM_CONDITIONAL(HAVE_CAIRO, [test "x$CAIRO" = xyes])
 
-# For enumerating devices in test case
-PKG_CHECK_MODULES(LIBUDEV, libudev, [HAVE_LIBUDEV=yes], [HAVE_LIBUDEV=no])
-if test "x$HAVE_LIBUDEV" = xyes; then
-       AC_DEFINE(HAVE_LIBUDEV, 1, [Have libudev support])
-fi
-AM_CONDITIONAL(HAVE_LIBUDEV, [test "x$HAVE_LIBUDEV" = xyes])
-
 # xsltproc for docbook manpages
 AC_ARG_ENABLE([manpages],
-              AS_HELP_STRING([--disable-manpages], [disable manpages @<:@default=enabled@:>@]),
+              AS_HELP_STRING([--enable-manpages], [enable manpages @<:@default=auto@:>@]),
               [MANS=$enableval], [MANS=auto])
-AC_PATH_PROG(XSLTPROC, xsltproc)
 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$XSLTPROC" != "x" -a "x$MANS" != "xno"])
 
 # check for offline man-pages stylesheet
@@ -267,95 +484,26 @@ 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"; 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
+AC_ARG_ENABLE(valgrind,
+              [AS_HELP_STRING([--enable-valgrind],
+                             [Build libdrm with  valgrind support (default: auto)])],
+                             [VALGRIND=$enableval], [VALGRIND=auto])
+if test "x$VALGRIND" != xno; then
+       PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no])
 fi
-
-if test "x$INTEL" != "xno"; then
-       PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10])
+AC_MSG_CHECKING([whether to enable Valgrind support])
+if test "x$VALGRIND" = xauto; then
+       VALGRIND="$have_valgrind"
 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
+if test "x$VALGRIND" = "xyes"; then
+       if ! test "x$have_valgrind" = xyes; then
+               AC_MSG_ERROR([Valgrind support required but not present])
+       fi
        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
+AC_MSG_RESULT([$VALGRIND])
 
 AC_ARG_WITH([kernel-source],
             [AS_HELP_STRING([--with-kernel-source],
@@ -363,6 +511,15 @@ AC_ARG_WITH([kernel-source],
            [kernel_source="$with_kernel_source"])
 AC_SUBST(kernel_source)
 
+AC_MSG_CHECKING([whether $CC supports __attribute__(("hidden"))])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([
+    int foo_hidden( void ) __attribute__((visibility("hidden")));
+])], HAVE_ATTRIBUTE_VISIBILITY="yes"; AC_MSG_RESULT([yes]), AC_MSG_RESULT([no]));
+
+if test "x$HAVE_ATTRIBUTE_VISIBILITY" = xyes; then
+    AC_DEFINE(HAVE_VISIBILITY, 1, [Compiler supports __attribute__(("hidden"))])
+fi
+
 AC_SUBST(WARN_CFLAGS)
 AC_CONFIG_FILES([
        Makefile
@@ -372,6 +529,8 @@ AC_CONFIG_FILES([
        intel/libdrm_intel.pc
        radeon/Makefile
        radeon/libdrm_radeon.pc
+       amdgpu/Makefile
+       amdgpu/libdrm_amdgpu.pc
        nouveau/Makefile
        nouveau/libdrm_nouveau.pc
        omap/Makefile
@@ -380,15 +539,26 @@ AC_CONFIG_FILES([
        exynos/libdrm_exynos.pc
        freedreno/Makefile
        freedreno/libdrm_freedreno.pc
+       tegra/Makefile
+       tegra/libdrm_tegra.pc
+       vc4/Makefile
+       vc4/libdrm_vc4.pc
+       etnaviv/Makefile
+       etnaviv/libdrm_etnaviv.pc
        tests/Makefile
        tests/modeprint/Makefile
        tests/modetest/Makefile
+       tests/kms/Makefile
        tests/kmstest/Makefile
+       tests/proptest/Makefile
        tests/radeon/Makefile
+       tests/amdgpu/Makefile
        tests/vbltest/Makefile
        tests/exynos/Makefile
-       include/Makefile
-       include/drm/Makefile
+       tests/tegra/Makefile
+       tests/nouveau/Makefile
+       tests/etnaviv/Makefile
+       tests/util/Makefile
        man/Makefile
        libdrm.pc])
 AC_OUTPUT
@@ -400,8 +570,12 @@ echo "  libkms         $LIBKMS"
 echo "  Intel API      $INTEL"
 echo "  vmwgfx API     $VMWGFX"
 echo "  Radeon API     $RADEON"
+echo "  AMDGPU API     $AMDGPU"
 echo "  Nouveau API    $NOUVEAU"
 echo "  OMAP API       $OMAP"
 echo "  EXYNOS API     $EXYNOS"
-echo "  Freedreno API  $FREEDRENO"
+echo "  Freedreno API  $FREEDRENO (kgsl: $FREEDRENO_KGSL)"
+echo "  Tegra API      $TEGRA"
+echo "  VC4 API        $VC4"
+echo "  Etnaviv API    $ETNAVIV"
 echo ""