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