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 + +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 & 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 + +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 + +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