@@ -17,3 +17,7 @@ indent_style = tab
[*.m4]
indent_style = space
indent_size = 2
+
+[meson.build]
+indent_style = space
+indent_size = 2
@@ -15,27 +15,22 @@ with an older kernel.
Compiling
---------
-libdrm is a standard autotools package and follows the normal
-configure, build and install steps. The first step is to configure
-the package, which is done by running the configure shell script:
+libdrm is compiled using meson and ninja. The first step for building for a
+tar-ball or from git is to configure, and set a build directory:
- ./configure
+ meson build
-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.
+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 to meson, or -Dprefix=/usr to mesonconf.
Next step is to build libdrm:
- make
+ ninja -C build
and once make finishes successfully, install the package using
- make install
+ ninja install
If you are installing into a system location, you will need to be root
to perform the install step.
new file mode 100644
@@ -0,0 +1,57 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+amdgpu_files = files(
+ 'amdgpu_asic_id.h',
+ 'amdgpu_bo.c',
+ 'amdgpu_cs.c',
+ 'amdgpu_device.c',
+ 'amdgpu_gpu_info.c',
+ 'amdgpu_internal.h',
+ 'amdgpu_vamgr.c',
+ 'util_hash.c',
+ 'util_hash.h',
+ 'util_hash_table.c',
+ 'util_hash_table.h',
+)
+
+libdrm_amdgpu = shared_library(
+ 'drm_amdgpu',
+ amdgpu_files,
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include],
+ link_with : libdrm,
+ dependencies : pthreadstubs_dep,
+ version : '1.0.0',
+ install : true,
+)
+
+install_headers('amdgpu.h', subdir : 'libdrm')
+
+pkg.generate(
+ name : 'libdrm_amdgpu',
+ description : 'Userspace interface to kernel DRM services for amdgpu',
+ version : meson.project_version(),
+ subdirs : ['', 'libdrm'],
+ libraries : [libdrm_amdgpu],
+ requires_private : 'libdrm',
+)
+
+test('amdgpu-symbol-check', find_program('amdgpu-symbol-check'))
new file mode 100644
@@ -0,0 +1,56 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+etnaviv_files = files(
+ 'etnaviv_device.c',
+ 'etnaviv_gpu.c',
+ 'etnaviv_bo.c',
+ 'etnaviv_bo_cache.c',
+ 'etnaviv_pipe.c',
+ 'etnaviv_cmd_stream.c',
+ 'etnaviv_drm.h',
+ 'etnaviv_priv.h',
+)
+
+etnaviv_include = include_directories('.')
+
+libdrm_etnaviv = shared_library(
+ 'drm_etnaviv',
+ etnaviv_files,
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include],
+ link_with : libdrm,
+ dependencies : [pthreadstubs_dep, valgrind_dep],
+ version : '1.0.0',
+ install : true,
+)
+
+install_headers('etnaviv_drmif.h', subdir : 'libdrm')
+
+pkg.generate(
+ name : 'libdrm_etnaviv',
+ description : 'Userspace interface to etnaviv kernel DRM services',
+ version : meson.project_version(),
+ subdirs : ['', 'libdrm'],
+ libraries : [libdrm_etnaviv],
+ requires_private : 'libdrm',
+)
+
+test('etnaviv-symbol-check', find_program('etnaviv-symbol-check'))
new file mode 100644
@@ -0,0 +1,52 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+exynos_files = files(
+ 'exynos_drm.c',
+ 'exynos_fimg2d.c',
+ 'fimg2d_reg.h',
+)
+
+libdrm_exynos = shared_library(
+ 'drm_exynos',
+ exynos_files,
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include],
+ link_with : libdrm,
+ dependencies : [pthreadstubs_dep, valgrind_dep],
+ version : '1.0.0',
+ install : true,
+)
+
+exynos_include = include_directories('.')
+
+install_headers('exynos_drm.h', 'exynos_fimg2d.h', subdir : 'exynos')
+install_headers('exynos_drmif.h', subdir : 'libdrm')
+
+pkg.generate(
+ name : 'libdrm_exynos',
+ description : 'Userspace interface to exynos kernel DRM services',
+ version : '0.7',
+ subdirs : ['', 'libdrm', 'exynos'],
+ libraries : [libdrm_exynos],
+ requires_private : 'libdrm',
+)
+
+test('exynos-symbol-check', find_program('exynos-symbol-check'))
new file mode 100644
@@ -0,0 +1,72 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+freedreno_files = files(
+ 'freedreno_device.c',
+ 'freedreno_pipe.c',
+ 'freedreno_priv.h',
+ 'freedreno_ringbuffer.c',
+ 'freedreno_bo.c',
+ 'freedreno_bo_cache.c',
+ 'msm/msm_bo.c',
+ 'msm/msm_device.c',
+ 'msm/msm_drm.h',
+ 'msm/msm_pipe.c',
+ 'msm/msm_priv.h',
+ 'msm/msm_ringbuffer.c',
+)
+
+if get_option('freedreno-kgsl') == 'yes'
+ freedreno_kgsl_files = files(
+ 'kgsl/kgsl_bo.c',
+ 'kgsl/kgsl_device.c',
+ 'kgsl/kgsl_drm.h',
+ 'kgsl/kgsl_pipe.c',
+ 'kgsl/kgsl_priv.h',
+ 'kgsl/kgsl_ringbuffer.c',
+ 'kgsl/msm_kgsl.h',
+ )
+else
+ freedreno_kgsl_files = []
+endif
+
+libdrm_freedreno = shared_library(
+ 'drm_freedreno',
+ [freedreno_files, freedreno_kgsl_files],
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include],
+ link_with : libdrm,
+ dependencies : pthreadstubs_dep,
+ version : '1.0.0',
+ install : true,
+)
+
+install_headers('freedreno_drmif.h', 'freedreno_ringbuffer.h', subdir : 'freedreno')
+
+pkg.generate(
+ name : 'libdrm_freedreno',
+ description : 'Userspace interface to freedreno kernel DRM services',
+ version : meson.project_version(),
+ subdirs : ['', 'libdrm', 'freedreno'],
+ libraries : [libdrm_freedreno],
+ requires_private : 'libdrm',
+)
+
+test('freedreno-symbol-check', find_program('freedreno-symbol-check'))
new file mode 100644
@@ -0,0 +1,48 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+install_headers(
+ 'drm.h',
+ 'drm_fourcc.h',
+ 'drm_mode.h',
+ 'drm_sarea.h',
+ 'i915_drm.h',
+ 'mach64_drm.h',
+ 'mga_drm.h',
+ 'nouveau_drm.h',
+ 'qxl_drm.h',
+ 'r128_drm.h',
+ 'radeon_drm.h',
+ 'amdgpu_drm.h',
+ 'savage_drm.h',
+ 'sis_drm.h',
+ 'tegra_drm.h',
+ 'vc4_drm.h',
+ 'via_drm.h',
+ 'virtgpu_drm.h',
+ subdir : 'libdrm',
+)
+
+if conf_data.get('HAVE_VMWGFX')
+ install_headers(
+ 'vmwgfx_drm.h',
+ subdir : 'libdrm',
+ )
+endif
@@ -1,7 +1,7 @@
/**************************************************************************
*
- * Copyright © 2007 Red Hat Inc.
- * Copyright © 2007-2012 Intel Corporation
+ * Copyright © 2007 Red Hat Inc.
+ * Copyright © 2007-2012 Intel Corporation
* Copyright 2006 Tungsten Graphics, Inc., Bismarck, ND., USA
* All Rights Reserved.
*
@@ -28,7 +28,7 @@
*
**************************************************************************/
/*
- * Authors: Thomas Hellström <thomas-at-tungstengraphics-dot-com>
+ * Authors: Thomas Hellström <thomas-at-tungstengraphics-dot-com>
* Keith Whitwell <keithw-at-tungstengraphics-dot-com>
* Eric Anholt <eric@anholt.net>
* Dave Airlie <airlied@linux.ie>
@@ -1217,7 +1217,7 @@ drm_intel_gem_bo_free(drm_intel_bo *bo)
static void
drm_intel_gem_bo_mark_mmaps_incoherent(drm_intel_bo *bo)
{
-#if HAVE_VALGRIND
+#ifdef HAVE_VALGRIND
drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo;
if (bo_gem->mem_virtual)
new file mode 100644
@@ -0,0 +1,55 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+libdrm_intel_files = files(
+ 'intel_bufmgr.c',
+ 'intel_bufmgr_priv.h',
+ 'intel_bufmgr_fake.c',
+ 'intel_bufmgr_gem.c',
+ 'intel_decode.c',
+ 'intel_chipset.h',
+ 'mm.c',
+ 'mm.h',
+ 'uthash.h',
+)
+
+libdrm_intel = shared_library(
+ 'drm_intel',
+ libdrm_intel_files,
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include],
+ link_with : libdrm,
+ dependencies : [pthreadstubs_dep, pciaccess_dep, valgrind_dep],
+ version : '1.0.0',
+ install : true,
+)
+
+install_headers('intel_bufmgr.h', 'intel_aub.h', 'intel_debug.h', subdir : 'libdrm')
+
+pkg.generate(
+ name : 'libdrm_intel',
+ description : 'Userspace interface to intel kernel DRM services',
+ version : meson.project_version(),
+ requires : 'libdrm',
+ subdirs : ['', 'libdrm'],
+ libraries : [libdrm_intel],
+)
+
+test('intel-symbol-check', find_program('intel-symbol-check'))
new file mode 100644
@@ -0,0 +1,71 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+libkms_files = files(
+ 'internal.h',
+ 'linux.c',
+ 'dumb.c',
+ 'api.c',
+)
+
+libkms_include = include_directories('.')
+
+if conf_data.get('HAVE_VMWGFX', false)
+ libkms_files += files('vmwgfx.c')
+endif
+
+if conf_data.get('HAVE_INTEL', false)
+ libkms_files += files('intel.c')
+endif
+
+if conf_data.get('HAVE_NOUVEAU', false)
+ libkms_files += files('nouveau.c')
+endif
+
+if conf_data.get('HAVE_RADEON', false)
+ libkms_files += files('radeon.c')
+endif
+
+if conf_data.get('HAVE_EXYNOS', false)
+ libkms_files += files('exynos.c')
+endif
+
+libkms = shared_library(
+ 'kms',
+ libkms_files,
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include, include_directories('../exynos')],
+ link_with : libdrm,
+ version : '1.0.0',
+ install : true,
+)
+
+install_headers('libkms.h', subdir : 'libkms')
+
+pkg.generate(
+ name : 'libkms',
+ description : 'Library that abstracts away the different mm interfaces for kernel drivers',
+ version : '1.0.0',
+ requires_private : 'libdrm',
+ subdirs : ['libkms'],
+ libraries : [libkms],
+)
+
+test('kms-symbol-check', find_program('kms-symbol-check'))
new file mode 100644
@@ -0,0 +1,119 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+xsltproc = find_program('xsltproc')
+sed = find_program('sed')
+
+stylesheet_url = 'http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl'
+ret = run_command(xsltproc, '--nonet', stylesheet_url)
+if ret.returncode() != 0
+ error('Cannot build man pages without docbook-xml')
+endif
+
+xsltproc_args = [xsltproc, '-o', '@OUTPUT@',
+ '--stringparam', 'man.authors.section.enabled', '0',
+ '--stringparam', 'man.copyright.section.enabled', '0',
+ '--stringparam', 'funcsynopsis.style', 'ansi',
+ '--stringparam', 'man.output.quietly', '1',
+ '--noout', stylesheet_url, '@INPUT@']
+
+# TODO: https://github.com/mesonbuild/meson/issues/1364
+# This issue is about creating reusable custom_target templates, which would
+# simplify the following custom_targets considerably.
+drm_avail_man = custom_target(
+ 'drmAvailable.3',
+ input : 'drmAvailable.xml',
+ output : '@BASENAME@.3',
+ command : xsltproc_args,
+ install : true,
+ install_dir : 'usr/share/man/man3',
+)
+
+drm_handleevent_man = custom_target(
+ 'drmHandleEvent.3',
+ input : 'drmHandleEvent.xml',
+ output : '@BASENAME@.3',
+ command : xsltproc_args,
+ install : true,
+ install_dir : 'usr/share/man/man3',
+)
+
+drm_modegetresources_man = custom_target(
+ 'drmModeGetResources.3',
+ input : 'drmModeGetResources.xml',
+ output : '@BASENAME@.3',
+ command : xsltproc_args,
+ install : true,
+ install_dir : 'usr/share/man/man3',
+)
+
+drm_man = custom_target(
+ 'drm.7',
+ input : 'drm.xml',
+ output : '@BASENAME@.7',
+ command : xsltproc_args,
+ install : true,
+ install_dir : 'usr/share/man/man7',
+)
+
+drm_kms_man = custom_target(
+ 'kms.7',
+ input : 'drm-kms.xml',
+ output : '@BASENAME@.7',
+ command : xsltproc_args,
+ install : true,
+ install_dir : 'usr/share/man/man7',
+)
+
+drm_memory_man = custom_target(
+ 'memory.7',
+ input : 'drm-memory.xml',
+ output : '@BASENAME@.7',
+ command : xsltproc_args,
+ install : true,
+ install_dir : 'usr/share/man/man7',
+)
+
+drm_mm = custom_target(
+ 'mm.7',
+ input : 'drm-memory.xml',
+ output : 'drm-mm.7',
+ command : xsltproc_args,
+ install : true,
+ install_dir : 'usr/share/man/man7',
+)
+
+drm_gem = custom_target(
+ 'gem.7',
+ input : 'drm-memory.xml',
+ output : 'drm-gem.7',
+ command : xsltproc_args,
+ install : true,
+ install_dir : 'usr/share/man/man7',
+)
+
+drm_gem = custom_target(
+ 'ttm.7',
+ input : 'drm-memory.xml',
+ output : 'drm-ttm.7',
+ command : xsltproc_args,
+ install : true,
+ install_dir : 'usr/share/man/man7',
+)
new file mode 100644
@@ -0,0 +1,288 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+project('libdrm', 'c', version : '2.4.76-dev', default_options : ['-std=c99'])
+
+pkg = import('pkgconfig')
+
+conf_data = configuration_data()
+
+global_warn_flags = []
+
+atomic_dep = []
+cunit_dep = []
+pciaccess_dep = []
+valgrind_dep = []
+pthreadstubs_dep = dependency('pthread-stubs') # TODO: is this always required?
+cairo_dep = dependency('cairo', required : false)
+if cairo_dep.found()
+ conf_data.set('HAVE_CAIRO', true)
+endif
+thread_dep = dependency('threads')
+
+system = host_machine.system()
+if system.startswith('linux')
+ add_project_arguments('-D_GNU_SOURCE', language : 'c')
+endif
+
+cc = meson.get_compiler('c')
+
+# TODO: resolve whether we need -lrt
+cc.find_library('m')
+if cc.has_header('sys/sysctl.h')
+ conf_data.set('HAVE_SYS_SYSCTL_H', true)
+endif
+if cc.has_header('sys/select.h')
+ conf_data.set('HAVE_SYS_SELECT_H', true)
+endif
+if cc.has_header('alloca.h')
+ conf_data.set('HAVE_ALLOCA_H', true)
+endif
+if cc.has_function('major', prefix : '#include <sys/sysmacros.h>')
+ conf_data.set('MAJOR_IN_SYSMACROS', true)
+elif cc.has_function('major', prefix : '#include <sys/mkdev.h>')
+ conf_data.set('MAJOR_IN_MKDEV', true)
+endif
+if cc.has_function('open_memstream')
+ conf_data.set('HAVE_OPEN_MEMSTREAM', true)
+endif
+
+if cc.compiles('''int foo_hidden(void) __attribute__((visibility("hidden")));''')
+ conf_data.set('HAVE_ATTRIBUTE_VISIBILITY', true)
+endif
+
+# TODO: copy comment from configure.ac
+global_warn_flag_opts = [
+ '-Wall', '-Wextra', '-Wsign-compare',
+ '-Werror-implicit-function-declaration', '-Wpointer-arith',
+ '-Wwrite-strings', '-Wstrict-prototypes', '-Wmissing-prototypes',
+ '-Wmissing-format-attribute', '-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',
+]
+foreach f : global_warn_flag_opts
+ if cc.has_argument(f)
+ global_warn_flags += f
+ endif
+endforeach
+
+# Check for atomic intrinsics
+if cc.compiles('''
+ 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); }
+ ''')
+ conf_data.set('HAVE_LIBDRM_ATOMIC_PRIMITIVES', true)
+elif (system.startswith('solaris') or system.startswith('netbsd')
+ and cc.has_function('atomic_cas_uint'))
+ if not cc.has_header('sys/atomic.h')
+ error('wat?')
+ endif
+else
+ atomic_dep = dependency('atomic_ops')
+ conf_data.set('HAVE_LIB_ATOMIC_OPS', true)
+endif
+
+if get_option('udev') == 'yes'
+ dependency('udev')
+ conf_data.set('UDEV', true)
+endif
+
+cpu = host_machine.cpu_family()
+if get_option('intel') != 'no'
+ if cpu == 'x86' or cpu == 'x86_64'
+ pciaccess_dep = dependency('pciaccess', version : '>=0.10')
+ conf_data.set('HAVE_INTEL', true)
+ endif
+endif
+if get_option('radeon') != 'no'
+ conf_data.set('HAVE_RADEON', true)
+endif
+if get_option('amdgpu') != 'no'
+ conf_data.set('HAVE_AMDGPU', true)
+ cunit_dep = dependency('cunit', version : '>=2.1', required : false)
+ if cunit_dep.found()
+ conf_data.set('HAVE_CUNIT', true)
+ endif
+endif
+if get_option('nouveau') != 'no'
+ conf_data.set('HAVE_NOUVEAU', true)
+ dl_lib = cc.find_library('dl')
+ if dl_lib.found()
+ dl_dep = declare_dependency(link_args : '-ldl')
+ else
+ error('nouveau tests require dlopen')
+ endif
+endif
+if get_option('freedreno') != 'no'
+ if cpu == 'arm'
+ conf_data.set('HAVE_FREEDRENO', true)
+ if get_option('freedreno-kgsl') == 'yes'
+ conf_data.set('HAVE_FREEDRENO_KGSL', true)
+ endif
+ endif
+endif
+if get_option('vc4') != 'no'
+ if cpu == 'arm'
+ conf_data.set('HAVE_VC4', true)
+ endif
+endif
+if get_option('vmwgfx') == 'yes'
+ conf_data.set('HAVE_VMWGFX', true)
+endif
+if get_option('omap-experimental-api') == 'yes'
+ if cpu == 'arm'
+ conf_data.set('HAVE_OMAP', true)
+ endif
+endif
+if get_option('exynos-experimental-api') == 'yes'
+ if cpu == 'arm'
+ conf_data.set('HAVE_EXYNOS', true)
+ endif
+endif
+if get_option('tegra-experimental-api') == 'yes'
+ if cpu == 'arm'
+ conf_data.set('HAVE_TEGRA', true)
+ endif
+endif
+if get_option('etnaviv-experimental-api') == 'yes'
+ if cpu == 'arm'
+ conf_data.set('HAVE_ETNAVIV', true)
+ endif
+endif
+
+if get_option('libkms') == 'auto'
+ if (system.startswith('linux') or
+ system.startswith('freebsd') or
+ system.startswith('dragonfly') or
+ (system.startswith('kfreebsd') and system.endswith('-gnu')))
+ conf_data.set('HAVE_LIBKMS', true)
+ elif get_option('libkms') == 'no'
+ conf_data.set('HAVE_LIBKMS', false)
+ endif
+elif get_option('libkms') == 'yes'
+ conf_data.set('HAVE_LIBKMS', true)
+else
+ conf_data.set('HAVE_LIBKMS', false)
+endif
+
+# TODO: https://github.com/mesonbuild/meson/issues/826
+# This only works with a dev build of meson
+if get_option('valgrind') != 'no'
+ valgrind_dep = dependency(
+ 'valgrind',
+ headers_only : true,
+ required : get_option('valgrind') == 'yes'
+ )
+ if valgrind_dep.found()
+ conf_data.set('HAVE_VALGRIND', true)
+ endif
+endif
+
+config_h = configure_file(
+ input : 'meson_config.h.in',
+ output : 'config.h',
+ configuration : conf_data,
+)
+add_project_arguments('-DHAVE_CONFIG_H', language : 'c')
+
+libdrm_files = files(
+ 'xf86drm.c',
+ 'xf86drmHash.c',
+ 'xf86drmHash.h',
+ 'xf86drmRandom.c',
+ 'xf86drmRandom.h',
+ 'xf86drmSL.c',
+ 'xf86drmMode.c',
+ 'xf86atomic.h',
+ 'libdrm_macros.h',
+ 'libdrm_lists.h',
+ 'util_double_list.h',
+ 'util_math.h',
+)
+
+drm_include = include_directories('include/drm')
+base_include = include_directories('.')
+
+libdrm = shared_library(
+ 'drm',
+ libdrm_files,
+ include_directories : [base_include, drm_include],
+ dependencies : valgrind_dep,
+ c_args : global_warn_flags,
+ link_args : '-lm',
+ version : '2.4.0',
+ install : true,
+)
+
+install_headers(
+ 'libsync.h',
+ 'xf86drm.h',
+ 'xf86drmMode.h',
+)
+
+pkg.generate(
+ name : 'libdrm',
+ filebase : 'libdrm',
+ description : 'Userspace interface to kernel DRM services',
+ version : meson.project_version(),
+ libraries : [libdrm],
+ subdirs : ['', 'libdrm'],
+)
+
+subdir('include/drm')
+if conf_data.get('HAVE_LIBKMS', false)
+ subdir('libkms')
+endif
+if conf_data.get('HAVE_INTEL', false)
+ subdir('intel')
+endif
+if conf_data.get('HAVE_NOUVEAU', false)
+ subdir('nouveau')
+endif
+if conf_data.get('HAVE_RADEON', false)
+ subdir('radeon')
+endif
+if conf_data.get('HAVE_AMDGPU', false)
+ subdir('amdgpu')
+endif
+if conf_data.get('HAVE_OMAP', false)
+ subdir('omap')
+endif
+if conf_data.get('HAVE_EXYNOS', false)
+ subdir('exynos')
+endif
+if conf_data.get('HAVE_FREEDRENO', false)
+ subdir('freedreno')
+endif
+if conf_data.get('HAVE_TEGRA', false)
+ subdir('tegra')
+endif
+if conf_data.get('HAVE_VC4', false)
+ subdir('vc4')
+endif
+if conf_data.get('HAVE_ETNAVIV', false)
+ subdir('etnaviv')
+endif
+subdir('tests')
+if get_option('manpages')
+ subdir('man')
+endif
new file mode 100644
@@ -0,0 +1,24 @@
+#mesondefine HAVE_LIBDRM_ATOMIC_PRIMITIVES
+#mesondefine HAVE_LIB_ATOMIC_OPS
+#mesondefine HAVE_INTEL
+#mesondefine HAVE_RADEON
+#mesondefine HAVE_AMDGPU
+#mesondefine HAVE_NOUVEAU
+#mesondefine HAVE_FREEDRENO
+#mesondefine HAVE_FREEDRENO_KGSL
+#mesondefine HAVE_VC4
+#mesondefine HAVE_OMAP
+#mesondefine HAVE_EXYNOS
+#mesondefine HAVE_TEGRA
+#mesondefine HAVE_ETNAVIV
+#mesondefine HAVE_LIBKMS
+#mesondefine HAVE_SYS_SYSCTL_H
+#mesondefine HAVE_SYS_SELECT_H
+#mesondefine HAVE_VALGRIND
+#mesondefine HAVE_OPEN_MEMSTREAM
+#mesondefine HAVE_CAIRO
+#mesondefine UDEV
+#mesondefine HAVE_ATTRIBUTE_VISIBILITY
+#mesondefine HAVE_ALLOCA_H
+#mesondefine MAJOR_IN_SYSMACROS
+#mesondefine MAJOR_IN_MKDEV
new file mode 100644
@@ -0,0 +1,16 @@
+option('intel', type : 'combo', choices : ['auto', 'yes', 'no'], value : 'auto')
+option('radeon', type : 'combo', choices : ['auto', 'yes', 'no'], value : 'auto')
+option('amdgpu', type : 'combo', choices : ['auto', 'yes', 'no'], value : 'auto')
+option('nouveau', type : 'combo', choices : ['auto', 'yes', 'no'], value : 'auto')
+option('vmwgfx', type : 'combo', choices : ['yes', 'no', ], value : 'yes')
+option('freedreno', type : 'combo', choices : ['auto', 'yes', 'no'], value : 'auto')
+option('freedreno-kgsl', type : 'combo', choices : ['yes', 'no', ], value : 'no')
+option('vc4', type : 'combo', choices : ['auto', 'yes', 'no'], value : 'auto')
+option('omap-experimental-api', type : 'combo', choices : ['auto', 'yes', 'no'], value : 'no')
+option('exynos-experimental-api', type : 'combo', choices : ['auto', 'yes', 'no'], value : 'no')
+option('tegra-experimental-api', type : 'combo', choices : ['auto', 'yes', 'no'], value : 'no')
+option('etnaviv-experimental-api', type : 'combo', choices : ['auto', 'yes', 'no'], value : 'no')
+option('libkms', type : 'combo', choices : ['auto', 'yes', 'no'], value : 'auto')
+option('valgrind', type : 'combo', choices : ['auto', 'yes', 'no'], value : 'no')
+option('udev', type : 'combo', choices : ['yes', 'no', ], value : 'no')
+option('manpages', type : 'boolean', value : false)
new file mode 100644
@@ -0,0 +1,63 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+nouveau_files = files(
+ 'nouveau.c',
+ 'pushbuf.c',
+ 'bufctx.c',
+ 'abi16.c',
+ 'private.h',
+)
+
+nouveau_include = include_directories('.')
+
+libdrm_nouveau = shared_library(
+ 'drm_nouveau',
+ nouveau_files,
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include],
+ link_with : libdrm,
+ dependencies : pthreadstubs_dep,
+ version : '2.0.0',
+ install : true,
+)
+
+install_headers('nouveau.h', subdir : 'libdrm/nouveau')
+install_headers(
+ 'nvif/class.h',
+ 'nvif/cl0080.h',
+ 'nvif/cl9097.h',
+ 'nvif/if0002.h',
+ 'nvif/if0003.h',
+ 'nvif/ioctl.h',
+ 'nvif/unpack.h',
+ subdir : 'nouveau/nvif',
+)
+
+pkg.generate(
+ name : 'libdrm_nouveau',
+ description : 'Userspace interface to nouveau kernel DRM services',
+ version : meson.project_version(),
+ subdirs : ['', 'libdrm'],
+ libraries : [libdrm_nouveau],
+ requires_private : 'libdrm',
+)
+
+test('nouveau-symbol-check', find_program('nouveau-symbol-check'))
new file mode 100644
@@ -0,0 +1,48 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+omap_files = files(
+ 'omap_drm.c',
+)
+
+libdrm_omap = shared_library(
+ 'drm_omap',
+ omap_files,
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include],
+ link_with : libdrm,
+ dependencies : [pthreadstubs_dep, valgrind_dep],
+ version : '1.0.0',
+ install : true,
+)
+
+install_headers('omap_drm.h', subdir : 'omap')
+install_headers('omap_drmif.h', subdir : 'libdrm')
+
+pkg.generate(
+ name : 'libdrm_omap',
+ description : 'Userspace interface to omap kernel DRM services',
+ version : '0.6',
+ subdirs : ['', 'libdrm', 'omap'],
+ libraries : [libdrm_omap],
+ requires_private : 'libdrm',
+)
+
+test('omap-symbol-check', find_program('omap-symbol-check'))
new file mode 100644
@@ -0,0 +1,62 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+radeon_files = files(
+ 'radeon_bo_gem.c',
+ 'radeon_cs_gem.c',
+ 'radeon_cs_space.c',
+ 'radeon_bo.c',
+ 'radeon_cs.c',
+ 'radeon_surface.c',
+)
+
+libdrm_radeon = shared_library(
+ 'drm_radeon',
+ radeon_files,
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include],
+ link_with : libdrm,
+ dependencies : pthreadstubs_dep,
+ version : '1.0.1',
+ install : true,
+)
+
+install_headers(
+ 'radeon_bo.h',
+ 'radeon_cs.h',
+ 'radeon_surface.h',
+ 'radeon_bo_gem.h',
+ 'radeon_cs_gem.h',
+ 'radeon_bo_int.h',
+ 'radeon_cs_int.h',
+ 'r600_pci_ids.h',
+ subdir : 'libdrm'
+)
+
+pkg.generate(
+ name : 'libdrm_radeon',
+ description : 'Userspace interface to kernel DRM services for radeon',
+ version : meson.project_version(),
+ subdirs : ['', 'libdrm'],
+ libraries : [libdrm_radeon],
+ requires_private : 'libdrm',
+)
+
+test('radeon-symbol-check', find_program('radeon-symbol-check'))
new file mode 100644
@@ -0,0 +1,50 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+tegra_files = files(
+ 'private.h',
+ 'tegra.c',
+)
+
+libdrm_tegra = shared_library(
+ 'drm_tegra',
+ tegra_files,
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include],
+ link_with : libdrm,
+ dependencies : [pthreadstubs_dep, valgrind_dep],
+ version : '1.0.0',
+ install : true,
+)
+
+tegra_include = include_directories('.')
+
+install_headers('tegra.h', subdir : 'libdrm')
+
+pkg.generate(
+ name : 'libdrm_tegra',
+ description : 'Userspace interface to Tegra kernel DRM services',
+ version : meson.project_version(),
+ subdirs : ['', 'libdrm'],
+ libraries : [libdrm_tegra],
+ requires_private : 'libdrm',
+)
+
+test('tegra-symbol-check', find_program('tegra-symbol-check'))
new file mode 100644
@@ -0,0 +1,30 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+if conf_data.get('HAVE_CUNIT', false)
+ amdgpu_test = executable(
+ 'amdgpu_test',
+ ['amdgpu_test.c', 'amdgpu_test.h', 'basic_tests.c', 'bo_tests.c',
+ 'cs_tests.c', 'uvd_messages.h', 'vce_tests.c', 'vce_ib.h', 'frame.h'],
+ include_directories : [base_include, include_directories('../../amdgpu'), drm_include],
+ dependencies : cunit_dep,
+ link_with : [libdrm, libdrm_amdgpu],
+ )
+endif
new file mode 100644
@@ -0,0 +1,49 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+if conf_data.get('HAVE_LIBKMS', false)
+ test_etnaviv_2d = executable(
+ 'etnaviv_2d_test',
+ ['cmdstream.xml.h', 'etnaviv_2d_test.c', 'state.xml.h', 'state_2d.xml.h',
+ 'write_bmp.c', 'write_bmp.h'],
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include, etnaviv_include],
+ link_with : [libdrm, libdrm_etnaviv],
+ dependencies : thread_dep
+ )
+endif
+
+test_etnaviv_cmd_stream = executable(
+ 'etnaviv_cmd_stream_test',
+ 'etnaviv_cmd_stream_test.c',
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include, etnaviv_include],
+ link_with : [libdrm_etnaviv],
+ dependencies : thread_dep
+)
+
+test_etnaviv_bo_cache = executable(
+ 'etnaviv_bo_cache_test',
+ 'etnaviv_bo_cache_test.c',
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include, etnaviv_include],
+ link_with : [libdrm, libdrm_etnaviv],
+ dependencies : thread_dep
+)
new file mode 100644
@@ -0,0 +1,43 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+test_exynos_fimg2d_perf = executable(
+ 'exynos_fimg2d_perf',
+ 'exynos_fim2d_perf.c',
+ include_directories : [base_include, libkms_include, exynos_include, drm_include],
+ link_with : [libdrm, libdrm_exynos],
+)
+
+test_exynos_fimg2d_event = executable(
+ 'exynos_fimg2d_event',
+ 'exynos_fimg2d_event.c',
+ include_directories : [base_include, kms_include, exynos_include, drm_include],
+ link_with : [libdrm, libdrm_exynos],
+)
+
+if conf_data.get('HAVE_LIBKMS', false):
+ test_exynos_fimg2d_test = executable(
+ 'exynos_fimg2d_test',
+ 'exynos_fimg2d_test.c',
+ dependencies : test_util_dep,
+ include_directories : [base_include, kms_include, exynos_include, drm_include],
+ link_with : [libdrm, libdrm_exynos],
+ )
+endif
new file mode 100644
@@ -0,0 +1,46 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+kms_test_common_files = files(
+ 'libkms-test.h',
+ 'libkms-test-crtc.c',
+ 'libkms-test-device.c',
+ 'libkms-test-framebuffer.c',
+ 'libkms-test-plane.c',
+ 'libkms-test-screen.c',
+)
+
+test_kms_steal_crtc = executable(
+ 'kms-steal-crtc',
+ [kms_test_common_files, 'kms-steal-crtc.c'],
+ c_args : global_warn_flags,
+ include_directories : drm_include,
+ dependencies : test_util_dep,
+ link_with : libdrm,
+)
+
+test_kms_universal_planes = executable(
+ 'kms-universal-planes',
+ [kms_test_common_files, 'kms-universal-planes.c'],
+ c_args : global_warn_flags,
+ dependencies : cairo_dep,
+ include_directories : [base_include, test_include, drm_include],
+ link_with : libdrm,
+)
new file mode 100644
@@ -0,0 +1,28 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+kmstest = executable(
+ 'kmstest',
+ 'main.c',
+ include_directories : libkms_include,
+ dependencies : test_util_dep,
+ link_with : [libkms, libdrm],
+ c_args : global_warn_flags,
+)
new file mode 100644
@@ -0,0 +1,87 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+test_drmsl = executable(
+ 'drmsl',
+ 'drmsl.c',
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include],
+ link_with : libdrm,
+)
+
+test_hash = executable(
+ 'hash',
+ 'hash.c',
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include],
+ link_with : libdrm,
+)
+
+test_random = executable(
+ 'random',
+ 'random.c',
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include],
+ link_with : libdrm,
+)
+
+test_drmdevice = executable(
+ 'drmdevice',
+ 'drmdevice.c',
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include],
+ link_with : libdrm,
+)
+
+test('drmsl', test_drmsl)
+test('hash', test_hash)
+# XXX: This test never seems to finish
+#test('random', test_random)
+test('drmdevice', test_drmdevice)
+
+test_include = include_directories('.')
+
+subdir('util')
+subdir('kms')
+subdir('modeprint')
+subdir('proptest')
+subdir('modetest')
+subdir('vbltest')
+if conf_data.get('HAVE_LIBKMS', false)
+ subdir('kmstest')
+endif
+if conf_data.get('HAVE_RADEON', false)
+ subdir('radeon')
+endif
+if conf_data.get('HAVE_AMDGPU', false) and conf_data.get('HAVE_CUNIT', false)
+ subdir('amdgpu')
+endif
+if conf_data.get('have_exynos', false)
+ subdir('exynos')
+endif
+if conf_data.get('HAVE_TEGRA', false)
+ subdir('tegra')
+endif
+if conf_data.get('HAVE_ETNAVIV', false)
+ subdir('etnaviv')
+endif
+if conf_data.get('HAVE_NOUVEAU', false)
+ subdir('nouveau')
+endif
new file mode 100644
@@ -0,0 +1,27 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+test_modeprint = executable(
+ 'modeprint',
+ 'modeprint.c',
+ include_directories : [drm_include, test_include, base_include],
+ link_with : libdrm,
+ c_args : global_warn_flags,
+)
new file mode 100644
@@ -0,0 +1,27 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+modetest = executable(
+ 'modetest',
+ ['buffers.c', 'buffers.h', 'cursor.c', 'cursor.h', 'modetest.c'],
+ c_args : [global_warn_flags, '-Wno-pointer-arith'],
+ dependencies : [test_util_dep, thread_dep],
+ link_with : libdrm,
+)
new file mode 100644
@@ -0,0 +1,30 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+test_nouveau_threaded = executable(
+ 'threaded',
+ 'threaded.c',
+ dependencies : [thread_dep, dl_dep],
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include, nouveau_include],
+ link_with : [libdrm_nouveau, libdrm],
+)
+
+test('nouveau-threaded', test_nouveau_threaded)
new file mode 100644
@@ -0,0 +1,27 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+test_proptest = executable(
+ 'proptest',
+ 'proptest.c',
+ c_args : global_warn_flags,
+ dependencies : [test_util_dep],
+ link_with : libdrm,
+)
new file mode 100644
@@ -0,0 +1,27 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+radeon_ttm = executable(
+ 'radeon_ttm',
+ ['rbo.c', 'rbo.h', 'radeon_ttm.c'],
+ c_args : global_warn_flags,
+ include_directories : [base_include, drm_include],
+ link_with : libdrm,
+)
new file mode 100644
@@ -0,0 +1,27 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+test_tegra_openclose = executable(
+ 'openclose',
+ 'openclose.c',
+ c_args : global_warn_flags,
+ include_directories : [base_include, tegra_include, drm_include],
+ link_with : [libdrm, libdrm_tegra],
+)
new file mode 100644
@@ -0,0 +1,35 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+test_util_files = files(
+ 'common.h',
+ 'format.c',
+ 'format.h',
+ 'kms.c',
+ 'kms.h',
+ 'pattern.c',
+ 'pattern.h',
+)
+
+test_util_dep = declare_dependency(
+ sources : test_util_files,
+ include_directories : [base_include, drm_include, test_include],
+ dependencies : cairo_dep,
+)
new file mode 100644
@@ -0,0 +1,27 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+vbltest = executable(
+ 'vbltest',
+ 'vbltest.c',
+ c_args : global_warn_flags,
+ dependencies : test_util_dep,
+ link_with : libdrm,
+)
new file mode 100644
@@ -0,0 +1,28 @@
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+install_headers('vc4_packet.h', 'vc4_qpu_defines.h', subdir : 'libdrm')
+
+pkg.generate(
+ name : 'libdrm_vc4',
+ description : 'Userspace interface to vc4 kernel DRM services',
+ version : meson.project_version(),
+ requires_private : 'libdrm',
+)
@@ -38,7 +38,7 @@
#include "config.h"
#endif
-#if HAVE_LIBDRM_ATOMIC_PRIMITIVES
+#ifdef HAVE_LIBDRM_ATOMIC_PRIMITIVES
#define HAS_ATOMIC_OPS 1
@@ -57,7 +57,7 @@ typedef struct {
#endif
-#if HAVE_LIB_ATOMIC_OPS
+#ifdef HAVE_LIB_ATOMIC_OPS
#include <atomic_ops.h>
#define HAS_ATOMIC_OPS 1