OSDN Git Service

Revert "libdrm: remove autotools support"
authorMarek Olšák <marek.olsak@amd.com>
Wed, 16 Oct 2019 21:33:28 +0000 (17:33 -0400)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 16 Oct 2019 21:33:28 +0000 (17:33 -0400)
This reverts commit f057dc91e93ae21e11ab48a26127d569972f3eae.

34 files changed:
.gitignore [new file with mode: 0644]
.gitlab-ci.yml
Makefile.am [new file with mode: 0644]
README.rst
amdgpu/Makefile.am [new file with mode: 0644]
autogen.sh [new file with mode: 0755]
configure.ac [new file with mode: 0644]
data/Makefile.am [new file with mode: 0644]
etnaviv/Makefile.am [new file with mode: 0644]
exynos/Makefile.am [new file with mode: 0644]
freedreno/Makefile.am [new file with mode: 0644]
intel/Makefile.am [new file with mode: 0644]
libkms/Makefile.am [new file with mode: 0644]
m4/.gitignore [new file with mode: 0644]
man/Makefile.am [new file with mode: 0644]
nouveau/Makefile.am [new file with mode: 0644]
omap/Makefile.am [new file with mode: 0644]
radeon/Makefile.am [new file with mode: 0644]
tegra/Makefile.am [new file with mode: 0644]
tests/Makefile.am [new file with mode: 0644]
tests/amdgpu/Makefile.am [new file with mode: 0644]
tests/etnaviv/Makefile.am [new file with mode: 0644]
tests/exynos/Makefile.am [new file with mode: 0644]
tests/kms/Makefile.am [new file with mode: 0644]
tests/kmstest/Makefile.am [new file with mode: 0644]
tests/modeprint/Makefile.am [new file with mode: 0644]
tests/modetest/Makefile.am [new file with mode: 0644]
tests/nouveau/Makefile.am [new file with mode: 0644]
tests/proptest/Makefile.am [new file with mode: 0644]
tests/radeon/Makefile.am [new file with mode: 0644]
tests/tegra/Makefile.am [new file with mode: 0644]
tests/util/Makefile.am [new file with mode: 0644]
tests/vbltest/Makefile.am [new file with mode: 0644]
vc4/Makefile.am [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..811348a
--- /dev/null
@@ -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
index 47fe3cd..ac2a9d2 100644 (file)
@@ -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
   - 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 (file)
index 0000000..730de1f
--- /dev/null
@@ -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)"
index da995d0..e47cb24 100644 (file)
@@ -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 (file)
index 0000000..ef8ab05
--- /dev/null
@@ -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 (executable)
index 0000000..13d6991
--- /dev/null
@@ -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 (file)
index 0000000..1cf9134
--- /dev/null
@@ -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 (file)
index 0000000..897a7f3
--- /dev/null
@@ -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 (file)
index 0000000..648e3c5
--- /dev/null
@@ -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 (file)
index 0000000..76b185d
--- /dev/null
@@ -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 (file)
index 0000000..3784503
--- /dev/null
@@ -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 (file)
index 0000000..bad44f5
--- /dev/null
@@ -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 (file)
index 0000000..ff4c1b2
--- /dev/null
@@ -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 (file)
index 0000000..464ba5c
--- /dev/null
@@ -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 (file)
index 0000000..00eb423
--- /dev/null
@@ -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 (file)
index 0000000..5574fd8
--- /dev/null
@@ -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 (file)
index 0000000..38a1007
--- /dev/null
@@ -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 (file)
index 0000000..e712a4a
--- /dev/null
@@ -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 (file)
index 0000000..5311997
--- /dev/null
@@ -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 (file)
index 0000000..d274a3e
--- /dev/null
@@ -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 (file)
index 0000000..920882d
--- /dev/null
@@ -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 (file)
index 0000000..3e0c612
--- /dev/null
@@ -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 (file)
index 0000000..9658fb4
--- /dev/null
@@ -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 (file)
index 0000000..4224200
--- /dev/null
@@ -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 (file)
index 0000000..4c993b0
--- /dev/null
@@ -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 (file)
index 0000000..568185f
--- /dev/null
@@ -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 (file)
index 0000000..5eebd96
--- /dev/null
@@ -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 (file)
index 0000000..554f43e
--- /dev/null
@@ -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 (file)
index 0000000..33b8705
--- /dev/null
@@ -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 (file)
index 0000000..3d173e3
--- /dev/null
@@ -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 (file)
index 0000000..b462a30
--- /dev/null
@@ -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 (file)
index 0000000..f8e0b17
--- /dev/null
@@ -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 (file)
index 0000000..b6cd7a4
--- /dev/null
@@ -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 (file)
index 0000000..5f82d04
--- /dev/null
@@ -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