summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Olšák <marek.olsak@amd.com>2019-10-16 17:33:28 -0400
committerMarek Olšák <marek.olsak@amd.com>2019-10-16 17:33:28 -0400
commit51e3bb566558b9b1b76fd81895ba3584907d02de (patch)
tree28fd20099c1f42adbaea79d2a7f95d2a86e69aa7
parent05734951d68feaf1ce321676387dc383f7c3d7fc (diff)
Revert "libdrm: remove autotools support"
-rw-r--r--.gitignore110
-rw-r--r--.gitlab-ci.yml82
-rw-r--r--Makefile.am176
-rw-r--r--README.rst30
-rw-r--r--amdgpu/Makefile.am53
-rwxr-xr-xautogen.sh20
-rw-r--r--configure.ac605
-rw-r--r--data/Makefile.am25
-rw-r--r--etnaviv/Makefile.am28
-rw-r--r--exynos/Makefile.am29
-rw-r--r--freedreno/Makefile.am33
-rw-r--r--intel/Makefile.am75
-rw-r--r--libkms/Makefile.am45
-rw-r--r--m4/.gitignore5
-rw-r--r--man/Makefile.am62
-rw-r--r--nouveau/Makefile.am35
-rw-r--r--omap/Makefile.am26
-rw-r--r--radeon/Makefile.am49
-rw-r--r--tegra/Makefile.am27
-rw-r--r--tests/Makefile.am53
-rw-r--r--tests/amdgpu/Makefile.am38
-rw-r--r--tests/etnaviv/Makefile.am43
-rw-r--r--tests/exynos/Makefile.am48
-rw-r--r--tests/kms/Makefile.am37
-rw-r--r--tests/kmstest/Makefile.am26
-rw-r--r--tests/modeprint/Makefile.am20
-rw-r--r--tests/modetest/Makefile.am25
-rw-r--r--tests/nouveau/Makefile.am17
-rw-r--r--tests/proptest/Makefile.am22
-rw-r--r--tests/radeon/Makefile.am15
-rw-r--r--tests/tegra/Makefile.am15
-rw-r--r--tests/util/Makefile.am13
-rw-r--r--tests/vbltest/Makefile.am20
-rw-r--r--vc4/Makefile.am35
34 files changed, 1941 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..811348ab
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,110 @@
+*.1
+*.3
+*.5
+*.7
+*.flags
+*.ko
+*.ko.cmd
+*.la
+*.lo
+*.log
+*.mod.c
+*.mod.o
+*.o
+*.o.cmd
+*.sw?
+*.trs
+*~
+.*check*
+.*install*
+.depend
+.deps
+.libs
+.tmp_versions
+/_build*
+/build*
+Makefile
+Makefile.in
+TAGS
+aclocal.m4
+autom4te.cache
+bsd-core/*/@
+bsd-core/*/machine
+build-aux
+bus_if.h
+compile
+config.guess
+config.h
+config.h.in
+config.log
+config.status
+config.sub
+configure
+configure.lineno
+cscope.*
+depcomp
+device_if.h
+drm.kld
+drm_pciids.h
+export_syms
+i915.kld
+install-sh
+libdrm.pc
+libdrm/config.h.in
+libdrm_amdgpu.pc
+libdrm_etnaviv.pc
+libdrm_exynos.pc
+libdrm_freedreno.pc
+libdrm_intel.pc
+libdrm_nouveau.pc
+libdrm_omap.pc
+libdrm_radeon.pc
+libdrm_vc4.pc
+libkms.pc
+libtool
+ltmain.sh
+mach64.kld
+man/*.3
+man/.man_fixup
+mga.kld
+missing
+mkinstalldirs
+opt_drm.h
+pci_if.h
+r128.kld
+radeon.kld
+savage.kld
+sis.kld
+stamp-h1
+tdfx.kld
+tests/amdgpu/amdgpu_test
+tests/auth
+tests/dristat
+tests/drmdevice
+tests/drmsl
+tests/drmstat
+tests/etnaviv/etnaviv_2d_test
+tests/etnaviv/etnaviv_bo_cache_test
+tests/etnaviv/etnaviv_cmd_stream_test
+tests/exynos/exynos_fimg2d_event
+tests/exynos/exynos_fimg2d_perf
+tests/exynos/exynos_fimg2d_test
+tests/getclient
+tests/getstats
+tests/getversion
+tests/hash
+tests/kms/kms-steal-crtc
+tests/kms/kms-universal-planes
+tests/kmstest/kmstest
+tests/lock
+tests/modeprint/modeprint
+tests/modetest/modetest
+tests/name_from_fd
+tests/openclose
+tests/proptest/proptest
+tests/radeon/radeon_ttm
+tests/random
+tests/setversion
+tests/updatedraw
+tests/vbltest/vbltest
+via.kld
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 47fe3cd2..ac2a9d2d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,6 +3,13 @@
paths:
- _build/meson-logs
+.artifacts-autotools: &artifacts-autotools
+ when: always
+ paths:
+ - _build/*.log
+ - _build/*/*.log
+ - _build/*/*/*.log
+
.meson-build: &meson-build
- meson _build
-D amdgpu=true
@@ -25,6 +32,27 @@
- ninja -C _build
- ninja -C _build test
+.autotools-build: &autotools-build
+ - mkdir _build
+ - cd _build
+ - ../autogen.sh
+ --enable-udev
+ --enable-libkms
+ --enable-intel
+ --enable-radeon
+ --enable-amdgpu
+ --enable-nouveau
+ --enable-vmwgfx
+ --enable-omap-experimental-api
+ --enable-exynos-experimental-api
+ --enable-freedreno
+ --enable-freedreno-kgsl
+ --enable-tegra-experimental-api
+ --enable-vc4
+ --enable-etnaviv-experimental-api
+ - make
+ - make check
+
latest-meson:
stage: build
image: archlinux/base:latest
@@ -39,6 +67,22 @@ latest-meson:
cairo cunit
script: *meson-build
+latest-autotools:
+ stage: build
+ image: archlinux/base:latest
+ artifacts: *artifacts-autotools
+ before_script:
+ - pacman -Syu --noconfirm --needed
+ base-devel
+ libpciaccess
+ libxslt docbook-xsl
+ valgrind
+ libatomic_ops
+ cairo cunit
+ xorg-util-macros
+ git # autogen.sh depends on git
+ script: *autotools-build
+
oldest-meson:
stage: build
image: debian:stable
@@ -75,3 +119,41 @@ oldest-meson:
- export PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig
- export LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
script: *meson-build
+
+oldest-autotools:
+ stage: build
+ image: debian:stable
+ artifacts: *artifacts-autotools
+ before_script:
+ - printf > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft "%s\n"
+ 'path-exclude=/usr/share/doc/*'
+ 'path-exclude=/usr/share/man/*'
+ - printf > /usr/sbin/policy-rc.d "%s\n"
+ '#!/bin/sh'
+ 'exit 101'
+ - chmod +x /usr/sbin/policy-rc.d
+ - apt-get update
+ - apt-get -y --no-install-recommends install
+ build-essential
+ automake
+ autoconf
+ libtool
+ pkg-config
+ xsltproc
+ libxslt1-dev docbook-xsl
+ valgrind
+ libatomic-ops-dev
+ libcairo2-dev libcunit1-dev
+ wget
+ xutils-dev
+ git # autogen.sh depends on git
+ # We need `--no-check-certificate` here because Debian's CA list is
+ # too old to know about LetsEncrypt's CA, so it refuses to connect
+ # to FreeDesktop.org
+ - LIBPCIACCESS_VERSION=libpciaccess-0.10 &&
+ wget --no-check-certificate https://xorg.freedesktop.org/releases/individual/lib/$LIBPCIACCESS_VERSION.tar.bz2 &&
+ tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2 &&
+ (cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)
+ - export PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig
+ - export LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
+ script: *autotools-build
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 00000000..730de1f2
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,176 @@
+# Copyright 2005 Adam Jackson.
+#
+# 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
+# on the rights to use, copy, modify, merge, publish, distribute, sub
+# license, 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 NON-INFRINGEMENT. IN NO EVENT SHALL
+# ADAM JACKSON 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.
+
+include Makefile.sources
+
+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-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 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) \
+ $(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) \
+ -fvisibility=hidden \
+ $(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 \
+ amdgpu/meson.build \
+ data/meson.build \
+ etnaviv/meson.build \
+ exynos/meson.build \
+ freedreno/meson.build \
+ intel/meson.build \
+ libkms/meson.build \
+ man/meson.build \
+ nouveau/meson.build \
+ omap/meson.build \
+ radeon/meson.build \
+ tegra/meson.build \
+ tests/amdgpu/meson.build \
+ tests/etnaviv/meson.build \
+ tests/exynos/meson.build \
+ tests/kms/meson.build \
+ tests/kmstest/meson.build \
+ tests/meson.build \
+ tests/modeprint/meson.build \
+ tests/modetest/meson.build \
+ tests/nouveau/meson.build \
+ tests/proptest/meson.build \
+ tests/radeon/meson.build \
+ tests/tegra/meson.build \
+ tests/util/meson.build \
+ tests/vbltest/meson.build \
+ vc4/meson.build \
+ meson.build \
+ meson_options.txt
+
+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)"
diff --git a/README.rst b/README.rst
index da995d0b..e47cb241 100644
--- a/README.rst
+++ b/README.rst
@@ -17,7 +17,11 @@ the Mesa drivers, the X drivers, libva and similar projects.
Compiling
---------
-To set up meson:
+libdrm has two build systems, a legacy autotools build system, and a newer
+meson build system. The meson build system is much faster, and offers a
+slightly different interface, but otherwise provides an equivalent feature set.
+
+To use it:
meson builddir/
@@ -31,3 +35,27 @@ Then use ninja to build and install:
If you are installing into a system location you will need to run install
separately, and as root.
+
+
+Alternatively you can invoke autotools configure:
+
+ ./configure
+
+By default, libdrm will install into the /usr/local/ prefix. If you
+want to install this DRM to replace your system copy, pass
+--prefix=/usr and --exec-prefix=/ to configure. If you are building
+libdrm from a git checkout, you first need to run the autogen.sh
+script. You can pass any options to autogen.sh that you would other
+wise pass to configure, or you can just re-run configure with the
+options you need once autogen.sh finishes.
+
+Next step is to build libdrm:
+
+ make
+
+and once make finishes successfully, install the package using
+
+ make install
+
+If you are installing into a system location, you will need to be root
+to perform the install step.
diff --git a/amdgpu/Makefile.am b/amdgpu/Makefile.am
new file mode 100644
index 00000000..ef8ab057
--- /dev/null
+++ b/amdgpu/Makefile.am
@@ -0,0 +1,53 @@
+# Copyright © 2008 Jérôme Glisse
+#
+# 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
+# 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.
+#
+# Authors:
+# Jérôme Glisse <glisse@freedesktop.org>
+
+include Makefile.sources
+
+AM_CFLAGS = \
+ $(WARN_CFLAGS) \
+ -fvisibility=hidden \
+ -I$(top_srcdir) \
+ $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+libdrmdatadir = @libdrmdatadir@
+AM_CPPFLAGS = -DAMDGPU_ASIC_ID_TABLE=\"${libdrmdatadir}/amdgpu.ids\"
+
+libdrm_amdgpu_la_LTLIBRARIES = libdrm_amdgpu.la
+libdrm_amdgpu_ladir = $(libdir)
+libdrm_amdgpu_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+libdrm_amdgpu_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
+
+libdrm_amdgpu_la_SOURCES = $(LIBDRM_AMDGPU_FILES)
+amdgpu_asic_id.lo: $(top_srcdir)/data/amdgpu.ids
+
+libdrm_amdgpuincludedir = ${includedir}/libdrm
+libdrm_amdgpuinclude_HEADERS = $(LIBDRM_AMDGPU_H_FILES)
+
+pkgconfigdir = @pkgconfigdir@
+pkgconfig_DATA = libdrm_amdgpu.pc
+
+AM_TESTS_ENVIRONMENT = NM='$(NM)'
+TESTS = amdgpu-symbol-check
+EXTRA_DIST = $(TESTS)
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 00000000..13d6991e
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,20 @@
+#! /bin/sh
+
+srcdir=`dirname "$0"`
+test -z "$srcdir" && srcdir=.
+
+ORIGDIR=`pwd`
+cd "$srcdir"
+
+git config --local --get format.subjectPrefix >/dev/null ||
+ git config --local format.subjectPrefix "PATCH libdrm" 2>/dev/null
+
+git config --local --get sendemail.to >/dev/null ||
+ git config --local sendemail.to "dri-devel@lists.freedesktop.org" 2>/dev/null
+
+autoreconf --force --verbose --install || exit 1
+cd "$ORIGDIR" || exit $?
+
+if test -z "$NOCONFIGURE"; then
+ "$srcdir"/configure "$@"
+fi
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 00000000..1cf91347
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,605 @@
+# Copyright 2005 Adam Jackson.
+#
+# 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
+# on the rights to use, copy, modify, merge, publish, distribute, sub
+# license, 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 NON-INFRINGEMENT. IN NO EVENT SHALL
+# ADAM JACKSON 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.
+
+AC_PREREQ([2.63])
+AC_INIT([libdrm],
+ [2.4.99],
+ [https://bugs.freedesktop.org/enter_bug.cgi?product=DRI],
+ [libdrm])
+
+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])
+
+# 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
+AC_PROG_NM
+
+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_CHECK_HEADERS([sys/sysctl.h sys/select.h])
+
+# Initialize libtool
+LT_PREREQ([2.2])
+LT_INIT([disable-static])
+
+dnl pthread-stubs is mandatory on some 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* | openbsd*)
+ 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(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
+AC_DEFUN([LIBDRM_CC_TRY_FLAG], [
+ AC_MSG_CHECKING([whether $CC supports $1])
+
+ libdrm_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $1"
+
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([ ])], [libdrm_cc_flag=yes], [libdrm_cc_flag=no])
+ CFLAGS="$libdrm_save_CFLAGS"
+
+ if test "x$libdrm_cc_flag" = "xyes"; then
+ ifelse([$2], , :, [$2])
+ else
+ ifelse([$3], , :, [$3])
+ fi
+ AC_MSG_RESULT([$libdrm_cc_flag])
+])
+
+dnl We use clock_gettime to check for timeouts in drmWaitVBlank
+
+AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=],
+ [AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt],
+ [AC_MSG_ERROR([Couldn't find clock_gettime])])])
+AC_SUBST([CLOCK_LIB])
+
+AC_CHECK_FUNCS([open_memstream],
+ [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 1, [Have open_memstream()])],
+ [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 0)])
+
+dnl Use lots of warning flags with with gcc and compatible compilers
+
+dnl Note: if you change the following variable, the cache is automatically
+dnl skipped and all flags rechecked. So there's no need to do anything
+dnl else. If for any reason you need to force a recheck, just change
+dnl MAYBE_WARN in an ignorable way (like adding whitespace)
+
+MAYBE_WARN="-Wall -Wextra -Werror=undef \
+-Wsign-compare -Werror-implicit-function-declaration \
+-Wpointer-arith -Wwrite-strings -Wstrict-prototypes \
+-Wmissing-prototypes -Wmissing-declarations -Wnested-externs \
+-Wpacked -Wswitch-enum -Wmissing-format-attribute \
+-Wstrict-aliasing=2 -Winit-self \
+-Wdeclaration-after-statement -Wold-style-definition \
+-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
+ unset libdrm_cv_warn_cflags
+fi
+AC_CACHE_CHECK([for supported warning flags], libdrm_cv_warn_cflags, [
+ echo
+ WARN_CFLAGS=""
+
+ # Some warning options are not supported by all versions of
+ # gcc, so test all desired options against the current
+ # compiler.
+ #
+ # Note that there are some order dependencies
+ # here. Specifically, an option that disables a warning will
+ # have no net effect if a later option then enables that
+ # warnings, (perhaps implicitly). So we put some grouped
+ # options (-Wall and -Wextra) up front and the -Wno options
+ # last.
+
+ for W in $MAYBE_WARN; do
+ LIBDRM_CC_TRY_FLAG([$W], [WARN_CFLAGS="$WARN_CFLAGS $W"])
+ done
+
+ libdrm_cv_warn_cflags=$WARN_CFLAGS
+ libdrm_cv_warn_maybe=$MAYBE_WARN
+
+ 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])
+else
+ AC_DEFINE(HAVE_LIBDRM_ATOMIC_PRIMITIVES, 0)
+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])
+else
+ AC_DEFINE(HAVE_LIB_ATOMIC_OPS, 0)
+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])
+else
+ AC_DEFINE(UDEV, 0)
+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])
+else
+ AC_DEFINE(HAVE_INTEL, 0)
+fi
+
+AM_CONDITIONAL(HAVE_VMWGFX, [test "x$VMWGFX" = xyes])
+if test "x$VMWGFX" = xyes; then
+ AC_DEFINE(HAVE_VMWGFX, 1, [Have vmwgfx kernel headers])
+else
+ AC_DEFINE(HAVE_VMWGFX, 0)
+fi
+
+AM_CONDITIONAL(HAVE_NOUVEAU, [test "x$NOUVEAU" = xyes])
+if test "x$NOUVEAU" = xyes; then
+ AC_DEFINE(HAVE_NOUVEAU, 1, [Have nouveau (nvidia) support])
+else
+ AC_DEFINE(HAVE_NOUVEAU, 0)
+fi
+
+AM_CONDITIONAL(HAVE_OMAP, [test "x$OMAP" = xyes])
+
+AM_CONDITIONAL(HAVE_EXYNOS, [test "x$EXYNOS" = xyes])
+if test "x$EXYNOS" = xyes; then
+ AC_DEFINE(HAVE_EXYNOS, 1, [Have EXYNOS support])
+else
+ AC_DEFINE(HAVE_EXYNOS, 0)
+fi
+
+AM_CONDITIONAL(HAVE_FREEDRENO, [test "x$FREEDRENO" = xyes])
+
+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])
+else
+ AC_DEFINE(HAVE_FREEDRENO_KGSL, 0)
+fi
+
+AM_CONDITIONAL(HAVE_RADEON, [test "x$RADEON" = xyes])
+if test "x$RADEON" = xyes; then
+ AC_DEFINE(HAVE_RADEON, 1, [Have radeon support])
+else
+ AC_DEFINE(HAVE_RADEON, 0)
+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])
+
+ if test "x$have_cunit" = "xno"; then
+ AC_MSG_WARN([Could not find cunit library. Disabling amdgpu tests])
+ fi
+else
+ AC_DEFINE(HAVE_AMDGPU, 0)
+fi
+
+AM_CONDITIONAL(HAVE_TEGRA, [test "x$TEGRA" = xyes])
+
+AM_CONDITIONAL(HAVE_VC4, [test "x$VC4" = xyes])
+if test "x$VC4" = xyes; then
+ AC_DEFINE(HAVE_VC4, 1, [Have VC4 support])
+else
+ AC_DEFINE(HAVE_VC4, 0)
+fi
+
+AM_CONDITIONAL(HAVE_ETNAVIV, [test "x$ETNAVIV" = xyes])
+
+AM_CONDITIONAL(HAVE_INSTALL_TESTS, [test "x$INSTALL_TESTS" = xyes])
+
+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])
+else
+ AC_DEFINE(HAVE_CAIRO, 0)
+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])
+else
+ AC_DEFINE([HAVE_VALGRIND], 0)
+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"))])
+else
+ AC_DEFINE(HAVE_VISIBILITY, 0)
+fi
+
+CPPFLAGS="$CPPFLAGS -include config.h"
+
+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
+ 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/nouveau/Makefile
+ tests/etnaviv/Makefile
+ tests/util/Makefile
+ man/Makefile
+ libdrm.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 " VC4 API $VC4"
+echo " Etnaviv API $ETNAVIV"
+echo ""
diff --git a/data/Makefile.am b/data/Makefile.am
new file mode 100644
index 00000000..897a7f35
--- /dev/null
+++ b/data/Makefile.am
@@ -0,0 +1,25 @@
+# Copyright © 2017 Advanced Micro Devices, Inc.
+# All Rights Reserved.
+#
+# 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
+# on the rights to use, copy, modify, merge, publish, distribute, sub
+# license, 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 NON-INFRINGEMENT. IN NO EVENT SHALL
+# ADAM JACKSON 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.
+
+libdrmdatadir = @libdrmdatadir@
+if HAVE_AMDGPU
+dist_libdrmdata_DATA = amdgpu.ids
+endif
diff --git a/etnaviv/Makefile.am b/etnaviv/Makefile.am
new file mode 100644
index 00000000..648e3c5b
--- /dev/null
+++ b/etnaviv/Makefile.am
@@ -0,0 +1,28 @@
+include Makefile.sources
+
+AM_CFLAGS = \
+ $(WARN_CFLAGS) \
+ -fvisibility=hidden \
+ -I$(top_srcdir) \
+ $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+libdrm_etnaviv_ladir = $(libdir)
+libdrm_etnaviv_la_LTLIBRARIES = libdrm_etnaviv.la
+libdrm_etnaviv_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+libdrm_etnaviv_la_LIBADD = \
+ ../libdrm.la \
+ @PTHREADSTUBS_LIBS@ \
+ @CLOCK_LIB@
+
+libdrm_etnaviv_la_SOURCES = $(LIBDRM_ETNAVIV_FILES)
+
+libdrm_etnavivincludedir = ${includedir}/libdrm
+libdrm_etnavivinclude_HEADERS = $(LIBDRM_ETNAVIV_H_FILES)
+
+pkgconfigdir = @pkgconfigdir@
+pkgconfig_DATA = libdrm_etnaviv.pc
+
+AM_TESTS_ENVIRONMENT = NM='$(NM)'
+TESTS = etnaviv-symbol-check
+EXTRA_DIST = $(TESTS)
diff --git a/exynos/Makefile.am b/exynos/Makefile.am
new file mode 100644
index 00000000..76b185d3
--- /dev/null
+++ b/exynos/Makefile.am
@@ -0,0 +1,29 @@
+AM_CFLAGS = \
+ $(WARN_CFLAGS) \
+ -fvisibility=hidden \
+ -I$(top_srcdir) \
+ $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+libdrm_exynos_la_LTLIBRARIES = libdrm_exynos.la
+libdrm_exynos_ladir = $(libdir)
+libdrm_exynos_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+libdrm_exynos_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
+
+libdrm_exynos_la_SOURCES = \
+ exynos_drm.c \
+ exynos_fimg2d.c \
+ fimg2d_reg.h
+
+libdrm_exynoscommonincludedir = ${includedir}/exynos
+libdrm_exynoscommoninclude_HEADERS = exynos_drm.h exynos_fimg2d.h
+
+libdrm_exynosincludedir = ${includedir}/libdrm
+libdrm_exynosinclude_HEADERS = exynos_drmif.h
+
+pkgconfigdir = @pkgconfigdir@
+pkgconfig_DATA = libdrm_exynos.pc
+
+AM_TESTS_ENVIRONMENT = NM='$(NM)'
+TESTS = exynos-symbol-check
+EXTRA_DIST = $(TESTS)
diff --git a/freedreno/Makefile.am b/freedreno/Makefile.am
new file mode 100644
index 00000000..37845035
--- /dev/null
+++ b/freedreno/Makefile.am
@@ -0,0 +1,33 @@
+AUTOMAKE_OPTIONS=subdir-objects
+include Makefile.sources
+
+AM_CFLAGS = \
+ $(WARN_CFLAGS) \
+ -fvisibility=hidden \
+ -I$(top_srcdir) \
+ $(PTHREADSTUBS_CFLAGS) \
+ $(VALGRIND_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+libdrm_freedreno_la_LTLIBRARIES = libdrm_freedreno.la
+libdrm_freedreno_ladir = $(libdir)
+libdrm_freedreno_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+libdrm_freedreno_la_LIBADD = \
+ ../libdrm.la \
+ @PTHREADSTUBS_LIBS@ \
+ @CLOCK_LIB@
+
+libdrm_freedreno_la_SOURCES = $(LIBDRM_FREEDRENO_FILES)
+if HAVE_FREEDRENO_KGSL
+libdrm_freedreno_la_SOURCES += $(LIBDRM_FREEDRENO_KGSL_FILES)
+endif
+
+libdrm_freedrenocommonincludedir = ${includedir}/freedreno
+libdrm_freedrenocommoninclude_HEADERS = $(LIBDRM_FREEDRENO_H_FILES)
+
+pkgconfigdir = @pkgconfigdir@
+pkgconfig_DATA = libdrm_freedreno.pc
+
+AM_TESTS_ENVIRONMENT = NM='$(NM)'
+TESTS = freedreno-symbol-check
+EXTRA_DIST = $(TESTS)
diff --git a/intel/Makefile.am b/intel/Makefile.am
new file mode 100644
index 00000000..bad44f5f
--- /dev/null
+++ b/intel/Makefile.am
@@ -0,0 +1,75 @@
+# Copyright © 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 (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
+# 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.
+#
+# Authors:
+# Eric Anholt <eric@anholt.net>
+
+include Makefile.sources
+
+AM_CFLAGS = \
+ $(WARN_CFLAGS) \
+ -fvisibility=hidden \
+ -I$(top_srcdir) \
+ $(PTHREADSTUBS_CFLAGS) \
+ $(PCIACCESS_CFLAGS) \
+ $(VALGRIND_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+libdrm_intel_la_LTLIBRARIES = libdrm_intel.la
+libdrm_intel_ladir = $(libdir)
+libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+libdrm_intel_la_LIBADD = ../libdrm.la \
+ @PTHREADSTUBS_LIBS@ \
+ @PCIACCESS_LIBS@ \
+ @CLOCK_LIB@
+
+libdrm_intel_la_SOURCES = $(LIBDRM_INTEL_FILES)
+
+libdrm_intelincludedir = ${includedir}/libdrm
+libdrm_intelinclude_HEADERS = $(LIBDRM_INTEL_H_FILES)
+
+# This may be interesting even outside of "make check", due to the -dump option.
+noinst_PROGRAMS = test_decode
+
+BATCHES = \
+ tests/gen4-3d.batch \
+ tests/gm45-3d.batch \
+ tests/gen5-3d.batch \
+ tests/gen6-3d.batch \
+ tests/gen7-2d-copy.batch \
+ tests/gen7-3d.batch
+
+AM_TESTS_ENVIRONMENT = NM='$(NM)'
+TESTS = \
+ $(BATCHES:.batch=.batch.sh) \
+ intel-symbol-check
+
+EXTRA_DIST = \
+ $(BATCHES) \
+ $(BATCHES:.batch=.batch.sh) \
+ $(BATCHES:.batch=.batch-ref.txt) \
+ $(BATCHES:.batch=.batch-ref.txt) \
+ tests/test-batch.sh \
+ $(TESTS)
+
+test_decode_LDADD = libdrm_intel.la ../libdrm.la
+
+pkgconfig_DATA = libdrm_intel.pc
diff --git a/libkms/Makefile.am b/libkms/Makefile.am
new file mode 100644
index 00000000..ff4c1b2a
--- /dev/null
+++ b/libkms/Makefile.am
@@ -0,0 +1,45 @@
+include Makefile.sources
+
+AM_CFLAGS = \
+ $(WARN_CFLAGS) \
+ -fvisibility=hidden \
+ -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_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
+
+AM_TESTS_ENVIRONMENT = NM='$(NM)'
+TESTS = kms-symbol-check
+EXTRA_DIST = $(TESTS)
diff --git a/m4/.gitignore b/m4/.gitignore
new file mode 100644
index 00000000..464ba5ca
--- /dev/null
+++ b/m4/.gitignore
@@ -0,0 +1,5 @@
+libtool.m4
+lt~obsolete.m4
+ltoptions.m4
+ltsugar.m4
+ltversion.m4
diff --git a/man/Makefile.am b/man/Makefile.am
new file mode 100644
index 00000000..00eb4234
--- /dev/null
+++ b/man/Makefile.am
@@ -0,0 +1,62 @@
+#
+# This generates man-pages out of the Docbook XML files. Simply add your files
+# to the relevant *man_PRE array. If aliases are created, please add them to the
+# *man_aliases_PRE array so they get installed correctly.
+#
+
+libman_PRE = \
+ drmAvailable.xml \
+ drmHandleEvent.xml \
+ drmModeGetResources.xml
+
+miscman_PRE = \
+ drm.xml \
+ drm-kms.xml \
+ drm-memory.xml
+
+miscman_aliases_PRE = \
+ drm-mm.xml \
+ drm-gem.xml \
+ drm-ttm.xml
+
+libmandir = $(LIB_MAN_DIR)
+miscmandir = $(MISC_MAN_DIR)
+miscman_aliasesdir = $(MISC_MAN_DIR)
+
+libman_DATA = $(libman_PRE:.xml=.$(LIB_MAN_SUFFIX))
+miscman_DATA = $(miscman_PRE:.xml=.$(MISC_MAN_SUFFIX))
+miscman_aliases_DATA = $(miscman_aliases_PRE:.xml=.$(MISC_MAN_SUFFIX))
+
+XML_FILES = \
+ $(libman_PRE) \
+ $(miscman_PRE)
+
+MAN_FILES = \
+ $(libman_DATA) \
+ $(miscman_DATA) \
+ $(miscman_aliases_DATA)
+
+EXTRA_DIST = $(XML_FILES)
+CLEANFILES = $(MAN_FILES)
+
+XSLTPROC_FLAGS = \
+ --stringparam man.authors.section.enabled 0 \
+ --stringparam man.copyright.section.enabled 0 \
+ --stringparam funcsynopsis.style ansi \
+ --stringparam man.output.quietly 1 \
+ --nonet \
+ $(MANPAGES_STYLESHEET)
+
+XSLTPROC_PROCESS_MAN = \
+ $(AM_V_GEN)$(XSLTPROC) -o "$@" $(XSLTPROC_FLAGS) "$<"
+
+$(miscman_aliases_DATA): $(miscman_DATA)
+ $(AM_V_GEN)if test -n "$@" ; then $(SED) -i -e 's/^\.so \([a-z_]\+\)\.\([0-9]\)$$/\.so man\2\/\1\.\2/' "$@" ; fi
+
+SUFFIXES = .$(LIB_MAN_SUFFIX) .$(MISC_MAN_SUFFIX) .xml
+
+.xml.$(LIB_MAN_SUFFIX):
+ $(XSLTPROC_PROCESS_MAN)
+
+.xml.$(MISC_MAN_SUFFIX):
+ $(XSLTPROC_PROCESS_MAN)
diff --git a/nouveau/Makefile.am b/nouveau/Makefile.am
new file mode 100644
index 00000000..5574fd8f
--- /dev/null
+++ b/nouveau/Makefile.am
@@ -0,0 +1,35 @@
+include Makefile.sources
+
+AM_CFLAGS = \
+ $(WARN_CFLAGS) \
+ -fvisibility=hidden \
+ -I$(top_srcdir) \
+ $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm \
+ -DDEBUG
+
+libdrm_nouveau_la_LTLIBRARIES = libdrm_nouveau.la
+libdrm_nouveau_ladir = $(libdir)
+libdrm_nouveau_la_LDFLAGS = -version-number 2:0:0 -no-undefined
+libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
+
+libdrm_nouveau_la_SOURCES = $(LIBDRM_NOUVEAU_FILES)
+
+libdrm_nouveauincludedir = ${includedir}/libdrm/nouveau
+libdrm_nouveauinclude_HEADERS = $(LIBDRM_NOUVEAU_H_FILES)
+
+libdrm_nouveaunvifincludedir = ${includedir}/libdrm/nouveau/nvif
+libdrm_nouveaunvifinclude_HEADERS = nvif/class.h \
+ nvif/cl0080.h \
+ nvif/cl9097.h \
+ nvif/if0002.h \
+ nvif/if0003.h \
+ nvif/ioctl.h \
+ nvif/unpack.h
+
+pkgconfigdir = @pkgconfigdir@
+pkgconfig_DATA = libdrm_nouveau.pc
+
+AM_TESTS_ENVIRONMENT = NM='$(NM)'
+TESTS = nouveau-symbol-check
+EXTRA_DIST = $(TESTS)
diff --git a/omap/Makefile.am b/omap/Makefile.am
new file mode 100644
index 00000000..38a1007b
--- /dev/null
+++ b/omap/Makefile.am
@@ -0,0 +1,26 @@
+AM_CFLAGS = \
+ $(WARN_CFLAGS) \
+ -fvisibility=hidden \
+ -I$(top_srcdir) \
+ $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+libdrm_omap_la_LTLIBRARIES = libdrm_omap.la
+libdrm_omap_ladir = $(libdir)
+libdrm_omap_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+libdrm_omap_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
+
+libdrm_omap_la_SOURCES = omap_drm.c
+
+libdrm_omapcommonincludedir = ${includedir}/omap
+libdrm_omapcommoninclude_HEADERS = omap_drm.h
+
+libdrm_omapincludedir = ${includedir}/libdrm
+libdrm_omapinclude_HEADERS = omap_drmif.h
+
+pkgconfigdir = @pkgconfigdir@
+pkgconfig_DATA = libdrm_omap.pc
+
+AM_TESTS_ENVIRONMENT = NM='$(NM)'
+TESTS = omap-symbol-check
+EXTRA_DIST = $(TESTS)
diff --git a/radeon/Makefile.am b/radeon/Makefile.am
new file mode 100644
index 00000000..e712a4ac
--- /dev/null
+++ b/radeon/Makefile.am
@@ -0,0 +1,49 @@
+# Copyright © 2008 Jérôme Glisse
+#
+# 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
+# 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.
+#
+# Authors:
+# Jérôme Glisse <glisse@freedesktop.org>
+
+include Makefile.sources
+
+AM_CFLAGS = \
+ $(WARN_CFLAGS) \
+ -fvisibility=hidden \
+ -I$(top_srcdir) \
+ $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+libdrm_radeon_la_LTLIBRARIES = libdrm_radeon.la
+libdrm_radeon_ladir = $(libdir)
+libdrm_radeon_la_LDFLAGS = -version-number 1:0:1 -no-undefined
+libdrm_radeon_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
+
+libdrm_radeon_la_SOURCES = $(LIBDRM_RADEON_FILES)
+
+libdrm_radeonincludedir = ${includedir}/libdrm
+libdrm_radeoninclude_HEADERS = $(LIBDRM_RADEON_H_FILES)
+
+pkgconfigdir = @pkgconfigdir@
+pkgconfig_DATA = libdrm_radeon.pc
+
+AM_TESTS_ENVIRONMENT = NM='$(NM)'
+TESTS = radeon-symbol-check
+EXTRA_DIST = $(LIBDRM_RADEON_BOF_FILES) $(TESTS)
diff --git a/tegra/Makefile.am b/tegra/Makefile.am
new file mode 100644
index 00000000..53119970
--- /dev/null
+++ b/tegra/Makefile.am
@@ -0,0 +1,27 @@
+AM_CPPFLAGS = \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/include/drm
+
+AM_CFLAGS = \
+ @PTHREADSTUBS_CFLAGS@ \
+ $(WARN_CFLAGS) \
+ -fvisibility=hidden
+
+libdrm_tegra_ladir = $(libdir)
+libdrm_tegra_la_LTLIBRARIES = libdrm_tegra.la
+libdrm_tegra_la_LDFLAGS = -version-number 0:0:0 -no-undefined
+libdrm_tegra_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
+
+libdrm_tegra_la_SOURCES = \
+ private.h \
+ tegra.c
+
+libdrm_tegraincludedir = ${includedir}/libdrm
+libdrm_tegrainclude_HEADERS = tegra.h
+
+pkgconfigdir = @pkgconfigdir@
+pkgconfig_DATA = libdrm_tegra.pc
+
+AM_TESTS_ENVIRONMENT = NM='$(NM)'
+TESTS = tegra-symbol-check
+EXTRA_DIST = $(TESTS)
diff --git a/tests/Makefile.am b/tests/Makefile.am
new file mode 100644
index 00000000..d274a3e9
--- /dev/null
+++ b/tests/Makefile.am
@@ -0,0 +1,53 @@
+SUBDIRS = util kms modeprint proptest modetest vbltest
+
+if HAVE_LIBKMS
+SUBDIRS += kmstest
+endif
+
+if HAVE_RADEON
+SUBDIRS += radeon
+endif
+
+if HAVE_AMDGPU
+if HAVE_CUNIT
+SUBDIRS += amdgpu
+endif
+endif
+
+if HAVE_EXYNOS
+SUBDIRS += exynos
+endif
+
+if HAVE_TEGRA
+SUBDIRS += tegra
+endif
+
+if HAVE_ETNAVIV
+SUBDIRS += etnaviv
+endif
+
+if HAVE_NOUVEAU
+SUBDIRS += nouveau
+endif
+
+AM_CFLAGS = \
+ $(WARN_CFLAGS)\
+ -fvisibility=hidden \
+ -I $(top_srcdir)/include/drm \
+ -I $(top_srcdir)
+
+LDADD = $(top_builddir)/libdrm.la
+
+TESTS = \
+ drmsl \
+ hash \
+ random
+
+check_PROGRAMS = \
+ $(TESTS)
+
+if HAVE_INSTALL_TESTS
+bin_PROGRAMS = drmdevice
+else
+check_PROGRAMS += drmdevice
+endif
diff --git a/tests/amdgpu/Makefile.am b/tests/amdgpu/Makefile.am
new file mode 100644
index 00000000..920882d0
--- /dev/null
+++ b/tests/amdgpu/Makefile.am
@@ -0,0 +1,38 @@
+AM_CFLAGS = \
+ -fvisibility=hidden \
+ -I $(top_srcdir)/include/drm \
+ -I $(top_srcdir)/amdgpu \
+ -I $(top_srcdir) \
+ -pthread
+
+LDADD = $(top_builddir)/libdrm.la \
+ $(top_builddir)/amdgpu/libdrm_amdgpu.la \
+ $(CUNIT_LIBS)
+
+if HAVE_INSTALL_TESTS
+bin_PROGRAMS = \
+ amdgpu_test
+else
+noinst_PROGRAMS = \
+ amdgpu_test
+endif
+
+amdgpu_test_CPPFLAGS = $(CUNIT_CFLAGS)
+
+amdgpu_test_SOURCES = \
+ amdgpu_test.c \
+ amdgpu_test.h \
+ basic_tests.c \
+ bo_tests.c \
+ cs_tests.c \
+ decode_messages.h \
+ vce_tests.c \
+ vce_ib.h \
+ frame.h \
+ uvd_enc_tests.c \
+ vcn_tests.c \
+ uve_ib.h \
+ deadlock_tests.c \
+ vm_tests.c \
+ ras_tests.c \
+ syncobj_tests.c
diff --git a/tests/etnaviv/Makefile.am b/tests/etnaviv/Makefile.am
new file mode 100644
index 00000000..3e0c6120
--- /dev/null
+++ b/tests/etnaviv/Makefile.am
@@ -0,0 +1,43 @@
+AM_CFLAGS = \
+ -fvisibility=hidden \
+ -I $(top_srcdir)/include/drm \
+ -I $(top_srcdir)/etnaviv \
+ -I $(top_srcdir)
+
+if HAVE_INSTALL_TESTS
+bin_PROGRAMS = \
+ etnaviv_2d_test \
+ etnaviv_cmd_stream_test \
+ etnaviv_bo_cache_test
+else
+noinst_PROGRAMS = \
+ etnaviv_2d_test \
+ etnaviv_cmd_stream_test \
+ etnaviv_bo_cache_test
+endif
+
+etnaviv_2d_test_LDADD = \
+ $(top_builddir)/libdrm.la \
+ $(top_builddir)/etnaviv/libdrm_etnaviv.la
+
+etnaviv_2d_test_SOURCES = \
+ cmdstream.xml.h \
+ etnaviv_2d_test.c \
+ state.xml.h \
+ state_2d.xml.h \
+ write_bmp.c \
+ write_bmp.h
+
+etnaviv_cmd_stream_test_LDADD = \
+ $(top_builddir)/libdrm.la \
+ $(top_builddir)/etnaviv/libdrm_etnaviv.la
+
+etnaviv_cmd_stream_test_SOURCES = \
+ etnaviv_cmd_stream_test.c
+
+etnaviv_bo_cache_test_LDADD = \
+ $(top_builddir)/libdrm.la \
+ $(top_builddir)/etnaviv/libdrm_etnaviv.la
+
+etnaviv_bo_cache_test_SOURCES = \
+ etnaviv_bo_cache_test.c
diff --git a/tests/exynos/Makefile.am b/tests/exynos/Makefile.am
new file mode 100644
index 00000000..9658fb42
--- /dev/null
+++ b/tests/exynos/Makefile.am
@@ -0,0 +1,48 @@
+AM_CFLAGS = \
+ -pthread \
+ $(WARN_CFLAGS)\
+ -fvisibility=hidden \
+ -I $(top_srcdir)/include/drm \
+ -I $(top_srcdir)/libkms/ \
+ -I $(top_srcdir)/exynos \
+ -I $(top_srcdir)
+
+bin_PROGRAMS =
+noinst_PROGRAMS =
+
+if HAVE_LIBKMS
+if HAVE_INSTALL_TESTS
+bin_PROGRAMS += \
+ exynos_fimg2d_test
+else
+noinst_PROGRAMS += \
+ exynos_fimg2d_test
+endif
+endif
+
+if HAVE_INSTALL_TESTS
+bin_PROGRAMS += \
+ exynos_fimg2d_perf \
+ exynos_fimg2d_event
+else
+noinst_PROGRAMS += \
+ exynos_fimg2d_perf \
+ exynos_fimg2d_event
+endif
+
+exynos_fimg2d_perf_LDADD = \
+ $(top_builddir)/libdrm.la \
+ $(top_builddir)/exynos/libdrm_exynos.la
+
+exynos_fimg2d_event_LDADD = \
+ $(top_builddir)/libdrm.la \
+ $(top_builddir)/exynos/libdrm_exynos.la
+
+exynos_fimg2d_test_LDADD = \
+ $(top_builddir)/libdrm.la \
+ $(top_builddir)/libkms/libkms.la \
+ $(top_builddir)/exynos/libdrm_exynos.la
+
+exynos_fimg2d_test_SOURCES = \
+ exynos_fimg2d_test.c
+
diff --git a/tests/kms/Makefile.am b/tests/kms/Makefile.am
new file mode 100644
index 00000000..42242006
--- /dev/null
+++ b/tests/kms/Makefile.am
@@ -0,0 +1,37 @@
+AM_CPPFLAGS = \
+ -I$(top_srcdir)/include/drm \
+ -I$(top_srcdir)/tests \
+ -I$(top_srcdir)
+
+AM_CFLAGS = \
+ $(WARN_CFLAGS) \
+ -fvisibility=hidden
+
+noinst_LTLIBRARIES = libkms-test.la
+
+libkms_test_la_SOURCES = \
+ libkms-test.h \
+ libkms-test-crtc.c \
+ libkms-test-device.c \
+ libkms-test-framebuffer.c \
+ libkms-test-plane.c \
+ libkms-test-screen.c
+
+libkms_test_la_LIBADD = \
+ $(top_builddir)/libdrm.la
+
+if HAVE_INSTALL_TESTS
+bin_PROGRAMS = \
+ kms-steal-crtc \
+ kms-universal-planes
+else
+noinst_PROGRAMS = \
+ kms-steal-crtc \
+ kms-universal-planes
+endif
+
+kms_steal_crtc_SOURCES = kms-steal-crtc.c
+kms_steal_crtc_LDADD = libkms-test.la ../util/libutil.la $(CAIRO_LIBS)
+
+kms_universal_planes_SOURCES = kms-universal-planes.c
+kms_universal_planes_LDADD = libkms-test.la $(CAIRO_LIBS)
diff --git a/tests/kmstest/Makefile.am b/tests/kmstest/Makefile.am
new file mode 100644
index 00000000..4c993b04
--- /dev/null
+++ b/tests/kmstest/Makefile.am
@@ -0,0 +1,26 @@
+AM_CFLAGS = \
+ $(WARN_CFLAGS)\
+ -fvisibility=hidden \
+ -I$(top_srcdir)/include/drm \
+ -I$(top_srcdir)/libkms/ \
+ -I$(top_srcdir)/tests/ \
+ -I$(top_srcdir)
+
+if HAVE_INSTALL_TESTS
+bin_PROGRAMS = \
+ kmstest
+else
+noinst_PROGRAMS = \
+ kmstest
+endif
+
+kmstest_SOURCES = \
+ main.c
+
+kmstest_LDADD = \
+ $(top_builddir)/tests/util/libutil.la \
+ $(top_builddir)/libkms/libkms.la \
+ $(top_builddir)/libdrm.la
+
+run: kmstest
+ ./kmstest
diff --git a/tests/modeprint/Makefile.am b/tests/modeprint/Makefile.am
new file mode 100644
index 00000000..568185f0
--- /dev/null
+++ b/tests/modeprint/Makefile.am
@@ -0,0 +1,20 @@
+AM_CFLAGS = \
+ $(WARN_CFLAGS)\
+ -fvisibility=hidden \
+ -I$(top_srcdir)/include/drm \
+ -I$(top_srcdir)/tests \
+ -I$(top_srcdir)
+
+if HAVE_INSTALL_TESTS
+bin_PROGRAMS = \
+ modeprint
+else
+noinst_PROGRAMS = \
+ modeprint
+endif
+
+modeprint_SOURCES = \
+ modeprint.c
+modeprint_LDADD = \
+ $(top_builddir)/tests/util/libutil.la \
+ $(top_builddir)/libdrm.la
diff --git a/tests/modetest/Makefile.am b/tests/modetest/Makefile.am
new file mode 100644
index 00000000..5eebd960
--- /dev/null
+++ b/tests/modetest/Makefile.am
@@ -0,0 +1,25 @@
+include Makefile.sources
+
+AM_CFLAGS = $(filter-out -Wpointer-arith, $(WARN_CFLAGS))
+
+AM_CFLAGS += \
+ -fvisibility=hidden \
+ -pthread \
+ -I$(top_srcdir)/include/drm \
+ -I$(top_srcdir)/tests \
+ -I$(top_srcdir)
+
+if HAVE_INSTALL_TESTS
+bin_PROGRAMS = \
+ modetest
+else
+noinst_PROGRAMS = \
+ modetest
+endif
+
+modetest_SOURCES = $(MODETEST_FILES)
+
+modetest_LDADD = \
+ $(top_builddir)/libdrm.la \
+ $(top_builddir)/tests/util/libutil.la \
+ $(CAIRO_LIBS)
diff --git a/tests/nouveau/Makefile.am b/tests/nouveau/Makefile.am
new file mode 100644
index 00000000..554f43ec
--- /dev/null
+++ b/tests/nouveau/Makefile.am
@@ -0,0 +1,17 @@
+AM_CFLAGS = \
+ -pthread \
+ $(WARN_CFLAGS) \
+ -fvisibility=hidden \
+ -I$(top_srcdir)/include/drm \
+ -I$(top_srcdir)/nouveau \
+ -I$(top_srcdir)
+
+LDADD = \
+ ../../nouveau/libdrm_nouveau.la \
+ ../../libdrm.la \
+ -ldl
+
+TESTS = threaded
+
+check_PROGRAMS = $(TESTS)
+
diff --git a/tests/proptest/Makefile.am b/tests/proptest/Makefile.am
new file mode 100644
index 00000000..33b8705b
--- /dev/null
+++ b/tests/proptest/Makefile.am
@@ -0,0 +1,22 @@
+include Makefile.sources
+
+AM_CFLAGS = \
+ $(WARN_CFLAGS)\
+ -fvisibility=hidden \
+ -I$(top_srcdir)/include/drm \
+ -I$(top_srcdir)/tests \
+ -I$(top_srcdir)
+
+if HAVE_INSTALL_TESTS
+bin_PROGRAMS = \
+ proptest
+else
+noinst_PROGRAMS = \
+ proptest
+endif
+
+proptest_SOURCES = $(PROPTEST_FILES)
+
+proptest_LDADD = \
+ $(top_builddir)/libdrm.la \
+ $(top_builddir)/tests/util/libutil.la
diff --git a/tests/radeon/Makefile.am b/tests/radeon/Makefile.am
new file mode 100644
index 00000000..3d173e31
--- /dev/null
+++ b/tests/radeon/Makefile.am
@@ -0,0 +1,15 @@
+AM_CFLAGS = \
+ $(WARN_CFLAGS)\
+ -fvisibility=hidden \
+ -I $(top_srcdir)/include/drm \
+ -I $(top_srcdir)
+
+LDADD = $(top_builddir)/libdrm.la
+
+noinst_PROGRAMS = \
+ radeon_ttm
+
+radeon_ttm_SOURCES = \
+ rbo.c \
+ rbo.h \
+ radeon_ttm.c
diff --git a/tests/tegra/Makefile.am b/tests/tegra/Makefile.am
new file mode 100644
index 00000000..b462a30c
--- /dev/null
+++ b/tests/tegra/Makefile.am
@@ -0,0 +1,15 @@
+AM_CPPFLAGS = \
+ -I$(top_srcdir)/include/drm \
+ -I$(top_srcdir)/tegra \
+ -I$(top_srcdir)
+
+AM_CFLAGS = \
+ $(WARN_CFLAGS) \
+ -fvisibility=hidden
+
+LDADD = \
+ ../../tegra/libdrm_tegra.la \
+ ../../libdrm.la
+
+noinst_PROGRAMS = \
+ openclose
diff --git a/tests/util/Makefile.am b/tests/util/Makefile.am
new file mode 100644
index 00000000..f8e0b171
--- /dev/null
+++ b/tests/util/Makefile.am
@@ -0,0 +1,13 @@
+include Makefile.sources
+
+noinst_LTLIBRARIES = \
+ libutil.la
+
+libutil_la_CPPFLAGS = \
+ -I$(top_srcdir)/include/drm \
+ -I$(top_srcdir)
+
+libutil_la_CFLAGS = \
+ $(CAIRO_CFLAGS)
+
+libutil_la_SOURCES = $(UTIL_FILES)
diff --git a/tests/vbltest/Makefile.am b/tests/vbltest/Makefile.am
new file mode 100644
index 00000000..b6cd7a4d
--- /dev/null
+++ b/tests/vbltest/Makefile.am
@@ -0,0 +1,20 @@
+AM_CFLAGS = \
+ $(WARN_CFLAGS)\
+ -fvisibility=hidden \
+ -I$(top_srcdir)/include/drm \
+ -I$(top_srcdir)/tests \
+ -I$(top_srcdir)
+
+if HAVE_INSTALL_TESTS
+bin_PROGRAMS = \
+ vbltest
+else
+noinst_PROGRAMS = \
+ vbltest
+endif
+
+vbltest_SOURCES = \
+ vbltest.c
+vbltest_LDADD = \
+ $(top_builddir)/libdrm.la \
+ $(top_builddir)/tests/util/libutil.la
diff --git a/vc4/Makefile.am b/vc4/Makefile.am
new file mode 100644
index 00000000..5f82d04e
--- /dev/null
+++ b/vc4/Makefile.am
@@ -0,0 +1,35 @@
+# Copyright © 2016 Broadcom
+#
+# 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
+# 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.
+
+include Makefile.sources
+
+AM_CFLAGS = \
+ $(WARN_CFLAGS) \
+ -fvisibility=hidden \
+ -I$(top_srcdir) \
+ $(PTHREADSTUBS_CFLAGS) \
+ $(VALGRIND_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+libdrm_vc4includedir = ${includedir}/libdrm
+libdrm_vc4include_HEADERS = $(LIBDRM_VC4_H_FILES)
+
+pkgconfig_DATA = libdrm_vc4.pc