Only build libdrm-vivante and libkms

Depend on upstream libdrm. -dev package installs IMX specific
headers separate from upstream, packages that depends on them
must be patched.

Change-Id: Ie742d26822ed9970aa346c12bd98101fffc8644a
diff --git a/Makefile.am b/Makefile.am
index 649160d..305c8e2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -22,129 +22,4 @@
 
 ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
 
-AM_MAKEFLAGS = -s
-AM_DISTCHECK_CONFIGURE_FLAGS = \
-	--enable-udev \
-	--enable-libkms \
-	--enable-intel \
-	--enable-radeon \
-	--enable-amdgpu \
-	--enable-nouveau \
-	--enable-vc4 \
-	--enable-vmwgfx \
-	--enable-omap-experimental-api \
-	--enable-exynos-experimental-api \
-	--enable-freedreno \
-	--enable-freedreno-kgsl\
-	--enable-tegra-experimental-api \
-	--enable-etnaviv-experimental-api \
-	--enable-vivante-experimental-api \
-	--enable-install-test-programs \
-	--enable-cairo-tests \
-	--enable-manpages \
-	--enable-valgrind
-
-pkgconfigdir = @pkgconfigdir@
-pkgconfig_DATA = libdrm.pc
-
-if HAVE_LIBKMS
-LIBKMS_SUBDIR = libkms
-endif
-
-if HAVE_INTEL
-INTEL_SUBDIR = intel
-endif
-
-if HAVE_NOUVEAU
-NOUVEAU_SUBDIR = nouveau
-endif
-
-if HAVE_RADEON
-RADEON_SUBDIR = radeon
-endif
-
-if HAVE_AMDGPU
-AMDGPU_SUBDIR = amdgpu
-endif
-
-if HAVE_OMAP
-OMAP_SUBDIR = omap
-endif
-
-if HAVE_EXYNOS
-EXYNOS_SUBDIR = exynos
-endif
-
-if HAVE_FREEDRENO
-FREEDRENO_SUBDIR = freedreno
-endif
-
-if HAVE_TEGRA
-TEGRA_SUBDIR = tegra
-endif
-
-if HAVE_VC4
-VC4_SUBDIR = vc4
-endif
-
-if HAVE_ETNAVIV
-ETNAVIV_SUBDIR = etnaviv
-endif
-if HAVE_VIVANTE
-VIVANTE_SUBDIR = vivante
-endif
-
-if BUILD_MANPAGES
-if HAVE_MANPAGES_STYLESHEET
-MAN_SUBDIR = man
-endif
-endif
-
-SUBDIRS = \
-	. \
-	$(LIBKMS_SUBDIR) \
-	$(INTEL_SUBDIR) \
-	$(NOUVEAU_SUBDIR) \
-	$(RADEON_SUBDIR) \
-	$(AMDGPU_SUBDIR) \
-	$(OMAP_SUBDIR) \
-	$(EXYNOS_SUBDIR) \
-	$(FREEDRENO_SUBDIR) \
-	$(TEGRA_SUBDIR) \
-	$(VC4_SUBDIR) \
-	$(VIVANTE_SUBDIR) \
-	$(ETNAVIV_SUBDIR) \
-	data \
-	tests \
-	$(MAN_SUBDIR)
-
-libdrm_la_LTLIBRARIES = libdrm.la
-libdrm_ladir = $(libdir)
-libdrm_la_LDFLAGS = -version-number 2:4:0 -no-undefined
-libdrm_la_LIBADD = @CLOCK_LIB@ -lm
-
-libdrm_la_CPPFLAGS = -I$(top_srcdir)/include/drm
-AM_CFLAGS = \
-	$(WARN_CFLAGS) \
-	$(VALGRIND_CFLAGS)
-
-libdrm_la_SOURCES = $(LIBDRM_FILES)
-
-libdrmincludedir = ${includedir}
-libdrminclude_HEADERS = $(LIBDRM_H_FILES)
-
-klibdrmincludedir = ${includedir}/libdrm
-klibdrminclude_HEADERS = $(LIBDRM_INCLUDE_H_FILES)
-
-if HAVE_VMWGFX
-klibdrminclude_HEADERS += $(LIBDRM_INCLUDE_VMWGFX_H_FILES)
-endif
-
-EXTRA_DIST = include/drm/README
-
-copy-headers :
-	cp -r $(kernel_source)/include/uapi/drm/*.h $(top_srcdir)/include/drm/
-
-commit-headers : copy-headers
-	git add include/drm/*.h
-	git commit -am "Copy headers from kernel $$(GIT_DIR=$(kernel_source)/.git git describe)"
+SUBDIRS = libkms vivante
diff --git a/configure.ac b/configure.ac
index 1259a8f..bd28fa2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -19,10 +19,7 @@
 #  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 AC_PREREQ([2.63])
-AC_INIT([libdrm],
-        [2.4.84],
-        [https://bugs.freedesktop.org/enter_bug.cgi?product=DRI],
-        [libdrm])
+AC_INIT([libdrm-imx], [2.4.84])
 
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_SRCDIR([Makefile.am])
@@ -30,34 +27,14 @@
 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])
 
-# Enable quiet compiles on automake 1.11.
-m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+PKG_CHECK_MODULES(LIBDRM, libdrm)
+AC_SUBST(LIBDRM_LIBS)
+AC_SUBST(LIBDRM_CFLAGS)
 
-# 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
-
-save_CFLAGS="$CFLAGS"
-export CFLAGS="$CFLAGS -Werror"
-AC_HEADER_MAJOR
-CFLAGS="$save_CFLAGS"
+AC_SUBST(PTHREADSTUBS_CFLAGS)
+AC_SUBST(PTHREADSTUBS_LIBS)
 
 AC_CHECK_HEADERS([sys/sysctl.h sys/select.h])
 
@@ -65,107 +42,8 @@
 LT_PREREQ([2.2])
 LT_INIT([disable-static])
 
-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)
-libdrmdatadir=${datadir}/libdrm
-AC_SUBST(libdrmdatadir)
-
-AC_ARG_ENABLE([udev],
-              [AS_HELP_STRING([--enable-udev],
-                              [Enable support for using udev instead of mknod (default: disabled)])],
-              [UDEV=$enableval], [UDEV=no])
-
-AC_ARG_ENABLE(libkms,
-	      AS_HELP_STRING([--disable-libkms],
-	      [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, enabled on x86)]),
-	      [INTEL=$enableval], [INTEL=auto])
-
-AC_ARG_ENABLE(radeon,
-	      AS_HELP_STRING([--disable-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)]),
-	      [NOUVEAU=$enableval], [NOUVEAU=auto])
-
-AC_ARG_ENABLE(vmwgfx,
-	      AS_HELP_STRING([--disable-vmwgfx],
-	      [Enable support for vmwgfx's KMS API (default: yes)]),
-	      [VMWGFX=$enableval], [VMWGFX=yes])
-
-AC_ARG_ENABLE(omap-experimental-api,
-	      AS_HELP_STRING([--enable-omap-experimental-api],
-	      [Enable support for OMAP's experimental API (default: disabled)]),
-	      [OMAP=$enableval], [OMAP=no])
-
-AC_ARG_ENABLE(exynos-experimental-api,
-	      AS_HELP_STRING([--enable-exynos-experimental-api],
-	      [Enable support for EXYNOS's experimental API (default: disabled)]),
-	      [EXYNOS=$enableval], [EXYNOS=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(vivante-experimental-api,
-	      AS_HELP_STRING([--enable-vivante-experimental-api],
-	      [Enable support for vivante's experimental API (default: disabled)]),
-	      [VIVANTE=$enableval], [VIVANTE=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],
-		  [Install test programs (default: no)]),
-		  [INSTALL_TESTS=$enableval], [INSTALL_TESTS=no])
 
 dnl ===========================================================================
 dnl check compiler flags
@@ -242,362 +120,11 @@
 	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
-
-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])
-fi
-
-AM_CONDITIONAL(HAVE_NOUVEAU, [test "x$NOUVEAU" = xyes])
-if test "x$NOUVEAU" = xyes; then
-	AC_DEFINE(HAVE_NOUVEAU, 1, [Have nouveau (nvidia) support])
-fi
-
-AM_CONDITIONAL(HAVE_OMAP, [test "x$OMAP" = xyes])
-if test "x$OMAP" = xyes; then
-	AC_DEFINE(HAVE_OMAP, 1, [Have OMAP support])
-fi
-
-AM_CONDITIONAL(HAVE_EXYNOS, [test "x$EXYNOS" = xyes])
-if test "x$EXYNOS" = xyes; then
-	AC_DEFINE(HAVE_EXYNOS, 1, [Have EXYNOS support])
-fi
-
-AM_CONDITIONAL(HAVE_FREEDRENO, [test "x$FREEDRENO" = xyes])
-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_VIVANTE, [test "x$VIVANTE" = xyes])
-if test "x$VIVANTE" = xyes; then
-	AC_DEFINE(HAVE_VIVANTE, 1, [Have vivante 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])
-fi
-
-AC_ARG_ENABLE([cairo-tests],
-              [AS_HELP_STRING([--enable-cairo-tests],
-                              [Enable support for Cairo rendering in tests (default: auto)])],
-              [CAIRO=$enableval], [CAIRO=auto])
-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"
-fi
-if test "x$CAIRO" = xyes; then
-	if ! test "x$HAVE_CAIRO" = xyes; then
-		AC_MSG_ERROR([Cairo support required but not present])
-	fi
-	AC_DEFINE(HAVE_CAIRO, 1, [Have Cairo support])
-fi
-AC_MSG_RESULT([$CAIRO])
-AM_CONDITIONAL(HAVE_CAIRO, [test "x$CAIRO" = xyes])
-
-# xsltproc for docbook manpages
-AC_ARG_ENABLE([manpages],
-              AS_HELP_STRING([--enable-manpages], [enable manpages @<:@default=auto@:>@]),
-              [MANS=$enableval], [MANS=auto])
-AM_CONDITIONAL([BUILD_MANPAGES], [test "x$XSLTPROC" != "x" -a "x$MANS" != "xno"])
-
-# check for offline man-pages stylesheet
-AC_MSG_CHECKING([for docbook manpages stylesheet])
-MANPAGES_STYLESHEET="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"
-AC_PATH_PROGS_FEATURE_CHECK([XSLTPROC_TMP], [xsltproc],
-                            AS_IF([`"$ac_path_XSLTPROC_TMP" --nonet "$MANPAGES_STYLESHEET" > /dev/null 2>&1`],
-                                  [HAVE_MANPAGES_STYLESHEET=yes]))
-if test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"; then
-        AC_SUBST(MANPAGES_STYLESHEET)
-        AC_MSG_RESULT([yes])
-else
-        AC_MSG_RESULT([no])
-fi
-AM_CONDITIONAL([HAVE_MANPAGES_STYLESHEET], [test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"])
-
-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
-AC_MSG_CHECKING([whether to enable Valgrind support])
-if test "x$VALGRIND" = xauto; then
-	VALGRIND="$have_valgrind"
-fi
-
-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
-
-AC_MSG_RESULT([$VALGRIND])
-
-AC_ARG_WITH([kernel-source],
-            [AS_HELP_STRING([--with-kernel-source],
-              [specify path to linux 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
-	data/Makefile
 	libkms/Makefile
 	libkms/libkms.pc
-	intel/Makefile
-	intel/libdrm_intel.pc
-	radeon/Makefile
-	radeon/libdrm_radeon.pc
-	amdgpu/Makefile
-	amdgpu/libdrm_amdgpu.pc
-	nouveau/Makefile
-	nouveau/libdrm_nouveau.pc
-	omap/Makefile
-	omap/libdrm_omap.pc
-	exynos/Makefile
-	exynos/libdrm_exynos.pc
-	freedreno/Makefile
-	freedreno/libdrm_freedreno.pc
-	tegra/Makefile
-	tegra/libdrm_tegra.pc
 	vivante/Makefile
-	vivante/libdrm_vivante.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
-	tests/tegra/Makefile
-	tests/vivante/Makefile
-	tests/nouveau/Makefile
-	tests/etnaviv/Makefile
-	tests/util/Makefile
-	man/Makefile
-	libdrm.pc])
+	vivante/libdrm_vivante.pc])
 AC_OUTPUT
-
-echo ""
-echo "$PACKAGE_STRING will be compiled with:"
-echo ""
-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 (kgsl: $FREEDRENO_KGSL)"
-echo "  Tegra API      $TEGRA"
-echo "  Vivante API    $VIVANTE"
-echo "  VC4 API        $VC4"
-echo "  Etnaviv API    $ETNAVIV"
-echo ""
diff --git a/include/drm/drm_fourcc_imx.h b/include/drm/drm_fourcc_imx.h
new file mode 100644
index 0000000..1969c4b
--- /dev/null
+++ b/include/drm/drm_fourcc_imx.h
@@ -0,0 +1,129 @@
+/*
+ * Copyright 2011 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#ifndef DRM_FOURCC_IMX_H
+#define DRM_FOURCC_IMX_H
+
+#include "drm.h"
+#include "drm_fourcc.h"
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+#define DRM_FORMAT_P010		fourcc_code('P', '0', '1', '0') /* 2x2 subsampled Cr:Cb plane, 10-bit per channel */
+
+#define DRM_FORMAT_MOD_VENDOR_AMPHION  0x08
+#define DRM_FORMAT_MOD_VENDOR_VSI      0x09
+
+/* Vivante framebuffer modifiers */
+
+/*
+ * Vivante 4x4 tiling layout
+ *
+ * This is a simple tiled layout using tiles of 4x4 pixels in a row-major
+ * layout.
+ */
+#define DRM_FORMAT_MOD_VIVANTE_TILED		fourcc_mod_code(VIVANTE, 1)
+
+/*
+ * Vivante 64x64 super-tiling layout
+ *
+ * This is a tiled layout using 64x64 pixel super-tiles, where each super-tile
+ * contains 8x4 groups of 2x4 tiles of 4x4 pixels (like above) each, all in row-
+ * major layout.
+ *
+ * For more information: see
+ * https://github.com/etnaviv/etna_viv/blob/master/doc/hardware.md#texture-tiling
+ */
+#define DRM_FORMAT_MOD_VIVANTE_SUPER_TILED	fourcc_mod_code(VIVANTE, 2)
+
+/*
+ * Vivante 4x4 tiling layout for dual-pipe
+ *
+ * Same as the 4x4 tiling layout, except every second 4x4 pixel tile starts at a
+ * different base address. Offsets from the base addresses are therefore halved
+ * compared to the non-split tiled layout.
+ */
+#define DRM_FORMAT_MOD_VIVANTE_SPLIT_TILED	fourcc_mod_code(VIVANTE, 3)
+
+/*
+ * Vivante 64x64 super-tiling layout for dual-pipe
+ *
+ * Same as the 64x64 super-tiling layout, except every second 4x4 pixel tile
+ * starts at a different base address. Offsets from the base addresses are
+ * therefore halved compared to the non-split super-tiled layout.
+ */
+#define DRM_FORMAT_MOD_VIVANTE_SPLIT_SUPER_TILED fourcc_mod_code(VIVANTE, 4)
+
+/*
+ * Vivante 64x64 super-tiling with compression layout
+ *
+ * This is a tiled layout using 64x64 pixel super-tiles, where each super-tile
+ * contains 8x4 groups of 2x4 tiles of 4x4 pixels each, all in row-major layout
+ * with compression.
+ */
+#define DRM_FORMAT_MOD_VIVANTE_SUPER_TILED_FC  fourcc_mod_code(VIVANTE, 5)
+
+
+/* Amphion tiled layout */
+
+/*
+ * Amphion 8x128 tiling layout
+ *
+ * This is a tiled layout using 8x128 pixel vertical strips, where each strip
+ * contains 1x16 groups of 8x8 pixels in a row-major layout.
+ */
+#define DRM_FORMAT_MOD_AMPHION_TILED fourcc_mod_code(AMPHION, 1)
+
+/* Verisilicon framebuffer modifiers */
+
+/*
+ * Verisilicon 8x4 tiling layout
+ *
+ * This is G1 VPU tiled layout using tiles of 8x4 pixels in a row-major
+ * layout.
+ */
+#define DRM_FORMAT_MOD_VSI_G1_TILED fourcc_mod_code(VSI, 1)
+
+/*
+ * Verisilicon 4x4 tiling layout
+ *
+ * This is G2 VPU tiled layout using tiles of 4x4 pixels in a row-major
+ * layout.
+ */
+#define DRM_FORMAT_MOD_VSI_G2_TILED fourcc_mod_code(VSI, 2)
+
+/*
+ * Verisilicon 4x4 tiling with compression layout
+ *
+ * This is G2 VPU tiled layout using tiles of 4x4 pixels in a row-major
+ * layout with compression.
+ */
+#define DRM_FORMAT_MOD_VSI_G2_TILED_COMPRESSED fourcc_mod_code(VSI, 3)
+
+#if defined(__cplusplus)
+}
+#endif
+
+#endif /* DRM_FOURCC_H */
diff --git a/include/drm/drm_mode_imx.h b/include/drm/drm_mode_imx.h
new file mode 100644
index 0000000..c88b4a7
--- /dev/null
+++ b/include/drm/drm_mode_imx.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2007 Dave Airlie <airlied@linux.ie>
+ * Copyright (c) 2007 Jakob Bornecrantz <wallbraker@gmail.com>
+ * Copyright (c) 2008 Red Hat Inc.
+ * Copyright (c) 2007-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA
+ * Copyright (c) 2007-2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#ifndef _DRM_MODE_IMX_H
+#define _DRM_MODE_IMX_H
+
+#include "drm.h"
+#include "drm_mode.h"
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+enum supported_eotf_type {
+	TRADITIONAL_GAMMA_SDR = 0,
+	TRADITIONA_GAMMA_HDR,
+	SMPTE_ST2084,
+	FUTURE_EOTF
+};
+
+/* HDR Metadata */
+struct hdr_static_metadata {
+	__u8 eotf;
+	__u8 type;
+	__u16 display_primaries_x[3];
+	__u16 display_primaries_y[3];
+	__u16 white_point_x;
+	__u16 white_point_y;
+	__u16 max_mastering_display_luminance;
+	__u16 min_mastering_display_luminance;
+	__u16 max_fall;
+	__u16 max_cll;
+};
+
+#if defined(__cplusplus)
+}
+#endif
+
+#endif
diff --git a/libkms/Makefile.am b/libkms/Makefile.am
index 461fc35..5f2db76 100644
--- a/libkms/Makefile.am
+++ b/libkms/Makefile.am
@@ -1,43 +1,15 @@
 include Makefile.sources
 
-AM_CFLAGS = \
-	$(WARN_CFLAGS) \
-	-I$(top_srcdir)/include/drm \
-	-I$(top_srcdir)
-
 libkms_la_LTLIBRARIES = libkms.la
 libkms_ladir = $(libdir)
 libkms_la_LDFLAGS = -version-number 1:0:0 -no-undefined
-libkms_la_LIBADD = ../libdrm.la
+libkms_la_LIBADD = $(LIBDRM_LIBS)
+libkms_la_CFLAGS = $(LIBDRM_CFLAGS) $(WARN_CFLAGS) -I$(top_srcdir)
 
 libkms_la_SOURCES = $(LIBKMS_FILES)
 
-if HAVE_VMWGFX
-libkms_la_SOURCES += $(LIBKMS_VMWGFX_FILES)
-endif
-
-if HAVE_INTEL
-libkms_la_SOURCES += $(LIBKMS_INTEL_FILES)
-endif
-
-if HAVE_NOUVEAU
-libkms_la_SOURCES += $(LIBKMS_NOUVEAU_FILES)
-endif
-
-if HAVE_RADEON
-libkms_la_SOURCES += $(LIBKMS_RADEON_FILES)
-endif
-
-if HAVE_EXYNOS
-libkms_la_SOURCES += $(LIBKMS_EXYNOS_FILES)
-AM_CFLAGS += -I$(top_srcdir)/exynos
-endif
-
 libkmsincludedir = ${includedir}/libkms
 libkmsinclude_HEADERS = $(LIBKMS_H_FILES)
 
 pkgconfigdir = @pkgconfigdir@
 pkgconfig_DATA = libkms.pc
-
-TESTS = kms-symbol-check
-EXTRA_DIST = $(TESTS)
diff --git a/vivante/Makefile.am b/vivante/Makefile.am
index cd4c73e..c147a5f 100644
--- a/vivante/Makefile.am
+++ b/vivante/Makefile.am
@@ -26,27 +26,17 @@
 ##############################################################################
 
 
-AM_CPPFLAGS = \
-	-I$(top_srcdir) \
-	-I$(top_srcdir)/include/drm
-
-AM_CFLAGS = \
-	@PTHREADSTUBS_CFLAGS@ \
-	$(WARN_CFLAGS)
-
 libdrm_vivante_ladir = $(libdir)
 libdrm_vivante_la_LTLIBRARIES = libdrm_vivante.la
 libdrm_vivante_la_LDFLAGS = -version-number 1:0:0 -no-undefined
-libdrm_vivante_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
+libdrm_vivante_la_LIBADD = $(LIBDRM_LIBS)
+libdrm_vivante_la_CFLAGS = $(LIBDRM_CFLAGS) $(WARN_CFLAGS) -I$(top_srcdir)
 
 libdrm_vivante_la_SOURCES = \
 	vivante_bo.c
 
 libdrm_vivanteincludedir = ${includedir}/libdrm
-libdrm_vivanteinclude_HEADERS = vivante_bo.h
+libdrm_vivanteinclude_HEADERS = vivante_bo.h vivante_drm.h
 
 pkgconfigdir = @pkgconfigdir@
 pkgconfig_DATA = libdrm_vivante.pc
-
-TESTS = vivante-symbol-check
-EXTRA_DIST = $(TESTS)
diff --git a/vivante/vivante_drm.h b/vivante/vivante_drm.h
new file mode 120000
index 0000000..84fba4d
--- /dev/null
+++ b/vivante/vivante_drm.h
@@ -0,0 +1 @@
+../include/drm/vivante_drm.h
\ No newline at end of file